diff --git a/stg/visualization/index.html b/stg/visualization/index.html index 29612f09c2..c7fe2a2541 100644 --- a/stg/visualization/index.html +++ b/stg/visualization/index.html @@ -10,5 +10,5 @@ - + diff --git a/stg/visualization/main.d3f8ff0ce059ba87.js b/stg/visualization/main.4f8a519da46a6efd.js similarity index 74% rename from stg/visualization/main.d3f8ff0ce059ba87.js rename to stg/visualization/main.4f8a519da46a6efd.js index 65e40037c8..0c534945a3 100644 --- a/stg/visualization/main.d3f8ff0ce059ba87.js +++ b/stg/visualization/main.4f8a519da46a6efd.js @@ -1 +1 @@ -(self.webpackChunkvisualization=self.webpackChunkvisualization||[]).push([[792],{2809:(nt,Ee,v)=>{"use strict";v(6935);var o=v(4438);let y=null;function Z(){return y}class L{}const V=new o.nKC("");let X=(()=>{class n{historyGo(e){throw new Error("")}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=o.jDH({token:n,factory:()=>(0,o.WQX)(G),providedIn:"platform"})}}return n})(),G=(()=>{class n extends X{constructor(){super(),this._doc=(0,o.WQX)(V),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Z().getBaseHref(this._doc)}onPopState(e){const i=Z().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Z().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=o.jDH({token:n,factory:()=>new n,providedIn:"platform"})}}return n})();function Q(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 ne(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 re(n){return n&&"?"!==n[0]?"?"+n:n}let me=(()=>{class n{historyGo(e){throw new Error("")}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=o.jDH({token:n,factory:()=>(0,o.WQX)(Be),providedIn:"root"})}}return n})();const we=new o.nKC("");let Be=(()=>{class n extends me{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??(0,o.WQX)(V).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 Q(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+re(this._platformLocation.search),r=this._platformLocation.hash;return r&&e?`${i}${r}`:i}pushState(e,i,r,s){const l=this.prepareExternalUrl(r+re(s));this._platformLocation.pushState(e,i,l)}replaceState(e,i,r,s){const l=this.prepareExternalUrl(r+re(s));this._platformLocation.replaceState(e,i,l)}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)(o.KVO(X),o.KVO(we,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Ne=(()=>{class n{constructor(e){this._subject=new o.bkB,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function $e(n){if(new RegExp("^(https?:)?//").test(n)){const[,e]=n.split(/\/\/[^\/]+/);return e}return n}(ne(qe(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+re(i))}normalize(e){return n.stripTrailingSlash(function He(n,t){if(!n||!t.startsWith(n))return t;const e=t.substring(n.length);return""===e||["/",";","?","#"].includes(e[0])?e:t}(this._basePath,qe(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+re(i)),r)}replaceState(e,i="",r=null){this._locationStrategy.replaceState(r,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+re(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=re}static{this.joinWithSlash=Q}static{this.stripTrailingSlash=ne}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(me))}}static{this.\u0275prov=o.jDH({token:n,factory:()=>function Je(){return new Ne((0,o.KVO)(me))}(),providedIn:"root"})}}return n})();function qe(n){return n.replace(/\/index.html$/,"")}var at=function(n){return n[n.Decimal=0]="Decimal",n[n.Percent=1]="Percent",n[n.Currency=2]="Currency",n[n.Scientific=3]="Scientific",n}(at||{}),We=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}(We||{});const Te={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 li(n,t){const e=(0,o.H5H)(n),i=e[o.KH2.NumberSymbols][t];if(typeof i>"u"){if(t===Te.CurrencyDecimal)return e[o.KH2.NumberSymbols][Te.Decimal];if(t===Te.CurrencyGroup)return e[o.KH2.NumberSymbols][Te.Group]}return i}const gn=o.mq5,De=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function gt(n){const t=parseInt(n);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+n);return t}let Dn=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=o.jDH({token:n,factory:function(i){let r=null;return i?r=new i:(s=o.KVO(o.xe9),r=new _i(s)),r;var s},providedIn:"root"})}}return n})();let _i=(()=>{class n extends Dn{constructor(e){super(),this.locale=e}getPluralCategory(e,i){switch(gn(i||this.locale)(e)){case We.Zero:return"zero";case We.One:return"one";case We.Two:return"two";case We.Few:return"few";case We.Many:return"many";default:return"other"}}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(o.xe9))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();function io(n,t){t=encodeURIComponent(t);for(const e of n.split(";")){const i=e.indexOf("="),[r,s]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(r.trim()===t)return decodeURIComponent(s)}return null}const mo=/\s+/,Io=[];let En=(()=>{class n{constructor(e,i){this._ngEl=e,this._renderer=i,this.initialClasses=Io,this.stateMap=new Map}set klass(e){this.initialClasses=null!=e?e.trim().split(mo):Io}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(mo):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(mo).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)(o.rXU(o.aKT),o.rXU(o.sFG))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"},standalone:!0})}}return n})(),zn=(()=>{class n{constructor(e,i){this._viewContainer=e,this._context=new pi,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){Ui("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){Ui("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)(o.rXU(o.c1b),o.rXU(o.C4Q))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}}return n})();class pi{constructor(){this.$implicit=null,this.ngIf=null}}function Ui(n,t){if(t&&!t.createEmbeddedView)throw new Error(`${n} must be a TemplateRef, but received '${(0,o.Tbb)(t)}'.`)}class Xi{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 No=(()=>{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 ei(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)(o.rXU(Dn))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","ngPlural",""]],inputs:{ngPlural:"ngPlural"},standalone:!0})}}return n})(),ra=(()=>{class n{constructor(e,i,r,s){this.value=e;const l=!isNaN(Number(e));s.addCase(l?`=${e}`:e,new Xi(r,i))}static{this.\u0275fac=function(i){return new(i||n)(o.kS0("ngPluralCase"),o.rXU(o.C4Q),o.rXU(o.c1b),o.rXU(No,1))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","ngPluralCase",""]],standalone:!0})}}return n})(),ga=(()=>{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,s]=e.split("."),l=-1===r.indexOf("-")?void 0:o.czy.DashCase;null!=i?this._renderer.setStyle(this._ngEl.nativeElement,r,s?`${i}${s}`:i,l):this._renderer.removeStyle(this._ngEl.nativeElement,r,l)}_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)(o.rXU(o.aKT),o.rXU(o.MKu),o.rXU(o.sFG))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}}return n})(),vi=(()=>{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)(o.rXU(o.c1b))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[o.OA$]})}}return n})();function xo(n,t){return new o.wOt(2100,!1)}class fc{createSubscription(t,e){return(0,o.O8t)(()=>t.subscribe({next:e,error:i=>{throw i}}))}dispose(t){(0,o.O8t)(()=>t.unsubscribe())}}class _a{createSubscription(t,e){return t.then(e,i=>{throw i})}dispose(t){}}const ks=new _a,vf=new fc;let Qn=(()=>{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((0,o.jNT)(e))return ks;if((0,o.zjR)(e))return vf;throw xo()}_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)(o.rXU(o.gRc,16))}}static{this.\u0275pipe=o.EJ8({name:"async",type:n,pure:!1,standalone:!0})}}return n})();const Lo=/(?:[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 yf=(()=>{class n{transform(e){if(null==e)return null;if("string"!=typeof e)throw xo();return e.replace(Lo,i=>i[0].toUpperCase()+i.slice(1).toLowerCase())}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=o.EJ8({name:"titlecase",type:n,pure:!0,standalone:!0})}}return n})(),wf=(()=>{class n{constructor(e){this.differs=e,this.keyValues=[],this.compareFn=Ud}transform(e,i=Ud){if(!e||!(e instanceof Map)&&"object"!=typeof e)return null;this.differ??=this.differs.find(e).create();const r=this.differ.diff(e),s=i!==this.compareFn;return r&&(this.keyValues=[],r.forEachItem(l=>{this.keyValues.push(function Lx(n,t){return{key:n,value:t}}(l.key,l.currentValue))})),(r||s)&&(this.keyValues.sort(i),this.compareFn=i),this.keyValues}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.MKu,16))}}static{this.\u0275pipe=o.EJ8({name:"keyvalue",type:n,pure:!1,standalone:!0})}}return n})();function Ud(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 ds(n){return!(null==n||""===n||n!=n)}(e))return null;r||=this._locale;try{return function Ar(n,t,e){return function Ln(n,t,e,i,r,s,l=!1){let u="",f=!1;if(isFinite(n)){let p=function pn(n){let i,r,s,l,u,t=Math.abs(n)+"",e=0;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(s=t.search(/e/i))>0?(r<0&&(r=s),r+=+t.slice(s+1),t=t.substring(0,s)):r<0&&(r=t.length),s=0;"0"===t.charAt(s);s++);if(s===(u=t.length))i=[0],r=1;else{for(u--;"0"===t.charAt(u);)u--;for(r-=s,i=[],l=0;s<=u;s++,l++)i[l]=Number(t.charAt(s))}return r>22&&(i=i.splice(0,21),e=r-1,r=1),{digits:i,exponent:e,integerLen:r}}(n);l&&(p=function In(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}(p));let m=t.minInt,_=t.minFrac,b=t.maxFrac;if(s){const O=s.match(De);if(null===O)throw new Error(`${s} is not a valid digit info`);const R=O[1],P=O[3],ee=O[5];null!=R&&(m=gt(R)),null!=P&&(_=gt(P)),null!=ee?b=gt(ee):null!=P&&_>b&&(b=_)}!function Ke(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 s=Math.min(Math.max(t,r),e);let l=s+n.integerLen,u=i[l];if(l>0){i.splice(Math.max(n.integerLen,l));for(let _=l;_=5)if(l-1<0){for(let _=0;_>l;_--)i.unshift(0),n.integerLen++;i.unshift(1),n.integerLen++}else i[l-1]++;for(;r=p?F.pop():f=!1),b>=10?1:0},0);m&&(i.unshift(m),n.integerLen++)}(p,_,b);let w=p.digits,F=p.integerLen;const D=p.exponent;let T=[];for(f=w.every(O=>!O);F0?T=w.splice(F,w.length):(T=w,w=[0]);const I=[];for(w.length>=t.lgSize&&I.unshift(w.splice(-t.lgSize,w.length).join(""));w.length>t.gSize;)I.unshift(w.splice(-t.gSize,w.length).join(""));w.length&&I.unshift(w.join("")),u=I.join(li(e,i)),T.length&&(u+=li(e,r)+T.join("")),D&&(u+=li(e,Te.Exponential)+"+"+D)}else u=li(e,Te.Infinity);return u=n<0&&!f?t.negPre+u+t.negSuf:t.posPre+u+t.posSuf,u}(n,function Mn(n,t="-"){const e={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},i=n.split(";"),r=i[0],s=i[1],l=-1!==r.indexOf(".")?r.split("."):[r.substring(0,r.lastIndexOf("0")+1),r.substring(r.lastIndexOf("0")+1)],u=l[0],f=l[1]||"";e.posPre=u.substring(0,u.indexOf("#"));for(let m=0;m{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=o.$C({type:n})}static{this.\u0275inj=o.G2t({})}}return n})();const Yu="browser";function bv(n){return"server"===n}class ol{}class Yo extends L{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class xA extends Yo{static makeCurrent(){!function U(n){y??=n}(new xA)}onAndCancel(t,e,i){return t.addEventListener(e,i),()=>{t.removeEventListener(e,i)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){t.remove()}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 ed(){return Df=Df||document.querySelector("base"),Df?Df.getAttribute("href"):null}();return null==e?null:function Jx(n){return new URL(n,document.baseURI).pathname}(e)}resetBaseElement(){Df=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return io(document.cookie,t)}}let Df=null,tC=(()=>{class n{build(){return new XMLHttpRequest}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const k0=new o.nKC("");let Bf=(()=>{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(s=>s.supports(e)),!i)throw new o.wOt(5101,!1);return this._eventNameToPlugin.set(e,i),i}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(k0),o.KVO(o.SKi))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();class Pv{constructor(t){this._doc=t}}const kf="ng-app-id";let Rf=(()=>{class n{constructor(e,i,r,s={}){this.doc=e,this.appId=i,this.nonce=r,this.platformId=s,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=bv(s),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[${kf}="${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 s=r.get(e);return s.usage+=i,s.usage}return r.set(e,{usage:i,elements:[]}),i}getStyleElement(e,i){const r=this.styleNodesInDOM,s=r?.get(i);if(s?.parentNode===e)return r.delete(i),s.removeAttribute(kf),s;{const l=this.doc.createElement("style");return this.nonce&&l.setAttribute("nonce",this.nonce),l.textContent=i,this.platformIsServer&&l.setAttribute(kf,this.appId),e.appendChild(l),l}}addStyleToHost(e,i){const r=this.getStyleElement(e,i),s=this.styleRef,l=s.get(i)?.elements;l?l.push(r):s.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)(o.KVO(V),o.KVO(o.sZ2),o.KVO(o.BIS,8),o.KVO(o.Agw))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const ro={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/Math/MathML"},Jt=/%COMP%/g,$s=new o.nKC("",{providedIn:"root",factory:()=>!0});function Vo(n,t){return t.map(e=>e.replace(Jt,n))}let Va=(()=>{class n{constructor(e,i,r,s,l,u,f,p=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=r,this.removeStylesOnCompDestroy=s,this.doc=l,this.platformId=u,this.ngZone=f,this.nonce=p,this.rendererByCompId=new Map,this.platformIsServer=bv(u),this.defaultRenderer=new Oi(e,l,f,this.platformIsServer)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===o.gXe.ShadowDom&&(i={...i,encapsulation:o.gXe.Emulated});const r=this.getOrCreateRenderer(e,i);return r instanceof qd?r.applyToHost(e):r instanceof vc&&r.applyStyles(),r}getOrCreateRenderer(e,i){const r=this.rendererByCompId;let s=r.get(i.id);if(!s){const l=this.doc,u=this.ngZone,f=this.eventManager,p=this.sharedStylesHost,m=this.removeStylesOnCompDestroy,_=this.platformIsServer;switch(i.encapsulation){case o.gXe.Emulated:s=new qd(f,p,i,this.appId,m,l,u,_);break;case o.gXe.ShadowDom:return new _o(f,p,e,i,l,u,this.nonce,_);default:s=new vc(f,p,i,m,l,u,_)}r.set(i.id,s)}return s}ngOnDestroy(){this.rendererByCompId.clear()}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Bf),o.KVO(Rf),o.KVO(o.sZ2),o.KVO($s),o.KVO(V),o.KVO(o.Agw),o.KVO(o.SKi),o.KVO(o.BIS))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();class Oi{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(ro[e]||e,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,e){($d(t)?t.content:t).appendChild(e)}insertBefore(t,e,i){t&&($d(t)?t.content:t).insertBefore(e,i)}removeChild(t,e){e.remove()}selectRootElement(t,e){let i="string"==typeof t?this.doc.querySelector(t):t;if(!i)throw new o.wOt(-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 s=ro[r];s?t.setAttributeNS(s,e,i):t.setAttribute(e,i)}else t.setAttribute(e,i)}removeAttribute(t,e,i){if(i){const r=ro[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&(o.czy.DashCase|o.czy.Important)?t.style.setProperty(e,i,r&o.czy.Important?"important":""):t.style[e]=i}removeStyle(t,e,i){i&o.czy.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=Z().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 $d(n){return"TEMPLATE"===n.tagName&&void 0!==n.content}class _o extends Oi{constructor(t,e,i,r,s,l,u,f){super(t,s,l,f),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const p=Vo(r.id,r.styles);for(const m of p){const _=document.createElement("style");u&&_.setAttribute("nonce",u),_.textContent=m,this.shadowRoot.appendChild(_)}}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(null,e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class vc extends Oi{constructor(t,e,i,r,s,l,u,f){super(t,s,l,u),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=r,this.styles=f?Vo(f,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class qd extends vc{constructor(t,e,i,r,s,l,u,f){const p=r+"-"+i.id;super(t,e,i,s,l,u,f,p),this.contentAttr=function th(n){return"_ngcontent-%COMP%".replace(Jt,n)}(p),this.hostAttr=function oo(n){return"_nghost-%COMP%".replace(Jt,n)}(p)}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 dl=(()=>{class n extends Pv{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)(o.KVO(V))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const Bl=["alt","control","meta","shift"],Ov={"\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"},td={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey};let CA=(()=>{class n extends Pv{constructor(e){super(e)}supports(e){return null!=n.parseEventName(e)}addEventListener(e,i,r){const s=n.parseEventName(i),l=n.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Z().onAndCancel(e,s.domEventName,l))}static parseEventName(e){const i=e.toLowerCase().split("."),r=i.shift();if(0===i.length||"keydown"!==r&&"keyup"!==r)return null;const s=n._normalizeKey(i.pop());let l="",u=i.indexOf("code");if(u>-1&&(i.splice(u,1),l="code."),Bl.forEach(p=>{const m=i.indexOf(p);m>-1&&(i.splice(m,1),l+=p+".")}),l+=s,0!=i.length||0===s.length)return null;const f={};return f.domEventName=r,f.fullKey=l,f}static matchEventFullKeyCode(e,i){let r=Ov[e.key]||e.key,s="";return i.indexOf("code.")>-1&&(r=e.code,s="code."),!(null==r||!r)&&(r=r.toLowerCase()," "===r?r="space":"."===r&&(r="dot"),Bl.forEach(l=>{l!==r&&(0,td[l])(e)&&(s+=l+".")}),s+=r,s===i)}static eventCallback(e,i,r){return s=>{n.matchEventFullKeyCode(s,e)&&r.runGuarded(()=>i(s))}}static _normalizeKey(e){return"esc"===e?"escape":e}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(V))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();function MA(n){return{appProviders:[...P0,...n?.providers??[]],platformProviders:Ho}}const Ho=[{provide:o.Agw,useValue:Yu},{provide:o.PLl,useValue:function kl(){xA.makeCurrent()},multi:!0},{provide:V,useFactory:function nh(){return(0,o.TL$)(document),document},deps:[]}],P0=[{provide:o.H8p,useValue:"root"},{provide:o.zcH,useFactory:function EA(){return new o.zcH},deps:[]},{provide:k0,useClass:dl,multi:!0,deps:[V,o.SKi,o.Agw]},{provide:k0,useClass:CA,multi:!0,deps:[V]},Va,Rf,Bf,{provide:o._9s,useExisting:Va},{provide:ol,useClass:tC,deps:[]},[]];function H0(n,t,e,i,r,s,l){try{var u=n[s](l),f=u.value}catch(p){return void e(p)}u.done?t(f):Promise.resolve(f).then(i,r)}function Cn(n){return function(){var t=this,e=arguments;return new Promise(function(i,r){var s=n.apply(t,e);function l(f){H0(s,i,r,l,u,"next",f)}function u(f){H0(s,i,r,l,u,"throw",f)}l(void 0)})}}var Xd=v(4412),Xr=v(4226),Ai=v(1413),un=v(8359);class Lv extends un.yU{constructor(t,e){super()}schedule(t,e=0){return this}}const IA={setInterval(n,t,...e){const{delegate:i}=IA;return i?.setInterval?i.setInterval(n,t,...e):setInterval(n,t,...e)},clearInterval(n){const{delegate:t}=IA;return(t?.clearInterval||clearInterval)(n)},delegate:void 0};var Pf=v(7908);class Ea extends Lv{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,s=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(s,r,e)),this.pending=!0,this.delay=e,this.id=null!==(i=this.id)&&void 0!==i?i:this.requestAsyncId(s,this.id,e),this}requestAsyncId(t,e,i=0){return IA.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&&IA.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(s){i=!0,r=s||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,(0,Pf.o)(i,this),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null,super.unsubscribe()}}}const Of={now:()=>(Of.delegate||Date).now(),delegate:void 0};class Ol{constructor(t,e=Ol.now){this.schedulerActionCtor=t,this.now=e}schedule(t,e=0,i){return new this.schedulerActionCtor(this,t).schedule(i,e)}}Ol.now=Of.now;class ar extends Ol{constructor(t,e=Ol.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 Nf=new class Q0 extends ar{}(class Pl extends Ea{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 qs(n,t,e,i=0,r=!1){const s=t.schedule(function(){e(),r?n.add(this.schedule(null,i)):this.unsubscribe()},i);if(n.add(s),!r)return s}var Fr=v(9974),sr=v(4360);function Ws(n,t=0){return(0,Fr.N)((e,i)=>{e.subscribe((0,sr._)(i,r=>qs(i,n,()=>i.next(r),t),()=>qs(i,n,()=>i.complete(),t),r=>qs(i,n,()=>i.error(r),t)))})}function Nl(n){return this instanceof Nl?(this.v=n,this):new Nl(n)}function Qv(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 rh(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(s){e[s]=n[s]&&function(l){return new Promise(function(u,f){!function r(s,l,u,f){Promise.resolve(f).then(function(p){s({value:p,done:u})},l)}(u,f,(l=n[s](l)).done,l.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const Mo=n=>n&&"number"==typeof n.length&&"function"!=typeof n;var eo=v(8071);function OA(n){return(0,eo.T)(n?.then)}var Z0=v(3494);function cC(n){return(0,eo.T)(n[Z0.s])}function dC(n){return Symbol.asyncIterator&&(0,eo.T)(n?.[Symbol.asyncIterator])}function J0(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 e_=function $v(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Ns(n){return(0,eo.T)(n?.[e_])}function Ll(n){return function kA(n,t,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=e.apply(n,t||[]),s=[];return r={},u("next"),u("throw"),u("return",function l(w){return function(F){return Promise.resolve(F).then(w,_)}}),r[Symbol.asyncIterator]=function(){return this},r;function u(w,F){i[w]&&(r[w]=function(D){return new Promise(function(T,I){s.push([w,D,T,I])>1||f(w,D)})},F&&(r[w]=F(r[w])))}function f(w,F){try{!function p(w){w.value instanceof Nl?Promise.resolve(w.value.v).then(m,_):b(s[0][2],w)}(i[w](F))}catch(D){b(s[0][3],D)}}function m(w){f("next",w)}function _(w){f("throw",w)}function b(w,F){w(F),s.shift(),s.length&&f(s[0][0],s[0][1])}}(this,arguments,function*(){const e=n.getReader();try{for(;;){const{value:i,done:r}=yield Nl(e.read());if(r)return yield Nl(void 0);yield yield Nl(i)}}finally{e.releaseLock()}})}function NA(n){return(0,eo.T)(n?.getReader)}var ul=v(5334);function Pr(n){if(n instanceof Xr.c)return n;if(null!=n){if(cC(n))return function qv(n){return new Xr.c(t=>{const e=n[Z0.s]();if((0,eo.T)(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(n);if(Mo(n))return function fs(n){return new Xr.c(t=>{for(let e=0;e{n.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,ul.m)})}(n);if(dC(n))return LA(n);if(Ns(n))return function uC(n){return new Xr.c(t=>{for(const e of n)if(t.next(e),t.closed)return;t.complete()})}(n);if(NA(n))return function UA(n){return LA(Ll(n))}(n)}throw J0(n)}function LA(n){return new Xr.c(t=>{(function Hf(n,t){var e,i,r,s;return function Uf(n,t,e,i){return new(e||(e=Promise))(function(s,l){function u(m){try{p(i.next(m))}catch(_){l(_)}}function f(m){try{p(i.throw(m))}catch(_){l(_)}}function p(m){m.done?s(m.value):function r(s){return s instanceof e?s:new e(function(l){l(s)})}(m.value).then(u,f)}p((i=i.apply(n,t||[])).next())})}(this,void 0,void 0,function*(){try{for(e=Qv(n);!(i=yield e.next()).done;)if(t.next(i.value),t.closed)return}catch(l){r={error:l}}finally{try{i&&!i.done&&(s=e.return)&&(yield s.call(e))}finally{if(r)throw r.error}}t.complete()})})(n,t).catch(e=>t.error(e))})}var Ul=v(3669),t_=v(5343);function n_(n){return n&&(0,eo.T)(n.schedule)}function Qf(n){return n[n.length-1]}function VA(n){return(0,eo.T)(Qf(n))?n.pop():void 0}function oh(n){return n_(Qf(n))?n.pop():void 0}function hl(...n){const t=VA(n);return(0,Fr.N)((e,i)=>{const r=n.length,s=new Array(r);let l=n.map(()=>!1),u=!1;for(let f=0;f{s[f]=p,!u&&!l[f]&&(l[f]=!0,(u=l.every(Ul.D))&&(l=null))},t_.l));e.subscribe((0,sr._)(i,f=>{if(u){const p=[f,...s];i.next(t?t(...p):p)}}))})}var $n=v(6354);function Rr(n,t=Ul.D){return n=n??Kv,(0,Fr.N)((e,i)=>{let r,s=!0;e.subscribe((0,sr._)(i,l=>{const u=t(l);(s||!n(r,u))&&(s=!1,r=u,i.next(l))}))})}function Kv(n,t){return n===t}function sh(n,t){const e=!t?.manualCleanup;e&&!t?.injector&&(0,o.Af3)(sh);const i=e?t?.injector?.get(o.abz)??(0,o.WQX)(o.abz):null,r=function fl(n=Object.is){return(t,e)=>1===t.kind&&1===e.kind&&n(t.value,e.value)}(t?.equal);let s;s=(0,o.vPA)(t?.requireSync?{kind:0}:{kind:1,value:t?.initialValue},{equal:r});const l=n.subscribe({next:u=>s.set({kind:1,value:u}),error:u=>{if(t?.rejectErrors)throw u;s.set({kind:2,error:u})}});if(t?.requireSync&&0===s().kind)throw new o.wOt(601,!1);return i?.onDestroy(l.unsubscribe.bind(l)),(0,o.EWP)(()=>{const u=s();switch(u.kind){case 1:return u.value;case 2:throw u.error;case 0:throw new o.wOt(601,!1)}},{equal:t?.equal})}const Kd={};function bn(n,t){if(Kd[n]=(Kd[n]||0)+1,"function"==typeof t)return Yd(n,(...i)=>({...t(...i),type:n}));switch(t?t._as:"empty"){case"empty":return Yd(n,()=>({type:n}));case"props":return Yd(n,i=>({...i,type:n}));default:throw new Error("Unexpected config.")}}function Yd(n,t){return Object.defineProperty(t,"type",{value:n,writable:!1})}const $f="@ngrx/store/init";let wc=(()=>{class n extends Xd.t{constructor(){super({type:$f})}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=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const hC=[wc],ny=new o.nKC("@ngrx/store Internal Root Guard"),fC=new o.nKC("@ngrx/store Internal Initial State"),iy=new o.nKC("@ngrx/store Initial State"),qf=new o.nKC("@ngrx/store Reducer Factory"),Vl=new o.nKC("@ngrx/store Internal Reducer Factory Provider"),Wf=new o.nKC("@ngrx/store Initial Reducers"),od=new o.nKC("@ngrx/store Internal Initial Reducers"),Zd=(new o.nKC("@ngrx/store Store Features"),new o.nKC("@ngrx/store Internal Store Reducers")),KA=(new o.nKC("@ngrx/store Internal Feature Reducers"),new o.nKC("@ngrx/store Internal Feature Configs"),new o.nKC("@ngrx/store Internal Store Features"),new o.nKC("@ngrx/store Internal Feature Reducers Token"),new o.nKC("@ngrx/store Feature Reducers"),new o.nKC("@ngrx/store User Provided Meta Reducers")),YA=new o.nKC("@ngrx/store Meta Reducers"),za=new o.nKC("@ngrx/store Internal Resolved Meta Reducers"),i_=new o.nKC("@ngrx/store User Runtime Checks Config"),Xf=new o.nKC("@ngrx/store Internal User Runtime Checks Config"),Jd=new o.nKC("@ngrx/store Internal Runtime Checks"),xc=new o.nKC("@ngrx/store Check if Action types are unique"),ad=new o.nKC("@ngrx/store Root Store Provider"),bo=new o.nKC("@ngrx/store Feature State Provider");function Sa(n,t={}){const e=Object.keys(n),i={};for(let s=0;ss(r),e(t))}}function Ql(n,t){return Array.isArray(t)&&t.length>0&&(n=Hl.apply(null,[...t,n])),(e,i)=>{const r=n(e);return(s,l)=>r(s=void 0===s?i:s,l)}}class pl extends Xr.c{}class lh extends wc{}let Kf=(()=>{class n extends Xd.t{get currentReducers(){return this.reducers}constructor(e,i,r,s){super(s(r,i)),this.dispatcher=e,this.initialState=i,this.reducers=r,this.reducerFactory=s}addFeature(e){this.addFeatures([e])}addFeatures(e){const i=e.reduce((r,{reducers:s,reducerFactory:l,metaReducers:u,initialState:f,key:p})=>{const m="function"==typeof s?function ah(n){const t=Array.isArray(n)&&n.length>0?Hl(...n):e=>e;return(e,i)=>(e=t(e),(r,s)=>e(r=void 0===r?i:r,s))}(u)(s,f):Ql(l,u)(s,f);return r[p]=m,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 eu(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)(o.KVO(lh),o.KVO(iy),o.KVO(Wf),o.KVO(qf))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const ZA=[Kf,{provide:pl,useExisting:Kf},{provide:lh,useExisting:wc}];let Cc=(()=>{class n extends Ai.B{ngOnDestroy(){this.complete()}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=o.xGo(n)))(r||n)}})()}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const tu=[Cc];class cd extends Xr.c{}let Vi=(()=>{class n extends Xd.t{static{this.INIT=$f}constructor(e,i,r,s){super(s);const p=e.pipe(Ws(Nf)).pipe(hl(i)).pipe(function Xv(n,t){return(0,Fr.N)(function HA(n,t,e,i,r){return(s,l)=>{let u=e,f=t,p=0;s.subscribe((0,sr._)(l,m=>{const _=p++;f=u?n(f,m,_):(u=!0,m),i&&l.next(f)},r&&(()=>{u&&l.next(f),l.complete()})))}}(n,t,arguments.length>=2,!0))}(pC,{state:s}));this.stateSubscription=p.subscribe(({state:m,action:_})=>{this.next(m),r.next(_)}),this.state=sh(this,{manualCleanup:!0,requireSync:!0})}ngOnDestroy(){this.stateSubscription.unsubscribe(),this.complete()}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(wc),o.KVO(pl),o.KVO(Cc),o.KVO(iy))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();function pC(n={state:void 0},[t,e]){const{state:i}=n;return{state:e(i,t),action:t}}const ry=[Vi,{provide:cd,useExisting:Vi}];let Yt=(()=>{class n extends Xr.c{constructor(e,i,r){super(),this.actionsObserver=i,this.reducerManager=r,this.source=e,this.state=e.state}select(e,...i){return oy.call(null,e,...i)(this)}selectSignal(e,i){return(0,o.EWP)(()=>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)(o.KVO(cd),o.KVO(wc),o.KVO(Kf))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const AC=[Yt];function oy(n,t,...e){return function(r){let s;if("string"==typeof n){const l=[t,...e].filter(Boolean);s=r.pipe(function id(...n){const t=n.length;if(0===t)throw new Error("list of properties cannot be empty.");return(0,$n.T)(e=>{let i=e;for(let r=0;rn(l,t)))}return s.pipe(Rr())}}const dd="https://ngrx.io/guide/store/configuration/runtime-checks";function sy(n){return void 0===n}function r_(n){return null===n}function JA(n){return Array.isArray(n)}function tm(n){return"object"==typeof n&&null!==n}function a_(n){return"function"==typeof n}function nm(n,t){return n===t}function ch(n,t=nm,e=nm){let s,i=null,r=null;return{memoized:function p(){if(void 0!==s)return s.result;if(!i)return r=n.apply(null,arguments),i=arguments,r;if(!function ps(n,t,e){for(let i=0;il(n));return i.memoized.apply(null,s)}const r=t.map(s=>s(n,e));return i.memoized.apply(null,[...r,e])}function dh(n,t={stateFn:Bn}){return function(...e){let i=e;if(Array.isArray(i[0])){const[m,..._]=i;i=[...m,..._]}else 1===i.length&&function Ta(n){return!!n&&"object"==typeof n&&Object.values(n).every(t=>"function"==typeof t)}(i[0])&&(i=function hh(n){const t=Object.values(n),e=Object.keys(n);return[...t,(...r)=>e.reduce((s,l,u)=>({...s,[l]:r[u]}),{})]}(i[0]));const r=i.slice(0,i.length-1),s=i[i.length-1],l=r.filter(m=>m.release&&"function"==typeof m.release),u=n(function(...m){return s.apply(null,m)}),f=ch(function(m,_){return t.stateFn.apply(null,[m,r,_,u])});return Object.assign(f.memoized,{release:function p(){f.reset(),u.reset(),l.forEach(m=>m.release())},projector:u.memoized,setResult:f.setResult,clearResult:f.clearResult})}}function lT(n){return n instanceof o.nKC?(0,o.WQX)(n):n}function ud(n){return"function"==typeof n?n():n}function uy(n,t){return n.concat(t)}function hy(){if((0,o.WQX)(Yt,{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 Yf(n){Object.freeze(n);const t=a_(n);return Object.getOwnPropertyNames(n).forEach(e=>{if(!e.startsWith("\u0275")&&function mC(n,t){return Object.prototype.hasOwnProperty.call(n,t)}(n,e)&&(!t||"caller"!==e&&"callee"!==e&&"arguments"!==e)){const i=n[e];(tm(i)||a_(i))&&!Object.isFrozen(i)&&Yf(i)}}),n}function c_(n,t=[]){return(sy(n)||r_(n))&&0===t.length?{path:["root"],value:n}:Object.keys(n).reduce((i,r)=>{if(i)return i;const s=n[r];return function l_(n){return a_(n)&&n.hasOwnProperty("\u0275cmp")}(s)?i:!(sy(s)||r_(s)||function o_(n){return"number"==typeof n}(s)||function ay(n){return"boolean"==typeof n}(s)||function em(n){return"string"==typeof n}(s)||JA(s))&&(function s_(n){if(!function ly(n){return tm(n)&&!JA(n)}(n))return!1;const t=Object.getPrototypeOf(n);return t===Object.prototype||null===t}(s)?c_(s,[...t,r]):{path:[...t,r],value:s})},!1)}function so(n,t){if(!1===n)return;const e=n.path.join("."),i=new Error(`Detected unserializable ${t} at "${e}". ${dd}#strict${t}serializability`);throw i.value=n.value,i.unserializablePath=e,i}function Jf(n){return(0,o.naY)()?{strictStateSerializability:!1,strictActionSerializability:!1,strictStateImmutability:!0,strictActionImmutability:!0,strictActionWithinNgZone:!1,strictActionTypeUniqueness:!1,...n}:{strictStateSerializability:!1,strictActionSerializability:!1,strictStateImmutability:!1,strictActionImmutability:!1,strictActionWithinNgZone:!1,strictActionTypeUniqueness:!1}}function py({strictActionSerializability:n,strictStateSerializability:t}){return e=>n||t?function Zf(n,t){return function(e,i){t.action(i)&&so(c_(i),"action");const r=n(e,i);return t.state()&&so(c_(r),"state"),r}}(e,{action:i=>n&&!fh(i),state:()=>t}):e}function _C({strictActionImmutability:n,strictStateImmutability:t}){return e=>n||t?function gC(n,t){return function(e,i){const r=t.action(i)?Yf(i):i,s=n(e,r);return t.state()?Yf(s):s}}(e,{action:i=>n&&!fh(i),state:()=>t}):e}function fh(n){return n.type.startsWith("@ngrx")}function Ay({strictActionWithinNgZone:n}){return t=>n?function fy(n,t){return function(e,i){if(t.action(i)&&!o.SKi.isInAngularZone())throw new Error(`Action '${i.type}' running outside NgZone. ${dd}#strictactionwithinngzone`);return n(e,i)}}(t,{action:e=>n&&!fh(e)}):t}function my(n){return[{provide:Xf,useValue:n},{provide:i_,useFactory:om,deps:[Xf]},{provide:Jd,deps:[i_],useFactory:Jf},{provide:YA,multi:!0,deps:[Jd],useFactory:_C},{provide:YA,multi:!0,deps:[Jd],useFactory:py},{provide:YA,multi:!0,deps:[Jd],useFactory:Ay}]}function om(n){return n}function Ga(n){if(!n.strictActionTypeUniqueness)return;const t=Object.entries(Kd).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(", ")}. ${dd}#strictactiontypeuniqueness`)}function sm(n={},t={}){return[{provide:ny,useFactory:hy},{provide:fC,useValue:t.initialState},{provide:iy,useFactory:ud,deps:[fC]},{provide:od,useValue:n},{provide:Zd,useExisting:n instanceof o.nKC?n:od},{provide:Wf,deps:[od,[new o.y_5(Zd)]],useFactory:lT},{provide:KA,useValue:t.metaReducers?t.metaReducers:[]},{provide:za,deps:[YA,KA],useFactory:uy},{provide:Vl,useValue:t.reducerFactory?t.reducerFactory:Sa},{provide:qf,deps:[Vl,za],useFactory:Ql},hC,ZA,tu,ry,AC,my(t.runtimeChecks),[{provide:xc,multi:!0,deps:[Jd],useFactory:Ga}]]}const bC=[{provide:ad,useFactory:function Mc(){(0,o.WQX)(wc),(0,o.WQX)(pl),(0,o.WQX)(Cc),(0,o.WQX)(Yt),(0,o.WQX)(ny,{optional:!0}),(0,o.WQX)(xc,{optional:!0})}},{provide:o.Z63,multi:!0,useFactory:()=>()=>(0,o.WQX)(ad)}];function vn(...n){return{reducer:n.pop(),types:n.map(i=>i.type)}}function Fi(n,...t){const e=new Map;for(const i of t)for(const r of i.types){const s=e.get(r);e.set(r,s?(u,f)=>i.reducer(s(u,f),f):i.reducer)}return function(i=n,r){const s=e.get(r.type);return s?s(i,r):i}}const Ec=bn("SET_IS_LOADING_FILE",{_as:"props",_p:void 0}),u_=n=>n.appStatus,hd=sn(u_,n=>n.hoveredNodeId);let Al=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-action-icon"]],inputs:{icon:"icon"},standalone:!0,features:[o.aNF],decls:1,vars:2,consts:[["role","button"]],template:function(i,r){1&i&&o.nrm(0,"i",0),2&i&&o.HbH(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})();const ph=bn("SET_IS_LOADING_MAP",{_as:"props",_p:void 0});var ja=function(n){return n.SquarifiedTreeMap="Squarified TreeMap",n.StreetMap="StreetMap",n.TreeMapStreet="TreeMapStreet",n}(ja||{}),fd=function(n){return n.Standard="High",n.PixelRatioNoAA="Low",n.PixelRatioFXAA="Medium",n.PixelRatioAA="Best",n}(fd||{}),Zo=function(n){return n.FILE="File",n.FOLDER="Folder",n}(Zo||{}),pd=function(n){return n.NAME="Name",n.NUMBER_OF_FILES="Number of Files",n}(pd||{}),Sc=function(n){return n.absolute="absolute",n.relative="relative",n}(Sc||{}),jl=function(n){return n.trueGradient="trueGradient",n.weightedGradient="weightedGradient",n.focusedGradient="focusedGradient",n.absolute="absolute",n}(jl||{}),$l=function(n){return n.none="none",n.from="from",n.to="to",n.both="both",n}($l||{});function cm(n,t){return t instanceof Map?{dataType:"Map",value:[...t.entries()]}:t instanceof Set?{dataType:"Set",value:[...t]}:t}function _y(n,t){return"Map"===t?.dataType?new Map(t.value):"Set"===t?.dataType?new Set(t.value):t}function ao(n,t,e){const i=(0,eo.T)(n)||t||e?{next:n,error:t,complete:e}:n;return i?(0,Fr.N)((r,s)=>{var l;null===(l=i.subscribe)||void 0===l||l.call(i);let u=!0;r.subscribe((0,sr._)(s,f=>{var p;null===(p=i.next)||void 0===p||p.call(i,f),s.next(f)},()=>{var f;u=!1,null===(f=i.complete)||void 0===f||f.call(i),s.complete()},f=>{var p;u=!1,null===(p=i.error)||void 0===p||p.call(i,f),s.error(f)},()=>{var f,p;u&&(null===(f=i.unsubscribe)||void 0===f||f.call(i)),null===(p=i.finalize)||void 0===p||p.call(i)}))}):Ul.D}function M(n){var t,e,i;if(Array.isArray(n)){for(e=Array(t=n.length);t--;)e[t]=(i=n[t])&&"object"==typeof i?M(i):i;return e}if("[object Object]"===Object.prototype.toString.call(n)){for(t in e={},n)"__proto__"===t?Object.defineProperty(e,t,{value:M(n[t]),configurable:!0,enumerable:!0,writable:!0}):e[t]=(i=n[t])&&"object"==typeof i?M(i):i;return e}return n}function C(n){return M(n)}const S=bn("SET_FILES",{_as:"props",_p:void 0}),E=bn("ADD_FILE",{_as:"props",_p:void 0}),N=bn("REMOVE_FILES",{_as:"props",_p:void 0}),$=bn("SET_STANDARD",{_as:"props",_p:void 0}),se=bn("SET_STANDARD_BY_NAMES",{_as:"props",_p:void 0}),xe=bn("SWITCH_REFERENCE_AND_COMPARISON"),ge=bn("SET_DELTA_COMPARISON",{_as:"props",_p:void 0}),Xe=bn("SET_DELTA_REFERENCE",{_as:"props",_p:void 0}),tt=bn("SET_DELTA",{_as:"props",_p:void 0}),mt=[S,E,N,$,se,xe,ge,Xe,tt];var bt=function(n){return n.Reference="Reference",n.Comparison="Comparison",n.Partial="Partial",n.None="None",n}(bt||{});const yn=n=>n.files,Sn=sn(yn,n=>n.find(t=>t.selectedAs===bt.Reference)?.file);function mi(n){return null!=n&&"false"!=`${n}`}function Gn(n,t=0){return function ni(n){return!isNaN(parseFloat(n))&&!isNaN(Number(n))}(n)?Number(n):2===arguments.length?t:0}function Dr(n){return Array.isArray(n)?n:[n]}function hi(n){return null==n?"":"string"==typeof n?n:`${n}px`}function Ci(n){return n instanceof o.aKT?n.nativeElement:n}function mr(n,t=0){return(0,Fr.N)((e,i)=>{i.add(n.schedule(()=>e.subscribe(i),t))})}function Ks(n,t){if(!n)throw new Error("Iterable cannot be null");return new Xr.c(e=>{qs(e,t,()=>{const i=n[Symbol.asyncIterator]();qs(e,t,()=>{i.next().then(r=>{r.done?e.complete():e.next(r.value)})},0,!0)})})}function aa(n,t){return t?function xs(n,t){if(null!=n){if(cC(n))return function yr(n,t){return Pr(n).pipe(mr(t),Ws(t))}(n,t);if(Mo(n))return function Qo(n,t){return new Xr.c(e=>{let i=0;return t.schedule(function(){i===n.length?e.complete():(e.next(n[i++]),e.closed||this.schedule())})})}(n,t);if(OA(n))return function Hi(n,t){return Pr(n).pipe(mr(t),Ws(t))}(n,t);if(dC(n))return Ks(n,t);if(Ns(n))return function Xs(n,t){return new Xr.c(e=>{let i;return qs(e,t,()=>{i=n[e_](),qs(e,t,()=>{let r,s;try{({value:r,done:s}=i.next())}catch(l){return void e.error(l)}s?e.complete():e.next(r)},0,!0)}),()=>(0,eo.T)(i?.return)&&i.return()})}(n,t);if(NA(n))return function $r(n,t){return Ks(Ll(n),t)}(n,t)}throw J0(n)}(n,t):Pr(n)}function So(...n){return aa(n,oh(n))}function Ys(n,t,e=1/0){return(0,eo.T)(t)?Ys((i,r)=>(0,$n.T)((s,l)=>t(i,s,r,l))(Pr(n(i,r))),e):("number"==typeof t&&(e=t),(0,Fr.N)((i,r)=>function la(n,t,e,i,r,s,l,u){const f=[];let p=0,m=0,_=!1;const b=()=>{_&&!f.length&&!p&&t.complete()},w=D=>p{s&&t.next(D),p++;let T=!1;Pr(e(D,m++)).subscribe((0,sr._)(t,I=>{r?.(I),s?w(I):t.next(I)},()=>{T=!0},void 0,()=>{if(T)try{for(p--;f.length&&pF(I)):F(I)}b()}catch(I){t.error(I)}}))};return n.subscribe((0,sr._)(t,w,()=>{_=!0,b()})),()=>{u?.()}}(i,r,n,e)))}const{isArray:Tc}=Array;function Fc(n){return(0,$n.T)(t=>function Ic(n,t){return Tc(t)?n(...t):n(t)}(n,t))}const nu=["addListener","removeListener"],Ad=["addEventListener","removeEventListener"],iu=["on","off"];function Ls(n,t,e,i){if((0,eo.T)(e)&&(i=e,e=void 0),i)return Ls(n,t,e).pipe(Fc(i));const[r,s]=function by(n){return(0,eo.T)(n.addEventListener)&&(0,eo.T)(n.removeEventListener)}(n)?Ad.map(l=>u=>n[l](t,u,e)):function tp(n){return(0,eo.T)(n.addListener)&&(0,eo.T)(n.removeListener)}(n)?nu.map(Dc(n,t)):function Ah(n){return(0,eo.T)(n.on)&&(0,eo.T)(n.off)}(n)?iu.map(Dc(n,t)):[];if(!r&&Mo(n))return Ys(l=>Ls(l,t,e))(Pr(n));if(!r)throw new TypeError("Invalid event target");return new Xr.c(l=>{const u=(...f)=>l.next(1s(u)})}function Dc(n,t){return e=>i=>n[e](t,i)}const h_={schedule(n){let t=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=h_;i&&(t=i.requestAnimationFrame,e=i.cancelAnimationFrame);const r=t(s=>{e=void 0,n(s)});return new un.yU(()=>e?.(r))},requestAnimationFrame(...n){const{delegate:t}=h_;return(t?.requestAnimationFrame||requestAnimationFrame)(...n)},cancelAnimationFrame(...n){const{delegate:t}=h_;return(t?.cancelAnimationFrame||cancelAnimationFrame)(...n)},delegate:void 0};new class vy extends ar{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 uT extends Ea{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=h_.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:s}=t;null!=e&&(null===(r=s[s.length-1])||void 0===r?void 0:r.id)!==e&&(h_.cancelAnimationFrame(e),t._scheduled=void 0)}});let vC,$P=1;const yy={};function qP(n){return n in yy&&(delete yy[n],!0)}const EV={setImmediate(n){const t=$P++;return yy[t]=!0,vC||(vC=Promise.resolve()),vC.then(()=>qP(t)&&n()),t},clearImmediate(n){qP(n)}},{setImmediate:WP,clearImmediate:wC}=EV,dm={setImmediate(...n){const{delegate:t}=dm;return(t?.setImmediate||WP)(...n)},clearImmediate(n){const{delegate:t}=dm;return(t?.clearImmediate||wC)(n)},delegate:void 0},f_=new class wy extends ar{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 um extends Ea{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=dm.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:s}=t;null!=e&&(null===(r=s[s.length-1])||void 0===r?void 0:r.id)!==e&&(dm.clearImmediate(e),t._scheduled===e&&(t._scheduled=void 0))}}),ru=new ar(Ea),hm=ru;function np(n=0,t,e=hm){let i=-1;return null!=t&&(n_(t)?e=t:i=t),new Xr.c(r=>{let s=function Cy(n){return n instanceof Date&&!isNaN(n)}(n)?+n-e.now():n;s<0&&(s=0);let l=0;return e.schedule(function(){r.closed||(r.next(l++),0<=i?this.schedule(void 0,i):r.complete())},s)})}function p_(n,t=ru){return function xC(n){return(0,Fr.N)((t,e)=>{let i=!1,r=null,s=null,l=!1;const u=()=>{if(s?.unsubscribe(),s=null,i){i=!1;const p=r;r=null,e.next(p)}l&&e.complete()},f=()=>{s=null,l&&e.complete()};t.subscribe((0,sr._)(e,p=>{i=!0,r=p,s||Pr(n(p)).subscribe(s=(0,sr._)(e,u,f))},()=>{l=!0,(!i||!s||s.closed)&&e.complete()}))})}(()=>np(n,t))}function ur(n,t){return(0,Fr.N)((e,i)=>{let r=0;e.subscribe((0,sr._)(i,s=>n.call(t,s,r++)&&i.next(s)))})}function vo(n){return(0,Fr.N)((t,e)=>{Pr(n).subscribe((0,sr._)(e,()=>e.complete(),t_.l)),!e.closed&&t.subscribe(e)})}let ip;try{ip=typeof Intl<"u"&&Intl.v8BreakIterator}catch{ip=!1}let fm,Fo=(()=>{class n{constructor(e){this._platformId=e,this.isBrowser=this._platformId?function Vx(n){return n===Yu}(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&&!ip)&&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)(o.KVO(o.Agw))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const hT=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function My(){if(fm)return fm;if("object"!=typeof document||!document)return fm=new Set(hT),fm;let n=document.createElement("input");return fm=new Set(hT.filter(t=>(n.setAttribute("type",t),n.type===t))),fm}let pm;function rp(n){return function KP(){if(null==pm&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>pm=!0}))}finally{pm=pm||!1}return pm}()?n:!!n.capture}var $a=function(n){return n[n.NORMAL=0]="NORMAL",n[n.NEGATED=1]="NEGATED",n[n.INVERTED=2]="INVERTED",n}($a||{});let A_,ou,pT;function fT(){if(null==ou){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return ou=!1,ou;if("scrollBehavior"in document.documentElement.style)ou=!0;else{const n=Element.prototype.scrollTo;ou=!!n&&!/\{\s*\[native code\]\s*\}/.test(n.toString())}}return ou}function Ey(){if("object"!=typeof document||!document)return $a.NORMAL;if(null==A_){const n=document.createElement("div"),t=n.style;n.dir="rtl",t.width="1px",t.overflow="auto",t.visibility="hidden",t.pointerEvents="none",t.position="absolute";const e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",n.appendChild(e),document.body.appendChild(n),A_=$a.NORMAL,0===n.scrollLeft&&(n.scrollLeft=1,A_=0===n.scrollLeft?$a.NEGATED:$a.INVERTED),n.remove()}return A_}function op(){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 ql(n){return n.composedPath?n.composedPath()[0]:n.target}function CC(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const ZP=new o.nKC("cdk-dir-doc",{providedIn:"root",factory:function AT(){return(0,o.WQX)(V)}}),MC=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let Zs=(()=>{class n{constructor(e){this.value="ltr",this.change=new o.bkB,e&&(this.value=function mT(n){const t=n?.toLowerCase()||"";return"auto"===t&&typeof navigator<"u"&&navigator?.language?MC.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)(o.KVO(ZP,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),mh=(()=>{class n{constructor(e,i,r){this._ngZone=e,this._platform=i,this._scrolled=new Ai.B,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 Xr.c(i=>{this._globalSubscription||this._addGlobalListener();const r=e>0?this._scrolled.pipe(p_(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{r.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):So()}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(ur(s=>!s||r.indexOf(s)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((r,s)=>{this._scrollableContainsElement(s,e)&&i.push(s)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let r=Ci(i),s=e.getElementRef().nativeElement;do{if(r==s)return!0}while(r=r.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>Ls(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)(o.KVO(o.SKi),o.KVO(Fo),o.KVO(V,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),r4=(()=>{class n{constructor(e,i,r,s){this.elementRef=e,this.scrollDispatcher=i,this.ngZone=r,this.dir=s,this._destroyed=new Ai.B,this._elementScrolled=new Xr.c(l=>this.ngZone.runOutsideAngular(()=>Ls(this.elementRef.nativeElement,"scroll").pipe(vo(this._destroyed)).subscribe(l)))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(e){const i=this.elementRef.nativeElement,r=this.dir&&"rtl"==this.dir.value;null==e.left&&(e.left=r?e.end:e.start),null==e.right&&(e.right=r?e.start:e.end),null!=e.bottom&&(e.top=i.scrollHeight-i.clientHeight-e.bottom),r&&Ey()!=$a.NORMAL?(null!=e.left&&(e.right=i.scrollWidth-i.clientWidth-e.left),Ey()==$a.INVERTED?e.left=e.right:Ey()==$a.NEGATED&&(e.left=e.right?-e.right:e.right)):null!=e.right&&(e.left=i.scrollWidth-i.clientWidth-e.right),this._applyScrollToOptions(e)}_applyScrollToOptions(e){const i=this.elementRef.nativeElement;fT()?i.scrollTo(e):(null!=e.top&&(i.scrollTop=e.top),null!=e.left&&(i.scrollLeft=e.left))}measureScrollOffset(e){const i="left",r="right",s=this.elementRef.nativeElement;if("top"==e)return s.scrollTop;if("bottom"==e)return s.scrollHeight-s.clientHeight-s.scrollTop;const l=this.dir&&"rtl"==this.dir.value;return"start"==e?e=l?r:i:"end"==e&&(e=l?i:r),l&&Ey()==$a.INVERTED?e==i?s.scrollWidth-s.clientWidth-s.scrollLeft:s.scrollLeft:l&&Ey()==$a.NEGATED?e==i?s.scrollLeft+s.scrollWidth-s.clientWidth:-s.scrollLeft:e==i?s.scrollLeft:s.scrollWidth-s.clientWidth-s.scrollLeft}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT),o.rXU(mh),o.rXU(o.SKi),o.rXU(Zs,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]],standalone:!0})}}return n})(),_T=(()=>{class n{constructor(e,i,r){this._platform=e,this._change=new Ai.B,this._changeListener=s=>{this._change.next(s)},this._document=r,i.runOutsideAngular(()=>{if(e.isBrowser){const s=this._getWindow();s.addEventListener("resize",this._changeListener),s.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,s=r.getBoundingClientRect();return{top:-s.top||e.body.scrollTop||i.scrollY||r.scrollTop||0,left:-s.left||e.body.scrollLeft||i.scrollX||r.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(p_(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)(o.KVO(Fo),o.KVO(o.SKi),o.KVO(V,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();class vT{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 Am extends vT{constructor(t,e,i,r,s){super(),this.component=t,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=r,this.projectableNodes=s}}class g_ extends vT{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 d4 extends vT{constructor(t){super(),this.element=t instanceof o.aKT?t.nativeElement:t}}class FC{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(t){return t instanceof Am?(this._attachedPortal=t,this.attachComponentPortal(t)):t instanceof g_?(this._attachedPortal=t,this.attachTemplatePortal(t)):this.attachDomPortal&&t instanceof d4?(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 DC extends FC{constructor(t,e,i,r,s){super(),this.outletElement=t,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=r,this.attachDomPortal=l=>{const u=l.element,f=this._document.createComment("dom-portal");u.parentNode.insertBefore(f,u),this.outletElement.appendChild(u),this._attachedPortal=l,super.setDisposeFn(()=>{f.parentNode&&f.parentNode.replaceChild(u,f)})},this._document=s}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||o.zZn.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 __=(()=>{class n extends FC{constructor(e,i,r){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new o.bkB,this.attachDomPortal=s=>{const l=s.element,u=this._document.createComment("dom-portal");s.setAttachedHost(this),l.parentNode.insertBefore(u,l),this._getRootNode().appendChild(l),this._attachedPortal=s,super.setDisposeFn(()=>{u.parentNode&&u.parentNode.replaceChild(l,u)})},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,s=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),l=i.createComponent(s,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(l.hostView.rootNodes[0]),super.setDisposeFn(()=>l.destroy()),this._attachedPortal=e,this._attachedRef=l,this.attached.emit(l),l}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)(o.rXU(o.OM3),o.rXU(o.c1b),o.rXU(V))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],standalone:!0,features:[o.Vt3]})}}return n})();function f4(n=1/0){return Ys(Ul.D,n)}const bh=new Xr.c(n=>n.complete());function Wl(...n){const t=oh(n),e=function Wv(n,t){return"number"==typeof Qf(n)?n.pop():t}(n,1/0),i=n;return i.length?1===i.length?Pr(i[0]):f4(e)(aa(i,t)):bh}function Yl(n,...t){return t.length?t.some(e=>n[e]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}const VC=fT();class q4{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=hi(-this._previousScrollPosition.left),t.style.top=hi(-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,s=i.scrollBehavior||"",l=r.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),VC&&(i.scrollBehavior=r.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),VC&&(i.scrollBehavior=s,r.scrollBehavior=l)}}_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 lp{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(ur(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 By{enable(){}disable(){}attach(){}}function cp(n,t){return t.some(e=>n.bottome.bottom||n.righte.right)}function QC(n,t){return t.some(e=>n.tope.bottom||n.lefte.right)}class zC{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();cp(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 GC=(()=>{class n{constructor(e,i,r,s){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=r,this.noop=()=>new By,this.close=l=>new lp(this._scrollDispatcher,this._ngZone,this._viewportRuler,l),this.block=()=>new q4(this._viewportRuler,this._document),this.reposition=l=>new zC(this._scrollDispatcher,this._viewportRuler,this._ngZone,l),this._document=s}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(mh),o.KVO(_T),o.KVO(o.SKi),o.KVO(V))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();class xm{constructor(t){if(this.scrollStrategy=new By,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 X4{constructor(t,e){this.connectionPair=t,this.scrollableViewProperties=e}}let jC=(()=>{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)(o.KVO(V))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),K4=(()=>{class n extends jC{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=r=>{const s=this._attachedOverlays;for(let l=s.length-1;l>-1;l--)if(s[l]._keydownEvents.observers.length>0){const u=s[l]._keydownEvents;this._ngZone?this._ngZone.run(()=>u.next(r)):u.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)(o.KVO(V),o.KVO(o.SKi,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Y4=(()=>{class n extends jC{constructor(e,i,r){super(e),this._platform=i,this._ngZone=r,this._cursorStyleIsSet=!1,this._pointerDownListener=s=>{this._pointerDownEventTarget=ql(s)},this._clickListener=s=>{const l=ql(s),u="click"===s.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:l;this._pointerDownEventTarget=null;const f=this._attachedOverlays.slice();for(let p=f.length-1;p>-1;p--){const m=f[p];if(m._outsidePointerEvents.observers.length<1||!m.hasAttached())continue;if(LT(m.overlayElement,l)||LT(m.overlayElement,u))break;const _=m._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>_.next(s)):_.next(s)}}}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)(o.KVO(V),o.KVO(Fo),o.KVO(o.SKi,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function LT(n,t){const e=typeof ShadowRoot<"u"&&ShadowRoot;let i=t;for(;i;){if(i===n)return!0;i=e&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}let ky=(()=>{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||CC()){const r=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let s=0;sthis._backdropClick.next(b),this._backdropTransitionendHandler=b=>{this._disposeBackdrop(b.target)},this._keydownEvents=new Ai.B,this._outsidePointerEvents=new Ai.B,this._renders=new Ai.B,r.scrollStrategy&&(this._scrollStrategy=r.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=r.positionStrategy,this._afterRenderRef=(0,o.O8t)(()=>(0,o.Tzd)(()=>{this._renders.next()},{injector:this._injector}))}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._afterNextRenderRef?.destroy(),this._afterNextRenderRef=(0,o.mal)(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),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._detachContentWhenEmpty(),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._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=null,t&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.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=hi(this._config.width),t.height=hi(this._config.height),t.minWidth=hi(this._config.minWidth),t.minHeight=hi(this._config.minHeight),t.maxWidth=hi(this._config.maxWidth),t.maxHeight=hi(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=Dr(e||[]).filter(s=>!!s);r.length&&(i?t.classList.add(...r):t.classList.remove(...r))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{const t=this._renders.pipe(vo(Wl(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 $C="cdk-overlay-connected-position-bounding-box",Z4=/([A-Za-z%]+)$/;class J4{get positions(){return this._preferredPositions}constructor(t,e,i,r,s){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=s,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 Ai.B,this._resizeSubscription=un.yU.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(t)}attach(t){this._validatePositions(),t.hostElement.classList.add($C),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,s=[];let l;for(let u of this._preferredPositions){let f=this._getOriginPoint(t,r,u),p=this._getOverlayPoint(f,e,u),m=this._getOverlayFit(p,e,i,u);if(m.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(u,f);this._canFitWithFlexibleDimensions(m,p,i)?s.push({position:u,origin:f,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(f,u)}):(!l||l.overlayFit.visibleAreaf&&(f=m,u=p)}return this._isPushed=!1,void this._applyPosition(u.position,u.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(l.position,l.originPoint);this._applyPosition(l.position,l.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&As(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove($C),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,s;if("center"==i.originX)r=t.left+t.width/2;else{const l=this._isRtl()?t.right:t.left,u=this._isRtl()?t.left:t.right;r="start"==i.originX?l:u}return e.left<0&&(r-=e.left),s="center"==i.originY?t.top+t.height/2:"top"==i.originY?t.top:t.bottom,e.top<0&&(s-=e.top),{x:r,y:s}}_getOverlayPoint(t,e,i){let r,s;return r="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,s="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:t.x+r,y:t.y+s}}_getOverlayFit(t,e,i,r){const s=VT(e);let{x:l,y:u}=t,f=this._getOffset(r,"x"),p=this._getOffset(r,"y");f&&(l+=f),p&&(u+=p);let b=0-u,w=u+s.height-i.height,F=this._subtractOverflows(s.width,0-l,l+s.width-i.width),D=this._subtractOverflows(s.height,b,w),T=F*D;return{visibleArea:T,isCompletelyWithinViewport:s.width*s.height===T,fitsInViewportVertically:D===s.height,fitsInViewportHorizontally:F==s.width}}_canFitWithFlexibleDimensions(t,e,i){if(this._hasFlexibleDimensions){const r=i.bottom-e.y,s=i.right-e.x,l=UT(this._overlayRef.getConfig().minHeight),u=UT(this._overlayRef.getConfig().minWidth);return(t.fitsInViewportVertically||null!=l&&l<=r)&&(t.fitsInViewportHorizontally||null!=u&&u<=s)}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=VT(e),s=this._viewportRect,l=Math.max(t.x+r.width-s.width,0),u=Math.max(t.y+r.height-s.height,0),f=Math.max(s.top-i.top-t.y,0),p=Math.max(s.left-i.left-t.x,0);let m=0,_=0;return m=r.width<=s.width?p||-l:t.xF&&!this._isInitialRender&&!this._growAfterOpen&&(l=t.y-F/2)}if("end"===e.overlayX&&!r||"start"===e.overlayX&&r)b=i.width-t.x+2*this._viewportMargin,m=t.x-this._viewportMargin;else if("start"===e.overlayX&&!r||"end"===e.overlayX&&r)_=t.x,m=i.right-t.x;else{const w=Math.min(i.right-t.x+i.left,t.x),F=this._lastBoundingBoxSize.width;m=2*w,_=t.x-w,m>F&&!this._isInitialRender&&!this._growAfterOpen&&(_=t.x-F/2)}return{top:l,left:_,bottom:u,right:b,width:m,height:s}}_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 s=this._overlayRef.getConfig().maxHeight,l=this._overlayRef.getConfig().maxWidth;r.height=hi(i.height),r.top=hi(i.top),r.bottom=hi(i.bottom),r.width=hi(i.width),r.left=hi(i.left),r.right=hi(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",s&&(r.maxHeight=hi(s)),l&&(r.maxWidth=hi(l))}this._lastBoundingBoxSize=i,As(this._boundingBox.style,r)}_resetBoundingBoxStyles(){As(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){As(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,e){const i={},r=this._hasExactPosition(),s=this._hasFlexibleDimensions,l=this._overlayRef.getConfig();if(r){const m=this._viewportRuler.getViewportScrollPosition();As(i,this._getExactOverlayY(e,t,m)),As(i,this._getExactOverlayX(e,t,m))}else i.position="static";let u="",f=this._getOffset(e,"x"),p=this._getOffset(e,"y");f&&(u+=`translateX(${f}px) `),p&&(u+=`translateY(${p}px)`),i.transform=u.trim(),l.maxHeight&&(r?i.maxHeight=hi(l.maxHeight):s&&(i.maxHeight="")),l.maxWidth&&(r?i.maxWidth=hi(l.maxWidth):s&&(i.maxWidth="")),As(this._pane.style,i)}_getExactOverlayY(t,e,i){let r={top:"",bottom:""},s=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),"bottom"===t.overlayY?r.bottom=this._document.documentElement.clientHeight-(s.y+this._overlayRect.height)+"px":r.top=hi(s.y),r}_getExactOverlayX(t,e,i){let l,r={left:"",right:""},s=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),l=this._isRtl()?"end"===t.overlayX?"left":"right":"end"===t.overlayX?"right":"left","right"===l?r.right=this._document.documentElement.clientWidth-(s.x+this._overlayRect.width)+"px":r.left=hi(s.x),r}_getScrollVisibility(){const t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(r=>r.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:QC(t,i),isOriginOutsideView:cp(t,i),isOverlayClipped:QC(e,i),isOverlayOutsideView:cp(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&&Dr(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 o.aKT)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 As(n,t){for(let e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n}function UT(n){if("number"!=typeof n&&null!=n){const[t,e]=n.split(Z4);return e&&"px"!==e?null:parseFloat(t)}return n||null}function VT(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 QT="cdk-global-overlay-wrapper";class tO{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(QT),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:s,maxWidth:l,maxHeight:u}=i,f=!("100%"!==r&&"100vw"!==r||l&&"100%"!==l&&"100vw"!==l),p=!("100%"!==s&&"100vh"!==s||u&&"100%"!==u&&"100vh"!==u),m=this._xPosition,_=this._xOffset,b="rtl"===this._overlayRef.getConfig().direction;let w="",F="",D="";f?D="flex-start":"center"===m?(D="center",b?F=_:w=_):b?"left"===m||"end"===m?(D="flex-end",w=_):("right"===m||"start"===m)&&(D="flex-start",F=_):"left"===m||"start"===m?(D="flex-start",w=_):("right"===m||"end"===m)&&(D="flex-end",F=_),t.position=this._cssPosition,t.marginLeft=f?"0":w,t.marginTop=p?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=f?"0":F,e.justifyContent=D,e.alignItems=p?"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(QT),i.justifyContent=i.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}}let nO=(()=>{class n{constructor(e,i,r,s){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=s}global(){return new tO}flexibleConnectedTo(e){return new J4(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(_T),o.KVO(V),o.KVO(Fo),o.KVO(ky))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),zT=0,Us=(()=>{class n{constructor(e,i,r,s,l,u,f,p,m,_,b,w){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=r,this._positionBuilder=s,this._keyboardDispatcher=l,this._injector=u,this._ngZone=f,this._document=p,this._directionality=m,this._location=_,this._outsideClickDispatcher=b,this._animationsModuleType=w}create(e){const i=this._createHostElement(),r=this._createPaneElement(i),s=this._createPortalOutlet(r),l=new xm(e);return l.direction=l.direction||this._directionality.value,new x_(s,i,r,l,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType,this._injector.get(o.uvJ))}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+zT++,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(o.o8S)),new DC(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(GC),o.KVO(ky),o.KVO(o.OM3),o.KVO(nO),o.KVO(K4),o.KVO(o.zZn),o.KVO(o.SKi),o.KVO(V),o.KVO(Zs),o.KVO(Ne),o.KVO(Y4),o.KVO(o.bc$,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const iO=[{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"}],Ry=new o.nKC("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{const n=(0,o.WQX)(Us);return()=>n.scrollStrategies.reposition()}});let Py=(()=>{class n{constructor(e){this.elementRef=e}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"],standalone:!0})}}return n})(),GT=(()=>{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,s,l){this._overlay=e,this._dir=l,this._backdropSubscription=un.yU.EMPTY,this._attachSubscription=un.yU.EMPTY,this._detachSubscription=un.yU.EMPTY,this._positionSubscription=un.yU.EMPTY,this._disposeOnNavigation=!1,this._ngZone=(0,o.WQX)(o.SKi),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 o.bkB,this.positionChange=new o.bkB,this.attach=new o.bkB,this.detach=new o.bkB,this.overlayKeydown=new o.bkB,this.overlayOutsideClick=new o.bkB,this._templatePortal=new g_(i,r),this._scrollStrategyFactory=s,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=iO);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&&!Yl(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{const r=this._getOriginElement(),s=ql(i);(!r||r!==s&&!r.contains(s))&&this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new xm({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._getOrigin()).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._getOrigin());return this._updatePositionStrategy(e),e}_getOrigin(){return this.origin instanceof Py?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof Py?this.origin.elementRef.nativeElement:this.origin instanceof o.aKT?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_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 gh(n,t=!1){return(0,Fr.N)((e,i)=>{let r=0;e.subscribe((0,sr._)(i,s=>{const l=n(s,r++);(l||t)&&i.next(s),!l&&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)(o.rXU(Us),o.rXU(o.C4Q),o.rXU(o.c1b),o.rXU(Ry),o.rXU(Zs,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",o.L39],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",o.L39],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",o.L39],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",o.L39],push:[2,"cdkConnectedOverlayPush","push",o.L39],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",o.L39]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],standalone:!0,features:[o.GFd,o.OA$]})}}return n})();function M_(n,t=ru){return(0,Fr.N)((e,i)=>{let r=null,s=null,l=null;const u=()=>{if(r){r.unsubscribe(),r=null;const p=s;s=null,i.next(p)}};function f(){const p=l+n,m=t.now();if(m{s=p,l=t.now(),r||(r=t.schedule(f,n),i.add(r))},()=>{u(),i.complete()},void 0,()=>{s=r=null}))})}function ms(n){return n<=0?()=>bh:(0,Fr.N)((t,e)=>{let i=0;t.subscribe((0,sr._)(e,r=>{++i<=n&&(e.next(r),n<=i&&e.complete())}))})}function E_(n){return ur((t,e)=>n<=e)}function Oy(n,t,e){const i=T_(n,t);e=e.trim(),!i.some(r=>r.trim()===e)&&(i.push(e),n.setAttribute(t,i.join(" ")))}function jT(n,t,e){const i=T_(n,t);e=e.trim();const r=i.filter(s=>s!==e);r.length?n.setAttribute(t,r.join(" ")):n.removeAttribute(t)}function T_(n,t){return n.getAttribute(t)?.match(/\S+/g)??[]}const WC="cdk-describedby-message",dp="cdk-describedby-host";let I_=0,au=(()=>{class n{constructor(e,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+I_++,this._document=e,this._id=(0,o.WQX)(o.sZ2)+"-"+I_++}describe(e,i,r){if(!this._canBeDescribed(e,i))return;const s=XC(i,r);"string"!=typeof i?($T(i,this._id),this._messageRegistry.set(s,{messageElement:i,referenceCount:0})):this._messageRegistry.has(s)||this._createMessageElement(i,r),this._isElementDescribedByMessage(e,s)||this._addMessageReference(e,s)}removeDescription(e,i,r){if(!i||!this._isElementNode(e))return;const s=XC(i,r);if(this._isElementDescribedByMessage(e,s)&&this._removeMessageReference(e,s),"string"==typeof i){const l=this._messageRegistry.get(s);l&&0===l.referenceCount&&this._deleteMessageElement(s)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${dp}="${this._id}"]`);for(let i=0;i0!=r.indexOf(WC));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const r=this._messageRegistry.get(i);Oy(e,"aria-describedby",r.messageElement.id),e.setAttribute(dp,this._id),r.referenceCount++}_removeMessageReference(e,i){const r=this._messageRegistry.get(i);r.referenceCount--,jT(e,"aria-describedby",r.messageElement.id),e.removeAttribute(dp)}_isElementDescribedByMessage(e,i){const r=T_(e,"aria-describedby"),s=this._messageRegistry.get(i),l=s&&s.messageElement.id;return!!l&&-1!=r.indexOf(l)}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&"object"==typeof i)return!0;const r=null==i?"":`${i}`.trim(),s=e.getAttribute("aria-label");return!(!r||s&&s.trim()===r)}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(V),o.KVO(Fo))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function XC(n,t){return"string"==typeof n?`${t||""}/${n}`:n}function $T(n,t){n.id||(n.id=`${WC}-${t}-${I_++}`)}class qT{constructor(t,e){this._letterKeyStream=new Ai.B,this._items=[],this._selectedItemIndex=-1,this._pressedLetters=[],this._selectedItem=new Ai.B,this.selectedItem=this._selectedItem;const i="number"==typeof e?.debounceInterval?e.debounceInterval:200;e?.skipPredicate&&(this._skipPredicateFn=e.skipPredicate),this.setItems(t),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(t){this._selectedItemIndex=t}setItems(t){this._items=t}handleKey(t){const e=t.keyCode;t.key&&1===t.key.length?this._letterKeyStream.next(t.key.toLocaleUpperCase()):(e>=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(t){this._letterKeyStream.pipe(ao(e=>this._pressedLetters.push(e)),M_(t),ur(()=>this._pressedLetters.length>0),(0,$n.T)(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(e=>{for(let i=1;ii.disabled,this.tabOut=new Ai.B,this.change=new Ai.B,t instanceof o.rOR?this._itemChangesSubscription=t.changes.subscribe(i=>this._itemsChanged(i.toArray())):(0,o.Hps)(t)&&(this._effectRef=(0,o.QZP)(()=>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){this._typeaheadSubscription.unsubscribe();const e=this._getItemsArray();return this._typeahead=new qT(e,{debounceInterval:"number"==typeof t?t:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(t=!0){return this._homeAndEnd=t,this}withPageUpDown(t=!0,e=10){return this._pageUpAndDown={enabled:t,delta:e},this}setActiveItem(t){const e=this._activeItem;this.updateActiveItem(t),this._activeItem!==e&&this.change.next(this._activeItemIndex)}onKeydown(t){const e=t.keyCode,r=["altKey","ctrlKey","metaKey","shiftKey"].every(s=>!t[s]||this._allowedModifierKeys.indexOf(s)>-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 s=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(s>0?s:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&r){const s=this._activeItemIndex+this._pageUpAndDown.delta,l=this._getItemsArray().length;this._setActiveItemByIndex(s-1&&e!==this._activeItemIndex&&(this._activeItemIndex=e,this._typeahead?.setCurrentSelectedItemIndex(e))}}}class WT extends up{setActiveItem(t){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(t),this.activeItem&&this.activeItem.setActiveStyles()}}class lu extends up{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 YC=(()=>{class n{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function cO(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 lO(n){try{return n.frameElement}catch{return null}}(function JT(n){return n.ownerDocument&&n.ownerDocument.defaultView||window}(e));if(i&&(-1===ZC(i)||!this.isVisible(i)))return!1;let r=e.nodeName.toLowerCase(),s=ZC(e);return e.hasAttribute("contenteditable")?-1!==s:!("iframe"===r||"object"===r||this._platform.WEBKIT&&this._platform.IOS&&!function hO(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!==s:"video"===r?-1!==s&&(null!==s||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function fO(n){return!function dO(n){return function uO(n){return"input"==n.nodeName.toLowerCase()}(n)&&"hidden"==n.type}(n)&&(function KT(n){let t=n.nodeName.toLowerCase();return"input"===t||"select"===t||"button"===t||"textarea"===t}(n)||function Ly(n){return function YT(n){return"a"==n.nodeName.toLowerCase()}(n)&&n.hasAttribute("href")}(n)||n.hasAttribute("contenteditable")||ZT(n))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Fo))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function ZT(n){if(!n.hasAttribute("tabindex")||void 0===n.tabIndex)return!1;let t=n.getAttribute("tabindex");return!(!t||isNaN(parseInt(t,10)))}function ZC(n){if(!ZT(n))return null;const t=parseInt(n.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}class Uy{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,s=!1,l){this._element=t,this._checker=e,this._ngZone=i,this._document=r,this._injector=l,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,s||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._injector?(0,o.mal)(t,{injector:this._injector}):setTimeout(t)}}let JC=(()=>{class n{constructor(e,i,r){this._checker=e,this._ngZone=i,this._injector=(0,o.WQX)(o.zZn),this._document=r}create(e,i=!1){return new Uy(e,this._checker,this._ngZone,this._document,i,this._injector)}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(YC),o.KVO(o.SKi),o.KVO(V))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function Em(n){return 0===n.buttons||0===n.detail}function F_(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 pO=new o.nKC("cdk-input-modality-detector-options"),wH={ignoreKeys:[18,17,224,91,16]},Sm=rp({passive:!0,capture:!0});let mO=(()=>{class n{get mostRecentModality(){return this._modality.value}constructor(e,i,r,s){this._platform=e,this._mostRecentTarget=null,this._modality=new Xd.t(null),this._lastTouchMs=0,this._onKeydown=l=>{this._options?.ignoreKeys?.some(u=>u===l.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=ql(l))},this._onMousedown=l=>{Date.now()-this._lastTouchMs<650||(this._modality.next(Em(l)?"keyboard":"mouse"),this._mostRecentTarget=ql(l))},this._onTouchstart=l=>{F_(l)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=ql(l))},this._options={...wH,...s},this.modalityDetected=this._modality.pipe(E_(1)),this.modalityChanged=this.modalityDetected.pipe(Rr()),e.isBrowser&&i.runOutsideAngular(()=>{r.addEventListener("keydown",this._onKeydown,Sm),r.addEventListener("mousedown",this._onMousedown,Sm),r.addEventListener("touchstart",this._onTouchstart,Sm)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,Sm),document.removeEventListener("mousedown",this._onMousedown,Sm),document.removeEventListener("touchstart",this._onTouchstart,Sm))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Fo),o.KVO(o.SKi),o.KVO(V),o.KVO(pO,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const xH=new o.nKC("liveAnnouncerElement",{providedIn:"root",factory:function gO(){return null}}),CH=new o.nKC("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let _O=0,bO=(()=>{class n{constructor(e,i,r,s){this._ngZone=i,this._defaultOptions=s,this._document=r,this._liveElement=e||this._createLiveElement()}announce(e,...i){const r=this._defaultOptions;let s,l;return 1===i.length&&"number"==typeof i[0]?l=i[0]:[s,l]=i,this.clear(),clearTimeout(this._previousTimeout),s||(s=r&&r.politeness?r.politeness:"polite"),null==l&&r&&(l=r.duration),this._liveElement.setAttribute("aria-live",s),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(u=>this._currentResolve=u)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,"number"==typeof l&&(this._previousTimeout=setTimeout(()=>this.clear(),l)),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 s=0;s .cdk-overlay-container [aria-modal="true"]');for(let r=0;r{class n{constructor(e,i,r,s,l){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 Ai.B,this._rootNodeFocusAndBlurListener=u=>{for(let p=ql(u);p;p=p.parentElement)"focus"===u.type?this._onFocus(u,p):this._onBlur(u,p)},this._document=s,this._detectionMode=l?.detectionMode||Tm.IMMEDIATE}monitor(e,i=!1){const r=Ci(e);if(!this._platform.isBrowser||1!==r.nodeType)return So();const s=function YP(n){if(function m_(){if(null==pT){const n=typeof document<"u"?document.head:null;pT=!(!n||!n.createShadowRoot&&!n.attachShadow)}return pT}()){const t=n.getRootNode?n.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&t instanceof ShadowRoot)return t}return null}(r)||this._getDocument(),l=this._elementInfo.get(r);if(l)return i&&(l.checkChildren=!0),l.subject;const u={checkChildren:i,subject:new Ai.B,rootNode:s};return this._elementInfo.set(r,u),this._registerGlobalListeners(u),u.subject}stopMonitoring(e){const i=Ci(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 s=Ci(e);s===this._getDocument().activeElement?this._getClosestElementsInfo(s).forEach(([u,f])=>this._originChanged(u,i,f)):(this._setOrigin(i),"function"==typeof s.focus&&s.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===Tm.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===Tm.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const r=this._elementInfo.get(i),s=ql(e);!r||!r.checkChildren&&i!==s||this._originChanged(i,this._getFocusOrigin(s),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,Im),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,Im)}),this._rootNodeFocusListenerCount.set(i,r+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(vo(this._stopInputModalityDetector)).subscribe(s=>{this._setOrigin(s,!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,Im),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,Im),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,s)=>{(s===e||r.checkChildren&&s.contains(e))&&i.push([s,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 s=e.labels;if(s)for(let l=0;l{Pr(n()).subscribe(t)})}function eM(...n){return function eI(){return f4(1)}()(aa(n,oh(n)))}function cu(...n){const t=oh(n);return(0,Fr.N)((e,i)=>{(t?eM(n,e,t):eM(n,e)).subscribe(i)})}function CO(n,t){}class vh{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 tI=(()=>{class n extends FC{constructor(e,i,r,s,l,u,f,p){super(),this._elementRef=e,this._focusTrapFactory=i,this._config=s,this._interactivityChecker=l,this._ngZone=u,this._overlayRef=f,this._focusMonitor=p,this._platform=(0,o.WQX)(Fo),this._focusTrap=null,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this._ariaLabelledByQueue=[],this._changeDetectorRef=(0,o.WQX)(o.gRc),this._injector=(0,o.WQX)(o.zZn),this._isDestroyed=!1,this.attachDomPortal=m=>{this._portalOutlet.hasAttached();const _=this._portalOutlet.attachDomPortal(m);return this._contentAttached(),_},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._isDestroyed=!0,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(){this._isDestroyed||(0,o.mal)(()=>{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?.focusInitialElement()||this._focusDialogContainer();break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}},{injector:this._injector})}_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=op(),s=this._elementRef.nativeElement;(!r||r===this._document.body||r===s||s.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=op();return e===i||e.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=op()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT),o.rXU(JC),o.rXU(V,8),o.rXU(vh),o.rXU(YC),o.rXU(o.SKi),o.rXU(x_),o.rXU(Zl))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cdk-dialog-container"]],viewQuery:function(i,r){if(1&i&&o.GBs(__,7),2&i){let s;o.mGM(s=o.lsd())&&(r._portalOutlet=s.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,r){2&i&&o.BMQ("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:[o.Vt3,o.aNF],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,r){1&i&&o.DNE(0,CO,0,0,"ng-template",0)},dependencies:[__],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}}return n})();class tM{constructor(t,e){this.overlayRef=t,this.config=e,this.closed=new Ai.B,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&&!Yl(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 k_=new o.nKC("DialogScrollStrategy",{providedIn:"root",factory:()=>{const n=(0,o.WQX)(Us);return()=>n.scrollStrategies.block()}}),nI=new o.nKC("DialogData"),iI=new o.nKC("DefaultDialogConfig");let oI=0,nM=(()=>{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,s,l,u){this._overlay=e,this._injector=i,this._defaultOptions=r,this._parentDialog=s,this._overlayContainer=l,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new Ai.B,this._afterOpenedAtThisLevel=new Ai.B,this._ariaHiddenElements=new Map,this.afterAllClosed=Gy(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(cu(void 0))),this._scrollStrategy=u}open(e,i){(i={...this._defaultOptions||new vh,...i}).id=i.id||"cdk-dialog-"+oI++,i.id&&this.getDialogById(i.id);const s=this._getOverlayConfig(i),l=this._overlay.create(s),u=new tM(l,i),f=this._attachContainer(l,u,i);return u.containerInstance=f,this._attachDialogContent(e,u,f,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(u),u.closed.subscribe(()=>this._removeOpenDialog(u,!0)),this.afterOpened.next(u),u}closeAll(){Fm(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){Fm(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),Fm(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new xm({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 s=r.injector||r.viewContainerRef?.injector,l=[{provide:vh,useValue:r},{provide:tM,useValue:i},{provide:x_,useValue:e}];let u;r.container?"function"==typeof r.container?u=r.container:(u=r.container.type,l.push(...r.container.providers(r))):u=tI;const f=new Am(u,r.viewContainerRef,o.zZn.create({parent:s||this._injector,providers:l}),r.componentFactoryResolver);return e.attach(f).instance}_attachDialogContent(e,i,r,s){if(e instanceof o.C4Q){const l=this._createInjector(s,i,r,void 0);let u={$implicit:s.data,dialogRef:i};s.templateContext&&(u={...u,..."function"==typeof s.templateContext?s.templateContext():s.templateContext}),r.attachTemplatePortal(new g_(e,null,u,l))}else{const l=this._createInjector(s,i,r,this._injector),u=r.attachComponentPortal(new Am(e,s.viewContainerRef,l,s.componentFactoryResolver));i.componentRef=u,i.componentInstance=u.instance}}_createInjector(e,i,r,s){const l=e.injector||e.viewContainerRef?.injector,u=[{provide:nI,useValue:e.data},{provide:tM,useValue:i}];return e.providers&&("function"==typeof e.providers?u.push(...e.providers(i,e,r)):u.push(...e.providers)),e.direction&&(!l||!l.get(Zs,null,{optional:!0}))&&u.push({provide:Zs,useValue:{value:e.direction,change:So()}}),o.zZn.create({parent:l||s,providers:u})}_removeOpenDialog(e,i){const r=this.openDialogs.indexOf(e);r>-1&&(this.openDialogs.splice(r,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((s,l)=>{s?l.setAttribute("aria-hidden",s):l.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 s=i[r];s!==e&&"SCRIPT"!==s.nodeName&&"STYLE"!==s.nodeName&&!s.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(s,s.getAttribute("aria-hidden")),s.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Us),o.KVO(o.zZn),o.KVO(iI,8),o.KVO(n,12),o.KVO(ky),o.KVO(k_))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function Fm(n,t){let e=n.length;for(;e--;)t(n[e])}var On=v(9969);function MO(n,t){}class iM{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 rM="mdc-dialog--open",sI="mdc-dialog--opening",jy="mdc-dialog--closing";let oM=(()=>{class n extends tI{constructor(e,i,r,s,l,u,f,p,m){super(e,i,r,s,l,u,f,m),this._animationMode=p,this._animationStateChanged=new o.bkB,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._actionSectionCount=0,this._hostElement=this._elementRef.nativeElement,this._enterAnimationDuration=this._animationsEnabled?Dm(this._config.enterAnimationDuration)??150:0,this._exitAnimationDuration=this._animationsEnabled?Dm(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(lI,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(sI,rM)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(rM),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(rM),this._animationsEnabled?(this._hostElement.style.setProperty(lI,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(jy)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(e){this._actionSectionCount+=e,this._changeDetectorRef.markForCheck()}_clearAnimationClasses(){this._hostElement.classList.remove(sI,jy)}_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)(o.rXU(o.aKT),o.rXU(JC),o.rXU(V,8),o.rXU(iM),o.rXU(YC),o.rXU(o.SKi),o.rXU(x_),o.rXU(o.bc$,8),o.rXU(Zl))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,r){2&i&&(o.Mr5("id",r._config.id),o.BMQ("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),o.AVh("_mat-animation-noopable",!r._animationsEnabled)("mat-mdc-dialog-container-with-actions",r._actionSectionCount>0))},standalone:!0,features:[o.Vt3,o.aNF],decls:3,vars:0,consts:[[1,"mat-mdc-dialog-inner-container","mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,r){1&i&&(o.j41(0,"div",0)(1,"div",1),o.DNE(2,MO,0,0,"ng-template",2),o.k0s()())},dependencies:[__],styles:['.mat-mdc-dialog-container{width:100%;height:100%;display:block;box-sizing:border-box;max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;outline:0}.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-inner-container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;transition:opacity linear var(--mat-dialog-transition-duration, 0ms);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mdc-dialog--closing .mat-mdc-dialog-inner-container{transition:opacity 75ms linear;transform:none}.mdc-dialog--open .mat-mdc-dialog-inner-container{opacity:1}._mat-animation-noopable .mat-mdc-dialog-inner-container{transition:none}.mat-mdc-dialog-surface{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;width:100%;height:100%;position:relative;overflow-y:auto;outline:0;transform:scale(0.8);transition:transform var(--mat-dialog-transition-duration, 0ms) cubic-bezier(0, 0, 0.2, 1);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;box-shadow:var(--mat-dialog-container-elevation-shadow, 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));border-radius:var(--mdc-dialog-container-shape, var(--mat-app-corner-extra-large, 4px));background-color:var(--mdc-dialog-container-color, var(--mat-app-surface, white))}[dir=rtl] .mat-mdc-dialog-surface{text-align:right}.mdc-dialog--open .mat-mdc-dialog-surface,.mdc-dialog--closing .mat-mdc-dialog-surface{transform:none}._mat-animation-noopable .mat-mdc-dialog-surface{transition:none}.mat-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}.mat-mdc-dialog-title{display:block;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:var(--mat-dialog-headline-padding, 0 24px 9px)}.mat-mdc-dialog-title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mat-mdc-dialog-title{text-align:right}.mat-mdc-dialog-container .mat-mdc-dialog-title{color:var(--mdc-dialog-subhead-color, var(--mat-app-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mdc-dialog-subhead-font, var(--mat-app-headline-small-font, inherit));line-height:var(--mdc-dialog-subhead-line-height, var(--mat-app-headline-small-line-height, 1.5rem));font-size:var(--mdc-dialog-subhead-size, var(--mat-app-headline-small-size, 1rem));font-weight:var(--mdc-dialog-subhead-weight, var(--mat-app-headline-small-weight, 400));letter-spacing:var(--mdc-dialog-subhead-tracking, var(--mat-app-headline-small-tracking, 0.03125em))}.mat-mdc-dialog-content{display:block;flex-grow:1;box-sizing:border-box;margin:0;overflow:auto;max-height:65vh}.mat-mdc-dialog-content>:first-child{margin-top:0}.mat-mdc-dialog-content>:last-child{margin-bottom:0}.mat-mdc-dialog-container .mat-mdc-dialog-content{color:var(--mdc-dialog-supporting-text-color, var(--mat-app-on-surface-variant, rgba(0, 0, 0, 0.6)));font-family:var(--mdc-dialog-supporting-text-font, var(--mat-app-body-medium-font, inherit));line-height:var(--mdc-dialog-supporting-text-line-height, var(--mat-app-body-medium-line-height, 1.5rem));font-size:var(--mdc-dialog-supporting-text-size, var(--mat-app-body-medium-size, 1rem));font-weight:var(--mdc-dialog-supporting-text-weight, var(--mat-app-body-medium-weight, 400));letter-spacing:var(--mdc-dialog-supporting-text-tracking, var(--mat-app-body-medium-tracking, 0.03125em))}.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{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);padding:var(--mat-dialog-actions-padding, 8px);justify-content:var(--mat-dialog-actions-alignment, start)}.cdk-high-contrast-active .mat-mdc-dialog-actions{border-top-color:CanvasText}.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}.mat-mdc-dialog-component-host{display:contents}'],encapsulation:2})}}return n})();const lI="--mat-dialog-transition-duration";function Dm(n){return null==n?null:"number"==typeof n?n:n.endsWith("ms")?Gn(n.substring(0,n.length-2)):n.endsWith("s")?1e3*Gn(n.substring(0,n.length-1)):"0"===n?0:null}var hp=function(n){return n[n.OPEN=0]="OPEN",n[n.CLOSING=1]="CLOSING",n[n.CLOSED=2]="CLOSED",n}(hp||{});class cI{constructor(t,e,i){this._ref=t,this._containerInstance=i,this._afterOpened=new Ai.B,this._beforeClosed=new Ai.B,this._state=hp.OPEN,this.disableClose=e.disableClose,this.id=t.id,t.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(ur(r=>"opened"===r.state),ms(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(ur(r=>"closed"===r.state),ms(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),t.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Wl(this.backdropClick(),this.keydownEvents().pipe(ur(r=>27===r.keyCode&&!this.disableClose&&!Yl(r)))).subscribe(r=>{this.disableClose||(r.preventDefault(),dI(this,"keydown"===r.type?"keyboard":"mouse"))})}close(t){this._result=t,this._containerInstance._animationStateChanged.pipe(ur(e=>"closing"===e.state),ms(1)).subscribe(e=>{this._beforeClosed.next(t),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=hp.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=hp.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function dI(n,t,e){return n._closeInteractionType=t,n.close(e)}const fp=new o.nKC("MatMdcDialogData"),sM=new o.nKC("mat-mdc-dialog-default-options"),uI=new o.nKC("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{const n=(0,o.WQX)(Us);return()=>n.scrollStrategies.block()}});let fI=0,Cs=(()=>{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,s,l,u,f,p){this._overlay=e,this._defaultOptions=s,this._scrollStrategy=l,this._parentDialog=u,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new Ai.B,this._afterOpenedAtThisLevel=new Ai.B,this.dialogConfigClass=iM,this.afterAllClosed=Gy(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(cu(void 0))),this._dialog=i.get(nM),this._dialogRefConstructor=cI,this._dialogContainerType=oM,this._dialogDataToken=fp}open(e,i){let r;(i={...this._defaultOptions||new iM,...i}).id=i.id||"mat-mdc-dialog-"+fI++,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const s=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:vh,useValue:i}]},templateContext:()=>({dialogRef:r}),providers:(l,u,f)=>(r=new this._dialogRefConstructor(l,i,f),r.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:f},{provide:this._dialogDataToken,useValue:u.data},{provide:this._dialogRefConstructor,useValue:r}])});return r.componentRef=s.componentRef,r.componentInstance=s.componentInstance,this.openDialogs.push(r),this.afterOpened.next(r),r.afterClosed().subscribe(()=>{const l=this.openDialogs.indexOf(r);l>-1&&(this.openDialogs.splice(l,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)(o.KVO(Us),o.KVO(o.zZn),o.KVO(Ne,8),o.KVO(sM,8),o.KVO(uI),o.KVO(n,12),o.KVO(ky),o.KVO(o.bc$,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),pI=0,Ia=(()=>{class n{constructor(e,i,r){this.dialogRef=e,this._elementRef=i,this._dialog=r,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=mI(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){dI(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(cI,8),o.rXU(o.aKT),o.rXU(Cs))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,r){1&i&&o.bIt("click",function(l){return r._onButtonClick(l)}),2&i&&o.BMQ("aria-label",r.ariaLabel||null)("type",r.type)},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],type:"type",dialogResult:[0,"mat-dialog-close","dialogResult"],_matDialogClose:[0,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],standalone:!0,features:[o.OA$]})}}return n})(),AI=(()=>{class n{constructor(e,i,r){this._dialogRef=e,this._elementRef=i,this._dialog=r}ngOnInit(){this._dialogRef||(this._dialogRef=mI(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)(o.rXU(cI,8),o.rXU(o.aKT),o.rXU(Cs))}}static{this.\u0275dir=o.FsC({type:n,standalone:!0})}}return n})(),$y=(()=>{class n extends AI{constructor(){super(...arguments),this.id="mat-mdc-dialog-title-"+pI++}_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=o.xGo(n)))(r||n)}})()}static{this.\u0275dir=o.FsC({type:n,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,r){2&i&&o.Mr5("id",r.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],standalone:!0,features:[o.Vt3]})}}return n})(),ml=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],standalone:!0,features:[o.nM4([r4])]})}}return n})(),Jl=(()=>{class n extends AI{_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=o.xGo(n)))(r||n)}})()}static{this.\u0275dir=o.FsC({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&&o.AVh("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:[o.Vt3]})}}return n})();function mI(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}const P_=["text"],aM=[[["mat-icon"]],"*"],lM=["mat-icon","*"];function EO(n,t){if(1&n&&o.nrm(0,"mat-pseudo-checkbox",1),2&n){const e=o.XpG();o.Y8G("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function km(n,t){if(1&n&&o.nrm(0,"mat-pseudo-checkbox",3),2&n){const e=o.XpG();o.Y8G("disabled",e.disabled)}}function bI(n,t){if(1&n&&(o.j41(0,"span",4),o.EFF(1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.SpI("(",e.group.label,")")}}const SO=["mat-internal-form-field",""],TO=["*"];class du{constructor(t,e,i,r,s){this._defaultMatcher=t,this.ngControl=e,this._parentFormGroup=i,this._parentForm=r,this._stateChanges=s,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,s=i?.isErrorState(r,e)??!1;s!==t&&(this.errorState=s,this._stateChanges.next())}}let CI=(()=>{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=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var Vs=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}(Vs||{});class OO{constructor(t,e,i,r=!1){this._renderer=t,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=r,this.state=Vs.HIDDEN}fadeOut(){this._renderer.fadeOutRipple(this)}}const EI=rp({passive:!0,capture:!0});class uM{constructor(){this._events=new Map,this._delegateEventHandler=t=>{const e=ql(t);e&&this._events.get(t.type)?.forEach((i,r)=>{(r===e||r.contains(e))&&i.forEach(s=>s.handleEvent(t))})}}addHandler(t,e,i,r){const s=this._events.get(e);if(s){const l=s.get(i);l?l.add(r):s.set(i,new Set([r]))}else this._events.set(e,new Map([[i,new Set([r])]])),t.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,EI)})}removeHandler(t,e,i){const r=this._events.get(t);if(!r)return;const s=r.get(e);s&&(s.delete(i),0===s.size&&r.delete(e),0===r.size&&(this._events.delete(t),document.removeEventListener(t,this._delegateEventHandler,EI)))}}const hM={enterDuration:225,exitDuration:150},Om=rp({passive:!0,capture:!0}),NO=["mousedown","touchstart"],O_=["mouseup","mouseleave","touchend","touchcancel"];class Nm{static{this._eventManager=new uM}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=Ci(i))}fadeInRipple(t,e,i={}){const r=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),s={...hM,...i.animation};i.centered&&(t=r.left+r.width/2,e=r.top+r.height/2);const l=i.radius||function SI(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),u=t-r.left,f=e-r.top,p=s.enterDuration,m=document.createElement("div");m.classList.add("mat-ripple-element"),m.style.left=u-l+"px",m.style.top=f-l+"px",m.style.height=2*l+"px",m.style.width=2*l+"px",null!=i.color&&(m.style.backgroundColor=i.color),m.style.transitionDuration=`${p}ms`,this._containerElement.appendChild(m);const _=window.getComputedStyle(m),w=_.transitionDuration,F="none"===_.transitionProperty||"0s"===w||"0s, 0s"===w||0===r.width&&0===r.height,D=new OO(this,m,i,F);m.style.transform="scale3d(1, 1, 1)",D.state=Vs.FADING_IN,i.persistent||(this._mostRecentTransientRipple=D);let T=null;return!F&&(p||s.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const I=()=>{T&&(T.fallbackTimer=null),clearTimeout(R),this._finishRippleTransition(D)},O=()=>this._destroyRipple(D),R=setTimeout(O,p+100);m.addEventListener("transitionend",I),m.addEventListener("transitioncancel",O),T={onTransitionEnd:I,onTransitionCancel:O,fallbackTimer:R}}),this._activeRipples.set(D,T),(F||!p)&&this._finishRippleTransition(D),D}fadeOutRipple(t){if(t.state===Vs.FADING_OUT||t.state===Vs.HIDDEN)return;const e=t.element,i={...hM,...t.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",t.state=Vs.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=Ci(t);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,NO.forEach(i=>{Nm._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(()=>{O_.forEach(e=>{this._triggerElement.addEventListener(e,this,Om)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(t){t.state===Vs.FADING_IN?this._startFadeOutTransition(t):t.state===Vs.FADING_OUT&&this._destroyRipple(t)}_startFadeOutTransition(t){const e=t===this._mostRecentTransientRipple,{persistent:i}=t.config;t.state=Vs.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=Vs.HIDDEN,null!==e&&(t.element.removeEventListener("transitionend",e.onTransitionEnd),t.element.removeEventListener("transitioncancel",e.onTransitionCancel),null!==e.fallbackTimer&&clearTimeout(e.fallbackTimer)),t.element.remove()}_onMousedown(t){const e=Em(t),i=this._lastTouchStartEvent&&Date.now(){!t.config.persistent&&(t.state===Vs.VISIBLE||t.config.terminateOnPointerUp&&t.state===Vs.FADING_IN)&&t.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const t=this._triggerElement;t&&(NO.forEach(e=>Nm._eventManager.removeHandler(e,t,this)),this._pointerUpEventsRegistered&&(O_.forEach(e=>t.removeEventListener(e,this,Om)),this._pointerUpEventsRegistered=!1))}}const Lm=new o.nKC("mat-ripple-global-options");let gl=(()=>{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,s,l){this._elementRef=e,this._animationMode=l,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=s||{},this._rippleRenderer=new Nm(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)(o.rXU(o.aKT),o.rXU(o.SKi),o.rXU(Fo),o.rXU(Lm,8),o.rXU(o.bc$,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,r){2&i&&o.AVh("mat-ripple-unbounded",r.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"],standalone:!0})}}return n})(),TI=(()=>{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)(o.rXU(o.bc$,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,r){2&i&&o.AVh("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:[o.aNF],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, var(--mat-app-primary))}.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, var(--mat-app-on-surface-variant));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, var(--mat-app-primary));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, var(--mat-app-on-primary))}.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, var(--mat-app-surface))}.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})();const II=new o.nKC("MAT_OPTION_PARENT_COMPONENT"),FI=new o.nKC("MatOptgroup");let LO=0;class Xy{constructor(t,e=!1){this.source=t,this.isUserInput=e}}let gd=(()=>{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,s){this._element=e,this._changeDetectorRef=i,this._parent=r,this.group=s,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+LO++,this.onSelectionChange=new o.bkB,this._stateChanges=new Ai.B}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)&&!Yl(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 Xy(this,e))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT),o.rXU(o.gRc),o.rXU(II,8),o.rXU(FI,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-option"]],viewQuery:function(i,r){if(1&i&&o.GBs(P_,7),2&i){let s;o.mGM(s=o.lsd())&&(r._text=s.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,r){1&i&&o.bIt("click",function(){return r._selectViaInteraction()})("keydown",function(l){return r._handleKeydown(l)}),2&i&&(o.Mr5("id",r.id),o.BMQ("aria-selected",r.selected)("aria-disabled",r.disabled.toString()),o.AVh("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:[2,"disabled","disabled",o.L39]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],standalone:!0,features:[o.GFd,o.aNF],ngContentSelectors:lM,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&&(o.NAR(aM),o.DNE(0,EO,1,2,"mat-pseudo-checkbox",1),o.SdG(1),o.j41(2,"span",2,0),o.SdG(4,1),o.k0s(),o.DNE(5,km,1,1,"mat-pseudo-checkbox",3)(6,bI,2,1,"span",4),o.nrm(7,"div",5)),2&i&&(o.vxM(r.multiple?0:-1),o.R7$(5),o.vxM(r.multiple||!r.selected||r.hideSingleSelectionIndicator?-1:5),o.R7$(),o.vxM(r.group&&r.group._inert?6:-1),o.R7$(),o.Y8G("matRippleTrigger",r._getHostElement())("matRippleDisabled",r.disabled||r.disableRipple))},dependencies:[TI,gl],styles:['.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-app-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-app-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-app-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-app-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-app-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-app-body-large-weight))}.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);outline:0}.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, var(--mat-app-on-secondary-container))}.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, var(--mat-app-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-app-on-secondary-container))}.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})();const Ky={capture:!0},fM=["focus","mousedown","mouseenter","touchstart"],pM="mat-ripple-loader-uninitialized",Yy="mat-ripple-loader-class-name",Zy="mat-ripple-loader-centered",N_="mat-ripple-loader-disabled";let BI=(()=>{class n{constructor(){this._document=(0,o.WQX)(V,{optional:!0}),this._animationMode=(0,o.WQX)(o.bc$,{optional:!0}),this._globalRippleOptions=(0,o.WQX)(Lm,{optional:!0}),this._platform=(0,o.WQX)(Fo),this._ngZone=(0,o.WQX)(o.SKi),this._hosts=new Map,this._onInteraction=e=>{const i=ql(e);if(i instanceof HTMLElement){const r=i.closest(`[${pM}="${this._globalRippleOptions?.namespace??""}"]`);r&&this._createRipple(r)}},this._ngZone.runOutsideAngular(()=>{for(const e of fM)this._document?.addEventListener(e,this._onInteraction,Ky)})}ngOnDestroy(){const e=this._hosts.keys();for(const i of e)this.destroyRipple(i);for(const i of fM)this._document?.removeEventListener(i,this._onInteraction,Ky)}configureRipple(e,i){e.setAttribute(pM,this._globalRippleOptions?.namespace??""),(i.className||!e.hasAttribute(Yy))&&e.setAttribute(Yy,i.className||""),i.centered&&e.setAttribute(Zy,""),i.disabled&&e.setAttribute(N_,"")}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(N_,""):e.removeAttribute(N_)}_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(Yy)),e.append(r);const s=new gl(new o.aKT(r),this._ngZone,this._platform,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);return s._isInitialized=!0,s.trigger=e,s.centered=e.hasAttribute(Zy),s.disabled=e.hasAttribute(N_),this.attachRipple(e,s),s}attachRipple(e,i){e.removeAttribute(pM),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=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),kI=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({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&&o.AVh("mdc-form-field--align-end","before"===r.labelPosition)},inputs:{labelPosition:"labelPosition"},standalone:!0,features:[o.aNF],attrs:SO,ngContentSelectors:TO,decls:1,vars:0,template:function(i,r){1&i&&(o.NAR(),o.SdG(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.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 .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}"],encapsulation:2,changeDetection:0})}}return n})();const HO=["mat-button",""],QO=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],AM=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],NI=new o.nKC("MAT_BUTTON_CONFIG"),mM=[{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-base","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}];let UI=(()=>{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,s){this._elementRef=e,this._platform=i,this._ngZone=r,this._animationMode=s,this._focusMonitor=(0,o.WQX)(Zl),this._rippleLoader=(0,o.WQX)(BI),this._isFab=!1,this._disableRipple=!1,this._disabled=!1;const l=(0,o.WQX)(NI,{optional:!0}),u=e.nativeElement,f=u.classList;this.disabledInteractive=l?.disabledInteractive??!1,this.color=l?.color??null,this._rippleLoader?.configureRipple(u,{className:"mat-mdc-button-ripple"});for(const{attribute:p,mdcClasses:m}of mM)u.hasAttribute(p)&&f.add(...m)}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){o.QTQ()}}static{this.\u0275dir=o.FsC({type:n,inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",o.L39],disabled:[2,"disabled","disabled",o.L39],ariaDisabled:[2,"aria-disabled","ariaDisabled",o.L39],disabledInteractive:[2,"disabledInteractive","disabledInteractive",o.L39]},features:[o.GFd]})}}return n})(),Jo=(()=>{class n extends UI{constructor(e,i,r,s){super(e,i,r,s)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT),o.rXU(Fo),o.rXU(o.SKi),o.rXU(o.bc$,8))}}static{this.\u0275cmp=o.VBU({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&&(o.BMQ("disabled",r._getDisabledAttribute())("aria-disabled",r._getAriaDisabled()),o.HbH(r.color?"mat-"+r.color:""),o.AVh("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:[o.Vt3,o.aNF],attrs:HO,ngContentSelectors:AM,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&&(o.NAR(QO),o.nrm(0,"span",0),o.SdG(1),o.j41(2,"span",1),o.SdG(3,1),o.k0s(),o.SdG(4,2),o.nrm(5,"span",2)(6,"span",3)),2&i&&o.AVh("mdc-button__ripple",!r._isFab)("mdc-fab__ripple",r._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;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;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.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__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 8px);height:var(--mdc-text-button-container-height);font-family:var(--mdc-text-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-app-label-large-weight))}.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, var(--mat-app-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-app-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, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-app-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,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-app-primary))}.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{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-filled-button-horizontal-padding, 16px);height:var(--mdc-filled-button-container-height);font-family:var(--mdc-filled-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-app-label-large-weight))}.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, var(--mat-app-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-unelevated-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-app-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, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-app-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:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-app-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-app-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-app-corner-full))}.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{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-protected-button-horizontal-padding, 16px);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-app-level1));height:var(--mdc-protected-button-container-height);font-family:var(--mdc-protected-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-app-label-large-weight))}.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, var(--mat-app-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-raised-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-app-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, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-raised-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-app-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:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-app-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-app-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-app-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-app-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-app-level1))}.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, var(--mat-app-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-outlined-button-horizontal-padding, 15px);height:var(--mdc-outlined-button-container-height);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-app-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-app-corner-full));border-width: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, var(--mat-app-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-app-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, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-outlined-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-app-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:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-app-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-app-outline))}.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-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width);border-style:solid;border-color:rgba(0,0,0,0)}.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-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.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}.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})();function HI(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",5),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.data.resolveErrorData.onResolveErrorClick())}),o.EFF(1),o.k0s()}if(2&n){const e=o.XpG();o.R7$(),o.SpI(" ",e.data.resolveErrorData.buttonText," ")}}let uu=(()=>{class n{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(fp))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-error-dialog"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"h1",0),o.EFF(1),o.k0s(),o.nrm(2,"div",1),o.j41(3,"div",2),o.DNE(4,HI,2,1,"button",3),o.j41(5,"button",4),o.EFF(6,"OK"),o.k0s()()),2&i&&(o.R7$(),o.JRh(r.data.title),o.R7$(),o.Y8G("innerHTML",r.data.message,o.npT),o.R7$(2),o.Y8G("ngIf",r.data.resolveErrorData))},dependencies:[$y,ml,Jl,zn,Jo,Ia],encapsulation:2})}}return n})();function QI(n){return{title:"Something is wrong with the loaded file(s)",message:[...zI(n),...GI(n)].join("")}}function zI(n){const t=n.filter(e=>e.errors.length>0);return t.length>0?["

Errors

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

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

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

Warnings

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

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

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

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

`}var ZO=function(n){return n.hide="hide",n.exclude="exclude",n}(ZO||{}),t9=v(9812),L_=v.n(t9);function eN(n){return!n||Array.isArray(n.nodes)||Array.isArray(n.edges)?{nodes:{},edges:{}}:{nodes:n.nodes??{},edges:n.edges??{}}}function n9(n){return n||{}}function qI(n){for(const t of n)t.type===ZO.hide&&(t.type="flatten");return n}function XI(n){let t=null;try{const e="string"==typeof n?JSON.parse(n):n;if("data"in e&&"checksum"in e)return t=e.data,t.fileChecksum=e.checksum||L_()(JSON.stringify(e.data)),t;if(!e.fileChecksum){const i="string"==typeof n?n:JSON.stringify(n);e.fileChecksum=L_()(i)}return e}catch{}return t}var i9=v(7172),tN=v.n(i9);const Jy=JSON.parse('{"rE":"1.131.2","f4":{"X":"1.3"}}'),r9=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"}}}');function o9(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 lo(n,t){n instanceof Map?(n=[void 0,n],void 0===t&&(t=ZI)):void 0===t&&(t=lN);for(var i,s,l,u,f,e=new _M(n),r=[e];i=r.pop();)if((l=t(i.data))&&(f=(l=Array.from(l)).length))for(i.children=l,u=f-1;u>=0;--u)r.push(s=l[u]=new _M(l[u])),s.parent=i,s.depth=i.depth+1;return e.eachBefore(JI)}function lN(n){return n.children}function ZI(n){return Array.isArray(n)?n[1]:null}function u9(n){void 0!==n.data.value&&(n.value=n.data.value),n.data=n.data.data}function JI(n){var t=0;do{n.height=t}while((n=n.parent)&&n.height<++t)}function _M(n){this.data=n,this.depth=this.height=0,this.parent=null}_M.prototype=lo.prototype={constructor:_M,count:function s9(){return this.eachAfter(o9)},each:function a9(n,t){let e=-1;for(const i of this)n.call(t,i,++e,this);return this},eachAfter:function nN(n,t){for(var s,l,u,e=this,i=[e],r=[],f=-1;e=i.pop();)if(r.push(e),s=e.children)for(l=0,u=s.length;l=0;--s)i.push(r[s]);return this},find:function Um(n,t){let e=-1;for(const i of this)if(n.call(t,i,++e,this))return i},sum:function U_(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 iN(n){return this.eachBefore(function(t){t.children&&t.children.sort(n)})},path:function c9(n){for(var t=this,e=function KI(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 rN(){for(var n=this,t=[n];n=n.parent;)t.push(n);return t},descendants:function d9(){return Array.from(this)},leaves:function oN(){var n=[];return this.eachBefore(function(t){t.children||n.push(t)}),n},links:function sN(){var n=this,t=[];return n.each(function(e){e!==n&&t.push({source:e.parent,target:e})}),t},copy:function YI(){return lo(this).eachBefore(u9)},[Symbol.iterator]:function*aN(){var t,i,r,s,n=this,e=[n];do{for(t=e.reverse(),e=[];n=t.pop();)if(yield n,i=n.children)for(r=0,s=i.length;r=7340032:return V_.BIG_MAP;case e>=2097152:return V_.MEDIUM_MAP;default:return V_.SMALL_MAP}}const iF=Jy.f4.X,fu={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 rF(n){const t=[];return n&&function p9(n){return Ap(n.apiVersion).minor>Ap(iF).minor}(n)&&t.push(`${fu.minorApiVersionOutdated} Found: ${n.apiVersion}`),t}function oF(n){const t=[];switch(!0){case!n:t.push(fu.fileIsInvalid);break;case!function uN(n){const{apiVersion:t}=n,e=void 0!==t,r=/\d+\.\d+/.test(t);return e&&r}(n):t.push(fu.apiVersionIsInvalid);break;case function hN(n){return Ap(n.apiVersion).major>Ap(iF).major}(n):t.push(fu.majorApiVersionIsOutdated)}return 0===t.length&&t.push(...function pp(n){const t=[];if(0===t.length){const i=new(tN())({allErrors:!0}).compile(r9);i(n)?0===n.nodes.length?t.push(fu.nodesEmpty):t.push(...function fN(n){const t=[],e=new Set;return e.add(`${n.name}|${n.type}`),yM(n,t,e,`/${n.name}`),t}(n.nodes[0]),...aF(n)):t.push(...i.errors.map(s=>function vM(n){return`${n.keyword.charAt(0).toUpperCase()+n.keyword.slice(1)} error: ${n.dataPath.slice(1)} ${n.message}`}(s)))}return t}(n)),t}function Ap(n){return{major:Number(n.split(".")[0]),minor:Number(n.split(".")[1])}}function yM(n,t,e,i){if(!Po(n))for(const r of n.children){const s=`${i}/${r.name}`;e.has(`${s}|${r.type}`)?t.push(`${fu.nodesNotUnique} Found duplicate of ${r.type} with path: ${s}`):(e.add(`${s}|${r.type}`),yM(r,t,e,s))}}function aF(n,t=n.nodes[0].children){const e=[],i=[],r=[],s=new Set;(function sF(n,t,e,i,r,s){for(const l of n)if(void 0===l.fixedPosition)t.push(`${l.name}`);else{const u=Ap(e.apiVersion);if(u.major<1||1===u.major&&u.minor<2)return void i.push(`${fu.fixedFoldersNotAllowed} Found: ${e.apiVersion}`);pN(l)&&r.push(n1(l));for(const f of n)void 0!==f.fixedPosition&&l!==f&&r1(l.fixedPosition,f.fixedPosition)&&!s.has(`${n1(f)} and ${n1(l)}`)&&s.add(`${n1(l)} and ${n1(f)}`)}})(t,i,n,e,r,s),i.length>0&&i.length!==t.length&&e.push(`${fu.notAllFoldersAreFixed} Found: ${i.join(", ")}`),r.length>0&&e.push(`${fu.fixedFoldersOutOfBounds} Found: ${r.join(", ")}`),s.size>0&&e.push(`${fu.fixedFoldersOverlapped} Found: ${[...s].join(", ")}`);for(const l of t)l.children&&e.push(...aF(n,l.children));return e}function n1(n){return`${n.name} ${JSON.stringify(n.fixedPosition)}`}function r1(n,t){return o1(n.left,n.top,t)||o1(n.left,n.top+n.height,t)||o1(n.left+n.width,n.top,t)||o1(n.left+n.width,n.top+n.height,t)}function o1(n,t,e){return n>=e.left&&n<=e.left+e.width&&t>=e.top&&t<=e.top+e.height}function pN({fixedPosition:{left:n,top:t,width:e,height:i}}){return n<0||t<0||n+e>100||t+i>100||e<0||i<0}const s1=n=>{n.sort((t,e)=>{const i=t.name.toLowerCase(),r=e.name.toLowerCase();return i>r?1:r>i?-1:0})},a1="unary",Bc=(n,t)=>{if(0===n.length)return[];const e=new Map,i=new Map,r=new Map;for(const{file:l}of n)for(const u of lo(l.map))if(Po(u)&&u.data.path&&!hu(u.data.path,t,"exclude"))for(const f of Object.keys(u.data.attributes)){const p=i.get(f),m=r.get(f);e.get(f)||e.set(f,[]),e.get(f).push(u.data.attributes[f]),(void 0===m||m>=u.data.attributes[f])&&r.set(f,u.data.attributes[f]),(void 0===p||p<=u.data.attributes[f])&&i.set(f,u.data.attributes[f])}const s=[];i.set(a1,1),r.set(a1,1);for(const[l,u]of i)s.push({name:l,values:e.get(l),maxValue:u,minValue:r.get(l)});return s1(s),s},mp={decorateMap(n,t,e){for(const{data:i}of lo(n)){i.isFlattened=!1,i.isExcluded=!1;for(const r of e)"flatten"===r.type?i.isFlattened=i.isFlattened||tF(i,r.path):i.isExcluded=i.isExcluded||tF(i,r.path)&&Po(i)}n.isExcluded=!1,this.decorateMapWithMetricData(n,t)},decorateMapWithMetricData(n,t){const{nodeMetricData:e,edgeMetricData:i}=t;let r=0;for(const{data:s}of lo(n)){s.id=r,r++,void 0===s.attributes&&(s.attributes={}),Po(s)&&(s.attributes[a1]=1);for(const l of e)void 0===s.attributes[l.name]&&(s.attributes[l.name]=0),void 0!==s.deltas&&void 0===s.deltas[l.name]&&(s.deltas[l.name]=0);void 0===s.edgeAttributes&&(s.edgeAttributes={});for(const l of i)void 0===s.edgeAttributes[l.name]&&(s.edgeAttributes[l.name]={incoming:0,outgoing:0});es(s)}},decorateMapWithPathAttribute(n){for(const t of lo(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),s=Object.keys(n.edgeAttributes);lo(n).eachAfter(function({data:u,parent:f}){if(!u.isExcluded&&f){for(const p of r){const _=`${p}${f.data.path}`;e.nodes[p]===Sc.relative?(ec(i,`${p}${u.path}`,_,u,p,t),l1(i,_,u,p,t)):(f.data.attributes[p]+=u.attributes[p],t&&f.data.deltas&&(f.data.deltas[p]=f.data.deltas[p]??0,f.data.deltas[p]+=u.deltas[p]??0))}t&&f.data.fileCount&&(f.data.fileCount.added+=u.fileCount.added,f.data.fileCount.changed+=u.fileCount.changed,f.data.fileCount.removed+=u.fileCount.removed);for(const p of s){const m=u.edgeAttributes[p];if(!m)continue;const _=`${p}${u.path}`,b=`${p}${f.data.path}`;e.edges[p]===Sc.relative?(gp(i,`INCOMING${_}`,`INCOMING${b}`,u,p,"incoming"),gp(i,`OUTGOING${_}`,`OUTGOING${b}`,u,p,"outgoing"),xh(i,`INCOMING${b}`,u,p,"incoming"),xh(i,`OUTGOING${b}`,u,p,"outgoing")):(f.data.edgeAttributes[p].incoming+=m.incoming,f.data.edgeAttributes[p].outgoing+=m.outgoing)}}});for(const l of s)e.edges[l]===Sc.relative&&(n.edgeAttributes[l].incoming=pu(i.get(`INCOMING${l}${n.path}`)),n.edgeAttributes[l].outgoing=pu(i.get(`OUTGOING${l}${n.path}`)));for(const l of r)e.nodes[l]===Sc.relative&&(n.attributes[l]=pu(i.get(`MEDIAN${l}${n.path}`)),t&&n.deltas&&(n.deltas[l]=pu(i.get(`DELTA${l}${n.path}`))))}};function es(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 xh(n,t,e,i,r){0!==e.edgeAttributes[i][r]&&_p(n,t,e,e.edgeAttributes[i][r])}function l1(n,t,e,i,r){0!==e.attributes[i]&&_p(n,`MEDIAN${t}`,e,e.attributes[i]),r&&e.deltas&&0!==e.deltas[i]&&_p(n,`DELTA${t}`,e,e.deltas[i])}function ec(n,t,e,i,r,s){if(Po(i))return;const l=n.get(`MEDIAN${t}`);if(void 0!==l&&(i.attributes[r]=pu(l),wM(n,`MEDIAN${e}`,l)),s&&i.deltas){const u=n.get(`DELTA${t}`);void 0!==u&&(i.deltas[r]=pu(u),wM(n,`DELTA${e}`,u))}}function gp(n,t,e,i,r,s){if(Po(i))return;const l=n.get(t);void 0!==l&&(i.edgeAttributes[r][s]=pu(l),wM(n,e,l))}function wM(n,t,e){const i=n.get(t);void 0===i?n.set(t,e):function cF(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 _p(n,t,e,i){const r=n.get(t);void 0===r?n.set(t,[i]):Po(e)&&function lF(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 uF(n,t,e,i,r){i()&&(n.length=0,r(),localStorage.removeItem("scenarios"));const s=function JO(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:eN(t.attributeTypes),attributeDescriptors:n9(t.attributeDescriptors),blacklist:qI(t.blacklist||[]),markedPackages:t.markedPackages||[]}},map:C(t.nodes[0])}}(e);mp.decorateMapWithPathAttribute(s);const l=s.fileMeta.fileChecksum;let u=s.fileMeta.fileName;const f=new Map(n.map(_=>[_.file.fileMeta.fileName,_.file.fileMeta.fileChecksum])),p=new Map(n.map((_,b)=>[_.file.fileMeta.fileChecksum,b])),m=p.has(l);if(f.has(u)&&(u=function mN(n,t,e){if(t.get(n)===e)return n;let i=!1,r=1,s=n;for(;!i;){const l=n.indexOf(".");s=l>=0?[n.slice(0,l),"_",r,n.slice(l)].join(""):`${n}_${r}`,(t.get(s)===e||!t.has(s))&&(i=!0),r++}return s}(u,f,l),s.fileMeta.fileName=u),m)return n[p.get(l)].file.fileMeta.fileName=u,t[0]=u,void t.push(u);n.push({file:s,selectedAs:bt.None}),t.push(u)}const Yr={rootName:"root",rootPath:"/root",updateRoot(n){this.rootName=n,this.rootPath=`/${n}`}},Au=bn("CURRENT_FILES_ARE_SAMPLE_FILES",{_as:"props",_p:void 0}),Ch="File(s) could not be loaded";let mu=(()=>{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(Sn).pipe(ao(s=>{s&&Yr.updateRoot(s.map.name)})).subscribe()}ngOnDestroy(){this.referenceFileSubscription.unsubscribe()}loadFiles(e){const i=C(this.state.getValue().files),r=[],s=[];if(function ts(n,t,e,i,r,s){for(const l of e){const u={fileName:l?.fileName,errors:[],warnings:[]};u.errors.push(...oF(l?.content)),0===u.errors.length&&(u.warnings.push(...rF(l?.content)),uF(n,t,l,r,s)),(u.errors.length>0||u.warnings.length>0)&&i.push(u)}}(i,r,e,s,()=>this.state.getValue().appStatus.currentFilesAreSampleFiles,()=>this.store.dispatch(Au({value:!1}))),s.length>0&&this.dialog.open(uu,{data:QI(s)}),0===r.length)throw new Error(Ch);this.store.dispatch(S({value:i}));const l=r[0],u=this.state.getValue().files.find(f=>f.file.fileMeta.fileName===l).file.map.name;this.store.dispatch(se({fileNames:r})),Yr.updateRoot(u)}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(Vi),o.KVO(Cs))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const Q_=/_\d{4}(?:-\d{1,2}){2}_\d{1,2}-\d{1,2}\./;let kc=(()=>{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=Q_.exec(e);if(r)return e.slice(0,r.index);if(e.endsWith(mu.CC_FILE_EXTENSION))return e.slice(0,-mu.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})();class c1{static downloadCurrentMap(t,e,i,r,s){const l=this.getProjectDataAsCCJsonFormat(t,e,i,r),u=s+mu.CC_FILE_EXTENSION;this.downloadData(JSON.stringify(l),u)}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=C(t);for(const{data:i}of lo(e))delete i.isExcluded,delete i.isFlattened,delete i.edgeAttributes,delete i.path,i.type===Zo.FOLDER?i.attributes={}:delete i.attributes[a1];return e}static undecorateEdges(t){const e=C(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"),s=document.createElement("a");s.download=e,s.href=window.URL.createObjectURL(i),s.dataset.downloadurl=["text/json",s.download,s.href].join(":"),r.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),s.dispatchEvent(r)}}const xM=".cc.config.json",u1="CodeCharta::customConfigs";class hr{static{this.customConfigs=hr.loadCustomConfigsFromLocalStorage()}static{this.customConfigChange$=new Xd.t(null)}static setCustomConfigsToLocalStorage(){const t={version:"1.0.1",customConfigs:[...hr.customConfigs]};localStorage.setItem(u1,JSON.stringify(t,cm)),hr.customConfigChange$.next(null)}static loadCustomConfigsFromLocalStorage(){const t=this.getCcLocalStorage();return new Map(t?.customConfigs)}static getCcLocalStorage(){return JSON.parse(localStorage.getItem(u1),_y)}static addCustomConfig(t){hr.customConfigs.set(t.id,t),hr.setCustomConfigsToLocalStorage()}static editCustomConfigNote(t,e){const i=hr.customConfigs.get(t);i.note=e,hr.customConfigs.set(t,i),hr.setCustomConfigsToLocalStorage()}static getCustomConfigSettings(t){return hr.customConfigs.get(t)}static hasCustomConfigByName(t,e,i){for(const r of hr.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 hr.customConfigs}static importCustomConfigs(t){const e=JSON.parse(t,_y);for(const i of e.customConfigs.values()){if(hr.getCustomConfigSettings(i.id))continue;hr.hasCustomConfigByName(i.mapSelectionMode,i.assignedMaps,i.name)&&(i.name+=` (${kc.getFormattedTimestamp(new Date(i.creationTime))})`);const s={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}};hr.addCustomConfig(s)}}static downloadCustomConfigs(t){const e={downloadApiVersion:"1.0.1",timestamp:Date.now(),customConfigs:t},i=kc.getNewTimestamp()+xM;c1.downloadData(JSON.stringify(e,cm),i)}static createExportCustomConfigFromConfig(t){return{...t}}static getCustomConfigsAmountByMapAndMode(t,e){let i=0;for(const r of hr.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} #${hr.getCustomConfigsAmountByMapAndMode(i,t)+1}`}static deleteCustomConfigs(t){for(const e of t)hr.customConfigs.delete(e.id);hr.setCustomConfigsToLocalStorage()}static deleteCustomConfig(t){hr.customConfigs.delete(t),hr.setCustomConfigsToLocalStorage()}static sortCustomConfigDropDownGroupList(t,e){if(!e.hasApplicableItems){if(t.hasApplicableItems||t.mapSelectionMode{const n=document.createElement("INPUT");return n.setAttribute("type","file"),n.setAttribute("accept",".json,.gz"),n.setAttribute("multiple",""),document.body.appendChild(n),n},Rc="base";function AF(n,t,e,i,r,s){if(0===n.length)return;const[l]=n;let u={name:l,type:CM(n)?Zo.FILE:Zo.FOLDER,attributes:{}};CM(n)?u=function gN(n,t,e){const i={...t};return i.attributes={height:e.scale.y},{name:n,type:Zo.FOLDER,attributes:{},children:[i]}}(l,u,i):u.children=[],function h1(n,t){return n.some(e=>e.name===t)}(t,l)?u=t.find(m=>m.name===l):t.push(u);const f=r.find(m=>m.name===e);u.fixedPosition=function mF(n,t,e,i){let r;if(n.type===Zo.FOLDER){const l=t.position.z-t.scale.z/2,f=e.position.z-e.scale.z/2,p=G_((e.position.x-e.scale.x/2-(t.position.x-t.scale.x/2))/t.scale.x*100,2);r={left:G_((f-l)/t.scale.z*100,2),top:p,width:G_(e.scale.z/t.scale.z*100,2),height:G_(e.scale.x/t.scale.x*100,2)}}return n.name===i&&(r=function f1(n){const t={...n};return t.top=Math.floor(50-t.height/2),t.left=Math.floor(50-t.width/2),t}(r)),r}(u,f,i,s.name);const p=e===Rc?u.name:`${e}.${u.name}`;AF(n.slice(1),u.children,p,i,r,s)}function CM(n){return 1===n.length}function G_(n,t){const e=Math.pow(10,t);return Math.round(n*e)/e}function Mh(n){const t=n.replaceAll(".","/"),i=n.split(".").slice(-1);return`/${Rc}/${t}/${i}`}const vN=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}');function Hm(n){let t=n.length;for(;--t>=0;)n[t]=0}const DM=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]),j_=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]),wF=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),xF=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),gu=new Array(576);Hm(gu);const vp=new Array(60);Hm(vp);const yp=new Array(512);Hm(yp);const $_=new Array(256);Hm($_);const BM=new Array(29);Hm(BM);const _1=new Array(30);function kM(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 CF,MF,EF;function RM(n,t){this.dyn_tree=n,this.max_code=0,this.stat_desc=t}Hm(_1);const SF=n=>n<256?yp[n]:yp[256+(n>>>7)],q_=(n,t)=>{n.pending_buf[n.pending++]=255&t,n.pending_buf[n.pending++]=t>>>8&255},qa=(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<{qa(n,e[2*t],e[2*t+1])},TF=(n,t)=>{let e=0;do{e|=1&n,n>>>=1,e<<=1}while(--t>0);return e>>>1},IF=(n,t,e)=>{const i=new Array(16);let s,l,r=0;for(s=1;s<=15;s++)r=r+e[s-1]<<1,i[s]=r;for(l=0;l<=t;l++){let u=n[2*l+1];0!==u&&(n[2*l]=TF(i[u]++,u))}},PM=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},_u=n=>{n.bi_valid>8?q_(n,n.bi_buf):n.bi_valid>0&&(n.pending_buf[n.pending++]=n.bi_buf),n.bi_buf=0,n.bi_valid=0},b1=(n,t,e,i)=>{const r=2*t,s=2*e;return n[r]{const i=n.heap[e];let r=e<<1;for(;r<=n.heap_len&&(r{let i,r,l,u,s=0;if(0!==n.sym_next)do{i=255&n.pending_buf[n.sym_buf+s++],i+=(255&n.pending_buf[n.sym_buf+s++])<<8,r=n.pending_buf[n.sym_buf+s++],0===i?bd(n,r,t):(l=$_[r],bd(n,l+256+1,t),u=DM[l],0!==u&&(r-=BM[l],qa(n,r,u)),i--,l=SF(i),bd(n,l,e),u=j_[l],0!==u&&(i-=_1[l],qa(n,i,u)))}while(s{const e=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,s=t.stat_desc.elems;let l,u,p,f=-1;for(n.heap_len=0,n.heap_max=573,l=0;l>1;l>=1;l--)OM(n,e,l);p=s;do{l=n.heap[1],n.heap[1]=n.heap[n.heap_len--],OM(n,e,1),u=n.heap[1],n.heap[--n.heap_max]=l,n.heap[--n.heap_max]=u,e[2*p]=e[2*l]+e[2*u],n.depth[p]=(n.depth[l]>=n.depth[u]?n.depth[l]:n.depth[u])+1,e[2*l+1]=e[2*u+1]=p,n.heap[1]=p++,OM(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,s=t.stat_desc.has_stree,l=t.stat_desc.extra_bits,u=t.stat_desc.extra_base,f=t.stat_desc.max_length;let p,m,_,b,w,F,D=0;for(b=0;b<=15;b++)n.bl_count[b]=0;for(e[2*n.heap[n.heap_max]+1]=0,p=n.heap_max+1;p<573;p++)m=n.heap[p],b=e[2*e[2*m+1]+1]+1,b>f&&(b=f,D++),e[2*m+1]=b,!(m>i)&&(n.bl_count[b]++,w=0,m>=u&&(w=l[m-u]),F=e[2*m],n.opt_len+=F*(b+w),s&&(n.static_len+=F*(r[2*m+1]+w)));if(0!==D){do{for(b=f-1;0===n.bl_count[b];)b--;n.bl_count[b]--,n.bl_count[b+1]+=2,n.bl_count[f]--,D-=2}while(D>0);for(b=f;0!==b;b--)for(m=n.bl_count[b];0!==m;)_=n.heap[--p],!(_>i)&&(e[2*_+1]!==b&&(n.opt_len+=(b-e[2*_+1])*e[2*_],e[2*_+1]=b),m--)}})(n,t),IF(e,f,n.bl_count)},UM=(n,t,e)=>{let i,s,r=-1,l=t[1],u=0,f=7,p=4;for(0===l&&(f=138,p=3),t[2*(e+1)+1]=65535,i=0;i<=e;i++)s=l,l=t[2*(i+1)+1],!(++u{let i,s,r=-1,l=t[1],u=0,f=7,p=4;for(0===l&&(f=138,p=3),i=0;i<=e;i++)if(s=l,l=t[2*(i+1)+1],!(++u{qa(n,0+(i?1:0),3),_u(n),q_(n,e),q_(n,~e),e&&n.pending_buf.set(n.window.subarray(t,t+e),n.pending),n.pending+=e};var Jm={_tr_init:n=>{QM||((()=>{let n,t,e,i,r;const s=new Array(16);for(e=0,i=0;i<28;i++)for(BM[i]=e,n=0;n<1<>=7;i<30;i++)for(_1[i]=r<<7,n=0;n<1<{let r,s,l=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)),LM(n,n.l_desc),LM(n,n.d_desc),l=(n=>{let t;for(UM(n,n.dyn_ltree,n.l_desc.max_code),UM(n,n.dyn_dtree,n.d_desc.max_code),LM(n,n.bl_desc),t=18;t>=3&&0===n.bl_tree[2*xF[t]+1];t--);return n.opt_len+=3*(t+1)+5+5+4,t})(n),r=n.opt_len+3+7>>>3,s=n.static_len+3+7>>>3,s<=r&&(r=s)):r=s=e+5,e+4<=r&&-1!==t?v1(n,t,e,i):4===n.strategy||s===r?(qa(n,2+(i?1:0),3),NM(n,gu,vp)):(qa(n,4+(i?1:0),3),((n,t,e,i)=>{let r;for(qa(n,t-257,5),qa(n,e-1,5),qa(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*($_[e]+256+1)]++,n.dyn_dtree[2*SF(t)]++),n.sym_next===n.sym_end),_tr_align:n=>{qa(n,2,3),bd(n,256,gu),(n=>{16===n.bi_valid?(q_(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)}},eg=(n,t,e,i)=>{let r=65535&n,s=n>>>16&65535,l=0;for(;0!==e;){l=e>2e3?2e3:e,e-=l;do{r=r+t[i++]|0,s=s+r|0}while(--l);r%=65521,s%=65521}return r|s<<16};const BF=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 Ms=(n,t,e,i)=>{const r=BF,s=i+e;n^=-1;for(let l=i;l>>8^r[255&(n^t[l])];return~n},Ih={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"},Fh={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:kF,_tr_stored_block:tg,_tr_flush_block:Dh,_tr_tally:Bh,_tr_align:EN}=Jm,{Z_NO_FLUSH:vd,Z_PARTIAL_FLUSH:wp,Z_FULL_FLUSH:zM,Z_FINISH:tc,Z_BLOCK:y1,Z_OK:ca,Z_STREAM_END:SN,Z_STREAM_ERROR:yd,Z_DATA_ERROR:TN,Z_BUF_ERROR:w1,Z_DEFAULT_COMPRESSION:IN,Z_FILTERED:Es,Z_HUFFMAN_ONLY:X_,Z_RLE:FN,Z_FIXED:DN,Z_DEFAULT_STRATEGY:RF,Z_UNKNOWN:BN,Z_DEFLATED:K_}=Fh,gs=262,kh=(n,t)=>(n.msg=Ih[t],t),NF=n=>2*n-(n>4?9:0),Rh=n=>{let t=n.length;for(;--t>=0;)n[t]=0},LF=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 Pc=(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))},Wa=(n,t)=>{Dh(n,n.block_start>=0?n.block_start:-1,n.strstart-n.block_start,t),n.block_start=n.strstart,yl(n.strm)},Or=(n,t)=>{n.pending_buf[n.pending++]=t},rg=(n,t)=>{n.pending_buf[n.pending++]=t>>>8&255,n.pending_buf[n.pending++]=255&t},qM=(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=eg(n.adler,t,r,e):2===n.state.wrap&&(n.adler=Ms(n.adler,t,r,e)),n.next_in+=r,n.total_in+=r,r)},UF=(n,t)=>{let r,s,e=n.max_chain_length,i=n.strstart,l=n.prev_length,u=n.nice_match;const f=n.strstart>n.w_size-gs?n.strstart-(n.w_size-gs):0,p=n.window,m=n.w_mask,_=n.prev,b=n.strstart+258;let w=p[i+l-1],F=p[i+l];n.prev_length>=n.good_match&&(e>>=2),u>n.lookahead&&(u=n.lookahead);do{if(r=t,p[r+l]===F&&p[r+l-1]===w&&p[r]===p[i]&&p[++r]===p[i+1]){i+=2,r++;do{}while(p[++i]===p[++r]&&p[++i]===p[++r]&&p[++i]===p[++r]&&p[++i]===p[++r]&&p[++i]===p[++r]&&p[++i]===p[++r]&&p[++i]===p[++r]&&p[++i]===p[++r]&&il){if(n.match_start=t,l=s,s>=u)break;w=p[i+l-1],F=p[i+l]}}}while((t=_[t&m])>f&&0!=--e);return l<=n.lookahead?l:n.lookahead},og=n=>{const t=n.w_size;let e,i,r;do{if(i=n.window_size-n.lookahead-n.strstart,n.strstart>=t+(t-gs)&&(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),LF(n),i+=t),0===n.strm.avail_in)break;if(e=qM(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=Pc(n,n.ins_h,n.window[r+1]);n.insert&&(n.ins_h=Pc(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,s,e=n.pending_buf_size-5>n.w_size?n.w_size:n.pending_buf_size-5,l=0,u=n.strm.avail_in;do{if(i=65535,s=n.bi_valid+42>>3,n.strm.avail_outr+n.strm.avail_in&&(i=r+n.strm.avail_in),i>s&&(i=s),i>8,n.pending_buf[n.pending-2]=~i,n.pending_buf[n.pending-1]=~i>>8,yl(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&&(qM(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===l);return u-=n.strm.avail_in,u&&(u>=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<=u&&(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-u,n.strm.next_in),n.strstart),n.strstart+=u,n.insert+=u>n.w_size-n.insert?n.w_size-n.insert:u),n.block_start=n.strstart),n.high_waters&&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++,s+=n.w_size,n.insert>n.strstart&&(n.insert=n.strstart)),s>n.strm.avail_in&&(s=n.strm.avail_in),s&&(qM(n.strm,n.window,n.strstart,s),n.strstart+=s,n.insert+=s>n.w_size-n.insert?n.w_size-n.insert:s),n.high_water>3,s=n.pending_buf_size-s>65535?65535:n.pending_buf_size-s,e=s>n.w_size?n.w_size:s,r=n.strstart-n.block_start,(r>=e||(r||t===tc)&&t!==vd&&0===n.strm.avail_in&&r<=s)&&(i=r>s?s:r,l=t===tc&&0===n.strm.avail_in&&i===r?1:0,tg(n,n.block_start,i,l),n.block_start+=i,yl(n.strm)),l?3:1)},WM=(n,t)=>{let e,i;for(;;){if(n.lookahead=3&&(n.ins_h=Pc(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-gs&&(n.match_length=UF(n,e)),n.match_length>=3)if(i=Bh(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=Pc(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=Pc(n,n.ins_h,n.window[n.strstart+1]);else i=Bh(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(i&&(Wa(n,!1),0===n.strm.avail_out))return 1}return n.insert=n.strstart<2?n.strstart:2,t===tc?(Wa(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&(Wa(n,!1),0===n.strm.avail_out)?1:2},sg=(n,t)=>{let e,i,r;for(;;){if(n.lookahead=3&&(n.ins_h=Pc(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=Bh(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=Pc(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&&(Wa(n,!1),0===n.strm.avail_out))return 1}else if(n.match_available){if(i=Bh(n,0,n.window[n.strstart-1]),i&&Wa(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=Bh(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart<2?n.strstart:2,t===tc?(Wa(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&(Wa(n,!1),0===n.strm.avail_out)?1:2};function Cd(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 Mp=[new Cd(0,0,0,0,VF),new Cd(4,4,8,4,WM),new Cd(4,5,16,8,WM),new Cd(4,6,32,32,WM),new Cd(4,4,16,16,sg),new Cd(8,16,32,32,sg),new Cd(8,16,128,128,sg),new Cd(8,32,128,256,sg),new Cd(32,128,258,1024,sg),new Cd(32,258,258,4096,sg)];function UN(){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=K_,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),Rh(this.dyn_ltree),Rh(this.dyn_dtree),Rh(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),Rh(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Rh(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 Ep=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},XM=n=>{if(Ep(n))return kh(n,yd);n.total_in=n.total_out=0,n.data_type=BN;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,kF(t),ca},KM=n=>{const t=XM(n);return t===ca&&(n=>{n.window_size=2*n.w_size,Rh(n.head),n.max_lazy_match=Mp[n.level].max_lazy,n.good_match=Mp[n.level].good_length,n.nice_match=Mp[n.level].nice_length,n.max_chain_length=Mp[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},YM=(n,t,e,i,r,s)=>{if(!n)return yd;let l=1;if(t===IN&&(t=6),i<0?(l=0,i=-i):i>15&&(l=2,i-=16),r<1||r>9||e!==K_||i<8||i>15||t<0||t>9||s<0||s>DN||8===i&&1!==l)return kh(n,yd);8===i&&(i=9);const u=new UN;return n.state=u,u.strm=n,u.status=42,u.wrap=l,u.gzhead=null,u.w_bits=i,u.w_size=1<YM(n,t,K_,15,8,RF),deflateInit2:YM,deflateReset:KM,deflateResetKeep:XM,deflateSetHeader:(n,t)=>Ep(n)||2!==n.state.wrap?yd:(n.state.gzhead=t,ca),deflate:(n,t)=>{if(Ep(n)||t>y1||t<0)return n?kh(n,yd):yd;const e=n.state;if(!n.output||0!==n.avail_in&&!n.input||666===e.status&&t!==tc)return kh(n,0===n.avail_out?w1:yd);const i=e.last_flush;if(e.last_flush=t,0!==e.pending){if(yl(n),0===n.avail_out)return e.last_flush=-1,ca}else if(0===n.avail_in&&NF(t)<=NF(i)&&t!==tc)return kh(n,w1);if(666===e.status&&0!==n.avail_in)return kh(n,w1);if(42===e.status&&0===e.wrap&&(e.status=113),42===e.status){let r=K_+(e.w_bits-8<<4)<<8,s=-1;if(s=e.strategy>=X_||e.level<2?0:e.level<6?1:6===e.level?2:3,r|=s<<6,0!==e.strstart&&(r|=32),r+=31-r%31,rg(e,r),0!==e.strstart&&(rg(e,n.adler>>>16),rg(e,65535&n.adler)),n.adler=1,e.status=113,yl(n),0!==e.pending)return e.last_flush=-1,ca}if(57===e.status)if(n.adler=0,Or(e,31),Or(e,139),Or(e,8),e.gzhead)Or(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)),Or(e,255&e.gzhead.time),Or(e,e.gzhead.time>>8&255),Or(e,e.gzhead.time>>16&255),Or(e,e.gzhead.time>>24&255),Or(e,9===e.level?2:e.strategy>=X_||e.level<2?4:0),Or(e,255&e.gzhead.os),e.gzhead.extra&&e.gzhead.extra.length&&(Or(e,255&e.gzhead.extra.length),Or(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(n.adler=Ms(n.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=69;else if(Or(e,0),Or(e,0),Or(e,0),Or(e,0),Or(e,0),Or(e,9===e.level?2:e.strategy>=X_||e.level<2?4:0),Or(e,3),e.status=113,yl(n),0!==e.pending)return e.last_flush=-1,ca;if(69===e.status){if(e.gzhead.extra){let r=e.pending,s=(65535&e.gzhead.extra.length)-e.gzindex;for(;e.pending+s>e.pending_buf_size;){let u=e.pending_buf_size-e.pending;if(e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex,e.gzindex+u),e.pending),e.pending=e.pending_buf_size,e.gzhead.hcrc&&e.pending>r&&(n.adler=Ms(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex+=u,yl(n),0!==e.pending)return e.last_flush=-1,ca;r=0,s-=u}let l=new Uint8Array(e.gzhead.extra);e.pending_buf.set(l.subarray(e.gzindex,e.gzindex+s),e.pending),e.pending+=s,e.gzhead.hcrc&&e.pending>r&&(n.adler=Ms(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=73}if(73===e.status){if(e.gzhead.name){let s,r=e.pending;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=Ms(n.adler,e.pending_buf,e.pending-r,r)),yl(n),0!==e.pending)return e.last_flush=-1,ca;r=0}s=e.gzindexr&&(n.adler=Ms(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=91}if(91===e.status){if(e.gzhead.comment){let s,r=e.pending;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=Ms(n.adler,e.pending_buf,e.pending-r,r)),yl(n),0!==e.pending)return e.last_flush=-1,ca;r=0}s=e.gzindexr&&(n.adler=Ms(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&&(yl(n),0!==e.pending))return e.last_flush=-1,ca;Or(e,255&n.adler),Or(e,n.adler>>8&255),n.adler=0}if(e.status=113,yl(n),0!==e.pending)return e.last_flush=-1,ca}if(0!==n.avail_in||0!==e.lookahead||t!==vd&&666!==e.status){let r=0===e.level?VF(e,t):e.strategy===X_?((n,t)=>{let e;for(;;){if(0===n.lookahead&&(og(n),0===n.lookahead)){if(t===vd)return 1;break}if(n.match_length=0,e=Bh(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,e&&(Wa(n,!1),0===n.strm.avail_out))return 1}return n.insert=0,t===tc?(Wa(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&(Wa(n,!1),0===n.strm.avail_out)?1:2})(e,t):e.strategy===FN?((n,t)=>{let e,i,r,s;const l=n.window;for(;;){if(n.lookahead<=258){if(og(n),n.lookahead<=258&&t===vd)return 1;if(0===n.lookahead)break}if(n.match_length=0,n.lookahead>=3&&n.strstart>0&&(r=n.strstart-1,i=l[r],i===l[++r]&&i===l[++r]&&i===l[++r])){s=n.strstart+258;do{}while(i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&rn.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=3?(e=Bh(n,1,n.match_length-3),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(e=Bh(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),e&&(Wa(n,!1),0===n.strm.avail_out))return 1}return n.insert=0,t===tc?(Wa(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&(Wa(n,!1),0===n.strm.avail_out)?1:2})(e,t):Mp[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),ca;if(2===r&&(t===wp?EN(e):t!==y1&&(tg(e,0,0,!1),t===zM&&(Rh(e.head),0===e.lookahead&&(e.strstart=0,e.block_start=0,e.insert=0))),yl(n),0===n.avail_out))return e.last_flush=-1,ca}return t!==tc?ca:e.wrap<=0?SN:(2===e.wrap?(Or(e,255&n.adler),Or(e,n.adler>>8&255),Or(e,n.adler>>16&255),Or(e,n.adler>>24&255),Or(e,255&n.total_in),Or(e,n.total_in>>8&255),Or(e,n.total_in>>16&255),Or(e,n.total_in>>24&255)):(rg(e,n.adler>>>16),rg(e,65535&n.adler)),yl(n),e.wrap>0&&(e.wrap=-e.wrap),0!==e.pending?ca:SN)},deflateEnd:n=>{if(Ep(n))return yd;const t=n.state.status;return n.state=null,113===t?kh(n,TN):ca},deflateSetDictionary:(n,t)=>{let e=t.length;if(Ep(n))return yd;const i=n.state,r=i.wrap;if(2===r||1===r&&42!==i.status||i.lookahead)return yd;if(1===r&&(n.adler=eg(n.adler,t,e,0)),i.wrap=0,e>=i.w_size){0===r&&(Rh(i.head),i.strstart=0,i.block_start=0,i.insert=0);let f=new Uint8Array(i.w_size);f.set(t.subarray(e-i.w_size,e),0),t=f,e=i.w_size}const s=n.avail_in,l=n.next_in,u=n.input;for(n.avail_in=e,n.next_in=0,n.input=t,og(i);i.lookahead>=3;){let f=i.strstart,p=i.lookahead-2;do{i.ins_h=Pc(i,i.ins_h,i.window[f+3-1]),i.prev[f&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=f,f++}while(--p);i.strstart=f,i.lookahead=2,og(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=l,n.input=u,n.avail_in=s,i.wrap=r,ca},deflateInfo:"pako deflate (from Nodeca project)"};const E1=(n,t)=>Object.prototype.hasOwnProperty.call(n,t);var J_={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)E1(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;eb[254]=eb[254]=1;var ag={string2buf:n=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(n);let t,e,i,r,s,l=n.length,u=0;for(r=0;r>>6,t[s++]=128|63&e):e<65536?(t[s++]=224|e>>>12,t[s++]=128|e>>>6&63,t[s++]=128|63&e):(t[s++]=240|e>>>18,t[s++]=128|e>>>12&63,t[s++]=128|e>>>6&63,t[s++]=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 s=new Array(2*e);for(r=0,i=0;i4)s[r++]=65533,i+=u-1;else{for(l&=2===u?31:3===u?15:7;u>1&&i1?s[r++]=65533:l<65536?s[r++]=l:(l-=65536,s[r++]=55296|l>>10&1023,s[r++]=56320|1023&l)}}return((n,t)=>{if(t<65534&&n.subarray&&qF)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+eb[n[e]]>t?e:t}},WF=function $N(){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 tE=Object.prototype.toString,{Z_NO_FLUSH:nE,Z_SYNC_FLUSH:XF,Z_FULL_FLUSH:Sp,Z_FINISH:qN,Z_OK:F1,Z_STREAM_END:lg,Z_DEFAULT_COMPRESSION:w9,Z_DEFAULT_STRATEGY:iE,Z_DEFLATED:x9}=Fh;function cg(n){this.options=J_.assign({level:w9,method:x9,chunkSize:16384,windowBits:15,memLevel:8,strategy:iE},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 WF,this.strm.avail_out=0;let e=Z_.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(e!==F1)throw new Error(Ih[e]);if(t.header&&Z_.deflateSetHeader(this.strm,t.header),t.dictionary){let i;if(i="string"==typeof t.dictionary?ag.string2buf(t.dictionary):"[object ArrayBuffer]"===tE.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,e=Z_.deflateSetDictionary(this.strm,i),e!==F1)throw new Error(Ih[e]);this._dict_set=!0}}function D1(n,t){const e=new cg(t);if(e.push(n,!0),e.err)throw e.msg||Ih[e.err];return e.result}cg.prototype.push=function(n,t){const e=this.strm,i=this.options.chunkSize;let r,s;if(this.ended)return!1;for(s=t===~~t?t:!0===t?qN:nE,e.input="string"==typeof n?ag.string2buf(n):"[object ArrayBuffer]"===tE.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),(s===XF||s===Sp)&&e.avail_out<=6)this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;else{if(r=Z_.deflate(e,s),r===lg)return e.next_out>0&&this.onData(e.output.subarray(0,e.next_out)),r=Z_.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===F1;if(0!==e.avail_out){if(s>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},cg.prototype.onData=function(n){this.chunks.push(n)},cg.prototype.onEnd=function(n){n===F1&&(this.result=J_.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};var k1={Deflate:cg,deflate:D1,deflateRaw:function C9(n,t){return(t=t||{}).raw=!0,D1(n,t)},gzip:function dg(n,t){return(t=t||{}).gzip=!0,D1(n,t)},constants:Fh};const Tp=16209;var KF=function(t,e){let i,r,s,l,u,f,p,m,_,b,w,F,D,T,I,O,R,P,ee,J,te,ie,W,q;const le=t.state;i=t.next_in,W=t.input,r=i+(t.avail_in-5),s=t.next_out,q=t.output,l=s-(e-t.avail_out),u=s+(t.avail_out-257),f=le.dmax,p=le.wsize,m=le.whave,_=le.wnext,b=le.window,w=le.hold,F=le.bits,D=le.lencode,T=le.distcode,I=(1<>>24,w>>>=P,F-=P,P=R>>>16&255,0===P)q[s++]=65535&R;else{if(!(16&P)){if(64&P){if(32&P){le.mode=16191;break e}t.msg="invalid literal/length code",le.mode=Tp;break e}R=D[(65535&R)+(w&(1<>>=P,F-=P),F<15&&(w+=W[i++]<>>24,w>>>=P,F-=P,P=R>>>16&255,16&P){if(J=65535&R,P&=15,Ff){t.msg="invalid distance too far back",le.mode=Tp;break e}if(w>>>=P,F-=P,P=s-l,J>P){if(P=J-P,P>m&&le.sane){t.msg="invalid distance too far back",le.mode=Tp;break e}if(te=0,ie=b,0===_){if(te+=p-P,P2;)q[s++]=ie[te++],q[s++]=ie[te++],q[s++]=ie[te++],ee-=3;ee&&(q[s++]=ie[te++],ee>1&&(q[s++]=ie[te++]))}else{te=s-J;do{q[s++]=q[te++],q[s++]=q[te++],q[s++]=q[te++],ee-=3}while(ee>2);ee&&(q[s++]=q[te++],ee>1&&(q[s++]=q[te++]))}break}if(64&P){t.msg="invalid distance code",le.mode=Tp;break e}R=T[(65535&R)+(w&(1<>3,i-=ee,F-=ee<<3,w&=(1<{const f=u.bits;let R,P,ee,J,te,W,p=0,m=0,_=0,b=0,w=0,F=0,D=0,T=0,I=0,O=0,ie=null;const q=new Uint16Array(16),le=new Uint16Array(16);let Ue,ce,ze,ke=null;for(p=0;p<=15;p++)q[p]=0;for(m=0;m=1&&0===q[b];b--);if(w>b&&(w=b),0===b)return r[s++]=20971520,r[s++]=20971520,u.bits=1,0;for(_=1;_0&&(0===n||1!==b))return-1;for(le[1]=0,p=1;p<15;p++)le[p+1]=le[p]+q[p];for(m=0;m852||2===n&&I>592)return 1;for(;;){Ue=p-D,l[m]+1=W?(ce=ke[l[m]-W],ze=ie[l[m]-W]):(ce=96,ze=0),R=1<>D)+P]=Ue<<24|ce<<16|ze}while(0!==P);for(R=1<>=1;if(0!==R?(O&=R-1,O+=R):O=0,m++,0==--q[p]){if(p===b)break;p=t[e+l[m]]}if(p>w&&(O&J)!==ee){for(0===D&&(D=w),te+=_,F=p-D,T=1<852||2===n&&I>592)return 1;ee=O&J,r[ee]=w<<24|F<<16|te-s}}return 0!==O&&(r[te+O]=p-D<<24|64<<16),u.bits=w,0};const{Z_FINISH:sE,Z_BLOCK:eL,Z_TREES:aE,Z_OK:Ag,Z_STREAM_END:E9,Z_NEED_DICT:S9,Z_STREAM_ERROR:wl,Z_DATA_ERROR:nb,Z_MEM_ERROR:nD,Z_BUF_ERROR:tL,Z_DEFLATED:lE}=Fh,Ph=16180,Oh=16190,vu=16191,ib=16199,rb=16200,Oo=16209,fE=n=>(n>>>24&255)+(n>>>8&65280)+((65280&n)<<8)+((255&n)<<24);function oL(){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 Ip=n=>{if(!n)return 1;const t=n.state;return!t||t.strm!==n||t.mode16211?1:0},pE=n=>{if(Ip(n))return wl;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=Ph,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,Ag},yD=n=>{if(Ip(n))return wl;const t=n.state;return t.wsize=0,t.whave=0,t.wnext=0,pE(n)},wD=(n,t)=>{let e;if(Ip(n))return wl;const i=n.state;return t<0?(e=0,t=-t):(e=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?wl:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=e,i.wbits=t,yD(n))},AE=(n,t)=>{if(!n)return wl;const e=new oL;n.state=e,e.strm=n,e.window=null,e.mode=Ph;const i=wD(n,t);return i!==Ag&&(n.state=null),i};let U1,mE,L1=!0;const gE=n=>{if(L1){U1=new Int32Array(512),mE=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(pg(1,n.lens,0,288,U1,0,n.work,{bits:9}),t=0;t<32;)n.lens[t++]=5;pg(2,n.lens,0,32,mE,0,n.work,{bits:5}),L1=!1}n.lencode=U1,n.lenbits=9,n.distcode=mE,n.distbits=5},_E=(n,t,e,i)=>{let r;const s=n.state;return null===s.window&&(s.wsize=1<=s.wsize?(s.window.set(t.subarray(e-s.wsize,e),0),s.wnext=0,s.whave=s.wsize):(r=s.wsize-s.wnext,r>i&&(r=i),s.window.set(t.subarray(e-i,e-i+r),s.wnext),(i-=r)?(s.window.set(t.subarray(e-i,e),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=r,s.wnext===s.wsize&&(s.wnext=0),s.whaveAE(n,15),inflateInit2:AE,inflate:(n,t)=>{let e,i,r,s,l,u,f,p,m,_,b,w,F,D,I,O,R,P,ee,J,te,ie,T=0;const W=new Uint8Array(4);let q,le;const ke=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Ip(n)||!n.output||!n.input&&0!==n.avail_in)return wl;e=n.state,e.mode===vu&&(e.mode=16192),l=n.next_out,r=n.output,f=n.avail_out,s=n.next_in,i=n.input,u=n.avail_in,p=e.hold,m=e.bits,_=u,b=f,ie=Ag;e:for(;;)switch(e.mode){case Ph:if(0===e.wrap){e.mode=16192;break}for(;m<16;){if(0===u)break e;u--,p+=i[s++]<>>8&255,e.check=Ms(e.check,W,2,0),p=0,m=0,e.mode=16181;break}if(e.head&&(e.head.done=!1),!(1&e.wrap)||(((255&p)<<8)+(p>>8))%31){n.msg="incorrect header check",e.mode=Oo;break}if((15&p)!==lE){n.msg="unknown compression method",e.mode=Oo;break}if(p>>>=4,m-=4,te=8+(15&p),0===e.wbits&&(e.wbits=te),te>15||te>e.wbits){n.msg="invalid window size",e.mode=Oo;break}e.dmax=1<>8&1),512&e.flags&&4&e.wrap&&(W[0]=255&p,W[1]=p>>>8&255,e.check=Ms(e.check,W,2,0)),p=0,m=0,e.mode=16182;case 16182:for(;m<32;){if(0===u)break e;u--,p+=i[s++]<>>8&255,W[2]=p>>>16&255,W[3]=p>>>24&255,e.check=Ms(e.check,W,4,0)),p=0,m=0,e.mode=16183;case 16183:for(;m<16;){if(0===u)break e;u--,p+=i[s++]<>8),512&e.flags&&4&e.wrap&&(W[0]=255&p,W[1]=p>>>8&255,e.check=Ms(e.check,W,2,0)),p=0,m=0,e.mode=16184;case 16184:if(1024&e.flags){for(;m<16;){if(0===u)break e;u--,p+=i[s++]<>>8&255,e.check=Ms(e.check,W,2,0)),p=0,m=0}else e.head&&(e.head.extra=null);e.mode=16185;case 16185:if(1024&e.flags&&(w=e.length,w>u&&(w=u),w&&(e.head&&(te=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(i.subarray(s,s+w),te)),512&e.flags&&4&e.wrap&&(e.check=Ms(e.check,i,w,s)),u-=w,s+=w,e.length-=w),e.length))break e;e.length=0,e.mode=16186;case 16186:if(2048&e.flags){if(0===u)break e;w=0;do{te=i[s+w++],e.head&&te&&e.length<65536&&(e.head.name+=String.fromCharCode(te))}while(te&&w>9&1,e.head.done=!0),n.adler=e.check=0,e.mode=vu;break;case 16189:for(;m<32;){if(0===u)break e;u--,p+=i[s++]<>>=7&m,m-=7&m,e.mode=16206;break}for(;m<3;){if(0===u)break e;u--,p+=i[s++]<>>=1,m-=1,3&p){case 0:e.mode=16193;break;case 1:if(gE(e),e.mode=ib,t===aE){p>>>=2,m-=2;break e}break;case 2:e.mode=16196;break;case 3:n.msg="invalid block type",e.mode=Oo}p>>>=2,m-=2;break;case 16193:for(p>>>=7&m,m-=7&m;m<32;){if(0===u)break e;u--,p+=i[s++]<>>16^65535)){n.msg="invalid stored block lengths",e.mode=Oo;break}if(e.length=65535&p,p=0,m=0,e.mode=16194,t===aE)break e;case 16194:e.mode=16195;case 16195:if(w=e.length,w){if(w>u&&(w=u),w>f&&(w=f),0===w)break e;r.set(i.subarray(s,s+w),l),u-=w,s+=w,f-=w,l+=w,e.length-=w;break}e.mode=vu;break;case 16196:for(;m<14;){if(0===u)break e;u--,p+=i[s++]<>>=5,m-=5,e.ndist=1+(31&p),p>>>=5,m-=5,e.ncode=4+(15&p),p>>>=4,m-=4,e.nlen>286||e.ndist>30){n.msg="too many length or distance symbols",e.mode=Oo;break}e.have=0,e.mode=16197;case 16197:for(;e.have>>=3,m-=3}for(;e.have<19;)e.lens[ke[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,q={bits:e.lenbits},ie=pg(0,e.lens,0,19,e.lencode,0,e.work,q),e.lenbits=q.bits,ie){n.msg="invalid code lengths set",e.mode=Oo;break}e.have=0,e.mode=16198;case 16198:for(;e.have>>24,O=T>>>16&255,R=65535&T,!(I<=m);){if(0===u)break e;u--,p+=i[s++]<>>=I,m-=I,e.lens[e.have++]=R;else{if(16===R){for(le=I+2;m>>=I,m-=I,0===e.have){n.msg="invalid bit length repeat",e.mode=Oo;break}te=e.lens[e.have-1],w=3+(3&p),p>>>=2,m-=2}else if(17===R){for(le=I+3;m>>=I,m-=I,te=0,w=3+(7&p),p>>>=3,m-=3}else{for(le=I+7;m>>=I,m-=I,te=0,w=11+(127&p),p>>>=7,m-=7}if(e.have+w>e.nlen+e.ndist){n.msg="invalid bit length repeat",e.mode=Oo;break}for(;w--;)e.lens[e.have++]=te}}if(e.mode===Oo)break;if(0===e.lens[256]){n.msg="invalid code -- missing end-of-block",e.mode=Oo;break}if(e.lenbits=9,q={bits:e.lenbits},ie=pg(1,e.lens,0,e.nlen,e.lencode,0,e.work,q),e.lenbits=q.bits,ie){n.msg="invalid literal/lengths set",e.mode=Oo;break}if(e.distbits=6,e.distcode=e.distdyn,q={bits:e.distbits},ie=pg(2,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,q),e.distbits=q.bits,ie){n.msg="invalid distances set",e.mode=Oo;break}if(e.mode=ib,t===aE)break e;case ib:e.mode=rb;case rb:if(u>=6&&f>=258){n.next_out=l,n.avail_out=f,n.next_in=s,n.avail_in=u,e.hold=p,e.bits=m,KF(n,b),l=n.next_out,r=n.output,f=n.avail_out,s=n.next_in,i=n.input,u=n.avail_in,p=e.hold,m=e.bits,e.mode===vu&&(e.back=-1);break}for(e.back=0;T=e.lencode[p&(1<>>24,O=T>>>16&255,R=65535&T,!(I<=m);){if(0===u)break e;u--,p+=i[s++]<>P)],I=T>>>24,O=T>>>16&255,R=65535&T,!(P+I<=m);){if(0===u)break e;u--,p+=i[s++]<>>=P,m-=P,e.back+=P}if(p>>>=I,m-=I,e.back+=I,e.length=R,0===O){e.mode=16205;break}if(32&O){e.back=-1,e.mode=vu;break}if(64&O){n.msg="invalid literal/length code",e.mode=Oo;break}e.extra=15&O,e.mode=16201;case 16201:if(e.extra){for(le=e.extra;m>>=e.extra,m-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=16202;case 16202:for(;T=e.distcode[p&(1<>>24,O=T>>>16&255,R=65535&T,!(I<=m);){if(0===u)break e;u--,p+=i[s++]<>P)],I=T>>>24,O=T>>>16&255,R=65535&T,!(P+I<=m);){if(0===u)break e;u--,p+=i[s++]<>>=P,m-=P,e.back+=P}if(p>>>=I,m-=I,e.back+=I,64&O){n.msg="invalid distance code",e.mode=Oo;break}e.offset=R,e.extra=15&O,e.mode=16203;case 16203:if(e.extra){for(le=e.extra;m>>=e.extra,m-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){n.msg="invalid distance too far back",e.mode=Oo;break}e.mode=16204;case 16204:if(0===f)break e;if(w=b-f,e.offset>w){if(w=e.offset-w,w>e.whave&&e.sane){n.msg="invalid distance too far back",e.mode=Oo;break}w>e.wnext?(w-=e.wnext,F=e.wsize-w):F=e.wnext-w,w>e.length&&(w=e.length),D=e.window}else D=r,F=l-e.offset,w=e.length;w>f&&(w=f),f-=w,e.length-=w;do{r[l++]=D[F++]}while(--w);0===e.length&&(e.mode=rb);break;case 16205:if(0===f)break e;r[l++]=e.length,f--,e.mode=rb;break;case 16206:if(e.wrap){for(;m<32;){if(0===u)break e;u--,p|=i[s++]<{if(Ip(n))return wl;let t=n.state;return t.window&&(t.window=null),n.state=null,Ag},inflateGetHeader:(n,t)=>{if(Ip(n))return wl;const e=n.state;return 2&e.wrap?(e.head=t,t.done=!1,Ag):wl},inflateSetDictionary:(n,t)=>{const e=t.length;let i,r,s;return Ip(n)||(i=n.state,0!==i.wrap&&i.mode!==Oh)?wl:i.mode===Oh&&(r=1,r=eg(r,t,e,0),r!==i.check)?nb:(s=_E(n,t,e,e),s?(i.mode=16210,nD):(i.havedict=1,Ag))},inflateInfo:"pako inflate (from Nodeca project)"},RD=function kD(){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 vE=Object.prototype.toString,{Z_NO_FLUSH:PD,Z_FINISH:OD,Z_OK:mg,Z_STREAM_END:H1,Z_NEED_DICT:yE,Z_STREAM_ERROR:ND,Z_DATA_ERROR:Q1,Z_MEM_ERROR:LD}=Fh;function ob(n){this.options=J_.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 WF,this.strm.avail_out=0;let e=Md.inflateInit2(this.strm,t.windowBits);if(e!==mg)throw new Error(Ih[e]);if(this.header=new RD,Md.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=ag.string2buf(t.dictionary):"[object ArrayBuffer]"===vE.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(e=Md.inflateSetDictionary(this.strm,t.dictionary),e!==mg)))throw new Error(Ih[e])}function wE(n,t){const e=new ob(t);if(e.push(n),e.err)throw e.msg||Ih[e.err];return e.result}ob.prototype.push=function(n,t){const e=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let s,l,u;if(this.ended)return!1;for(l=t===~~t?t:!0===t?OD:PD,e.input="[object ArrayBuffer]"===vE.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),s=Md.inflate(e,l),s===yE&&r&&(s=Md.inflateSetDictionary(e,r),s===mg?s=Md.inflate(e,l):s===Q1&&(s=yE));e.avail_in>0&&s===H1&&e.state.wrap>0&&0!==n[e.next_in];)Md.inflateReset(e),s=Md.inflate(e,l);switch(s){case ND:case Q1:case yE:case LD:return this.onEnd(s),this.ended=!0,!1}if(u=e.avail_out,e.next_out&&(0===e.avail_out||s===H1))if("string"===this.options.to){let f=ag.utf8border(e.output,e.next_out),p=e.next_out-f,m=ag.buf2string(e.output,f);e.next_out=p,e.avail_out=i-p,p&&e.output.set(e.output.subarray(f,f+p),0),this.onData(m)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(s!==mg||0!==u){if(s===H1)return s=Md.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===e.avail_in)break}}return!0},ob.prototype.onData=function(n){this.chunks.push(n)},ob.prototype.onEnd=function(n){n===mg&&(this.result="string"===this.options.to?this.chunks.join(""):J_.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};var pL={Inflate:ob,inflate:wE,inflateRaw:function lL(n,t){return(t=t||{}).raw=!0,wE(n,t)},ungzip:wE,constants:Fh};const{ungzip:$D}=pL;var sb=$D;const CE=n=>{const t=[];for(let e=0;e{const i=t.name.endsWith(".gz"),r=new FileReader;let s;i?r.readAsArrayBuffer(t):r.readAsText(t,"utf8"),r.onload=l=>{const u=l.target.result.toString();s=i?sb(l.target.result,{to:"string"}):u,u.includes("gameObjectPositions")&&function MM(n){return new(tN())({allErrors:!0}).validate(vN,JSON.parse(n))}(u)&&(s=JSON.stringify(function pF(n){const{gameObjectPositions:t,cycles:e=[]}=JSON.parse(n),i={checksum:"",data:{projectName:"GameObjects",fileChecksum:"",apiVersion:"1.3",nodes:[]}},r=[{name:Rc,type:Zo.FOLDER,attributes:{},children:[]}];!function z_(n){for(const t of n)t.name.startsWith("root")||(t.name=t.name.startsWith(".")?`root${t.name}`:`root.${t.name}`)}(t);const s=t.find(u=>"root"===u.name),l=function bN(n){const t=Math.max(n.x,n.z);return{name:Rc,position:{x:0,y:0,z:0},scale:{x:t,y:0,z:t}}}(s.scale);t.push(l);for(const u of t){const f=u.name.split(".");f[0]!==Rc&&AF(f,r[0].children,Rc,u,t,s)}return i.data.nodes=r,i.data.edges=e.map(u=>function _N(n){return{fromNodeName:Mh(n.from),toNodeName:Mh(n.to),attributes:{coupling:100}}}(u)),i.data.attributeTypes=function _l(){return{edges:{coupling:Sc.relative}}}(),i.checksum=L_()(JSON.stringify(i.data)),i}(u)))},r.onloadend=()=>{e(s)}})});return function(e){return n.apply(this,arguments)}}();let ME=(()=>{class n{constructor(e,i){this.store=e,this.loadFileService=i,this.isUploading=!1}uploadFiles(){const e=fF();e.addEventListener("change",()=>{this.uploadFilesOnEvent(e)}),e.click()}uploadFilesOnEvent(e){var i=this;return Cn(function*(){try{i.isUploading=!0,i.store.dispatch(Ec({value:!0})),i.store.dispatch(ph({value:!0}));const r=yield Promise.all(CE(e.files)),{customConfigs:s,ccFiles:l}=i.splitCustomConfigsAndCCFiles(e.files,r);for(const u of s)hr.importCustomConfigs(u);l.length>0&&i.loadFileService.loadFiles(l)}catch{i.store.dispatch(Ec({value:!1})),i.store.dispatch(ph({value:!1}))}finally{i.isUploading=!1}})()}splitCustomConfigsAndCCFiles(e,i){const r=[],s=[];for(const[l,u]of i.entries()){const f=e[l].name;f.includes(xM)?r.push(u):s.push({fileName:f,fileSize:e[l].size,content:XI(u)})}return{customConfigs:r,ccFiles:s}}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(mu))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),JD=(()=>{class n{constructor(e){this.uploadFilesService=e}uploadFiles(){this.uploadFilesService.uploadFiles()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(ME))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-upload-files-button"]],standalone:!0,features:[o.aNF],decls:1,vars:1,consts:[["title","Load cc.json files",3,"click","icon"]],template:function(i,r){1&i&&(o.j41(0,"cc-action-icon",0),o.bIt("click",function(){return r.uploadFiles()}),o.k0s()),2&i&&o.Y8G("icon","fa fa-folder-open folder-icon")},dependencies:[Al],encapsulation:2})}}return n})();const G1=typeof navigator<"u"&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function ab(n,t,e,i){n.addEventListener?n.addEventListener(t,e,i):n.attachEvent&&n.attachEvent("on".concat(t),e)}function gg(n,t,e,i){n.removeEventListener?n.removeEventListener(t,e,i):n.detachEvent&&n.detachEvent("on".concat(t),e)}function j1(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 lb={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,"-":G1?173:189,"=":G1?61:187,";":G1?59:186,"'":222,"[":219,"]":221,"\\":220},Ed={"\u21e7":16,shift:16,"\u2325":18,alt:18,option:18,"\u2303":17,ctrl:17,control:17,"\u2318":91,cmd:91,command:91},SE={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},Ss={16:!1,18:!1,17:!1,91:!1},Do={};for(let n=1;n<20;n++)lb["f".concat(n)]=111+n;let yo=[],Fp=null,tB="all";const yu=new Map,Dp=n=>lb[n.toLowerCase()]||Ed[n.toLowerCase()]||n.toUpperCase().charCodeAt(0);function iB(n){tB=n||"all"}function _g(){return tB||"all"}function TE(n){if(typeof n>"u")Object.keys(Do).forEach(r=>{Array.isArray(Do[r])&&Do[r].forEach(s=>cb(s)),delete Do[r]}),DE(null);else if(Array.isArray(n))n.forEach(r=>{r.key&&cb(r)});else if("object"==typeof n)n.key&&cb(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;EE(t).forEach(l=>{const u=l.split(r),f=u.length,p=u[f-1],m="*"===p?"*":Dp(p);if(!Do[m])return;e||(e=_g());const _=f>1?j1(Ed,u):[],b=[];Do[m]=Do[m].filter(w=>{const D=(!i||w.method===i)&&w.scope===e&&function eB(n,t){const e=n.length>=t.length?n:t,i=n.length>=t.length?t:n;let r=!0;for(let s=0;sDE(w))})};function IE(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 s in Ss)Object.prototype.hasOwnProperty.call(Ss,s)&&(!Ss[s]&&t.mods.indexOf(+s)>-1||Ss[s]&&-1===t.mods.indexOf(+s))&&(r=!1);(0===t.mods.length&&!Ss[16]&&!Ss[18]&&!Ss[17]&&!Ss[91]||r||"*"===t.shortcut)&&(t.keys=[],t.keys=t.keys.concat(yo),!1===t.method(n,t)&&(n.preventDefault?n.preventDefault():n.returnValue=!1,n.stopPropagation&&n.stopPropagation(),n.cancelBubble&&(n.cancelBubble=!0)))}}function FE(n,t){const e=Do["*"];let i=n.keyCode||n.which||n.charCode;if(!Sd.filter.call(this,n))return;if((93===i||224===i)&&(i=91),-1===yo.indexOf(i)&&229!==i&&yo.push(i),["ctrlKey","altKey","shiftKey","metaKey"].forEach(u=>{const f=SE[u];n[u]&&-1===yo.indexOf(f)?yo.push(f):!n[u]&&yo.indexOf(f)>-1?yo.splice(yo.indexOf(f),1):"metaKey"===u&&n[u]&&3===yo.length&&(n.ctrlKey||n.shiftKey||n.altKey||(yo=yo.slice(yo.indexOf(f))))}),i in Ss){Ss[i]=!0;for(const u in Ed)Ed[u]===i&&(Sd[u]=!0);if(!e)return}for(const u in Ss)Object.prototype.hasOwnProperty.call(Ss,u)&&(Ss[u]=n[SE[u]]);n.getModifierState&&(!n.altKey||n.ctrlKey)&&n.getModifierState("AltGraph")&&(-1===yo.indexOf(17)&&yo.push(17),-1===yo.indexOf(18)&&yo.push(18),Ss[17]=!0,Ss[18]=!0);const r=_g();if(e)for(let u=0;u1&&(r=j1(Ed,n)),(n="*"===(n=n[n.length-1])?"*":Dp(n))in Do||(Do[n]=[]),Do[n].push({keyup:f,keydown:p,scope:s,mods:r,shortcut:i[u],method:e,key:i[u],splitKey:m,element:l});if(typeof l<"u"&&window){if(!yu.has(l)){const w=function(){return FE(arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event,l)},F=function(){let D=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event;FE(D,l),function vL(n){let t=n.keyCode||n.which||n.charCode;const e=yo.indexOf(t);if(e>=0&&yo.splice(e,1),n.key&&"meta"===n.key.toLowerCase()&&yo.splice(0,yo.length),(93===t||224===t)&&(t=91),t in Ss){Ss[t]=!1;for(const i in Ed)Ed[i]===t&&(Sd[i]=!1)}}(D)};yu.set(l,{keydownListener:w,keyupListenr:F,capture:_}),ab(l,"keydown",w,_),ab(l,"keyup",F,_)}if(!Fp){const w=()=>{yo=[]};Fp={listener:w,capture:_},ab(window,"focus",w,_)}}}function DE(n){const t=Object.values(Do).flat();if(t.findIndex(i=>{let{element:r}=i;return r===n})<0){const{keydownListener:i,keyupListenr:r,capture:s}=yu.get(n)||{};i&&r&&(gg(n,"keyup",r,s),gg(n,"keydown",i,s),yu.delete(n))}if((t.length<=0||yu.size<=0)&&(Object.keys(yu).forEach(r=>{const{keydownListener:s,keyupListenr:l,capture:u}=yu.get(r)||{};s&&l&&(gg(r,"keyup",l,u),gg(r,"keydown",s,u),yu.delete(r))}),yu.clear(),Object.keys(Do).forEach(r=>delete Do[r]),Fp)){const{listener:r,capture:s}=Fp;gg(window,"focus",r,s),Fp=null}}const BE={getPressedKeyString:function bL(){return yo.map(n=>(n=>Object.keys(lb).find(t=>lb[t]===n))(n)||(n=>Object.keys(Ed).find(t=>Ed[t]===n))(n)||String.fromCharCode(n))},setScope:iB,getScope:_g,deleteScope:function F9(n,t){let e,i;n||(n=_g());for(const r in Do)if(Object.prototype.hasOwnProperty.call(Do,r))for(e=Do[r],i=0;i{let{element:u}=l;return DE(u)}):i++;_g()===n&&iB(t||"all")},getPressedKeyCodes:function _L(){return yo.slice(0)},getAllKeyCodes:function $1(){const n=[];return Object.keys(Do).forEach(t=>{Do[t].forEach(e=>{let{key:i,scope:r,mods:s,shortcut:l}=e;n.push({scope:r,shortcut:l,mods:s,keys:i.split("+").map(u=>Dp(u))})})}),n},isPressed:function q1(n){return"string"==typeof n&&(n=Dp(n)),-1!==yo.indexOf(n)},filter:function rB(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 yL(n){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all";Object.keys(Do).forEach(e=>{Do[e].filter(r=>r.scope===t&&r.shortcut===n).forEach(r=>{r&&r.method&&r.method()})})},unbind:TE,keyMap:lb,modifier:Ed,modifierMap:SE};for(const n in BE)Object.prototype.hasOwnProperty.call(BE,n)&&(Sd[n]=BE[n]);if(typeof window<"u"){const n=window.hotkeys;Sd.noConflict=t=>(t&&window.hotkeys===Sd&&(window.hotkeys=n),Sd),window.hotkeys=Sd}var wL=v(7239),xL=v.n(wL);const aB=1,D9=2,Nh=3,xu=0,ua=1,Cu=2,ns=100,yg=101,SL=102,k9=200,db=201,IL=202,OE=203,NE=204,W1=205,FL=206,DL=207,BL=208,LE=209,cB=210,kL=211,X1=212,UE=213,R9=214,K1=0,OL=1,NL=2,Eu=0,fB=1,LL=2,pB=3,AB=4,UL=5,VL=6,mB=7,Su=301,Lh=302,ew=306,Bp=1e3,Id=1001,HE=1002,ha=1003,HL=1004,tw=1005,Ts=1006,ub=1007,Uh=1008,Tu=1009,wg=1010,hb=1011,fb=1012,QE=1013,Vh=1014,xl=1015,xg=1016,zE=1017,GE=1018,kp=1020,bB=35902,vB=1021,yB=1022,Ba=1023,wB=1024,xB=1025,Cg=1026,Mg=1027,jE=1028,nw=1029,CB=1030,$E=1031,iw=1033,Eg=33776,rw=33777,ow=33778,pb=33779,qE=35840,sw=35841,MB=35842,WE=35843,aw=36196,lw=37492,XE=37496,cw=37808,KE=37809,Ab=37810,mb=37811,dw=37812,uw=37813,hw=37814,gb=37815,EB=37816,fw=37817,YE=37818,SB=37819,ZE=37820,JE=37821,_b=36492,ic=36494,Sg=36495,bb=36283,pw=36284,eS=36285,tS=36286,Oc="srgb",Qh="srgb-linear",rS="display-p3",wb="display-p3-linear",oS="linear",Bo="srgb",gw="rec709",Pp="p3",Op=7680,j9=512,ZL=513,$9=514,JL=515,q9=516,DB=517,BB=518,e5=519,lS="300 es",ka=2e3;class Nc{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 s=r.indexOf(e);-1!==s&&r.splice(s,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 s=0,l=r.length;s>8&255]+Hs[n>>16&255]+Hs[n>>24&255]+"-"+Hs[255&t]+Hs[t>>8&255]+"-"+Hs[t>>16&15|64]+Hs[t>>24&255]+"-"+Hs[63&e|128]+Hs[e>>8&255]+"-"+Hs[e>>16&255]+Hs[e>>24&255]+Hs[255&i]+Hs[i>>8&255]+Hs[i>>16&255]+Hs[i>>24&255]).toLowerCase()}function is(n,t,e){return Math.max(t,Math.min(e,n))}function Cb(n,t,e){return(1-e)*n+e*t}function Ra(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 lr(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 Z9_DEG2RAD=Fu;class At{constructor(t=0,e=0){At.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(is(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),s=this.x-t.x,l=this.y-t.y;return this.x=s*i-l*r+t.x,this.y=s*r+l*i+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Ki{constructor(t,e,i,r,s,l,u,f,p){Ki.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==t&&this.set(t,e,i,r,s,l,u,f,p)}set(t,e,i,r,s,l,u,f,p){const m=this.elements;return m[0]=t,m[1]=r,m[2]=u,m[3]=e,m[4]=s,m[5]=f,m[6]=i,m[7]=l,m[8]=p,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,s=this.elements,l=i[0],u=i[3],f=i[6],p=i[1],m=i[4],_=i[7],b=i[2],w=i[5],F=i[8],D=r[0],T=r[3],I=r[6],O=r[1],R=r[4],P=r[7],ee=r[2],J=r[5],te=r[8];return s[0]=l*D+u*O+f*ee,s[3]=l*T+u*R+f*J,s[6]=l*I+u*P+f*te,s[1]=p*D+m*O+_*ee,s[4]=p*T+m*R+_*J,s[7]=p*I+m*P+_*te,s[2]=b*D+w*O+F*ee,s[5]=b*T+w*R+F*J,s[8]=b*I+w*P+F*te,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],s=t[3],l=t[4],u=t[5],f=t[6],p=t[7],m=t[8];return e*l*m-e*u*p-i*s*m+i*u*f+r*s*p-r*l*f}invert(){const t=this.elements,e=t[0],i=t[1],r=t[2],s=t[3],l=t[4],u=t[5],f=t[6],p=t[7],m=t[8],_=m*l-u*p,b=u*f-m*s,w=p*s-l*f,F=e*_+i*b+r*w;if(0===F)return this.set(0,0,0,0,0,0,0,0,0);const D=1/F;return t[0]=_*D,t[1]=(r*p-m*i)*D,t[2]=(u*i-r*l)*D,t[3]=b*D,t[4]=(m*e-r*f)*D,t[5]=(r*s-u*e)*D,t[6]=w*D,t[7]=(i*f-p*e)*D,t[8]=(l*e-i*s)*D,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,s,l,u){const f=Math.cos(s),p=Math.sin(s);return this.set(i*f,i*p,-i*(f*l+p*u)+l+t,-r*p,r*f,-r*(-p*l+f*u)+u+e,0,0,1),this}scale(t,e){return this.premultiply(HB.makeScale(t,e)),this}rotate(t){return this.premultiply(HB.makeRotation(-t)),this}translate(t,e){return this.premultiply(HB.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 HB=new Ki;function _s(n){for(let t=n.length-1;t>=0;--t)if(n[t]>=65535)return!0;return!1}function Gh(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function QB(){const n=Gh("canvas");return n.style.display="block",n}Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array;const l5={};function Ig(n){n in l5||(l5[n]=!0,console.warn(n))}const c5=(new Ki).set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),bw=(new Ki).set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),Eb={[Qh]:{transfer:oS,primaries:gw,luminanceCoefficients:[.2126,.7152,.0722],toReference:n=>n,fromReference:n=>n},[Oc]:{transfer:Bo,primaries:gw,luminanceCoefficients:[.2126,.7152,.0722],toReference:n=>n.convertSRGBToLinear(),fromReference:n=>n.convertLinearToSRGB()},[wb]:{transfer:oS,primaries:Pp,luminanceCoefficients:[.2289,.6917,.0793],toReference:n=>n.applyMatrix3(bw),fromReference:n=>n.applyMatrix3(c5)},[rS]:{transfer:Bo,primaries:Pp,luminanceCoefficients:[.2289,.6917,.0793],toReference:n=>n.convertSRGBToLinear().applyMatrix3(bw),fromReference:n=>n.applyMatrix3(c5).convertLinearToSRGB()}},zB=new Set([Qh,wb]),Nr={enabled:!0,_workingColorSpace:Qh,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(n){if(!zB.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,Eb[e].fromReference)((0,Eb[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 Eb[n].primaries},getTransfer:function(n){return""===n?oS:Eb[n].transfer},getLuminanceCoefficients:function(n,t=this._workingColorSpace){return n.fromArray(Eb[t].luminanceCoefficients)}};function Lp(n){return n<.04045?.0773993808*n:Math.pow(.9478672986*n+.0521327014,2.4)}function vw(n){return n<.0031308?12.92*n:1.055*Math.pow(n,.41666)-.055}let Fg;class d5{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===Fg&&(Fg=Gh("canvas")),Fg.width=t.width,Fg.height=t.height;const i=Fg.getContext("2d");t instanceof ImageData?i.putImageData(t,0,0):i.drawImage(t,0,0,t.width,t.height),e=Fg}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=Gh("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),s=r.data;for(let l=0;l{class n extends Nc{constructor(e=n.DEFAULT_IMAGE,i=n.DEFAULT_MAPPING,r=Id,s=Id,l=Ts,u=Uh,f=Ba,p=Tu,m=n.DEFAULT_ANISOTROPY,_=""){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:ww++}),this.uuid=fa(),this.name="",this.source=new Dg(e),this.mipmaps=[],this.mapping=i,this.channel=0,this.wrapS=r,this.wrapT=s,this.magFilter=l,this.minFilter=u,this.anisotropy=m,this.format=f,this.internalFormat=null,this.type=p,this.offset=new At(0,0),this.repeat=new At(1,1),this.center=new At(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Ki,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=_,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 Bp:e.x=e.x-Math.floor(e.x);break;case Id: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 Bp:e.y=e.y-Math.floor(e.y);break;case Id: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 Lr{constructor(t=0,e=0,i=0,r=1){Lr.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,s=this.w,l=t.elements;return this.x=l[0]*e+l[4]*i+l[8]*r+l[12]*s,this.y=l[1]*e+l[5]*i+l[9]*r+l[13]*s,this.z=l[2]*e+l[6]*i+l[10]*r+l[14]*s,this.w=l[3]*e+l[7]*i+l[11]*r+l[15]*s,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,s;const f=t.elements,p=f[0],m=f[4],_=f[8],b=f[1],w=f[5],F=f[9],D=f[2],T=f[6],I=f[10];if(Math.abs(m-b)<.01&&Math.abs(_-D)<.01&&Math.abs(F-T)<.01){if(Math.abs(m+b)<.1&&Math.abs(_+D)<.1&&Math.abs(F+T)<.1&&Math.abs(p+w+I-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;const R=(p+1)/2,P=(w+1)/2,ee=(I+1)/2,J=(m+b)/4,te=(_+D)/4,ie=(F+T)/4;return R>P&&R>ee?R<.01?(i=0,r=.707106781,s=.707106781):(i=Math.sqrt(R),r=J/i,s=te/i):P>ee?P<.01?(i=.707106781,r=0,s=.707106781):(r=Math.sqrt(P),i=J/r,s=ie/r):ee<.01?(i=.707106781,r=.707106781,s=0):(s=Math.sqrt(ee),i=te/s,r=ie/s),this.set(i,r,s,e),this}let O=Math.sqrt((T-F)*(T-F)+(_-D)*(_-D)+(b-m)*(b-m));return Math.abs(O)<.001&&(O=1),this.x=(T-F)/O,this.y=(_-D)/O,this.z=(b-m)/O,this.w=Math.acos((p+w+I-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 jB extends Nc{constructor(t=1,e=1,i={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new Lr(0,0,t,e),this.scissorTest=!1,this.viewport=new Lr(0,0,t,e);const r={width:t,height:e,depth:1};i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:Ts,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},i);const s=new Is(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace);s.flipY=!1,s.generateMipmaps=i.generateMipmaps,s.internalFormat=i.internalFormat,this.textures=[];const l=i.count;for(let u=0;u=0?1:-1,R=1-I*I;if(R>Number.EPSILON){const ee=Math.sqrt(R),J=Math.atan2(ee,I*O);T=Math.sin(T*J)/ee,u=Math.sin(u*J)/ee}const P=u*O;if(f=f*T+b*P,p=p*T+w*P,m=m*T+F*P,_=_*T+D*P,T===1-u){const ee=1/Math.sqrt(f*f+p*p+m*m+_*_);f*=ee,p*=ee,m*=ee,_*=ee}}t[e]=f,t[e+1]=p,t[e+2]=m,t[e+3]=_}static multiplyQuaternionsFlat(t,e,i,r,s,l){const u=i[r],f=i[r+1],p=i[r+2],m=i[r+3],_=s[l],b=s[l+1],w=s[l+2],F=s[l+3];return t[e]=u*F+m*_+f*w-p*b,t[e+1]=f*F+m*b+p*_-u*w,t[e+2]=p*F+m*w+u*b-f*_,t[e+3]=m*F-u*_-f*b-p*w,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,s=t._z,l=t._order,u=Math.cos,f=Math.sin,p=u(i/2),m=u(r/2),_=u(s/2),b=f(i/2),w=f(r/2),F=f(s/2);switch(l){case"XYZ":this._x=b*m*_+p*w*F,this._y=p*w*_-b*m*F,this._z=p*m*F+b*w*_,this._w=p*m*_-b*w*F;break;case"YXZ":this._x=b*m*_+p*w*F,this._y=p*w*_-b*m*F,this._z=p*m*F-b*w*_,this._w=p*m*_+b*w*F;break;case"ZXY":this._x=b*m*_-p*w*F,this._y=p*w*_+b*m*F,this._z=p*m*F+b*w*_,this._w=p*m*_-b*w*F;break;case"ZYX":this._x=b*m*_-p*w*F,this._y=p*w*_+b*m*F,this._z=p*m*F-b*w*_,this._w=p*m*_+b*w*F;break;case"YZX":this._x=b*m*_+p*w*F,this._y=p*w*_+b*m*F,this._z=p*m*F-b*w*_,this._w=p*m*_-b*w*F;break;case"XZY":this._x=b*m*_-p*w*F,this._y=p*w*_-b*m*F,this._z=p*m*F+b*w*_,this._w=p*m*_+b*w*F;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+l)}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],s=e[8],l=e[1],u=e[5],f=e[9],p=e[2],m=e[6],_=e[10],b=i+u+_;if(b>0){const w=.5/Math.sqrt(b+1);this._w=.25/w,this._x=(m-f)*w,this._y=(s-p)*w,this._z=(l-r)*w}else if(i>u&&i>_){const w=2*Math.sqrt(1+i-u-_);this._w=(m-f)/w,this._x=.25*w,this._y=(r+l)/w,this._z=(s+p)/w}else if(u>_){const w=2*Math.sqrt(1+u-i-_);this._w=(s-p)/w,this._x=(r+l)/w,this._y=.25*w,this._z=(f+m)/w}else{const w=2*Math.sqrt(1+_-i-u);this._w=(l-r)/w,this._x=(s+p)/w,this._y=(f+m)/w,this._z=.25*w}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(is(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,s=t._z,l=t._w,u=e._x,f=e._y,p=e._z,m=e._w;return this._x=i*m+l*u+r*p-s*f,this._y=r*m+l*f+s*u-i*p,this._z=s*m+l*p+i*f-r*u,this._w=l*m-i*u-r*f-s*p,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,s=this._z,l=this._w;let u=l*t._w+i*t._x+r*t._y+s*t._z;if(u<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,u=-u):this.copy(t),u>=1)return this._w=l,this._x=i,this._y=r,this._z=s,this;const f=1-u*u;if(f<=Number.EPSILON){const w=1-e;return this._w=w*l+e*this._w,this._x=w*i+e*this._x,this._y=w*r+e*this._y,this._z=w*s+e*this._z,this.normalize(),this}const p=Math.sqrt(f),m=Math.atan2(p,u),_=Math.sin((1-e)*m)/p,b=Math.sin(e*m)/p;return this._w=l*_+this._w*b,this._x=i*_+this._x*b,this._y=r*_+this._y*b,this._z=s*_+this._z*b,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),s=Math.sqrt(i);return this.set(r*Math.sin(t),r*Math.cos(t),s*Math.sin(e),s*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 pe{constructor(t=0,e=0,i=0){pe.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(uS.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(uS.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,i=this.y,r=this.z,s=t.elements;return this.x=s[0]*e+s[3]*i+s[6]*r,this.y=s[1]*e+s[4]*i+s[7]*r,this.z=s[2]*e+s[5]*i+s[8]*r,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,i=this.y,r=this.z,s=t.elements,l=1/(s[3]*e+s[7]*i+s[11]*r+s[15]);return this.x=(s[0]*e+s[4]*i+s[8]*r+s[12])*l,this.y=(s[1]*e+s[5]*i+s[9]*r+s[13])*l,this.z=(s[2]*e+s[6]*i+s[10]*r+s[14])*l,this}applyQuaternion(t){const e=this.x,i=this.y,r=this.z,s=t.x,l=t.y,u=t.z,f=t.w,p=2*(l*r-u*i),m=2*(u*e-s*r),_=2*(s*i-l*e);return this.x=e+f*p+l*_-u*m,this.y=i+f*m+u*p-s*_,this.z=r+f*_+s*m-l*p,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,s=t.elements;return this.x=s[0]*e+s[4]*i+s[8]*r,this.y=s[1]*e+s[5]*i+s[9]*r,this.z=s[2]*e+s[6]*i+s[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,s=t.z,l=e.x,u=e.y,f=e.z;return this.x=r*f-s*u,this.y=s*l-i*f,this.z=i*u-r*l,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 xw.copy(this).projectOnVector(t),this.sub(xw)}reflect(t){return this.sub(xw.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(is(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 xw=new pe,uS=new Pa;class Qs{constructor(t=new pe(1/0,1/0,1/0),e=new pe(-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,Fd),Fd.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(Cw),Ib.subVectors(this.max,Cw),Sb.subVectors(t.a,Cw),Bg.subVectors(t.b,Cw),Tb.subVectors(t.c,Cw),Up.subVectors(Bg,Sb),jh.subVectors(Tb,Bg),Vp.subVectors(Sb,Tb);let e=[0,-Up.z,Up.y,0,-jh.z,jh.y,0,-Vp.z,Vp.y,Up.z,0,-Up.x,jh.z,0,-jh.x,Vp.z,0,-Vp.x,-Up.y,Up.x,0,-jh.y,jh.x,0,-Vp.y,Vp.x,0];return!(!fS(e,Sb,Bg,Tb,Ib)||(e=[1,0,0,0,1,0,0,0,1],!fS(e,Sb,Bg,Tb,Ib)))&&(Mw.crossVectors(Up,jh),e=[Mw.x,Mw.y,Mw.z],fS(e,Sb,Bg,Tb,Ib))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,Fd).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(Fd).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()||(rc[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),rc[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),rc[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),rc[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),rc[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),rc[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),rc[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),rc[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(rc)),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 rc=[new pe,new pe,new pe,new pe,new pe,new pe,new pe,new pe],Fd=new pe,hS=new Qs,Sb=new pe,Bg=new pe,Tb=new pe,Up=new pe,jh=new pe,Vp=new pe,Cw=new pe,Ib=new pe,Mw=new pe,kg=new pe;function fS(n,t,e,i,r){for(let s=0,l=n.length-3;s<=l;s+=3){kg.fromArray(n,s);const u=r.x*Math.abs(kg.x)+r.y*Math.abs(kg.y)+r.z*Math.abs(kg.z),f=t.dot(kg),p=e.dot(kg),m=i.dot(kg);if(Math.max(-Math.max(f,p,m),Math.min(f,p,m))>u)return!1}return!0}const qB=new Qs,Fb=new pe,pS=new pe;class Js{constructor(t=new pe,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):qB.setFromPoints(t).getCenter(i);let r=0;for(let s=0,l=t.length;sthis.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;Fb.subVectors(t,this.center);const e=Fb.lengthSq();if(e>this.radius*this.radius){const i=Math.sqrt(e),r=.5*(i-this.radius);this.center.addScaledVector(Fb,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):(pS.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(Fb.copy(t.center).add(pS)),this.expandByPoint(Fb.copy(t.center).sub(pS))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Bu=new pe,AS=new pe,Db=new pe,ku=new pe,WB=new pe,Ew=new pe,mS=new pe;class Hp{constructor(t=new pe,e=new pe(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,Bu)),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=Bu.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Bu.copy(this.origin).addScaledVector(this.direction,e),Bu.distanceToSquared(t))}distanceSqToSegment(t,e,i,r){AS.copy(t).add(e).multiplyScalar(.5),Db.copy(e).sub(t).normalize(),ku.copy(this.origin).sub(AS);const s=.5*t.distanceTo(e),l=-this.direction.dot(Db),u=ku.dot(this.direction),f=-ku.dot(Db),p=ku.lengthSq(),m=Math.abs(1-l*l);let _,b,w,F;if(m>0)if(_=l*f-u,b=l*u-f,F=s*m,_>=0)if(b>=-F)if(b<=F){const D=1/m;_*=D,b*=D,w=_*(_+l*b+2*u)+b*(l*_+b+2*f)+p}else b=s,_=Math.max(0,-(l*b+u)),w=-_*_+b*(b+2*f)+p;else b=-s,_=Math.max(0,-(l*b+u)),w=-_*_+b*(b+2*f)+p;else b<=-F?(_=Math.max(0,-(-l*s+u)),b=_>0?-s:Math.min(Math.max(-s,-f),s),w=-_*_+b*(b+2*f)+p):b<=F?(_=0,b=Math.min(Math.max(-s,-f),s),w=b*(b+2*f)+p):(_=Math.max(0,-(l*s+u)),b=_>0?s:Math.min(Math.max(-s,-f),s),w=-_*_+b*(b+2*f)+p);else b=l>0?-s:s,_=Math.max(0,-(l*b+u)),w=-_*_+b*(b+2*f)+p;return i&&i.copy(this.origin).addScaledVector(this.direction,_),r&&r.copy(AS).addScaledVector(Db,b),w}intersectSphere(t,e){Bu.subVectors(t.center,this.origin);const i=Bu.dot(this.direction),r=Bu.dot(Bu)-i*i,s=t.radius*t.radius;if(r>s)return null;const l=Math.sqrt(s-r),u=i-l,f=i+l;return f<0?null:this.at(u<0?f:u,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,s,l,u,f;const p=1/this.direction.x,m=1/this.direction.y,_=1/this.direction.z,b=this.origin;return p>=0?(i=(t.min.x-b.x)*p,r=(t.max.x-b.x)*p):(i=(t.max.x-b.x)*p,r=(t.min.x-b.x)*p),m>=0?(s=(t.min.y-b.y)*m,l=(t.max.y-b.y)*m):(s=(t.max.y-b.y)*m,l=(t.min.y-b.y)*m),i>l||s>r||((s>i||isNaN(i))&&(i=s),(l=0?(u=(t.min.z-b.z)*_,f=(t.max.z-b.z)*_):(u=(t.max.z-b.z)*_,f=(t.min.z-b.z)*_),i>f||u>r)||((u>i||i!=i)&&(i=u),(f=0?i:r,e)}intersectsBox(t){return null!==this.intersectBox(t,Bu)}intersectTriangle(t,e,i,r,s){WB.subVectors(e,t),Ew.subVectors(i,t),mS.crossVectors(WB,Ew);let u,l=this.direction.dot(mS);if(l>0){if(r)return null;u=1}else{if(!(l<0))return null;u=-1,l=-l}ku.subVectors(this.origin,t);const f=u*this.direction.dot(Ew.crossVectors(ku,Ew));if(f<0)return null;const p=u*this.direction.dot(WB.cross(ku));if(p<0||f+p>l)return null;const m=-u*ku.dot(mS);return m<0?null:this.at(m/l,s)}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 zi{constructor(t,e,i,r,s,l,u,f,p,m,_,b,w,F,D,T){zi.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,s,l,u,f,p,m,_,b,w,F,D,T)}set(t,e,i,r,s,l,u,f,p,m,_,b,w,F,D,T){const I=this.elements;return I[0]=t,I[4]=e,I[8]=i,I[12]=r,I[1]=s,I[5]=l,I[9]=u,I[13]=f,I[2]=p,I[6]=m,I[10]=_,I[14]=b,I[3]=w,I[7]=F,I[11]=D,I[15]=T,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 zi).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/Qp.setFromMatrixColumn(t,0).length(),s=1/Qp.setFromMatrixColumn(t,1).length(),l=1/Qp.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]*s,e[5]=i[5]*s,e[6]=i[6]*s,e[7]=0,e[8]=i[8]*l,e[9]=i[9]*l,e[10]=i[10]*l,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,s=t.z,l=Math.cos(i),u=Math.sin(i),f=Math.cos(r),p=Math.sin(r),m=Math.cos(s),_=Math.sin(s);if("XYZ"===t.order){const b=l*m,w=l*_,F=u*m,D=u*_;e[0]=f*m,e[4]=-f*_,e[8]=p,e[1]=w+F*p,e[5]=b-D*p,e[9]=-u*f,e[2]=D-b*p,e[6]=F+w*p,e[10]=l*f}else if("YXZ"===t.order){const b=f*m,w=f*_,F=p*m,D=p*_;e[0]=b+D*u,e[4]=F*u-w,e[8]=l*p,e[1]=l*_,e[5]=l*m,e[9]=-u,e[2]=w*u-F,e[6]=D+b*u,e[10]=l*f}else if("ZXY"===t.order){const b=f*m,w=f*_,F=p*m,D=p*_;e[0]=b-D*u,e[4]=-l*_,e[8]=F+w*u,e[1]=w+F*u,e[5]=l*m,e[9]=D-b*u,e[2]=-l*p,e[6]=u,e[10]=l*f}else if("ZYX"===t.order){const b=l*m,w=l*_,F=u*m,D=u*_;e[0]=f*m,e[4]=F*p-w,e[8]=b*p+D,e[1]=f*_,e[5]=D*p+b,e[9]=w*p-F,e[2]=-p,e[6]=u*f,e[10]=l*f}else if("YZX"===t.order){const b=l*f,w=l*p,F=u*f,D=u*p;e[0]=f*m,e[4]=D-b*_,e[8]=F*_+w,e[1]=_,e[5]=l*m,e[9]=-u*m,e[2]=-p*m,e[6]=w*_+F,e[10]=b-D*_}else if("XZY"===t.order){const b=l*f,w=l*p,F=u*f,D=u*p;e[0]=f*m,e[4]=-_,e[8]=p*m,e[1]=b*_+D,e[5]=l*m,e[9]=w*_-F,e[2]=F*_-w,e[6]=u*m,e[10]=D*_+b}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(h5,t,XB)}lookAt(t,e,i){const r=this.elements;return Ml.subVectors(t,e),0===Ml.lengthSq()&&(Ml.z=1),Ml.normalize(),Ru.crossVectors(i,Ml),0===Ru.lengthSq()&&(1===Math.abs(i.z)?Ml.x+=1e-4:Ml.z+=1e-4,Ml.normalize(),Ru.crossVectors(i,Ml)),Ru.normalize(),gS.crossVectors(Ml,Ru),r[0]=Ru.x,r[4]=gS.x,r[8]=Ml.x,r[1]=Ru.y,r[5]=gS.y,r[9]=Ml.y,r[2]=Ru.z,r[6]=gS.z,r[10]=Ml.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,s=this.elements,l=i[0],u=i[4],f=i[8],p=i[12],m=i[1],_=i[5],b=i[9],w=i[13],F=i[2],D=i[6],T=i[10],I=i[14],O=i[3],R=i[7],P=i[11],ee=i[15],J=r[0],te=r[4],ie=r[8],W=r[12],q=r[1],le=r[5],ke=r[9],Ue=r[13],ce=r[2],ze=r[6],Ce=r[10],Oe=r[14],Fe=r[3],ft=r[7],Et=r[11],kt=r[15];return s[0]=l*J+u*q+f*ce+p*Fe,s[4]=l*te+u*le+f*ze+p*ft,s[8]=l*ie+u*ke+f*Ce+p*Et,s[12]=l*W+u*Ue+f*Oe+p*kt,s[1]=m*J+_*q+b*ce+w*Fe,s[5]=m*te+_*le+b*ze+w*ft,s[9]=m*ie+_*ke+b*Ce+w*Et,s[13]=m*W+_*Ue+b*Oe+w*kt,s[2]=F*J+D*q+T*ce+I*Fe,s[6]=F*te+D*le+T*ze+I*ft,s[10]=F*ie+D*ke+T*Ce+I*Et,s[14]=F*W+D*Ue+T*Oe+I*kt,s[3]=O*J+R*q+P*ce+ee*Fe,s[7]=O*te+R*le+P*ze+ee*ft,s[11]=O*ie+R*ke+P*Ce+ee*Et,s[15]=O*W+R*Ue+P*Oe+ee*kt,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],s=t[12],l=t[1],u=t[5],f=t[9],p=t[13],m=t[2],_=t[6],b=t[10],w=t[14];return t[3]*(+s*f*_-r*p*_-s*u*b+i*p*b+r*u*w-i*f*w)+t[7]*(+e*f*w-e*p*b+s*l*b-r*l*w+r*p*m-s*f*m)+t[11]*(+e*p*_-e*u*w-s*l*_+i*l*w+s*u*m-i*p*m)+t[15]*(-r*u*m-e*f*_+e*u*b+r*l*_-i*l*b+i*f*m)}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],s=t[3],l=t[4],u=t[5],f=t[6],p=t[7],m=t[8],_=t[9],b=t[10],w=t[11],F=t[12],D=t[13],T=t[14],I=t[15],O=_*T*p-D*b*p+D*f*w-u*T*w-_*f*I+u*b*I,R=F*b*p-m*T*p-F*f*w+l*T*w+m*f*I-l*b*I,P=m*D*p-F*_*p+F*u*w-l*D*w-m*u*I+l*_*I,ee=F*_*f-m*D*f-F*u*b+l*D*b+m*u*T-l*_*T,J=e*O+i*R+r*P+s*ee;if(0===J)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const te=1/J;return t[0]=O*te,t[1]=(D*b*s-_*T*s-D*r*w+i*T*w+_*r*I-i*b*I)*te,t[2]=(u*T*s-D*f*s+D*r*p-i*T*p-u*r*I+i*f*I)*te,t[3]=(_*f*s-u*b*s-_*r*p+i*b*p+u*r*w-i*f*w)*te,t[4]=R*te,t[5]=(m*T*s-F*b*s+F*r*w-e*T*w-m*r*I+e*b*I)*te,t[6]=(F*f*s-l*T*s-F*r*p+e*T*p+l*r*I-e*f*I)*te,t[7]=(l*b*s-m*f*s+m*r*p-e*b*p-l*r*w+e*f*w)*te,t[8]=P*te,t[9]=(F*_*s-m*D*s-F*i*w+e*D*w+m*i*I-e*_*I)*te,t[10]=(l*D*s-F*u*s+F*i*p-e*D*p-l*i*I+e*u*I)*te,t[11]=(m*u*s-l*_*s-m*i*p+e*_*p+l*i*w-e*u*w)*te,t[12]=ee*te,t[13]=(m*D*r-F*_*r+F*i*b-e*D*b-m*i*T+e*_*T)*te,t[14]=(F*u*r-l*D*r-F*i*f+e*D*f+l*i*T-e*u*T)*te,t[15]=(l*_*r-m*u*r+m*i*f-e*_*f-l*i*b+e*u*b)*te,this}scale(t){const e=this.elements,i=t.x,r=t.y,s=t.z;return e[0]*=i,e[4]*=r,e[8]*=s,e[1]*=i,e[5]*=r,e[9]*=s,e[2]*=i,e[6]*=r,e[10]*=s,e[3]*=i,e[7]*=r,e[11]*=s,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),s=1-i,l=t.x,u=t.y,f=t.z,p=s*l,m=s*u;return this.set(p*l+i,p*u-r*f,p*f+r*u,0,p*u+r*f,m*u+i,m*f-r*l,0,p*f-r*u,m*f+r*l,s*f*f+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,s,l){return this.set(1,i,s,0,t,1,l,0,e,r,1,0,0,0,0,1),this}compose(t,e,i){const r=this.elements,s=e._x,l=e._y,u=e._z,f=e._w,p=s+s,m=l+l,_=u+u,b=s*p,w=s*m,F=s*_,D=l*m,T=l*_,I=u*_,O=f*p,R=f*m,P=f*_,ee=i.x,J=i.y,te=i.z;return r[0]=(1-(D+I))*ee,r[1]=(w+P)*ee,r[2]=(F-R)*ee,r[3]=0,r[4]=(w-P)*J,r[5]=(1-(b+I))*J,r[6]=(T+O)*J,r[7]=0,r[8]=(F+R)*te,r[9]=(T-O)*te,r[10]=(1-(b+D))*te,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 s=Qp.set(r[0],r[1],r[2]).length();const l=Qp.set(r[4],r[5],r[6]).length(),u=Qp.set(r[8],r[9],r[10]).length();this.determinant()<0&&(s=-s),t.x=r[12],t.y=r[13],t.z=r[14],oc.copy(this);const p=1/s,m=1/l,_=1/u;return oc.elements[0]*=p,oc.elements[1]*=p,oc.elements[2]*=p,oc.elements[4]*=m,oc.elements[5]*=m,oc.elements[6]*=m,oc.elements[8]*=_,oc.elements[9]*=_,oc.elements[10]*=_,e.setFromRotationMatrix(oc),i.x=s,i.y=l,i.z=u,this}makePerspective(t,e,i,r,s,l,u=ka){const f=this.elements,p=2*s/(e-t),m=2*s/(i-r),_=(e+t)/(e-t),b=(i+r)/(i-r);let w,F;if(u===ka)w=-(l+s)/(l-s),F=-2*l*s/(l-s);else{if(2001!==u)throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+u);w=-l/(l-s),F=-l*s/(l-s)}return f[0]=p,f[4]=0,f[8]=_,f[12]=0,f[1]=0,f[5]=m,f[9]=b,f[13]=0,f[2]=0,f[6]=0,f[10]=w,f[14]=F,f[3]=0,f[7]=0,f[11]=-1,f[15]=0,this}makeOrthographic(t,e,i,r,s,l,u=ka){const f=this.elements,p=1/(e-t),m=1/(i-r),_=1/(l-s),b=(e+t)*p,w=(i+r)*m;let F,D;if(u===ka)F=(l+s)*_,D=-2*_;else{if(2001!==u)throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+u);F=s*_,D=-1*_}return f[0]=2*p,f[4]=0,f[8]=0,f[12]=-b,f[1]=0,f[5]=2*m,f[9]=0,f[13]=-w,f[2]=0,f[6]=0,f[10]=D,f[14]=-F,f[3]=0,f[7]=0,f[11]=0,f[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 Qp=new pe,oc=new zi,h5=new pe(0,0,0),XB=new pe(1,1,1),Ru=new pe,gS=new pe,Ml=new pe,Rg=new zi,Sw=new Pa;let Dd=(()=>{class n{constructor(e=0,i=0,r=0,s=n.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=i,this._z=r,this._order=s}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,s=this._order){return this._x=e,this._y=i,this._z=r,this._order=s,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 s=e.elements,l=s[0],u=s[4],f=s[8],p=s[1],m=s[5],_=s[9],b=s[2],w=s[6],F=s[10];switch(i){case"XYZ":this._y=Math.asin(is(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(-_,F),this._z=Math.atan2(-u,l)):(this._x=Math.atan2(w,m),this._z=0);break;case"YXZ":this._x=Math.asin(-is(_,-1,1)),Math.abs(_)<.9999999?(this._y=Math.atan2(f,F),this._z=Math.atan2(p,m)):(this._y=Math.atan2(-b,l),this._z=0);break;case"ZXY":this._x=Math.asin(is(w,-1,1)),Math.abs(w)<.9999999?(this._y=Math.atan2(-b,F),this._z=Math.atan2(-u,m)):(this._y=0,this._z=Math.atan2(p,l));break;case"ZYX":this._y=Math.asin(-is(b,-1,1)),Math.abs(b)<.9999999?(this._x=Math.atan2(w,F),this._z=Math.atan2(p,l)):(this._x=0,this._z=Math.atan2(-u,m));break;case"YZX":this._z=Math.asin(is(p,-1,1)),Math.abs(p)<.9999999?(this._x=Math.atan2(-_,m),this._y=Math.atan2(-b,l)):(this._x=0,this._y=Math.atan2(f,F));break;case"XZY":this._z=Math.asin(-is(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(w,m),this._y=Math.atan2(f,l)):(this._x=Math.atan2(-_,F),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 Rg.makeRotationFromQuaternion(e),this.setFromRotationMatrix(Rg,i,r)}setFromVector3(e,i=this._order){return this.set(e.x,e.y,e.z,i)}reorder(e){return Sw.setFromEuler(this),this.setFromQuaternion(Sw,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 _S{constructor(){this.mask=1}set(t){this.mask=1<>>0}enable(t){this.mask|=1<{class n extends Nc{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:f5++}),this.uuid=fa(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=n.DEFAULT_UP.clone();const e=new pe,i=new Dd,r=new Pa,s=new pe(1,1,1);i._onChange(function l(){r.setFromEuler(i,!1)}),r._onChange(function u(){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:s},modelViewMatrix:{value:new zi},normalMatrix:{value:new Ki}}),this.matrix=new zi,this.matrixWorld=new zi,this.matrixAutoUpdate=n.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=n.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new _S,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 Pg.setFromAxisAngle(e,i),this.quaternion.multiply(Pg),this}rotateOnWorldAxis(e,i){return Pg.setFromAxisAngle(e,i),this.quaternion.premultiply(Pg),this}rotateX(e){return this.rotateOnAxis(KB,e)}rotateY(e){return this.rotateOnAxis(A5,e)}rotateZ(e){return this.rotateOnAxis(YB,e)}translateOnAxis(e,i){return Bb.copy(e).applyQuaternion(this.quaternion),this.position.add(Bb.multiplyScalar(i)),this}translateX(e){return this.translateOnAxis(KB,e)}translateY(e){return this.translateOnAxis(A5,e)}translateZ(e){return this.translateOnAxis(YB,e)}localToWorld(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(this.matrixWorld)}worldToLocal(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(Pu.copy(this.matrixWorld).invert())}lookAt(e,i,r){e.isVector3?kb.copy(e):kb.set(e,i,r);const s=this.parent;this.updateWorldMatrix(!0,!1),Og.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Pu.lookAt(Og,kb,this.up):Pu.lookAt(kb,Og,this.up),this.quaternion.setFromRotationMatrix(Pu),s&&(Pu.extractRotation(s.matrixWorld),Pg.setFromRotationMatrix(Pu),this.quaternion.premultiply(Pg.invert()))}add(e){if(arguments.length>1){for(let i=0;i1){for(let r=0;r0&&(s.userData=this.userData),s.layers=this.layers.mask,s.matrix=this.matrix.toArray(),s.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(s.matrixAutoUpdate=!1),this.isInstancedMesh&&(s.type="InstancedMesh",s.count=this.count,s.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(s.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(s.type="BatchedMesh",s.perObjectFrustumCulled=this.perObjectFrustumCulled,s.sortObjects=this.sortObjects,s.drawRanges=this._drawRanges,s.reservedRanges=this._reservedRanges,s.visibility=this._visibility,s.active=this._active,s.bounds=this._bounds.map(f=>({boxInitialized:f.boxInitialized,boxMin:f.box.min.toArray(),boxMax:f.box.max.toArray(),sphereInitialized:f.sphereInitialized,sphereRadius:f.sphere.radius,sphereCenter:f.sphere.center.toArray()})),s.maxInstanceCount=this._maxInstanceCount,s.maxVertexCount=this._maxVertexCount,s.maxIndexCount=this._maxIndexCount,s.geometryInitialized=this._geometryInitialized,s.geometryCount=this._geometryCount,s.matricesTexture=this._matricesTexture.toJSON(e),null!==this._colorsTexture&&(s.colorsTexture=this._colorsTexture.toJSON(e)),null!==this.boundingSphere&&(s.boundingSphere={center:s.boundingSphere.center.toArray(),radius:s.boundingSphere.radius}),null!==this.boundingBox&&(s.boundingBox={min:s.boundingBox.min.toArray(),max:s.boundingBox.max.toArray()})),this.isScene)this.background&&(this.background.isColor?s.background=this.background.toJSON():this.background.isTexture&&(s.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(s.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){s.geometry=l(e.geometries,this.geometry);const f=this.geometry.parameters;if(void 0!==f&&void 0!==f.shapes){const p=f.shapes;if(Array.isArray(p))for(let m=0,_=p.length;m<_;m++)l(e.shapes,p[m]);else l(e.shapes,p)}}if(this.isSkinnedMesh&&(s.bindMode=this.bindMode,s.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(l(e.skeletons,this.skeleton),s.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const f=[];for(let p=0,m=this.material.length;p0){s.children=[];for(let f=0;f0){s.animations=[];for(let f=0;f0&&(r.geometries=f),p.length>0&&(r.materials=p),m.length>0&&(r.textures=m),_.length>0&&(r.images=_),b.length>0&&(r.shapes=b),w.length>0&&(r.skeletons=w),F.length>0&&(r.animations=F),D.length>0&&(r.nodes=D)}return r.object=s,r;function u(f){const p=[];for(const m in f){const _=f[m];delete _.metadata,p.push(_)}return p}}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(s)):r.set(0,0,0)}static getBarycoord(t,e,i,r,s){Lc.subVectors(r,e),$h.subVectors(i,e),ZB.subVectors(t,e);const l=Lc.dot(Lc),u=Lc.dot($h),f=Lc.dot(ZB),p=$h.dot($h),m=$h.dot(ZB),_=l*p-u*u;if(0===_)return s.set(0,0,0),null;const b=1/_,w=(p*f-u*m)*b,F=(l*m-u*f)*b;return s.set(1-w-F,F,w)}static containsPoint(t,e,i,r){return null!==this.getBarycoord(t,e,i,r,qh)&&qh.x>=0&&qh.y>=0&&qh.x+qh.y<=1}static getInterpolation(t,e,i,r,s,l,u,f){return null===this.getBarycoord(t,e,i,r,qh)?(f.x=0,f.y=0,"z"in f&&(f.z=0),"w"in f&&(f.w=0),null):(f.setScalar(0),f.addScaledVector(s,qh.x),f.addScaledVector(l,qh.y),f.addScaledVector(u,qh.z),f)}static isFrontFacing(t,e,i,r){return Lc.subVectors(i,e),$h.subVectors(t,e),Lc.cross($h).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 Lc.subVectors(this.c,this.b),$h.subVectors(this.a,this.b),.5*Lc.cross($h).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Uc.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Uc.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,i,r,s){return Uc.getInterpolation(t,this.a,this.b,this.c,e,i,r,s)}containsPoint(t){return Uc.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Uc.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const i=this.a,r=this.b,s=this.c;let l,u;Pb.subVectors(r,i),Ob.subVectors(s,i),ek.subVectors(t,i);const f=Pb.dot(ek),p=Ob.dot(ek);if(f<=0&&p<=0)return e.copy(i);tk.subVectors(t,r);const m=Pb.dot(tk),_=Ob.dot(tk);if(m>=0&&_<=m)return e.copy(r);const b=f*_-m*p;if(b<=0&&f>=0&&m<=0)return l=f/(f-m),e.copy(i).addScaledVector(Pb,l);nk.subVectors(t,s);const w=Pb.dot(nk),F=Ob.dot(nk);if(F>=0&&w<=F)return e.copy(s);const D=w*p-f*F;if(D<=0&&p>=0&&F<=0)return u=p/(p-F),e.copy(i).addScaledVector(Ob,u);const T=m*F-w*_;if(T<=0&&_-m>=0&&w-F>=0)return JB.subVectors(s,r),u=(_-m)/(_-m+(w-F)),e.copy(r).addScaledVector(JB,u);const I=1/(T+D+b);return l=D*I,u=b*I,e.copy(i).addScaledVector(Pb,l).addScaledVector(Ob,u)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const ik={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},Wh={h:0,s:0,l:0},Tw={h:0,s:0,l:0};function vS(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 _n{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,Nr.toWorkingColorSpace(this,e),this}setRGB(t,e,i,r=Nr.workingColorSpace){return this.r=t,this.g=e,this.b=i,Nr.toWorkingColorSpace(this,r),this}setHSL(t,e,i,r=Nr.workingColorSpace){if(t=function RB(n,t){return(n%t+t)%t}(t,1),e=is(e,0,1),i=is(i,0,1),0===e)this.r=this.g=this.b=i;else{const s=i<=.5?i*(1+e):i+e-i*e,l=2*i-s;this.r=vS(l,s,t+1/3),this.g=vS(l,s,t),this.b=vS(l,s,t-1/3)}return Nr.toWorkingColorSpace(this,r),this}setStyle(t,e=Oc){function i(s){void 0!==s&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(t)){let s;const u=r[2];switch(r[1]){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return i(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,e);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return i(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,e);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return i(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(t)){const s=r[1],l=s.length;if(3===l)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,e);if(6===l)return this.setHex(parseInt(s,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=ik[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=Lp(t.r),this.g=Lp(t.g),this.b=Lp(t.b),this}copyLinearToSRGB(t){return this.r=vw(t.r),this.g=vw(t.g),this.b=vw(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Oc){return Nr.fromWorkingColorSpace(pa.copy(this),t),65536*Math.round(is(255*pa.r,0,255))+256*Math.round(is(255*pa.g,0,255))+Math.round(is(255*pa.b,0,255))}getHexString(t=Oc){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=Nr.workingColorSpace){Nr.fromWorkingColorSpace(pa.copy(this),e);const i=pa.r,r=pa.g,s=pa.b,l=Math.max(i,r,s),u=Math.min(i,r,s);let f,p;const m=(u+l)/2;if(u===l)f=0,p=0;else{const _=l-u;switch(p=m<=.5?_/(l+u):_/(2-l-u),l){case i:f=(r-s)/_+(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(s){const l=[];for(const u in s){const f=s[u];delete f.metadata,l.push(f)}return l}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!==Op&&(i.stencilFail=this.stencilFail),this.stencilZFail!==Op&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==Op&&(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 s=r(t.textures),l=r(t.images);s.length>0&&(i.textures=s),l.length>0&&(i.images=l)}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 s=0;s!==r;++s)i[s]=e[s].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 Xh extends Ka{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new _n(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 Dd,this.combine=K1,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 A=new pe,g=new At;class x{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=xl,this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}get updateRange(){return Ig("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,s=this.itemSize;r0&&(t.userData=this.userData),void 0!==this.parameters){const f=this.parameters;for(const p in f)void 0!==f[p]&&(t[p]=f[p]);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 f in i)t.data.attributes[f]=i[f].toJSON(t.data);const r={};let s=!1;for(const f in this.morphAttributes){const p=this.morphAttributes[f],m=[];for(let _=0,b=p.length;_0&&(r[f]=m,s=!0)}s&&(t.data.morphAttributes=r,t.data.morphTargetsRelative=this.morphTargetsRelative);const l=this.groups;l.length>0&&(t.data.groups=JSON.parse(JSON.stringify(l)));const u=this.boundingSphere;return null!==u&&(t.data.boundingSphere={center:u.center.toArray(),radius:u.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 p in r)this.setAttribute(p,r[p].clone(e));const s=t.morphAttributes;for(const p in s){const m=[],_=s[p];for(let b=0,w=_.length;b0){const r=e[i[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,l=r.length;s(t.far-t.near)**2))&&(zp.copy(s).invert(),Yh.copy(t.ray).applyMatrix4(zp),(null===i.boundingBox||!1!==Yh.intersectsBox(i.boundingBox))&&this._computeIntersections(t,e,Yh)))}_computeIntersections(t,e,i){let r;const s=this.geometry,l=this.material,u=s.index,f=s.attributes.position,p=s.attributes.uv,m=s.attributes.uv1,_=s.attributes.normal,b=s.groups,w=s.drawRange;if(null!==u)if(Array.isArray(l))for(let F=0,D=b.length;Fe.far?null:{distance:p,point:uk.clone(),object:n}}(n,t,e,i,Iw,Fw,Dw,dk);if(m){r&&(ak.fromBufferAttribute(r,u),lk.fromBufferAttribute(r,f),ck.fromBufferAttribute(r,p),m.uv=Uc.getInterpolation(dk,Iw,Fw,Dw,ak,lk,ck,new At)),s&&(ak.fromBufferAttribute(s,u),lk.fromBufferAttribute(s,f),ck.fromBufferAttribute(s,p),m.uv1=Uc.getInterpolation(dk,Iw,Fw,Dw,ak,lk,ck,new At)),l&&(rQ.fromBufferAttribute(l,u),oQ.fromBufferAttribute(l,f),sQ.fromBufferAttribute(l,p),m.normal=Uc.getInterpolation(dk,Iw,Fw,Dw,rQ,oQ,sQ,new pe),m.normal.dot(i.direction)>0&&m.normal.multiplyScalar(-1));const _={a:u,b:f,c:p,normal:new pe,materialIndex:0};Uc.getNormal(Iw,Fw,Dw,_.normal),m.face=_}return m}class Vc extends fi{constructor(t=1,e=1,i=1,r=1,s=1,l=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:i,widthSegments:r,heightSegments:s,depthSegments:l};const u=this;r=Math.floor(r),s=Math.floor(s),l=Math.floor(l);const f=[],p=[],m=[],_=[];let b=0,w=0;function F(D,T,I,O,R,P,ee,J,te,ie,W){const q=P/te,le=ee/ie,ke=P/2,Ue=ee/2,ce=J/2,ze=te+1,Ce=ie+1;let Oe=0,Fe=0;const ft=new pe;for(let Et=0;Et0?1:-1,m.push(ft.x,ft.y,ft.z),_.push(nn/te),_.push(1-Et/ie),Oe+=1}for(let Et=0;Et0&&(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 b5 extends ko{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new zi,this.projectionMatrix=new zi,this.projectionMatrixInverse=new zi,this.coordinateSystem=ka}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 Ng=new pe,lQ=new At,cQ=new At;class ea extends b5{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*zh*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*Fu*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*zh*Math.atan(Math.tan(.5*Fu*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){Ng.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),e.set(Ng.x,Ng.y).multiplyScalar(-t/Ng.z),Ng.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Ng.x,Ng.y).multiplyScalar(-t/Ng.z)}getViewSize(t,e){return this.getViewBounds(t,lQ,cQ),e.subVectors(cQ,lQ)}setViewOffset(t,e,i,r,s,l){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=s,this.view.height=l,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*Fu*this.fov)/this.zoom,i=2*e,r=this.aspect*i,s=-.5*r;const l=this.view;if(null!==this.view&&this.view.enabled){const f=l.fullWidth,p=l.fullHeight;s+=l.offsetX*r/f,e-=l.offsetY*i/p,r*=l.width/f,i*=l.height/p}const u=this.filmOffset;0!==u&&(s+=t*u/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+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 uZ extends ko{constructor(t,e,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new ea(-90,1,t,e);r.layers=this.layers,this.add(r);const s=new ea(-90,1,t,e);s.layers=this.layers,this.add(s);const l=new ea(-90,1,t,e);l.layers=this.layers,this.add(l);const u=new ea(-90,1,t,e);u.layers=this.layers,this.add(u);const f=new ea(-90,1,t,e);f.layers=this.layers,this.add(f);const p=new ea(-90,1,t,e);p.layers=this.layers,this.add(p)}updateCoordinateSystem(){const t=this.coordinateSystem,e=this.children.concat(),[i,r,s,l,u,f]=e;for(const p of e)this.remove(p);if(t===ka)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),l.up.set(0,0,1),l.lookAt(0,-1,0),u.up.set(0,1,0),u.lookAt(0,0,1),f.up.set(0,1,0),f.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),s.up.set(0,0,1),s.lookAt(0,1,0),l.up.set(0,0,-1),l.lookAt(0,-1,0),u.up.set(0,-1,0),u.lookAt(0,0,1),f.up.set(0,-1,0),f.lookAt(0,0,-1)}for(const p of e)this.add(p),p.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[s,l,u,f,p,m]=this.children,_=t.getRenderTarget(),b=t.getActiveCubeFace(),w=t.getActiveMipmapLevel(),F=t.xr.enabled;t.xr.enabled=!1;const D=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,t.setRenderTarget(i,0,r),t.render(e,s),t.setRenderTarget(i,1,r),t.render(e,l),t.setRenderTarget(i,2,r),t.render(e,u),t.setRenderTarget(i,3,r),t.render(e,f),t.setRenderTarget(i,4,r),t.render(e,p),i.texture.generateMipmaps=D,t.setRenderTarget(i,5,r),t.render(e,m),t.setRenderTarget(_,b,w),t.xr.enabled=F,i.texture.needsPMREMUpdate=!0}}class fk extends Is{constructor(t,e,i,r,s,l,u,f,p,m){super(t=void 0!==t?t:[],e=void 0!==e?e:Su,i,r,s,l,u,f,p,m),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class hZ extends Cl{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const i={width:t,height:t,depth:1};this.texture=new fk([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:Ts}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 Vc(5,5,5),s=new sc({name:"CubemapFromEquirect",uniforms:Bw(i_uniforms),vertexShader:i_vertexShader,fragmentShader:i_fragmentShader,side:1,blending:0});s.uniforms.tEquirect.value=e;const l=new cr(r,s),u=e.minFilter;return e.minFilter===Uh&&(e.minFilter=Ts),new uZ(1,10,this).update(t,l),e.minFilter=u,l.geometry.dispose(),l.material.dispose(),this}clear(t,e,i,r){const s=t.getRenderTarget();for(let l=0;l<6;l++)t.setRenderTarget(this,l),t.clear(e,i,r);t.setRenderTarget(s)}}const v5=new pe,fZ=new pe,pZ=new Ki;class Lg{constructor(t=new pe(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=v5.subVectors(i,e).cross(fZ.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(v5),r=this.normal.dot(i);if(0===r)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const s=-(t.start.dot(this.normal)+this.constant)/r;return s<0||s>1?null:e.copy(t.start).addScaledVector(i,s)}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||pZ.getNormalMatrix(t),r=this.coplanarPoint(v5).applyMatrix4(t),s=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(s),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 Nb=new Js,pk=new pe;class Ak{constructor(t=new Lg,e=new Lg,i=new Lg,r=new Lg,s=new Lg,l=new Lg){this.planes=[t,e,i,r,s,l]}set(t,e,i,r,s,l){const u=this.planes;return u[0].copy(t),u[1].copy(e),u[2].copy(i),u[3].copy(r),u[4].copy(s),u[5].copy(l),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=ka){const i=this.planes,r=t.elements,s=r[0],l=r[1],u=r[2],f=r[3],p=r[4],m=r[5],_=r[6],b=r[7],w=r[8],F=r[9],D=r[10],T=r[11],I=r[12],O=r[13],R=r[14],P=r[15];if(i[0].setComponents(f-s,b-p,T-w,P-I).normalize(),i[1].setComponents(f+s,b+p,T+w,P+I).normalize(),i[2].setComponents(f+l,b+m,T+F,P+O).normalize(),i[3].setComponents(f-l,b-m,T-F,P-O).normalize(),i[4].setComponents(f-u,b-_,T-D,P-R).normalize(),e===ka)i[5].setComponents(f+u,b+_,T+D,P+R).normalize();else{if(2001!==e)throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+e);i[5].setComponents(u,_,D,R).normalize()}return this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),Nb.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),Nb.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Nb)}intersectsSprite(t){return Nb.center.set(0,0,0),Nb.radius=.7071067811865476,Nb.applyMatrix4(t.matrixWorld),this.intersectsSphere(Nb)}intersectsSphere(t){const e=this.planes,i=t.center,r=-t.radius;for(let s=0;s<6;s++)if(e[s].distanceToPoint(i)0?t.max.x:t.min.x,pk.y=r.normal.y>0?t.max.y:t.min.y,pk.z=r.normal.z>0?t.max.z:t.min.z,r.distanceToPoint(pk)<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 dQ(){let n=null,t=!1,e=null,i=null;function r(s,l){e(s,l),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(s){e=s},setContext:function(s){n=s}}}function AZ(n){const t=new WeakMap;return{get:function r(u){return u.isInterleavedBufferAttribute&&(u=u.data),t.get(u)},remove:function s(u){u.isInterleavedBufferAttribute&&(u=u.data);const f=t.get(u);f&&(n.deleteBuffer(f.buffer),t.delete(u))},update:function l(u,f){if(u.isInterleavedBufferAttribute&&(u=u.data),u.isGLBufferAttribute){const m=t.get(u);return void((!m||m.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}"},Nn={common:{diffuse:{value:new _n(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Ki},alphaMap:{value:null},alphaMapTransform:{value:new Ki},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Ki}},envmap:{envMap:{value:null},envMapRotation:{value:new Ki},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Ki}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Ki}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Ki},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Ki},normalScale:{value:new At(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Ki},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Ki}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Ki}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Ki}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new _n(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 _n(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Ki},alphaTest:{value:0},uvTransform:{value:new Ki}},sprite:{diffuse:{value:new _n(16777215)},opacity:{value:1},center:{value:new At(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Ki},alphaMap:{value:null},alphaMapTransform:{value:new Ki},alphaTest:{value:0}}},Zh={basic:{uniforms:El([Nn.common,Nn.specularmap,Nn.envmap,Nn.aomap,Nn.lightmap,Nn.fog]),vertexShader:_r.meshbasic_vert,fragmentShader:_r.meshbasic_frag},lambert:{uniforms:El([Nn.common,Nn.specularmap,Nn.envmap,Nn.aomap,Nn.lightmap,Nn.emissivemap,Nn.bumpmap,Nn.normalmap,Nn.displacementmap,Nn.fog,Nn.lights,{emissive:{value:new _n(0)}}]),vertexShader:_r.meshlambert_vert,fragmentShader:_r.meshlambert_frag},phong:{uniforms:El([Nn.common,Nn.specularmap,Nn.envmap,Nn.aomap,Nn.lightmap,Nn.emissivemap,Nn.bumpmap,Nn.normalmap,Nn.displacementmap,Nn.fog,Nn.lights,{emissive:{value:new _n(0)},specular:{value:new _n(1118481)},shininess:{value:30}}]),vertexShader:_r.meshphong_vert,fragmentShader:_r.meshphong_frag},standard:{uniforms:El([Nn.common,Nn.envmap,Nn.aomap,Nn.lightmap,Nn.emissivemap,Nn.bumpmap,Nn.normalmap,Nn.displacementmap,Nn.roughnessmap,Nn.metalnessmap,Nn.fog,Nn.lights,{emissive:{value:new _n(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:_r.meshphysical_vert,fragmentShader:_r.meshphysical_frag},toon:{uniforms:El([Nn.common,Nn.aomap,Nn.lightmap,Nn.emissivemap,Nn.bumpmap,Nn.normalmap,Nn.displacementmap,Nn.gradientmap,Nn.fog,Nn.lights,{emissive:{value:new _n(0)}}]),vertexShader:_r.meshtoon_vert,fragmentShader:_r.meshtoon_frag},matcap:{uniforms:El([Nn.common,Nn.bumpmap,Nn.normalmap,Nn.displacementmap,Nn.fog,{matcap:{value:null}}]),vertexShader:_r.meshmatcap_vert,fragmentShader:_r.meshmatcap_frag},points:{uniforms:El([Nn.points,Nn.fog]),vertexShader:_r.points_vert,fragmentShader:_r.points_frag},dashed:{uniforms:El([Nn.common,Nn.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:_r.linedashed_vert,fragmentShader:_r.linedashed_frag},depth:{uniforms:El([Nn.common,Nn.displacementmap]),vertexShader:_r.depth_vert,fragmentShader:_r.depth_frag},normal:{uniforms:El([Nn.common,Nn.bumpmap,Nn.normalmap,Nn.displacementmap,{opacity:{value:1}}]),vertexShader:_r.meshnormal_vert,fragmentShader:_r.meshnormal_frag},sprite:{uniforms:El([Nn.sprite,Nn.fog]),vertexShader:_r.sprite_vert,fragmentShader:_r.sprite_frag},background:{uniforms:{uvTransform:{value:new Ki},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:_r.background_vert,fragmentShader:_r.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Ki}},vertexShader:_r.backgroundCube_vert,fragmentShader:_r.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:_r.cube_vert,fragmentShader:_r.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:_r.equirect_vert,fragmentShader:_r.equirect_frag},distanceRGBA:{uniforms:El([Nn.common,Nn.displacementmap,{referencePosition:{value:new pe},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:_r.distanceRGBA_vert,fragmentShader:_r.distanceRGBA_frag},shadow:{uniforms:El([Nn.lights,Nn.fog,{color:{value:new _n(0)},opacity:{value:1}}]),vertexShader:_r.shadow_vert,fragmentShader:_r.shadow_frag}};Zh.physical={uniforms:El([Zh.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Ki},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Ki},clearcoatNormalScale:{value:new At(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Ki},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Ki},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Ki},sheen:{value:0},sheenColor:{value:new _n(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Ki},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Ki},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Ki},transmissionSamplerSize:{value:new At},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Ki},attenuationDistance:{value:0},attenuationColor:{value:new _n(0)},specularColor:{value:new _n(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Ki},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Ki},anisotropyVector:{value:new At},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Ki}}]),vertexShader:_r.meshphysical_vert,fragmentShader:_r.meshphysical_frag};const mk={r:0,b:0,g:0},Lb=new Dd,Aee=new zi;function mee(n,t,e,i,r,s,l){const u=new _n(0);let p,m,f=!0===s?0:1,_=null,b=0,w=null;function F(O){let R=!0===O.isScene?O.background:null;return R&&R.isTexture&&(R=(O.backgroundBlurriness>0?e:t).get(R)),R}function I(O,R){O.getRGB(mk,aQ(n)),i.buffers.color.setClear(mk.r,mk.g,mk.b,R,l)}return{getClearColor:function(){return u},setClearColor:function(O,R=1){u.set(O),f=R,I(u,f)},getClearAlpha:function(){return f},setClearAlpha:function(O){f=O,I(u,f)},render:function D(O){let R=!1;const P=F(O);null===P?I(u,f):P&&P.isColor&&(I(P,1),R=!0);const ee=n.xr.getEnvironmentBlendMode();"additive"===ee?i.buffers.color.setClear(0,0,0,1,l):"alpha-blend"===ee&&i.buffers.color.setClear(0,0,0,0,l),(n.autoClear||R)&&(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 T(O,R){const P=F(R);P&&(P.isCubeTexture||P.mapping===ew)?(void 0===m&&(m=new cr(new Vc(1,1,1),new sc({name:"BackgroundCubeMaterial",uniforms:Bw(Zh.backgroundCube.uniforms),vertexShader:Zh.backgroundCube.vertexShader,fragmentShader:Zh.backgroundCube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),m.geometry.deleteAttribute("normal"),m.geometry.deleteAttribute("uv"),m.onBeforeRender=function(ee,J,te){this.matrixWorld.copyPosition(te.matrixWorld)},Object.defineProperty(m.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(m)),Lb.copy(R.backgroundRotation),Lb.x*=-1,Lb.y*=-1,Lb.z*=-1,P.isCubeTexture&&!1===P.isRenderTargetTexture&&(Lb.y*=-1,Lb.z*=-1),m.material.uniforms.envMap.value=P,m.material.uniforms.flipEnvMap.value=P.isCubeTexture&&!1===P.isRenderTargetTexture?-1:1,m.material.uniforms.backgroundBlurriness.value=R.backgroundBlurriness,m.material.uniforms.backgroundIntensity.value=R.backgroundIntensity,m.material.uniforms.backgroundRotation.value.setFromMatrix4(Aee.makeRotationFromEuler(Lb)),m.material.toneMapped=Nr.getTransfer(P.colorSpace)!==Bo,(_!==P||b!==P.version||w!==n.toneMapping)&&(m.material.needsUpdate=!0,_=P,b=P.version,w=n.toneMapping),m.layers.enableAll(),O.unshift(m,m.geometry,m.material,0,0,null)):P&&P.isTexture&&(void 0===p&&(p=new cr(new Pw(2,2),new sc({name:"BackgroundMaterial",uniforms:Bw(Zh.background.uniforms),vertexShader:Zh.background.vertexShader,fragmentShader:Zh.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),p.geometry.deleteAttribute("normal"),Object.defineProperty(p.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(p)),p.material.uniforms.t2D.value=P,p.material.uniforms.backgroundIntensity.value=R.backgroundIntensity,p.material.toneMapped=Nr.getTransfer(P.colorSpace)!==Bo,!0===P.matrixAutoUpdate&&P.updateMatrix(),p.material.uniforms.uvTransform.value.copy(P.matrix),(_!==P||b!==P.version||w!==n.toneMapping)&&(p.material.needsUpdate=!0,_=P,b=P.version,w=n.toneMapping),p.layers.enableAll(),O.unshift(p,p.geometry,p.material,0,0,null))}}}function gee(n,t){const e=n.getParameter(n.MAX_VERTEX_ATTRIBS),i={},r=b(null);let s=r,l=!1;function p(q){return n.bindVertexArray(q)}function m(q){return n.deleteVertexArray(q)}function b(q){const le=[],ke=[],Ue=[];for(let ce=0;ce=0){const Et=ce[Fe];let kt=ze[Fe];if(void 0===kt&&("instanceMatrix"===Fe&&q.instanceMatrix&&(kt=q.instanceMatrix),"instanceColor"===Fe&&q.instanceColor&&(kt=q.instanceColor)),void 0===Et||Et.attribute!==kt||kt&&Et.data!==kt.data)return!0;Ce++}return s.attributesNum!==Ce||s.index!==Ue}(q,Ue,ke,ce),ze&&function F(q,le,ke,Ue){const ce={},ze=le.attributes;let Ce=0;const Oe=ke.getAttributes();for(const Fe in Oe)if(Oe[Fe].location>=0){let Et=ze[Fe];void 0===Et&&("instanceMatrix"===Fe&&q.instanceMatrix&&(Et=q.instanceMatrix),"instanceColor"===Fe&&q.instanceColor&&(Et=q.instanceColor));const kt={};kt.attribute=Et,Et&&Et.data&&(kt.data=Et.data),ce[Fe]=kt,Ce++}s.attributes=ce,s.attributesNum=Ce,s.index=Ue}(q,Ue,ke,ce),null!==ce&&t.update(ce,n.ELEMENT_ARRAY_BUFFER),(ze||l)&&(l=!1,function P(q,le,ke,Ue){D();const ce=Ue.attributes,ze=ke.getAttributes(),Ce=le.defaultAttributeValues;for(const Oe in ze){const Fe=ze[Oe];if(Fe.location>=0){let ft=ce[Oe];if(void 0===ft&&("instanceMatrix"===Oe&&q.instanceMatrix&&(ft=q.instanceMatrix),"instanceColor"===Oe&&q.instanceColor&&(ft=q.instanceColor)),void 0!==ft){const Et=ft.normalized,kt=ft.itemSize,nn=t.get(ft);if(void 0===nn)continue;const Xn=nn.buffer,Me=nn.type,be=nn.bytesPerElement,Ae=Me===n.INT||Me===n.UNSIGNED_INT||ft.gpuType===QE;if(ft.isInterleavedBufferAttribute){const ae=ft.data,ut=ae.stride,Nt=ft.offset;if(ae.isInstancedInterleavedBuffer){for(let lt=0;lt0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";J="mediump"}return"mediump"===J&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let p=void 0!==e.precision?e.precision:"highp";const m=f(p);m!==p&&(console.warn("THREE.WebGLRenderer:",p,"not supported, using",m,"instead."),p=m);const _=!0===e.logarithmicDepthBuffer,b=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),w=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS);return{isWebGL2:!0,getMaxAnisotropy:function s(){if(void 0!==r)return r;if(!0===t.has("EXT_texture_filter_anisotropic")){const J=t.get("EXT_texture_filter_anisotropic");r=n.getParameter(J.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r},getMaxPrecision:f,textureFormatReadable:function l(J){return!(J!==Ba&&i.convert(J)!==n.getParameter(n.IMPLEMENTATION_COLOR_READ_FORMAT))},textureTypeReadable:function u(J){const te=J===xg&&(t.has("EXT_color_buffer_half_float")||t.has("EXT_color_buffer_float"));return!(J!==Tu&&i.convert(J)!==n.getParameter(n.IMPLEMENTATION_COLOR_READ_TYPE)&&J!==xl&&!te)},precision:p,logarithmicDepthBuffer:_,maxTextures:b,maxVertexTextures:w,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:w>0,maxSamples:n.getParameter(n.MAX_SAMPLES)}}function vee(n){const t=this;let e=null,i=0,r=!1,s=!1;const l=new Lg,u=new Ki,f={value:null,needsUpdate:!1};function m(_,b,w,F){const D=null!==_?_.length:0;let T=null;if(0!==D){if(T=f.value,!0!==F||null===T){const I=w+4*D,O=b.matrixWorldInverse;u.getNormalMatrix(O),(null===T||T.length0),t.numPlanes=i,t.numIntersection=0}();else{const O=s?0:i,R=4*O;let P=I.clippingState||null;f.value=P,P=m(F,b,R,w);for(let ee=0;ee!==R;++ee)P[ee]=e[ee];I.clippingState=P,this.numIntersection=D?this.numPlanes:0,this.numPlanes+=O}}}function yee(n){let t=new WeakMap;function e(l,u){return 303===u?l.mapping=Su:304===u&&(l.mapping=Lh),l}function r(l){const u=l.target;u.removeEventListener("dispose",r);const f=t.get(u);void 0!==f&&(t.delete(u),f.dispose())}return{get:function i(l){if(l&&l.isTexture){const u=l.mapping;if(303===u||304===u){if(t.has(l))return e(t.get(l).texture,l.mapping);{const f=l.image;if(f&&f.height>0){const p=new hZ(f.height);return p.fromEquirectangularTexture(n,l),t.set(l,p),l.addEventListener("dispose",r),e(p.texture,l.mapping)}return null}}}return l},dispose:function s(){t=new WeakMap}}}class gk extends b5{constructor(t=-1,e=1,i=1,r=-1,s=.1,l=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=s,this.far=l,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,s,l){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=s,this.view.height=l,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 s=i-t,l=i+t,u=r+e,f=r-e;if(null!==this.view&&this.view.enabled){const p=(this.right-this.left)/this.view.fullWidth/this.zoom,m=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=p*this.view.offsetX,l=s+p*this.view.width,u-=m*this.view.offsetY,f=u-m*this.view.height}this.projectionMatrix.makeOrthographic(s,l,u,f,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 uQ=[.125,.215,.35,.446,.526,.582],y5=new gk,hQ=new _n;let w5=null,x5=0,C5=0,M5=!1;const Vb=(1+Math.sqrt(5))/2,Nw=1/Vb,fQ=[new pe(-Vb,Nw,0),new pe(Vb,Nw,0),new pe(-Nw,0,Vb),new pe(Nw,0,Vb),new pe(0,Vb,-Nw),new pe(0,Vb,Nw),new pe(-1,1,-1),new pe(1,1,-1),new pe(-1,1,1),new pe(1,1,1)];class pQ{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){w5=this._renderer.getRenderTarget(),x5=this._renderer.getActiveCubeFace(),C5=this._renderer.getActiveMipmapLevel(),M5=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(t,i,r,s),e>0&&this._blur(s,0,0,e),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=gQ(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=mQ(),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?f=uQ[l-n+4-1]:0===l&&(f=0),i.push(f);const p=1/(u-2),m=-p,_=1+p,b=[m,m,_,m,_,_,m,m,_,_,m,_],w=6,F=6,D=3,T=2,I=1,O=new Float32Array(D*F*w),R=new Float32Array(T*F*w),P=new Float32Array(I*F*w);for(let J=0;J2?0:-1;O.set([te,ie,0,te+2/3,ie,0,te+2/3,ie+1,0,te,ie,0,te+2/3,ie+1,0,te,ie+1,0],D*F*J),R.set(b,T*F*J),P.set([J,J,J,J,J,J],I*F*J)}const ee=new fi;ee.setAttribute("position",new x(O,D)),ee.setAttribute("uv",new x(R,T)),ee.setAttribute("faceIndex",new x(P,I)),t.push(ee),r>4&&r--}return{lodPlanes:t,sizeLods:e,sigmas:i}}(s)),this._blurMaterial=function xee(n,t,e){const i=new Float32Array(20),r=new pe(0,1,0);return new sc({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})}(s,t,e)}return r}_compileMaterial(t){const e=new cr(this._lodPlanes[0],t);this._renderer.compile(e,y5)}_sceneToCubeUV(t,e,i,r){const u=new ea(90,1,e,i),f=[1,-1,1,1,1,1],p=[1,1,1,-1,-1,-1],m=this._renderer,_=m.autoClear,b=m.toneMapping;m.getClearColor(hQ),m.toneMapping=Eu,m.autoClear=!1;const w=new Xh({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),F=new cr(new Vc,w);let D=!1;const T=t.background;T?T.isColor&&(w.color.copy(T),t.background=null,D=!0):(w.color.copy(hQ),D=!0);for(let I=0;I<6;I++){const O=I%3;0===O?(u.up.set(0,f[I],0),u.lookAt(p[I],0,0)):1===O?(u.up.set(0,0,f[I]),u.lookAt(0,p[I],0)):(u.up.set(0,f[I],0),u.lookAt(0,0,p[I]));const R=this._cubeSize;_k(r,O*R,I>2?R:0,R,R),m.setRenderTarget(r),D&&m.render(F,u),m.render(t,u)}F.geometry.dispose(),F.material.dispose(),m.toneMapping=b,m.autoClear=_,t.background=T}_textureToCubeUV(t,e){const i=this._renderer,r=t.mapping===Su||t.mapping===Lh;r?(null===this._cubemapMaterial&&(this._cubemapMaterial=gQ()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=mQ());const s=r?this._cubemapMaterial:this._equirectMaterial,l=new cr(this._lodPlanes[0],s);s.uniforms.envMap.value=t;const f=this._cubeSize;_k(e,0,0,3*f,2*f),i.setRenderTarget(e),i.render(l,y5)}_applyPMREM(t){const e=this._renderer,i=e.autoClear;e.autoClear=!1;const r=this._lodPlanes.length;for(let s=1;s20&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${T} samples when the maximum is set to 20`);const I=[];let O=0;for(let te=0;te<20;++te){const ie=te/D,W=Math.exp(-ie*ie/2);I.push(W),0===te?O+=W:teR-4?r-R+4:0),4*(this._cubeSize-P),3*P,2*P),f.setRenderTarget(e),f.render(_,y5)}}function AQ(n,t,e){const i=new Cl(n,t,e);return i.texture.mapping=ew,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function _k(n,t,e,i,r){n.viewport.set(t,e,i,r),n.scissor.set(t,e,i,r)}function mQ(){return new sc({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 gQ(){return new sc({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 Cee(n){let t=new WeakMap,e=null;function s(u){const f=u.target;f.removeEventListener("dispose",s);const p=t.get(f);void 0!==p&&(t.delete(f),p.dispose())}return{get:function i(u){if(u&&u.isTexture){const f=u.mapping,p=303===f||304===f,m=f===Su||f===Lh;if(p||m){let _=t.get(u);if(u.isRenderTargetTexture&&u.pmremVersion!==(void 0!==_?_.texture.pmremVersion:0))return null===e&&(e=new pQ(n)),_=p?e.fromEquirectangular(u,_):e.fromCubemap(u,_),_.texture.pmremVersion=u.pmremVersion,t.set(u,_),_.texture;if(void 0!==_)return _.texture;{const w=u.image;return p&&w&&w.height>0||m&&w&&function r(u){let f=0;for(let m=0;m<6;m++)void 0!==u[m]&&f++;return 6===f}(w)?(null===e&&(e=new pQ(n)),_=p?e.fromEquirectangular(u):e.fromCubemap(u),_.texture.pmremVersion=u.pmremVersion,t.set(u,_),u.addEventListener("dispose",s),_.texture):null}}}return u},dispose:function l(){t=new WeakMap,null!==e&&(e.dispose(),e=null)}}}function Mee(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&&Ig("THREE.WebGLRenderer: "+i+" extension not supported."),r}}}function Eee(n,t,e,i){const r={},s=new WeakMap;function l(_){const b=_.target;null!==b.index&&t.remove(b.index);for(const F in b.attributes)t.remove(b.attributes[F]);for(const F in b.morphAttributes){const D=b.morphAttributes[F];for(let T=0,I=D.length;Tt.maxTextureSize&&(ee=Math.ceil(P/t.maxTextureSize),P=t.maxTextureSize);const J=new Float32Array(P*ee*4*_),te=new $B(J,P,ee,_);te.type=xl,te.needsUpdate=!0;const ie=4*R;for(let q=0;q<_;q++){const le=T[q],ke=I[q],Ue=O[q],ce=P*ee*4*q;for(let ze=0;ze0)return n;const r=t*e;let s=CQ[r];if(void 0===s&&(s=new Float32Array(r),CQ[r]=s),0!==t){i.toArray(s,0);for(let l=1,u=0;l!==t;++l)u+=e,n[l].toArray(s,u)}return s}function ta(n,t){if(n.length!==t.length)return!1;for(let e=0,i=n.length;e":" "} ${u}: ${e[l]}`)}return i.join("\n")}(n.getShaderSource(t),l)}return r}function Mte(n,t){const e=function Cte(n){const t=Nr.getPrimaries(Nr.workingColorSpace),e=Nr.getPrimaries(n);let i;switch(t===e?i="":t===Pp&&e===gw?i="LinearDisplayP3ToLinearSRGB":t===gw&&e===Pp&&(i="LinearSRGBToLinearDisplayP3"),n){case Qh:case wb:return[i,"LinearTransferOETF"];case Oc:case rS: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 Ete(n,t){let e;switch(t){case fB:e="Linear";break;case LL:e="Reinhard";break;case pB:e="Cineon";break;case AB:e="ACESFilmic";break;case VL:e="AgX";break;case mB:e="Neutral";break;case UL:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),e="Linear"}return"vec3 "+n+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}const yk=new pe;function yS(n){return""!==n}function BQ(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 kQ(n,t){return n.replace(/NUM_CLIPPING_PLANES/g,t.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,t.numClippingPlanes-t.numClipIntersection)}const Dte=/^[ \t]*#include +<([\w\d./]+)>/gm;function T5(n){return n.replace(Dte,kte)}const Bte=new Map;function kte(n,t){let e=_r[t];if(void 0===e){const i=Bte.get(t);if(void 0===i)throw new Error("Can not resolve #include <"+t+">");e=_r[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',t,i)}return T5(e)}const Rte=/#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 RQ(n){return n.replace(Rte,Pte)}function Pte(n,t,e,i){let r="";for(let s=parseInt(t);s0&&(T+="\n"),I=["#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,F].filter(yS).join("\n"),I.length>0&&(I+="\n")):(T=[PQ(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,F,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 "+m:"",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 "+f:"",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(yS).join("\n"),I=[PQ(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,F,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 "+p:"",e.envMap?"#define "+m:"",e.envMap?"#define "+_:"",b?"#define CUBEUV_TEXEL_WIDTH "+b.texelWidth:"",b?"#define CUBEUV_TEXEL_HEIGHT "+b.texelHeight:"",b?"#define CUBEUV_MAX_MIP "+b.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 "+f:"",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!==Eu?"#define TONE_MAPPING":"",e.toneMapping!==Eu?_r.tonemapping_pars_fragment:"",e.toneMapping!==Eu?Ete("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",_r.colorspace_pars_fragment,Mte("linearToOutputTexel",e.outputColorSpace),(Nr.getLuminanceCoefficients(yk),["float luminance( const in vec3 rgb ) {",`\tconst vec3 weights = vec3( ${yk.x.toFixed(4)}, ${yk.y.toFixed(4)}, ${yk.z.toFixed(4)} );`,"\treturn dot( weights, rgb );","}"].join("\n")),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"","\n"].filter(yS).join("\n")),l=T5(l),l=BQ(l,e),l=kQ(l,e),u=T5(u),u=BQ(u,e),u=kQ(u,e),l=RQ(l),u=RQ(u),!0!==e.isRawShaderMaterial&&(O="#version 300 es\n",T=[w,"#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+T,I=["#define varying in",e.glslVersion===lS?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===lS?"":"#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"+I);const P=O+I+u,ee=FQ(r,r.VERTEX_SHADER,O+T+l),J=FQ(r,r.FRAGMENT_SHADER,P);function te(le){if(n.debug.checkShaderErrors){const ke=r.getProgramInfoLog(D).trim(),Ue=r.getShaderInfoLog(ee).trim(),ce=r.getShaderInfoLog(J).trim();let ze=!0,Ce=!0;if(!1===r.getProgramParameter(D,r.LINK_STATUS))if(ze=!1,"function"==typeof n.debug.onShaderError)n.debug.onShaderError(r,D,ee,J);else{const Oe=DQ(r,ee,"vertex"),Fe=DQ(r,J,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(D,r.VALIDATE_STATUS)+"\n\nMaterial Name: "+le.name+"\nMaterial Type: "+le.type+"\n\nProgram Info Log: "+ke+"\n"+Oe+"\n"+Fe)}else""!==ke?console.warn("THREE.WebGLProgram: Program Info Log:",ke):(""===Ue||""===ce)&&(Ce=!1);Ce&&(le.diagnostics={runnable:ze,programLog:ke,vertexShader:{log:Ue,prefix:T},fragmentShader:{log:ce,prefix:I}})}r.deleteShader(ee),r.deleteShader(J),ie=new vk(r,D),W=function Fte(n,t){const e={},i=n.getProgramParameter(t,n.ACTIVE_ATTRIBUTES);for(let r=0;r0,Ct=W.clearcoat>0,Vt=W.iridescence>0,jt=W.sheen>0,Si=W.transmission>0,Fn=oe&&!!W.anisotropyMap,Kn=Ct&&!!W.clearcoatMap,ir=Ct&&!!W.clearcoatNormalMap,hn=Ct&&!!W.clearcoatRoughnessMap,Yn=Vt&&!!W.iridescenceMap,kr=Vt&&!!W.iridescenceThicknessMap,er=jt&&!!W.sheenColorMap,ci=jt&&!!W.sheenRoughnessMap,dr=!!W.specularMap,Sr=!!W.specularColorMap,ss=!!W.specularIntensityMap,ht=Si&&!!W.transmissionMap,wn=Si&&!!W.thicknessMap,Kt=!!W.alphaMap,qr=!!W.extensions;let Gs=Eu;W.toneMapped&&(null===ae||!0===ae.isXRRenderTarget)&&(Gs=n.toneMapping);const La={shaderID:ft,shaderType:W.type,shaderName:W.name,vertexShader:Xn,fragmentShader:Me,defines:W.defines,customVertexShaderID:be,customFragmentShaderID:Ae,isRawShaderMaterial:!0===W.isRawShaderMaterial,glslVersion:W.glslVersion,precision:w,batching:Nt,batchingColor:Nt&&null!==Ue._colorsTexture,instancing:ut,instancingColor:ut&&null!==Ue.instanceColor,instancingMorph:ut&&null!==Ue.morphTexture,supportsVertexTextures:b,outputColorSpace:null===ae?n.outputColorSpace:!0===ae.isXRRenderTarget?ae.texture.colorSpace:Qh,alphaToCoverage:!!W.alphaToCoverage,map:lt,matcap:!!W.matcap,envMap:de,envMapMode:de&&Oe.mapping,envMapCubeUVHeight:Fe,aoMap:wt,lightMap:Ze,bumpMap:Mt,normalMap:_t,displacementMap:b&&Ft,emissiveMap:Pe,normalMapObjectSpace:_t&&1===W.normalMapType,normalMapTangentSpace:_t&&0===W.normalMapType,metalnessMap:Se,roughnessMap:_e,anisotropy:oe,anisotropyMap:Fn,clearcoat:Ct,clearcoatMap:Kn,clearcoatNormalMap:ir,clearcoatRoughnessMap:hn,dispersion:W.dispersion>0,iridescence:Vt,iridescenceMap:Yn,iridescenceThicknessMap:kr,sheen:jt,sheenColorMap:er,sheenRoughnessMap:ci,specularMap:dr,specularColorMap:Sr,specularIntensityMap:ss,transmission:Si,transmissionMap:ht,thicknessMap:wn,gradientMap:!!W.gradientMap,opaque:!1===W.transparent&&1===W.blending&&!1===W.alphaToCoverage,alphaMap:Kt,alphaTest:W.alphaTest>0,alphaHash:!!W.alphaHash,combine:W.combine,mapUv:lt&&D(W.map.channel),aoMapUv:wt&&D(W.aoMap.channel),lightMapUv:Ze&&D(W.lightMap.channel),bumpMapUv:Mt&&D(W.bumpMap.channel),normalMapUv:_t&&D(W.normalMap.channel),displacementMapUv:Ft&&D(W.displacementMap.channel),emissiveMapUv:Pe&&D(W.emissiveMap.channel),metalnessMapUv:Se&&D(W.metalnessMap.channel),roughnessMapUv:_e&&D(W.roughnessMap.channel),anisotropyMapUv:Fn&&D(W.anisotropyMap.channel),clearcoatMapUv:Kn&&D(W.clearcoatMap.channel),clearcoatNormalMapUv:ir&&D(W.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:hn&&D(W.clearcoatRoughnessMap.channel),iridescenceMapUv:Yn&&D(W.iridescenceMap.channel),iridescenceThicknessMapUv:kr&&D(W.iridescenceThicknessMap.channel),sheenColorMapUv:er&&D(W.sheenColorMap.channel),sheenRoughnessMapUv:ci&&D(W.sheenRoughnessMap.channel),specularMapUv:dr&&D(W.specularMap.channel),specularColorMapUv:Sr&&D(W.specularColorMap.channel),specularIntensityMapUv:ss&&D(W.specularIntensityMap.channel),transmissionMapUv:ht&&D(W.transmissionMap.channel),thicknessMapUv:wn&&D(W.thicknessMap.channel),alphaMapUv:Kt&&D(W.alphaMap.channel),vertexTangents:!!ze.attributes.tangent&&(_t||oe),vertexColors:W.vertexColors,vertexAlphas:!0===W.vertexColors&&!!ze.attributes.color&&4===ze.attributes.color.itemSize,pointsUvs:!0===Ue.isPoints&&!!ze.attributes.uv&&(lt||Kt),fog:!!ce,useFog:!0===W.fog,fogExp2:!!ce&&ce.isFogExp2,flatShading:!0===W.flatShading,sizeAttenuation:!0===W.sizeAttenuation,logarithmicDepthBuffer:_,skinning:!0===Ue.isSkinnedMesh,morphTargets:void 0!==ze.morphAttributes.position,morphNormals:void 0!==ze.morphAttributes.normal,morphColors:void 0!==ze.morphAttributes.color,morphTargetsCount:kt,morphTextureStride:nn,numDirLights:q.directional.length,numPointLights:q.point.length,numSpotLights:q.spot.length,numSpotLightMaps:q.spotLightMap.length,numRectAreaLights:q.rectArea.length,numHemiLights:q.hemi.length,numDirLightShadows:q.directionalShadowMap.length,numPointLightShadows:q.pointShadowMap.length,numSpotLightShadows:q.spotShadowMap.length,numSpotLightShadowsWithMaps:q.numSpotLightShadowsWithMaps,numLightProbes:q.numLightProbes,numClippingPlanes:l.numPlanes,numClipIntersection:l.numIntersection,dithering:W.dithering,shadowMapEnabled:n.shadowMap.enabled&&le.length>0,shadowMapType:n.shadowMap.type,toneMapping:Gs,decodeVideoTexture:lt&&!0===W.map.isVideoTexture&&Nr.getTransfer(W.map.colorSpace)===Bo,premultipliedAlpha:W.premultipliedAlpha,doubleSided:2===W.side,flipSided:1===W.side,useDepthPacking:W.depthPacking>=0,depthPacking:W.depthPacking||0,index0AttributeName:W.index0AttributeName,extensionClipCullDistance:qr&&!0===W.extensions.clipCullDistance&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(qr&&!0===W.extensions.multiDraw||Nt)&&i.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:W.customProgramCacheKey()};return La.vertexUv1s=p.has(1),La.vertexUv2s=p.has(2),La.vertexUv3s=p.has(3),p.clear(),La},getProgramCacheKey:function I(W){const q=[];if(W.shaderID?q.push(W.shaderID):(q.push(W.customVertexShaderID),q.push(W.customFragmentShaderID)),void 0!==W.defines)for(const le in W.defines)q.push(le),q.push(W.defines[le]);return!1===W.isRawShaderMaterial&&(function O(W,q){W.push(q.precision),W.push(q.outputColorSpace),W.push(q.envMapMode),W.push(q.envMapCubeUVHeight),W.push(q.mapUv),W.push(q.alphaMapUv),W.push(q.lightMapUv),W.push(q.aoMapUv),W.push(q.bumpMapUv),W.push(q.normalMapUv),W.push(q.displacementMapUv),W.push(q.emissiveMapUv),W.push(q.metalnessMapUv),W.push(q.roughnessMapUv),W.push(q.anisotropyMapUv),W.push(q.clearcoatMapUv),W.push(q.clearcoatNormalMapUv),W.push(q.clearcoatRoughnessMapUv),W.push(q.iridescenceMapUv),W.push(q.iridescenceThicknessMapUv),W.push(q.sheenColorMapUv),W.push(q.sheenRoughnessMapUv),W.push(q.specularMapUv),W.push(q.specularColorMapUv),W.push(q.specularIntensityMapUv),W.push(q.transmissionMapUv),W.push(q.thicknessMapUv),W.push(q.combine),W.push(q.fogExp2),W.push(q.sizeAttenuation),W.push(q.morphTargetsCount),W.push(q.morphAttributeCount),W.push(q.numDirLights),W.push(q.numPointLights),W.push(q.numSpotLights),W.push(q.numSpotLightMaps),W.push(q.numHemiLights),W.push(q.numRectAreaLights),W.push(q.numDirLightShadows),W.push(q.numPointLightShadows),W.push(q.numSpotLightShadows),W.push(q.numSpotLightShadowsWithMaps),W.push(q.numLightProbes),W.push(q.shadowMapType),W.push(q.toneMapping),W.push(q.numClippingPlanes),W.push(q.numClipIntersection),W.push(q.depthPacking)}(q,W),function R(W,q){u.disableAll(),q.supportsVertexTextures&&u.enable(0),q.instancing&&u.enable(1),q.instancingColor&&u.enable(2),q.instancingMorph&&u.enable(3),q.matcap&&u.enable(4),q.envMap&&u.enable(5),q.normalMapObjectSpace&&u.enable(6),q.normalMapTangentSpace&&u.enable(7),q.clearcoat&&u.enable(8),q.iridescence&&u.enable(9),q.alphaTest&&u.enable(10),q.vertexColors&&u.enable(11),q.vertexAlphas&&u.enable(12),q.vertexUv1s&&u.enable(13),q.vertexUv2s&&u.enable(14),q.vertexUv3s&&u.enable(15),q.vertexTangents&&u.enable(16),q.anisotropy&&u.enable(17),q.alphaHash&&u.enable(18),q.batching&&u.enable(19),q.dispersion&&u.enable(20),q.batchingColor&&u.enable(21),W.push(u.mask),u.disableAll(),q.fog&&u.enable(0),q.useFog&&u.enable(1),q.flatShading&&u.enable(2),q.logarithmicDepthBuffer&&u.enable(3),q.skinning&&u.enable(4),q.morphTargets&&u.enable(5),q.morphNormals&&u.enable(6),q.morphColors&&u.enable(7),q.premultipliedAlpha&&u.enable(8),q.shadowMapEnabled&&u.enable(9),q.doubleSided&&u.enable(10),q.flipSided&&u.enable(11),q.useDepthPacking&&u.enable(12),q.dithering&&u.enable(13),q.transmission&&u.enable(14),q.sheen&&u.enable(15),q.opaque&&u.enable(16),q.pointsUvs&&u.enable(17),q.decodeVideoTexture&&u.enable(18),q.alphaToCoverage&&u.enable(19),W.push(u.mask)}(q,W),q.push(n.outputColorSpace)),q.push(W.customProgramCacheKey),q.join()},getUniforms:function P(W){const q=F[W.type];let le;return le=q?_5.clone(Zh[q].uniforms):W.uniforms,le},acquireProgram:function ee(W,q){let le;for(let ke=0,Ue=m.length;ke0?i.push(I):!0===w.transparent?r.push(I):e.push(I)},unshift:function f(_,b,w,F,D,T){const I=l(_,b,w,F,D,T);w.transmission>0?i.unshift(I):!0===w.transparent?r.unshift(I):e.unshift(I)},finish:function m(){for(let _=t,b=n.length;_1&&e.sort(_||qte),i.length>1&&i.sort(b||OQ),r.length>1&&r.sort(b||OQ)}}}function Wte(){let n=new WeakMap;return{get:function t(i,r){const s=n.get(i);let l;return void 0===s?(l=new NQ,n.set(i,[l])):r>=s.length?(l=new NQ,s.push(l)):l=s[r],l},dispose:function e(){n=new WeakMap}}}function Xte(){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 pe,color:new _n};break;case"SpotLight":e={position:new pe,direction:new pe,color:new _n,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new pe,color:new _n,distance:0,decay:0};break;case"HemisphereLight":e={direction:new pe,skyColor:new _n,groundColor:new _n};break;case"RectAreaLight":e={color:new _n,position:new pe,halfWidth:new pe,halfHeight:new pe}}return n[t.id]=e,e}}}let Yte=0;function Zte(n,t){return(t.castShadow?2:0)-(n.castShadow?2:0)+(t.map?1:0)-(n.map?1:0)}function Jte(n){const t=new Xte,e=function Kte(){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 At};break;case"PointLight":e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new At,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 p=0;p<9;p++)i.probe.push(new pe);const r=new pe,s=new zi,l=new zi;return{setup:function u(p){let m=0,_=0,b=0;for(let W=0;W<9;W++)i.probe[W].set(0,0,0);let w=0,F=0,D=0,T=0,I=0,O=0,R=0,P=0,ee=0,J=0,te=0;p.sort(Zte);for(let W=0,q=p.length;W0&&(!0===n.has("OES_texture_float_linear")?(i.rectAreaLTC1=Nn.LTC_FLOAT_1,i.rectAreaLTC2=Nn.LTC_FLOAT_2):(i.rectAreaLTC1=Nn.LTC_HALF_1,i.rectAreaLTC2=Nn.LTC_HALF_2)),i.ambient[0]=m,i.ambient[1]=_,i.ambient[2]=b;const ie=i.hash;(ie.directionalLength!==w||ie.pointLength!==F||ie.spotLength!==D||ie.rectAreaLength!==T||ie.hemiLength!==I||ie.numDirectionalShadows!==O||ie.numPointShadows!==R||ie.numSpotShadows!==P||ie.numSpotMaps!==ee||ie.numLightProbes!==te)&&(i.directional.length=w,i.spot.length=D,i.rectArea.length=T,i.point.length=F,i.hemi.length=I,i.directionalShadow.length=O,i.directionalShadowMap.length=O,i.pointShadow.length=R,i.pointShadowMap.length=R,i.spotShadow.length=P,i.spotShadowMap.length=P,i.directionalShadowMatrix.length=O,i.pointShadowMatrix.length=R,i.spotLightMatrix.length=P+ee-J,i.spotLightMap.length=ee,i.numSpotLightShadowsWithMaps=J,i.numLightProbes=te,ie.directionalLength=w,ie.pointLength=F,ie.spotLength=D,ie.rectAreaLength=T,ie.hemiLength=I,ie.numDirectionalShadows=O,ie.numPointShadows=R,ie.numSpotShadows=P,ie.numSpotMaps=ee,ie.numLightProbes=te,i.version=Yte++)},setupView:function f(p,m){let _=0,b=0,w=0,F=0,D=0;const T=m.matrixWorldInverse;for(let I=0,O=p.length;I=l.length?(u=new LQ(n),l.push(u)):u=l[s],u},dispose:function i(){t=new WeakMap}}}class UQ extends Ka{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 VQ extends Ka{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 ine(n,t,e){let i=new Ak;const r=new At,s=new At,l=new Lr,u=new UQ({depthPacking:3201}),f=new VQ,p={},m=e.maxTextureSize,_={[xu]:1,[ua]:0,[Cu]:2},b=new sc({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new At},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}"}),w=b.clone();w.defines.HORIZONTAL_PASS=1;const F=new fi;F.setAttribute("position",new x(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const D=new cr(F,b),T=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=aB;let I=this.type;function O(J,te){const ie=t.update(D);b.defines.VSM_SAMPLES!==J.blurSamples&&(b.defines.VSM_SAMPLES=J.blurSamples,w.defines.VSM_SAMPLES=J.blurSamples,b.needsUpdate=!0,w.needsUpdate=!0),null===J.mapPass&&(J.mapPass=new Cl(r.x,r.y)),b.uniforms.shadow_pass.value=J.map.texture,b.uniforms.resolution.value=J.mapSize,b.uniforms.radius.value=J.radius,n.setRenderTarget(J.mapPass),n.clear(),n.renderBufferDirect(te,null,ie,b,D,null),w.uniforms.shadow_pass.value=J.mapPass.texture,w.uniforms.resolution.value=J.mapSize,w.uniforms.radius.value=J.radius,n.setRenderTarget(J.map),n.clear(),n.renderBufferDirect(te,null,ie,w,D,null)}function R(J,te,ie,W){let q=null;const le=!0===ie.isPointLight?J.customDistanceMaterial:J.customDepthMaterial;if(void 0!==le)q=le;else if(q=!0===ie.isPointLight?f:u,n.localClippingEnabled&&!0===te.clipShadows&&Array.isArray(te.clippingPlanes)&&0!==te.clippingPlanes.length||te.displacementMap&&0!==te.displacementScale||te.alphaMap&&te.alphaTest>0||te.map&&te.alphaTest>0){const ke=q.uuid,Ue=te.uuid;let ce=p[ke];void 0===ce&&(ce={},p[ke]=ce);let ze=ce[Ue];void 0===ze&&(ze=q.clone(),ce[Ue]=ze,te.addEventListener("dispose",ee)),q=ze}return q.visible=te.visible,q.wireframe=te.wireframe,q.side=W===Nh?null!==te.shadowSide?te.shadowSide:te.side:null!==te.shadowSide?te.shadowSide:_[te.side],q.alphaMap=te.alphaMap,q.alphaTest=te.alphaTest,q.map=te.map,q.clipShadows=te.clipShadows,q.clippingPlanes=te.clippingPlanes,q.clipIntersection=te.clipIntersection,q.displacementMap=te.displacementMap,q.displacementScale=te.displacementScale,q.displacementBias=te.displacementBias,q.wireframeLinewidth=te.wireframeLinewidth,q.linewidth=te.linewidth,!0===ie.isPointLight&&!0===q.isMeshDistanceMaterial&&(n.properties.get(q).light=ie),q}function P(J,te,ie,W,q){if(!1===J.visible)return;if(J.layers.test(te.layers)&&(J.isMesh||J.isLine||J.isPoints)&&(J.castShadow||J.receiveShadow&&q===Nh)&&(!J.frustumCulled||i.intersectsObject(J))){J.modelViewMatrix.multiplyMatrices(ie.matrixWorldInverse,J.matrixWorld);const Ue=t.update(J),ce=J.material;if(Array.isArray(ce)){const ze=Ue.groups;for(let Ce=0,Oe=ze.length;Cem||r.y>m)&&(r.x>m&&(s.x=Math.floor(m/ft.x),r.x=s.x*ft.x,Fe.mapSize.x=s.x),r.y>m&&(s.y=Math.floor(m/ft.y),r.y=s.y*ft.y,Fe.mapSize.y=s.y)),null===Fe.map||!0===Ue||!0===ce){const kt=this.type!==Nh?{minFilter:ha,magFilter:ha}:{};null!==Fe.map&&Fe.map.dispose(),Fe.map=new Cl(r.x,r.y,kt),Fe.map.texture.name=Oe.name+".shadowMap",Fe.camera.updateProjectionMatrix()}n.setRenderTarget(Fe.map),n.clear();const Et=Fe.getViewportCount();for(let kt=0;kt=1):-1!==Oe.indexOf("OpenGL ES")&&(Ce=parseFloat(/^OpenGL ES (\d)/.exec(Oe)[1]),ze=Ce>=2);let Fe=null,ft={};const Et=n.getParameter(n.SCISSOR_BOX),kt=n.getParameter(n.VIEWPORT),nn=(new Lr).fromArray(Et),Xn=(new Lr).fromArray(kt);function Me(ht,wn,$t,Kt){const Tn=new Uint8Array(4),tr=n.createTexture();n.bindTexture(ht,tr),n.texParameteri(ht,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(ht,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let qr=0;qr<$t;qr++)ht===n.TEXTURE_3D||ht===n.TEXTURE_2D_ARRAY?n.texImage3D(wn,0,n.RGBA,1,1,Kt,0,n.RGBA,n.UNSIGNED_BYTE,Tn):n.texImage2D(wn+qr,0,n.RGBA,1,1,0,n.RGBA,n.UNSIGNED_BYTE,Tn);return tr}const be={};function Ae(ht){!0!==p[ht]&&(n.enable(ht),p[ht]=!0)}function ae(ht){!1!==p[ht]&&(n.disable(ht),p[ht]=!1)}be[n.TEXTURE_2D]=Me(n.TEXTURE_2D,n.TEXTURE_2D,1),be[n.TEXTURE_CUBE_MAP]=Me(n.TEXTURE_CUBE_MAP,n.TEXTURE_CUBE_MAP_POSITIVE_X,6),be[n.TEXTURE_2D_ARRAY]=Me(n.TEXTURE_2D_ARRAY,n.TEXTURE_2D_ARRAY,1,1),be[n.TEXTURE_3D]=Me(n.TEXTURE_3D,n.TEXTURE_3D,1,1),r.setClear(0,0,0,1),s.setClear(1),l.setClear(0),Ae(n.DEPTH_TEST),s.setFunc(3),Mt(!1),_t(1),Ae(n.CULL_FACE),wt(0);const zt={[ns]:n.FUNC_ADD,[yg]:n.FUNC_SUBTRACT,[SL]:n.FUNC_REVERSE_SUBTRACT};zt[103]=n.MIN,zt[104]=n.MAX;const de={[k9]:n.ZERO,[db]:n.ONE,[IL]:n.SRC_COLOR,[NE]:n.SRC_ALPHA,[cB]:n.SRC_ALPHA_SATURATE,[BL]:n.DST_COLOR,[FL]:n.DST_ALPHA,[OE]:n.ONE_MINUS_SRC_COLOR,[W1]:n.ONE_MINUS_SRC_ALPHA,[LE]:n.ONE_MINUS_DST_COLOR,[DL]:n.ONE_MINUS_DST_ALPHA,[kL]:n.CONSTANT_COLOR,[X1]:n.ONE_MINUS_CONSTANT_COLOR,[UE]:n.CONSTANT_ALPHA,[R9]:n.ONE_MINUS_CONSTANT_ALPHA};function wt(ht,wn,$t,Kt,Tn,tr,qr,Gs,La,ho){if(0!==ht){if(!1===F&&(Ae(n.BLEND),F=!0),5===ht)Tn=Tn||wn,tr=tr||$t,qr=qr||Kt,(wn!==T||Tn!==R)&&(n.blendEquationSeparate(zt[wn],zt[Tn]),T=wn,R=Tn),($t!==I||Kt!==O||tr!==P||qr!==ee)&&(n.blendFuncSeparate(de[$t],de[Kt],de[tr],de[qr]),I=$t,O=Kt,P=tr,ee=qr),(!1===Gs.equals(J)||La!==te)&&(n.blendColor(Gs.r,Gs.g,Gs.b,La),J.copy(Gs),te=La),D=ht,ie=!1;else if(ht!==D||ho!==ie){if((100!==T||100!==R)&&(n.blendEquation(n.FUNC_ADD),T=100,R=100),ho)switch(ht){case 1:n.blendFuncSeparate(n.ONE,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA);break;case 2:n.blendFunc(n.ONE,n.ONE);break;case 3:n.blendFuncSeparate(n.ZERO,n.ONE_MINUS_SRC_COLOR,n.ZERO,n.ONE);break;case 4:n.blendFuncSeparate(n.ZERO,n.SRC_COLOR,n.ZERO,n.SRC_ALPHA);break;default:console.error("THREE.WebGLState: Invalid blending: ",ht)}else switch(ht){case 1:n.blendFuncSeparate(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA);break;case 2:n.blendFunc(n.SRC_ALPHA,n.ONE);break;case 3:n.blendFuncSeparate(n.ZERO,n.ONE_MINUS_SRC_COLOR,n.ZERO,n.ONE);break;case 4:n.blendFunc(n.ZERO,n.SRC_COLOR);break;default:console.error("THREE.WebGLState: Invalid blending: ",ht)}I=null,O=null,P=null,ee=null,J.set(0,0,0),te=0,D=ht,ie=ho}}else!0===F&&(ae(n.BLEND),F=!1)}function Mt(ht){W!==ht&&(n.frontFace(ht?n.CW:n.CCW),W=ht)}function _t(ht){0!==ht?(Ae(n.CULL_FACE),ht!==q&&n.cullFace(1===ht?n.BACK:2===ht?n.FRONT:n.FRONT_AND_BACK)):ae(n.CULL_FACE),q=ht}function Pe(ht,wn,$t){ht?(Ae(n.POLYGON_OFFSET_FILL),(ke!==wn||Ue!==$t)&&(n.polygonOffset(wn,$t),ke=wn,Ue=$t)):ae(n.POLYGON_OFFSET_FILL)}return{buffers:{color:r,depth:s,stencil:l},enable:Ae,disable:ae,bindFramebuffer:function ut(ht,wn){return m[ht]!==wn&&(n.bindFramebuffer(ht,wn),m[ht]=wn,ht===n.DRAW_FRAMEBUFFER&&(m[n.FRAMEBUFFER]=wn),ht===n.FRAMEBUFFER&&(m[n.DRAW_FRAMEBUFFER]=wn),!0)},drawBuffers:function Nt(ht,wn){let $t=b,Kt=!1;if(ht){$t=_.get(wn),void 0===$t&&($t=[],_.set(wn,$t));const Tn=ht.textures;if($t.length!==Tn.length||$t[0]!==n.COLOR_ATTACHMENT0){for(let tr=0,qr=Tn.length;tr"u")&&/OculusBrowser/g.test(navigator.userAgent),p=new At,m=new WeakMap;let _;const b=new WeakMap;let w=!1;try{w=typeof OffscreenCanvas<"u"&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch{}function F(_e,oe){return w?new OffscreenCanvas(_e,oe):Gh("canvas")}function D(_e,oe,Ct){let Ht=1;const Vt=Se(_e);if((Vt.width>Ct||Vt.height>Ct)&&(Ht=Ct/Math.max(Vt.width,Vt.height)),Ht<1){if(typeof HTMLImageElement<"u"&&_e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&_e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&_e instanceof ImageBitmap||typeof VideoFrame<"u"&&_e instanceof VideoFrame){const jt=Math.floor(Ht*Vt.width),Si=Math.floor(Ht*Vt.height);void 0===_&&(_=F(jt,Si));const Fn=oe?F(jt,Si):_;return Fn.width=jt,Fn.height=Si,Fn.getContext("2d").drawImage(_e,0,0,jt,Si),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+Vt.width+"x"+Vt.height+") to ("+jt+"x"+Si+")."),Fn}return"data"in _e&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+Vt.width+"x"+Vt.height+")."),_e}return _e}function T(_e){return _e.generateMipmaps&&_e.minFilter!==ha&&_e.minFilter!==Ts}function I(_e){n.generateMipmap(_e)}function O(_e,oe,Ct,Ht,Vt=!1){if(null!==_e){if(void 0!==n[_e])return n[_e];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+_e+"'")}let jt=oe;if(oe===n.RED&&(Ct===n.FLOAT&&(jt=n.R32F),Ct===n.HALF_FLOAT&&(jt=n.R16F),Ct===n.UNSIGNED_BYTE&&(jt=n.R8)),oe===n.RED_INTEGER&&(Ct===n.UNSIGNED_BYTE&&(jt=n.R8UI),Ct===n.UNSIGNED_SHORT&&(jt=n.R16UI),Ct===n.UNSIGNED_INT&&(jt=n.R32UI),Ct===n.BYTE&&(jt=n.R8I),Ct===n.SHORT&&(jt=n.R16I),Ct===n.INT&&(jt=n.R32I)),oe===n.RG&&(Ct===n.FLOAT&&(jt=n.RG32F),Ct===n.HALF_FLOAT&&(jt=n.RG16F),Ct===n.UNSIGNED_BYTE&&(jt=n.RG8)),oe===n.RG_INTEGER&&(Ct===n.UNSIGNED_BYTE&&(jt=n.RG8UI),Ct===n.UNSIGNED_SHORT&&(jt=n.RG16UI),Ct===n.UNSIGNED_INT&&(jt=n.RG32UI),Ct===n.BYTE&&(jt=n.RG8I),Ct===n.SHORT&&(jt=n.RG16I),Ct===n.INT&&(jt=n.RG32I)),oe===n.RGB&&Ct===n.UNSIGNED_INT_5_9_9_9_REV&&(jt=n.RGB9_E5),oe===n.RGBA){const Si=Vt?oS:Nr.getTransfer(Ht);Ct===n.FLOAT&&(jt=n.RGBA32F),Ct===n.HALF_FLOAT&&(jt=n.RGBA16F),Ct===n.UNSIGNED_BYTE&&(jt=Si===Bo?n.SRGB8_ALPHA8:n.RGBA8),Ct===n.UNSIGNED_SHORT_4_4_4_4&&(jt=n.RGBA4),Ct===n.UNSIGNED_SHORT_5_5_5_1&&(jt=n.RGB5_A1)}return(jt===n.R16F||jt===n.R32F||jt===n.RG16F||jt===n.RG32F||jt===n.RGBA16F||jt===n.RGBA32F)&&t.get("EXT_color_buffer_float"),jt}function R(_e,oe){let Ct;return _e?null===oe||oe===Vh||oe===kp?Ct=n.DEPTH24_STENCIL8:oe===xl?Ct=n.DEPTH32F_STENCIL8:oe===fb&&(Ct=n.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):null===oe||oe===Vh||oe===kp?Ct=n.DEPTH_COMPONENT24:oe===xl?Ct=n.DEPTH_COMPONENT32F:oe===fb&&(Ct=n.DEPTH_COMPONENT16),Ct}function P(_e,oe){return!0===T(_e)||_e.isFramebufferTexture&&_e.minFilter!==ha&&_e.minFilter!==Ts?Math.log2(Math.max(oe.width,oe.height))+1:void 0!==_e.mipmaps&&_e.mipmaps.length>0?_e.mipmaps.length:_e.isCompressedTexture&&Array.isArray(_e.image)?oe.mipmaps.length:1}function ee(_e){const oe=_e.target;oe.removeEventListener("dispose",ee),function te(_e){const oe=i.get(_e);if(void 0===oe.__webglInit)return;const Ct=_e.source,Ht=b.get(Ct);if(Ht){const Vt=Ht[oe.__cacheKey];Vt.usedTimes--,0===Vt.usedTimes&&ie(_e),0===Object.keys(Ht).length&&b.delete(Ct)}i.remove(_e)}(oe),oe.isVideoTexture&&m.delete(oe)}function J(_e){const oe=_e.target;oe.removeEventListener("dispose",J),function W(_e){const oe=i.get(_e);if(_e.depthTexture&&_e.depthTexture.dispose(),_e.isWebGLCubeRenderTarget)for(let Ht=0;Ht<6;Ht++){if(Array.isArray(oe.__webglFramebuffer[Ht]))for(let Vt=0;Vt0&&Ct.__version!==_e.version){const Ht=_e.image;if(null===Ht)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==Ht.complete)return void Xn(Ct,_e,oe);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}e.bindTexture(n.TEXTURE_2D,Ct.__webglTexture,n.TEXTURE0+oe)}const Fe={[Bp]:n.REPEAT,[Id]:n.CLAMP_TO_EDGE,[HE]:n.MIRRORED_REPEAT},ft={[ha]:n.NEAREST,[HL]:n.NEAREST_MIPMAP_NEAREST,[tw]:n.NEAREST_MIPMAP_LINEAR,[Ts]:n.LINEAR,[ub]:n.LINEAR_MIPMAP_NEAREST,[Uh]:n.LINEAR_MIPMAP_LINEAR},Et={[j9]:n.NEVER,[e5]:n.ALWAYS,[ZL]:n.LESS,[JL]:n.LEQUAL,[$9]:n.EQUAL,[BB]:n.GEQUAL,[q9]:n.GREATER,[DB]:n.NOTEQUAL};function kt(_e,oe){if(oe.type===xl&&!1===t.has("OES_texture_float_linear")&&(oe.magFilter===Ts||1007===oe.magFilter||1005===oe.magFilter||oe.magFilter===Uh||oe.minFilter===Ts||1007===oe.minFilter||1005===oe.minFilter||oe.minFilter===Uh)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),n.texParameteri(_e,n.TEXTURE_WRAP_S,Fe[oe.wrapS]),n.texParameteri(_e,n.TEXTURE_WRAP_T,Fe[oe.wrapT]),(_e===n.TEXTURE_3D||_e===n.TEXTURE_2D_ARRAY)&&n.texParameteri(_e,n.TEXTURE_WRAP_R,Fe[oe.wrapR]),n.texParameteri(_e,n.TEXTURE_MAG_FILTER,ft[oe.magFilter]),n.texParameteri(_e,n.TEXTURE_MIN_FILTER,ft[oe.minFilter]),oe.compareFunction&&(n.texParameteri(_e,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(_e,n.TEXTURE_COMPARE_FUNC,Et[oe.compareFunction])),!0===t.has("EXT_texture_filter_anisotropic")){if(oe.magFilter===ha||1005!==oe.minFilter&&oe.minFilter!==Uh||oe.type===xl&&!1===t.has("OES_texture_float_linear"))return;if(oe.anisotropy>1||i.get(oe).__currentAnisotropy){const Ct=t.get("EXT_texture_filter_anisotropic");n.texParameterf(_e,Ct.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(oe.anisotropy,r.getMaxAnisotropy())),i.get(oe).__currentAnisotropy=oe.anisotropy}}}function nn(_e,oe){let Ct=!1;void 0===_e.__webglInit&&(_e.__webglInit=!0,oe.addEventListener("dispose",ee));const Ht=oe.source;let Vt=b.get(Ht);void 0===Vt&&(Vt={},b.set(Ht,Vt));const jt=function Ue(_e){const oe=[];return oe.push(_e.wrapS),oe.push(_e.wrapT),oe.push(_e.wrapR||0),oe.push(_e.magFilter),oe.push(_e.minFilter),oe.push(_e.anisotropy),oe.push(_e.internalFormat),oe.push(_e.format),oe.push(_e.type),oe.push(_e.generateMipmaps),oe.push(_e.premultiplyAlpha),oe.push(_e.flipY),oe.push(_e.unpackAlignment),oe.push(_e.colorSpace),oe.join()}(oe);if(jt!==_e.__cacheKey){void 0===Vt[jt]&&(Vt[jt]={texture:n.createTexture(),usedTimes:0},l.memory.textures++,Ct=!0),Vt[jt].usedTimes++;const Si=Vt[_e.__cacheKey];void 0!==Si&&(Vt[_e.__cacheKey].usedTimes--,0===Si.usedTimes&&ie(oe)),_e.__cacheKey=jt,_e.__webglTexture=Vt[jt].texture}return Ct}function Xn(_e,oe,Ct){let Ht=n.TEXTURE_2D;(oe.isDataArrayTexture||oe.isCompressedArrayTexture)&&(Ht=n.TEXTURE_2D_ARRAY),oe.isData3DTexture&&(Ht=n.TEXTURE_3D);const Vt=nn(_e,oe),jt=oe.source;e.bindTexture(Ht,_e.__webglTexture,n.TEXTURE0+Ct);const Si=i.get(jt);if(jt.version!==Si.__version||!0===Vt){e.activeTexture(n.TEXTURE0+Ct);const Fn=Nr.getPrimaries(Nr.workingColorSpace),Kn=""===oe.colorSpace?null:Nr.getPrimaries(oe.colorSpace),ir=""===oe.colorSpace||Fn===Kn?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,oe.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,oe.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,oe.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,ir);let hn=D(oe.image,!1,r.maxTextureSize);hn=Pe(oe,hn);const Yn=s.convert(oe.format,oe.colorSpace),kr=s.convert(oe.type);let ci,er=O(oe.internalFormat,Yn,kr,oe.colorSpace,oe.isVideoTexture);kt(Ht,oe);const dr=oe.mipmaps,Sr=!0!==oe.isVideoTexture,ss=void 0===Si.__version||!0===Vt,ht=jt.dataReady,wn=P(oe,hn);if(oe.isDepthTexture)er=R(oe.format===Mg,oe.type),ss&&(Sr?e.texStorage2D(n.TEXTURE_2D,1,er,hn.width,hn.height):e.texImage2D(n.TEXTURE_2D,0,er,hn.width,hn.height,0,Yn,kr,null));else if(oe.isDataTexture)if(dr.length>0){Sr&&ss&&e.texStorage2D(n.TEXTURE_2D,wn,er,dr[0].width,dr[0].height);for(let $t=0,Kt=dr.length;$t0){const Tn=I5(ci.width,ci.height,oe.format,oe.type);for(const tr of oe.layerUpdates){const qr=ci.data.subarray(tr*Tn/ci.data.BYTES_PER_ELEMENT,(tr+1)*Tn/ci.data.BYTES_PER_ELEMENT);e.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,$t,0,0,tr,ci.width,ci.height,1,Yn,qr,0,0)}oe.clearLayerUpdates()}else e.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,$t,0,0,0,ci.width,ci.height,hn.depth,Yn,ci.data,0,0)}else e.compressedTexImage3D(n.TEXTURE_2D_ARRAY,$t,er,ci.width,ci.height,hn.depth,0,ci.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else Sr?ht&&e.texSubImage3D(n.TEXTURE_2D_ARRAY,$t,0,0,0,ci.width,ci.height,hn.depth,Yn,kr,ci.data):e.texImage3D(n.TEXTURE_2D_ARRAY,$t,er,ci.width,ci.height,hn.depth,0,Yn,kr,ci.data)}else{Sr&&ss&&e.texStorage2D(n.TEXTURE_2D,wn,er,dr[0].width,dr[0].height);for(let $t=0,Kt=dr.length;$t0){const $t=I5(hn.width,hn.height,oe.format,oe.type);for(const Kt of oe.layerUpdates){const Tn=hn.data.subarray(Kt*$t/hn.data.BYTES_PER_ELEMENT,(Kt+1)*$t/hn.data.BYTES_PER_ELEMENT);e.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,Kt,hn.width,hn.height,1,Yn,kr,Tn)}oe.clearLayerUpdates()}else e.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,0,hn.width,hn.height,hn.depth,Yn,kr,hn.data)}else e.texImage3D(n.TEXTURE_2D_ARRAY,0,er,hn.width,hn.height,hn.depth,0,Yn,kr,hn.data);else if(oe.isData3DTexture)Sr?(ss&&e.texStorage3D(n.TEXTURE_3D,wn,er,hn.width,hn.height,hn.depth),ht&&e.texSubImage3D(n.TEXTURE_3D,0,0,0,0,hn.width,hn.height,hn.depth,Yn,kr,hn.data)):e.texImage3D(n.TEXTURE_3D,0,er,hn.width,hn.height,hn.depth,0,Yn,kr,hn.data);else if(oe.isFramebufferTexture){if(ss)if(Sr)e.texStorage2D(n.TEXTURE_2D,wn,er,hn.width,hn.height);else{let $t=hn.width,Kt=hn.height;for(let Tn=0;Tn>=1,Kt>>=1}}else if(dr.length>0){if(Sr&&ss){const $t=Se(dr[0]);e.texStorage2D(n.TEXTURE_2D,wn,er,$t.width,$t.height)}for(let $t=0,Kt=dr.length;$t>jt),Yn=Math.max(1,oe.height>>jt);Vt===n.TEXTURE_3D||Vt===n.TEXTURE_2D_ARRAY?e.texImage3D(Vt,jt,Kn,hn,Yn,oe.depth,0,Si,Fn,null):e.texImage2D(Vt,jt,Kn,hn,Yn,0,Si,Fn,null)}e.bindFramebuffer(n.FRAMEBUFFER,_e),_t(oe)?u.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,Ht,Vt,i.get(Ct).__webglTexture,0,Mt(oe)):(Vt===n.TEXTURE_2D||Vt>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&Vt<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,Ht,Vt,i.get(Ct).__webglTexture,jt),e.bindFramebuffer(n.FRAMEBUFFER,null)}function Ae(_e,oe,Ct){if(n.bindRenderbuffer(n.RENDERBUFFER,_e),oe.depthBuffer){const Ht=oe.depthTexture,jt=R(oe.stencilBuffer,Ht&&Ht.isDepthTexture?Ht.type:null),Si=oe.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Fn=Mt(oe);_t(oe)?u.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Fn,jt,oe.width,oe.height):Ct?n.renderbufferStorageMultisample(n.RENDERBUFFER,Fn,jt,oe.width,oe.height):n.renderbufferStorage(n.RENDERBUFFER,jt,oe.width,oe.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,Si,n.RENDERBUFFER,_e)}else{const Ht=oe.textures;for(let Vt=0;Vt{delete oe.__boundDepthTexture,delete oe.__depthDisposeCallback,Ht.removeEventListener("dispose",Vt)};Ht.addEventListener("dispose",Vt),oe.__depthDisposeCallback=Vt}oe.__boundDepthTexture=Ht}if(_e.depthTexture&&!oe.__autoAllocateDepthBuffer){if(Ct)throw new Error("target.depthTexture not supported in Cube render targets");!function ae(_e,oe){if(oe&&oe.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(e.bindFramebuffer(n.FRAMEBUFFER,_e),!oe.depthTexture||!oe.depthTexture.isDepthTexture)throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");(!i.get(oe.depthTexture).__webglTexture||oe.depthTexture.image.width!==oe.width||oe.depthTexture.image.height!==oe.height)&&(oe.depthTexture.image.width=oe.width,oe.depthTexture.image.height=oe.height,oe.depthTexture.needsUpdate=!0),ce(oe.depthTexture,0);const Ht=i.get(oe.depthTexture).__webglTexture,Vt=Mt(oe);if(oe.depthTexture.format===Cg)_t(oe)?u.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,Ht,0,Vt):n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,Ht,0);else{if(oe.depthTexture.format!==Mg)throw new Error("Unknown depthTexture format");_t(oe)?u.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.TEXTURE_2D,Ht,0,Vt):n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.TEXTURE_2D,Ht,0)}}(oe.__webglFramebuffer,_e)}else if(Ct){oe.__webglDepthbuffer=[];for(let Ht=0;Ht<6;Ht++)if(e.bindFramebuffer(n.FRAMEBUFFER,oe.__webglFramebuffer[Ht]),void 0===oe.__webglDepthbuffer[Ht])oe.__webglDepthbuffer[Ht]=n.createRenderbuffer(),Ae(oe.__webglDepthbuffer[Ht],_e,!1);else{const Vt=_e.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,jt=oe.__webglDepthbuffer[Ht];n.bindRenderbuffer(n.RENDERBUFFER,jt),n.framebufferRenderbuffer(n.FRAMEBUFFER,Vt,n.RENDERBUFFER,jt)}}else if(e.bindFramebuffer(n.FRAMEBUFFER,oe.__webglFramebuffer),void 0===oe.__webglDepthbuffer)oe.__webglDepthbuffer=n.createRenderbuffer(),Ae(oe.__webglDepthbuffer,_e,!1);else{const Ht=_e.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Vt=oe.__webglDepthbuffer;n.bindRenderbuffer(n.RENDERBUFFER,Vt),n.framebufferRenderbuffer(n.FRAMEBUFFER,Ht,n.RENDERBUFFER,Vt)}e.bindFramebuffer(n.FRAMEBUFFER,null)}const de=[],wt=[];function Mt(_e){return Math.min(r.maxSamples,_e.samples)}function _t(_e){const oe=i.get(_e);return _e.samples>0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==oe.__useRenderToTexture}function Pe(_e,oe){const Ct=_e.colorSpace,Ht=_e.format,Vt=_e.type;return!0===_e.isCompressedTexture||!0===_e.isVideoTexture||Ct!==Qh&&""!==Ct&&(Nr.getTransfer(Ct)===Bo?(Ht!==Ba||Vt!==Tu)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",Ct)),oe}function Se(_e){return typeof HTMLImageElement<"u"&&_e instanceof HTMLImageElement?(p.width=_e.naturalWidth||_e.width,p.height=_e.naturalHeight||_e.height):typeof VideoFrame<"u"&&_e instanceof VideoFrame?(p.width=_e.displayWidth,p.height=_e.displayHeight):(p.width=_e.width,p.height=_e.height),p}this.allocateTextureUnit=function ke(){const _e=q;return _e>=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+_e+" texture units while this GPU supports only "+r.maxTextures),q+=1,_e},this.resetTextureUnits=function le(){q=0},this.setTexture2D=ce,this.setTexture2DArray=function ze(_e,oe){const Ct=i.get(_e);_e.version>0&&Ct.__version!==_e.version?Xn(Ct,_e,oe):e.bindTexture(n.TEXTURE_2D_ARRAY,Ct.__webglTexture,n.TEXTURE0+oe)},this.setTexture3D=function Ce(_e,oe){const Ct=i.get(_e);_e.version>0&&Ct.__version!==_e.version?Xn(Ct,_e,oe):e.bindTexture(n.TEXTURE_3D,Ct.__webglTexture,n.TEXTURE0+oe)},this.setTextureCube=function Oe(_e,oe){const Ct=i.get(_e);_e.version>0&&Ct.__version!==_e.version?function Me(_e,oe,Ct){if(6!==oe.image.length)return;const Ht=nn(_e,oe),Vt=oe.source;e.bindTexture(n.TEXTURE_CUBE_MAP,_e.__webglTexture,n.TEXTURE0+Ct);const jt=i.get(Vt);if(Vt.version!==jt.__version||!0===Ht){e.activeTexture(n.TEXTURE0+Ct);const Si=Nr.getPrimaries(Nr.workingColorSpace),Fn=""===oe.colorSpace?null:Nr.getPrimaries(oe.colorSpace),Kn=""===oe.colorSpace||Si===Fn?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,oe.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,oe.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,oe.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,Kn);const ir=oe.isCompressedTexture||oe.image[0].isCompressedTexture,hn=oe.image[0]&&oe.image[0].isDataTexture,Yn=[];for(let Kt=0;Kt<6;Kt++)Yn[Kt]=ir||hn?hn?oe.image[Kt].image:oe.image[Kt]:D(oe.image[Kt],!0,r.maxCubemapSize),Yn[Kt]=Pe(oe,Yn[Kt]);const kr=Yn[0],er=s.convert(oe.format,oe.colorSpace),ci=s.convert(oe.type),dr=O(oe.internalFormat,er,ci,oe.colorSpace),Sr=!0!==oe.isVideoTexture,ss=void 0===jt.__version||!0===Ht,ht=Vt.dataReady;let $t,wn=P(oe,kr);if(kt(n.TEXTURE_CUBE_MAP,oe),ir){Sr&&ss&&e.texStorage2D(n.TEXTURE_CUBE_MAP,wn,dr,kr.width,kr.height);for(let Kt=0;Kt<6;Kt++){$t=Yn[Kt].mipmaps;for(let Tn=0;Tn<$t.length;Tn++){const tr=$t[Tn];oe.format!==Ba?null!==er?Sr?ht&&e.compressedTexSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,Tn,0,0,tr.width,tr.height,er,tr.data):e.compressedTexImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,Tn,dr,tr.width,tr.height,0,tr.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):Sr?ht&&e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,Tn,0,0,tr.width,tr.height,er,ci,tr.data):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,Tn,dr,tr.width,tr.height,0,er,ci,tr.data)}}}else{if($t=oe.mipmaps,Sr&&ss){$t.length>0&&wn++;const Kt=Se(Yn[0]);e.texStorage2D(n.TEXTURE_CUBE_MAP,wn,dr,Kt.width,Kt.height)}for(let Kt=0;Kt<6;Kt++)if(hn){Sr?ht&&e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,0,0,0,Yn[Kt].width,Yn[Kt].height,er,ci,Yn[Kt].data):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,0,dr,Yn[Kt].width,Yn[Kt].height,0,er,ci,Yn[Kt].data);for(let Tn=0;Tn<$t.length;Tn++){const qr=$t[Tn].image[Kt].image;Sr?ht&&e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,Tn+1,0,0,qr.width,qr.height,er,ci,qr.data):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,Tn+1,dr,qr.width,qr.height,0,er,ci,qr.data)}}else{Sr?ht&&e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,0,0,0,er,ci,Yn[Kt]):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,0,dr,er,ci,Yn[Kt]);for(let Tn=0;Tn<$t.length;Tn++){const tr=$t[Tn];Sr?ht&&e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,Tn+1,0,0,er,ci,tr.image[Kt]):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,Tn+1,dr,er,ci,tr.image[Kt])}}}T(oe)&&I(n.TEXTURE_CUBE_MAP),jt.__version=Vt.version,oe.onUpdate&&oe.onUpdate(oe)}_e.__version=oe.version}(Ct,_e,oe):e.bindTexture(n.TEXTURE_CUBE_MAP,Ct.__webglTexture,n.TEXTURE0+oe)},this.rebindTextures=function Nt(_e,oe,Ct){const Ht=i.get(_e);void 0!==oe&&be(Ht.__webglFramebuffer,_e,_e.texture,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,0),void 0!==Ct&&ut(_e)},this.setupRenderTarget=function lt(_e){const oe=_e.texture,Ct=i.get(_e),Ht=i.get(oe);_e.addEventListener("dispose",J);const Vt=_e.textures,jt=!0===_e.isWebGLCubeRenderTarget,Si=Vt.length>1;if(Si||(void 0===Ht.__webglTexture&&(Ht.__webglTexture=n.createTexture()),Ht.__version=oe.version,l.memory.textures++),jt){Ct.__webglFramebuffer=[];for(let Fn=0;Fn<6;Fn++)if(oe.mipmaps&&oe.mipmaps.length>0){Ct.__webglFramebuffer[Fn]=[];for(let Kn=0;Kn0){Ct.__webglFramebuffer=[];for(let Fn=0;Fn0&&!1===_t(_e)){Ct.__webglMultisampledFramebuffer=n.createFramebuffer(),Ct.__webglColorRenderbuffer=[],e.bindFramebuffer(n.FRAMEBUFFER,Ct.__webglMultisampledFramebuffer);for(let Fn=0;Fn0)for(let Kn=0;Kn0)for(let Kn=0;Kn0)if(!1===_t(_e)){const oe=_e.textures,Ct=_e.width,Ht=_e.height;let Vt=n.COLOR_BUFFER_BIT;const jt=_e.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Si=i.get(_e),Fn=oe.length>1;if(Fn)for(let Kn=0;Knw+F?(p.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!p.inputState.pinching&&b<=w-F&&(p.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==f&&t.gripSpace&&(s=e.getPose(t.gripSpace,i),null!==s&&(f.matrix.fromArray(s.transform.matrix),f.matrix.decompose(f.position,f.rotation,f.scale),f.matrixWorldNeedsUpdate=!0,s.linearVelocity?(f.hasLinearVelocity=!0,f.linearVelocity.copy(s.linearVelocity)):f.hasLinearVelocity=!1,s.angularVelocity?(f.hasAngularVelocity=!0,f.angularVelocity.copy(s.angularVelocity)):f.hasAngularVelocity=!1));null!==u&&(r=e.getPose(t.targetRaySpace,i),null===r&&null!==s&&(r=s),null!==r&&(u.matrix.fromArray(r.transform.matrix),u.matrix.decompose(u.position,u.rotation,u.scale),u.matrixWorldNeedsUpdate=!0,r.linearVelocity?(u.hasLinearVelocity=!0,u.linearVelocity.copy(r.linearVelocity)):u.hasLinearVelocity=!1,r.angularVelocity?(u.hasAngularVelocity=!0,u.angularVelocity.copy(r.angularVelocity)):u.hasAngularVelocity=!1,this.dispatchEvent(hne)))}return null!==u&&(u.visible=null!==r),null!==f&&(f.visible=null!==s),null!==p&&(p.visible=null!==l),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const i=new ac;i.matrixAutoUpdate=!1,i.visible=!1,t.joints[e.jointName]=i,t.add(i)}return t.joints[e.jointName]}}class Ane{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,i){if(null===this.texture){const r=new Is;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 sc({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 cr(new Pw(20,20),i)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class mne extends Nc{constructor(t,e){super();const i=this;let r=null,s=1,l=null,u="local-floor",f=1,p=null,m=null,_=null,b=null,w=null,F=null;const D=new Ane,T=e.getContextAttributes();let I=null,O=null;const R=[],P=[],ee=new At;let J=null;const te=new ea;te.layers.enable(1),te.viewport=new Lr;const ie=new ea;ie.layers.enable(2),ie.viewport=new Lr;const W=[te,ie],q=new une;q.layers.enable(1),q.layers.enable(2);let le=null,ke=null;function Ue(Me){const be=P.indexOf(Me.inputSource);if(-1===be)return;const Ae=R[be];void 0!==Ae&&(Ae.update(Me.inputSource,Me.frame,p||l),Ae.dispatchEvent({type:Me.type,data:Me.inputSource}))}function ce(){r.removeEventListener("select",Ue),r.removeEventListener("selectstart",Ue),r.removeEventListener("selectend",Ue),r.removeEventListener("squeeze",Ue),r.removeEventListener("squeezestart",Ue),r.removeEventListener("squeezeend",Ue),r.removeEventListener("end",ce),r.removeEventListener("inputsourceschange",ze);for(let Me=0;Me=0&&(P[ae]=null,R[ae].disconnect(Ae))}for(let be=0;be=P.length){P.push(Ae),ae=Nt;break}if(null===P[Nt]){P[Nt]=Ae,ae=Nt;break}}if(-1===ae)break}const ut=R[ae];ut&&ut.connect(Ae)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(Me){let be=R[Me];return void 0===be&&(be=new F5,R[Me]=be),be.getTargetRaySpace()},this.getControllerGrip=function(Me){let be=R[Me];return void 0===be&&(be=new F5,R[Me]=be),be.getGripSpace()},this.getHand=function(Me){let be=R[Me];return void 0===be&&(be=new F5,R[Me]=be),be.getHandSpace()},this.setFramebufferScaleFactor=function(Me){s=Me,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(Me){u=Me,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return p||l},this.setReferenceSpace=function(Me){p=Me},this.getBaseLayer=function(){return null!==b?b:w},this.getBinding=function(){return _},this.getFrame=function(){return F},this.getSession=function(){return r},this.setSession=function(){var Me=Cn(function*(be){if(r=be,null!==r){if(I=t.getRenderTarget(),r.addEventListener("select",Ue),r.addEventListener("selectstart",Ue),r.addEventListener("selectend",Ue),r.addEventListener("squeeze",Ue),r.addEventListener("squeezestart",Ue),r.addEventListener("squeezeend",Ue),r.addEventListener("end",ce),r.addEventListener("inputsourceschange",ze),!0!==T.xrCompatible&&(yield e.makeXRCompatible()),J=t.getPixelRatio(),t.getSize(ee),void 0===r.renderState.layers)w=new XRWebGLLayer(r,e,{antialias:T.antialias,alpha:!0,depth:T.depth,stencil:T.stencil,framebufferScaleFactor:s}),r.updateRenderState({baseLayer:w}),t.setPixelRatio(1),t.setSize(w.framebufferWidth,w.framebufferHeight,!1),O=new Cl(w.framebufferWidth,w.framebufferHeight,{format:Ba,type:Tu,colorSpace:t.outputColorSpace,stencilBuffer:T.stencil});else{let Ae=null,ae=null,ut=null;T.depth&&(ut=T.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,Ae=T.stencil?Mg:Cg,ae=T.stencil?kp:Vh);const Nt={colorFormat:e.RGBA8,depthFormat:ut,scaleFactor:s};_=new XRWebGLBinding(r,e),b=_.createProjectionLayer(Nt),r.updateRenderState({layers:[b]}),t.setPixelRatio(1),t.setSize(b.textureWidth,b.textureHeight,!1),O=new Cl(b.textureWidth,b.textureHeight,{format:Ba,type:Tu,depthTexture:new _Q(b.textureWidth,b.textureHeight,ae,void 0,void 0,void 0,void 0,void 0,void 0,Ae),stencilBuffer:T.stencil,colorSpace:t.outputColorSpace,samples:T.antialias?4:0,resolveDepthBuffer:!1===b.ignoreDepthValues})}O.isXRRenderTarget=!0,this.setFoveation(f),p=null,l=yield r.requestReferenceSpace(u),Xn.setContext(r),Xn.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}});return function(be){return Me.apply(this,arguments)}}(),this.getEnvironmentBlendMode=function(){if(null!==r)return r.environmentBlendMode},this.getDepthTexture=function(){return D.getDepthTexture()};const Ce=new pe,Oe=new pe;function ft(Me,be){null===be?Me.matrixWorld.copy(Me.matrix):Me.matrixWorld.multiplyMatrices(be.matrixWorld,Me.matrix),Me.matrixWorldInverse.copy(Me.matrixWorld).invert()}this.updateCamera=function(Me){if(null===r)return;let be=Me.near,Ae=Me.far;null!==D.texture&&(D.depthNear>0&&(be=D.depthNear),D.depthFar>0&&(Ae=D.depthFar)),q.near=ie.near=te.near=be,q.far=ie.far=te.far=Ae,(le!==q.near||ke!==q.far)&&(r.updateRenderState({depthNear:q.near,depthFar:q.far}),le=q.near,ke=q.far);const ae=Me.parent,ut=q.cameras;ft(q,ae);for(let Nt=0;Nt0&&(T.alphaTest.value=I.alphaTest);const O=t.get(I),R=O.envMap,P=O.envMapRotation;R&&(T.envMap.value=R,Hb.copy(P),Hb.x*=-1,Hb.y*=-1,Hb.z*=-1,R.isCubeTexture&&!1===R.isRenderTargetTexture&&(Hb.y*=-1,Hb.z*=-1),T.envMapRotation.value.setFromMatrix4(gne.makeRotationFromEuler(Hb)),T.flipEnvMap.value=R.isCubeTexture&&!1===R.isRenderTargetTexture?-1:1,T.reflectivity.value=I.reflectivity,T.ior.value=I.ior,T.refractionRatio.value=I.refractionRatio),I.lightMap&&(T.lightMap.value=I.lightMap,T.lightMapIntensity.value=I.lightMapIntensity,e(I.lightMap,T.lightMapTransform)),I.aoMap&&(T.aoMap.value=I.aoMap,T.aoMapIntensity.value=I.aoMapIntensity,e(I.aoMap,T.aoMapTransform))}return{refreshFogUniforms:function i(T,I){I.color.getRGB(T.fogColor.value,aQ(n)),I.isFog?(T.fogNear.value=I.near,T.fogFar.value=I.far):I.isFogExp2&&(T.fogDensity.value=I.density)},refreshMaterialUniforms:function r(T,I,O,R,P){I.isMeshBasicMaterial||I.isMeshLambertMaterial?s(T,I):I.isMeshToonMaterial?(s(T,I),function _(T,I){I.gradientMap&&(T.gradientMap.value=I.gradientMap)}(T,I)):I.isMeshPhongMaterial?(s(T,I),function m(T,I){T.specular.value.copy(I.specular),T.shininess.value=Math.max(I.shininess,1e-4)}(T,I)):I.isMeshStandardMaterial?(s(T,I),function b(T,I){T.metalness.value=I.metalness,I.metalnessMap&&(T.metalnessMap.value=I.metalnessMap,e(I.metalnessMap,T.metalnessMapTransform)),T.roughness.value=I.roughness,I.roughnessMap&&(T.roughnessMap.value=I.roughnessMap,e(I.roughnessMap,T.roughnessMapTransform)),I.envMap&&(T.envMapIntensity.value=I.envMapIntensity)}(T,I),I.isMeshPhysicalMaterial&&function w(T,I,O){T.ior.value=I.ior,I.sheen>0&&(T.sheenColor.value.copy(I.sheenColor).multiplyScalar(I.sheen),T.sheenRoughness.value=I.sheenRoughness,I.sheenColorMap&&(T.sheenColorMap.value=I.sheenColorMap,e(I.sheenColorMap,T.sheenColorMapTransform)),I.sheenRoughnessMap&&(T.sheenRoughnessMap.value=I.sheenRoughnessMap,e(I.sheenRoughnessMap,T.sheenRoughnessMapTransform))),I.clearcoat>0&&(T.clearcoat.value=I.clearcoat,T.clearcoatRoughness.value=I.clearcoatRoughness,I.clearcoatMap&&(T.clearcoatMap.value=I.clearcoatMap,e(I.clearcoatMap,T.clearcoatMapTransform)),I.clearcoatRoughnessMap&&(T.clearcoatRoughnessMap.value=I.clearcoatRoughnessMap,e(I.clearcoatRoughnessMap,T.clearcoatRoughnessMapTransform)),I.clearcoatNormalMap&&(T.clearcoatNormalMap.value=I.clearcoatNormalMap,e(I.clearcoatNormalMap,T.clearcoatNormalMapTransform),T.clearcoatNormalScale.value.copy(I.clearcoatNormalScale),1===I.side&&T.clearcoatNormalScale.value.negate())),I.dispersion>0&&(T.dispersion.value=I.dispersion),I.iridescence>0&&(T.iridescence.value=I.iridescence,T.iridescenceIOR.value=I.iridescenceIOR,T.iridescenceThicknessMinimum.value=I.iridescenceThicknessRange[0],T.iridescenceThicknessMaximum.value=I.iridescenceThicknessRange[1],I.iridescenceMap&&(T.iridescenceMap.value=I.iridescenceMap,e(I.iridescenceMap,T.iridescenceMapTransform)),I.iridescenceThicknessMap&&(T.iridescenceThicknessMap.value=I.iridescenceThicknessMap,e(I.iridescenceThicknessMap,T.iridescenceThicknessMapTransform))),I.transmission>0&&(T.transmission.value=I.transmission,T.transmissionSamplerMap.value=O.texture,T.transmissionSamplerSize.value.set(O.width,O.height),I.transmissionMap&&(T.transmissionMap.value=I.transmissionMap,e(I.transmissionMap,T.transmissionMapTransform)),T.thickness.value=I.thickness,I.thicknessMap&&(T.thicknessMap.value=I.thicknessMap,e(I.thicknessMap,T.thicknessMapTransform)),T.attenuationDistance.value=I.attenuationDistance,T.attenuationColor.value.copy(I.attenuationColor)),I.anisotropy>0&&(T.anisotropyVector.value.set(I.anisotropy*Math.cos(I.anisotropyRotation),I.anisotropy*Math.sin(I.anisotropyRotation)),I.anisotropyMap&&(T.anisotropyMap.value=I.anisotropyMap,e(I.anisotropyMap,T.anisotropyMapTransform))),T.specularIntensity.value=I.specularIntensity,T.specularColor.value.copy(I.specularColor),I.specularColorMap&&(T.specularColorMap.value=I.specularColorMap,e(I.specularColorMap,T.specularColorMapTransform)),I.specularIntensityMap&&(T.specularIntensityMap.value=I.specularIntensityMap,e(I.specularIntensityMap,T.specularIntensityMapTransform))}(T,I,P)):I.isMeshMatcapMaterial?(s(T,I),function F(T,I){I.matcap&&(T.matcap.value=I.matcap)}(T,I)):I.isMeshDepthMaterial?s(T,I):I.isMeshDistanceMaterial?(s(T,I),function D(T,I){const O=t.get(I).light;T.referencePosition.value.setFromMatrixPosition(O.matrixWorld),T.nearDistance.value=O.shadow.camera.near,T.farDistance.value=O.shadow.camera.far}(T,I)):I.isMeshNormalMaterial?s(T,I):I.isLineBasicMaterial?(function l(T,I){T.diffuse.value.copy(I.color),T.opacity.value=I.opacity,I.map&&(T.map.value=I.map,e(I.map,T.mapTransform))}(T,I),I.isLineDashedMaterial&&function u(T,I){T.dashSize.value=I.dashSize,T.totalSize.value=I.dashSize+I.gapSize,T.scale.value=I.scale}(T,I)):I.isPointsMaterial?function f(T,I,O,R){T.diffuse.value.copy(I.color),T.opacity.value=I.opacity,T.size.value=I.size*O,T.scale.value=.5*R,I.map&&(T.map.value=I.map,e(I.map,T.uvTransform)),I.alphaMap&&(T.alphaMap.value=I.alphaMap,e(I.alphaMap,T.alphaMapTransform)),I.alphaTest>0&&(T.alphaTest.value=I.alphaTest)}(T,I,O,R):I.isSpriteMaterial?function p(T,I){T.diffuse.value.copy(I.color),T.opacity.value=I.opacity,T.rotation.value=I.rotation,I.map&&(T.map.value=I.map,e(I.map,T.mapTransform)),I.alphaMap&&(T.alphaMap.value=I.alphaMap,e(I.alphaMap,T.alphaMapTransform)),I.alphaTest>0&&(T.alphaTest.value=I.alphaTest)}(T,I):I.isShadowMaterial?(T.color.value.copy(I.color),T.opacity.value=I.opacity):I.isShaderMaterial&&(I.uniformsNeedUpdate=!1)}}}function bne(n,t,e,i){let r={},s={},l=[];const u=n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS);function w(O,R,P,ee){const J=O.value,te=R+"_"+P;if(void 0===ee[te])return ee[te]="number"==typeof J||"boolean"==typeof J?J:J.clone(),!0;{const ie=ee[te];if("number"==typeof J||"boolean"==typeof J){if(ie!==J)return ee[te]=J,!0}else if(!1===ie.equals(J))return ie.copy(J),!0}return!1}function D(O){const R={boundary:0,storage:0};return"number"==typeof O||"boolean"==typeof O?(R.boundary=4,R.storage=4):O.isVector2?(R.boundary=8,R.storage=8):O.isVector3||O.isColor?(R.boundary=16,R.storage=12):O.isVector4?(R.boundary=16,R.storage=16):O.isMatrix3?(R.boundary=48,R.storage=48):O.isMatrix4?(R.boundary=64,R.storage=64):O.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",O),R}function T(O){const R=O.target;R.removeEventListener("dispose",T);const P=l.indexOf(R.__bindingPointIndex);l.splice(P,1),n.deleteBuffer(r[R.id]),delete r[R.id],delete s[R.id]}return{bind:function f(O,R){i.uniformBlockBinding(O,R.program)},update:function p(O,R){let P=r[O.id];void 0===P&&(function F(O){const R=O.uniforms;let P=0;for(let te=0,ie=R.length;te0&&(P+=16-J),O.__size=P,O.__cache={}}(O),P=function m(O){const R=function _(){for(let O=0;O0),Ri=!!Dt.morphAttributes.position,to=!!Dt.morphAttributes.normal,jo=!!Dt.morphAttributes.color;let vs=Eu;Bt.toneMapped&&(null===te||!0===te.isXRRenderTarget)&&(vs=R.toneMapping);const $c=Dt.morphAttributes.position||Dt.morphAttributes.normal||Dt.morphAttributes.color,fo=void 0!==$c?$c.length:0,Pi=Pe.get(Bt),Ua=T.state.lights;!0!==Me||!0!==be&&ye===W||ir.setState(Bt,ye,ye===W&&Bt.id===ie);let po=!1;Bt.version===Pi.__version?(Pi.needsLights&&Pi.lightsStateVersion!==Ua.state.version||Pi.outputColorSpace!==xi||vt.isBatchedMesh&&!1===Pi.batching||!vt.isBatchedMesh&&!0===Pi.batching||vt.isBatchedMesh&&!0===Pi.batchingColor&&null===vt.colorTexture||vt.isBatchedMesh&&!1===Pi.batchingColor&&null!==vt.colorTexture||vt.isInstancedMesh&&!1===Pi.instancing||!vt.isInstancedMesh&&!0===Pi.instancing||vt.isSkinnedMesh&&!1===Pi.skinning||!vt.isSkinnedMesh&&!0===Pi.skinning||vt.isInstancedMesh&&!0===Pi.instancingColor&&null===vt.instanceColor||vt.isInstancedMesh&&!1===Pi.instancingColor&&null!==vt.instanceColor||vt.isInstancedMesh&&!0===Pi.instancingMorph&&null===vt.morphTexture||vt.isInstancedMesh&&!1===Pi.instancingMorph&&null!==vt.morphTexture||Pi.envMap!==gi||!0===Bt.fog&&Pi.fog!==xn||void 0!==Pi.numClippingPlanes&&(Pi.numClippingPlanes!==ir.numPlanes||Pi.numIntersection!==ir.numIntersection)||Pi.vertexAlphas!==Wi||Pi.vertexTangents!==rr||Pi.morphTargets!==Ri||Pi.morphNormals!==to||Pi.morphColors!==jo||Pi.toneMapping!==vs||Pi.morphTargetsCount!==fo)&&(po=!0):(po=!0,Pi.__version=Bt.version);let qu=Pi.currentProgram;!0===po&&(qu=IP(Bt,ct,vt));let Px=!1,qc=!1,yV=!1;const js=qu.getUniforms(),_0=Pi.uniforms;if(_t.useProgram(qu.program)&&(Px=!0,qc=!0,yV=!0),Bt.id!==ie&&(ie=Bt.id,qc=!0),Px||W!==ye){js.setValue(de,"projectionMatrix",ye.projectionMatrix),js.setValue(de,"viewMatrix",ye.matrixWorldInverse);const Ld=js.map.cameraPosition;void 0!==Ld&&Ld.setValue(de,ae.setFromMatrixPosition(ye.matrixWorld)),Mt.logarithmicDepthBuffer&&js.setValue(de,"logDepthBufFC",2/(Math.log(ye.far+1)/Math.LN2)),(Bt.isMeshPhongMaterial||Bt.isMeshToonMaterial||Bt.isMeshLambertMaterial||Bt.isMeshBasicMaterial||Bt.isMeshStandardMaterial||Bt.isShaderMaterial)&&js.setValue(de,"isOrthographic",!0===ye.isOrthographicCamera),W!==ye&&(W=ye,qc=!0,yV=!0)}if(vt.isSkinnedMesh){js.setOptional(de,vt,"bindMatrix"),js.setOptional(de,vt,"bindMatrixInverse");const Ld=vt.skeleton;Ld&&(null===Ld.boneTexture&&Ld.computeBoneTexture(),js.setValue(de,"boneTexture",Ld.boneTexture,Se))}vt.isBatchedMesh&&(js.setOptional(de,vt,"batchingTexture"),js.setValue(de,"batchingTexture",vt._matricesTexture,Se),js.setOptional(de,vt,"batchingIdTexture"),js.setValue(de,"batchingIdTexture",vt._indirectTexture,Se),js.setOptional(de,vt,"batchingColorTexture"),null!==vt._colorsTexture&&js.setValue(de,"batchingColorTexture",vt._colorsTexture,Se));const wV=Dt.morphAttributes;if((void 0!==wV.position||void 0!==wV.normal||void 0!==wV.color)&&kr.update(vt,Dt,qu),(qc||Pi.receiveShadow!==vt.receiveShadow)&&(Pi.receiveShadow=vt.receiveShadow,js.setValue(de,"receiveShadow",vt.receiveShadow)),Bt.isMeshGouraudMaterial&&null!==Bt.envMap&&(_0.envMap.value=gi,_0.flipEnvMap.value=gi.isCubeTexture&&!1===gi.isRenderTargetTexture?-1:1),Bt.isMeshStandardMaterial&&null===Bt.envMap&&null!==ct.environment&&(_0.envMapIntensity.value=ct.environmentIntensity),qc&&(js.setValue(de,"toneMappingExposure",R.toneMappingExposure),Pi.needsLights&&function oEe(ye,ct){ye.ambientLightColor.needsUpdate=ct,ye.lightProbe.needsUpdate=ct,ye.directionalLights.needsUpdate=ct,ye.directionalLightShadows.needsUpdate=ct,ye.pointLights.needsUpdate=ct,ye.pointLightShadows.needsUpdate=ct,ye.spotLights.needsUpdate=ct,ye.spotLightShadows.needsUpdate=ct,ye.rectAreaLights.needsUpdate=ct,ye.hemisphereLights.needsUpdate=ct}(_0,yV),xn&&!0===Bt.fog&&Si.refreshFogUniforms(_0,xn),Si.refreshMaterialUniforms(_0,Bt,Oe,Ce,T.state.transmissionRenderTarget[ye.id]),vk.upload(de,CY(Pi),_0,Se)),Bt.isShaderMaterial&&!0===Bt.uniformsNeedUpdate&&(vk.upload(de,CY(Pi),_0,Se),Bt.uniformsNeedUpdate=!1),Bt.isSpriteMaterial&&js.setValue(de,"center",vt.center),js.setValue(de,"modelViewMatrix",vt.modelViewMatrix),js.setValue(de,"normalMatrix",vt.normalMatrix),js.setValue(de,"modelMatrix",vt.matrixWorld),Bt.isShaderMaterial||Bt.isRawShaderMaterial){const Ld=Bt.uniformsGroups;for(let xV=0,aEe=Ld.length;xV{function xn(){Bt.forEach(function(Zn){Pe.get(Zn).currentProgram.isReady()&&Bt.delete(Zn)}),0!==Bt.size?setTimeout(xn,10):vt(ye)}null!==Ze.get("KHR_parallel_shader_compile")?xn():setTimeout(xn,10)})};let ho=null;function bf(){gv.stop()}function vY(){gv.start()}const gv=new dQ;function vV(ye,ct,Dt,Bt){if(!1===ye.visible)return;if(ye.layers.test(ct.layers))if(ye.isGroup)Dt=ye.renderOrder;else if(ye.isLOD)!0===ye.autoUpdate&&ye.update(ct);else if(ye.isLight)T.pushLight(ye),ye.castShadow&&T.pushShadow(ye);else if(ye.isSprite){if(!ye.frustumCulled||Xn.intersectsSprite(ye)){Bt&&ut.setFromMatrixPosition(ye.matrixWorld).applyMatrix4(Ae);const Zn=Vt.update(ye),xi=ye.material;xi.visible&&D.push(ye,Zn,xi,Dt,ut.z,null)}}else if((ye.isMesh||ye.isLine||ye.isPoints)&&(!ye.frustumCulled||Xn.intersectsObject(ye))){const Zn=Vt.update(ye),xi=ye.material;if(Bt&&(void 0!==ye.boundingSphere?(null===ye.boundingSphere&&ye.computeBoundingSphere(),ut.copy(ye.boundingSphere.center)):(null===Zn.boundingSphere&&Zn.computeBoundingSphere(),ut.copy(Zn.boundingSphere.center)),ut.applyMatrix4(ye.matrixWorld).applyMatrix4(Ae)),Array.isArray(xi)){const gi=Zn.groups;for(let Wi=0,rr=gi.length;Wi0&&TP(vt,ct,Dt),xn.length>0&&TP(xn,ct,Dt),Zn.length>0&&TP(Zn,ct,Dt),_t.buffers.depth.setTest(!0),_t.buffers.depth.setMask(!0),_t.buffers.color.setMask(!0),_t.setPolygonOffset(!1)}function wY(ye,ct,Dt,Bt){if(null!==(!0===Dt.isScene?Dt.overrideMaterial:null))return;void 0===T.state.transmissionRenderTarget[Bt.id]&&(T.state.transmissionRenderTarget[Bt.id]=new Cl(1,1,{generateMipmaps:!0,type:Ze.has("EXT_color_buffer_half_float")||Ze.has("EXT_color_buffer_float")?xg:Tu,minFilter:Uh,samples:4,stencilBuffer:s,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:Nr.workingColorSpace}));const xn=T.state.transmissionRenderTarget[Bt.id],Zn=Bt.viewport||q;xn.setSize(Zn.z,Zn.w);const xi=R.getRenderTarget();R.setRenderTarget(xn),R.getClearColor(Ue),ce=R.getClearAlpha(),ce<1&&R.setClearColor(16777215,.5),R.clear(),lt&&Yn.render(Dt);const gi=R.toneMapping;R.toneMapping=Eu;const Wi=Bt.viewport;if(void 0!==Bt.viewport&&(Bt.viewport=void 0),T.setupLightsView(Bt),!0===Me&&ir.setGlobalState(R.clippingPlanes,Bt),TP(ye,Dt,Bt),Se.updateMultisampleRenderTarget(xn),Se.updateRenderTargetMipmap(xn),!1===Ze.has("WEBGL_multisampled_render_to_texture")){let rr=!1;for(let Ri=0,to=ct.length;Ri0)for(let Zn=0,xi=xn.length;Zn0&&wY(Bt,vt,ye,ct),lt&&Yn.render(ye),yY(D,ye,ct);null!==te&&(Se.updateMultisampleRenderTarget(te),Se.updateRenderTargetMipmap(te)),!0===ye.isScene&&ye.onAfterRender(R,ye,ct),Sr.resetDefaultState(),ie=-1,W=null,O.pop(),O.length>0?(T=O[O.length-1],!0===Me&&ir.setGlobalState(R.clippingPlanes,T.state.camera)):T=null,I.pop(),D=I.length>0?I[I.length-1]:null},this.getActiveCubeFace=function(){return ee},this.getActiveMipmapLevel=function(){return J},this.getRenderTarget=function(){return te},this.setRenderTargetTextures=function(ye,ct,Dt){Pe.get(ye.texture).__webglTexture=ct,Pe.get(ye.depthTexture).__webglTexture=Dt;const Bt=Pe.get(ye);Bt.__hasExternalTextures=!0,Bt.__autoAllocateDepthBuffer=void 0===Dt,Bt.__autoAllocateDepthBuffer||!0===Ze.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),Bt.__useRenderToTexture=!1)},this.setRenderTargetFramebuffer=function(ye,ct){const Dt=Pe.get(ye);Dt.__webglFramebuffer=ct,Dt.__useDefaultFramebuffer=void 0===ct},this.setRenderTarget=function(ye,ct=0,Dt=0){te=ye,ee=ct,J=Dt;let Bt=!0,vt=null,xn=!1,Zn=!1;if(ye){const gi=Pe.get(ye);if(void 0!==gi.__useDefaultFramebuffer)_t.bindFramebuffer(de.FRAMEBUFFER,null),Bt=!1;else if(void 0===gi.__webglFramebuffer)Se.setupRenderTarget(ye);else if(gi.__hasExternalTextures)Se.rebindTextures(ye,Pe.get(ye.texture).__webglTexture,Pe.get(ye.depthTexture).__webglTexture);else if(ye.depthBuffer){const Ri=ye.depthTexture;if(gi.__boundDepthTexture!==Ri){if(null!==Ri&&Pe.has(Ri)&&(ye.width!==Ri.image.width||ye.height!==Ri.image.height))throw new Error("WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.");Se.setupDepthRenderbuffer(ye)}}const Wi=ye.texture;(Wi.isData3DTexture||Wi.isDataArrayTexture||Wi.isCompressedArrayTexture)&&(Zn=!0);const rr=Pe.get(ye).__webglFramebuffer;ye.isWebGLCubeRenderTarget?(vt=Array.isArray(rr[ct])?rr[ct][Dt]:rr[ct],xn=!0):vt=ye.samples>0&&!1===Se.useMultisampledRTT(ye)?Pe.get(ye).__webglMultisampledFramebuffer:Array.isArray(rr)?rr[Dt]:rr,q.copy(ye.viewport),le.copy(ye.scissor),ke=ye.scissorTest}else q.copy(Et).multiplyScalar(Oe).floor(),le.copy(kt).multiplyScalar(Oe).floor(),ke=nn;if(_t.bindFramebuffer(de.FRAMEBUFFER,vt)&&Bt&&_t.drawBuffers(ye,vt),_t.viewport(q),_t.scissor(le),_t.setScissorTest(ke),xn){const gi=Pe.get(ye.texture);de.framebufferTexture2D(de.FRAMEBUFFER,de.COLOR_ATTACHMENT0,de.TEXTURE_CUBE_MAP_POSITIVE_X+ct,gi.__webglTexture,Dt)}else if(Zn){const gi=Pe.get(ye.texture);de.framebufferTextureLayer(de.FRAMEBUFFER,de.COLOR_ATTACHMENT0,gi.__webglTexture,Dt||0,ct||0)}ie=-1},this.readRenderTargetPixels=function(ye,ct,Dt,Bt,vt,xn,Zn){if(!ye||!ye.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let xi=Pe.get(ye).__webglFramebuffer;if(ye.isWebGLCubeRenderTarget&&void 0!==Zn&&(xi=xi[Zn]),xi){_t.bindFramebuffer(de.FRAMEBUFFER,xi);try{const gi=ye.texture,Wi=gi.format,rr=gi.type;if(!Mt.textureFormatReadable(Wi))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");if(!Mt.textureTypeReadable(rr))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");ct>=0&&ct<=ye.width-Bt&&Dt>=0&&Dt<=ye.height-vt&&de.readPixels(ct,Dt,Bt,vt,dr.convert(Wi),dr.convert(rr),xn)}finally{const gi=null!==te?Pe.get(te).__webglFramebuffer:null;_t.bindFramebuffer(de.FRAMEBUFFER,gi)}}},this.readRenderTargetPixelsAsync=function(){var ye=Cn(function*(ct,Dt,Bt,vt,xn,Zn,xi){if(!ct||!ct.isWebGLRenderTarget)throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let gi=Pe.get(ct).__webglFramebuffer;if(ct.isWebGLCubeRenderTarget&&void 0!==xi&&(gi=gi[xi]),gi){_t.bindFramebuffer(de.FRAMEBUFFER,gi);try{const Wi=ct.texture,rr=Wi.format,Ri=Wi.type;if(!Mt.textureFormatReadable(rr))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!Mt.textureTypeReadable(Ri))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(Dt>=0&&Dt<=ct.width-vt&&Bt>=0&&Bt<=ct.height-xn){const to=de.createBuffer();de.bindBuffer(de.PIXEL_PACK_BUFFER,to),de.bufferData(de.PIXEL_PACK_BUFFER,Zn.byteLength,de.STREAM_READ),de.readPixels(Dt,Bt,vt,xn,dr.convert(rr),dr.convert(Ri),0),de.flush();const jo=de.fenceSync(de.SYNC_GPU_COMMANDS_COMPLETE,0);yield function J9(n,t,e){return new Promise(function(i,r){setTimeout(function s(){switch(n.clientWaitSync(t,n.SYNC_FLUSH_COMMANDS_BIT,0)){case n.WAIT_FAILED:r();break;case n.TIMEOUT_EXPIRED:setTimeout(s,e);break;default:i()}},e)})}(de,jo,4);try{de.bindBuffer(de.PIXEL_PACK_BUFFER,to),de.getBufferSubData(de.PIXEL_PACK_BUFFER,0,Zn)}finally{de.deleteBuffer(to),de.deleteSync(jo)}return Zn}}finally{const Wi=null!==te?Pe.get(te).__webglFramebuffer:null;_t.bindFramebuffer(de.FRAMEBUFFER,Wi)}}});return function(ct,Dt,Bt,vt,xn,Zn,xi){return ye.apply(this,arguments)}}(),this.copyFramebufferToTexture=function(ye,ct=null,Dt=0){!0!==ye.isTexture&&(Ig("WebGLRenderer: copyFramebufferToTexture function signature has changed."),ct=arguments[0]||null,ye=arguments[1]);const Bt=Math.pow(2,-Dt),vt=Math.floor(ye.image.width*Bt),xn=Math.floor(ye.image.height*Bt),Zn=null!==ct?ct.x:0,xi=null!==ct?ct.y:0;Se.setTexture2D(ye,0),de.copyTexSubImage2D(de.TEXTURE_2D,Dt,0,0,Zn,xi,vt,xn),_t.unbindTexture()},this.copyTextureToTexture=function(ye,ct,Dt=null,Bt=null,vt=0){let xn,Zn,xi,gi,Wi,rr;!0!==ye.isTexture&&(Ig("WebGLRenderer: copyTextureToTexture function signature has changed."),Bt=arguments[0]||null,ye=arguments[1],ct=arguments[2],vt=arguments[3]||0,Dt=null),null!==Dt?(xn=Dt.max.x-Dt.min.x,Zn=Dt.max.y-Dt.min.y,xi=Dt.min.x,gi=Dt.min.y):(xn=ye.image.width,Zn=ye.image.height,xi=0,gi=0),null!==Bt?(Wi=Bt.x,rr=Bt.y):(Wi=0,rr=0);const Ri=dr.convert(ct.format),to=dr.convert(ct.type);Se.setTexture2D(ct,0),de.pixelStorei(de.UNPACK_FLIP_Y_WEBGL,ct.flipY),de.pixelStorei(de.UNPACK_PREMULTIPLY_ALPHA_WEBGL,ct.premultiplyAlpha),de.pixelStorei(de.UNPACK_ALIGNMENT,ct.unpackAlignment);const jo=de.getParameter(de.UNPACK_ROW_LENGTH),vs=de.getParameter(de.UNPACK_IMAGE_HEIGHT),$c=de.getParameter(de.UNPACK_SKIP_PIXELS),fo=de.getParameter(de.UNPACK_SKIP_ROWS),Pi=de.getParameter(de.UNPACK_SKIP_IMAGES),Ua=ye.isCompressedTexture?ye.mipmaps[vt]:ye.image;de.pixelStorei(de.UNPACK_ROW_LENGTH,Ua.width),de.pixelStorei(de.UNPACK_IMAGE_HEIGHT,Ua.height),de.pixelStorei(de.UNPACK_SKIP_PIXELS,xi),de.pixelStorei(de.UNPACK_SKIP_ROWS,gi),ye.isDataTexture?de.texSubImage2D(de.TEXTURE_2D,vt,Wi,rr,xn,Zn,Ri,to,Ua.data):ye.isCompressedTexture?de.compressedTexSubImage2D(de.TEXTURE_2D,vt,Wi,rr,Ua.width,Ua.height,Ri,Ua.data):de.texSubImage2D(de.TEXTURE_2D,vt,Wi,rr,xn,Zn,Ri,to,Ua),de.pixelStorei(de.UNPACK_ROW_LENGTH,jo),de.pixelStorei(de.UNPACK_IMAGE_HEIGHT,vs),de.pixelStorei(de.UNPACK_SKIP_PIXELS,$c),de.pixelStorei(de.UNPACK_SKIP_ROWS,fo),de.pixelStorei(de.UNPACK_SKIP_IMAGES,Pi),0===vt&&ct.generateMipmaps&&de.generateMipmap(de.TEXTURE_2D),_t.unbindTexture()},this.copyTextureToTexture3D=function(ye,ct,Dt=null,Bt=null,vt=0){let xn,Zn,xi,gi,Wi,rr,Ri,to,jo;!0!==ye.isTexture&&(Ig("WebGLRenderer: copyTextureToTexture3D function signature has changed."),Dt=arguments[0]||null,Bt=arguments[1]||null,ye=arguments[2],ct=arguments[3],vt=arguments[4]||0);const vs=ye.isCompressedTexture?ye.mipmaps[vt]:ye.image;null!==Dt?(xn=Dt.max.x-Dt.min.x,Zn=Dt.max.y-Dt.min.y,xi=Dt.max.z-Dt.min.z,gi=Dt.min.x,Wi=Dt.min.y,rr=Dt.min.z):(xn=vs.width,Zn=vs.height,xi=vs.depth,gi=0,Wi=0,rr=0),null!==Bt?(Ri=Bt.x,to=Bt.y,jo=Bt.z):(Ri=0,to=0,jo=0);const $c=dr.convert(ct.format),fo=dr.convert(ct.type);let Pi;if(ct.isData3DTexture)Se.setTexture3D(ct,0),Pi=de.TEXTURE_3D;else{if(!ct.isDataArrayTexture&&!ct.isCompressedArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");Se.setTexture2DArray(ct,0),Pi=de.TEXTURE_2D_ARRAY}de.pixelStorei(de.UNPACK_FLIP_Y_WEBGL,ct.flipY),de.pixelStorei(de.UNPACK_PREMULTIPLY_ALPHA_WEBGL,ct.premultiplyAlpha),de.pixelStorei(de.UNPACK_ALIGNMENT,ct.unpackAlignment);const Ua=de.getParameter(de.UNPACK_ROW_LENGTH),po=de.getParameter(de.UNPACK_IMAGE_HEIGHT),qu=de.getParameter(de.UNPACK_SKIP_PIXELS),Px=de.getParameter(de.UNPACK_SKIP_ROWS),qc=de.getParameter(de.UNPACK_SKIP_IMAGES);de.pixelStorei(de.UNPACK_ROW_LENGTH,vs.width),de.pixelStorei(de.UNPACK_IMAGE_HEIGHT,vs.height),de.pixelStorei(de.UNPACK_SKIP_PIXELS,gi),de.pixelStorei(de.UNPACK_SKIP_ROWS,Wi),de.pixelStorei(de.UNPACK_SKIP_IMAGES,rr),ye.isDataTexture||ye.isData3DTexture?de.texSubImage3D(Pi,vt,Ri,to,jo,xn,Zn,xi,$c,fo,vs.data):ct.isCompressedArrayTexture?de.compressedTexSubImage3D(Pi,vt,Ri,to,jo,xn,Zn,xi,$c,vs.data):de.texSubImage3D(Pi,vt,Ri,to,jo,xn,Zn,xi,$c,fo,vs),de.pixelStorei(de.UNPACK_ROW_LENGTH,Ua),de.pixelStorei(de.UNPACK_IMAGE_HEIGHT,po),de.pixelStorei(de.UNPACK_SKIP_PIXELS,qu),de.pixelStorei(de.UNPACK_SKIP_ROWS,Px),de.pixelStorei(de.UNPACK_SKIP_IMAGES,qc),0===vt&&ct.generateMipmaps&&de.generateMipmap(Pi),_t.unbindTexture()},this.initRenderTarget=function(ye){void 0===Pe.get(ye).__webglFramebuffer&&Se.setupRenderTarget(ye)},this.initTexture=function(ye){ye.isCubeTexture?Se.setTextureCube(ye,0):ye.isData3DTexture?Se.setTexture3D(ye,0):ye.isDataArrayTexture||ye.isCompressedArrayTexture?Se.setTexture2DArray(ye,0):Se.setTexture2D(ye,0),_t.unbindTexture()},this.resetState=function(){ee=0,J=0,te=null,_t.reset(),Sr.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return ka}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===rS?"display-p3":"srgb",e.unpackColorSpace=Nr.workingColorSpace===wb?"display-p3":"srgb"}}class wk extends ko{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 Dd,this.environmentIntensity=1,this.environmentRotation=new Dd,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 R5{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=fa()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}get updateRange(){return Ig("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,s=this.stride;rt.far||e.push({distance:f,point:wS.clone(),uv:Uc.getInterpolation(wS,xk,CS,Ck,QQ,O5,zQ,new At),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 Mk(n,t,e,i,r,s){zw.subVectors(n,e).addScalar(.5).multiply(i),void 0!==r?(xS.x=s*zw.x-r*zw.y,xS.y=r*zw.x+s*zw.y):xS.copy(zw),n.copy(t),n.x+=xS.x,n.y+=xS.y,n.applyMatrix4(HQ)}class Za extends Ka{constructor(t){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new _n(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 Dk=new pe,Bk=new pe,nz=new zi,IS=new Hp,kk=new Js,G5=new pe,iz=new pe;class Ou extends ko{constructor(t=new fi,e=new Za){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,s=e.count;r0){const r=e[i[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,l=r.length;si)return;G5.applyMatrix4(n.matrixWorld);const f=t.ray.origin.distanceTo(G5);return ft.far?void 0:{distance:f,point:iz.clone().applyMatrix4(n.matrixWorld),index:r,face:null,faceIndex:null,object:n}}const rz=new pe,oz=new pe;class jp extends Ou{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,s=e.count;r0)){f=r;break}f=r-1}if(r=f,i[r]===l)return r/(s-1);const m=i[r];return(r+(l-m)/(i[r+1]-m))/(s-1)}getTangent(t,e){let r=t-1e-4,s=t+1e-4;r<0&&(r=0),s>1&&(s=1);const l=this.getPoint(r),u=this.getPoint(s),f=e||(l.isVector2?new At:new pe);return f.copy(u).sub(l).normalize(),f}getTangentAt(t,e){const i=this.getUtoTmapping(t);return this.getTangent(i,e)}computeFrenetFrames(t,e){const i=new pe,r=[],s=[],l=[],u=new pe,f=new zi;for(let w=0;w<=t;w++)r[w]=this.getTangentAt(w/t,new pe);s[0]=new pe,l[0]=new pe;let p=Number.MAX_VALUE;const m=Math.abs(r[0].x),_=Math.abs(r[0].y),b=Math.abs(r[0].z);m<=p&&(p=m,i.set(1,0,0)),_<=p&&(p=_,i.set(0,1,0)),b<=p&&i.set(0,0,1),u.crossVectors(r[0],i).normalize(),s[0].crossVectors(r[0],u),l[0].crossVectors(r[0],s[0]);for(let w=1;w<=t;w++){if(s[w]=s[w-1].clone(),l[w]=l[w-1].clone(),u.crossVectors(r[w-1],r[w]),u.length()>Number.EPSILON){u.normalize();const F=Math.acos(is(r[w-1].dot(r[w]),-1,1));s[w].applyMatrix4(f.makeRotationAxis(u,F))}l[w].crossVectors(r[w],s[w])}if(!0===e){let w=Math.acos(is(s[0].dot(s[t]),-1,1));w/=t,r[0].dot(u.crossVectors(s[0],s[t]))>0&&(w=-w);for(let F=1;F<=t;F++)s[F].applyMatrix4(f.makeRotationAxis(r[F],w*F)),l[F].crossVectors(r[F],s[F])}return{tangents:r,normals:s,binormals:l}}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 q5 extends Jh{constructor(t=0,e=0,i=1,r=1,s=0,l=2*Math.PI,u=!1,f=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=i,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=l,this.aClockwise=u,this.aRotation=f}getPoint(t,e=new At){const i=e,r=2*Math.PI;let s=this.aEndAngle-this.aStartAngle;const l=Math.abs(s)r;)s-=r;sr.length-2?r.length-1:l+1],_=r[l>r.length-3?r.length-1:l+2];return i.set(cz(u,f.x,p.x,m.x,_.x),cz(u,f.y,p.y,m.y,_.y)),i}copy(t){super.copy(t),this.points=[];for(let e=0,i=t.points.length;e0?0:(Math.floor(Math.abs(u)/s)+1)*s:0===f&&u===s-1&&(u=s-2,f=1),this.closed||u>0?p=r[(u-1)%s]:(Nk.subVectors(r[0],r[1]).add(r[0]),p=Nk);const _=r[u%s],b=r[(u+1)%s];if(this.closed||u+2=i){const l=r[s]-i,u=this.curves[s],f=u.getLength();return u.getPointAt(0===f?0:1-l/f,e)}s++}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 _=p.getPoint(0);_.equals(this.currentPoint)||this.lineTo(_.x,_.y)}this.curves.push(p);const m=p.getPoint(1);return this.currentPoint.copy(m),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 BS extends fi{constructor(t=1,e=1,i=1,r=32,s=1,l=!1,u=0,f=2*Math.PI){super(),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:i,radialSegments:r,heightSegments:s,openEnded:l,thetaStart:u,thetaLength:f};const p=this;r=Math.floor(r),s=Math.floor(s);const m=[],_=[],b=[],w=[];let F=0;const D=[],T=i/2;let I=0;function R(P){const ee=F,J=new At,te=new pe;let ie=0;const W=!0===P?t:e,q=!0===P?1:-1;for(let ke=1;ke<=r;ke++)_.push(0,T*q,0),b.push(0,q,0),w.push(.5,.5),F++;const le=F;for(let ke=0;ke<=r;ke++){const ce=ke/r*f+u,ze=Math.cos(ce),Ce=Math.sin(ce);te.x=W*Ce,te.y=T*q,te.z=W*ze,_.push(te.x,te.y,te.z),b.push(0,q,0),J.x=.5*ze+.5,J.y=.5*Ce*q+.5,w.push(J.x,J.y),F++}for(let ke=0;ke0&&R(!0),e>0&&R(!1)),this.setIndex(m),this.setAttribute("position",new it(_,3)),this.setAttribute("normal",new it(b,3)),this.setAttribute("uv",new it(w,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new BS(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class Vg extends zb{constructor(t){super(t),this.uuid=fa(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let i=0,r=this.holes.length;i0)for(s=t;s=t;s-=i)l=bz(s,n[s],n[s+1],l);return l&&zk(l,l.next)&&(PS(l),l=l.next),l}function jb(n,t){if(!n)return n;t||(t=n);let i,e=n;do{if(i=!1,e.steiner||!zk(e,e.next)&&0!==rs(e.prev,e,e.next))e=e.next;else{if(PS(e),e=t=e.prev,e===e.next)break;i=!0}}while(i||e!==t);return t}function kS(n,t,e,i,r,s,l){if(!n)return;!l&&s&&function oie(n,t,e,i){let r=n;do{0===r.z&&(r.z=iU(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 sie(n){let t,e,i,r,s,l,u,f,p=1;do{for(e=n,n=null,s=null,l=0;e;){for(l++,i=e,u=0,t=0;t0||f>0&&i;)0!==u&&(0===f||!i||e.z<=i.z)?(r=e,e=e.nextZ,u--):(r=i,i=i.nextZ,f--),s?s.nextZ=r:n=r,r.prevZ=s,s=r;e=i}s.nextZ=null,p*=2}while(l>1)}(r)}(n,i,r,s);let f,p,u=n;for(;n.prev!==n.next;)if(f=n.prev,p=n.next,s?Yne(n,i,r,s):Kne(n))t.push(f.i/e|0),t.push(n.i/e|0),t.push(p.i/e|0),PS(n),n=p.next,u=p.next;else if((n=p)===u){l?1===l?kS(n=Zne(jb(n),t,e),t,e,i,r,s,2):2===l&&Jne(n,t,e,i,r,s):kS(jb(n),t,e,i,r,s,1);break}}function Kne(n){const t=n.prev,e=n,i=n.next;if(rs(t,e,i)>=0)return!1;const r=t.x,s=e.x,l=i.x,u=t.y,f=e.y,p=i.y,m=rs?r>l?r:l:s>l?s:l,w=u>f?u>p?u:p:f>p?f:p;let F=i.next;for(;F!==t;){if(F.x>=m&&F.x<=b&&F.y>=_&&F.y<=w&&jw(r,u,s,f,l,p,F.x,F.y)&&rs(F.prev,F,F.next)>=0)return!1;F=F.next}return!0}function Yne(n,t,e,i){const r=n.prev,s=n,l=n.next;if(rs(r,s,l)>=0)return!1;const u=r.x,f=s.x,p=l.x,m=r.y,_=s.y,b=l.y,w=uf?u>p?u:p:f>p?f:p,T=m>_?m>b?m:b:_>b?_:b,I=iU(w,F,t,e,i),O=iU(D,T,t,e,i);let R=n.prevZ,P=n.nextZ;for(;R&&R.z>=I&&P&&P.z<=O;){if(R.x>=w&&R.x<=D&&R.y>=F&&R.y<=T&&R!==r&&R!==l&&jw(u,m,f,_,p,b,R.x,R.y)&&rs(R.prev,R,R.next)>=0||(R=R.prevZ,P.x>=w&&P.x<=D&&P.y>=F&&P.y<=T&&P!==r&&P!==l&&jw(u,m,f,_,p,b,P.x,P.y)&&rs(P.prev,P,P.next)>=0))return!1;P=P.nextZ}for(;R&&R.z>=I;){if(R.x>=w&&R.x<=D&&R.y>=F&&R.y<=T&&R!==r&&R!==l&&jw(u,m,f,_,p,b,R.x,R.y)&&rs(R.prev,R,R.next)>=0)return!1;R=R.prevZ}for(;P&&P.z<=O;){if(P.x>=w&&P.x<=D&&P.y>=F&&P.y<=T&&P!==r&&P!==l&&jw(u,m,f,_,p,b,P.x,P.y)&&rs(P.prev,P,P.next)>=0)return!1;P=P.nextZ}return!0}function Zne(n,t,e){let i=n;do{const r=i.prev,s=i.next.next;!zk(r,s)&&gz(r,i,i.next,s)&&RS(r,s)&&RS(s,r)&&(t.push(r.i/e|0),t.push(i.i/e|0),t.push(s.i/e|0),PS(i),PS(i.next),i=n=s),i=i.next}while(i!==n);return jb(i)}function Jne(n,t,e,i,r,s){let l=n;do{let u=l.next.next;for(;u!==l.prev;){if(l.i!==u.i&&lie(l,u)){let f=_z(l,u);return l=jb(l,l.next),f=jb(f,f.next),kS(l,t,e,i,r,s,0),void kS(f,t,e,i,r,s,0)}u=u.next}l=l.next}while(l!==n)}function tie(n,t){return n.x-t.x}function nie(n,t){const e=function iie(n,t){let r,e=t,i=-1/0;const s=n.x,l=n.y;do{if(l<=e.y&&l>=e.next.y&&e.next.y!==e.y){const b=e.x+(l-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(b<=s&&b>i&&(i=b,r=e.x=e.x&&e.x>=f&&s!==e.x&&jw(lr.x||e.x===r.x&&rie(r,e)))&&(r=e,m=_)),e=e.next}while(e!==u);return r}(n,t);if(!e)return t;const i=_z(e,n);return jb(i,i.next),jb(e,e.next)}function rie(n,t){return rs(n.prev,n,t.prev)<0&&rs(t.next,n,n.next)<0}function iU(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 aie(n){let t=n,e=n;do{(t.x=(n-l)*(s-u)&&(n-l)*(i-u)>=(e-l)*(t-u)&&(e-l)*(s-u)>=(r-l)*(i-u)}function lie(n,t){return n.next.i!==t.i&&n.prev.i!==t.i&&!function cie(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&&gz(e,e.next,n,t))return!0;e=e.next}while(e!==n);return!1}(n,t)&&(RS(n,t)&&RS(t,n)&&function die(n,t){let e=n,i=!1;const r=(n.x+t.x)/2,s=(n.y+t.y)/2;do{e.y>s!=e.next.y>s&&e.next.y!==e.y&&r<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(i=!i),e=e.next}while(e!==n);return i}(n,t)&&(rs(n.prev,n,t.prev)||rs(n,t.prev,t))||zk(n,t)&&rs(n.prev,n,n.next)>0&&rs(t.prev,t,t.next)>0)}function rs(n,t,e){return(t.y-n.y)*(e.x-t.x)-(t.x-n.x)*(e.y-t.y)}function zk(n,t){return n.x===t.x&&n.y===t.y}function gz(n,t,e,i){const r=jk(rs(n,t,e)),s=jk(rs(n,t,i)),l=jk(rs(e,i,n)),u=jk(rs(e,i,t));return!!(r!==s&&l!==u||0===r&&Gk(n,e,t)||0===s&&Gk(n,i,t)||0===l&&Gk(e,n,i)||0===u&&Gk(e,t,i))}function Gk(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 jk(n){return n>0?1:n<0?-1:0}function RS(n,t){return rs(n.prev,n,n.next)<0?rs(n,t,n.next)>=0&&rs(n,n.prev,t)>=0:rs(n,t,n.prev)<0||rs(n,n.next,t)<0}function _z(n,t){const e=new rU(n.i,n.x,n.y),i=new rU(t.i,t.x,t.y),r=n.next,s=t.prev;return n.next=t,t.prev=n,e.next=r,r.prev=e,i.next=e,e.prev=i,s.next=i,i.prev=s,i}function bz(n,t,e,i){const r=new rU(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 PS(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 rU(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 ef{static area(t){const e=t.length;let i=0;for(let r=e-1,s=0;s80*e){u=p=n[0],f=m=n[1];for(let F=e;Fp&&(p=_),b>m&&(m=b);w=Math.max(p-u,m-f),w=0!==w?32767/w:0}return kS(s,l,e,u,f,w,0),l}(i,r);for(let f=0;f2&&n[t-1].equals(n[0])&&n.pop()}function yz(n,t){for(let e=0;eNumber.EPSILON){const Vt=Math.sqrt(Ct),jt=Math.sqrt(_e*_e+oe*oe),Si=wt.x-Se/Vt,Fn=wt.y+Pe/Vt,hn=((Ze.x-oe/jt-Si)*oe-(Ze.y+_e/jt-Fn)*_e)/(Pe*oe-Se*_e);Mt=Si+Pe*hn-de.x,_t=Fn+Se*hn-de.y;const Yn=Mt*Mt+_t*_t;if(Yn<=2)return new At(Mt,_t);Ft=Math.sqrt(Yn/2)}else{let Vt=!1;Pe>Number.EPSILON?_e>Number.EPSILON&&(Vt=!0):Pe<-Number.EPSILON?_e<-Number.EPSILON&&(Vt=!0):Math.sign(Se)===Math.sign(oe)&&(Vt=!0),Vt?(Mt=-Se,_t=Pe,Ft=Math.sqrt(Ct)):(Mt=Pe,_t=Se,Ft=Math.sqrt(Ct/2))}return new At(Mt/Ft,_t/Ft)}const ft=[];for(let de=0,wt=ce.length,Ze=wt-1,Mt=de+1;de=0;de--){const wt=de/T,Ze=w*Math.cos(wt*Math.PI/2),Mt=F*Math.sin(wt*Math.PI/2)+D;for(let _t=0,Ft=ce.length;_t=0;){const Mt=Ze;let _t=Ze-1;_t<0&&(_t=de.length-1);for(let Ft=0,Pe=m+2*T;Ft=s)break e;{const u=e[1];t=s)break t}l=i,i=0}}for(;i>>1;te;)--l;if(++l,0!==s||l!==r){s>=l&&(l=Math.max(l,1),s=l-1);const u=this.getValueSize();this.times=i.slice(s,l),this.values=this.values.slice(s*u,l*u)}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,s=i.length;0===s&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let l=null;for(let u=0;u!==s;u++){const f=i[u];if("number"==typeof f&&isNaN(f)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,u,f),t=!1;break}if(null!==l&&l>f){console.error("THREE.KeyframeTrack: Out of order keys.",this,u,f,l),t=!1;break}l=f}if(void 0!==r&&function Ez(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}(r))for(let u=0,f=r.length;u!==f;++u){const p=r[u];if(isNaN(p)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,u,p),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),i=this.getValueSize(),r=2302===this.getInterpolation(),s=t.length-1;let l=1;for(let u=1;u0){t[l]=t[s];for(let u=s*i,f=l*i,p=0;p!==i;++p)e[f+p]=e[u+p];++l}return l!==t.length?(this.times=t.slice(0,l),this.values=e.slice(0,l*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}}tf.prototype.TimeBufferType=Float32Array,tf.prototype.ValueBufferType=Float32Array,tf.prototype.DefaultInterpolation=2301;class qw extends tf{constructor(t,e,i){super(t,e,i)}}qw.prototype.ValueTypeName="bool",qw.prototype.ValueBufferType=Array,qw.prototype.DefaultInterpolation=2300,qw.prototype.InterpolantFactoryMethodLinear=void 0,qw.prototype.InterpolantFactoryMethodSmooth=void 0;(class Iz extends tf{}).prototype.ValueTypeName="color";(class Kk extends tf{}).prototype.ValueTypeName="number";class Sie extends Xk{constructor(t,e,i,r){super(t,e,i,r)}interpolate_(t,e,i,r){const s=this.resultBuffer,l=this.sampleValues,u=this.valueSize,f=(i-e)/(r-e);let p=t*u;for(let m=p+u;p!==m;p+=4)Pa.slerpFlat(s,0,l,p-u,l,p,f);return s}}class Yk extends tf{InterpolantFactoryMethodLinear(t){return new Sie(this.times,this.values,this.getValueSize(),t)}}Yk.prototype.ValueTypeName="quaternion",Yk.prototype.InterpolantFactoryMethodSmooth=void 0;class Ww extends tf{constructor(t,e,i){super(t,e,i)}}Ww.prototype.ValueTypeName="string",Ww.prototype.ValueBufferType=Array,Ww.prototype.DefaultInterpolation=2300,Ww.prototype.InterpolantFactoryMethodLinear=void 0,Ww.prototype.InterpolantFactoryMethodSmooth=void 0;(class Zk extends tf{}).prototype.ValueTypeName="vector";const Hg={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 Fz{constructor(t,e,i){const r=this;let f,s=!1,l=0,u=0;const p=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=i,this.itemStart=function(m){u++,!1===s&&void 0!==r.onStart&&r.onStart(m,l,u),s=!0},this.itemEnd=function(m){l++,void 0!==r.onProgress&&r.onProgress(m,l,u),l===u&&(s=!1,void 0!==r.onLoad&&r.onLoad())},this.itemError=function(m){void 0!==r.onError&&r.onError(m)},this.resolveURL=function(m){return f?f(m):m},this.setURLModifier=function(m){return f=m,this},this.addHandler=function(m,_){return p.push(m,_),this},this.removeHandler=function(m){const _=p.indexOf(m);return-1!==_&&p.splice(_,2),this},this.getHandler=function(m){for(let _=0,b=p.length;_{class n{constructor(e){this.manager=void 0!==e?e:Fie,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(e,i){const r=this;return new Promise(function(s,l){r.load(e,s,i,l)})}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 $p={};class Die extends Error{constructor(t,e){super(t),this.response=e}}class nf extends lc{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 s=Hg.get(t);if(void 0!==s)return this.manager.itemStart(t),setTimeout(()=>{e&&e(s),this.manager.itemEnd(t)},0),s;if(void 0!==$p[t])return void $p[t].push({onLoad:e,onProgress:i,onError:r});$p[t]=[],$p[t].push({onLoad:e,onProgress:i,onError:r});const l=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),u=this.mimeType,f=this.responseType;fetch(l).then(p=>{if(200===p.status||0===p.status){if(0===p.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||void 0===p.body||void 0===p.body.getReader)return p;const m=$p[t],_=p.body.getReader(),b=p.headers.get("X-File-Size")||p.headers.get("Content-Length"),w=b?parseInt(b):0,F=0!==w;let D=0;const T=new ReadableStream({start(I){!function O(){_.read().then(({done:R,value:P})=>{if(R)I.close();else{D+=P.byteLength;const ee=new ProgressEvent("progress",{lengthComputable:F,loaded:D,total:w});for(let J=0,te=m.length;J{I.error(R)})}()}});return new Response(T)}throw new Die(`fetch for "${p.url}" responded with ${p.status}: ${p.statusText}`,p)}).then(p=>{switch(f){case"arraybuffer":return p.arrayBuffer();case"blob":return p.blob();case"document":return p.text().then(m=>(new DOMParser).parseFromString(m,u));case"json":return p.json();default:if(void 0===u)return p.text();{const _=/charset="?([^;"\s]*)"?/i.exec(u),b=_&&_[1]?_[1].toLowerCase():void 0,w=new TextDecoder(b);return p.arrayBuffer().then(F=>w.decode(F))}}}).then(p=>{Hg.add(t,p);const m=$p[t];delete $p[t];for(let _=0,b=m.length;_{const m=$p[t];if(void 0===m)throw this.manager.itemError(t),p;delete $p[t];for(let _=0,b=m.length;_{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class qb extends ko{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new _n(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 pU=new zi,Dz=new pe,Bz=new pe;class AU{constructor(t){this.camera=t,this.intensity=1,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new At(512,512),this.map=null,this.mapPass=null,this.matrix=new zi,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new Ak,this._frameExtents=new At(1,1),this._viewportCount=1,this._viewports=[new Lr(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,i=this.matrix;Dz.setFromMatrixPosition(t.matrixWorld),e.position.copy(Dz),Bz.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(Bz),e.updateMatrixWorld(),pU.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(pU),i.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),i.multiply(pU)}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 Nie extends AU{constructor(){super(new gk(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class NS extends qb{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(ko.DEFAULT_UP),this.updateMatrix(),this.target=new ko,this.shadow=new Nie}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class gU extends qb{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class Vz{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Hz(),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=Hz();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Hz(){return(typeof performance>"u"?Date:performance).now()}const bU="\\[\\]\\.:\\/",Wie=new RegExp("["+bU+"]","g"),vU="[^"+bU+"]",Xie="[^"+bU.replace("\\.","")+"]",ere=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",vU)+/(WCOD+)?/.source.replace("WCOD",Xie)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",vU)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",vU)+"$"),tre=["material","materials","bones","map"];class nre{constructor(t,e,i){const r=i||zo.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_,s=i.length;r!==s;++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 zo=(()=>{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(Wie,"")}static parseTrackName(e){const i=ere.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]},s=r.nodeName&&r.nodeName.lastIndexOf(".");if(void 0!==s&&-1!==s){const l=r.nodeName.substring(s+1);-1!==tre.indexOf(l)&&(r.nodeName=r.nodeName.substring(0,s),r.objectName=l)}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(l){for(let u=0;u=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,Kz).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 a3=new Qs;class lre extends jp{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),s=new fi;s.setIndex(new x(i,1)),s.setAttribute("position",new x(r,3)),super(s,new Za({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&&a3.setFromObject(this.object),a3.isEmpty())return;const e=a3.min,i=a3.max,r=this.geometry.attributes.position,s=r.array;s[0]=i.x,s[1]=i.y,s[2]=i.z,s[3]=e.x,s[4]=i.y,s[5]=i.z,s[6]=e.x,s[7]=e.y,s[8]=i.z,s[9]=i.x,s[10]=e.y,s[11]=i.z,s[12]=i.x,s[13]=i.y,s[14]=e.z,s[15]=e.x,s[16]=i.y,s[17]=e.z,s[18]=e.x,s[19]=e.y,s[20]=e.z,s[21]=i.x,s[22]=e.y,s[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 rG=new pe;let l3,xU;class cre extends ko{constructor(t=new pe(0,0,1),e=new pe(0,0,0),i=1,r=16776960,s=.2*i,l=.2*s){super(),this.type="ArrowHelper",void 0===l3&&(l3=new fi,l3.setAttribute("position",new it([0,0,0,0,1,0],3)),xU=new BS(0,.5,1,5,1),xU.translate(0,-.5,0)),this.position.copy(e),this.line=new Ou(l3,new Za({color:r,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new cr(xU,new Xh({color:r,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(i,s,l)}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{rG.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(rG,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 dre extends jp{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 fi;r.setAttribute("position",new it(e,3)),r.setAttribute("color",new it([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),super(r,new Za({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(t,e,i){const r=new _n,s=this.geometry.attributes.color.array;return r.set(t),r.toArray(s,0),r.toArray(s,3),r.set(e),r.toArray(s,6),r.toArray(s,9),r.set(i),r.toArray(s,12),r.toArray(s,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class zg{constructor(){this.type="ShapePath",this.color=new _n,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new zb,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,s,l){return this.currentPath.bezierCurveTo(t,e,i,r,s,l),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t){function i(I,O){const R=O.length;let P=!1;for(let ee=R-1,J=0;JNumber.EPSILON){if(q<0&&(te=O[J],W=-W,ie=O[ee],q=-q),I.yie.y)continue;if(I.y===te.y){if(I.x===te.x)return!0}else{const le=q*(I.x-te.x)-W*(I.y-te.y);if(0===le)return!0;if(le<0)continue;P=!P}}else{if(I.y!==te.y)continue;if(ie.x<=I.x&&I.x<=te.x||te.x<=I.x&&I.x<=ie.x)return!0}}return P}const r=ef.isClockWise,s=this.subPaths;if(0===s.length)return[];let l,u,f;const p=[];if(1===s.length)return u=s[0],f=new Vg,f.curves=u.curves,p.push(f),p;let m=!r(s[0].getPoints());m=t?!m:m;const _=[],b=[];let D,T,w=[],F=0;b[F]=void 0,w[F]=[];for(let I=0,O=s.length;I1){let I=!1,O=0;for(let R=0,P=b.length;R0&&!1===I&&(w=_)}for(let I=0,O=b.length;In.appSettings,oG=sn(Ro,n=>n.screenshotToClipboardEnabled),MU=".png",sG="~",c3="_";function aG(n){return n.some(t=>t.selectedAs!==bt.None)}function d3(n){return n.filter(t=>t.selectedAs!==bt.None)}function Bd(n){return n.some(t=>t.selectedAs===bt.Reference)}function lG(n){return n.some(t=>t.selectedAs===bt.Partial)}function u3(n,t){return n.fileMeta.fileChecksum===t.fileMeta.fileChecksum}let rf=(()=>{class n{static{this.VIEW_ANGLE=45}static{this.NEAR=50}static{this.FAR=2e5}init(e,i){this.camera=new ea(n.VIEW_ANGLE,e/i,n.NEAR,n.FAR),this.setPosition(new pe(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=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var yre=v(3205),cG=v.n(yre);class dG{constructor(t,e,i){this.h=t,this.s=e,this.l=i}toHex(){return`#${cG().hsl.hex([this.h,this.s,this.l])}`}decreaseLightness(t){this.l-=t}getLightness(){return this.l}setLightness(t){this.l=t}toString(){return`hsl(${this.h}, ${this.s}%, ${this.l}%)`}}class Br{static{this.colorToVector3Map=new Map}static{this.colorToVector3ArrayMap=new Map}static{this.hexToNumberMap=new Map}static getVector3(t){let e=this.colorToVector3Map.get(t);return void 0===e&&(e=Br.colorToVector3(t),this.colorToVector3Map.set(t,e)),e}static getVector3Array(t){let e=this.colorToVector3ArrayMap.get(t);return void 0===e&&(e=Br.colorToVector3Array(t),this.colorToVector3ArrayMap.set(t,e)),e}static getNumber(t){let e=this.hexToNumberMap.get(t);return void 0===e&&(e=Br.convertHexToNumber(t),this.hexToNumberMap.set(t,e)),e}static convertHexToNumber(t){return+`0x${t.slice(1)}`}static convertNumberToHex(t){const e=t.toString(16);return`#${"0".repeat(6-e.length)}${e}`}static convertHexToRgba(t,e=1){return`rgba(${this.encodeHex(t).join(",")},${e})`}static convertHexToColorObject(t){const e=this.encodeHex(t);return new _n(...e)}static convertColorToHex(t){return[t.r,t.g,t.b].reduce((e,i)=>e+Math.round(i).toString(16).padStart(2,"0"),"#")}static hexToHSL(t){const e=cG().hex.hsl(t);return new dG(...e)}static colorToVector3(t){const e=Br.convertHexToNumber(t);return new pe((e>>16&255)/255,(e>>8&255)/255,(255&e)/255)}static colorToVector3Array(t){const e=Br.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 _n(e,i,r)}static gradient(t,e,i){const r=this.convertHexToColorObject(t),l=this.convertHexToColorObject(e).sub(r),u=[];for(let f=0;f<=i;f++){const p=l.clone().multiplyScalar(1/i*f),m=r.clone().add(p);u[f]=this.convertColorToHex(m)}return u}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+/=",l=(3&t)<<4|e>>4,u=(15&e)<<2|i>>6,f=63&i;return r.charAt(t>>2)+r.charAt(l)+r.charAt(u)+r.charAt(f)}static generatePixel(t){return`data:image/gif;base64,R0lGODlhAQABAPAA${t}/yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`}}function wre(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 xre(n,t,e,i,r){for(var l,s=n.children,u=-1,f=s.length,p=n.value&&(i-t)/n.value;++uO&&(O=p),J=T*T*ee,(R=Math.max(O/J,J/I))>P){T-=p;break}P=R}l.push(f={value:T,dice:w1?i:1)},e}((1+Math.sqrt(5))/2);function LS(){return 0}function US(n){return function(){return n}}function Tre(){var n=Sre,t=!1,e=1,i=1,r=[0],s=LS,l=LS,u=LS,f=LS,p=LS;function m(b){return b.x0=b.y0=0,b.x1=e,b.y1=i,b.eachBefore(_),r=[0],t&&b.eachBefore(wre),b}function _(b){var w=r[b.depth],F=b.x0+w,D=b.y0+w,T=b.x1-w,I=b.y1-w;Tn.dynamicSettings,Xw=sn(Hc,n=>n.searchPattern);function hG(n,t){return function Fre(n){return n.startsWith(`${Yr.rootPath}/`)}(t)?VS(n,t):t}function VS(n,t){const e=Yr.rootPath.length+1,i=t.length<=e?"":`/${t.slice(e)}`;return`${Yr.rootPath}/${n}${i}`}function EU(n,t){do{t=t.slice(0,t.lastIndexOf("/"));const e=n.get(t);if(e)return e}while(t!==Yr.rootPath&&t.length>0)}let fG=(()=>{class n{static{this.projectNameArray=[]}static{this.fileNameArray=[]}static{this.fileChecksumArray=[]}static{this.fileSizesSum=0}static calculateAggregationFile(e){const i=C(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(kc.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:Jy.f4.X,exportedFileSize:this.fileSizesSum},map:{name:Yr.rootName,type:Zo.FOLDER,children:[],attributes:{},path:Yr.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=VS(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=VS(e,r.path)),r.children&&this.updatePathOfAllChildren(e,r.children)}static resetVariables(){this.projectNameArray=[],this.fileNameArray=[],this.fileChecksumArray=[],this.fileSizesSum=0}}return n})();const HS=n=>n.fileSettings,sf=sn(HS,n=>n.blacklist);function pG(n,t){if(n===t||0===n.length&&0===t.length)return!0;if(Bd(n)!==Bd(t))return!1;const e=n.filter(s=>s.selectedAs!==bt.None).map(s=>s.file.fileMeta.fileName);let i=t.filter(s=>s.selectedAs!==bt.None).map(s=>s.file.fileMeta.fileName);return e.length===i.length&&e.reduce(function r(s,l){return!1!==s&&!!i.includes(l)&&(i=function Dre(n,t){const e=n.indexOf(t);return[...n.slice(0,e),...n.slice(e+1)]}(i,l),!0)},!0)}const Qc=dh(n=>ch(n,pG,pG))(yn,d3);function Bre(n,t){const e=new Map,i=new Set;for(const{file:s}of n)for(const{data:l}of lo(s.map))i.add(l.path);for(const s of n)for(const l of s.file.settings.fileSettings.edges)if(kre(l,i,t))for(const u of Object.keys(l.attributes))Pre(Rre(e,u),AG(n.length,s,l.fromNodeName),AG(n.length,s,l.toNodeName));const r=function Ore(n){const t=[];for(const[e,i]of n){const r=[];let s=0,l=Number.MAX_SAFE_INTEGER;for(const u of i.values()){const f=u.incoming+u.outgoing;r.push(f),f>s&&(s=f),f<=l&&(l=f)}t.push({name:e,values:r,maxValue:s,minValue:l})}return t}(e);return s1(r),{edgeMetricData:r,nodeEdgeMetricsMap:e}}function AG(n,t,e){return n>1?`/root/${t.file.fileMeta.fileName}${e.replace("/root","")}`:e}function kre(n,t,e){return!(!t.has(n.fromNodeName)||!t.has(n.toNodeName)||hu(n.fromNodeName,e,"exclude")||hu(n.toNodeName,e,"exclude"))}function Rre(n,t){let e=n.get(t);return e||(e=new Map,n.set(t,e)),e}function Pre(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 Aa=sn(Qc,sf,(n,t)=>({nodeMetricData:Bc(n,t),...Bre(n,t)})),Nre=sn(Aa,n=>n.edgeMetricData.map(t=>t.name));class Lre{static createCodeMapFromHashMap(t){let e;for(const[i,r]of t)i===Yr.rootPath?e=r:EU(t,i).children.push(r);return e}static getDeltaFile(t,e){const i=this.getDeltaNodesByPath(t.map,e.map),r=this.createCodeMapFromHashMap(i),s=this.getFileMetaData(t,e);return this.getNewCCFileWithDeltas(r,s)}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 lo(t))e.set(i.path,i);return e}static addExistingAndNewNodesToDeltaMap(t,e,i){for(const{data:r}of lo(e)){const s=t.get(r.path);if(s){(s.children||r.children)&&(s.children=[]);const{deltaList:u,differenceExists:f}=this.compareAttributeValues(s.attributes,r.attributes);s.deltas=u;const p=f?1:0;s.attributes=r.attributes,s.fileCount={added:0,removed:0,changed:p}}else r.children&&(r.children=[]),r.deltas={...r.attributes},r.fileCount={added:r.type===Zo.FILE?1:0,removed:0,changed:0};const l=s??r;i.set(l.path,l),t.delete(l.path)}}static addDeletedNodesToDeltaMap(t,e){for(const i of t.values()){i.children&&(i.children=[]),i.deltas={},i.fileCount={added:0,removed:i.type===Zo.FILE?1:0,changed:0};for(const[r,s]of Object.entries(i.attributes))i.deltas[r]=-s,i.attributes[r]=0;e.set(i.path,i)}}static compareAttributeValues(t,e){const i={};let r=!1;const s=new Set(Object.keys(t));for(const l of Object.keys(e))s.add(l);for(const l of s){const u=t[l]??0,f=e[l]??0;u!==f&&(r=!0),i[l]=f-u}return{deltaList:i,differenceExists:r}}static getFileMetaData(t,e){return{fileName:`delta_between_${kc.withoutCCExtension(t.fileMeta.fileName)}_and_${kc.withoutCCExtension(e.fileMeta.fileName)}`,fileChecksum:`${t.fileMeta.fileChecksum};${e.fileMeta.fileChecksum}`,apiVersion:Jy.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 Vre=(n,t,e)=>{const i=new Map;for(const r of e){const s=n.get(r);s&&i.set(r,s.get(t.data.path))}return i},SU=sn(HS,n=>n.attributeTypes),mG=Object.freeze({unifiedMapNode:void 0,unifiedFileMeta:void 0}),kd=sn(Aa,Qc,SU,sf,Nre,(n,t,e,i,r)=>{if(!aG(t)||!n.nodeMetricData)return mG;const s=Qre(C(t));return s?.map?(mp.decorateMap(s.map,n,i),((n,t,e)=>{if(0!==e.length)for(const i of lo(t))if(Po(i)){const r=Vre(n,i,e);for(const[s,l]of r)i.data.edgeAttributes[s]=l}})(n.nodeEdgeMetricsMap,s.map,r),mp.decorateParentNodesWithAggregatedAttributes(s.map,Bd(t),e),{unifiedMapNode:s.map,unifiedFileMeta:s.fileMeta}):mG}),Qre=n=>{if(lG(n))return fG.calculateAggregationFile(n);if(Bd(n)){const[t,e]=n;return e&&t.file.map.name!==e.file.map.name?fG.calculateAggregationFile(n):(n=>{if(2===n.length){let[t,e]=n;if(t.selectedAs!==bt.Reference){const i=e;e=t,t=i}return Lre.getDeltaFile(t.file,e.file)}return n[0].file})(n)}},gG=sn(kd,Xw,(n,t)=>function Ire(n,t){if(0===(t=t.trimStart()).length||!n)return[];const e=nF(t),i=[];for(const{data:r}of lo(n))e.ignoredNodePaths.ignores(Vm(r.path))===e.condition&&i.push(r);return i}(n.unifiedMapNode,t)),TU=sn(gG,n=>new Set(n.map(t=>t.path))),IU={getColorByTrueGradient(n,t,e,i){const r=(t.from+t.to)/2,s=Br.convertHexToColorObject(n.neutral);if(i<=r){const f=i/r,p=Br.convertHexToColorObject(n.positive);return Br.convertColorToHex((new _n).lerpColors(p,s,f))}const l=(i-r)/(e.maxValue-r),u=Br.convertHexToColorObject(n.negative);return Br.convertColorToHex((new _n).lerpColors(s,u,l))},getColorByFocusedGradient(n,t,e,i){const r=(t.from+t.to)/2,s=Br.convertHexToColorObject(n.neutral);if(i=t.to&&t.to!==e.maxValue)return n.negative;if(i===r)return n.neutral;if(in.colorMetric),qp=sn(Aa,Gg,(n,t)=>{const e=n.nodeMetricData.find(i=>i.name===t);return{values:e?.values??[],minValue:e?.minValue??0,maxValue:e?.maxValue??0}}),Ds=250;function yG(n,t,e,i){const r=H_(n.files);if(i)return 2;let s=t.attributes[n.dynamicSettings.heightMetric]||0;s*=r;const l=n.dynamicSettings.heightMetric;return 1===n.fileSettings.attributeDescriptors[l]?.direction?n.appSettings.invertHeight?s:e-s:n.appSettings.invertHeight?e-s:s}function wG(n,t,e,i){const r=e.deltas?.[i.dynamicSettings.heightMetric]?0:2;return Math.max(Math.abs(t*n),r)}function DU(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 f3(n,t,e,i,r){return n>e?new pe(i.x-r+n/4,i.y+t,i.z-r+e/2):new pe(i.x-r+n/2,i.y+t,i.z-r+e/4)}function xG(n,t,e,i,r){return n>e?new pe(i.x-r+.75*n,i.y+t,i.z-r+e/2):new pe(i.x-r+n/2,i.y+t,i.z-r+.75*e)}function p3(n,t){if(n.isFlattened)return!0;const e=TU(t);return e&&t.dynamicSettings.searchPattern?.length>0?0===e.size||function qre(n,t){return!TU(t).has(n.path)}(n,t):!(!t.appSettings.showOnlyBuildingsWithEdges||!t.fileSettings.edges.some(i=>i.visible))&&function $re(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 BU(n,{appSettings:t,dynamicSettings:e},i,r,s){const{mapColors:l}=t;if(r)return l.base;const u=n.attributes[e.colorMetric];if(void 0===u)return l.base;if(s)return l.flat;const{colorRange:f,colorMode:p}=e;return"unary"===e.colorMetric?l.positive:p===jl.absolute?u0)for(const i of n.children)e+=vG(i,t);return e},buildNodeFrom:function jre(n,t,e,i,r){const s=H_(i.files),{x0:l,x1:u,y0:f,y1:p,data:m}=n,_=Po(n),b=p3(m,i),w=yG(i,m,e,b),F=m.path.split("/").length-2,D=_?wG(w,t,m,i)*s:2,T=u-l,I=p-f,O=2*n.depth,R=(m.deltas?.[i.dynamicSettings.heightMetric]??0)*t*s,P=D+(R<0?Math.abs(R):0);return{name:m.name,id:m.id,width:T,height:D,length:I,depth:F,mapNodeDepth:n.depth,x0:l,z0:O,y0:f,isLeaf:_,attributes:m.attributes,edgeAttributes:m.edgeAttributes,deltas:m.deltas,heightDelta:R,visible:DU(m,_,i,b),path:m.path,link:m.link,markingColor:t1(m,i.fileSettings.markedPackages),flat:b,color:BU(m,i,qp(i),r,b),incomingEdgePoint:f3(T,P,I,new pe(l,O,f),Ds),outgoingEdgePoint:xG(T,P,I,new pe(l,O,f),Ds)}},isNodeFlat:p3,resolveHeightValue:wG,getHeightValue:yG,FOLDER_HEIGHT:2,MIN_BUILDING_HEIGHT:2,HEIGHT_VALUE_WHEN_METRIC_NOT_FOUND:0},CG=.4,MG=120,EG=95,Wre=.035,Xre=.028,kU=3;function SG(n,t,e,i,r,s,l,u,f,p,m){const _=[];for(const b of n.children){const w=b.data.fixedPosition,F=IG(b.data,t,m,f);for(const D of F.treeMap.descendants()){const T=w.width/F.width,I=w.height/F.height;D.x0=(D.x0*T+w.left)*i,D.x1=(D.x1*T+w.left)*i,D.y0=(D.y0*I+w.top)*e,D.y1=(D.y1*I+w.top)*e,D.x0+=r,D.x1+=r,D.y0+=s,D.y1+=s;const O=Ja.buildNodeFrom(D,l,u,t,p);if(_.push(O),TG(b.data)){Array.prototype.push.apply(_,SG(b,t,O.length/100,O.width/100,D.x0,D.y0,l,u,f,p,m));break}}}return _}function TG(n){return!!n.children[0]?.fixedPosition}function IG(n,t,e,i){const r=lo(n),s=FG(r),{enableFloorLabels:l,experimentalFeaturesEnabled:u}=t.appSettings,{margin:f}=t.dynamicSettings,p=f*CG*e;let m,_;void 0!==n.fixedPosition?(m=n.fixedPosition.width,_=n.fixedPosition.height):(m=2*Ds,_=2*Ds);let b=0;r.eachAfter(I=>{!Po(I)&&l&&(0===I.depth&&(b+=MG),I.depth>0&&I.depth{if(!D&&null===I.parent&&(D=I),D&&l){if(0===I.depth)return Math.max((D.x1-D.x0)*Wre,MG);if(I.depth>0&&I.depthfunction Jre(n,{dynamicSettings:t,appSettings:e,fileSettings:i},r,s){if(n.isExcluded)return 0;if(n.deltas&&function Zre(n,t){return 0===n.attributes[t.areaMetric]&&n.deltas[t.heightMetric]<0}(n,t))return Math.abs(n.deltas[t.areaMetric]);if(Po(n)&&n.attributes?.[t.areaMetric]){const l=t.areaMetric;return 1===i.attributeDescriptors[l]?.direction?e.invertArea?n.attributes[t.areaMetric]:r-n.attributes[t.areaMetric]:e.invertArea?r-n.attributes[t.areaMetric]:n.attributes[t.areaMetric]}return s?.5:0}(I,t,i,u)*e)),height:F,width:w}}function FG(n){let t=0,e=0;return n.each(({data:i})=>{(i.isExcluded||i.isFlattened)&&e++,t++}),2*Math.sqrt(t-e)}class QS{static getMapResolutionScaling(t){const{width:e}=document.getElementById("codeMapScene"),i=QS.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,s=t),i.width=r,i.height=s;const l=i.getContext("2d");return l.fillStyle="white",l.textAlign="center",l.textBaseline="middle",{textCanvas:i,context:l}}writeLabelsOnCanvas(t,e,i){const{width:r,length:s}=this.rootNode;for(const l of e){let u=0===l.depth?Math.max(Math.floor(.03*r),120):Math.max(Math.floor(.023*r),95);u*=i,t.font=`${u}px Arial`;const f=Kw.getLabelAndSetContextFont(l,t,i,u);t.fillText(f.labelText,(s-l.y0-l.length/2)*i,(l.x0+l.width)*i-f.fontSize/2)}}drawLevelPlaneGeometry(t,e,i,r,s){const l=new One(t);l.wrapS=Bp,l.wrapT=Bp,l.repeat.x=-1,l.needsUpdate=!0,l.rotation=90*Math.PI/180;const u=new Pw(e,i),f=new Xh({side:1,map:l,transparent:!0}),p=new cr(u,f);p.rotateX(90*Math.PI/180),u.translate(e/2,i/2,-this.folderGeometryHeight*this.scaling.y*(r+1)-2),p.scale.set(this.scaling.x/s,this.scaling.z/s,1),p.position.set(-this.mapSize*this.scaling.x,0,-this.mapSize*this.scaling.z),this.floorLabelPlanes.push(p),this.floorLabelPlaneLevel.set(p,r)}static getLabelAndSetContextFont(t,e,i,r){const s=t.name,l=t.length*i;e.font=`${r}px Arial`;const u=e.measureText(s),f=Kw.getFontScaleFactor(l,u.width);return f<=.5?(r*=.5,r=Math.floor(Math.min(r,t.width*i)),e.font=`${r}px Arial`,{labelText:Kw.getFittingLabelText(e,l,s),fontSize:r}):(r=Math.floor(Math.min(r*f,t.width*i)),e.font=`${r}px Arial`,{labelText:s,fontSize:r})}static getFontScaleFactor(t,e){return e=e&&s>1;)s-=1,l=`${i.slice(0,s)}\u2026`;return l}}const RU=bn("SET_SELECTED_BUILDING_ID",{_as:"props",_p:void 0}),Yw=sn(kd,n=>{if(!n.unifiedMapNode)return new Map;const t=new Map([[n.unifiedMapNode.id,n.unifiedMapNode]]);for(const{data:e}of lo(n.unifiedMapNode))t.set(e.id,e);return t}),Zw=sn(Ro,n=>n.mapColors),Wp=bn("SET_MAP_COLORS",{_as:"props",_p:void 0}),A3=bn("INVERT_COLOR_RANGE"),m3=bn("INVERT_DELTA_COLORS"),xr=n=>(t,e)=>void 0===e.value?n:e.value,g3=n=>(t,e)=>void 0===e.value?n:{...t,...e.value},af={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}},eoe=Fi(af,vn(Wp,g3(af)),vn(A3,n=>({...n,positive:n.negative,negative:n.positive})),vn(m3,n=>({...n,positiveDelta:n.negativeDelta,negativeDelta:n.positiveDelta})));class PU{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 zS=(()=>{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=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();class _3{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 toe=new gk(-1,1,1,-1,0,1),ioe=new class noe extends fi{constructor(){super(),this.setAttribute("position",new it([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new it([0,2,0,0,2,0],2))}};class roe{constructor(t){this._mesh=new cr(ioe,t)}dispose(){this._mesh.geometry.dispose()}render(t){t.render(this._mesh,toe)}get material(){return this._mesh.material}set material(t){this._mesh.material=t}}class ooe extends _3{constructor(t,e,i=null,r=null,s=null){super(),this.scene=t,this.camera=e,this.overrideMaterial=i,this.clearColor=r,this.clearAlpha=s,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new _n}render(t,e,i){const r=t.autoClear;let s,l;t.autoClear=!1,null!==this.overrideMaterial&&(l=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),null!==this.clearColor&&(t.getClearColor(this._oldClearColor),t.setClearColor(this.clearColor,t.getClearAlpha())),null!==this.clearAlpha&&(s=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(s),null!==this.overrideMaterial&&(this.scene.overrideMaterial=l),t.autoClear=r}}const aoe=class soe{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 s=document.createElement("div");return s.id="webglmessage",s.style.fontFamily="monospace",s.style.fontSize="13px",s.style.fontWeight="normal",s.style.textAlign="center",s.style.background="#fff",s.style.color="#000",s.style.padding="1.5em",s.style.width="400px",s.style.margin="5em auto 0",r=r.replace("$0",i[t]?"graphics card":"browser"),r=r.replace("$1",{1:"WebGL",2:"WebGL 2"}[t]),s.innerHTML=r,s}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 DG extends _3{constructor(t,e){super(),this.textureID=void 0!==e?e:"tDiffuse",t instanceof sc?(this.uniforms=t.uniforms,this.material=t):t&&(this.uniforms=_5.clone(t.uniforms),this.material=new sc({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 roe(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 OU extends _3{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(),s=t.state;let l,u;s.buffers.color.setMask(!1),s.buffers.depth.setMask(!1),s.buffers.color.setLocked(!0),s.buffers.depth.setLocked(!0),this.inverse?(l=0,u=1):(l=1,u=0),s.buffers.stencil.setTest(!0),s.buffers.stencil.setOp(r.REPLACE,r.REPLACE,r.REPLACE),s.buffers.stencil.setFunc(r.ALWAYS,l,4294967295),s.buffers.stencil.setClear(u),s.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),s.buffers.color.setLocked(!1),s.buffers.depth.setLocked(!1),s.buffers.color.setMask(!0),s.buffers.depth.setMask(!0),s.buffers.stencil.setLocked(!1),s.buffers.stencil.setFunc(r.EQUAL,1,4294967295),s.buffers.stencil.setOp(r.KEEP,r.KEEP,r.KEEP),s.buffers.stencil.setLocked(!0)}}class BG extends _3{constructor(){super(),this.needsSwap=!1}render(t){t.state.buffers.stencil.setLocked(!1),t.state.buffers.stencil.setTest(!1)}}const loe={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 coe{constructor(t,e){if(this.renderer=t,this._pixelRatio=t.getPixelRatio(),void 0===e){const i=t.getSize(new At);this._width=i.width,this._height=i.height,(e=new Cl(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:xg})).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 DG(loe),this.copyPass.material.blending=0,this.clock=new Vz}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 doe{constructor(){this.vertexShader=v(889),this.fragmentShader=v(6655),this.uniforms={tDiffuse:{value:null},resolution:{value:new At(1/1024,1/512)}}}}class Cr{static{this.BACKGROUND_COLOR={white:16777215,normal:16053483}}static{this.CLEAR_COLOR=Cr.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=>{Cr.CLEAR_COLOR=i?Cr.BACKGROUND_COLOR.white:Cr.BACKGROUND_COLOR.normal,this.renderer?.setClearColor(Cr.CLEAR_COLOR,Cr.CLEAR_ALPHA)},this.initGL=(i,r)=>{if(this.setGLOptions(),this.renderer=new D5(Cr.RENDER_OPTIONS),Cr.setPixelRatio&&this.renderer.setPixelRatio(window.devicePixelRatio),Cr.enableFXAA)if(aoe.isWebGL2Available){const s=this.renderer.getDrawingBufferSize(new At),l=new Cl(s.width,s.height,{format:Ba});this.composer=new kG(this.renderer,l)}else this.composer=new kG(this.renderer);this.renderer.setSize(i,r),this.renderer.domElement.id="codeMapScene",Cr.enableFXAA&&this.initComposer()},this.setGLOptions=()=>{switch(this.state.getValue().appSettings.sharpnessMode){case fd.Standard:Cr.RENDER_OPTIONS.antialias=!0,Cr.enableFXAA=!1,Cr.setPixelRatio=!1;break;case fd.PixelRatioNoAA:Cr.RENDER_OPTIONS.antialias=!1,Cr.enableFXAA=!1,Cr.setPixelRatio=!0;break;case fd.PixelRatioFXAA:Cr.RENDER_OPTIONS.antialias=!1,Cr.enableFXAA=!0,Cr.setPixelRatio=!0;break;case fd.PixelRatioAA:Cr.RENDER_OPTIONS.antialias=!0,Cr.enableFXAA=!1,Cr.setPixelRatio=!0}},this.initComposer=()=>{const i=this.renderer.getPixelRatio();this.composer.setSize(window.innerWidth*i,window.innerHeight*i);const r=new ooe(this.scene,this.camera);this.composer.addPass(r);const s=new DG(new doe);s.renderToScreen=!1,s.uniforms.resolution.value.x=1/(window.innerWidth*i),s.uniforms.resolution.value.y=1/(window.innerHeight*i),this.composer.addPass(s)},this.getInfo=()=>Cr.enableFXAA?this.composer.getInfo():this.renderer.info.render,this.getMemoryInfo=()=>Cr.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(RG).subscribe(this.setBackgroundColorToState)}render(){const{scene:t,camera:e,composer:i,renderer:r}=this;Cr.enableFXAA?i?.render():r?.render(t,e)}static{this.\u0275fac=function(e){return new(e||Cr)(o.KVO(Yt),o.KVO(Vi))}}static{this.\u0275prov=o.jDH({token:Cr,factory:Cr.\u0275fac,providedIn:"root"})}}let Rd=(()=>{class n{constructor(e,i,r,s){this.store=e,this.state=i,this.idToBuilding=r,this.threeRendererService=s,this.eventEmitter=new PU,this.selected=null,this.highlighted=[],this.constantHighlight=new Map,this.folderLabelColorHighlighted=Br.convertHexToNumber("#FFFFFF"),this.folderLabelColorNotHighlighted=Br.convertHexToNumber("#7A7777"),this.rayPoint=new pe(0,0,0),this.normedTransformVector=new pe(0,0,0),this.highlightedLabel=null,this.highlightedLineIndex=-1,this.highlightedLine=null,this.subscription=this.store.select(Zw).subscribe(l=>{this.folderLabelColorSelected=l.selected,this.numberSelectionColor=Br.convertHexToNumber(this.folderLabelColorSelected)}),this.scene=new wk,this.mapGeometry=new ac,this.lights=new ac,this.labels=new ac,this.floorLabelPlanes=new ac,this.edgeArrows=new ac,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!==ja.SquarifiedTreeMap||!r)return;const s=this.getRootNode(e);if(!s)return;const l=this.state.getValue().appSettings.scaling,u=this.state.getValue().appSettings.experimentalFeaturesEnabled,f=new pe(l.x,l.y,l.z);this.floorLabelDrawer=new Kw(this.mapMesh.getNodes(),s,Ds,f,u);const p=this.floorLabelDrawer.draw(this.state.getValue());p.length>0&&(this.floorLabelPlanes.add(...p),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(-Ds*e.x,0,-Ds*e.z),this.mapMesh.setScale(e)}highlightMaterial(e){const i=new Set(this.highlighted.map(({node:s})=>s.id)),r=new Set;for(const{node:s}of this.constantHighlight.values())r.add(s.id);for(const s of e){const l=s.userData.id;this.selected&&l===this.selected.node.id?s.color.setHex(this.numberSelectionColor):i.has(l)||r.has(l)?s.color.setHex(this.folderLabelColorHighlighted):s.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(RU({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 pe,this.rayPoint.subVectors(i.ray.origin,e.position);const s=Math.sqrt(this.rayPoint.x**2+this.rayPoint.y**2+this.rayPoint.z**2);this.normedTransformVector=new pe(this.rayPoint.x/s,this.rayPoint.y/s,this.rayPoint.z/s);const u=this.calculateMaxDistance(e,r,i.ray.origin);this.normedTransformVector.multiplyScalar(u),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=af.labelColorAndAlpha.alpha,this.highlightedLine&&this.toggleLineAnimation(this.highlightedLabel),this.highlightedLabel=null)}getHoveredLabelLineIndex(e,i){const r=e.findIndex(({uuid:s})=>s===i.uuid);if(r>=0)return r+1}toggleLineAnimation(e){const i=new pe(e.position.x,e.position.y,e.position.z),s=[...this.highlightedLine.geometry.attributes.position.array],l=(new fi).setFromPoints([new pe(s[0],s[1],s[2]),i]),u=new Ou(l,this.highlightedLine.material);this.labels.children.splice(this.highlightedLineIndex,1,u)}getLabelForHoveredNode(e,i){for(let r=0;r=i.min[r]&&i.max[r]>=e.min[r])}getIntersectionDistanceFunction(e,i){return r=>{const s=this.normedTransformVector.clone();s.multiplyScalar(r),e.translate(s);const l=this.isOverlapping(i,e,"x")+this.isOverlapping(i,e,"y");return 2===l||1===l&&this.isOverlapping(i,e,"z")?r:0}}calculateMaxDistance(e,i,r){const s=(new Qs).setFromObject(e),l=new pe;s.getCenter(l);const u=r.distanceTo(l);let f=u/20;for(let p=0;p0&&this.clearHighlight()}clearSelection(){this.selected&&(this.getMapMesh().clearSelection(this.selected),this.store.dispatch(RU({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 gU(7368816),i=new NS(14737632,1.5);i.position.set(50,10,8).normalize();const r=new NS(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=-Ds,this.mapGeometry.position.y=0,this.mapGeometry.position.z=-Ds,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)(o.KVO(Yt),o.KVO(Vi),o.KVO(zS),o.KVO(Cr))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function uoe(n,t){if(1&n){const e=o.RV6();o.j41(0,"cc-action-icon",2),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.makeScreenshotToClipboard())}),o.k0s()}if(2&n){const e=o.XpG();o.AVh("disabled",!e.isWriteToClipboardAllowed),o.FS9("title",e.TITLE_CLIPBOARD_BUTTON),o.Y8G("icon","fa fa-camera")}}function hoe(n,t){if(1&n){const e=o.RV6();o.j41(0,"cc-action-icon",2),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.makeScreenshotToFile())}),o.k0s()}if(2&n){const e=o.XpG();o.FS9("title",e.TITLE_FILE_BUTTON),o.Y8G("icon","fa fa-camera")}}let foe=(()=>{class n{constructor(e,i,r,s,l){this.threeCameraService=e,this.threeSceneService=i,this.threeRendererService=r,this.store=s,this.state=l,this.SCREENSHOT_HOTKEY_TO_FILE="Ctrl+Alt+S",this.SCREENSHOT_HOTKEY_TO_CLIPBOARD="Ctrl+Alt+F",this.isScreenshotToClipboardEnabled$=this.store.select(oG)}ngOnInit(){this.isWriteToClipboardAllowed=function fre(){return"clipboard"in navigator&&"write"in navigator.clipboard}(),this.TITLE_CLIPBOARD_BUTTON=this.createTitleClipboardButton(),this.TITLE_FILE_BUTTON=this.createTitleFileButton(),Sd(this.SCREENSHOT_HOTKEY_TO_FILE,()=>{this.makeScreenshotToFile()}),Sd(this.SCREENSHOT_HOTKEY_TO_CLIPBOARD,()=>{this.makeScreenshotToClipboard()})}makeScreenshotToFile(){var e=this;return Cn(function*(){const i=e.threeRendererService.renderer,r=e.saveRenderSettings(i),s=yield e.buildScreenShotCanvas(i);e.downloadScreenshot(s,e.state.getValue().files),e.applyRenderSettings(i,r)})()}makeScreenshotToClipboard(){var e=this;return Cn(function*(){if(!e.isWriteToClipboardAllowed)return;const i=e.threeRendererService.renderer,r=e.saveRenderSettings(i),s=yield e.buildScreenShotCanvas(i),l=new Promise(f=>s.toBlob(f));e.applyRenderSettings(i,r);const u=yield l;yield function hre(n){return CU.apply(this,arguments)}(u)})()}downloadScreenshot(e,i){const r=e.toDataURL("image/png"),s=document.createElement("a");s.download=function gre(n,t){const e=Bd(n)?"delta":"",r=d3(n).map(u=>function _re(n){return n.file.fileMeta.fileName.replace(/(.cc)?.json$/,"")}(u)),s=function bre(n){return n.length<=3?n.join(c3):[n.at(0),sG,n.at(-1)].join(c3)}(r);return function vre(n,t,e){const i=[t,n].filter(s=>s.length>0).join(c3),r=255-e.length-MU.length;return i.length<=r?[i,c3,e,MU].join(""):[i.slice(0,r-1),sG,e,MU].join("")}(s,e,t)}(i,"map"),s.href=r,document.body.appendChild(s),s.click(),s.remove()}saveRenderSettings(e){const i=e.getPixelRatio(),r=new _n;return e.getClearColor(r),{pixelRatio:i,clearColor:r}}applyRenderSettings(e,i){const{pixelRatio:r,clearColor:s}=i;e.setPixelRatio(r),e.setClearColor(s),e.render(this.threeSceneService.scene,this.threeCameraService.camera)}buildScreenShotCanvas(e){var i=this;return Cn(function*(){e.setPixelRatio(window.devicePixelRatio),e.setClearColor(new _n(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"]),s=new Set(["legend-panel-button"]),l=document.querySelector("body")?.offsetHeight,u=document.querySelector("cc-ribbon-bar")?.offsetHeight,f=document.querySelector("cc-tool-bar")?.offsetHeight,p=document.querySelector("cc-file-extension-bar")?.offsetHeight,m=u+f+p,_=yield xL()(document.querySelector("body"),{removeContainer:!0,backgroundColor:"#00",scrollY:-m,height:l-m,ignoreElements:b=>r.has(b.tagName.toLowerCase())||s.has(b.id)||"10000"===b.style.zIndex});return i.getCroppedCanvas(_)})()}getCroppedCanvas(e){const i=e.getContext("2d"),r=e.width,s=e.height,u=i.getImageData(0,0,r,s).data;let f=r,p=s,m=0,_=0;for(let F=0;F0&&(f=Math.min(f,F),m=Math.max(m,F),p=Math.min(p,D),_=Math.max(_,D));const b=document.createElement("canvas"),w=b.getContext("2d");return b.width=m-f+1,b.height=_-p+1,w.drawImage(e,f,p,b.width,b.height,0,0,b.width,b.height),b}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)(o.rXU(rf),o.rXU(Rd),o.rXU(Cr),o.rXU(Yt),o.rXU(Vi))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-screenshot-button"]],standalone:!0,features:[o.aNF],decls:4,vars:6,consts:[[3,"icon","title","disabled"],[3,"icon","title"],[3,"click","icon","title"]],template:function(i,r){1&i&&(o.DNE(0,uoe,1,4,"cc-action-icon",0),o.nI1(1,"async"),o.DNE(2,hoe,1,2,"cc-action-icon",1),o.nI1(3,"async")),2&i&&(o.vxM(o.bMT(1,2,r.isScreenshotToClipboardEnabled$)?0:-1),o.R7$(2),o.vxM(o.bMT(3,4,r.isScreenshotToClipboardEnabled$)?-1:2))},dependencies:[Al,Qn],encapsulation:2})}}return n})();function poe(n){return`\t\u2022 ${n.filePath} (${n.value})\n`}function Aoe(n){return`${n.toUpperCase()}\n`}function boe(n){return n.type===Zo.FILE&&void 0!==n.attributes}function voe(n,t,e){for(const[i,r]of Object.entries(n.attributes)){const s=t?.[i]?.direction,l={filePath:n.path,value:r};if(e.has(i)){const u=e.get(i);yoe(u,l,s),e.set(i,u.slice(0,10))}else e.set(i,[l])}}function yoe(n,t,e){const i=function woe(n){return 1===n?(t,e)=>t.value-e.value:(t,e)=>e.value-t.value}(e),r=n.findIndex(s=>i(t,s)<0);-1===r?n.push(t):n.splice(r,0,t)}let xoe=(()=>{class n{constructor(e){this.state=e}getClipboardText(){const r=function _oe(n,t){const e=new Map;for(const{data:i}of lo(n))boe(i)&&voe(i,t,e);return e}(this.getUnifiedMapNode(),this.state.getValue().fileSettings.attributeDescriptors);return function moe(n){let t="";for(const[e,i]of n.entries()){t+=Aoe(e);for(const r of i)t+=poe(r)}return t}(r)}getUnifiedMapNode(){const{unifiedMapNode:e}=kd(this.state.getValue());return e}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Vi))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Coe=(()=>{class n{constructor(e){this.copyToClipboardService=e}copyNamesToClipBoard(){var e=this;return Cn(function*(){yield navigator.clipboard.writeText(e.copyToClipboardService.getClipboardText())})()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(xoe))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-copy-to-clipboard-button"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"cc-action-icon",0),o.bIt("click",function(){return r.copyNamesToClipBoard()}),o.k0s())},dependencies:[Al],encapsulation:2})}}return n})();const PG={type:"change"},NU={type:"start"},OG={type:"end"},b3=new Hp,NG=new Lg,Moe=Math.cos(70*Z9_DEG2RAD),ia=new pe,cc=2*Math.PI,LU=1e-6;class UU extends ure{constructor(t,e=null){super(t,e),this.state=-1,this.enabled=!0,this.target=new pe,this.cursor=new pe,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 pe,this._lastQuaternion=new Pa,this._lastTargetPosition=new pe,this._quat=(new Pa).setFromUnitVectors(t.up,new pe(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new Wz,this._sphericalDelta=new Wz,this._scale=1,this._panOffset=new pe,this._rotateStart=new At,this._rotateEnd=new At,this._rotateDelta=new At,this._panStart=new At,this._panEnd=new At,this._panDelta=new At,this._dollyStart=new At,this._dollyEnd=new At,this._dollyDelta=new At,this._dollyDirection=new pe,this._mouse=new At,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=Soe.bind(this),this._onPointerDown=Eoe.bind(this),this._onPointerUp=Toe.bind(this),this._onContextMenu=Poe.bind(this),this._onMouseWheel=Doe.bind(this),this._onKeyDown=Boe.bind(this),this._onTouchStart=koe.bind(this),this._onTouchMove=Roe.bind(this),this._onMouseDown=Ioe.bind(this),this._onMouseMove=Foe.bind(this),this._interceptControlDown=Ooe.bind(this),this._interceptControlUp=Noe.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(PG),this.update(),this.state=-1}update(t=null){const e=this.object.position;ia.copy(e).sub(this.target),ia.applyQuaternion(this._quat),this._spherical.setFromVector3(ia),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+=cc:i>Math.PI&&(i-=cc),r<-Math.PI?r+=cc:r>Math.PI&&(r-=cc),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 s=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const l=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),s=l!=this._spherical.radius}if(ia.setFromSpherical(this._spherical),ia.applyQuaternion(this._quatInverse),e.copy(this.target).add(ia),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 l=null;if(this.object.isPerspectiveCamera){const u=ia.length();l=this._clampDistance(u*this._scale);const f=u-l;this.object.position.addScaledVector(this._dollyDirection,f),this.object.updateMatrixWorld(),s=!!f}else if(this.object.isOrthographicCamera){const u=new pe(this._mouse.x,this._mouse.y,0);u.unproject(this.object);const f=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),s=f!==this.object.zoom;const p=new pe(this._mouse.x,this._mouse.y,0);p.unproject(this.object),this.object.position.sub(p).add(u),this.object.updateMatrixWorld(),l=ia.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;null!==l&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(l).add(this.object.position):(b3.origin.copy(this.object.position),b3.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(b3.direction))LU||8*(1-this._lastQuaternion.dot(this.object.quaternion))>LU||this._lastTargetPosition.distanceToSquared(this.target)>LU)&&(this.dispatchEvent(PG),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0)}_getAutoRotationAngle(t){return null!==t?cc/60*this.autoRotateSpeed*t:cc/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){ia.setFromMatrixColumn(e,0),ia.multiplyScalar(-t),this._panOffset.add(ia)}_panUp(t,e){!0===this.screenSpacePanning?ia.setFromMatrixColumn(e,1):(ia.setFromMatrixColumn(e,0),ia.crossVectors(this.object.up,ia)),ia.multiplyScalar(t),this._panOffset.add(ia)}_pan(t,e){const i=this.domElement;if(this.object.isPerspectiveCamera){ia.copy(this.object.position).sub(this.target);let s=ia.length();s*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*s/i.clientHeight,this.object.matrix),this._panUp(2*e*s/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(),s=e-i.top,u=i.height;this._mouse.x=(t-i.left)/i.width*2-1,this._mouse.y=-s/u*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(cc*this._rotateDelta.x/e.clientHeight),this._rotateUp(cc*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(cc*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(-cc*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(cc*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(-cc*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,s=Math.sqrt(i*i+r*r);this._dollyStart.set(0,s)}_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(cc*this._rotateDelta.x/e.clientHeight),this._rotateUp(cc*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,s=Math.sqrt(i*i+r*r);this._dollyEnd.set(0,s),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>1|(21845&Go)<<1;$S[Go]=((65280&(jg=(61680&(jg=(52428&jg)>>2|(13107&jg)<<2))>>4|(3855&jg)<<4))>>8|(255&jg)<<8)>>1}var lf=function(n,t,e){for(var i=n.length,r=0,s=new Tl(t);r>f]=p}else for(u=new Tl(i),r=0;r>15-n[r]);return u},$g=new wo(288);for(Go=0;Go<144;++Go)$g[Go]=8;for(Go=144;Go<256;++Go)$g[Go]=9;for(Go=256;Go<280;++Go)$g[Go]=7;for(Go=280;Go<288;++Go)$g[Go]=8;var qS=new wo(32);for(Go=0;Go<32;++Go)qS[Go]=5;var zG=lf($g,9,0),jG=lf(qS,5,0),WS=function(n){return(n+7)/8|0},qg=function(n,t,e){return(null==t||t<0)&&(t=0),(null==e||e>n.length)&&(e=n.length),new wo(n.subarray(t,e))},qG=["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"],Vr=function(n,t,e){var i=new Error(t||qG[n]);if(i.code=n,Error.captureStackTrace&&Error.captureStackTrace(i,Vr),!e)throw i;return i},cf=function(n,t,e){var i=t/8|0;n[i]|=e<<=7&t,n[i+1]|=e>>8},nx=function(n,t,e){var i=t/8|0;n[i]|=e<<=7&t,n[i+1]|=e>>8,n[i+2]|=e>>16},C3=function(n,t){for(var e=[],i=0;ib&&(b=s[i].s);var w=new Tl(b+1),F=M3(e[m-1],w,0);if(F>t){i=0;var D=0,T=F-t,I=1<t))break;D+=I-(1<>=T;D>0;){var R=s[i].s;w[R]=0&&D;--i){var P=s[i].s;w[P]==t&&(--w[P],++D)}F=t}return{t:new wo(w),l:F}},M3=function(n,t,e){return-1==n.s?Math.max(M3(n.l,t,e+1),M3(n.r,t,e+1)):t[n.s]=e},QU=function(n){for(var t=n.length;t&&!n[--t];);for(var e=new Tl(++t),i=0,r=n[0],s=1,l=function(f){e[i++]=f},u=1;u<=t;++u)if(n[u]==r&&u!=t)++s;else{if(!r&&s>2){for(;s>138;s-=138)l(32754);s>2&&(l(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(l(r),--s;s>6;s-=6)l(8304);s>2&&(l(s-3<<5|8208),s=0)}for(;s--;)l(r);s=1,r=n[u]}return{c:e.subarray(0,i),n:t}},ix=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 s=0;s4&&!q[jS[ke-1]];--ke);var Ce,Oe,Fe,ft,Ue=p+5<<3,ce=ix(r,$g)+ix(s,qS)+l,ze=ix(r,b)+ix(s,D)+l+14+3*ke+ix(te,q)+2*te[16]+3*te[17]+7*te[18];if(f>=0&&Ue<=ce&&Ue<=ze)return zU(t,m,n.subarray(f,f+p));if(cf(t,m,1+(ze15&&(cf(t,m,Xn[ie]>>5&127),m+=Xn[ie]>>12)}}else Ce=zG,Oe=$g,Fe=jG,ft=qS;for(ie=0;ie255){var Me;nx(t,m,Ce[257+(Me=be>>18&31)]),m+=Oe[Me+257],Me>7&&(cf(t,m,be>>23&31),m+=ex[Me]);var Ae=31&be;nx(t,m,Fe[Ae]),m+=ft[Ae],Ae>3&&(nx(t,m,be>>5&8191),m+=tx[Ae])}else nx(t,m,Ce[be]),m+=Oe[be]}return nx(t,m,Ce[256]),m+Oe[256]},WG=new GS([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),jU=new wo(0),KG=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}(),E3=function(){var n=-1;return{p:function(t){for(var e=n,i=0;i>>8;n=e},d:function(){return~n}}},S3=function(n,t,e,i,r){if(!r&&(r={l:1},t.dictionary)){var s=t.dictionary.subarray(-32768),l=new wo(s.length+n.length);l.set(s),l.set(n,s.length),n=l,r.w=s.length}return function(n,t,e,i,r,s){var l=s.z||n.length,u=new wo(i+l+5*(1+Math.ceil(l/7e3))+r),f=u.subarray(i,u.length-r),p=s.l,m=7&(s.r||0);if(t){m&&(f[0]=s.r>>3);for(var _=WG[t-1],b=_>>13,w=8191&_,F=(1<7e3||q>24576)&&(Ce>423||!p)){m=GU(n,f,0,P,ee,J,ie,q,ke,W-ke,m),q=te=ie=0,ke=W;for(var Oe=0;Oe<286;++Oe)ee[Oe]=0;for(Oe=0;Oe<30;++Oe)J[Oe]=0}var Fe=2,ft=0,Et=w,kt=ce-ze&32767;if(Ce>2&&Ue==R(W-kt))for(var nn=Math.min(b,Ce)-1,Xn=Math.min(32767,W),Me=Math.min(258,Ce);kt<=Xn&&--Et&&ce!=ze;){if(n[W+Fe]==n[W+Fe-kt]){for(var be=0;beFe){if(Fe=be,ft=kt,be>nn)break;var Ae=Math.min(kt,be-2),ae=0;for(Oe=0;Oeae&&(ae=lt,ze=ut)}}}kt+=(ce=ze)-(ze=D[ce])&32767}if(ft){P[q++]=268435456|v3[Fe]<<18|HU[ft];var zt=31&v3[Fe],de=31&HU[ft];ie+=ex[zt]+tx[de],++ee[257+zt],++J[de],le=W+Fe,++te}else P[q++]=n[W],++ee[n[W]]}}for(W=Math.max(W,le);W=l&&(f[m/8|0]=p,wt=l),m=zU(f,m+1,n.subarray(W,wt))}s.i=l}return qg(u,0,i+WS(m)+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)},T3=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},qo=function(n,t,e){for(;e;++t)n[t]=e,e>>>=8};function F3(n,t){return S3(n,t||{},0,0)}var JU=function(n,t,e,i){for(var r in n){var s=n[r],l=t+r,u=i;Array.isArray(s)&&(u=T3(i,s[1]),s=s[0]),s instanceof wo?e[l]=[s,u]:(e[l+="/"]=[new wo(0),u],JU(s,l,e,i))}},lj=typeof TextEncoder<"u"&&new TextEncoder,e8=typeof TextDecoder<"u"&&new TextDecoder;try{e8.decode(jU,{stream:!0})}catch{}function Xg(n,t){if(t){for(var e=new wo(n.length),i=0;i>1)),l=0,u=function(m){s[l++]=m};for(i=0;is.length){var f=new wo(l+8+(r-i<<1));f.set(s),s=f}var p=n.charCodeAt(i);p<128||t?u(p):p<2048?(u(192|p>>6),u(128|63&p)):p>55295&&p<57344?(u(240|(p=65536+(1047552&p)|1023&n.charCodeAt(++i))>>18),u(128|p>>12&63),u(128|p>>6&63),u(128|63&p)):(u(224|p>>12),u(128|p>>6&63),u(128|63&p))}return qg(s,0,l)}var KS=function(n){var t=0;if(n)for(var e in n){var i=n[e].length;i>65535&&Vr(9),t+=i+4}return t},D3=function(n,t,e,i,r,s,l,u){var f=i.length,p=e.extra,m=u&&u.length,_=KS(p);qo(n,t,null!=l?33639248:67324752),t+=4,null!=l&&(n[t++]=20,n[t++]=e.os),n[t]=20,t+=2,n[t++]=e.flag<<1|(s<0&&8),n[t++]=r&&8,n[t++]=255&e.compression,n[t++]=e.compression>>8;var b=new Date(null==e.mtime?Date.now():e.mtime),w=b.getFullYear()-1980;if((w<0||w>119)&&Vr(10),qo(n,t,w<<25|b.getMonth()+1<<21|b.getDate()<<16|b.getHours()<<11|b.getMinutes()<<5|b.getSeconds()>>1),t+=4,-1!=s&&(qo(n,t,e.crc),qo(n,t+4,s<0?-s-2:s),qo(n,t+8,e.size)),qo(n,t+12,f),qo(n,t+14,_),t+=16,null!=l&&(qo(n,t,m),qo(n,t+6,e.attrs),qo(n,t+10,l),t+=14),n.set(i,t),t+=f,_)for(var F in p){var D=p[F],T=D.length;qo(n,t,+F),qo(n,t+2,T),n.set(D,t+4),t+=4+T}return m&&(n.set(u,t),t+=m),t};function ise(n){return` \n \n \n \n \n \n`}function t8(){return(t8=Cn(function*(n){const{vertices:t,triangles:e,volumes:i}=function hj(n){const t=[],e=[],i=[],r=new Map,s=new Map;for(const u of n.children)n8(u,t,e,r,1,s,i);return{vertices:t,triangles:e,volumes:i}}(n),r=function ose(n,t){const i=function ase(n){let t=" \n";for(const e of n)t+=` ${e}\n`;return t+=" \n",t}(n),r=function lse(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),s=function tse(n){let t='\n\n \n \n';for(const e of n)t+=ise(e);return t+=" \n\n",t}(i);return function Zoe(n,t){t||(t={});var e={},i=[];JU(n,"",e,t);var r=0,s=0;for(var l in e){var u=e[l],f=u[0],p=u[1],m=0==p.level?0:8,b=(_=Xg(l)).length,w=p.comment,F=w&&Xg(w),D=F&&F.length,T=KS(p.extra);b>65535&&Vr(11);var I=m?F3(f,p):f,O=I.length,R=E3();R.p(f),i.push(T3(p,{size:f.length,crc:R.d(),c:I,f:_,m:F,u:b!=l.length||F&&w.length!=D,o:r,compression:m})),r+=30+b+T+O,s+=76+2*(b+T)+(D||0)+O}for(var P=new wo(s+22),ee=r,J=s-r,te=0;te\n \n \n')},Metadata:{"Slic3r_PE_model.config":Xg(s)},"[Content_Types].xml":Xg('\n\n \n \n')},{comment:"created by CodeCharta"}).buffer})).apply(this,arguments)}function n8(n,t,e,i,r,s,l,u=void 0){if(!n.visible)return;for(const m of n.children){let _=n.matrix;u&&(_=u.clone().multiply(n.matrix)),n8(m,t,e,i,r,s,l,_)}const f=function fj(n){const t=new Map;if(n.geometry.attributes.color)for(let e=0;el);t.set(i,r)}return t}(n),p=new Map;for(const[m,_]of f.entries()){const b=e.length;pj(t,i,p,_,n,u),Aj(n.geometry,e,p,_),mj(n,m,b,e.length-1,l,r,s),r++}}function pj(n,t,e,i,r,s){const l=r.geometry.attributes.position;for(const u of i){const f=new pe(l.getX(u),l.getY(u),l.getZ(u));f.applyMatrix4(r.matrix),s&&f.applyMatrix4(s);const p=``;t.has(p)?e.set(u,t.get(p)):(n.push(p),t.set(p,n.length-1),e.set(u,n.length-1))}}function Aj(n,t,e,i){if(n.index){const r=n.index;for(let s=0;s`;t.push(p)}}}else for(let r=0;r`;t.push(s)}}function mj(n,t,e,i,r,s,l){l.has(t)||l.set(t,l.size+1);const u=l.get(t);r.push({id:s,name:"Map"===n.name?`${n.name} 0x${t}`:n.name,color:t,extruder:u,firstTriangleId:e,lastTriangleId:i})}function i8(n,t){return(n instanceof x?[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 r8{constructor(t){this.isFont=!0,this.type="Font",this.data=t}generateShapes(t,e=100){const i=[],r=function use(n,t,e){const i=Array.from(n),r=t/e.resolution,s=(e.boundingBox.yMax-e.boundingBox.yMin+e.underlineThickness)*r,l=[];let u=0,f=0;for(let p=0;p{e.geometry=r});const i=new sc;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 Jb extends Lu{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 Lu&&e.updateColor(t);this.updateVisibility()}}class dc{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 mse extends Jb{constructor(){super("Map",new dc,1,!1)}init(t){var e=this;return Cn(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,s=i/e.boundingBox.max.x;return e.scale(s,s,s),e.translate(-i/2,i/2,0),this.updateMapColors(this.originalColors,e,t.numberOfColors),e}updateMapColors(t,e,i){const r=[];for(let s=0;s.75&&u>.75?p=i<4?[1,1,1]:[1,1,0]:l>.45&&u<.1?p=i<4?[1,1,1]:[1,0,0]:l<5&&u>.6?p=i<4?[1,1,1]:[0,1,0]:(console.error("Unknown color"),p=[1,1,1]),r.push(...p)}e.setAttribute("color",new it(r,3))}changeSize(t,e){var i=this;return Cn(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 gse=Oc;class o8 extends lc{constructor(t){super(t),this.defaultDPI=90,this.defaultUnit="px"}load(t,e,i,r){const s=this,l=new nf(s.manager);l.setPath(s.path),l.setRequestHeader(s.requestHeader),l.setWithCredentials(s.withCredentials),l.load(t,function(u){try{e(s.parse(u))}catch(f){r?r(f):console.error(f),s.manager.itemError(t)}},i,r)}parse(t){const e=this;function l(Me,be,Ae,ae,ut,Nt,lt,zt){if(0==be||0==Ae)return void Me.lineTo(zt.x,zt.y);ae=ae*Math.PI/180,be=Math.abs(be),Ae=Math.abs(Ae);const de=(lt.x-zt.x)/2,wt=(lt.y-zt.y)/2,Ze=Math.cos(ae)*de+Math.sin(ae)*wt,Mt=-Math.sin(ae)*de+Math.cos(ae)*wt;let _t=be*be,Ft=Ae*Ae;const Pe=Ze*Ze,Se=Mt*Mt,_e=Pe/_t+Se/Ft;if(_e>1){const hn=Math.sqrt(_e);_t=(be*=hn)*be,Ft=(Ae*=hn)*Ae}const oe=_t*Se+Ft*Pe;let Ht=Math.sqrt(Math.max(0,(_t*Ft-oe)/oe));ut===Nt&&(Ht=-Ht);const Vt=Ht*be*Mt/Ae,jt=-Ht*Ae*Ze/be,Si=Math.cos(ae)*Vt-Math.sin(ae)*jt+(lt.x+zt.x)/2,Fn=Math.sin(ae)*Vt+Math.cos(ae)*jt+(lt.y+zt.y)/2,Kn=u(1,0,(Ze-Vt)/be,(Mt-jt)/Ae),ir=u((Ze-Vt)/be,(Mt-jt)/Ae,(-Ze-Vt)/be,(-Mt-jt)/Ae)%(2*Math.PI);Me.currentPath.absellipse(Si,Fn,be,Ae,Kn,Kn+ir,0===Nt,ae)}function u(Me,be,Ae,ae){const ut=Me*Ae+be*ae,Nt=Math.sqrt(Me*Me+be*be)*Math.sqrt(Ae*Ae+ae*ae);let lt=Math.acos(Math.max(-1,Math.min(1,ut/Nt)));return Me*ae-be*Ae<0&&(lt=-lt),lt}function F(Me,be){be=Object.assign({},be);let Ae={};if(Me.hasAttribute("class")){const lt=Me.getAttribute("class").split(/\s/).filter(Boolean).map(zt=>zt.trim());for(let zt=0;ztNumber.EPSILON}function W(Me){const be=Me.elements;return Math.sqrt(be[0]*be[0]+be[1]*be[1])}function q(Me){const be=Me.elements;return Math.sqrt(be[3]*be[3]+be[4]*be[4])}const ke=[],Ue={},ce=[],ze=new Ki,Ce=new Ki,Oe=new Ki,Fe=new Ki,ft=new At,Et=new pe,kt=new Ki,nn=(new DOMParser).parseFromString(t,"image/svg+xml");return function i(Me,be){if(1!==Me.nodeType)return;const Ae=function P(Me){if(!(Me.hasAttribute("transform")||"use"===Me.nodeName&&(Me.hasAttribute("x")||Me.hasAttribute("y"))))return null;const be=function ee(Me){const be=new Ki,Ae=ze;if("use"===Me.nodeName&&(Me.hasAttribute("x")||Me.hasAttribute("y"))){const ae=R(Me.getAttribute("x")),ut=R(Me.getAttribute("y"));be.translate(ae,ut)}if(Me.hasAttribute("transform")){const ae=Me.getAttribute("transform").split(")");for(let ut=ae.length-1;ut>=0;ut--){const Nt=ae[ut].trim();if(""===Nt)continue;const lt=Nt.indexOf("(");if(lt>0&<=1){let Mt=0;wt.length>=2&&(Mt=wt[1]),Ae.translate(wt[0],Mt)}break;case"rotate":if(wt.length>=1){let Ze=0,Mt=0,_t=0;Ze=wt[0]*Math.PI/180,wt.length>=3&&(Mt=wt[1],_t=wt[2]),Ce.makeTranslation(-Mt,-_t),Oe.makeRotation(Ze),Fe.multiplyMatrices(Oe,Ce),Ce.makeTranslation(Mt,_t),Ae.multiplyMatrices(Ce,Fe)}break;case"scale":if(wt.length>=1){const Ze=wt[0];let Mt=Ze;wt.length>=2&&(Mt=wt[1]),Ae.scale(Ze,Mt)}break;case"skewX":1===wt.length&&Ae.set(1,Math.tan(wt[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":1===wt.length&&Ae.set(1,0,0,Math.tan(wt[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":6===wt.length&&Ae.set(wt[0],wt[2],wt[4],wt[1],wt[3],wt[5],0,0,1)}}be.premultiply(Ae)}}return be}(Me);return ce.length>0&&be.premultiply(ce[ce.length-1]),kt.copy(be),ce.push(be),be}(Me);let ae=!1,ut=null;switch(Me.nodeName){case"svg":case"g":be=F(Me,be);break;case"style":!function s(Me){if(Me.sheet&&Me.sheet.cssRules&&Me.sheet.cssRules.length)for(let be=0;beut.trim());for(let ut=0;ut""!==lt));Ue[ae[ut]]=Object.assign(Ue[ae[ut]]||{},Nt)}}}(Me);break;case"path":be=F(Me,be),Me.hasAttribute("d")&&(ut=function r(Me){const be=new zg,Ae=new At,ae=new At,ut=new At;let Nt=!0,lt=!1;const zt=Me.getAttribute("d");if(""===zt||"none"===zt)return null;const de=zt.match(/[a-df-z][^a-df-z]*/gi);for(let wt=0,Ze=de.length;wt0&&(Ae.copy(ut),be.currentPath.currentPoint.copy(Ae),Nt=!0);break;default:console.warn(Mt)}lt=!1}return be}(Me));break;case"rect":be=F(Me,be),ut=function f(Me){const be=R(Me.getAttribute("x")||0),Ae=R(Me.getAttribute("y")||0),ae=R(Me.getAttribute("rx")||Me.getAttribute("ry")||0),ut=R(Me.getAttribute("ry")||Me.getAttribute("rx")||0),Nt=R(Me.getAttribute("width")),lt=R(Me.getAttribute("height")),zt=.448084975506,de=new zg;return de.moveTo(be+ae,Ae),de.lineTo(be+Nt-ae,Ae),(0!==ae||0!==ut)&&de.bezierCurveTo(be+Nt-ae*zt,Ae,be+Nt,Ae+ut*zt,be+Nt,Ae+ut),de.lineTo(be+Nt,Ae+lt-ut),(0!==ae||0!==ut)&&de.bezierCurveTo(be+Nt,Ae+lt-ut*zt,be+Nt-ae*zt,Ae+lt,be+Nt-ae,Ae+lt),de.lineTo(be+ae,Ae+lt),(0!==ae||0!==ut)&&de.bezierCurveTo(be+ae*zt,Ae+lt,be,Ae+lt-ut*zt,be,Ae+lt-ut),de.lineTo(be,Ae+ut),(0!==ae||0!==ut)&&de.bezierCurveTo(be,Ae+ut*zt,be+ae*zt,Ae,be+ae,Ae),de}(Me);break;case"polygon":be=F(Me,be),ut=function p(Me){const ae=new zg;let ut=0;return Me.getAttribute("points").replace(/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,function be(Nt,lt,zt){const de=R(lt),wt=R(zt);0===ut?ae.moveTo(de,wt):ae.lineTo(de,wt),ut++}),ae.currentPath.autoClose=!0,ae}(Me);break;case"polyline":be=F(Me,be),ut=function m(Me){const ae=new zg;let ut=0;return Me.getAttribute("points").replace(/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,function be(Nt,lt,zt){const de=R(lt),wt=R(zt);0===ut?ae.moveTo(de,wt):ae.lineTo(de,wt),ut++}),ae.currentPath.autoClose=!1,ae}(Me);break;case"circle":be=F(Me,be),ut=function _(Me){const be=R(Me.getAttribute("cx")||0),Ae=R(Me.getAttribute("cy")||0),ae=R(Me.getAttribute("r")||0),ut=new zb;ut.absarc(be,Ae,ae,0,2*Math.PI);const Nt=new zg;return Nt.subPaths.push(ut),Nt}(Me);break;case"ellipse":be=F(Me,be),ut=function b(Me){const be=R(Me.getAttribute("cx")||0),Ae=R(Me.getAttribute("cy")||0),ae=R(Me.getAttribute("rx")||0),ut=R(Me.getAttribute("ry")||0),Nt=new zb;Nt.absellipse(be,Ae,ae,ut,0,2*Math.PI);const lt=new zg;return lt.subPaths.push(Nt),lt}(Me);break;case"line":be=F(Me,be),ut=function w(Me){const be=R(Me.getAttribute("x1")||0),Ae=R(Me.getAttribute("y1")||0),ae=R(Me.getAttribute("x2")||0),ut=R(Me.getAttribute("y2")||0),Nt=new zg;return Nt.moveTo(be,Ae),Nt.lineTo(ae,ut),Nt.currentPath.autoClose=!1,Nt}(Me);break;case"defs":ae=!0;break;case"use":be=F(Me,be);const zt=(Me.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),de=Me.viewportElement.getElementById(zt);de?i(de,be):console.warn("SVGLoader: 'use node' references non-existent node id: "+zt)}ut&&(void 0!==be.fill&&"none"!==be.fill&&ut.color.setStyle(be.fill,gse),function J(Me,be){function Ae(lt){Et.set(lt.x,lt.y,1).applyMatrix3(be),lt.set(Et.x,Et.y)}function ae(lt){const zt=lt.xRadius,de=lt.yRadius,wt=Math.cos(lt.aRotation),Ze=Math.sin(lt.aRotation),Mt=new pe(zt*wt,zt*Ze,0),_t=new pe(-de*Ze,de*wt,0),Ft=Mt.applyMatrix3(be),Pe=_t.applyMatrix3(be),Se=ze.set(Ft.x,Pe.x,0,Ft.y,Pe.y,0,0,0,1),_e=Ce.copy(Se).invert(),Ht=Oe.copy(_e).transpose().multiply(_e).elements,Vt=function le(Me,be,Ae){let ae,ut,Nt,lt,zt;const de=Me+Ae,wt=Me-Ae,Ze=Math.sqrt(wt*wt+4*be*be);return de>0?(ae=.5*(de+Ze),zt=1/ae,ut=Me*zt*Ae-be*zt*be):de<0?ut=.5*(de-Ze):(ae=.5*Ze,ut=-.5*Ze),Nt=wt>0?wt+Ze:wt-Ze,Math.abs(Nt)>2*Math.abs(be)?(zt=-2*be/Nt,lt=1/Math.sqrt(1+zt*zt),Nt=zt*lt):0===Math.abs(be)?(Nt=1,lt=0):(zt=-.5*Nt/be,Nt=1/Math.sqrt(1+zt*zt),lt=zt*Nt),wt>0&&(zt=Nt,Nt=-lt,lt=zt),{rt1:ae,rt2:ut,cs:Nt,sn:lt}}(Ht[0],Ht[1],Ht[4]),jt=Math.sqrt(Vt.rt1),Si=Math.sqrt(Vt.rt2);if(lt.xRadius=1/jt,lt.yRadius=1/Si,lt.aRotation=Math.atan2(Vt.sn,Vt.cs),!((lt.aEndAngle-lt.aStartAngle)%(2*Math.PI){const{x:er,y:ci}=new pe(Math.cos(kr),Math.sin(kr),0).applyMatrix3(hn);return Math.atan2(ci,er)};lt.aStartAngle=Yn(lt.aStartAngle),lt.aEndAngle=Yn(lt.aEndAngle),te(be)&&(lt.aClockwise=!lt.aClockwise)}}function ut(lt){const zt=W(be),de=q(be);lt.xRadius*=zt,lt.yRadius*=de;const wt=zt>Number.EPSILON?Math.atan2(be.elements[1],be.elements[0]):Math.atan2(-be.elements[3],be.elements[4]);lt.aRotation+=wt,te(be)&&(lt.aStartAngle*=-1,lt.aEndAngle*=-1,lt.aClockwise=!lt.aClockwise)}const Nt=Me.subPaths;for(let lt=0,zt=Nt.length;lt0?kt.copy(ce[ce.length-1]):kt.identity())}(nn.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:ke,xml:nn.documentElement}}static createShapes(t){const r={loc:0,t:0};function s(D,T,I,O){const R=D.x,P=T.x,ee=I.x,J=O.x,te=D.y,ie=T.y,W=I.y,q=O.y,le=(J-ee)*(te-W)-(q-W)*(R-ee),Ue=(q-W)*(P-R)-(J-ee)*(ie-te),ce=le/Ue,ze=((P-R)*(te-W)-(ie-te)*(R-ee))/Ue;if(0===Ue&&0!==le||ce<=0||ce>=1||ze<0||ze>1)return null;if(0===le&&0===Ue){for(let Ce=0;Ce<2;Ce++){if(l(0===Ce?I:O,D,T),0==r.loc){const Oe=0===Ce?I:O;return{x:Oe.x,y:Oe.y,t:r.t}}if(2==r.loc)return{x:+(R+r.t*(P-R)).toPrecision(10),y:+(te+r.t*(ie-te)).toPrecision(10),t:r.t}}return null}for(let Fe=0;Fe<2;Fe++)if(l(0===Fe?I:O,D,T),0==r.loc){const ft=0===Fe?I:O;return{x:ft.x,y:ft.y,t:r.t}}return{x:+(R+ce*(P-R)).toPrecision(10),y:+(te+ce*(ie-te)).toPrecision(10),t:ce}}function l(D,T,I){const O=I.x-T.x,R=I.y-T.y,P=D.x-T.x,ee=D.y-T.y,J=O*ee-P*R;if(D.x===T.x&&D.y===T.y)return r.loc=0,void(r.t=0);if(D.x===I.x&&D.y===I.y)return r.loc=1,void(r.t=1);if(J<-Number.EPSILON)return void(r.loc=3);if(J>Number.EPSILON)return void(r.loc=4);if(O*P<0||R*ee<0)return void(r.loc=5);if(Math.sqrt(O*O+R*R){const T=D.getPoints();let I=-999999999,O=999999999,R=-999999999,P=999999999;for(let ee=0;eeI&&(I=J.y),J.yR&&(R=J.x),J.x=P&&(m=P-1),{curves:D.curves,points:T,isCW:ef.isClockWise(T),identifier:-1,boundingBox:new sre(new At(P,O),new At(R,I))}});b=b.filter(D=>D.points.length>1);for(let D=0;Dfunction p(D,T,I,O,R){(null==R||""===R)&&(R="nonzero");const P=new At;D.boundingBox.getCenter(P);const J=function f(D,T,I){const O=new At;T.getCenter(O);const R=[];return I.forEach(P=>{P.boundingBox.containsPoint(O)&&function u(D,T){const I=[],O=[];for(let R=1;Rq.t<=W.t+Number.EPSILON&&q.t>=W.t-Number.EPSILON)&&(I.push(W),O.push(new At(W.x,W.y)))}}return O}(D,P.points).forEach(J=>{R.push({identifier:P.identifier,isCW:P.isCW,point:J})})}),R.sort((P,ee)=>P.point.x-ee.point.x),R}([new At(I,P.y),new At(O,P.y)],D.boundingBox,T);J.sort((ke,Ue)=>ke.point.x-Ue.point.x);const te=[],ie=[];J.forEach(ke=>{ke.identifier===D.identifier?te.push(ke):ie.push(ke)});const W=te[0].point.x,q=[];let le=0;for(;le0&&q[q.length-1]===ie[le].identifier?q.pop():q.push(ie[le].identifier),le++;if(q.push(D.identifier),"evenodd"===R)return{identifier:D.identifier,isHole:q.length%2==0,for:q[q.length-2]};if("nonzero"===R){let ke=!0,Ue=null,ce=null;for(let ze=0;ze{if(!w[D.identifier].isHole){const I=new Vg;I.curves=D.curves,w.filter(R=>R.isHole&&R.for===D.identifier).forEach(R=>{const P=b[R.identifier],ee=new zb;ee.curves=P.curves,I.holes.push(ee)}),F.push(I)}}),F}static getStrokeStyle(t,e,i,r,s){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:s=void 0!==s?s:4}}static pointsToStroke(t,e,i,r){const s=[],l=[],u=[];if(0===o8.pointsToStrokeWithBuffers(t,e,i,r,s,l,u))return null;const f=new fi;return f.setAttribute("position",new it(s,3)),f.setAttribute("normal",new it(l,3)),f.setAttribute("uv",new it(u,2)),f}static pointsToStrokeWithBuffers(t,e,i,r,s,l,u,f){const p=new At,m=new At,_=new At,b=new At,w=new At,F=new At,D=new At,T=new At,I=new At,O=new At,R=new At,P=new At,ee=new At,J=new At,te=new At,ie=new At,W=new At;i=void 0!==i?i:12,r=void 0!==r?r:.001,f=void 0!==f?f:0;const q=(t=function wt(Ze){let Mt=!1;for(let Ft=1,Pe=Ze.length-1;Ft=r&&_t.push(Ze[Ft]);return _t.push(Ze[Ze.length-1]),_t}(t)).length;if(q<2)return 0;const le=t[0].equals(t[q-1]);let ke,ce,Ue=t[0];const ze=e.strokeWidth/2,Ce=1/(q-1);let Fe,ft,Et,kt,Oe=0,nn=!1,Xn=0,Me=3*f,be=2*f;Ae(t[0],t[1],p).multiplyScalar(ze),T.copy(t[0]).sub(p),I.copy(t[0]).add(p),O.copy(T),R.copy(I);for(let Ze=1;ZeNumber.EPSILON){const Ft=ze/_t;_.multiplyScalar(-Ft),b.subVectors(ke,Ue),w.copy(b).setLength(Ft).add(_),ie.copy(w).negate();const Pe=w.length(),Se=b.length();b.divideScalar(Se),F.subVectors(ce,ke);const _e=F.length();switch(F.divideScalar(_e),b.dot(ie){r.load(i,function(u){const f=u.paths,p=[];for(const F of f){const D=F.toShapes(!0);for(const T of D){const I=new $w(T,{depth:t.printHeight,bevelEnabled:!1});p.push(I)}}const m=k3(p);m.computeBoundingBox();const w=e.size/Math.max(m.boundingBox.max.x-m.boundingBox.min.x,m.boundingBox.max.y-m.boundingBox.min.y);m.scale(w,w,1),m.center(),"back"===e.side?m.rotateZ(Math.PI):(m.rotateZ(Math.PI),m.rotateY(Math.PI)),s(m)},void 0,function(u){console.error(`Error loading ${i}`),l(u)})})})()}}class _se extends Jb{constructor(t){super(t,new dc,120,!0),this.name="BackMWLogo"}init(t){var e=this;return Cn(function*(){const i=new YS;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 _j extends $w{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 bj{create(t,e){var i=this;return Cn(function*(){const{font:r,side:s,text:l,xPosition:u,yPosition:f,align:p}=e;if(!l)return new fi;let{textSize:m}=e;m||(m=.025);const _="center"===p&&l.includes("\n")?i.createMultilineCenteredTextGeometry(l,r,m,t.printHeight):new _j(l,{font:r,size:m,height:t.printHeight});return _.center(),"back"===s&&_.rotateY(Math.PI),_.computeBoundingBox(),_.translate(("front"===s?1:-1)*(("center"===p?0:(_.boundingBox.max.x-_.boundingBox.min.x)/2)+u),f,"front"===s?t.printHeight/2:t.printHeight/2-t.baseplateHeight),_})()}createMultilineCenteredTextGeometry(t,e,i,r){const s=t.split("\n"),l=[];for(const[u,f]of s.entries()){const p=new _j(f,{font:e,size:i,height:r});p.center(),p.translate(0,-u*i*1.5,0),l.push(p)}return k3(l)}}class ZS extends Jb{constructor(t,e=new dc,i,r,s,l=new bj){super(t,e,i,r),this.createTextGeometryOptions=s,this.createTextGeometryStrategy=l}init(t){var e=this;return Cn(function*(){return e.geometry=yield e.createTextGeometryStrategy.create(t,e.createTextGeometryOptions),e.updateColor(t.numberOfColors),e})()}updateText(t){var e=this;return Cn(function*(){e.geometry=yield e.createTextGeometryStrategy.create(t,e.createTextGeometryOptions),e.boundingBoxCalculated=!1})()}updateTextGeometryOptions(t){this.createTextGeometryOptions.text=t}}class bse extends ZS{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 dc,200,!0,i)}}var vse=v(8314);class yse extends Jb{constructor(t){super(t,new dc,0,!1)}init(t){var e=this;return Cn(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 Cn(function*(){e.geometry=yield e.create(t)})()}create(t){var e=this;return Cn(function*(){if(!t.qrCodeText||0===t.qrCodeText.length)return new fi;const i=document.createElement("canvas");yield vse.mo(i,t.qrCodeText,{errorCorrectionLevel:"H"});const s=i.getContext("2d").getImageData(0,0,i.width,i.height),l=[],u=.6/s.width;for(let f=0;fsuper.init,i=this;return Cn(function*(){const r=yield i.createColoredBackTextChildren(t);for(const s of r)i.add(s);return e().call(i,t),i})()}createTextGeometry(t,e,i){var r=this;return Cn(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 Cn(function*(){const i=e.metricDescriptionBlockOptions,r=[],s=["Value ranges:",`${i.nodeMetricData.minValue} - ${i.colorRange.from-1}`,"/",`${i.colorRange.from} - ${i.colorRange.to-1}`,"/",`${i.colorRange.to} - ${i.nodeMetricData.maxValue}`],l=[new dc,new Cse,new dc,new Mse,new dc,new Ese];let u=.05;for(let f=0;f{if(e instanceof cr&&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 Ise extends Lu{constructor(t){super("BackPrintContainer",new dc),this.font=t}init(t){var e=this;return Cn(function*(){return e.childrenMeshes=new Map,e.childrenMeshes.set("BackMWLogo",new _se("BackMWLogo")),e.childrenMeshes.set("BackBelowLogoText",new bse("BackBelowLogoText",e.font)),e.childrenMeshes.set("QrCode",new yse("QrCode")),e.childrenMeshes.set("CodeChartaLogo",new wse("CodeChartaLogo")),e.childrenMeshes.set("CodeChartaText",new xse("CodeChartaText",e.font)),e.childrenMeshes.set("MetricDescriptionsContainer",new Tse("MetricDescriptionsContainer",e.font)),yield Promise.all([...e.childrenMeshes.values()].map(function(){var i=Cn(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 Jb&&r.setCurrentWidth(t.width)})}isQRCodeVisible(){return this.childrenMeshes.get("QrCode").visible}updateQrCodeText(t,e){var i=this;return Cn(function*(){e.qrCodeText=t,yield i.childrenMeshes.get("QrCode").changeText(e)})()}updateQrCodeVisibility(t){this.childrenMeshes.get("QrCode").setManualVisibility(t)}getChildrenMeshes(){return this.childrenMeshes}}class l8{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 Fse extends ZS{constructor(t,e,i){let r=i.frontText;r||(r="FrontText");const s={font:e,side:"front",text:r,xPosition:0,yPosition:i.frontTextSize/2,textSize:i.frontTextSize,align:"center"};super(t,new l8,0,!0,s),this.name="Front Text"}}class Dse extends ZS{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 l8,0,!1,r)}}class c8 extends Lu{constructor(t,e){super(t,new l8),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 s=i?-1:1,l="left"===this.alignment?-1:1;this.translateY(s*t.secondRowTextSize);const u=i?e/this.getWidth():this.getWidth()/e;this.translateX(2*u*l*s)}}class Bse extends c8{constructor(t){super(t,"right")}init(t,e=new YS){var i=this;return Cn(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 kse extends c8{constructor(t,e){super(t,"left"),this.filePath=e}init(t){var e=this;return Cn(function*(){const i=new YS,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 Rse extends Lu{constructor(t){super("FrontPrintContainer",new dc),this.font=t}init(t){var e=this;return Cn(function*(){return e.childrenMeshes=new Map,e.childrenMeshes.set("FrontText",new Fse("FrontText",e.font,t)),e.childrenMeshes.set("SecondRowText",new Dse("SecondRowText",e.font,t)),e.childrenMeshes.set("FrontMWLogo",new Bse("FrontMWLogo")),yield Promise.all([...e.childrenMeshes.values()].map(function(){var i=Cn(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 Cn(function*(){i.childrenMeshes.has("CustomLogo")&&i.removeCustomLogo();const r=yield new kse("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 Cn(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 c8&&i.isGeneralSizeChangeMesh()&&i.changeSize(t,e)}updateSecondRowText(t,e){var i=this;return Cn(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 vj=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 Pse{constructor(t,e=new Rse(new r8(vj)),i=new Ise(new r8(vj)),r=new Ase,s=new mse){this.geometryOptions=t,this.frontPrintContainerMesh=e,this.backPrintContainerMesh=i,this.baseplateMesh=r,this.mapMesh=s,this.printMesh=new cr,this.printMesh.name="PrintMesh"}initialize(){var t=this;return Cn(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 Cn(function*(){e.geometryOptions.width=t;const i=e.currentSize.x;return yield Promise.all([...e.printMesh.children].map(function(){var r=Cn(function*(s){s instanceof Lu&&s.isGeneralSizeChangeMesh()&&s.changeSize(e.geometryOptions,i)});return function(s){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 Lu&&e.updateColor(t)}addCustomLogo(t){var e=this;return Cn(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 Cn(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 pe(t,e,i)}updateQrCodeText(t){var e=this;return Cn(function*(){yield e.backPrintContainerMesh.updateQrCodeText(t,e.geometryOptions)})()}updateQrCodeVisibility(t){this.backPrintContainerMesh.updateQrCodeVisibility(t)}}function yj(n,t,e,i,r){const u=n.z,f=n.x,p=n.y-e;return t.geometry.boundingBox||t.geometry.computeBoundingBox(),Math.min(f,p,(u-i)*t.geometry.boundingBox.max.x/(t.geometry.boundingBox.max.z-t.geometry.boundingBox.min.z)+2*r)}const{isArray:Ose}=Array,{getPrototypeOf:Nse,prototype:Lse,keys:Use}=Object;function wj(n){if(1===n.length){const t=n[0];if(Ose(t))return{args:t,keys:null};if(function Vse(n){return n&&"object"==typeof n&&Nse(n)===Lse}(t)){const e=Use(t);return{args:e.map(i=>t[i]),keys:e}}}return{args:n,keys:null}}function xj(n,t){return n.reduce((e,i,r)=>(e[i]=t[r],e),{})}let Cj=(()=>{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)(o.rXU(o.sFG),o.rXU(o.aKT))}}static{this.\u0275dir=o.FsC({type:n})}}return n})(),ev=(()=>{class n extends Cj{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=o.xGo(n)))(r||n)}})()}static{this.\u0275dir=o.FsC({type:n,features:[o.Vt3]})}}return n})();const ma=new o.nKC(""),zse={provide:ma,useExisting:(0,o.Rfq)(()=>Kg),multi:!0},jse=new o.nKC("");let Kg=(()=>{class n extends Cj{constructor(e,i,r){super(e,i),this._compositionMode=r,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function Gse(){const n=Z()?Z().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)(o.rXU(o.sFG),o.rXU(o.aKT),o.rXU(jse,8))}}static{this.\u0275dir=o.FsC({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&&o.bIt("input",function(l){return r._handleInput(l.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(l){return r._compositionEnd(l.target.value)})},features:[o.Jv_([zse]),o.Vt3]})}}return n})();function Yg(n){return null==n||("string"==typeof n||Array.isArray(n))&&0===n.length}function Ej(n){return null!=n&&"number"==typeof n.length}const zs=new o.nKC(""),Zg=new o.nKC(""),$se=/^(?=.{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 d8{static min(t){return function Sj(n){return t=>{if(Yg(t.value)||Yg(n))return null;const e=parseFloat(t.value);return!isNaN(e)&&e{if(Yg(t.value)||Yg(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 Ij(t)}static requiredTrue(t){return function Fj(n){return!0===n.value?null:{required:!0}}(t)}static email(t){return function Dj(n){return Yg(n.value)||$se.test(n.value)?null:{email:!0}}(t)}static minLength(t){return function Bj(n){return t=>Yg(t.value)||!Ej(t.value)?null:t.value.lengthEj(t.value)&&t.value.length>n?{maxlength:{requiredLength:n,actualLength:t.value.length}}:null}(t)}static pattern(t){return function Rj(n){if(!n)return R3;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(Yg(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 Vj(t)}static composeAsync(t){return Hj(t)}}function Ij(n){return Yg(n.value)?{required:!0}:null}function R3(n){return null}function Pj(n){return null!=n}function Oj(n){return(0,o.jNT)(n)?aa(n):n}function Nj(n){let t={};return n.forEach(e=>{t=null!=e?{...t,...e}:t}),0===Object.keys(t).length?null:t}function Lj(n,t){return t.map(e=>e(n))}function Uj(n){return n.map(t=>function qse(n){return!n.validate}(t)?t:e=>t.validate(e))}function Vj(n){if(!n)return null;const t=n.filter(Pj);return 0==t.length?null:function(e){return Nj(Lj(e,t))}}function u8(n){return null!=n?Vj(Uj(n)):null}function Hj(n){if(!n)return null;const t=n.filter(Pj);return 0==t.length?null:function(e){return function Hse(...n){const t=VA(n),{args:e,keys:i}=wj(n),r=new Xr.c(s=>{const{length:l}=e;if(!l)return void s.complete();const u=new Array(l);let f=l,p=l;for(let m=0;m{_||(_=!0,p--),u[m]=b},()=>f--,void 0,()=>{(!f||!_)&&(p||s.next(i?xj(i,u):u),s.complete())}))}});return t?r.pipe(Fc(t)):r}(Lj(e,t).map(Oj)).pipe((0,$n.T)(Nj))}}function h8(n){return null!=n?Hj(Uj(n)):null}function Qj(n,t){return null===n?[t]:Array.isArray(n)?[...n,t]:[n,t]}function zj(n){return n._rawValidators}function Gj(n){return n._rawAsyncValidators}function f8(n){return n?Array.isArray(n)?n:[n]:[]}function P3(n,t){return Array.isArray(n)?n.includes(t):n===t}function jj(n,t){const e=f8(t);return f8(n).forEach(r=>{P3(e,r)||e.push(r)}),e}function $j(n,t){return f8(t).filter(e=>!P3(n,e))}class qj{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=u8(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=h8(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 Il extends qj{get formDirective(){return null}get path(){return null}}class df extends qj{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class Wj{constructor(t){this._cd=t}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}}let ox=(()=>{class n extends Wj{constructor(e){super(e)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(df,2))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){2&i&&o.AVh("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:[o.Vt3]})}}return n})();const JS="VALID",N3="INVALID",sx="PENDING",e2="DISABLED";class ax{}class Kj extends ax{constructor(t,e){super(),this.value=t,this.source=e}}class m8 extends ax{constructor(t,e){super(),this.pristine=t,this.source=e}}class g8 extends ax{constructor(t,e){super(),this.touched=t,this.source=e}}class L3 extends ax{constructor(t,e){super(),this.status=t,this.source=e}}class Jse extends ax{constructor(t){super(),this.source=t}}class eae extends ax{constructor(t){super(),this.source=t}}function _8(n){return(U3(n)?n.validators:n)||null}function b8(n,t){return(U3(t)?t.asyncValidators:n)||null}function U3(n){return null!=n&&!Array.isArray(n)&&"object"==typeof n}class v8{constructor(t,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=null,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this._status=(0,o.EWP)(()=>this.statusReactive()),this.statusReactive=(0,o.vPA)(void 0),this._pristine=(0,o.EWP)(()=>this.pristineReactive()),this.pristineReactive=(0,o.vPA)(!0),this._touched=(0,o.EWP)(()=>this.touchedReactive()),this.touchedReactive=(0,o.vPA)(!1),this._events=new Ai.B,this.events=this._events.asObservable(),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 status(){return(0,o.O8t)(this.statusReactive)}set status(t){(0,o.O8t)(()=>this.statusReactive.set(t))}get valid(){return this.status===JS}get invalid(){return this.status===N3}get pending(){return this.status==sx}get disabled(){return this.status===e2}get enabled(){return this.status!==e2}get pristine(){return(0,o.O8t)(this.pristineReactive)}set pristine(t){(0,o.O8t)(()=>this.pristineReactive.set(t))}get dirty(){return!this.pristine}get touched(){return(0,o.O8t)(this.touchedReactive)}set touched(t){(0,o.O8t)(()=>this.touchedReactive.set(t))}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(jj(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(jj(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators($j(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators($j(t,this._rawAsyncValidators))}hasValidator(t){return P3(this._rawValidators,t)}hasAsyncValidator(t){return P3(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){const e=!1===this.touched;this.touched=!0;const i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsTouched({...t,sourceControl:i}),e&&!1!==t.emitEvent&&this._events.next(new g8(!0,i))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(t))}markAsUntouched(t={}){const e=!0===this.touched;this.touched=!1,this._pendingTouched=!1;const i=t.sourceControl??this;this._forEachChild(r=>{r.markAsUntouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:i})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,i),e&&!1!==t.emitEvent&&this._events.next(new g8(!1,i))}markAsDirty(t={}){const e=!0===this.pristine;this.pristine=!1;const i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsDirty({...t,sourceControl:i}),e&&!1!==t.emitEvent&&this._events.next(new m8(!1,i))}markAsPristine(t={}){const e=!1===this.pristine;this.pristine=!0,this._pendingDirty=!1;const i=t.sourceControl??this;this._forEachChild(r=>{r.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t,i),e&&!1!==t.emitEvent&&this._events.next(new m8(!0,i))}markAsPending(t={}){this.status=sx;const e=t.sourceControl??this;!1!==t.emitEvent&&(this._events.next(new L3(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.markAsPending({...t,sourceControl:e})}disable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=e2,this.errors=null,this._forEachChild(r=>{r.disable({...t,onlySelf:!0})}),this._updateValue();const i=t.sourceControl??this;!1!==t.emitEvent&&(this._events.next(new Kj(this.value,i)),this._events.next(new L3(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...t,skipPristineCheck:e},this),this._onDisabledChange.forEach(r=>r(!0))}enable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=JS,this._forEachChild(i=>{i.enable({...t,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors({...t,skipPristineCheck:e},this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t,e){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine({},e),this._parent._updateTouched({},e))}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){const i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===JS||this.status===sx)&&this._runAsyncValidator(i,t.emitEvent)}const e=t.sourceControl??this;!1!==t.emitEvent&&(this._events.next(new Kj(this.value,e)),this._events.next(new L3(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity({...t,sourceControl:e})}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?e2:JS}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,e){if(this.asyncValidator){this.status=sx,this._hasOwnPendingAsyncValidator={emitEvent:!1!==e};const i=Oj(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:e,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();const t=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,t}return!1}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(!1!==e.emitEvent,this,e.shouldHaveEmitted)}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,e,i){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),(t||i)&&this._events.next(new L3(this.status,e)),this._parent&&this._parent._updateControlsErrors(t,e,i)}_initObservables(){this.valueChanges=new o.bkB,this.statusChanges=new o.bkB}_calculateStatus(){return this._allControlsDisabled()?e2:this.errors?N3:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(sx)?sx:this._anyControlsHaveStatus(N3)?N3:JS}_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,e){const i=!this._anyControlsDirty(),r=this.pristine!==i;this.pristine=i,this._parent&&!t.onlySelf&&this._parent._updatePristine(t,e),r&&this._events.next(new m8(this.pristine,e))}_updateTouched(t={},e){this.touched=this._anyControlsTouched(),this._events.next(new g8(this.touched,e)),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,e)}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){U3(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 tae(n){return Array.isArray(n)?u8(n):n||null}(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=function nae(n){return Array.isArray(n)?h8(n):n||null}(this._rawAsyncValidators)}}class y8 extends v8{constructor(t,e,i){super(_8(e),b8(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 Zj(n,t,e){n._forEachChild((i,r)=>{if(void 0===e[r])throw new o.wOt(1002,"")})})(this,0,t),Object.keys(t).forEach(i=>{(function Yj(n,t,e){const i=n.controls;if(!(t?Object.keys(i):i).length)throw new o.wOt(1e3,"");if(!i[e])throw new o.wOt(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),this._updateTouched(e,this),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,s)=>{i=e(i,r,s)}),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 tv=new o.nKC("CallSetDisabledState",{providedIn:"root",factory:()=>t2}),t2="always";function n2(n,t,e=t2){w8(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||"always"===e)&&t.valueAccessor.setDisabledState?.(n.disabled),function oae(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,"change"===n.updateOn&&Jj(n,t)})}(n,t),function aae(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 sae(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,"blur"===n.updateOn&&n._pendingChange&&Jj(n,t),"submit"!==n.updateOn&&n.markAsTouched()})}(n,t),function rae(n,t){if(t.valueAccessor.setDisabledState){const e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}(n,t)}function H3(n,t,e=!0){const i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),z3(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function Q3(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function w8(n,t){const e=zj(n);null!==t.validator?n.setValidators(Qj(e,t.validator)):"function"==typeof e&&n.setValidators([e]);const i=Gj(n);null!==t.asyncValidator?n.setAsyncValidators(Qj(i,t.asyncValidator)):"function"==typeof i&&n.setAsyncValidators([i]);const r=()=>n.updateValueAndValidity();Q3(t._rawValidators,r),Q3(t._rawAsyncValidators,r)}function z3(n,t){let e=!1;if(null!==n){if(null!==t.validator){const r=zj(n);if(Array.isArray(r)&&r.length>0){const s=r.filter(l=>l!==t.validator);s.length!==r.length&&(e=!0,n.setValidators(s))}}if(null!==t.asyncValidator){const r=Gj(n);if(Array.isArray(r)&&r.length>0){const s=r.filter(l=>l!==t.asyncValidator);s.length!==r.length&&(e=!0,n.setAsyncValidators(s))}}}const i=()=>{};return Q3(t._rawValidators,i),Q3(t._rawAsyncValidators,i),e}function Jj(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function e$(n,t){w8(n,t)}function C8(n,t){if(!n.hasOwnProperty("model"))return!1;const e=n.model;return!!e.isFirstChange()||!Object.is(t,e.currentValue)}function t$(n,t){n._syncPendingControls(),t.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function M8(n,t){if(!t)return null;let e,i,r;return Array.isArray(t),t.forEach(s=>{s.constructor===Kg?e=s:function dae(n){return Object.getPrototypeOf(n.constructor)===ev}(s)?i=s:r=s}),r||i||e||null}const hae={provide:Il,useExisting:(0,o.Rfq)(()=>o2)},r2=Promise.resolve();let o2=(()=>{class n extends Il{get submitted(){return(0,o.O8t)(this.submittedReactive)}constructor(e,i,r){super(),this.callSetDisabledState=r,this._submitted=(0,o.EWP)(()=>this.submittedReactive()),this.submittedReactive=(0,o.vPA)(!1),this._directives=new Set,this.ngSubmit=new o.bkB,this.form=new y8({},u8(e),h8(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){r2.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),n2(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){r2.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){r2.then(()=>{const i=this._findContainer(e.path),r=new y8({});e$(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){r2.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){r2.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submittedReactive.set(!0),t$(this.form,this._directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!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)(o.rXU(zs,10),o.rXU(Zg,10),o.rXU(tv,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){1&i&&o.bIt("submit",function(l){return r.onSubmit(l)})("reset",function(){return r.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[o.Jv_([hae]),o.Vt3]})}}return n})();function n$(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}function i$(n){return"object"==typeof n&&null!==n&&2===Object.keys(n).length&&"value"in n&&"disabled"in n}const E8=class extends v8{constructor(t=null,e,i){super(_8(e),b8(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}),U3(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=i$(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){n$(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){n$(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){i$(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}},r$=E8,Aae={provide:df,useExisting:(0,o.Rfq)(()=>lx)},a$=Promise.resolve();let lx=(()=>{class n extends df{constructor(e,i,r,s,l,u){super(),this._changeDetectorRef=l,this.callSetDisabledState=u,this.control=new E8,this._registered=!1,this.name="",this.update=new o.bkB,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=M8(0,s)}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),C8(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(){n2(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){a$.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,r=0!==i&&(0,o.L39)(i);a$.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?function V3(n,t){return[...t.path,n]}(e,this._parent):[e]}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Il,9),o.rXU(zs,10),o.rXU(Zg,10),o.rXU(ma,10),o.rXU(o.gRc,8),o.rXU(tv,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[o.Jv_([Aae]),o.Vt3,o.OA$]})}}return n})();const S8=new o.nKC(""),yae={provide:df,useExisting:(0,o.Rfq)(()=>G3)};let G3=(()=>{class n extends df{set isDisabled(e){}static{this._ngModelWarningSentOnce=!1}constructor(e,i,r,s,l){super(),this._ngModelWarningConfig=s,this.callSetDisabledState=l,this.update=new o.bkB,this._ngModelWarningSent=!1,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=M8(0,r)}ngOnChanges(e){if(this._isControlChanged(e)){const i=e.form.previousValue;i&&H3(i,this,!1),n2(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}C8(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&H3(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)(o.rXU(zs,10),o.rXU(Zg,10),o.rXU(ma,10),o.rXU(S8,8),o.rXU(tv,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[o.Jv_([yae]),o.Vt3,o.OA$]})}}return n})();const wae={provide:Il,useExisting:(0,o.Rfq)(()=>s2)};let s2=(()=>{class n extends Il{get submitted(){return(0,o.O8t)(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}constructor(e,i,r){super(),this.callSetDisabledState=r,this._submitted=(0,o.EWP)(()=>this._submittedReactive()),this._submittedReactive=(0,o.vPA)(!1),this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new o.bkB,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&&(z3(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 n2(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){H3(e.control||null,e,!1),function uae(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._submittedReactive.set(!0),t$(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new Jse(this.control)),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this._submittedReactive.set(!1),this.form._events.next(new eae(this.form))}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,r=this.form.get(e.path);i!==r&&(H3(i||null,e),(n=>n instanceof E8)(r)&&(n2(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);e$(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function lae(n,t){return z3(n,t)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){w8(this.form,this),this._oldForm&&z3(this._oldForm,this)}_checkFormPresent(){}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(zs,10),o.rXU(Zg,10),o.rXU(tv,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){1&i&&o.bIt("submit",function(l){return r.onSubmit(l)})("reset",function(){return r.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[o.Jv_([wae]),o.Vt3,o.OA$]})}}return n})(),nv=(()=>{class n{constructor(){this._validator=R3}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):R3,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=o.FsC({type:n,features:[o.OA$]})}}return n})();const Rae={provide:zs,useExisting:(0,o.Rfq)(()=>j3),multi:!0};let j3=(()=>{class n extends nv{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=o.L39,this.createValidator=e=>Ij}enabled(e){return e}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=o.xGo(n)))(r||n)}})()}static{this.\u0275dir=o.FsC({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&&o.BMQ("required",r._enabled?"":null)},inputs:{required:"required"},features:[o.Jv_([Rae]),o.Vt3]})}}return n})(),x$=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=o.$C({type:n})}static{this.\u0275inj=o.G2t({})}}return n})(),a2=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:tv,useValue:e.callSetDisabledState??t2}]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=o.$C({type:n})}static{this.\u0275inj=o.G2t({imports:[x$]})}}return n})(),C$=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:S8,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:tv,useValue:e.callSetDisabledState??t2}]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=o.$C({type:n})}static{this.\u0275inj=o.G2t({imports:[x$]})}}return n})();const Hae=["switch"],Qae=["*"];function zae(n,t){1&n&&(o.j41(0,"span",10),o.qSk(),o.j41(1,"svg",12),o.nrm(2,"path",13),o.k0s(),o.j41(3,"svg",14),o.nrm(4,"path",15),o.k0s()())}const Gae=new o.nKC("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})}),jae={provide:ma,useExisting:(0,o.Rfq)(()=>l2),multi:!0};class M${constructor(t,e){this.source=t,this.checked=e}}let $ae=0,l2=(()=>{class n{_createChangeEvent(e){return new M$(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,s,l,u){this._elementRef=e,this._focusMonitor=i,this._changeDetectorRef=r,this.defaults=l,this._onChange=f=>{},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 o.bkB,this.toggleChange=new o.bkB,this.tabIndex=parseInt(s)||0,this.color=l.color||"accent",this._noopAnimations="NoopAnimations"===u,this.id=this._uniqueId="mat-mdc-slide-toggle-"+ ++$ae,this.hideIcon=l.hideIcon??!1,this.disabledInteractive=l.disabledInteractive??!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.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new M$(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT),o.rXU(Zl),o.rXU(o.gRc),o.kS0("tabindex"),o.rXU(Gae),o.rXU(o.bc$,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-slide-toggle"]],viewQuery:function(i,r){if(1&i&&o.GBs(Hae,5),2&i){let s;o.mGM(s=o.lsd())&&(r._switchElement=s.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,r){2&i&&(o.Mr5("id",r.id),o.BMQ("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),o.HbH(r.color?"mat-"+r.color:""),o.AVh("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:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",o.L39],color:"color",disabled:[2,"disabled","disabled",o.L39],disableRipple:[2,"disableRipple","disableRipple",o.L39],tabIndex:[2,"tabIndex","tabIndex",e=>null==e?0:(0,o.Udg)(e)],checked:[2,"checked","checked",o.L39],hideIcon:[2,"hideIcon","hideIcon",o.L39],disabledInteractive:[2,"disabledInteractive","disabledInteractive",o.L39]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],standalone:!0,features:[o.Jv_([jae,{provide:zs,useExisting:n,multi:!0}]),o.GFd,o.OA$,o.aNF],ngContentSelectors:Qae,decls:13,vars:27,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 s=o.RV6();o.NAR(),o.j41(0,"div",1)(1,"button",2,0),o.bIt("click",function(){return o.eBV(s),o.Njj(r._handleClick())}),o.nrm(3,"span",3),o.j41(4,"span",4)(5,"span",5)(6,"span",6),o.nrm(7,"span",7),o.k0s(),o.j41(8,"span",8),o.nrm(9,"span",9),o.k0s(),o.DNE(10,zae,5,0,"span",10),o.k0s()()(),o.j41(11,"label",11),o.bIt("click",function(u){return o.eBV(s),o.Njj(u.stopPropagation())}),o.SdG(12),o.k0s()()}if(2&i){const s=o.sdS(2);o.Y8G("labelPosition",r.labelPosition),o.R7$(),o.AVh("mdc-switch--selected",r.checked)("mdc-switch--unselected",!r.checked)("mdc-switch--checked",r.checked)("mdc-switch--disabled",r.disabled)("mat-mdc-slide-toggle-disabled-interactive",r.disabledInteractive),o.Y8G("tabIndex",r.disabled&&!r.disabledInteractive?-1:r.tabIndex)("disabled",r.disabled&&!r.disabledInteractive),o.BMQ("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)("aria-disabled",r.disabled&&r.disabledInteractive?"true":null),o.R7$(8),o.Y8G("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),o.R7$(),o.vxM(r.hideIcon?-1:10),o.R7$(),o.Y8G("for",r.buttonId),o.BMQ("id",r._labelId)}},dependencies:[gl,kI],styles:['.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;width:var(--mdc-switch-track-width)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mdc-switch-track-height);border-radius:var(--mdc-switch-track-shape, var(--mat-app-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity)}.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%;border-width:var(--mat-switch-track-outline-width);border-color:var(--mat-switch-track-outline-color, var(--mat-app-outline))}.cdk-high-contrast-active .mdc-switch__track::before,.cdk-high-contrast-active .mdc-switch__track::after{border-color:currentColor}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-switch-selected-track-outline-width);border-color:var(--mat-switch-selected-track-outline-color)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-switch-disabled-unselected-track-outline-width);border-color:var(--mat-switch-disabled-unselected-track-outline-color, var(--mat-app-on-surface))}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mdc-switch-unselected-track-color, var(--mat-app-surface-variant))}.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--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-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:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color, var(--mat-app-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color, var(--mat-app-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color, var(--mat-app-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color, var(--mat-app-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mdc-switch-selected-track-color, var(--mat-app-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.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::after{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-track-transition)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color, var(--mat-app-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color, var(--mat-app-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color, var(--mat-app-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color, var(--mat-app-on-surface))}.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);width:calc(100% - var(--mdc-switch-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;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);width:var(--mdc-switch-handle-width);height:var(--mdc-switch-handle-height);border-radius:var(--mdc-switch-handle-shape, var(--mat-app-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size);height:var(--mat-switch-unselected-handle-size);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 .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size);height:var(--mat-switch-selected-handle-size);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__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 .mdc-switch:active: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:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin)}.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)}.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}.cdk-high-contrast-active .mdc-switch__handle::before,.cdk-high-contrast-active .mdc-switch__handle::after{border-color:currentColor}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color, var(--mat-app-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color, var(--mat-app-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color, var(--mat-app-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color, var(--mat-app-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color, var(--mat-app-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color, var(--mat-app-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color, var(--mat-app-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color, var(--mat-app-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color, var(--mat-app-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color, var(--mat-app-on-surface))}.mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mdc-switch-state-layer-size);height:var(--mdc-switch-state-layer-size)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:75ms opacity 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-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-hover-state-layer-color, var(--mat-app-on-surface))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-focus-state-layer-color, var(--mat-app-on-surface))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-pressed-state-layer-color, var(--mat-app-on-surface));opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-selected-hover-state-layer-color, var(--mat-app-primary))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-selected-focus-state-layer-color, var(--mat-app-primary))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-selected-pressed-state-layer-color, var(--mat-app-primary));opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity)}.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--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size);height:var(--mdc-switch-unselected-icon-size);fill:var(--mdc-switch-unselected-icon-color, var(--mat-app-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color, var(--mat-app-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size);height:var(--mdc-switch-selected-icon-size);fill:var(--mdc-switch-selected-icon-color, var(--mat-app-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color, var(--mat-app-on-surface))}.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{-webkit-user-select:none;user-select:none;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.mat-mdc-slide-toggle-focused .mat-mdc-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-switch-label-text-color, var(--mat-app-on-surface));font-family:var(--mat-switch-label-text-font, var(--mat-app-body-medium-font));line-height:var(--mat-switch-label-text-line-height, var(--mat-app-body-medium-line-height));font-size:var(--mat-switch-label-text-size, var(--mat-app-body-medium-size));letter-spacing:var(--mat-switch-label-text-tracking, var(--mat-app-body-medium-tracking));font-weight:var(--mat-switch-label-text-weight, var(--mat-app-body-medium-weight))}.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-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}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}'],encapsulation:2,changeDetection:0})}}return n})();const Xae=["*",[["mat-toolbar-row"]]],Kae=["*","mat-toolbar-row"];let Yae=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,selectors:[["mat-toolbar-row"]],hostAttrs:[1,"mat-toolbar-row"],exportAs:["matToolbarRow"],standalone:!0})}}return n})(),Jg=(()=>{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)(o.rXU(o.aKT),o.rXU(Fo),o.rXU(V))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-toolbar"]],contentQueries:function(i,r,s){if(1&i&&o.wni(s,Yae,5),2&i){let l;o.mGM(l=o.lsd())&&(r._toolbarRows=l)}},hostAttrs:[1,"mat-toolbar"],hostVars:6,hostBindings:function(i,r){2&i&&(o.HbH(r.color?"mat-"+r.color:""),o.AVh("mat-toolbar-multiple-rows",r._toolbarRows.length>0)("mat-toolbar-single-row",0===r._toolbarRows.length))},inputs:{color:"color"},exportAs:["matToolbar"],standalone:!0,features:[o.aNF],ngContentSelectors:Kae,decls:2,vars:0,template:function(i,r){1&i&&(o.NAR(Xae),o.SdG(0),o.SdG(1,1))},styles:[".mat-toolbar{background:var(--mat-toolbar-container-background-color, var(--mat-app-surface));color:var(--mat-toolbar-container-text-color, var(--mat-app-on-surface))}.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, var(--mat-app-title-large-font));font-size:var(--mat-toolbar-title-text-size, var(--mat-app-title-large-size));line-height:var(--mat-toolbar-title-text-line-height, var(--mat-app-title-large-line-height));font-weight:var(--mat-toolbar-title-text-weight, var(--mat-app-title-large-weight));letter-spacing:var(--mat-toolbar-title-text-tracking, var(--mat-app-title-large-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, var(--mat-app-on-surface));--mdc-outlined-button-label-text-color:var(--mat-toolbar-container-text-color, var(--mat-app-on-surface))}.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})();class Zae extends Ai.B{constructor(t=1/0,e=1/0,i=Of){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:s,_windowTime:l}=this;e||(i.push(t),!r&&i.push(s.now()+l)),this._trimBuffer(),super.next(t)}_subscribe(t){this._throwIfClosed(),this._trimBuffer();const e=this._innerSubscribe(t),{_infiniteTimeWindow:i,_buffer:r}=this,s=r.slice();for(let l=0;lnew Ai.B,resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:r=!0}=n;return s=>{let l,u,f,p=0,m=!1,_=!1;const b=()=>{u?.unsubscribe(),u=void 0},w=()=>{b(),l=f=void 0,m=_=!1},F=()=>{const D=l;w(),D?.unsubscribe()};return(0,Fr.N)((D,T)=>{p++,!_&&!m&&b();const I=f=f??t();T.add(()=>{p--,0===p&&!_&&!m&&(u=k8(F,r))}),I.subscribe(T),!l&&p>0&&(l=new B8.Ms({next:O=>I.next(O),error:O=>{_=!0,b(),u=k8(w,e,O),I.error(O)},complete:()=>{m=!0,b(),u=k8(w,i),I.complete()}}),Pr(D).subscribe(l))})(s)}}function k8(n,t,...e){if(!0===t)return void n();if(!1===t)return;const i=new B8.Ms({next:()=>{i.unsubscribe(),n()}});return Pr(t(...e)).subscribe(i)}class ele{constructor(t){this._box=t,this._destroyed=new Ai.B,this._resizeSubject=new Ai.B,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 Xr.c(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(ur(e=>e.some(i=>i.target===t)),function Jae(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,q3({connector:()=>new Zae(i,t,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:r})}({bufferSize:1,refCount:!0}),vo(this._destroyed))),this._elementObservables.get(t)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}}let tle=(()=>{class n{constructor(){this._observers=new Map,this._ngZone=(0,o.WQX)(o.SKi)}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 ele(r)),this._observers.get(r).observe(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const nle=["notch"],ile=["matFormFieldNotchedOutline",""],rle=["*"],ole=["textField"],sle=["iconPrefixContainer"],ale=["textPrefixContainer"],lle=["iconSuffixContainer"],cle=["textSuffixContainer"],dle=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],ule=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function hle(n,t){1&n&&o.nrm(0,"span",21)}function fle(n,t){if(1&n&&(o.j41(0,"label",20),o.SdG(1,1),o.DNE(2,hle,1,0,"span",21),o.k0s()),2&n){const e=o.XpG(2);o.Y8G("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),o.BMQ("for",e._control.disableAutomaticLabeling?null:e._control.id),o.R7$(2),o.vxM(!e.hideRequiredMarker&&e._control.required?2:-1)}}function ple(n,t){if(1&n&&o.DNE(0,fle,3,5,"label",20),2&n){const e=o.XpG();o.vxM(e._hasFloatingLabel()?0:-1)}}function Ale(n,t){1&n&&o.nrm(0,"div",7)}function mle(n,t){}function gle(n,t){if(1&n&&o.DNE(0,mle,0,0,"ng-template",13),2&n){o.XpG(2);const e=o.sdS(1);o.Y8G("ngTemplateOutlet",e)}}function _le(n,t){if(1&n&&(o.j41(0,"div",9),o.DNE(1,gle,1,1,null,13),o.k0s()),2&n){const e=o.XpG();o.Y8G("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),o.R7$(),o.vxM(e._forceDisplayInfixLabel()?-1:1)}}function ble(n,t){1&n&&(o.j41(0,"div",10,2),o.SdG(2,2),o.k0s())}function vle(n,t){1&n&&(o.j41(0,"div",11,3),o.SdG(2,3),o.k0s())}function yle(n,t){}function wle(n,t){if(1&n&&o.DNE(0,yle,0,0,"ng-template",13),2&n){o.XpG();const e=o.sdS(1);o.Y8G("ngTemplateOutlet",e)}}function xle(n,t){1&n&&(o.j41(0,"div",14,4),o.SdG(2,4),o.k0s())}function Cle(n,t){1&n&&(o.j41(0,"div",15,5),o.SdG(2,5),o.k0s())}function Mle(n,t){1&n&&o.nrm(0,"div",16)}function Ele(n,t){if(1&n&&(o.j41(0,"div",18),o.SdG(1,6),o.k0s()),2&n){const e=o.XpG();o.Y8G("@transitionMessages",e._subscriptAnimationState)}}function Sle(n,t){if(1&n&&(o.j41(0,"mat-hint",22),o.EFF(1),o.k0s()),2&n){const e=o.XpG(2);o.Y8G("id",e._hintLabelId),o.R7$(),o.JRh(e.hintLabel)}}function Tle(n,t){if(1&n&&(o.j41(0,"div",19),o.DNE(1,Sle,2,2,"mat-hint",22),o.SdG(2,7),o.nrm(3,"div",23),o.SdG(4,8),o.k0s()),2&n){const e=o.XpG();o.Y8G("@transitionMessages",e._subscriptAnimationState),o.R7$(),o.vxM(e.hintLabel?1:-1)}}let Uu=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,selectors:[["mat-label"]],standalone:!0})}}return n})(),Ile=0;const E$=new o.nKC("MatError");let S$=(()=>{class n{constructor(e,i){this.id="mat-mdc-error-"+Ile++,e||i.nativeElement.setAttribute("aria-live","polite")}static{this.\u0275fac=function(i){return new(i||n)(o.kS0("aria-live"),o.rXU(o.aKT))}}static{this.\u0275dir=o.FsC({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&&o.Mr5("id",r.id)},inputs:{id:"id"},standalone:!0,features:[o.Jv_([{provide:E$,useExisting:n}])]})}}return n})(),Fle=0,R8=(()=>{class n{constructor(){this.align="start",this.id="mat-mdc-hint-"+Fle++}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({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&&(o.Mr5("id",r.id),o.BMQ("align",null),o.AVh("mat-mdc-form-field-hint-end","end"===r.align))},inputs:{align:"align",id:"id"},standalone:!0})}}return n})();const T$=new o.nKC("MatPrefix");let I$=(()=>{class n{constructor(){this._isText=!1}set _isTextSelector(e){this._isText=!0}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","matPrefix",""],["","matIconPrefix",""],["","matTextPrefix",""]],inputs:{_isTextSelector:[0,"matTextPrefix","_isTextSelector"]},standalone:!0,features:[o.Jv_([{provide:T$,useExisting:n}])]})}}return n})();const Dle=new o.nKC("MatSuffix"),F$=new o.nKC("FloatingLabelParent");let D$=(()=>{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=(0,o.WQX)(tle),this._ngZone=(0,o.WQX)(o.SKi),this._parent=(0,o.WQX)(F$),this._resizeSubscription=new un.yU}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return function Ble(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)(o.rXU(o.aKT))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,r){2&i&&o.AVh("mdc-floating-label--float-above",r.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"},standalone:!0})}}return n})();const B$="mdc-line-ripple--active",W3="mdc-line-ripple--deactivating";let k$=(()=>{class n{constructor(e,i){this._elementRef=e,this._handleTransitionEnd=r=>{const s=this._elementRef.nativeElement.classList,l=s.contains(W3);"opacity"===r.propertyName&&l&&s.remove(B$,W3)},i.runOutsideAngular(()=>{e.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(W3),e.add(B$)}deactivate(){this._elementRef.nativeElement.classList.add(W3)}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT),o.rXU(o.SKi))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"],standalone:!0})}}return n})(),R$=(()=>{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)(o.rXU(o.aKT),o.rXU(o.SKi))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,r){if(1&i&&o.GBs(nle,5),2&i){let s;o.mGM(s=o.lsd())&&(r._notch=s.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,r){2&i&&o.AVh("mdc-notched-outline--notched",r.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},standalone:!0,features:[o.aNF],attrs:ile,ngContentSelectors:rle,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,r){1&i&&(o.NAR(),o.nrm(0,"div",1),o.j41(1,"div",2,0),o.SdG(3),o.k0s(),o.nrm(4,"div",3))},encapsulation:2,changeDetection:0})}}return n})();const kle={transitionMessages:(0,On.hZ)("transitionMessages",[(0,On.wk)("enter",(0,On.iF)({opacity:1,transform:"translateY(0%)"})),(0,On.kY)("void => enter",[(0,On.iF)({opacity:0,transform:"translateY(-5px)"}),(0,On.i0)("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let P8=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n})}}return n})();const O8=new o.nKC("MatFormField"),Rle=new o.nKC("MAT_FORM_FIELD_DEFAULT_OPTIONS");let P$=0,Vu=(()=>{class n{get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=mi(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._needsOutlineLabelOffsetUpdate=!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,s,l,u,f,p){this._elementRef=e,this._changeDetectorRef=i,this._dir=s,this._platform=l,this._defaults=u,this._animationMode=f,this._labelChild=(0,o.sbv)(Uu),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-"+P$++,this._hintLabelId="mat-mdc-hint-"+P$++,this._subscriptAnimationState="",this._destroyed=new Ai.B,this._isFocused=null,this._needsOutlineLabelOffsetUpdate=!1,this._previousControl=null,this._injector=(0,o.WQX)(o.zZn),this.getLabelId=(0,o.EWP)(()=>this._hasFloatingLabel()?this._labelId:null),this._hasFloatingLabel=(0,o.EWP)(()=>!!this._labelChild()),u&&(u.appearance&&(this.appearance=u.appearance),this._hideRequiredMarker=!!u?.hideRequiredMarker,u.color&&(this.color=u.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._previousControl=this._control)}ngOnDestroy(){this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(e){const i=this._control,r="mat-mdc-form-field-type-";e&&this._elementRef.nativeElement.classList.remove(r+e.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(r+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(vo(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(),Wl(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._needsOutlineLabelOffsetUpdate=!0),(0,o.Tzd)(()=>{this._needsOutlineLabelOffsetUpdate&&(this._needsOutlineLabelOffsetUpdate=!1,this._updateOutlineLabelOffset())},{injector:this._injector}),this._dir.change.pipe(vo(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0)}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_shouldLabelFloat(){return!!this._hasFloatingLabel()&&(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(s=>"start"===s.align):null,r=this._hintChildren?this._hintChildren.find(s=>"end"===s.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._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._needsOutlineLabelOffsetUpdate=!0);const i=this._iconPrefixContainer?.nativeElement,r=this._textPrefixContainer?.nativeElement,s=this._iconSuffixContainer?.nativeElement,l=this._textSuffixContainer?.nativeElement,u=i?.getBoundingClientRect().width??0,f=r?.getBoundingClientRect().width??0,p=s?.getBoundingClientRect().width??0,m=l?.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"} * (${u+f}px + var(--mat-mdc-form-field-label-offset-x, 0px))))\n )`,this._elementRef.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${u+f+p+m}px)`)}_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)(o.rXU(o.aKT),o.rXU(o.gRc),o.rXU(o.SKi),o.rXU(Zs),o.rXU(Fo),o.rXU(Rle,8),o.rXU(o.bc$,8),o.rXU(V))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-form-field"]],contentQueries:function(i,r,s){if(1&i&&(o.C6U(s,r._labelChild,Uu,5),o.wni(s,P8,5),o.wni(s,T$,5),o.wni(s,Dle,5),o.wni(s,E$,5),o.wni(s,R8,5)),2&i){let l;o.NyB(),o.mGM(l=o.lsd())&&(r._formFieldControl=l.first),o.mGM(l=o.lsd())&&(r._prefixChildren=l),o.mGM(l=o.lsd())&&(r._suffixChildren=l),o.mGM(l=o.lsd())&&(r._errorChildren=l),o.mGM(l=o.lsd())&&(r._hintChildren=l)}},viewQuery:function(i,r){if(1&i&&(o.GBs(ole,5),o.GBs(sle,5),o.GBs(ale,5),o.GBs(lle,5),o.GBs(cle,5),o.GBs(D$,5),o.GBs(R$,5),o.GBs(k$,5)),2&i){let s;o.mGM(s=o.lsd())&&(r._textField=s.first),o.mGM(s=o.lsd())&&(r._iconPrefixContainer=s.first),o.mGM(s=o.lsd())&&(r._textPrefixContainer=s.first),o.mGM(s=o.lsd())&&(r._iconSuffixContainer=s.first),o.mGM(s=o.lsd())&&(r._textSuffixContainer=s.first),o.mGM(s=o.lsd())&&(r._floatingLabel=s.first),o.mGM(s=o.lsd())&&(r._notchedOutline=s.first),o.mGM(s=o.lsd())&&(r._lineRipple=s.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,r){2&i&&o.AVh("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:[o.Jv_([{provide:O8,useExisting:n},{provide:F$,useExisting:n}]),o.aNF],ngContentSelectors:ule,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[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"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,r){if(1&i){const s=o.RV6();o.NAR(dle),o.DNE(0,ple,1,1,"ng-template",null,0,o.C5r),o.j41(2,"div",6,1),o.bIt("click",function(u){return o.eBV(s),o.Njj(r._control.onContainerClick(u))}),o.DNE(4,Ale,1,0,"div",7),o.j41(5,"div",8),o.DNE(6,_le,2,2,"div",9)(7,ble,3,0,"div",10)(8,vle,3,0,"div",11),o.j41(9,"div",12),o.DNE(10,wle,1,1,null,13),o.SdG(11),o.k0s(),o.DNE(12,xle,3,0,"div",14)(13,Cle,3,0,"div",15),o.k0s(),o.DNE(14,Mle,1,0,"div",16),o.k0s(),o.j41(15,"div",17),o.DNE(16,Ele,2,1,"div",18)(17,Tle,5,2,"div",19),o.k0s()}if(2&i){let s;o.R7$(2),o.AVh("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),o.R7$(2),o.vxM(r._hasOutline()||r._control.disabled?-1:4),o.R7$(2),o.vxM(r._hasOutline()?6:-1),o.R7$(),o.vxM(r._hasIconPrefix?7:-1),o.R7$(),o.vxM(r._hasTextPrefix?8:-1),o.R7$(2),o.vxM(!r._hasOutline()||r._forceDisplayInfixLabel()?10:-1),o.R7$(2),o.vxM(r._hasTextSuffix?12:-1),o.R7$(),o.vxM(r._hasIconSuffix?13:-1),o.R7$(),o.vxM(r._hasOutline()?-1:14),o.R7$(),o.AVh("mat-mdc-form-field-subscript-dynamic-size","dynamic"===r.subscriptSizing),o.R7$(),o.vxM("error"===(s=r._getDisplayedMessages())?16:"hint"===s?17:-1)}},dependencies:[D$,R$,vi,k$,R8],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.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--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-app-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-app-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.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, var(--mat-app-on-surface-variant))}.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.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-app-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-app-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.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, var(--mat-app-on-surface-variant))}.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.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color)}.mdc-text-field--disabled .cdk-high-contrast-active .mdc-text-field__input{background-color:Window}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-app-corner-extra-small-top));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-app-corner-extra-small-top))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-app-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color)}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;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{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.cdk-high-contrast-active .mdc-text-field--disabled .mdc-floating-label{z-index:1}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-app-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-app-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-app-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-app-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-app-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-app-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-app-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-app-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-app-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-app-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-app-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-app-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-app-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-app-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-app-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.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-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-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-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::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{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-app-outline));border-width:var(--mdc-outlined-text-field-outline-width)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-app-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-app-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-app-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{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;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-app-on-surface-variant))}.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, var(--mat-app-on-surface))}.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:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-app-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-app-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height)}.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, var(--mat-app-primary))}.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, var(--mat-app-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.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-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, var(--mat-app-error))}.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, var(--mat-app-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-app-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-app-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-app-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-app-body-small-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, var(--mat-app-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-app-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, var(--mat-app-on-surface-variant))}[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, var(--mat-app-primary))}.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, var(--mat-app-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-app-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-app-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-app-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-app-body-large-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, var(--mat-app-on-surface-variant))}.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, var(--mat-app-on-surface-variant))}.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, var(--mat-app-error))}.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, var(--mat-app-on-error-container))}.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, var(--mat-app-error))}.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-infix:has(textarea[cols]){width:auto}.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-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .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--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-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:[kle.transitionMessages]},changeDetection:0})}}return n})();class X3{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 Ai.B,e&&e.length&&(t?e.forEach(s=>this._markSelected(s)):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(s=>this._markSelected(s)),e.filter(s=>!i.has(this._getConcreteValue(s,i))).forEach(s=>this._unmarkSelected(s));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 L$=(()=>{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=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function Xp(n,t){return(0,Fr.N)((e,i)=>{let r=null,s=0,l=!1;const u=()=>l&&!r&&i.complete();e.subscribe((0,sr._)(i,f=>{r?.unsubscribe();let p=0;const m=s++;Pr(n(f,m)).subscribe(r=(0,sr._)(i,_=>i.next(t?t(f,_,m,p++):_),()=>{r=null,u()}))},()=>{l=!0,u()}))})}const Lle=["trigger"],Ule=["panel"],Vle=[[["mat-select-trigger"]],"*"],Hle=["mat-select-trigger","*"];function Qle(n,t){if(1&n&&(o.j41(0,"span",4),o.EFF(1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.JRh(e.placeholder)}}function zle(n,t){1&n&&o.SdG(0)}function Gle(n,t){if(1&n&&(o.j41(0,"span",11),o.EFF(1),o.k0s()),2&n){const e=o.XpG(2);o.R7$(),o.JRh(e.triggerValue)}}function jle(n,t){if(1&n&&(o.j41(0,"span",5),o.DNE(1,zle,1,0)(2,Gle,2,1,"span",11),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.vxM(e.customTrigger?1:2)}}function $le(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",12,1),o.bIt("@transformPanel.done",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s._panelDoneAnimatingStream.next(r.toState))})("keydown",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s._handleKeydown(r))}),o.SdG(2,1),o.k0s()}if(2&n){const e=o.XpG();o.ZvI("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),o.Y8G("ngClass",e.panelClass)("@transformPanel","showing"),o.BMQ("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const qle={transformPanelWrap:(0,On.hZ)("transformPanelWrap",[(0,On.kY)("* => void",(0,On.P)("@transformPanel",[(0,On.MA)()],{optional:!0}))]),transformPanel:(0,On.hZ)("transformPanel",[(0,On.wk)("void",(0,On.iF)({opacity:0,transform:"scale(1, 0.8)"})),(0,On.kY)("void => showing",(0,On.i0)("120ms cubic-bezier(0, 0, 0.2, 1)",(0,On.iF)({opacity:1,transform:"scale(1, 1)"}))),(0,On.kY)("* => void",(0,On.i0)("100ms linear",(0,On.iF)({opacity:0})))])};let U$=0;const V$=new o.nKC("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{const n=(0,o.WQX)(Us);return()=>n.scrollStrategies.reposition()}}),Xle=new o.nKC("MAT_SELECT_CONFIG"),H$=new o.nKC("MatSelectTrigger");class Kle{constructor(t,e){this.source=t,this.value=e}}let t0=(()=>{class n{_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const r=this.panel.nativeElement,s=function UO(n,t,e){if(e.length){let i=t.toArray(),r=e.toArray(),s=0;for(let l=0;le+i?Math.max(0,n-i+t):e}(l.offsetTop,l.offsetHeight,r.scrollTop,r.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new Kle(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(d8.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,s,l,u,f,p,m,_,b,w,F,D){this._viewportRuler=e,this._changeDetectorRef=i,this._elementRef=l,this._dir=u,this._parentFormField=m,this.ngControl=_,this._liveAnnouncer=F,this._defaultOptions=D,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=(T,I)=>T===I,this._uid="mat-select-"+U$++,this._triggerAriaLabelledBy=null,this._destroy=new Ai.B,this.stateChanges=new Ai.B,this.disableAutomaticLabeling=!0,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+U$++,this._panelDoneAnimatingStream=new Ai.B,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 Ai.B,this.optionSelectionChanges=Gy(()=>{const T=this.options;return T?T.changes.pipe(cu(T),Xp(()=>Wl(...T.map(I=>I.onSelectionChange)))):this._initialized.pipe(Xp(()=>this.optionSelectionChanges))}),this.openedChange=new o.bkB,this._openedStream=this.openedChange.pipe(ur(T=>T),(0,$n.T)(()=>{})),this._closedStream=this.openedChange.pipe(ur(T=>!T),(0,$n.T)(()=>{})),this.selectionChange=new o.bkB,this.valueChange=new o.bkB,this._trackedModal=null,this._skipPredicate=T=>!this.panelOpen&&T.disabled,this.ngControl&&(this.ngControl.valueAccessor=this),null!=D?.typeaheadDebounceInterval&&(this.typeaheadDebounceInterval=D.typeaheadDebounceInterval),this._errorStateTracker=new du(s,_,p,f,this.stateChanges),this._scrollStrategyFactory=w,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(b)||0,this.id=this.id}ngOnInit(){this._selectionModel=new X3(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(Rr(),vo(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen)),this._viewportRuler.change().pipe(vo(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(vo(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(cu(null),vo(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&&jT(this._trackedModal,"aria-owns",i),Oy(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(jT(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,s=13===i||32===i,l=this._keyManager;if(!l.isTyping()&&s&&!Yl(e)||(this.multiple||e.altKey)&&r)e.preventDefault(),this.open();else if(!this.multiple){const u=this.selected;l.onKeydown(e);const f=this.selected;f&&u!==f&&this._liveAnnouncer.announce(f.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,r=e.keyCode,s=40===r||38===r,l=i.isTyping();if(s&&e.altKey)e.preventDefault(),this.close();else if(l||13!==r&&32!==r||!i.activeItem||Yl(e))if(!l&&this._multiple&&65===r&&e.ctrlKey){e.preventDefault();const u=this.options.some(f=>!f.disabled&&!f.selected);this.options.forEach(f=>{f.disabled||(u?f.select():f.deselect())})}else{const u=i.activeItemIndex;i.onKeydown(e),this._multiple&&s&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==u&&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(ms(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 Py?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 WT(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=Wl(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(vo(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Wl(...this.options.map(i=>i._stateChanges)).pipe(vo(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)(o.rXU(_T),o.rXU(o.gRc),o.rXU(o.SKi),o.rXU(CI),o.rXU(o.aKT),o.rXU(Zs,8),o.rXU(o2,8),o.rXU(s2,8),o.rXU(O8,8),o.rXU(df,10),o.kS0("tabindex"),o.rXU(V$),o.rXU(bO),o.rXU(Xle,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-select"]],contentQueries:function(i,r,s){if(1&i&&(o.wni(s,H$,5),o.wni(s,gd,5),o.wni(s,FI,5)),2&i){let l;o.mGM(l=o.lsd())&&(r.customTrigger=l.first),o.mGM(l=o.lsd())&&(r.options=l),o.mGM(l=o.lsd())&&(r.optionGroups=l)}},viewQuery:function(i,r){if(1&i&&(o.GBs(Lle,5),o.GBs(Ule,5),o.GBs(GT,5)),2&i){let s;o.mGM(s=o.lsd())&&(r.trigger=s.first),o.mGM(s=o.lsd())&&(r.panel=s.first),o.mGM(s=o.lsd())&&(r._overlayDir=s.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,r){1&i&&o.bIt("keydown",function(l){return r._handleKeydown(l)})("focus",function(){return r._onFocus()})("blur",function(){return r._onBlur()}),2&i&&(o.BMQ("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()),o.AVh("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:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",o.L39],disableRipple:[2,"disableRipple","disableRipple",o.L39],tabIndex:[2,"tabIndex","tabIndex",e=>null==e?0:(0,o.Udg)(e)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",o.L39],placeholder:"placeholder",required:[2,"required","required",o.L39],multiple:[2,"multiple","multiple",o.L39],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",o.L39],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",o.Udg],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],standalone:!0,features:[o.Jv_([{provide:P8,useExisting:n},{provide:II,useExisting:n}]),o.GFd,o.OA$,o.aNF],ngContentSelectors:Hle,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-value-text"],[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-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,r){if(1&i){const s=o.RV6();o.NAR(Vle),o.j41(0,"div",2,0),o.bIt("click",function(){return o.eBV(s),o.Njj(r.open())}),o.j41(3,"div",3),o.DNE(4,Qle,2,1,"span",4)(5,jle,3,1,"span",5),o.k0s(),o.j41(6,"div",6)(7,"div",7),o.qSk(),o.j41(8,"svg",8),o.nrm(9,"path",9),o.k0s()()()(),o.DNE(10,$le,3,9,"ng-template",10),o.bIt("backdropClick",function(){return o.eBV(s),o.Njj(r.close())})("attach",function(){return o.eBV(s),o.Njj(r._onAttached())})("detach",function(){return o.eBV(s),o.Njj(r.close())})}if(2&i){const s=o.sdS(1);o.R7$(3),o.BMQ("id",r._valueId),o.R7$(),o.vxM(r.empty?4:5),o.R7$(6),o.Y8G("cdkConnectedOverlayPanelClass",r._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",r._scrollStrategy)("cdkConnectedOverlayOrigin",r._preferredOverlayOrigin||s)("cdkConnectedOverlayOpen",r.panelOpen)("cdkConnectedOverlayPositions",r._positions)("cdkConnectedOverlayWidth",r._overlayWidth)}},dependencies:[Py,GT,En],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, var(--mat-app-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-app-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-app-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-app-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-app-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-app-body-large-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, var(--mat-app-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-app-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-app-primary))}.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, var(--mat-app-surface-container))}.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, var(--mat-app-on-surface-variant))}._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:[qle.transformPanel]},changeDetection:0})}}return n})(),Q$=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,selectors:[["mat-select-trigger"]],standalone:!0,features:[o.Jv_([{provide:H$,useExisting:n}])]})}}return n})();const Yle=["*"],ece=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],tce=["[mat-card-avatar], [matCardAvatar]","mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]","*"],nce=new o.nKC("MAT_CARD_CONFIG");let c2=(()=>{class n{constructor(e){this.appearance=e?.appearance||"raised"}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(nce,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,r){2&i&&o.AVh("mat-mdc-card-outlined","outlined"===r.appearance)("mdc-card--outlined","outlined"===r.appearance)},inputs:{appearance:"appearance"},exportAs:["matCard"],standalone:!0,features:[o.aNF],ngContentSelectors:Yle,decls:1,vars:0,template:function(i,r){1&i&&(o.NAR(),o.SdG(0))},styles:['.mat-mdc-card{display:flex;flex-direction:column;box-sizing:border-box;position:relative;border-style:solid;border-width:0;background-color:var(--mdc-elevated-card-container-color, var(--mat-app-surface-container-low));border-color:var(--mdc-elevated-card-container-color, var(--mat-app-surface-container-low));border-radius:var(--mdc-elevated-card-container-shape, var(--mat-app-corner-medium));box-shadow:var(--mdc-elevated-card-container-elevation, var(--mat-app-level1))}.mat-mdc-card::after{position:absolute;top:0;left:0;width:100%;height:100%;border:solid 1px rgba(0,0,0,0);content:"";display:block;pointer-events:none;box-sizing:border-box;border-radius:var(--mdc-elevated-card-container-shape, var(--mat-app-corner-medium))}.mat-mdc-card-outlined{background-color:var(--mdc-outlined-card-container-color, var(--mat-app-surface));border-radius:var(--mdc-outlined-card-container-shape, var(--mat-app-corner-medium));border-width:var(--mdc-outlined-card-outline-width);border-color:var(--mdc-outlined-card-outline-color, var(--mat-app-outline-variant));box-shadow:var(--mdc-outlined-card-container-elevation, var(--mat-app-level0))}.mat-mdc-card-outlined::after{border:none}.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}.mat-mdc-card-actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font, var(--mat-app-title-large-font));line-height:var(--mat-card-title-text-line-height, var(--mat-app-title-large-line-height));font-size:var(--mat-card-title-text-size, var(--mat-app-title-large-size));letter-spacing:var(--mat-card-title-text-tracking, var(--mat-app-title-large-tracking));font-weight:var(--mat-card-title-text-weight, var(--mat-app-title-large-weight))}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color, var(--mat-app-on-surface));font-family:var(--mat-card-subtitle-text-font, var(--mat-app-title-medium-font));line-height:var(--mat-card-subtitle-text-line-height, var(--mat-app-title-medium-line-height));font-size:var(--mat-card-subtitle-text-size, var(--mat-app-title-medium-size));letter-spacing:var(--mat-card-subtitle-text-tracking, var(--mat-app-title-medium-tracking));font-weight:var(--mat-card-subtitle-text-weight, var(--mat-app-title-medium-weight))}.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})(),z$=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,selectors:[["mat-card-content"]],hostAttrs:[1,"mat-mdc-card-content"],standalone:!0})}}return n})(),G$=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-mdc-card-header"],standalone:!0,features:[o.aNF],ngContentSelectors:tce,decls:4,vars:0,consts:[[1,"mat-mdc-card-header-text"]],template:function(i,r){1&i&&(o.NAR(ece),o.SdG(0),o.j41(1,"div",0),o.SdG(2,1),o.k0s(),o.SdG(3,2))},encapsulation:2,changeDetection:0})}}return n})();const ace=["knob"],lce=["valueIndicatorContainer"];function cce(n,t){if(1&n&&(o.j41(0,"div",2,1)(2,"div",5)(3,"span",6),o.EFF(4),o.k0s()()()),2&n){const e=o.XpG();o.R7$(4),o.JRh(e.valueIndicatorText)}}const dce=["trackActive"],uce=["*"];function hce(n,t){if(1&n&&o.nrm(0,"div"),2&n){const e=t.$implicit,i=t.$index,r=o.XpG(3);o.HbH(0===e?"mdc-slider__tick-mark--active":"mdc-slider__tick-mark--inactive"),o.xc7("transform",r._calcTickMarkTransform(i))}}function fce(n,t){if(1&n&&o.Z7z(0,hce,1,4,"div",8,o.Vm6),2&n){const e=o.XpG(2);o.Dyx(e._tickMarks)}}function pce(n,t){if(1&n&&(o.j41(0,"div",6,1),o.DNE(2,fce,2,0),o.k0s()),2&n){const e=o.XpG();o.R7$(2),o.vxM(e._cachedWidth?2:-1)}}function Ace(n,t){if(1&n&&o.nrm(0,"mat-slider-visual-thumb",7),2&n){const e=o.XpG();o.Y8G("discrete",e.discrete)("thumbPosition",1)("valueIndicatorText",e.startValueIndicatorText)}}var qi=function(n){return n[n.START=1]="START",n[n.END=2]="END",n}(qi||{}),cx=function(n){return n[n.ACTIVE=0]="ACTIVE",n[n.INACTIVE=1]="INACTIVE",n}(cx||{});const K3=new o.nKC("_MatSlider"),j$=new o.nKC("_MatSliderThumb"),$$=new o.nKC("_MatSliderRangeThumb"),q$=new o.nKC("_MatSliderVisualThumb");let mce=(()=>{class n{constructor(e,i,r,s){this._cdr=e,this._ngZone=i,this._slider=s,this._isHovered=!1,this._isActive=!1,this._isValueIndicatorVisible=!1,this._platform=(0,o.WQX)(Fo),this._onPointerMove=l=>{if(this._sliderInput._isFocused)return;const u=this._hostElement.getBoundingClientRect(),f=this._slider._isCursorOnSliderThumb(l,u);this._isHovered=f,f?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=l=>{0===l.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(){const e=this._slider._getInput(this.thumbPosition);e&&(this._ripple.radius=24,this._sliderInput=e,this._sliderInputEl=this._sliderInput._hostElement,this._ngZone.runOutsideAngular(()=>{const i=this._sliderInputEl;i.addEventListener("pointermove",this._onPointerMove),i.addEventListener("pointerdown",this._onDragStart),i.addEventListener("pointerup",this._onDragEnd),i.addEventListener("pointerleave",this._onMouseLeave),i.addEventListener("focus",this._onFocus),i.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===Vs.FADING_IN||e?.state===Vs.VISIBLE}_showRipple(e,i){if(!this._slider.disabled&&(this._showValueIndicator(),this._slider._isRange&&this._slider._getThumb(this.thumbPosition===qi.START?qi.END:qi.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===qi.START?qi.END:qi.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)(o.rXU(o.gRc),o.rXU(o.SKi),o.rXU(o.aKT),o.rXU(K3))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-slider-visual-thumb"]],viewQuery:function(i,r){if(1&i&&(o.GBs(gl,5),o.GBs(ace,5),o.GBs(lce,5)),2&i){let s;o.mGM(s=o.lsd())&&(r._ripple=s.first),o.mGM(s=o.lsd())&&(r._knob=s.first),o.mGM(s=o.lsd())&&(r._valueIndicatorContainer=s.first)}},hostAttrs:[1,"mdc-slider__thumb","mat-mdc-slider-visual-thumb"],inputs:{discrete:"discrete",thumbPosition:"thumbPosition",valueIndicatorText:"valueIndicatorText"},standalone:!0,features:[o.Jv_([{provide:q$,useExisting:n}]),o.aNF],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&&(o.DNE(0,cce,5,1,"div",2),o.nrm(1,"div",3,0)(3,"div",4)),2&i&&(o.vxM(r.discrete?0:-1),o.R7$(3),o.Y8G("matRippleDisabled",!0))},dependencies:[gl],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})(),W$=(()=>{class n{get disabled(){return this._disabled}set disabled(e){this._disabled=e;const i=this._getInput(qi.END),r=this._getInput(qi.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(qi.END),r=this._getInput(qi.START),s=i.value,l=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),s!==i.value&&this._onValueChange(i),l!==r.value&&this._onValueChange(r)}_updateMaxNonRange(e){const i=this._getInput(qi.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(qi.END),i=this._getInput(qi.START),r=e.value,s=i.value,l=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`${f}`,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=(0,o.WQX)(Fo),this._knobRadius=8,this._thumbsOverlap=!1,this._noopAnimations="NoopAnimations"===u,this._dirChangeSubscription=this._dir.change.subscribe(()=>this._onDirChange()),this._isRtl="rtl"===this._dir.value}ngAfterViewInit(){this._platform.isBrowser&&this._updateDimensions();const e=this._getInput(qi.END),i=this._getInput(qi.START);this._isRange=!!e&&!!i,this._cdr.detectChanges();const r=this._getThumb(qi.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(qi.END),i=this._getInput(qi.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(qi.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(qi.START)._isActive||this._getThumb(qi.END)._isActive}_getValue(e=qi.END){const i=this._getInput(e);return i?i.value:this.min}_skipUpdate(){return!(!this._getInput(qi.START)?._skipUIUpdate&&!this._getInput(qi.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(qi.END),i=this._getInput(qi.START);e._updateThumbUIByValue(),i._updateThumbUIByValue(),e._updateStaticStyles(),i._updateStaticStyles(),e._updateMinMax(),i._updateMinMax(),e._updateWidthInactive(),i._updateWidthInactive()}else{const e=this._getInput(qi.END);e&&e._updateThumbUIByValue()}this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.detectChanges()}}_areThumbsOverlapping(){const e=this._getInput(qi.START),i=this._getInput(qi.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===qi.END?qi.END:qi.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.set(i):e._hostElement.setAttribute("aria-valuetext",i),this.discrete){e.thumbPosition===qi.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(qi.END),i=this._getInput(qi.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.round((i-this.min)/e),0),s=Math.max(Math.round((this.max-i)/e),0);this._isRtl?r++:s++,this._tickMarks=Array(r).fill(cx.ACTIVE).concat(Array(s).fill(cx.INACTIVE))}_updateTickMarkUIRange(e){const i=this._getValue(),r=this._getValue(qi.START),s=Math.max(Math.round((r-this.min)/e),0),l=Math.max(Math.round((i-r)/e)+1,0),u=Math.max(Math.round((this.max-i)/e),0);this._tickMarks=Array(s).fill(cx.INACTIVE).concat(Array(l).fill(cx.ACTIVE),Array(u).fill(cx.INACTIVE))}_getInput(e){return e===qi.END&&this._input?this._input:this._inputs?.length?e===qi.START?this._inputs.first:this._inputs.last:void 0}_getThumb(e){return e===qi.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,f=e.clientY-(i.y+r);return Math.pow(e.clientX-(i.x+r),2)+Math.pow(f,2)Y3),multi:!0};let Y3=(()=>{class n{get value(){return(0,o.Udg)(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(0,o.Udg)(this._hostElement.min,0)}set min(e){this._hostElement.min=e+"",this._cdr.detectChanges()}get max(){return(0,o.Udg)(this._hostElement.max,0)}set max(e){this._hostElement.max=e+"",this._cdr.detectChanges()}get step(){return(0,o.Udg)(this._hostElement.step,0)}set step(e){this._hostElement.step=e+"",this._cdr.detectChanges()}get disabled(){return(0,o.L39)(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,s){this._ngZone=e,this._elementRef=i,this._cdr=r,this._slider=s,this.valueChange=new o.bkB,this.dragStart=new o.bkB,this.dragEnd=new o.bkB,this.thumbPosition=qi.END,this._valuetext=(0,o.vPA)(""),this._knobRadius=8,this._tickMarkOffset=3,this._isActive=!1,this._isFocused=!1,this._hasSetInitialValue=!1,this._destroyed=new Ai.B,this._skipUIUpdate=!1,this._onTouchedFn=()=>{},this._isControlInitialized=!1,this._platform=(0,o.WQX)(Fo),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,s=0===this._slider.step?1:this._slider.step,l=Math.floor((this._slider.max-this._slider.min)/s),p=Math.round((this._slider._isRtl?1-i/r:i/r)*l)/l*(this._slider.max-this._slider.min)+this._slider.min,m=Math.round(p/s)*s;if(m===this.value)return this._slider._onValueChange(this),void(this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(e,{withAnimation:this._slider._hasAnimation}));this.value=m,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)(o.rXU(o.SKi),o.rXU(o.aKT),o.rXU(o.gRc),o.rXU(K3))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["input","matSliderThumb",""]],hostAttrs:["type","range",1,"mdc-slider__input"],hostVars:1,hostBindings:function(i,r){1&i&&o.bIt("change",function(){return r._onChange()})("input",function(){return r._onInput()})("blur",function(){return r._onBlur()})("focus",function(){return r._onFocus()}),2&i&&o.BMQ("aria-valuetext",r._valuetext())},inputs:{value:[2,"value","value",o.Udg]},outputs:{valueChange:"valueChange",dragStart:"dragStart",dragEnd:"dragEnd"},exportAs:["matSliderThumb"],standalone:!0,features:[o.Jv_([_ce,{provide:j$,useExisting:n}]),o.GFd]})}}return n})();const X$=rp({passive:!0});let yce=(()=>{class n{constructor(e,i){this._platform=e,this._ngZone=i,this._monitoredElements=new Map}monitor(e){if(!this._platform.isBrowser)return bh;const i=Ci(e),r=this._monitoredElements.get(i);if(r)return r.subject;const s=new Ai.B,l="cdk-text-field-autofilled",u=f=>{"cdk-text-field-autofill-start"!==f.animationName||i.classList.contains(l)?"cdk-text-field-autofill-end"===f.animationName&&i.classList.contains(l)&&(i.classList.remove(l),this._ngZone.run(()=>s.next({target:f.target,isAutofilled:!1}))):(i.classList.add(l),this._ngZone.run(()=>s.next({target:f.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",u,X$),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:s,unlisten:()=>{i.removeEventListener("animationstart",u,X$)}}),s}stopMonitoring(e){const i=Ci(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)(o.KVO(Fo),o.KVO(o.SKi))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),K$=(()=>{class n{get minRows(){return this._minRows}set minRows(e){this._minRows=Gn(e),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(e){this._maxRows=Gn(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,s){this._elementRef=e,this._platform=i,this._ngZone=r,this._destroyed=new Ai.B,this._enabled=!0,this._previousMinRows=-1,this._isViewInited=!1,this._handleFocusEvent=l=>{this._hasFocus="focus"===l.type},this._document=s,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(()=>{Ls(this._getWindow(),"resize").pipe(p_(16),vo(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,s=r&&this._hasFocus,l=r?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";s&&(e.style.marginBottom=`${e.clientHeight}px`),e.classList.add(l);const u=e.scrollHeight-4;return e.classList.remove(l),s&&(e.style.marginBottom=i),u}_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 s=this._measureScrollHeight(),l=Math.max(s,this._cachedPlaceholderHeight||0);i.style.height=`${l}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)(o.rXU(o.aKT),o.rXU(Fo),o.rXU(o.SKi),o.rXU(V,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,r){1&i&&o.bIt("input",function(){return r._noopInputHandler()})},inputs:{minRows:[0,"cdkAutosizeMinRows","minRows"],maxRows:[0,"cdkAutosizeMaxRows","maxRows"],enabled:[2,"cdkTextareaAutosize","enabled",o.L39],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"],standalone:!0,features:[o.GFd]})}}return n})();const wce=new o.nKC("MAT_INPUT_VALUE_ACCESSOR"),xce=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let Cce=0,n0=(()=>{class n{get disabled(){return this._disabled}set disabled(e){this._disabled=mi(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(d8.required)??!1}set required(e){this._required=mi(e)}get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&My().has(this._type)&&(this._elementRef.nativeElement.type=this._type),this._ensureWheelDefaultBehavior()}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=mi(e)}get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}constructor(e,i,r,s,l,u,f,p,m,_){this._elementRef=e,this._platform=i,this.ngControl=r,this._autofillMonitor=p,this._ngZone=m,this._formField=_,this._uid="mat-input-"+Cce++,this._webkitBlinkWheelListenerAttached=!1,this.focused=!1,this.stateChanges=new Ai.B,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(F=>My().has(F)),this._iOSKeyupListener=F=>{const D=F.target;!D.value&&0===D.selectionStart&&0===D.selectionEnd&&(D.setSelectionRange(1,1),D.setSelectionRange(0,0))},this._webkitBlinkWheelListener=()=>{};const b=this._elementRef.nativeElement,w=b.nodeName.toLowerCase();this._inputValueAccessor=f||b,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&m.runOutsideAngular(()=>{e.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._errorStateTracker=new du(u,r,l,s,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===w,this._isTextarea="textarea"===w,this._isInFormField=!!_,this._isNativeSelect&&(this.controlType=b.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),this._webkitBlinkWheelListenerAttached&&this._elementRef.nativeElement.removeEventListener("wheel",this._webkitBlinkWheelListener)}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(){xce.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)}_ensureWheelDefaultBehavior(){!this._webkitBlinkWheelListenerAttached&&"number"===this._type&&(this._platform.BLINK||this._platform.WEBKIT)&&(this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("wheel",this._webkitBlinkWheelListener)}),this._webkitBlinkWheelListenerAttached=!0),this._webkitBlinkWheelListenerAttached&&"number"!==this._type&&(this._elementRef.nativeElement.removeEventListener("wheel",this._webkitBlinkWheelListener),this._webkitBlinkWheelListenerAttached=!0)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT),o.rXU(Fo),o.rXU(df,10),o.rXU(o2,8),o.rXU(s2,8),o.rXU(CI),o.rXU(wce,10),o.rXU(yce),o.rXU(o.SKi),o.rXU(O8,8))}}static{this.\u0275dir=o.FsC({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&&o.bIt("focus",function(){return r._focusChanged(!0)})("blur",function(){return r._focusChanged(!1)})("input",function(){return r._onInput()}),2&i&&(o.Mr5("id",r.id)("disabled",r.disabled)("required",r.required),o.BMQ("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),o.AVh("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:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],standalone:!0,features:[o.Jv_([{provide:P8,useExisting:n}]),o.OA$]})}}return n})();function Y$(){return(0,Fr.N)((n,t)=>{n.subscribe((0,sr._)(t,t_.l))})}function Z$(n,t){return t?e=>eM(t.pipe(ms(1),Y$()),e.pipe(Z$(n))):Ys((e,i)=>Pr(n(e,i)).pipe(ms(1),function Mce(n){return(0,$n.T)(()=>n)}(e)))}function J$(n,t=ru){const e=np(n,t);return Z$(()=>e)}const Ece=["mat-menu-item",""],Sce=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],Tce=["mat-icon, [matMenuItemIcon]","*"];function Ice(n,t){1&n&&(o.qSk(),o.j41(0,"svg",2),o.nrm(1,"polygon",3),o.k0s())}const Fce=["*"];function Dce(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",0),o.bIt("keydown",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s._handleKeydown(r))})("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.closed.emit("click"))})("@transformMenu.start",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s._onAnimationStart(r))})("@transformMenu.done",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s._onAnimationDone(r))}),o.j41(1,"div",1),o.SdG(2),o.k0s()()}if(2&n){const e=o.XpG();o.HbH(e._classList),o.Y8G("id",e.panelId)("@transformMenu",e._panelAnimationState),o.BMQ("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const N8=new o.nKC("MAT_MENU_PANEL");let Z3=(()=>{class n{constructor(e,i,r,s,l){this._elementRef=e,this._document=i,this._focusMonitor=r,this._parentMenu=s,this._changeDetectorRef=l,this.role="menuitem",this.disabled=!1,this.disableRipple=!1,this._hovered=new Ai.B,this._focused=new Ai.B,this._highlighted=!1,this._triggersSubmenu=!1,s?.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",(0,On.i0)("120ms cubic-bezier(0, 0, 0.2, 1)",(0,On.iF)({opacity:1,transform:"scale(1)"}))),(0,On.kY)("* => void",(0,On.i0)("100ms 25ms linear",(0,On.iF)({opacity:0})))]),fadeInItems:(0,On.hZ)("fadeInItems",[(0,On.wk)("showing",(0,On.iF)({opacity:1})),(0,On.kY)("void => *",[(0,On.iF)({opacity:0}),(0,On.i0)("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let kce=0;const Rce=new o.nKC("mat-menu-default-options",{providedIn:"root",factory:function Pce(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let uf=(()=>{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,r={...this._classList};i&&i.length&&i.split(" ").forEach(s=>{r[s]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(s=>{r[s]=!0}),this._elementRef.nativeElement.className=""),this._classList=r}get classList(){return this.panelClass}set classList(e){this.panelClass=e}constructor(e,i,r,s){this._elementRef=e,this._changeDetectorRef=s,this._elevationPrefix="mat-elevation-z",this._baseElevation=null,this._directDescendantItems=new o.rOR,this._classList={},this._panelAnimationState="void",this._animationDone=new Ai.B,this.closed=new o.bkB,this.close=this.closed,this.panelId="mat-menu-panel-"+kce++,this._injector=(0,o.WQX)(o.zZn),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 lu(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(cu(this._directDescendantItems),Xp(e=>Wl(...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(),s=Math.max(0,Math.min(r.length-1,i.activeItemIndex||0));r[s]&&!r[s].disabled?i.setActiveItem(s):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusRef?.destroy()}_hovered(){return this._directDescendantItems.changes.pipe(cu(this._directDescendantItems),Xp(i=>Wl(...i.map(r=>r._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,r=this._keyManager;switch(i){case 27:Yl(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._firstItemFocusRef?.destroy(),this._firstItemFocusRef=(0,o.mal)(()=>{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()}},{injector:this._injector})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){if(null===this._baseElevation){const u=("function"==typeof getComputedStyle?getComputedStyle(this._elementRef.nativeElement):null)?.getPropertyValue("--mat-menu-base-elevation-level")||"8";this._baseElevation=parseInt(u)}const i=Math.min(this._baseElevation+e,24),r=`${this._elevationPrefix}${i}`,s=Object.keys(this._classList).find(l=>l.startsWith(this._elevationPrefix));if(!s||s===this._previousElevation){const l={...this._classList};this._previousElevation&&(l[this._previousElevation]=!1),l[r]=!0,this._previousElevation=r,this._classList=l}}setPositionClasses(e=this.xPosition,i=this.yPosition){this._classList={...this._classList,"mat-menu-before":"before"===e,"mat-menu-after":"after"===e,"mat-menu-above":"above"===i,"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(cu(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)(o.rXU(o.aKT),o.rXU(o.SKi),o.rXU(Rce),o.rXU(o.gRc))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-menu"]],contentQueries:function(i,r,s){if(1&i&&(o.wni(s,Bce,5),o.wni(s,Z3,5),o.wni(s,Z3,4)),2&i){let l;o.mGM(l=o.lsd())&&(r.lazyContent=l.first),o.mGM(l=o.lsd())&&(r._allItems=l),o.mGM(l=o.lsd())&&(r.items=l)}},viewQuery:function(i,r){if(1&i&&o.GBs(o.C4Q,5),2&i){let s;o.mGM(s=o.lsd())&&(r.templateRef=s.first)}},hostVars:3,hostBindings:function(i,r){2&i&&o.BMQ("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[2,"overlapTrigger","overlapTrigger",o.L39],hasBackdrop:[2,"hasBackdrop","hasBackdrop",e=>null==e?null:(0,o.L39)(e)],panelClass:[0,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],standalone:!0,features:[o.Jv_([{provide:N8,useExisting:n}]),o.GFd,o.aNF],ngContentSelectors:Fce,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mat-mdc-elevation-specific",3,"keydown","click","id"],[1,"mat-mdc-menu-content"]],template:function(i,r){1&i&&(o.NAR(),o.DNE(0,Dce,3,7,"ng-template"))},styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;outline:0}.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, var(--mat-app-label-large-font));line-height:var(--mat-menu-item-label-text-line-height, var(--mat-app-label-large-line-height));font-size:var(--mat-menu-item-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mat-menu-item-label-text-tracking, var(--mat-app-label-large-tracking));font-weight:var(--mat-menu-item-label-text-weight, var(--mat-app-label-large-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, var(--mat-app-corner-extra-small));background-color:var(--mat-menu-container-color, var(--mat-app-surface-container));will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.mat-mdc-menu-panel.ng-animating:has(.mat-mdc-menu-content:empty){display:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-mdc-menu-panel .mat-divider{color:var(--mat-menu-divider-color, var(--mat-app-surface-variant));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;min-height:48px}[dir=rtl] .mat-mdc-menu-item{padding-right:var(--mat-menu-item-leading-spacing);padding-left:var(--mat-menu-item-trailing-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]){padding-right:var(--mat-menu-item-with-icon-leading-spacing);padding-left:var(--mat-menu-item-with-icon-trailing-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, var(--mat-app-on-surface))}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color, var(--mat-app-on-surface-variant))}.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:focus{outline: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{padding-right:var(--mat-menu-item-spacing);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1);transform-origin:center}.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:[J3.transformMenu,J3.fadeInItems]},changeDetection:0})}}return n})();const eq=new o.nKC("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{const n=(0,o.WQX)(Us);return()=>n.scrollStrategies.reposition()}}),tq=rp({passive:!0});let dx=(()=>{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,s,l,u,f,p,m){this._overlay=e,this._element=i,this._viewContainerRef=r,this._menuItemInstance=u,this._dir=f,this._focusMonitor=p,this._ngZone=m,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=un.yU.EMPTY,this._hoverSubscription=un.yU.EMPTY,this._menuCloseSubscription=un.yU.EMPTY,this._changeDetectorRef=(0,o.WQX)(o.gRc),this._handleTouchStart=_=>{F_(_)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new o.bkB,this.onMenuOpen=this.menuOpened,this.menuClosed=new o.bkB,this.onMenuClose=this.menuClosed,this._scrollStrategy=s,this._parentMaterialMenu=l instanceof uf?l:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,tq)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,tq),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(),s=r.positionStrategy;this._setPosition(e,s),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 uf&&(e._startAnimation(),e._directDescendantItems.changes.pipe(vo(e.close)).subscribe(()=>{s.withLockedPosition(!1).reapplyLastPosition(),s.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 uf?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(ur(r=>"void"===r.toState),ms(1),vo(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 xm({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 s="start"===r.connectionPair.overlayX?"after":"before",l="top"===r.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>e.setPositionClasses(s,l)):e.setPositionClasses(s,l)})}_setPosition(e,i){let[r,s]="before"===e.xPosition?["end","start"]:["start","end"],[l,u]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[f,p]=[l,u],[m,_]=[r,s],b=0;if(this.triggersSubmenu()){if(_=r="before"===e.xPosition?"start":"end",s=m="end"===r?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const w=this._parentMaterialMenu.items.first;this._parentInnerPadding=w?w._getHostElement().offsetTop:0}b="bottom"===l?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(f="top"===l?"bottom":"top",p="top"===u?"bottom":"top");i.withPositions([{originX:r,originY:f,overlayX:m,overlayY:l,offsetY:b},{originX:s,originY:f,overlayX:_,overlayY:l,offsetY:b},{originX:r,originY:p,overlayX:m,overlayY:u,offsetY:-b},{originX:s,originY:p,overlayX:_,overlayY:u,offsetY:-b}])}_menuClosingActions(){const e=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return Wl(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:So(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(ur(l=>l!==this._menuItemInstance),ur(()=>this._menuOpen)):So(),i)}_handleMousedown(e){Em(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(ur(e=>e===this._menuItemInstance&&!e.disabled),J$(0,f_)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof uf&&this.menu._isAnimating?this.menu._animationDone.pipe(ms(1),J$(0,f_),vo(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new g_(e.templateRef,this._viewContainerRef)),this._portal}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Us),o.rXU(o.aKT),o.rXU(o.c1b),o.rXU(eq),o.rXU(N8,8),o.rXU(Z3,10),o.rXU(Zs,8),o.rXU(Zl),o.rXU(o.SKi))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,r){1&i&&o.bIt("click",function(l){return r._handleClick(l)})("mousedown",function(l){return r._handleMousedown(l)})("keydown",function(l){return r._handleKeydown(l)}),2&i&&o.BMQ("aria-haspopup",r.menu?"menu":null)("aria-expanded",r.menuOpen)("aria-controls",r.menuOpen?r.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[0,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[0,"matMenuTriggerFor","menu"],menuData:[0,"matMenuTriggerData","menuData"],restoreFocus:[0,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"],standalone:!0})}}return n})();function Na(n,t){(function Nce(n){return"string"==typeof n&&-1!==n.indexOf(".")&&1===parseFloat(n)})(n)&&(n="100%");var e=function Lce(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 eR(n){return Math.min(1,Math.max(0,n))}function nq(n){return n=parseFloat(n),(isNaN(n)||n<0||n>1)&&(n=1),n}function tR(n){return n<=1?"".concat(100*Number(n),"%"):n}function iv(n){return 1===n.length?"0"+n:String(n)}function iq(n,t,e){n=Na(n,255),t=Na(t,255),e=Na(e,255);var i=Math.max(n,t,e),r=Math.min(n,t,e),s=0,l=0,u=(i+r)/2;if(i===r)l=0,s=0;else{var f=i-r;switch(l=u>.5?f/(2-i-r):f/(i+r),i){case n:s=(t-e)/f+(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 rq(n,t,e){n=Na(n,255),t=Na(t,255),e=Na(e,255);var i=Math.max(n,t,e),r=Math.min(n,t,e),s=0,l=i,u=i-r,f=0===i?0:u/i;if(i===r)s=0;else{switch(i){case n:s=(t-e)/u+(t>16,g:(65280&n)>>8,b:255&n}}(t)),this.originalInput=t;var r=function Gce(n){var t={r:0,g:0,b:0},e=1,i=null,r=null,s=null,l=!1,u=!1;return"string"==typeof n&&(n=function qce(n){if(0===(n=n.trim().toLowerCase()).length)return!1;var t=!1;if(U8[n])n=U8[n],t=!0;else if("transparent"===n)return{r:0,g:0,b:0,a:0,format:"name"};var e=Hu.rgb.exec(n);return e?{r:e[1],g:e[2],b:e[3]}:(e=Hu.rgba.exec(n))?{r:e[1],g:e[2],b:e[3],a:e[4]}:(e=Hu.hsl.exec(n))?{h:e[1],s:e[2],l:e[3]}:(e=Hu.hsla.exec(n))?{h:e[1],s:e[2],l:e[3],a:e[4]}:(e=Hu.hsv.exec(n))?{h:e[1],s:e[2],v:e[3]}:(e=Hu.hsva.exec(n))?{h:e[1],s:e[2],v:e[3],a:e[4]}:(e=Hu.hex8.exec(n))?{r:zc(e[1]),g:zc(e[2]),b:zc(e[3]),a:aq(e[4]),format:t?"name":"hex8"}:(e=Hu.hex6.exec(n))?{r:zc(e[1]),g:zc(e[2]),b:zc(e[3]),format:t?"name":"hex"}:(e=Hu.hex4.exec(n))?{r:zc(e[1]+e[1]),g:zc(e[2]+e[2]),b:zc(e[3]+e[3]),a:aq(e[4]+e[4]),format:t?"name":"hex8"}:!!(e=Hu.hex3.exec(n))&&{r:zc(e[1]+e[1]),g:zc(e[2]+e[2]),b:zc(e[3]+e[3]),format:t?"name":"hex"}}(n)),"object"==typeof n&&(Kp(n.r)&&Kp(n.g)&&Kp(n.b)?(t=function Uce(n,t,e){return{r:255*Na(n,255),g:255*Na(t,255),b:255*Na(e,255)}}(n.r,n.g,n.b),l=!0,u="%"===String(n.r).substr(-1)?"prgb":"rgb"):Kp(n.h)&&Kp(n.s)&&Kp(n.v)?(i=tR(n.s),r=tR(n.v),t=function Hce(n,t,e){n=6*Na(n,360),t=Na(t,100),e=Na(e,100);var i=Math.floor(n),r=n-i,s=e*(1-t),l=e*(1-r*t),u=e*(1-(1-r)*t),f=i%6;return{r:255*[e,l,s,s,u,e][f],g:255*[u,e,e,l,s,s][f],b:255*[s,s,u,e,e,l][f]}}(n.h,i,r),l=!0,u="hsv"):Kp(n.h)&&Kp(n.s)&&Kp(n.l)&&(i=tR(n.s),s=tR(n.l),t=function Vce(n,t,e){var i,r,s;if(n=Na(n,360),t=Na(t,100),e=Na(e,100),0===t)r=e,s=e,i=e;else{var l=e<.5?e*(1+t):e+t-e*t,u=2*e-l;i=L8(u,l,n+1/3),r=L8(u,l,n),s=L8(u,l,n-1/3)}return{r:255*i,g:255*r,b:255*s}}(n.h,i,s),l=!0,u="hsl"),Object.prototype.hasOwnProperty.call(n,"a")&&(e=n.a)),e=nq(e),{ok:l,format:n.format||u,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(),s=t.r/255,l=t.g/255,u=t.b/255;return.2126*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.7152*(l<=.03928?l/12.92:Math.pow((l+.055)/1.055,2.4))+.0722*(u<=.03928?u/12.92:Math.pow((u+.055)/1.055,2.4))},n.prototype.getAlpha=function(){return this.a},n.prototype.setAlpha=function(t){return this.a=nq(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=rq(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=rq(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=iq(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=iq(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),oq(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 Qce(n,t,e,i,r){var s=[iv(Math.round(n).toString(16)),iv(Math.round(t).toString(16)),iv(Math.round(e).toString(16)),iv(sq(i))];return r&&s[0].startsWith(s[0].charAt(1))&&s[1].startsWith(s[1].charAt(1))&&s[2].startsWith(s[2].charAt(1))&&s[3].startsWith(s[3].charAt(1))?s[0].charAt(0)+s[1].charAt(0)+s[2].charAt(0)+s[3].charAt(0):s.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*Na(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*Na(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="#"+oq(this.r,this.g,this.b,!1),e=0,i=Object.entries(U8);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=eR(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=eR(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=eR(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=eR(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(),s=e/100;return new n({r:(r.r-i.r)*s+i.r,g:(r.g-i.g)*s+i.g,b:(r.b-i.b)*s+i.b,a:(r.a-i.a)*s+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,s=[this];for(i.h=(i.h-(r*t>>1)+720)%360;--t;)i.h=(i.h+r)%360,s.push(new n(i));return s},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,s=e.v,l=[],u=1/t;t--;)l.push(new n({h:i,s:r,v:s})),s=(s+u)%1;return l},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],s=360/t,l=1;l{class n{constructor(){this.white="transparent",this.size=8,this.grey="rgba(0,0,0,.08)"}ngOnInit(){const e=function Yce(n,t,e){const i=`${n}-${t}-${e}`;if(Q8[i])return Q8[i];const r=function Kce(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?(Q8[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=o.VBU({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&&o.nrm(0,"div",0),2&e&&o.Y8G("ngStyle",i.gridStyles)},dependencies:[ga],styles:[".grid[_ngcontent-%COMP%]{top:0px;right:0px;bottom:0px;left:0px;position:absolute}"],changeDetection:0}),n})(),cq=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=o.$C({type:n}),n.\u0275inj=o.G2t({imports:[[va]]}),n})(),z8=(()=>{class n{constructor(e){this.el=e,this.coordinatesChange=new Ai.B,this.mousechange=new Ai.B,this.mouseListening=!1}mousemove(e,i,r,s=!1){this.mouseListening&&(e.preventDefault(),this.mousechange.next({$event:e,x:i,y:r,isTouch:s}))}mouseup(){this.mouseListening=!1}mousedown(e,i,r,s=!1){e.preventDefault(),this.mouseListening=!0,this.mousechange.next({$event:e,x:i,y:r,isTouch:s})}ngOnInit(){this.sub=this.mousechange.pipe(Rr((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,s){const l=this.el.nativeElement.clientWidth,u=this.el.nativeElement.clientHeight,f=e-(this.el.nativeElement.getBoundingClientRect().left+window.pageXOffset);let p=i-this.el.nativeElement.getBoundingClientRect().top;s||(p-=window.pageYOffset),this.coordinatesChange.next({x:e,y:i,top:p,left:f,containerWidth:l,containerHeight:u,$event:r})}}return n.\u0275fac=function(e){return new(e||n)(o.rXU(o.aKT))},n.\u0275dir=o.FsC({type:n,selectors:[["","ngx-color-coordinates",""]],hostBindings:function(e,i){1&e&&o.bIt("mousemove",function(s){return i.mousemove(s,s.pageX,s.pageY)},!1,o.tSv)("touchmove",function(s){return i.mousemove(s,s.touches[0].clientX,s.touches[0].clientY,!0)},!1,o.tSv)("mouseup",function(){return i.mouseup()},!1,o.tSv)("touchend",function(){return i.mouseup()},!1,o.tSv)("mousedown",function(s){return i.mousedown(s,s.pageX,s.pageY)})("touchstart",function(s){return i.mousedown(s,s.touches[0].clientX,s.touches[0].clientY,!0)})},outputs:{coordinatesChange:"coordinatesChange"}}),n})(),G8=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=o.$C({type:n}),n.\u0275inj=o.G2t({}),n})(),Zce=(()=>{class n{constructor(){this.direction="horizontal",this.onChange=new o.bkB}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:s,$event:l}){let u;if("vertical"===this.direction){let f;f=e<0?0:e>r?1:Math.round(100*e/r)/100,this.hsl.a!==f&&(u={h:this.hsl.h,s:this.hsl.s,l:this.hsl.l,a:f,source:"rgb"})}else{let f;f=i<0?0:i>s?1:Math.round(100*i/s)/100,this.hsl.a!==f&&(u={h:this.hsl.h,s:this.hsl.s,l:this.hsl.l,a:f,source:"rgb"})}u&&this.onChange.emit({data:u,$event:l})}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=o.VBU({type:n,selectors:[["color-alpha"]],inputs:{hsl:"hsl",rgb:"rgb",pointer:"pointer",shadow:"shadow",radius:"radius",direction:"direction"},outputs:{onChange:"onChange"},features:[o.OA$],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&&(o.j41(0,"div",0)(1,"div",1),o.nrm(2,"color-checkboard"),o.k0s(),o.nrm(3,"div",2),o.j41(4,"div",3),o.bIt("coordinatesChange",function(s){return i.handleChange(s)}),o.j41(5,"div",4),o.nrm(6,"div",5),o.k0s()()()),2&e&&(o.xc7("border-radius",i.radius),o.R7$(3),o.xc7("box-shadow",i.shadow)("border-radius",i.radius),o.Y8G("ngStyle",i.gradient),o.R7$(),o.ZvI("alpha-container color-alpha-",i.direction,""),o.R7$(),o.xc7("left",i.pointerLeft,"%")("top",i.pointerTop,"%"),o.R7$(),o.Y8G("ngStyle",i.pointer))},dependencies:[lq,ga,z8],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})(),Jce=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=o.$C({type:n}),n.\u0275inj=o.G2t({imports:[[va,cq,G8]]}),n})();function dq(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 u2(n,t,e){const i=new d2(n.hex?n.hex:n);e&&i.setAlpha(1);const r=i.toHsl(),s=i.toHsv(),l=i.toRgb(),u=i.toHex();return 0===r.s&&(r.h=t||0,s.h=t||0),{hsl:r,hex:"000000"===u&&0===l.a?"transparent":i.toHexString(),rgb:l,hsv:s,oldHue:n.h||t||r.h,source:n.source}}var ux=function(n){return n.HEX="hex",n.HSL="hsl",n.HSV="hsv",n.RGB="rgb",n}(ux||{});let uq=(()=>{class n{constructor(){this.mode=ux.HEX,this.color={h:250,s:.5,l:.2,a:1},this.colorChange=new o.bkB,this.onChange=new o.bkB,this.onChangeComplete=new o.bkB,this.onSwatchHover=new o.bkB,this._onChangeCompleteSubscription=new un.yU,this._onSwatchHoverSubscription=new un.yU}ngOnInit(){this.changes=this.onChange.pipe(M_(100),ao(e=>{switch(this.onChangeComplete.emit(e),this.mode){case ux.HEX:this.colorChange.emit(e.color.hex);break;case ux.HSL:this.colorChange.emit(e.color.hsl);break;case ux.HSV:this.colorChange.emit(e.color.hsv);break;case ux.RGB:this.colorChange.emit(e.color.rgb);break;default:const i=`The mode '${this.mode}' is not supported`;if((0,o.naY)())throw new Error(i);console.warn(i)}})).subscribe(),this.setState(u2(this.color,0)),this.currentColor=this.hex}ngOnChanges(){this.setState(u2(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(dq(e)){const s=u2(e,e.h||this.oldHue,this.disableAlpha);this.setState(s),this.onChange.emit({color:s,$event:i}),this.afterValidChange()}}afterValidChange(){}handleSwatchHover(e,i){if(dq(e)){const s=u2(e,e.h||this.oldHue);this.setState(s),this.onSwatchHover.emit({color:s,$event:i})}}registerOnChange(e){this._onChangeCompleteSubscription.add(this.onChangeComplete.pipe(ao(i=>e(i.color.hex))).subscribe())}registerOnTouched(e){this._onSwatchHoverSubscription.add(this.onSwatchHover.pipe(ao(()=>e())).subscribe())}setDisabledState(e){}writeValue(e){this.color=e}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=o.VBU({type:n,selectors:[["color-wrap"]],inputs:{className:"className",mode:"mode",color:"color"},outputs:{colorChange:"colorChange",onChange:"onChange",onChangeComplete:"onChangeComplete",onSwatchHover:"onSwatchHover"},features:[o.Jv_([{provide:ma,useExisting:(0,o.Rfq)(()=>n),multi:!0}]),o.OA$],decls:0,vars:0,template:function(e,i){},encapsulation:2}),n})(),tde=0,nde=(()=>{class n{constructor(){this.placeholder="",this.onChange=new o.bkB,this.focus=!1,this.uniqueId="editableInput-"+ ++tde}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,s=Number(i.replace(/%/g,""));if(isNaN(s))return;const l=this.arrowOffset||1;38===e.keyCode&&(this.onChange.emit(this.label?{data:{[this.label]:s+l},$event:e}:{data:s+l,$event:e}),this.currentValue=r?`${s+l}%`:s+l),40===e.keyCode&&(this.onChange.emit(this.label?{data:{[this.label]:s-l},$event:e}:{data:s-l,$event:e}),this.currentValue=r?s-l+"%":s-l)}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=Ls(document,"mousemove").subscribe(e=>this.handleDrag(e)),this.mouseup=Ls(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=o.VBU({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:[o.OA$],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&&(o.j41(0,"div",0)(1,"input",1),o.bIt("keydown",function(s){return i.handleKeydown(s)})("keyup",function(s){return i.handleKeyup(s)})("focus",function(s){return i.handleFocus(s)})("focusout",function(s){return i.handleFocusOut(s)}),o.k0s(),o.DNE(2,Wce,2,3,"span",2),o.k0s()),2&e&&(o.Y8G("ngStyle",i.wrapStyle),o.R7$(),o.Y8G("ngStyle",i.inputStyle)("value",i.currentValue)("placeholder",i.placeholder),o.BMQ("aria-labelledby",i.uniqueId),o.R7$(),o.Y8G("ngIf",i.label))},dependencies:[ga,zn],styles:["[_nghost-%COMP%]{display:flex}.wrap[_ngcontent-%COMP%]{position:relative}"],changeDetection:0}),n})(),ide=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=o.$C({type:n}),n.\u0275inj=o.G2t({imports:[[va]]}),n})(),rde=(()=>{class n{constructor(){this.hidePointer=!1,this.direction="horizontal",this.onChange=new o.bkB,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:s,$event:l}){let u;if("vertical"===this.direction){let f;f=e<0?359:e>r?0:360*(-100*e/r+100)/100,this.hsl.h!==f&&(u={h:f,s:this.hsl.s,l:this.hsl.l,a:this.hsl.a,source:"rgb"})}else{let f;f=i<0?0:i>s?359:100*i/s*360/100,this.hsl.h!==f&&(u={h:f,s:this.hsl.s,l:this.hsl.l,a:this.hsl.a,source:"rgb"})}u&&this.onChange.emit({data:u,$event:l})}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=o.VBU({type:n,selectors:[["color-hue"]],inputs:{hsl:"hsl",pointer:"pointer",radius:"radius",shadow:"shadow",hidePointer:"hidePointer",direction:"direction"},outputs:{onChange:"onChange"},features:[o.OA$],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&&(o.j41(0,"div")(1,"div",0),o.bIt("coordinatesChange",function(s){return i.handleChange(s)}),o.DNE(2,Xce,2,5,"div",1),o.k0s()()),2&e&&(o.ZvI("color-hue color-hue-",i.direction,""),o.xc7("border-radius",i.radius,"px")("box-shadow",i.shadow),o.R7$(2),o.Y8G("ngIf",!i.hidePointer))},dependencies:[z8,zn,ga],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})(),ode=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=o.$C({type:n}),n.\u0275inj=o.G2t({imports:[[va,G8]]}),n})(),sde=(()=>{class n{constructor(){this.onChange=new o.bkB}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:s,$event:l}){i<0?i=0:i>s?i=s:e<0?e=0:e>r&&(e=r);let f=-e/r+1;f=f>0?f:0,f=f>1?1:f,this.onChange.emit({data:{h:this.hsl.h,s:i/s,v:f,a:this.hsl.a,source:"hsva"},$event:l})}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=o.VBU({type:n,selectors:[["color-saturation"]],inputs:{hsl:"hsl",hsv:"hsv",radius:"radius",pointer:"pointer",circle:"circle"},outputs:{onChange:"onChange"},features:[o.OA$],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&&(o.j41(0,"div",0),o.bIt("coordinatesChange",function(s){return i.handleChange(s)}),o.j41(1,"div",1),o.nrm(2,"div",2),o.j41(3,"div",3),o.nrm(4,"div",4),o.k0s()()()),2&e&&(o.xc7("background",i.background),o.R7$(3),o.xc7("top",i.pointerTop)("left",i.pointerLeft),o.Y8G("ngStyle",i.pointer),o.R7$(),o.Y8G("ngStyle",i.circle))},dependencies:[z8,ga],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})(),ade=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=o.$C({type:n}),n.\u0275inj=o.G2t({imports:[[va,G8]]}),n})();const Yp=(n,t)=>({input:n,label:t});function lde(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",11)(1,"color-editable-input",12),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleChange(r))}),o.k0s()()}if(2&n){const e=o.XpG();o.R7$(),o.Aen(o.l_i(3,Yp,e.input,e.label)),o.Y8G("value",e.hex)}}function cde(n,t){if(1&n){const e=o.RV6();o.j41(0,"color-editable-input",17),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG(2);return o.Njj(s.handleChange(r))}),o.k0s()}if(2&n){const e=o.XpG(2);o.Aen(o.l_i(4,Yp,e.input,e.label)),o.Y8G("value",e.rgb.a)("arrowOffset",.01)}}function dde(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",11)(1,"color-editable-input",13),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleChange(r))}),o.k0s()(),o.j41(2,"div",11)(3,"color-editable-input",14),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleChange(r))}),o.k0s()(),o.j41(4,"div",11)(5,"color-editable-input",15),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleChange(r))}),o.k0s()(),o.j41(6,"div",11),o.DNE(7,cde,1,7,"color-editable-input",16),o.k0s()}if(2&n){const e=o.XpG();o.R7$(),o.Aen(o.l_i(10,Yp,e.input,e.label)),o.Y8G("value",e.rgb.r),o.R7$(2),o.Aen(o.l_i(13,Yp,e.input,e.label)),o.Y8G("value",e.rgb.g),o.R7$(2),o.Aen(o.l_i(16,Yp,e.input,e.label)),o.Y8G("value",e.rgb.b),o.R7$(2),o.Y8G("ngIf",!e.disableAlpha)}}function ude(n,t){if(1&n){const e=o.RV6();o.j41(0,"color-editable-input",17),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG(2);return o.Njj(s.handleChange(r))}),o.k0s()}if(2&n){const e=o.XpG(2);o.Aen(o.l_i(4,Yp,e.input,e.label)),o.Y8G("value",e.hsl.a)("arrowOffset",.01)}}function hde(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",11)(1,"color-editable-input",18),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleChange(r))}),o.k0s()(),o.j41(2,"div",11)(3,"color-editable-input",19),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleChange(r))}),o.k0s()(),o.j41(4,"div",11)(5,"color-editable-input",20),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleChange(r))}),o.k0s()(),o.j41(6,"div",11),o.DNE(7,ude,1,7,"color-editable-input",16),o.k0s()}if(2&n){const e=o.XpG();o.R7$(),o.Aen(o.l_i(10,Yp,e.input,e.label)),o.Y8G("value",e.round(e.hsl.h)),o.R7$(2),o.Aen(o.l_i(13,Yp,e.input,e.label)),o.Y8G("value",e.round(100*e.hsl.s)+"%"),o.R7$(2),o.Aen(o.l_i(16,Yp,e.input,e.label)),o.Y8G("value",e.round(100*e.hsl.l)+"%"),o.R7$(2),o.Y8G("ngIf",!e.disableAlpha)}}function fde(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",12)(1,"color-alpha",13),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleValueChange(r))}),o.k0s()()}if(2&n){const e=o.XpG();o.R7$(),o.Y8G("radius",2)("rgb",e.rgb)("hsl",e.hsl)("pointer",e.pointer)}}let pde=(()=>{class n{constructor(){this.onChange=new o.bkB,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 ede(n){return new d2(n).isValid}(e.hex)){const r=new d2(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("%",""),s=e.l&&e.l.replace("%","");this.onChange.emit({data:{h:e.h||this.hsl.h,s:Number(r||this.hsl.s),l:Number(s||this.hsl.l),source:"hsl"},$event:i})}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=o.VBU({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=o.RV6();o.j41(0,"div",3)(1,"div",4),o.DNE(2,lde,2,6,"ng-template",5)(3,dde,8,19,"ng-template",5)(4,hde,8,19,"ng-template",5),o.k0s(),o.j41(5,"div",6)(6,"div",7,0),o.bIt("click",function(){return o.eBV(r),o.Njj(i.toggleViews())}),o.qSk(),o.j41(8,"svg",8),o.nrm(9,"path",9,1)(11,"path",10,2),o.k0s()()()()}2&e&&(o.R7$(2),o.Y8G("ngIf","hex"===i.view),o.R7$(),o.Y8G("ngIf","rgb"===i.view),o.R7$(),o.Y8G("ngIf","hsl"===i.view))},dependencies:[nde,zn],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})(),Ade=(()=>{class n extends uq{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=o.VBU({type:n,selectors:[["color-chrome"]],inputs:{disableAlpha:"disableAlpha"},features:[o.Jv_([{provide:ma,useExisting:(0,o.Rfq)(()=>n),multi:!0},{provide:uq,useExisting:(0,o.Rfq)(()=>n)}]),o.Vt3],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&&(o.j41(0,"div")(1,"div",0)(2,"color-saturation",1),o.bIt("onChange",function(s){return i.handleValueChange(s)}),o.k0s()(),o.j41(3,"div",2)(4,"div",3)(5,"div",4)(6,"div",5),o.nrm(7,"div",6)(8,"color-checkboard"),o.k0s()(),o.j41(9,"div",7)(10,"div",8)(11,"color-hue",9),o.bIt("onChange",function(s){return i.handleValueChange(s)}),o.k0s()(),o.DNE(12,fde,2,4,"div",10),o.k0s()(),o.j41(13,"color-chrome-fields",11),o.bIt("onChange",function(s){return i.handleValueChange(s)}),o.k0s()()()),2&e&&(o.ZvI("chrome-picker ",i.className,""),o.R7$(2),o.Y8G("hsl",i.hsl)("hsv",i.hsv)("circle",i.circle),o.R7$(5),o.xc7("background",i.activeBackground),o.R7$(4),o.Y8G("radius",2)("hsl",i.hsl)("pointer",i.pointer),o.R7$(),o.Y8G("ngIf",!i.disableAlpha),o.R7$(),o.Y8G("rgb",i.rgb)("hsl",i.hsl)("hex",i.hex)("disableAlpha",i.disableAlpha))},dependencies:()=>[sde,lq,rde,Zce,pde,zn],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})(),mde=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=o.$C({type:n}),n.\u0275inj=o.G2t({imports:[[va,Jce,cq,ide,ode,ade]]}),n})();const gde=["colorPickerMenuTrigger"],_de=(n,t)=>({isOpen:n,isHovered:t});let hq=(()=>{class n{constructor(){this.openXPosition="after",this.onColorChange=new o.bkB,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=o.VBU({type:n,selectors:[["cc-color-picker"]],viewQuery:function(i,r){if(1&i&&o.GBs(gde,5),2&i){let s;o.mGM(s=o.lsd())&&(r.colorPickerMenuTrigger=s.first)}},hostBindings:function(i,r){1&i&&o.bIt("mouseenter",function(){return r.onMouseEnter()})("mouseleave",function(){return r.onMouseLeave()})("click",function(){return r.onClick()})("click",function(){return r.handleDocumentClick()},!1,o.EBC)},inputs:{hexColor:"hexColor",openXPosition:"openXPosition",triggerTemplate:"triggerTemplate"},outputs:{onColorChange:"onColorChange"},standalone:!0,features:[o.aNF],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 s=o.RV6();o.eu8(0,2),o.nrm(1,"span",3,0),o.j41(3,"mat-menu",4,1)(5,"color-chrome",5),o.bIt("click",function(u){return o.eBV(s),o.Njj(u.stopPropagation())})("onChangeComplete",function(u){return o.eBV(s),o.Njj(r.handleChangeComplete(u.color.hex))}),o.k0s()()}if(2&i){const s=o.sdS(2),l=o.sdS(4);o.Y8G("ngTemplateOutlet",r.triggerTemplate)("ngTemplateOutletContext",o.l_i(7,_de,s.menuOpen,r.isHovered)),o.R7$(),o.Y8G("matMenuTriggerFor",l),o.R7$(2),o.Y8G("xPosition",r.openXPosition)("hasBackdrop",!1),o.R7$(2),o.Y8G("disableAlpha",!0)("color",r.hexColor)}},dependencies:[vi,dx,uf,mde,Ade],encapsulation:2})}}return n})(),vde=(()=>{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=o.EJ8({name:"readableColorForBackground",type:n,pure:!0,standalone:!0})}}return n})();function yde(n,t){1&n&&o.nrm(0,"br")}function wde(n,t){if(1&n&&(o.j41(0,"span"),o.EFF(1),o.DNE(2,yde,1,0,"br"),o.k0s()),2&n){const e=t.$implicit,i=t.$index,r=t.$count;o.R7$(),o.SpI(" ",e," "),o.R7$(),o.vxM(i!==r-1?2:-1)}}function xde(n,t){if(1&n&&(o.j41(0,"div",2)(1,"div",3),o.nrm(2,"span",4)(3,"span",5),o.nI1(4,"readableColorForBackground"),o.k0s(),o.j41(5,"div",6),o.Z7z(6,wde,3,2,"span",null,o.fX1),o.k0s()()),2&n){const e=t.isOpen,i=t.isHovered,r=o.XpG();o.R7$(2),o.xc7("background-color",r.hexColor),o.R7$(),o.xc7("color",o.bMT(4,6,r.hexColor))("opacity",i||e?"1":"0"),o.R7$(3),o.Dyx(r.labels)}}let j8=(()=>{class n{constructor(){this.onColorChange=new o.bkB}handleColorChange(e){this.onColorChange.emit(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-labelled-color-picker"]],inputs:{hexColor:"hexColor",labels:"labels"},outputs:{onColorChange:"onColorChange"},standalone:!0,features:[o.aNF],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 s=o.RV6();o.j41(0,"cc-color-picker",1),o.bIt("onColorChange",function(u){return o.eBV(s),o.Njj(r.handleColorChange(u))}),o.k0s(),o.DNE(1,xde,8,8,"ng-template",null,0,o.C5r)}if(2&i){const s=o.sdS(2);o.Y8G("hexColor",r.hexColor)("openXPosition","before")("triggerTemplate",s)}},dependencies:[hq,vde],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})();const Cde=["rendererContainer"],Mde=["fileInput"],Ede=()=>["Color"];function Sde(n,t){if(1&n&&(o.j41(0,"mat-option",9),o.EFF(1),o.j41(2,"span",35),o.EFF(3),o.k0s()()),2&n){const e=t.$implicit;o.Y8G("value",e),o.R7$(),o.SpI("",e.name," "),o.R7$(2),o.LHq(" (x: ",e.x,"cm, y: ",e.y,"cm, z: ",e.z,"cm, colors ",e.numberOfColors," )")}}let fq=(()=>{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=yj(new pe(this.selectedPrinter.x,this.selectedPrinter.y,this.selectedPrinter.z),this.threeSceneService.getMapMesh().getThreeMesh(),this.frontTextSize,this.baseplateHeight,this.mapSideOffset),this.currentSize=new pe,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=d3(this.state.getValue().files),s=this.state.getValue().fileSettings.blacklist,l=Bc(r,s);this.nodeMetricData=l.filter(u=>u.name===this.areaMetric||u.name===this.heightMetric||u.name===this.colorMetric)}ngAfterViewInit(){var e=this;return Cn(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 Cn(function*(){const i=new wk;i.name="printPreviewScene",e.printPreviewScene=i,i.background=new _n(15527388);const r=e.threeSceneService.scene.clone().children[3];r.name="lights",i.add(r);const s=new ea(45,1.15,50,2e5);s.name="camera",s.up=new pe(0,0,1),i.add(s),e.initRenderer(i,s),e.previewMesh=new Pse(e.initGeometryOptions()),yield e.previewMesh.initialize(),e.currentSize=e.previewMesh.getSize(),i.add(e.previewMesh.getThreeMesh()),e.updateCameraPosition(s)})()}initRenderer(e,i){const r=this.getGL(),s=new At;r.getSize(s);const l=this.rendererContainer.nativeElement.offsetWidth;r.setSize(l,s.y*(l/s.x),!0),this.rendererContainer.nativeElement.appendChild(r.domElement);const f=new UU(i,r.domElement),p=function(){requestAnimationFrame(p),f.update(),r.render(e,i)};p()}getGL(){return new D5}updateCameraPosition(e){e.position.set(.2*-this.currentSize.x,1.2*-this.currentSize.y,3*this.currentSize.z)}download3MFFile(){var e=this;return Cn(function*(){const i=yield function dse(n){return t8.apply(this,arguments)}(e.printPreviewScene.getObjectByName("PrintMesh"));e.downloadFile(i,"3mf")})()}makeMapMaxSize(){this.wantedWidth=yj(new pe(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 Loe).parse(this.previewMesh.getMapMesh(),{binary:!0});this.downloadFile(e,"stl")}initGeometryOptions(){const e=this.state.getValue().fileSettings.attributeDescriptors,i=Jw,r=e[this.areaMetric]?.title||i.get(this.areaMetric),s=e[this.heightMetric]?.title||i.get(this.heightMetric),l=e[this.colorMetric]?.title||i.get(this.colorMetric);return{originalMapMesh:this.threeSceneService.getMapMesh().getThreeMesh(),width:this.wantedWidth,areaMetricTitle:r,areaMetricData:this.nodeMetricData.find(u=>u.name===this.areaMetric),heightMetricTitle:s,heightMetricData:this.nodeMetricData.find(u=>u.name===this.heightMetric),colorMetricTitle:l,colorMetricData:this.nodeMetricData.find(u=>u.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=yn(this.state.getValue()),s=kd(this.state.getValue()).unifiedFileMeta?.fileName,l=`${kc.getNewFileName(s,Bd(r))}.${i}`;c1.downloadData(e,l)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Vi),o.rXU(Rd))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-export-3D-map-dialog"]],viewQuery:function(i,r){if(1&i&&(o.GBs(Cde,5),o.GBs(Mde,5)),2&i){let s;o.mGM(s=o.lsd())&&(r.rendererContainer=s.first),o.mGM(s=o.lsd())&&(r.fileInput=s.first)}},inputs:{logoColor:"logoColor"},standalone:!0,features:[o.aNF],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 s=o.RV6();o.j41(0,"mat-toolbar",3),o.EFF(1,"3D Print CodeCharta Map"),o.k0s(),o.j41(2,"div",4),o.nrm(3,"div",5,0),o.j41(5,"mat-dialog-content",6)(6,"mat-form-field",7)(7,"mat-label"),o.EFF(8,"Printer preset"),o.k0s(),o.j41(9,"mat-select",8),o.bIt("selectionChange",function(){return o.eBV(s),o.Njj(r.onSelectedPrinterChange())}),o.mxI("valueChange",function(u){return o.eBV(s),o.DH7(r.selectedPrinter,u)||(r.selectedPrinter=u),o.Njj(u)}),o.j41(10,"mat-select-trigger"),o.EFF(11),o.k0s(),o.Z7z(12,Sde,4,6,"mat-option",9,o.fX1),o.k0s()(),o.j41(14,"mat-card",10)(15,"mat-card-header"),o.EFF(16,"Scale:"),o.k0s(),o.j41(17,"mat-card-content")(18,"div",11)(19,"mat-slider",12),o.bIt("change",function(){return o.eBV(s),o.Njj(r.onScaleChange())}),o.j41(20,"input",13,1),o.mxI("ngModelChange",function(u){return o.eBV(s),o.DH7(r.wantedWidth,u)||(r.wantedWidth=u),o.Njj(u)}),o.k0s()()(),o.j41(22,"div",14)(23,"span"),o.EFF(24),o.k0s(),o.nrm(25,"br"),o.j41(26,"span"),o.EFF(27),o.k0s(),o.nrm(28,"br"),o.j41(29,"span"),o.EFF(30),o.k0s()()()(),o.j41(31,"mat-form-field",7)(32,"mat-label"),o.EFF(33,"Bottom center label text"),o.k0s(),o.j41(34,"input",15),o.mxI("ngModelChange",function(u){return o.eBV(s),o.DH7(r.frontText,u)||(r.frontText=u),o.Njj(u)}),o.bIt("input",function(){return o.eBV(s),o.Njj(r.onFrontTextChange())}),o.k0s()(),o.j41(35,"mat-card",10)(36,"mat-card-header"),o.EFF(37,"Second row center text"),o.k0s(),o.j41(38,"mat-card-content",16)(39,"mat-slide-toggle",17),o.bIt("change",function(u){return o.eBV(s),o.Njj(r.onSecondRowVisibilityChange(u))}),o.EFF(40," Show second row text "),o.k0s(),o.j41(41,"mat-form-field",18)(42,"mat-label"),o.EFF(43,"Text"),o.k0s(),o.j41(44,"input",19),o.mxI("ngModelChange",function(u){return o.eBV(s),o.DH7(r.secondRow.currentText,u)||(r.secondRow.currentText=u),o.Njj(u)}),o.bIt("input",function(){return o.eBV(s),o.Njj(r.onSecondRowTextChange())}),o.k0s()()()(),o.j41(45,"mat-card",10)(46,"mat-card-header"),o.EFF(47,"QR-Code"),o.k0s(),o.j41(48,"mat-card-content",16)(49,"mat-slide-toggle",20),o.bIt("change",function(u){return o.eBV(s),o.Njj(r.onQrCodeVisibilityChange(u))}),o.EFF(50," Show QR-Code "),o.k0s(),o.j41(51,"mat-form-field",18)(52,"mat-label"),o.EFF(53,"QR-Code text"),o.k0s(),o.j41(54,"input",21),o.mxI("ngModelChange",function(u){return o.eBV(s),o.DH7(r.qrCode.currentText,u)||(r.qrCode.currentText=u),o.Njj(u)}),o.bIt("input",function(){return o.eBV(s),o.Njj(r.onQrCodeTextChange())}),o.k0s()()()(),o.j41(55,"mat-card",10)(56,"mat-card-header"),o.EFF(57,"Bottom left logo (SVG):"),o.k0s(),o.j41(58,"mat-card-content")(59,"input",22,2),o.bIt("change",function(u){return o.eBV(s),o.Njj(r.onFileSelected(u))}),o.k0s(),o.j41(61,"button",23),o.bIt("click",function(){return o.eBV(s),o.Njj(r.onRemoveLogo())}),o.j41(62,"span"),o.nrm(63,"i",24),o.EFF(64," Remove Logo"),o.k0s()(),o.j41(65,"div",25)(66,"button",26),o.bIt("click",function(){return o.eBV(s),o.Njj(r.onRotateLogo())}),o.j41(67,"span"),o.nrm(68,"i",27),o.EFF(69," Rotate Logo"),o.k0s()(),o.j41(70,"button",28),o.bIt("click",function(){return o.eBV(s),o.Njj(r.onFlipLogo())}),o.j41(71,"span"),o.nrm(72,"i",29),o.EFF(73," Flip Logo"),o.k0s()(),o.j41(74,"cc-labelled-color-picker",30),o.bIt("onColorChange",function(u){return o.eBV(s),o.Njj(r.onLogoColorChange(u))}),o.k0s()()()()(),o.j41(75,"mat-dialog-actions",31)(76,"button",32),o.bIt("click",function(){return o.eBV(s),o.Njj(r.download3MFFile())}),o.j41(77,"span"),o.nrm(78,"i",33),o.EFF(79," Download 3MF"),o.k0s()(),o.j41(80,"button",34),o.bIt("click",function(){return o.eBV(s),o.Njj(r.downloadStlFile())}),o.j41(81,"span"),o.nrm(82,"i",33),o.EFF(83," Download minimal STL"),o.k0s()()()()}2&i&&(o.R7$(9),o.R50("value",r.selectedPrinter),o.R7$(2),o.SpI(" ",r.selectedPrinter.name," "),o.R7$(),o.Dyx(r.printers),o.R7$(7),o.Y8G("max",r.maxWidth),o.R7$(),o.R50("ngModel",r.wantedWidth),o.R7$(4),o.Lme("Width: ",(r.currentSize.x/10).toFixed(1),"cm (max. ",(r.selectedPrinter.x/10).toFixed(1),")"),o.R7$(3),o.Lme("Depth: ",(r.currentSize.y/10).toFixed(1),"cm (max. ",(r.selectedPrinter.y/10).toFixed(1),")"),o.R7$(3),o.Lme("Height: ",(r.currentSize.z/10).toFixed(1),"cm (max. ",(r.selectedPrinter.z/10).toFixed(1),")"),o.R7$(4),o.R50("ngModel",r.frontText),o.Y8G("placeholder","CodeCharta"),o.R7$(5),o.Y8G("checked",r.secondRow.isVisible),o.R7$(2),o.Y8G("hidden",r.secondRow.isVisible),o.R7$(3),o.R50("ngModel",r.secondRow.currentText),o.R7$(5),o.Y8G("checked",r.qrCode.isVisible),o.R7$(2),o.Y8G("hidden",r.qrCode.isVisible),o.R7$(3),o.R50("ngModel",r.qrCode.currentText),o.R7$(7),o.Y8G("hidden",!r.isFileSelected),o.R7$(4),o.Y8G("hidden",!r.isFileSelected),o.R7$(9),o.Y8G("hexColor",r.logoColor)("labels",o.lJ4(24,Ede)),o.R7$(2),o.Y8G("disabled",!r.isPrintMeshLoaded),o.R7$(4),o.Y8G("disabled",!r.isPrintMeshLoaded))},dependencies:[Jg,ml,Vu,Uu,t0,Q$,gd,c2,G$,z$,W$,Y3,a2,Kg,ox,lx,n0,l2,Jo,j8,Jl],styles:[".cc-printer-specs[_ngcontent-%COMP%]{color:#888}.cc-file-input[_ngcontent-%COMP%]{margin-top:16px}"]})}}return n})();const pq=sn(Hc,n=>n.colorMode),hx=bn("SET_COLOR_MODE",{_as:"props",_p:void 0});let Tde=(()=>{class n{constructor(e,i,r){this.dialog=e,this.state=i,this.store=r}export3DMap(){this.state.getValue().dynamicSettings.colorMode!==jl.absolute?this.dialog.open(uu,{data:this.buildErrorDialog()}):this.dialog.open(fq,{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(hx({value:jl.absolute})),this.store.select(pq).pipe(ms(1)).subscribe(l=>{l===jl.absolute&&setTimeout(()=>{this.dialog.open(fq,{panelClass:"cc-export-3D-map-dialog"})},100)})}}}}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Cs),o.rXU(Vi),o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-export-3d-map-button"]],standalone:!0,features:[o.aNF],decls:1,vars:1,consts:[["title","Download 3MF code file",3,"click","icon"]],template:function(i,r){1&i&&(o.j41(0,"cc-action-icon",0),o.bIt("click",function(){return r.export3DMap()}),o.k0s()),2&i&&o.Y8G("icon","fa fa-print")},dependencies:[Al],encapsulation:2})}}return n})();const $8=(0,v(1853).L)(n=>function(){n(this),this.name="EmptyError",this.message="no elements in sequence"});function Dde(n=Bde){return(0,Fr.N)((t,e)=>{let i=!1;t.subscribe((0,sr._)(e,r=>{i=!0,e.next(r)},()=>i?e.complete():e.error(n())))})}function Bde(){return new $8}function h2(n,t){const e=arguments.length>=2;return i=>i.pipe(n?ur((r,s)=>n(r,s,i)):Ul.D,ms(1),e?function Fde(n){return(0,Fr.N)((t,e)=>{let i=!1;t.subscribe((0,sr._)(e,r=>{i=!0,e.next(r)},()=>{i||e.next(n),e.complete()}))})}(t):Dde(()=>new $8))}const Qu=v(4999),o0=bn("SET_AMOUNT_OF_TOP_LABELS",{_as:"props",_p:void 0}),f2=bn("SET_COLOR_LABELS",{_as:"props",_p:void 0}),fx=bn("SET_EDGE_HEIGHT",{_as:"props",_p:void 0}),nR=bn("SET_SCREENSHOT_TO_CLIPBOARD_ENABLED",{_as:"props",_p:void 0}),iR=bn("SET_EXPERIMENTAL_FEATURES_ENABLED",{_as:"props",_p:void 0}),p2=bn("SET_ENABLE_FLOOR_LABELS",{_as:"props",_p:void 0}),A2=bn("SET_HIDE_FLAT_BUILDINGS",{_as:"props",_p:void 0}),m2=bn("SET_INVERT_AREA",{_as:"props",_p:void 0}),g2=bn("SET_INVERT_HEIGHT",{_as:"props",_p:void 0}),q8=bn("SET_IS_EDGE_METRIC_VISIBLE",{_as:"props",_p:void 0}),rR=bn("TOGGLE_IS_EDGE_METRIC_VISIBLE"),W8=bn("SET_IS_COLOR_METRIC_LINKED_TO_HEIGHT_METRIC",{_as:"props",_p:void 0}),X8=bn("TOGGLE_IS_COLOR_METRIC_LINKED_TO_HEIGHT_METRIC"),oR=bn("SET_PRESENTATION_MODE",{_as:"props",_p:void 0}),_2=bn("SET_IS_WHITE_BACKGROUND",{_as:"props",_p:void 0}),b2=bn("SET_LAYOUT_ALGORITHM",{_as:"props",_p:void 0}),v2=bn("SET_MAX_TREE_MAP_FILES",{_as:"props",_p:void 0}),sR=bn("SET_RESET_CAMERA_IF_NEW_FILE_IS_LOADED",{_as:"props",_p:void 0}),px=bn("SET_SCALING",{_as:"props",_p:void 0}),y2=bn("SET_SHARPNESS_MODE",{_as:"props",_p:void 0}),w2=bn("SET_SHOW_METRIC_LABEL_NAME_VALUE",{_as:"props",_p:void 0}),x2=bn("SET_SHOW_METRIC_LABEL_NODE_NAME",{_as:"props",_p:void 0}),C2=bn("SET_SHOW_ONLY_BUILDINGS_WITH_EDGES",{_as:"props",_p:void 0}),Zp=bn("SET_AREA_METRIC",{_as:"props",_p:void 0}),zu=bn("SET_COLOR_METRIC",{_as:"props",_p:void 0}),hf=bn("SET_COLOR_RANGE",{_as:"props",_p:void 0}),M2=bn("SET_DISTRIBUTION_METRIC",{_as:"props",_p:void 0}),Jp=bn("SET_EDGE_METRIC",{_as:"props",_p:void 0}),aR=bn("SET_ALL_FOCUSED_NODES",{_as:"props",_p:void 0}),lR=bn("FOCUS_NODE",{_as:"props",_p:void 0}),E2=bn("UNFOCUS_ALL_NODES"),cR=bn("UNFOCUS_NODE"),eA=bn("SET_HEIGHT_METRIC",{_as:"props",_p:void 0}),Ax=bn("SET_MARGIN",{_as:"props",_p:void 0}),s0=bn("SET_SEARCH_PATTERN",{_as:"props",_p:void 0}),dR=bn("SET_SORTING_OPTION",{_as:"props",_p:void 0}),K8=bn("SET_ATTRIBUTE_DESCRIPTORS",{_as:"props",_p:void 0}),Y8=bn("SET_ATTRIBUTE_TYPES",{_as:"props",_p:void 0}),Z8=bn("UPDATE_ATTRIBUTE_TYPE",{_as:"props",_p:void 0}),J8=bn("SET_BLACKLIST",{_as:"props",_p:void 0}),e6=bn("ADD_BLACKLIST_ITEM",{_as:"props",_p:void 0}),uR=bn("ADD_BLACKLIST_ITEMS",{_as:"props",_p:void 0}),hR=bn("REMOVE_BLACKLIST_ITEM",{_as:"props",_p:void 0}),t6=bn("ADD_BLACKLIST_ITEMS_IF_NOT_RESULTS_IN_EMPTY_MAP",{_as:"props",_p:void 0}),n6=bn("SET_EDGES",{_as:"props",_p:void 0}),mq=bn("ADD_EDGE",{_as:"props",_p:void 0}),gq=bn("REMOVE_EDGE",{_as:"props",_p:void 0}),fR=bn("SET_MARKED_PACKAGES",{_as:"props",_p:void 0}),S2=bn("MARK_PACKAGES",{_as:"props",_p:void 0}),pR=bn("UNMARK_PACKAGE",{_as:"props",_p:void 0});function _q(n,t){this.v=n,this.k=t}function bq(n){return new _q(n,0)}function T2(n){var t,e;function i(s,l){try{var u=n[s](l),f=u.value,p=f instanceof _q;Promise.resolve(p?f.v:f).then(function(m){if(p){var _="return"===s?"return":"next";if(!f.k||m.done)return i(_,m);m=n[_](m).value}r(u.done?"return":"normal",m)},function(m){i("throw",m)})}catch(m){r("throw",m)}}function r(s,l){switch(s){case"return":t.resolve({value:l,done:!0});break;case"throw":t.reject(l);break;default:t.resolve({value:l,done:!1})}(t=t.next)?i(t.key,t.arg):e=null}this._invoke=function(s,l){return new Promise(function(u,f){var p={key:s,arg:l,resolve:u,reject:f,next:null};e?e=e.next=p:(t=e=p,i(s,l))})},"function"!=typeof n.return&&(this.return=void 0)}T2.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},T2.prototype.next=function(n){return this._invoke("next",n)},T2.prototype.throw=function(n){return this._invoke("throw",n)},T2.prototype.return=function(n){return this._invoke("return",n)};const i6=(n,t)=>t.some(e=>n instanceof e);let vq,yq;const r6=new WeakMap,o6=new WeakMap,AR=new WeakMap;let s6={get(n,t,e){if(n instanceof IDBTransaction){if("done"===t)return r6.get(n);if("store"===t)return e.objectStoreNames[1]?void 0:e.objectStore(e.objectStoreNames[0])}return a0(n[t])},set:(n,t,e)=>(n[t]=e,!0),has:(n,t)=>n instanceof IDBTransaction&&("done"===t||"store"===t)||t in n};function wq(n){s6=n(s6)}function Ude(n){return"function"==typeof n?function Lde(n){return function Pde(){return yq||(yq=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(n)?function(...t){return n.apply(a6(this),t),a0(this.request)}:function(...t){return a0(n.apply(a6(this),t))}}(n):(n instanceof IDBTransaction&&function Nde(n){if(r6.has(n))return;const t=new Promise((e,i)=>{const r=()=>{n.removeEventListener("complete",s),n.removeEventListener("error",l),n.removeEventListener("abort",l)},s=()=>{e(),r()},l=()=>{i(n.error||new DOMException("AbortError","AbortError")),r()};n.addEventListener("complete",s),n.addEventListener("error",l),n.addEventListener("abort",l)});r6.set(n,t)}(n),i6(n,function Rde(){return vq||(vq=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}())?new Proxy(n,s6):n)}function a0(n){if(n instanceof IDBRequest)return function Ode(n){const t=new Promise((e,i)=>{const r=()=>{n.removeEventListener("success",s),n.removeEventListener("error",l)},s=()=>{e(a0(n.result)),r()},l=()=>{i(n.error),r()};n.addEventListener("success",s),n.addEventListener("error",l)});return AR.set(t,n),t}(n);if(o6.has(n))return o6.get(n);const t=Ude(n);return t!==n&&(o6.set(n,t),AR.set(t,n)),t}const a6=n=>AR.get(n),Hde=["get","getKey","getAll","getAllKeys","count"],Qde=["put","add","delete","clear"],l6=new Map;function xq(n,t){if(!(n instanceof IDBDatabase)||t in n||"string"!=typeof t)return;if(l6.get(t))return l6.get(t);const e=t.replace(/FromIndex$/,""),i=t!==e,r=Qde.includes(e);if(!(e in(i?IDBIndex:IDBObjectStore).prototype)||!r&&!Hde.includes(e))return;const s=function(){var l=Cn(function*(u,...f){const p=this.transaction(u,r?"readwrite":"readonly");let m=p.store;return i&&(m=m.index(f.shift())),(yield Promise.all([m[e](...f),r&&p.done]))[0]});return function(f){return l.apply(this,arguments)}}();return l6.set(t,s),s}wq(n=>({...n,get:(t,e,i)=>xq(t,e)||n.get(t,e,i),has:(t,e)=>!!xq(t,e)||n.has(t,e)}));const zde=["continue","continuePrimaryKey","advance"],Cq={},c6=new WeakMap,Mq=new WeakMap,Gde={get(n,t){if(!zde.includes(t))return n[t];let e=Cq[t];return e||(e=Cq[t]=function(...i){c6.set(this,Mq.get(this)[t](...i))}),e}};function jde(){return d6.apply(this,arguments)}function d6(){return d6=function kde(n){return function(){return new T2(n.apply(this,arguments))}}(function*(...n){let t=this;if(t instanceof IDBCursor||(t=yield bq(t.openCursor(...n))),!t)return;const e=new Proxy(t,Gde);for(Mq.set(e,t),AR.set(e,a6(t));t;)yield e,t=yield bq(c6.get(e)||t.continue()),c6.delete(e)}),d6.apply(this,arguments)}function Eq(n,t){return t===Symbol.asyncIterator&&i6(n,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&i6(n,[IDBIndex,IDBObjectStore])}wq(n=>({...n,get:(t,e,i)=>Eq(t,e)?jde:n.get(t,e,i),has:(t,e)=>Eq(t,e)||n.has(t,e)}));const $de="CodeCharta",qde=1,I2="ccstate",Sq="id",u6=1001;function h6(){return(h6=Cn(function*(n){const e=(yield m6()).transaction(I2,"readwrite");yield e.store.put({[Sq]:u6,state:n}),yield e.done})).apply(this,arguments)}function f6(){return p6.apply(this,arguments)}function p6(){return(p6=Cn(function*(){return(yield(yield m6()).get(I2,u6))?.state||null})).apply(this,arguments)}function A6(){return(A6=Cn(function*(){const t=(yield m6()).transaction(I2,"readwrite");yield t.store.delete(u6),yield t.done})).apply(this,arguments)}function m6(){return g6.apply(this,arguments)}function g6(){return(g6=Cn(function*(){return function Vde(n,t,{blocked:e,upgrade:i,blocking:r,terminated:s}={}){const l=indexedDB.open(n,t),u=a0(l);return i&&l.addEventListener("upgradeneeded",f=>{i(a0(l.result),f.oldVersion,f.newVersion,a0(l.transaction),f)}),e&&l.addEventListener("blocked",f=>e(f.oldVersion,f.newVersion,f)),u.then(f=>{s&&f.addEventListener("close",()=>s()),r&&f.addEventListener("versionchange",p=>r(p.oldVersion,p.newVersion,p))}).catch(()=>{}),u}($de,qde,{upgrade(n){n.objectStoreNames.contains(I2)||n.createObjectStore(I2,{keyPath:Sq})}})})).apply(this,arguments)}const Kde=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"}}}'),Yde=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"}}}');class tA{constructor(t,e,i){this.kind=t,this.value=e,this.error=i,this.hasValue="N"===t}observe(t){return Tq(this,t)}do(t,e,i){const{kind:r,value:s,error:l}=this;return"N"===r?t?.(s):"E"===r?e?.(l):i?.()}accept(t,e,i){var r;return(0,eo.T)(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?So(e):"E"===t?function Zde(n,t){const e=(0,eo.T)(n)?n:()=>n,i=r=>r.error(e());return new Xr.c(t?r=>t.schedule(i,0,r):i)}(()=>i):"C"===t?bh:0;if(!r)throw new TypeError(`Unexpected notification kind ${t}`);return r}static createNext(t){return new tA("N",t)}static createError(t){return new tA("E",void 0,t)}static createComplete(){return tA.completeNotification}}function Tq(n,t){var e,i,r;const{kind:s,value:l,error:u}=n;if("string"!=typeof s)throw new TypeError('Invalid notification, missing "kind"');"N"===s?null===(e=t.next)||void 0===e||e.call(t,l):"E"===s?null===(i=t.error)||void 0===i||i.call(t,u):null===(r=t.complete)||void 0===r||r.call(t)}function Iq(n){return(0,Fr.N)((t,e)=>{let s,i=null,r=!1;i=t.subscribe((0,sr._)(e,void 0,void 0,l=>{s=Pr(n(l,Iq(n)(t))),i?(i.unsubscribe(),i=null,s.subscribe(e)):r=!0})),r&&(i.unsubscribe(),i=null,s.subscribe(e))})}function Fq(n,t,e,i){return(0,Fr.N)((r,s)=>{let l;t&&"function"!=typeof t?({duration:e,element:l,connector:i}=t):l=t;const u=new Map,f=F=>{u.forEach(F),F(s)},p=F=>f(D=>D.error(F));let m=0,_=!1;const b=new sr.H(s,F=>{try{const D=n(F);let T=u.get(D);if(!T){u.set(D,T=i?i():new Ai.B);const I=function w(F,D){const T=new Xr.c(I=>{m++;const O=D.subscribe(I);return()=>{O.unsubscribe(),0==--m&&_&&b.unsubscribe()}});return T.key=F,T}(D,T);if(s.next(I),e){const O=(0,sr._)(T,()=>{T.complete(),O?.unsubscribe()},void 0,void 0,()=>u.delete(D));b.add(Pr(e(I)).subscribe(O))}}T.next(l?l(F):F)}catch(D){p(D)}},()=>f(F=>F.complete()),p,()=>u.clear(),()=>(_=!0,0===m));r.subscribe(b)})}function Dq(n,t){return t?e=>e.pipe(Dq((i,r)=>Pr(n(i,r)).pipe((0,$n.T)((s,l)=>t(i,s,r,l))))):(0,Fr.N)((e,i)=>{let r=0,s=null,l=!1;e.subscribe((0,sr._)(i,u=>{s||(s=(0,sr._)(i,void 0,()=>{s=null,l&&i.complete()}),Pr(n(u,r++)).subscribe(s))},()=>{l=!0,!s&&i.complete()}))})}tA.completeNotification=new tA("C");const nue={dispatch:!0,functional:!1,useEffectsErrorHandler:!0},mR="__@ngrx/effects_create__";function os(n,t={}){const e=t.functional?n:n(),i={...nue,...t};return Object.defineProperty(e,mR,{value:i}),e}function kq(n){return Object.getPrototypeOf(n)}function _6(n){return"function"==typeof n}function aue(n,t,e){const i=kq(n),s=i&&"Object"!==i.constructor.name?i.constructor.name:null,l=function Bq(n){return function iue(n){return Object.getOwnPropertyNames(n).filter(i=>!(!n[i]||!n[i].hasOwnProperty(mR))&&n[i][mR].hasOwnProperty("dispatch")).map(i=>({propertyName:i,...n[i][mR]}))}(n)}(n).map(({propertyName:u,dispatch:f,useEffectsErrorHandler:p})=>{const m="function"==typeof n[u]?n[u]():n[u],_=p?e(m,t):m;return!1===f?_.pipe(Y$()):_.pipe(function eue(){return(0,Fr.N)((n,t)=>{n.subscribe((0,sr._)(t,e=>{t.next(tA.createNext(e))},()=>{t.next(tA.createComplete()),t.complete()},e=>{t.next(tA.createError(e)),t.complete()}))})}()).pipe((0,$n.T)(w=>({effect:n[u],notification:w,propertyName:u,sourceName:s,sourceInstance:n})))});return Wl(...l)}function Rq(n,t,e=10){return n.pipe(Iq(i=>(t&&t.handleError(i),e<=1?n:Rq(n,t,e-1))))}let nA=(()=>{class n extends Xr.c{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)(o.KVO(Cc))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function ff(...n){return ur(t=>n.some(e=>"string"==typeof e?e===t.type:e.type===t.type))}new o.nKC("@ngrx/effects Internal Root Guard"),new o.nKC("@ngrx/effects User Provided Effects"),new o.nKC("@ngrx/effects Internal Root Effects"),new o.nKC("@ngrx/effects Internal Root Effects Instances"),new o.nKC("@ngrx/effects Internal Feature Effects"),new o.nKC("@ngrx/effects Internal Feature Effects Instance Groups");const due=new o.nKC("@ngrx/effects Effects Error Handler",{providedIn:"root",factory:()=>Rq}),uue=bn("@ngrx/effects/init");function yue(n){return b6(n,"ngrxOnInitEffects")}function b6(n,t){return n&&t in n&&"function"==typeof n[t]}let Pq=(()=>{class n extends Ai.B{constructor(e,i){super(),this.errorHandler=e,this.effectsErrorHandler=i}addEffects(e){this.next(e)}toActions(){return this.pipe(Fq(e=>function rue(n){return!!n.constructor&&"Object"!==n.constructor.name&&"Function"!==n.constructor.name}(e)?kq(e):e),Ys(e=>e.pipe(Fq(wue))),Ys(e=>{const i=e.pipe(Dq(s=>function xue(n,t){return e=>{const i=aue(e,n,t);return function bue(n){return b6(n,"ngrxOnRunEffects")}(e)?e.ngrxOnRunEffects(i):i}}(this.errorHandler,this.effectsErrorHandler)(s)),(0,$n.T)(s=>(function hue(n,t){if("N"===n.notification.kind){const e=n.notification.value;!function fue(n){return"function"!=typeof n&&n&&n.type&&"string"==typeof n.type}(e)&&t.handleError(new Error(`Effect ${function pue({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 Aue(n){try{return JSON.stringify(n)}catch{return n}}(e)}`))}}(s,this.errorHandler),s.notification)),ur(s=>"N"===s.kind&&null!=s.value),function tue(){return(0,Fr.N)((n,t)=>{n.subscribe((0,sr._)(t,e=>Tq(e,t)))})}());return Wl(i,e.pipe(ms(1),ur(yue),(0,$n.T)(s=>s.ngrxOnInitEffects())))}))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(o.zcH),o.KVO(due))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function wue(n){return function gue(n){return b6(n,"ngrxOnIdentifyEffects")}(n)?n.ngrxOnIdentifyEffects():""}let Oq=(()=>{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)(o.KVO(Pq),o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const Mue=[Jp,eA,zu,Zp,Au];var Gc=function(n){return n.areaMetric="area",n.heightMetric="height",n.colorMetric="color",n.edgeMetric="edge",n.currentFilesAreSampleFiles="currentFilesAreSampleFiles",n}(Gc||{});let Eue=(()=>{class n{constructor(e,i,r,s){this.loadInitialFileService=e,this.actions$=i,this.state=r,this.store=s,this.saveMetricsInQueryParameters$=os(()=>this.actions$.pipe(ff(...Mue),hl(this.store.select(Aa)),(0,$n.T)(l=>l[1].edgeMetricData&&l[1].edgeMetricData.length>0),M_(100),ao(l=>{this.updateMetricQueryParameters(l)})),{dispatch:!1})}updateMetricQueryParameters(e){const i=this.state.getValue(),{edgeMetric:r,heightMetric:s,colorMetric:l,areaMetric:u}=i.dynamicSettings;this.loadInitialFileService.checkFileQueryParameterPresent()&&(this.addOrUpdateQueryParameter(Gc.areaMetric,u),this.addOrUpdateQueryParameter(Gc.heightMetric,s),this.addOrUpdateQueryParameter(Gc.colorMetric,l),e?this.addOrUpdateQueryParameter(Gc.edgeMetric,r):this.deleteQueryParameterIfExists(Gc.edgeMetric),i.appStatus.currentFilesAreSampleFiles?this.addOrUpdateQueryParameter(Gc.currentFilesAreSampleFiles,!0):this.deleteQueryParameterIfExists(Gc.currentFilesAreSampleFiles))}addOrUpdateQueryParameter(e,i){const r=new URL(window.location.href),s=r.search.slice(1),l=s.length>0?s.split("&"):[],u=[];let f=!1;for(const p of l)p.split("=")[0]===e?(u.push(`${e}=${encodeURIComponent(i)}`),f=!0):u.push(p);f||u.push(`${e}=${encodeURIComponent(i)}`),r.search=u.join("&"),window.history.replaceState(null,"",r.toString())}deleteQueryParameterIfExists(e){const i=new URL(window.location.href),r=i.search.slice(1),s=r.length>0?r.split("&"):[],l=[];for(const u of s){const[f,p]=u.split("=");f!==e&&l.push(`${f}=${p}`)}i.search=l.join("&"),window.history.replaceState(null,"",i.toString())}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(E6),o.KVO(nA),o.KVO(Vi),o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();function Nq(n,t){const e="object"==typeof t;return new Promise((i,r)=>{const s=new B8.Ms({next:l=>{i(l),s.unsubscribe()},error:r,complete:()=>{e?i(t.defaultValue):r(new $8)}});n.subscribe(s)})}class Lq{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 Cn(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=Cn(function*(s){return t.getFileDataFromFile(s)});return function(s){return r.apply(this,arguments)}}()))})()}getFileDataFromFile(t){var e=this;return Cn(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 Cn(function*(){const i=yield Nq(e.httpClient.get(t,{responseType:"arraybuffer",observe:"response"}));if(i.status>=200&&i.status<300){const l=XI(sb(i.body,{to:"string"}));return{fileName:e.getFileName(t,l.projectName),fileSize:13,content:l}}throw new Error(`Could not load file "${t}"`)})()}getFile(t){var e=this;return Cn(function*(){const i=yield Nq(e.httpClient.get(t,{observe:"response"}));if(i.status>=200&&i.status<300){const s=XI(i.body);return{fileName:t=e.getFileName(t,s.projectName),fileSize:15,content:s}}throw new Error(`Could not load file "${t}"`)})()}getFileName(t,e){return e?.trim()||t.split("/").pop()}}function Uq(n){return(0,Fr.N)((t,e)=>{try{t.subscribe(e)}finally{e.add(n)}})}class gR{}class _R{}class Od{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),s=r.toLowerCase(),l=e.slice(i+1).trim();this.maybeSetNormalizedName(r,s),this.headers.has(s)?this.headers.get(s).push(l):this.headers.set(s,[l])}})}: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 Od?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 Od;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof Od?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 s=t.value;if(s){let l=this.headers.get(e);if(!l)return;l=l.filter(u=>-1===s.indexOf(u)),0===l.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,l)}else this.headers.delete(e),this.normalizedNames.delete(e)}}setHeaderEntries(t,e){const i=(Array.isArray(e)?e:[e]).map(s=>s.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 Tue{encodeKey(t){return Vq(t)}encodeValue(t){return Vq(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const Fue=/%(\d[a-f0-9])/gi,Due={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function Vq(n){return encodeURIComponent(n).replace(Fue,(t,e)=>Due[e]??t)}function bR(n){return`${n}`}class l0{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new Tue,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function Iue(n,t){const e=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(r=>{const s=r.indexOf("="),[l,u]=-1==s?[t.decodeKey(r),""]:[t.decodeKey(r.slice(0,s)),t.decodeValue(r.slice(s+1))],f=e.get(l)||[];f.push(u),e.set(l,f)}),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(bR):[bR(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(s=>{e.push({param:i,value:s,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 l0({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(bR(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(bR(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 Bue{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 Hq(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer}function Qq(n){return typeof Blob<"u"&&n instanceof Blob}function zq(n){return typeof FormData<"u"&&n instanceof FormData}class F2{constructor(t,e,i,r){let s;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function kue(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,s=r):s=i,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params),this.transferCache=s.transferCache),this.headers??=new Od,this.context??=new Bue,this.params){const l=this.params.toString();if(0===l.length)this.urlWithParams=e;else{const u=e.indexOf("?");this.urlWithParams=e+(-1===u?"?":ub.set(w,t.setHeaders[w]),p)),t.setParams&&(m=Object.keys(t.setParams).reduce((b,w)=>b.set(w,t.setParams[w]),m)),new F2(e,i,l,{params:m,headers:p,context:_,reportProgress:f,responseType:r,withCredentials:u,transferCache:s})}}var c0=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}(c0||{});class v6{constructor(t,e=200,i="OK"){this.headers=t.headers||new Od,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 vR extends v6{constructor(t={}){super(t),this.type=c0.ResponseHeader}clone(t={}){return new vR({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 rv extends v6{constructor(t={}){super(t),this.type=c0.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new rv({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 mx extends v6{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}}function y6(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 w6=(()=>{class n{constructor(e){this.handler=e}request(e,i,r={}){let s;if(e instanceof F2)s=e;else{let f,p;f=r.headers instanceof Od?r.headers:new Od(r.headers),r.params&&(p=r.params instanceof l0?r.params:new l0({fromObject:r.params})),s=new F2(e,i,void 0!==r.body?r.body:null,{headers:f,context:r.context,params:p,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials,transferCache:r.transferCache})}const l=So(s).pipe(function Sue(n,t){return(0,eo.T)(t)?Ys(n,t,1):Ys(n,1)}(f=>this.handler.handle(f)));if(e instanceof F2||"events"===r.observe)return l;const u=l.pipe(ur(f=>f instanceof rv));switch(r.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return u.pipe((0,$n.T)(f=>{if(null!==f.body&&!(f.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return f.body}));case"blob":return u.pipe((0,$n.T)(f=>{if(null!==f.body&&!(f.body instanceof Blob))throw new Error("Response is not a Blob.");return f.body}));case"text":return u.pipe((0,$n.T)(f=>{if(null!==f.body&&"string"!=typeof f.body)throw new Error("Response is not a string.");return f.body}));default:return u.pipe((0,$n.T)(f=>f.body))}case"response":return u;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 l0).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,y6(r,i))}post(e,i,r={}){return this.request("POST",e,y6(r,i))}put(e,i,r={}){return this.request("PUT",e,y6(r,i))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(gR))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const Nue=/^\)\]\}',?\n/;function jq(n){if(n.url)return n.url;const t="X-Request-URL".toLocaleLowerCase();return n.headers.get(t)}let x6=(()=>{class n{constructor(){this.fetchImpl=(0,o.WQX)(Uue,{optional:!0})?.fetch??((...e)=>globalThis.fetch(...e)),this.ngZone=(0,o.WQX)(o.SKi)}handle(e){return new Xr.c(i=>{const r=new AbortController;return this.doRequest(e,r.signal,i).then(C6,s=>i.error(new mx({error:s}))),()=>r.abort()})}doRequest(e,i,r){var s=this;return Cn(function*(){const l=s.createRequestInit(e);let u;try{const F=s.ngZone.runOutsideAngular(()=>s.fetchImpl(e.urlWithParams,{signal:i,...l}));(function Vue(n){n.then(C6,C6)})(F),r.next({type:c0.Sent}),u=yield F}catch(F){return void r.error(new mx({error:F,status:F.status??0,statusText:F.statusText,url:e.urlWithParams,headers:F.headers}))}const f=new Od(u.headers),p=u.statusText,m=jq(u)??e.urlWithParams;let _=u.status,b=null;if(e.reportProgress&&r.next(new vR({headers:f,status:_,statusText:p,url:m})),u.body){const F=u.headers.get("content-length"),D=[],T=u.body.getReader();let O,R,I=0;const P=typeof Zone<"u"&&Zone.current;yield s.ngZone.runOutsideAngular(Cn(function*(){for(;;){const{done:J,value:te}=yield T.read();if(J)break;if(D.push(te),I+=te.length,e.reportProgress){R="text"===e.responseType?(R??"")+(O??=new TextDecoder).decode(te,{stream:!0}):void 0;const ie=()=>r.next({type:c0.DownloadProgress,total:F?+F:void 0,loaded:I,partialText:R});P?P.run(ie):ie()}}}));const ee=s.concatChunks(D,I);try{const J=u.headers.get("Content-Type")??"";b=s.parseBody(e,ee,J)}catch(J){return void r.error(new mx({error:J,headers:new Od(u.headers),status:u.status,statusText:u.statusText,url:jq(u)??e.urlWithParams}))}}0===_&&(_=b?200:0),_>=200&&_<300?(r.next(new rv({body:b,headers:f,status:_,statusText:p,url:m})),r.complete()):r.error(new mx({error:b,headers:f,status:_,statusText:p,url:m}))})()}parseBody(e,i,r){switch(e.responseType){case"json":const s=(new TextDecoder).decode(i).replace(Nue,"");return""===s?null:JSON.parse(s);case"text":return(new TextDecoder).decode(i);case"blob":return new Blob([i],{type:r});case"arraybuffer":return i.buffer}}createRequestInit(e){const i={},r=e.withCredentials?"include":void 0;if(e.headers.forEach((s,l)=>i[s]=l.join(",")),e.headers.has("Accept")||(i.Accept="application/json, text/plain, */*"),!e.headers.has("Content-Type")){const s=e.detectContentTypeHeader();null!==s&&(i["Content-Type"]=s)}return{body:e.serializeBody(),method:e.method,headers:i,credentials:r}}concatChunks(e,i){const r=new Uint8Array(i);let s=0;for(const l of e)r.set(l,s),s+=l.length;return r}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();class Uue{}function C6(){}function $q(n,t){return t(n)}function Hue(n,t){return(e,i)=>t.intercept(e,{handle:r=>n(r,i)})}const zue=new o.nKC(""),D2=new o.nKC(""),qq=new o.nKC(""),Wq=new o.nKC("",{providedIn:"root",factory:()=>!0});function Gue(){let n=null;return(t,e)=>{null===n&&(n=((0,o.WQX)(zue,{optional:!0})??[]).reduceRight(Hue,$q));const i=(0,o.WQX)(o.TgB);if((0,o.WQX)(Wq)){const s=i.add();return n(t,e).pipe(Uq(()=>i.remove(s)))}return n(t,e)}}let Xq=(()=>{class n extends gR{constructor(e,i){super(),this.backend=e,this.injector=i,this.chain=null,this.pendingTasks=(0,o.WQX)(o.TgB),this.contributeToStability=(0,o.WQX)(Wq)}handle(e){if(null===this.chain){const i=Array.from(new Set([...this.injector.get(D2),...this.injector.get(qq,[])]));this.chain=i.reduceRight((r,s)=>function Que(n,t,e){return(i,r)=>(0,o.N4e)(e,()=>t(i,s=>n(s,r)))}(r,s,this.injector),$q)}if(this.contributeToStability){const i=this.pendingTasks.add();return this.chain(e,r=>this.backend.handle(r)).pipe(Uq(()=>this.pendingTasks.remove(i)))}return this.chain(e,i=>this.backend.handle(i))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(_R),o.KVO(o.uvJ))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const Xue=/^\)\]\}',?\n/;let Yq=(()=>{class n{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new o.wOt(-2800,!1);const i=this.xhrFactory;return(i.\u0275loadImpl?aa(i.\u0275loadImpl()):So(null)).pipe(Xp(()=>new Xr.c(s=>{const l=i.build();if(l.open(e.method,e.urlWithParams),e.withCredentials&&(l.withCredentials=!0),e.headers.forEach((D,T)=>l.setRequestHeader(D,T.join(","))),e.headers.has("Accept")||l.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const D=e.detectContentTypeHeader();null!==D&&l.setRequestHeader("Content-Type",D)}if(e.responseType){const D=e.responseType.toLowerCase();l.responseType="json"!==D?D:"text"}const u=e.serializeBody();let f=null;const p=()=>{if(null!==f)return f;const D=l.statusText||"OK",T=new Od(l.getAllResponseHeaders()),I=function Kue(n){return"responseURL"in n&&n.responseURL?n.responseURL:/^X-Request-URL:/m.test(n.getAllResponseHeaders())?n.getResponseHeader("X-Request-URL"):null}(l)||e.url;return f=new vR({headers:T,status:l.status,statusText:D,url:I}),f},m=()=>{let{headers:D,status:T,statusText:I,url:O}=p(),R=null;204!==T&&(R=typeof l.response>"u"?l.responseText:l.response),0===T&&(T=R?200:0);let P=T>=200&&T<300;if("json"===e.responseType&&"string"==typeof R){const ee=R;R=R.replace(Xue,"");try{R=""!==R?JSON.parse(R):null}catch(J){R=ee,P&&(P=!1,R={error:J,text:R})}}P?(s.next(new rv({body:R,headers:D,status:T,statusText:I,url:O||void 0})),s.complete()):s.error(new mx({error:R,headers:D,status:T,statusText:I,url:O||void 0}))},_=D=>{const{url:T}=p(),I=new mx({error:D,status:l.status||0,statusText:l.statusText||"Unknown Error",url:T||void 0});s.error(I)};let b=!1;const w=D=>{b||(s.next(p()),b=!0);let T={type:c0.DownloadProgress,loaded:D.loaded};D.lengthComputable&&(T.total=D.total),"text"===e.responseType&&l.responseText&&(T.partialText=l.responseText),s.next(T)},F=D=>{let T={type:c0.UploadProgress,loaded:D.loaded};D.lengthComputable&&(T.total=D.total),s.next(T)};return l.addEventListener("load",m),l.addEventListener("error",_),l.addEventListener("timeout",_),l.addEventListener("abort",_),e.reportProgress&&(l.addEventListener("progress",w),null!==u&&l.upload&&l.upload.addEventListener("progress",F)),l.send(u),s.next({type:c0.Sent}),()=>{l.removeEventListener("error",_),l.removeEventListener("abort",_),l.removeEventListener("load",m),l.removeEventListener("timeout",_),e.reportProgress&&(l.removeEventListener("progress",w),null!==u&&l.upload&&l.upload.removeEventListener("progress",F)),l.readyState!==l.DONE&&l.abort()}})))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(ol))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const M6=new o.nKC(""),Zq=new o.nKC("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),Jq=new o.nKC("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class eW{}let Jue=(()=>{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=io(e,this.cookieName),this.lastCookieString=e),this.lastToken}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(V),o.KVO(o.Agw),o.KVO(Zq))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();function ehe(n,t){const e=n.url.toLowerCase();if(!(0,o.WQX)(M6)||"GET"===n.method||"HEAD"===n.method||e.startsWith("http://")||e.startsWith("https://"))return t(n);const i=(0,o.WQX)(eW).getToken(),r=(0,o.WQX)(Jq);return null!=i&&!n.headers.has(r)&&(n=n.clone({headers:n.headers.set(r,i)})),t(n)}var d0=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}(d0||{});const tW=new o.nKC(""),wR={fileName:"sample1.cc.json",fileSize:3072,content:Kde},xR={fileName:"sample2.cc.json",fileSize:2048,content:Yde};let E6=(()=>{class n{constructor(e,i,r,s,l){this.store=e,this.state=i,this.dialog=r,this.loadFileService=s,this.httpClient=l,this.urlUtils=new Lq(this.httpClient)}loadFilesOrSampleFiles(){var e=this;return Cn(function*(){yield e.checkFileQueryParameterPresent()?e.loadFilesFromQueryParams():e.loadFilesFromIndexedDB()})()}checkFileQueryParameterPresent(){return!!this.urlUtils.getParameterByName("file")}loadFilesFromQueryParams(){var e=this;return Cn(function*(){try{const i=yield e.urlUtils.getFileDataFromQueryParam(),r=yield f6();if(!r)return e.loadFileService.loadFiles(i),void e.setRenderStateFromUrl();const s=r.files,l=s.map(p=>dF(p.file)),u=i.map(p=>p.content.fileChecksum),f=l.map(p=>p.content.fileChecksum);Qu(u)===Qu(f)?e.applySettingsAndFilesFromSavedState(s,r,l):e.applySettingsFromSavedState(r,i),e.setRenderStateFromUrl()}catch(i){yield e.handleErrorLoadFilesFromQueryParams(i)}finally{e.setMetricsFromUrl(),e.setCurrentFilesAreSampleFilesFromUrl()}})()}applySettingsAndFilesFromSavedState(e,i,r){const s=[];i.appSettings.resetCameraIfNewFileIsLoaded||this.store.dispatch({type:"StartWithGlobalOption:resetCameraIfNewFileIsLoadedSetToFalse"});const l=this.applyAppSettings(i.appSettings);s.push(...l),this.loadFileService.loadFiles(r),this.store.dispatch(S({value:e}));const u=this.applyFileSettings(i.fileSettings);s.push(...u);const f=this.applyDynamicSettings(i.dynamicSettings);s.push(...f),s.length>0&&this.showErrorDialogForMissingProperties(s)}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 Cn(function*(){if(e.message!==Ch){const r="File(s) could not be loaded from the given file URL parameter. Loaded sample files instead.",s=i.createTitleUrlErrorDialog(e);i.showErrorDialog(r,s)}yield i.loadSampleFiles()})()}loadFilesFromIndexedDB(){var e=this;return Cn(function*(){try{const i=yield f6();if(!i)return void(yield e.loadSampleFiles());const r=i.files,s=r.map(l=>dF(l.file));e.applySettingsAndFilesFromSavedState(r,i,s)}catch(i){yield e.handleErrorLoadFilesFromIndexedDB(i)}})()}handleErrorLoadFilesFromIndexedDB(e){var i=this;return Cn(function*(){e.message!==Ch&&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 Cn(function*(){const r=e.fileSettings,s=e.dynamicSettings,l=e.appSettings,u=[];if(r){const f=i.applyFileSettings(r);u.push(...f)}if(s){const f=i.applyDynamicSettings(s);u.push(...f)}if(l){const f=i.applyAppSettings(l);u.push(...f)}u.length>0&&i.showErrorDialogForMissingProperties(u)})()}applyFileSettings(e){const i=this.state.getValue().fileSettings,r=[];for(const[s,l]of Object.entries(i))s in e?Qu(l)!==Qu(e[s])&&this.mapFileSettingToAction(s,e[s]):r.push(s);return r}applyDynamicSettings(e){const i=this.state.getValue().dynamicSettings,r=[];for(const[s,l]of Object.entries(i))s in e?Qu(l)!==Qu(e[s])&&this.mapDynamicSettingToAction(s,e[s]):r.push(s);return r}applyAppSettings(e){const i=this.state.getValue().appSettings,r=[];for(const[s,l]of Object.entries(i))s in e?Qu(l)!==Qu(e[s])&&this.mapAppSettingToAction(s,e[s]):r.push(s);return r}mapFileSettingToAction(e,i){switch(e){case"attributeTypes":this.store.dispatch(Y8({value:i}));break;case"attributeDescriptors":this.store.dispatch(K8({value:i}));break;case"blacklist":this.store.dispatch(J8({value:i}));break;case"edges":this.store.dispatch(n6({value:i}));break;case"markedPackages":this.store.dispatch(fR({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}mapDynamicSettingToAction(e,i){switch(e){case"areaMetric":this.store.dispatch(Zp({value:i}));break;case"heightMetric":this.store.dispatch(eA({value:i}));break;case"edgeMetric":this.store.dispatch(Jp({value:i}));break;case"colorMetric":this.store.dispatch(zu({value:i}));break;case"colorMode":this.store.dispatch(hx({value:i}));break;case"sortingOption":this.store.dispatch(dR({value:i}));break;case"colorRange":this.store.dispatch(hf({value:i}));break;case"distributionMetric":this.store.dispatch(M2({value:i}));break;case"focusedNodePath":this.store.dispatch(aR({value:i}));break;case"searchPattern":this.store.dispatch(s0({value:i}));break;case"margin":this.store.dispatch(Ax({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}mapAppSettingToAction(e,i){switch(e){case"amountOfTopLabels":case"amountOfEdgePreviews":this.store.dispatch(o0({value:i}));break;case"edgeHeight":this.store.dispatch(fx({value:i}));break;case"scaling":this.store.dispatch(px({value:i}));break;case"hideFlatBuildings":this.store.dispatch(A2({value:i}));break;case"invertHeight":this.store.dispatch(g2({value:i}));break;case"invertArea":this.store.dispatch(m2({value:i}));break;case"isWhiteBackground":this.store.dispatch(_2({value:i}));break;case"mapColors":this.store.dispatch(Wp({value:i}));break;case"isPresentationMode":this.store.dispatch(oR({value:i}));break;case"showOnlyBuildingsWithEdges":this.store.dispatch(C2({value:i}));break;case"isEdgeMetricVisible":this.store.dispatch(q8({value:i}));break;case"resetCameraIfNewFileIsLoaded":this.store.dispatch(sR({value:i}));break;case"isLoadingMap":this.store.dispatch(ph({value:i}));break;case"isLoadingFile":this.store.dispatch(Ec({value:i}));break;case"sortingOrderAscending":case"isSearchPanelPinned":break;case"showMetricLabelNameValue":this.store.dispatch(w2({value:i}));break;case"showMetricLabelNodeName":this.store.dispatch(x2({value:i}));break;case"layoutAlgorithm":this.store.dispatch(b2({value:i}));break;case"maxTreeMapFiles":this.store.dispatch(v2({value:i}));break;case"sharpnessMode":this.store.dispatch(y2({value:i}));break;case"experimentalFeaturesEnabled":this.store.dispatch(iR({value:i}));break;case"screenshotToClipboardEnabled":this.store.dispatch(nR({value:i}));break;case"colorLabels":this.store.dispatch(f2({value:i}));break;case"isColorMetricLinkedToHeightMetric":this.store.dispatch(W8({value:i}));break;case"enableFloorLabels":this.store.dispatch(p2({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}buildMissingPropertiesMessage(e){return`${$I(' ',e)}`}loadSampleFiles(){var e=this;return Cn(function*(){try{const i=yield f6();i&&e.applyAllSettings(i),e.loadFileService.loadFiles([wR,xR])}catch{e.loadFileService.loadFiles([wR,xR])}e.store.dispatch(Au({value:!0}))})()}showErrorDialog(e,i){this.dialog.open(uu,{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(Gc.areaMetric),i=this.urlUtils.getParameterByName(Gc.heightMetric),r=this.urlUtils.getParameterByName(Gc.colorMetric),s=this.urlUtils.getParameterByName(Gc.edgeMetric),l=this.state.getValue(),u=Aa(l).nodeMetricData,f=Aa(l).edgeMetricData;if(!u)return;const p=new Set(u.map(_=>_.name)),m=f.map(_=>_.name);e&&p.has(e)&&this.store.dispatch(Zp({value:e})),i&&p.has(i)&&this.store.dispatch(eA({value:i})),r&&p.has(r)&&this.store.dispatch(zu({value:r})),s&&m.includes(s)&&this.store.dispatch(Jp({value:s}))}setRenderStateFromUrl(){const e=this.urlUtils.getParameterByName("mode"),i=function Are(n){return n.map(t=>t.file)}(this.state.getValue().files);"Delta"===e&&i.length>=2&&this.store.dispatch(tt({referenceFile:i[0],comparisonFile:i[1]}))}setCurrentFilesAreSampleFilesFromUrl(){const e=this.urlUtils.getParameterByName(Gc.currentFilesAreSampleFiles);e&&"true"===e&&this.store.dispatch(Au({value:!0}))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(Vi),o.KVO(Cs),o.KVO(mu),o.KVO(w6))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const gx=sn(Hc,n=>n.areaMetric),B2=sn(Hc,n=>n.heightMetric),Ahe=sn(yn,n=>aG(n)),cW=sn(Aa,gx,Gg,B2,(n,t,e,i)=>((n,t)=>t.every(e=>((n,t)=>n.some(e=>e.name===t))(n,e)))(n.nodeMetricData,[t,e,i])),mhe=sn(Hc,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)),ghe=(sn(Aa,Ahe,cW,mhe,(n,t,e,i)=>!(null===n.nodeMetricData||!t||!e||!i)),n=>n.some(t=>"rloc"===t.name)?"rloc":"unary"),_he=["rloc","real_lines_of_code","loc","lines_of_code","lines","statements","functions"],dW=["complexity","mcc","cognitive_complexity","sonar_complexity","sonar_cognitive_complexity","max_nesting_level","indentation_level"];function bhe(n){return n.some(t=>t.maxValue>0)}let whe=(()=>{class n{constructor(e){this.store=e,this.resetChosenDistributionMetric$=os(()=>this.store.select(Aa).pipe((0,$n.T)(i=>i.nodeMetricData),ur(bhe),hl(this.store.select(cW)),ur(([,i])=>!i),ao(([i])=>{uW(this.store,i)})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();function uW(n,t){n.dispatch(M2({value:ghe(t)}));let[e,i,r]=function yhe(n){const t=[],e={AreaMetric:_he,HeightMetric:dW,ColorMetric:dW},i=new Set(n.map(r=>r.name));for(const r in e)for(const s of e[r])if(i.has(s)){t.push(s);break}return t}(t);(!e||!i||!r)&&([e,i,r]=function vhe(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(Zp({value:e})),n.dispatch(eA({value:i})),n.dispatch(zu({value:r}))}const _x=bn("SET_STATE",{_as:"props",_p:void 0}),S6={positive:!1,negative:!1,neutral:!1},Che=Fi(S6,vn(f2,g3(S6))),Mhe=Fi(!0,vn(x2,xr(!0))),I6=!1,Ehe=Fi(I6,vn(w2,xr(I6))),hW=bn("SET_SORTING_ORDER_ASCENDING",{_as:"props",_p:void 0}),F6=bn("TOGGLE_SORTING_ORDER_ASCENDING"),She=Fi(!0,vn(hW,xr(!0)),vn(F6,n=>!n)),The=Fi(!0,vn(Ec,xr(!0))),Ihe=Fi(!0,vn(ph,xr(!0))),Fhe=Fi(!0,vn(sR,xr(!0))),P6=!1,Dhe=Fi(P6,vn(C2,xr(P6))),O6=!1,Bhe=Fi(O6,vn(_2,xr(O6))),N6=!1,khe=Fi(N6,vn(g2,xr(N6))),L6=!1,Rhe=Fi(L6,vn(A2,xr(L6))),CR={x:1,y:1,z:1},Phe=Fi(CR,vn(px,g3(CR))),Ohe=Fi(4,vn(fx,xr(4))),k2=bn("SET_AMOUNT_OF_EDGE_PREVIEWS",{_as:"props",_p:void 0}),Nhe=Fi(1,vn(k2,xr(1))),Lhe=Fi(1,vn(o0,xr(1))),U6=!1,Uhe=Fi(U6,vn(oR,xr(U6))),V6=!1,Vhe=Fi(V6,vn(iR,xr(V6))),H6=ja.SquarifiedTreeMap,Hhe=Fi(H6,vn(b2,xr(H6))),Qhe=Fi(100,vn(v2,xr(100))),z6=fd.Standard,zhe=Fi(z6,vn(y2,xr(z6))),G6=!1,Ghe=Fi(G6,vn(nR,xr(G6))),j6=!1,jhe=Fi(j6,vn(m2,xr(j6))),$he=Fi(!0,vn(q8,(n,t)=>t.value),vn(rR,n=>!n)),qhe=Fi(!1,vn(W8,(n,t)=>t.value),vn(X8,n=>!n)),AW=bn("SET_IS_FILE_EXPLORER_PINNED",{_as:"props",_p:void 0}),$6=bn("TOGGLE_IS_FILE_EXPLORER_PINNED"),q6=!1,Khe=Sa({colorLabels:Che,showMetricLabelNodeName:Mhe,showMetricLabelNameValue:Ehe,sortingOrderAscending:She,isSearchPanelPinned:Fi(q6,vn(AW,xr(q6)),vn($6,n=>!n)),isLoadingFile:The,isLoadingMap:Ihe,mapColors:eoe,resetCameraIfNewFileIsLoaded:Fhe,showOnlyBuildingsWithEdges:Dhe,isEdgeMetricVisible:$he,isWhiteBackground:Bhe,invertHeight:khe,invertArea:jhe,hideFlatBuildings:Rhe,scaling:Phe,edgeHeight:Ohe,amountOfEdgePreviews:Nhe,amountOfTopLabels:Lhe,isPresentationMode:Uhe,experimentalFeaturesEnabled:Vhe,screenshotToClipboardEnabled:Ghe,layoutAlgorithm:Hhe,maxTreeMapFiles:Qhe,sharpnessMode:zhe,isColorMetricLinkedToHeightMetric:qhe,enableFloorLabels:Fi(!0,vn(p2,xr(!0)))}),Yhe={colorLabels:S6,showMetricLabelNodeName:!0,showMetricLabelNameValue:I6,sortingOrderAscending:!0,isSearchPanelPinned:q6,isLoadingFile:!0,isLoadingMap:!0,mapColors:af,resetCameraIfNewFileIsLoaded:!0,showOnlyBuildingsWithEdges:P6,isEdgeMetricVisible:!0,isWhiteBackground:O6,invertHeight:N6,invertArea:j6,hideFlatBuildings:L6,scaling:CR,edgeHeight:4,amountOfEdgePreviews:1,amountOfTopLabels:1,isPresentationMode:U6,experimentalFeaturesEnabled:V6,screenshotToClipboardEnabled:G6,layoutAlgorithm:H6,maxTreeMapFiles:100,sharpnessMode:z6,isColorMetricLinkedToHeightMetric:!1,enableFloorLabels:!0};var mW=Object.prototype.hasOwnProperty;function gW(n,t,e){for(e of n.keys())if(sv(e,t))return e}function sv(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--&&sv(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=gW(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=gW(t,r))||!sv(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(mW.call(n,e)&&++i&&!mW.call(t,e)||!(e in t)||!sv(n[e],t[e]))return!1;return Object.keys(t).length===i}}return n!=n&&t!=t}function _W(n,t){return n.filter(e=>!sv(e,t))}function bW(n,t){return vW(n,t)?n:[...n,C(t)]}function vW(n,t){return n.some(e=>sv(e,t))}const efe=(n,{path:t,color:e})=>{const i=EU(n,t);(!i||i.color!==e)&&n.set(t,{path:t,color:e});for(const[r,s]of n)if(s.path===t)s.color!==e&&n.delete(r);else if(s.path.startsWith(t)){const l=EU(n,s.path);l&&l.color===s.color&&n.delete(r)}},yW=(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)efe(e,i);return[...e.values()]}),vn(pR,(n,t)=>{const e=yW(n,t.path);return-1!==e?function Zhe(n,t){return[...n.slice(0,t),...n.slice(t+1)]}(n,e):n})),K6=[],nfe=Fi(K6,vn(n6,xr(K6)),vn(mq,(n,t)=>bW(n,t.edge)),vn(gq,(n,t)=>_W(n,t.edge))),Y6={nodes:{},edges:{}},ife=Fi(Y6,vn(Y8,xr(Y6)),vn(Z8,(n,t)=>({...n,[t.category]:{...n[t.category],[t.name]:t.attributeType}}))),Z6=[],rfe=Fi(Z6,vn(J8,xr(Z6)),vn(e6,(n,t)=>bW(n,t.item)),vn(uR,(n,t)=>function Jhe(n,t){const e=[...n];for(const i of t)vW(e,i)||e.push(i);return e}(n,t.items)),vn(hR,(n,t)=>_W(n,t.item))),J6={},sfe=Sa({markedPackages:tfe,edges:nfe,attributeTypes:ife,attributeDescriptors:Fi(J6,vn(K8,xr(J6))),blacklist:rfe}),afe={markedPackages:X6,edges:K6,attributeTypes:Y6,attributeDescriptors:J6,blacklist:Z6},e7=jl.weightedGradient,lfe=Fi(e7,vn(hx,xr(e7))),t7=pd.NAME,i7={from:0,to:0},wW=[],bfe=Sa({colorMode:lfe,sortingOption:Fi(t7,vn(dR,xr(t7))),edgeMetric:Fi(null,vn(Jp,xr(null))),colorRange:Fi(i7,vn(hf,g3(i7))),margin:Fi(50,vn(Ax,xr(50))),searchPattern:Fi("",vn(s0,xr("")),vn($,()=>"")),focusedNodePath:Fi(wW,vn(aR,(n,t)=>[...t.value]),vn(E2,()=>[]),vn(lR,(n,t)=>t.value===Yr.rootPath?n:[t.value,...n]),vn(cR,n=>n.slice(1))),heightMetric:Fi(null,vn(eA,xr(null))),distributionMetric:Fi(null,vn(M2,xr(null))),colorMetric:Fi(null,vn(zu,xr(null))),areaMetric:Fi(null,vn(Zp,xr(null)))}),vfe={colorMode:e7,sortingOption:t7,edgeMetric:null,colorRange:i7,margin:50,searchPattern:"",focusedNodePath:wW,heightMetric:null,distributionMetric:null,colorMetric:null,areaMetric:null},l7=[],yfe=Fi(l7,vn(S,xr(l7)),vn(E,(n,t)=>[...n,{file:t.file,selectedAs:bt.None}]),vn(N,(n,t)=>function wfe(n,t){if(0===t.length)return n;const e=n.filter(r=>!t.includes(r.file.fileMeta.fileName));return e.some(r=>r.selectedAs===bt.Partial)||(e[0]={...e[0],selectedAs:bt.Partial}),e}(n,t.fileNames)),vn(tt,(n,t)=>function xfe(n,t,e){return n.map(i=>u3(i.file,t)?{...i,selectedAs:bt.Reference}:e&&u3(i.file,e)?{...i,selectedAs:bt.Comparison}:{...i,selectedAs:bt.None})}(n,t.referenceFile,t.comparisonFile)),vn(Xe,(n,t)=>function Cfe(n,t){return n.map(e=>u3(e.file,t)?{...e,selectedAs:bt.Reference}:e.selectedAs===bt.Comparison?e:{...e,selectedAs:bt.None})}(n,t.file)),vn(ge,(n,t)=>function Mfe(n,t){return n.map(e=>e.file===t?{...e,selectedAs:bt.Comparison}:e.selectedAs===bt.Reference?e:{...e,selectedAs:bt.None})}(n,t.file)),vn(xe,n=>function Efe(n){return n.map(t=>t.selectedAs===bt.Reference?{...t,selectedAs:bt.Comparison}:t.selectedAs===bt.Comparison?{...t,selectedAs:bt.Reference}:t)}(n)),vn($,(n,t)=>xW(n,t.files.map(e=>e.fileMeta.fileName))),vn(se,(n,t)=>xW(n,t.fileNames)));function xW(n,t){return n.map(e=>({...e,selectedAs:t.includes(e.file.fileMeta.fileName)?bt.Partial:bt.None}))}const bx=bn("SET_HOVERED_NODE_ID",{_as:"props",_p:void 0}),Sfe=Fi(null,vn(bx,xr(null))),vx=bn("SET_RIGHT_CLICKED_NODE_DATA",{_as:"props",_p:void 0}),Tfe=Fi(null,vn(vx,(n,t)=>t.value)),Ife=Fi(null,vn(RU,xr(null))),kfe={fileSettings:sfe,appSettings:Khe,dynamicSettings:bfe,files:yfe,appStatus:Sa({currentFilesAreSampleFiles:Fi(!1,vn(Au,(n,t)=>t.value)),hoveredNodeId:Sfe,selectedBuildingId:Ife,rightClickedNodeData:Tfe})},EW={fileSettings:afe,appSettings:Yhe,dynamicSettings:vfe,files:l7,appStatus:{currentFilesAreSampleFiles:!1,hoveredNodeId:null,selectedBuildingId:null,rightClickedNodeData:null}},Pfe=new Set(["fileSettings.attributeTypes","fileSettings.attributeDescriptors","fileSettings.blacklist","fileSettings.edges","fileSettings.markedPackages","dynamicSettings.focusedNodePath","files"]);function SW(n,t,e=[]){for(const[i,r]of Object.entries(t)){if(null==r||!Ofe(n,i))continue;const s=[...e,i],l=s.join(".");n[i]="object"!=typeof r||Pfe.has(l)?r:SW(n[i],r,s)}return n}function Ofe(n,t){return Object.prototype.hasOwnProperty.call(n,t)}let Nfe=(()=>{class n{constructor(e,i,r,s){this.store=e,this.httpClient=i,this.loadFileService=r,this.loadInitialFileService=s,this.urlUtils=new Lq(this.httpClient)}resetMap(){var e=this;return Cn(function*(){if(yield function Xde(){return A6.apply(this,arguments)}(),e.store.dispatch(_x({value:EW})),e.loadInitialFileService.checkFileQueryParameterPresent())try{const r=yield e.urlUtils.getFileDataFromQueryParam();e.loadFileService.loadFiles(r),e.loadInitialFileService.setRenderStateFromUrl()}catch{e.loadFileService.loadFiles([wR,xR])}else e.loadFileService.loadFiles([wR,xR]);e.resetMetrics()})()}resetMetrics(){this.store.select(Aa).pipe(h2(),ao(e=>{uW(this.store,e.nodeMetricData)})).subscribe()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(w6),o.rXU(mu),o.rXU(E6))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-confirm-reset-map-dialog"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-toolbar",0)(1,"h2"),o.EFF(2,"Confirm reset map to default"),o.k0s()(),o.j41(3,"mat-dialog-content")(4,"div",1)(5,"p"),o.EFF(6,"Uploaded maps, selected metrics and settings are reset to default"),o.k0s()()(),o.j41(7,"mat-dialog-actions")(8,"button",2),o.EFF(9,"No"),o.k0s(),o.j41(10,"button",3),o.bIt("click",function(){return r.resetMap()}),o.EFF(11,"Yes"),o.k0s()())},dependencies:[Jg,ml,Jl,Jo,Ia],encapsulation:2})}}return n})(),Lfe=(()=>{class n{constructor(e){this.dialog=e}showConfirmResetStateDialog(){this.dialog.open(Nfe,{panelClass:"cc-confirm-reset-map-dialog"})}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-reset-map-button"]],standalone:!0,features:[o.aNF],decls:1,vars:1,consts:[["title","Reset map to default",3,"click","icon"]],template:function(i,r){1&i&&(o.j41(0,"cc-action-icon",0),o.bIt("click",function(){return r.showConfirmResetStateDialog()}),o.k0s()),2&i&&o.Y8G("icon","fa fa-undo")},dependencies:[Al],encapsulation:2})}}return n})();const u0=sn(yn,n=>Bd(n));function TW(){return(0,Fr.N)((n,t)=>{let e,i=!1;n.subscribe((0,sr._)(t,r=>{const s=e;e=r,i&&t.next([s,r]),i=!0}))})}let Ufe=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.lastSetFilesOfPreviousMode=[],this.subscription=this.store.select(yn).pipe(TW(),ur(([r,s])=>Bd(r)!==Bd(s)||0===s.length),ao(([r,s])=>{this.lastSetFilesOfPreviousMode=0===s.length?s:r})).subscribe()}ngOnDestroy(){this.subscription.unsubscribe()}toggle(){if(0===this.lastSetFilesOfPreviousMode.length||Bd(this.lastSetFilesOfPreviousMode)){const i=yn(this.state.getValue());this.lastSetFilesOfPreviousMode=this.filterNoneExisting(i,this.lastSetFilesOfPreviousMode);const r=this.lastSetFilesOfPreviousMode.find(l=>l.selectedAs===bt.Reference)??i.find(l=>l.selectedAs===bt.Partial),s=this.lastSetFilesOfPreviousMode.find(l=>l.selectedAs===bt.Comparison);this.store.dispatch(tt({referenceFile:r.file,comparisonFile:s?.file}))}else this.store.dispatch(S({value:this.lastSetFilesOfPreviousMode}))}filterNoneExisting(e,i){return i.filter(r=>e.find(s=>u3(s.file,r.file)))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(Vi))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Vfe=(()=>{class n{constructor(e,i){this.store=e,this.fileSelectionModeService=i,this.isDeltaState$=this.store.select(u0)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(Ufe))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-file-panel-state-buttons"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"button",0),o.nI1(1,"async"),o.nI1(2,"async"),o.bIt("click",function(){return r.fileSelectionModeService.toggle()}),o.j41(3,"span",1),o.EFF(4,"Standard"),o.k0s()(),o.j41(5,"button",2),o.nI1(6,"async"),o.nI1(7,"async"),o.bIt("click",function(){return r.fileSelectionModeService.toggle()}),o.j41(8,"span",1),o.EFF(9,"Delta"),o.k0s()()),2&i&&(o.AVh("current",!o.bMT(1,6,r.isDeltaState$)),o.Y8G("disabled",!o.bMT(2,8,r.isDeltaState$)),o.R7$(5),o.AVh("current",o.bMT(6,10,r.isDeltaState$)),o.Y8G("disabled",o.bMT(7,12,r.isDeltaState$)))},dependencies:[Jo,Qn],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})(),u7=(()=>{class n{transform(e){return kc.withoutCCExtension(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=o.EJ8({name:"removeExtension",type:n,pure:!0,standalone:!0})}}return n})();function Hfe(n,t){1&n&&o.nrm(0,"i",1)}function Qfe(n,t){1&n&&o.nrm(0,"i",2)}let zfe=(()=>{class n{constructor(){this.removeOrAddFile=new o.bkB}onRemoveOrAddFile(e,i){this.removeOrAddFile.emit(e),i.stopPropagation(),i.preventDefault()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-remove-file-button"]],inputs:{filename:"filename",isRemoved:"isRemoved"},outputs:{removeOrAddFile:"removeOrAddFile"},standalone:!0,features:[o.aNF],decls:3,vars:2,consts:[[3,"click","title"],[1,"fa","fa-undo"],[1,"fa","fa-trash","delete-symbol"]],template:function(i,r){1&i&&(o.j41(0,"button",0),o.bIt("click",function(l){return r.onRemoveOrAddFile(r.filename,l)}),o.DNE(1,Hfe,1,0,"i",1)(2,Qfe,1,0,"i",2),o.k0s()),2&i&&(o.FS9("title",r.isRemoved?"Undo remove map":"Remove map"),o.R7$(),o.vxM(r.isRemoved?1:2))},styles:["button[_ngcontent-%COMP%]{padding:8px 10px}button[_ngcontent-%COMP%]:hover{border-radius:50%}"]})}}return n})();const Gfe=["tooltip"],FW=new o.nKC("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{const n=(0,o.WQX)(Us);return()=>n.scrollStrategies.reposition({scrollThrottle:20})}}),qfe=new o.nKC("mat-tooltip-default-options",{providedIn:"root",factory:function $fe(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),DW="tooltip-panel",BW=rp({passive:!0});let h7=(()=>{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=mi(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){const i=mi(e);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=Gn(e)}get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=Gn(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(e){const i=this._message;this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}constructor(e,i,r,s,l,u,f,p,m,_,b,w){this._overlay=e,this._elementRef=i,this._scrollDispatcher=r,this._viewContainerRef=s,this._ngZone=l,this._platform=u,this._ariaDescriber=f,this._focusMonitor=p,this._dir=_,this._defaultOptions=b,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._tooltipComponent=Zfe,this._viewportMargin=8,this._cssClassPrefix="mat-mdc",this.touchGestures="auto",this._message="",this._passiveListeners=[],this._touchstartTimeout=null,this._destroyed=new Ai.B,this._injector=(0,o.WQX)(o.zZn),this._scrollStrategy=m,this._document=w,b&&(this._showDelay=b.showDelay,this._hideDelay=b.hideDelay,b.position&&(this.position=b.position),b.positionAtOrigin&&(this.positionAtOrigin=b.positionAtOrigin),b.touchGestures&&(this.touchGestures=b.touchGestures),b.tooltipClass&&(this.tooltipClass=b.tooltipClass)),_.change.pipe(vo(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)}),this._viewportMargin=8}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(vo(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,r])=>{e.removeEventListener(i,r,BW)}),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 Am(this._tooltipComponent,this._viewContainerRef);const s=this._tooltipInstance=r.attach(this._portal).instance;s._triggerElement=this._elementRef.nativeElement,s._mouseLeaveHideDelay=this._hideDelay,s.afterHidden().pipe(vo(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),s.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 s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&s._origin instanceof o.aKT)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(vo(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:r,panelClass:`${this._cssClassPrefix}-${DW}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(vo(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(vo(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(vo(this._destroyed)).subscribe(s=>{this._isTooltipVisible()&&27===s.keyCode&&!Yl(s)&&(s.preventDefault(),s.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(),s=this._getOverlayPosition();i.withPositions([this._addOffset({...r.main,...s.main}),this._addOffset({...r.fallback,...s.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:s,y:l}=this._invertPosition(r.originX,r.originY);return{main:r,fallback:{originX:s,originY:l}}}_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:s,y:l}=this._invertPosition(r.overlayX,r.overlayY);return{main:r,fallback:{overlayX:s,overlayY:l}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),(0,o.mal)(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_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:s}=e;let l;if(l="center"===i?this._dir&&"rtl"===this._dir.value?"end"===r?"left":"right":"start"===r?"left":"right":"bottom"===i&&"top"===s?"above":"below",l!==this._currentPosition){const u=this._overlayRef;if(u){const f=`${this._cssClassPrefix}-${DW}-`;u.removePanelClass(f+this._currentPosition),u.addPanelClass(f+l)}this._currentPosition=l}}_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(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,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=()=>{this._touchstartTimeout&&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,BW)})}_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"}}_syncAriaDescription(e){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,e,"tooltip"),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Us),o.rXU(o.aKT),o.rXU(mh),o.rXU(o.c1b),o.rXU(o.SKi),o.rXU(Fo),o.rXU(au),o.rXU(Zl),o.rXU(FW),o.rXU(Zs),o.rXU(qfe,8),o.rXU(V))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,r){2&i&&o.AVh("mat-mdc-tooltip-disabled",r.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"],standalone:!0})}}return n})(),Zfe=(()=>{class n{constructor(e,i,r){this._changeDetectorRef=e,this._elementRef=i,this._isMultiline=!1,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new Ai.B,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,s=this._hideAnimation;if(i.classList.remove(e?s:r),i.classList.add(e?r:s),this._isVisible!==e&&(this._isVisible=e,this._changeDetectorRef.markForCheck()),e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const l=getComputedStyle(i);("0s"===l.getPropertyValue("animation-duration")||"none"===l.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)(o.rXU(o.gRc),o.rXU(o.aKT),o.rXU(o.bc$,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(i,r){if(1&i&&o.GBs(Gfe,7),2&i){let s;o.mGM(s=o.lsd())&&(r._tooltip=s.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,r){1&i&&o.bIt("mouseleave",function(l){return r._handleMouseLeave(l)})},standalone:!0,features:[o.aNF],decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,r){if(1&i){const s=o.RV6();o.j41(0,"div",1,0),o.bIt("animationend",function(u){return o.eBV(s),o.Njj(r._handleAnimationEnd(u))}),o.j41(2,"div",2),o.EFF(3),o.k0s()()}2&i&&(o.AVh("mdc-tooltip--multiline",r._isMultiline),o.Y8G("ngClass",r.tooltipClass),o.R7$(3),o.JRh(r.message))},dependencies:[En],styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.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-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-app-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-app-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-app-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-app-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-app-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-app-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-app-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-app-body-small-tracking))}.mat-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}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.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})();const Jfe=["fileSelect"],epe=n=>({"text-decoration":n});function tpe(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-option",4),o.EFF(1),o.nI1(2,"removeExtension"),o.j41(3,"cc-remove-file-button",7),o.bIt("removeOrAddFile",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleAddOrRemoveFile(r))}),o.k0s()()}if(2&n){const e=t.$implicit;o.Y8G("value",e.file)("ngStyle",o.eq3(7,epe,e.isRemoved?"line-through":"none")),o.R7$(),o.SpI(" ",o.bMT(2,5,e.file.fileMeta.fileName)," "),o.R7$(2),o.Y8G("filename",e.file.fileMeta.fileName)("isRemoved",e.isRemoved)}}let npe=(()=>{class n{constructor(e){this.store=e,this.filesInUI=[],this.selectedFilesInUI=[],this.filesInStore=[],this.closedByApply=!1,this.applyButtonTooltip="",this.applyButtonDisabled=!1,this.filesSubscription=this.store.select(yn).subscribe(i=>{this.filesInStore=i,this.filesInUI=i.map(r=>({file:r.file,isRemoved:!1})),this.selectedFilesInUI=i.filter(r=>r.selectedAs===bt.Partial).map(r=>r.file)})}ngOnDestroy(){this.filesSubscription.unsubscribe()}handleSelectedFilesChanged(e){this.selectedFilesInUI=e;for(const i of this.filesInUI)e.includes(i.file)&&(i.isRemoved=!1);this.updateApplyButtonState()}handleOpenedChanged(e){this.closedByApply||e?this.closedByApply=!1:this.store.select(yn).pipe(ms(1)).subscribe(i=>{this.filesInUI=i.map(r=>({file:r.file,isRemoved:!1})),this.selectedFilesInUI=i.filter(r=>r.selectedAs===bt.Partial).map(r=>r.file)}),e&&this.setApplyButtonStateToNoChangesToApply()}handleSelectZeroFiles(){this.selectedFilesInUI=[],this.setApplyButtonStateToNoMapSelected()}handleInvertSelectedFiles(){const e=this.filesInUI.filter(i=>!i.isRemoved);0!==e.length&&(this.selectedFilesInUI=0===this.selectedFilesInUI.length?e.map(i=>i.file):this.selectedFilesInUI.length===e.length?[]:e.filter(i=>!this.selectedFilesInUI.includes(i.file)).map(i=>i.file),this.updateApplyButtonState())}handleSelectAllFiles(){this.selectedFilesInUI=this.filesInUI.filter(e=>!e.isRemoved).map(e=>e.file),this.updateApplyButtonState()}handleApplyFileChanges(){const e=this.filesInUI.filter(i=>i.isRemoved).map(i=>i.file.fileMeta.fileName);this.store.dispatch($({files:this.selectedFilesInUI})),this.store.dispatch(N({fileNames:e})),this.closedByApply=!0,this.select.close()}handleAddOrRemoveFile(e){this.filesInUI=this.filesInUI.map(i=>i.file.fileMeta.fileName===e?{file:i.file,isRemoved:!i.isRemoved}:i),this.selectedFilesInUI=this.selectedFilesInUI.filter(i=>i.fileMeta.fileName!==e),this.updateApplyButtonState()}updateApplyButtonState(){0!==this.selectedFilesInUI.length?this.uiSelectionDiffersFromStore()?this.setApplyButtonStateEnabled():this.setApplyButtonStateToNoChangesToApply():this.setApplyButtonStateToNoMapSelected()}setApplyButtonStateToNoChangesToApply(){this.applyButtonTooltip="No changes to apply",this.applyButtonDisabled=!0}setApplyButtonStateToNoMapSelected(){this.applyButtonTooltip="Select at least one map",this.applyButtonDisabled=!0}setApplyButtonStateEnabled(){this.applyButtonTooltip="",this.applyButtonDisabled=!1}uiSelectionDiffersFromStore(){if(this.filesInUI.some(i=>i.isRemoved))return!0;const e=this.filesInStore.filter(i=>i.selectedAs===bt.Partial).map(i=>i.file);return this.selectedFilesInUI.length!==e.length||!this.selectedFilesInUI.every(i=>e.includes(i))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-file-panel-file-selector"]],viewQuery:function(i,r){if(1&i&&o.GBs(Jfe,5),2&i){let s;o.mGM(s=o.lsd())&&(r.select=s.first)}},standalone:!0,features:[o.aNF],decls:14,vars:4,consts:[["fileSelect",""],["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","ngStyle"],[1,"cc-apply-file-selection-button-container"],[3,"click","disabled","matTooltip","matTooltipDisabled"],[3,"removeOrAddFile","filename","isRemoved"]],template:function(i,r){if(1&i){const s=o.RV6();o.j41(0,"mat-select",1,0),o.mxI("valueChange",function(u){return o.eBV(s),o.DH7(r.selectedFilesInUI,u)||(r.selectedFilesInUI=u),o.Njj(u)}),o.bIt("selectionChange",function(u){return o.eBV(s),o.Njj(r.handleSelectedFilesChanged(u.value))})("openedChange",function(u){return o.eBV(s),o.Njj(r.handleOpenedChanged(u))}),o.j41(2,"div",2)(3,"button",3),o.bIt("click",function(){return o.eBV(s),o.Njj(r.handleSelectAllFiles())}),o.EFF(4,"All"),o.k0s(),o.j41(5,"button",3),o.bIt("click",function(){return o.eBV(s),o.Njj(r.handleSelectZeroFiles())}),o.EFF(6,"None"),o.k0s(),o.j41(7,"button",3),o.bIt("click",function(){return o.eBV(s),o.Njj(r.handleInvertSelectedFiles())}),o.EFF(8,"Invert"),o.k0s()(),o.Z7z(9,tpe,4,9,"mat-option",4,o.fX1),o.j41(11,"div",5)(12,"button",6),o.bIt("click",function(){return o.eBV(s),o.Njj(r.handleApplyFileChanges())}),o.EFF(13," Apply "),o.k0s()()()}2&i&&(o.R50("value",r.selectedFilesInUI),o.R7$(9),o.Dyx(r.filesInUI),o.R7$(3),o.FS9("matTooltip",r.applyButtonTooltip),o.FS9("matTooltipDisabled",!r.applyButtonDisabled),o.Y8G("disabled",r.applyButtonDisabled))},dependencies:[t0,gd,zfe,u7,ga,h7],styles:[".cc-standard-select[_ngcontent-%COMP%]{width:200px;font-size:10pt}.cc-apply-file-selection-button-container[_ngcontent-%COMP%]{padding-right:16px;display:flex;justify-content:flex-end}.cc-apply-file-selection-button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:50%;height:30px}.cc-apply-file-selection-button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover:not(:disabled){border-radius:10%;background-color:#ddd}"]})}}return n})();const ipe=sn(Zw,n=>`linear-gradient(${n.positiveDelta} 50%, ${n.negativeDelta} 50%)`),rpe=["input"],ope=["label"],spe=["*"],ape=new o.nKC("mat-checkbox-default-options",{providedIn:"root",factory:kW});function kW(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var el=function(n){return n[n.Init=0]="Init",n[n.Checked=1]="Checked",n[n.Unchecked=2]="Unchecked",n[n.Indeterminate=3]="Indeterminate",n}(el||{});const lpe={provide:ma,useExisting:(0,o.Rfq)(()=>av),multi:!0};class cpe{}let dpe=0;const RW=kW();let av=(()=>{class n{focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new cpe;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,s,l,u){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=r,this._animationMode=l,this._options=u,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 o.bkB,this.indeterminateChange=new o.bkB,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=el.Init,this._controlValueAccessorChangeFn=()=>{},this._validatorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||RW,this.color=this._options.color||RW.color,this.tabIndex=parseInt(s)||0,this.id=this._uniqueId="mat-mdc-checkbox-"+ ++dpe,this.disabledInteractive=u?.disabledInteractive??!1}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?el.Indeterminate:this.checked?el.Checked:el.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 s=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{r.classList.remove(s)},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&&this.disabledInteractive||!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?el.Checked:el.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 el.Init:if(i===el.Checked)return this._animationClasses.uncheckedToChecked;if(i==el.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case el.Unchecked:return i===el.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case el.Checked:return i===el.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case el.Indeterminate:return i===el.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)(o.rXU(o.aKT),o.rXU(o.gRc),o.rXU(o.SKi),o.kS0("tabindex"),o.rXU(o.bc$,8),o.rXU(ape,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-checkbox"]],viewQuery:function(i,r){if(1&i&&(o.GBs(rpe,5),o.GBs(ope,5),o.GBs(gl,5)),2&i){let s;o.mGM(s=o.lsd())&&(r._inputElement=s.first),o.mGM(s=o.lsd())&&(r._labelElement=s.first),o.mGM(s=o.lsd())&&(r.ripple=s.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,r){2&i&&(o.Mr5("id",r.id),o.BMQ("tabindex",null)("aria-label",null)("aria-labelledby",null),o.HbH(r.color?"mat-"+r.color:"mat-accent"),o.AVh("_mat-animation-noopable","NoopAnimations"===r._animationMode)("mdc-checkbox--disabled",r.disabled)("mat-mdc-checkbox-disabled",r.disabled)("mat-mdc-checkbox-checked",r.checked)("mat-mdc-checkbox-disabled-interactive",r.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],id:"id",required:[2,"required","required",o.L39],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",o.L39],tabIndex:[2,"tabIndex","tabIndex",e=>null==e?void 0:(0,o.Udg)(e)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",o.L39],checked:[2,"checked","checked",o.L39],disabled:[2,"disabled","disabled",o.L39],indeterminate:[2,"indeterminate","indeterminate",o.L39]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],standalone:!0,features:[o.Jv_([lpe,{provide:zs,useExisting:n,multi:!0}]),o.GFd,o.OA$,o.aNF],ngContentSelectors:spe,decls:15,vars:20,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 s=o.RV6();o.NAR(),o.j41(0,"div",3),o.bIt("click",function(u){return o.eBV(s),o.Njj(r._preventBubblingFromLabel(u))}),o.j41(1,"div",4,0)(3,"div",5),o.bIt("click",function(){return o.eBV(s),o.Njj(r._onTouchTargetClick())}),o.k0s(),o.j41(4,"input",6,1),o.bIt("blur",function(){return o.eBV(s),o.Njj(r._onBlur())})("click",function(){return o.eBV(s),o.Njj(r._onInputClick())})("change",function(u){return o.eBV(s),o.Njj(r._onInteractionEvent(u))}),o.k0s(),o.nrm(6,"div",7),o.j41(7,"div",8),o.qSk(),o.j41(8,"svg",9),o.nrm(9,"path",10),o.k0s(),o.joV(),o.nrm(10,"div",11),o.k0s(),o.nrm(11,"div",12),o.k0s(),o.j41(12,"label",13,2),o.SdG(14),o.k0s()()}if(2&i){const s=o.sdS(2);o.Y8G("labelPosition",r.labelPosition),o.R7$(4),o.AVh("mdc-checkbox--selected",r.checked),o.Y8G("checked",r.checked)("indeterminate",r.indeterminate)("disabled",r.disabled&&!r.disabledInteractive)("id",r.inputId)("required",r.required)("tabIndex",r.disabled&&!r.disabledInteractive?-1:r.tabIndex),o.BMQ("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-checked",r.indeterminate?"mixed":null)("aria-disabled",!(!r.disabled||!r.disabledInteractive)||null)("name",r.name)("value",r.value),o.R7$(7),o.Y8G("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),o.R7$(),o.Y8G("for",r.inputId)}},dependencies:[gl,kI],styles:['.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;padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-app-primary))}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-app-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity));background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-app-primary))}.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, var(--mat-app-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity));background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-app-primary))}.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, var(--mat-app-primary))}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-app-on-surface))}.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, var(--mat-app-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mdc-checkbox__ripple{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.cdk-high-contrast-active .mdc-checkbox--disabled{opacity:.5}.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 cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mdc-checkbox-unselected-icon-color, var(--mat-app-on-surface-variant));top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mat-app-primary));background-color:var(--mdc-checkbox-selected-icon-color, var(--mat-app-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color)}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color);border-color:rgba(0,0,0,0)}.mdc-checkbox:hover .mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mat-app-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-app-primary));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-app-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mat-app-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-app-primary));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-app-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover .mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color)}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color);border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-app-on-primary))}.cdk-high-contrast-active .mdc-checkbox__checkmark{color:CanvasText}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-app-surface))}.cdk-high-contrast-active .mdc-checkbox--disabled .mdc-checkbox__checkmark,.cdk-high-contrast-active .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 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 cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-app-on-primary))}.cdk-high-contrast-active .mdc-checkbox__mixedmark{margin:0 1px}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-app-surface))}.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;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 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{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 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{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@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:cubic-bezier(0, 0, 0.2, 1);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}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable .mdc-checkbox *,.mat-mdc-checkbox._mat-animation-noopable .mdc-checkbox *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-app-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-app-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-app-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-app-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-app-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-app-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color)}.mat-mdc-checkbox label:empty{display:none}.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%;left:50%;height:48px;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})();const f7="alertOnIncompatibleMaps";let fpe=(()=>{class n{constructor(e){this.data=e}setDoNotAlertOnIncompatibleMaps(e){localStorage.setItem(f7,JSON.stringify(!e.checked))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(fp))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-incompatible-maps-dialog"]],standalone:!0,features:[o.aNF],decls:25,vars:4,consts:[["color","primary"],[1,"cc-files"],[3,"change"],["align","end"],["href","https://maibornwolff.github.io/codecharta/docs/filter/structure-modifier","target","_blank","rel","noopener noreferrer"],["mat-flat-button","",3,"mat-dialog-close"]],template:function(i,r){1&i&&(o.j41(0,"mat-toolbar",0),o.EFF(1,"Incompatible Maps"),o.k0s(),o.j41(2,"mat-dialog-content")(3,"p"),o.EFF(4,"The selected maps use different complexity metrics and are therefore incompatible:"),o.k0s(),o.j41(5,"p",1),o.EFF(6),o.k0s(),o.j41(7,"p"),o.EFF(8," The file "),o.j41(9,"b"),o.EFF(10),o.k0s(),o.EFF(11," is using the "),o.j41(12,"b"),o.EFF(13,"mcc metric"),o.k0s(),o.EFF(14," and the other one "),o.j41(15,"b"),o.EFF(16,"complexity"),o.k0s(),o.EFF(17,". Please migrate. "),o.k0s(),o.j41(18,"mat-checkbox",2),o.bIt("change",function(l){return r.setDoNotAlertOnIncompatibleMaps(l)}),o.EFF(19,"Don't show again"),o.k0s()(),o.j41(20,"mat-dialog-actions",3)(21,"a",4),o.EFF(22,"Know more"),o.k0s(),o.j41(23,"button",5),o.EFF(24,"CLOSE"),o.k0s()()),2&i&&(o.R7$(6),o.Lme("",r.data.referenceFileName," \u2192 ",r.data.comparisonFileName,""),o.R7$(4),o.JRh(r.data.fileWithMccMetric),o.R7$(13),o.Y8G("mat-dialog-close",!0))},dependencies:[Jg,ml,av,Jl,Jo,Ia],styles:["p[_ngcontent-%COMP%]{font-size:18px}.cc-files[_ngcontent-%COMP%]{text-align:center}"]})}}return n})();function ppe(n,t){if(1&n&&(o.j41(0,"mat-option",2),o.EFF(1),o.nI1(2,"removeExtension"),o.k0s()),2&n){const e=t.$implicit;o.Y8G("value",e.file),o.R7$(),o.SpI(" ",o.bMT(2,2,e.file.fileMeta.fileName)," ")}}function Ape(n,t){if(1&n&&(o.j41(0,"mat-option",2),o.EFF(1),o.nI1(2,"removeExtension"),o.k0s()),2&n){const e=t.$implicit;o.Y8G("value",e.file),o.R7$(),o.SpI(" ",o.bMT(2,2,e.file.fileMeta.fileName)," ")}}let mpe=(()=>{class n{constructor(e,i){this.store=e,this.dialog=i,this.files$=this.store.select(yn),this.referenceFile$=this.store.select(Sn),this.comparisonFile$=this.files$.pipe((0,$n.T)(r=>r.find(s=>s.selectedAs===bt.Comparison)?.file)),this.possibleComparisonFiles$=this.files$.pipe((0,$n.T)(r=>r.filter(s=>s.selectedAs!==bt.Reference))),this.pictogramBackground$=this.store.select(ipe),this.referenceFile$.subscribe(r=>this.referenceFile=r),this.comparisonFile$.subscribe(r=>this.comparisonFile=r)}handleDeltaReferenceFileChange(e){this.store.dispatch(Xe({file:e})),this.showAlertWhenFilesAreIncompatible()}handleDeltaComparisonFileChange(e){this.store.dispatch(ge({file:e})),this.showAlertWhenFilesAreIncompatible()}showAlertWhenFilesAreIncompatible(){this.alertOnIncompatibleMaps()&&this.areMapsIncompatible()&&this.openIncompatibleMapsDialog()}alertOnIncompatibleMaps(){return!localStorage.getItem(f7)||!0===JSON.parse(localStorage.getItem(f7))}openIncompatibleMapsDialog(){this.dialog.open(fpe,{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=>this.containsMCCAttribute(i))}containsMCCAttribute(e){if(e.attributes.mcc)return!0;if(e.children)for(const i of e.children)if(this.containsMCCAttribute(i))return!0;return!1}getFileWithMccMetric(e,i){return this.hasMccMetric(e)?this.getFileName(e):this.hasMccMetric(i)?this.getFileName(i):void 0}switchReferenceAndComparison(){this.store.dispatch(xe())}areMapsIncompatible(){if(this.referenceFile&&this.comparisonFile)return this.hasMccMetric(this.referenceFile)!==this.hasMccMetric(this.comparisonFile)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-file-panel-delta-selector"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"mat-select",1),o.nI1(2,"async"),o.bIt("selectionChange",function(l){return r.handleDeltaReferenceFileChange(l.value)}),o.Z7z(3,ppe,3,4,"mat-option",2,o.fX1),o.nI1(5,"async"),o.k0s(),o.j41(6,"button",3),o.nI1(7,"async"),o.bIt("click",function(){return r.switchReferenceAndComparison()}),o.nrm(8,"i",4),o.k0s(),o.j41(9,"mat-select",5),o.nI1(10,"async"),o.bIt("selectionChange",function(l){return r.handleDeltaComparisonFileChange(l.value)}),o.Z7z(11,Ape,3,4,"mat-option",2,o.fX1),o.nI1(13,"async"),o.k0s(),o.nrm(14,"div",6),o.nI1(15,"async"),o.k0s()),2&i&&(o.R7$(),o.Y8G("value",o.bMT(2,5,r.referenceFile$)),o.R7$(2),o.Dyx(o.bMT(5,7,r.files$)),o.R7$(3),o.Y8G("disabled",void 0===o.bMT(7,9,r.comparisonFile$)),o.R7$(3),o.Y8G("value",o.bMT(10,11,r.comparisonFile$)),o.R7$(2),o.Dyx(o.bMT(13,13,r.possibleComparisonFiles$)),o.R7$(3),o.xc7("background",o.bMT(15,15,r.pictogramBackground$)))},dependencies:[t0,gd,Qn,u7],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})();function gpe(n,t){1&n&&o.nrm(0,"cc-file-panel-file-selector")}function _pe(n,t){1&n&&o.nrm(0,"cc-file-panel-delta-selector")}let bpe=(()=>{class n{constructor(e){this.store=e,this.isDeltaState$=this.store.select(u0)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-file-panel"]],standalone:!0,features:[o.aNF],decls:4,vars:3,template:function(i,r){1&i&&(o.nrm(0,"cc-file-panel-state-buttons"),o.DNE(1,gpe,1,0,"cc-file-panel-file-selector"),o.nI1(2,"async"),o.DNE(3,_pe,1,0,"cc-file-panel-delta-selector")),2&i&&(o.R7$(),o.vxM(o.bMT(2,1,r.isDeltaState$)?3:1))},dependencies:[Vfe,npe,mpe,Qn],styles:["[_nghost-%COMP%]{display:flex;gap:inherit}.hidden[_nghost-%COMP%]{display:none}"]})}}return n})();const PW=sn(Yw,hd,(n,t)=>n.get(t)),vpe=sn(PW,n=>n&&{path:n.path.slice(1).split("/"),isFile:"File"===n.type});function ype(n,t){if(1&n&&o.nrm(0,"i",2),2&n){const e=o.XpG(2);o.AVh("fa-file-o",e.isFile)("fa-folder",!e.isFile)}}function wpe(n,t){1&n&&o.nrm(0,"i",1)}function xpe(n,t){if(1&n&&(o.j41(0,"span"),o.DNE(1,ype,1,4,"i",0),o.j41(2,"span"),o.EFF(3),o.k0s(),o.DNE(4,wpe,1,0,"i",1),o.k0s()),2&n){const e=t.$implicit,i=t.$index,r=t.$count;o.R7$(),o.vxM(i===r-1?1:-1),o.R7$(),o.AVh("bold",i===r-1),o.R7$(),o.JRh(e),o.R7$(),o.vxM(i!==r-1?4:-1)}}function Cpe(n,t){1&n&&o.Z7z(0,xpe,5,5,"span",null,o.fX1),2&n&&o.Dyx(t.path)}let Mpe=(()=>{class n{constructor(e){this.store=e,this.hoveredNodePathPanelData$=this.store.select(vpe)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-hovered-node-path-panel"]],standalone:!0,features:[o.aNF],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&&(o.DNE(0,Cpe,2,0),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.hoveredNodePathPanelData$))?0:-1,s)}},dependencies:[Qn],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 Epe=sn(Ro,n=>n.isLoadingMap),Spe=["determinateSpinner"];function Tpe(n,t){if(1&n&&(o.qSk(),o.j41(0,"svg",11),o.nrm(1,"circle",12),o.k0s()),2&n){const e=o.XpG();o.BMQ("viewBox",e._viewBox()),o.R7$(),o.xc7("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),o.BMQ("r",e._circleRadius())}}const Ipe=new o.nKC("mat-progress-spinner-default-options",{providedIn:"root",factory:function Fpe(){return{diameter:OW}}}),OW=100;let NW=(()=>{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=OW,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)(o.rXU(o.aKT),o.rXU(o.bc$,8),o.rXU(Ipe))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,r){if(1&i&&o.GBs(Spe,5),2&i){let s;o.mGM(s=o.lsd())&&(r._determinateCircle=s.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,r){2&i&&(o.BMQ("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===r.mode?r.value:null)("mode",r.mode),o.HbH("mat-"+r.color),o.xc7("width",r.diameter,"px")("height",r.diameter,"px")("--mdc-circular-progress-size",r.diameter+"px")("--mdc-circular-progress-active-indicator-width",r.diameter+"px"),o.AVh("_mat-animation-noopable",r._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===r.mode))},inputs:{color:"color",mode:"mode",value:[2,"value","value",o.Udg],diameter:[2,"diameter","diameter",o.Udg],strokeWidth:[2,"strokeWidth","strokeWidth",o.Udg]},exportAs:["matProgressSpinner"],standalone:!0,features:[o.GFd,o.aNF],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&&(o.DNE(0,Tpe,2,8,"ng-template",null,0,o.C5r),o.j41(2,"div",2,1),o.qSk(),o.j41(4,"svg",3),o.nrm(5,"circle",4),o.k0s()(),o.joV(),o.j41(6,"div",5)(7,"div",6)(8,"div",7),o.eu8(9,8),o.k0s(),o.j41(10,"div",9),o.eu8(11,8),o.k0s(),o.j41(12,"div",10),o.eu8(13,8),o.k0s()()()),2&i){const s=o.sdS(1);o.R7$(4),o.BMQ("viewBox",r._viewBox()),o.R7$(),o.xc7("stroke-dasharray",r._strokeCircumference(),"px")("stroke-dashoffset",r._strokeDashOffset(),"px")("stroke-width",r._circleStrokeWidth(),"%"),o.BMQ("r",r._circleRadius()),o.R7$(4),o.Y8G("ngTemplateOutlet",s),o.R7$(2),o.Y8G("ngTemplateOutlet",s),o.R7$(2),o.Y8G("ngTemplateOutlet",s)}},dependencies:[vi],styles:[".mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.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 !important}.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}.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 .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,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, var(--mat-app-primary))}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 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 .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__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__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.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}@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-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)}}"],encapsulation:2,changeDetection:0})}}return n})(),Bpe=(()=>{class n{constructor(e){this.isLoadingMap$=e.select(Epe)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-loading-map-progress-spinner"]],standalone:!0,features:[o.aNF],decls:2,vars:4,consts:[["id","loading-gif-map","mode","indeterminate","diameter","22","title","Rendering map"]],template:function(i,r){1&i&&(o.nrm(0,"mat-progress-spinner",0),o.nI1(1,"async")),2&i&&o.xc7("visibility",o.bMT(1,2,r.isLoadingMap$)?"visible":"hidden")},dependencies:[NW,Qn],styles:["[_nghost-%COMP%]{display:inline-block;vertical-align:middle}"]})}}return n})();const kpe=sn(Ro,n=>n.isPresentationMode);let Rpe=(()=>{class n{constructor(e,i){this.store=e,this.elementReference=i,this.isPresentationModeEnabled$=this.store.select(kpe)}setPresentationModeEnabled(e){this.store.dispatch(oR({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)(o.rXU(Yt),o.rXU(o.aKT))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-presentation-mode-button"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-slide-toggle",0),o.nI1(1,"async"),o.nI1(2,"async"),o.bIt("change",function(l){return r.setPresentationModeEnabled(l)}),o.nrm(3,"i",1),o.j41(4,"span"),o.EFF(5,"Presentation Mode"),o.k0s()()),2&i&&o.Y8G("checked",o.bMT(1,2,r.isPresentationModeEnabled$))("title",o.bMT(2,4,r.isPresentationModeEnabled$)?"Disable flashlight hover effect":"Enable flashlight hover effect")},dependencies:[l2,Qn],styles:["i[_ngcontent-%COMP%]{margin-right:4px}"]})}}return n})();const Ppe=sn(Ro,n=>n.experimentalFeaturesEnabled),Ope=sn(Ro,n=>n.hideFlatBuildings),LW=sn(Ro,n=>n.resetCameraIfNewFileIsLoaded),UW=sn(Ro,n=>n.layoutAlgorithm),Npe=sn(Ro,n=>n.maxTreeMapFiles);function pf(n,t=0){let e;return(...i)=>{clearTimeout(e),e=setTimeout(()=>{n.apply(this,i),e=null},t)}}const p7=(n,t,e)=>{const i=Number.parseInt(n.target.value);return ie?e:i};let IR=(()=>{class n{constructor(){this.step=1,this.disabled=!1}handleSliderOnChange(e){e!==this.value&&this.onChange(e)}handleInputOnChange(e){const i=p7(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=o.VBU({type:n,selectors:[["cc-slider"]],inputs:{value:"value",min:"min",max:"max",label:"label",step:"step",disabled:"disabled",onChange:"onChange"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"mat-label",1),o.EFF(2),o.k0s(),o.j41(3,"div",2)(4,"mat-slider",3)(5,"input",4),o.bIt("input",function(l){return r.handleInputOnChange(l)}),o.k0s()(),o.j41(6,"mat-form-field",5)(7,"input",6),o.bIt("input",function(l){return r.handleInputOnChange(l)}),o.k0s()()()()),2&i&&(o.R7$(2),o.JRh(r.label),o.R7$(2),o.Y8G("disabled",r.disabled)("step",r.step)("min",r.min)("max",r.max),o.R7$(),o.Y8G("value",r.value),o.R7$(2),o.Y8G("value",r.value)("disabled",r.disabled)("min",r.min)("max",r.max))},dependencies:[Uu,W$,Y3,Vu,n0],styles:["[_nghost-%COMP%]{width:100%;margin-top:8px;display:inline-block}"]})}}return n})();function Lpe(n,t){if(1&n&&(o.j41(0,"mat-option",2),o.EFF(1),o.k0s()),2&n){const e=t.$implicit;o.Y8G("value",e),o.R7$(),o.SpI(" ",e," ")}}function Upe(n,t){if(1&n&&(o.nrm(0,"cc-slider",3),o.nI1(1,"async")),2&n){const e=o.XpG();o.Y8G("label","Maximum TreeMap Files")("min",1)("max",1e3)("value",o.bMT(1,5,e.maxTreeMapFiles$))("onChange",e.handleChangeMaxTreeMapFiles)}}let Vpe=(()=>{class n{constructor(e){this.store=e,this.layoutAlgorithms=Object.values(ja),this.layoutAlgorithm$=this.store.select(UW),this.maxTreeMapFiles$=this.store.select(Npe),this.handleChangeMaxTreeMapFiles=pf(i=>{this.store.dispatch(v2({value:i}))},400)}handleSelectedLayoutAlgorithmChanged(e){this.store.dispatch(b2({value:e.value}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-map-layout-selection"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-form-field",0)(1,"mat-label"),o.EFF(2,"Map Layout"),o.k0s(),o.j41(3,"mat-select",1),o.nI1(4,"async"),o.bIt("selectionChange",function(l){return r.handleSelectedLayoutAlgorithmChanged(l)}),o.Z7z(5,Lpe,2,2,"mat-option",2,o.fX1),o.k0s()(),o.DNE(7,Upe,2,7,"cc-slider",3),o.nI1(8,"async")),2&i&&(o.R7$(3),o.Y8G("value",o.bMT(4,2,r.layoutAlgorithm$)),o.R7$(2),o.Dyx(r.layoutAlgorithms),o.R7$(2),o.vxM("TreeMapStreet"===o.bMT(8,4,r.layoutAlgorithm$)?7:-1))},dependencies:[Vu,Uu,t0,gd,IR,Qn],encapsulation:2})}}return n})();const VW=sn(Ro,n=>n.sharpnessMode);function Hpe(n,t){if(1&n&&(o.j41(0,"mat-option",2),o.EFF(1),o.k0s()),2&n){const e=t.$implicit;o.Y8G("value",e),o.R7$(),o.SpI(" ",e," ")}}let Qpe=(()=>{class n{constructor(e){this.store=e,this.sharpnessModes=Object.values(fd),this.sharpnessMode$=this.store.select(VW)}handleSelectedSharpnessModeChanged(e){this.store.dispatch(y2({value:e.value}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-display-quality-selection"]],standalone:!0,features:[o.aNF],decls:7,vars:3,consts:[["appearance","outline","subscriptSizing","dynamic"],[3,"selectionChange","value"],[3,"value"]],template:function(i,r){1&i&&(o.j41(0,"mat-form-field",0)(1,"mat-label"),o.EFF(2,"Display Quality"),o.k0s(),o.j41(3,"mat-select",1),o.nI1(4,"async"),o.bIt("selectionChange",function(l){return r.handleSelectedSharpnessModeChanged(l)}),o.Z7z(5,Hpe,2,2,"mat-option",2,o.fX1),o.k0s()()),2&i&&(o.R7$(3),o.Y8G("value",o.bMT(4,1,r.sharpnessMode$)),o.R7$(2),o.Dyx(r.sharpnessModes))},dependencies:[Vu,Uu,t0,gd,Qn],encapsulation:2})}}return n})();function A7(n){for(const e of Object.keys(n))if("object"==typeof n[e]&&null!==n[e]){const{x:i,y:r,z:s}=n[e];void 0!==i||void 0!==r||void 0!==s?n[e]=new pe(i??1,r??1,s??1):A7(n[e])}}const FR=sn(kd,n=>function e1(n){const t=[];if(void 0!==n)for(const{data:e}of lo(n))"Folder"!==e.type&&t.push(e);return t}(n.unifiedMapNode)),m7=n=>{const t=Math.floor(n.length/100);return t<=1?1:Math.min(t,10)};function qpe(n,t){if(1&n&&(o.j41(0,"span",2),o.EFF(1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.SpI(" ",e.label,"")}}let P2=(()=>{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 s=r.split(".");let l=EW,u=e;for(const[f,p]of s.entries())void 0!==l[p]&&(u[p]||(u[p]={},i++),f===s.length-1?u[p]=l[p]:(l=l[p],u=u[p]))}return 0!==i&&A7(e),n.includes("appSettings.amountOfTopLabels")&&(e.appSettings.amountOfTopLabels=m7(FR(t))),e})(this.settingsKeys,this.state.getValue());this.store.dispatch(_x({value:e})),this.callback&&this.callback()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(Vi))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-reset-settings-button"]],inputs:{settingsKeys:"settingsKeys",tooltip:"tooltip",label:"label",callback:"callback"},standalone:!0,features:[o.aNF],decls:3,vars:2,consts:[[3,"click","title"],[1,"fa","fa-undo"],[1,"reset-settings-button-label"]],template:function(i,r){1&i&&(o.j41(0,"button",0),o.bIt("click",function(){return r.applyDefaultSettings()}),o.nrm(1,"i",1),o.DNE(2,qpe,2,1,"span",2),o.k0s()),2&i&&(o.Y8G("title",r.tooltip),o.R7$(2),o.vxM(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 Wpe=()=>["appSettings.hideFlatBuildings","appSettings.isWhiteBackground","appSettings.resetCameraIfNewFileIsLoaded","appSettings.layoutAlgorithm","appSettings.maxTreeMapFiles"];let Xpe=(()=>{class n{constructor(e){this.store=e,this.screenshotToClipboardEnabled$=this.store.select(oG),this.experimentalFeaturesEnabled$=this.store.select(Ppe),this.isWhiteBackground$=this.store.select(RG),this.hideFlatBuildings$=this.store.select(Ope),this.resetCameraIfNewFileIsLoaded$=this.store.select(LW)}handleResetCameraIfNewFileIsLoadedChanged(e){this.store.dispatch(sR({value:e.checked}))}handleHideFlatBuildingsChanged(e){this.store.dispatch(A2({value:e.checked}))}handleIsWhiteBackgroundChanged(e){this.store.dispatch(_2({value:e.checked}))}handleExperimentalFeaturesEnabledChanged(e){this.store.dispatch(iR({value:e.checked}))}handleScreenshotToClipboardEnabledChanged(e){this.store.dispatch(nR({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-global-configuration-dialog"]],standalone:!0,features:[o.aNF],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)\nVisibility of buildings without area metric: Show buildings without area metric in the map (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&&(o.j41(0,"mat-toolbar",0)(1,"h2"),o.EFF(2,"Global Configuration"),o.k0s()(),o.j41(3,"mat-dialog-content")(4,"div",1),o.nrm(5,"cc-map-layout-selection")(6,"cc-display-quality-selection"),o.j41(7,"mat-slide-toggle",2),o.nI1(8,"async"),o.bIt("change",function(l){return r.handleHideFlatBuildingsChanged(l)}),o.EFF(9," Hide Flattened Buildings "),o.k0s(),o.j41(10,"mat-slide-toggle",2),o.nI1(11,"async"),o.bIt("change",function(l){return r.handleResetCameraIfNewFileIsLoadedChanged(l)}),o.EFF(12," Reset Camera when changing map "),o.k0s(),o.j41(13,"mat-slide-toggle",2),o.nI1(14,"async"),o.bIt("change",function(l){return r.handleIsWhiteBackgroundChanged(l)}),o.EFF(15," White Background "),o.k0s(),o.j41(16,"mat-slide-toggle",3),o.nI1(17,"async"),o.bIt("change",function(l){return r.handleExperimentalFeaturesEnabledChanged(l)}),o.EFF(18," Enable Experimental Features "),o.nrm(19,"i",4),o.k0s(),o.j41(20,"mat-slide-toggle",2),o.nI1(21,"async"),o.bIt("change",function(l){return r.handleScreenshotToClipboardEnabledChanged(l)}),o.EFF(22," Screenshot to clipboard "),o.k0s(),o.nrm(23,"cc-reset-settings-button",5),o.j41(24,"div",6)(25,"a",7),o.nrm(26,"em",8),o.EFF(27,"How-to "),o.k0s(),o.j41(28,"a",9),o.nrm(29,"em",8),o.EFF(30,"Github "),o.k0s(),o.j41(31,"a",10),o.nrm(32,"em",8),o.EFF(33,"Wiki "),o.k0s()()()(),o.j41(34,"mat-dialog-actions",11)(35,"button",12),o.EFF(36,"Close"),o.k0s()()),2&i&&(o.R7$(7),o.Y8G("checked",o.bMT(8,6,r.hideFlatBuildings$)),o.R7$(3),o.Y8G("checked",o.bMT(11,8,r.resetCameraIfNewFileIsLoaded$)),o.R7$(3),o.Y8G("checked",o.bMT(14,10,r.isWhiteBackground$)),o.R7$(3),o.Y8G("checked",o.bMT(17,12,r.experimentalFeaturesEnabled$)),o.R7$(4),o.Y8G("checked",o.bMT(21,14,r.screenshotToClipboardEnabled$)),o.R7$(3),o.Y8G("settingsKeys",o.lJ4(16,Wpe)))},dependencies:[Jg,ml,Vpe,Qpe,l2,P2,Jl,Jo,Ia,Qn],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})(),Kpe=(()=>{class n{constructor(e){this.dialog=e}showGlobalConfiguration(){this.dialog.open(Xpe,{panelClass:"cc-global-configuration-dialog"})}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-global-configuration-button"]],standalone:!0,features:[o.aNF],decls:4,vars:1,consts:[["mat-button","","title","Global Configuration",3,"click"],[3,"icon"]],template:function(i,r){1&i&&(o.j41(0,"button",0),o.bIt("click",function(){return r.showGlobalConfiguration()}),o.j41(1,"span"),o.EFF(2,"Global Configuration"),o.k0s(),o.nrm(3,"cc-action-icon",1),o.k0s()),2&i&&(o.R7$(3),o.Y8G("icon","fa fa-cog"))},dependencies:[Jo,Al],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 Ype(n,t){1&n&&o.nrm(0,"cc-file-panel")}function Zpe(n,t){1&n&&o.nrm(0,"cc-hovered-node-path-panel")}let Jpe=(()=>{class n{constructor(e){this.store=e,this.hoveredNodeId$=this.store.select(hd)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-tool-bar"]],standalone:!0,features:[o.aNF],decls:12,vars:3,consts:[[1,"right-aligned"]],template:function(i,r){1&i&&(o.nrm(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"),o.DNE(5,Ype,1,0,"cc-file-panel"),o.nI1(6,"async"),o.DNE(7,Zpe,1,0,"cc-hovered-node-path-panel"),o.j41(8,"div",0),o.nrm(9,"cc-loading-map-progress-spinner")(10,"cc-presentation-mode-button")(11,"cc-global-configuration-button"),o.k0s()),2&i&&(o.R7$(5),o.vxM(null===o.bMT(6,1,r.hoveredNodeId$)?5:7))},dependencies:[JD,foe,Coe,Tde,Lfe,bpe,Mpe,Bpe,Rpe,Kpe,Qn],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})(),HW=(()=>{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 s=0;for(const u of lo(e))if(Po(u)&&!u.data.isExcluded){const f=u.data.attributes[i],p=n.estimateFileExtension(u.data.name),m=r.get(p);s+=f,m?m.absoluteMetricValue+=f:r.set(p,n.getDistributionObject(p,f))}if(0===s)return[n.getNoneExtension()];let l=[];for(const u of r.values())0!==u.absoluteMetricValue&&(u.relativeMetricValue=100*u.absoluteMetricValue/s,l.push(u));return l.sort((u,f)=>f.absoluteMetricValue-u.absoluteMetricValue),l=n.getMetricDistributionWithOthers(l),l.length>0?l:[n.getNoneExtension()]}static getMetricDistributionWithOthers(e){const i=n.getOtherExtension(),r=[];for(const s of e)s.relativeMetricValue>n.OTHER_GROUP_THRESHOLD_VALUE?r.push(s):(i.absoluteMetricValue+=s.absoluteMetricValue,i.relativeMetricValue+=s.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),eAe=sn(kd,QW,(n,t)=>HW.getMetricDistribution(n.unifiedMapNode,t)),DR=sn(HS,n=>n.attributeDescriptors),iA=sn(Hc,n=>n.edgeMetric),BR=sn(gx,B2,Gg,iA,(n,t,e,i)=>({areaMetric:n,heightMetric:t,colorMetric:e,edgeMetric:i})),tAe=["*"];let zW=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-rounded-box"]],inputs:{backgroundColor:"backgroundColor"},standalone:!0,features:[o.aNF],ngContentSelectors:tAe,decls:3,vars:2,consts:[[1,"metric-value"],[1,"rounded-box"]],template:function(i,r){1&i&&(o.NAR(),o.j41(0,"div",0)(1,"div",1),o.SdG(2),o.k0s()()),2&i&&(o.R7$(),o.xc7("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 h0(...n){const t=oh(n),e=VA(n),{args:i,keys:r}=wj(n);if(0===i.length)return aa([],t);const s=new Xr.c(function iAe(n,t,e=Ul.D){return i=>{GW(t,()=>{const{length:r}=n,s=new Array(r);let l=r,u=r;for(let f=0;f{const p=aa(n[f],t);let m=!1;p.subscribe((0,sr._)(i,_=>{s[f]=_,m||(m=!0,u--),u||i.next(e(s.slice()))},()=>{--l||i.complete()}))},i)},i)}}(i,t,r?l=>xj(r,l):Ul.D));return e?s.pipe(Fc(e)):s}function GW(n,t,e){n?qs(e,n,t):t()}const rAe=sn(u_,n=>n.selectedBuildingId),f0=sn(rAe,Yw,(n,t)=>t?.get(n));class oAe{constructor(){this.vertexShaderCode=v(1812),this.fragmentShaderCode=v(1190)}}class sAe{constructor(t){this._buildings=new Array,this.mapSize=t,this.scales=new pe(1,1,1)}add(t){this._buildings.push(t)}get buildings(){return this._buildings}setScales(t){this.scales=new pe(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 pe(-1,0,-1));for(const s of this._buildings){const l=s.boundingBox.clone();if(l.min.multiply(this.scales),l.max.multiply(this.scales),l.translate(r),this.rayIntersectsAxisAlignedBoundingBox(t,l)){const u=t.intersectBox(l,new pe);if(u){const f=u.distanceTo(t.origin);f=s}}class aAe{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 pe(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=Br.hexToHSL(t);return i.decreaseLightness(e),i.getLightness()<10?i.setLightness(10):i.setLightness(i.getLightness()),i.toHex()}getColorVector(){return Br.getVector3(this._color)}getDefaultColorVector(){return Br.getVector3(this._defaultColor)}getDeltaColorVector(){return Br.getVector3(this._deltaColor)}getDefaultDeltaColorVector(){return Br.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 kR=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}(kR||{});const lAe=[[-1,0,0],[1,0,0],[0,-1,0],[0,1,0],[0,0,-1],[0,0,1]],jW=[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 $W(n,t,e,i,r,s,l){s.add(new aAe(r,new Qs(new pe(e.x,e.y,e.z),new pe(e.x+e.width,e.y+e.height,e.z+e.depth)),t,i)),n.uvs.set(jW,r*jW.length),function cAe(n,t,e){const{x:i,y:r,z:s,width:l,height:u,depth:f}=t,p=i+l,m=r+u,_=s+f;let b=4*e*6*3;n[b++]=i,n[b++]=r,n[b++]=s,n[b++]=i,n[b++]=m,n[b++]=s,n[b++]=i,n[b++]=m,n[b++]=_,n[b++]=i,n[b++]=r,n[b++]=_,n[b++]=p,n[b++]=r,n[b++]=s,n[b++]=p,n[b++]=m,n[b++]=s,n[b++]=p,n[b++]=m,n[b++]=_,n[b++]=p,n[b++]=r,n[b++]=_,n[b++]=i,n[b++]=r,n[b++]=s,n[b++]=i,n[b++]=r,n[b++]=_,n[b++]=p,n[b++]=r,n[b++]=_,n[b++]=p,n[b++]=r,n[b++]=s,n[b++]=i,n[b++]=m,n[b++]=s,n[b++]=i,n[b++]=m,n[b++]=_,n[b++]=p,n[b++]=m,n[b++]=_,n[b++]=p,n[b++]=m,n[b++]=s,n[b++]=p,n[b++]=r,n[b++]=_,n[b++]=i,n[b++]=r,n[b++]=_,n[b++]=i,n[b++]=m,n[b++]=_,n[b++]=p,n[b++]=m,n[b++]=_,n[b++]=p,n[b++]=r,n[b++]=s,n[b++]=i,n[b++]=r,n[b++]=s,n[b++]=i,n[b++]=m,n[b++]=s,n[b++]=p,n[b++]=m,n[b++]=s}(n.positions,e,r),function uAe(n,t,e,i,r,s){const{y:l,height:u}=t,p=i/(l+u-l);let m=6*r*4,_=3*m,b=6*r*6;const w=Br.getVector3Array(e);for(let F=0;F<6;F++){const D=dAe(F,n),T=lAe[F],I=m,O=m+1,R=m+2,P=m+3;s.isHeight.set(D,m);for(const te=m+4;m{class n{static{this.MINIMAL_BUILDING_HEIGHT=1}build(e,i,r,s){const l=new sAe(Ds);this.floorGradient=Br.gradient("#333333","#DDDDDD",this.getMaxNodeDepth(e)),this.materials=[i];const u=e.length,b=4*u*6,w={positions:new Float32Array(3*b),uvs:new Float32Array(2*b),normals:new Float32Array(3*b),colors:new Float32Array(3*b),indices:new Uint32Array(6*u*6),ids:new Float32Array(b),deltas:new Float32Array(b),isHeight:new Float32Array(b)};for(const[F,D]of e.entries())D.isLeaf?this.addBuilding(w,D,F,l,r,s):this.addFloor(w,D,F,l);return{mesh:this.buildMeshFromIntermediateVertexData(w),desc:l}}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,s){const l=this.getMarkingColorWithGradient(i);$W(e,i,this.mapNodeToLocalBox(i),l,r,s,0)}getMarkingColorWithGradient(e){if(e.markingColor){const r=Br.getNumber(e.markingColor)&(e.depth%2==0?14540253:16777215);return Br.convertNumberToHex(r)}return this.floorGradient[e.depth]}addBuilding(e,i,r,s,l,u){const f=this.mapNodeToLocalBox(i);f.height=this.ensureMinHeightUnlessDeltaIsNegative(i.height,i.heightDelta);let p=0;u&&i.deltas&&i.deltas[l.dynamicSettings.heightMetric]&&i.heightDelta&&(p=i.heightDelta,!i.flat&&p<0&&(f.height+=Math.abs(p))),$W(e,i,f,i.color,r,s,p)}buildMeshFromIntermediateVertexData(e){const s=new Float32Array(e.colors),l=new fi;return l.setAttribute("position",new x(e.positions,3)),l.setAttribute("normal",new x(e.normals,3)),l.setAttribute("isHeight",new x(e.isHeight,1)),l.setAttribute("uv",new x(e.uvs,2)),l.setAttribute("color",new x(e.colors,3)),l.setAttribute("deltaColor",new x(s,3)),l.setAttribute("subGeomIdx",new x(e.ids,1)),l.setAttribute("delta",new x(e.deltas,1)),l.setIndex(new x(e.indices,1)),l.addGroup(0,Number.POSITIVE_INFINITY,0),new cr(l,this.materials)}}return n})(),fAe=(()=>{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 hAe,this.material.precision="lowp";const s=this.geomGen.build(e,this.material,i,r);this.threeMesh=s.mesh,this.mapGeomDesc=s.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,s){const l=Ja.buildingArrayToMap(e);for(const u of this.mapGeomDesc.buildings)this.isBuildingSelected(i,u)||(l.get(u.id)||s.get(u.id)?u.decreaseLightness(n.LIGHTNESS_INCREASE):this.adjustSurroundingBuildingColors(e,u,r),this.setVertexColor(u.id,u.getColorVector(),u.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 s=e[0].getCenterPoint(Ds).distanceTo(i.getCenterPoint(Ds));this.decreaseLightnessByDistance(i,s)}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:s}}=i,{node:l}=e;if(l.flat)e.setInitialDeltaColor(r.flat);else if(l.deltas){const u=l.deltas[s];u>0&&e.setInitialDeltaColor(r.positiveDelta),u<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 s=n.NUM_OF_VERTICES,l=e*s,u=this.threeMesh.geometry.getAttribute("color"),f=this.threeMesh.geometry.getAttribute("deltaColor");for(let p=l;pthis.height?this.height:this.width}isVertical(){return this.height>this.width}area(){return this.width*this.height}getBottomRight(){return this.bottomRight}}class b7{constructor(t){this.height=0,this.width=0,this.FIXED_MARGIN=.5,this.mapNode=t}getNode(){return this.mapNode}createMarginatedRectangle(t){const e=new At(t.x+this.FIXED_MARGIN,t.y+this.FIXED_MARGIN);return new p0(e,this.width-2*this.FIXED_MARGIN,this.height-2*this.FIXED_MARGIN)}}var v7=function(n){return n[n.Horizontal=0]="Horizontal",n[n.Vertical=1]="Vertical",n}(v7||{});class qW extends b7{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 RR(n,t){let e=n.attributes[t]||0;if(0===e&&n.children&&n.children.length>0)for(const i of n.children)e+=RR(i,t);return e}const wx={calculateSize:RR,mergeDirectories:function pAe(n,t){let e=n;const i=RR(n,t);for(const r of n.children)if(!Po(r)&&i===RR(r,t)){const l=e.name;e=r,e.name=`${l}/${r.name}`;break}return e},buildNodeFrom:function AAe(n,t,e,i,r){const s=!(n.children&&n.children.length>0),l=p3(n,i),u=Ja.getHeightValue(i,n,e,l),f=Math.abs(s?Math.max(t*u,Ja.MIN_BUILDING_HEIGHT):Ja.FOLDER_HEIGHT),p=n.rect.height,m=n.rect.topLeft.x,_=n.rect.topLeft.y,b=n.zOffset*Ja.FOLDER_HEIGHT;return{name:n.name,id:n.id,width:n.rect.width,height:f,length:p,depth:n.zOffset,mapNodeDepth:100,x0:m,z0:b,y0:_,isLeaf:s,attributes:n.attributes,edgeAttributes:n.edgeAttributes,deltas:n.deltas,heightDelta:n.deltas?.[i.dynamicSettings.heightMetric]?t*n.deltas[i.dynamicSettings.heightMetric]:0,visible:DU(n,s,i,l),path:n.path,link:n.link,markingColor:t1(n,i.fileSettings.markedPackages),flat:l,color:BU(n,i,qp(i),r,l),incomingEdgePoint:f3(n.rect.width,f,p,new pe(m,b,_),Ds),outgoingEdgePoint:f3(n.rect.width,f,p,new pe(m,b,_),Ds)}}};var A0=function(n){return n[n.RIGHT=0]="RIGHT",n[n.LEFT=1]="LEFT",n}(A0||{});class lv extends qW{constructor(t,e,i=A0.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=wx.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),s=this.layoutBottomRow(e,i,t);return[...r,this.layoutStreet(e,i),...s]}layoutTopRow(t,e,i){const r=new At(t.x,t.y),s=[];if(this.orientation===A0.LEFT){const l=this.getLength(this.topRow);r.x+=this.width-l}for(let l=0;lMath.max(e,i.height),Number.MIN_VALUE)}calculateStreetOverhang(t){return this.orientation===A0.LEFT?this.calculateLeftStreetOverhang(t):this.calculateRightStreetOverhang(t)}calculateLeftStreetOverhang(t){const e=this.topRow[0],i=this.bottomRow[0],r=e instanceof xx&&e.streetRect?e.streetRect.topLeft.x-t.x:this.width-this.getLength(this.topRow),s=i instanceof xx&&i.streetRect?i.streetRect.topLeft.x-t.x:this.width-this.getLength(this.bottomRow);return r>0&&s>0?Math.min(r,s):0}calculateRightStreetOverhang(t){const e=this.topRow.at(-1),i=this.bottomRow.at(-1),r=t.x+this.width,s=e instanceof xx&&e.streetRect?r-e.streetRect.getBottomRight().x:this.width-this.getLength(this.topRow),l=i instanceof xx&&i.streetRect?r-i.streetRect.getBottomRight().x:this.width-this.getLength(this.bottomRow);return s>0&&l>0?Math.min(s,l):0}}var m0=function(n){return n[n.UP=0]="UP",n[n.DOWN=1]="DOWN",n}(m0||{});class xx extends qW{constructor(t,e,i,r=m0.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=wx.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),s=this.layoutRightRow(e,i,t);return[...r,this.layoutStreet(e,i),...s]}layoutLeftRow(t,e,i){const r=new At(t.x,t.y),s=[];if(this.orientation===m0.UP){const l=this.getLength(this.leftRow);r.y+=this.height-l}for(let l=0;le.mapNode.type===i.mapNode.type?0:e.mapNode.type===Zo.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 lv&&(r.orientation=A0.LEFT),this.leftRow.push(r),i+=r.height):this.rightRow.push(r)}rearrangeRows(){this.orientation===m0.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===m0.UP?this.calculateTopStreetOverhang(t):this.calculateBottomStreetOverhang(t)}calculateTopStreetOverhang(t){const e=this.leftRow[0],i=this.rightRow[0],r=e instanceof lv&&e.streetRect?e.streetRect.topLeft.y-t.y:this.height-this.getLength(this.leftRow),s=i instanceof lv&&i.streetRect?i.streetRect.topLeft.y-t.y:this.height-this.getLength(this.rightRow);return r>0&&s>0?Math.min(r,s):0}calculateBottomStreetOverhang(t){const e=this.leftRow.at(-1),i=this.rightRow.at(-1),r=t.y+this.height,s=e instanceof lv&&e.streetRect?r-e.streetRect.getBottomRight().y:this.height-this.getLength(this.leftRow),l=i instanceof lv&&i.streetRect?r-i.streetRect.getBottomRight().y:this.height-this.getLength(this.rightRow);return s>0&&l>0?Math.min(s,l):0}}class mAe extends b7{constructor(t){super(t)}calculateDimension(t){this.metricValue=wx.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 gAe extends b7{constructor(t){super(t),this.treeMapNodes=[]}calculateDimension(t){this.metricName=t,this.metricValue=Ja.calculateSize(this.mapNode,t),this.width=Math.sqrt(this.metricValue),this.height=Math.sqrt(this.metricValue)}}class WW{constructor(t){this.nodes=[],this.nodes=t}totalScaledSize(t,e,i,r){return t.reduce((s,l)=>s+this.scaledSize(l,i,r,e),0)}totalSize(t){return this.nodes.reduce((e,i)=>e+Ja.calculateSize(i,t),0)}min(t,e,i,r){return t.reduce((s,l)=>Math.min(s,this.scaledSize(l,i,r,e)),Number.MAX_VALUE)}max(t,e,i,r){return t.reduce((s,l)=>Math.max(s,this.scaledSize(l,i,r,e)),Number.MIN_VALUE)}populate(t,e,i,r){for(const s of t){const l=this.worstAspectRatio(this.nodes,e,i,r);if(!(this.worstAspectRatio([...this.nodes,s],e,i,r)0?F/_:0,T=new p0(new At(u,t.topLeft.y),D,_);b.push({...w,value:"File"===w.type?e:0,rect:this.applyNodeMargin(T,s),zOffset:r}),u+=D}return b}worstAspectRatio(t,e,i,r){const s=e.width,l=e.area(),u=this.totalScaledSize(t,r,i,l),f=this.min(t,r,i,l),p=this.max(t,r,i,l),m=Math.pow(s,2),_=Math.pow(u,2);return Math.max(m*p/_,_/(m*f))}}var w7=function(n){return n[n.topToBottom=0]="topToBottom",n[n.bottomToTop=1]="bottomToTop",n}(w7||{});class _Ae extends WW{constructor(t){super(t)}layout(t,e,i,r,s,l=w7.topToBottom){let u=t.topLeft.y;l!==w7.topToBottom&&this.nodes.reverse();const f=this.nodes,p=t.area(),m=t.height,_=this.totalScaledSize(f,i,e,p)/m,b=[];for(const w of f){const F=this.scaledSize(w,e,p,i),D=_>0?F/_:0,T=new p0(new At(t.topLeft.x,u),_,D);b.push({...w,value:"File"===w.type?e:0,rect:this.applyNodeMargin(T,s),zOffset:r}),u+=D}return b}worstAspectRatio(t,e,i,r){const s=e.height,l=e.area(),u=this.totalScaledSize(t,r,i,l),f=this.min(t,r,i,l),p=this.max(t,r,i,l),m=s**2,_=u**2;return Math.max(m*p/_,_/(m*f))}}class bAe extends gAe{constructor(t){super(t)}layout(t,e=new At(0,0)){const i=this.createMarginatedRectangle(e),r={...this.mapNode,value:this.metricValue,rect:i,zOffset:0},s=this.mapNode.children.filter(l=>Ja.calculateSize(l,this.metricName)>0);return this.treeMapNodes.push(r),s.length>0&&this.createNodes(s,i,this.metricValue,1,t),this.treeMapNodes}createNodes(t,e,i,r,s){let l=0,u=new p0(new At(e.topLeft.x,e.topLeft.y),e.width,e.height),f=i;const p=this.orderBySizeDescending(t);do{const m=this.createStrip(u,p.slice(l),f),_=m.totalSize(this.metricName);if(_>0){const b=this.createStripNodes(m,u,f,r,s);this.createChildrenNodes(b,r,s),u=this.remainingRectangle(u,m,f,u.area()),f-=_}l+=m.nodes.length}while(l0){const s=r.children.filter(l=>Ja.calculateSize(l,this.metricName)>0);if(s.length>0){const l=Ja.calculateSize(r,this.metricName);this.createNodes(s,r.rect,l,e+1,i)}}}orderBySizeDescending(t){return t.sort((e,i)=>Ja.calculateSize(i,this.metricName)-Ja.calculateSize(e,this.metricName))}}class cv{static createStreetLayoutNodes(t,e,i,r){const s=H_(e.files),l=i.find(F=>F.name===e.dynamicSettings.heightMetric).maxValue*s,u=e.dynamicSettings.areaMetric,f=wx.mergeDirectories(t,u),m=this.createBoxes(f,u,e,v7.Vertical,1,e.appSettings.maxTreeMapFiles),_=new lv(f,m,0);return _.calculateDimension(u),_.layout(.02*e.dynamicSettings.margin,new At(0,0)).map(F=>wx.buildNodeFrom(F,this.calculateHeightScale(t,Ds,l),l,e,r))}static createBoxes(t,e,i,r,s,l){const u=[],f=i.dynamicSettings.areaMetric;for(let p of t.children){if(Po(p)){u.push(new mAe(p));continue}if(hu(p.path,i.fileSettings.blacklist,"exclude"))continue;const m=i.appSettings.layoutAlgorithm,_=cv.countFileDescendants(p);if(m===ja.TreeMapStreet&&_<=l){const b=cv.createTreeMap(p);u.push(b)}else{p=wx.mergeDirectories(p,f);const b=cv.createBoxes(p,e,i,1-r,s+1,l),w=cv.createStreet(p,r,b,s);u.push(w)}}return u}static createStreet(t,e,i,r){return e===v7.Horizontal?new lv(t,i,r):new xx(t,i,r)}static createTreeMap(t){return new bAe(t)}static countFileDescendants(t){let e=0;for(const i of t.children)e+=Po(i)?1:cv.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 x7=sn(Ro,n=>n.isLoadingFile);class yAe extends UU{constructor(t,e){super(t,e),this.screenSpacePanning=!1,this.mouseButtons={LEFT:2,MIDDLE:1,RIGHT:0},this.touches={ONE:1,TWO:3}}}let Nd=(()=>{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 PU,this.zoomPercentage$=new Xd.t(100)}setControlTarget(e){this.controls.target.set(e.x,e.y,e.z)}rotateCameraInVectorDirection(e,i,r){const s=this.getZoom();this.lookAtDirectionFromTarget(e,i,r),this.applyOldZoom(s),this.threeRendererService.render(),this.onInput(this.threeCameraService.camera)}autoFitTo(){setTimeout(()=>{const e=this.getBoundingSphere();if(-1===e.radius)return;const i=this.cameraPerspectiveLengthCalculation(e);this.threeCameraService.camera.position.set(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 s=this.threeCameraService.camera.fov*Math.PI/180*1.3,l=e.radius/Math.tan(s/2);return Math.sqrt(Math.pow(l,2)+Math.pow(l,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 Qs).setFromObject(this.threeSceneService.mapGeometry).getBoundingSphere(new Js)}lookAtDirectionFromTarget(e,i,r){this.threeCameraService.camera.position.set(this.controls.target.x,this.controls.target.y,this.controls.target.z);const s=new cr(new Vc(20,20,20),new Mz);this.threeSceneService.scene.add(s),s.position.set(this.controls.target.x,this.controls.target.y,this.controls.target.z),s.translateX(e),s.translateY(i),s.translateZ(r),this.threeCameraService.camera.lookAt(s.getWorldPosition(s.position)),this.threeSceneService.scene.remove(s)}getZoom(){return this.threeCameraService.camera.position.distanceTo(this.controls.target)}applyOldZoom(e){this.threeCameraService.camera.translateZ(e)}init(e){this.controls=new yAe(this.threeCameraService.camera,e),this.controls.mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2},this.controls.zoomToCursor=!0;const i=r=>{this.controls.zoomToCursor=!r.altKey};window.addEventListener("keydown",i),window.addEventListener("keyup",i),window.addEventListener("mousemove",i),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 pe).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)}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(rf),o.KVO(Rd),o.KVO(Cr))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),KW=(()=>{class n{constructor(e,i,r,s){this.state=e,this.threeCameraService=i,this.threeSceneService=r,this.threeMapControlsService=s,this.mapLabelColors=af.labelColorAndAlpha,this.LABEL_COLOR_RGB=Br.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 pe(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:s,dynamicSettings:l}=this.state.getValue(),{scaling:u,layoutAlgorithm:f,showMetricLabelNodeName:p,showMetricLabelNameValue:m}=s,{margin:_,heightMetric:b}=l,w=new pe(u.x,u.y,u.z);let F="";if(p||r&&!m)F=`${e.name}`;else if(!m)return;m&&(""!==F&&(F+="\n"),F+=`${e.attributes[b]} ${b}`);const D=this.makeText(F,30,e);let T=e.height+Math.abs(e.heightDelta??0);T=T*w.y>i*w.y?T:i,this.nodeHeight=this.nodeHeight>T?this.nodeHeight:T;const O=e.z0,P=(e.x0-Ds+e.width/2)*w.x,ee=(O+this.nodeHeight)*w.y,J=(O+e.height)*w.y,te=(e.y0-Ds+e.length/2)*w.z,ie=this.LABEL_HEIGHT_COEFFICIENT*_*this.LABEL_SCALE_FACTOR;let W=ie+D.heightValue/2;switch(f){case ja.StreetMap:case ja.TreeMapStreet:W/=10,this.LABEL_HEIGHT_POSITION=0,D.line=this.makeLine(P,ee+W,J,te);break;default:D.line=this.makeLine(P,ee+ie/2,J,te)}D.sprite.position.set(P,ee+W,te),D.sprite.material.color=new _n(this.mapLabelColors.rgb),D.sprite.material.opacity=this.mapLabelColors.alpha,D.sprite.userData={node:e},this.threeSceneService.labels.add(D.sprite),this.threeSceneService.labels.add(D.line),this.labels.push(D)}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 N5&&this.disposeSprite(i),i instanceof Ou&&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 pe(e.x,e.y,e.z),{margin:r}=this.state.getValue().dynamicSettings,s=new pe(0,this.LABEL_HEIGHT_COEFFICIENT*r*this.LABEL_SCALE_FACTOR,0);for(const l of this.labels){const u=i.clone();l.sprite.position.sub(s).divide(this.previousScaling).multiply(u).add(s),u.y>1&&(u.y=1);const p=l.line.geometry.attributes.position;p.setX(0,p.getX(0)*u.x),p.setY(0,p.getY(0)*u.y),p.setZ(0,p.getZ(0)*u.z),p.setX(1,l.sprite.position.x),p.setY(1,l.sprite.position.y),p.setZ(1,l.sprite.position.z),p.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 s=document.createElement("canvas"),l=s.getContext("2d");l.font=`${i}px Roboto`;const f=e.split("\n"),p=l.measureText(f[0]).width,m=l.measureText(f[1]).width;s.width=p>m?p+25:m+25,s.height=25+i*f.length,l.font=`${i}px Roboto`,l.fillStyle="rgba(255,255,255,1)",l.lineJoin="round",l.lineCap="round",l.lineWidth=5,n.drawRectangleWithRoundedCorners(l,0,0,s.width,s.height,this.LABEL_CORNER_RADIUS),l.fillStyle="rgba(0,0,0,1)",l.textAlign="center",l.textBaseline="middle";for(const[F,D]of f.entries())l.fillText(D,s.width/2,s.height*(F+1)/(f.length+1));const _=new Is(s);_.minFilter=Ts,_.needsUpdate=!0;const b=new P5({map:_}),w=new N5(b);return this.lineCount=f.length,this.setLabelSize(w,null,s.width),{sprite:w,heightValue:s.height,line:null,lineCount:f.length,node:r}}static drawRectangleWithRoundedCorners(e,i,r,s,l,u){s<2*u&&(u=s/2),l<2*u&&(u=l/2),e.beginPath(),e.moveTo(i+u,r),e.arcTo(i+s,r,i+s,r+l,u),e.arcTo(i+s,r+l,i,r+l,u),e.arcTo(i,r+l,i,r,u),e.arcTo(i,r,i+s,r,u),e.closePath(),e.fill()}setLabelSize(e,i,r=e.material.map.image.width){const s=(new Qs).setFromObject(this.threeSceneService.mapGeometry).getBoundingSphere(new Js).center;if(this.threeCameraService.camera){const l=this.threeCameraService.camera.position.distanceTo(s);null!==i&&(this.lineCount=i.lineCount),e.scale.set(l/this.LABEL_WIDTH_DIVISOR*r,this.lineCount>1?l/25:l/this.LABEL_HEIGHT_DIVISOR,1)}}makeLine(e,i,r,s){const l=new Za({color:this.LABEL_COLOR_RGB,linewidth:2}),u=(new fi).setFromPoints([new pe(e,r,s),new pe(e,i+this.LABEL_HEIGHT_POSITION,s)]);return new Ou(u,l)}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Vi),o.KVO(rf),o.KVO(Rd),o.KVO(Nd))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const YW=sn(Ro,n=>n.amountOfEdgePreviews),wAe=sn(Aa,iA,YW,(n,t,e)=>new Set(xAe(n.nodeEdgeMetricsMap,t,e))),xAe=(n,t,e)=>{const i=[];if(0===e)return i;const r=n.get(t);if(void 0===r)return i;for(const s of r.keys())if(i.push(s),i.length===e)break;return i},CAe=sn(HS,n=>n.edges),EAe=sn(wAe,CAe,iA,(n,t,e)=>{const i=C(t);return((n,t,e)=>{for(const i of t)if(i.visible=$l.none,void 0!==i.attributes[e]){const r=n.has(i.fromNodeName),s=n.has(i.toNodeName);r&&s?i.visible=$l.both:r?i.visible=$l.from:s&&(i.visible=$l.to)}})(n,i,e),i});let SAe=(()=>{class n{constructor(e,i,r,s){this.store=e,this.state=i,this.threeSceneService=r,this.idToBuildingService=s,this.VERTICES_PER_LINE=5,this.arrows=new Array,this.HIGHLIGHT_BUILDING_DELAY=1,this.debounceCalculation=pf(l=>this.resetEdgesOfBuildings(l),this.HIGHLIGHT_BUILDING_DELAY),this.subscription=this.store.select(hd).pipe(ao(l=>{if(null!==l){const u=this.idToBuildingService.get(l);this.onBuildingHovered(u)}else this.onBuildingUnhovered()})).subscribe(),this.resetEdgesOfBuildings=l=>{this.isEdgeApplicableForBuilding(l)&&(this.clearArrows(),this.showEdgesOfBuildings(l)),this.scale()},this.onBuildingSelected=l=>{this.isEdgeApplicableForBuilding(l.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:s,dynamicSettings:l}=this.state.getValue(),u=100*s.edgeHeight;if(e.attributes?.[l.heightMetric]&&i.attributes?.[l.heightMetric]){const f=this.createCurve(i,e,u),p=Br.getNumber(s.mapColors[r?"outgoingEdge":"incomingEdge"]);this.highlightBuilding(r?e:i),this.setCurveColor(f,p)}}addEdgePreview(){const e=EAe(this.state.getValue());for(const i of e){const r=this.map.get(i.fromNodeName),s=this.map.get(i.toNodeName);if(r&&s&&i.visible!==$l.none&&i.visible){const l=100*this.state.getValue().appSettings.edgeHeight,u=this.createCurve(r,s,l);this.previewMode(u,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:s}=r;i.set(s.path,s)}if(e){const{node:s}=e;i.set(s.path,s)}i.size>0?this.buildPairingEdges(i):this.addEdgePreview()}buildPairingEdges(e){const{edges:i}=this.state.getValue().fileSettings;for(const r of i){const s=this.map.get(r.fromNodeName);if(void 0===s)continue;const l=this.map.get(r.toNodeName);void 0!==l&&(e.has(s.path)?(this.addArrow(l,s,!0),this.threeSceneService.highlightBuildings()):e.has(l.path)&&(this.addArrow(l,s,!1),this.threeSceneService.highlightBuildings()))}}createCurve(e,i,r){const s=e.outgoingEdgePoint.clone(),l=i.incomingEdgePoint.clone(),u=Math.max(s.y+i.height,l.y+1)+r;return s.setY(u),l.setY(u),new uz(e.outgoingEdgePoint,s,l,i.incomingEdgePoint)}highlightBuilding(e){const i=this.threeSceneService.getMapMesh().getMeshDescription().getBuildingByPath(e.path);this.threeSceneService.addBuildingToHighlightingList(i)}setCurveColor(e,i,r=50){const s=e.getPoints(r),l=this.buildLine(s,i);l.add(this.buildArrow(s)),this.threeSceneService.edgeArrows.add(l),this.arrows.push(l)}previewMode(e,i){if(i===$l.both||i===$l.from){const r=this.makeArrowFromBezier(e,!1);this.threeSceneService.edgeArrows.add(r),this.arrows.push(r)}if(i===$l.both||i===$l.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 s=e.getPoints(r),{incomingEdge:l,outgoingEdge:u}=this.state.getValue().appSettings.mapColors,f=i?l:u,p=i?s.slice(r+1-this.VERTICES_PER_LINE):s.slice(0,s.length-(r+1-this.VERTICES_PER_LINE));return this.buildEdge(p,Br.getNumber(f))}buildEdge(e,i){const r=this.buildLine(e,i);return r.add(this.buildArrow(e)),r}buildLine(e,i=0){const r=new fi;r.setFromPoints(e);const s=new Za({color:i,linewidth:1});return new Ou(r,s)}buildArrow(e,i=0,r=10,s=10){const l=e.at(-1).clone().sub(e.at(-2).clone()).normalize(),u=e.at(-1).clone();return l.y<0&&(u.y+=r+1),new cre(l,u,r+1,i,r,s)}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(Vi),o.KVO(Rd),o.KVO(zS))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var O2=function(){var n=0,t=document.createElement("div");function e(m){return t.appendChild(m.dom),m}function i(m){for(var _=0;_=s+1e3&&(u.update(1e3*l/(m-s),100),s=m,l=0,p)){var _=performance.memory;p.update(_.usedJSHeapSize/1048576,_.jsHeapSizeLimit/1048576)}return m},update:function(){r=this.end()},domElement:t,setMode:i}};O2.Panel=function(n,t,e){var i=1/0,r=0,s=Math.round,l=s(window.devicePixelRatio||1),u=80*l,f=48*l,p=3*l,m=2*l,_=3*l,b=15*l,w=74*l,F=30*l,D=document.createElement("canvas");D.width=u,D.height=f,D.style.cssText="width:80px;height:48px";var T=D.getContext("2d");return T.font="bold "+9*l+"px Helvetica,Arial,sans-serif",T.textBaseline="top",T.fillStyle=e,T.fillRect(0,0,u,f),T.fillStyle=t,T.fillText(n,p,m),T.fillRect(_,b,w,F),T.fillStyle=e,T.globalAlpha=.9,T.fillRect(_,b,w,F),{dom:D,update:function(I,O){i=Math.min(i,I),r=Math.max(r,I),T.fillStyle=e,T.globalAlpha=1,T.fillRect(0,0,u,b),T.fillStyle=t,T.fillText(s(I)+" "+n+" ("+s(i)+"-"+s(r)+")",p,m),T.drawImage(D,_+l,b,w-l,F,_,b,w-l,F),T.fillRect(_+w-l,b,l,F),T.fillStyle=e,T.globalAlpha=.9,T.fillRect(_+w-l,b,l,s((1-I/O)*F))}}};const N2=O2;let ZW=(()=>{class n{constructor(e){this.threeRendererService=e,this.isDevelopmentMode=(0,o.naY)(),this.init=i=>{this.isDevelopmentMode&&(this.stats=new N2,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 N2.Panel("triangles","#ff8","#221")),maxHeight:0},this.glCallsPanel={panel:this.stats.addPanel(new N2.Panel("calls","#f8f","#212")),maxHeight:0},this.geometryMemoryPanel={panel:this.stats.addPanel(new N2.Panel("geo. mem","#f08","#221")),maxHeight:0},this.textureMemoryPanel={panel:this.stats.addPanel(new N2.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(),s=this.threeRendererService.getMemoryInfo();this.processPanel(this.trianglesPanel,r.triangles),this.processPanel(this.glCallsPanel,r.calls),this.processPanel(this.geometryMemoryPanel,s.geometries),this.processPanel(this.textureMemoryPanel,s.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)(o.KVO(Cr))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),JW=(()=>{class n{constructor(e){this.threeMapControlsService=e,this.eventEmitter=new PU,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 UU(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 $z;r.setFromCamera(i,this.camera);const s=[];for(const u of lo(this.cubeGroup))Po(u)&&s.push(u.data);const[l]=r.intersectObjects(s);return l?l.object:null}transformIntoCanvasVector(e){const{domElement:i}=this.renderer,r=this.renderer.getPixelRatio(),s=i.getBoundingClientRect();return new At((e.clientX-s.left)/i.width*r*2-1,-(e.clientY-s.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,L2.changeCursorIndicator(rA.Pointer),this.eventEmitter.emit("viewCubeHoveredEvent",{cube:e})}triggerViewCubeUnhoverEvent(){this.currentlyHovered=null,L2.changeCursorIndicator(rA.Default),this.eventEmitter.emit("viewCubeUnHoveredEvent")}subscribe(e,i){this.eventEmitter.on(e,r=>{i(r)})}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Nd))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),eX=(()=>{class n{constructor(e,i,r,s,l){this.threeSceneService=e,this.threeCameraService=i,this.threeMapControlsService=r,this.threeRendererService=s,this.threeStatsService=l,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=u=>{"INPUT"===u.target.nodeName&&this.threeMapControlsService.controls.stopListenToKeyEvents()},this.onFocusOut=u=>{"INPUT"===u.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)(o.KVO(Rd),o.KVO(rf),o.KVO(Nd),o.KVO(Cr),o.KVO(ZW))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var PR=function(n){return n[n.LeftClick=0]="LeftClick",n[n.RightClick=2]="RightClick",n}(PR||{}),rA=function(n){return n.Default="default",n.Grabbing="grabbing",n.Pointer="pointer",n.Moving="move",n}(rA||{});let L2=(()=>{class n{constructor(e,i,r,s,l,u,f,p,m){this.threeCameraService=e,this.threeRendererService=i,this.threeSceneService=r,this.store=s,this.state=l,this.codeMapLabelService=u,this.viewCubeMouseEvents=f,this.threeViewerService=p,this.idToBuilding=m,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 $z,this.labelHoveredBuilding=null,this.labelSelectedBuilding=null,this.subscriptions=[this.store.select(Qc).pipe(ao(()=>this.onFilesSelectionChanged())).subscribe(),this.store.select(sf).pipe(ao(_=>this.onBlacklistChanged(_))).subscribe(),this.store.select(hd).pipe(ao(_=>{null!==_?this.hoverNode(_):this.unhoverNode(!1)})).subscribe()],this.onViewCubeEventPropagation=_=>{switch(_.type){case"mousemove":this.onDocumentMouseMove(_.event);break;case"mouseup":this.onDocumentMouseUp(_.event);break;case"mousedown":this.onDocumentMouseDown(_.event);break;case"dblclick":this.onDocumentDoubleClick()}},this.onDocumentMouseMove=_=>{this.mouse.x=_.clientX,this.mouse.y=_.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",pf(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",pf(()=>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 dN(n,t){return hu(n,t,"exclude")||hu(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 s=this.transformHTMLToSceneCoordinates(),l=this.threeCameraService.camera;l.isPerspectiveCamera&&this.raycaster.setFromCamera(s,l);const u=this.calculateHoveredLabel(e);u&&(this.threeSceneService.animateLabel(u.object,this.raycaster,e),r=u.object.userData.node.path),this.intersectedBuilding=""!==r?i.getBuildingByPath(r):i.checkMouseRayMeshIntersection(s,l);const f=this.threeSceneService.getHighlightedBuilding(),p=this.intersectedBuilding;f?.id!==p?.id&&(this.clearLabelHoveredBuilding(),this.threeSceneService.resetLabel(),this.unhoverBuilding(),p&&!this.isGrabbingOrMoving()&&(this.setLabelHoveredLeaf(p,e),this.hoverBuilding(p)))}}}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,s=this.threeSceneService.getLabelForHoveredNode(e,r);return this.labelHoveredBuilding=e.node,s}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 s=i.node.link;if(s)return void window.open(s,"_blank")}}onDocumentMouseDown(e){e.button===PR.RightClick&&(this.isMoving=!0,n.changeCursorIndicator(rA.Moving)),e.button===PR.LeftClick&&(this.isGrabbing=!0,n.changeCursorIndicator(rA.Grabbing)),this.mouseOnLastClick={x:e.clientX,y:e.clientY},document.activeElement.blur()}onDocumentMouseUp(e){this.viewCubeMouseEvents.resetIsDragging(),e.button===PR.LeftClick?this.onLeftClick():this.onRightClick(),n.changeCursorIndicator(void 0!==this.intersectedBuilding?rA.Pointer:rA.Default)}calculateHoveredLabel(e){let i=null;for(let r=0;r0&&(i=null===i?s[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(rA.Pointer);const s=Yw(this.state.getValue()).get(e.node.id);for(const{data:l}of lo(s)){const u=this.idToBuilding.get(l.id);u&&this.threeSceneService.addBuildingToHighlightingList(u)}this.threeSceneService.highlightBuildings(),i&&this.store.dispatch(bx({value:e.node.id}))}transformHTMLToSceneCoordinates(){const{renderer:e,renderer:{domElement:i}}=this.threeRendererService,r=e.getPixelRatio(),s=i.getBoundingClientRect();return{x:this.mouse.x/i.width*r*2-1,y:-(this.mouse.y-s.top)/i.height*r*2+1}}unhoverBuilding(e=!0){this.isGrabbingOrMoving()||n.changeCursorIndicator(rA.Default),this.threeSceneService.getConstantHighlight().size>0?this.threeSceneService.clearHoverHighlight():this.threeSceneService.clearHighlight(),e&&this.store.dispatch(bx({value:null}))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(rf),o.KVO(Cr),o.KVO(Rd),o.KVO(Yt),o.KVO(Vi),o.KVO(KW),o.KVO(JW),o.KVO(eX),o.KVO(zS))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),tX=(()=>{class n{constructor(e,i,r,s,l,u,f){this.store=e,this.state=i,this.threeSceneService=r,this.codeMapLabelService=s,this.codeMapArrowService=l,this.threeStatsService=u,this.codeMapMouseEventService=f,this.nodesByColor={positive:[],neutral:[],negative:[]},this.onIsLoadingFileChanged=p=>{p?this.threeSceneService?.dispose():this.threeStatsService?.resetPanels()},this.subscription=this.store.select(x7).pipe(ao(this.onIsLoadingFileChanged)).subscribe()}ngOnDestroy(){this.subscription.unsubscribe()}render(e){const i=this.getNodes(e),r=this.sortVisibleNodesByHeightDescending(i);this.unflattenedNodes=r.filter(({flat:s})=>!s),this.setNewMapMesh(i,r),this.getNodesMatchingColorSelector(this.unflattenedNodes),this.setLabels(this.unflattenedNodes),this.setArrows(r)}setNewMapMesh(e,i){const r=this.state.getValue(),s=new fAe(i,r,Bd(r.files));this.threeSceneService.setMapMesh(e,s)}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=Aa(i).nodeMetricData,{appSettings:{layoutAlgorithm:s},files:l}=i,u=Bd(l);switch(s){case ja.StreetMap:case ja.TreeMapStreet:return cv.createStreetLayoutNodes(e,i,r,u);case ja.SquarifiedTreeMap:return function Kre(n,t,e,i){const r=H_(t.files),s=e.find(m=>m.name===t.dynamicSettings.heightMetric)?.maxValue*r,l=e.find(m=>m.name===t.dynamicSettings.areaMetric)?.maxValue*r,u=2*Ds/s;if(TG(n)){const m=lo(n),_=[Ja.buildRootFolderForFixedFolders(m.data,u,t,i)],b=2*Ds+FG(m)*(t.dynamicSettings.margin/CG),w=b/_[0].width,F=b/_[0].length;return function Yre(n,t,e){n.x0*=e,n.y0*=t,n.width*=e,n.length*=t}(_[0],w,F),[..._,...SG(m,t,w,F,0,0,u,s,l,i,r)]}const f=IG(n,t,r,l),p=[];for(const m of f.treeMap)p.push(Ja.buildNodeFrom(m,u,s,t,i));return p}(e,i,r,u);default:return[]}}sortVisibleNodesByHeightDescending(e){return this.state.getValue().appSettings.experimentalFeaturesEnabled?(this.setMinBuildingLength(e),e.filter(r=>r.visible&&r.width>0).sort((r,s)=>s.height-r.height)):e.filter(r=>r.visible&&r.length>0&&r.width>0).sort((r,s)=>s.height-r.height)}setMinBuildingLength(e){for(const i of e)i.length<=0&&(i.length=2)}getNodesMatchingColorSelector(e){const i=this.state.getValue().dynamicSettings;this.nodesByColor={positive:[],negative:[],neutral:[]};for(const r of e)if(r.isLeaf){const s=r.attributes[i.colorMetric];"unary"===i.colorMetric?this.nodesByColor.positive.push(r):null!==s&&(sp.isLeaf).slice(0,l);this.setBuildingLabel(f,u)}}}setArrows(e){this.codeMapArrowService.clearArrows(),this.codeMapArrowService.addEdgeMapBasedOnNodes(e),this.codeMapArrowService.addEdgePreview()}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(Vi),o.KVO(Rd),o.KVO(KW),o.KVO(SAe),o.KVO(ZW),o.KVO(L2))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),C7=(()=>{class n{constructor(e,i){this.store=e,this.codeMapRenderService=i}createNodeObservable(){return h0([this.store.select(PW),this.store.select(f0),this.createTopLevelNodeObservable()]).pipe((0,$n.T)(([s,l,u])=>s??l??u))}createTopLevelNodeObservable(){return h0([this.store.select(kd),this.store.select(Hc)]).pipe(ur(([e])=>!!e.unifiedMapNode),(0,$n.T)(([e])=>this.findTopLevelNode(e)))}findTopLevelNode(e){const i=this.codeMapRenderService.getNodes(e.unifiedMapNode),r=this.codeMapRenderService.sortVisibleNodesByHeightDescending(i);return r.reduce((s,l)=>s.attributes.unary>l.attributes.unary?s:l,r[0])}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(tX))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),nX=(()=>{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:Po(r)}}ngOnInit(){this.isNodeALeaf$=this.nodeSelectionService.createNodeObservable().pipe((0,$n.T)(e=>this.isNodeALeaf(e))),this.attributeType$=this.store.select(((n,t)=>sn(BR,SU,(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)(o.rXU(Yt),o.rXU(C7))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-metric-chooser-type"]],inputs:{metricFor:"metricFor",attributeType:"attributeType"},standalone:!0,features:[o.aNF],decls:4,vars:6,consts:[[3,"hidden"]],template:function(i,r){1&i&&(o.j41(0,"span",0),o.nI1(1,"async"),o.EFF(2),o.nI1(3,"async"),o.k0s()),2&i&&(o.Y8G("hidden",o.bMT(1,2,r.isNodeALeaf$)),o.R7$(2),o.SpI(" ",o.bMT(3,4,r.attributeType$),"\n"))},dependencies:[Qn],encapsulation:2})}}return n})();function FAe(n,t){if(1&n&&(o.j41(0,"cc-rounded-box",1),o.nI1(1,"async"),o.EFF(2),o.nI1(3,"async"),o.k0s()),2&n){let e;const i=o.XpG(),r=o.XpG();o.Y8G("backgroundColor",r.calculateBackgroundColor(i.deltas[o.bMT(1,2,r.primaryMetricNames$)[r.metricFor]])),o.R7$(2),o.SpI(" \u0394",null==(e=i.deltas[o.bMT(3,4,r.primaryMetricNames$)[r.metricFor]])?null:e.toLocaleString()," ")}}function DAe(n,t){if(1&n&&(o.j41(0,"cc-rounded-box"),o.nrm(1,"cc-metric-chooser-type",0),o.j41(2,"span"),o.EFF(3),o.nI1(4,"async"),o.k0s()(),o.DNE(5,FAe,4,6,"cc-rounded-box",1)),2&n){let e;const i=t,r=o.XpG();o.R7$(),o.Y8G("metricFor",r.metricFor),o.R7$(2),o.JRh(null==(e=i.attributes[o.bMT(4,3,r.primaryMetricNames$)[r.metricFor]])?null:e.toLocaleString()),o.R7$(2),o.vxM(i.deltas?5:-1)}}let BAe=(()=>{class n{constructor(e,i){this.nodeSelectionService=e,this.store=i,this.node$=this.nodeSelectionService.createNodeObservable(),this.primaryMetricNames$=this.store.select(BR)}calculateBackgroundColor(e){return"heightMetric"===this.metricFor&&e>0?"#b1d8a8":e<0?"#ffcccc":"#e6e6e6"}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(C7),o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-metric-chooser-value"]],inputs:{metricFor:"metricFor"},standalone:!0,features:[o.aNF],decls:2,vars:3,consts:[[3,"metricFor"],[3,"backgroundColor"]],template:function(i,r){if(1&i&&(o.DNE(0,DAe,6,5),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.node$))?0:-1,s)}},dependencies:[zW,nX,Qn],styles:["[_nghost-%COMP%]{display:flex;gap:2px}"]})}}return n})(),OR=(()=>{class n{transform(e,i){if(null==e)return Jw.get(i)??"";const r=e.title?`${e.title} (${i})`:`${i}`;let s=e.description?`\n${e.description}`:"";return s+=e.hintHighValue?`\nHigh Values: ${e.hintHighValue}`:"",s+=e.hintLowValue?`\nLow Values: ${e.hintLowValue}`:"",s.length>0?`${r}:${s}`:r}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=o.EJ8({name:"attributeDescriptorTooltip",type:n,pure:!0,standalone:!0})}}return n})(),kAe=(()=>{class n{transform(e,i){const r=i.toLocaleLowerCase();return e.filter(s=>{let l=s.name;return("complexity"===s.name||"sonar_complexity"===s.name)&&(l+=" (formerly mcc)"),l.toLocaleLowerCase().includes(r)})}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=o.EJ8({name:"filterMetricDataBySearchTerm",type:n,pure:!0,standalone:!0})}}return n})();const RAe=["searchTermInput"],PAe=["matSelect"],OAe=["*"];function NAe(n,t){if(1&n&&o.nrm(0,"i"),2&n){const e=o.XpG(2);o.HbH("fa "+e.icon)}}function LAe(n,t){1&n&&o.EFF(0," (formerly mcc) ")}function UAe(n,t){1&n&&(o.j41(0,"span",11),o.EFF(1),o.k0s()),2&n&&(o.R7$(),o.SpI(" ",t," "))}function VAe(n,t){if(1&n&&(o.j41(0,"mat-option",9),o.nI1(1,"attributeDescriptorTooltip"),o.EFF(2),o.DNE(3,LAe,1,0),o.j41(4,"span",10),o.EFF(5),o.k0s(),o.nrm(6,"br"),o.DNE(7,UAe,2,1,"span",11),o.k0s()),2&n){let e;const i=t.$implicit,r=o.XpG();o.Y8G("value",i.name)("title",o.i5U(1,6,r[i.name],i.name)),o.R7$(2),o.SpI(" ",i.name," "),o.R7$(),o.vxM("complexity"==i.name||"sonar_complexity"==i.name?3:-1),o.R7$(2),o.SpI("(",i.maxValue,")"),o.R7$(2),o.vxM((e=null==r[i.name]?null:r[i.name].description)?7:-1,e)}}function HAe(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-select",3,0),o.bIt("selectionChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleMetricChanged(r.value))})("openedChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleOpenedChanged(r))}),o.j41(2,"mat-select-trigger"),o.DNE(3,NAe,1,2,"i",4),o.EFF(4),o.k0s(),o.j41(5,"mat-form-field",5),o.nrm(6,"i",6),o.j41(7,"input",7,1),o.mxI("ngModelChange",function(r){o.eBV(e);const s=o.XpG();return o.DH7(s.searchTerm,r)||(s.searchTerm=r),o.Njj(r)}),o.bIt("keydown",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleKeyDown(r))}),o.k0s()(),o.j41(9,"div",8),o.Z7z(10,VAe,8,9,"mat-option",9,o.fX1),o.nI1(12,"async"),o.nI1(13,"filterMetricDataBySearchTerm"),o.k0s()()}if(2&n){const e=o.XpG();o.Y8G("value",e.selectedMetricName)("disabled",e.isDisabled),o.R7$(3),o.Y8G("ngIf",e.icon),o.R7$(),o.JRh(e.selectedMetricName),o.R7$(3),o.Y8G("placeholder",e.searchPlaceholder),o.R50("ngModel",e.searchTerm),o.R7$(3),o.Dyx(o.i5U(13,8,o.bMT(12,6,e.metricData$),e.searchTerm))}}function QAe(n,t){if(1&n&&o.nrm(0,"cc-metric-chooser-value",12),2&n){const e=o.XpG(2);o.Y8G("metricFor",e.metricFor)}}function zAe(n,t){1&n&&o.SdG(0)}function GAe(n,t){if(1&n&&o.DNE(0,QAe,1,1,"cc-metric-chooser-value",12)(1,zAe,1,0),2&n){const e=o.XpG();o.vxM(e.metricFor?0:1)}}let U2=(()=>{class n{constructor(e){this.store=e,this.type="node",this.isDisabled=!1,this.searchTerm="",this.attributeDescriptors$=this.store.select(DR),this.hideMetricSum=!1}ngOnInit(){this.metricData$=this.store.select(Aa).pipe((0,$n.T)(e=>"node"===this.type?e.nodeMetricData:e.edgeMetricData))}ngAfterViewInit(){this.matOptions.changes.subscribe(e=>{this.setFirstItemActiveOnSearch(e)})}setFirstItemActiveOnSearch(e){const i=e.filter(l=>l._selected),r=e.filter(l=>l.value.toLowerCase().startsWith(this.searchTerm.toLowerCase())).sort((l,u)=>l.value.localeCompare(u.value)),s=this.searchTerm.trim().length>0;setTimeout(()=>{s&&0===i.length&&0===r.length?this.matSelect._keyManager.setActiveItem(0):s&&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)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-metric-chooser"]],viewQuery:function(i,r){if(1&i&&(o.GBs(RAe,5),o.GBs(PAe,5),o.GBs(gd,5)),2&i){let s;o.mGM(s=o.lsd())&&(r.searchTermInput=s.first),o.mGM(s=o.lsd())&&(r.matSelect=s.first),o.mGM(s=o.lsd())&&(r.matOptions=s)}},hostVars:2,hostBindings:function(i,r){2&i&&o.AVh("hide-metric-value",r.hideMetricSum)},inputs:{metricFor:"metricFor",icon:"icon",selectedMetricName:"selectedMetricName",searchPlaceholder:"searchPlaceholder",handleMetricChanged:"handleMetricChanged",type:"type",isDisabled:"isDisabled"},standalone:!0,features:[o.aNF],ngContentSelectors:OAe,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&&(o.NAR(),o.DNE(0,HAe,14,11,"mat-select",2),o.nI1(1,"async"),o.DNE(2,GAe,2,1)),2&i){let s;o.vxM((s=o.bMT(1,2,r.attributeDescriptors$))?0:-1,s),o.R7$(2),o.vxM(r.hideMetricSum?-1:2)}},dependencies:[t0,Q$,zn,Vu,I$,n0,a2,Kg,ox,lx,gd,BAe,Qn,OR,kAe],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})(),jAe=(()=>{class n{constructor(e){this.store=e,this.distributionMetric$=this.store.select(QW)}handleDistributionMetricChanged(e){this.store.dispatch(M2({value:e}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-distribution-metric-chooser"]],standalone:!0,features:[o.aNF],decls:3,vars:5,consts:[[1,"fa","fa-pie-chart"],[3,"selectedMetricName","searchPlaceholder","handleMetricChanged"]],template:function(i,r){1&i&&(o.nrm(0,"i",0)(1,"cc-metric-chooser",1),o.nI1(2,"async")),2&i&&(o.R7$(),o.Y8G("selectedMetricName",o.bMT(2,3,r.distributionMetric$))("searchPlaceholder","Distribution Metric (highest value)")("handleMetricChanged",r.handleDistributionMetricChanged))},dependencies:[U2,Qn],styles:["[_nghost-%COMP%]{width:210px;display:flex;align-items:center;font-size:12px;gap:6px;margin-left:5px;margin-right:5px}"]})}}return n})();function $Ae(n,t){if(1&n){const e=o.RV6();o.j41(0,"span",7),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.toggleShowAbsoluteValues())}),o.j41(1,"div",8),o.bIt("mouseover",function(){const r=o.eBV(e).$implicit,s=o.XpG();return o.Njj(s.onHoverFileExtensionBar(r.fileExtension))})("mouseleave",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.onUnhoverFileExtensionBar())}),o.EFF(2),o.k0s()()}if(2&n){const e=t.$implicit,i=o.XpG();o.xc7("width",e.relativeMetricValue+"%")("background",e.color),o.R7$(),o.FS9("title",e.fileExtension.toString()+" "+(i.showAbsoluteValues?e.absoluteMetricValue.toFixed(0):e.relativeMetricValue.toFixed(2)+"%")),o.R7$(),o.Lme(" ",e.relativeMetricValue>=e.fileExtension.length/2+1?e.fileExtension:""," ",i.showAbsoluteValues?e.absoluteMetricValue.toLocaleString():e.relativeMetricValue.toFixed(2)+"%"," ")}}function qAe(n,t){if(1&n&&(o.j41(0,"div",6),o.nrm(1,"span",9),o.EFF(2),o.j41(3,"span",10),o.EFF(4),o.k0s()()),2&n){const e=t.$implicit,i=o.XpG();o.R7$(),o.xc7("background",e.color),o.R7$(),o.SpI("",e.fileExtension," : "),o.R7$(2),o.SpI(" ",i.showAbsoluteValues?e.absoluteMetricValue.toLocaleString():e.relativeMetricValue.toFixed(2)+"%"," ")}}let WAe=(()=>{class n{constructor(e,i){this.store=e,this.threeSceneService=i,this.showAbsoluteValues=!1,this.showDetails=!1,this.store.select(eAe).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 s=HW.estimateFileExtension(r.node.name);(s===e||"other"===e&&!i.has(s))&&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)(o.rXU(Yt),o.rXU(Rd))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-file-extension-bar"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0),o.nrm(1,"cc-distribution-metric-chooser",1),o.j41(2,"div",2),o.Z7z(3,$Ae,3,7,"span",3,o.fX1),o.k0s(),o.j41(5,"button",4),o.bIt("click",function(){return r.toggleShowDetails()}),o.nrm(6,"i"),o.k0s()(),o.j41(7,"div",5),o.bIt("click",function(){return r.toggleShowAbsoluteValues()}),o.Z7z(8,qAe,5,4,"div",6,o.fX1),o.k0s()),2&i&&(o.R7$(3),o.Dyx(r.metricDistribution),o.R7$(3),o.ZvI("fa ",r.showDetails?"fa-caret-up":"fa-caret-down",""),o.R7$(),o.AVh("cc-hidden",!r.showDetails),o.R7$(),o.Dyx(r.metricDistribution))},dependencies:[jAe],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})();const iX=sn(Ro,n=>n.isSearchPanelPinned),XAe=["*"];let M7=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-ribbon-bar-panel-settings"]],standalone:!0,features:[o.aNF],ngContentSelectors:XAe,decls:1,vars:0,template:function(i,r){1&i&&(o.NAR(),o.SdG(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 KAe=["toggle"],YAe=["toggleHeader"],ZAe=[[["cc-ribbon-bar-panel-settings"]],[["",8,"toggleheader"]],"*"],JAe=["cc-ribbon-bar-panel-settings",".toggleHeader","*"];function eme(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",6,0),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.toggleSettings())}),o.SdG(2,1),o.k0s()}}function tme(n,t){1&n&&(o.j41(0,"div",4),o.SdG(1,2),o.k0s())}function nme(n,t){if(1&n&&o.nrm(0,"i"),2&n){const e=o.XpG(2);o.HbH("fa fa-angle-"+(e.isExpanded?"up":"down"))}}function ime(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",7,1),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.toggleSettings())}),o.EFF(2),o.DNE(3,nme,1,2,"i",8),o.k0s()}if(2&n){const e=o.XpG();o.R7$(2),o.SpI(" ",e.title," "),o.R7$(),o.vxM(e.hasSettings?3:-1)}}let E7=(()=>{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 o.bkB}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"),s=this.viewReference.element.nativeElement.contains(i),l=!!r&&r.contains(i),u=this.settingsRef?.nativeElement?.contains(i)??!1,f=this.toggleSettingsRef.nativeElement.contains(i),p=this.toggleHeaderRef?.nativeElement.contains(i)??!1;!l&&!u&&!f&&!p&&(!s||this.collapseOnPanelClick)&&(this.isExpanded=!1)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.c1b))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-ribbon-bar-panel"]],contentQueries:function(i,r,s){if(1&i&&o.wni(s,M7,5,o.aKT),2&i){let l;o.mGM(l=o.lsd())&&(r.settingsRef=l.first)}},viewQuery:function(i,r){if(1&i&&(o.GBs(KAe,5),o.GBs(YAe,5)),2&i){let s;o.mGM(s=o.lsd())&&(r.toggleSettingsRef=s.first),o.mGM(s=o.lsd())&&(r.toggleHeaderRef=s.first)}},hostVars:6,hostBindings:function(i,r){2&i&&o.AVh("separator",r.separator)("expanded",r.isExpanded)("expandable",r.hasSettings)},inputs:{title:"title",collapseOnPanelClick:"collapseOnPanelClick",separator:"separator",isHeaderExpandable:"isHeaderExpandable",isPinned:"isPinned"},outputs:{onToggleSettings:"onToggleSettings"},standalone:!0,features:[o.aNF],ngContentSelectors:JAe,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&&(o.NAR(ZAe),o.j41(0,"mat-card",2)(1,"div",3),o.DNE(2,eme,3,0,"div",4)(3,tme,2,0,"div",4)(4,ime,4,2,"div",5),o.k0s(),o.SdG(5),o.k0s()),2&i&&(o.R7$(2),o.vxM(r.isHeaderExpandable?2:3),o.R7$(2),o.vxM(r.title||r.hasSettings?4:-1))},dependencies:[c2],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})();const S7=sn(Xw,n=>""===n||"!"===n||","===n),NR=n=>(n=n.trim()).startsWith("*")||n.endsWith("*")||n.startsWith("/")||n.startsWith("./")||n.startsWith('"')||n.endsWith('"')||n.startsWith("!")?n:`*${n}*`,rX=(n,t,e)=>{const i=e.trim().split(",");if(e.trim().startsWith("!")){i[0]=i[0].slice(1);for(const r of i){const s=`!${NR(r)}`;if(n.some(l=>s===l.path&&t===l.type))return!0}return!1}for(const r of i)if(n.some(s=>NR(r)===s.path&&t===s.type))return!0;return!1},rme=sn(Xw,S7,sf,(n,t,e)=>!!t||rX(e,"flatten",n)),ome=sn(Xw,S7,sf,(n,t,e)=>!!t||rX(e,"exclude",n)),sme=(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:`!${NR(r)}`,type:n})}else for(let r of i)if(r.length>0){if(r.startsWith("!"))break;r=NR(r),e.push({path:r,type:n})}return e},ame=(n,t,e)=>{const i=[...t,...e];for(const{file:r}of n)if(!lme(r,i))return!1;return!0},lme=(n,t)=>{for(const e of lo(n.map))if(cme(e,t))return!1;return!0},cme=(n,t)=>Po(n)&&n.data.path&&!hu(n.data.path,t,"exclude");let oX=(()=>{class n{constructor(e,i,r){this.actions$=e,this.store=i,this.dialog=r,this.doBlacklistItemsResultInEmptyMap$=this.actions$.pipe(ff(t6),hl(this.store.select(Qc),this.store.select(sf)),(0,$n.T)(([s,l,u])=>({items:s.items,resultsInEmptyMap:ame(l,u,s.items)})),q3()),this.showErrorDialogIfBlacklistItemsResultInEmptyMap$=os(()=>this.doBlacklistItemsResultInEmptyMap$.pipe(ur(s=>s.resultsInEmptyMap),ao(()=>{this.dialog.open(uu,{data:{title:"Blacklist Error",message:"Excluding all buildings is not possible."}})})),{dispatch:!1}),this.addBlacklistItems$=os(()=>this.doBlacklistItemsResultInEmptyMap$.pipe(ur(s=>!s.resultsInEmptyMap),(0,$n.T)(s=>uR({items:s.items}))))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(nA),o.KVO(Yt),o.KVO(Cs))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),ume=(()=>{class n{constructor(e,i,r){this.actions$=e,this.store=i,this.addBlacklistItemsIfNotResultsInEmptyMapEffect=r,this.searchPattern2BlacklistItems$=this.actions$.pipe(ff("BlacklistSearchPatternAction"),hl(this.store.select(Xw)),(0,$n.T)(([s,l])=>({type:s.action.type,blacklistItems:sme(s.action.type,l)})),q3()),this.flattenSearchPattern$=os(()=>this.searchPattern2BlacklistItems$.pipe(ur(s=>"flatten"===s.type),ao(s=>{this.store.dispatch(uR({items:s.blacklistItems})),this.store.dispatch(s0({value:""}))})),{dispatch:!1}),this.excludeSearchPattern$=os(()=>this.searchPattern2BlacklistItems$.pipe(ur(s=>"exclude"===s.type),ao(()=>{this.addBlacklistItemsIfNotResultsInEmptyMapEffect.doBlacklistItemsResultInEmptyMap$.pipe(ms(1),ur(s=>!s.resultsInEmptyMap),ao(()=>{this.store.dispatch(s0({value:""}))})).subscribe()}),(0,$n.T)(s=>t6({items:s.blacklistItems}))))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(nA),o.KVO(Yt),o.KVO(oX))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),T7=(()=>{class n{constructor(){this._vertical=!1,this._inset=!1}get vertical(){return this._vertical}set vertical(e){this._vertical=mi(e)}get inset(){return this._inset}set inset(e){this._inset=mi(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,r){2&i&&(o.BMQ("aria-orientation",r.vertical?"vertical":"horizontal"),o.AVh("mat-divider-vertical",r.vertical)("mat-divider-horizontal",!r.vertical)("mat-divider-inset",r.inset))},inputs:{vertical:"vertical",inset:"inset"},standalone:!0,features:[o.aNF],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, var(--mat-app-outline));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, var(--mat-app-outline));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})();function hme(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",12),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.resetSearchPattern())}),o.nrm(1,"i",13),o.k0s()}}let fme=(()=>{class n{constructor(e){this.store=e,this.searchPattern$=this.store.select(Xw),this.isSearchPatternEmpty$=this.store.select(S7),this.isFlattenPatternDisabled$=this.store.select(rme),this.isExcludePatternDisabled$=this.store.select(ome),this.setSearchPatternDebounced=pf(i=>this.setSearchPattern(i),400)}setSearchPattern(e){this.store.dispatch(s0({value:e.target.value}))}resetSearchPattern(){this.store.dispatch(s0({value:""}))}blacklistSearchPattern(e){this.store.dispatch((n=>({type:"BlacklistSearchPatternAction",action:{type:n}}))(e))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-search-bar"]],standalone:!0,features:[o.aNF],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 s=o.RV6();o.nrm(0,"i",1),o.j41(1,"div",2)(2,"input",3),o.nI1(3,"async"),o.bIt("input",function(u){return o.eBV(s),o.Njj(r.setSearchPatternDebounced(u))}),o.k0s(),o.DNE(4,hme,2,0,"button",4),o.nI1(5,"async"),o.k0s(),o.j41(6,"button",5),o.nrm(7,"i",6),o.k0s(),o.j41(8,"mat-menu",null,0)(10,"button",7),o.EFF(11,"Add Pattern to Blacklist"),o.k0s(),o.nrm(12,"mat-divider"),o.j41(13,"button",8),o.nI1(14,"async"),o.bIt("click",function(){return o.eBV(s),o.Njj(r.blacklistSearchPattern("flatten"))}),o.nrm(15,"i",9),o.EFF(16," Flatten "),o.k0s(),o.j41(17,"button",10),o.nI1(18,"async"),o.bIt("click",function(){return o.eBV(s),o.Njj(r.blacklistSearchPattern("exclude"))}),o.nrm(19,"i",11),o.EFF(20," Exclude "),o.k0s()()}if(2&i){const s=o.sdS(9);o.R7$(2),o.Y8G("value",o.bMT(3,5,r.searchPattern$)),o.R7$(2),o.vxM(o.bMT(5,7,r.isSearchPatternEmpty$)?-1:4),o.R7$(2),o.Y8G("matMenuTriggerFor",s),o.R7$(7),o.Y8G("disabled",o.bMT(14,9,r.isFlattenPatternDisabled$)),o.R7$(4),o.Y8G("disabled",o.bMT(18,11,r.isExcludePatternDisabled$))}},dependencies:[dx,uf,Z3,T7,Qn],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 pme=sn(sf,n=>0===n.length),Ame=["button"],mme=["*"];function gme(n,t){if(1&n&&o.nrm(0,"mat-pseudo-checkbox",3),2&n){const e=o.XpG();o.Y8G("disabled",e.disabled)}}function _me(n,t){if(1&n&&o.nrm(0,"mat-pseudo-checkbox",3),2&n){const e=o.XpG();o.Y8G("disabled",e.disabled)}}const sX=new o.nKC("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:function bme(){return{hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1,disabledInteractive:!1}}}),aX=new o.nKC("MatButtonToggleGroup"),vme={provide:ma,useExisting:(0,o.Rfq)(()=>I7),multi:!0};let lX=0;class cX{constructor(t,e){this.source=t,this.value=e}}let I7=(()=>{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 disabledInteractive(){return this._disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e,this._markButtonsForCheck()}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}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,r){this._changeDetector=e,this._dir=r,this._multiple=!1,this._disabled=!1,this._disabledInteractive=!1,this._controlValueAccessorChangeFn=()=>{},this._onTouched=()=>{},this._name="mat-button-toggle-group-"+lX++,this.valueChange=new o.bkB,this.change=new o.bkB,this.appearance=i&&i.appearance?i.appearance:"standard",this.hideSingleSelectionIndicator=i?.hideSingleSelectionIndicator??!1,this.hideMultipleSelectionIndicator=i?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new X3(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(e=>e.checked)),this.multiple||this._initializeTabIndex()}writeValue(e){this.value=e,this._changeDetector.markForCheck()}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_keydown(e){if(this.multiple||this.disabled)return;const r=e.target.id,s=this._buttonToggles.toArray().findIndex(u=>u.buttonId===r);let l=null;switch(e.keyCode){case 32:case 13:l=this._buttonToggles.get(s)||null;break;case 38:l=this._getNextButton(s,-1);break;case 37:l=this._getNextButton(s,"ltr"===this.dir?-1:1);break;case 40:l=this._getNextButton(s,1);break;case 39:l=this._getNextButton(s,"ltr"===this.dir?1:-1);break;default:return}l&&(e.preventDefault(),l._onButtonClick(),l.focus())}_emitChangeEvent(e){const i=new cX(e,this.value);this._rawValue=i.value,this._controlValueAccessorChangeFn(i.value),this.change.emit(i)}_syncButtonToggle(e,i,r=!1,s=!1){!this.multiple&&this.selected&&!e.checked&&(this.selected.checked=!1),this._selectionModel?i?this._selectionModel.select(e):this._selectionModel.deselect(e):s=!0,s?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)}_initializeTabIndex(){if(this._buttonToggles.forEach(e=>{e.tabIndex=-1}),this.selected)this.selected.tabIndex=0;else for(let e=0;ethis._selectValue(i))):(this._clearSelection(),this._selectValue(e)))}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(e=>{e.checked=!1,this.multiple||(e.tabIndex=-1)})}_selectValue(e){const i=this._buttonToggles.find(r=>null!=r.value&&r.value===e);i&&(i.checked=!0,this._selectionModel.select(i),this.multiple||(i.tabIndex=0))}_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)(o.rXU(o.gRc),o.rXU(sX,8),o.rXU(Zs,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["mat-button-toggle-group"]],contentQueries:function(i,r,s){if(1&i&&o.wni(s,LR,5),2&i){let l;o.mGM(l=o.lsd())&&(r._buttonToggles=l)}},hostAttrs:[1,"mat-button-toggle-group"],hostVars:6,hostBindings:function(i,r){1&i&&o.bIt("keydown",function(l){return r._keydown(l)}),2&i&&(o.BMQ("role",r.multiple?"group":"radiogroup")("aria-disabled",r.disabled),o.AVh("mat-button-toggle-vertical",r.vertical)("mat-button-toggle-group-appearance-standard","standard"===r.appearance))},inputs:{appearance:"appearance",name:"name",vertical:[2,"vertical","vertical",o.L39],value:"value",multiple:[2,"multiple","multiple",o.L39],disabled:[2,"disabled","disabled",o.L39],disabledInteractive:[2,"disabledInteractive","disabledInteractive",o.L39],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",o.L39],hideMultipleSelectionIndicator:[2,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",o.L39]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],standalone:!0,features:[o.Jv_([vme,{provide:aX,useExisting:n}]),o.GFd]})}}return n})(),LR=(()=>{class n{get buttonId(){return`${this.id}-button`}get tabIndex(){return this._tabIndex}set tabIndex(e){this._tabIndex=e,this._markForCheck()}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}get disabledInteractive(){return this._disabledInteractive||null!==this.buttonToggleGroup&&this.buttonToggleGroup.disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e}constructor(e,i,r,s,l,u){this._changeDetectorRef=i,this._elementRef=r,this._focusMonitor=s,this._checked=!1,this.ariaLabelledby=null,this._disabled=!1,this.change=new o.bkB;const f=Number(l);this.tabIndex=f||0===f?f:null,this.buttonToggleGroup=e,this.appearance=u&&u.appearance?u.appearance:"standard",this.disabledInteractive=u?.disabledInteractive??!1}ngOnInit(){const e=this.buttonToggleGroup;this.id=this.id||"mat-button-toggle-"+lX++,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(){if(this.disabled)return;const e=!!this.isSingleSelector()||!this._checked;if(e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.isSingleSelector()){const i=this.buttonToggleGroup._buttonToggles.find(r=>0===r.tabIndex);i&&(i.tabIndex=-1),this.tabIndex=0}this.change.emit(new cX(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)(o.rXU(aX,8),o.rXU(o.gRc),o.rXU(o.aKT),o.rXU(Zl),o.kS0("tabindex"),o.rXU(sX,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-button-toggle"]],viewQuery:function(i,r){if(1&i&&o.GBs(Ame,5),2&i){let s;o.mGM(s=o.lsd())&&(r._buttonElement=s.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:14,hostBindings:function(i,r){1&i&&o.bIt("focus",function(){return r.focus()}),2&i&&(o.BMQ("aria-label",null)("aria-labelledby",null)("id",r.id)("name",null),o.AVh("mat-button-toggle-standalone",!r.buttonToggleGroup)("mat-button-toggle-checked",r.checked)("mat-button-toggle-disabled",r.disabled)("mat-button-toggle-disabled-interactive",r.disabledInteractive)("mat-button-toggle-appearance-standard","standard"===r.appearance))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[2,"disableRipple","disableRipple",o.L39],appearance:"appearance",checked:[2,"checked","checked",o.L39],disabled:[2,"disabled","disabled",o.L39],disabledInteractive:[2,"disabledInteractive","disabledInteractive",o.L39]},outputs:{change:"change"},exportAs:["matButtonToggle"],standalone:!0,features:[o.GFd,o.aNF],ngContentSelectors:mme,decls:8,vars:14,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 s=o.RV6();o.NAR(),o.j41(0,"button",1,0),o.bIt("click",function(){return o.eBV(s),o.Njj(r._onButtonClick())}),o.j41(2,"span",2),o.DNE(3,gme,1,1,"mat-pseudo-checkbox",3)(4,_me,1,1,"mat-pseudo-checkbox",3),o.SdG(5),o.k0s()(),o.nrm(6,"span",4)(7,"span",5)}if(2&i){const s=o.sdS(1);o.Y8G("id",r.buttonId)("disabled",r.disabled&&!r.disabledInteractive||null),o.BMQ("role",r.isSingleSelector()?"radio":"button")("tabindex",r.disabled&&!r.disabledInteractive?-1:r.tabIndex)("aria-pressed",r.isSingleSelector()?null:r.checked)("aria-checked",r.isSingleSelector()?r.checked:null)("name",r._getButtonName())("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby)("aria-disabled",r.disabled&&r.disabledInteractive?"true":null),o.R7$(3),o.vxM(r.buttonToggleGroup&&r.checked&&!r.buttonToggleGroup.multiple&&!r.buttonToggleGroup.hideSingleSelectionIndicator?3:-1),o.R7$(),o.vxM(r.buttonToggleGroup&&r.checked&&r.buttonToggleGroup.multiple&&!r.buttonToggleGroup.hideMultipleSelectionIndicator?4:-1),o.R7$(3),o.Y8G("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)}},dependencies:[gl,TI],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, var(--mat-app-corner-full));border:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-app-outline))}.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, var(--mat-app-on-secondary-container))}.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{pointer-events:none;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-disabled-interactive{pointer-events:auto}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color, var(--mat-app-on-surface));background-color:var(--mat-standard-button-toggle-background-color);font-family:var(--mat-standard-button-toggle-label-text-font, var(--mat-app-label-large-font));font-size:var(--mat-standard-button-toggle-label-text-size, var(--mat-app-label-large-size));line-height:var(--mat-standard-button-toggle-label-text-line-height, var(--mat-app-label-large-line-height));font-weight:var(--mat-standard-button-toggle-label-text-weight, var(--mat-app-label-large-weight));letter-spacing:var(--mat-standard-button-toggle-label-text-tracking, var(--mat-app-label-large-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, var(--mat-app-outline))}[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, var(--mat-app-outline))}.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, var(--mat-app-outline))}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-app-on-secondary-container));background-color:var(--mat-standard-button-toggle-selected-state-background-color, var(--mat-app-secondary-container))}.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, var(--mat-app-on-surface))}.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}@media(hover: none){.mat-button-toggle-appearance-standard: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, var(--mat-app-corner-full))}.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, var(--mat-app-corner-full));border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-app-corner-full))}.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, var(--mat-app-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-app-corner-full))}"],encapsulation:2,changeDetection:0})}}return n})(),yme=(()=>{class n{constructor(e){this.hideBlacklistItemsIndicator$=e.select(pme)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-search-panel-mode-selector"]],inputs:{searchPanelMode:"searchPanelMode",updateSearchPanelMode:"updateSearchPanelMode"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-button-toggle",0),o.bIt("click",function(){return r.updateSearchPanelMode("blacklist")}),o.nrm(1,"i",1)(2,"div",2),o.nI1(3,"async"),o.k0s()),2&i&&(o.R7$(2),o.Y8G("hidden",o.bMT(3,1,r.hideBlacklistItemsIndicator$)))},dependencies:[LR,Qn],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 dX=n=>sn(sf,t=>wme(n,t)),wme=(n,t)=>{const e=t.filter(i=>i.type===n);return e.sort((i,r)=>i.path.localeCompare(r.path)),e};let Cme=(()=>{class n{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Mme=(()=>{class n{constructor(e){this._mutationObserverFactory=e,this._observedElements=new Map,this._ngZone=(0,o.WQX)(o.SKi)}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=Ci(e);return new Xr.c(r=>{const l=this._observeElement(i).pipe((0,$n.T)(u=>u.filter(f=>!function xme(n){if("characterData"===n.type&&n.target instanceof Comment)return!0;if("childList"===n.type){for(let t=0;t!!u.length)).subscribe(u=>{this._ngZone.run(()=>{r.next(u)})});return()=>{l.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new Ai.B,r=this._mutationObserverFactory.create(s=>i.next(s));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)(o.KVO(Cme))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),uX=(()=>{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=Gn(e),this._subscribe()}constructor(e,i){this._contentObserver=e,this._elementRef=i,this.event=new o.bkB,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._currentSubscription=(this.debounce?e.pipe(M_(this.debounce)):e).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Mme),o.rXU(o.aKT))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",o.L39],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"],standalone:!0,features:[o.GFd]})}}return n})();const hX=["*"],pX=["unscopedContent"],Eme=["text"],Sme=[[["","matListItemAvatar",""],["","matListItemIcon",""]],[["","matListItemTitle",""]],[["","matListItemLine",""]],"*",[["","matListItemMeta",""]],[["mat-divider"]]],Tme=["[matListItemAvatar],[matListItemIcon]","[matListItemTitle]","[matListItemLine]","*","[matListItemMeta]","mat-divider"],AX=new o.nKC("ListOption");let mX=(()=>{class n{constructor(e){this._elementRef=e}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","matListItemTitle",""]],hostAttrs:[1,"mat-mdc-list-item-title","mdc-list-item__primary-text"],standalone:!0})}}return n})(),gX=(()=>{class n{constructor(e){this._elementRef=e}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","matListItemLine",""]],hostAttrs:[1,"mat-mdc-list-item-line","mdc-list-item__secondary-text"],standalone:!0})}}return n})(),$me=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","matListItemMeta",""]],hostAttrs:[1,"mat-mdc-list-item-meta","mdc-list-item__end"],standalone:!0})}}return n})(),_X=(()=>{class n{constructor(e){this._listOption=e}_isAlignedAtStart(){return!this._listOption||"after"===this._listOption?._getTogglePosition()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(AX,8))}}static{this.\u0275dir=o.FsC({type:n,hostVars:4,hostBindings:function(i,r){2&i&&o.AVh("mdc-list-item__start",r._isAlignedAtStart())("mdc-list-item__end",!r._isAlignedAtStart())},standalone:!0})}}return n})(),qme=(()=>{class n extends _X{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=o.xGo(n)))(r||n)}})()}static{this.\u0275dir=o.FsC({type:n,selectors:[["","matListItemAvatar",""]],hostAttrs:[1,"mat-mdc-list-item-avatar"],standalone:!0,features:[o.Vt3]})}}return n})(),Wme=(()=>{class n extends _X{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=o.xGo(n)))(r||n)}})()}static{this.\u0275dir=o.FsC({type:n,selectors:[["","matListItemIcon",""]],hostAttrs:[1,"mat-mdc-list-item-icon"],standalone:!0,features:[o.Vt3]})}}return n})();const Xme=new o.nKC("MAT_LIST_CONFIG");let Cx=(()=>{class n{constructor(){this._isNonInteractive=!0,this._disableRipple=!1,this._disabled=!1,this._defaultOptions=(0,o.WQX)(Xme,{optional:!0})}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=mi(e)}get disabled(){return this._disabled}set disabled(e){this._disabled=mi(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,hostVars:1,hostBindings:function(i,r){2&i&&o.BMQ("aria-disabled",r.disabled)},inputs:{disableRipple:"disableRipple",disabled:"disabled"},standalone:!0})}}return n})(),F7=(()=>{class n{set lines(e){this._explicitLines=Gn(e,null),this._updateItemLines(!1)}get disableRipple(){return this.disabled||this._disableRipple||this._noopAnimations||!!this._listBase?.disableRipple}set disableRipple(e){this._disableRipple=mi(e)}get disabled(){return this._disabled||!!this._listBase?.disabled}set disabled(e){this._disabled=mi(e)}get rippleDisabled(){return this.disableRipple||!!this.rippleConfig.disabled}constructor(e,i,r,s,l,u){this._elementRef=e,this._ngZone=i,this._listBase=r,this._platform=s,this._explicitLines=null,this._disableRipple=!1,this._disabled=!1,this._subscriptions=new un.yU,this._rippleRenderer=null,this._hasUnscopedTextContent=!1,this.rippleConfig=l||{},this._hostElement=this._elementRef.nativeElement,this._isButtonElement="button"===this._hostElement.nodeName.toLowerCase(),this._noopAnimations="NoopAnimations"===u,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 Nm(this,this._ngZone,this._hostElement,this._platform),this._rippleRenderer.setupTriggerEvents(this._hostElement)}_monitorProjectedLinesAndTitle(){this._ngZone.runOutsideAngular(()=>{this._subscriptions.add(Wl(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 s=0===this._titles.length&&1===i;r.classList.toggle("mdc-list-item__primary-text",s),r.classList.toggle("mdc-list-item__secondary-text",!s)}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)(o.rXU(o.aKT),o.rXU(o.SKi),o.rXU(Cx,8),o.rXU(Fo),o.rXU(Lm,8),o.rXU(o.bc$,8))}}static{this.\u0275dir=o.FsC({type:n,contentQueries:function(i,r,s){if(1&i&&(o.wni(s,qme,4),o.wni(s,Wme,4)),2&i){let l;o.mGM(l=o.lsd())&&(r._avatars=l),o.mGM(l=o.lsd())&&(r._icons=l)}},hostVars:4,hostBindings:function(i,r){2&i&&(o.BMQ("aria-disabled",r.disabled)("disabled",r._isButtonElement&&r.disabled||null),o.AVh("mdc-list-item--disabled",r.disabled))},inputs:{lines:"lines",disableRipple:"disableRipple",disabled:"disabled"},standalone:!0})}}return n})(),bX=(()=>{class n extends Cx{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=o.xGo(n)))(r||n)}})()}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-list"]],hostAttrs:[1,"mat-mdc-list","mat-mdc-list-base","mdc-list"],exportAs:["matList"],standalone:!0,features:[o.Jv_([{provide:Cx,useExisting:n}]),o.Vt3,o.aNF],ngContentSelectors:hX,decls:1,vars:0,template:function(i,r){1&i&&(o.NAR(),o.SdG(0))},styles:['.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item{display:flex;position:relative;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer;padding-left:16px;padding-right:16px;background-color:var(--mdc-list-list-item-container-color);border-radius:var(--mdc-list-list-item-container-shape, var(--mat-app-corner-none))}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item:focus{outline:0}.mdc-list-item.mdc-list-item--disabled{cursor:auto}.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-one-line .mdc-list-item__start{align-self:center;margin-top:0}.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{height:var(--mdc-list-list-item-two-line-container-height)}.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-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height)}.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-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--selected::before,.mdc-list-item.mdc-list-item--selected:focus::before,.mdc-list-item:not(.mdc-list-item--selected):focus::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}.cdk-high-contrast-active .mdc-list-item.mdc-list-item--selected::before,.cdk-high-contrast-active .mdc-list-item.mdc-list-item--selected:focus::before,.cdk-high-contrast-active .mdc-list-item:not(.mdc-list-item--selected):focus::before{border-color:CanvasText}.mdc-list-item.mdc-list-item--selected:focus::before,.mdc-list-item.mdc-list-item--selected::before{border-width:3px;border-style:double}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color, var(--mat-app-on-surface-variant));width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size);margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:32px;margin-right:16px}.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-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size);height:var(--mdc-list-list-item-leading-avatar-size);margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item--with-leading-avatar .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font, var(--mat-app-label-small-font));line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height, var(--mat-app-label-small-line-height));font-size:var(--mdc-list-list-item-trailing-supporting-text-size, var(--mat-app-label-small-size));font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight, var(--mat-app-label-small-weight));letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking, var(--mat-app-label-small-tracking))}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color, var(--mat-app-on-surface-variant));width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color, var(--mat-app-on-surface-variant))}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color, var(--mat-app-primary))}.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__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:var(--mdc-list-list-item-label-text-color, var(--mat-app-on-surface));font-family:var(--mdc-list-list-item-label-text-font, var(--mat-app-body-large-font));line-height:var(--mdc-list-list-item-label-text-line-height, var(--mat-app-body-large-line-height));font-size:var(--mdc-list-list-item-label-text-size, var(--mat-app-body-large-size));font-weight:var(--mdc-list-list-item-label-text-weight, var(--mat-app-body-large-weight));letter-spacing:var(--mdc-list-list-item-label-text-tracking, var(--mat-app-body-large-tracking))}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color, var(--mat-app-on-surface))}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color, var(--mat-app-on-surface))}.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;color:var(--mdc-list-list-item-supporting-text-color, var(--mat-app-on-surface-variant));font-family:var(--mdc-list-list-item-supporting-text-font, var(--mat-app-body-medium-font));line-height:var(--mdc-list-list-item-supporting-text-line-height, var(--mat-app-body-medium-line-height));font-size:var(--mdc-list-list-item-supporting-text-size, var(--mat-app-body-medium-size));font-weight:var(--mdc-list-list-item-supporting-text-weight, var(--mat-app-body-medium-weight));letter-spacing:var(--mdc-list-list-item-supporting-text-tracking, var(--mat-app-body-medium-tracking))}.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--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:16px}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:16px;padding-right:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.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-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.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-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.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-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.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-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.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-trailing-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:0;padding-right:0}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-webkit-user-select:none;user-select:none;margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;line-height:normal;align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before,.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-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start,.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-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-left:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-right:0}.mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end,.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-group__subheader{margin:.75rem 16px}.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{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, var(--mat-app-on-surface));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, var(--mat-app-on-surface));opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity)}.mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing,[dir=rtl] .mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing{padding-left:0;padding-right:0}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color, var(--mat-app-on-surface))}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color, var(--mat-app-on-surface));opacity:var(--mdc-list-list-item-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color, var(--mat-app-on-surface));opacity:var(--mdc-list-list-item-disabled-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color, var(--mat-app-on-surface));opacity:var(--mdc-list-list-item-focus-state-layer-opacity, var(--mat-app-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, var(--mat-app-corner-full));background-color:var(--mdc-list-list-item-leading-avatar-color, var(--mat-app-primary-container))}.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)}.mat-mdc-nav-list .mat-mdc-list-item{border-radius:var(--mat-list-active-indicator-shape, var(--mat-app-corner-full));--mat-mdc-focus-indicator-border-radius:var(--mat-list-active-indicator-shape, var(--mat-app-corner-full))}.mat-mdc-nav-list .mat-mdc-list-item.mdc-list-item--activated{background-color:var(--mat-list-active-indicator-color, var(--mat-app-secondary-container))}'],encapsulation:2,changeDetection:0})}}return n})(),vX=(()=>{class n extends F7{get activated(){return this._activated}set activated(e){this._activated=mi(e)}constructor(e,i,r,s,l,u){super(e,i,r,s,l,u),this._activated=!1}_getAriaCurrent(){return"A"===this._hostElement.nodeName&&this._activated?"page":null}_hasBothLeadingAndTrailing(){return 0!==this._meta.length&&(0!==this._avatars.length||0!==this._icons.length)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT),o.rXU(o.SKi),o.rXU(Cx,8),o.rXU(Fo),o.rXU(Lm,8),o.rXU(o.bc$,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(i,r,s){if(1&i&&(o.wni(s,gX,5),o.wni(s,mX,5),o.wni(s,$me,5)),2&i){let l;o.mGM(l=o.lsd())&&(r._lines=l),o.mGM(l=o.lsd())&&(r._titles=l),o.mGM(l=o.lsd())&&(r._meta=l)}},viewQuery:function(i,r){if(1&i&&(o.GBs(pX,5),o.GBs(Eme,5)),2&i){let s;o.mGM(s=o.lsd())&&(r._unscopedContent=s.first),o.mGM(s=o.lsd())&&(r._itemText=s.first)}},hostAttrs:[1,"mat-mdc-list-item","mdc-list-item"],hostVars:13,hostBindings:function(i,r){2&i&&(o.BMQ("aria-current",r._getAriaCurrent()),o.AVh("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-mdc-list-item-both-leading-and-trailing",r._hasBothLeadingAndTrailing())("_mat-animation-noopable",r._noopAnimations))},inputs:{activated:"activated"},exportAs:["matListItem"],standalone:!0,features:[o.Vt3,o.aNF],ngContentSelectors:Tme,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 s=o.RV6();o.NAR(Sme),o.SdG(0),o.j41(1,"span",1),o.SdG(2,1),o.SdG(3,2),o.j41(4,"span",2,0),o.bIt("cdkObserveContent",function(){return o.eBV(s),o.Njj(r._updateItemLines(!0))}),o.SdG(6,3),o.k0s()(),o.SdG(7,4),o.SdG(8,5),o.nrm(9,"div",3)}},dependencies:[uX],encapsulation:2,changeDetection:0})}}return n})();function ege(n,t){1&n&&(o.j41(0,"mat-list-item"),o.EFF(1,"Add pattern via search or node context-menu"),o.k0s())}function tge(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-list-item",4)(1,"button",5),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG(2);return o.Njj(s.removeBlacklistEntry(r))}),o.nrm(2,"em",6),o.EFF(3),o.k0s()()}if(2&n){const e=t.$implicit;o.Y8G("title",e.path),o.R7$(3),o.SpI(" ",e.path," ")}}function nge(n,t){if(1&n&&(o.j41(0,"div"),o.DNE(1,ege,2,0,"mat-list-item"),o.Z7z(2,tge,4,2,"mat-list-item",4,o.fX1),o.k0s()),2&n){const e=t;o.R7$(),o.vxM(0===e.length?1:-1),o.R7$(),o.Dyx(e)}}function ige(n,t){1&n&&(o.j41(0,"mat-list-item"),o.EFF(1,"Add pattern via search or node context-menu"),o.k0s())}function rge(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-list-item",4)(1,"button",5),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG(2);return o.Njj(s.removeBlacklistEntry(r))}),o.nrm(2,"em",6),o.EFF(3),o.k0s()()}if(2&n){const e=t.$implicit;o.Y8G("title",e.path),o.R7$(3),o.SpI(" ",e.path," ")}}function oge(n,t){if(1&n&&(o.j41(0,"div"),o.DNE(1,ige,2,0,"mat-list-item"),o.Z7z(2,rge,4,2,"mat-list-item",4,o.fX1),o.k0s()),2&n){const e=t;o.R7$(),o.vxM(0===e.length?1:-1),o.R7$(),o.Dyx(e)}}let sge=(()=>{class n{constructor(e){this.store=e,this.flattenedItems$=this.store.select(dX("flatten")),this.excludedItems$=this.store.select(dX("exclude"))}removeBlacklistEntry(e){this.store.dispatch(hR({item:e}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-blacklist-panel"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-list",0)(1,"div")(2,"h3",1),o.EFF(3,"Flattened"),o.k0s(),o.nrm(4,"em",2),o.k0s(),o.DNE(5,nge,4,1,"div"),o.nI1(6,"async"),o.k0s(),o.j41(7,"mat-list",0)(8,"div")(9,"h3",1),o.EFF(10,"Excluded"),o.k0s(),o.nrm(11,"em",3),o.k0s(),o.DNE(12,oge,4,1,"div"),o.nI1(13,"async"),o.k0s()),2&i){let s,l;o.R7$(5),o.vxM((s=o.bMT(6,2,r.flattenedItems$))?5:-1,s),o.R7$(7),o.vxM((l=o.bMT(13,4,r.excludedItems$))?12:-1,l)}},dependencies:[bX,h7,vX,Jo,Qn],styles:["[_nghost-%COMP%] .cc-header-text[_ngcontent-%COMP%]{display:inline-block;margin:0 .25em 0 0}"]})}}return n})();const UR=(n,t,e)=>t.reduce((i,r)=>hu(r.path,e,n)?i+1:i,0),age=sn(gG,sf,FR,(n,t,e)=>{const i=n.filter(r=>Po(r));return{fileCount:`${i.length}/${e.length}`,flattenCount:`${UR("flatten",i,t)}/${UR("flatten",e,t)}`,excludeCount:`${UR("exclude",i,t)}/${UR("exclude",e,t)}`}});let lge=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.isSearchPanelPinned$=this.store.select(iX)}onClick(){this.store.dispatch($6())}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-thumb-tack-button"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"button",0),o.nI1(1,"async"),o.bIt("click",function(){return r.onClick()}),o.nrm(2,"i",1),o.k0s()),2&i&&o.Y8G("ngClass",o.bMT(1,1,r.isSearchPanelPinned$)?"pinned":"")},dependencies:[En,Qn],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})();const wX=sn(Ro,n=>n.sortingOrderAscending);let cge=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.sortingOrderAscending$=this.store.select(wX)}onClick(){this.store.dispatch(F6())}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-sorting-button"]],standalone:!0,features:[o.aNF],decls:4,vars:7,consts:[[1,"box-rounded",3,"click","title"],[3,"className"]],template:function(i,r){1&i&&(o.j41(0,"button",0),o.nI1(1,"async"),o.bIt("click",function(){return r.onClick()}),o.nrm(2,"i",1),o.nI1(3,"async"),o.k0s()),2&i&&(o.Mz_("title","Toggle sort order (currently ",o.bMT(1,3,r.sortingOrderAscending$)?"ascending":"descending",")"),o.R7$(2),o.Y8G("className",o.bMT(3,5,r.sortingOrderAscending$)?"fa fa-sort-amount-asc":"fa fa-sort-amount-desc"))},dependencies:[Qn],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 xX=sn(Hc,n=>n.sortingOption);function dge(n,t){if(1&n&&(o.j41(0,"mat-option",1),o.EFF(1),o.k0s()),2&n){const e=t.$implicit;o.Y8G("value",e),o.R7$(),o.SpI(" ",e," ")}}let uge=(()=>{class n{constructor(e){this.store=e,this.sortingOptions=Object.values(pd),this.selectedSortingOption$=e.select(xX)}handleSelectedSortingOptionChanged(e){this.store.dispatch(dR(e.value))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-sorting-option"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-select",0),o.nI1(1,"async"),o.bIt("selectionChange",function(l){return r.handleSelectedSortingOptionChanged(l)}),o.Z7z(2,dge,2,2,"mat-option",1,o.fX1),o.k0s()),2&i&&(o.Y8G("value",o.bMT(1,1,r.selectedSortingOption$)),o.R7$(2),o.Dyx(r.sortingOptions))},dependencies:[t0,gd,Qn],styles:[".sorting-option-select[_ngcontent-%COMP%]{max-width:88px}"]})}}return n})();function hge(n,t){if(1&n&&(o.j41(0,"span",0),o.EFF(1),o.nrm(2,"i",1),o.k0s(),o.j41(3,"span",2),o.EFF(4),o.nrm(5,"img",3),o.k0s(),o.j41(6,"span",4),o.EFF(7),o.nrm(8,"i",5),o.k0s(),o.j41(9,"div",6),o.nrm(10,"cc-thumb-tack-button"),o.k0s(),o.j41(11,"div",6),o.nrm(12,"cc-sorting-button")(13,"cc-sorting-option"),o.k0s()),2&n){const e=t;o.R7$(),o.JRh(e.fileCount),o.R7$(3),o.JRh(e.flattenCount),o.R7$(3),o.JRh(e.excludeCount)}}let fge=(()=>{class n{constructor(e){this.matchingFileCounters$=e.select(age)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-matching-files-counter"]],standalone:!0,features:[o.aNF],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&&(o.DNE(0,hge,14,3),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.matchingFileCounters$))?0:-1,s)}},dependencies:[lge,cge,uge,Qn],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 oA(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]=oA(n[t]));else for(t in e={},n)"__proto__"===t?Object.defineProperty(e,t,{value:oA(n[t]),configurable:!0,enumerable:!0,writable:!0}):e[t]=oA(n[t]);return e}if("[object Array]"===i){for(t=n.length,e=Array(t);t--;)e[t]=oA(n[t]);return e}return"[object Set]"===i?(e=new Set,n.forEach(function(r){e.add(oA(r))}),e):"[object Map]"===i?(e=new Map,n.forEach(function(r,s){e.set(oA(s),oA(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(oA(n.buffer)):"[object ArrayBuffer]"===i?n.slice(0):"Array]"===i.slice(-6)?new n.constructor(n):n}const pge=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}),Age=(n,t)=>pge.compare(n.name,t.name),mge=(n,t)=>n.attributes.unary-t.attributes.unary,CX=(n,t,e)=>{if(!n)return;for(let r=0;r{const e=n===pd.NUMBER_OF_FILES?mge:Age;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===Zo.FOLDER?e.push(r):i.push(r);return e.sort(n),i.sort(n),[...e,...i]})(i,n),n},bge=sn(kd,xX,wX,(n,t,e)=>CX(oA(n.unifiedMapNode),t,e)),MX=sn(u_,n=>n.rightClickedNodeData);let EX=(()=>{class n{transform(e,i){return D7(e,i)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=o.EJ8({name:"areaMetricValid",type:n,pure:!0,standalone:!0})}}return n})();function D7(n,t){return n.deltas?.[t]<0||n.attributes?.[t]>0}let vge=(()=>{class n{transform(e,i){return Po(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=o.EJ8({name:"mapTreeViewItemIconClass",type:n,pure:!0,standalone:!0})}}return n})(),yge=(()=>{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 D7(e,i)?Po(e)?void 0:t1(e,this.state.getValue().fileSettings.markedPackages)||n.defaultColor:n.areMetricZeroColor}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Vi,16))}}static{this.\u0275pipe=o.EJ8({name:"mapTreeViewItemIconColor",type:n,pure:!1,standalone:!0})}}return n})(),wge=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-map-tree-view-item-icon"]],inputs:{node:"node",isOpen:"isOpen"},standalone:!0,features:[o.aNF],decls:3,vars:9,consts:[["role","img","aria-hidden","true"]],template:function(i,r){1&i&&(o.nrm(0,"span",0),o.nI1(1,"mapTreeViewItemIconClass"),o.nI1(2,"mapTreeViewItemIconColor")),2&i&&(o.HbH(o.i5U(1,4,r.node,r.isOpen)),o.xc7("color",o.bMT(2,7,r.node)))},dependencies:[vge,yge],encapsulation:2})}}return n})();const xge=sn(kd,n=>n.unifiedMapNode?.attributes.unary);let SX=(()=>{class n{transform(e){return Po(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=o.EJ8({name:"isNodeLeaf",type:n,pure:!0,standalone:!0})}}return n})();function Cge(n,t){if(1&n&&(o.j41(0,"span"),o.EFF(1),o.nI1(2,"async"),o.k0s()),2&n){const e=o.XpG(2);o.R7$(),o.SpI("",(100*e.unaryValue/o.bMT(2,1,e.rootUnary$)).toFixed(0),"%")}}function Mge(n,t){1&n&&o.EFF(0,"File")}function Ege(n,t){1&n&&o.EFF(0,"Files")}function Sge(n,t){if(1&n&&(o.j41(0,"span",2),o.EFF(1),o.DNE(2,Mge,1,0,"ng-template",3)(3,Ege,1,0,"ng-template",4),o.k0s()),2&n){const e=o.XpG(2);o.Y8G("ngPlural",e.unaryValue),o.R7$(),o.SpI(" ",e.unaryValue," ")}}function Tge(n,t){if(1&n&&(o.j41(0,"span",1),o.DNE(1,Cge,3,3,"span")(2,Sge,4,2,"span",2),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.vxM(e.isHovered?2:1)}}let Ige=(()=>{class n{constructor(e){this.searchedNodePaths$=e.select(TU),this.rootUnary$=e.select(xge),this.areaMetric$=e.select(gx)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-map-tree-view-item-name"]],inputs:{node:"node",isHovered:"isHovered",unaryValue:"unaryValue",unaryPercentage:"unaryPercentage"},standalone:!0,features:[o.aNF],decls:7,vars:17,consts:[[1,"node-name"],[1,"unary-number"],[3,"ngPlural"],["ngPluralCase","=1"],["ngPluralCase","other"]],template:function(i,r){1&i&&(o.j41(0,"span",0),o.nI1(1,"async"),o.nI1(2,"areaMetricValid"),o.nI1(3,"async"),o.EFF(4),o.k0s(),o.DNE(5,Tge,3,1,"span",1),o.nI1(6,"isNodeLeaf")),2&i&&(o.AVh("flattened",r.node.isFlattened)("noAreaMetric",!o.i5U(2,10,r.node,o.bMT(1,8,r.areaMetric$)))("tree-search-result",o.bMT(3,13,r.searchedNodePaths$).has(r.node.path)),o.R7$(4),o.SpI(" ",r.node.name,"\n"),o.R7$(),o.vxM(o.bMT(6,15,r.node)?-1:5))},dependencies:[No,ra,Qn,EX,SX],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 Fge(n,t){1&n&&o.nrm(0,"i",1)}let Dge=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-map-tree-view-item-option-buttons"]],inputs:{isFlattened:"isFlattened",openNodeContextMenu:"openNodeContextMenu"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"span",0),o.DNE(1,Fge,1,0,"i",1),o.j41(2,"div",2)(3,"button",3),o.bIt("click",function(l){return r.openNodeContextMenu(l)}),o.nrm(4,"i",4),o.k0s()()()),2&i&&(o.R7$(),o.vxM(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 Bge(n,t){if(1&n&&o.nrm(0,"cc-map-tree-view-item-option-buttons",4),2&n){const e=o.XpG(2);o.Y8G("isFlattened",e.node.isFlattened)("openNodeContextMenu",e.openNodeContextMenu)}}function kge(n,t){if(1&n&&(o.j41(0,"div"),o.nrm(1,"cc-map-tree-view-level",5),o.k0s()),2&n){const e=t.$implicit,i=o.XpG(3);o.R7$(),o.Y8G("node",e)("depth",i.depth+1)}}function Rge(n,t){if(1&n&&o.Z7z(0,kge,2,2,"div",null,o.fX1),2&n){const e=o.XpG(2);o.Dyx(e.node.children)}}function Pge(n,t){if(1&n){const e=o.RV6();o.j41(0,"div"),o.nI1(1,"isNodeLeaf"),o.j41(2,"div",1),o.nI1(3,"async"),o.nI1(4,"async"),o.nI1(5,"async"),o.nI1(6,"areaMetricValid"),o.bIt("mouseenter",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.onMouseEnter())})("mouseleave",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.onMouseLeave())})("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.onClick())})("contextmenu",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.openNodeContextMenu(r))}),o.nrm(7,"cc-map-tree-view-item-icon",2)(8,"cc-map-tree-view-item-name",3),o.nI1(9,"async"),o.DNE(10,Bge,1,2,"cc-map-tree-view-item-option-buttons",4),o.nI1(11,"async"),o.nI1(12,"async"),o.nI1(13,"areaMetricValid"),o.k0s(),o.j41(14,"div"),o.DNE(15,Rge,2,0),o.k0s()()}if(2&n){let e;const i=o.XpG();o.STu("tree-element-",i.depth," ",o.bMT(1,23,i.node)?"tree-leaf":"tree-parent",""),o.R7$(2),o.ZvI("tree-element-label-",i.depth," tree-element-label"),o.AVh("hovered",o.bMT(3,25,i.hoveredNodeId$)===i.node.id)("marked",(null==(e=o.bMT(4,27,i.rightClickedNodeData$))?null:e.nodeId)===i.node.id),o.FS9("id",i.node.path),o.Y8G("title",o.i5U(6,31,i.node,o.bMT(5,29,i.areaMetric$))?"":"No Node Area for Chosen Metric"),o.R7$(5),o.Y8G("node",i.node)("isOpen",i.isOpen),o.R7$(),o.Y8G("node",i.node)("isHovered",o.bMT(9,34,i.hoveredNodeId$)===i.node.id)("unaryValue",i.node.attributes.unary),o.R7$(2),o.vxM(o.bMT(11,36,i.hoveredNodeId$)===i.node.id&&o.i5U(13,40,i.node,o.bMT(12,38,i.areaMetric$))?10:-1),o.R7$(4),o.ZvI("tree-element-children tree-element-children-",i.depth,""),o.R7$(),o.vxM(i.isOpen?15:-1)}}let Oge=(()=>{class n{constructor(e,i,r,s,l){this.store=e,this.threeSceneService=i,this.idToBuildingService=r,this.threeRendererService=s,this.codeMapMouseEventService=l,this.hoveredNodeId$=this.store.select(hd),this.rightClickedNodeData$=this.store.select(MX),this.areaMetric$=this.store.select(gx),this.isOpen=!1,this.areMetricValid=!1,this.openNodeContextMenu=u=>{u.preventDefault(),u.stopPropagation(),this.areaMetric$.subscribe(f=>this.areMetricValid=D7(this.node,f)).unsubscribe(),this.areMetricValid&&(this.store.dispatch(vx({value:{nodeId:this.node.id,xPositionOfRightClickEvent:u.clientX,yPositionOfRightClickEvent:u.clientY}})),document.querySelector(".tree-element-0").addEventListener("scroll",this.scrollFunction))},this.scrollFunction=()=>{this.store.dispatch(vx({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(bx({value:this.node.id}))}onMouseLeave(){this.threeSceneService.resetLabel(),this.codeMapMouseEventService.unhoverNode(),this.codeMapMouseEventService.clearLabelHoveredBuilding(),this.store.dispatch(bx({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)(o.rXU(Yt),o.rXU(Rd),o.rXU(zS),o.rXU(Cr),o.rXU(L2))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-map-tree-view-level"]],inputs:{node:"node",depth:"depth"},standalone:!0,features:[o.aNF],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&&o.DNE(0,Pge,16,43,"div",0),2&i&&o.vxM(r.node.isExcluded?-1:0)},dependencies:[n,wge,Ige,Dge,Qn,EX,SX],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 Nge(n,t){1&n&&o.nrm(0,"cc-map-tree-view-level",0),2&n&&o.Y8G("node",t)("depth",0)}let Lge=(()=>{class n{constructor(e){this.mapTreeViewNode$=e.select(bge)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-map-tree-view"]],standalone:!0,features:[o.aNF],decls:2,vars:3,consts:[[3,"node","depth"]],template:function(i,r){if(1&i&&(o.DNE(0,Nge,1,2,"cc-map-tree-view-level",0),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.mapTreeViewNode$))?0:-1,s)}},dependencies:[Oge,Qn],encapsulation:2})}}return n})(),Uge=(()=>{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(iX).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)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-search-panel"]],viewQuery:function(i,r){if(1&i&&o.GBs(E7,5),2&i){let s;o.mGM(s=o.lsd())&&(r.panelRef=s.first)}},standalone:!0,features:[o.aNF],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&&(o.j41(0,"cc-ribbon-bar-panel",0),o.bIt("onToggleSettings",function(l){return r.onToggleSettings(l)}),o.j41(1,"cc-search-bar",1),o.bIt("click",function(){return r.openSearchPanel()}),o.k0s(),o.nrm(2,"cc-search-panel-mode-selector",2),o.j41(3,"cc-ribbon-bar-panel-settings"),o.nrm(4,"cc-blacklist-panel",3)(5,"cc-matching-files-counter",3)(6,"cc-map-tree-view",3),o.k0s()()),2&i&&(o.Y8G("isPinned",r.isSearchPanelPinned)("collapseOnPanelClick",!1),o.R7$(2),o.Y8G("searchPanelMode",r.searchPanelMode)("updateSearchPanelMode",r.updateSearchPanelMode),o.R7$(2),o.Y8G("hidden","blacklist"!==r.searchPanelMode),o.R7$(),o.Y8G("hidden","treeView"!==r.searchPanelMode),o.R7$(),o.Y8G("hidden","treeView"!==r.searchPanelMode))},dependencies:[E7,fme,yme,M7,sge,fge,Lge],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})();const Vge=["*"];let VR=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-ribbon-bar-menu-button"]],inputs:{icon:"icon",title:"title"},standalone:!0,features:[o.aNF],ngContentSelectors:Vge,decls:3,vars:3,consts:[[3,"title"]],template:function(i,r){1&i&&(o.NAR(),o.j41(0,"button",0),o.nrm(1,"i"),o.SdG(2),o.k0s()),2&i&&(o.Y8G("title",r.title),o.R7$(),o.HbH("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})();const Hge=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 sA{static{this.SCENARIOS_LOCAL_STORAGE_VERSION="1.0.0"}static{this.SCENARIOS_LOCAL_STORAGE_ELEMENT="scenarios"}static{this.scenarios=sA.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:s,edge:l}=t;if(i||r||s){const u=new Set(e.nodeMetricData.map(f=>f.name));if(i&&!u.has(i.areaMetric)||r&&!u.has(r.colorMetric)||s&&!u.has(s.heightMetric))return!1}return!(l&&!e.edgeMetricData.some(u=>u.name===l.edgeMetric))}static getPreLoadScenarios(){const t=this.importScenarios(Hge),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=sA.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(s=>s.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)A7(e.settings),e.camera&&(e.camera.camera=new pe(e.camera.camera.x,e.camera.camera.y,e.camera.camera.z),e.camera.cameraTarget=new pe(e.camera.camera.x,e.camera.camera.y,e.camera.camera.z));return t}static isScenarioExisting(t){return this.scenarios.has(t)}}function Gge(n,t){if(1&n&&(o.j41(0,"mat-error"),o.EFF(1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.JRh(e.scenarioName.getError("Error"))}}function jge(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-slide-toggle",6),o.bIt("change",function(){const r=o.eBV(e).$implicit,s=o.XpG();return o.Njj(s.handleScenarioMetricPropertySelectionChange(r))}),o.EFF(1),o.k0s()}if(2&n){const e=t.$implicit;o.Y8G("checked",e.isSelected),o.R7$(),o.SpI(" ",e.metricName?e.metricType+" ("+e.metricName+")":e.metricType," ")}}function $ge(n,t){1&n&&(o.j41(0,"mat-error"),o.EFF(1,"You cannot create an empty Scenario."),o.k0s())}let qge=(()=>{class n{constructor(e,i,r){this.state=e,this.scenarioName=new r$("",[n=>0===n.value.length?{Error:"Scenario name is required"}:sA.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,s=[{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&&s.push({metricType:"Edge-Metric",metricName:e.edgeMetric,savedValues:{edgePreview:i.amountOfEdgePreviews,edgeHeight:i.edgeHeight},isSelected:!0,isDisabled:!1}),s})(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(){sA.addScenario(this.scenarioName.value,this.scenarioContent)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Vi),o.rXU(rf),o.rXU(Nd))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-add-custom-scenario-dialog"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-toolbar",0)(1,"h2"),o.EFF(2,"Add Scenario"),o.k0s()(),o.j41(3,"mat-dialog-content")(4,"p")(5,"mat-form-field",1)(6,"mat-label"),o.EFF(7,"Scenario Name"),o.k0s(),o.nrm(8,"input",2),o.DNE(9,Gge,2,1,"mat-error"),o.k0s()(),o.j41(10,"p"),o.EFF(11,"The scenario includes:"),o.k0s(),o.j41(12,"div",3),o.Z7z(13,jge,2,2,"mat-slide-toggle",4,o.fX1),o.DNE(15,$ge,2,0,"mat-error"),o.k0s()(),o.j41(16,"mat-dialog-actions")(17,"button",5),o.bIt("click",function(){return r.addCustomScenario()}),o.EFF(18," ADD "),o.k0s()()),2&i&&(o.R7$(8),o.Y8G("formControl",r.scenarioName),o.R7$(),o.vxM(r.scenarioName.invalid?9:-1),o.R7$(4),o.Dyx(r.scenarioContent),o.R7$(2),o.vxM(r.areAnyScenarioMetricPropertiesSelected?-1:15),o.R7$(2),o.Y8G("disabled",r.scenarioName.invalid||!r.areAnyScenarioMetricPropertiesSelected))},dependencies:[Jg,ml,Vu,Uu,n0,a2,Kg,ox,C$,G3,S$,l2,Jl,Jo,Ia],styles:[".cc-add-custom-scenario-toggles[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}mat-slide-toggle[_ngcontent-%COMP%]{display:block}"]})}}return n})();const HR=n=>{const e=Math.round((n.maxValue-n.minValue)/3);return{from:e+n.minValue,to:2*e+n.minValue}};let TX=(()=>{class n{constructor(e,i,r,s,l){this.state=e,this.store=i,this.dialog=r,this.threeCameraService=s,this.threeOrbitControlsService=l}getScenarios(){return sA.getScenarioItems(Aa(this.state.getValue()))}applyScenario(e){const i=sA.scenarios.get(e),r=sA.getScenarioSettings(i);this.store.dispatch(_x({value:r})),r.appSettings.amountOfTopLabels||this.store.select(FR).pipe(h2()).subscribe(s=>{const l=m7(s);this.store.dispatch(o0({value:l}))}),r.appSettings.mapColors||this.store.dispatch(Wp({value:af})),r.appSettings.edgeHeight||this.store.dispatch(fx({value:4})),r.appSettings.amountOfEdgePreviews||this.store.dispatch(k2({value:1})),r.appSettings.scaling||this.store.dispatch(px({value:CR})),r.dynamicSettings.colorRange||this.store.select(qp).pipe(h2()).subscribe(s=>{this.store.dispatch(hf({value:HR(s)}))}),r.dynamicSettings.margin||this.store.dispatch(Ax({value:50})),r.dynamicSettings.edgeMetric||this.store.select(Aa).pipe(h2()).subscribe(s=>{this.store.dispatch(Jp({value:s.edgeMetricData[0]?.name}))}),i.camera&&(this.threeCameraService.setPosition(i.camera.camera),this.threeOrbitControlsService.setControlTarget(i.camera.cameraTarget))}removeScenario(e){"Complexity"!==e?(sA.deleteScenario(e),this.dialog.open(uu,{data:{title:"Info",message:`${e} deleted.`}})):this.dialog.open(uu,{data:{title:"Error",message:`${e} cannot be deleted as it is the default Scenario.`}})}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Vi),o.KVO(Yt),o.KVO(Cs),o.KVO(rf),o.KVO(Nd))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function Wge(n,t){if(1&n&&(o.j41(0,"span",5),o.nrm(1,"i"),o.k0s()),2&n){const e=t.$implicit;o.Y8G("title",e.tooltip),o.R7$(),o.ZvI("fa ",e.faIconClass,""),o.AVh("cc-is-saved",e.isSaved)}}function Xge(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",0)(1,"button",4),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG();return o.Njj(s.scenarioService.applyScenario(r.scenarioName))}),o.EFF(2),o.k0s(),o.Z7z(3,Wge,2,6,"span",5,o.fX1),o.j41(5,"button",6),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG();return o.Njj(s.scenarioService.removeScenario(r.scenarioName))}),o.nrm(6,"i",7),o.k0s()()}if(2&n){const e=t.$implicit;o.R7$(),o.Y8G("disabled",!e.isScenarioApplicable),o.R7$(),o.SpI(" ",e.scenarioName," "),o.R7$(),o.Dyx(e.icons)}}let Kge=(()=>{class n{constructor(e,i){this.scenarioService=e,this.dialog=i,this.scenarios=[]}addScenario(){this.dialog.open(qge,{panelClass:"cc-add-custom-scenario"})}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(TX),o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-scenarios"]],inputs:{scenarios:"scenarios"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"button",1),o.EFF(2,"Metric Scenarios"),o.k0s(),o.j41(3,"button",2),o.bIt("click",function(){return r.addScenario()}),o.nrm(4,"i",3),o.k0s()(),o.nrm(5,"mat-divider"),o.Z7z(6,Xge,7,2,"div",0,o.fX1)),2&i&&(o.R7$(6),o.Dyx(r.scenarios))},dependencies:[T7],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})(),Yge=(()=>{class n{constructor(e){this.scenarioService=e,this.scenarios=[]}loadScenarios(){this.scenarios=this.scenarioService.getScenarios()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(TX))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-show-scenarios-button"]],standalone:!0,features:[o.aNF],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 s=o.RV6();o.j41(0,"cc-ribbon-bar-menu-button",1),o.bIt("click",function(){return o.eBV(s),o.Njj(r.loadScenarios())}),o.k0s(),o.j41(1,"mat-menu",2,0),o.nrm(3,"cc-scenarios",3),o.k0s()}if(2&i){const s=o.sdS(2);o.Y8G("title","Open the scenario list")("matMenuTriggerFor",s),o.R7$(3),o.Y8G("scenarios",r.scenarios)}},dependencies:[VR,dx,uf,Kge],styles:["[_nghost-%COMP%]{display:flex;justify-content:center}"]})}}return n})(),Zge=(()=>{class n{upload(){const e=fF();e.addEventListener("change",()=>{this.uploadOnEvent(e)}),e.click()}uploadOnEvent(e){return Cn(function*(){const i=yield Promise.all(CE(e.files));for(const r of i)try{hr.importCustomConfigs(r)}catch{}})()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-upload-custom-config-button"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"button",0),o.bIt("click",function(){return r.upload()}),o.nrm(1,"i",1),o.k0s())},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})();function i0e(n,t){return[...n.keys()].some(i=>t.has(i))}var QR=function(n){return n.MULTIPLE="STANDARD",n.DELTA="DELTA",n}(QR||{});const V2=sn(Qc,n=>{const t=new Map;let e;for(const{selectedAs:i,file:r}of n)e=i===bt.Partial?QR.MULTIPLE:QR.DELTA,t.set(r.fileMeta.fileChecksum,r.fileMeta.fileName);return{mapSelectionMode:e,assignedMaps:t}});let IX=(()=>{class n{constructor(e){this.store=e,this.downloadableCustomConfigs$=h0([this.store.select(V2),hr.customConfigChange$]).pipe((0,$n.T)(([i])=>(({assignedMaps:n})=>{const t=new Map,e=hr.getCustomConfigs();for(const[i,r]of e.entries())i0e(r.assignedMaps,n)&&t.set(i,hr.createExportCustomConfigFromConfig(r));return t})(i))),this.customConfigItemGroups$=h0([this.store.select(V2),hr.customConfigChange$]).pipe((0,$n.T)(([i])=>function r0e({assignedMaps:n}){const t={applicableItems:new Map,nonApplicableItems:new Map},e=new Map;for(const i of hr.loadCustomConfigsFromLocalStorage().values()){const r=[...i.assignedMaps.values()],s=`${r.join("_")}_${i.mapSelectionMode}`,l=[...i.assignedMaps.keys()].some(I=>n.has(I));e.has(s)||e.set(s,{mapNames:r.join(" "),mapSelectionMode:i.mapSelectionMode,hasApplicableItems:l,customConfigItems:[]});const{positive:u,neutral:f,negative:p,selected:m,positiveDelta:_,negativeDelta:b}=i.stateSettings.appSettings.mapColors,{areaMetric:w,heightMetric:F,colorMetric:D,edgeMetric:T}=i.stateSettings.dynamicSettings;e.get(s).customConfigItems.push({id:i.id,name:i.name,assignedMaps:i.assignedMaps,mapSelectionMode:i.mapSelectionMode,metrics:{areaMetric:w,heightMetric:F,colorMetric:D,edgeMetric:T},mapColors:{positive:u,neutral:f,negative:p,selected:m,positiveDelta:_,negativeDelta:b},isApplicable:l,...i.note&&{note:i.note}}),e.get(s).hasApplicableItems?t.applicableItems.set(s,e.get(s)):t.nonApplicableItems.set(s,e.get(s))}return t}(i)))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),o0e=(()=>{class n{constructor(e){this.downloadCustomConfigService=e}ngOnInit(){this.subscription=this.downloadCustomConfigService.downloadableCustomConfigs$.subscribe(e=>{this.downloadableConfigs=e})}ngOnDestroy(){this.subscription.unsubscribe()}downloadPreloadedCustomConfigs(){!function t0e(n){const t={downloadApiVersion:"1.0.1",timestamp:Date.now(),customConfigs:n},e=kc.getNewTimestamp()+".cc.config.json";c1.downloadData(JSON.stringify(t,cm),e)}(this.downloadableConfigs)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(IX))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-download-custom-configs-button"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"button",0),o.bIt("click",function(){return r.downloadPreloadedCustomConfigs()}),o.nrm(1,"i",1),o.k0s()),2&i&&o.Y8G("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})();function a0e(n,t,e,i){const{mapSelectionMode:r,assignedMaps:s}=V2(t),l={id:"",name:n,creationTime:Date.now(),mapSelectionMode:r,assignedMaps:s,customConfigVersion:"1.0.0",stateSettings:{appSettings:void 0,dynamicSettings:void 0,fileSettings:void 0},camera:e,...i&&{note:i}};return function l0e(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:""}}}(l),function c0e(n){n.stateSettings.dynamicSettings={areaMetric:"",colorMetric:"",distributionMetric:"",edgeMetric:"",focusedNodePath:[],heightMetric:"",margin:0,searchPattern:"",sortingOption:void 0,colorRange:{from:0,to:0},colorMode:void 0}}(l),function d0e(n){n.stateSettings.fileSettings={blacklist:void 0,edges:[],attributeDescriptors:{},markedPackages:[]}}(l),FX(t,l.stateSettings),l.id=L_()(JSON.stringify(l,cm)),l}function FX(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:FX(i,t[e]))}let u0e=(()=>{class n{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(fp))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-confirmation-dialog"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"h1",1),o.EFF(2),o.k0s(),o.j41(3,"div",2),o.EFF(4),o.k0s()(),o.j41(5,"div",3)(6,"button",4),o.EFF(7,"CANCEL"),o.k0s(),o.j41(8,"button",5),o.EFF(9,"OK"),o.k0s()()),2&i&&(o.R7$(2),o.JRh(r.data.title),o.R7$(2),o.JRh(r.data.message),o.R7$(2),o.Y8G("mat-dialog-close",!1),o.R7$(2),o.Y8G("mat-dialog-close",!0))},dependencies:[$y,ml,Jl,Jo,Ia],encapsulation:2})}}return n})();function A0e(n,t){if(1&n){const e=o.RV6();o.j41(0,"span",0),o.EFF(1,"Do you want to download and then purge old unused Configs to make space for new ones?"),o.k0s(),o.j41(2,"button",1),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.showPurgeConfirmDialog())}),o.EFF(3," DOWNLOAD & PURGE... "),o.k0s()}}let m0e=(()=>{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 p0e(){const n=new Set,t=hr.getCustomConfigs(),e=new Map;for(const[r,s]of t.entries())void 0===s?.creationTime&&(s.creationTime=Date.now()),(Date.now()-s.creationTime)/2592e6>=6&&(e.set(r,hr.createExportCustomConfigFromConfig(s)),n.add(s));return e.size>0&&hr.downloadCustomConfigs(e),n}();0!==e.size?this.dialog.open(u0e,{panelClass:"cc-confirmation-dialog",data:{title:"Confirm to purge old Configs",message:"Are you sure to delete old Configs now?"}}).afterClosed().subscribe(r=>{r&&hr.deleteCustomConfigs([...e])}):this.dialog.open(uu,{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)(o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-download-and-purge-configs"]],standalone:!0,features:[o.aNF],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&&o.DNE(0,A0e,4,0),2&i&&o.vxM(r.isLocalStorageSizeValid?-1:0)},dependencies:[Jo],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})();function g0e(n,t){if(1&n&&(o.j41(0,"mat-error"),o.EFF(1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.JRh(e.getErrorMessage())}}let DX=(()=>{class n{constructor(e,i,r){this.state=e,this.threeCameraService=i,this.threeOrbitControlsService=r}ngOnInit(){const e=V2(this.state.getValue());this.customConfigName=new r$("",[d8.required,_0e(e)]),this.customConfigName.setValue(hr.getConfigNameSuggestionByFileState(e))}getErrorMessage(){return this.customConfigName.hasError("required")?"Please enter a view name.":this.customConfigName.hasError("Error")?this.customConfigName.getError("Error"):""}addCustomConfig(){const e=a0e(this.customConfigName.value,this.state.getValue(),{camera:this.threeCameraService.camera.position,cameraTarget:this.threeOrbitControlsService.controls.target},this.customConfigNote);hr.addCustomConfig(e)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Vi),o.rXU(rf),o.rXU(Nd))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-add-custom-config-dialog"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-toolbar",0)(1,"h2"),o.EFF(2,"Add Custom View"),o.k0s()(),o.j41(3,"mat-dialog-content")(4,"p")(5,"mat-form-field")(6,"mat-label"),o.EFF(7,"Save individual configurations for your map."),o.k0s(),o.nrm(8,"input",1),o.j41(9,"mat-hint"),o.EFF(10,"Config View Name"),o.k0s(),o.DNE(11,g0e,2,1,"mat-error"),o.k0s()(),o.j41(12,"p")(13,"mat-form-field")(14,"mat-label"),o.EFF(15,"Provide custom note for configuration (optional)"),o.k0s(),o.j41(16,"textarea",2),o.mxI("ngModelChange",function(l){return o.DH7(r.customConfigNote,l)||(r.customConfigNote=l),l}),o.EFF(17," "),o.k0s(),o.j41(18,"mat-hint"),o.EFF(19,"Config Note"),o.k0s()()()(),o.j41(20,"mat-dialog-actions",3),o.nrm(21,"cc-download-and-purge-configs"),o.j41(22,"button",4),o.bIt("click",function(){return r.addCustomConfig()}),o.EFF(23,"ADD"),o.k0s()()),2&i&&(o.R7$(8),o.Y8G("formControl",r.customConfigName),o.R7$(3),o.vxM(r.customConfigName.invalid?11:-1),o.R7$(5),o.R50("ngModel",r.customConfigNote),o.R7$(6),o.Y8G("disabled",r.customConfigName.invalid))},dependencies:[Jg,ml,Vu,Uu,n0,a2,Kg,ox,j3,lx,C$,G3,R8,S$,K$,Jl,m0e,Jo,Ia],encapsulation:2})}}return n})();function _0e(n){return t=>hr.hasCustomConfigByName(n.mapSelectionMode,n.assignedMaps,t.value)?{Error:"A Custom View with this name already exists."}:null}let b0e=(()=>{class n{constructor(e){this.dialog=e}showAddCustomConfigDialog(){this.dialog.open(DX,{panelClass:"cc-add-custom-config-dialog"})}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-add-custom-config-button"]],standalone:!0,features:[o.aNF],decls:2,vars:0,consts:[["title","Create new Custom View",3,"click"],[1,"fa","fa-plus"]],template:function(i,r){1&i&&(o.j41(0,"button",0),o.bIt("click",function(){return r.showAddCustomConfigDialog()}),o.nrm(1,"i",1),o.k0s())},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})(),v0e=0;const B7=new o.nKC("CdkAccordion");let y0e=(()=>{class n{constructor(){this._stateChanges=new Ai.B,this._openCloseAllActions=new Ai.B,this.id="cdk-accordion-"+v0e++,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=o.FsC({type:n,selectors:[["cdk-accordion"],["","cdkAccordion",""]],inputs:{multi:[2,"multi","multi",o.L39]},exportAs:["cdkAccordion"],standalone:!0,features:[o.Jv_([{provide:B7,useExisting:n}]),o.GFd,o.OA$]})}}return n})(),w0e=0,x0e=(()=>{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=un.yU.EMPTY,this.closed=new o.bkB,this.opened=new o.bkB,this.destroyed=new o.bkB,this.expandedChange=new o.bkB,this.id="cdk-accordion-child-"+w0e++,this._expanded=!1,this.disabled=!1,this._removeUniqueSelectionListener=()=>{},this._removeUniqueSelectionListener=r.listen((s,l)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===l&&this.id!==s&&(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)(o.rXU(B7,12),o.rXU(o.gRc),o.rXU(L$))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[2,"expanded","expanded",o.L39],disabled:[2,"disabled","disabled",o.L39]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],standalone:!0,features:[o.Jv_([{provide:B7,useValue:void 0}]),o.GFd]})}}return n})();const C0e=["body"],M0e=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],E0e=["mat-expansion-panel-header","*","mat-action-row"];function S0e(n,t){}const T0e=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],I0e=["mat-panel-title","mat-panel-description","*"];function F0e(n,t){if(1&n&&(o.j41(0,"span",1),o.qSk(),o.j41(1,"svg",2),o.nrm(2,"path",3),o.k0s()()),2&n){const e=o.XpG();o.Y8G("@indicatorRotate",e._getExpandedState())}}const k7=new o.nKC("MAT_ACCORDION"),BX="225ms cubic-bezier(0.4,0.0,0.2,1)",kX={indicatorRotate:(0,On.hZ)("indicatorRotate",[(0,On.wk)("collapsed, void",(0,On.iF)({transform:"rotate(0deg)"})),(0,On.wk)("expanded",(0,On.iF)({transform:"rotate(180deg)"})),(0,On.kY)("expanded <=> collapsed, void => collapsed",(0,On.i0)(BX))]),bodyExpansion:(0,On.hZ)("bodyExpansion",[(0,On.wk)("collapsed, void",(0,On.iF)({height:"0px",visibility:"hidden"})),(0,On.wk)("expanded",(0,On.iF)({height:"*",visibility:""})),(0,On.kY)("expanded <=> collapsed, void => collapsed",(0,On.i0)(BX))])},RX=new o.nKC("MAT_EXPANSION_PANEL");let D0e=(()=>{class n{constructor(e,i){this._template=e,this._expansionPanel=i}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.C4Q),o.rXU(RX,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["ng-template","matExpansionPanelContent",""]],standalone:!0})}}return n})(),B0e=0;const PX=new o.nKC("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS");let OX=(()=>{class n extends x0e{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,s,l,u,f){super(e,i,r),this._viewContainerRef=s,this._animationMode=u,this._hideToggle=!1,this.afterExpand=new o.bkB,this.afterCollapse=new o.bkB,this._inputChanges=new Ai.B,this._headerId="mat-expansion-panel-header-"+B0e++,this.accordion=e,this._document=l,this._animationsDisabled="NoopAnimations"===u,f&&(this.hideToggle=f.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(cu(null),ur(()=>this.expanded&&!this._portal),ms(1)).subscribe(()=>{this._portal=new g_(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){!NX(e)&&!this._animationsDisabled&&this._body&&this._body?.nativeElement.setAttribute("inert","")}_animationDone(e){NX(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)(o.rXU(k7,12),o.rXU(o.gRc),o.rXU(L$),o.rXU(o.c1b),o.rXU(V),o.rXU(o.bc$,8),o.rXU(PX,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-expansion-panel"]],contentQueries:function(i,r,s){if(1&i&&o.wni(s,D0e,5),2&i){let l;o.mGM(l=o.lsd())&&(r._lazyContent=l.first)}},viewQuery:function(i,r){if(1&i&&o.GBs(C0e,5),2&i){let s;o.mGM(s=o.lsd())&&(r._body=s.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:6,hostBindings:function(i,r){2&i&&o.AVh("mat-expanded",r.expanded)("_mat-animation-noopable",r._animationsDisabled)("mat-expansion-panel-spacing",r._hasSpacing())},inputs:{hideToggle:[2,"hideToggle","hideToggle",o.L39],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],standalone:!0,features:[o.Jv_([{provide:k7,useValue:void 0},{provide:RX,useExisting:n}]),o.GFd,o.Vt3,o.OA$,o.aNF],ngContentSelectors:E0e,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 s=o.RV6();o.NAR(M0e),o.SdG(0),o.j41(1,"div",1,0),o.bIt("@bodyExpansion.start",function(u){return o.eBV(s),o.Njj(r._animationStarted(u))})("@bodyExpansion.done",function(u){return o.eBV(s),o.Njj(r._animationDone(u))}),o.j41(3,"div",2),o.SdG(4,1),o.DNE(5,S0e,0,0,"ng-template",3),o.k0s(),o.SdG(6,2),o.k0s()}2&i&&(o.R7$(),o.Y8G("@bodyExpansion",r._getExpandedState())("id",r.id),o.BMQ("aria-labelledby",r._headerId),o.R7$(4),o.Y8G("cdkPortalOutlet",r._portal))},dependencies:[__],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, var(--mat-app-surface));color:var(--mat-expansion-container-text-color, var(--mat-app-on-surface));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, var(--mat-app-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-app-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-app-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-app-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-app-body-large-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, var(--mat-app-outline))}.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:[kX.bodyExpansion]},changeDetection:0})}}return n})();function NX(n){return"void"===n.fromState}let LX=(()=>{class n{constructor(e,i,r,s,l,u,f){this.panel=e,this._element=i,this._focusMonitor=r,this._changeDetectorRef=s,this._animationMode=u,this._parentChangeSubscription=un.yU.EMPTY,this.tabIndex=0;const p=e.accordion?e.accordion._stateChanges.pipe(ur(m=>!(!m.hideToggle&&!m.togglePosition))):bh;this.tabIndex=parseInt(f||"")||0,this._parentChangeSubscription=Wl(e.opened,e.closed,p,e._inputChanges.pipe(ur(m=>!!(m.hideToggle||m.disabled||m.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),e.closed.pipe(ur(()=>e._containsFocus())).subscribe(()=>r.focusVia(i,"program")),l&&(this.expandedHeight=l.expandedHeight,this.collapsedHeight=l.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:Yl(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)(o.rXU(OX,1),o.rXU(o.aKT),o.rXU(Zl),o.rXU(o.gRc),o.rXU(PX,8),o.rXU(o.bc$,8),o.kS0("tabindex"))}}static{this.\u0275cmp=o.VBU({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&&o.bIt("click",function(){return r._toggle()})("keydown",function(l){return r._keydown(l)}),2&i&&(o.BMQ("id",r.panel._headerId)("tabindex",r.disabled?-1:r.tabIndex)("aria-controls",r._getPanelId())("aria-expanded",r._isExpanded())("aria-disabled",r.panel.disabled),o.xc7("height",r._getHeaderHeight()),o.AVh("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:[2,"tabIndex","tabIndex",e=>null==e?0:(0,o.Udg)(e)]},standalone:!0,features:[o.GFd,o.aNF],ngContentSelectors:I0e,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&&(o.NAR(T0e),o.j41(0,"span",0),o.SdG(1),o.SdG(2,1),o.SdG(3,2),o.k0s(),o.DNE(4,F0e,3,1,"span",1)),2&i&&(o.AVh("mat-content-hide-toggle",!r._showToggle()),o.R7$(4),o.vxM(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, var(--mat-app-title-medium-font));font-size:var(--mat-expansion-header-text-size, var(--mat-app-title-medium-size));font-weight:var(--mat-expansion-header-text-weight, var(--mat-app-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-app-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-app-title-medium-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, var(--mat-app-surface))}}.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, var(--mat-app-on-surface))}.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, var(--mat-app-on-surface-variant))}.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, var(--mat-app-on-surface-variant));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, var(--mat-app-on-surface-variant));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:[kX.indicatorRotate]},changeDetection:0})}}return n})(),k0e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"],standalone:!0})}}return n})(),R0e=(()=>{class n extends y0e{constructor(){super(...arguments),this._ownHeaders=new o.rOR,this.hideToggle=!1,this.displayMode="default",this.togglePosition="after"}ngAfterContentInit(){this._headers.changes.pipe(cu(this._headers)).subscribe(e=>{this._ownHeaders.reset(e.filter(i=>i.panel.accordion===this)),this._ownHeaders.notifyOnChanges()}),this._keyManager=new lu(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=o.xGo(n)))(r||n)}})()}static{this.\u0275dir=o.FsC({type:n,selectors:[["mat-accordion"]],contentQueries:function(i,r,s){if(1&i&&o.wni(s,LX,5),2&i){let l;o.mGM(l=o.lsd())&&(r._headers=l)}},hostAttrs:[1,"mat-accordion"],hostVars:2,hostBindings:function(i,r){2&i&&o.AVh("mat-accordion-multi",r.multi)},inputs:{hideToggle:[2,"hideToggle","hideToggle",o.L39],displayMode:"displayMode",togglePosition:"togglePosition"},exportAs:["matAccordion"],standalone:!0,features:[o.Jv_([{provide:k7,useExisting:n}]),o.GFd,o.Vt3]})}}return n})(),P0e=(()=>{class n{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(fp))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-custom-config-note-dialog"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"div",1)(2,"mat-form-field",2)(3,"mat-label"),o.EFF(4,"Custom Note"),o.k0s(),o.j41(5,"textarea",3),o.mxI("ngModelChange",function(l){return o.DH7(r.data,l)||(r.data=l),l}),o.k0s()()(),o.j41(6,"div",4)(7,"button",5),o.EFF(8,"Cancel"),o.k0s(),o.j41(9,"button",5),o.EFF(10,"Ok"),o.k0s()()()),2&i&&(o.R7$(5),o.R50("ngModel",r.data),o.R7$(4),o.Y8G("mat-dialog-close",r.data))},dependencies:[ml,Vu,Uu,n0,K$,a2,Kg,ox,lx,Jl,Jo,Ia],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})(),O0e=(()=>{class n{constructor(e){this.dialog=e}openDialog(){this.customConfigNote=this.customConfigItem.note,this.dialog.open(P0e,{width:"600px",data:this.customConfigNote}).afterClosed().subscribe(i=>{void 0!==i&&this.customConfigNote!==i&&(this.customConfigNote=i,hr.editCustomConfigNote(this.customConfigItem.id,i))})}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-custom-config-note-dialog-button"]],inputs:{customConfigItem:"customConfigItem"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"button",0),o.bIt("click",function(){return r.openDialog()}),o.nrm(1,"i",1),o.k0s())},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 UX(n,t){const{mapSelectionMode:e,assignedMaps:i}=V2(t),r=[];for(const s of n.assignedMaps.keys())i.has(s)||r.push(n.assignedMaps.get(s));return{mapSelectionMode:n.mapSelectionMode!==e?n.mapSelectionMode:"",mapNames:r}}let N0e=(()=>{class n{constructor(e){this.state=e}transform(e){const{mapSelectionMode:i,mapNames:r}=UX(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)(o.rXU(Vi,16))}}static{this.\u0275pipe=o.EJ8({name:"customConfig2ApplicableColor",type:n,pure:!0,standalone:!0})}}return n})(),L0e=(()=>{class n{transform(e){const{mapColors:i,mapSelectionMode:r}=e;return r===QR.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=o.EJ8({name:"customConfigColorSchemaBySelectionMode",type:n,pure:!0,standalone:!0})}}return n})();function U0e(n,t){if(1&n&&(o.j41(0,"p",2),o.nrm(1,"i",8),o.EFF(2),o.k0s()),2&n){const e=o.XpG();o.R7$(2),o.SpI(" ",e.customConfigItem.metrics.edgeMetric,"")}}function V0e(n,t){if(1&n&&(o.j41(0,"div",7),o.nrm(1,"span",9),o.k0s()),2&n){const e=t.$implicit,i=o.XpG();o.R7$(),o.xc7("background-color",i.customConfigItem.isApplicable?e:"rgb(204, 204, 204)")}}let H0e=(()=>{class n{constructor(e,i,r,s){this.store=e,this.threeCameraService=i,this.threeOrbitControlsService=r,this.threeRendererService=s}applyCustomConfig(){hr.applyCustomConfig(this.customConfigItem.id,this.store,this.threeCameraService,this.threeOrbitControlsService,this.threeRendererService)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(rf),o.rXU(Nd),o.rXU(Cr))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-apply-custom-config-button"]],inputs:{customConfigItem:"customConfigItem"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"button",0),o.nI1(1,"customConfig2ApplicableColor"),o.bIt("click",function(){return r.applyCustomConfig()}),o.j41(2,"div",1)(3,"p",2),o.nrm(4,"i",3),o.EFF(5),o.k0s(),o.j41(6,"p",2),o.nrm(7,"i",4),o.EFF(8),o.k0s(),o.j41(9,"p",2),o.nrm(10,"i",5),o.EFF(11),o.k0s(),o.DNE(12,U0e,3,1,"p",2),o.j41(13,"div",6),o.Z7z(14,V0e,2,2,"div",7,o.fX1),o.nI1(16,"customConfigColorSchemaBySelectionMode"),o.k0s()()()),2&i&&(o.xc7("color",o.bMT(1,8,r.customConfigItem)),o.FS9("title",r.customConfigItem.name),o.Y8G("disabled",!r.customConfigItem.isApplicable),o.R7$(5),o.SpI(" ",r.customConfigItem.metrics.areaMetric,""),o.R7$(3),o.SpI(" ",r.customConfigItem.metrics.heightMetric,""),o.R7$(3),o.SpI(" ",r.customConfigItem.metrics.colorMetric,""),o.R7$(),o.vxM(r.customConfigItem.metrics.edgeMetric?12:-1),o.R7$(2),o.Dyx(o.bMT(16,10,r.customConfigItem)))},dependencies:[Ia,N0e,L0e],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})(),VX=(()=>{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=o.EJ8({name:"truncateText",type:n,pure:!0,standalone:!0})}}return n})(),Q0e=(()=>{class n{constructor(e){this.state=e}transform(e){const{mapSelectionMode:i,mapNames:r}=UX(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)(o.rXU(Vi,16))}}static{this.\u0275pipe=o.EJ8({name:"customConfig2ApplicableMessage",type:n,pure:!0,standalone:!0})}}return n})(),z0e=(()=>{class n{transform(e,i){const r=i.toLocaleLowerCase().trimEnd();return e.filter(s=>this.isItemMatchingSearchTerm(s,r))}isItemMatchingSearchTerm(e,i){const r=e.name.toLocaleLowerCase().includes(i),s=e.mapSelectionMode.toLocaleLowerCase().includes(i),l=Object.values(e.metrics).some(u=>u?.toLocaleLowerCase().includes(i));return r||s||l}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=o.EJ8({name:"filterCustomConfigDataBySearchTerm",type:n,pure:!0,standalone:!0})}}return n})();const G0e=["matExpansionPanel"];function j0e(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-list-item",5),o.nI1(1,"customConfig2ApplicableMessage"),o.j41(2,"div",6)(3,"p",7)(4,"strong")(5,"span",8),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG(4);return o.Njj(s.applyCustomConfig(r.id))}),o.EFF(6),o.nI1(7,"truncateText"),o.k0s()()()(),o.j41(8,"div",9)(9,"p",10)(10,"span",8),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG(4);return o.Njj(s.applyCustomConfig(r.id))}),o.EFF(11),o.nI1(12,"truncateText"),o.k0s()(),o.nrm(13,"cc-custom-config-note-dialog-button",11),o.k0s(),o.j41(14,"div",12),o.nrm(15,"cc-apply-custom-config-button",11),o.j41(16,"button",13),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG(3).$implicit,l=o.XpG();return o.Njj(l.removeCustomConfig(r.id,s.key))}),o.nrm(17,"i",14),o.k0s()()()}if(2&n){const e=t.$implicit;o.FS9("title",o.bMT(1,6,e)),o.R7$(3),o.FS9("title",e.name),o.R7$(3),o.SpI(" ",o.i5U(7,8,e.name,75)," "),o.R7$(5),o.SpI(" ",e.note?o.i5U(12,11,e.note,95):"Add Note"," "),o.R7$(2),o.Y8G("customConfigItem",e),o.R7$(2),o.Y8G("customConfigItem",e)}}function $0e(n,t){if(1&n&&(o.j41(0,"mat-list"),o.Z7z(1,j0e,18,14,"mat-list-item",5,o.fX1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.Dyx(e)}}function q0e(n,t){1&n&&(o.j41(0,"div",4)(1,"p"),o.EFF(2,"No configurations found."),o.k0s()())}function W0e(n,t){if(1&n&&o.DNE(0,$0e,3,0,"mat-list")(1,q0e,3,0,"div",4),2&n){const e=t;o.vxM(e.length>0?0:-1),o.R7$(),o.vxM(0===e.length?1:-1)}}function X0e(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-expansion-panel",1,0)(2,"mat-expansion-panel-header",2),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG();return o.Njj(s.toggleGroupExpansion(r.key))}),o.j41(3,"mat-panel-title",3),o.EFF(4," Custom View(s) in "),o.j41(5,"strong"),o.EFF(6),o.nI1(7,"titlecase"),o.k0s(),o.EFF(8),o.k0s()(),o.DNE(9,W0e,2,2),o.nI1(10,"filterCustomConfigDataBySearchTerm"),o.k0s()}if(2&n){let e;const i=t.$implicit,r=o.XpG();o.Y8G("expanded",r.isGroupExpanded(i.key)||r.searchTerm.length>0),o.R7$(6),o.SpI(" ",o.bMT(7,4,i.value.mapSelectionMode)," "),o.R7$(2),o.SpI(" mode for ",i.value.mapNames," "),o.R7$(),o.vxM((e=o.i5U(10,6,i.value.customConfigItems,r.searchTerm))?9:-1,e)}}let K0e=(()=>{class n{constructor(e,i,r,s){this.store=e,this.threeCameraService=i,this.threeOrbitControlsService=r,this.threeRendererService=s,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){hr.deleteCustomConfig(e),this.expandedStates[i]=!0}applyCustomConfig(e){hr.applyCustomConfig(e,this.store,this.threeCameraService,this.threeOrbitControlsService,this.threeRendererService)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(rf),o.rXU(Nd),o.rXU(Cr))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-custom-config-item-group"]],viewQuery:function(i,r){if(1&i&&o.GBs(G0e,5),2&i){let s;o.mGM(s=o.lsd())&&(r.matExpansionPanel=s.first)}},inputs:{customConfigItemGroups:"customConfigItemGroups",searchTerm:"searchTerm"},standalone:!0,features:[o.OA$,o.aNF],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&&(o.Z7z(0,X0e,11,9,"mat-expansion-panel",1,o.fX1),o.nI1(2,"keyvalue")),2&i&&o.Dyx(o.bMT(2,0,r.customConfigItemGroups))},dependencies:[OX,LX,k0e,bX,vX,Ia,O0e,H0e,yf,wf,VX,Q0e,z0e],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})();function Y0e(n,t){1&n&&(o.j41(0,"div",7),o.EFF(1,"It is time to add your first Custom View!"),o.k0s())}function Z0e(n,t){if(1&n&&o.nrm(0,"cc-custom-config-item-group",12),2&n){const e=o.XpG(2),i=o.XpG();o.Y8G("customConfigItemGroups",e.nonApplicableItems)("searchTerm",i.searchTerm)}}function J0e(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",14),o.bIt("click",function(){o.eBV(e);const r=o.XpG(3);return o.Njj(r.toggleNonApplicableCustomConfigsList())}),o.EFF(1),o.nrm(2,"i",15),o.k0s()}if(2&n){const e=o.XpG(3);o.R7$(),o.SpI(" ",e.isNonApplicableListCollapsed?"Show non-applicable Custom Views":"Hide non-applicable Custom Views"," "),o.R7$(),o.Y8G("ngClass",e.isNonApplicableListCollapsed?"fa fa-angle-down":"fa fa-angle-up")}}function e_e(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-accordion",8)(1,"mat-form-field",9),o.nrm(2,"i",10),o.j41(3,"mat-label"),o.EFF(4),o.k0s(),o.j41(5,"input",11),o.bIt("input",function(r){o.eBV(e);const s=o.XpG(2);return o.Njj(s.setSearchTermDebounced(r))}),o.k0s()(),o.nrm(6,"cc-custom-config-item-group",12),o.DNE(7,Z0e,1,2,"cc-custom-config-item-group",12)(8,J0e,3,2,"button",13),o.k0s()}if(2&n){const e=o.XpG(),i=o.XpG();o.Y8G("multi",!0),o.R7$(4),o.SpI("",i.searchPlaceholder," "),o.R7$(),o.Y8G("value",i.searchTerm),o.R7$(),o.Y8G("customConfigItemGroups",e.applicableItems)("searchTerm",i.searchTerm),o.R7$(),o.vxM(i.isNonApplicableListCollapsed?-1:7),o.R7$(),o.vxM(e.nonApplicableItems.size>0?8:-1)}}function t_e(n,t){if(1&n&&(o.j41(0,"mat-dialog-content",4)(1,"p",5),o.EFF(2," Custom Views allow you to save and upload your individual configurations for certain maps. Find out more about Custom Views in the "),o.j41(3,"a",6),o.EFF(4,"documentation"),o.k0s(),o.EFF(5,". "),o.k0s(),o.DNE(6,Y0e,2,0,"div",7)(7,e_e,9,7,"mat-accordion",8),o.k0s()),2&n){const e=t;o.R7$(6),o.vxM(0===e.applicableItems.size&&0===e.nonApplicableItems.size?6:-1),o.R7$(),o.vxM(0!==e.applicableItems.size||0!==e.nonApplicableItems.size?7:-1)}}let n_e=(()=>{class n{constructor(e){this.customConfigService=e,this.searchTerm="",this.isNonApplicableListCollapsed=!0,this.searchPlaceholder="Search by name, mode and metrics...",this.setSearchTermDebounced=pf(i=>this.searchTerm=i.target.value,400)}toggleNonApplicableCustomConfigsList(){this.isNonApplicableListCollapsed=!this.isNonApplicableListCollapsed}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(IX))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-custom-config-list"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-toolbar",0),o.EFF(1,"Custom Views "),o.j41(2,"div",1)(3,"div",2),o.nrm(4,"cc-upload-custom-config-button")(5,"cc-download-custom-configs-button")(6,"cc-add-custom-config-button",3),o.k0s()()(),o.DNE(7,t_e,8,2,"mat-dialog-content",4),o.nI1(8,"async")),2&i){let s;o.R7$(7),o.vxM((s=o.bMT(8,1,r.customConfigService.customConfigItemGroups$))?7:-1,s)}},dependencies:[Jg,Zge,o0e,b0e,ml,R0e,Vu,I$,Uu,n0,K0e,En,Qn],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})(),i_e=(()=>{class n{constructor(e){this.dialog=e}openCustomConfigDialog(){this.dialog.open(n_e,{panelClass:"cc-custom-config-list"})}showAddCustomConfigDialog(){this.dialog.open(DX,{panelClass:"cc-add-custom-config-dialog"})}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-custom-configs"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"cc-ribbon-bar-menu-button",1),o.bIt("click",function(){return r.openCustomConfigDialog()}),o.k0s(),o.j41(2,"cc-ribbon-bar-menu-button",2),o.bIt("click",function(){return r.showAddCustomConfigDialog()}),o.k0s()()),2&i&&(o.R7$(),o.Y8G("title","Open your saved Custom Views"),o.R7$(),o.Y8G("title","Create new Custom View"))},dependencies:[VR],styles:["[_nghost-%COMP%] .custom-configs-panel-buttons[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:4px}"]})}}return n})();function R7(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 s=0;for(let l=i-1;l>=0;l--)"string"==typeof e[l]&&(e[l]=Number.parseFloat(e[l])),s+=1*e[l];if(isNaN(s))throw new Error("percentRound invalid input");if(0===s)r.fill(0);else{const l=Math.pow(10,t),u=100*l;let f=0;for(let p=i-1;p>=0;p--)e[p]=100*e[p]/s,f+=r[p]=Math.round(e[p]*l);if(f!==u){const m=1;let _=Math.abs(f-u);const b=new Array(i);for(let w=0;w0;){let w=0,F=b[0];for(let D=1;Du&&r[D]-m<0)continue;w=D,F=b[D]}f>u?r[w]-=m:r[w]+=m,b[w]-=m,_--}}if(l>1)for(let p=0;pvoid 0!==n.attributes[f]),s=QX(e)[i],l=n.attributes[i],u=n.attributes[zR];l<=s.percentile70?t.lowRisk+=u:l<=s.percentile80?t.moderateRisk+=u:l<=s.percentile90?t.highRisk+=u:t.veryHighRisk+=u}function c_e(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 d_e(n,t){return n.isOutlier&&!t.isOutlier?-1:!n.isOutlier&&t.isOutlier?1:0}function u_e(n){const t=Jw.get(n);return t?`${n} (${t})`:`${n}`}function A_e(n){return n.includes(".")?n.slice(n.lastIndexOf(".")+1):void 0}function m_e(n,t){return P7.some(e=>void 0!==n.attributes[e])&&void 0!==n.attributes[zR]&&!o_e.has(t)}const g_e=sn(kd,sf,(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 s=0,l=0;const u={};for(const{data:p}of lo(n.unifiedMapNode)){const m=A_e(p.name);if(p.type===Zo.FILE&&void 0!==m&&!hu(p.path,t,"exclude")){const _=i.get(m)??0;if(i.set(m,_+1),c_e(p,u,m),m_e(p,m)){const b=P7.find(w=>void 0!==p.attributes[w]);l+=p.attributes[b],s+=p.attributes[zR],s_e(p,r,m)}}}s>0&&l>0&&(e.riskProfile=function a_e(n){const[t,e,i,r]=r_e([n.lowRisk,n.moderateRisk,n.highRisk,n.veryHighRisk]);return{lowRisk:t,moderateRisk:e,highRisk:i,veryHighRisk:r}}(r));const f=function f_e(n){let t,e=-1;for(const[i,r]of n)el.percentile70&&(e.suspiciousMetrics.set(r,{from:l.percentile70,to:l.percentile80}),u>l.percentile90&&e.outliersThresholds.set(r,l.percentile90))}for(const r in n[t])!Object.keys(i).includes(r)&&!e.untrackedMetrics.includes(r)&&e.untrackedMetrics.push(r);return e}(u,f);e.unsuspiciousMetrics=p.unsuspiciousMetrics,e.untrackedMetrics=p.untrackedMetrics,e.suspiciousMetricSuggestionLinks=function l_e(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(d_e)}(p)}return e});let __e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-suspicious-metric-dialog"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"h2",1),o.EFF(2,"Suspicious Metrics Information"),o.k0s(),o.j41(3,"mat-dialog-content",2),o.EFF(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 "),o.j41(5,"a",3),o.EFF(6,"How-To Article "),o.nrm(7,"i",4),o.k0s(),o.EFF(8,". "),o.k0s(),o.j41(9,"mat-dialog-actions",5)(10,"button",6),o.EFF(11,"Close"),o.k0s()()())},dependencies:[$y,ml,Jl,Jo,Ia],encapsulation:2})}}return n})();const b_e=(n,t)=>({"fa-caret-right":n,"fa-caret-down":t});function v_e(n,t){if(1&n&&(o.nrm(0,"br"),o.j41(1,"span",13),o.EFF(2),o.k0s()),2&n){const e=o.XpG().$implicit,i=o.XpG(3);o.R7$(2),o.JRh(i.getDescriptionOfMetric(e.metric))}}function y_e(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-button-toggle",14),o.bIt("click",function(){o.eBV(e);const r=o.XpG().$implicit,s=o.XpG(3);return o.Njj(s.applySuspiciousMetric(r,!0))}),o.EFF(1," High-Risk\xa0"),o.nrm(2,"i",15),o.k0s()}}function w_e(n,t){1&n&&(o.j41(0,"mat-button-toggle",12),o.EFF(1," High-Risk\xa0"),o.nrm(2,"i",16),o.k0s())}function x_e(n,t){if(1&n){const e=o.RV6();o.nrm(0,"div",6),o.j41(1,"div",7)(2,"b"),o.EFF(3),o.nI1(4,"truncateText"),o.k0s(),o.DNE(5,v_e,3,1),o.k0s(),o.j41(6,"div")(7,"mat-button-toggle-group")(8,"mat-button-toggle",8),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG(3);return o.Njj(s.applySuspiciousMetric(r,!1))}),o.EFF(9," Apply preset\xa0"),o.nrm(10,"i",9),o.EFF(11,"\xa0"),o.nrm(12,"i",10),o.k0s(),o.DNE(13,y_e,3,0,"mat-button-toggle",11)(14,w_e,3,0,"mat-button-toggle",12),o.k0s()()}if(2&n){const e=t.$implicit,i=o.XpG(3);o.R7$(),o.FS9("title",i.getNameAndDescriptionOfMetric(e.metric)),o.R7$(2),o.JRh(o.i5U(4,6,e.metric,40)),o.R7$(2),o.vxM(i.getDescriptionOfMetric(e.metric)?5:-1),o.R7$(3),o.Mz_("title","Apply Map Configuration to show files with suspicious metric ",e.metric," and high risk or very high risk depending on selection"),o.R7$(5),o.vxM(e.isOutlier?13:14)}}function C_e(n,t){if(1&n&&(o.j41(0,"div",5),o.Z7z(1,x_e,15,9,null,null,o.fX1),o.k0s()),2&n){const e=o.XpG(2);o.R7$(),o.Dyx(e.data.suspiciousMetricSuggestionLinks)}}function M_e(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",1)(1,"button",2),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.toggleSuspiciousMetricsVisibility())}),o.j41(2,"span",3),o.nrm(3,"i",4),o.k0s(),o.EFF(4," Suspicious Metrics in "),o.j41(5,"code"),o.EFF(6),o.k0s(),o.EFF(7," code "),o.k0s()(),o.DNE(8,C_e,3,0,"div",5)}if(2&n){const e=o.XpG();o.Mz_("title","Suspicious Metrics in .",e.data.analyzedProgrammingLanguage," code"),o.R7$(3),o.Y8G("ngClass",o.l_i(5,b_e,!e.isSuspiciuosMetricsVisible,e.isSuspiciuosMetricsVisible)),o.R7$(3),o.SpI(".",e.data.analyzedProgrammingLanguage,""),o.R7$(2),o.vxM(e.isSuspiciuosMetricsVisible?8:-1)}}function E_e(n,t){if(1&n&&(o.j41(0,"div",0),o.EFF(1," No Suspicious Metrics found in "),o.j41(2,"code"),o.EFF(3),o.k0s(),o.EFF(4,"! "),o.k0s()),2&n){const e=o.XpG();o.Mz_("title","Suspicious Metrics in this .",e.data.analyzedProgrammingLanguage," code"),o.R7$(3),o.SpI(".",e.data.analyzedProgrammingLanguage,"")}}let S_e=(()=>{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(Zp({value:zR})),this.store.dispatch(eA({value:e.metric})),this.store.dispatch(zu({value:e.metric})),this.store.dispatch(hf({value:{from:e.from,to:i?e.outlierThreshold:e.to}})),this.store.dispatch(Wp({value:{positive:i?"#ffffff":af.positive,neutral:i?"#ffffff":af.neutral,negative:i?"#A900C0":af.negative}})),this.matMenuTriggerReference.closeMenu()}getNameAndDescriptionOfMetric(e){const i=Jw.get(e);return i?`${e.toUpperCase()} (${i.toLowerCase()})`:e.toUpperCase()}getDescriptionOfMetric(e){const i=Jw.get(e);return i?`${i.toLowerCase()}`:""}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-suspicious-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},standalone:!0,features:[o.aNF],decls:2,vars:1,consts:[[1,"sub-title-not-text-content","sub-title",3,"title"],[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)"],["title","No high risk profile detected","disabled",""],[1,"sub-sub-title"],["title","Show very high risk files (90th percentile)",3,"click"],[1,"fa","fa-exclamation-triangle","risk-button-active"],[1,"fa","fa-exclamation-triangle"]],template:function(i,r){1&i&&o.DNE(0,M_e,9,8)(1,E_e,5,3,"div",0),2&i&&o.vxM(r.data.suspiciousMetricSuggestionLinks.length?0:1)},dependencies:[En,I7,LR,VX],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 T_e=(n,t)=>({"fa-caret-right":n,"fa-caret-down":t});function I_e(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",0)(1,"button",2),o.bIt("click",function(){o.eBV(e);const r=o.XpG(2);return o.Njj(r.toggleUnsuspiciousMetricsVisibility())}),o.j41(2,"span",3),o.nrm(3,"i",4),o.k0s(),o.EFF(4," Unsuspicious metrics in "),o.j41(5,"code"),o.EFF(6),o.k0s(),o.EFF(7," code "),o.k0s()()}if(2&n){const e=o.XpG(2);o.R7$(3),o.Y8G("ngClass",o.l_i(2,T_e,!e.isUnsuspiciuosMetricsVisible,e.isUnsuspiciuosMetricsVisible)),o.R7$(3),o.SpI(".",e.data.analyzedProgrammingLanguage,"")}}function F_e(n,t){if(1&n&&(o.j41(0,"li"),o.EFF(1),o.k0s()),2&n){const e=t.$implicit;o.R7$(),o.JRh(e)}}function D_e(n,t){if(1&n&&(o.j41(0,"ul",1),o.Z7z(1,F_e,2,1,"li",null,o.fX1),o.k0s()),2&n){const e=o.XpG(2);o.R7$(),o.Dyx(e.data.unsuspiciousMetrics)}}function B_e(n,t){if(1&n&&o.DNE(0,I_e,8,5,"div",0)(1,D_e,3,0,"ul",1),2&n){const e=o.XpG();o.vxM(e.data.analyzedProgrammingLanguage.length?0:-1),o.R7$(),o.vxM(e.isUnsuspiciuosMetricsVisible?1:-1)}}let k_e=(()=>{class n{constructor(){this.isUnsuspiciuosMetricsVisible=!1}toggleUnsuspiciousMetricsVisibility(){this.isUnsuspiciuosMetricsVisible=!this.isUnsuspiciuosMetricsVisible}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-unsuspicious-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},standalone:!0,features:[o.aNF],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&&o.DNE(0,B_e,2,2),2&i&&o.vxM(r.data.unsuspiciousMetrics.length?0:-1)},dependencies:[En],encapsulation:2})}}return n})();const R_e=(n,t)=>({"fa-caret-right":n,"fa-caret-down":t});function P_e(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",0)(1,"button",2),o.bIt("click",function(){o.eBV(e);const r=o.XpG(2);return o.Njj(r.toggleUntrackedMetricsVisibility())}),o.j41(2,"span",3),o.nrm(3,"i",4),o.k0s(),o.EFF(4," Untracked metrics in "),o.j41(5,"code"),o.EFF(6),o.k0s(),o.EFF(7," code "),o.k0s()()}if(2&n){const e=o.XpG(2);o.R7$(3),o.Y8G("ngClass",o.l_i(2,R_e,!e.isUntrackedMetricsVisible,e.isUntrackedMetricsVisible)),o.R7$(3),o.SpI(".",e.data.analyzedProgrammingLanguage,"")}}function O_e(n,t){if(1&n&&(o.j41(0,"li"),o.EFF(1),o.k0s()),2&n){const e=t.$implicit;o.R7$(),o.JRh(e)}}function N_e(n,t){if(1&n&&(o.j41(0,"ul",1),o.Z7z(1,O_e,2,1,"li",null,o.fX1),o.k0s()),2&n){const e=o.XpG(2);o.R7$(),o.Dyx(e.data.untrackedMetrics)}}function L_e(n,t){1&n&&(o.j41(0,"div"),o.EFF(1,"No programming language was found for analyzing suspicious metrics."),o.k0s())}function U_e(n,t){if(1&n&&o.DNE(0,P_e,8,5,"div",0)(1,N_e,3,0,"ul",1)(2,L_e,2,0,"div"),2&n){const e=o.XpG();o.vxM(e.data.analyzedProgrammingLanguage.length?0:-1),o.R7$(),o.vxM(e.isUntrackedMetricsVisible?1:-1),o.R7$(),o.vxM(void 0===e.data.analyzedProgrammingLanguage?2:-1)}}let V_e=(()=>{class n{constructor(){this.isUntrackedMetricsVisible=!1}toggleUntrackedMetricsVisibility(){this.isUntrackedMetricsVisible=!this.isUntrackedMetricsVisible}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-untracked-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},standalone:!0,features:[o.aNF],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&&o.DNE(0,U_e,3,3),2&i&&o.vxM(r.data.untrackedMetrics.length?0:-1)},dependencies:[En],encapsulation:2})}}return n})(),zX=(()=>{class n{constructor(e){this.dialog=e}openDialog(){this.dialog.open(__e,{width:"500px"})}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-suspicious-metrics-menu"]],viewQuery:function(i,r){if(1&i&&(o.GBs(dx,5),o.GBs(uf,5)),2&i){let s;o.mGM(s=o.lsd())&&(r.menuTrigger=s.first),o.mGM(s=o.lsd())&&(r.menu=s.first)}},inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0),o.bIt("click",function(l){return l.stopPropagation()}),o.j41(1,"div")(2,"div",1),o.EFF(3,"Suspicious Metrics"),o.k0s(),o.j41(4,"cc-action-icon",2),o.bIt("click",function(){return r.openDialog()}),o.k0s()(),o.j41(5,"div",3),o.nrm(6,"cc-suspicious-metrics-list",4)(7,"cc-unsuspicious-metrics-list",4)(8,"cc-untracked-metrics-list",4),o.k0s()()),2&i&&(o.R7$(6),o.Y8G("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference),o.R7$(),o.Y8G("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference),o.R7$(),o.Y8G("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference))},dependencies:[Al,S_e,k_e,V_e],styles:[".suspicious-menu-content-wrapper[_ngcontent-%COMP%]{padding:8px}"]})}}return n})();const H_e=["matMenuTrigger"];function Q_e(n,t){if(1&n&&(o.j41(0,"span",3),o.EFF(1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.SpI(" ",e.data.suspiciousMetricSuggestionLinks.length," ")}}let z_e=(()=>{class n{constructor(){this.hideBadge=!1}ngOnChanges(e){e.data&&!sv(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=o.VBU({type:n,selectors:[["cc-suspicious-metrics"]],viewQuery:function(i,r){if(1&i&&(o.GBs(zX,5),o.GBs(H_e,5)),2&i){let s;o.mGM(s=o.lsd())&&(r.menuComponent=s.first),o.mGM(s=o.lsd())&&(r.matMenuTrigger=s.first)}},inputs:{data:"data",menu:"menu"},standalone:!0,features:[o.OA$,o.aNF],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 s=o.RV6();o.j41(0,"cc-ribbon-bar-menu-button",2,0),o.bIt("click",function(){return o.eBV(s),o.Njj(r.hideBadge=!0)}),o.DNE(2,Q_e,2,1,"span",3),o.k0s(),o.j41(3,"mat-menu",4,1),o.nrm(5,"cc-suspicious-metrics-menu",5),o.k0s()}if(2&i){const s=o.sdS(1),l=o.sdS(4);o.Y8G("title","Open Suspicious Metrics Panel")("matMenuTriggerFor",l),o.R7$(2),o.vxM(r.hideBadge||void 0===r.data.analyzedProgrammingLanguage&&!r.data.suspiciousMetricSuggestionLinks.length&&!r.data.unsuspiciousMetrics.length?-1:2),o.R7$(3),o.Y8G("data",r.data)("matMenuTriggerReference",s)}},dependencies:[VR,dx,uf,zX],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})(),G_e=(()=>{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)(o.rXU(o.aKT))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","ccRiskProfileBar",""]],inputs:{ccRiskProfileBar:"ccRiskProfileBar"},standalone:!0,features:[o.OA$]})}}return n})();function j_e(n,t){if(1&n&&(o.j41(0,"div",3),o.EFF(1,"Risk Profile"),o.k0s(),o.j41(2,"div",4),o.EFF(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 "),o.j41(4,"a",5),o.EFF(5,"How-To Article "),o.nrm(6,"i",6),o.k0s(),o.EFF(7,". "),o.k0s(),o.j41(8,"div",7)(9,"div"),o.nrm(10,"i",8),o.EFF(11," Calculations are based on an available complexity metric"),o.k0s()(),o.j41(12,"div",4)(13,"ul")(14,"li"),o.EFF(15),o.k0s(),o.j41(16,"li"),o.EFF(17),o.k0s(),o.j41(18,"li"),o.EFF(19),o.k0s(),o.j41(20,"li"),o.EFF(21),o.k0s()()(),o.j41(22,"div",9)(23,"div",10),o.EFF(24),o.k0s(),o.j41(25,"div",11),o.EFF(26),o.k0s(),o.j41(27,"div",12),o.EFF(28),o.k0s(),o.j41(29,"div",13),o.EFF(30),o.k0s()()),2&n){const e=o.XpG();o.R7$(15),o.SpI("",e.data.riskProfile.lowRisk,"% of overall code is in files with low complexity"),o.R7$(2),o.SpI("",e.data.riskProfile.moderateRisk,"% of overall code is in files with moderate complexity"),o.R7$(2),o.SpI("",e.data.riskProfile.highRisk,"% of overall code is in files with high complexity"),o.R7$(2),o.SpI("",e.data.riskProfile.veryHighRisk,"% of overall code is in files with extreme complexity"),o.R7$(2),o.Mz_("title","Low Risk (",e.data.riskProfile.lowRisk,"% of code)"),o.Y8G("ccRiskProfileBar",e.data.riskProfile.lowRisk),o.R7$(),o.SpI(" ",e.data.riskProfile.lowRisk,"% "),o.R7$(),o.Mz_("title","Moderate Risk (",e.data.riskProfile.moderateRisk,"% of code)"),o.Y8G("ccRiskProfileBar",e.data.riskProfile.moderateRisk),o.R7$(),o.SpI(" ",e.data.riskProfile.moderateRisk,"% "),o.R7$(),o.Mz_("title","High Risk (",e.data.riskProfile.highRisk,"% of code)"),o.Y8G("ccRiskProfileBar",e.data.riskProfile.highRisk),o.R7$(),o.SpI(" ",e.data.riskProfile.highRisk,"% "),o.R7$(),o.Mz_("title","Very High Risk (",e.data.riskProfile.veryHighRisk,"% of code)"),o.Y8G("ccRiskProfileBar",e.data.riskProfile.veryHighRisk),o.R7$(),o.SpI(" ",e.data.riskProfile.veryHighRisk,"% ")}}function $_e(n,t){1&n&&(o.j41(0,"span"),o.EFF(1," Could not calculate Risk Profile. At least one of the metrics rloc (real lines of code) or complexity (cyclomatic complexity) is not available. "),o.k0s(),o.nrm(2,"br")(3,"br"),o.j41(4,"span"),o.EFF(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. "),o.k0s())}let q_e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-high-risk-profile"]],inputs:{data:"data"},standalone:!0,features:[o.aNF],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&&(o.nrm(0,"cc-ribbon-bar-menu-button",1),o.j41(1,"mat-menu",2,0),o.DNE(3,j_e,31,20)(4,$_e,6,0),o.k0s()),2&i){const s=o.sdS(2);o.Y8G("title","Open High Risk Profile")("matMenuTriggerFor",s),o.R7$(3),o.vxM(void 0!==r.data.riskProfile?3:-1),o.R7$(),o.vxM(void 0===r.data.riskProfile?4:-1)}},dependencies:[VR,dx,uf,G_e],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 W_e(n,t){if(1&n&&o.nrm(0,"cc-suspicious-metrics",0)(1,"cc-high-risk-profile",0),2&n){const e=t;o.Y8G("data",e),o.R7$(),o.Y8G("data",e)}}let X_e=(()=>{class n{constructor(e){this.store=e,this.data$=this.store.select(g_e)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-artificial-intelligence"]],standalone:!0,features:[o.aNF],decls:2,vars:3,consts:[[3,"data"]],template:function(i,r){if(1&i&&(o.DNE(0,W_e,2,2),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.data$))?0:-1,s)}},dependencies:[z_e,q_e,Qn],styles:["[_nghost-%COMP%]{display:flex;justify-content:center;gap:4px}"]})}}return n})(),K_e=(()=>{class n{constructor(e){this.store=e,this.areaMetric$=this.store.select(gx)}handleAreaMetricChanged(e){this.store.dispatch(Zp({value:e}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-area-metric-chooser"]],standalone:!0,features:[o.aNF],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&&(o.nrm(0,"cc-metric-chooser",0),o.nI1(1,"async")),2&i&&o.Y8G("selectedMetricName",o.bMT(1,2,r.areaMetric$))("handleMetricChanged",r.handleAreaMetricChanged)},dependencies:[U2,Qn],encapsulation:2})}}return n})();const Y_e=sn(Hc,n=>n.margin),Z_e=sn(Ro,n=>n.enableFloorLabels),J_e=sn(Ro,n=>n.invertArea),ebe=()=>["dynamicSettings.margin","appSettings.invertArea","appSettings.enableFloorLabels"];let tbe=(()=>{class n{static{this.DEBOUNCE_TIME=400}constructor(e){this.store=e,this.margin$=this.store.select(Y_e),this.enableFloorLabels$=this.store.select(Z_e),this.isInvertedArea$=this.store.select(J_e),this.applyDebouncedMargin=pf(i=>{this.store.dispatch(Ax({value:i}))},n.DEBOUNCE_TIME)}setEnableFloorLabel(e){this.store.dispatch(p2({value:e.checked}))}toggleInvertingArea(e){this.store.dispatch(m2({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-area-settings-panel"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0),o.nrm(1,"cc-slider",1),o.nI1(2,"async"),o.j41(3,"mat-checkbox",2),o.nI1(4,"async"),o.bIt("change",function(l){return r.setEnableFloorLabel(l)}),o.EFF(5,"Enable Floor Labels"),o.k0s(),o.j41(6,"mat-checkbox",2),o.nI1(7,"async"),o.bIt("change",function(l){return r.toggleInvertingArea(l)}),o.EFF(8,"Invert Area"),o.k0s(),o.nrm(9,"cc-reset-settings-button",3),o.k0s()),2&i&&(o.R7$(),o.Y8G("value",o.bMT(2,7,r.margin$))("onChange",r.applyDebouncedMargin)("min",1)("max",100),o.R7$(2),o.Y8G("checked",o.bMT(4,9,r.enableFloorLabels$)),o.R7$(3),o.Y8G("checked",o.bMT(7,11,r.isInvertedArea$)),o.R7$(3),o.Y8G("settingsKeys",o.lJ4(13,ebe)))},dependencies:[IR,av,P2,Qn],styles:["[_nghost-%COMP%]{text-align:left;max-height:300px}[_nghost-%COMP%] .options[_ngcontent-%COMP%]{display:flex;flex-direction:column}"]})}}return n})(),nbe=(()=>{class n{constructor(e){this.store=e,this.heightMetric$=this.store.select(B2)}handleHeightMetricChanged(e){this.store.dispatch(eA({value:e}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-height-metric-chooser"]],standalone:!0,features:[o.aNF],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&&(o.nrm(0,"cc-metric-chooser",0),o.nI1(1,"async")),2&i&&o.Y8G("selectedMetricName",o.bMT(1,2,r.heightMetric$))("handleMetricChanged",r.handleHeightMetricChanged)},dependencies:[U2,Qn],encapsulation:2})}}return n})();const ibe=sn(Ro,n=>n.amountOfTopLabels),GX=sn(Ro,n=>n.colorLabels),rbe=sn(GX,n=>n.negative||n.neutral||n.positive),obe=sn(Ro,n=>n.showMetricLabelNodeName),sbe=sn(Ro,n=>n.showMetricLabelNameValue),abe=sn(Ro,n=>n.scaling),lbe=sn(Ro,n=>n.invertHeight),cbe=()=>["appSettings.amountOfTopLabels","appSettings.scaling.y","appSettings.invertHeight"];function dbe(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-checkbox",1),o.nI1(1,"async"),o.bIt("change",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.setInvertHeight(r))}),o.EFF(2," Invert Height "),o.k0s()}if(2&n){const e=o.XpG();o.Y8G("checked",o.bMT(1,1,e.invertHeight$))}}let ube=(()=>{class n{static{this.DEBOUNCE_TIME=400}constructor(e){this.store=e,this.amountOfTopLabels$=this.store.select(ibe),this.isLabelsSliderDisabled$=this.store.select(rbe),this.showMetricLabelNodeName$=this.store.select(obe),this.showMetricLabelNodeValue$=this.store.select(sbe),this.scaling$=this.store.select(abe),this.invertHeight$=this.store.select(lbe),this.isDeltaState$=this.store.select(u0),this.applyDebouncedTopLabels=pf(i=>{this.store.dispatch(o0({value:i}))},n.DEBOUNCE_TIME),this.applyDebouncedScalingY=pf(i=>{this.store.dispatch(px({value:{y:i}}))},n.DEBOUNCE_TIME)}setShowMetricLabelNodeName(e){this.store.dispatch(x2({value:e.checked}))}setShowMetricLabelNameValue(e){this.store.dispatch(w2({value:e.checked}))}setInvertHeight(e){this.store.dispatch(g2({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-height-settings-panel"]],standalone:!0,features:[o.aNF],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&&(o.nrm(0,"cc-slider",0),o.nI1(1,"async"),o.nI1(2,"async"),o.nI1(3,"async"),o.nI1(4,"async"),o.j41(5,"mat-checkbox",1),o.nI1(6,"async"),o.bIt("change",function(l){return r.setShowMetricLabelNodeName(l)}),o.EFF(7,"Show label node names\n"),o.k0s(),o.j41(8,"mat-checkbox",1),o.nI1(9,"async"),o.bIt("change",function(l){return r.setShowMetricLabelNameValue(l)}),o.EFF(10,"Show label node metrics\n"),o.k0s(),o.nrm(11,"cc-slider",2),o.nI1(12,"async"),o.DNE(13,dbe,3,3,"mat-checkbox",3),o.nI1(14,"async"),o.nrm(15,"cc-reset-settings-button",4)),2&i&&(o.Y8G("disabled",o.bMT(1,15,r.isLabelsSliderDisabled$))("title",o.bMT(2,17,r.isLabelsSliderDisabled$)?"Disabled because color labels are used":"Display the labels of the "+o.bMT(3,19,r.amountOfTopLabels$)+" highest buildings")("min",0)("max",50)("value",o.bMT(4,21,r.amountOfTopLabels$))("onChange",r.applyDebouncedTopLabels),o.R7$(5),o.Y8G("checked",o.bMT(6,23,r.showMetricLabelNodeName$)),o.R7$(3),o.Y8G("checked",o.bMT(9,25,r.showMetricLabelNodeValue$)),o.R7$(3),o.Y8G("step",1)("min",1)("max",5)("value",o.bMT(12,27,r.scaling$).y)("onChange",r.applyDebouncedScalingY),o.R7$(2),o.vxM(o.bMT(14,29,r.isDeltaState$)?-1:13),o.R7$(2),o.Y8G("settingsKeys",o.lJ4(31,cbe)))},dependencies:[IR,av,P2,Qn],encapsulation:2})}}return n})();const O7=sn(Ro,n=>n.isColorMetricLinkedToHeightMetric);let hbe=(()=>{class n{constructor(e){this.store=e,this.isColorMetricLinkedToHeightMetric$=this.store.select(O7)}toggleIsColorMetricLinkedToHeightMetric(){this.store.dispatch(X8())}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-link-color-metric-to-height-metric-button"]],standalone:!0,features:[o.aNF],decls:4,vars:6,consts:[[1,"cc-link-metrics-button",3,"click","title"],[3,"ngClass"]],template:function(i,r){1&i&&(o.j41(0,"button",0),o.nI1(1,"async"),o.bIt("click",function(){return r.toggleIsColorMetricLinkedToHeightMetric()}),o.nrm(2,"i",1),o.nI1(3,"async"),o.k0s()),2&i&&(o.FS9("title",o.bMT(1,2,r.isColorMetricLinkedToHeightMetric$)?"Unlink Height and Color Metric":"Link Height and Color Metric"),o.R7$(2),o.Y8G("ngClass",o.bMT(3,4,r.isColorMetricLinkedToHeightMetric$)?"fa fa-chain-broken":"fa fa-link"))},dependencies:[En,Qn],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})(),fbe=(()=>{class n{constructor(e){this.store=e,this.colorMetric$=this.store.select(Gg),this.isColorMetricLinkedToHeightMetric$=this.store.select(O7)}handleColorMetricChanged(e){this.store.dispatch(zu({value:e}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-color-metric-chooser"]],standalone:!0,features:[o.aNF],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&&(o.nrm(0,"cc-metric-chooser",0),o.nI1(1,"async"),o.nI1(2,"async"),o.nI1(3,"async")),2&i&&(o.Y8G("selectedMetricName",o.bMT(1,4,r.colorMetric$))("handleMetricChanged",r.handleColorMetricChanged)("isDisabled",o.bMT(2,6,r.isColorMetricLinkedToHeightMetric$)),o.BMQ("title",o.bMT(3,8,r.isColorMetricLinkedToHeightMetric$)?"Currently linked to height metric":"Change color metric"))},dependencies:[U2,Qn],encapsulation:2})}}return n})();const Abe=({thumbX:n,minValue:t,maxValue:e,sliderWidth:i})=>Math.round(t+n*((e-t)/i)),jX=({newThumbScreenX:n,sliderBoundingClientRectX:t,thumbRadius:e,sliderWidth:i,minValue:r,maxValue:s})=>{const l=n-t+e;return{updatedThumbX:l,upcomingValue:Abe({thumbX:l,minValue:r,maxValue:s,sliderWidth:i})}},_be=["minLabel"],bbe=["maxLabel"],vbe=["currentLeftLabel"],ybe=["currentRightLabel"],wbe=["combinedCurrentLeftRightLabel"];let xbe=(()=>{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,s=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>=s;const l=this.currentLeftLabelLeftPosition+i;this.doLeftRightLabelOverlap=l+4>=this.currentRightLabelLeftPosition;const u=(l+this.currentRightLabelLeftPosition)/2,f=this.combinedCurrentLeftRightLabel.nativeElement.getBoundingClientRect().width;this.combinedCurrentLeftRightLabelLeftPosition=u-f/2,this.changeDetector.detectChanges()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.gRc))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-range-slider-labels"]],viewQuery:function(i,r){if(1&i&&(o.GBs(_be,5),o.GBs(bbe,5),o.GBs(vbe,5),o.GBs(ybe,5),o.GBs(wbe,5)),2&i){let s;o.mGM(s=o.lsd())&&(r.minLabel=s.first),o.mGM(s=o.lsd())&&(r.maxLabel=s.first),o.mGM(s=o.lsd())&&(r.currentLeftLabel=s.first),o.mGM(s=o.lsd())&&(r.currentRightLabel=s.first),o.mGM(s=o.lsd())&&(r.combinedCurrentLeftRightLabel=s.first)}},inputs:{minValue:"minValue",maxValue:"maxValue",leftValueLabel:"leftValueLabel",rightValueLabel:"rightValueLabel",sliderRangePosition:"sliderRangePosition",sliderWidth:"sliderWidth"},standalone:!0,features:[o.aNF],decls:15,vars:26,consts:[["minLabel",""],["currentLeftLabel",""],["currentRightLabel",""],["combinedCurrentLeftRightLabel",""],["maxLabel",""],[1,"cc-range-slider-label"]],template:function(i,r){1&i&&(o.j41(0,"div",5,0),o.EFF(2),o.k0s(),o.j41(3,"div",5,1),o.EFF(5),o.k0s(),o.j41(6,"div",5,2),o.EFF(8),o.k0s(),o.j41(9,"div",5,3),o.EFF(11),o.k0s(),o.j41(12,"div",5,4),o.EFF(14),o.k0s()),2&i&&(o.xc7("left",0,"px")("visibility",r.hideMinLabel?"hidden":"visible"),o.R7$(2),o.SpI(" ",r.minValue,"\n"),o.R7$(),o.xc7("left",r.currentLeftLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"hidden":"visible"),o.R7$(2),o.SpI(" ",r.leftValueLabel,"\n"),o.R7$(),o.xc7("left",r.currentRightLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"hidden":"visible"),o.R7$(2),o.SpI(" ",r.rightValueLabel,"\n"),o.R7$(),o.xc7("left",r.combinedCurrentLeftRightLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"visible":"hidden"),o.R7$(2),o.Lme(" ",r.leftValueLabel," - ",r.rightValueLabel,"\n"),o.R7$(),o.xc7("right",0,"px")("visibility",r.hideMaxLabel?"hidden":"visible"),o.R7$(2),o.SpI(" ",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 Cbe=["rangeSliderContainer"],Mbe=["leftThumb"],Ebe=["rightThumb"];let Sbe=(()=>{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:s,minValue:l,maxValue:u})=>{let f=t+n;return fi&&(f=i),jX({newThumbScreenX:f,sliderBoundingClientRectX:r,thumbRadius:e,sliderWidth:s,minValue:l,maxValue:u})})({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:s,minValue:l,maxValue:u})=>{let f=t+n;return f>r+s-e&&(f=r+s-e),f{const s=t-n;return s<=0?{leftEnd:r,rightStart:r}:{leftEnd:(e-n)/s*r,rightStart:(i-n)/s*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=p7(e,this.minValue,this.currentRightValue);i!==this.currentLeftValue&&this.handleValueChange({newLeftValue:i})}handleCurrentRightInputChanged(e){const i=p7(e,this.currentLeftValue,this.maxValue);i!==this.currentRightValue&&this.handleValueChange({newRightValue:i})}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-metric-color-range-slider"]],viewQuery:function(i,r){if(1&i&&(o.GBs(Cbe,5),o.GBs(Mbe,5),o.GBs(Ebe,5)),2&i){let s;o.mGM(s=o.lsd())&&(r.sliderContainer=s.first),o.mGM(s=o.lsd())&&(r.leftThumb=s.first),o.mGM(s=o.lsd())&&(r.rightThumb=s.first)}},inputs:{minValue:"minValue",maxValue:"maxValue",currentLeftValue:"currentLeftValue",currentRightValue:"currentRightValue",leftColor:"leftColor",middleColor:"middleColor",rightColor:"rightColor",handleValueChange:"handleValueChange",sliderWidth:"sliderWidth",isAttributeDirectionInversed:"isAttributeDirectionInversed"},standalone:!0,features:[o.OA$,o.aNF],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 s=o.RV6();o.j41(0,"div",3)(1,"mat-form-field",4)(2,"input",5),o.bIt("input",function(u){return o.eBV(s),o.Njj(r.handleCurrentLeftInputChanged(u))}),o.k0s()(),o.j41(3,"div",6,0),o.nrm(5,"span",7)(6,"span",7)(7,"span",7),o.j41(8,"div",8,1),o.bIt("mousedown",function(){return o.eBV(s),o.Njj(r.setCurrentlySliding("leftThumb"))}),o.k0s(),o.j41(10,"div",8,2),o.bIt("mousedown",function(){return o.eBV(s),o.Njj(r.setCurrentlySliding("rightThumb"))}),o.k0s(),o.nrm(12,"cc-range-slider-labels",9),o.k0s(),o.j41(13,"mat-form-field",4)(14,"input",5),o.bIt("input",function(u){return o.eBV(s),o.Njj(r.handleCurrentRightInputChanged(u))}),o.k0s()()()}2&i&&(o.R7$(2),o.Y8G("value",r.currentLeftValue)("min",r.minValue)("max",r.upcomingRightValue),o.R7$(3),o.xc7("width",r.sliderRangePosition.leftEnd,"px")("border-bottom-color",r.leftColor),o.R7$(),o.xc7("width",r.sliderRangePosition.rightStart-r.sliderRangePosition.leftEnd,"px")("border-bottom-color",r.middleColor),o.R7$(),o.xc7("width",r.sliderWidth-r.sliderRangePosition.rightStart,"px")("border-bottom-color",r.rightColor),o.R7$(),o.xc7("left",r.sliderRangePosition.leftEnd-r.thumbRadius,"px"),o.R7$(2),o.xc7("left",r.sliderRangePosition.rightStart-r.thumbRadius,"px"),o.R7$(2),o.Y8G("minValue",r.minValue)("maxValue",r.maxValue)("leftValueLabel",r.upcomingLeftValue)("rightValueLabel",r.upcomingRightValue)("sliderRangePosition",r.sliderRangePosition)("sliderWidth",r.sliderWidth),o.R7$(2),o.Y8G("value",r.currentRightValue)("min",r.upcomingLeftValue)("max",r.maxValue))},dependencies:[Vu,n0,xbe],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 Tbe=sn(Zw,u0,n=>({leftColor:n.positive,middleColor:n.neutral,rightColor:n.negative})),$X=sn(Hc,n=>n.colorRange),Ibe=sn(qp,$X,(n,t)=>({values:n.values,min:n.minValue,max:n.maxValue,from:t.from,to:t.to}));function qX(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 Dbe(n){return n}function Bbe(n){return"translate("+n+",0)"}function kbe(n){return"translate(0,"+n+")"}function Rbe(n){return t=>+n(t)}function Pbe(n,t){return t=Math.max(0,n.bandwidth()-2*t)/2,n.round()&&(t=Math.round(t)),e=>+n(e)+t}function Obe(){return!this.__axis}function $R(n,t){var e=[],i=null,r=null,s=6,l=6,u=3,f=typeof window<"u"&&window.devicePixelRatio>1?0:.5,p=1===n||4===n?-1:1,m=4===n||2===n?"x":"y",_=1===n||3===n?Bbe:kbe;function b(w){var F=i??(t.ticks?t.ticks.apply(t,e):t.domain()),D=r??(t.tickFormat?t.tickFormat.apply(t,e):Dbe),T=Math.max(s,0)+u,I=t.range(),O=+I[0]+f,R=+I[I.length-1]+f,P=(t.bandwidth?Pbe:Rbe)(t.copy(),f),ee=w.selection?w.selection():w,J=ee.selectAll(".domain").data([null]),te=ee.selectAll(".tick").data(F,t).order(),ie=te.exit(),W=te.enter().append("g").attr("class","tick"),q=te.select("line"),le=te.select("text");J=J.merge(J.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),te=te.merge(W),q=q.merge(W.append("line").attr("stroke","currentColor").attr(m+"2",p*s)),le=le.merge(W.append("text").attr("fill","currentColor").attr(m,p*T).attr("dy",1===n?"0em":3===n?"0.71em":"0.32em")),w!==ee&&(J=J.transition(w),te=te.transition(w),q=q.transition(w),le=le.transition(w),ie=ie.transition(w).attr("opacity",1e-6).attr("transform",function(ke){return isFinite(ke=P(ke))?_(ke+f):this.getAttribute("transform")}),W.attr("opacity",1e-6).attr("transform",function(ke){var Ue=this.parentNode.__axis;return _((Ue&&isFinite(Ue=Ue(ke))?Ue:P(ke))+f)})),ie.remove(),J.attr("d",4===n||2===n?l?"M"+p*l+","+O+"H"+f+"V"+R+"H"+p*l:"M"+f+","+O+"V"+R:l?"M"+O+","+p*l+"V"+f+"H"+R+"V"+p*l:"M"+O+","+f+"H"+R),te.attr("opacity",1).attr("transform",function(ke){return _(P(ke)+f)}),q.attr(m+"2",p*s),le.attr(m,p*T).text(D),ee.filter(Obe).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===n?"start":4===n?"end":"middle"),ee.each(function(){this.__axis=P})}return b.scale=function(w){return arguments.length?(t=w,b):t},b.ticks=function(){return e=Array.from(arguments),b},b.tickArguments=function(w){return arguments.length?(e=null==w?[]:Array.from(w),b):e.slice()},b.tickValues=function(w){return arguments.length?(i=null==w?null:Array.from(w),b):i&&i.slice()},b.tickFormat=function(w){return arguments.length?(r=w,b):r},b.tickSize=function(w){return arguments.length?(s=l=+w,b):s},b.tickSizeInner=function(w){return arguments.length?(s=+w,b):s},b.tickSizeOuter=function(w){return arguments.length?(l=+w,b):l},b.tickPadding=function(w){return arguments.length?(u=+w,b):u},b.offset=function(w){return arguments.length?(f=+w,b):f},b}function Ube(){}function U7(n){return null==n?Ube:function(){return this.querySelector(n)}}function Qbe(){return[]}function XX(n){return null==n?Qbe:function(){return this.querySelectorAll(n)}}function KX(n){return function(){return this.matches(n)}}function YX(n){return function(t){return t.matches(n)}}var jbe=Array.prototype.find;function qbe(){return this.firstElementChild}var Xbe=Array.prototype.filter;function Kbe(){return Array.from(this.children)}function ZX(n){return new Array(n.length)}function qR(n,t){this.ownerDocument=n.ownerDocument,this.namespaceURI=n.namespaceURI,this._next=null,this._parent=n,this.__data__=t}function nve(n,t,e,i,r,s){for(var u,l=0,f=t.length,p=s.length;lt?1:n>=t?0:NaN}qR.prototype={constructor:qR,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 V7="http://www.w3.org/1999/xhtml";const JX={svg:"http://www.w3.org/2000/svg",xhtml:V7,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function WR(n){var t=n+="",e=t.indexOf(":");return e>=0&&"xmlns"!==(t=n.slice(0,e))&&(n=n.slice(e+1)),JX.hasOwnProperty(t)?{space:JX[t],local:n}:n}function bve(n){return function(){this.removeAttribute(n)}}function vve(n){return function(){this.removeAttributeNS(n.space,n.local)}}function yve(n,t){return function(){this.setAttribute(n,t)}}function wve(n,t){return function(){this.setAttributeNS(n.space,n.local,t)}}function xve(n,t){return function(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}}function Cve(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 eK(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView}function Eve(n){return function(){this.style.removeProperty(n)}}function Sve(n,t,e){return function(){this.style.setProperty(n,t,e)}}function Tve(n,t,e){return function(){var i=t.apply(this,arguments);null==i?this.style.removeProperty(n):this.style.setProperty(n,i,e)}}function Mx(n,t){return n.style.getPropertyValue(t)||eK(n).getComputedStyle(n,null).getPropertyValue(t)}function Fve(n){return function(){delete this[n]}}function Dve(n,t){return function(){this[n]=t}}function Bve(n,t){return function(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}}function tK(n){return n.trim().split(/^|\s+/)}function H7(n){return n.classList||new nK(n)}function nK(n){this._node=n,this._names=tK(n.getAttribute("class")||"")}function iK(n,t){for(var e=H7(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 aK=[null];function jc(n,t){this._groups=n,this._parents=t}function lK(){return new jc([[document.documentElement]],aK)}jc.prototype=lK.prototype={constructor:jc,select:function Vbe(n){"function"!=typeof n&&(n=U7(n));for(var t=this._groups,e=t.length,i=new Array(e),r=0;r=R&&(R=O+1);!(ee=T[R])&&++R=0;)(l=i[r])&&(s&&4^l.compareDocumentPosition(s)&&s.parentNode.insertBefore(l,s),s=l);return this},sort:function uve(n){function t(_,b){return _&&b?n(_.__data__,b.__data__):!_-!b}n||(n=hve);for(var e=this._groups,i=e.length,r=new Array(i),s=0;s1?this.each((null==t?Eve:"function"==typeof t?Tve:Sve)(n,t,e??"")):Mx(this.node(),n)},property:function kve(n,t){return arguments.length>1?this.each((null==t?Fve:"function"==typeof t?Bve:Dve)(n,t)):this.node()[n]},classed:function Nve(n,t){var e=tK(n+"");if(arguments.length<2){for(var i=H7(this.node()),r=-1,s=e.length;++r=0&&(e=t.slice(i+1),t=t.slice(0,i)),{type:t,name:e}})}(n+""),s=i.length;if(!(arguments.length<2)){for(u=t?dye:cye,r=0;r{}};function cK(){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),s=-1,l=i.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++s0)for(var r,s,e=new Array(r),i=0;i=0&&n._call.call(void 0,t),n=n._next;--Ex}()}finally{Ex=0,function Cye(){for(var n,e,t=KR,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:KR=e);j2=n,z7(i)}(),dv=0}}function xye(){var n=$2.now(),t=n-YR;t>uK&&(ZR-=t,YR=n)}function z7(n){Ex||(z2&&(z2=clearTimeout(z2)),n-dv>24?(n<1/0&&(z2=setTimeout(pK,n-$2.now()-ZR)),G2&&(G2=clearInterval(G2))):(G2||(YR=$2.now(),G2=setInterval(xye,uK)),Ex=1,hK(pK)))}function AK(n,t,e){var i=new JR;return i.restart(r=>{i.stop(),n(r+t)},t=null==t?0:+t,e),i}JR.prototype=fK.prototype={constructor:JR,restart:function(n,t,e){if("function"!=typeof n)throw new TypeError("callback is not a function");e=(null==e?Q7():+e)+(null==t?0:+t),!this._next&&j2!==this&&(j2?j2._next=this:KR=this,j2=this),this._call=n,this._time=e,z7()},stop:function(){this._call&&(this._call=null,this._time=1/0,z7())}};var Mye=vye("start","end","cancel","interrupt"),Eye=[],mK=0,eP=3;function nP(n,t,e,i,r,s){var l=n.__transition;if(l){if(e in l)return}else n.__transition={};!function Sye(n,t,e){var r,i=n.__transition;function l(p){var m,_,b,w;if(1!==e.state)return f();for(m in i)if((w=i[m]).name===e.name){if(w.state===eP)return AK(l);4===w.state?(w.state=6,w.timer.stop(),w.on.call("interrupt",n,n.__data__,w.index,w.group),delete i[m]):+mmK)throw new Error("too late; already scheduled");return e}function Af(n,t){var e=Gu(n,t);if(e.state>eP)throw new Error("too late; already running");return e}function Gu(n,t){var e=n.__transition;if(!e||!(e=e[t]))throw new Error("transition not found");return e}function ju(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}var iP,bK=180/Math.PI,q7={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function vK(n,t,e,i,r,s){var l,u,f;return(l=Math.sqrt(n*n+t*t))&&(n/=l,t/=l),(f=n*e+t*i)&&(e-=n*f,i-=t*f),(u=Math.sqrt(e*e+i*i))&&(e/=u,i/=u,f/=u),n*i180?m+=360:m-p>180&&(p+=360),b.push({i:_.push(r(_)+"rotate(",null,i)-2,x:ju(p,m)})):m&&_.push(r(_)+"rotate("+m+i)}(p.rotate,m.rotate,_,b),function u(p,m,_,b){p!==m?b.push({i:_.push(r(_)+"skewX(",null,i)-2,x:ju(p,m)}):m&&_.push(r(_)+"skewX("+m+i)}(p.skewX,m.skewX,_,b),function f(p,m,_,b,w,F){if(p!==_||m!==b){var D=w.push(r(w)+"scale(",null,",",null,")");F.push({i:D-4,x:ju(p,_)},{i:D-2,x:ju(m,b)})}else(1!==_||1!==b)&&w.push(r(w)+"scale("+_+","+b+")")}(p.scaleX,p.scaleY,m.scaleX,m.scaleY,_,b),p=m=null,function(w){for(var T,F=-1,D=b.length;++F>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===e?oP(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===e?oP(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=Lye.exec(n))?new uc(t[1],t[2],t[3],1):(t=Uye.exec(n))?new uc(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Vye.exec(n))?oP(t[1],t[2],t[3],t[4]):(t=Hye.exec(n))?oP(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Qye.exec(n))?IK(t[1],t[2]/100,t[3]/100,1):(t=zye.exec(n))?IK(t[1],t[2]/100,t[3]/100,t[4]):xK.hasOwnProperty(n)?EK(xK[n]):"transparent"===n?new uc(NaN,NaN,NaN,0):null}function EK(n){return new uc(n>>16&255,n>>8&255,255&n,1)}function oP(n,t,e,i){return i<=0&&(n=t=e=NaN),new uc(n,t,e,i)}function sP(n,t,e,i){return 1===arguments.length?function $ye(n){return n instanceof q2||(n=uv(n)),n?new uc((n=n.rgb()).r,n.g,n.b,n.opacity):new uc}(n):new uc(n,t,e,i??1)}function uc(n,t,e,i){this.r=+n,this.g=+t,this.b=+e,this.opacity=+i}function SK(){return`#${fv(this.r)}${fv(this.g)}${fv(this.b)}`}function TK(){const n=aP(this.opacity);return`${1===n?"rgb(":"rgba("}${hv(this.r)}, ${hv(this.g)}, ${hv(this.b)}${1===n?")":`, ${n})`}`}function aP(n){return isNaN(n)?1:Math.max(0,Math.min(1,n))}function hv(n){return Math.max(0,Math.min(255,Math.round(n)||0))}function fv(n){return((n=hv(n))<16?"0":"")+n.toString(16)}function IK(n,t,e,i){return i<=0?n=t=e=NaN:e<=0||e>=1?n=t=NaN:t<=0&&(n=NaN),new $u(n,t,e,i)}function FK(n){if(n instanceof $u)return new $u(n.h,n.s,n.l,n.opacity);if(n instanceof q2||(n=uv(n)),!n)return new $u;if(n instanceof $u)return n;var t=(n=n.rgb()).r/255,e=n.g/255,i=n.b/255,r=Math.min(t,e,i),s=Math.max(t,e,i),l=NaN,u=s-r,f=(s+r)/2;return u?(l=t===s?(e-i)/u+6*(e0&&f<1?0:l,new $u(l,u,f,n.opacity)}function $u(n,t,e,i){this.h=+n,this.s=+t,this.l=+e,this.opacity=+i}function DK(n){return(n=(n||0)%360)<0?n+360:n}function lP(n){return Math.max(0,Math.min(1,n||0))}function K7(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 BK(n,t,e,i,r){var s=n*n,l=s*n;return((1-3*n+3*s-l)*t+(4-6*s+3*l)*e+(1+3*n+3*s-3*l)*i+l*r)/6}X7(q2,uv,{copy(n){return Object.assign(new this.constructor,this,n)},displayable(){return this.rgb().displayable()},hex:CK,formatHex:CK,formatHex8:function Gye(){return this.rgb().formatHex8()},formatHsl:function jye(){return FK(this).formatHsl()},formatRgb:MK,toString:MK}),X7(uc,sP,wK(q2,{brighter(n){return n=null==n?rP:Math.pow(rP,n),new uc(this.r*n,this.g*n,this.b*n,this.opacity)},darker(n){return n=null==n?.7:Math.pow(.7,n),new uc(this.r*n,this.g*n,this.b*n,this.opacity)},rgb(){return this},clamp(){return new uc(hv(this.r),hv(this.g),hv(this.b),aP(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:SK,formatHex:SK,formatHex8:function qye(){return`#${fv(this.r)}${fv(this.g)}${fv(this.b)}${fv(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:TK,toString:TK})),X7($u,function Wye(n,t,e,i){return 1===arguments.length?FK(n):new $u(n,t,e,i??1)},wK(q2,{brighter(n){return n=null==n?rP:Math.pow(rP,n),new $u(this.h,this.s,this.l*n,this.opacity)},darker(n){return n=null==n?.7:Math.pow(.7,n),new $u(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 uc(K7(n>=240?n-240:n+120,r,i),K7(n,r,i),K7(n<120?n+240:n-120,r,i),this.opacity)},clamp(){return new $u(DK(this.h),lP(this.s),lP(this.l),aP(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=aP(this.opacity);return`${1===n?"hsl(":"hsla("}${DK(this.h)}, ${100*lP(this.s)}%, ${100*lP(this.l)}%${1===n?")":`, ${n})`}`}}));const Y7=n=>()=>n;function RK(n,t){var e=t-n;return e?function kK(n,t){return function(e){return n+e*t}}(n,e):Y7(isNaN(n)?t:n)}const cP=function n(t){var e=function Zye(n){return 1==(n=+n)?RK:function(t,e){return e-t?function Yye(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):Y7(isNaN(t)?e:t)}}(t);function i(r,s){var l=e((r=sP(r)).r,(s=sP(s)).r),u=e(r.g,s.g),f=e(r.b,s.b),p=RK(r.opacity,s.opacity);return function(m){return r.r=l(m),r.g=u(m),r.b=f(m),r.opacity=p(m),r+""}}return i.gamma=n,i}(1);function PK(n){return function(t){var l,u,e=t.length,i=new Array(e),r=new Array(e),s=new Array(e);for(l=0;l=1?(e=1,t-1):Math.floor(e*t),r=n[i],s=n[i+1];return BK((e-i/t)*t,i>0?n[i-1]:2*r-s,r,s,ie&&(s=t.slice(e,s),u[l]?u[l]+=s:u[++l]=s),(i=i[0])===(r=r[0])?u[l]?u[l]+=r:u[++l]=r:(u[++l]=null,f.push({i:l,x:ju(i,r)})),e=J7.lastIndex;return e=0&&(t=t.slice(0,e)),!t||"start"===t})}(t)?$7:Af;return function(){var l=s(this,n),u=l.on;u!==i&&(r=(i=u).copy()).on(t,e),l.on=r}}(e,n,t))},attr:function a1e(n,t){var e=WR(n),i="transform"===e?kye:NK;return this.attrTween(n,"function"==typeof t?(e.local?s1e:o1e)(e,i,W7(this,"attr."+n,t)):null==t?(e.local?n1e:t1e)(e):(e.local?r1e:i1e)(e,i,t))},attrTween:function h1e(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=WR(n);return this.tween(e,(i.local?d1e:u1e)(i,t))},style:function L1e(n,t,e){var i="transform"==(n+="")?Bye:NK;return null==t?this.styleTween(n,function R1e(n,t){var e,i,r;return function(){var s=Mx(this,n),l=(this.style.removeProperty(n),Mx(this,n));return s===l?null:s===e&&l===i?r:r=t(e=s,i=l)}}(n,i)).on("end.style."+n,LK(n)):"function"==typeof t?this.styleTween(n,function O1e(n,t,e){var i,r,s;return function(){var l=Mx(this,n),u=e(this),f=u+"";return null==u&&(this.style.removeProperty(n),f=u=Mx(this,n)),l===f?null:l===i&&f===r?s:(r=f,s=t(i=l,u))}}(n,i,W7(this,"style."+n,t))).each(function N1e(n,t){var e,i,r,u,s="style."+t,l="end."+s;return function(){var f=Af(this,n),p=f.on,m=null==f.value[s]?u||(u=LK(t)):void 0;(p!==e||r!==m)&&(i=(e=p).copy()).on(l,r=m),f.on=i}}(this._id,n)):this.styleTween(n,function P1e(n,t,e){var i,s,r=e+"";return function(){var l=Mx(this,n);return l===r?null:l===i?s:s=t(i=l,e)}}(n,i,t),e).on("end.style."+n,null)},styleTween:function H1e(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 V1e(n,t,e){var i,r;function s(){var l=t.apply(this,arguments);return l!==r&&(i=(r=l)&&function U1e(n,t,e){return function(i){this.style.setProperty(n,t.call(this,i),e)}}(n,l,e)),i}return s._value=t,s}(n,t,e??""))},text:function G1e(n){return this.tween("text","function"==typeof n?function z1e(n){return function(){var t=n(this);this.textContent=t??""}}(W7(this,"text",n)):function Q1e(n){return function(){this.textContent=n}}(null==n?"":n+""))},textTween:function q1e(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 $1e(n){var t,e;function i(){var r=n.apply(this,arguments);return r!==e&&(t=(e=r)&&function j1e(n){return function(t){this.textContent=n.call(this,t)}}(r)),t}return i._value=n,i}(n))},remove:function I1e(){return this.on("end.remove",function T1e(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 Oye(n,t){var e=this._id;if(n+="",arguments.length<2){for(var l,i=Gu(this.node(),e).tween,r=0,s=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[l]):s=!1;s&&delete n.__transition}}(this,n)})},Q2.prototype.transition=function twe(n){var t,e;n instanceof aA?(t=n._id,n=n._name):(t=UK(),(e=J1e).time=Q7(),n=null==n?null:n+"");for(var i=this._groups,r=i.length,s=0;s1?i[0]+i.slice(2):i,+n.slice(e+1)]}function Fx(n){return(n=hP(Math.abs(n)))?n[1]:NaN}["w","e"].map(K2),["n","s"].map(K2),["n","w","e","s","nw","ne","sw","se"].map(K2);var jK,hwe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function fP(n){if(!(t=hwe.exec(n)))throw new Error("invalid format: "+n);var t;return new rV({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 rV(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 $K(n,t){var e=hP(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")}fP.prototype=rV.prototype,rV.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 qK={"%":(n,t)=>(100*n).toFixed(t),b:n=>Math.round(n).toString(2),c:n=>n+"",d:function cwe(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)=>$K(100*n,t),r:$K,s:function pwe(n,t){var e=hP(n,t);if(!e)return n+"";var i=e[0],r=e[1],s=r-(jK=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,l=i.length;return s===l?i:s>l?i+new Array(s-l+1).join("0"):s>0?i.slice(0,s)+"."+i.slice(s):"0."+new Array(1-s).join("0")+hP(n,Math.max(0,t+s-1))[0]},X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function WK(n){return n}var pP,AP,YK,XK=Array.prototype.map,KK=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];!function mwe(n){pP=function Awe(n){var t=void 0===n.grouping||void 0===n.thousands?WK:function dwe(n,t){return function(e,i){for(var r=e.length,s=[],l=0,u=n[0],f=0;r>0&&u>0&&(f+u+1>i&&(u=Math.max(1,i-f)),s.push(e.substring(r-=u,r+u)),!((f+=u+1)>i));)u=n[l=(l+1)%n.length];return s.reverse().join(t)}}(XK.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+"",s=void 0===n.numerals?WK:function uwe(n){return function(t){return t.replace(/[0-9]/g,function(e){return n[+e]})}}(XK.call(n.numerals,String)),l=void 0===n.percent?"%":n.percent+"",u=void 0===n.minus?"\u2212":n.minus+"",f=void 0===n.nan?"NaN":n.nan+"";function p(_){var b=(_=fP(_)).fill,w=_.align,F=_.sign,D=_.symbol,T=_.zero,I=_.width,O=_.comma,R=_.precision,P=_.trim,ee=_.type;"n"===ee?(O=!0,ee="g"):qK[ee]||(void 0===R&&(R=12),P=!0,ee="g"),(T||"0"===b&&"="===w)&&(T=!0,b="0",w="=");var J="$"===D?e:"#"===D&&/[boxX]/.test(ee)?"0"+ee.toLowerCase():"",te="$"===D?i:/[%p]/.test(ee)?l:"",ie=qK[ee],W=/[defgprs%]/.test(ee);function q(le){var ce,ze,Ce,ke=J,Ue=te;if("c"===ee)Ue=ie(le)+Ue,le="";else{var Oe=(le=+le)<0||1/le<0;if(le=isNaN(le)?f:ie(Math.abs(le),R),P&&(le=function fwe(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}(le)),Oe&&0==+le&&"+"!==F&&(Oe=!1),ke=(Oe?"("===F?F:u:"-"===F||"("===F?"":F)+ke,Ue=("s"===ee?KK[8+jK/3]:"")+Ue+(Oe&&"("===F?")":""),W)for(ce=-1,ze=le.length;++ce(Ce=le.charCodeAt(ce))||Ce>57){Ue=(46===Ce?r+le.slice(ce+1):le.slice(ce))+Ue,le=le.slice(0,ce);break}}O&&!T&&(le=t(le,1/0));var Fe=ke.length+le.length+Ue.length,ft=Fe>1)+ke+le+Ue+ft.slice(Fe);break;default:le=ft+ke+le+Ue}return s(le)}return R=void 0===R?6:/[gprs]/.test(ee)?Math.max(1,Math.min(21,R)):Math.max(0,Math.min(20,R)),q.toString=function(){return _+""},q}return{format:p,formatPrefix:function m(_,b){var w=p(((_=fP(_)).type="f",_)),F=3*Math.max(-8,Math.min(8,Math.floor(Fx(b)/3))),D=Math.pow(10,-F),T=KK[8+F/3];return function(I){return w(D*I)+T}}}}(n),AP=pP.format,YK=pP.formatPrefix}({thousands:",",grouping:[3],currency:["$",""]});const gwe=Math.sqrt(50),_we=Math.sqrt(10),bwe=Math.sqrt(2);function mP(n,t,e){const i=(t-n)/Math.max(0,e),r=Math.floor(Math.log10(i)),s=i/Math.pow(10,r),l=s>=gwe?10:s>=_we?5:s>=bwe?2:1;let u,f,p;return r<0?(p=Math.pow(10,-r)/l,u=Math.round(n*p),f=Math.round(t*p),u/pt&&--f,p=-p):(p=Math.pow(10,r)*l,u=Math.round(n/p),f=Math.round(t/p),u*pt&&--f),ft?1:n>=t?0:NaN}function wwe(n,t){return null==n||null==t?NaN:tn?1:t>=n?0:NaN}function ZK(n){let t,e,i;function r(u,f,p=0,m=u.length){if(p>>1;e(u[_],f)<0?p=_+1:m=_}while(pgP(n(u),f),i=(u,f)=>n(u)-f):(t=n===gP||n===wwe?n:xwe,e=n,i=n),{left:r,center:function l(u,f,p=0,m=u.length){const _=r(u,f,p,m-1);return _>p&&i(u[_-1],f)>-i(u[_],f)?_-1:_},right:function s(u,f,p=0,m=u.length){if(p>>1;e(u[_],f)<=0?p=_+1:m=_}while(p0))return[];if((n=+n)==(t=+t))return[n];const i=t=r))return[];const u=s-r+1,f=new Array(u);if(i)if(l<0)for(let p=0;p0;){if((p=oV(l,u,e))===f)return i[r]=l,i[s]=u,t(i);if(p>0)l=Math.floor(l/p)*p,u=Math.ceil(u/p)*p;else{if(!(p<0))break;l=Math.ceil(l*p)/p,u=Math.floor(u*p)/p}f=p}return n},n}function lV(){var n=function Uwe(){return function Lwe(){var i,r,s,u,f,p,n=tY,t=tY,e=sV,l=Dx;function m(){var b=Math.min(n.length,t.length);return l!==Dx&&(l=function Rwe(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[b-1])),u=b>2?Owe:Pwe,f=p=null,_}function _(b){return null==b||isNaN(b=+b)?s:(f||(f=u(n.map(i),t,e)))(i(l(b)))}return _.invert=function(b){return l(r((p||(p=u(t,n.map(i),ju)))(b)))},_.domain=function(b){return arguments.length?(n=Array.from(b,kwe),m()):n.slice()},_.range=function(b){return arguments.length?(t=Array.from(b),m()):t.slice()},_.rangeRound=function(b){return t=Array.from(b),e=Dwe,m()},_.clamp=function(b){return arguments.length?(l=!!b||Dx,m()):l!==Dx},_.interpolate=function(b){return arguments.length?(e=b,m()):e},_.unknown=function(b){return arguments.length?(s=b,_):s},function(b,w){return i=b,r=w,m()}}()(Dx,Dx)}();return n.copy=function(){return function Nwe(n,t){return t.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown())}(n,lV())},Vwe.apply(n,arguments),jwe(n)}function nY(n){return"string"==typeof n?new jc([[document.querySelector(n)]],[document.documentElement]):new jc([[n]],aK)}function Bx(n){return function(){return n}}function iY(n){this._context=n}function qwe(n){return new iY(n)}iY.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 cV=Math.PI,dV=2*cV,pv=1e-6,Wwe=dV-pv;function rY(n){this._+=n[0];for(let t=1,e=n.length;t=0))throw new Error(`invalid digits: ${n}`);if(t>15)return rY;const e=10**t;return function(i){this._+=i[0];for(let r=1,s=i.length;rpv)if(Math.abs(_*f-p*m)>pv&&s){let w=i-l,F=r-u,D=f*f+p*p,T=w*w+F*F,I=Math.sqrt(D),O=Math.sqrt(b),R=s*Math.tan((cV-Math.acos((D+b-T)/(2*I*O)))/2),P=R/O,ee=R/I;Math.abs(P-1)>pv&&this._append`L${t+P*m},${e+P*_}`,this._append`A${s},${s},0,0,${+(_*w>m*F)},${this._x1=t+ee*f},${this._y1=e+ee*p}`}else this._append`L${this._x1=t},${this._y1=e}`}arc(t,e,i,r,s,l){if(t=+t,e=+e,l=!!l,(i=+i)<0)throw new Error(`negative radius: ${i}`);let u=i*Math.cos(r),f=i*Math.sin(r),p=t+u,m=e+f,_=1^l,b=l?r-s:s-r;null===this._x1?this._append`M${p},${m}`:(Math.abs(this._x1-p)>pv||Math.abs(this._y1-m)>pv)&&this._append`L${p},${m}`,i&&(b<0&&(b=b%dV+dV),b>Wwe?this._append`A${i},${i},0,1,${_},${t-u},${e-f}A${i},${i},0,1,${_},${this._x1=p},${this._y1=m}`:b>pv&&this._append`A${i},${i},0,${+(b>=cV)},${_},${this._x1=t+i*Math.cos(s)},${this._y1=e+i*Math.sin(s)}`)}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 Zwe(n){return n[0]}function Jwe(n){return n[1]}function bP(n,t){this._context=n,this._t=t}function txe(n){return new bP(n,0)}function kx(n,t,e){this.k=n,this.x=t,this.y=e}bP.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}},kx.prototype={constructor:kx,scale:function(n){return 1===n?this:new kx(this.k*n,this.x,this.y)},translate:function(n,t){return 0===n&0===t?this:new kx(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 kx(1,0,0);let cxe=(()=>{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(),s=this.createYScale();this.drawAxes(i,r,s),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(){nY("#cc-range-diagram-container").selectAll("*").remove()}createSvg(){return nY("#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 Nbe(n){return $R(3,n)}(i).ticks(5)).attr("color","#888"),e.append("g").attr("id","axis-y").attr("transform",`translate(${-this.frameBuffer}, 0)`).call(function Lbe(n){return $R(4,n)}(r).ticks(5).tickFormat(function(s){return s>=1e4?`${AP(".0f")(s/1e3)}k`:s>=1e3?`${AP(".1f")(s/1e3)}k`:s.toString()})).attr("color","#888")}createXScale(){return lV().domain(function Fbe(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=s&&(e=i=s):(e>s&&(e=s),ie.x)).range([0,this.diagramWidth])}createYScale(){const e=[0,qX(this.percentileRanks,r=>r.y)],i=[qX(this.percentileRanks,r=>r.y),0];return lV().domain(this.isAttributeDirectionInversed?i:e).range([this.diagramHeight,0])}drawLabels(e){const s=(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",-s).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)),s=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",s-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",s).attr("y",-this.frameBuffer).attr("width",this.diagramWidth-s).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 exe(n,t){var e=Bx(!0),i=null,r=qwe,s=null,l=function Ywe(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 _P(t)}(u);function u(f){var p,_,w,m=(f=function $we(n){return"object"==typeof n&&"length"in n?n:Array.from(n)}(f)).length,b=!1;for(null==i&&(s=r(w=l())),p=0;p<=m;++p)!(pthis.createXScale()(i.x)).y(i=>this.createYScale()(i.y)))}calculatePercentileRanks(e){const i=[...new Set(e)].sort((l,u)=>l-u),r=e.length,s=[{x:0,y:i[0]}];for(const l of i){const f=e.filter(p=>p<=l).length/r*100;s.push({x:f,y:l})}return s}calculateReversedPercentileRanks(e){const i=[...new Set(e)].sort((l,u)=>l-u).reverse(),r=e.length,s=[{x:0,y:i[0]}];for(const l of i){const f=e.filter(p=>p>=l).length/r*100;s.push({x:f,y:l})}return s.sort((l,u)=>l.x-u.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=o.VBU({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"},standalone:!0,features:[o.OA$,o.aNF],decls:1,vars:0,consts:[["id","cc-range-diagram-container",1,"cc-range-diagram-container"]],template:function(i,r){1&i&&o.nrm(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})(),dxe=(()=>{class n{transform(e,i,r,s){switch(e){case"positive":return"unary"===s?`${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=o.EJ8({name:"mapColorLabel",type:n,pure:!0,standalone:!0})}}return n})();const uxe=n=>[n];let uV=(()=>{class n{constructor(e){this.store=e,this.colorMetric$=this.store.select(Gg),this.mapColors$=this.store.select(Zw),this.colorRange$=this.store.select($X),this.nodeMetricRange$=this.store.select(qp)}handleColorChange(e){this.store.dispatch(Wp({value:{[this.mapColorFor]:e}}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-color-picker-for-map-color"]],inputs:{mapColorFor:"mapColorFor"},standalone:!0,features:[o.aNF],decls:6,vars:17,consts:[[3,"onColorChange","hexColor","labels"]],template:function(i,r){1&i&&(o.j41(0,"cc-labelled-color-picker",0),o.nI1(1,"async"),o.nI1(2,"async"),o.nI1(3,"async"),o.nI1(4,"async"),o.nI1(5,"mapColorLabel"),o.bIt("onColorChange",function(l){return r.handleColorChange(l)}),o.k0s()),2&i&&o.Y8G("hexColor",o.bMT(1,2,r.mapColors$)[r.mapColorFor])("labels",o.eq3(15,uxe,o.ii3(5,10,r.mapColorFor,o.bMT(2,4,r.colorRange$),o.bMT(3,6,r.nodeMetricRange$),o.bMT(4,8,r.colorMetric$))))},dependencies:[j8,Qn,dxe],encapsulation:2})}}return n})();const hxe=()=>["appSettings.mapColors.positiveDelta","appSettings.mapColors.negativeDelta","appSettings.mapColors.selected"],fxe=()=>["appSettings.mapColors.positive","appSettings.mapColors.negative","appSettings.mapColors.neutral","appSettings.mapColors.selected"],pxe=()=>["appSettings.mapColors.positiveDelta","appSettings.mapColors.negativeDelta"];function Axe(n,t){if(1&n){const e=o.RV6();o.j41(0,"div"),o.nrm(1,"cc-metric-color-range-slider",4),o.nI1(2,"async"),o.nI1(3,"async"),o.nI1(4,"async"),o.nI1(5,"async"),o.nI1(6,"async"),o.nI1(7,"async"),o.nI1(8,"async"),o.nI1(9,"async"),o.nrm(10,"cc-reset-settings-button",5)(11,"cc-metric-color-range-diagram",6),o.nI1(12,"async"),o.nI1(13,"async"),o.nI1(14,"async"),o.nI1(15,"async"),o.nI1(16,"async"),o.nI1(17,"async"),o.nI1(18,"async"),o.nI1(19,"async"),o.nI1(20,"async"),o.nI1(21,"async"),o.j41(22,"mat-form-field",7)(23,"mat-label"),o.EFF(24,"Gradient Mode"),o.k0s(),o.j41(25,"mat-select",8),o.nI1(26,"async"),o.bIt("selectionChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleColorModeChange(r.value))}),o.j41(27,"div",9),o.bIt("mousedown",function(r){return o.eBV(e),o.Njj(r.stopPropagation())}),o.j41(28,"mat-option",10),o.EFF(29,"Absolute"),o.k0s(),o.j41(30,"mat-option",11),o.EFF(31,"Focused Gradient"),o.k0s(),o.j41(32,"mat-option",12),o.EFF(33,"Weighted Gradient"),o.k0s(),o.j41(34,"mat-option",13),o.EFF(35,"True Gradient"),o.k0s()()()()()}if(2&n){const e=o.XpG();o.R7$(),o.Y8G("minValue",o.bMT(2,22,e.sliderValues$).min)("maxValue",o.bMT(3,24,e.sliderValues$).max)("currentLeftValue",o.bMT(4,26,e.sliderValues$).from)("currentRightValue",o.bMT(5,28,e.sliderValues$).to)("leftColor",o.bMT(6,30,e.sliderColors$).leftColor)("middleColor",o.bMT(7,32,e.sliderColors$).middleColor)("rightColor",o.bMT(8,34,e.sliderColors$).rightColor)("handleValueChange",e.handleValueChange)("isAttributeDirectionInversed",o.bMT(9,36,e.isAttributeDescriptionInversed$)),o.R7$(9),o.Y8G("settingsKeys",o.lJ4(60,pxe))("callback",e.resetColorRange),o.R7$(),o.Y8G("minValue",o.bMT(12,38,e.sliderValues$).min)("maxValue",o.bMT(13,40,e.sliderValues$).max)("currentLeftValue",o.bMT(14,42,e.sliderValues$).from)("currentRightValue",o.bMT(15,44,e.sliderValues$).to)("leftColor",o.bMT(16,46,e.sliderColors$).leftColor)("middleColor",o.bMT(17,48,e.sliderColors$).middleColor)("rightColor",o.bMT(18,50,e.sliderColors$).rightColor)("colorMetric",o.bMT(19,52,e.colorMetric$))("values",o.bMT(20,54,e.sliderValues$).values)("isAttributeDirectionInversed",o.bMT(21,56,e.isAttributeDescriptionInversed$)),o.R7$(14),o.Y8G("value",o.bMT(26,58,e.colorMode$))}}function mxe(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",1),o.nrm(1,"cc-color-picker-for-map-color",0),o.j41(2,"mat-checkbox",14),o.nI1(3,"async"),o.bIt("change",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.toggleColorLabel(r,"positive"))}),o.EFF(4,"Show labels"),o.k0s()(),o.j41(5,"div",1),o.nrm(6,"cc-color-picker-for-map-color",0),o.j41(7,"mat-checkbox",14),o.nI1(8,"async"),o.bIt("change",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.toggleColorLabel(r,"neutral"))}),o.EFF(9,"Show labels"),o.k0s()(),o.j41(10,"div",1),o.nrm(11,"cc-color-picker-for-map-color",0),o.j41(12,"mat-checkbox",14),o.nI1(13,"async"),o.bIt("change",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.toggleColorLabel(r,"negative"))}),o.EFF(14,"Show labels"),o.k0s()()}if(2&n){const e=o.XpG();o.R7$(),o.Y8G("mapColorFor","positive"),o.R7$(),o.Y8G("checked",o.bMT(3,6,e.colorLabels$).positive),o.R7$(4),o.Y8G("mapColorFor","neutral"),o.R7$(),o.Y8G("checked",o.bMT(8,8,e.colorLabels$).neutral),o.R7$(4),o.Y8G("mapColorFor","negative"),o.R7$(),o.Y8G("checked",o.bMT(13,10,e.colorLabels$).negative)}}function gxe(n,t){1&n&&o.nrm(0,"cc-color-picker-for-map-color",0)(1,"cc-color-picker-for-map-color",0),2&n&&(o.Y8G("mapColorFor","positiveDelta"),o.R7$(),o.Y8G("mapColorFor","negativeDelta"))}function _xe(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-checkbox",14),o.bIt("change",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleIsColorRangeInvertedChange(r.checked))}),o.EFF(1,"Invert Colors"),o.k0s()}if(2&n){const e=o.XpG();o.Y8G("checked",e.isColorRangeInverted)}}function bxe(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-checkbox",14),o.bIt("change",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleAreDeltaColorsInverted(r.checked))}),o.EFF(1,"Invert Colors"),o.k0s()}if(2&n){const e=o.XpG();o.Y8G("checked",e.areDeltaColorsInverted)}}let vxe=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.colorMode$=this.store.select(pq),this.colorLabels$=this.store.select(GX),this.colorMetric$=this.store.select(Gg),this.isDeltaState$=this.store.select(u0),this.sliderValues$=this.store.select(Ibe),this.sliderColors$=this.store.select(Tbe),this.isAttributeDescriptionInversed$=this.checkIsAttributeDirectionReversed(),this.isColorRangeInverted=!1,this.areDeltaColorsInverted=!1,this.newLeftValue=null,this.newRightValue=null,this.handleValueChange=({newLeftValue:r,newRightValue:s})=>{this.newLeftValue=r??this.newLeftValue,this.newRightValue=s??this.newRightValue,this.updateColorRangeDebounced()},this.updateColorRangeDebounced=pf(()=>{const r={};null!==this.newLeftValue&&(r.from=this.newLeftValue),null!==this.newRightValue&&(r.to=this.newRightValue),this.store.dispatch(hf({value:r})),this.newLeftValue=null,this.newRightValue=null},400),this.resetInvertColorCheckboxes=()=>{this.isColorRangeInverted=!1,this.areDeltaColorsInverted=!1},this.resetColorRange=()=>{const r=qp(this.state.getValue());this.store.dispatch(hf({value:HR(r)}))}}checkIsAttributeDirectionReversed(){return this.colorMetric$.pipe((0,$n.T)(e=>1===this.state.getValue().fileSettings.attributeDescriptors[e]?.direction))}handleColorModeChange(e){this.store.dispatch(hx({value:e}))}toggleColorLabel(e,i){this.store.dispatch(f2({value:{[i]:e.checked}}))}handleIsColorRangeInvertedChange(e){this.isColorRangeInverted=e,this.store.dispatch(A3())}handleAreDeltaColorsInverted(e){this.areDeltaColorsInverted=e,this.store.dispatch(m3())}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(Vi))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-color-settings-panel"]],standalone:!0,features:[o.aNF],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&&(o.DNE(0,Axe,36,61,"div"),o.nI1(1,"async"),o.nI1(2,"async"),o.DNE(3,mxe,15,12),o.nI1(4,"async"),o.DNE(5,gxe,2,2),o.nrm(6,"cc-color-picker-for-map-color",0),o.j41(7,"div",1),o.nrm(8,"cc-reset-settings-button",2),o.nI1(9,"async"),o.DNE(10,_xe,2,1,"mat-checkbox",3),o.nI1(11,"async"),o.DNE(12,bxe,2,1,"mat-checkbox",3),o.k0s()),2&i&&(o.vxM(o.bMT(1,6,r.isDeltaState$)||"unary"===o.bMT(2,8,r.colorMetric$)?-1:0),o.R7$(3),o.vxM(o.bMT(4,10,r.isDeltaState$)?5:3),o.R7$(3),o.Y8G("mapColorFor","selected"),o.R7$(2),o.Y8G("settingsKeys",o.bMT(9,12,r.isDeltaState$)?o.lJ4(16,hxe):o.lJ4(17,fxe))("callback",r.resetInvertColorCheckboxes),o.R7$(2),o.vxM(o.bMT(11,14,r.isDeltaState$)?12:10))},dependencies:[Sbe,P2,cxe,Vu,Uu,t0,gd,uV,av,Qn],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 hV=sn(Ro,n=>n.isEdgeMetricVisible);function yxe(n,t){1&n&&(o.j41(0,"cc-rounded-box"),o.nrm(1,"cc-metric-chooser-type",3),o.EFF(2),o.k0s()),2&n&&(o.R7$(),o.Y8G("metricFor","edgeMetric"),o.R7$(),o.SpI(" ",t," "))}function wxe(n,t){if(1&n&&(o.j41(0,"cc-metric-chooser",1),o.nI1(1,"async"),o.j41(2,"div",2),o.DNE(3,yxe,3,2,"cc-rounded-box"),o.nI1(4,"async"),o.k0s()()),2&n){let e;const i=o.XpG();o.AVh("is-edge-metric-disabled",!o.bMT(1,6,i.isEdgeMetricVisible$)),o.Y8G("selectedMetricName",t)("searchPlaceholder","Edge Metric (highest value)")("handleMetricChanged",i.handleEdgeMetricChanged),o.R7$(3),o.vxM((e=o.bMT(4,8,i.edgeValue$))?3:-1,e)}}let xxe=(()=>{class n{constructor(e,i){this.store=e,this.nodeSelectionService=i,this.edgeValue$=this.createEdgeValue(),this.edgeMetric$=this.store.select(iA),this.isEdgeMetricVisible$=this.store.select(hV),this.formatHoveredEdgeValue=(r,s)=>{if(!s)return null;const l=s.edgeAttributes[r];return l?`${this.formatValue(l.incoming)} / ${this.formatValue(l.outgoing)}`:null},this.formatValue=r=>"number"==typeof r?r.toLocaleString():"-"}handleEdgeMetricChanged(e){this.store.dispatch(Jp({value:e}))}createEdgeValue(){return h0([this.store.select(iA),this.nodeSelectionService.createNodeObservable()]).pipe((0,$n.T)(([e,i])=>this.formatHoveredEdgeValue(e,i)))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(C7))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-edge-metric-chooser"]],standalone:!0,features:[o.aNF],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&&(o.DNE(0,wxe,5,10,"cc-metric-chooser",0),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.edgeMetric$))?0:-1,s)}},dependencies:[U2,zW,nX,Qn],styles:["cc-rounded-box[_ngcontent-%COMP%]{position:absolute;top:10%;right:28px}"]})}}return n})();const Cxe=sn(Ro,n=>n.edgeHeight),Mxe=sn(Ro,n=>n.showOnlyBuildingsWithEdges),Exe=sn(Aa,iA,(n,t)=>n.nodeEdgeMetricsMap.get(t)?.size??0);let Sxe=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.isEdgeMetricVisible$=this.store.select(hV)}toggleEdgeMetric(){this.store.dispatch(rR())}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-edge-metric-toggle"]],standalone:!0,features:[o.aNF],decls:3,vars:3,consts:[[1,"edgeMetricCheckbox",3,"change","checked"]],template:function(i,r){1&i&&(o.j41(0,"mat-checkbox",0),o.nI1(1,"async"),o.bIt("change",function(){return r.toggleEdgeMetric()}),o.EFF(2," Disable edge metric\n"),o.k0s()),2&i&&o.Y8G("checked",!o.bMT(1,1,r.isEdgeMetricVisible$))},dependencies:[av,Qn],encapsulation:2})}}return n})();const Txe=()=>["appSettings.showOnlyBuildingsWithEdges","appSettings.amountOfEdgePreviews","appSettings.edgeHeight"];let Ixe=(()=>{class n{constructor(e){this.store=e,this.amountOfBuildingsWithSelectedEdgeMetric$=this.store.select(Exe),this.edgePreviewLabel$=this.amountOfBuildingsWithSelectedEdgeMetric$.pipe((0,$n.T)(i=>`Preview the edges of up to ${i} buildings with the highest amount of incoming and outgoing edges`)),this.amountOfEdgePreviews$=this.store.select(YW),this.edgeHeight$=this.store.select(Cxe),this.showOnlyBuildingsWithEdges$=this.store.select(Mxe),this.applySettingsAmountOfEdgePreviews=i=>{this.store.dispatch(k2({value:i}))},this.applySettingsEdgeHeight=i=>{this.store.dispatch(fx({value:i}))}}applyShowOnlyBuildingsWithEdges(e){this.store.dispatch(C2({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-edge-settings-panel"]],standalone:!0,features:[o.aNF],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&&(o.nrm(0,"cc-slider",0),o.nI1(1,"async"),o.nI1(2,"async"),o.nI1(3,"async"),o.nI1(4,"async"),o.nrm(5,"cc-slider",1),o.nI1(6,"async"),o.nI1(7,"async"),o.j41(8,"div",2),o.nrm(9,"cc-color-picker-for-map-color",3)(10,"cc-color-picker-for-map-color",3),o.k0s(),o.j41(11,"mat-checkbox",4),o.nI1(12,"async"),o.nI1(13,"async"),o.bIt("change",function(l){return r.applyShowOnlyBuildingsWithEdges(l)}),o.EFF(14," Only show nodes with edges\n"),o.k0s(),o.nrm(15,"cc-edge-metric-toggle")(16,"cc-reset-settings-button",5)),2&i&&(o.Y8G("title",o.bMT(1,18,r.edgePreviewLabel$))("label","Preview")("value",o.bMT(2,20,r.amountOfEdgePreviews$))("onChange",r.applySettingsAmountOfEdgePreviews)("min",0)("max",o.bMT(3,22,r.amountOfBuildingsWithSelectedEdgeMetric$))("disabled",0===o.bMT(4,24,r.amountOfBuildingsWithSelectedEdgeMetric$)),o.R7$(5),o.Y8G("label","Height")("value",o.bMT(6,26,r.edgeHeight$))("onChange",r.applySettingsEdgeHeight)("min",1)("max",9)("disabled",0===o.bMT(7,28,r.amountOfBuildingsWithSelectedEdgeMetric$)),o.R7$(4),o.Y8G("mapColorFor","outgoingEdge"),o.R7$(),o.Y8G("mapColorFor","incomingEdge"),o.R7$(),o.Y8G("checked",o.bMT(12,30,r.showOnlyBuildingsWithEdges$))("disabled",0===o.bMT(13,32,r.amountOfBuildingsWithSelectedEdgeMetric$)),o.R7$(5),o.Y8G("settingsKeys",o.lJ4(34,Txe)))},dependencies:[IR,uV,av,Sxe,P2,Qn],encapsulation:2})}}return n})();function Fxe(n,t){1&n&&(o.j41(0,"mat-card",8),o.nrm(1,"cc-link-color-metric-to-height-metric-button"),o.k0s(),o.j41(2,"cc-ribbon-bar-panel",9),o.nrm(3,"cc-color-metric-chooser"),o.j41(4,"cc-ribbon-bar-panel-settings"),o.nrm(5,"cc-color-settings-panel",4),o.k0s()()),2&n&&(o.R7$(2),o.Y8G("separator",!0))}function Dxe(n,t){1&n&&(o.j41(0,"cc-ribbon-bar-panel",6),o.nrm(1,"cc-edge-metric-chooser"),o.j41(2,"cc-ribbon-bar-panel-settings"),o.nrm(3,"cc-edge-settings-panel",4),o.k0s()()),2&n&&o.Y8G("separator",!0)}function Bxe(n,t){1&n&&(o.j41(0,"cc-ribbon-bar-panel",7)(1,"div",10),o.nrm(2,"i",11),o.j41(3,"span"),o.EFF(4,"Color Settings"),o.k0s()(),o.j41(5,"cc-ribbon-bar-panel-settings"),o.nrm(6,"cc-color-settings-panel",4),o.k0s()()),2&n&&o.Y8G("separator",!0)("isHeaderExpandable",!0)}let kxe=(()=>{class n{constructor(e){this.store=e,this.isDeltaState$=this.store.select(u0),this.hasEdgeMetric$=this.store.select(Aa).pipe((0,$n.T)(i=>i.edgeMetricData.length>0))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-ribbon-bar"]],standalone:!0,features:[o.aNF],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&&(o.nrm(0,"cc-search-panel"),o.j41(1,"cc-ribbon-bar-panel",0),o.nrm(2,"cc-show-scenarios-button"),o.k0s(),o.j41(3,"cc-ribbon-bar-panel",1),o.nrm(4,"cc-custom-configs"),o.k0s(),o.j41(5,"cc-ribbon-bar-panel",2),o.nrm(6,"cc-artificial-intelligence"),o.k0s(),o.j41(7,"cc-ribbon-bar-panel",3),o.nrm(8,"cc-area-metric-chooser"),o.j41(9,"cc-ribbon-bar-panel-settings"),o.nrm(10,"cc-area-settings-panel",4),o.k0s()(),o.j41(11,"cc-ribbon-bar-panel",5),o.nrm(12,"cc-height-metric-chooser"),o.j41(13,"cc-ribbon-bar-panel-settings"),o.nrm(14,"cc-height-settings-panel",4),o.k0s()(),o.DNE(15,Fxe,6,1),o.nI1(16,"async"),o.DNE(17,Dxe,4,1,"cc-ribbon-bar-panel",6),o.nI1(18,"async"),o.DNE(19,Bxe,7,2,"cc-ribbon-bar-panel",7),o.nI1(20,"async")),2&i&&(o.R7$(7),o.Y8G("separator",!0),o.R7$(4),o.Y8G("separator",!0),o.R7$(4),o.vxM(o.bMT(16,5,r.isDeltaState$)?-1:15),o.R7$(2),o.vxM(o.bMT(18,7,r.hasEdgeMetric$)?17:-1),o.R7$(2),o.vxM(o.bMT(20,9,r.isDeltaState$)?19:-1))},dependencies:[Uge,E7,Yge,i_e,X_e,K_e,M7,tbe,nbe,ube,c2,hbe,fbe,vxe,xxe,Ixe,Qn],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 Av=()=>new Wk({color:16580095}),Rx=()=>new Wk({color:16580095}),vP=()=>new Wk({color:16580095});class Y2{static buildCube(t){const e=1/t,i=(1-e)/2,r=new Vc(e,i,i),s=new Vc(i,e+i,i),l=new Vc(i,i,i),u=new Vc(e,e,i),f=new Vc(e,e+i,i);return Y2.newBuildCubeGroup(r,s,l,u,f)}static newBuildCubeGroup(t,e,i,r,s){const l=new ac,{group:u,frontLeft:f,frontCenter:p,frontRight:m,middleLeft:_,middleCenter:b,middleRight:w,backLeft:F,backCenter:D,backRight:T}=Y2.buildCubeTopFace(t,i,r);l.add(u);const{group:I,frontLeftEdge:O,frontCenterFace:R,frontRightEdge:P,middleLeftFace:ee,middleRightFace:J,backLeftEdge:te,backCenterFace:ie,backRightEdge:W}=Y2.buildCubeSides(e,s);return l.add(I),{group:l,top:{front:{left:f,center:p,right:m},middle:{left:_,center:b,right:w},back:{left:F,center:D,right:T}},sides:{front:{left:O,center:R,right:P},middle:{left:ee,right:J},back:{left:te,center:ie,right:W}}}}static buildCubeTopFace(t,e,i){const r=new cr(e,vP()),s=new cr(t,Av()),l=new cr(e,vP()),u=new cr(t,Av()),f=new cr(i,Rx()),p=new cr(t,Rx()),m=new cr(e,vP()),_=new cr(t,Av()),b=new cr(e,vP()),w=i.parameters.height/2+e.parameters.height/2;r.position.x-=w,r.position.y-=w,s.position.y-=w,l.position.x+=w,l.position.y-=w,u.position.x-=w,u.rotation.z=Math.PI/2,p.position.x+=w,p.rotation.z=Math.PI/2,m.position.x-=w,m.position.y+=w,_.position.y+=w,b.position.x+=w,b.position.y+=w;const F=new ac;return F.rotation.x=Math.PI/2,F.position.y+=w,F.add(r),F.add(s),F.add(l),F.add(u),F.add(f),F.add(p),F.add(m),F.add(_),F.add(b),{group:F,frontLeft:r,frontCenter:s,frontRight:l,middleLeft:u,middleCenter:f,middleRight:p,backLeft:m,backCenter:_,backRight:b}}static buildCubeSides(t,e){const i=new cr(t,Av()),r=new cr(e,Rx()),s=new cr(t,Av()),l=new cr(e,Rx()),u=new cr(e,Rx()),f=new cr(t,Av()),p=new cr(e,Rx()),m=new cr(t,Av()),_=e.parameters.width/2+t.parameters.width/2,b=t.parameters.width/2;i.position.x-=_,i.position.z+=_,r.position.z+=_,s.position.x+=_,s.position.z+=_,l.position.x-=_,l.rotation.y=Math.PI/2,u.position.x+=_,u.rotation.y=Math.PI/2,f.position.x-=_,f.position.z-=_,p.position.z-=_,m.position.x+=_,m.position.z-=_;const w=new ac;return w.position.y-=b,w.add(i),w.add(r),w.add(s),w.add(l),w.add(u),w.add(f),w.add(p),w.add(m),{group:w,frontLeftEdge:i,frontCenterFace:r,frontRightEdge:s,middleLeftFace:l,middleRightFace:u,backLeftEdge:f,backCenterFace:p,backRightEdge:m}}}let Rxe=(()=>{class n{constructor(e){this.threeMapControlsService=e}centerMap(){this.threeMapControlsService.autoFitTo()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Nd))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-center-map-button"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"button",0),o.bIt("click",function(){return r.centerMap()}),o.nrm(1,"i",1),o.k0s())},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})(),Pxe=(()=>{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)(o.rXU(Nd),o.rXU(o.gRc))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-zoom-slider"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"button",1),o.bIt("click",function(){return r.zoomOut()}),o.EFF(2,"-"),o.k0s(),o.j41(3,"input",2),o.bIt("input",function(l){return r.onInput(l)}),o.k0s(),o.j41(4,"button",3),o.bIt("click",function(){return r.zoomIn()}),o.EFF(5,"+"),o.k0s(),o.j41(6,"span",4),o.EFF(7),o.k0s()()),2&i&&(o.R7$(3),o.Y8G("min",r.minZoom)("max",r.maxZoom)("value",r.zoomPercentage),o.R7$(4),o.SpI("",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%], .cdk-drag-preview[_ngcontent-%COMP%] .mat-ripple-element[_ngcontent-%COMP%], .cdk-drag-placeholder[_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, var(--mat-app-background, transparent));color:var(--mat-app-text-color, var(--mat-app-on-background, inherit))}.mat-elevation-z0[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z0[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-0, none)}.mat-elevation-z1[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z1[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-1, none)}.mat-elevation-z2[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z2[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-2, none)}.mat-elevation-z3[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z3[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-3, none)}.mat-elevation-z4[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z4[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-4, none)}.mat-elevation-z5[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z5[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-5, none)}.mat-elevation-z6[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z6[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-6, none)}.mat-elevation-z7[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z7[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-7, none)}.mat-elevation-z8[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z8[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-8, none)}.mat-elevation-z9[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z9[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-9, none)}.mat-elevation-z10[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z10[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-10, none)}.mat-elevation-z11[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z11[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-11, none)}.mat-elevation-z12[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z12[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-12, none)}.mat-elevation-z13[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z13[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-13, none)}.mat-elevation-z14[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z14[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-14, none)}.mat-elevation-z15[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z15[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-15, none)}.mat-elevation-z16[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z16[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-16, none)}.mat-elevation-z17[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z17[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-17, none)}.mat-elevation-z18[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z18[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-18, none)}.mat-elevation-z19[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z19[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-19, none)}.mat-elevation-z20[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z20[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-20, none)}.mat-elevation-z21[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z21[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-21, none)}.mat-elevation-z22[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z22[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-22, none)}.mat-elevation-z23[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z23[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-23, none)}.mat-elevation-z24[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z24[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-24, none)}[_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})(),Oxe=(()=>{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=s=>{const l=this.calculateCameraPosition(s.camera);this.setCameraPosition(l),this.renderer.render(this.scene,this.camera)},this.onCubeHovered=s=>{this.hoverInfo={cube:s.cube,originalMaterial:s.cube.material},this.hoverInfo.cube.material.emissive=new _n(16777215),this.renderer.render(this.scene,this.camera)},this.onCubeUnhovered=()=>{this.hoverInfo.cube.material.emissive=new _n(0),this.hoverInfo.cube=null,this.renderer.render(this.scene,this.camera)},this.onCubeClicked=s=>{switch(s.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 dre(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}=Y2.buildCube(1.9);this.cubeGroup=e,this.cubeDefinition.top=i,this.cubeDefinition.sides=r;const s=new lre(this.cubeGroup,new _n(0));this.scene.add(this.cubeGroup),this.scene.add(s)}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 wk}initRenderer(e){this.renderer=new D5({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 ea(45,this.WIDTH/this.HEIGHT,.1,1e3),this.camera.position.z=4}initLights(){this.lights=new ac;const e=new gU(7368816,2.8),i=new NS(14737632,1.8);i.position.set(50,10,8).normalize();const r=new NS(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)(o.rXU(o.aKT),o.rXU(Nd),o.rXU(JW))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-view-cube"]],standalone:!0,features:[o.aNF],decls:2,vars:0,template:function(i,r){1&i&&o.nrm(0,"cc-center-map-button")(1,"cc-zoom-slider")},dependencies:[Rxe,Pxe],styles:["[_nghost-%COMP%]{transition:right .3s ease;position:absolute;z-index:11;right:0;top:10px}.sideBarVisible[_nghost-%COMP%]{right:350px}"]})}}return n})();const Nxe=sn(f0,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 Lxe(n,t){if(1&n&&(o.j41(0,"span",2),o.EFF(1," | "),o.j41(2,"span",3),o.EFF(3),o.k0s(),o.EFF(4," | "),o.j41(5,"span",4),o.EFF(6),o.k0s(),o.EFF(7," | "),o.j41(8,"span",5),o.EFF(9),o.k0s()()),2&n){const e=o.XpG();o.R7$(3),o.SpI(" \u0394",e.added,""),o.R7$(3),o.SpI(" \u0394",e.removed>0?-e.removed:0,""),o.R7$(3),o.SpI(" \u0394",e.changed,"")}}function Uxe(n,t){if(1&n&&(o.j41(0,"span",2),o.EFF(1),o.DNE(2,Lxe,10,3,"span",2),o.nI1(3,"async"),o.EFF(4," ) "),o.k0s()),2&n){const e=t,i=o.XpG(2);o.R7$(),o.Lme(" ( ",e.all," ",1===e.all?"file":"files"," "),o.R7$(),o.vxM(null!=i.node.children&&i.node.children.length&&o.bMT(3,3,i.isDeltaMode$)?2:-1)}}function Vxe(n,t){if(1&n&&(o.j41(0,"span",1),o.EFF(1),o.DNE(2,Uxe,5,5,"span",2),o.nI1(3,"async"),o.k0s()),2&n){let e;const i=o.XpG();o.R7$(),o.SpI(" ",i.node.path," "),o.R7$(),o.vxM((e=o.bMT(3,2,(null==i.node.children?null:i.node.children.length)&&i.fileCount$))?2:-1,e)}}let Hxe=(()=>{class n{constructor(e){this.fileCount$=e.select(Nxe),this.isDeltaMode$=e.select(u0)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-node-path"]],inputs:{node:"node"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"p",0),o.DNE(1,Vxe,4,4,"span",1),o.k0s()),2&i&&(o.R7$(),o.vxM(r.node?1:-1))},dependencies:[Qn],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})(),yP=(()=>{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)(o.KVO(Rd))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function Qxe(n,t){if(1&n&&(o.j41(0,"div",1)(1,"a",4)(2,"h2"),o.EFF(3),o.k0s(),o.nrm(4,"i",5),o.k0s()()),2&n){const e=o.XpG(2);o.FS9("matTooltip",e.node.link),o.Y8G("matTooltipShowDelay",200),o.R7$(),o.FS9("href",e.node.link,o.B4B),o.R7$(2),o.SpI("",e.node.name,"\xa0")}}function zxe(n,t){if(1&n){const e=o.RV6();o.j41(0,"i",0),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.closeSideBar())}),o.k0s(),o.DNE(1,Qxe,5,4,"div",1),o.j41(2,"p",2),o.EFF(3),o.nI1(4,"removeExtension"),o.k0s(),o.nrm(5,"cc-node-path",3)}if(2&n){const e=o.XpG();o.R7$(),o.vxM(e.node.link?1:-1),o.R7$(2),o.JRh(o.bMT(4,3,e.fileName)),o.R7$(2),o.Y8G("node",e.node)}}let Gxe=(()=>{class n{constructor(e){this.isAttributeSideBarVisibleService=e}closeSideBar(){this.isAttributeSideBarVisibleService.isOpen=!1}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(yP))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-attribute-side-bar-header-section"]],inputs:{node:"node",fileName:"fileName"},standalone:!0,features:[o.aNF],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&&o.DNE(0,zxe,6,5),2&i&&o.vxM(r.node?0:-1)},dependencies:[h7,Hxe,u7],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 fV=sn(f0,n=>n&&!Po(n)),jxe=sn(f0,BR,(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:$xe(t.edgeMetric,n)}});function $xe(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}}let pV=(()=>{class n{constructor(e){this.store=e,this.attributeTypes$=this.store.select(SU)}setToAbsolute(){this.setAttributeType(Sc.absolute)}setToRelative(){this.setAttributeType(Sc.relative)}setAttributeType(e){this.store.dispatch(Z8({category:this.metricType,name:this.metricName,attributeType:e}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-attribute-type-selector"]],inputs:{metricName:"metricName",metricType:"metricType"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-button-toggle-group",0),o.nI1(1,"async"),o.j41(2,"mat-button-toggle",1),o.bIt("click",function(){return r.setToAbsolute()}),o.EFF(3,"\u03a3"),o.k0s(),o.j41(4,"mat-button-toggle",2),o.bIt("click",function(){return r.setToRelative()}),o.EFF(5,"x\u0342"),o.k0s()()),2&i){let s;o.Y8G("value",null!==(s=o.bMT(1,1,r.attributeTypes$)[r.metricType][r.metricName])&&void 0!==s?s:"absolute")}},dependencies:[I7,LR,Qn],encapsulation:2})}}return n})();function qxe(n,t){if(1&n&&(o.j41(0,"span"),o.nI1(1,"async"),o.EFF(2),o.nI1(3,"number"),o.k0s()),2&n){const e=t,i=o.XpG();o.xc7("color",o.bMT(1,3,i.mapColors$)[e>0?"positiveDelta":"negativeDelta"]),o.R7$(2),o.SpI(" \u0394",o.i5U(3,5,e,"1.1-2")," ")}}let sY=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.selectedNode$=this.store.select(f0),this.mapColors$=this.store.select(Zw)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-metric-delta-selected"]],inputs:{metricName:"metricName"},standalone:!0,features:[o.aNF],decls:2,vars:3,consts:[[3,"color"]],template:function(i,r){if(1&i&&(o.DNE(0,qxe,4,8,"span",0),o.nI1(1,"async")),2&i){let s;o.vxM((s=null==(s=o.bMT(1,1,r.selectedNode$))||null==s.deltas?null:s.deltas[r.metricName])?0:-1,s)}},dependencies:[Qn,Ku],styles:["[_nghost-%COMP%]:has(span){margin-top:5px}"]})}}return n})();function Wxe(n,t){if(1&n&&o.nrm(0,"cc-attribute-type-selector",2),2&n){const e=o.XpG();o.Y8G("metricName",e.metric.name)("metricType","nodes")}}function Xxe(n,t){if(1&n&&(o.j41(0,"a",5),o.EFF(1),o.nrm(2,"i",7),o.k0s()),2&n){const e=o.XpG();o.Y8G("href",t,o.B4B),o.R7$(),o.SpI(" ",e.metric.name," ")}}function Kxe(n,t){if(1&n&&(o.j41(0,"span",6),o.EFF(1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.JRh(e.metric.name)}}let Yxe=(()=>{class n{constructor(e){this.showAttributeTypeSelector$=e.select(fV)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-attribute-side-bar-primary-metric"]],inputs:{iconName:"iconName",metric:"metric",metricLink:"metricLink"},standalone:!0,features:[o.aNF],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,"metric-name"],[1,"fa","fa-external-link"]],template:function(i,r){if(1&i&&(o.j41(0,"div",0)(1,"div",1),o.nrm(2,"i"),o.DNE(3,Wxe,1,2,"cc-attribute-type-selector",2),o.nI1(4,"async"),o.j41(5,"span",3),o.EFF(6),o.nI1(7,"number"),o.k0s()(),o.nrm(8,"cc-metric-delta-selected",4),o.DNE(9,Xxe,3,2,"a",5)(10,Kxe,2,1,"span",6),o.k0s()),2&i){let s;o.R7$(2),o.HbH(r.iconName),o.R7$(),o.vxM(o.bMT(4,6,r.showAttributeTypeSelector$)?3:-1),o.R7$(3),o.JRh(o.i5U(7,8,r.metric.value,"1.0-0")),o.R7$(2),o.Y8G("metricName",r.metric.name),o.R7$(),o.vxM((s=r.metricLink)?9:10,s)}},dependencies:[pV,sY,Qn,Ku],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})();function Zxe(n,t){if(1&n&&o.nrm(0,"cc-attribute-type-selector",8),2&n){const e=o.XpG();o.Y8G("metricName",e.name)("metricType","edges")}}function Jxe(n,t){if(1&n&&(o.j41(0,"a",10),o.EFF(1),o.nrm(2,"i",12),o.k0s()),2&n){const e=o.XpG();o.Y8G("href",t,o.B4B),o.R7$(),o.SpI(" ",e.name," (in/out) ")}}function eCe(n,t){if(1&n&&(o.j41(0,"span",11),o.EFF(1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.SpI("",e.name," (in/out)")}}function tCe(n,t){if(1&n&&(o.j41(0,"td",3),o.nI1(1,"attributeDescriptorTooltip"),o.j41(2,"div",5)(3,"div",6),o.nrm(4,"i",7),o.DNE(5,Zxe,1,2,"cc-attribute-type-selector",8),o.nI1(6,"async"),o.j41(7,"span",9),o.EFF(8),o.nI1(9,"number"),o.j41(10,"span"),o.EFF(11,"/"),o.k0s(),o.EFF(12),o.nI1(13,"number"),o.k0s()(),o.DNE(14,Jxe,3,2,"a",10)(15,eCe,2,1,"span",11),o.k0s()()),2&n){let e;const i=t,r=o.XpG(2),s=o.XpG();o.Y8G("title",o.i5U(1,5,r[i.name],i.name)),o.R7$(5),o.vxM(o.bMT(6,8,s.showAttributeTypeSelector$)?5:-1),o.R7$(3),o.SpI(" ",o.i5U(9,10,i.incoming,"1.0-0")," "),o.R7$(4),o.SpI(" ",o.i5U(13,13,i.outgoing,"1.0-0")," "),o.R7$(2),o.vxM((e=null==r[i.name]?null:r[i.name].link)?14:15,e)}}function nCe(n,t){1&n&&(o.j41(0,"td")(1,"span",11),o.EFF(2,"No edge metric available"),o.k0s()())}function iCe(n,t){if(1&n&&(o.j41(0,"table",1)(1,"th",2),o.EFF(2,"Primary Metrics"),o.k0s(),o.j41(3,"tr")(4,"td",3),o.nI1(5,"attributeDescriptorTooltip"),o.nrm(6,"cc-attribute-side-bar-primary-metric",4),o.k0s(),o.j41(7,"td",3),o.nI1(8,"attributeDescriptorTooltip"),o.nrm(9,"cc-attribute-side-bar-primary-metric",4),o.k0s()(),o.j41(10,"tr")(11,"td",3),o.nI1(12,"attributeDescriptorTooltip"),o.nrm(13,"cc-attribute-side-bar-primary-metric",4),o.k0s(),o.DNE(14,tCe,16,16,"td",3)(15,nCe,3,0,"td"),o.k0s()()),2&n){let e;const i=t,r=o.XpG();o.R7$(4),o.Y8G("title",o.i5U(5,13,r[i.area.name],i.area.name)),o.R7$(2),o.Y8G("iconName","fa fa-arrows-alt")("metric",i.area)("metricLink",null==r[i.area.name]?null:r[i.area.name].link),o.R7$(),o.Y8G("title",o.i5U(8,16,r[i.height.name],i.height.name)),o.R7$(2),o.Y8G("iconName","fa fa-arrows-v")("metric",i.height)("metricLink",null==r[i.height.name]?null:r[i.height.name].link),o.R7$(2),o.Y8G("title",o.i5U(12,19,r[i.color.name],i.color.name)),o.R7$(2),o.Y8G("iconName","fa fa-paint-brush")("metric",i.color)("metricLink",null==r[i.color.name]?null:r[i.color.name].link),o.R7$(),o.vxM((e=i.edge)?14:15,e)}}function rCe(n,t){if(1&n&&(o.j41(0,"div",0),o.DNE(1,iCe,16,22,"table",1),o.nI1(2,"async"),o.k0s()),2&n){let e;const i=o.XpG();o.R7$(),o.vxM((e=o.bMT(2,1,i.primaryMetrics$))?1:-1,e)}}let oCe=(()=>{class n{constructor(e){this.store=e,this.primaryMetrics$=this.store.select(jxe),this.showAttributeTypeSelector$=this.store.select(fV),this.attributeDescriptors$=this.store.select(DR)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-attribute-side-bar-primary-metrics"]],standalone:!0,features:[o.aNF],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,"metric-name"],[1,"fa","fa-external-link"]],template:function(i,r){if(1&i&&(o.DNE(0,rCe,3,3,"div",0),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.attributeDescriptors$))?0:-1,s)}},dependencies:[Yxe,pV,Qn,Ku,OR],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 sCe=sn(f0,n=>!!n?.deltas),aCe=sn(BR,f0,(n,t)=>{if(!t)return[];const e=Object.values(n);return Object.keys(t.attributes).filter(r=>"unary"!==r&&!e.includes(r)).sort((r,s)=>r.localeCompare(s)).map(r=>({name:r,value:t.attributes[r]}))});function lCe(n,t){if(1&n&&o.nrm(0,"cc-attribute-type-selector",8),2&n){const e=o.XpG().$implicit;o.Y8G("metricName",e.name)("metricType","nodes")}}function cCe(n,t){if(1&n&&(o.j41(0,"a",12),o.EFF(1),o.nrm(2,"i",14),o.k0s()),2&n){const e=o.XpG().$implicit;o.Y8G("href",t,o.B4B),o.R7$(),o.SpI(" ",e.name," ")}}function dCe(n,t){if(1&n&&(o.j41(0,"span",13),o.EFF(1),o.k0s()),2&n){const e=o.XpG().$implicit;o.R7$(),o.JRh(e.name)}}function uCe(n,t){if(1&n&&(o.j41(0,"tr",5),o.nI1(1,"attributeDescriptorTooltip"),o.j41(2,"td",6)(3,"div",7),o.DNE(4,lCe,1,2,"cc-attribute-type-selector",8),o.nI1(5,"async"),o.j41(6,"span",9),o.EFF(7),o.nI1(8,"number"),o.k0s()()(),o.j41(9,"td",10),o.nI1(10,"async"),o.nrm(11,"cc-metric-delta-selected",11),o.k0s(),o.j41(12,"td"),o.DNE(13,cCe,3,2,"a",12)(14,dCe,2,1,"span",13),o.k0s()()),2&n){let e;const i=t.$implicit,r=o.XpG(),s=o.XpG();o.Y8G("title",o.i5U(1,6,r[i.name],i.name)),o.R7$(4),o.vxM(o.bMT(5,9,s.showAttributeTypeSelector$)?4:-1),o.R7$(3),o.JRh(o.i5U(8,11,i.value,"1.0-0")),o.R7$(2),o.Y8G("hidden",!o.bMT(10,14,s.showDeltaValue$)),o.R7$(2),o.Y8G("metricName",i.name),o.R7$(2),o.vxM((e=null==r[i.name]?null:r[i.name].link)?13:14,e)}}function hCe(n,t){if(1&n&&(o.j41(0,"div",2)(1,"table",3)(2,"tr")(3,"th",4),o.EFF(4,"Secondary Metrics"),o.k0s()(),o.Z7z(5,uCe,15,16,"tr",5,o.fX1),o.nI1(7,"async"),o.k0s()()),2&n){const e=o.XpG();o.R7$(5),o.Dyx(o.bMT(7,0,e.secondaryMetrics$))}}let fCe=(()=>{class n{constructor(e){this.store=e,this.secondaryMetrics$=this.store.select(aCe),this.showAttributeTypeSelector$=this.store.select(fV),this.showDeltaValue$=this.store.select(sCe),this.attributeDescriptors$=this.store.select(DR)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-attribute-side-bar-secondary-metrics"]],standalone:!0,features:[o.aNF],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,"metric-name"],[1,"fa","fa-external-link"]],template:function(i,r){if(1&i&&(o.j41(0,"div",0)(1,"div",1),o.DNE(2,hCe,8,2,"div",2),o.nI1(3,"async"),o.k0s()()),2&i){let s;o.R7$(2),o.vxM((s=o.bMT(3,1,r.attributeDescriptors$))?2:-1,s)}},dependencies:[pV,sY,Qn,Ku,OR],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})(),pCe=(()=>{class n{constructor(e,i){this.isAttributeSideBarVisibleService=e,this.store=i,this.selectedNode$=this.store.select(f0),this.fileName$=this.store.select(kd).pipe((0,$n.T)(r=>r.unifiedFileMeta?.fileName??""))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(yP),o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-attribute-side-bar"]],standalone:!0,features:[o.aNF],decls:6,vars:8,consts:[[1,"side-bar-container","cc-shadow"],[3,"node","fileName"]],template:function(i,r){1&i&&(o.j41(0,"div",0),o.nrm(1,"cc-attribute-side-bar-header-section",1),o.nI1(2,"async"),o.nI1(3,"async"),o.nrm(4,"cc-attribute-side-bar-primary-metrics")(5,"cc-attribute-side-bar-secondary-metrics"),o.k0s()),2&i&&(o.AVh("expanded",r.isAttributeSideBarVisibleService.isOpen),o.R7$(),o.Y8G("node",o.bMT(2,4,r.selectedNode$))("fileName",o.bMT(3,6,r.fileName$)))},dependencies:[Gxe,oCe,fCe,Qn],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})(),ACe=(()=>{class n{constructor(e,i,r,s,l){this.isAttributeSideBarVisibleService=e,this.store=i,this.threeViewerService=r,this.codeMapMouseEventService=s,this.elementReference=l,this.isLoadingFile$=this.store.select(x7),this.restartOnSharpnessModeChangesSubscription=this.store.select(VW).pipe(E_(1),ao(()=>{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)(o.rXU(yP),o.rXU(Yt),o.rXU(eX),o.rXU(L2),o.rXU(o.aKT))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-code-map"]],standalone:!0,features:[o.aNF],decls:4,vars:6,consts:[["id","codeMap"]],template:function(i,r){1&i&&(o.j41(0,"div",0),o.nI1(1,"async"),o.nrm(2,"cc-view-cube")(3,"cc-attribute-side-bar"),o.k0s()),2&i&&(o.AVh("hidden",o.bMT(1,4,r.isLoadingFile$)),o.R7$(2),o.AVh("sideBarVisible",r.isAttributeSideBarVisibleService.isOpen))},dependencies:[Oxe,pCe,Qn],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})();function mCe(n,t){if(1&n&&(o.j41(0,"a",2)(1,"span",3),o.EFF(2),o.k0s(),o.EFF(3),o.nrm(4,"i",4),o.k0s()),2&n){const e=o.XpG(),i=o.XpG(2);o.Y8G("href",t,o.B4B),o.R7$(2),o.JRh(e),o.R7$(),o.SpI(" (",i.metricName,") ")}}function gCe(n,t){if(1&n&&(o.j41(0,"span",3),o.EFF(1),o.k0s(),o.EFF(2)),2&n){const e=o.XpG(),i=o.XpG(2);o.R7$(),o.JRh(e),o.R7$(),o.SpI(" (",i.metricName,") ")}}function _Ce(n,t){if(1&n&&(o.qex(0,0),o.j41(1,"div",1),o.nI1(2,"attributeDescriptorTooltip"),o.EFF(3),o.DNE(4,mCe,5,3,"a",2)(5,gCe,3,2),o.k0s(),o.bVm()),2&n){let e;const i=o.XpG(),r=o.XpG();o.R7$(),o.Y8G("title",o.i5U(2,3,i[r.metricName],r.metricName)),o.R7$(2),o.SpI(" ",r.metricSpecification," metric: "),o.R7$(),o.vxM((e=i[r.metricName].link)?4:5,e)}}function bCe(n,t){if(1&n&&(o.j41(0,"span",3),o.EFF(1),o.k0s(),o.EFF(2)),2&n){const e=o.XpG(3);o.R7$(),o.JRh(t),o.R7$(),o.SpI(" (",e.metricName,") ")}}function vCe(n,t){if(1&n&&(o.j41(0,"span",3),o.EFF(1),o.k0s()),2&n){const e=o.XpG(3);o.R7$(),o.SpI(" ",e.metricName," ")}}function yCe(n,t){if(1&n&&(o.j41(0,"div"),o.EFF(1),o.DNE(2,bCe,3,2)(3,vCe,2,1,"span",3),o.k0s()),2&n){let e;const i=o.XpG(2);o.R7$(),o.SpI(" ",i.metricSpecification," metric: "),o.R7$(),o.vxM((e=i.fallbackTitles.get(i.metricName))?2:3,e)}}function wCe(n,t){if(1&n&&o.DNE(0,_Ce,6,6,"ng-container",0)(1,yCe,4,2,"div"),2&n){let e;const i=t,r=o.XpG();o.vxM((e=null==i[r.metricName]?null:i[r.metricName].title)?0:1,e)}}let xCe=(()=>{class n{constructor(e){this.store=e,this.attributeDescriptors$=this.store.select(DR),this.fallbackTitles=Jw}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-legend-block"]],inputs:{metricName:"metricName",metricSpecification:"metricSpecification"},standalone:!0,features:[o.aNF],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&&(o.DNE(0,wCe,2,1),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.attributeDescriptors$))?0:-1,s)}},dependencies:[Qn,OR],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})();const aY=sn(HS,n=>n.markedPackages),CCe=sn(aY,n=>n.reduce((t,{color:e,path:i})=>(Object.prototype.hasOwnProperty.call(t,e)||(t[e]=[]),t[e].push(i),t),{}));function MCe(n,t){if(1&n){const e=o.RV6();o.j41(0,"cc-labelled-color-picker",1),o.bIt("onColorChange",function(r){const s=o.eBV(e).$implicit,l=o.XpG(2);return o.Njj(l.handleColorChange(r,s.value))}),o.k0s()}if(2&n){const e=t.$implicit;o.Y8G("hexColor",e.key)("labels",e.value)}}function ECe(n,t){if(1&n&&(o.nrm(0,"hr"),o.Z7z(1,MCe,1,2,"cc-labelled-color-picker",0,o.BUC().trackMarkedPackage,!0),o.nI1(3,"async"),o.nI1(4,"keyvalue")),2&n){const e=o.XpG();o.R7$(),o.Dyx(o.i5U(4,2,o.bMT(3,0,e.markedPackagesMap$),e.sortMarkedPackagesMap))}}let SCe=(()=>{class n{constructor(e){this.store=e,this.markedPackagesMap$=e.select(CCe),this.hasMarkedPackages$=this.markedPackagesMap$.pipe((0,$n.T)(i=>Object.keys(i).length>0))}handleColorChange(e,i){this.store.dispatch(S2({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)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-legend-marked-packages"]],standalone:!0,features:[o.aNF],decls:2,vars:3,consts:[[3,"hexColor","labels"],[3,"onColorChange","hexColor","labels"]],template:function(i,r){1&i&&(o.DNE(0,ECe,5,5),o.nI1(1,"async")),2&i&&o.vxM(o.bMT(1,1,r.hasMarkedPackages$)?0:-1)},dependencies:[j8,Qn,wf],styles:["[_nghost-%COMP%] cc-labelled-color-picker[_ngcontent-%COMP%]{display:block}"]})}}return n})();function TCe(n,t){1&n&&o.nrm(0,"cc-legend-block",5),2&n&&o.Y8G("metricName",t)}function ICe(n,t){if(1&n&&(o.j41(0,"div"),o.nrm(1,"cc-legend-block",3),o.nI1(2,"async"),o.nrm(3,"cc-legend-block",4),o.nI1(4,"async"),o.DNE(5,TCe,1,1,"cc-legend-block",5),o.nI1(6,"async"),o.nrm(7,"hr")(8,"cc-legend-block",6),o.nI1(9,"async"),o.nrm(10,"cc-color-picker-for-map-color",1)(11,"cc-color-picker-for-map-color",1)(12,"cc-color-picker-for-map-color",1),o.k0s()),2&n){let e;const i=o.XpG();o.R7$(),o.Y8G("metricName",o.bMT(2,7,i.areaMetric$)),o.R7$(2),o.Y8G("metricName",o.bMT(4,9,i.heightMetric$)),o.R7$(2),o.vxM((e=o.bMT(6,11,i.edgeMetric$))?5:-1,e),o.R7$(3),o.Y8G("metricName",o.bMT(9,13,i.colorMetric$)),o.R7$(2),o.Y8G("mapColorFor","positive"),o.R7$(),o.Y8G("mapColorFor","neutral"),o.R7$(),o.Y8G("mapColorFor","negative")}}function FCe(n,t){1&n&&(o.j41(0,"div"),o.nrm(1,"cc-color-picker-for-map-color",1)(2,"cc-color-picker-for-map-color",1),o.k0s()),2&n&&(o.R7$(),o.Y8G("mapColorFor","positiveDelta"),o.R7$(),o.Y8G("mapColorFor","negativeDelta"))}function DCe(n,t){1&n&&o.nrm(0,"hr")(1,"cc-color-picker-for-map-color",1)(2,"cc-color-picker-for-map-color",1),2&n&&(o.R7$(),o.Y8G("mapColorFor","outgoingEdge"),o.R7$(),o.Y8G("mapColorFor","incomingEdge"))}let BCe=(()=>{class n{constructor(e,i,r){this.store=e,this.isAttributeSideBarVisibleService=i,this.viewReference=r,this.isLegendVisible=!1,this.isDeltaState$=this.store.select(u0),this.heightMetric$=this.store.select(B2),this.areaMetric$=this.store.select(gx),this.colorMetric$=this.store.select(Gg),this.edgeMetric$=this.store.select(iA)}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),s=document.querySelector(".cdk-overlay-container"),l=!!s&&s.contains(i);!r&&!l&&(this.isLegendVisible=!1)}}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(yP),o.rXU(o.c1b))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-legend-panel"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0),o.DNE(1,ICe,13,15,"div"),o.nI1(2,"async"),o.DNE(3,FCe,3,2,"div"),o.nrm(4,"hr")(5,"cc-color-picker-for-map-color",1),o.DNE(6,DCe,3,2),o.nI1(7,"async"),o.nrm(8,"cc-legend-marked-packages"),o.k0s(),o.j41(9,"button",2),o.bIt("click",function(){return r.toggleIsLegendVisible()}),o.EFF(10," LEGEND\n"),o.k0s()),2&i&&(o.AVh("visible",r.isLegendVisible)("isAttributeSideBarVisible",r.isAttributeSideBarVisibleService.isOpen),o.R7$(),o.vxM(o.bMT(2,10,r.isDeltaState$)?3:1),o.R7$(4),o.Y8G("mapColorFor","selected"),o.R7$(),o.vxM(o.bMT(7,12,r.edgeMetric$)?6:-1),o.R7$(3),o.AVh("isAttributeSideBarVisible",r.isAttributeSideBarVisibleService.isOpen),o.FS9("title",r.isLegendVisible?"Hide panel":"Show panel"))},dependencies:[xCe,uV,SCe,Jo,Qn],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})(),kCe=(()=>{class n{constructor(e){this.isLoadingFile$=e.select(x7)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-loading-file-progress-spinner"]],standalone:!0,features:[o.aNF],decls:3,vars:4,consts:[["id","loading-gif-file"],["mode","indeterminate","diameter","96"]],template:function(i,r){1&i&&(o.j41(0,"div",0),o.nI1(1,"async"),o.nrm(2,"mat-progress-spinner",1),o.k0s()),2&i&&o.xc7("visibility",o.bMT(1,2,r.isLoadingFile$)?"visible":"hidden")},dependencies:[NW,Qn],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})(),RCe=(()=>{class n{constructor(){this.version=Jy.rE}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-logo"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"a",1),o.nrm(2,"img",2),o.k0s(),o.j41(3,"h2"),o.EFF(4),o.k0s()()),2&i&&(o.R7$(4),o.SpI("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})(),PCe=(()=>{class n{constructor(e,i){this.store=e,this.loadInitialFileService=i,this.isInitialized=!1}ngOnInit(){var e=this;return Cn(function*(){e.store.dispatch(Ec({value:!0})),yield e.loadInitialFileService.loadFilesOrSampleFiles(),e.isInitialized=!0})()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(E6))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-code-charta"]],standalone:!0,features:[o.aNF],decls:8,vars:2,template:function(i,r){1&i&&(o.j41(0,"div"),o.nrm(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"),o.k0s()),2&i&&o.xc7("visibility",r.isInitialized?"visible":"hidden")},dependencies:[Jpe,WAe,kxe,ACe,BCe,kCe,RCe],encapsulation:2})}}return n})(),OCe=(()=>{class n{constructor(e){this.store=e,this.unfocusNodes$=os(()=>this.store.select(Qc).pipe((0,$n.T)(()=>E2())))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();let g0={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};function lY(n){g0=n}const cY=/[&<>"']/,LCe=new RegExp(cY.source,"g"),dY=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,UCe=new RegExp(dY.source,"g"),VCe={"&":"&","<":"<",">":">",'"':""","'":"'"},uY=n=>VCe[n];function il(n,t){if(t){if(cY.test(n))return n.replace(LCe,uY)}else if(dY.test(n))return n.replace(UCe,uY);return n}const HCe=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function hY(n){return n.replace(HCe,(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 QCe=/(^|[^\[])\^/g;function co(n,t){n="string"==typeof n?n:n.source,t=t||"";const e={replace:(i,r)=>(r=(r=r.source||r).replace(QCe,"$1"),n=n.replace(i,r),e),getRegex:()=>new RegExp(n,t)};return e}const zCe=/[^\w:]/g,GCe=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function fY(n,t,e){if(n){let i;try{i=decodeURIComponent(hY(e)).replace(zCe,"").toLowerCase()}catch{return null}if(0===i.indexOf("javascript:")||0===i.indexOf("vbscript:")||0===i.indexOf("data:"))return null}t&&!GCe.test(e)&&(e=function WCe(n,t){wP[" "+n]||(wP[" "+n]=jCe.test(n)?n+"/":CP(n,"/",!0));const e=-1===(n=wP[" "+n]).indexOf(":");return"//"===t.substring(0,2)?e?t:n.replace($Ce,"$1")+t:"/"===t.charAt(0)?e?t:n.replace(qCe,"$1")+t:n+t}(t,e));try{e=encodeURI(e).replace(/%25/g,"%")}catch{return null}return e}const wP={},jCe=/^[^:]+:\/*[^/]*$/,$Ce=/^([^:]+:)[\s\S]*$/,qCe=/^([^:]+:\/*[^/]*)[\s\S]*$/,xP={exec:function(){}};function pY(n,t){const i=n.replace(/\|/g,(s,l,u)=>{let f=!1,p=l;for(;--p>=0&&"\\"===u[p];)f=!f;return f?"|":" |"}).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.length0)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:CP(i,"\n")}}}fences(t){const e=this.rules.block.fences.exec(t);if(e){const i=e[0],r=function YCe(n,t){const e=n.match(/^(\s+)(?:```)/);if(null===e)return t;const i=e[1];return t.split("\n").map(r=>{const s=r.match(/^\s+/);if(null===s)return r;const[l]=s;return l.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=CP(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 s=this.lexer.blockTokens(i);return this.lexer.state.top=r,{type:"blockquote",raw:e[0],tokens:s,text:i}}}list(t){let e=this.rules.block.list.exec(t);if(e){let i,r,s,l,u,f,p,m,_,b,w,F,D=e[1].trim();const T=D.length>1,I={type:"list",raw:"",ordered:T,start:T?+D.slice(0,-1):"",loose:!1,items:[]};D=T?`\\d{1,9}\\${D.slice(-1)}`:`\\${D}`,this.options.pedantic&&(D=T?D:"[*+-]");const O=new RegExp(`^( {0,3}${D})((?:[\t ][^\\n]*)?(?:\\n|$))`);for(;t&&(F=!1,(e=O.exec(t))&&!this.rules.block.hr.test(t));){if(i=e[0],t=t.substring(i.length),m=e[2].split("\n",1)[0].replace(/^\t+/,P=>" ".repeat(3*P.length)),_=t.split("\n",1)[0],this.options.pedantic?(l=2,w=m.trimLeft()):(l=e[2].search(/[^ ]/),l=l>4?1:l,w=m.slice(l),l+=e[1].length),f=!1,!m&&/^ *$/.test(_)&&(i+=_+"\n",t=t.substring(_.length+1),F=!0),!F){const P=new RegExp(`^ {0,${Math.min(3,l-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),ee=new RegExp(`^ {0,${Math.min(3,l-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),J=new RegExp(`^ {0,${Math.min(3,l-1)}}(?:\`\`\`|~~~)`),te=new RegExp(`^ {0,${Math.min(3,l-1)}}#`);for(;t&&(b=t.split("\n",1)[0],_=b,this.options.pedantic&&(_=_.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!(J.test(_)||te.test(_)||P.test(_)||ee.test(t)));){if(_.search(/[^ ]/)>=l||!_.trim())w+="\n"+_.slice(l);else{if(f||m.search(/[^ ]/)>=4||J.test(m)||te.test(m)||ee.test(m))break;w+="\n"+_}!f&&!_.trim()&&(f=!0),i+=b+"\n",t=t.substring(b.length+1),m=_.slice(l)}}I.loose||(p?I.loose=!0:/\n *\n *$/.test(i)&&(p=!0)),this.options.gfm&&(r=/^\[[ xX]\] /.exec(w),r&&(s="[ ] "!==r[0],w=w.replace(/^\[[ xX]\] +/,""))),I.items.push({type:"list_item",raw:i,task:!!r,checked:s,loose:!1,text:w}),I.raw+=i}I.items[I.items.length-1].raw=i.trimRight(),I.items[I.items.length-1].text=w.trimRight(),I.raw=I.raw.trimRight();const R=I.items.length;for(u=0;u"space"===J.type),ee=P.length>0&&P.some(J=>/\n.*\n/.test(J.raw));I.loose=ee}if(I.loose)for(u=0;u$/,"$1").replace(this.rules.inline._escapes,"$1"):"",s=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:s}}}table(t){const e=this.rules.block.table.exec(t);if(e){const i={type:"table",header:pY(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 s,l,u,f,r=i.align.length;for(s=0;s({text:p}));for(r=i.header.length,l=0;l/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,block:!1,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):il(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 l=CP(i.slice(0,-1),"\\");if((i.length-l.length)%2==0)return}else{const l=function XCe(n,t){if(-1===n.indexOf(t[1]))return-1;const e=n.length;let i=0,r=0;for(;r-1){const f=(0===e[0].indexOf("!")?5:4)+e[1].length+l;e[2]=e[2].substring(0,l),e[0]=e[0].substring(0,f).trim(),e[3]=""}}let r=e[2],s="";if(this.options.pedantic){const l=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);l&&(r=l[1],s=l[3])}else s=e[3]?e[3].slice(1,-1):"";return r=r.trim(),/^$/.test(i)?r.slice(1):r.slice(1,-1)),AY(e,{href:r&&r.replace(this.rules.inline._escapes,"$1"),title:s&&s.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 s=i[0].charAt(0);return{type:"text",raw:s,text:s}}return AY(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))&&(!r[1]&&!r[2]||!i||this.rules.inline.punctuation.exec(i))){const l=r[0].length-1;let u,f,p=l,m=0;const _="*"===r[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(_.lastIndex=0,e=e.slice(-1*t.length+l);null!=(r=_.exec(e));){if(u=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!u)continue;if(f=u.length,r[3]||r[4]){p+=f;continue}if((r[5]||r[6])&&l%3&&!((l+f)%3)){m+=f;continue}if(p-=f,p>0)continue;f=Math.min(f,f+p+m);const b=t.slice(0,l+r.index+f+1);if(Math.min(l,f)%2){const F=b.slice(1,-1);return{type:"em",raw:b,text:F,tokens:this.lexer.inlineTokens(F)}}const w=b.slice(2,-2);return{type:"strong",raw:b,text:w,tokens:this.lexer.inlineTokens(w)}}}}codespan(t){const e=this.rules.inline.code.exec(t);if(e){let i=e[2].replace(/\n/g," ");const r=/[^ ]/.test(i),s=/^ /.test(i)&&/ $/.test(i);return r&&s&&(i=i.substring(1,i.length-1)),i=il(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,s;return"@"===i[2]?(r=il(this.options.mangle?e(i[1]):i[1]),s="mailto:"+r):(r=il(i[1]),s=r),{type:"link",raw:i[0],text:r,href:s,tokens:[{type:"text",raw:r,text:r}]}}}url(t,e){let i;if(i=this.rules.inline.url.exec(t)){let r,s;if("@"===i[2])r=il(this.options.mangle?e(i[0]):i[0]),s="mailto:"+r;else{let l;do{l=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0]}while(l!==i[0]);r=il(i[0]),s="www."===i[1]?"http://"+i[0]:i[0]}return{type:"link",raw:i[0],text:r,href:s,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]):il(i[0]):i[0]:il(this.options.smartypants?e(i[0]):i[0]),{type:"text",raw:i[0],text:r}}}}const ki={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:xP,lheading:/^((?:(?!^bull ).|\n(?!\n|bull ))+?)\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?'|\([^()]*\))/};ki.def=co(ki.def).replace("label",ki._label).replace("title",ki._title).getRegex(),ki.bullet=/(?:[*+-]|\d{1,9}[.)])/,ki.listItemStart=co(/^( *)(bull) */).replace("bull",ki.bullet).getRegex(),ki.list=co(ki.list).replace(/bull/g,ki.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+ki.def.source+")").getRegex(),ki._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",ki._comment=/|$)/,ki.html=co(ki.html,"i").replace("comment",ki._comment).replace("tag",ki._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ki.lheading=co(ki.lheading).replace(/bull/g,ki.bullet).getRegex(),ki.paragraph=co(ki._paragraph).replace("hr",ki.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",ki._tag).getRegex(),ki.blockquote=co(ki.blockquote).replace("paragraph",ki.paragraph).getRegex(),ki.normal={...ki},ki.gfm={...ki.normal,table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"},ki.gfm.table=co(ki.gfm.table).replace("hr",ki.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",ki._tag).getRegex(),ki.gfm.paragraph=co(ki._paragraph).replace("hr",ki.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",ki.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",ki._tag).getRegex(),ki.pedantic={...ki.normal,html:co("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",ki._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:xP,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:co(ki.normal._paragraph).replace("hr",ki.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",ki.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()};const qn={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:xP,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:xP,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(i="x"+i.toString(16)),t+="&#"+i+";";return t}qn._punctuation="\\p{P}$+<=>`^|~",qn.punctuation=co(qn.punctuation,"u").replace(/punctuation/g,qn._punctuation).getRegex(),qn.blockSkip=/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,qn.anyPunctuation=/\\[punct]/g,qn._escapes=/\\([punct])/g,qn._comment=co(ki._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),qn.emStrong.lDelim=co(qn.emStrong.lDelim,"u").replace(/punct/g,qn._punctuation).getRegex(),qn.emStrong.rDelimAst=co(qn.emStrong.rDelimAst,"gu").replace(/punct/g,qn._punctuation).getRegex(),qn.emStrong.rDelimUnd=co(qn.emStrong.rDelimUnd,"gu").replace(/punct/g,qn._punctuation).getRegex(),qn.anyPunctuation=co(qn.anyPunctuation,"gu").replace(/punct/g,qn._punctuation).getRegex(),qn._escapes=co(qn._escapes,"gu").replace(/punct/g,qn._punctuation).getRegex(),qn._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,qn._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])?)+(?![-_])/,qn.autolink=co(qn.autolink).replace("scheme",qn._scheme).replace("email",qn._email).getRegex(),qn._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,qn.tag=co(qn.tag).replace("comment",qn._comment).replace("attribute",qn._attribute).getRegex(),qn._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,qn._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,qn._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,qn.link=co(qn.link).replace("label",qn._label).replace("href",qn._href).replace("title",qn._title).getRegex(),qn.reflink=co(qn.reflink).replace("label",qn._label).replace("ref",ki._label).getRegex(),qn.nolink=co(qn.nolink).replace("ref",ki._label).getRegex(),qn.reflinkSearch=co(qn.reflinkSearch,"g").replace("reflink",qn.reflink).replace("nolink",qn.nolink).getRegex(),qn.normal={...qn},qn.pedantic={...qn.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:co(/^!?\[(label)\]\((.*?)\)/).replace("label",qn._label).getRegex(),reflink:co(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",qn._label).getRegex()},qn.gfm={...qn.normal,escape:co(qn.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]*?(?:(?=[\\f+" ".repeat(p.length));t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(u=>!!(i=u.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(s=t,this.options.extensions&&this.options.extensions.startBlock){let u=1/0;const f=t.slice(1);let p;this.options.extensions.startBlock.forEach(function(m){p=m.call({lexer:this},f),"number"==typeof p&&p>=0&&(u=Math.min(u,p))}),u<1/0&&u>=0&&(s=t.substring(0,u+1))}if(this.state.top&&(i=this.tokenizer.paragraph(s))){r=e[e.length-1],l&&"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),l=s.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 u="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(u);break}throw new Error(u)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let i,r,s,u,f,p,l=t;if(this.tokens.links){const m=Object.keys(this.tokens.links);if(m.length>0)for(;null!=(u=this.tokenizer.rules.inline.reflinkSearch.exec(l));)m.includes(u[0].slice(u[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,u.index)+"["+"a".repeat(u[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(u=this.tokenizer.rules.inline.blockSkip.exec(l));)l=l.slice(0,u.index)+"["+"a".repeat(u[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(u=this.tokenizer.rules.inline.anyPunctuation.exec(l));)l=l.slice(0,u.index)+"++"+l.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;)if(f||(p=""),f=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(m=>!!(i=m.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,l,p)){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,mY)){t=t.substring(i.raw.length),e.push(i);continue}if(!this.state.inLink&&(i=this.tokenizer.url(t,mY))){t=t.substring(i.raw.length),e.push(i);continue}if(s=t,this.options.extensions&&this.options.extensions.startInline){let m=1/0;const _=t.slice(1);let b;this.options.extensions.startInline.forEach(function(w){b=w.call({lexer:this},_),"number"==typeof b&&b>=0&&(m=Math.min(m,b))}),m<1/0&&m>=0&&(s=t.substring(0,m+1))}if(i=this.tokenizer.inlineText(s,ZCe)){t=t.substring(i.raw.length),"_"!==i.raw.slice(-1)&&(p=i.raw.slice(-1)),f=!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 m="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(m);break}throw new Error(m)}}return e}}class EP{constructor(t){this.options=t||g0}code(t,e,i){const r=(e||"").match(/\S*/)[0];if(this.options.highlight){const s=this.options.highlight(t,r);null!=s&&s!==t&&(i=!0,t=s)}return t=t.replace(/\n$/,"")+"\n",r?'

'+(i?t:il(t,!0))+"
\n":"
"+(i?t:il(t,!0))+"
\n"}blockquote(t){return`
\n${t}
\n`}html(t,e){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=fY(this.options.sanitize,this.options.baseUrl,t)))return i;let r='",r}image(t,e,i){if(null===(t=fY(this.options.sanitize,this.options.baseUrl,t)))return i;let r=`${i}":">",r}text(t){return t}}class mV{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 gV{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 _f{constructor(t){this.options=t||g0,this.options.renderer=this.options.renderer||new EP,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new mV,this.slugger=new gV}static parse(t,e){return new _f(e).parse(t)}static parseInline(t,e){return new _f(e).parseInline(t)}parse(t,e=!0){let r,s,l,u,f,p,m,_,b,w,F,D,T,I,O,R,P,ee,J,i="";const te=t.length;for(r=0;r0&&"paragraph"===O.tokens[0].type?(O.tokens[0].text=ee+" "+O.tokens[0].text,O.tokens[0].tokens&&O.tokens[0].tokens.length>0&&"text"===O.tokens[0].tokens[0].type&&(O.tokens[0].tokens[0].text=ee+" "+O.tokens[0].tokens[0].text)):O.tokens.unshift({type:"text",text:ee}):I+=ee),I+=this.parse(O.tokens,T),b+=this.renderer.listitem(I,P,R);i+=this.renderer.list(b,F,D);continue;case"html":i+=this.renderer.html(w.text,w.block);continue;case"paragraph":i+=this.renderer.paragraph(this.parseInline(w.tokens));continue;case"text":for(b=w.tokens?this.parseInline(w.tokens):w.text;r+1{i=i.concat(this.walkTokens(r[s],e))}):r.tokens&&(i=i.concat(this.walkTokens(r.tokens,e)))}return i}use(...t){const e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(i=>{const r={...i};if(r.async=this.defaults.async||r.async||!1,i.extensions&&(i.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if(s.renderer){const l=e.renderers[s.name];e.renderers[s.name]=l?function(...u){let f=s.renderer.apply(this,u);return!1===f&&(f=l.apply(this,u)),f}:s.renderer}if(s.tokenizer){if(!s.level||"block"!==s.level&&"inline"!==s.level)throw new Error("extension level must be 'block' or 'inline'");e[s.level]?e[s.level].unshift(s.tokenizer):e[s.level]=[s.tokenizer],s.start&&("block"===s.level?e.startBlock?e.startBlock.push(s.start):e.startBlock=[s.start]:"inline"===s.level&&(e.startInline?e.startInline.push(s.start):e.startInline=[s.start]))}s.childTokens&&(e.childTokens[s.name]=s.childTokens)}),r.extensions=e),i.renderer){const s=this.defaults.renderer||new EP(this.defaults);for(const l in i.renderer){const u=s[l];s[l]=(...f)=>{let p=i.renderer[l].apply(s,f);return!1===p&&(p=u.apply(s,f)),p}}r.renderer=s}if(i.tokenizer){const s=this.defaults.tokenizer||new MP(this.defaults);for(const l in i.tokenizer){const u=s[l];s[l]=(...f)=>{let p=i.tokenizer[l].apply(s,f);return!1===p&&(p=u.apply(s,f)),p}}r.tokenizer=s}if(i.hooks){const s=this.defaults.hooks||new SP;for(const l in i.hooks){const u=s[l];s[l]=SP.passThroughHooks.has(l)?f=>{if(this.defaults.async)return Promise.resolve(i.hooks[l].call(s,f)).then(m=>u.call(s,m));const p=i.hooks[l].call(s,f);return u.call(s,p)}:(...f)=>{let p=i.hooks[l].apply(s,f);return!1===p&&(p=u.apply(s,f)),p}}r.hooks=s}if(i.walkTokens){const s=this.defaults.walkTokens;r.walkTokens=function(l){let u=[];return u.push(i.walkTokens.call(this,l)),s&&(u=u.concat(s.call(this,l))),u}}this.defaults={...this.defaults,...r}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}#e(t,e){return(i,r,s)=>{"function"==typeof r&&(s=r,r=null);const l={...r};r={...this.defaults,...l};const u=this.#t(r.silent,r.async,s);if(typeof i>"u"||null===i)return u(new Error("marked(): input parameter is undefined or null"));if("string"!=typeof i)return u(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(i)+", string expected"));if(function KCe(n,t){!n||n.silent||(t&&console.warn("marked(): callback is deprecated since version 5.0.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/using_pro#async"),(n.sanitize||n.sanitizer)&&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"),(n.highlight||"language-"!==n.langPrefix)&&console.warn("marked(): highlight and langPrefix parameters are deprecated since version 5.0.0, should not be used and will be removed in the future. Instead use https://www.npmjs.com/package/marked-highlight."),n.mangle&&console.warn("marked(): mangle parameter is enabled by default, but is deprecated since version 5.0.0, and will be removed in the future. To clear this warning, install https://www.npmjs.com/package/marked-mangle, or disable by setting `{mangle: false}`."),n.baseUrl&&console.warn("marked(): baseUrl parameter is deprecated since version 5.0.0, should not be used and will be removed in the future. Instead use https://www.npmjs.com/package/marked-base-url."),n.smartypants&&console.warn("marked(): smartypants parameter is deprecated since version 5.0.0, should not be used and will be removed in the future. Instead use https://www.npmjs.com/package/marked-smartypants."),n.xhtml&&console.warn("marked(): xhtml parameter is deprecated since version 5.0.0, should not be used and will be removed in the future. Instead use https://www.npmjs.com/package/marked-xhtml."),(n.headerIds||n.headerPrefix)&&console.warn("marked(): headerIds and headerPrefix parameters enabled by default, but are deprecated since version 5.0.0, and will be removed in the future. To clear this warning, install https://www.npmjs.com/package/marked-gfm-heading-id, or disable by setting `{headerIds: false}`."))}(r,s),r.hooks&&(r.hooks.options=r),s){const f=r.highlight;let p;try{r.hooks&&(i=r.hooks.preprocess(i)),p=t(i,r)}catch(b){return u(b)}const m=b=>{let w;if(!b)try{r.walkTokens&&this.walkTokens(p,r.walkTokens),w=e(p,r),r.hooks&&(w=r.hooks.postprocess(w))}catch(F){b=F}return r.highlight=f,b?u(b):s(null,w)};if(!f||f.length<3||(delete r.highlight,!p.length))return m();let _=0;return this.walkTokens(p,b=>{"code"===b.type&&(_++,setTimeout(()=>{f(b.text,b.lang,(w,F)=>{if(w)return m(w);null!=F&&F!==b.text&&(b.text=F,b.escaped=!0),_--,0===_&&m()})},0))}),void(0===_&&m())}if(r.async)return Promise.resolve(r.hooks?r.hooks.preprocess(i):i).then(f=>t(f,r)).then(f=>r.walkTokens?Promise.all(this.walkTokens(f,r.walkTokens)).then(()=>f):f).then(f=>e(f,r)).then(f=>r.hooks?r.hooks.postprocess(f):f).catch(u);try{r.hooks&&(i=r.hooks.preprocess(i));const f=t(i,r);r.walkTokens&&this.walkTokens(f,r.walkTokens);let p=e(f,r);return r.hooks&&(p=r.hooks.postprocess(p)),p}catch(f){return u(f)}}}#t(t,e,i){return r=>{if(r.message+="\nPlease report this to https://github.com/markedjs/marked.",t){const s="

    An error occurred:

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

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

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

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

    ${f}

    `),m=this.getAllIndexes(i,p),_=[];for(const b of m){const w=b+2,F=this.findEndChangesLine(i,b);for(const D of i.slice(w,F))_.push(`${D}
    `)}_.length>0&&(u[f]=_.join("\n"))}return u}getAllIndexes(e,i){return e.reduce((r,s,l)=>(i.test(s)&&r.push(l),r),[])}findVersionLine(e,i){const r=new RegExp(`\\[${i}]`);return e.findIndex(s=>r.test(s))}findEndChangesLine(e,i){return i+e.slice(i+1).findIndex(r=>/

    /.test(r)||/

    /.test(r))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(fp))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-change-log-dialog"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-toolbar",0),o.EFF(1,"Changelog"),o.k0s(),o.j41(2,"div",1)(3,"h1"),o.EFF(4,"What is new in CodeCharta?"),o.k0s(),o.j41(5,"h2"),o.EFF(6),o.k0s(),o.j41(7,"div",2),o.Z7z(8,eMe,4,2,"div",null,o.fX1),o.nI1(10,"keyvalue"),o.k0s()(),o.j41(11,"div",3)(12,"a",4),o.EFF(13,"Know more"),o.k0s(),o.j41(14,"button",5),o.EFF(15,"CLOSE"),o.k0s()()),2&i&&(o.R7$(6),o.Lme("",r.data.previousVersion," \u2192 ",r.data.currentVersion,""),o.R7$(2),o.Dyx(o.bMT(10,3,r.changes)),o.R7$(6),o.Y8G("mat-dialog-close",!0))},dependencies:[Jg,ml,Jl,Jo,Ia,wf],encapsulation:2})}}return n})();function gY(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 iMe=(()=>{class n{constructor(e){this.dialog=e,this.version=Jy.rE}synchronizeLocalCodeChartaVersion(){const e=localStorage.getItem("codeChartaVersion");null!==e?function nMe(n,t){const e=gY(n),i=gY(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,s,l){this.doc=e,this.delegate=i,this.zone=r,this.animationType=s,this.moduleImpl=l,this._rendererFactoryPromise=null,this.scheduler=(0,o.WQX)(o.An2,{optional:!0}),this.loadingSchedulerFn=(0,o.WQX)(aMe,{optional:!0})}ngOnDestroy(){this._engine?.flush()}loadImpl(){const e=()=>this.moduleImpl??v.e(8).then(v.bind(v,8008)).then(r=>r);let i;return i=this.loadingSchedulerFn?this.loadingSchedulerFn(e):e(),i.catch(r=>{throw new o.wOt(5300,!1)}).then(({\u0275createEngine:r,\u0275AnimationRendererFactory:s})=>{this._engine=r(this.animationType,this.doc);const l=new s(this.delegate,this._engine,this.zone);return this.delegate=l,l})}createRenderer(e,i){const r=this.delegate.createRenderer(e,i);if(0===r.\u0275type)return r;"boolean"==typeof r.throwOnSyntheticProps&&(r.throwOnSyntheticProps=!1);const s=new sMe(r);return i?.data?.animation&&!this._rendererFactoryPromise&&(this._rendererFactoryPromise=this.loadImpl()),this._rendererFactoryPromise?.then(l=>{const u=l.createRenderer(e,i);s.use(u),this.scheduler?.notify(10)}).catch(l=>{s.use(r)}),s}begin(){this.delegate.begin?.()}end(){this.delegate.end?.()}whenRenderingDone(){return this.delegate.whenRenderingDone?.()??Promise.resolve()}static{this.\u0275fac=function(i){o.QTQ()}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();class sMe{constructor(t){this.delegate=t,this.replay=[],this.\u0275type=1}use(t){if(this.delegate=t,null!==this.replay){for(const e of this.replay)e(t);this.replay=null}}get data(){return this.delegate.data}destroy(){this.replay=null,this.delegate.destroy()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}get destroyNode(){return this.delegate.destroyNode}appendChild(t,e){this.delegate.appendChild(t,e)}insertBefore(t,e,i,r){this.delegate.insertBefore(t,e,i,r)}removeChild(t,e,i){this.delegate.removeChild(t,e,i)}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){this.shouldReplay(e)&&this.replay.push(r=>r.setProperty(t,e,i)),this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i){return this.shouldReplay(e)&&this.replay.push(r=>r.listen(t,e,i)),this.delegate.listen(t,e,i)}shouldReplay(t){return null!==this.replay&&t.startsWith("@")}}const aMe=new o.nKC(""),_V=sn(Hc,n=>n.focusedNodePath);const _Y=[f2,Wp,A3,m3,x2,w2,_2,m2,g2,A2,px,fx,k2,o0,b2,v2,y2,hx,Jp,hf,Ax,s0,aR,lR,E2,cR,eA,Zp,zu,C2,fR,S2,pR,p2,_x],uMe=1e3/60;let bY=(()=>{class n{constructor(e,i,r,s,l){this.store=e,this.actions$=i,this.uploadFilesService=r,this.threeRendererService=s,this.codeMapRenderService=l,this.actionsRequiringRender$=this.actions$.pipe(ff(..._Y)),this.renderCodeMap$=os(()=>h0([this.store.select(kd),this.actionsRequiringRender$]).pipe(ur(([u])=>!!u.unifiedMapNode),function dMe(n,t=ru,e){const i=np(n,t);return function cMe(n,t){return(0,Fr.N)((e,i)=>{const{leading:r=!0,trailing:s=!1}=t??{};let l=!1,u=null,f=null,p=!1;const m=()=>{f?.unsubscribe(),f=null,s&&(w(),p&&i.complete())},_=()=>{f=null,p&&i.complete()},b=F=>f=Pr(n(F)).subscribe((0,sr._)(i,m,_)),w=()=>{if(l){l=!1;const F=u;u=null,i.next(F),!p&&b(F)}};e.subscribe((0,sr._)(i,F=>{l=!0,u=F,(!f||f.closed)&&(r?w():b(F))},()=>{p=!0,(!(s&&l&&f)||f.closed)&&i.complete()}))})}(()=>i,e)}(uMe,ru,{leading:!1,trailing:!0}),ao(([u])=>{this.codeMapRenderService.render(u.unifiedMapNode),this.codeMapRenderService.scaleMap(),this.threeRendererService.render()}),q3()),{dispatch:!1}),this.removeLoadingIndicatorAfterRender$=os(()=>this.renderCodeMap$.pipe(ur(()=>!this.uploadFilesService.isUploading),ao(()=>{this.store.dispatch(Ec({value:!1})),this.store.dispatch(ph({value:!1}))})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(nA),o.KVO(ME),o.KVO(Cr),o.KVO(tX))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),hMe=(()=>{class n{constructor(e,i,r,s){this.store=e,this.renderCodeMapEffect=i,this.threeMapControlsService=r,this.actions$=s,this.autoFitTo$=os(()=>h0([this.store.select(Qc),this.store.select(_V),this.store.select(UW)]).pipe(E_(1),hl(this.store.select(LW)),ur(([,l])=>l),Xp(()=>this.renderCodeMapEffect.renderCodeMap$.pipe(ms(1))),ao(()=>{this.threeMapControlsService.autoFitTo()})),{dispatch:!1}),this.autoFitToWhenResetCameraIfNewFileIsLoadedSetToFalse$=os(()=>this.actions$.pipe(ff("StartWithGlobalOption:resetCameraIfNewFileIsLoadedSetToFalse"),h2(),Xp(()=>this.renderCodeMapEffect.renderCodeMap$.pipe(ms(1))),ao(()=>{this.threeMapControlsService.autoFitTo()})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(bY),o.KVO(Nd),o.KVO(nA))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),fMe=(()=>{class n{constructor(e){this.store=e,this.linkHeightAndColorMetric$=os(()=>h0([this.store.select(B2),this.store.select(O7)]).pipe(ur(([,i])=>i),(0,$n.T)(([i])=>zu({value:i}))))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const bV=sn(MX,Yw,(n,t)=>n?t.get(n.nodeId):null),pMe=sn(Zw,n=>n.markingColors),AMe=sn(bV,pMe,aY,(n,t,e)=>{if(null===n)return t.map(r=>({color:r,isMarked:!1}));const i=yW(e,n.path);return t.map(r=>({color:r,isMarked:-1!==i&&r===e[i].color}))});function mMe(n,t){1&n&&o.nrm(0,"i",5)}function gMe(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",4),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG(),l=o.XpG();return o.Njj(r.isMarked?l.unmarkFolder(s.path):l.markFolder(s.path,r.color))}),o.DNE(1,mMe,1,0,"i",5),o.k0s()}if(2&n){const e=t.$implicit;o.xc7("background-color",e.color),o.R7$(),o.vxM(e.isMarked?1:-1)}}function _Me(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",1),o.Z7z(1,gMe,2,3,"button",2,o.fX1),o.nI1(3,"async"),o.j41(4,"cc-color-picker",3),o.bIt("onColorChange",function(r){const s=o.eBV(e),l=o.XpG();return o.Njj(l.markFolder(s.path,r))}),o.k0s()()}if(2&n){const e=o.XpG(),i=o.sdS(3);o.R7$(),o.Dyx(o.bMT(3,2,e.markFolderItems$)),o.R7$(3),o.Y8G("hexColor","#ff0000")("triggerTemplate",i)}}function bMe(n,t){1&n&&o.nrm(0,"div",6)}let vMe=(()=>{class n{constructor(e){this.store=e,this.markFolderItems$=this.store.select(AMe),this.codeMapNode$=this.store.select(bV)}markFolder(e,i){this.store.dispatch(S2({packages:[{path:e,color:i}]}))}unmarkFolder(e){this.store.dispatch(pR({path:e}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-mark-folder-row"]],standalone:!0,features:[o.aNF],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&&(o.DNE(0,_Me,5,4,"div",1),o.nI1(1,"async"),o.DNE(2,bMe,1,0,"ng-template",null,0,o.C5r)),2&i){let s;o.vxM((s=o.bMT(1,1,r.codeMapNode$))?0:-1,s)}},dependencies:[hq,Qn],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})();const yMe=sn(_V,n=>n[0]);let wMe=(()=>{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=o.EJ8({name:"isNodeFocused",type:n,pure:!0,standalone:!0})}}return n})();function xMe(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",1),o.bIt("click",function(){o.eBV(e);const r=o.XpG(2);return o.Njj(r.handleFocusNodeClicked())}),o.nrm(1,"i",2),o.EFF(2," FOCUS "),o.k0s()}}function CMe(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",5),o.bIt("click",function(){o.eBV(e);const r=o.XpG(3);return o.Njj(r.handleUnfocusAllNodesClicked())}),o.nrm(1,"i",2),o.EFF(2," UNFOCUS ALL "),o.k0s()}}function MMe(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",3),o.bIt("click",function(){o.eBV(e);const r=o.XpG(2);return o.Njj(r.handleUnfocusNodeClicked())}),o.nrm(1,"i",2),o.EFF(2),o.k0s(),o.DNE(3,CMe,3,0,"button",4),o.nI1(4,"async")}if(2&n){const e=o.XpG(),i=o.XpG();o.R7$(2),o.SpI(" ",e.isParentFocused?"UNFOCUS PARENT":"UNFOCUS"," "),o.R7$(),o.vxM(o.bMT(4,2,i.hasPreviousFocusedNodePath$)?3:-1)}}function EMe(n,t){if(1&n&&o.DNE(0,xMe,3,0,"button",0)(1,MMe,5,4),2&n){const e=t;o.vxM(e.isNodeFocused?-1:0),o.R7$(),o.vxM(e.isNodeFocused||e.isParentFocused?1:-1)}}let SMe=(()=>{class n{constructor(e){this.store=e,this.currentFocusedNodePath$=this.store.select(yMe),this.hasPreviousFocusedNodePath$=this.store.select(_V).pipe((0,$n.T)(i=>i.length>1))}handleFocusNodeClicked(){this.store.dispatch(lR({value:this.codeMapNode.path}))}handleUnfocusNodeClicked(){this.store.dispatch(cR())}handleUnfocusAllNodesClicked(){this.store.dispatch(E2())}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-focus-buttons"]],inputs:{codeMapNode:"codeMapNode"},standalone:!0,features:[o.aNF],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&&(o.DNE(0,EMe,2,2),o.nI1(1,"async"),o.nI1(2,"isNodeFocused")),2&i){let s;o.vxM((s=o.i5U(2,3,o.bMT(1,1,r.currentFocusedNodePath$),r.codeMapNode))?0:-1,s)}},dependencies:[Jo,Qn,wMe],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 TMe(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",2),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.flattenNode())}),o.nrm(1,"img",3),o.EFF(2," FLATTEN "),o.k0s()}}function IMe(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",4),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.unFlattenNode())}),o.nrm(1,"img",3),o.EFF(2," SHOW "),o.k0s()}}let FMe=(()=>{class n{constructor(e){this.store=e}flattenNode(){this.store.dispatch(e6({item:{path:this.codeMapNode.path,type:"flatten",nodeType:this.codeMapNode.type}}))}unFlattenNode(){this.store.dispatch(hR({item:{path:this.codeMapNode.path,type:"flatten",nodeType:this.codeMapNode.type}}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-flatten-buttons"]],inputs:{codeMapNode:"codeMapNode"},standalone:!0,features:[o.aNF],decls:2,vars:1,consts:[["mat-button","","title","Flatten node and children-nodes, but keep an empty space"],["mat-button","","title","Show node and children-nodes"],["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&&o.DNE(0,TMe,3,0,"button",0)(1,IMe,3,0,"button",1),2&i&&o.vxM(null!=r.codeMapNode&&r.codeMapNode.isFlattened?1:0)},dependencies:[Jo],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 DMe(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",2),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.addNodeToConstantHighlight())}),o.nrm(1,"i",3),o.EFF(2," KEEP HIGHLIGHT "),o.k0s()}}function BMe(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",4),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.removeNodeFromConstantHighlight())}),o.nrm(1,"i",3),o.EFF(2," REMOVE HIGHLIGHT "),o.k0s()}}let kMe=(()=>{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)(o.rXU(Rd),o.rXU(zS))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-highlight-buttons"]],inputs:{codeMapNode:"codeMapNode"},standalone:!0,features:[o.OA$,o.aNF],decls:2,vars:1,consts:[["mat-button","","title","Highlight node constantly"],["mat-button","","title","Remove constant highlight"],["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&&o.DNE(0,DMe,3,0,"button",0)(1,BMe,3,0,"button",1),2&i&&o.vxM(r.isHighlighted?1:0)},dependencies:[Jo],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})(),RMe=(()=>{class n{constructor(e){this.store=e}excludeNode(){this.store.dispatch(t6({items:[{path:this.codeMapNode.path,type:"exclude",nodeType:this.codeMapNode.type}]}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-exclude-button"]],inputs:{codeMapNode:"codeMapNode"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"button",0),o.bIt("click",function(){return r.excludeNode()}),o.nrm(1,"i",1),o.EFF(2," EXCLUDE\n"),o.k0s())},dependencies:[Jo],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})(),PMe=(()=>{class n{transform(e){return`${0===e.lastIndexOf("/")?"":"..."}${e.slice(e.lastIndexOf("/"))}`}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=o.EJ8({name:"lastPartOfNodePath",type:n,pure:!0,standalone:!0})}}return n})();function OMe(n,t){1&n&&(o.j41(0,"div"),o.nrm(1,"cc-mark-folder-row")(2,"mat-divider"),o.k0s())}function NMe(n,t){if(1&n&&(o.j41(0,"mat-card",0),o.DNE(1,OMe,3,0,"div"),o.j41(2,"div",1)(3,"button",2),o.EFF(4),o.nI1(5,"lastPartOfNodePath"),o.k0s(),o.nrm(6,"cc-focus-buttons",3)(7,"cc-flatten-buttons",3)(8,"cc-highlight-buttons",3)(9,"cc-exclude-button",3),o.k0s()()),2&n){const e=t;o.R7$(),o.vxM((null==e||null==e.children?null:e.children.length)>0?1:-1),o.R7$(2),o.FS9("title",e.path),o.R7$(),o.SpI(" ",o.bMT(5,7,e.path)," "),o.R7$(2),o.Y8G("codeMapNode",e),o.R7$(),o.Y8G("codeMapNode",e),o.R7$(),o.Y8G("codeMapNode",e),o.R7$(),o.Y8G("codeMapNode",e)}}let LMe=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.codeMapNode$=this.store.select(bV)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-node-context-menu-card"]],standalone:!0,features:[o.aNF],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&&(o.DNE(0,NMe,10,9,"mat-card",0),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.codeMapNode$))?0:-1,s)}},dependencies:[c2,vMe,T7,Jo,SMe,FMe,kMe,RMe,Qn,PMe],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})(),UMe=(()=>{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(vx(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 Am(LMe)),this.overlayReference.overlayElement.addEventListener("contextmenu",s=>{s.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)(o.KVO(Us),o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),VMe=(()=>{class n{constructor(e,i){this.actions$=e,this.nodeContextMenu=i,this.openNodeContextMenu$=os(()=>this.actions$.pipe(ff(vx),ao(r=>{r.value&&this.nodeContextMenu.open(r.value.xPositionOfRightClickEvent,r.value.yPositionOfRightClickEvent)})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(nA),o.KVO(UMe))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),HMe=(()=>{class n{constructor(e){this.store=e,this.resetSelectedEdgeMetricWhenItDoesntExistAnymore$=os(()=>this.store.select(Aa).pipe(hl(this.store.select(iA)),ur(([i,r])=>!i.edgeMetricData.some(s=>s.name===r)),(0,$n.T)(([i])=>i.edgeMetricData[0]?.name),Rr(),(0,$n.T)(i=>Jp({value:i}))))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const GMe=[[fR,S2,pR,n6,mq,gq,Y8,Z8,K8,J8,e6,uR,hR],[f2,x2,w2,hW,F6,AW,$6,Wp,A3,m3,sR,C2,q8,rR,_2,g2,m2,A2,px,fx,k2,o0,oR,iR,nR,b2,v2,y2,W8,X8,p2],[hx,dR,Jp,hf,Ax,s0,$,aR,E2,lR,cR,eA,M2,zu,Zp],[...mt]].flat();let jMe=(()=>{class n{constructor(e,i){var r=this;this.actions$=e,this.state=i,this.saveCcState$=os(()=>this.actions$.pipe(ur(s=>s.type!==bx.type),ff(...GMe),M_(500),ao(Cn(function*(){const s=r.state.getValue();yield function Wde(n){return h6.apply(this,arguments)}(s)}))),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(nA),o.KVO(Vi))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),$Me=(()=>{class n{constructor(e,i){this.actions$=e,this.store=i,this.setIsLoadingFile$=os(()=>this.store.select(Qc).pipe((0,$n.T)(()=>Ec({value:!0})))),this.setIsLoadingMap$=os(()=>this.actions$.pipe(ff(..._Y),(0,$n.T)(()=>ph({value:!0}))))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(nA),o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),qMe=(()=>{class n{constructor(e){this.store=e,this.resetIsEdgeMetricVisible$=os(()=>this.store.select(iA).pipe(hl(this.store.select(hV)),ur(([,i])=>!i),(0,$n.T)(()=>rR())))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();function WMe(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 s={fromNodeName:t?VS(i.fileMeta.fileName,r.fromNodeName):r.fromNodeName,toNodeName:t?VS(i.fileMeta.fileName,r.toNodeName):r.toNodeName,attributes:C(r.attributes),visible:r.visible},l=e.get(`${s.fromNodeName}|${s.toNodeName}`);if(void 0!==l)for(const u of Object.keys(s.attributes))l.attributes[u]=s.attributes[u];else e.set(`${s.fromNodeName}|${s.toNodeName}`,s)}return[...e.values()]}function XMe(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 s={path:t?hG(i.fileMeta.fileName,r.path):r.path,color:r.color};e.set(`${s.path}|${s.color}`,s)}return[...e.values()]}function KMe(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 s={path:t?hG(i.fileMeta.fileName,r.path):r.path,type:r.type};e.set(`${s.path}|${s.type}`,s)}return[...e.values()]}function YMe(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 ZMe(n){const t={};for(const e of n)for(const i of Object.keys(e))t[i]||(t[i]=e[i]);return t}let JMe=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.updateFileSettings$=os(()=>this.store.select(Qc).pipe((0,$n.T)(()=>{const r=this.state.getValue(),s=function mre(n){return d3(n).map(t=>t.file)}(r.files),l=lG(r.files),u=Qc(r).map(({file:p})=>p.settings.fileSettings.attributeTypes),f=Qc(r).map(({file:p})=>p.settings.fileSettings.attributeDescriptors);return _x({value:{fileSettings:{edges:WMe(s,l),markedPackages:XMe(s,l),blacklist:KMe(s,l),attributeTypes:YMe(u),attributeDescriptors:ZMe(f)}}})})))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(Vi))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),eEe=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.updateMapColors$=os(()=>this.store.select(Gg).pipe((0,$n.T)(r=>{const s=this.state.getValue();if(1===s.fileSettings.attributeDescriptors[r]?.direction){const u=JSON.parse(Qu(s.appSettings.mapColors)),f=u.negative;return u.negative=u.positive,u.positive=f,Wp({value:u})}return Wp({value:af})})))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(Vi))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),tEe=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.updateVisibleTopLabels$=os(()=>this.store.select(Qc).pipe(TW(),hl(this.store.select(FR)),(0,$n.T)(([[r,s],l])=>{const f=Qu(r)===Qu(s)?this.state.getValue().appSettings.amountOfTopLabels:m7(l);return o0({value:f})})))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(Vi))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),nEe=(()=>{class n{constructor(e,i){this.actions$=e,this.store=i,this.resetColorRange$=os(()=>this.actions$.pipe(ff(...mt),hl(this.store.select(Qc)),Xp(()=>this.store.select(qp).pipe(E_(1),ms(1))),(0,$n.T)(r=>hf({value:HR(r)})))),this.resetColorRangeOnColorMetricChange$=os(()=>this.actions$.pipe(ff(zu),Xp(()=>this.store.select(qp).pipe(ms(1))),(0,$n.T)(r=>hf({value:HR(r)}))))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(nA),o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();!function Ha(n,t){(0,o.TL3)({rootComponent:n,...MA(t)})}(PCe,{providers:[function lMe(n="animations"){return(0,o.ngT)("NgAsyncAnimations"),(0,o.EmA)([{provide:o._9s,useFactory:(t,e,i)=>new oMe(t,e,i,n),deps:[V,Va,o.SKi]},{provide:o.bc$,useValue:"noop"===n?"NoopAnimations":"BrowserAnimations"}])}(),function the(...n){const t=[w6,Yq,Xq,{provide:gR,useExisting:Xq},{provide:_R,useFactory:()=>(0,o.WQX)(x6,{optional:!0})??(0,o.WQX)(Yq)},{provide:D2,useValue:ehe,multi:!0},{provide:M6,useValue:!0},{provide:eW,useClass:Jue}];for(const e of n)t.push(...e.\u0275providers);return(0,o.EmA)(t)}(function nhe(){return function ov(n,t){return{\u0275kind:n,\u0275providers:t}}(d0.LegacyInterceptors,[{provide:tW,useFactory:Gue},{provide:D2,useExisting:tW,multi:!0}])}()),function am(n,t){return(0,o.EmA)([...sm(n,t),bC])}(kfe,{metaReducers:[n=>(t,e)=>function xhe(n){return n.type===_x.type}(e)?SW(C(t),e.value):n(t,e)]}),function Cue(...n){const t=n.flat(),e=function oue(n){return n.filter(_6)}(t);return(0,o.EmA)([e,{provide:o.Z63,multi:!0,useValue:()=>{(0,o.WQX)(ad),(0,o.WQX)(bo,{optional:!0});const i=(0,o.WQX)(Oq),r=(0,o.WQX)(Pq),s=!i.isStarted;s&&i.start();for(const l of t){const u=_6(l)?(0,o.WQX)(l):l;r.addEffects(u)}s&&(0,o.WQX)(Yt).dispatch(uue())}}])}([OCe,oX,VMe,ume,nEe,whe,qMe,bY,hMe,tEe,fMe,HMe,JMe,$Me,jMe,Eue,eEe]),{provide:o.hnV,useFactory:n=>()=>n.synchronizeLocalCodeChartaVersion(),deps:[iMe],multi:!0}]})},7172:(nt,Ee,v)=>{"use strict";var j=v(6685),o=v(5841),y=v(8493),Z=v(2420),U=v(8861),L=v(7741),Y=v(8930),V=v(2615),X=v(1677);nt.exports=me,me.prototype.validate=function we(rt,Rt){var qt;if("string"==typeof rt){if(!(qt=this.getSchema(rt)))throw new Error('no schema with key or ref "'+rt+'"')}else{var cn=this._addSchema(rt);qt=cn.validate||this._compile(cn)}var Wt=qt(Rt);return!0!==qt.$async&&(this.errors=qt.errors),Wt},me.prototype.compile=function Be(rt,Rt){var qt=this._addSchema(rt,void 0,Rt);return qt.validate||this._compile(qt)},me.prototype.addSchema=function Ie(rt,Rt,qt,cn){if(Array.isArray(rt)){for(var Wt=0;Wt{"use strict";var Ee=nt.exports=function(){this._cache={}};Ee.prototype.put=function(j,o){this._cache[j]=o},Ee.prototype.get=function(j){return this._cache[j]},Ee.prototype.del=function(j){delete this._cache[j]},Ee.prototype.clear=function(){this._cache={}}},4442:(nt,Ee,v)=>{"use strict";var j=v(8892).MissingRef;nt.exports=function o(y,Z,U){var L=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof Z&&(U=Z,Z=void 0);var Y=V(y).then(function(){var z=L._addSchema(y,void 0,Z);return z.validate||X(z)});return U&&Y.then(function(z){U(null,z)},U),Y;function V(z){var G=z.$schema;return G&&!L.getSchema(G)?o.call(L,{$ref:G},!0):Promise.resolve()}function X(z){try{return L._compile(z)}catch(Q){if(Q instanceof j)return function G(Q){var ne=Q.missingSchema;if(we(ne))throw new Error("Schema "+ne+" is loaded but "+Q.missingRef+" cannot be resolved");var re=L._loadingSchemas[ne];return re||(re=L._loadingSchemas[ne]=L._opts.loadSchema(ne)).then(me,me),re.then(function(Be){if(!we(ne))return V(Be).then(function(){we(ne)||L.addSchema(Be,ne,void 0,Z)})}).then(function(){return X(z)});function me(){delete L._loadingSchemas[ne]}function we(Be){return L._refs[Be]||L._schemas[Be]}}(Q);throw Q}}}},8892:(nt,Ee,v)=>{"use strict";var j=v(5841);function y(U,L,Y){this.message=Y||y.message(U,L),this.missingRef=j.url(U,L),this.missingSchema=j.normalizeId(j.fullPath(this.missingRef))}function Z(U){return U.prototype=Object.create(Error.prototype),U.prototype.constructor=U,U}nt.exports={Validation:Z(function o(U){this.message="validation failed",this.errors=U,this.ajv=this.validation=!0}),MissingRef:Z(y)},y.message=function(U,L){return"can't resolve reference "+L+" from id "+U}},7741:(nt,Ee,v)=>{"use strict";var j=v(1677),o=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,y=[0,31,28,31,30,31,30,31,31,30,31,30,31],Z=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,U=/^(?=.{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,L=/^(?:[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,V=/^(?:(?:[^\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,X=/^(?:(?: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,z=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,G=/^(?:\/(?:[^~/]|~0|~1)*)*$/,Q=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,ne=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function re(je){return j.copy(re[je="full"==je?"full":"fast"])}function we(je){var at=je.match(o);if(!at)return!1;var ve=+at[2],he=+at[3];return ve>=1&&ve<=12&&he>=1&&he<=(2==ve&&function me(je){return je%4==0&&(je%100!=0||je%400==0)}(+at[1])?29:y[ve])}function Be(je,at){var We=je.match(Z);if(!We)return!1;var ve=We[1],he=We[2],Qe=We[3];return(ve<=23&&he<=59&&Qe<=59||23==ve&&59==he&&60==Qe)&&(!at||We[5])}nt.exports=re,re.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":V,url:X,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:U,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:$e,uuid:z,"json-pointer":G,"json-pointer-uri-fragment":Q,"relative-json-pointer":ne},re.full={date:we,time:Be,"date-time":function Ne(je){var at=je.split(Ie);return 2==at.length&&we(at[0])&&Be(at[1],!0)},uri:function He(je){return Je.test(je)&&L.test(je)},"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":V,url:X,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:U,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:$e,uuid:z,"json-pointer":G,"json-pointer-uri-fragment":Q,"relative-json-pointer":ne};var Ie=/t|\s/i,Je=/\/|:/,qe=/[^\\]\\Z/;function $e(je){if(qe.test(je))return!1;try{return new RegExp(je),!0}catch{return!1}}},6685:(nt,Ee,v)=>{"use strict";var j=v(5841),o=v(1677),y=v(8892),Z=v(8861),U=v(604),L=o.ucs2length,Y=v(362),V=y.Validation;function z(Ie,Ne,Je){var He=Q.call(this,Ie,Ne,Je);return He>=0?{index:He,compiling:!0}:(this._compilations[He=this._compilations.length]={schema:Ie,root:Ne,baseId:Je},{index:He,compiling:!1})}function G(Ie,Ne,Je){var He=Q.call(this,Ie,Ne,Je);He>=0&&this._compilations.splice(He,1)}function Q(Ie,Ne,Je){for(var He=0;He{"use strict";var j=v(5568),o=v(362),y=v(1677),Z=v(2420),U=v(4331);function L(He,qe,$e){var je=this._refs[$e];if("string"==typeof je){if(!this._refs[je])return L.call(this,He,qe,je);je=this._refs[je]}if((je=je||this._schemas[$e])instanceof Z)return Q(je.schema,this._opts.inlineRefs)?je.schema:je.validate||this._compile(je);var We,ve,he,at=Y.call(this,qe,$e);return at&&(We=at.schema,qe=at.root,he=at.baseId),We instanceof Z?ve=We.validate||He.call(this,We.schema,qe,void 0,he):void 0!==We&&(ve=Q(We,this._opts.inlineRefs)?We:He.call(this,We,qe,void 0,he)),ve}function Y(He,qe){var $e=j.parse(qe),je=we($e),at=me(this._getId(He.schema));if(0===Object.keys(He.schema).length||je!==at){var We=Ie(je),ve=this._refs[We];if("string"==typeof ve)return V.call(this,He,ve,$e);if(ve instanceof Z)ve.validate||this._compile(ve),He=ve;else{if(!((ve=this._schemas[We])instanceof Z))return;if(ve.validate||this._compile(ve),We==Ie(qe))return{schema:ve,root:He,baseId:at};He=ve}if(!He.schema)return;at=me(this._getId(He.schema))}return z.call(this,$e,at,He.schema,He)}function V(He,qe,$e){var je=Y.call(this,He,qe);if(je){var at=je.schema,We=je.baseId;He=je.root;var ve=this._getId(at);return ve&&(We=Ne(We,ve)),z.call(this,$e,We,at,He)}}nt.exports=L,L.normalizeId=Ie,L.fullPath=me,L.url=Ne,L.ids=function Je(He){var qe=Ie(this._getId(He)),$e={"":qe},je={"":me(qe,!1)},at={},We=this;return U(He,{allKeys:!0},function(ve,he,Qe,Te,Le,pt,xt){if(""!==he){var Ut=We._getId(ve),Pt=$e[Te],fn=je[Te]+"/"+Le;if(void 0!==xt&&(fn+="/"+("number"==typeof xt?xt:y.escapeFragment(xt))),"string"==typeof Ut){Ut=Pt=Ie(Pt?j.resolve(Pt,Ut):Ut);var jn=We._refs[Ut];if("string"==typeof jn&&(jn=We._refs[jn]),jn&&jn.schema){if(!o(ve,jn.schema))throw new Error('id "'+Ut+'" resolves to more than one schema')}else if(Ut!=Ie(fn))if("#"==Ut[0]){if(at[Ut]&&!o(ve,at[Ut]))throw new Error('id "'+Ut+'" resolves to more than one schema');at[Ut]=ve}else We._refs[Ut]=fn}$e[he]=Pt,je[he]=fn}}),at},L.inlineRef=Q,L.schema=Y;var X=y.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function z(He,qe,$e,je){if(He.fragment=He.fragment||"","/"==He.fragment.slice(0,1)){for(var at=He.fragment.split("/"),We=1;We{"use strict";var j=v(2956),o=v(1677).toHash;nt.exports=function(){var Z=[{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"]}],U=["type","$comment"];return Z.all=o(U),Z.types=o(["number","integer","string","array","object","boolean","null"]),Z.forEach(function(V){V.rules=V.rules.map(function(X){var z;if("object"==typeof X){var G=Object.keys(X)[0];z=X[G],X=G,z.forEach(function(ne){U.push(ne),Z.all[ne]=!0})}return U.push(X),Z.all[X]={keyword:X,code:j[X],implements:z}}),Z.all.$comment={keyword:"$comment",code:j.$comment},V.type&&(Z.types[V.type]=V)}),Z.keywords=o(U.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),Z.custom={},Z}},2420:(nt,Ee,v)=>{"use strict";var j=v(1677);nt.exports=function o(y){j.copy(y,this)}},1132:nt=>{"use strict";nt.exports=function(v){for(var Z,j=0,o=v.length,y=0;y=55296&&Z<=56319&&y{"use strict";function o(ve,he,Qe,Te){var Le=Te?" !== ":" === ",pt=Te?" || ":" && ",xt=Te?"!":"",Ut=Te?"":"!";switch(ve){case"null":return he+Le+"null";case"array":return xt+"Array.isArray("+he+")";case"object":return"("+xt+he+pt+"typeof "+he+Le+'"object"'+pt+Ut+"Array.isArray("+he+"))";case"integer":return"(typeof "+he+Le+'"number"'+pt+Ut+"("+he+" % 1)"+pt+he+Le+he+(Qe?pt+xt+"isFinite("+he+")":"")+")";case"number":return"(typeof "+he+Le+'"'+ve+'"'+(Qe?pt+xt+"isFinite("+he+")":"")+")";default:return"typeof "+he+Le+'"'+ve+'"'}}nt.exports={copy:function j(ve,he){for(var Qe in he=he||{},ve)he[Qe]=ve[Qe];return he},checkDataType:o,checkDataTypes:function y(ve,he,Qe){if(1===ve.length)return o(ve[0],he,Qe,!0);var Te="",Le=L(ve);for(var pt in Le.array&&Le.object&&(Te=Le.null?"(":"(!"+he+" || ",Te+="typeof "+he+' !== "object")',delete Le.null,delete Le.array,delete Le.object),Le.number&&delete Le.integer,Le)Te+=(Te?" && ":"")+o(pt,he,Qe,!0);return Te},coerceToTypes:function U(ve,he){if(Array.isArray(he)){for(var Qe=[],Te=0;Te=he)throw new Error("Cannot access property/index "+Te+" levels up, current level is "+he);return Qe[he-Te]}if(Te>he)throw new Error("Cannot access data "+Te+" levels up, current level is "+he);if(pt="data"+(he-Te||""),!Le)return pt}for(var Ut=pt,Pt=Le.split("/"),fn=0;fn{"use strict";var Ee=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];nt.exports=function(v,j){for(var o=0;o{"use strict";var j=v(8198);nt.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:j.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:j.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:nt=>{"use strict";nt.exports=function(v,j,o){var Q,y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G=v.opts.$data&&L&&L.$data;G?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",Q="schema"+Z):Q=L;var ne="maximum"==j,re=ne?"exclusiveMaximum":"exclusiveMinimum",me=v.schema[re],we=v.opts.$data&&me&&me.$data,Be=ne?"<":">",Ie=ne?">":"<",Ne=void 0;if(!G&&"number"!=typeof L&&void 0!==L)throw new Error(j+" must be number");if(!we&&void 0!==me&&"number"!=typeof me&&"boolean"!=typeof me)throw new Error(re+" must be number or boolean");if(we){var We,Je=v.util.getData(me.$data,U,v.dataPathArr),He="exclusive"+Z,qe="exclType"+Z,$e="exclIsNumber"+Z,at="' + "+(je="op"+Z)+" + '";y+=" var schemaExcl"+Z+" = "+Je+"; ",Ne=re,(We=We||[]).push(y+=" var "+He+"; var "+qe+" = typeof "+(Je="schemaExcl"+Z)+"; if ("+qe+" != 'boolean' && "+qe+" != 'undefined' && "+qe+" != 'number') { "),y="",!1!==v.createErrors?(y+=" { keyword: '"+(Ne||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: {} ",!1!==v.opts.messages&&(y+=" , message: '"+re+" should be boolean' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var ve=y;y=We.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+ve+"]); ":" validate.errors = ["+ve+"]; return false; ":" var err = "+ve+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" } else if ( ",G&&(y+=" ("+Q+" !== undefined && typeof "+Q+" != 'number') || "),y+=" "+qe+" == 'number' ? ( ("+He+" = "+Q+" === undefined || "+Je+" "+Be+"= "+Q+") ? "+z+" "+Ie+"= "+Je+" : "+z+" "+Ie+" "+Q+" ) : ( ("+He+" = "+Je+" === true) ? "+z+" "+Ie+"= "+Q+" : "+z+" "+Ie+" "+Q+" ) || "+z+" !== "+z+") { var op"+Z+" = "+He+" ? '"+Be+"' : '"+Be+"='; ",void 0===L&&(Ne=re,V=v.errSchemaPath+"/"+re,Q=Je,G=we)}else if(at=Be,($e="number"==typeof me)&&G){var je="'"+at+"'";y+=" if ( ",G&&(y+=" ("+Q+" !== undefined && typeof "+Q+" != 'number') || "),y+=" ( "+Q+" === undefined || "+me+" "+Be+"= "+Q+" ? "+z+" "+Ie+"= "+me+" : "+z+" "+Ie+" "+Q+" ) || "+z+" !== "+z+") { "}else $e&&void 0===L?(He=!0,Ne=re,V=v.errSchemaPath+"/"+re,Q=me,Ie+="="):($e&&(Q=Math[ne?"min":"max"](me,L)),me===(!$e||Q)?(He=!0,Ne=re,V=v.errSchemaPath+"/"+re,Ie+="="):(He=!1,at+="=")),je="'"+at+"'",y+=" if ( ",G&&(y+=" ("+Q+" !== undefined && typeof "+Q+" != 'number') || "),y+=" "+z+" "+Ie+" "+Q+" || "+z+" !== "+z+") { ";return Ne=Ne||j,(We=We||[]).push(y),y="",!1!==v.createErrors?(y+=" { keyword: '"+(Ne||"_limit")+"' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { comparison: "+je+", limit: "+Q+", exclusive: "+He+" } ",!1!==v.opts.messages&&(y+=" , message: 'should be "+at+" ",y+=G?"' + "+Q:Q+"'"),v.opts.verbose&&(y+=" , schema: ",y+=G?"validate.schema"+Y:""+L,y+=" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ",ve=y,y=We.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+ve+"]); ":" validate.errors = ["+ve+"]; return false; ":" var err = "+ve+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" } ",X&&(y+=" else { "),y}},3792:nt=>{"use strict";nt.exports=function(v,j,o){var Q,y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G=v.opts.$data&&L&&L.$data;if(G?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",Q="schema"+Z):Q=L,!G&&"number"!=typeof L)throw new Error(j+" must be number");y+="if ( ",G&&(y+=" ("+Q+" !== undefined && typeof "+Q+" != 'number') || ");var re=j,me=me||[];me.push(y+=" "+z+".length "+("maxItems"==j?">":"<")+" "+Q+") { "),y="",!1!==v.createErrors?(y+=" { keyword: '"+(re||"_limitItems")+"' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { limit: "+Q+" } ",!1!==v.opts.messages&&(y+=" , message: 'should NOT have ",y+="maxItems"==j?"more":"fewer",y+=" than ",y+=G?"' + "+Q+" + '":""+L,y+=" items' "),v.opts.verbose&&(y+=" , schema: ",y+=G?"validate.schema"+Y:""+L,y+=" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var we=y;return y=me.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+we+"]); ":" validate.errors = ["+we+"]; return false; ":" var err = "+we+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+="} ",X&&(y+=" else { "),y}},3226:nt=>{"use strict";nt.exports=function(v,j,o){var Q,y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G=v.opts.$data&&L&&L.$data;if(G?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",Q="schema"+Z):Q=L,!G&&"number"!=typeof L)throw new Error(j+" must be number");y+="if ( ",G&&(y+=" ("+Q+" !== undefined && typeof "+Q+" != 'number') || "),y+=!1===v.opts.unicode?" "+z+".length ":" ucs2length("+z+") ";var re=j,me=me||[];me.push(y+=" "+("maxLength"==j?">":"<")+" "+Q+") { "),y="",!1!==v.createErrors?(y+=" { keyword: '"+(re||"_limitLength")+"' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { limit: "+Q+" } ",!1!==v.opts.messages&&(y+=" , message: 'should NOT be ",y+="maxLength"==j?"longer":"shorter",y+=" than ",y+=G?"' + "+Q+" + '":""+L,y+=" characters' "),v.opts.verbose&&(y+=" , schema: ",y+=G?"validate.schema"+Y:""+L,y+=" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var we=y;return y=me.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+we+"]); ":" validate.errors = ["+we+"]; return false; ":" var err = "+we+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+="} ",X&&(y+=" else { "),y}},2119:nt=>{"use strict";nt.exports=function(v,j,o){var Q,y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G=v.opts.$data&&L&&L.$data;if(G?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",Q="schema"+Z):Q=L,!G&&"number"!=typeof L)throw new Error(j+" must be number");y+="if ( ",G&&(y+=" ("+Q+" !== undefined && typeof "+Q+" != 'number') || ");var re=j,me=me||[];me.push(y+=" Object.keys("+z+").length "+("maxProperties"==j?">":"<")+" "+Q+") { "),y="",!1!==v.createErrors?(y+=" { keyword: '"+(re||"_limitProperties")+"' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { limit: "+Q+" } ",!1!==v.opts.messages&&(y+=" , message: 'should NOT have ",y+="maxProperties"==j?"more":"fewer",y+=" than ",y+=G?"' + "+Q+" + '":""+L,y+=" properties' "),v.opts.verbose&&(y+=" , schema: ",y+=G?"validate.schema"+Y:""+L,y+=" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var we=y;return y=me.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+we+"]); ":" validate.errors = ["+we+"]; return false; ":" var err = "+we+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+="} ",X&&(y+=" else { "),y}},9218:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.schema[j],U=v.schemaPath+v.util.getProperty(j),L=v.errSchemaPath+"/"+j,Y=!v.opts.allErrors,V=v.util.copy(v),X="";V.level++;var z="valid"+V.level,G=V.baseId,Q=!0,ne=Z;if(ne)for(var re,me=-1,we=ne.length-1;me0||!1===re:v.util.schemaHasRules(re,v.RULES.all))&&(Q=!1,V.schema=re,V.schemaPath=U+"["+me+"]",V.errSchemaPath=L+"/"+me,y+=" "+v.validate(V)+" ",V.baseId=G,Y&&(y+=" if ("+z+") { ",X+="}"));return Y&&(y+=Q?" if (true) { ":" "+X.slice(0,-1)+" "),y}},3883:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q="errs__"+Z,ne=v.util.copy(v),re="";ne.level++;var me="valid"+ne.level;if(L.every(function($e){return v.opts.strictKeywords?"object"==typeof $e&&Object.keys($e).length>0||!1===$e:v.util.schemaHasRules($e,v.RULES.all)})){var Be=ne.baseId;y+=" var "+Q+" = errors; var "+G+" = false; ";var Ie=v.compositeRule;v.compositeRule=ne.compositeRule=!0;var Ne=L;if(Ne)for(var Je,He=-1,qe=Ne.length-1;He{"use strict";nt.exports=function(v,j,o){var y=" ",U=v.errSchemaPath+"/"+j,Y=v.util.toQuotedString(v.schema[j]);return!0===v.opts.$comment?y+=" console.log("+Y+");":"function"==typeof v.opts.$comment&&(y+=" self._opts.$comment("+Y+", "+v.util.toQuotedString(U)+", validate.root.schema);"),y}},439:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q=v.opts.$data&&L&&L.$data;Q&&(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; "),Q||(y+=" var schema"+Z+" = validate.schema"+Y+";");var re=re||[];re.push(y+="var "+G+" = equal("+z+", schema"+Z+"); if (!"+G+") { "),y="",!1!==v.createErrors?(y+=" { keyword: 'const' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { allowedValue: schema"+Z+" } ",!1!==v.opts.messages&&(y+=" , message: 'should be equal to constant' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var me=y;return y=re.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+me+"]); ":" validate.errors = ["+me+"]; return false; ":" var err = "+me+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" }",X&&(y+=" else { "),y}},7939:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q="errs__"+Z,ne=v.util.copy(v);ne.level++;var me="valid"+ne.level,we="i"+Z,Be=ne.dataLevel=v.dataLevel+1,Ie="data"+Be,Ne=v.baseId,Je=v.opts.strictKeywords?"object"==typeof L&&Object.keys(L).length>0||!1===L:v.util.schemaHasRules(L,v.RULES.all);if(y+="var "+Q+" = errors;var "+G+";",Je){var He=v.compositeRule;v.compositeRule=ne.compositeRule=!0,ne.schema=L,ne.schemaPath=Y,ne.errSchemaPath=V,y+=" var "+me+" = false; for (var "+we+" = 0; "+we+" < "+z+".length; "+we+"++) { ",ne.errorPath=v.util.getPathExpr(v.errorPath,we,v.opts.jsonPointers,!0);var qe=z+"["+we+"]";ne.dataPathArr[Be]=we;var $e=v.validate(ne);ne.baseId=Ne,v.util.varOccurences($e,Ie)<2?y+=" "+v.util.varReplace($e,Ie,qe)+" ":y+=" var "+Ie+" = "+qe+"; "+$e+" ",y+=" if ("+me+") break; } ",v.compositeRule=ne.compositeRule=He,y+=" if (!"+me+") {"}else y+=" if ("+z+".length == 0) {";var je=je||[];je.push(y),y="",!1!==v.createErrors?(y+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: {} ",!1!==v.opts.messages&&(y+=" , message: 'should contain a valid item' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var at=y;return y=je.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+at+"]); ":" validate.errors = ["+at+"]; return false; ":" var err = "+at+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" } else { ",Je&&(y+=" errors = "+Q+"; if (vErrors !== null) { if ("+Q+") vErrors.length = "+Q+"; else vErrors = null; } "),v.opts.allErrors&&(y+=" } "),y}},5237:nt=>{"use strict";nt.exports=function(v,j,o){var z,me,y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,G="data"+(U||""),Q="valid"+Z,ne="errs__"+Z,re=v.opts.$data&&L&&L.$data;re?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",me="schema"+Z):me=L;var Je,He,qe,$e,je,we=this,Be="definition"+Z,Ie=we.definition,Ne="";if(re&&Ie.$data){var at=Ie.validateSchema;y+=" var "+Be+" = RULES.custom['"+j+"'].definition; var "+(je="keywordValidate"+Z)+" = "+Be+".validate;"}else{if(!($e=v.useCustomRule(we,L,v.schema,v)))return;me="validate.schema"+Y,je=$e.code,Je=Ie.compile,He=Ie.inline,qe=Ie.macro}var We=je+".errors",ve="i"+Z,he="ruleErr"+Z,Qe=Ie.async;if(Qe&&!v.async)throw new Error("async keyword in sync schema");if(He||qe||(y+=We+" = null;"),y+="var "+ne+" = errors;var "+Q+";",re&&Ie.$data&&(Ne+="}",y+=" if ("+me+" === undefined) { "+Q+" = true; } else { ",at&&(Ne+="}",y+=" "+Q+" = "+Be+".validateSchema("+me+"); if ("+Q+") { ")),He)y+=Ie.statements?" "+$e.validate+" ":" "+Q+" = "+$e.validate+"; ";else if(qe){var Te=v.util.copy(v);Ne="",Te.level++;var Le="valid"+Te.level;Te.schema=$e.validate,Te.schemaPath="";var pt=v.compositeRule;v.compositeRule=Te.compositeRule=!0;var xt=v.validate(Te).replace(/validate\.schema/g,je);v.compositeRule=Te.compositeRule=pt,y+=" "+xt}else{(Ut=Ut||[]).push(y),y="",y+=" "+je+".call( ",y+=v.opts.passContext?"this":"self",y+=Je||!1===Ie.schema?" , "+G+" ":" , "+me+" , "+G+" , validate.schema"+v.schemaPath+" ",y+=" , (dataPath || '')",'""'!=v.errorPath&&(y+=" + "+v.errorPath);var Pt=U?"data"+(U-1||""):"parentData",fn=U?v.dataPathArr[U]:"parentDataProperty",jn=y+=" , "+Pt+" , "+fn+" , rootData ) ";y=Ut.pop(),!1===Ie.errors?(y+=" "+Q+" = ",Qe&&(y+="await "),y+=jn+"; "):y+=Qe?" var "+(We="customErrors"+Z)+" = null; try { "+Q+" = await "+jn+"; } catch (e) { "+Q+" = false; if (e instanceof ValidationError) "+We+" = e.errors; else throw e; } ":" "+We+" = null; "+Q+" = "+jn+"; "}if(Ie.modifying&&(y+=" if ("+Pt+") "+G+" = "+Pt+"["+fn+"];"),y+=""+Ne,Ie.valid)X&&(y+=" if (true) { ");else{var Ut;y+=" if ( ",void 0===Ie.valid?(y+=" !",y+=qe?""+Le:""+Q):y+=" "+!Ie.valid+" ",z=we.keyword,(Ut=Ut||[]).push(y+=") { "),(Ut=Ut||[]).push(y=""),y="",!1!==v.createErrors?(y+=" { keyword: '"+(z||"custom")+"' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { keyword: '"+we.keyword+"' } ",!1!==v.opts.messages&&(y+=" , message: 'should pass \""+we.keyword+"\" keyword validation' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+G+" "),y+=" } "):y+=" {} ";var Qi=y;y=Ut.pop();var di=y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+Qi+"]); ":" validate.errors = ["+Qi+"]; return false; ":" var err = "+Qi+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";y=Ut.pop(),He?Ie.errors?"full"!=Ie.errors&&(y+=" for (var "+ve+"="+ne+"; "+ve+"{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="errs__"+Z,Q=v.util.copy(v),ne="";Q.level++;var re="valid"+Q.level,me={},we={},Be=v.opts.ownProperties;for(He in L)if("__proto__"!=He){var Ie=L[He],Ne=Array.isArray(Ie)?we:me;Ne[He]=Ie}y+="var "+G+" = errors;";var Je=v.errorPath;for(var He in y+="var missing"+Z+";",we)if((Ne=we[He]).length){if(y+=" if ( "+z+v.util.getProperty(He)+" !== undefined ",Be&&(y+=" && Object.prototype.hasOwnProperty.call("+z+", '"+v.util.escapeQuotes(He)+"') "),X){y+=" && ( ";var qe=Ne;if(qe)for(var je=-1,at=qe.length-1;je0||!1===Ie:v.util.schemaHasRules(Ie,v.RULES.all))&&(y+=" "+re+" = true; if ( "+z+v.util.getProperty(He)+" !== undefined ",Be&&(y+=" && Object.prototype.hasOwnProperty.call("+z+", '"+v.util.escapeQuotes(He)+"') "),y+=") { ",Q.schema=Ie,Q.schemaPath=Y+v.util.getProperty(He),Q.errSchemaPath=V+"/"+v.util.escapeFragment(He),y+=" "+v.validate(Q)+" ",Q.baseId=Pt,y+=" } ",X&&(y+=" if ("+re+") { ",ne+="}"));return X&&(y+=" "+ne+" if ("+G+" == errors) {"),y}},4299:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q=v.opts.$data&&L&&L.$data;Q&&(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ");var re="i"+Z,me="schema"+Z;Q||(y+=" var "+me+" = validate.schema"+Y+";"),y+="var "+G+";",Q&&(y+=" if (schema"+Z+" === undefined) "+G+" = true; else if (!Array.isArray(schema"+Z+")) "+G+" = false; else {"),y+=G+" = false;for (var "+re+"=0; "+re+"<"+me+".length; "+re+"++) if (equal("+z+", "+me+"["+re+"])) { "+G+" = true; break; }",Q&&(y+=" } ");var we=we||[];we.push(y+=" if (!"+G+") { "),y="",!1!==v.createErrors?(y+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { allowedValues: schema"+Z+" } ",!1!==v.opts.messages&&(y+=" , message: 'should be equal to one of the allowed values' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var Be=y;return y=we.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+Be+"]); ":" validate.errors = ["+Be+"]; return false; ":" var err = "+Be+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" }",X&&(y+=" else { "),y}},4097:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||"");if(!1===v.opts.format)return X&&(y+=" if (true) { "),y;var Q,G=v.opts.$data&&L&&L.$data;G?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",Q="schema"+Z):Q=L;var ne=v.opts.unknownFormats,re=Array.isArray(ne);if(G)y+=" var "+(me="format"+Z)+" = formats["+Q+"]; var "+(we="isObject"+Z)+" = typeof "+me+" == 'object' && !("+me+" instanceof RegExp) && "+me+".validate; var "+(Be="formatType"+Z)+" = "+we+" && "+me+".type || 'string'; if ("+we+") { ",v.async&&(y+=" var async"+Z+" = "+me+".async; "),y+=" "+me+" = "+me+".validate; } if ( ",G&&(y+=" ("+Q+" !== undefined && typeof "+Q+" != 'string') || "),y+=" (","ignore"!=ne&&(y+=" ("+Q+" && !"+me+" ",re&&(y+=" && self._opts.unknownFormats.indexOf("+Q+") == -1 "),y+=") || "),y+=" ("+me+" && "+Be+" == '"+o+"' && !(typeof "+me+" == 'function' ? ",y+=v.async?" (async"+Z+" ? await "+me+"("+z+") : "+me+"("+z+")) ":" "+me+"("+z+") ",y+=" : "+me+".test("+z+"))))) {";else{var me;if(!(me=v.formats[L])){if("ignore"==ne)return v.logger.warn('unknown format "'+L+'" ignored in schema at path "'+v.errSchemaPath+'"'),X&&(y+=" if (true) { "),y;if(re&&ne.indexOf(L)>=0)return X&&(y+=" if (true) { "),y;throw new Error('unknown format "'+L+'" is used in schema at path "'+v.errSchemaPath+'"')}var we,Be=(we="object"==typeof me&&!(me instanceof RegExp)&&me.validate)&&me.type||"string";if(we){var Ie=!0===me.async;me=me.validate}if(Be!=o)return X&&(y+=" if (true) { "),y;if(Ie){if(!v.async)throw new Error("async format in sync schema");y+=" if (!(await "+(Ne="formats"+v.util.getProperty(L)+".validate")+"("+z+"))) { "}else{y+=" if (! ";var Ne="formats"+v.util.getProperty(L);we&&(Ne+=".validate"),y+="function"==typeof me?" "+Ne+"("+z+") ":" "+Ne+".test("+z+") ",y+=") { "}}var Je=Je||[];Je.push(y),y="",!1!==v.createErrors?(y+=" { keyword: 'format' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { format: ",y+=G?""+Q:""+v.util.toQuotedString(L),y+=" } ",!1!==v.opts.messages&&(y+=" , message: 'should match format \"",y+=G?"' + "+Q+" + '":""+v.util.escapeQuotes(L),y+="\"' "),v.opts.verbose&&(y+=" , schema: ",y+=G?"validate.schema"+Y:""+v.util.toQuotedString(L),y+=" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var He=y;return y=Je.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+He+"]); ":" validate.errors = ["+He+"]; return false; ":" var err = "+He+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" } ",X&&(y+=" else { "),y}},2061:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q="errs__"+Z,ne=v.util.copy(v);ne.level++;var re="valid"+ne.level,me=v.schema.then,we=v.schema.else,Be=void 0!==me&&(v.opts.strictKeywords?"object"==typeof me&&Object.keys(me).length>0||!1===me:v.util.schemaHasRules(me,v.RULES.all)),Ie=void 0!==we&&(v.opts.strictKeywords?"object"==typeof we&&Object.keys(we).length>0||!1===we:v.util.schemaHasRules(we,v.RULES.all)),Ne=ne.baseId;if(Be||Ie){var Je;ne.createErrors=!1,ne.schema=L,ne.schemaPath=Y,ne.errSchemaPath=V,y+=" var "+Q+" = errors; var "+G+" = true; ";var He=v.compositeRule;v.compositeRule=ne.compositeRule=!0,y+=" "+v.validate(ne)+" ",ne.baseId=Ne,ne.createErrors=!0,y+=" errors = "+Q+"; if (vErrors !== null) { if ("+Q+") vErrors.length = "+Q+"; else vErrors = null; } ",v.compositeRule=ne.compositeRule=He,Be?(y+=" if ("+re+") { ",ne.schema=v.schema.then,ne.schemaPath=v.schemaPath+".then",ne.errSchemaPath=v.errSchemaPath+"/then",y+=" "+v.validate(ne)+" ",ne.baseId=Ne,y+=" "+G+" = "+re+"; ",Be&&Ie?y+=" var "+(Je="ifClause"+Z)+" = 'then'; ":Je="'then'",y+=" } ",Ie&&(y+=" else { ")):y+=" if (!"+re+") { ",Ie&&(ne.schema=v.schema.else,ne.schemaPath=v.schemaPath+".else",ne.errSchemaPath=v.errSchemaPath+"/else",y+=" "+v.validate(ne)+" ",ne.baseId=Ne,y+=" "+G+" = "+re+"; ",Be&&Ie?y+=" var "+(Je="ifClause"+Z)+" = 'else'; ":Je="'else'",y+=" } "),y+=" if (!"+G+") { var err = ",!1!==v.createErrors?(y+=" { keyword: 'if' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { failingKeyword: "+Je+" } ",!1!==v.opts.messages&&(y+=" , message: 'should match \"' + "+Je+" + '\" schema' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ",y+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!v.compositeRule&&X&&(y+=v.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),y+=" } ",X&&(y+=" else { ")}else X&&(y+=" if (true) { ");return y}},2956:(nt,Ee,v)=>{"use strict";nt.exports={$ref:v(3953),allOf:v(9218),anyOf:v(3883),$comment:v(757),const:v(439),contains:v(7939),dependencies:v(3899),enum:v(4299),format:v(4097),if:v(2061),items:v(9240),maximum:v(9402),minimum:v(9402),maxItems:v(3792),minItems:v(3792),maxLength:v(3226),minLength:v(3226),maxProperties:v(2119),minProperties:v(2119),multipleOf:v(9095),not:v(8457),oneOf:v(7681),pattern:v(9438),properties:v(6319),propertyNames:v(6611),required:v(5051),uniqueItems:v(5329),validate:v(604)}},9240:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q="errs__"+Z,ne=v.util.copy(v),re="";ne.level++;var me="valid"+ne.level,we="i"+Z,Be=ne.dataLevel=v.dataLevel+1,Ie="data"+Be,Ne=v.baseId;if(y+="var "+Q+" = errors;var "+G+";",Array.isArray(L)){var Je=v.schema.additionalItems;if(!1===Je){y+=" "+G+" = "+z+".length <= "+L.length+"; ";var He=V;V=v.errSchemaPath+"/additionalItems";var qe=qe||[];qe.push(y+=" if (!"+G+") { "),y="",!1!==v.createErrors?(y+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { limit: "+L.length+" } ",!1!==v.opts.messages&&(y+=" , message: 'should NOT have more than "+L.length+" items' "),v.opts.verbose&&(y+=" , schema: false , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var $e=y;y=qe.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+$e+"]); ":" validate.errors = ["+$e+"]; return false; ":" var err = "+$e+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" } ",V=He,X&&(re+="}",y+=" else { ")}var je=L;if(je)for(var at,We=-1,ve=je.length-1;We0||!1===at:v.util.schemaHasRules(at,v.RULES.all)){y+=" "+me+" = true; if ("+z+".length > "+We+") { ";var he=z+"["+We+"]";ne.schema=at,ne.schemaPath=Y+"["+We+"]",ne.errSchemaPath=V+"/"+We,ne.errorPath=v.util.getPathExpr(v.errorPath,We,v.opts.jsonPointers,!0),ne.dataPathArr[Be]=We;var Qe=v.validate(ne);ne.baseId=Ne,v.util.varOccurences(Qe,Ie)<2?y+=" "+v.util.varReplace(Qe,Ie,he)+" ":y+=" var "+Ie+" = "+he+"; "+Qe+" ",y+=" } ",X&&(y+=" if ("+me+") { ",re+="}")}"object"==typeof Je&&(v.opts.strictKeywords?"object"==typeof Je&&Object.keys(Je).length>0||!1===Je:v.util.schemaHasRules(Je,v.RULES.all))&&(ne.schema=Je,ne.schemaPath=v.schemaPath+".additionalItems",ne.errSchemaPath=v.errSchemaPath+"/additionalItems",y+=" "+me+" = true; if ("+z+".length > "+L.length+") { for (var "+we+" = "+L.length+"; "+we+" < "+z+".length; "+we+"++) { ",ne.errorPath=v.util.getPathExpr(v.errorPath,we,v.opts.jsonPointers,!0),he=z+"["+we+"]",ne.dataPathArr[Be]=we,Qe=v.validate(ne),ne.baseId=Ne,v.util.varOccurences(Qe,Ie)<2?y+=" "+v.util.varReplace(Qe,Ie,he)+" ":y+=" var "+Ie+" = "+he+"; "+Qe+" ",X&&(y+=" if (!"+me+") break; "),y+=" } } ",X&&(y+=" if ("+me+") { ",re+="}"))}else(v.opts.strictKeywords?"object"==typeof L&&Object.keys(L).length>0||!1===L:v.util.schemaHasRules(L,v.RULES.all))&&(ne.schema=L,ne.schemaPath=Y,ne.errSchemaPath=V,y+=" for (var "+we+" = 0; "+we+" < "+z+".length; "+we+"++) { ",ne.errorPath=v.util.getPathExpr(v.errorPath,we,v.opts.jsonPointers,!0),he=z+"["+we+"]",ne.dataPathArr[Be]=we,Qe=v.validate(ne),ne.baseId=Ne,v.util.varOccurences(Qe,Ie)<2?y+=" "+v.util.varReplace(Qe,Ie,he)+" ":y+=" var "+Ie+" = "+he+"; "+Qe+" ",X&&(y+=" if (!"+me+") break; "),y+=" }");return X&&(y+=" "+re+" if ("+Q+" == errors) {"),y}},9095:nt=>{"use strict";nt.exports=function(v,j,o){var Q,y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G=v.opts.$data&&L&&L.$data;if(G?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",Q="schema"+Z):Q=L,!G&&"number"!=typeof L)throw new Error(j+" must be number");y+="var division"+Z+";if (",G&&(y+=" "+Q+" !== undefined && ( typeof "+Q+" != 'number' || "),y+=" (division"+Z+" = "+z+" / "+Q+", ",y+=v.opts.multipleOfPrecision?" Math.abs(Math.round(division"+Z+") - division"+Z+") > 1e-"+v.opts.multipleOfPrecision+" ":" division"+Z+" !== parseInt(division"+Z+") ",y+=" ) ",G&&(y+=" ) ");var ne=ne||[];ne.push(y+=" ) { "),y="",!1!==v.createErrors?(y+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { multipleOf: "+Q+" } ",!1!==v.opts.messages&&(y+=" , message: 'should be multiple of ",y+=G?"' + "+Q:Q+"'"),v.opts.verbose&&(y+=" , schema: ",y+=G?"validate.schema"+Y:""+L,y+=" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var re=y;return y=ne.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+re+"]); ":" validate.errors = ["+re+"]; return false; ":" var err = "+re+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+="} ",X&&(y+=" else { "),y}},8457:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="errs__"+Z,Q=v.util.copy(v);Q.level++;var ne="valid"+Q.level;if(v.opts.strictKeywords?"object"==typeof L&&Object.keys(L).length>0||!1===L:v.util.schemaHasRules(L,v.RULES.all)){Q.schema=L,Q.schemaPath=Y,Q.errSchemaPath=V,y+=" var "+G+" = errors; ";var me,re=v.compositeRule;v.compositeRule=Q.compositeRule=!0,Q.createErrors=!1,Q.opts.allErrors&&(me=Q.opts.allErrors,Q.opts.allErrors=!1),y+=" "+v.validate(Q)+" ",Q.createErrors=!0,me&&(Q.opts.allErrors=me),v.compositeRule=Q.compositeRule=re;var we=we||[];we.push(y+=" if ("+ne+") { "),y="",!1!==v.createErrors?(y+=" { keyword: 'not' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: {} ",!1!==v.opts.messages&&(y+=" , message: 'should NOT be valid' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var Be=y;y=we.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+Be+"]); ":" validate.errors = ["+Be+"]; return false; ":" var err = "+Be+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" } else { errors = "+G+"; if (vErrors !== null) { if ("+G+") vErrors.length = "+G+"; else vErrors = null; } ",v.opts.allErrors&&(y+=" } ")}else y+=" var err = ",!1!==v.createErrors?(y+=" { keyword: 'not' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: {} ",!1!==v.opts.messages&&(y+=" , message: 'should NOT be valid' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ",y+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",X&&(y+=" if (false) { ");return y}},7681:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q="errs__"+Z,ne=v.util.copy(v),re="";ne.level++;var me="valid"+ne.level,we=ne.baseId,Be="prevValid"+Z,Ie="passingSchemas"+Z;y+="var "+Q+" = errors , "+Be+" = false , "+G+" = false , "+Ie+" = null; ";var Ne=v.compositeRule;v.compositeRule=ne.compositeRule=!0;var Je=L;if(Je)for(var He,qe=-1,$e=Je.length-1;qe<$e;)He=Je[qe+=1],(v.opts.strictKeywords?"object"==typeof He&&Object.keys(He).length>0||!1===He:v.util.schemaHasRules(He,v.RULES.all))?(ne.schema=He,ne.schemaPath=Y+"["+qe+"]",ne.errSchemaPath=V+"/"+qe,y+=" "+v.validate(ne)+" ",ne.baseId=we):y+=" var "+me+" = true; ",qe&&(y+=" if ("+me+" && "+Be+") { "+G+" = false; "+Ie+" = ["+Ie+", "+qe+"]; } else { ",re+="}"),y+=" if ("+me+") { "+G+" = "+Be+" = true; "+Ie+" = "+qe+"; }";return v.compositeRule=ne.compositeRule=Ne,y+=re+"if (!"+G+") { var err = ",!1!==v.createErrors?(y+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { passingSchemas: "+Ie+" } ",!1!==v.opts.messages&&(y+=" , message: 'should match exactly one schema in oneOf' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ",y+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!v.compositeRule&&X&&(y+=v.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),y+="} else { errors = "+Q+"; if (vErrors !== null) { if ("+Q+") vErrors.length = "+Q+"; else vErrors = null; }",v.opts.allErrors&&(y+=" } "),y}},9438:nt=>{"use strict";nt.exports=function(v,j,o){var Q,y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G=v.opts.$data&&L&&L.$data;G?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",Q="schema"+Z):Q=L;var ne=G?"(new RegExp("+Q+"))":v.usePattern(L);y+="if ( ",G&&(y+=" ("+Q+" !== undefined && typeof "+Q+" != 'string') || ");var re=re||[];re.push(y+=" !"+ne+".test("+z+") ) { "),y="",!1!==v.createErrors?(y+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { pattern: ",y+=G?""+Q:""+v.util.toQuotedString(L),y+=" } ",!1!==v.opts.messages&&(y+=" , message: 'should match pattern \"",y+=G?"' + "+Q+" + '":""+v.util.escapeQuotes(L),y+="\"' "),v.opts.verbose&&(y+=" , schema: ",y+=G?"validate.schema"+Y:""+v.util.toQuotedString(L),y+=" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var me=y;return y=re.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+me+"]); ":" validate.errors = ["+me+"]; return false; ":" var err = "+me+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+="} ",X&&(y+=" else { "),y}},6319:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="errs__"+Z,Q=v.util.copy(v),ne="";Q.level++;var re="valid"+Q.level,me="key"+Z,we="idx"+Z,Be=Q.dataLevel=v.dataLevel+1,Ie="data"+Be,Ne="dataProperties"+Z,Je=Object.keys(L||{}).filter(xt),He=v.schema.patternProperties||{},qe=Object.keys(He).filter(xt),$e=v.schema.additionalProperties,je=Je.length||qe.length,at=!1===$e,We="object"==typeof $e&&Object.keys($e).length,ve=v.opts.removeAdditional,he=at||We||ve,Qe=v.opts.ownProperties,Te=v.baseId,Le=v.schema.required;if(Le&&(!v.opts.$data||!Le.$data)&&Le.length8)y+=" || validate.schema"+Y+".hasOwnProperty("+me+") ";else{var Ut=Je;if(Ut)for(var fn=-1,jn=Ut.length-1;fn0||!1===Ti:v.util.schemaHasRules(Ti,v.RULES.all)){var Zt=v.util.getProperty(Pt),Mr=(gn=z+Zt,Yi&&void 0!==Ti.default);if(Q.schema=Ti,Q.schemaPath=Y+Zt,Q.errSchemaPath=V+"/"+v.util.escapeFragment(Pt),Q.errorPath=v.util.getPath(v.errorPath,Pt,v.opts.jsonPointers),Q.dataPathArr[Be]=v.util.toQuotedString(Pt),oi=v.validate(Q),Q.baseId=Te,v.util.varOccurences(oi,Ie)<2){oi=v.util.varReplace(oi,Ie,gn);var br=gn}else br=Ie,y+=" var "+Ie+" = "+gn+"; ";if(Mr)y+=" "+oi+" ";else{if(pt&&pt[Pt]){y+=" if ( "+br+" === undefined ",Qe&&(y+=" || ! Object.prototype.hasOwnProperty.call("+z+", '"+v.util.escapeQuotes(Pt)+"') "),y+=") { "+re+" = false; ",li=v.errorPath,Rt=V;var qt,Qr=v.util.escapeQuotes(Pt);v.opts._errorDataPathProperty&&(v.errorPath=v.util.getPath(li,Pt,v.opts.jsonPointers)),V=v.errSchemaPath+"/required",(qt=qt||[]).push(y),y="",!1!==v.createErrors?(y+=" { keyword: 'required' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { missingProperty: '"+Qr+"' } ",!1!==v.opts.messages&&(y+=" , message: '",y+=v.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+Qr+"\\'",y+="' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ",cn=y,y=qt.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+cn+"]); ":" validate.errors = ["+cn+"]; return false; ":" var err = "+cn+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",V=Rt,v.errorPath=li,y+=" } else { "}else X?(y+=" if ( "+br+" === undefined ",Qe&&(y+=" || ! Object.prototype.hasOwnProperty.call("+z+", '"+v.util.escapeQuotes(Pt)+"') "),y+=") { "+re+" = true; } else { "):(y+=" if ("+br+" !== undefined ",Qe&&(y+=" && Object.prototype.hasOwnProperty.call("+z+", '"+v.util.escapeQuotes(Pt)+"') "),y+=" ) { ");y+=" "+oi+" } "}}X&&(y+=" if ("+re+") { ",ne+="}")}}if(qe.length){var no=qe;if(no)for(var di,Fl=-1,as=no.length-1;Fl0||!1===Ti:v.util.schemaHasRules(Ti,v.RULES.all))&&(Q.schema=Ti,Q.schemaPath=v.schemaPath+".patternProperties"+v.util.getProperty(di),Q.errSchemaPath=v.errSchemaPath+"/patternProperties/"+v.util.escapeFragment(di),y+=Qe?" "+Ne+" = "+Ne+" || Object.keys("+z+"); for (var "+we+"=0; "+we+"<"+Ne+".length; "+we+"++) { var "+me+" = "+Ne+"["+we+"]; ":" for (var "+me+" in "+z+") { ",y+=" if ("+v.usePattern(di)+".test("+me+")) { ",Q.errorPath=v.util.getPathExpr(v.errorPath,me,v.opts.jsonPointers),gn=z+"["+me+"]",Q.dataPathArr[Be]=me,oi=v.validate(Q),Q.baseId=Te,v.util.varOccurences(oi,Ie)<2?y+=" "+v.util.varReplace(oi,Ie,gn)+" ":y+=" var "+Ie+" = "+gn+"; "+oi+" ",X&&(y+=" if (!"+re+") break; "),y+=" } ",X&&(y+=" else "+re+" = true; "),y+=" } ",X&&(y+=" if ("+re+") { ",ne+="}"))}return X&&(y+=" "+ne+" if ("+G+" == errors) {"),y}},6611:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="errs__"+Z,Q=v.util.copy(v);Q.level++;var re="valid"+Q.level;if(y+="var "+G+" = errors;",v.opts.strictKeywords?"object"==typeof L&&Object.keys(L).length>0||!1===L:v.util.schemaHasRules(L,v.RULES.all)){Q.schema=L,Q.schemaPath=Y,Q.errSchemaPath=V;var me="key"+Z,we="idx"+Z,Be="i"+Z,Ie="' + "+me+" + '",Je="data"+(Q.dataLevel=v.dataLevel+1),He="dataProperties"+Z,qe=v.opts.ownProperties,$e=v.baseId;qe&&(y+=" var "+He+" = undefined; "),y+=qe?" "+He+" = "+He+" || Object.keys("+z+"); for (var "+we+"=0; "+we+"<"+He+".length; "+we+"++) { var "+me+" = "+He+"["+we+"]; ":" for (var "+me+" in "+z+") { ",y+=" var startErrs"+Z+" = errors; ";var je=me,at=v.compositeRule;v.compositeRule=Q.compositeRule=!0;var We=v.validate(Q);Q.baseId=$e,v.util.varOccurences(We,Je)<2?y+=" "+v.util.varReplace(We,Je,je)+" ":y+=" var "+Je+" = "+je+"; "+We+" ",v.compositeRule=Q.compositeRule=at,y+=" if (!"+re+") { for (var "+Be+"=startErrs"+Z+"; "+Be+"{"use strict";nt.exports=function(v,j,o){var G,Q,y=" ",U=v.dataLevel,L=v.schema[j],Y=v.errSchemaPath+"/"+j,V=!v.opts.allErrors,X="data"+(U||""),z="valid"+v.level;if("#"==L||"#/"==L)v.isRoot?(G=v.async,Q="validate"):(G=!0===v.root.schema.$async,Q="root.refVal[0]");else{var ne=v.resolveRef(v.baseId,L,v.isRoot);if(void 0===ne){var re=v.MissingRefError.message(v.baseId,L);if("fail"==v.opts.missingRefs){v.logger.error(re),(me=me||[]).push(y),y="",!1!==v.createErrors?(y+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(Y)+" , params: { ref: '"+v.util.escapeQuotes(L)+"' } ",!1!==v.opts.messages&&(y+=" , message: 'can\\'t resolve reference "+v.util.escapeQuotes(L)+"' "),v.opts.verbose&&(y+=" , schema: "+v.util.toQuotedString(L)+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+X+" "),y+=" } "):y+=" {} ";var we=y;y=me.pop(),y+=!v.compositeRule&&V?v.async?" throw new ValidationError(["+we+"]); ":" validate.errors = ["+we+"]; return false; ":" var err = "+we+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",V&&(y+=" if (false) { ")}else{if("ignore"!=v.opts.missingRefs)throw new v.MissingRefError(v.baseId,L,re);v.logger.warn(re),V&&(y+=" if (true) { ")}}else if(ne.inline){var Be=v.util.copy(v);Be.level++;var Ie="valid"+Be.level;Be.schema=ne.schema,Be.schemaPath="",Be.errSchemaPath=L,y+=" "+v.validate(Be).replace(/validate\.schema/g,ne.code)+" ",V&&(y+=" if ("+Ie+") { ")}else G=!0===ne.$async||v.async&&!1!==ne.$async,Q=ne.code}if(Q){var me;(me=me||[]).push(y),y="",y+=v.opts.passContext?" "+Q+".call(this, ":" "+Q+"( ",y+=" "+X+", (dataPath || '')",'""'!=v.errorPath&&(y+=" + "+v.errorPath);var qe=y+=" , "+(U?"data"+(U-1||""):"parentData")+" , "+(U?v.dataPathArr[U]:"parentDataProperty")+", rootData) ";if(y=me.pop(),G){if(!v.async)throw new Error("async schema referenced by sync schema");V&&(y+=" var "+z+"; "),y+=" try { await "+qe+"; ",V&&(y+=" "+z+" = true; "),y+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",V&&(y+=" "+z+" = false; "),y+=" } ",V&&(y+=" if ("+z+") { ")}else y+=" if (!"+qe+") { if (vErrors === null) vErrors = "+Q+".errors; else vErrors = vErrors.concat("+Q+".errors); errors = vErrors.length; } ",V&&(y+=" else { ")}return y}},5051:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q=v.opts.$data&&L&&L.$data;Q&&(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ");var re="schema"+Z;if(!Q)if(L.length0||!1===Je:v.util.schemaHasRules(Je,v.RULES.all))||(me[me.length]=Be)}}else me=L;if(Q||me.length){var He=v.errorPath,qe=Q||me.length>=v.opts.loopRequired,$e=v.opts.ownProperties;if(X)if(y+=" var missing"+Z+"; ",qe){Q||(y+=" var "+re+" = validate.schema"+Y+"; ");var We="' + "+(at="schema"+Z+"["+(je="i"+Z)+"]")+" + '";v.opts._errorDataPathProperty&&(v.errorPath=v.util.getPathExpr(He,at,v.opts.jsonPointers)),y+=" var "+G+" = true; ",Q&&(y+=" if (schema"+Z+" === undefined) "+G+" = true; else if (!Array.isArray(schema"+Z+")) "+G+" = false; else {"),y+=" for (var "+je+" = 0; "+je+" < "+re+".length; "+je+"++) { "+G+" = "+z+"["+re+"["+je+"]] !== undefined ",$e&&(y+=" && Object.prototype.hasOwnProperty.call("+z+", "+re+"["+je+"]) "),y+="; if (!"+G+") break; } ",Q&&(y+=" } "),(ve=ve||[]).push(y+=" if (!"+G+") { "),y="",!1!==v.createErrors?(y+=" { keyword: 'required' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { missingProperty: '"+We+"' } ",!1!==v.opts.messages&&(y+=" , message: '",y+=v.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+We+"\\'",y+="' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var he=y;y=ve.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+he+"]); ":" validate.errors = ["+he+"]; return false; ":" var err = "+he+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" } else { "}else{y+=" if ( ";var ve,Qe=me;if(Qe)for(var je=-1,Le=Qe.length-1;je{"use strict";nt.exports=function(v,j,o){var ne,y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q=v.opts.$data&&L&&L.$data;if(Q?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",ne="schema"+Z):ne=L,(L||Q)&&!1!==v.opts.uniqueItems){Q&&(y+=" var "+G+"; if ("+ne+" === false || "+ne+" === undefined) "+G+" = true; else if (typeof "+ne+" != 'boolean') "+G+" = false; else { "),y+=" var i = "+z+".length , "+G+" = true , j; if (i > 1) { ";var re=v.schema.items&&v.schema.items.type,me=Array.isArray(re);!re||"object"==re||"array"==re||me&&(re.indexOf("object")>=0||re.indexOf("array")>=0)?y+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+z+"[i], "+z+"[j])) { "+G+" = false; break outer; } } } ":(y+=" var itemIndices = {}, item; for (;i--;) { var item = "+z+"[i]; ",y+=" if ("+v.util["checkDataType"+(me?"s":"")](re,"item",v.opts.strictNumbers,!0)+") continue; ",me&&(y+=" if (typeof item == 'string') item = '\"' + item; "),y+=" if (typeof itemIndices[item] == 'number') { "+G+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "),y+=" } ",Q&&(y+=" } ");var Be=Be||[];Be.push(y+=" if (!"+G+") { "),y="",!1!==v.createErrors?(y+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { i: i, j: j } ",!1!==v.opts.messages&&(y+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),v.opts.verbose&&(y+=" , schema: ",y+=Q?"validate.schema"+Y:""+L,y+=" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var Ie=y;y=Be.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+Ie+"]); ":" validate.errors = ["+Ie+"]; return false; ":" var err = "+Ie+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" } ",X&&(y+=" else { ")}else X&&(y+=" if (true) { ");return y}},604:nt=>{"use strict";nt.exports=function(v,j,o){var y="",Z=!0===v.schema.$async,U=v.util.schemaHasRulesExcept(v.schema,v.RULES.all,"$ref"),L=v.self._getId(v.schema);if(v.opts.strictKeywords){var Y=v.util.schemaUnknownRules(v.schema,v.RULES.keywords);if(Y){var V="unknown keyword: "+Y;if("log"!==v.opts.strictKeywords)throw new Error(V);v.logger.warn(V)}}if(v.isTop&&(y+=" var validate = ",Z&&(v.async=!0,y+="async "),y+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",L&&(v.opts.sourceCode||v.opts.processCode)&&(y+=" /*# sourceURL="+L+" */ ")),"boolean"==typeof v.schema||!U&&!v.schema.$ref){var X=v.level,z=v.dataLevel,G=v.schema[j="false schema"],Q=v.schemaPath+v.util.getProperty(j),ne=v.errSchemaPath+"/"+j,Je=!v.opts.allErrors,re="data"+(z||""),Ne="valid"+X;if(!1===v.schema){v.isTop?Je=!0:y+=" var "+Ne+" = false; ",(me=me||[]).push(y),y="",!1!==v.createErrors?(y+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(ne)+" , params: {} ",!1!==v.opts.messages&&(y+=" , message: 'boolean schema is false' "),v.opts.verbose&&(y+=" , schema: false , parentSchema: validate.schema"+v.schemaPath+" , data: "+re+" "),y+=" } "):y+=" {} ";var we=y;y=me.pop(),y+=!v.compositeRule&&Je?v.async?" throw new ValidationError(["+we+"]); ":" validate.errors = ["+we+"]; return false; ":" var err = "+we+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else y+=v.isTop?Z?" return data; ":" validate.errors = null; return true; ":" var "+Ne+" = true; ";return v.isTop&&(y+=" }; return validate; "),y}if(v.isTop){var Be=v.isTop;if(X=v.level=0,z=v.dataLevel=0,re="data",v.rootId=v.resolve.fullPath(v.self._getId(v.root.schema)),v.baseId=v.baseId||v.rootId,delete v.isTop,v.dataPathArr=[""],void 0!==v.schema.default&&v.opts.useDefaults&&v.opts.strictDefaults){var Ie="default is ignored in the schema root";if("log"!==v.opts.strictDefaults)throw new Error(Ie);v.logger.warn(Ie)}y+=" var vErrors = null; ",y+=" var errors = 0; ",y+=" if (rootData === undefined) rootData = data; "}else{if(X=v.level,re="data"+((z=v.dataLevel)||""),L&&(v.baseId=v.resolve.url(v.baseId,L)),Z&&!v.async)throw new Error("async schema in sync schema");y+=" var errs_"+X+" = errors;"}Ne="valid"+X,Je=!v.opts.allErrors;var He="",qe="",je=v.schema.type,at=Array.isArray(je);if(je&&v.opts.nullable&&!0===v.schema.nullable&&(at?-1==je.indexOf("null")&&(je=je.concat("null")):"null"!=je&&(je=[je,"null"],at=!0)),at&&1==je.length&&(je=je[0],at=!1),v.schema.$ref&&U){if("fail"==v.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+v.errSchemaPath+'" (see option extendRefs)');!0!==v.opts.extendRefs&&(U=!1,v.logger.warn('$ref: keywords ignored in schema at path "'+v.errSchemaPath+'"'))}if(v.schema.$comment&&v.opts.$comment&&(y+=" "+v.RULES.all.$comment.code(v,"$comment")),je){if(v.opts.coerceTypes)var We=v.util.coerceToTypes(v.opts.coerceTypes,je);var ve=v.RULES.types[je];if(We||at||!0===ve||ve&&!Ti(ve)){if(Q=v.schemaPath+".type",ne=v.errSchemaPath+"/type",Q=v.schemaPath+".type",ne=v.errSchemaPath+"/type",y+=" if ("+v.util[at?"checkDataTypes":"checkDataType"](je,re,v.opts.strictNumbers,!0)+") { ",We){var Qe="dataType"+X,Te="coerced"+X;y+=" var "+Qe+" = typeof "+re+"; var "+Te+" = undefined; ","array"==v.opts.coerceTypes&&(y+=" if ("+Qe+" == 'object' && Array.isArray("+re+") && "+re+".length == 1) { "+re+" = "+re+"[0]; "+Qe+" = typeof "+re+"; if ("+v.util.checkDataType(v.schema.type,re,v.opts.strictNumbers)+") "+Te+" = "+re+"; } "),y+=" if ("+Te+" !== undefined) ; ";var Le=We;if(Le)for(var pt,xt=-1,Ut=Le.length-1;xt{"use strict";var j=/^[a-z_$][a-z0-9_$-]*$/i,o=v(5237),y=v(8606);nt.exports={add:function Z(V,X){var z=this.RULES;if(z.keywords[V])throw new Error("Keyword "+V+" is already defined");if(!j.test(V))throw new Error("Keyword "+V+" is not a valid identifier");if(X){this.validateKeyword(X,!0);var G=X.type;if(Array.isArray(G))for(var Q=0;Q{var Ee={utf8:{stringToBytes:function(v){return Ee.bin.stringToBytes(unescape(encodeURIComponent(v)))},bytesToString:function(v){return decodeURIComponent(escape(Ee.bin.bytesToString(v)))}},bin:{stringToBytes:function(v){for(var j=[],o=0;o{const j=v(4605),o={};for(const U of Object.keys(j))o[j[U]]=U;const y={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"]}};nt.exports=y;for(const U of Object.keys(y)){if(!("channels"in y[U]))throw new Error("missing channels property: "+U);if(!("labels"in y[U]))throw new Error("missing channel labels property: "+U);if(y[U].labels.length!==y[U].channels)throw new Error("channel and label counts mismatch: "+U);const{channels:L,labels:Y}=y[U];delete y[U].channels,delete y[U].labels,Object.defineProperty(y[U],"channels",{value:L}),Object.defineProperty(y[U],"labels",{value:Y})}function Z(U,L){return(U[0]-L[0])**2+(U[1]-L[1])**2+(U[2]-L[2])**2}y.rgb.hsl=function(U){const L=U[0]/255,Y=U[1]/255,V=U[2]/255,X=Math.min(L,Y,V),z=Math.max(L,Y,V),G=z-X;let Q,ne;z===X?Q=0:L===z?Q=(Y-V)/G:Y===z?Q=2+(V-L)/G:V===z&&(Q=4+(L-Y)/G),Q=Math.min(60*Q,360),Q<0&&(Q+=360);const re=(X+z)/2;return ne=z===X?0:re<=.5?G/(z+X):G/(2-z-X),[Q,100*ne,100*re]},y.rgb.hsv=function(U){let L,Y,V,X,z;const G=U[0]/255,Q=U[1]/255,ne=U[2]/255,re=Math.max(G,Q,ne),me=re-Math.min(G,Q,ne),we=function(Be){return(re-Be)/6/me+.5};return 0===me?(X=0,z=0):(z=me/re,L=we(G),Y=we(Q),V=we(ne),G===re?X=V-Y:Q===re?X=1/3+L-V:ne===re&&(X=2/3+Y-L),X<0?X+=1:X>1&&(X-=1)),[360*X,100*z,100*re]},y.rgb.hwb=function(U){const L=U[0],Y=U[1];let V=U[2];const X=y.rgb.hsl(U)[0],z=1/255*Math.min(L,Math.min(Y,V));return V=1-1/255*Math.max(L,Math.max(Y,V)),[X,100*z,100*V]},y.rgb.cmyk=function(U){const L=U[0]/255,Y=U[1]/255,V=U[2]/255,X=Math.min(1-L,1-Y,1-V);return[100*((1-L-X)/(1-X)||0),100*((1-Y-X)/(1-X)||0),100*((1-V-X)/(1-X)||0),100*X]},y.rgb.keyword=function(U){const L=o[U];if(L)return L;let V,Y=1/0;for(const X of Object.keys(j)){const G=Z(U,j[X]);G.04045?((L+.055)/1.055)**2.4:L/12.92,Y=Y>.04045?((Y+.055)/1.055)**2.4:Y/12.92,V=V>.04045?((V+.055)/1.055)**2.4:V/12.92,[100*(.4124*L+.3576*Y+.1805*V),100*(.2126*L+.7152*Y+.0722*V),100*(.0193*L+.1192*Y+.9505*V)]},y.rgb.lab=function(U){const L=y.rgb.xyz(U);let Y=L[0],V=L[1],X=L[2];return Y/=95.047,V/=100,X/=108.883,Y=Y>.008856?Y**(1/3):7.787*Y+16/116,V=V>.008856?V**(1/3):7.787*V+16/116,X=X>.008856?X**(1/3):7.787*X+16/116,[116*V-16,500*(Y-V),200*(V-X)]},y.hsl.rgb=function(U){const L=U[0]/360,Y=U[1]/100,V=U[2]/100;let X,z,G;if(0===Y)return G=255*V,[G,G,G];X=V<.5?V*(1+Y):V+Y-V*Y;const Q=2*V-X,ne=[0,0,0];for(let re=0;re<3;re++)z=L+1/3*-(re-1),z<0&&z++,z>1&&z--,G=6*z<1?Q+6*(X-Q)*z:2*z<1?X:3*z<2?Q+(X-Q)*(2/3-z)*6:Q,ne[re]=255*G;return ne},y.hsl.hsv=function(U){const L=U[0];let Y=U[1]/100,V=U[2]/100,X=Y;const z=Math.max(V,.01);return V*=2,Y*=V<=1?V:2-V,X*=z<=1?z:2-z,[L,100*(0===V?2*X/(z+X):2*Y/(V+Y)),(V+Y)/2*100]},y.hsv.rgb=function(U){const L=U[0]/60,Y=U[1]/100;let V=U[2]/100;const X=Math.floor(L)%6,z=L-Math.floor(L),G=255*V*(1-Y),Q=255*V*(1-Y*z),ne=255*V*(1-Y*(1-z));switch(V*=255,X){case 0:return[V,ne,G];case 1:return[Q,V,G];case 2:return[G,V,ne];case 3:return[G,Q,V];case 4:return[ne,G,V];case 5:return[V,G,Q]}},y.hsv.hsl=function(U){const L=U[0],Y=U[1]/100,V=U[2]/100,X=Math.max(V,.01);let z,G;G=(2-Y)*V;const Q=(2-Y)*X;return z=Y*X,z/=Q<=1?Q:2-Q,z=z||0,G/=2,[L,100*z,100*G]},y.hwb.rgb=function(U){const L=U[0]/360;let Y=U[1]/100,V=U[2]/100;const X=Y+V;let z;X>1&&(Y/=X,V/=X);const G=Math.floor(6*L),Q=1-V;z=6*L-G,1&G&&(z=1-z);const ne=Y+z*(Q-Y);let re,me,we;switch(G){default:case 6:case 0:re=Q,me=ne,we=Y;break;case 1:re=ne,me=Q,we=Y;break;case 2:re=Y,me=Q,we=ne;break;case 3:re=Y,me=ne,we=Q;break;case 4:re=ne,me=Y,we=Q;break;case 5:re=Q,me=Y,we=ne}return[255*re,255*me,255*we]},y.cmyk.rgb=function(U){const Y=U[1]/100,V=U[2]/100,X=U[3]/100;return[255*(1-Math.min(1,U[0]/100*(1-X)+X)),255*(1-Math.min(1,Y*(1-X)+X)),255*(1-Math.min(1,V*(1-X)+X))]},y.xyz.rgb=function(U){const L=U[0]/100,Y=U[1]/100,V=U[2]/100;let X,z,G;return X=3.2406*L+-1.5372*Y+-.4986*V,z=-.9689*L+1.8758*Y+.0415*V,G=.0557*L+-.204*Y+1.057*V,X=X>.0031308?1.055*X**(1/2.4)-.055:12.92*X,z=z>.0031308?1.055*z**(1/2.4)-.055:12.92*z,G=G>.0031308?1.055*G**(1/2.4)-.055:12.92*G,X=Math.min(Math.max(0,X),1),z=Math.min(Math.max(0,z),1),G=Math.min(Math.max(0,G),1),[255*X,255*z,255*G]},y.xyz.lab=function(U){let L=U[0],Y=U[1],V=U[2];return L/=95.047,Y/=100,V/=108.883,L=L>.008856?L**(1/3):7.787*L+16/116,Y=Y>.008856?Y**(1/3):7.787*Y+16/116,V=V>.008856?V**(1/3):7.787*V+16/116,[116*Y-16,500*(L-Y),200*(Y-V)]},y.lab.xyz=function(U){let X,z,G;z=(U[0]+16)/116,X=U[1]/500+z,G=z-U[2]/200;const Q=z**3,ne=X**3,re=G**3;return z=Q>.008856?Q:(z-16/116)/7.787,X=ne>.008856?ne:(X-16/116)/7.787,G=re>.008856?re:(G-16/116)/7.787,X*=95.047,z*=100,G*=108.883,[X,z,G]},y.lab.lch=function(U){const L=U[0],Y=U[1],V=U[2];let X;return X=360*Math.atan2(V,Y)/2/Math.PI,X<0&&(X+=360),[L,Math.sqrt(Y*Y+V*V),X]},y.lch.lab=function(U){const Y=U[1],X=U[2]/360*2*Math.PI;return[U[0],Y*Math.cos(X),Y*Math.sin(X)]},y.rgb.ansi16=function(U,L=null){const[Y,V,X]=U;let z=null===L?y.rgb.hsv(U)[2]:L;if(z=Math.round(z/50),0===z)return 30;let G=30+(Math.round(X/255)<<2|Math.round(V/255)<<1|Math.round(Y/255));return 2===z&&(G+=60),G},y.hsv.ansi16=function(U){return y.rgb.ansi16(y.hsv.rgb(U),U[2])},y.rgb.ansi256=function(U){const L=U[0],Y=U[1],V=U[2];return L===Y&&Y===V?L<8?16:L>248?231:Math.round((L-8)/247*24)+232:16+36*Math.round(L/255*5)+6*Math.round(Y/255*5)+Math.round(V/255*5)},y.ansi16.rgb=function(U){let L=U%10;if(0===L||7===L)return U>50&&(L+=3.5),L=L/10.5*255,[L,L,L];const Y=.5*(1+~~(U>50));return[(1&L)*Y*255,(L>>1&1)*Y*255,(L>>2&1)*Y*255]},y.ansi256.rgb=function(U){if(U>=232){const z=10*(U-232)+8;return[z,z,z]}let L;return U-=16,[Math.floor(U/36)/5*255,Math.floor((L=U%36)/6)/5*255,L%6/5*255]},y.rgb.hex=function(U){const Y=(((255&Math.round(U[0]))<<16)+((255&Math.round(U[1]))<<8)+(255&Math.round(U[2]))).toString(16).toUpperCase();return"000000".substring(Y.length)+Y},y.hex.rgb=function(U){const L=U.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!L)return[0,0,0];let Y=L[0];3===L[0].length&&(Y=Y.split("").map(Q=>Q+Q).join(""));const V=parseInt(Y,16);return[V>>16&255,V>>8&255,255&V]},y.rgb.hcg=function(U){const L=U[0]/255,Y=U[1]/255,V=U[2]/255,X=Math.max(Math.max(L,Y),V),z=Math.min(Math.min(L,Y),V),G=X-z;let Q,ne;return Q=G<1?z/(1-G):0,ne=G<=0?0:X===L?(Y-V)/G%6:X===Y?2+(V-L)/G:4+(L-Y)/G,ne/=6,ne%=1,[360*ne,100*G,100*Q]},y.hsl.hcg=function(U){const L=U[1]/100,Y=U[2]/100,V=Y<.5?2*L*Y:2*L*(1-Y);let X=0;return V<1&&(X=(Y-.5*V)/(1-V)),[U[0],100*V,100*X]},y.hsv.hcg=function(U){const Y=U[2]/100,V=U[1]/100*Y;let X=0;return V<1&&(X=(Y-V)/(1-V)),[U[0],100*V,100*X]},y.hcg.rgb=function(U){const Y=U[1]/100,V=U[2]/100;if(0===Y)return[255*V,255*V,255*V];const X=[0,0,0],z=U[0]/360%1*6,G=z%1,Q=1-G;let ne=0;switch(Math.floor(z)){case 0:X[0]=1,X[1]=G,X[2]=0;break;case 1:X[0]=Q,X[1]=1,X[2]=0;break;case 2:X[0]=0,X[1]=1,X[2]=G;break;case 3:X[0]=0,X[1]=Q,X[2]=1;break;case 4:X[0]=G,X[1]=0,X[2]=1;break;default:X[0]=1,X[1]=0,X[2]=Q}return ne=(1-Y)*V,[255*(Y*X[0]+ne),255*(Y*X[1]+ne),255*(Y*X[2]+ne)]},y.hcg.hsv=function(U){const L=U[1]/100,V=L+U[2]/100*(1-L);let X=0;return V>0&&(X=L/V),[U[0],100*X,100*V]},y.hcg.hsl=function(U){const L=U[1]/100,V=U[2]/100*(1-L)+.5*L;let X=0;return V>0&&V<.5?X=L/(2*V):V>=.5&&V<1&&(X=L/(2*(1-V))),[U[0],100*X,100*V]},y.hcg.hwb=function(U){const L=U[1]/100,V=L+U[2]/100*(1-L);return[U[0],100*(V-L),100*(1-V)]},y.hwb.hcg=function(U){const V=1-U[2]/100,X=V-U[1]/100;let z=0;return X<1&&(z=(V-X)/(1-X)),[U[0],100*X,100*z]},y.apple.rgb=function(U){return[U[0]/65535*255,U[1]/65535*255,U[2]/65535*255]},y.rgb.apple=function(U){return[U[0]/255*65535,U[1]/255*65535,U[2]/255*65535]},y.gray.rgb=function(U){return[U[0]/100*255,U[0]/100*255,U[0]/100*255]},y.gray.hsl=function(U){return[0,0,U[0]]},y.gray.hsv=y.gray.hsl,y.gray.hwb=function(U){return[0,100,U[0]]},y.gray.cmyk=function(U){return[0,0,0,U[0]]},y.gray.lab=function(U){return[U[0],0,0]},y.gray.hex=function(U){const L=255&Math.round(U[0]/100*255),V=((L<<16)+(L<<8)+L).toString(16).toUpperCase();return"000000".substring(V.length)+V},y.rgb.gray=function(U){return[(U[0]+U[1]+U[2])/3/255*100]}},3205:(nt,Ee,v)=>{const j=v(2348),o=v(8236),y={};Object.keys(j).forEach(Y=>{y[Y]={},Object.defineProperty(y[Y],"channels",{value:j[Y].channels}),Object.defineProperty(y[Y],"labels",{value:j[Y].labels});const V=o(Y);Object.keys(V).forEach(z=>{const G=V[z];y[Y][z]=function L(Y){const V=function(...X){const z=X[0];if(null==z)return z;z.length>1&&(X=z);const G=Y(X);if("object"==typeof G)for(let Q=G.length,ne=0;ne1&&(X=z),Y(X))};return"conversion"in Y&&(V.conversion=Y.conversion),V}(G)})}),nt.exports=y},8236:(nt,Ee,v)=>{const j=v(2348);function Z(L,Y){return function(V){return Y(L(V))}}function U(L,Y){const V=[Y[L].parent,L];let X=j[Y[L].parent][L],z=Y[L].parent;for(;Y[z].parent;)V.unshift(Y[z].parent),X=Z(j[Y[z].parent][z],X),z=Y[z].parent;return X.conversion=V,X}nt.exports=function(L){const Y=function y(L){const Y=function o(){const L={},Y=Object.keys(j);for(let V=Y.length,X=0;X{"use strict";nt.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:nt=>{var Ee,v;Ee="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",nt.exports=v={rotl:function(j,o){return j<>>32-o},rotr:function(j,o){return j<<32-o|j>>>o},endian:function(j){if(j.constructor==Number)return 16711935&v.rotl(j,8)|4278255360&v.rotl(j,24);for(var o=0;o0;j--)o.push(Math.floor(256*Math.random()));return o},bytesToWords:function(j){for(var o=[],y=0,Z=0;y>>5]|=j[y]<<24-Z%32;return o},wordsToBytes:function(j){for(var o=[],y=0;y<32*j.length;y+=8)o.push(j[y>>>5]>>>24-y%32&255);return o},bytesToHex:function(j){for(var o=[],y=0;y>>4).toString(16)),o.push((15&j[y]).toString(16));return o.join("")},hexToBytes:function(j){for(var o=[],y=0;y>>6*(3-U)&63):"=");return o.join("")},base64ToBytes:function(j){j=j.replace(/[^A-Z0-9+\/]/gi,"");for(var o=[],y=0,Z=0;y>>6-2*Z);return o}}},243:nt=>{"use strict";var Ee={single_source_shortest_paths:function(v,j,o){var y={},Z={};Z[j]=0;var L,Y,V,X,z,Q,U=Ee.PriorityQueue.make();for(U.push(j,0);!U.empty();)for(V in X=(L=U.pop()).cost,z=v[Y=L.value]||{})z.hasOwnProperty(V)&&(Q=X+z[V],(typeof Z[V]>"u"||Z[V]>Q)&&(Z[V]=Q,U.push(V,Q),y[V]=Y));if(typeof o<"u"&&typeof Z[o]>"u"){var me=["Could not find a path from ",j," to ",o,"."].join("");throw new Error(me)}return y},extract_shortest_path_from_predecessor_list:function(v,j){for(var o=[],y=j;y;)o.push(y),y=v[y];return o.reverse(),o},find_path:function(v,j,o){var y=Ee.single_source_shortest_paths(v,j,o);return Ee.extract_shortest_path_from_predecessor_list(y,o)},PriorityQueue:{make:function(v){var y,j=Ee.PriorityQueue,o={};for(y in v=v||{},j)j.hasOwnProperty(y)&&(o[y]=j[y]);return o.queue=[],o.sorter=v.sorter||j.default_sorter,o},default_sorter:function(v,j){return v.cost-j.cost},push:function(v,j){this.queue.push({value:v,cost:j}),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};nt.exports=Ee},362:nt=>{"use strict";nt.exports=function Ee(v,j){if(v===j)return!0;if(v&&j&&"object"==typeof v&&"object"==typeof j){if(v.constructor!==j.constructor)return!1;var o,y,Z;if(Array.isArray(v)){if((o=v.length)!=j.length)return!1;for(y=o;0!=y--;)if(!Ee(v[y],j[y]))return!1;return!0}if(v.constructor===RegExp)return v.source===j.source&&v.flags===j.flags;if(v.valueOf!==Object.prototype.valueOf)return v.valueOf()===j.valueOf();if(v.toString!==Object.prototype.toString)return v.toString()===j.toString();if((o=(Z=Object.keys(v)).length)!==Object.keys(j).length)return!1;for(y=o;0!=y--;)if(!Object.prototype.hasOwnProperty.call(j,Z[y]))return!1;for(y=o;0!=y--;){var U=Z[y];if(!Ee(v[U],j[U]))return!1}return!0}return v!=v&&j!=j}},8861:nt=>{"use strict";nt.exports=function(Ee,v){v||(v={}),"function"==typeof v&&(v={cmp:v});var j="boolean"==typeof v.cycles&&v.cycles,o=v.cmp&&function(Z){return function(U){return function(L,Y){return Z({key:L,value:U[L]},{key:Y,value:U[Y]})}}}(v.cmp),y=[];return function Z(U){if(U&&U.toJSON&&"function"==typeof U.toJSON&&(U=U.toJSON()),void 0!==U){if("number"==typeof U)return isFinite(U)?""+U:"null";if("object"!=typeof U)return JSON.stringify(U);var L,Y;if(Array.isArray(U)){for(Y="[",L=0;L0&&$[$.length-1])&&(6===Xe[0]||2===Xe[0])){S=0;continue}if(3===Xe[0]&&(!$||Xe[1]>$[0]&&Xe[1]<$[3])){S.label=Xe[1];break}if(6===Xe[0]&&S.label<$[1]){S.label=$[1],$=Xe;break}if($&&S.label<$[2]){S.label=$[2],S.ops.push(Xe);break}$[2]&&S.ops.pop(),S.trys.pop();continue}Xe=C.call(M,S)}catch(tt){Xe=[6,tt],N=0}finally{E=$=0}if(5&Xe[0])throw Xe[1];return{value:Xe[0]?Xe[1]:void 0,done:!0}}([Xe,tt])}}}function Z(M,C,S){if(S||2===arguments.length)for(var $,E=0,N=C.length;E=55296&&N<=56319&&S>10),se%1024+56320),(N+1===S||E.length>16384)&&($+=String.fromCharCode.apply(String,E),E.length=0)}return $},z="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",G=typeof Uint8Array>"u"?[]:new Uint8Array(256),Q=0;Q<64;Q++)G[z.charCodeAt(Q)]=Q;for(var ne="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",re=typeof Uint8Array>"u"?[]:new Uint8Array(256),me=0;me<64;me++)re[ne.charCodeAt(me)]=me;for(var Ut=function(M,C,S){return M.slice?M.slice(C,S):new Uint16Array(Array.prototype.slice.call(M,C,S))},jn=function(){function M(C,S,E,N,$,se){this.initialValue=C,this.errorValue=S,this.highStart=E,this.highValueIndex=N,this.index=$,this.data=se}return M.prototype.get=function(C){var S;if(C>=0){if(C<55296||C>56319&&C<=65535)return this.data[S=((S=this.index[C>>5])<<2)+(31&C)];if(C<=65535)return this.data[S=((S=this.index[2048+(C-55296>>5)])<<2)+(31&C)];if(C>11)],this.data[S=((S=this.index[S+=C>>5&63])<<2)+(31&C)];if(C<=1114111)return this.data[this.highValueIndex]}return this.errorValue},M}(),Qi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",di=typeof Uint8Array>"u"?[]:new Uint8Array(256),Di=0;Di<64;Di++)di[Qi.charCodeAt(Di)]=Di;var S,E,N,se,xe,fr=10,Ti=13,Mr=15,Qr=17,no=18,Fl=19,as=20,Li=21,Ii=22,Wo=24,Zr=25,ls=26,Ao=27,hc=28,et=30,It=32,ot=33,St=34,an=35,Jn=37,Hn=38,Xt=39,kn=40,ji=42,Jr=[9001,65288],Mi="\xd7",De=(S=function(M){var E,$,se,xe,ge,C=.75*M.length,S=M.length,N=0;"="===M[M.length-1]&&(C--,"="===M[M.length-2]&&C--);var Xe=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(C):new Array(C),tt=Array.isArray(Xe)?Xe:new Uint8Array(Xe);for(E=0;E>4,tt[N++]=(15&se)<<4|xe>>2,tt[N++]=(3&xe)<<6|63≥return Xe}("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=="),E=Array.isArray(S)?function(M){for(var C=M.length,S=[],E=0;E0;){var xe=E[--$];if(Array.isArray(M)?-1!==M.indexOf(xe):M===xe)for(var ge=S;ge<=E.length;){var se;if((se=E[++ge])===C)return!0;if(se!==fr)break}if(xe!==fr)break}return!1},mn=function(M,C){for(var S=M;S>=0;){var E=C[S];if(E!==fr)return E;S--}return 0},Wn=function(M,C,S,E,N){if(0===S[E])return Mi;var $=E-1;if(Array.isArray(N)&&!0===N[$])return Mi;var se=$-1,xe=$+1,ge=C[$],Xe=se>=0?C[se]:0,tt=C[xe];if(2===ge&&3===tt)return Mi;if(-1!==Ve.indexOf(ge))return"!";if(-1!==Ve.indexOf(tt)||-1!==dt.indexOf(tt))return Mi;if(8===mn($,C))return"\xf7";if(11===De.get(M[$])||(ge===It||ge===ot)&&11===De.get(M[xe])||7===ge||7===tt||9===ge||-1===[fr,Ti,Mr].indexOf(ge)&&9===tt||-1!==[Qr,no,Fl,Wo,hc].indexOf(tt)||mn($,C)===Ii||Ln(23,Ii,$,C)||Ln([Qr,no],Li,$,C)||Ln(12,12,$,C))return Mi;if(ge===fr)return"\xf7";if(23===ge||23===tt)return Mi;if(16===tt||16===ge)return"\xf7";if(-1!==[Ti,Mr,Li].indexOf(tt)||14===ge||36===Xe&&-1!==Gt.indexOf(ge)||ge===hc&&36===tt||tt===as||-1!==ue.indexOf(tt)&&ge===Zr||-1!==ue.indexOf(ge)&&tt===Zr||ge===Ao&&-1!==[Jn,It,ot].indexOf(tt)||-1!==[Jn,It,ot].indexOf(ge)&&tt===ls||-1!==ue.indexOf(ge)&&-1!==yt.indexOf(tt)||-1!==yt.indexOf(ge)&&-1!==ue.indexOf(tt)||-1!==[Ao,ls].indexOf(ge)&&(tt===Zr||-1!==[Ii,Mr].indexOf(tt)&&C[xe+1]===Zr)||-1!==[Ii,Mr].indexOf(ge)&&tt===Zr||ge===Zr&&-1!==[Zr,hc,Wo].indexOf(tt))return Mi;if(-1!==[Zr,hc,Wo,Qr,no].indexOf(tt))for(var mt=$;mt>=0;){if((bt=C[mt])===Zr)return Mi;if(-1===[hc,Wo].indexOf(bt))break;mt--}if(-1!==[Ao,ls].indexOf(tt))for(mt=-1!==[Qr,no].indexOf(ge)?se:$;mt>=0;){var bt;if((bt=C[mt])===Zr)return Mi;if(-1===[hc,Wo].indexOf(bt))break;mt--}if(Hn===ge&&-1!==[Hn,Xt,St,an].indexOf(tt)||-1!==[Xt,St].indexOf(ge)&&-1!==[Xt,kn].indexOf(tt)||-1!==[kn,an].indexOf(ge)&&tt===kn||-1!==Qt.indexOf(ge)&&-1!==[as,ls].indexOf(tt)||-1!==Qt.indexOf(tt)&&ge===Ao||-1!==ue.indexOf(ge)&&-1!==ue.indexOf(tt)||ge===Wo&&-1!==ue.indexOf(tt)||-1!==ue.concat(Zr).indexOf(ge)&&tt===Ii&&-1===Jr.indexOf(M[xe])||-1!==ue.concat(Zr).indexOf(tt)&&ge===no)return Mi;if(41===ge&&41===tt){for(var yn=S[$],An=1;yn>0&&41===C[--yn];)An++;if(An%2!=0)return Mi}return ge===It&&tt===ot?Mi:"\xf7"},Ar=function(M,C){C||(C={lineBreak:"normal",wordBreak:"normal"});var S=function(M,C){void 0===C&&(C="strict");var S=[],E=[],N=[];return M.forEach(function($,se){var xe=De.get($);if(xe>50?(N.push(!0),xe-=50):N.push(!1),-1!==["normal","auto","loose"].indexOf(C)&&-1!==[8208,8211,12316,12448].indexOf($))return E.push(se),S.push(16);if(4===xe||11===xe){if(0===se)return E.push(se),S.push(et);var ge=S[se-1];return-1===en.indexOf(ge)?(E.push(E[se-1]),S.push(ge)):(E.push(se),S.push(et))}return E.push(se),31===xe?S.push("strict"===C?Li:Jn):xe===ji||29===xe?S.push(et):43===xe?S.push($>=131072&&$<=196605||$>=196608&&$<=262141?Jn:et):void S.push(xe)}),[E,S,N]}(M,C.lineBreak),E=S[0],N=S[1],$=S[2];return("break-all"===C.wordBreak||"break-word"===C.wordBreak)&&(N=N.map(function(xe){return-1!==[Zr,et,ji].indexOf(xe)?Jn:xe})),[E,N,"keep-all"===C.wordBreak?$.map(function(xe,ge){return xe&&M[ge]>=19968&&M[ge]<=40959}):void 0]},Mn=function(){function M(C,S,E,N){this.codePoints=C,this.required="!"===S,this.start=E,this.end=N}return M.prototype.slice=function(){return X.apply(void 0,this.codePoints.slice(this.start,this.end))},M}(),Pn=function(M){return M>=48&&M<=57},va=function(M){return Pn(M)||M>=65&&M<=70||M>=97&&M<=102},fA=function(M){return 10===M||9===M||32===M},xf=function(M){return function(M){return function(M){return M>=97&&M<=122}(M)||function(M){return M>=65&&M<=90}(M)}(M)||function(M){return M>=128}(M)||95===M},Hx=function(M){return xf(M)||Pn(M)||45===M},w0=function(M){return M>=0&&M<=8||11===M||M>=14&&M<=31||127===M},Vd=function(M,C){return 92===M&&10!==C},ol=function(M,C,S){return 45===M?xf(C)||Vd(C,S):!!xf(M)||!(92!==M||!Vd(M,C))},Zu=function(M,C,S){return 43===M||45===M?!!Pn(C)||46===C&&Pn(S):Pn(46===M?C:M)},ya=function(M){var C=0,S=1;(43===M[C]||45===M[C])&&(45===M[C]&&(S=-1),C++);for(var E=[];Pn(M[C]);)E.push(M[C++]);var N=E.length?parseInt(X.apply(void 0,E),10):0;46===M[C]&&C++;for(var $=[];Pn(M[C]);)$.push(M[C++]);var se=$.length,xe=se?parseInt(X.apply(void 0,$),10):0;(69===M[C]||101===M[C])&&C++;var ge=1;(43===M[C]||45===M[C])&&(45===M[C]&&(ge=-1),C++);for(var Xe=[];Pn(M[C]);)Xe.push(M[C++]);var tt=Xe.length?parseInt(X.apply(void 0,Xe),10):0;return S*(N+xe*Math.pow(10,-se))*Math.pow(10,ge*tt)},Ac={type:2},Qx={type:3},Cf={type:4},pA={type:13},x0={type:8},AA={type:21},C0={type:9},FP={type:10},wa={type:11},M0={type:12},Mf={type:14},vv={type:23},yv={type:1},Dl={type:25},Ir={type:24},mc={type:26},zx={type:27},E0={type:28},mA={type:29},gA={type:31},gc={type:32},Wc=function(){function M(){this._value=[]}return M.prototype.write=function(C){this._value=this._value.concat(V(C))},M.prototype.read=function(){for(var C=[],S=this.consumeToken();S!==gc;)C.push(S),S=this.consumeToken();return C},M.prototype.consumeToken=function(){var C=this.consumeCodePoint();switch(C){case 34:return this.consumeStringToken(34);case 35:var S=this.peekCodePoint(0),E=this.peekCodePoint(1),N=this.peekCodePoint(2);if(Hx(S)||Vd(E,N)){var $=ol(S,E,N)?2:1;return{type:5,value:this.consumeName(),flags:$}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),pA;break;case 39:return this.consumeStringToken(39);case 40:return Ac;case 41:return Qx;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Mf;break;case 43:if(Zu(C,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(C),this.consumeNumericToken();break;case 44:return Cf;case 45:var xe=C,ge=this.peekCodePoint(0),Xe=this.peekCodePoint(1);if(Zu(xe,ge,Xe))return this.reconsumeCodePoint(C),this.consumeNumericToken();if(ol(xe,ge,Xe))return this.reconsumeCodePoint(C),this.consumeIdentLikeToken();if(45===ge&&62===Xe)return this.consumeCodePoint(),this.consumeCodePoint(),Ir;break;case 46:if(Zu(C,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(C),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var tt=this.consumeCodePoint();if(42===tt&&47===(tt=this.consumeCodePoint()))return this.consumeToken();if(-1===tt)return this.consumeToken()}break;case 58:return mc;case 59:return zx;case 60:if(33===this.peekCodePoint(0)&&45===this.peekCodePoint(1)&&45===this.peekCodePoint(2))return this.consumeCodePoint(),this.consumeCodePoint(),Dl;break;case 64:var mt=this.peekCodePoint(0),bt=this.peekCodePoint(1),yn=this.peekCodePoint(2);if(ol(mt,bt,yn))return{type:7,value:this.consumeName()};break;case 91:return E0;case 92:if(Vd(C,this.peekCodePoint(0)))return this.reconsumeCodePoint(C),this.consumeIdentLikeToken();break;case 93:return mA;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),x0;break;case 123:return wa;case 125:return M0;case 117:case 85:var An=this.peekCodePoint(0),Sn=this.peekCodePoint(1);return 43===An&&(va(Sn)||63===Sn)&&(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(C),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),C0;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),AA;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),FP;break;case-1:return gc}return fA(C)?(this.consumeWhiteSpace(),gA):Pn(C)?(this.reconsumeCodePoint(C),this.consumeNumericToken()):xf(C)?(this.reconsumeCodePoint(C),this.consumeIdentLikeToken()):{type:6,value:X(C)}},M.prototype.consumeCodePoint=function(){var C=this._value.shift();return typeof C>"u"?-1:C},M.prototype.reconsumeCodePoint=function(C){this._value.unshift(C)},M.prototype.peekCodePoint=function(C){return C>=this._value.length?-1:this._value[C]},M.prototype.consumeUnicodeRangeToken=function(){for(var C=[],S=this.consumeCodePoint();va(S)&&C.length<6;)C.push(S),S=this.consumeCodePoint();for(var E=!1;63===S&&C.length<6;)C.push(S),S=this.consumeCodePoint(),E=!0;if(E)return{type:30,start:parseInt(X.apply(void 0,C.map(function(ge){return 63===ge?48:ge})),16),end:parseInt(X.apply(void 0,C.map(function(ge){return 63===ge?70:ge})),16)};var se=parseInt(X.apply(void 0,C),16);if(45===this.peekCodePoint(0)&&va(this.peekCodePoint(1))){this.consumeCodePoint(),S=this.consumeCodePoint();for(var xe=[];va(S)&&xe.length<6;)xe.push(S),S=this.consumeCodePoint();return{type:30,start:se,end:parseInt(X.apply(void 0,xe),16)}}return{type:30,start:se,end:se}},M.prototype.consumeIdentLikeToken=function(){var C=this.consumeName();return"url"===C.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:C}):{type:20,value:C}},M.prototype.consumeUrlToken=function(){var C=[];if(this.consumeWhiteSpace(),-1===this.peekCodePoint(0))return{type:22,value:""};var S=this.peekCodePoint(0);if(39===S||34===S){var E=this.consumeStringToken(this.consumeCodePoint());return 0===E.type&&(this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:E.value}):(this.consumeBadUrlRemnants(),vv)}for(;;){var N=this.consumeCodePoint();if(-1===N||41===N)return{type:22,value:X.apply(void 0,C)};if(fA(N))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:X.apply(void 0,C)}):(this.consumeBadUrlRemnants(),vv);if(34===N||39===N||40===N||w0(N))return this.consumeBadUrlRemnants(),vv;if(92===N){if(!Vd(N,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),vv;C.push(this.consumeEscapedCodePoint())}else C.push(N)}},M.prototype.consumeWhiteSpace=function(){for(;fA(this.peekCodePoint(0));)this.consumeCodePoint()},M.prototype.consumeBadUrlRemnants=function(){for(;;){var C=this.consumeCodePoint();if(41===C||-1===C)return;Vd(C,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},M.prototype.consumeStringSlice=function(C){for(var E="";C>0;){var N=Math.min(5e4,C);E+=X.apply(void 0,this._value.splice(0,N)),C-=N}return this._value.shift(),E},M.prototype.consumeStringToken=function(C){for(var S="",E=0;;){var N=this._value[E];if(-1===N||void 0===N||N===C)return{type:0,value:S+=this.consumeStringSlice(E)};if(10===N)return this._value.splice(0,E),yv;if(92===N){var $=this._value[E+1];-1!==$&&void 0!==$&&(10===$?(S+=this.consumeStringSlice(E),E=-1,this._value.shift()):Vd(N,$)&&(S+=this.consumeStringSlice(E),S+=X(this.consumeEscapedCodePoint()),E=-1))}E++}},M.prototype.consumeNumber=function(){var C=[],S=4,E=this.peekCodePoint(0);for((43===E||45===E)&&C.push(this.consumeCodePoint());Pn(this.peekCodePoint(0));)C.push(this.consumeCodePoint());E=this.peekCodePoint(0);var N=this.peekCodePoint(1);if(46===E&&Pn(N))for(C.push(this.consumeCodePoint(),this.consumeCodePoint()),S=8;Pn(this.peekCodePoint(0));)C.push(this.consumeCodePoint());E=this.peekCodePoint(0),N=this.peekCodePoint(1);var $=this.peekCodePoint(2);if((69===E||101===E)&&((43===N||45===N)&&Pn($)||Pn(N)))for(C.push(this.consumeCodePoint(),this.consumeCodePoint()),S=8;Pn(this.peekCodePoint(0));)C.push(this.consumeCodePoint());return[ya(C),S]},M.prototype.consumeNumericToken=function(){var C=this.consumeNumber(),S=C[0],E=C[1],N=this.peekCodePoint(0),$=this.peekCodePoint(1),se=this.peekCodePoint(2);return ol(N,$,se)?{type:15,number:S,flags:E,unit:this.consumeName()}:37===N?(this.consumeCodePoint(),{type:16,number:S,flags:E}):{type:17,number:S,flags:E}},M.prototype.consumeEscapedCodePoint=function(){var C=this.consumeCodePoint();if(va(C)){for(var S=X(C);va(this.peekCodePoint(0))&&S.length<6;)S+=X(this.consumeCodePoint());fA(this.peekCodePoint(0))&&this.consumeCodePoint();var E=parseInt(S,16);return 0===E||function(M){return M>=55296&&M<=57343}(E)||E>1114111?65533:E}return-1===C?65533:C},M.prototype.consumeName=function(){for(var C="";;){var S=this.consumeCodePoint();if(Hx(S))C+=X(S);else{if(!Vd(S,this.peekCodePoint(0)))return this.reconsumeCodePoint(S),C;C+=X(this.consumeEscapedCodePoint())}}},M}(),wv=function(){function M(C){this._tokens=C}return M.create=function(C){var S=new Wc;return S.write(C),new M(S.read())},M.parseValue=function(C){return M.create(C).parseComponentValue()},M.parseValues=function(C){return M.create(C).parseComponentValues()},M.prototype.parseComponentValue=function(){for(var C=this.consumeToken();31===C.type;)C=this.consumeToken();if(32===C.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(C);var S=this.consumeComponentValue();do{C=this.consumeToken()}while(31===C.type);if(32===C.type)return S;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},M.prototype.parseComponentValues=function(){for(var C=[];;){var S=this.consumeComponentValue();if(32===S.type)return C;C.push(S),C.push()}},M.prototype.consumeComponentValue=function(){var C=this.consumeToken();switch(C.type){case 11:case 28:case 2:return this.consumeSimpleBlock(C.type);case 19:return this.consumeFunction(C)}return C},M.prototype.consumeSimpleBlock=function(C){for(var S={type:C,values:[]},E=this.consumeToken();;){if(32===E.type||xv(E,C))return S;this.reconsumeToken(E),S.values.push(this.consumeComponentValue()),E=this.consumeToken()}},M.prototype.consumeFunction=function(C){for(var S={name:C.value,values:[],type:18};;){var E=this.consumeToken();if(32===E.type||3===E.type)return S;this.reconsumeToken(E),S.values.push(this.consumeComponentValue())}},M.prototype.consumeToken=function(){var C=this._tokens.shift();return typeof C>"u"?gc:C},M.prototype.reconsumeToken=function(C){this._tokens.unshift(C)},M}(),Hd=function(M){return 15===M.type},Qd=function(M){return 17===M.type},Wr=function(M){return 20===M.type},_A=function(M){return 0===M.type},bA=function(M,C){return Wr(M)&&M.value===C},S0=function(M){return 31!==M.type},Ju=function(M){return 31!==M.type&&4!==M.type},sl=function(M){var C=[],S=[];return M.forEach(function(E){if(4===E.type){if(0===S.length)throw new Error("Error parsing function args, zero tokens for arg");return C.push(S),void(S=[])}31!==E.type&&S.push(E)}),S.length&&C.push(S),C},xv=function(M,C){return 11===C&&12===M.type||28===C&&29===M.type||2===C&&3===M.type},Xc=function(M){return 17===M.type||15===M.type},yi=function(M){return 16===M.type||Xc(M)},Gx=function(M){return M.length>1?[M[0],M[1]]:[M[0]]},ys={type:17,number:0,flags:4},Cv={type:16,number:50,flags:4},zd={type:16,number:100,flags:4},vA=function(M,C,S){var E=M[0],N=M[1];return[go(E,C),go(typeof N<"u"?N:E,S)]},go=function(M,C){if(16===M.type)return M.number/100*C;if(Hd(M))switch(M.unit){case"rem":case"em":return 16*M.number;default:return M.number}return M.number},yA_parse=function(M,C){if(15===C.type)switch(C.unit){case"deg":return Math.PI*C.number/180;case"grad":return Math.PI/200*C.number;case"rad":return C.number;case"turn":return 2*Math.PI*C.number}throw new Error("Unsupported angle type")},T0=function(M){return 15===M.type&&("deg"===M.unit||"grad"===M.unit||"rad"===M.unit||"turn"===M.unit)},Sv=function(M){switch(M.filter(Wr).map(function(S){return S.value}).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[ys,ys];case"to top":case"bottom":return oa(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[ys,zd];case"to right":case"left":return oa(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[zd,zd];case"to bottom":case"top":return oa(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[zd,ys];case"to left":case"right":return oa(270)}return 0},oa=function(M){return Math.PI*M/180},al_parse=function(M,C){if(18===C.type){var S=qx[C.name];if(typeof S>"u")throw new Error('Attempting to parse an unsupported color function "'+C.name+'"');return S(M,C.values)}if(5===C.type){if(3===C.value.length){var E=C.value.substring(0,1),N=C.value.substring(1,2),$=C.value.substring(2,3);return $i(parseInt(E+E,16),parseInt(N+N,16),parseInt($+$,16),1)}if(4===C.value.length){E=C.value.substring(0,1),N=C.value.substring(1,2),$=C.value.substring(2,3);var se=C.value.substring(3,4);return $i(parseInt(E+E,16),parseInt(N+N,16),parseInt($+$,16),parseInt(se+se,16)/255)}if(6===C.value.length)return E=C.value.substring(0,2),N=C.value.substring(2,4),$=C.value.substring(4,6),$i(parseInt(E,16),parseInt(N,16),parseInt($,16),1);if(8===C.value.length)return E=C.value.substring(0,2),N=C.value.substring(2,4),$=C.value.substring(4,6),se=C.value.substring(6,8),$i(parseInt(E,16),parseInt(N,16),parseInt($,16),parseInt(se,16)/255)}if(20===C.type){var xe=Ca[C.value.toUpperCase()];if(typeof xe<"u")return xe}return Ca.TRANSPARENT},xa=function(M){return!(255&M)},us=function(M){var C=255&M,S=255&M>>8,E=255&M>>16,N=255&M>>24;return C<255?"rgba("+N+","+E+","+S+","+C/255+")":"rgb("+N+","+E+","+S+")"},$i=function(M,C,S,E){return(M<<24|C<<16|S<<8|Math.round(255*E))>>>0},Uo=function(M,C){if(17===M.type)return M.number;if(16===M.type){var S=3===C?1:255;return 3===C?M.number/100*S:Math.round(M.number/100*S)}return 0},Ko=function(M,C){var S=C.filter(Ju);if(3===S.length){var E=S.map(Uo);return $i(E[0],E[1],E[2],1)}if(4===S.length){var xe=S.map(Uo);return $i(xe[0],xe[1],xe[2],xe[3])}return 0};function Kc(M,C,S){return S<0&&(S+=1),S>=1&&(S-=1),S<1/6?(C-M)*S*6+M:S<.5?C:S<2/3?6*(C-M)*(2/3-S)+M:M}var Ps=function(M,C){var S=C.filter(Ju),E=S[0],N=S[1],$=S[2],se=S[3],xe=(17===E.type?oa(E.number):yA_parse(M,E))/(2*Math.PI),ge=yi(N)?N.number/100:0,Xe=yi($)?$.number/100:0,tt=typeof se<"u"&&yi(se)?go(se,1):1;if(0===ge)return $i(255*Xe,255*Xe,255*Xe,1);var mt=Xe<=.5?Xe*(ge+1):Xe+ge-Xe*ge,bt=2*Xe-mt,yn=Kc(bt,mt,xe+1/3),An=Kc(bt,mt,xe),Sn=Kc(bt,mt,xe-1/3);return $i(255*yn,255*An,255*Sn,tt)},qx={hsl:Ps,hsla:Ps,rgb:Ko,rgba:Ko},Yc=function(M,C){return al_parse(M,wv.create(C).parseComponentValue())},Ca={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},Tv={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(M,C){return C.map(function(S){if(Wr(S))switch(S.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},Wx={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},_c=function(M,C){var S=al_parse(M,C[0]),E=C[1];return E&&yi(E)?{color:S,stop:E}:{color:S,stop:null}},Gd=function(M,C){var S=M[0],E=M[M.length-1];null===S.stop&&(S.stop=ys),null===E.stop&&(E.stop=zd);for(var N=[],$=0,se=0;se$?ge:$),$=ge}else N.push(null)}var Xe=null;for(se=0;sese.optimumDistance)?{optimumCorner:xe,optimumDistance:tt}:se},{optimumDistance:N?1/0:-1/0,optimumCorner:null}).optimumCorner},Ef=function(M,C){var S=oa(180),E=[];return sl(C).forEach(function(N,$){if(0===$){var se=N[0];if(20===se.type&&-1!==["top","left","right","bottom"].indexOf(se.value))return void(S=Sv(N));if(T0(se))return void(S=(yA_parse(M,se)+oa(270))%oa(360))}var xe=_c(M,N);E.push(xe)}),{angle:S,stops:E,type:1}},I0="closest-side",Zc="farthest-side",Dv="closest-corner",F0="farthest-corner",Yx="ellipse",Tf="contain",Jc=function(M,C){var S=0,E=3,N=[],$=[];return sl(C).forEach(function(se,xe){var ge=!0;if(0===xe?ge=se.reduce(function(tt,mt){if(Wr(mt))switch(mt.value){case"center":return $.push(Cv),!1;case"top":case"left":return $.push(ys),!1;case"right":case"bottom":return $.push(zd),!1}else if(yi(mt)||Xc(mt))return $.push(mt),!1;return tt},ge):1===xe&&(ge=se.reduce(function(tt,mt){if(Wr(mt))switch(mt.value){case"circle":return S=0,!1;case Yx:return S=1,!1;case Tf:case I0:return E=0,!1;case Zc:return E=1,!1;case Dv:return E=2,!1;case"cover":case F0:return E=3,!1}else if(Xc(mt)||yi(mt))return Array.isArray(E)||(E=[]),E.push(mt),!1;return tt},ge)),ge){var Xe=_c(M,se);N.push(Xe)}}),{size:E,shape:S,stops:N,position:$,type:2}},kv_parse=function(M,C){if(22===C.type){var S={url:C.value,type:0};return M.cache.addImage(C.value),S}if(18===C.type){var E=eh[C.name];if(typeof E>"u")throw new Error('Attempting to parse an unsupported image function "'+C.name+'"');return E(M,C.values)}throw new Error("Unsupported image type "+C.type)};for(var eh={"linear-gradient":function(M,C){var S=oa(180),E=[];return sl(C).forEach(function(N,$){if(0===$){var se=N[0];if(20===se.type&&"to"===se.value)return void(S=Sv(N));if(T0(se))return void(S=yA_parse(M,se))}var xe=_c(M,N);E.push(xe)}),{angle:S,stops:E,type:1}},"-moz-linear-gradient":Ef,"-ms-linear-gradient":Ef,"-o-linear-gradient":Ef,"-webkit-linear-gradient":Ef,"radial-gradient":function(M,C){var S=0,E=3,N=[],$=[];return sl(C).forEach(function(se,xe){var ge=!0;if(0===xe){var Xe=!1;ge=se.reduce(function(mt,bt){if(Xe)if(Wr(bt))switch(bt.value){case"center":return $.push(Cv),mt;case"top":case"left":return $.push(ys),mt;case"right":case"bottom":return $.push(zd),mt}else(yi(bt)||Xc(bt))&&$.push(bt);else if(Wr(bt))switch(bt.value){case"circle":return S=0,!1;case Yx:return S=1,!1;case"at":return Xe=!0,!1;case I0:return E=0,!1;case"cover":case Zc:return E=1,!1;case Tf:case Dv:return E=2,!1;case F0:return E=3,!1}else if(Xc(bt)||yi(bt))return Array.isArray(E)||(E=[]),E.push(bt),!1;return mt},ge)}if(ge){var tt=_c(M,se);N.push(tt)}}),{size:E,shape:S,stops:N,position:$,type:2}},"-moz-radial-gradient":Jc,"-ms-radial-gradient":Jc,"-o-radial-gradient":Jc,"-webkit-radial-gradient":Jc,"-webkit-gradient":function(M,C){var S=oa(180),E=[],N=1;return sl(C).forEach(function(ge,Xe){var tt=ge[0];if(0===Xe){if(Wr(tt)&&"linear"===tt.value)return void(N=1);if(Wr(tt)&&"radial"===tt.value)return void(N=2)}if(18===tt.type)if("from"===tt.name){var mt=al_parse(M,tt.values[0]);E.push({stop:ys,color:mt})}else if("to"===tt.name)mt=al_parse(M,tt.values[0]),E.push({stop:zd,color:mt});else if("color-stop"===tt.name){var bt=tt.values.filter(Ju);if(2===bt.length){mt=al_parse(M,bt[1]);var yn=bt[0];Qd(yn)&&E.push({stop:{type:16,number:100*yn.number,flags:yn.flags},color:mt})}}}),1===N?{angle:(S+oa(180))%oa(360),stops:E,type:N}:{size:3,shape:0,stops:E,position:[],type:N}}},tT={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(M,C){if(0===C.length)return[];var S=C[0];return 20===S.type&&"none"===S.value?[]:C.filter(function(E){return Ju(E)&&function Zx(M){return!(20===M.type&&"none"===M.value||18===M.type&&!eh[M.name])}(E)}).map(function(E){return kv_parse(M,E)})}},nT={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(M,C){return C.map(function(S){if(Wr(S))switch(S.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},iT={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(M,C){return sl(C).map(function(S){return S.filter(yi)}).map(Gx)}},Rv={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(M,C){return sl(C).map(function(S){return S.filter(Wr).map(function(E){return E.value}).join(" ")}).map(D0)}},D0=function(M){switch(M){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}},If=function(M){return M.AUTO="auto",M.CONTAIN="contain",M.COVER="cover",M}(If||{}),Ff={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(M,C){return sl(C).map(function(S){return S.filter(bc)})}},bc=function(M){return Wr(M)||yi(M)},B0=function(M){return{name:"border-"+M+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},rT=B0("top"),Yo=B0("right"),xA=B0("bottom"),Df=B0("left"),ed=function(M){return{name:"border-radius-"+M,initialValue:"0 0",prefix:!1,type:1,parse:function(C,S){return Gx(S.filter(yi))}}},Jx=ed("top-left"),eC=ed("top-right"),tC=ed("bottom-right"),k0=ed("bottom-left"),Bf=function(M){return{name:"border-"+M+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(C,S){switch(S){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},Pv=Bf("top"),kf=Bf("right"),Rf=Bf("bottom"),ro=Bf("left"),Jt=function(M){return{name:"border-"+M+"-width",initialValue:"0",type:0,prefix:!1,parse:function(C,S){return Hd(S)?S.number:0}}},wi=Jt("top"),$o=Jt("right"),cl=Jt("bottom"),ws=Jt("left"),$s={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},th={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(M,C){return"rtl"===C?1:0}},oo={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(M,C){return C.filter(Wr).reduce(function(S,E){return S|Vo(E.value)},0)}},Vo=function(M){switch(M){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},Va={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(M,C){switch(C){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Oi={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(M,C){return 20===C.type&&"normal"===C.value?0:17===C.type||15===C.type?C.number:0}},jd=function(M){return M.NORMAL="normal",M.STRICT="strict",M}(jd||{}),nC={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(M,C){return"strict"===C?jd.STRICT:jd.NORMAL}},$d={name:"line-height",initialValue:"normal",prefix:!1,type:4},_o=function(M,C){return Wr(M)&&"normal"===M.value?1.2*C:17===M.type?C*M.number:yi(M)?go(M,C):C},vc={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(M,C){return 20===C.type&&"none"===C.value?null:kv_parse(M,C)}},qd={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(M,C){return"inside"===C?0:1}},dl={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(M,C){switch(C){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}}},Bl=function(M){return{name:"margin-"+M,initialValue:"0",prefix:!1,type:4}},Ov=Bl("top"),td=Bl("right"),CA=Bl("bottom"),Ha=Bl("left"),ui={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(M,C){return C.filter(Wr).map(function(S){switch(S.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}})}},MA={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(M,C){return"break-word"===C?"break-word":"normal"}},Wd=function(M){return{name:"padding-"+M,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},kl=Wd("top"),EA=Wd("right"),nh=Wd("bottom"),Ho=Wd("left"),R0={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(M,C){switch(C){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},hs={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(M,C){switch(C){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},Os={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(M,C){return 1===C.length&&bA(C[0],"none")?[]:sl(C).map(function(S){for(var E={color:Ca.TRANSPARENT,offsetX:ys,offsetY:ys,blur:ys},N=0,$=0;$"u")throw new Error('Attempting to parse an unsupported transform function "'+C.name+'"');return S(C.values)}return null}},SA={matrix:function(M){var C=M.filter(function(S){return 17===S.type}).map(function(S){return S.number});return 6===C.length?C:null},matrix3d:function(M){var C=M.filter(function(ge){return 17===ge.type}).map(function(ge){return ge.number});return 16===C.length?[C[0],C[1],C[4],C[5],C[12],C[13]]:null}},TA={type:16,number:50,flags:4},iC=[TA,TA],N0={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:1,parse:function(M,C){var S=C.filter(yi);return 2!==S.length?iC:[S[0],S[1]]}},L0={name:"visible",initialValue:"none",prefix:!1,type:2,parse:function(M,C){switch(C){case"hidden":return 1;case"collapse":return 2;default:return 0}}},U0=function(M){return M.NORMAL="normal",M.BREAK_ALL="break-all",M.KEEP_ALL="keep-all",M}(U0||{}),Nv={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:function(M,C){switch(C){case"break-all":return U0.BREAK_ALL;case"keep-all":return U0.KEEP_ALL;default:return U0.NORMAL}}},DP={name:"z-index",initialValue:"auto",prefix:!1,type:0,parse:function(M,C){if(20===C.type)return{auto:!0,order:0};if(Qd(C))return{auto:!1,order:C.number};throw new Error("Invalid z-index number parsed")}},rC={name:"time",parse:function(M,C){if(15===C.type)switch(C.unit.toLowerCase()){case"s":return 1e3*C.number;case"ms":return C.number}throw new Error("Unsupported time type")}},BP={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:function(M,C){return Qd(C)?C.number:1}},kP={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},RP={name:"text-decoration-line",initialValue:"none",prefix:!1,type:1,parse:function(M,C){return C.filter(Wr).map(function(S){switch(S.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0}).filter(function(S){return 0!==S})}},PP={name:"font-family",initialValue:"",prefix:!1,type:1,parse:function(M,C){var S=[],E=[];return C.forEach(function(N){switch(N.type){case 20:case 0:S.push(N.value);break;case 17:S.push(N.number.toString());break;case 4:E.push(S.join(" ")),S.length=0}}),S.length&&E.push(S.join(" ")),E.map(function(N){return-1===N.indexOf(" ")?N:"'"+N+"'"})}},OP={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},NP={name:"font-weight",initialValue:"normal",type:0,prefix:!1,parse:function(M,C){return Qd(C)?C.number:Wr(C)&&"bold"===C.value?700:400}},LP={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:function(M,C){return C.filter(Wr).map(function(S){return S.value})}},UP={name:"font-style",initialValue:"normal",prefix:!1,type:2,parse:function(M,C){switch(C){case"oblique":return"oblique";case"italic":return"italic";default:return"normal"}}},Co=function(M,C){return!!(M&C)},V0={name:"content",initialValue:"none",type:1,prefix:!1,parse:function(M,C){if(0===C.length)return[];var S=C[0];return 20===S.type&&"none"===S.value?[]:C}},oC={name:"counter-increment",initialValue:"none",prefix:!0,type:1,parse:function(M,C){if(0===C.length)return null;var S=C[0];if(20===S.type&&"none"===S.value)return null;for(var E=[],N=C.filter(S0),$=0;$1?1:0],this.overflowWrap=un(C,MA,S.overflowWrap),this.paddingTop=un(C,kl,S.paddingTop),this.paddingRight=un(C,EA,S.paddingRight),this.paddingBottom=un(C,nh,S.paddingBottom),this.paddingLeft=un(C,Ho,S.paddingLeft),this.paintOrder=un(C,sT,S.paintOrder),this.position=un(C,hs,S.position),this.textAlign=un(C,R0,S.textAlign),this.textDecorationColor=un(C,kP,null!==(E=S.textDecorationColor)&&void 0!==E?E:S.color),this.textDecorationLine=un(C,RP,null!==(N=S.textDecorationLine)&&void 0!==N?N:S.textDecoration),this.textShadow=un(C,Os,S.textShadow),this.textTransform=un(C,P0,S.textTransform),this.transform=un(C,ih,S.transform),this.transformOrigin=un(C,N0,S.transformOrigin),this.visibility=un(C,L0,S.visibility),this.webkitTextStrokeColor=un(C,H0,S.webkitTextStrokeColor),this.webkitTextStrokeWidth=un(C,Cn,S.webkitTextStrokeWidth),this.wordBreak=un(C,Nv,S.wordBreak),this.zIndex=un(C,DP,S.zIndex)}return M.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},M.prototype.isTransparent=function(){return xa(this.backgroundColor)},M.prototype.isTransformed=function(){return null!==this.transform},M.prototype.isPositioned=function(){return 0!==this.position},M.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},M.prototype.isFloating=function(){return 0!==this.float},M.prototype.isInlineLevel=function(){return Co(this.display,4)||Co(this.display,33554432)||Co(this.display,268435456)||Co(this.display,536870912)||Co(this.display,67108864)||Co(this.display,134217728)},M}(),Xr=function(){return function M(C,S){this.content=un(C,V0,S.content),this.quotes=un(C,HP,S.quotes)}}(),Ai=function(){return function M(C,S){this.counterIncrement=un(C,oC,S.counterIncrement),this.counterReset=un(C,sC,S.counterReset)}}(),un=function(M,C,S){var E=new Wc,N=null!==S&&typeof S<"u"?S.toString():C.initialValue;E.write(N);var $=new wv(E.read());switch(C.type){case 2:var se=$.parseComponentValue();return C.parse(M,Wr(se)?se.value:C.initialValue);case 0:return C.parse(M,$.parseComponentValue());case 1:return C.parse(M,$.parseComponentValues());case 4:return $.parseComponentValue();case 3:switch(C.format){case"angle":return yA_parse(M,$.parseComponentValue());case"color":return al_parse(M,$.parseComponentValue());case"image":return kv_parse(M,$.parseComponentValue());case"length":var xe=$.parseComponentValue();return Xc(xe)?xe:ys;case"length-percentage":var ge=$.parseComponentValue();return yi(ge)?ge:ys;case"time":return rC.parse(M,$.parseComponentValue())}}},Pf=function(M,C){var S=function(M){switch(M.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(M);return 1===S||C===S},Ea=function(){return function M(C,S){this.context=C,this.textNodes=[],this.elements=[],this.flags=0,Pf(S,3),this.styles=new Xd(C,window.getComputedStyle(S,null)),$f(S)&&(this.styles.animationDuration.some(function(E){return E>0})&&(S.style.animationDuration="0s"),null!==this.styles.transform&&(S.style.transform="none")),this.bounds=L(this.context,S),Pf(S,4)&&(this.flags|=16)}}(),Of="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ol=typeof Uint8Array>"u"?[]:new Uint8Array(256),ar=0;ar<64;ar++)Ol[Of.charCodeAt(ar)]=ar;for(var Uf=function(M,C,S){return M.slice?M.slice(C,S):new Uint16Array(Array.prototype.slice.call(M,C,S))},BA=function(){function M(C,S,E,N,$,se){this.initialValue=C,this.errorValue=S,this.highStart=E,this.highValueIndex=N,this.index=$,this.data=se}return M.prototype.get=function(C){var S;if(C>=0){if(C<55296||C>56319&&C<=65535)return this.data[S=((S=this.index[C>>5])<<2)+(31&C)];if(C<=65535)return this.data[S=((S=this.index[2048+(C-55296>>5)])<<2)+(31&C)];if(C>11)],this.data[S=((S=this.index[S+=C>>5&63])<<2)+(31&C)];if(C<=1114111)return this.data[this.highValueIndex]}return this.errorValue},M}(),rh="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",$0=typeof Uint8Array>"u"?[]:new Uint8Array(256),q0=0;q0<64;q0++)$0[rh.charCodeAt(q0)]=q0;var zv=8,X0=9,Gv=11,Ot=12,jv=function(){for(var M=[],C=0;C>10),se%1024+56320),(N+1===S||E.length>16384)&&($+=String.fromCharCode.apply(String,E),E.length=0)}return $},PA=function(M){var S=function(M){var E,$,se,xe,ge,C=.75*M.length,S=M.length,N=0;"="===M[M.length-1]&&(C--,"="===M[M.length-2]&&C--);var Xe=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(C):new Array(C),tt=Array.isArray(Xe)?Xe:new Uint8Array(Xe);for(E=0;E>4,tt[N++]=(15&se)<<4|xe>>2,tt[N++]=(3&xe)<<6|63≥return Xe}(M),E=Array.isArray(S)?function(M){for(var C=M.length,S=[],E=0;E=55296&&N<=56319&&S=S)return{done:!0,value:null};for(var se="\xd7";Ese.x||tt.y>se.y;return se=tt,0===Xe||mt});return M.body.removeChild(C),xe}(document);return Object.defineProperty(fs,"SUPPORT_WORD_BREAKING",{value:M}),M},get SUPPORT_SVG_DRAWING(){var M=function(M){var C=new Image,S=M.createElement("canvas"),E=S.getContext("2d");if(!E)return!1;C.src="data:image/svg+xml,";try{E.drawImage(C,0,0),S.toDataURL()}catch{return!1}return!0}(document);return Object.defineProperty(fs,"SUPPORT_SVG_DRAWING",{value:M}),M},get SUPPORT_FOREIGNOBJECT_DRAWING(){var M="function"==typeof Array.from&&"function"==typeof window.fetch?function(M){var C=M.createElement("canvas"),S=100;C.width=S,C.height=S;var E=C.getContext("2d");if(!E)return Promise.reject(!1);E.fillStyle="rgb(0, 255, 0)",E.fillRect(0,0,S,S);var N=new Image,$=C.toDataURL();N.src=$;var se=Pr(S,S,0,0,N);return E.fillStyle="red",E.fillRect(0,0,S,S),qv(se).then(function(xe){E.drawImage(xe,0,0);var ge=E.getImageData(0,0,S,S).data;E.fillStyle="red",E.fillRect(0,0,S,S);var Xe=M.createElement("div");return Xe.style.backgroundImage="url("+$+")",Xe.style.height=S+"px",NA(ge)?qv(Pr(S,S,0,0,Xe)):Promise.reject(!1)}).then(function(xe){return E.drawImage(xe,0,0),NA(E.getImageData(0,0,S,S).data)}).catch(function(){return!1})}(document):Promise.resolve(!1);return Object.defineProperty(fs,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:M}),M},get SUPPORT_CORS_IMAGES(){var M=typeof(new Image).crossOrigin<"u";return Object.defineProperty(fs,"SUPPORT_CORS_IMAGES",{value:M}),M},get SUPPORT_RESPONSE_TYPE(){var M="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(fs,"SUPPORT_RESPONSE_TYPE",{value:M}),M},get SUPPORT_CORS_XHR(){var M="withCredentials"in new XMLHttpRequest;return Object.defineProperty(fs,"SUPPORT_CORS_XHR",{value:M}),M},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var M=!!(typeof Intl<"u"&&Intl.Segmenter);return Object.defineProperty(fs,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:M}),M}},Vf=function(){return function M(C,S){this.text=C,this.bounds=S}}(),LA=function(M,C){var S=C.ownerDocument;if(S){var E=S.createElement("html2canvaswrapper");E.appendChild(C.cloneNode(!0));var N=C.parentNode;if(N){N.replaceChild(E,C);var $=L(M,E);return E.firstChild&&N.replaceChild(E.firstChild,E),$}}return U.EMPTY},UA=function(M,C,S){var E=M.ownerDocument;if(!E)throw new Error("Node has no owner document");var N=E.createRange();return N.setStart(M,C),N.setEnd(M,C+S),N},Hf=function(M){if(fs.SUPPORT_NATIVE_TEXT_SEGMENTATION){var C=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(C.segment(M)).map(function(S){return S.segment})}return function(M){for(var E,C=cC(M),S=[];!(E=C.next()).done;)E.value&&S.push(E.value.slice());return S}(M)},t_=function(M,C){return 0!==C.letterSpacing?Hf(M):function(M,C){if(fs.SUPPORT_NATIVE_TEXT_SEGMENTATION){var S=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(S.segment(M)).map(function(E){return E.segment})}return Qf(M,C)}(M,C)},n_=[32,160,4961,65792,65793,4153,4241],Qf=function(M,C){for(var N,S=function(M,C){var S=V(M),E=Ar(S,C),N=E[0],$=E[1],se=E[2],xe=S.length,ge=0,Xe=0;return{next:function(){if(Xe>=xe)return{done:!0,value:null};for(var tt=Mi;Xe0)if(fs.SUPPORT_RANGE_BOUNDS){var ge=UA(E,se,xe.length).getClientRects();if(ge.length>1){var Xe=Hf(xe),tt=0;Xe.forEach(function(bt){$.push(new Vf(bt,U.fromDOMRectList(M,UA(E,tt+se,bt.length).getClientRects()))),tt+=bt.length})}else $.push(new Vf(xe,U.fromDOMRectList(M,ge)))}else{var mt=E.splitText(xe.length);$.push(new Vf(xe,LA(M,E))),E=mt}else fs.SUPPORT_RANGE_BOUNDS||(E=E.splitText(xe.length));se+=xe.length}),$}(C,this.text,E,S)}}(),oh=function(M,C){switch(C){case 1:return M.toLowerCase();case 3:return M.replace(Wv,hl);case 2:return M.toUpperCase();default:return M}},Wv=/(^|\s|:|-|\(|\))([a-z])/g,hl=function(M,C,S){return M.length>0?C+S.toUpperCase():M},HA=function(M){function C(S,E){var N=M.call(this,S,E)||this;return N.src=E.currentSrc||E.src,N.intrinsicWidth=E.naturalWidth,N.intrinsicHeight=E.naturalHeight,N.context.cache.addImage(N.src),N}return v(C,M),C}(Ea),Xv=function(M){function C(S,E){var N=M.call(this,S,E)||this;return N.canvas=E,N.intrinsicWidth=E.width,N.intrinsicHeight=E.height,N}return v(C,M),C}(Ea),$n=function(M){function C(S,E){var N=M.call(this,S,E)||this,$=new XMLSerializer,se=L(S,E);return E.setAttribute("width",se.width+"px"),E.setAttribute("height",se.height+"px"),N.svg="data:image/svg+xml,"+encodeURIComponent($.serializeToString(E)),N.intrinsicWidth=E.width.baseVal.value,N.intrinsicHeight=E.height.baseVal.value,N.context.cache.addImage(N.svg),N}return v(C,M),C}(Ea),id=function(M){function C(S,E){var N=M.call(this,S,E)||this;return N.value=E.value,N}return v(C,M),C}(Ea),Rr=function(M){function C(S,E){var N=M.call(this,S,E)||this;return N.start=E.start,N.reversed="boolean"==typeof E.reversed&&!0===E.reversed,N}return v(C,M),C}(Ea),Kv=[{type:15,flags:0,unit:"px",number:3}],Yv=[{type:16,flags:0,number:50}],QA="checkbox",zf="radio",sh="password",fl=707406591,Kd=function(M){function C(S,E){var N=M.call(this,S,E)||this;switch(N.type=E.type.toLowerCase(),N.checked=E.checked,N.value=function(M){var C=M.type===sh?new Array(M.value.length+1).join("\u2022"):M.value;return 0===C.length?M.placeholder||"":C}(E),(N.type===QA||N.type===zf)&&(N.styles.backgroundColor=3739148031,N.styles.borderTopColor=N.styles.borderRightColor=N.styles.borderBottomColor=N.styles.borderLeftColor=2779096575,N.styles.borderTopWidth=N.styles.borderRightWidth=N.styles.borderBottomWidth=N.styles.borderLeftWidth=1,N.styles.borderTopStyle=N.styles.borderRightStyle=N.styles.borderBottomStyle=N.styles.borderLeftStyle=1,N.styles.backgroundClip=[0],N.styles.backgroundOrigin=[0],N.bounds=function(M){return M.width>M.height?new U(M.left+(M.width-M.height)/2,M.top,M.height,M.height):M.width0)S.textNodes.push(new VA(M,N,S.styles));else if(rd(N))if(XA(N)&&N.assignedNodes)N.assignedNodes().forEach(function(xe){return Yd(M,xe,S,E)});else{var se=Gf(M,N);se.styles.isVisible()&&(jf(N,se,E)?se.flags|=4:GA(se.styles)&&(se.flags|=2),-1!==Jv.indexOf(N.tagName)&&(se.flags|=8),S.elements.push(se),N.shadowRoot?Yd(M,N.shadowRoot,se,E):!sd(N)&&!qf(N)&&!WA(N)&&Yd(M,N,se,E))}},Gf=function(M,C){return jA(C)?new HA(M,C):Wf(C)?new Xv(M,C):qf(C)?new $n(M,C):hC(C)?new id(M,C):ny(C)?new Rr(M,C):fC(C)?new Kd(M,C):WA(C)?new zA(M,C):sd(C)?new bn(M,C):Zd(C)?new Un(M,C):new Ea(M,C)},ey=function(M,C){var S=Gf(M,C);return S.flags|=4,Yd(M,C,S,S),S},jf=function(M,C,S){return C.styles.isPositionedWithZIndex()||C.styles.opacity<1||C.styles.isTransformed()||Vl(M)&&S.styles.isTransparent()},GA=function(M){return M.isPositioned()||M.isFloating()},ty=function(M){return M.nodeType===Node.TEXT_NODE},rd=function(M){return M.nodeType===Node.ELEMENT_NODE},$f=function(M){return rd(M)&&typeof M.style<"u"&&!wc(M)},wc=function(M){return"object"==typeof M.className},hC=function(M){return"LI"===M.tagName},ny=function(M){return"OL"===M.tagName},fC=function(M){return"INPUT"===M.tagName},qf=function(M){return"svg"===M.tagName},Vl=function(M){return"BODY"===M.tagName},Wf=function(M){return"CANVAS"===M.tagName},od=function(M){return"VIDEO"===M.tagName},jA=function(M){return"IMG"===M.tagName},Zd=function(M){return"IFRAME"===M.tagName},$A=function(M){return"STYLE"===M.tagName},sd=function(M){return"TEXTAREA"===M.tagName},WA=function(M){return"SELECT"===M.tagName},XA=function(M){return"SLOT"===M.tagName},KA=function(M){return M.tagName.indexOf("-")>0},YA=function(){function M(){this.counters={}}return M.prototype.getCounterValue=function(C){var S=this.counters[C];return S&&S.length?S[S.length-1]:1},M.prototype.getCounterValues=function(C){return this.counters[C]||[]},M.prototype.pop=function(C){var S=this;C.forEach(function(E){return S.counters[E].pop()})},M.prototype.parse=function(C){var S=this,E=C.counterIncrement,N=C.counterReset,$=!0;null!==E&&E.forEach(function(xe){var ge=S.counters[xe.counter];ge&&0!==xe.increment&&($=!1,ge.length||ge.push(1),ge[Math.max(0,ge.length-1)]+=xe.increment)});var se=[];return $&&N.forEach(function(xe){var ge=S.counters[xe.counter];se.push(xe.counter),ge||(ge=S.counters[xe.counter]=[]),ge.push(xe.reset)}),se},M}(),za={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"]},i_={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"]},Xf={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"]},Jd={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"]},xc=function(M,C,S,E,N,$){return MS?Cc(M,N,$.length>0):E.integers.reduce(function(se,xe,ge){for(;M>=xe;)M-=xe,se+=E.values[ge];return se},"")+$},ad=function(M,C,S,E){var N="";do{S||M--,N=E(M)+N,M/=C}while(M*C>=C);return N},bo=function(M,C,S,E,N){var $=S-C+1;return(M<0?"-":"")+(ad(Math.abs(M),$,E,function(se){return X(Math.floor(se%$)+C)})+N)},Sa=function(M,C,S){void 0===S&&(S=". ");var E=C.length;return ad(Math.abs(M),E,!1,function(N){return C[Math.floor(N%E)]})+S},pl=function(M,C,S,E,N,$){if(M<-9999||M>9999)return Cc(M,4,N.length>0);var se=Math.abs(M),xe=N;if(0===se)return C[0]+xe;for(var ge=0;se>0&&ge<=4;ge++){var Xe=se%10;0===Xe&&Co($,1)&&""!==xe?xe=C[Xe]+xe:Xe>1||1===Xe&&0===ge||1===Xe&&1===ge&&Co($,2)||1===Xe&&1===ge&&Co($,4)&&M>100||1===Xe&&ge>1&&Co($,8)?xe=C[Xe]+(ge>0?S[ge-1]:"")+xe:1===Xe&&ge>0&&(xe=S[ge-1]+xe),se=Math.floor(se/10)}return(M<0?E:"")+xe},ZA="\ub9c8\uc774\ub108\uc2a4",Cc=function(M,C,S){var E=S?". ":"",N=S?"\u3001":"",$=S?", ":"",se=S?" ":"";switch(C){case 0:return"\u2022"+se;case 1:return"\u25e6"+se;case 2:return"\u25fe"+se;case 5:var xe=bo(M,48,57,!0,E);return xe.length<4?"0"+xe:xe;case 4:return Sa(M,"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d",N);case 6:return xc(M,1,3999,za,3,E).toLowerCase();case 7:return xc(M,1,3999,za,3,E);case 8:return bo(M,945,969,!1,E);case 9:return bo(M,97,122,!1,E);case 10:return bo(M,65,90,!1,E);case 11:return bo(M,1632,1641,!0,E);case 12:case 49:return xc(M,1,9999,i_,3,E);case 35:return xc(M,1,9999,i_,3,E).toLowerCase();case 13:return bo(M,2534,2543,!0,E);case 14:case 30:return bo(M,6112,6121,!0,E);case 15:return Sa(M,"\u5b50\u4e11\u5bc5\u536f\u8fb0\u5df3\u5348\u672a\u7533\u9149\u620c\u4ea5",N);case 16:return Sa(M,"\u7532\u4e59\u4e19\u4e01\u620a\u5df1\u5e9a\u8f9b\u58ec\u7678",N);case 17:case 48:return pl(M,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c","\u8ca0",N,14);case 47:return pl(M,"\u96f6\u58f9\u8cb3\u53c3\u8086\u4f0d\u9678\u67d2\u634c\u7396","\u62fe\u4f70\u4edf\u842c","\u8ca0",N,15);case 42:return pl(M,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c","\u8d1f",N,14);case 41:return pl(M,"\u96f6\u58f9\u8d30\u53c1\u8086\u4f0d\u9646\u67d2\u634c\u7396","\u62fe\u4f70\u4edf\u842c","\u8d1f",N,15);case 26:return pl(M,"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u4e07","\u30de\u30a4\u30ca\u30b9",N,0);case 25:return pl(M,"\u96f6\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d","\u62fe\u767e\u5343\u4e07","\u30de\u30a4\u30ca\u30b9",N,7);case 31:return pl(M,"\uc601\uc77c\uc774\uc0bc\uc0ac\uc624\uc721\uce60\ud314\uad6c","\uc2ed\ubc31\ucc9c\ub9cc",ZA,$,7);case 33:return pl(M,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c",ZA,$,0);case 32:return pl(M,"\u96f6\u58f9\u8cb3\u53c3\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u62fe\u767e\u5343",ZA,$,7);case 18:return bo(M,2406,2415,!0,E);case 20:return xc(M,1,19999,Jd,3,E);case 21:return bo(M,2790,2799,!0,E);case 22:return bo(M,2662,2671,!0,E);case 22:return xc(M,1,10999,Xf,3,E);case 23:return Sa(M,"\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 Sa(M,"\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 bo(M,3302,3311,!0,E);case 28:return Sa(M,"\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",N);case 29:return Sa(M,"\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",N);case 34:return bo(M,3792,3801,!0,E);case 37:return bo(M,6160,6169,!0,E);case 38:return bo(M,4160,4169,!0,E);case 39:return bo(M,2918,2927,!0,E);case 40:return bo(M,1776,1785,!0,E);case 43:return bo(M,3046,3055,!0,E);case 44:return bo(M,3174,3183,!0,E);case 45:return bo(M,3664,3673,!0,E);case 46:return bo(M,3872,3881,!0,E);default:return bo(M,48,57,!0,E)}},tu="data-html2canvas-ignore",cd=function(){function M(C,S,E){if(this.context=C,this.options=E,this.scrolledElements=[],this.referenceElement=S,this.counters=new YA,this.quoteDepth=0,!S.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(S.ownerDocument.documentElement,!1)}return M.prototype.toIFrame=function(C,S){var E=this,N=pC(C,S);if(!N.contentWindow)return Promise.reject("Unable to find iframe window");var $=C.defaultView.pageXOffset,se=C.defaultView.pageYOffset,xe=N.contentWindow,ge=xe.document,Xe=AC(N).then(function(){return o(E,void 0,void 0,function(){var tt,mt;return y(this,function(bt){switch(bt.label){case 0:return this.scrolledElements.forEach(JA),xe&&(xe.scrollTo(S.left,S.top),/(iPad|iPhone|iPod)/g.test(navigator.userAgent)&&(xe.scrollY!==S.top||xe.scrollX!==S.left)&&(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(xe.scrollX-S.left,xe.scrollY-S.top,0,0))),tt=this.options.onclone,typeof(mt=this.clonedReferenceElement)>"u"?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:ge.fonts&&ge.fonts.ready?[4,ge.fonts.ready]:[3,2];case 1:bt.sent(),bt.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,Yt(ge)]:[3,4];case 3:bt.sent(),bt.label=4;case 4:return"function"==typeof tt?[2,Promise.resolve().then(function(){return tt(ge,mt)}).then(function(){return N})]:[2,N]}})})});return ge.open(),ge.write(sy(document.doctype)+""),r_(this.referenceElement.ownerDocument,$,se),ge.replaceChild(ge.adoptNode(this.documentElement),ge.documentElement),ge.close(),Xe},M.prototype.createElementClone=function(C){if(Pf(C,2),Wf(C))return this.createCanvasClone(C);if(od(C))return this.createVideoClone(C);if($A(C))return this.createStyleClone(C);var S=C.cloneNode(!1);return jA(S)&&(jA(C)&&C.currentSrc&&C.currentSrc!==C.src&&(S.src=C.currentSrc,S.srcset=""),"lazy"===S.loading&&(S.loading="eager")),KA(S)?this.createCustomElementClone(S):S},M.prototype.createCustomElementClone=function(C){var S=document.createElement("html2canvascustomelement");return dd(C.style,S),S},M.prototype.createStyleClone=function(C){try{var S=C.sheet;if(S&&S.cssRules){var E=[].slice.call(S.cssRules,0).reduce(function($,se){return se&&"string"==typeof se.cssText?$+se.cssText:$},""),N=C.cloneNode(!1);return N.textContent=E,N}}catch($){if(this.context.logger.error("Unable to access cssRules property",$),"SecurityError"!==$.name)throw $}return C.cloneNode(!1)},M.prototype.createCanvasClone=function(C){var S;if(this.options.inlineImages&&C.ownerDocument){var E=C.ownerDocument.createElement("img");try{return E.src=C.toDataURL(),E}catch{this.context.logger.info("Unable to inline canvas contents, canvas is tainted",C)}}var N=C.cloneNode(!1);try{N.width=C.width,N.height=C.height;var $=C.getContext("2d"),se=N.getContext("2d");if(se)if(!this.options.allowTaint&&$)se.putImageData($.getImageData(0,0,C.width,C.height),0,0);else{var xe=null!==(S=C.getContext("webgl2"))&&void 0!==S?S:C.getContext("webgl");if(xe){var ge=xe.getContextAttributes();!1===ge?.preserveDrawingBuffer&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",C)}se.drawImage(C,0,0)}return N}catch{this.context.logger.info("Unable to clone canvas as it is tainted",C)}return N},M.prototype.createVideoClone=function(C){var S=C.ownerDocument.createElement("canvas");S.width=C.offsetWidth,S.height=C.offsetHeight;var E=S.getContext("2d");try{return E&&(E.drawImage(C,0,0,S.width,S.height),this.options.allowTaint||E.getImageData(0,0,S.width,S.height)),S}catch{this.context.logger.info("Unable to clone video as it is tainted",C)}var N=C.ownerDocument.createElement("canvas");return N.width=C.offsetWidth,N.height=C.offsetHeight,N},M.prototype.appendChildNode=function(C,S,E){(!rd(S)||!function(M){return"SCRIPT"===M.tagName}(S)&&!S.hasAttribute(tu)&&("function"!=typeof this.options.ignoreElements||!this.options.ignoreElements(S)))&&(!this.options.copyStyles||!rd(S)||!$A(S))&&C.appendChild(this.cloneNode(S,E))},M.prototype.cloneChildNodes=function(C,S,E){for(var N=this,$=C.shadowRoot?C.shadowRoot.firstChild:C.firstChild;$;$=$.nextSibling)if(rd($)&&XA($)&&"function"==typeof $.assignedNodes){var se=$.assignedNodes();se.length&&se.forEach(function(xe){return N.appendChildNode(S,xe,E)})}else this.appendChildNode(S,$,E)},M.prototype.cloneNode=function(C,S){if(ty(C))return document.createTextNode(C.data);if(!C.ownerDocument)return C.cloneNode(!1);var E=C.ownerDocument.defaultView;if(E&&rd(C)&&($f(C)||wc(C))){var N=this.createElementClone(C);N.style.transitionProperty="none";var $=E.getComputedStyle(C),se=E.getComputedStyle(C,":before"),xe=E.getComputedStyle(C,":after");this.referenceElement===C&&$f(N)&&(this.clonedReferenceElement=N),Vl(N)&&s_(N);var ge=this.counters.parse(new Ai(this.context,$)),Xe=this.resolvePseudoContent(C,N,se,Vi.BEFORE);KA(C)&&(S=!0),od(C)||this.cloneChildNodes(C,N,S),Xe&&N.insertBefore(Xe,N.firstChild);var tt=this.resolvePseudoContent(C,N,xe,Vi.AFTER);return tt&&N.appendChild(tt),this.counters.pop(ge),($&&(this.options.copyStyles||wc(C))&&!Zd(C)||S)&&dd($,N),(0!==C.scrollTop||0!==C.scrollLeft)&&this.scrolledElements.push([N,C.scrollLeft,C.scrollTop]),(sd(C)||WA(C))&&(sd(N)||WA(N))&&(N.value=C.value),N}return C.cloneNode(!1)},M.prototype.resolvePseudoContent=function(C,S,E,N){var $=this;if(E){var se=E.content,xe=S.ownerDocument;if(xe&&se&&"none"!==se&&"-moz-alt-content"!==se&&"none"!==E.display){this.counters.parse(new Ai(this.context,E));var ge=new Xr(this.context,E),Xe=xe.createElement("html2canvaspseudoelement");dd(E,Xe),ge.content.forEach(function(mt){if(0===mt.type)Xe.appendChild(xe.createTextNode(mt.value));else if(22===mt.type){var bt=xe.createElement("img");bt.src=mt.value,bt.style.opacity="1",Xe.appendChild(bt)}else if(18===mt.type){if("attr"===mt.name){var yn=mt.values.filter(Wr);yn.length&&Xe.appendChild(xe.createTextNode(C.getAttribute(yn[0].value)||""))}else if("counter"===mt.name){var An=mt.values.filter(Ju),mi=An[1];if((Sn=An[0])&&Wr(Sn)){var Gn=$.counters.getCounterValue(Sn.value),ni=mi&&Wr(mi)?dl.parse($.context,mi.value):3;Xe.appendChild(xe.createTextNode(Cc(Gn,ni,!1)))}}else if("counters"===mt.name){var Sn,Dr=mt.values.filter(Ju),hi=Dr[1];if(mi=Dr[2],(Sn=Dr[0])&&Wr(Sn)){var Ci=$.counters.getCounterValues(Sn.value),Vn=mi&&Wr(mi)?dl.parse($.context,mi.value):3,mr=hi&&0===hi.type?hi.value:"",yr=Ci.map(function(Xs){return Cc(Xs,Vn,!1)}).join(mr);Xe.appendChild(xe.createTextNode(yr))}}}else if(20===mt.type)switch(mt.value){case"open-quote":Xe.appendChild(xe.createTextNode(oT(ge.quotes,$.quoteDepth++,!0)));break;case"close-quote":Xe.appendChild(xe.createTextNode(oT(ge.quotes,--$.quoteDepth,!1)));break;default:Xe.appendChild(xe.createTextNode(mt.value))}}),Xe.className=o_+" "+tm;var tt=N===Vi.BEFORE?" "+o_:" "+tm;return wc(S)?S.className.baseValue+=tt:S.className+=tt,Xe}}},M.destroy=function(C){return!!C.parentNode&&(C.parentNode.removeChild(C),!0)},M}(),Vi=function(M){return M[M.BEFORE=0]="BEFORE",M[M.AFTER=1]="AFTER",M}(Vi||{}),pC=function(M,C){var S=M.createElement("iframe");return S.className="html2canvas-container",S.style.visibility="hidden",S.style.position="fixed",S.style.left="-10000px",S.style.top="0px",S.style.border="0",S.width=C.width.toString(),S.height=C.height.toString(),S.scrolling="no",S.setAttribute(tu,"true"),M.body.appendChild(S),S},ry=function(M){return new Promise(function(C){M.complete?C():M.src?(M.onload=C,M.onerror=C):C()})},Yt=function(M){return Promise.all([].slice.call(M.images,0).map(ry))},AC=function(M){return new Promise(function(C,S){var E=M.contentWindow;if(!E)return S("No window assigned for iframe");var N=E.document;E.onload=M.onload=function(){E.onload=M.onload=null;var $=setInterval(function(){N.body.childNodes.length>0&&"complete"===N.readyState&&(clearInterval($),C(M))},50)}})},oy=["all","d","content"],dd=function(M,C){for(var S=M.length-1;S>=0;S--){var E=M.item(S);-1===oy.indexOf(E)&&C.style.setProperty(E,M.getPropertyValue(E))}return C},sy=function(M){var C="";return M&&(C+=""),C},r_=function(M,C,S){M&&M.defaultView&&(C!==M.defaultView.pageXOffset||S!==M.defaultView.pageYOffset)&&M.defaultView.scrollTo(C,S)},JA=function(M){var C=M[0],E=M[2];C.scrollLeft=M[1],C.scrollTop=E},o_="___html2canvas___pseudoelement_before",tm="___html2canvas___pseudoelement_after",ly='{\n content: "" !important;\n display: none !important;\n}',s_=function(M){a_(M,"."+o_+":before"+ly+"\n ."+tm+":after"+ly)},a_=function(M,C){var S=M.ownerDocument;if(S){var E=S.createElement("style");E.textContent=C,M.appendChild(E)}},l_=function(){function M(){}return M.getOrigin=function(C){var S=M._link;return S?(S.href=C,S.href=S.href,S.protocol+S.hostname+S.port):"about:blank"},M.isSameOrigin=function(C){return M.getOrigin(C)===M._origin},M.setContext=function(C){M._link=C.document.createElement("a"),M._origin=M.getOrigin(C.location.href)},M._origin="about:blank",M}(),mC=function(){function M(C,S){this.context=C,this._options=S,this._cache={}}return M.prototype.addImage=function(C){var S=Promise.resolve();return this.has(C)||(ch(C)||nm(C))&&(this._cache[C]=this.loadImage(C)).catch(function(){}),S},M.prototype.match=function(C){return this._cache[C]},M.prototype.loadImage=function(C){return o(this,void 0,void 0,function(){var S,E,N,$,se=this;return y(this,function(xe){switch(xe.label){case 0:return S=l_.isSameOrigin(C),E=!ps(C)&&!0===this._options.useCORS&&fs.SUPPORT_CORS_IMAGES&&!S,N=!ps(C)&&!S&&!ch(C)&&"string"==typeof this._options.proxy&&fs.SUPPORT_CORS_XHR&&!E,S||!1!==this._options.allowTaint||ps(C)||ch(C)||N||E?($=C,N?[4,this.proxy($)]:[3,2]):[2];case 1:$=xe.sent(),xe.label=2;case 2:return this.context.logger.debug("Added image "+C.substring(0,256)),[4,new Promise(function(ge,Xe){var tt=new Image;tt.onload=function(){return ge(tt)},tt.onerror=Xe,(GP($)||E)&&(tt.crossOrigin="anonymous"),tt.src=$,!0===tt.complete&&setTimeout(function(){return ge(tt)},500),se._options.imageTimeout>0&&setTimeout(function(){return Xe("Timed out ("+se._options.imageTimeout+"ms) loading image")},se._options.imageTimeout)})];case 3:return[2,xe.sent()]}})})},M.prototype.has=function(C){return typeof this._cache[C]<"u"},M.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},M.prototype.proxy=function(C){var S=this,E=this._options.proxy;if(!E)throw new Error("No proxy defined");var N=C.substring(0,256);return new Promise(function($,se){var xe=fs.SUPPORT_RESPONSE_TYPE?"blob":"text",ge=new XMLHttpRequest;ge.onload=function(){if(200===ge.status)if("text"===xe)$(ge.response);else{var mt=new FileReader;mt.addEventListener("load",function(){return $(mt.result)},!1),mt.addEventListener("error",function(bt){return se(bt)},!1),mt.readAsDataURL(ge.response)}else se("Failed to proxy resource "+N+" with status code "+ge.status)},ge.onerror=se;var Xe=E.indexOf("?")>-1?"&":"?";if(ge.open("GET",""+E+Xe+"url="+encodeURIComponent(C)+"&responseType="+xe),"text"!==xe&&ge instanceof XMLHttpRequest&&(ge.responseType=xe),S._options.imageTimeout){var tt=S._options.imageTimeout;ge.timeout=tt,ge.ontimeout=function(){return se("Timed out ("+tt+"ms) proxying "+N)}}ge.send()})},M}(),cy=/^data:image\/svg\+xml/i,zP=/^data:image\/.*;base64,/i,dy=/^data:image\/.*/i,nm=function(M){return fs.SUPPORT_SVG_DRAWING||!sn(M)},ps=function(M){return dy.test(M)},GP=function(M){return zP.test(M)},ch=function(M){return"blob"===M.substr(0,4)},sn=function(M){return"svg"===M.substr(-3).toLowerCase()||cy.test(M)},Bn=function(){function M(C,S){this.type=0,this.x=C,this.y=S}return M.prototype.add=function(C,S){return new M(this.x+C,this.y+S)},M}(),dh=function(M,C,S){return new Bn(M.x+(C.x-M.x)*S,M.y+(C.y-M.y)*S)},uh=function(){function M(C,S,E,N){this.type=1,this.start=C,this.startControl=S,this.endControl=E,this.end=N}return M.prototype.subdivide=function(C,S){var E=dh(this.start,this.startControl,C),N=dh(this.startControl,this.endControl,C),$=dh(this.endControl,this.end,C),se=dh(E,N,C),xe=dh(N,$,C),ge=dh(se,xe,C);return S?new M(this.start,E,se,ge):new M(ge,xe,$,this.end)},M.prototype.add=function(C,S){return new M(this.start.add(C,S),this.startControl.add(C,S),this.endControl.add(C,S),this.end.add(C,S))},M.prototype.reverse=function(){return new M(this.end,this.endControl,this.startControl,this.start)},M}(),Ta=function(M){return 1===M.type},hh=function(){return function M(C){var S=C.styles,E=C.bounds,N=vA(S.borderTopLeftRadius,E.width,E.height),$=N[0],se=N[1],xe=vA(S.borderTopRightRadius,E.width,E.height),ge=xe[0],Xe=xe[1],tt=vA(S.borderBottomRightRadius,E.width,E.height),mt=tt[0],bt=tt[1],yn=vA(S.borderBottomLeftRadius,E.width,E.height),An=yn[0],Sn=yn[1],mi=[];mi.push(($+ge)/E.width),mi.push((An+mt)/E.width),mi.push((se+Sn)/E.height),mi.push((Xe+bt)/E.height);var Gn=Math.max.apply(Math,mi);Gn>1&&($/=Gn,se/=Gn,ge/=Gn,Xe/=Gn,mt/=Gn,bt/=Gn,An/=Gn,Sn/=Gn);var ni=E.width-ge,Dr=E.height-bt,hi=E.width-mt,Ci=E.height-Sn,Vn=S.borderTopWidth,mr=S.borderRightWidth,yr=S.borderBottomWidth,Hi=S.borderLeftWidth,Qo=go(S.paddingTop,C.bounds.width),Xs=go(S.paddingRight,C.bounds.width),Ks=go(S.paddingBottom,C.bounds.width),$r=go(S.paddingLeft,C.bounds.width);this.topLeftBorderDoubleOuterBox=$>0||se>0?Eo(E.left+Hi/3,E.top+Vn/3,$-Hi/3,se-Vn/3,Kr.TOP_LEFT):new Bn(E.left+Hi/3,E.top+Vn/3),this.topRightBorderDoubleOuterBox=$>0||se>0?Eo(E.left+ni,E.top+Vn/3,ge-mr/3,Xe-Vn/3,Kr.TOP_RIGHT):new Bn(E.left+E.width-mr/3,E.top+Vn/3),this.bottomRightBorderDoubleOuterBox=mt>0||bt>0?Eo(E.left+hi,E.top+Dr,mt-mr/3,bt-yr/3,Kr.BOTTOM_RIGHT):new Bn(E.left+E.width-mr/3,E.top+E.height-yr/3),this.bottomLeftBorderDoubleOuterBox=An>0||Sn>0?Eo(E.left+Hi/3,E.top+Ci,An-Hi/3,Sn-yr/3,Kr.BOTTOM_LEFT):new Bn(E.left+Hi/3,E.top+E.height-yr/3),this.topLeftBorderDoubleInnerBox=$>0||se>0?Eo(E.left+2*Hi/3,E.top+2*Vn/3,$-2*Hi/3,se-2*Vn/3,Kr.TOP_LEFT):new Bn(E.left+2*Hi/3,E.top+2*Vn/3),this.topRightBorderDoubleInnerBox=$>0||se>0?Eo(E.left+ni,E.top+2*Vn/3,ge-2*mr/3,Xe-2*Vn/3,Kr.TOP_RIGHT):new Bn(E.left+E.width-2*mr/3,E.top+2*Vn/3),this.bottomRightBorderDoubleInnerBox=mt>0||bt>0?Eo(E.left+hi,E.top+Dr,mt-2*mr/3,bt-2*yr/3,Kr.BOTTOM_RIGHT):new Bn(E.left+E.width-2*mr/3,E.top+E.height-2*yr/3),this.bottomLeftBorderDoubleInnerBox=An>0||Sn>0?Eo(E.left+2*Hi/3,E.top+Ci,An-2*Hi/3,Sn-2*yr/3,Kr.BOTTOM_LEFT):new Bn(E.left+2*Hi/3,E.top+E.height-2*yr/3),this.topLeftBorderStroke=$>0||se>0?Eo(E.left+Hi/2,E.top+Vn/2,$-Hi/2,se-Vn/2,Kr.TOP_LEFT):new Bn(E.left+Hi/2,E.top+Vn/2),this.topRightBorderStroke=$>0||se>0?Eo(E.left+ni,E.top+Vn/2,ge-mr/2,Xe-Vn/2,Kr.TOP_RIGHT):new Bn(E.left+E.width-mr/2,E.top+Vn/2),this.bottomRightBorderStroke=mt>0||bt>0?Eo(E.left+hi,E.top+Dr,mt-mr/2,bt-yr/2,Kr.BOTTOM_RIGHT):new Bn(E.left+E.width-mr/2,E.top+E.height-yr/2),this.bottomLeftBorderStroke=An>0||Sn>0?Eo(E.left+Hi/2,E.top+Ci,An-Hi/2,Sn-yr/2,Kr.BOTTOM_LEFT):new Bn(E.left+Hi/2,E.top+E.height-yr/2),this.topLeftBorderBox=$>0||se>0?Eo(E.left,E.top,$,se,Kr.TOP_LEFT):new Bn(E.left,E.top),this.topRightBorderBox=ge>0||Xe>0?Eo(E.left+ni,E.top,ge,Xe,Kr.TOP_RIGHT):new Bn(E.left+E.width,E.top),this.bottomRightBorderBox=mt>0||bt>0?Eo(E.left+hi,E.top+Dr,mt,bt,Kr.BOTTOM_RIGHT):new Bn(E.left+E.width,E.top+E.height),this.bottomLeftBorderBox=An>0||Sn>0?Eo(E.left,E.top+Ci,An,Sn,Kr.BOTTOM_LEFT):new Bn(E.left,E.top+E.height),this.topLeftPaddingBox=$>0||se>0?Eo(E.left+Hi,E.top+Vn,Math.max(0,$-Hi),Math.max(0,se-Vn),Kr.TOP_LEFT):new Bn(E.left+Hi,E.top+Vn),this.topRightPaddingBox=ge>0||Xe>0?Eo(E.left+Math.min(ni,E.width-mr),E.top+Vn,ni>E.width+mr?0:Math.max(0,ge-mr),Math.max(0,Xe-Vn),Kr.TOP_RIGHT):new Bn(E.left+E.width-mr,E.top+Vn),this.bottomRightPaddingBox=mt>0||bt>0?Eo(E.left+Math.min(hi,E.width-Hi),E.top+Math.min(Dr,E.height-yr),Math.max(0,mt-mr),Math.max(0,bt-yr),Kr.BOTTOM_RIGHT):new Bn(E.left+E.width-mr,E.top+E.height-yr),this.bottomLeftPaddingBox=An>0||Sn>0?Eo(E.left+Hi,E.top+Math.min(Ci,E.height-yr),Math.max(0,An-Hi),Math.max(0,Sn-yr),Kr.BOTTOM_LEFT):new Bn(E.left+Hi,E.top+E.height-yr),this.topLeftContentBox=$>0||se>0?Eo(E.left+Hi+$r,E.top+Vn+Qo,Math.max(0,$-(Hi+$r)),Math.max(0,se-(Vn+Qo)),Kr.TOP_LEFT):new Bn(E.left+Hi+$r,E.top+Vn+Qo),this.topRightContentBox=ge>0||Xe>0?Eo(E.left+Math.min(ni,E.width+Hi+$r),E.top+Vn+Qo,ni>E.width+Hi+$r?0:ge-Hi+$r,Xe-(Vn+Qo),Kr.TOP_RIGHT):new Bn(E.left+E.width-(mr+Xs),E.top+Vn+Qo),this.bottomRightContentBox=mt>0||bt>0?Eo(E.left+Math.min(hi,E.width-(Hi+$r)),E.top+Math.min(Dr,E.height+Vn+Qo),Math.max(0,mt-(mr+Xs)),bt-(yr+Ks),Kr.BOTTOM_RIGHT):new Bn(E.left+E.width-(mr+Xs),E.top+E.height-(yr+Ks)),this.bottomLeftContentBox=An>0||Sn>0?Eo(E.left+Hi+$r,E.top+Ci,Math.max(0,An-(Hi+$r)),Sn-(yr+Ks),Kr.BOTTOM_LEFT):new Bn(E.left+Hi+$r,E.top+E.height-(yr+Ks))}}(),Kr=function(M){return M[M.TOP_LEFT=0]="TOP_LEFT",M[M.TOP_RIGHT=1]="TOP_RIGHT",M[M.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",M[M.BOTTOM_LEFT=3]="BOTTOM_LEFT",M}(Kr||{}),Eo=function(M,C,S,E,N){var $=(Math.sqrt(2)-1)/3*4,se=S*$,xe=E*$,ge=M+S,Xe=C+E;switch(N){case Kr.TOP_LEFT:return new uh(new Bn(M,Xe),new Bn(M,Xe-xe),new Bn(ge-se,C),new Bn(ge,C));case Kr.TOP_RIGHT:return new uh(new Bn(M,C),new Bn(M+se,C),new Bn(ge,Xe-xe),new Bn(ge,Xe));case Kr.BOTTOM_RIGHT:return new uh(new Bn(ge,C),new Bn(ge,C+xe),new Bn(M+se,Xe),new Bn(M,Xe));default:return new uh(new Bn(ge,Xe),new Bn(ge-se,Xe),new Bn(M,C+xe),new Bn(M,C))}},zl=function(M){return[M.topLeftBorderBox,M.topRightBorderBox,M.bottomRightBorderBox,M.bottomLeftBorderBox]},im=function(M){return[M.topLeftPaddingBox,M.topRightPaddingBox,M.bottomRightPaddingBox,M.bottomLeftPaddingBox]},Gl=function(){return function M(C,S,E){this.offsetX=C,this.offsetY=S,this.matrix=E,this.type=0,this.target=6}}(),ud=function(){return function M(C,S){this.path=C,this.target=S,this.type=1}}(),uy=function(){return function M(C){this.opacity=C,this.type=2,this.target=6}}(),gC=function(M){return 1===M.type},Zf=function(M,C){return M.length===C.length&&M.some(function(S,E){return S===C[E]})},so=function(){return function M(C){this.element=C,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}}(),fy=function(){function M(C,S){if(this.container=C,this.parent=S,this.effects=[],this.curves=new hh(this.container),this.container.styles.opacity<1&&this.effects.push(new uy(this.container.styles.opacity)),null!==this.container.styles.transform&&this.effects.push(new Gl(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 se=zl(this.curves),xe=im(this.curves);Zf(se,xe)?this.effects.push(new ud(se,6)):(this.effects.push(new ud(se,2)),this.effects.push(new ud(xe,4)))}}return M.prototype.getEffects=function(C){for(var S=-1===[2,3].indexOf(this.container.styles.position),E=this.parent,N=this.effects.slice(0);E;){var $=E.effects.filter(function(ge){return!gC(ge)});if(S||0!==E.container.styles.position||!E.parent){if(N.unshift.apply(N,$),S=-1===[2,3].indexOf(E.container.styles.position),0!==E.container.styles.overflowX){var se=zl(E.curves),xe=im(E.curves);Zf(se,xe)||N.unshift(new ud(xe,6))}}else N.unshift.apply(N,$);E=E.parent}return N.filter(function(ge){return Co(ge.target,C)})},M}(),Jf=function(M,C,S,E){M.container.elements.forEach(function(N){var $=Co(N.flags,4),se=Co(N.flags,2),xe=new fy(N,M);Co(N.styles.display,2048)&&E.push(xe);var ge=Co(N.flags,8)?[]:E;if($||se){var Xe=$||N.styles.isPositioned()?S:C,tt=new so(xe);if(N.styles.isPositioned()||N.styles.opacity<1||N.styles.isTransformed()){var mt=N.styles.zIndex.order;if(mt<0){var bt=0;Xe.negativeZIndex.some(function(An,Sn){return mt>An.element.container.styles.zIndex.order?(bt=Sn,!1):bt>0}),Xe.negativeZIndex.splice(bt,0,tt)}else if(mt>0){var yn=0;Xe.positiveZIndex.some(function(An,Sn){return mt>=An.element.container.styles.zIndex.order?(yn=Sn+1,!1):yn>0}),Xe.positiveZIndex.splice(yn,0,tt)}else Xe.zeroOrAutoZIndexOrTransformedOrOpacity.push(tt)}else N.styles.isFloating()?Xe.nonPositionedFloats.push(tt):Xe.nonPositionedInlineLevel.push(tt);Jf(xe,tt,$?tt:S,ge)}else N.styles.isInlineLevel()?C.inlineLevel.push(xe):C.nonInlineLevel.push(xe),Jf(xe,C,S,ge);Co(N.flags,8)&&py(N,ge)})},py=function(M,C){for(var S=M instanceof Rr?M.start:1,E=M instanceof Rr&&M.reversed,N=0;N"u"?M[0]:S},jP=function(M,C,S,E,N){var $=C[0],se=C[1],xe=S[0],ge=S[1];switch(M){case 2:return[new Bn(Math.round(E.left),Math.round(E.top+se)),new Bn(Math.round(E.left+E.width),Math.round(E.top+se)),new Bn(Math.round(E.left+E.width),Math.round(ge+E.top+se)),new Bn(Math.round(E.left),Math.round(ge+E.top+se))];case 3:return[new Bn(Math.round(E.left+$),Math.round(E.top)),new Bn(Math.round(E.left+$+xe),Math.round(E.top)),new Bn(Math.round(E.left+$+xe),Math.round(E.height+E.top)),new Bn(Math.round(E.left+$),Math.round(E.height+E.top))];case 1:return[new Bn(Math.round(E.left+$),Math.round(E.top+se)),new Bn(Math.round(E.left+$+xe),Math.round(E.top+se)),new Bn(Math.round(E.left+$+xe),Math.round(E.top+se+ge)),new Bn(Math.round(E.left+$),Math.round(E.top+se+ge))];default:return[new Bn(Math.round(N.left),Math.round(N.top)),new Bn(Math.round(N.left+N.width),Math.round(N.top)),new Bn(Math.round(N.left+N.width),Math.round(N.height+N.top)),new Bn(Math.round(N.left),Math.round(N.height+N.top))]}},vn="Hidden Text",Fi=function(){function M(C){this._data={},this._document=C}return M.prototype.parseMetrics=function(C,S){var E=this._document.createElement("div"),N=this._document.createElement("img"),$=this._document.createElement("span"),se=this._document.body;E.style.visibility="hidden",E.style.fontFamily=C,E.style.fontSize=S,E.style.margin="0",E.style.padding="0",E.style.whiteSpace="nowrap",se.appendChild(E),N.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",N.width=1,N.height=1,N.style.margin="0",N.style.padding="0",N.style.verticalAlign="baseline",$.style.fontFamily=C,$.style.fontSize=S,$.style.margin="0",$.style.padding="0",$.appendChild(this._document.createTextNode(vn)),E.appendChild($),E.appendChild(N);var xe=N.offsetTop-$.offsetTop+2;E.removeChild($),E.appendChild(this._document.createTextNode(vn)),E.style.lineHeight="normal",N.style.verticalAlign="super";var ge=N.offsetTop-E.offsetTop+2;return se.removeChild(E),{baseline:xe,middle:ge}},M.prototype.getMetrics=function(C,S){var E=C+" "+S;return typeof this._data[E]>"u"&&(this._data[E]=this.parseMetrics(C,S)),this._data[E]},M}(),Ec=function(){return function M(C,S){this.context=C,this.options=S}}(),hd=function(M){function C(S,E){var N=M.call(this,S,E)||this;return N._activeEffects=[],N.canvas=E.canvas?E.canvas:document.createElement("canvas"),N.ctx=N.canvas.getContext("2d"),E.canvas||(N.canvas.width=Math.floor(E.width*E.scale),N.canvas.height=Math.floor(E.height*E.scale),N.canvas.style.width=E.width+"px",N.canvas.style.height=E.height+"px"),N.fontMetrics=new Fi(document),N.ctx.scale(N.options.scale,N.options.scale),N.ctx.translate(-E.x,-E.y),N.ctx.textBaseline="bottom",N._activeEffects=[],N.context.logger.debug("Canvas renderer initialized ("+E.width+"x"+E.height+") with scale "+E.scale),N}return v(C,M),C.prototype.applyEffects=function(S){for(var E=this;this._activeEffects.length;)this.popEffect();S.forEach(function(N){return E.applyEffect(N)})},C.prototype.applyEffect=function(S){this.ctx.save(),function(M){return 2===M.type}(S)&&(this.ctx.globalAlpha=S.opacity),function(M){return 0===M.type}(S)&&(this.ctx.translate(S.offsetX,S.offsetY),this.ctx.transform(S.matrix[0],S.matrix[1],S.matrix[2],S.matrix[3],S.matrix[4],S.matrix[5]),this.ctx.translate(-S.offsetX,-S.offsetY)),gC(S)&&(this.path(S.path),this.ctx.clip()),this._activeEffects.push(S)},C.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},C.prototype.renderStack=function(S){return o(this,void 0,void 0,function(){return y(this,function(N){switch(N.label){case 0:return S.element.container.styles.isVisible()?[4,this.renderStackContent(S)]:[3,2];case 1:N.sent(),N.label=2;case 2:return[2]}})})},C.prototype.renderNode=function(S){return o(this,void 0,void 0,function(){return y(this,function(E){switch(E.label){case 0:return Co(S.container.flags,16),S.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(S)]:[3,3];case 1:return E.sent(),[4,this.renderNodeContent(S)];case 2:E.sent(),E.label=3;case 3:return[2]}})})},C.prototype.renderTextWithLetterSpacing=function(S,E,N){var $=this;0===E?this.ctx.fillText(S.text,S.bounds.left,S.bounds.top+N):Hf(S.text).reduce(function(xe,ge){return $.ctx.fillText(ge,xe,S.bounds.top+N),xe+$.ctx.measureText(ge).width},S.bounds.left)},C.prototype.createFontStyle=function(S){var E=S.fontVariant.filter(function(se){return"normal"===se||"small-caps"===se}).join(""),N=Zo(S.fontFamily).join(", "),$=Hd(S.fontSize)?""+S.fontSize.number+S.fontSize.unit:S.fontSize.number+"px";return[[S.fontStyle,E,S.fontWeight,$,N].join(" "),N,$]},C.prototype.renderTextNode=function(S,E){return o(this,void 0,void 0,function(){var N,se,xe,ge,Xe,tt,mt,bt=this;return y(this,function(yn){return N=this.createFontStyle(E),se=N[1],xe=N[2],this.ctx.font=N[0],this.ctx.direction=1===E.direction?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic",ge=this.fontMetrics.getMetrics(se,xe),Xe=ge.baseline,tt=ge.middle,mt=E.paintOrder,S.textBounds.forEach(function(An){mt.forEach(function(Sn){switch(Sn){case 0:bt.ctx.fillStyle=us(E.color),bt.renderTextWithLetterSpacing(An,E.letterSpacing,Xe);var mi=E.textShadow;mi.length&&An.text.trim().length&&(mi.slice(0).reverse().forEach(function(Gn){bt.ctx.shadowColor=us(Gn.color),bt.ctx.shadowOffsetX=Gn.offsetX.number*bt.options.scale,bt.ctx.shadowOffsetY=Gn.offsetY.number*bt.options.scale,bt.ctx.shadowBlur=Gn.blur.number,bt.renderTextWithLetterSpacing(An,E.letterSpacing,Xe)}),bt.ctx.shadowColor="",bt.ctx.shadowOffsetX=0,bt.ctx.shadowOffsetY=0,bt.ctx.shadowBlur=0),E.textDecorationLine.length&&(bt.ctx.fillStyle=us(E.textDecorationColor||E.color),E.textDecorationLine.forEach(function(Gn){switch(Gn){case 1:bt.ctx.fillRect(An.bounds.left,Math.round(An.bounds.top+Xe),An.bounds.width,1);break;case 2:bt.ctx.fillRect(An.bounds.left,Math.round(An.bounds.top),An.bounds.width,1);break;case 3:bt.ctx.fillRect(An.bounds.left,Math.ceil(An.bounds.top+tt),An.bounds.width,1)}}));break;case 1:E.webkitTextStrokeWidth&&An.text.trim().length&&(bt.ctx.strokeStyle=us(E.webkitTextStrokeColor),bt.ctx.lineWidth=E.webkitTextStrokeWidth,bt.ctx.lineJoin=window.chrome?"miter":"round",bt.ctx.strokeText(An.text,An.bounds.left,An.bounds.top+Xe)),bt.ctx.strokeStyle="",bt.ctx.lineWidth=0,bt.ctx.lineJoin="miter"}})}),[2]})})},C.prototype.renderReplacedElement=function(S,E,N){if(N&&S.intrinsicWidth>0&&S.intrinsicHeight>0){var $=sm(S),se=im(E);this.path(se),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(N,0,0,S.intrinsicWidth,S.intrinsicHeight,$.left,$.top,$.width,$.height),this.ctx.restore()}},C.prototype.renderNodeContent=function(S){return o(this,void 0,void 0,function(){var E,N,$,se,xe,tt,mt,bt,An,Sn,mi,Gn,ni,Dr,hi,Ci;return y(this,function(Vn){switch(Vn.label){case 0:this.applyEffects(S.getEffects(4)),N=S.curves,$=(E=S.container).styles,se=0,xe=E.textNodes,Vn.label=1;case 1:return se0&&Ic>0&&(Fc=$.ctx.createRadialGradient(Xs+So,Ks+la,0,Xs+So,Ks+la,Tc),Gd(tt.stops,2*Tc).forEach(function(tp){return Fc.addColorStop(tp.stop,us(tp.color))}),$.path(Qo),$.ctx.fillStyle=Fc,Tc!==Ic?(nu=S.bounds.left+.5*S.bounds.width,Ad=S.bounds.top+.5*S.bounds.height,Ls=1/(iu=Ic/Tc),$.ctx.save(),$.ctx.translate(nu,Ad),$.ctx.transform(1,0,0,iu,0,0),$.ctx.translate(-nu,-Ad),$.ctx.fillRect(Xs,Ls*(Ks-Ad)+Ad,$r,xs*Ls),$.ctx.restore()):$.ctx.fill())):(An=am(S,E,[null,null,null]),Qo=An[0],So=An[1],la=An[2],Sn=Xx(tt.angle,$r=An[3],xs=An[4]),mi=Sn[0],Gn=Sn[1],ni=Sn[2],Dr=Sn[3],hi=Sn[4],(Ci=document.createElement("canvas")).width=$r,Ci.height=xs,Vn=Ci.getContext("2d"),mr=Vn.createLinearGradient(Gn,Dr,ni,hi),Gd(tt.stops,mi).forEach(function(tp){return mr.addColorStop(tp.stop,us(tp.color))}),Vn.fillStyle=mr,Vn.fillRect(0,0,$r,xs),$r>0&&xs>0&&(yr=$.ctx.createPattern(Ci,"repeat"),$.renderRepeat(Qo,yr,So,la))),Dc.label=6;case 6:return E--,[2]}})},$=this,se=0,xe=S.styles.backgroundImage.slice(0).reverse(),Xe.label=1;case 1:return se0?2!==tt.style?[3,5]:[4,this.renderDashedDottedBorder(tt.color,tt.width,xe,S.curves,2)]:[3,11]:[3,13];case 4:return bt.sent(),[3,11];case 5:return 3!==tt.style?[3,7]:[4,this.renderDashedDottedBorder(tt.color,tt.width,xe,S.curves,3)];case 6:return bt.sent(),[3,11];case 7:return 4!==tt.style?[3,9]:[4,this.renderDoubleBorder(tt.color,tt.width,xe,S.curves)];case 8:return bt.sent(),[3,11];case 9:return[4,this.renderSolidBorder(tt.color,xe,S.curves)];case 10:bt.sent(),bt.label=11;case 11:xe++,bt.label=12;case 12:return ge++,[3,3];case 13:return[2]}})})},C.prototype.renderDashedDottedBorder=function(S,E,N,$,se){return o(this,void 0,void 0,function(){var xe,ge,Xe,tt,mt,bt,yn,An,Sn,mi,Gn,ni,Dr,hi,Ci,Vn;return y(this,function(mr){return this.ctx.save(),xe=function(M,C){switch(C){case 0:return om(M.topLeftBorderStroke,M.topRightBorderStroke);case 1:return om(M.topRightBorderStroke,M.bottomRightBorderStroke);case 2:return om(M.bottomRightBorderStroke,M.bottomLeftBorderStroke);default:return om(M.bottomLeftBorderStroke,M.topLeftBorderStroke)}}($,N),ge=fh($,N),2===se&&(this.path(ge),this.ctx.clip()),Ta(ge[0])?(Xe=ge[0].start.x,tt=ge[0].start.y):(Xe=ge[0].x,tt=ge[0].y),Ta(ge[1])?(mt=ge[1].end.x,bt=ge[1].end.y):(mt=ge[1].x,bt=ge[1].y),yn=0===N||2===N?Math.abs(Xe-mt):Math.abs(tt-bt),this.ctx.beginPath(),this.formatPath(3===se?xe:ge.slice(0,2)),An=E<3?3*E:2*E,Sn=E<3?2*E:E,3===se&&(An=E,Sn=E),mi=!0,yn<=2*An?mi=!1:yn<=2*An+Sn?(An*=Gn=yn/(2*An+Sn),Sn*=Gn):(ni=Math.floor((yn+Sn)/(An+Sn)),Dr=(yn-ni*An)/(ni-1),Sn=(hi=(yn-(ni+1)*An)/ni)<=0||Math.abs(Sn-Dr){function Ee(Le){return Array.isArray(Le)?Le:[Le]}const y=/^\s+$/,Z=/(?:[^\\]|^)\\$/,U=/^\\!/,L=/^\\#/,Y=/\r?\n/g,V=/^\.*\/|^\.+$/;let z="node-ignore";typeof Symbol<"u"&&(z=Symbol.for("node-ignore"));const G=z,ne=/([0-z])-([0-z])/g,re=()=>!1,Be=[[/^\uFEFF/,()=>""],[/((?:\\\\)*?)(\\?\s+)$/,(Le,pt,xt)=>pt+(0===xt.indexOf("\\")?" ":"")],[/(\\+?)\s/g,(Le,pt)=>{const{length:xt}=pt;return pt.slice(0,xt-xt%2)+" "}],[/[\\$.|*+(){^]/g,Le=>`\\${Le}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(Le,pt,xt)=>pt+6pt+xt.replace(/\\\*/g,"[^\\/]*")],[/\\\\\\(?=[$.|*+(){^])/g,()=>"\\"],[/\\\\/g,()=>"\\"],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(Le,pt,xt,Ut,Pt)=>"\\"===pt?`\\[${xt}${(Le=>{const{length:pt}=Le;return Le.slice(0,pt-pt%2)})(Ut)}${Pt}`:"]"===Pt&&Ut.length%2==0?`[${(Le=>Le.replace(ne,(pt,xt,Ut)=>xt.charCodeAt(0)<=Ut.charCodeAt(0)?pt:""))(xt)}${Ut}]`:"[]"],[/(?:[^*])$/,Le=>/\/$/.test(Le)?`${Le}$`:`${Le}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(Le,pt)=>(pt?`${pt}[^/]+`:"[^/]*")+"(?=$|\\/$)"]],Ie=Object.create(null),Je=Le=>"string"==typeof Le;class $e{constructor(pt,xt,Ut,Pt){this.origin=pt,this.pattern=xt,this.negative=Ut,this.regex=Pt}}const at=(Le,pt)=>{throw new pt(Le)},We=(Le,pt,xt)=>Je(Le)?Le?!We.isNotRelative(Le)||xt(`path should be a \`path.relative()\`d string, but got "${pt}"`,RangeError):xt("path must not be empty",TypeError):xt(`path must be a string, but got \`${pt}\``,TypeError),ve=Le=>V.test(Le);We.isNotRelative=ve,We.convert=Le=>Le;class he{constructor({ignorecase:pt=!0,ignoreCase:xt=pt,allowRelativePaths:Ut=!1}={}){((Le,pt)=>{Object.defineProperty(this,pt,{value:!0})})(0,G),this._rules=[],this._ignoreCase=xt,this._allowRelativePaths=Ut,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(pt){if(pt&&pt[G])return this._rules=this._rules.concat(pt._rules),void(this._added=!0);if((Le=pt)&&Je(Le)&&!y.test(Le)&&!Z.test(Le)&&0!==Le.indexOf("#")){const xt=((Le,pt)=>{const xt=Le;let Ut=!1;0===Le.indexOf("!")&&(Ut=!0,Le=Le.substr(1));const Pt=((Le,pt)=>{let xt=Ie[Le];return xt||(xt=Be.reduce((Ut,[Pt,fn])=>Ut.replace(Pt,fn.bind(Le)),Le),Ie[Le]=xt),pt?new RegExp(xt,"i"):new RegExp(xt)})(Le=Le.replace(U,"!").replace(L,"#"),pt);return new $e(xt,Le,Ut,Pt)})(pt,this._ignoreCase);this._added=!0,this._rules.push(xt)}var Le}add(pt){return this._added=!1,Ee(Je(pt)?(Le=pt,Le.split(Y)):pt).forEach(this._addPattern,this),this._added&&this._initCache(),this;var Le}addPattern(pt){return this.add(pt)}_testOne(pt,xt){let Ut=!1,Pt=!1;return this._rules.forEach(fn=>{const{negative:jn}=fn;Pt===jn&&Ut!==Pt||jn&&!Ut&&!Pt&&!xt||fn.regex.test(pt)&&(Ut=!jn,Pt=jn)}),{ignored:Ut,unignored:Pt}}_test(pt,xt,Ut,Pt){const fn=pt&&We.convert(pt);return We(fn,pt,this._allowRelativePaths?re:at),this._t(fn,xt,Ut,Pt)}_t(pt,xt,Ut,Pt){if(pt in xt)return xt[pt];if(Pt||(Pt=pt.split("/")),Pt.pop(),!Pt.length)return xt[pt]=this._testOne(pt,Ut);const fn=this._t(Pt.join("/")+"/",xt,Ut,Pt);return xt[pt]=fn.ignored?fn:this._testOne(pt,Ut)}ignores(pt){return this._test(pt,this._ignoreCache,!1).ignored}createFilter(){return pt=>!this.ignores(pt)}filter(pt){return Ee(pt).filter(this.createFilter())}test(pt){return this._test(pt,this._testCache,!0)}}const Qe=Le=>new he(Le);if(Qe.isPathValid=Le=>We(Le&&We.convert(Le),Le,re),Qe.default=Qe,nt.exports=Qe,typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||"win32"===process.platform)){We.convert=xt=>/^\\\\\?\\/.test(xt)||/["<>|\u0000-\u001F]+/u.test(xt)?xt:xt.replace(/\\/g,"/");const pt=/^[a-z]:\//i;We.isNotRelative=xt=>pt.test(xt)||ve(xt)}},8749:nt=>{function Ee(j){return!!j.constructor&&"function"==typeof j.constructor.isBuffer&&j.constructor.isBuffer(j)}nt.exports=function(j){return null!=j&&(Ee(j)||function v(j){return"function"==typeof j.readFloatLE&&"function"==typeof j.slice&&Ee(j.slice(0,0))}(j)||!!j._isBuffer)}},4331:nt=>{"use strict";var Ee=nt.exports=function(o,y,Z){"function"==typeof y&&(Z=y,y={}),v(y,"function"==typeof(Z=y.cb||Z)?Z:Z.pre||function(){},Z.post||function(){},o,"",o)};function v(o,y,Z,U,L,Y,V,X,z,G){if(U&&"object"==typeof U&&!Array.isArray(U)){for(var Q in y(U,L,Y,V,X,z,G),U){var ne=U[Q];if(Array.isArray(ne)){if(Q in Ee.arrayKeywords)for(var re=0;re{var j,o,y,Z,U;j=v(9928),o=v(7468).utf8,y=v(8749),Z=v(7468).bin,(U=function(L,Y){L.constructor==String?L=Y&&"binary"===Y.encoding?Z.stringToBytes(L):o.stringToBytes(L):y(L)?L=Array.prototype.slice.call(L,0):!Array.isArray(L)&&L.constructor!==Uint8Array&&(L=L.toString());for(var V=j.bytesToWords(L),X=8*L.length,z=1732584193,G=-271733879,Q=-1732584194,ne=271733878,re=0;re>>24)|4278255360&(V[re]<<24|V[re]>>>8);V[X>>>5]|=128<>>9<<4)]=X;var me=U._ff,we=U._gg,Be=U._hh,Ie=U._ii;for(re=0;re>>0,G=G+Je>>>0,Q=Q+He>>>0,ne=ne+qe>>>0}return j.endian([z,G,Q,ne])})._ff=function(L,Y,V,X,z,G,Q){var ne=L+(Y&V|~Y&X)+(z>>>0)+Q;return(ne<>>32-G)+Y},U._gg=function(L,Y,V,X,z,G,Q){var ne=L+(Y&X|V&~X)+(z>>>0)+Q;return(ne<>>32-G)+Y},U._hh=function(L,Y,V,X,z,G,Q){var ne=L+(Y^V^X)+(z>>>0)+Q;return(ne<>>32-G)+Y},U._ii=function(L,Y,V,X,z,G,Q){var ne=L+(V^(Y|~X))+(z>>>0)+Q;return(ne<>>32-G)+Y},U._blocksize=16,U._digestsize=16,nt.exports=function(L,Y){if(null==L)throw new Error("Illegal argument "+L);var V=j.wordsToBytes(U(L,Y));return Y&&Y.asBytes?V:Y&&Y.asString?Z.bytesToString(V):j.bytesToHex(V)}},8314:(nt,Ee,v)=>{const o=v(2836),y=v(9460),Z=v(7030),U=v(6511);function L(Y,V,X,z,G){const Q=[].slice.call(arguments,1),ne=Q.length,re="function"==typeof Q[ne-1];if(!re&&!o())throw new Error("Callback required as last argument");if(!re){if(ne<1)throw new Error("Too few arguments provided");return 1===ne?(X=V,V=z=void 0):2===ne&&!V.getContext&&(z=X,X=V,V=void 0),new Promise(function(me,we){try{const Be=y.create(X,z);me(Y(Be,V,z))}catch(Be){we(Be)}})}if(ne<2)throw new Error("Too few arguments provided");2===ne?(G=X,X=V,V=z=void 0):3===ne&&(V.getContext&&typeof G>"u"?(G=z,z=void 0):(G=z,z=X,X=V,V=void 0));try{const me=y.create(X,z);G(null,Y(me,V,z))}catch(me){G(me)}}Ee.mo=L.bind(null,Z.render),L.bind(null,Z.renderToDataURL),L.bind(null,function(Y,V,X){return U.render(Y,X)})},2836:nt=>{nt.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},6214:(nt,Ee,v)=>{const j=v(9089).getSymbolSize;Ee.getRowColCoords=function(y){if(1===y)return[];const Z=Math.floor(y/7)+2,U=j(y),L=145===U?26:2*Math.ceil((U-13)/(2*Z-2)),Y=[U-7];for(let V=1;V{const j=v(4058),o=["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 y(Z){this.mode=j.ALPHANUMERIC,this.data=Z}y.getBitsLength=function(U){return 11*Math.floor(U/2)+U%2*6},y.prototype.getLength=function(){return this.data.length},y.prototype.getBitsLength=function(){return y.getBitsLength(this.data.length)},y.prototype.write=function(U){let L;for(L=0;L+2<=this.data.length;L+=2){let Y=45*o.indexOf(this.data[L]);Y+=o.indexOf(this.data[L+1]),U.put(Y,11)}this.data.length%2&&U.put(o.indexOf(this.data[L]),6)},nt.exports=y},4662:nt=>{function Ee(){this.buffer=[],this.length=0}Ee.prototype={get:function(v){const j=Math.floor(v/8);return 1==(this.buffer[j]>>>7-v%8&1)},put:function(v,j){for(let o=0;o>>j-o-1&1))},getLengthInBits:function(){return this.length},putBit:function(v){const j=Math.floor(this.length/8);this.buffer.length<=j&&this.buffer.push(0),v&&(this.buffer[j]|=128>>>this.length%8),this.length++}},nt.exports=Ee},5941:nt=>{function Ee(v){if(!v||v<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=v,this.data=new Uint8Array(v*v),this.reservedBit=new Uint8Array(v*v)}Ee.prototype.set=function(v,j,o,y){const Z=v*this.size+j;this.data[Z]=o,y&&(this.reservedBit[Z]=!0)},Ee.prototype.get=function(v,j){return this.data[v*this.size+j]},Ee.prototype.xor=function(v,j,o){this.data[v*this.size+j]^=o},Ee.prototype.isReserved=function(v,j){return this.reservedBit[v*this.size+j]},nt.exports=Ee},4969:(nt,Ee,v)=>{const j=v(4058);function o(y){this.mode=j.BYTE,this.data="string"==typeof y?(new TextEncoder).encode(y):new Uint8Array(y)}o.getBitsLength=function(Z){return 8*Z},o.prototype.getLength=function(){return this.data.length},o.prototype.getBitsLength=function(){return o.getBitsLength(this.data.length)},o.prototype.write=function(y){for(let Z=0,U=this.data.length;Z{const j=v(7424),o=[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],y=[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];Ee.getBlocksCount=function(U,L){switch(L){case j.L:return o[4*(U-1)+0];case j.M:return o[4*(U-1)+1];case j.Q:return o[4*(U-1)+2];case j.H:return o[4*(U-1)+3];default:return}},Ee.getTotalCodewordsCount=function(U,L){switch(L){case j.L:return y[4*(U-1)+0];case j.M:return y[4*(U-1)+1];case j.Q:return y[4*(U-1)+2];case j.H:return y[4*(U-1)+3];default:return}}},7424:(nt,Ee)=>{Ee.L={bit:1},Ee.M={bit:0},Ee.Q={bit:3},Ee.H={bit:2},Ee.isValid=function(o){return o&&typeof o.bit<"u"&&o.bit>=0&&o.bit<4},Ee.from=function(o,y){if(Ee.isValid(o))return o;try{return function v(j){if("string"!=typeof j)throw new Error("Param is not a string");switch(j.toLowerCase()){case"l":case"low":return Ee.L;case"m":case"medium":return Ee.M;case"q":case"quartile":return Ee.Q;case"h":case"high":return Ee.H;default:throw new Error("Unknown EC Level: "+j)}}(o)}catch{return y}}},6269:(nt,Ee,v)=>{const j=v(9089).getSymbolSize;Ee.getPositions=function(Z){const U=j(Z);return[[0,0],[U-7,0],[0,U-7]]}},6254:(nt,Ee,v)=>{const j=v(9089),Z=j.getBCHDigit(1335);Ee.getEncodedBits=function(L,Y){const V=L.bit<<3|Y;let X=V<<10;for(;j.getBCHDigit(X)-Z>=0;)X^=1335<{const v=new Uint8Array(512),j=new Uint8Array(256);(function(){let y=1;for(let Z=0;Z<255;Z++)v[Z]=y,j[y]=Z,y<<=1,256&y&&(y^=285);for(let Z=255;Z<512;Z++)v[Z]=v[Z-255]})(),Ee.log=function(y){if(y<1)throw new Error("log("+y+")");return j[y]},Ee.exp=function(y){return v[y]},Ee.mul=function(y,Z){return 0===y||0===Z?0:v[j[y]+j[Z]]}},3264:(nt,Ee,v)=>{const j=v(4058),o=v(9089);function y(Z){this.mode=j.KANJI,this.data=Z}y.getBitsLength=function(U){return 13*U},y.prototype.getLength=function(){return this.data.length},y.prototype.getBitsLength=function(){return y.getBitsLength(this.data.length)},y.prototype.write=function(Z){let U;for(U=0;U=33088&&L<=40956)L-=33088;else{if(!(L>=57408&&L<=60351))throw new Error("Invalid SJIS character: "+this.data[U]+"\nMake sure your charset is UTF-8");L-=49472}L=192*(L>>>8&255)+(255&L),Z.put(L,13)}},nt.exports=y},3361:(nt,Ee)=>{Ee.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};function j(o,y,Z){switch(o){case Ee.Patterns.PATTERN000:return(y+Z)%2==0;case Ee.Patterns.PATTERN001:return y%2==0;case Ee.Patterns.PATTERN010:return Z%3==0;case Ee.Patterns.PATTERN011:return(y+Z)%3==0;case Ee.Patterns.PATTERN100:return(Math.floor(y/2)+Math.floor(Z/3))%2==0;case Ee.Patterns.PATTERN101:return y*Z%2+y*Z%3==0;case Ee.Patterns.PATTERN110:return(y*Z%2+y*Z%3)%2==0;case Ee.Patterns.PATTERN111:return(y*Z%3+(y+Z)%2)%2==0;default:throw new Error("bad maskPattern:"+o)}}Ee.isValid=function(y){return null!=y&&""!==y&&!isNaN(y)&&y>=0&&y<=7},Ee.from=function(y){return Ee.isValid(y)?parseInt(y,10):void 0},Ee.getPenaltyN1=function(y){const Z=y.size;let U=0,L=0,Y=0,V=null,X=null;for(let z=0;z=5&&(U+=L-5+3),V=Q,L=1),Q=y.get(G,z),Q===X?Y++:(Y>=5&&(U+=Y-5+3),X=Q,Y=1)}L>=5&&(U+=L-5+3),Y>=5&&(U+=Y-5+3)}return U},Ee.getPenaltyN2=function(y){const Z=y.size;let U=0;for(let L=0;L=10&&(1488===L||93===L)&&U++,Y=Y<<1&2047|y.get(X,V),X>=10&&(1488===Y||93===Y)&&U++}return 40*U},Ee.getPenaltyN4=function(y){let Z=0;const U=y.data.length;for(let Y=0;Y{const j=v(377),o=v(9359);Ee.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},Ee.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},Ee.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},Ee.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},Ee.MIXED={bit:-1},Ee.getCharCountIndicator=function(U,L){if(!U.ccBits)throw new Error("Invalid mode: "+U);if(!j.isValid(L))throw new Error("Invalid version: "+L);return L>=1&&L<10?U.ccBits[0]:L<27?U.ccBits[1]:U.ccBits[2]},Ee.getBestModeForData=function(U){return o.testNumeric(U)?Ee.NUMERIC:o.testAlphanumeric(U)?Ee.ALPHANUMERIC:o.testKanji(U)?Ee.KANJI:Ee.BYTE},Ee.toString=function(U){if(U&&U.id)return U.id;throw new Error("Invalid mode")},Ee.isValid=function(U){return U&&U.bit&&U.ccBits},Ee.from=function(U,L){if(Ee.isValid(U))return U;try{return function y(Z){if("string"!=typeof Z)throw new Error("Param is not a string");switch(Z.toLowerCase()){case"numeric":return Ee.NUMERIC;case"alphanumeric":return Ee.ALPHANUMERIC;case"kanji":return Ee.KANJI;case"byte":return Ee.BYTE;default:throw new Error("Unknown mode: "+Z)}}(U)}catch{return L}}},6628:(nt,Ee,v)=>{const j=v(4058);function o(y){this.mode=j.NUMERIC,this.data=y.toString()}o.getBitsLength=function(Z){return 10*Math.floor(Z/3)+(Z%3?Z%3*3+1:0)},o.prototype.getLength=function(){return this.data.length},o.prototype.getBitsLength=function(){return o.getBitsLength(this.data.length)},o.prototype.write=function(Z){let U,L,Y;for(U=0;U+3<=this.data.length;U+=3)L=this.data.substr(U,3),Y=parseInt(L,10),Z.put(Y,10);const V=this.data.length-U;V>0&&(L=this.data.substr(U),Y=parseInt(L,10),Z.put(Y,3*V+1))},nt.exports=o},1744:(nt,Ee,v)=>{const j=v(6686);Ee.mul=function(y,Z){const U=new Uint8Array(y.length+Z.length-1);for(let L=0;L=0;){const L=U[0];for(let V=0;V{const j=v(9089),o=v(7424),y=v(4662),Z=v(5941),U=v(6214),L=v(6269),Y=v(3361),V=v(3677),X=v(6289),z=v(1252),G=v(6254),Q=v(4058),ne=v(2868);function Ie($e,je,at){const We=$e.size,ve=G.getEncodedBits(je,at);let he,Qe;for(he=0;he<15;he++)Qe=1==(ve>>he&1),$e.set(he<6?he:he<8?he+1:We-15+he,8,Qe,!0),$e.set(8,he<8?We-he-1:he<9?15-he-1+1:15-he-1,Qe,!0);$e.set(We-8,8,1,!0)}function qe($e,je,at,We){let ve;if(Array.isArray($e))ve=ne.fromArray($e);else{if("string"!=typeof $e)throw new Error("Invalid data");{let pt=je;if(!pt){const xt=ne.rawSplit($e);pt=z.getBestVersionForData(xt,at)}ve=ne.fromString($e,pt||40)}}const he=z.getBestVersionForData(ve,at);if(!he)throw new Error("The amount of data is too big to be stored in a QR Code");if(je){if(je=0&&Te<=6&&(0===Le||6===Le)||Le>=0&&Le<=6&&(0===Te||6===Te)||Te>=2&&Te<=4&&Le>=2&&Le<=4,!0)}}(Le,je),function me($e){const je=$e.size;for(let at=8;at=7&&function Be($e,je){const at=$e.size,We=z.getEncodedBits(je);let ve,he,Qe;for(let Te=0;Te<18;Te++)ve=Math.floor(Te/3),he=Te%3+at-8-3,Qe=1==(We>>Te&1),$e.set(ve,he,Qe,!0),$e.set(he,ve,Qe,!0)}(Le,je),function Ne($e,je){const at=$e.size;let We=-1,ve=at-1,he=7,Qe=0;for(let Te=at-1;Te>0;Te-=2)for(6===Te&&Te--;;){for(let Le=0;Le<2;Le++)if(!$e.isReserved(ve,Te-Le)){let pt=!1;Qe>>he&1)),$e.set(ve,Te-Le,pt),he--,-1===he&&(Qe++,he=7)}if(ve+=We,ve<0||at<=ve){ve-=We,We=-We;break}}}(Le,Qe),isNaN(We)&&(We=Y.getBestMask(Le,Ie.bind(null,Le,at))),Y.applyMask(We,Le),Ie(Le,at,We),{modules:Le,version:je,errorCorrectionLevel:at,maskPattern:We,segments:ve}}Ee.create=function(je,at){if(typeof je>"u"||""===je)throw new Error("No input text");let ve,he,We=o.M;return typeof at<"u"&&(We=o.from(at.errorCorrectionLevel,o.M),ve=z.from(at.version),he=Y.from(at.maskPattern),at.toSJISFunc&&j.setToSJISFunction(at.toSJISFunc)),qe(je,ve,We,he)}},6289:(nt,Ee,v)=>{const j=v(1744);function o(y){this.genPoly=void 0,this.degree=y,this.degree&&this.initialize(this.degree)}o.prototype.initialize=function(Z){this.degree=Z,this.genPoly=j.generateECPolynomial(this.degree)},o.prototype.encode=function(Z){if(!this.genPoly)throw new Error("Encoder not initialized");const U=new Uint8Array(Z.length+this.degree);U.set(Z);const L=j.mod(U,this.genPoly),Y=this.degree-L.length;if(Y>0){const V=new Uint8Array(this.degree);return V.set(L,Y),V}return L},nt.exports=o},9359:(nt,Ee)=>{const v="[0-9]+";let o="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";o=o.replace(/u/g,"\\u");const y="(?:(?![A-Z0-9 $%*+\\-./:]|"+o+")(?:.|[\r\n]))+";Ee.KANJI=new RegExp(o,"g"),Ee.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),Ee.BYTE=new RegExp(y,"g"),Ee.NUMERIC=new RegExp(v,"g"),Ee.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");const Z=new RegExp("^"+o+"$"),U=new RegExp("^"+v+"$"),L=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");Ee.testKanji=function(V){return Z.test(V)},Ee.testNumeric=function(V){return U.test(V)},Ee.testAlphanumeric=function(V){return L.test(V)}},2868:(nt,Ee,v)=>{const j=v(4058),o=v(6628),y=v(1018),Z=v(4969),U=v(3264),L=v(9359),Y=v(9089),V=v(243);function X(Be){return unescape(encodeURIComponent(Be)).length}function z(Be,Ie,Ne){const Je=[];let He;for(;null!==(He=Be.exec(Ne));)Je.push({data:He[0],index:He.index,mode:Ie,length:He[0].length});return Je}function G(Be){const Ie=z(L.NUMERIC,j.NUMERIC,Be),Ne=z(L.ALPHANUMERIC,j.ALPHANUMERIC,Be);let Je,He;return Y.isKanjiModeEnabled()?(Je=z(L.BYTE,j.BYTE,Be),He=z(L.KANJI,j.KANJI,Be)):(Je=z(L.BYTE_KANJI,j.BYTE,Be),He=[]),Ie.concat(Ne,Je,He).sort(function($e,je){return $e.index-je.index}).map(function($e){return{data:$e.data,mode:$e.mode,length:$e.length}})}function Q(Be,Ie){switch(Ie){case j.NUMERIC:return o.getBitsLength(Be);case j.ALPHANUMERIC:return y.getBitsLength(Be);case j.KANJI:return U.getBitsLength(Be);case j.BYTE:return Z.getBitsLength(Be)}}function we(Be,Ie){let Ne;const Je=j.getBestModeForData(Be);if(Ne=j.from(Ie,Je),Ne!==j.BYTE&&Ne.bit=0?Ie[Ie.length-1]:null;return Je&&Je.mode===Ne.mode?(Ie[Ie.length-1].data+=Ne.data,Ie):(Ie.push(Ne),Ie)},[])}(je))},Ee.rawSplit=function(Ie){return Ee.fromArray(G(Ie,Y.isKanjiModeEnabled()))}},9089:(nt,Ee)=>{let v;const j=[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];Ee.getSymbolSize=function(y){if(!y)throw new Error('"version" cannot be null or undefined');if(y<1||y>40)throw new Error('"version" should be in range from 1 to 40');return 4*y+17},Ee.getSymbolTotalCodewords=function(y){return j[y]},Ee.getBCHDigit=function(o){let y=0;for(;0!==o;)y++,o>>>=1;return y},Ee.setToSJISFunction=function(y){if("function"!=typeof y)throw new Error('"toSJISFunc" is not a valid function.');v=y},Ee.isKanjiModeEnabled=function(){return typeof v<"u"},Ee.toSJIS=function(y){return v(y)}},377:(nt,Ee)=>{Ee.isValid=function(j){return!isNaN(j)&&j>=1&&j<=40}},1252:(nt,Ee,v)=>{const j=v(9089),o=v(3677),y=v(7424),Z=v(4058),U=v(377),Y=j.getBCHDigit(7973);function X(Q,ne){return Z.getCharCountIndicator(Q,ne)+4}function z(Q,ne){let re=0;return Q.forEach(function(me){const we=X(me.mode,ne);re+=we+me.getBitsLength()}),re}Ee.from=function(ne,re){return U.isValid(ne)?parseInt(ne,10):re},Ee.getCapacity=function(ne,re,me){if(!U.isValid(ne))throw new Error("Invalid QR Code version");typeof me>"u"&&(me=Z.BYTE);const Ie=8*(j.getSymbolTotalCodewords(ne)-o.getTotalCodewordsCount(ne,re));if(me===Z.MIXED)return Ie;const Ne=Ie-X(me,ne);switch(me){case Z.NUMERIC:return Math.floor(Ne/10*3);case Z.ALPHANUMERIC:return Math.floor(Ne/11*2);case Z.KANJI:return Math.floor(Ne/13);default:return Math.floor(Ne/8)}},Ee.getBestVersionForData=function(ne,re){let me;const we=y.from(re,y.M);if(Array.isArray(ne)){if(ne.length>1)return function G(Q,ne){for(let re=1;re<=40;re++)if(z(Q,re)<=Ee.getCapacity(re,ne,Z.MIXED))return re}(ne,we);if(0===ne.length)return 1;me=ne[0]}else me=ne;return function V(Q,ne,re){for(let me=1;me<=40;me++)if(ne<=Ee.getCapacity(me,re,Q))return me}(me.mode,me.getLength(),we)},Ee.getEncodedBits=function(ne){if(!U.isValid(ne)||ne<7)throw new Error("Invalid QR Code version");let re=ne<<12;for(;j.getBCHDigit(re)-Y>=0;)re^=7973<{const j=v(7077);Ee.render=function(U,L,Y){let V=Y,X=L;typeof V>"u"&&(!L||!L.getContext)&&(V=L,L=void 0),L||(X=function y(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}()),V=j.getOptions(V);const z=j.getImageWidth(U.modules.size,V),G=X.getContext("2d"),Q=G.createImageData(z,z);return j.qrToImageData(Q.data,U,V),function o(Z,U,L){Z.clearRect(0,0,U.width,U.height),U.style||(U.style={}),U.height=L,U.width=L,U.style.height=L+"px",U.style.width=L+"px"}(G,X,z),G.putImageData(Q,0,0),X},Ee.renderToDataURL=function(U,L,Y){let V=Y;return typeof V>"u"&&(!L||!L.getContext)&&(V=L,L=void 0),V||(V={}),Ee.render(U,L,V).toDataURL(V.type||"image/png",(V.rendererOpts||{}).quality)}},6511:(nt,Ee,v)=>{const j=v(7077);function o(U,L){const Y=U.a/255,V=L+'="'+U.hex+'"';return Y<1?V+" "+L+'-opacity="'+Y.toFixed(2).slice(1)+'"':V}function y(U,L,Y){let V=U+L;return typeof Y<"u"&&(V+=" "+Y),V}Ee.render=function(L,Y,V){const X=j.getOptions(Y),z=L.modules.size,G=L.modules.data,Q=z+2*X.margin,ne=X.color.light.a?"':"",re="0&&ne>0&&U[Q-1]||(V+=z?y("M",ne+Y,.5+re+Y):y("m",X,0),X=0,z=!1),ne+1',Be=''+ne+re+"\n";return"function"==typeof V&&V(null,Be),Be}},7077:(nt,Ee)=>{function v(j){if("number"==typeof j&&(j=j.toString()),"string"!=typeof j)throw new Error("Color should be defined as hex string");let o=j.slice().replace("#","").split("");if(o.length<3||5===o.length||o.length>8)throw new Error("Invalid hex color: "+j);(3===o.length||4===o.length)&&(o=Array.prototype.concat.apply([],o.map(function(Z){return[Z,Z]}))),6===o.length&&o.push("F","F");const y=parseInt(o.join(""),16);return{r:y>>24&255,g:y>>16&255,b:y>>8&255,a:255&y,hex:"#"+o.slice(0,6).join("")}}Ee.getOptions=function(o){o||(o={}),o.color||(o.color={});const Z=o.width&&o.width>=21?o.width:void 0;return{width:Z,scale:Z?4:o.scale||4,margin:typeof o.margin>"u"||null===o.margin||o.margin<0?4:o.margin,color:{dark:v(o.color.dark||"#000000ff"),light:v(o.color.light||"#ffffffff")},type:o.type,rendererOpts:o.rendererOpts||{}}},Ee.getScale=function(o,y){return y.width&&y.width>=o+2*y.margin?y.width/(o+2*y.margin):y.scale},Ee.getImageWidth=function(o,y){const Z=Ee.getScale(o,y);return Math.floor((o+2*y.margin)*Z)},Ee.qrToImageData=function(o,y,Z){const U=y.modules.size,L=y.modules.data,Y=Ee.getScale(U,Z),V=Math.floor((U+2*Z.margin)*Y),X=Z.margin*Y,z=[Z.color.light,Z.color.dark];for(let G=0;G=X&&Q>=X&&G{"use strict";v.d(Ee,{t:()=>o});var j=v(1413);class o extends j.B{constructor(Z){super(),this._value=Z}get value(){return this.getValue()}_subscribe(Z){const U=super._subscribe(Z);return!U.closed&&Z.next(this._value),U}getValue(){const{hasError:Z,thrownError:U,_value:L}=this;if(Z)throw U;return this._throwIfClosed(),L}next(Z){super.next(this._value=Z)}}},4226:(nt,Ee,v)=>{"use strict";v.d(Ee,{c:()=>z});var j=v(7707),o=v(8359),y=v(3494),Z=v(3669);var Y=v(1026),V=v(8071),X=v(9786);let z=(()=>{class re{constructor(we){we&&(this._subscribe=we)}lift(we){const Be=new re;return Be.source=this,Be.operator=we,Be}subscribe(we,Be,Ie){const Ne=function ne(re){return re&&re instanceof j.vU||function Q(re){return re&&(0,V.T)(re.next)&&(0,V.T)(re.error)&&(0,V.T)(re.complete)}(re)&&(0,o.Uv)(re)}(we)?we:new j.Ms(we,Be,Ie);return(0,X.Y)(()=>{const{operator:Je,source:He}=this;Ne.add(Je?Je.call(Ne,He):He?this._subscribe(Ne):this._trySubscribe(Ne))}),Ne}_trySubscribe(we){try{return this._subscribe(we)}catch(Be){we.error(Be)}}forEach(we,Be){return new(Be=G(Be))((Ie,Ne)=>{const Je=new j.Ms({next:He=>{try{we(He)}catch(qe){Ne(qe),Je.unsubscribe()}},error:Ne,complete:Ie});this.subscribe(Je)})}_subscribe(we){var Be;return null===(Be=this.source)||void 0===Be?void 0:Be.subscribe(we)}[y.s](){return this}pipe(...we){return function L(re){return 0===re.length?Z.D:1===re.length?re[0]:function(we){return re.reduce((Be,Ie)=>Ie(Be),we)}}(we)(this)}toPromise(we){return new(we=G(we))((Be,Ie)=>{let Ne;this.subscribe(Je=>Ne=Je,Je=>Ie(Je),()=>Be(Ne))})}}return re.create=me=>new re(me),re})();function G(re){var me;return null!==(me=re??Y.$.Promise)&&void 0!==me?me:Promise}},1413:(nt,Ee,v)=>{"use strict";v.d(Ee,{B:()=>Y});var j=v(4226),o=v(8359);const Z=(0,v(1853).L)(X=>function(){X(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var U=v(7908),L=v(9786);let Y=(()=>{class X extends j.c{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(G){const Q=new V(this,this);return Q.operator=G,Q}_throwIfClosed(){if(this.closed)throw new Z}next(G){(0,L.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const Q of this.currentObservers)Q.next(G)}})}error(G){(0,L.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=G;const{observers:Q}=this;for(;Q.length;)Q.shift().error(G)}})}complete(){(0,L.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:G}=this;for(;G.length;)G.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var G;return(null===(G=this.observers)||void 0===G?void 0:G.length)>0}_trySubscribe(G){return this._throwIfClosed(),super._trySubscribe(G)}_subscribe(G){return this._throwIfClosed(),this._checkFinalizedStatuses(G),this._innerSubscribe(G)}_innerSubscribe(G){const{hasError:Q,isStopped:ne,observers:re}=this;return Q||ne?o.Kn:(this.currentObservers=null,re.push(G),new o.yU(()=>{this.currentObservers=null,(0,U.o)(re,G)}))}_checkFinalizedStatuses(G){const{hasError:Q,thrownError:ne,isStopped:re}=this;Q?G.error(ne):re&&G.complete()}asObservable(){const G=new j.c;return G.source=this,G}}return X.create=(z,G)=>new V(z,G),X})();class V extends Y{constructor(z,G){super(),this.destination=z,this.source=G}next(z){var G,Q;null===(Q=null===(G=this.destination)||void 0===G?void 0:G.next)||void 0===Q||Q.call(G,z)}error(z){var G,Q;null===(Q=null===(G=this.destination)||void 0===G?void 0:G.error)||void 0===Q||Q.call(G,z)}complete(){var z,G;null===(G=null===(z=this.destination)||void 0===z?void 0:z.complete)||void 0===G||G.call(z)}_subscribe(z){var G,Q;return null!==(Q=null===(G=this.source)||void 0===G?void 0:G.subscribe(z))&&void 0!==Q?Q:o.Kn}}},7707:(nt,Ee,v)=>{"use strict";v.d(Ee,{Ms:()=>we,vU:()=>Q});var j=v(8071),o=v(8359),y=v(1026),Z=v(5334),U=v(5343);const L=X("C",void 0,void 0);function X(He,qe,$e){return{kind:He,value:qe,error:$e}}var z=v(9270),G=v(9786);class Q extends o.yU{constructor(qe){super(),this.isStopped=!1,qe?(this.destination=qe,(0,o.Uv)(qe)&&qe.add(this)):this.destination=Je}static create(qe,$e,je){return new we(qe,$e,je)}next(qe){this.isStopped?Ne(function V(He){return X("N",He,void 0)}(qe),this):this._next(qe)}error(qe){this.isStopped?Ne(function Y(He){return X("E",void 0,He)}(qe),this):(this.isStopped=!0,this._error(qe))}complete(){this.isStopped?Ne(L,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(qe){this.destination.next(qe)}_error(qe){try{this.destination.error(qe)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const ne=Function.prototype.bind;function re(He,qe){return ne.call(He,qe)}class me{constructor(qe){this.partialObserver=qe}next(qe){const{partialObserver:$e}=this;if($e.next)try{$e.next(qe)}catch(je){Be(je)}}error(qe){const{partialObserver:$e}=this;if($e.error)try{$e.error(qe)}catch(je){Be(je)}else Be(qe)}complete(){const{partialObserver:qe}=this;if(qe.complete)try{qe.complete()}catch($e){Be($e)}}}class we extends Q{constructor(qe,$e,je){let at;if(super(),(0,j.T)(qe)||!qe)at={next:qe??void 0,error:$e??void 0,complete:je??void 0};else{let We;this&&y.$.useDeprecatedNextContext?(We=Object.create(qe),We.unsubscribe=()=>this.unsubscribe(),at={next:qe.next&&re(qe.next,We),error:qe.error&&re(qe.error,We),complete:qe.complete&&re(qe.complete,We)}):at=qe}this.destination=new me(at)}}function Be(He){y.$.useDeprecatedSynchronousErrorHandling?(0,G.l)(He):(0,Z.m)(He)}function Ne(He,qe){const{onStoppedNotification:$e}=y.$;$e&&z.f.setTimeout(()=>$e(He,qe))}const Je={closed:!0,next:U.l,error:function Ie(He){throw He},complete:U.l}},8359:(nt,Ee,v)=>{"use strict";v.d(Ee,{Kn:()=>L,yU:()=>U,Uv:()=>Y});var j=v(8071);const y=(0,v(1853).L)(X=>function(G){X(this),this.message=G?`${G.length} errors occurred during unsubscription:\n${G.map((Q,ne)=>`${ne+1}) ${Q.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=G});var Z=v(7908);class U{constructor(z){this.initialTeardown=z,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let z;if(!this.closed){this.closed=!0;const{_parentage:G}=this;if(G)if(this._parentage=null,Array.isArray(G))for(const re of G)re.remove(this);else G.remove(this);const{initialTeardown:Q}=this;if((0,j.T)(Q))try{Q()}catch(re){z=re instanceof y?re.errors:[re]}const{_finalizers:ne}=this;if(ne){this._finalizers=null;for(const re of ne)try{V(re)}catch(me){z=z??[],me instanceof y?z=[...z,...me.errors]:z.push(me)}}if(z)throw new y(z)}}add(z){var G;if(z&&z!==this)if(this.closed)V(z);else{if(z instanceof U){if(z.closed||z._hasParent(this))return;z._addParent(this)}(this._finalizers=null!==(G=this._finalizers)&&void 0!==G?G:[]).push(z)}}_hasParent(z){const{_parentage:G}=this;return G===z||Array.isArray(G)&&G.includes(z)}_addParent(z){const{_parentage:G}=this;this._parentage=Array.isArray(G)?(G.push(z),G):G?[G,z]:z}_removeParent(z){const{_parentage:G}=this;G===z?this._parentage=null:Array.isArray(G)&&(0,Z.o)(G,z)}remove(z){const{_finalizers:G}=this;G&&(0,Z.o)(G,z),z instanceof U&&z._removeParent(this)}}U.EMPTY=(()=>{const X=new U;return X.closed=!0,X})();const L=U.EMPTY;function Y(X){return X instanceof U||X&&"closed"in X&&(0,j.T)(X.remove)&&(0,j.T)(X.add)&&(0,j.T)(X.unsubscribe)}function V(X){(0,j.T)(X)?X():X.unsubscribe()}},1026:(nt,Ee,v)=>{"use strict";v.d(Ee,{$:()=>j});const j={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}},4360:(nt,Ee,v)=>{"use strict";v.d(Ee,{H:()=>y,_:()=>o});var j=v(7707);function o(Z,U,L,Y,V){return new y(Z,U,L,Y,V)}class y extends j.vU{constructor(U,L,Y,V,X,z){super(U),this.onFinalize=X,this.shouldUnsubscribe=z,this._next=L?function(G){try{L(G)}catch(Q){U.error(Q)}}:super._next,this._error=V?function(G){try{V(G)}catch(Q){U.error(Q)}finally{this.unsubscribe()}}:super._error,this._complete=Y?function(){try{Y()}catch(G){U.error(G)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var U;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:L}=this;super.unsubscribe(),!L&&(null===(U=this.onFinalize)||void 0===U||U.call(this))}}}},6354:(nt,Ee,v)=>{"use strict";v.d(Ee,{T:()=>y});var j=v(9974),o=v(4360);function y(Z,U){return(0,j.N)((L,Y)=>{let V=0;L.subscribe((0,o._)(Y,X=>{Y.next(Z.call(U,X,V++))}))})}},9270:(nt,Ee,v)=>{"use strict";v.d(Ee,{f:()=>j});const j={setTimeout(o,y,...Z){const{delegate:U}=j;return U?.setTimeout?U.setTimeout(o,y,...Z):setTimeout(o,y,...Z)},clearTimeout(o){const{delegate:y}=j;return(y?.clearTimeout||clearTimeout)(o)},delegate:void 0}},3494:(nt,Ee,v)=>{"use strict";v.d(Ee,{s:()=>j});const j="function"==typeof Symbol&&Symbol.observable||"@@observable"},7908:(nt,Ee,v)=>{"use strict";function j(o,y){if(o){const Z=o.indexOf(y);0<=Z&&o.splice(Z,1)}}v.d(Ee,{o:()=>j})},1853:(nt,Ee,v)=>{"use strict";function j(o){const Z=o(U=>{Error.call(U),U.stack=(new Error).stack});return Z.prototype=Object.create(Error.prototype),Z.prototype.constructor=Z,Z}v.d(Ee,{L:()=>j})},9786:(nt,Ee,v)=>{"use strict";v.d(Ee,{Y:()=>y,l:()=>Z});var j=v(1026);let o=null;function y(U){if(j.$.useDeprecatedSynchronousErrorHandling){const L=!o;if(L&&(o={errorThrown:!1,error:null}),U(),L){const{errorThrown:Y,error:V}=o;if(o=null,Y)throw V}}else U()}function Z(U){j.$.useDeprecatedSynchronousErrorHandling&&o&&(o.errorThrown=!0,o.error=U)}},3669:(nt,Ee,v)=>{"use strict";function j(o){return o}v.d(Ee,{D:()=>j})},8071:(nt,Ee,v)=>{"use strict";function j(o){return"function"==typeof o}v.d(Ee,{T:()=>j})},9974:(nt,Ee,v)=>{"use strict";v.d(Ee,{N:()=>y});var j=v(8071);function y(Z){return U=>{if(function o(Z){return(0,j.T)(Z?.lift)}(U))return U.lift(function(L){try{return Z(L,this)}catch(Y){this.error(Y)}});throw new TypeError("Unable to lift unknown Observable type")}}},5343:(nt,Ee,v)=>{"use strict";function j(){}v.d(Ee,{l:()=>j})},5334:(nt,Ee,v)=>{"use strict";v.d(Ee,{m:()=>y});var j=v(1026),o=v(9270);function y(Z){o.f.setTimeout(()=>{const{onUnhandledError:U}=j.$;if(!U)throw Z;U(Z)})}},4999:(nt,Ee)=>{"use strict";const{hasOwnProperty:v}=Object.prototype,j=me();j.configure=me,j.stringify=j,j.default=j,Ee.stringify=j,Ee.configure=me,nt.exports=j;const o=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function y(we){return we.length<5e3&&!o.test(we)?`"${we}"`:JSON.stringify(we)}function Z(we,Be){if(we.length>200||Be)return we.sort(Be);for(let Ie=1;IeNe;)we[Je]=we[Je-1],Je--;we[Je]=Ne}return we}const U=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function L(we){return void 0!==U.call(we)&&0!==we.length}function Y(we,Be,Ie){we.length= 1`)}return void 0===Ie?1/0:Ie}function Q(we){return 1===we?"1 item":`${we} items`}function me(we){const Be=function re(we){if(v.call(we,"strict")){const Be=we.strict;if("boolean"!=typeof Be)throw new TypeError('The "strict" argument must be of type boolean');if(Be)return Ie=>{let Ne="Object can not safely be stringified. Received type "+typeof Ie;throw"function"!=typeof Ie&&(Ne+=` (${Ie.toString()})`),new Error(Ne)}}}(we={...we});Be&&(void 0===we.bigint&&(we.bigint=!1),"circularValue"in we||(we.circularValue=Error));const Ie=function V(we){if(v.call(we,"circularValue")){const Be=we.circularValue;if("string"==typeof Be)return`"${Be}"`;if(null==Be)return Be;if(Be===Error||Be===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]"'}(we),Ne=function z(we,Be){let Ie;if(v.call(we,Be)&&(Ie=we[Be],"boolean"!=typeof Ie))throw new TypeError(`The "${Be}" argument must be of type boolean`);return void 0===Ie||Ie}(we,"bigint"),Je=function X(we){let Be;if(v.call(we,"deterministic")&&(Be=we.deterministic,"boolean"!=typeof Be&&"function"!=typeof Be))throw new TypeError('The "deterministic" argument must be of type boolean or comparator function');return void 0===Be||Be}(we),He="function"==typeof Je?Je:void 0,qe=G(we,"maximumDepth"),$e=G(we,"maximumBreadth");function je(Qe,Te,Le,pt,xt,Ut){let Pt=Te[Qe];switch("object"==typeof Pt&&null!==Pt&&"function"==typeof Pt.toJSON&&(Pt=Pt.toJSON(Qe)),Pt=pt.call(Te,Qe,Pt),typeof Pt){case"string":return y(Pt);case"object":{if(null===Pt)return"null";if(-1!==Le.indexOf(Pt))return Ie;let fn="",jn=",";const Qi=Ut;if(Array.isArray(Pt)){if(0===Pt.length)return"[]";if(qe$e&&(fn+=`${jn}"... ${Q(Pt.length-$e-1)} not stringified"`),""!==xt&&(fn+=`\n${Qi}`),Le.pop(),`[${fn}]`}let di=Object.keys(Pt);const Di=di.length;if(0===Di)return"{}";if(qe$e&&(fn+=`${li}"...":${ii}"${Q(Di-$e)} not stringified"`,li=jn),""!==xt&&li.length>1&&(fn=`\n${Ut}${fn}\n${Qi}`),Le.pop(),`{${fn}}`}case"number":return isFinite(Pt)?String(Pt):Be?Be(Pt):"null";case"boolean":return!0===Pt?"true":"false";case"undefined":return;case"bigint":if(Ne)return String(Pt);default:return Be?Be(Pt):void 0}}function at(Qe,Te,Le,pt,xt,Ut){switch("object"==typeof Te&&null!==Te&&"function"==typeof Te.toJSON&&(Te=Te.toJSON(Qe)),typeof Te){case"string":return y(Te);case"object":{if(null===Te)return"null";if(-1!==Le.indexOf(Te))return Ie;const Pt=Ut;let fn="",jn=",";if(Array.isArray(Te)){if(0===Te.length)return"[]";if(qe$e&&(fn+=`${jn}"... ${Q(Te.length-$e-1)} not stringified"`),""!==xt&&(fn+=`\n${Pt}`),Le.pop(),`[${fn}]`}Le.push(Te);let Qi="";""!==xt&&(jn=`,\n${Ut+=xt}`,Qi=" ");let di="";for(const Di of pt){const ii=at(Di,Te[Di],Le,pt,xt,Ut);void 0!==ii&&(fn+=`${di}${y(Di)}:${Qi}${ii}`,di=jn)}return""!==xt&&di.length>1&&(fn=`\n${Ut}${fn}\n${Pt}`),Le.pop(),`{${fn}}`}case"number":return isFinite(Te)?String(Te):Be?Be(Te):"null";case"boolean":return!0===Te?"true":"false";case"undefined":return;case"bigint":if(Ne)return String(Te);default:return Be?Be(Te):void 0}}function We(Qe,Te,Le,pt,xt){switch(typeof Te){case"string":return y(Te);case"object":{if(null===Te)return"null";if("function"==typeof Te.toJSON){if("object"!=typeof(Te=Te.toJSON(Qe)))return We(Qe,Te,Le,pt,xt);if(null===Te)return"null"}if(-1!==Le.indexOf(Te))return Ie;const Ut=xt;if(Array.isArray(Te)){if(0===Te.length)return"[]";if(qe$e&&(ii+=`${li}"... ${Q(Te.length-$e-1)} not stringified"`),ii+=`\n${Ut}`,Le.pop(),`[${ii}]`}let Pt=Object.keys(Te);const fn=Pt.length;if(0===fn)return"{}";if(qe$e&&(Qi+=`${di}"...": "${Q(fn-$e)} not stringified"`,di=jn),""!==di&&(Qi=`\n${xt}${Qi}\n${Ut}`),Le.pop(),`{${Qi}}`}case"number":return isFinite(Te)?String(Te):Be?Be(Te):"null";case"boolean":return!0===Te?"true":"false";case"undefined":return;case"bigint":if(Ne)return String(Te);default:return Be?Be(Te):void 0}}function ve(Qe,Te,Le){switch(typeof Te){case"string":return y(Te);case"object":{if(null===Te)return"null";if("function"==typeof Te.toJSON){if("object"!=typeof(Te=Te.toJSON(Qe)))return ve(Qe,Te,Le);if(null===Te)return"null"}if(-1!==Le.indexOf(Te))return Ie;let pt="";const xt=void 0!==Te.length;if(xt&&Array.isArray(Te)){if(0===Te.length)return"[]";if(qe$e&&(pt+=`,"... ${Q(Te.length-$e-1)} not stringified"`),Le.pop(),`[${pt}]`}let Ut=Object.keys(Te);const Pt=Ut.length;if(0===Pt)return"{}";if(qe$e&&(pt+=`${fn}"...":"${Q(Pt-$e)} not stringified"`),Le.pop(),`{${pt}}`}case"number":return isFinite(Te)?String(Te):Be?Be(Te):"null";case"boolean":return!0===Te?"true":"false";case"undefined":return;case"bigint":if(Ne)return String(Te);default:return Be?Be(Te):void 0}}return function he(Qe,Te,Le){if(arguments.length>1){let pt="";if("number"==typeof Le?pt=" ".repeat(Math.min(Le,10)):"string"==typeof Le&&(pt=Le.slice(0,10)),null!=Te){if("function"==typeof Te)return je("",{"":Qe},[],Te,pt,"");if(Array.isArray(Te))return at("",Qe,[],function ne(we){const Be=new Set;for(const Ie of we)("string"==typeof Ie||"number"==typeof Ie)&&Be.add(String(Ie));return Be}(Te),pt,"")}if(0!==pt.length)return We("",Qe,[],pt,"")}return ve("",Qe,[])}}},5568:function(nt,Ee){!function(v){"use strict";function j(){for(var De=arguments.length,ue=Array(De),Ve=0;Ve1){ue[0]=ue[0].slice(0,-1);for(var dt=ue.length-1,yt=1;yt= 0x80 (not a basic code point)","invalid-input":"Invalid input"},We=Math.floor,ve=String.fromCharCode;function he(De){throw new RangeError(je[De])}function Te(De,ue){var Ve=De.split("@"),dt="";return Ve.length>1&&(dt=Ve[0]+"@",De=Ve[1]),dt+function Qe(De,ue){for(var Ve=[],dt=De.length;dt--;)Ve[dt]=ue(De[dt]);return Ve}((De=De.replace($e,".")).split("."),ue).join(".")}function Le(De){for(var ue=[],Ve=0,dt=De.length;Ve=55296&&yt<=56319&&Ve>1,ue+=We(ue/Ve);ue>455;yt+=36)ue=We(ue/35);return We(yt+36*ue/(ue+38))},fn=function(ue){var Ve=[],dt=ue.length,yt=0,en=128,Qt=72,Gt=ue.lastIndexOf("-");Gt<0&&(Gt=0);for(var Rn=0;Rn=128&&he("not-basic"),Ve.push(ue.charCodeAt(Rn));for(var Ln=Gt>0?Gt+1:0;Ln=dt&&he("invalid-input");var Mn=xt(ue.charCodeAt(Ln++));(Mn>=36||Mn>We((Q-yt)/Wn))&&he("overflow"),yt+=Mn*Wn;var In=Ar<=Qt?1:Ar>=Qt+26?26:Ar-Qt;if(MnWe(Q/pn)&&he("overflow"),Wn*=pn}var Ke=Ve.length+1;Qt=Pt(yt-mn,Ke,0==mn),We(yt/Ke)>Q-en&&he("overflow"),en+=We(yt/Ke),yt%=Ke,Ve.splice(yt++,0,en)}return String.fromCodePoint.apply(String,Ve)},jn=function(ue){var Ve=[],dt=(ue=Le(ue)).length,yt=128,en=0,Qt=72,Gt=!0,Rn=!1,Ln=void 0;try{for(var Wn,mn=ue[Symbol.iterator]();!(Gt=(Wn=mn.next()).done);Gt=!0){var Ar=Wn.value;Ar<128&&Ve.push(ve(Ar))}}catch(Ui){Rn=!0,Ln=Ui}finally{try{!Gt&&mn.return&&mn.return()}finally{if(Rn)throw Ln}}var Mn=Ve.length,In=Mn;for(Mn&&Ve.push("-");In=yt&&biWe((Q-en)/io)&&he("overflow"),en+=(pn-yt)*io,yt=pn;var mo=!0,Io=!1,En=void 0;try{for(var on,dn=ue[Symbol.iterator]();!(mo=(on=dn.next()).done);mo=!0){var Tt=on.value;if(TtQ&&he("overflow"),Tt==yt){for(var tn=en,ti=36;;ti+=36){var ai=ti<=Qt?1:ti>=Qt+26?26:ti-Qt;if(tn>6|192).toString(16).toUpperCase()+"%"+(63&ue|128).toString(16).toUpperCase():"%"+(ue>>12|224).toString(16).toUpperCase()+"%"+(ue>>6&63|128).toString(16).toUpperCase()+"%"+(63&ue|128).toString(16).toUpperCase()}function rt(De){for(var ue="",Ve=0,dt=De.length;Ve=194&&yt<224){if(dt-Ve>=6){var en=parseInt(De.substr(Ve+4,2),16);ue+=String.fromCharCode((31&yt)<<6|63&en)}else ue+=De.substr(Ve,6);Ve+=6}else if(yt>=224){if(dt-Ve>=9){var Qt=parseInt(De.substr(Ve+4,2),16),Gt=parseInt(De.substr(Ve+7,2),16);ue+=String.fromCharCode((15&yt)<<12|(63&Qt)<<6|63&Gt)}else ue+=De.substr(Ve,9);Ve+=9}else ue+=De.substr(Ve,3),Ve+=3}return ue}function Rt(De,ue){function Ve(dt){var yt=rt(dt);return yt.match(ue.UNRESERVED)?yt:dt}return De.scheme&&(De.scheme=String(De.scheme).replace(ue.PCT_ENCODED,Ve).toLowerCase().replace(ue.NOT_SCHEME,"")),void 0!==De.userinfo&&(De.userinfo=String(De.userinfo).replace(ue.PCT_ENCODED,Ve).replace(ue.NOT_USERINFO,li).replace(ue.PCT_ENCODED,Z)),void 0!==De.host&&(De.host=String(De.host).replace(ue.PCT_ENCODED,Ve).toLowerCase().replace(ue.NOT_HOST,li).replace(ue.PCT_ENCODED,Z)),void 0!==De.path&&(De.path=String(De.path).replace(ue.PCT_ENCODED,Ve).replace(De.scheme?ue.NOT_PATH:ue.NOT_PATH_NOSCHEME,li).replace(ue.PCT_ENCODED,Z)),void 0!==De.query&&(De.query=String(De.query).replace(ue.PCT_ENCODED,Ve).replace(ue.NOT_QUERY,li).replace(ue.PCT_ENCODED,Z)),void 0!==De.fragment&&(De.fragment=String(De.fragment).replace(ue.PCT_ENCODED,Ve).replace(ue.NOT_FRAGMENT,li).replace(ue.PCT_ENCODED,Z)),De}function qt(De){return De.replace(/^0*(.*)/,"$1")||"0"}function cn(De,ue){var Ve=De.match(ue.IPV4ADDRESS)||[],yt=z(Ve,2)[1];return yt?yt.split(".").map(qt).join("."):De}function Wt(De,ue){var Ve=De.match(ue.IPV6ADDRESS)||[],dt=z(Ve,3),yt=dt[1],en=dt[2];if(yt){for(var Qt=yt.toLowerCase().split("::").reverse(),Gt=z(Qt,2),Rn=Gt[0],Ln=Gt[1],mn=Ln?Ln.split(":").map(qt):[],Wn=Rn.split(":").map(qt),Ar=ue.IPV4ADDRESS.test(Wn[Wn.length-1]),Mn=Ar?7:8,In=Wn.length-Mn,pn=Array(Mn),Ke=0;Ke1){var _i=pn.slice(0,Dn.index),bi=pn.slice(Dn.index+Dn.length);ei=_i.join(":")+"::"+bi.join(":")}else ei=pn.join(":");return en&&(ei+="%"+en),ei}return De}var gn=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,oi=void 0==="".match(/(){0}/)[1];function Yi(De){var ue=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},Ve={},dt=!1!==ue.iri?X:V;"suffix"===ue.reference&&(De=(ue.scheme?ue.scheme+":":"")+"//"+De);var yt=De.match(gn);if(yt){oi?(Ve.scheme=yt[1],Ve.userinfo=yt[3],Ve.host=yt[4],Ve.port=parseInt(yt[5],10),Ve.path=yt[6]||"",Ve.query=yt[7],Ve.fragment=yt[8],isNaN(Ve.port)&&(Ve.port=yt[5])):(Ve.scheme=yt[1]||void 0,Ve.userinfo=-1!==De.indexOf("@")?yt[3]:void 0,Ve.host=-1!==De.indexOf("//")?yt[4]:void 0,Ve.port=parseInt(yt[5],10),Ve.path=yt[6]||"",Ve.query=-1!==De.indexOf("?")?yt[7]:void 0,Ve.fragment=-1!==De.indexOf("#")?yt[8]:void 0,isNaN(Ve.port)&&(Ve.port=De.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?yt[4]:void 0)),Ve.host&&(Ve.host=Wt(cn(Ve.host,dt),dt)),Ve.reference=void 0!==Ve.scheme||void 0!==Ve.userinfo||void 0!==Ve.host||void 0!==Ve.port||Ve.path||void 0!==Ve.query?void 0===Ve.scheme?"relative":void 0===Ve.fragment?"absolute":"uri":"same-document",ue.reference&&"suffix"!==ue.reference&&ue.reference!==Ve.reference&&(Ve.error=Ve.error||"URI is not a "+ue.reference+" reference.");var en=ii[(ue.scheme||Ve.scheme||"").toLowerCase()];if(ue.unicodeSupport||en&&en.unicodeSupport)Rt(Ve,dt);else{if(Ve.host&&(ue.domainHost||en&&en.domainHost))try{Ve.host=Di.toASCII(Ve.host.replace(dt.PCT_ENCODED,rt).toLowerCase())}catch(Qt){Ve.error=Ve.error||"Host's domain name can not be converted to ASCII via punycode: "+Qt}Rt(Ve,V)}en&&en.parse&&en.parse(Ve,ue)}else Ve.error=Ve.error||"URI can not be parsed.";return Ve}var Hr=/^\.\.?\//,pr=/^\/\.(\/|$)/,Ti=/^\/\.\.(\/|$)/,Zt=/^\/?(?:.|\n)*?(?=\/|$)/;function Mr(De){for(var ue=[];De.length;)if(De.match(Hr))De=De.replace(Hr,"");else if(De.match(pr))De=De.replace(pr,"/");else if(De.match(Ti))De=De.replace(Ti,"/"),ue.pop();else if("."===De||".."===De)De="";else{var Ve=De.match(Zt);if(!Ve)throw new Error("Unexpected dot segment condition");var dt=Ve[0];De=De.slice(dt.length),ue.push(dt)}return ue.join("")}function br(De){var ue=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},Ve=ue.iri?X:V,dt=[],yt=ii[(ue.scheme||De.scheme||"").toLowerCase()];if(yt&&yt.serialize&&yt.serialize(De,ue),De.host&&!Ve.IPV6ADDRESS.test(De.host)&&(ue.domainHost||yt&&yt.domainHost))try{De.host=ue.iri?Di.toUnicode(De.host):Di.toASCII(De.host.replace(Ve.PCT_ENCODED,rt).toLowerCase())}catch(Gt){De.error=De.error||"Host's domain name can not be converted to "+(ue.iri?"Unicode":"ASCII")+" via punycode: "+Gt}Rt(De,Ve),"suffix"!==ue.reference&&De.scheme&&(dt.push(De.scheme),dt.push(":"));var en=function fr(De,ue){var Ve=!1!==ue.iri?X:V,dt=[];return void 0!==De.userinfo&&(dt.push(De.userinfo),dt.push("@")),void 0!==De.host&&dt.push(Wt(cn(String(De.host),Ve),Ve).replace(Ve.IPV6ADDRESS,function(yt,en,Qt){return"["+en+(Qt?"%25"+Qt:"")+"]"})),("number"==typeof De.port||"string"==typeof De.port)&&(dt.push(":"),dt.push(String(De.port))),dt.length?dt.join(""):void 0}(De,ue);if(void 0!==en&&("suffix"!==ue.reference&&dt.push("//"),dt.push(en),De.path&&"/"!==De.path.charAt(0)&&dt.push("/")),void 0!==De.path){var Qt=De.path;!ue.absolutePath&&(!yt||!yt.absolutePath)&&(Qt=Mr(Qt)),void 0===en&&(Qt=Qt.replace(/^\/\//,"/%2F")),dt.push(Qt)}return void 0!==De.query&&(dt.push("?"),dt.push(De.query)),void 0!==De.fragment&&(dt.push("#"),dt.push(De.fragment)),dt.join("")}function Qr(De,ue){var Ve=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},yt={};return arguments[3]||(De=Yi(br(De,Ve),Ve),ue=Yi(br(ue,Ve),Ve)),!(Ve=Ve||{}).tolerant&&ue.scheme?(yt.scheme=ue.scheme,yt.userinfo=ue.userinfo,yt.host=ue.host,yt.port=ue.port,yt.path=Mr(ue.path||""),yt.query=ue.query):(void 0!==ue.userinfo||void 0!==ue.host||void 0!==ue.port?(yt.userinfo=ue.userinfo,yt.host=ue.host,yt.port=ue.port,yt.path=Mr(ue.path||""),yt.query=ue.query):(ue.path?("/"===ue.path.charAt(0)?yt.path=Mr(ue.path):(yt.path=void 0===De.userinfo&&void 0===De.host&&void 0===De.port||De.path?De.path?De.path.slice(0,De.path.lastIndexOf("/")+1)+ue.path:ue.path:"/"+ue.path,yt.path=Mr(yt.path)),yt.query=ue.query):(yt.path=De.path,yt.query=void 0!==ue.query?ue.query:De.query),yt.userinfo=De.userinfo,yt.host=De.host,yt.port=De.port),yt.scheme=De.scheme),yt.fragment=ue.fragment,yt}function Ii(De,ue){return De&&De.toString().replace(ue&&ue.iri?X.PCT_ENCODED:V.PCT_ENCODED,rt)}var Bs={scheme:"http",domainHost:!0,parse:function(ue,Ve){return ue.host||(ue.error=ue.error||"HTTP URIs must have a host."),ue},serialize:function(ue,Ve){var dt="https"===String(ue.scheme).toLowerCase();return(ue.port===(dt?443:80)||""===ue.port)&&(ue.port=void 0),ue.path||(ue.path="/"),ue}},Wo={scheme:"https",domainHost:Bs.domainHost,parse:Bs.parse,serialize:Bs.serialize};function Zr(De){return"boolean"==typeof De.secure?De.secure:"wss"===String(De.scheme).toLowerCase()}var ls={scheme:"ws",domainHost:!0,parse:function(ue,Ve){var dt=ue;return dt.secure=Zr(dt),dt.resourceName=(dt.path||"/")+(dt.query?"?"+dt.query:""),dt.path=void 0,dt.query=void 0,dt},serialize:function(ue,Ve){if((ue.port===(Zr(ue)?443:80)||""===ue.port)&&(ue.port=void 0),"boolean"==typeof ue.secure&&(ue.scheme=ue.secure?"wss":"ws",ue.secure=void 0),ue.resourceName){var dt=ue.resourceName.split("?"),yt=z(dt,2),en=yt[0],Qt=yt[1];ue.path=en&&"/"!==en?en:void 0,ue.query=Qt,ue.resourceName=void 0}return ue.fragment=void 0,ue}},Ao={scheme:"wss",domainHost:ls.domainHost,parse:ls.parse,serialize:ls.serialize},hc={},et="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",Ye="[0-9A-Fa-f]",It=o(o("%[EFef]"+Ye+"%"+Ye+Ye+"%"+Ye+Ye)+"|"+o("%[89A-Fa-f]"+Ye+"%"+Ye+Ye)+"|"+o("%"+Ye+Ye)),an=j("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),Jn=new RegExp(et,"g"),Hn=new RegExp(It,"g"),Xt=new RegExp(j("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',an),"g"),kn=new RegExp(j("[^]",et,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),ri=kn;function ji(De){var ue=rt(De);return ue.match(Jn)?ue:De}var Tr={scheme:"mailto",parse:function(ue,Ve){var dt=ue,yt=dt.to=dt.path?dt.path.split(","):[];if(dt.path=void 0,dt.query){for(var en=!1,Qt={},Gt=dt.query.split("&"),Rn=0,Ln=Gt.length;Rn{"use strict";const nt=globalThis;function Ee(et){return(nt.__Zone_symbol_prefix||"__zone_symbol__")+et}const o=Object.getOwnPropertyDescriptor,y=Object.defineProperty,Z=Object.getPrototypeOf,U=Object.create,L=Array.prototype.slice,Y="addEventListener",V="removeEventListener",X=Ee(Y),z=Ee(V),G="true",Q="false",ne=Ee("");function re(et,Ye){return Zone.current.wrap(et,Ye)}function me(et,Ye,It,ot,St){return Zone.current.scheduleMacroTask(et,Ye,It,ot,St)}const we=Ee,Be=typeof window<"u",Ie=Be?window:void 0,Ne=Be&&Ie||globalThis,Je="removeAttribute";function He(et,Ye){for(let It=et.length-1;It>=0;It--)"function"==typeof et[It]&&(et[It]=re(et[It],Ye+"_"+It));return et}function $e(et){return!et||!1!==et.writable&&!("function"==typeof et.get&&typeof et.set>"u")}const je=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,at=!("nw"in Ne)&&typeof Ne.process<"u"&&"[object process]"===Ne.process.toString(),We=!at&&!je&&!(!Be||!Ie.HTMLElement),ve=typeof Ne.process<"u"&&"[object process]"===Ne.process.toString()&&!je&&!(!Be||!Ie.HTMLElement),he={},Qe=we("enable_beforeunload"),Te=function(et){if(!(et=et||Ne.event))return;let Ye=he[et.type];Ye||(Ye=he[et.type]=we("ON_PROPERTY"+et.type));const It=this||et.target||Ne,ot=It[Ye];let St;return We&&It===Ie&&"error"===et.type?(St=ot&&ot.call(this,et.message,et.filename,et.lineno,et.colno,et.error),!0===St&&et.preventDefault()):(St=ot&&ot.apply(this,arguments),"beforeunload"===et.type&&Ne[Qe]&&"string"==typeof St?et.returnValue=St:null!=St&&!St&&et.preventDefault()),St};function Le(et,Ye,It){let ot=o(et,Ye);if(!ot&&It&&o(It,Ye)&&(ot={enumerable:!0,configurable:!0}),!ot||!ot.configurable)return;const St=we("on"+Ye+"patched");if(et.hasOwnProperty(St)&&et[St])return;delete ot.writable,delete ot.value;const an=ot.get,si=ot.set,Jn=Ye.slice(2);let Hn=he[Jn];Hn||(Hn=he[Jn]=we("ON_PROPERTY"+Jn)),ot.set=function(Xt){let kn=this;!kn&&et===Ne&&(kn=Ne),kn&&("function"==typeof kn[Hn]&&kn.removeEventListener(Jn,Te),si&&si.call(kn,null),kn[Hn]=Xt,"function"==typeof Xt&&kn.addEventListener(Jn,Te,!1))},ot.get=function(){let Xt=this;if(!Xt&&et===Ne&&(Xt=Ne),!Xt)return null;const kn=Xt[Hn];if(kn)return kn;if(an){let ri=an.call(this);if(ri)return ot.set.call(this,ri),"function"==typeof Xt[Je]&&Xt.removeAttribute(Ye),ri}return null},y(et,Ye,ot),et[St]=!0}function pt(et,Ye,It){if(Ye)for(let ot=0;otfunction(si,Jn){const Hn=It(si,Jn);return Hn.cbIdx>=0&&"function"==typeof Jn[Hn.cbIdx]?me(Hn.name,Jn[Hn.cbIdx],Hn,St):an.apply(si,Jn)})}function jn(et,Ye){et[we("OriginalDelegate")]=Ye}let Qi=!1,di=!1;function ii(){if(Qi)return di;Qi=!0;try{const et=Ie.navigator.userAgent;(-1!==et.indexOf("MSIE ")||-1!==et.indexOf("Trident/")||-1!==et.indexOf("Edge/"))&&(di=!0)}catch{}return di}function li(et){return"function"==typeof et}function rt(et){return"number"==typeof et}let Rt=!1;if(typeof window<"u")try{const et=Object.defineProperty({},"passive",{get:function(){Rt=!0}});window.addEventListener("test",et,et),window.removeEventListener("test",et,et)}catch{Rt=!1}const qt={useG:!0},cn={},Wt={},gn=new RegExp("^"+ne+"(\\w+)(true|false)$"),oi=we("propagationStopped");function Yi(et,Ye){const It=(Ye?Ye(et):et)+Q,ot=(Ye?Ye(et):et)+G,St=ne+It,an=ne+ot;cn[et]={},cn[et][Q]=St,cn[et][G]=an}function fr(et,Ye,It,ot){const St=ot&&ot.add||Y,an=ot&&ot.rm||V,si=ot&&ot.listeners||"eventListeners",Jn=ot&&ot.rmAll||"removeAllListeners",Hn=we(St),Xt="."+St+":",kn="prependListener",ri="."+kn+":",ji=function(De,ue,Ve){if(De.isRemoved)return;const dt=De.callback;let yt;"object"==typeof dt&&dt.handleEvent&&(De.callback=Qt=>dt.handleEvent(Qt),De.originalDelegate=dt);try{De.invoke(De,ue,[Ve])}catch(Qt){yt=Qt}const en=De.options;return en&&"object"==typeof en&&en.once&&ue[an].call(ue,Ve.type,De.originalDelegate?De.originalDelegate:De.callback,en),yt};function Tr(De,ue,Ve){if(!(ue=ue||et.event))return;const dt=De||ue.target||et,yt=dt[cn[ue.type][Ve?G:Q]];if(yt){const en=[];if(1===yt.length){const Qt=ji(yt[0],dt,ue);Qt&&en.push(Qt)}else{const Qt=yt.slice();for(let Gt=0;Gt{throw Gt})}}}const Jr=function(De){return Tr(this,De,!1)},zr=function(De){return Tr(this,De,!0)};function Mi(De,ue){if(!De)return!1;let Ve=!0;ue&&void 0!==ue.useG&&(Ve=ue.useG);const dt=ue&&ue.vh;let yt=!0;ue&&void 0!==ue.chkDup&&(yt=ue.chkDup);let en=!1;ue&&void 0!==ue.rt&&(en=ue.rt);let Qt=De;for(;Qt&&!Qt.hasOwnProperty(St);)Qt=Z(Qt);if(!Qt&&De[St]&&(Qt=De),!Qt||Qt[Hn])return!1;const Gt=ue&&ue.eventNameToString,Rn={},Ln=Qt[Hn]=Qt[St],mn=Qt[we(an)]=Qt[an],Wn=Qt[we(si)]=Qt[si],Ar=Qt[we(Jn)]=Qt[Jn];let Mn;ue&&ue.prepend&&(Mn=Qt[we(ue.prepend)]=Qt[ue.prepend]);const _i=Ve?function(Tt){if(!Rn.isExisting)return Ln.call(Rn.target,Rn.eventName,Rn.capture?zr:Jr,Rn.options)}:function(Tt){return Ln.call(Rn.target,Rn.eventName,Tt.invoke,Rn.options)},bi=Ve?function(Tt){if(!Tt.isRemoved){const tn=cn[Tt.eventName];let ti;tn&&(ti=tn[Tt.capture?G:Q]);const ai=ti&&Tt.target[ti];if(ai)for(let zn=0;znEi.zone.cancelTask(Ei);Tt.call(rl,"abort",Lo,{once:!0}),Ei.removeAbortListener=()=>rl.removeEventListener("abort",Lo)}return Rn.target=null,Qn&&(Qn.taskData=null),ra&&(Rn.options.once=!0),!Rt&&"boolean"==typeof Ei.options||(Ei.options=Xo),Ei.target=Ui,Ei.capture=No,Ei.eventName=Xi,vr&&(Ei.originalDelegate=Er),pi?xo.unshift(Ei):xo.push(Ei),zn?Ui:void 0}};return Qt[St]=on(Ln,Xt,_i,bi,en),Mn&&(Qt[kn]=on(Mn,ri,function(Tt){return Mn.call(Rn.target,Rn.eventName,Tt.invoke,Rn.options)},bi,en,!0)),Qt[an]=function(){const Tt=this||et;let tn=arguments[0];ue&&ue.transferEventName&&(tn=ue.transferEventName(tn));const ti=arguments[2],ai=!!ti&&("boolean"==typeof ti||ti.capture),zn=arguments[1];if(!zn)return mn.apply(this,arguments);if(dt&&!dt(mn,zn,Tt,arguments))return;const pi=cn[tn];let Ui;pi&&(Ui=pi[ai?G:Q]);const Xi=Ui&&Tt[Ui];if(Xi)for(let Er=0;Erfunction(St,an){St[oi]=!0,ot&&ot.apply(St,an)})}const Zt=we("zoneTask");function Mr(et,Ye,It,ot){let St=null,an=null;It+=ot;const si={};function Jn(Xt){const kn=Xt.data;kn.args[0]=function(){return Xt.invoke.apply(this,arguments)};const ri=St.apply(et,kn.args);return rt(ri)?kn.handleId=ri:(kn.handle=ri,kn.isRefreshable=li(ri.refresh)),Xt}function Hn(Xt){const{handle:kn,handleId:ri}=Xt.data;return an.call(et,kn??ri)}St=Pt(et,Ye+=ot,Xt=>function(kn,ri){if(li(ri[0])){const ji={isRefreshable:!1,isPeriodic:"Interval"===ot,delay:"Timeout"===ot||"Interval"===ot?ri[1]||0:void 0,args:ri},Tr=ri[0];ri[0]=function(){try{return Tr.apply(this,arguments)}finally{const{handle:Ve,handleId:dt,isPeriodic:yt,isRefreshable:en}=ji;!yt&&!en&&(dt?delete si[dt]:Ve&&(Ve[Zt]=null))}};const Jr=me(Ye,ri[0],ji,Jn,Hn);if(!Jr)return Jr;const{handleId:zr,handle:Mi,isRefreshable:Gr,isPeriodic:De}=Jr.data;if(zr)si[zr]=Jr;else if(Mi&&(Mi[Zt]=Jr,Gr&&!De)){const ue=Mi.refresh;Mi.refresh=function(){const{zone:Ve,state:dt}=Jr;return"notScheduled"===dt?(Jr._state="scheduled",Ve._updateTaskCount(Jr,1)):"running"===dt&&(Jr._state="scheduling"),ue.call(this)}}return Mi??zr??Jr}return Xt.apply(et,ri)}),an=Pt(et,It,Xt=>function(kn,ri){const ji=ri[0];let Tr;rt(ji)?(Tr=si[ji],delete si[ji]):(Tr=ji?.[Zt],Tr?ji[Zt]=null:Tr=ji),Tr?.type?Tr.cancelFn&&Tr.zone.cancelTask(Tr):Xt.apply(et,ri)})}function Fl(et,Ye,It){if(!It||0===It.length)return Ye;const ot=It.filter(an=>an.target===et);if(!ot||0===ot.length)return Ye;const St=ot[0].ignoreProperties;return Ye.filter(an=>-1===St.indexOf(an))}function as(et,Ye,It,ot){et&&pt(et,Fl(et,Ye,It),ot)}function Li(et){return Object.getOwnPropertyNames(et).filter(Ye=>Ye.startsWith("on")&&Ye.length>2).map(Ye=>Ye.substring(2))}function ls(et,Ye,It,ot,St){const an=Zone.__symbol__(ot);if(Ye[an])return;const si=Ye[an]=Ye[ot];Ye[ot]=function(Jn,Hn,Xt){return Hn&&Hn.prototype&&St.forEach(function(kn){const ri=`${It}.${ot}::`+kn,ji=Hn.prototype;try{if(ji.hasOwnProperty(kn)){const Tr=et.ObjectGetOwnPropertyDescriptor(ji,kn);Tr&&Tr.value?(Tr.value=et.wrapWithCurrentZone(Tr.value,ri),et._redefineProperty(Hn.prototype,kn,Tr)):ji[kn]&&(ji[kn]=et.wrapWithCurrentZone(ji[kn],ri))}else ji[kn]&&(ji[kn]=et.wrapWithCurrentZone(ji[kn],ri))}catch{}}),si.call(Ye,Jn,Hn,Xt)},et.attachOriginToPatched(Ye[ot],si)}const Zi=function j(){const et=globalThis,Ye=!0===et[Ee("forceDuplicateZoneCheck")];if(et.Zone&&(Ye||"function"!=typeof et.Zone.__symbol__))throw new Error("Zone already loaded.");return et.Zone??=function v(){const et=nt.performance;function Ye(In){et&&et.mark&&et.mark(In)}function It(In,pn){et&&et.measure&&et.measure(In,pn)}Ye("Zone");let ot=(()=>{class In{static{this.__symbol__=Ee}static assertZonePatched(){if(nt.Promise!==Rn.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let Ke=In.current;for(;Ke.parent;)Ke=Ke.parent;return Ke}static get current(){return mn.zone}static get currentTask(){return Wn}static __load_patch(Ke,gt,Dn=!1){if(Rn.hasOwnProperty(Ke)){const ei=!0===nt[Ee("forceDuplicateZoneCheck")];if(!Dn&&ei)throw Error("Already loaded patch: "+Ke)}else if(!nt["__Zone_disable_"+Ke]){const ei="Zone:"+Ke;Ye(ei),Rn[Ke]=gt(nt,In,Ln),It(ei,ei)}}get parent(){return this._parent}get name(){return this._name}constructor(Ke,gt){this._parent=Ke,this._name=gt?gt.name||"unnamed":"",this._properties=gt&>.properties||{},this._zoneDelegate=new an(this,this._parent&&this._parent._zoneDelegate,gt)}get(Ke){const gt=this.getZoneWith(Ke);if(gt)return gt._properties[Ke]}getZoneWith(Ke){let gt=this;for(;gt;){if(gt._properties.hasOwnProperty(Ke))return gt;gt=gt._parent}return null}fork(Ke){if(!Ke)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,Ke)}wrap(Ke,gt){if("function"!=typeof Ke)throw new Error("Expecting function got: "+Ke);const Dn=this._zoneDelegate.intercept(this,Ke,gt),ei=this;return function(){return ei.runGuarded(Dn,this,arguments,gt)}}run(Ke,gt,Dn,ei){mn={parent:mn,zone:this};try{return this._zoneDelegate.invoke(this,Ke,gt,Dn,ei)}finally{mn=mn.parent}}runGuarded(Ke,gt=null,Dn,ei){mn={parent:mn,zone:this};try{try{return this._zoneDelegate.invoke(this,Ke,gt,Dn,ei)}catch(_i){if(this._zoneDelegate.handleError(this,_i))throw _i}}finally{mn=mn.parent}}runTask(Ke,gt,Dn){if(Ke.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(Ke.zone||Mi).name+"; Execution: "+this.name+")");const ei=Ke,{type:_i,data:{isPeriodic:bi=!1,isRefreshable:io=!1}={}}=Ke;if(Ke.state===Gr&&(_i===Gt||_i===Qt))return;const mo=Ke.state!=Ve;mo&&ei._transitionTo(Ve,ue);const Io=Wn;Wn=ei,mn={parent:mn,zone:this};try{_i==Qt&&Ke.data&&!bi&&!io&&(Ke.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,ei,gt,Dn)}catch(En){if(this._zoneDelegate.handleError(this,En))throw En}}finally{const En=Ke.state;if(En!==Gr&&En!==yt)if(_i==Gt||bi||io&&En===De)mo&&ei._transitionTo(ue,Ve,De);else{const dn=ei._zoneDelegates;this._updateTaskCount(ei,-1),mo&&ei._transitionTo(Gr,Ve,Gr),io&&(ei._zoneDelegates=dn)}mn=mn.parent,Wn=Io}}scheduleTask(Ke){if(Ke.zone&&Ke.zone!==this){let Dn=this;for(;Dn;){if(Dn===Ke.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${Ke.zone.name}`);Dn=Dn.parent}}Ke._transitionTo(De,Gr);const gt=[];Ke._zoneDelegates=gt,Ke._zone=this;try{Ke=this._zoneDelegate.scheduleTask(this,Ke)}catch(Dn){throw Ke._transitionTo(yt,De,Gr),this._zoneDelegate.handleError(this,Dn),Dn}return Ke._zoneDelegates===gt&&this._updateTaskCount(Ke,1),Ke.state==De&&Ke._transitionTo(ue,De),Ke}scheduleMicroTask(Ke,gt,Dn,ei){return this.scheduleTask(new si(en,Ke,gt,Dn,ei,void 0))}scheduleMacroTask(Ke,gt,Dn,ei,_i){return this.scheduleTask(new si(Qt,Ke,gt,Dn,ei,_i))}scheduleEventTask(Ke,gt,Dn,ei,_i){return this.scheduleTask(new si(Gt,Ke,gt,Dn,ei,_i))}cancelTask(Ke){if(Ke.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(Ke.zone||Mi).name+"; Execution: "+this.name+")");if(Ke.state===ue||Ke.state===Ve){Ke._transitionTo(dt,ue,Ve);try{this._zoneDelegate.cancelTask(this,Ke)}catch(gt){throw Ke._transitionTo(yt,dt),this._zoneDelegate.handleError(this,gt),gt}return this._updateTaskCount(Ke,-1),Ke._transitionTo(Gr,dt),Ke.runCount=-1,Ke}}_updateTaskCount(Ke,gt){const Dn=Ke._zoneDelegates;-1==gt&&(Ke._zoneDelegates=null);for(let ei=0;eiIn.hasTask(Ke,gt),onScheduleTask:(In,pn,Ke,gt)=>In.scheduleTask(Ke,gt),onInvokeTask:(In,pn,Ke,gt,Dn,ei)=>In.invokeTask(Ke,gt,Dn,ei),onCancelTask:(In,pn,Ke,gt)=>In.cancelTask(Ke,gt)};class an{get zone(){return this._zone}constructor(pn,Ke,gt){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this._zone=pn,this._parentDelegate=Ke,this._forkZS=gt&&(gt&>.onFork?gt:Ke._forkZS),this._forkDlgt=gt&&(gt.onFork?Ke:Ke._forkDlgt),this._forkCurrZone=gt&&(gt.onFork?this._zone:Ke._forkCurrZone),this._interceptZS=gt&&(gt.onIntercept?gt:Ke._interceptZS),this._interceptDlgt=gt&&(gt.onIntercept?Ke:Ke._interceptDlgt),this._interceptCurrZone=gt&&(gt.onIntercept?this._zone:Ke._interceptCurrZone),this._invokeZS=gt&&(gt.onInvoke?gt:Ke._invokeZS),this._invokeDlgt=gt&&(gt.onInvoke?Ke:Ke._invokeDlgt),this._invokeCurrZone=gt&&(gt.onInvoke?this._zone:Ke._invokeCurrZone),this._handleErrorZS=gt&&(gt.onHandleError?gt:Ke._handleErrorZS),this._handleErrorDlgt=gt&&(gt.onHandleError?Ke:Ke._handleErrorDlgt),this._handleErrorCurrZone=gt&&(gt.onHandleError?this._zone:Ke._handleErrorCurrZone),this._scheduleTaskZS=gt&&(gt.onScheduleTask?gt:Ke._scheduleTaskZS),this._scheduleTaskDlgt=gt&&(gt.onScheduleTask?Ke:Ke._scheduleTaskDlgt),this._scheduleTaskCurrZone=gt&&(gt.onScheduleTask?this._zone:Ke._scheduleTaskCurrZone),this._invokeTaskZS=gt&&(gt.onInvokeTask?gt:Ke._invokeTaskZS),this._invokeTaskDlgt=gt&&(gt.onInvokeTask?Ke:Ke._invokeTaskDlgt),this._invokeTaskCurrZone=gt&&(gt.onInvokeTask?this._zone:Ke._invokeTaskCurrZone),this._cancelTaskZS=gt&&(gt.onCancelTask?gt:Ke._cancelTaskZS),this._cancelTaskDlgt=gt&&(gt.onCancelTask?Ke:Ke._cancelTaskDlgt),this._cancelTaskCurrZone=gt&&(gt.onCancelTask?this._zone:Ke._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const Dn=gt&>.onHasTask;(Dn||Ke&&Ke._hasTaskZS)&&(this._hasTaskZS=Dn?gt:St,this._hasTaskDlgt=Ke,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=this._zone,gt.onScheduleTask||(this._scheduleTaskZS=St,this._scheduleTaskDlgt=Ke,this._scheduleTaskCurrZone=this._zone),gt.onInvokeTask||(this._invokeTaskZS=St,this._invokeTaskDlgt=Ke,this._invokeTaskCurrZone=this._zone),gt.onCancelTask||(this._cancelTaskZS=St,this._cancelTaskDlgt=Ke,this._cancelTaskCurrZone=this._zone))}fork(pn,Ke){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,pn,Ke):new ot(pn,Ke)}intercept(pn,Ke,gt){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,pn,Ke,gt):Ke}invoke(pn,Ke,gt,Dn,ei){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,pn,Ke,gt,Dn,ei):Ke.apply(gt,Dn)}handleError(pn,Ke){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,pn,Ke)}scheduleTask(pn,Ke){let gt=Ke;if(this._scheduleTaskZS)this._hasTaskZS&>._zoneDelegates.push(this._hasTaskDlgtOwner),gt=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,pn,Ke),gt||(gt=Ke);else if(Ke.scheduleFn)Ke.scheduleFn(Ke);else{if(Ke.type!=en)throw new Error("Task is missing scheduleFn.");Jr(Ke)}return gt}invokeTask(pn,Ke,gt,Dn){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,pn,Ke,gt,Dn):Ke.callback.apply(gt,Dn)}cancelTask(pn,Ke){let gt;if(this._cancelTaskZS)gt=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,pn,Ke);else{if(!Ke.cancelFn)throw Error("Task is not cancelable");gt=Ke.cancelFn(Ke)}return gt}hasTask(pn,Ke){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,pn,Ke)}catch(gt){this.handleError(pn,gt)}}_updateTaskCount(pn,Ke){const gt=this._taskCounts,Dn=gt[pn],ei=gt[pn]=Dn+Ke;if(ei<0)throw new Error("More tasks executed then were scheduled.");0!=Dn&&0!=ei||this.hasTask(this._zone,{microTask:gt.microTask>0,macroTask:gt.macroTask>0,eventTask:gt.eventTask>0,change:pn})}}class si{constructor(pn,Ke,gt,Dn,ei,_i){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=pn,this.source=Ke,this.data=Dn,this.scheduleFn=ei,this.cancelFn=_i,!gt)throw new Error("callback is not defined");this.callback=gt;const bi=this;this.invoke=pn===Gt&&Dn&&Dn.useG?si.invokeTask:function(){return si.invokeTask.call(nt,bi,this,arguments)}}static invokeTask(pn,Ke,gt){pn||(pn=this),Ar++;try{return pn.runCount++,pn.zone.runTask(pn,Ke,gt)}finally{1==Ar&&zr(),Ar--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(Gr,De)}_transitionTo(pn,Ke,gt){if(this._state!==Ke&&this._state!==gt)throw new Error(`${this.type} '${this.source}': can not transition to '${pn}', expecting state '${Ke}'${gt?" or '"+gt+"'":""}, was '${this._state}'.`);this._state=pn,pn==Gr&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const Jn=Ee("setTimeout"),Hn=Ee("Promise"),Xt=Ee("then");let ji,kn=[],ri=!1;function Tr(In){if(ji||nt[Hn]&&(ji=nt[Hn].resolve(0)),ji){let pn=ji[Xt];pn||(pn=ji.then),pn.call(ji,In)}else nt[Jn](In,0)}function Jr(In){0===Ar&&0===kn.length&&Tr(zr),In&&kn.push(In)}function zr(){if(!ri){for(ri=!0;kn.length;){const In=kn;kn=[];for(let pn=0;pnmn,onUnhandledError:Mn,microtaskDrainDone:Mn,scheduleMicroTask:Jr,showUncaughtError:()=>!ot[Ee("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:Mn,patchMethod:()=>Mn,bindArguments:()=>[],patchThen:()=>Mn,patchMacroTask:()=>Mn,patchEventPrototype:()=>Mn,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>Mn,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>Mn,wrapWithCurrentZone:()=>Mn,filterProperties:()=>[],attachOriginToPatched:()=>Mn,_redefineProperty:()=>Mn,patchCallbacks:()=>Mn,nativeScheduleMicroTask:Tr};let mn={parent:null,zone:new ot(null,null)},Wn=null,Ar=0;function Mn(){}return It("Zone","Zone"),ot}(),et.Zone}();(function hc(et){(function Wo(et){et.__load_patch("ZoneAwarePromise",(Ye,It,ot)=>{const St=Object.getOwnPropertyDescriptor,an=Object.defineProperty,Jn=ot.symbol,Hn=[],Xt=!1!==Ye[Jn("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],kn=Jn("Promise"),ri=Jn("then"),ji="__creationTrace__";ot.onUnhandledError=dn=>{if(ot.showUncaughtError()){const on=dn&&dn.rejection;on?console.error("Unhandled Promise rejection:",on instanceof Error?on.message:on,"; Zone:",dn.zone.name,"; Task:",dn.task&&dn.task.source,"; Value:",on,on instanceof Error?on.stack:void 0):console.error(dn)}},ot.microtaskDrainDone=()=>{for(;Hn.length;){const dn=Hn.shift();try{dn.zone.runGuarded(()=>{throw dn.throwOriginal?dn.rejection:dn})}catch(on){Jr(on)}}};const Tr=Jn("unhandledPromiseRejectionHandler");function Jr(dn){ot.onUnhandledError(dn);try{const on=It[Tr];"function"==typeof on&&on.call(this,dn)}catch{}}function zr(dn){return dn&&dn.then}function Mi(dn){return dn}function Gr(dn){return bi.reject(dn)}const De=Jn("state"),ue=Jn("value"),Ve=Jn("finally"),dt=Jn("parentPromiseValue"),yt=Jn("parentPromiseState"),en="Promise.then",Qt=null,Gt=!0,Rn=!1,Ln=0;function mn(dn,on){return Tt=>{try{In(dn,on,Tt)}catch(tn){In(dn,!1,tn)}}}const Wn=function(){let dn=!1;return function(Tt){return function(){dn||(dn=!0,Tt.apply(null,arguments))}}},Ar="Promise resolved with itself",Mn=Jn("currentTaskTrace");function In(dn,on,Tt){const tn=Wn();if(dn===Tt)throw new TypeError(Ar);if(dn[De]===Qt){let ti=null;try{("object"==typeof Tt||"function"==typeof Tt)&&(ti=Tt&&Tt.then)}catch(ai){return tn(()=>{In(dn,!1,ai)})(),dn}if(on!==Rn&&Tt instanceof bi&&Tt.hasOwnProperty(De)&&Tt.hasOwnProperty(ue)&&Tt[De]!==Qt)Ke(Tt),In(dn,Tt[De],Tt[ue]);else if(on!==Rn&&"function"==typeof ti)try{ti.call(Tt,tn(mn(dn,on)),tn(mn(dn,!1)))}catch(ai){tn(()=>{In(dn,!1,ai)})()}else{dn[De]=on;const ai=dn[ue];if(dn[ue]=Tt,dn[Ve]===Ve&&on===Gt&&(dn[De]=dn[yt],dn[ue]=dn[dt]),on===Rn&&Tt instanceof Error){const zn=It.currentTask&&It.currentTask.data&&It.currentTask.data[ji];zn&&an(Tt,Mn,{configurable:!0,enumerable:!1,writable:!0,value:zn})}for(let zn=0;zn{try{const pi=dn[ue],Ui=!!Tt&&Ve===Tt[Ve];Ui&&(Tt[dt]=pi,Tt[yt]=ai);const Xi=on.run(zn,void 0,Ui&&zn!==Gr&&zn!==Mi?[]:[pi]);In(Tt,!0,Xi)}catch(pi){In(Tt,!1,pi)}},Tt)}const ei=function(){},_i=Ye.AggregateError;class bi{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(on){return on instanceof bi?on:In(new this(null),Gt,on)}static reject(on){return In(new this(null),Rn,on)}static withResolvers(){const on={};return on.promise=new bi((Tt,tn)=>{on.resolve=Tt,on.reject=tn}),on}static any(on){if(!on||"function"!=typeof on[Symbol.iterator])return Promise.reject(new _i([],"All promises were rejected"));const Tt=[];let tn=0;try{for(let zn of on)tn++,Tt.push(bi.resolve(zn))}catch{return Promise.reject(new _i([],"All promises were rejected"))}if(0===tn)return Promise.reject(new _i([],"All promises were rejected"));let ti=!1;const ai=[];return new bi((zn,pi)=>{for(let Ui=0;Ui{ti||(ti=!0,zn(Xi))},Xi=>{ai.push(Xi),tn--,0===tn&&(ti=!0,pi(new _i(ai,"All promises were rejected")))})})}static race(on){let Tt,tn,ti=new this((pi,Ui)=>{Tt=pi,tn=Ui});function ai(pi){Tt(pi)}function zn(pi){tn(pi)}for(let pi of on)zr(pi)||(pi=this.resolve(pi)),pi.then(ai,zn);return ti}static all(on){return bi.allWithCallback(on)}static allSettled(on){return(this&&this.prototype instanceof bi?this:bi).allWithCallback(on,{thenCallback:tn=>({status:"fulfilled",value:tn}),errorCallback:tn=>({status:"rejected",reason:tn})})}static allWithCallback(on,Tt){let tn,ti,ai=new this((Xi,Er)=>{tn=Xi,ti=Er}),zn=2,pi=0;const Ui=[];for(let Xi of on){zr(Xi)||(Xi=this.resolve(Xi));const Er=pi;try{Xi.then(vr=>{Ui[Er]=Tt?Tt.thenCallback(vr):vr,zn--,0===zn&&tn(Ui)},vr=>{Tt?(Ui[Er]=Tt.errorCallback(vr),zn--,0===zn&&tn(Ui)):ti(vr)})}catch(vr){ti(vr)}zn++,pi++}return zn-=2,0===zn&&tn(Ui),ai}constructor(on){const Tt=this;if(!(Tt instanceof bi))throw new Error("Must be an instanceof Promise.");Tt[De]=Qt,Tt[ue]=[];try{const tn=Wn();on&&on(tn(mn(Tt,Gt)),tn(mn(Tt,Rn)))}catch(tn){In(Tt,!1,tn)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return bi}then(on,Tt){let tn=this.constructor?.[Symbol.species];(!tn||"function"!=typeof tn)&&(tn=this.constructor||bi);const ti=new tn(ei),ai=It.current;return this[De]==Qt?this[ue].push(ai,ti,on,Tt):gt(this,ai,ti,on,Tt),ti}catch(on){return this.then(null,on)}finally(on){let Tt=this.constructor?.[Symbol.species];(!Tt||"function"!=typeof Tt)&&(Tt=bi);const tn=new Tt(ei);tn[Ve]=Ve;const ti=It.current;return this[De]==Qt?this[ue].push(ti,tn,on,on):gt(this,ti,tn,on,on),tn}}bi.resolve=bi.resolve,bi.reject=bi.reject,bi.race=bi.race,bi.all=bi.all;const io=Ye[kn]=Ye.Promise;Ye.Promise=bi;const mo=Jn("thenPatched");function Io(dn){const on=dn.prototype,Tt=St(on,"then");if(Tt&&(!1===Tt.writable||!Tt.configurable))return;const tn=on.then;on[ri]=tn,dn.prototype.then=function(ti,ai){return new bi((pi,Ui)=>{tn.call(this,pi,Ui)}).then(ti,ai)},dn[mo]=!0}return ot.patchThen=Io,io&&(Io(io),Pt(Ye,"fetch",dn=>function En(dn){return function(on,Tt){let tn=dn.apply(on,Tt);if(tn instanceof bi)return tn;let ti=tn.constructor;return ti[mo]||Io(ti),tn}}(dn))),Promise[It.__symbol__("uncaughtPromiseErrors")]=Hn,bi})})(et),function Zr(et){et.__load_patch("toString",Ye=>{const It=Function.prototype.toString,ot=we("OriginalDelegate"),St=we("Promise"),an=we("Error"),si=function(){if("function"==typeof this){const kn=this[ot];if(kn)return"function"==typeof kn?It.call(kn):Object.prototype.toString.call(kn);if(this===Promise){const ri=Ye[St];if(ri)return It.call(ri)}if(this===Error){const ri=Ye[an];if(ri)return It.call(ri)}}return It.call(this)};si[ot]=It,Function.prototype.toString=si;const Jn=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":Jn.call(this)}})}(et),function Ao(et){et.__load_patch("util",(Ye,It,ot)=>{const St=Li(Ye);ot.patchOnProperties=pt,ot.patchMethod=Pt,ot.bindArguments=He,ot.patchMacroTask=fn;const an=It.__symbol__("BLACK_LISTED_EVENTS"),si=It.__symbol__("UNPATCHED_EVENTS");Ye[si]&&(Ye[an]=Ye[si]),Ye[an]&&(It[an]=It[si]=Ye[an]),ot.patchEventPrototype=pr,ot.patchEventTarget=fr,ot.isIEOrEdge=ii,ot.ObjectDefineProperty=y,ot.ObjectGetOwnPropertyDescriptor=o,ot.ObjectCreate=U,ot.ArraySlice=L,ot.patchClass=Ut,ot.wrapWithCurrentZone=re,ot.filterProperties=Fl,ot.attachOriginToPatched=jn,ot._redefineProperty=Object.defineProperty,ot.patchCallbacks=ls,ot.getGlobalObjects=()=>({globalSources:Wt,zoneSymbolEventNames:cn,eventNames:St,isBrowser:We,isMix:ve,isNode:at,TRUE_STR:G,FALSE_STR:Q,ZONE_SYMBOL_PREFIX:ne,ADD_EVENT_LISTENER_STR:Y,REMOVE_EVENT_LISTENER_STR:V})})}(et)})(Zi),function Bs(et){et.__load_patch("legacy",Ye=>{const It=Ye[et.__symbol__("legacyPatch")];It&&It()}),et.__load_patch("timers",Ye=>{const ot="clear";Mr(Ye,"set",ot,"Timeout"),Mr(Ye,"set",ot,"Interval"),Mr(Ye,"set",ot,"Immediate")}),et.__load_patch("requestAnimationFrame",Ye=>{Mr(Ye,"request","cancel","AnimationFrame"),Mr(Ye,"mozRequest","mozCancel","AnimationFrame"),Mr(Ye,"webkitRequest","webkitCancel","AnimationFrame")}),et.__load_patch("blocking",(Ye,It)=>{const ot=["alert","prompt","confirm"];for(let St=0;Stfunction(Xt,kn){return It.current.run(si,Ye,kn,Hn)})}),et.__load_patch("EventTarget",(Ye,It,ot)=>{(function no(et,Ye){Ye.patchEventPrototype(et,Ye)})(Ye,ot),function Qr(et,Ye){if(Zone[Ye.symbol("patchEventTarget")])return;const{eventNames:It,zoneSymbolEventNames:ot,TRUE_STR:St,FALSE_STR:an,ZONE_SYMBOL_PREFIX:si}=Ye.getGlobalObjects();for(let Hn=0;Hn{Ut("MutationObserver"),Ut("WebKitMutationObserver")}),et.__load_patch("IntersectionObserver",(Ye,It,ot)=>{Ut("IntersectionObserver")}),et.__load_patch("FileReader",(Ye,It,ot)=>{Ut("FileReader")}),et.__load_patch("on_property",(Ye,It,ot)=>{!function Ii(et,Ye){if(at&&!ve||Zone[et.symbol("patchEvents")])return;const It=Ye.__Zone_ignore_on_properties;let ot=[];if(We){const St=window;ot=ot.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const an=function Di(){try{const et=Ie.navigator.userAgent;if(-1!==et.indexOf("MSIE ")||-1!==et.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:St,ignoreProperties:["error"]}]:[];as(St,Li(St),It&&It.concat(an),Z(St))}ot=ot.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let St=0;St{!function br(et,Ye){const{isBrowser:It,isMix:ot}=Ye.getGlobalObjects();(It||ot)&&et.customElements&&"customElements"in et&&Ye.patchCallbacks(Ye,et.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"])}(Ye,ot)}),et.__load_patch("XHR",(Ye,It)=>{!function Xt(kn){const ri=kn.XMLHttpRequest;if(!ri)return;const ji=ri.prototype;let Jr=ji[X],zr=ji[z];if(!Jr){const Ln=kn.XMLHttpRequestEventTarget;if(Ln){const mn=Ln.prototype;Jr=mn[X],zr=mn[z]}}const Mi="readystatechange",Gr="scheduled";function De(Ln){const mn=Ln.data,Wn=mn.target;Wn[si]=!1,Wn[Hn]=!1;const Ar=Wn[an];Jr||(Jr=Wn[X],zr=Wn[z]),Ar&&zr.call(Wn,Mi,Ar);const Mn=Wn[an]=()=>{if(Wn.readyState===Wn.DONE)if(!mn.aborted&&Wn[si]&&Ln.state===Gr){const pn=Wn[It.__symbol__("loadfalse")];if(0!==Wn.status&&pn&&pn.length>0){const Ke=Ln.invoke;Ln.invoke=function(){const gt=Wn[It.__symbol__("loadfalse")];for(let Dn=0;Dnfunction(Ln,mn){return Ln[St]=0==mn[2],Ln[Jn]=mn[1],dt.apply(Ln,mn)}),en=we("fetchTaskAborting"),Qt=we("fetchTaskScheduling"),Gt=Pt(ji,"send",()=>function(Ln,mn){if(!0===It.current[Qt]||Ln[St])return Gt.apply(Ln,mn);{const Wn={target:Ln,url:Ln[Jn],isPeriodic:!1,args:mn,aborted:!1},Ar=me("XMLHttpRequest.send",ue,Wn,De,Ve);Ln&&!0===Ln[Hn]&&!Wn.aborted&&Ar.state===Gr&&Ar.invoke()}}),Rn=Pt(ji,"abort",()=>function(Ln,mn){const Wn=function Tr(Ln){return Ln[ot]}(Ln);if(Wn&&"string"==typeof Wn.type){if(null==Wn.cancelFn||Wn.data&&Wn.data.aborted)return;Wn.zone.cancelTask(Wn)}else if(!0===It.current[en])return Rn.apply(Ln,mn)})}(Ye);const ot=we("xhrTask"),St=we("xhrSync"),an=we("xhrListener"),si=we("xhrScheduled"),Jn=we("xhrURL"),Hn=we("xhrErrorBeforeScheduled")}),et.__load_patch("geolocation",Ye=>{Ye.navigator&&Ye.navigator.geolocation&&function qe(et,Ye){const It=et.constructor.name;for(let ot=0;ot{const Hn=function(){return Jn.apply(this,He(arguments,It+"."+St))};return jn(Hn,Jn),Hn})(an)}}}(Ye.navigator.geolocation,["getCurrentPosition","watchPosition"])}),et.__load_patch("PromiseRejectionEvent",(Ye,It)=>{function ot(St){return function(an){Hr(Ye,St).forEach(Jn=>{const Hn=Ye.PromiseRejectionEvent;if(Hn){const Xt=new Hn(St,{promise:an.promise,reason:an.rejection});Jn.invoke(Xt)}})}}Ye.PromiseRejectionEvent&&(It[we("unhandledPromiseRejectionHandler")]=ot("unhandledrejection"),It[we("rejectionHandledHandler")]=ot("rejectionhandled"))}),et.__load_patch("queueMicrotask",(Ye,It,ot)=>{!function Ti(et,Ye){Ye.patchMethod(et,"queueMicrotask",It=>function(ot,St){Zone.current.scheduleMicroTask("queueMicrotask",St[0])})}(Ye,ot)})}(Zi)},1190:nt=>{nt.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:nt=>{nt.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:nt=>{nt.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:nt=>{nt.exports="varying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}\n"},9969:(nt,Ee,v)=>{"use strict";v.d(Ee,{FX:()=>We,If:()=>j,K2:()=>L,MA:()=>Q,Os:()=>U,P:()=>re,hZ:()=>y,i0:()=>Z,iF:()=>Y,kY:()=>z,kp:()=>o,sf:()=>je,ui:()=>at,wk:()=>V});var j=function(ve){return ve[ve.State=0]="State",ve[ve.Transition=1]="Transition",ve[ve.Sequence=2]="Sequence",ve[ve.Group=3]="Group",ve[ve.Animate=4]="Animate",ve[ve.Keyframes=5]="Keyframes",ve[ve.Style=6]="Style",ve[ve.Trigger=7]="Trigger",ve[ve.Reference=8]="Reference",ve[ve.AnimateChild=9]="AnimateChild",ve[ve.AnimateRef=10]="AnimateRef",ve[ve.Query=11]="Query",ve[ve.Stagger=12]="Stagger",ve}(j||{});const o="*";function y(ve,he){return{type:j.Trigger,name:ve,definitions:he,options:{}}}function Z(ve,he=null){return{type:j.Animate,styles:he,timings:ve}}function U(ve,he=null){return{type:j.Group,steps:ve,options:he}}function L(ve,he=null){return{type:j.Sequence,steps:ve,options:he}}function Y(ve){return{type:j.Style,styles:ve,offset:null}}function V(ve,he,Qe){return{type:j.State,name:ve,styles:he,options:Qe}}function z(ve,he,Qe=null){return{type:j.Transition,expr:ve,animation:he,options:Qe}}function Q(ve=null){return{type:j.AnimateChild,options:ve}}function re(ve,he,Qe=null){return{type:j.Query,selector:ve,animation:he,options:Qe}}class je{constructor(he=0,Qe=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=he+Qe}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(he=>he()),this._onDoneFns=[])}onStart(he){this._originalOnStartFns.push(he),this._onStartFns.push(he)}onDone(he){this._originalOnDoneFns.push(he),this._onDoneFns.push(he)}onDestroy(he){this._onDestroyFns.push(he)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(he=>he()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(he=>he()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(he){this._position=this.totalTime?he*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(he){const Qe="start"==he?this._onStartFns:this._onDoneFns;Qe.forEach(Te=>Te()),Qe.length=0}}class at{constructor(he){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=he;let Qe=0,Te=0,Le=0;const pt=this.players.length;0==pt?queueMicrotask(()=>this._onFinish()):this.players.forEach(xt=>{xt.onDone(()=>{++Qe==pt&&this._onFinish()}),xt.onDestroy(()=>{++Te==pt&&this._onDestroy()}),xt.onStart(()=>{++Le==pt&&this._onStart()})}),this.totalTime=this.players.reduce((xt,Ut)=>Math.max(xt,Ut.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(he=>he()),this._onDoneFns=[])}init(){this.players.forEach(he=>he.init())}onStart(he){this._onStartFns.push(he)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(he=>he()),this._onStartFns=[])}onDone(he){this._onDoneFns.push(he)}onDestroy(he){this._onDestroyFns.push(he)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(he=>he.play())}pause(){this.players.forEach(he=>he.pause())}restart(){this.players.forEach(he=>he.restart())}finish(){this._onFinish(),this.players.forEach(he=>he.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(he=>he.destroy()),this._onDestroyFns.forEach(he=>he()),this._onDestroyFns=[])}reset(){this.players.forEach(he=>he.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(he){const Qe=he*this.totalTime;this.players.forEach(Te=>{const Le=Te.totalTime?Math.min(1,Qe/Te.totalTime):1;Te.setPosition(Le)})}getPosition(){const he=this.players.reduce((Qe,Te)=>null===Qe||Te.totalTime>Qe.totalTime?Te:Qe,null);return null!=he?he.getPosition():0}beforeDestroy(){this.players.forEach(he=>{he.beforeDestroy&&he.beforeDestroy()})}triggerCallback(he){const Qe="start"==he?this._onStartFns:this._onDoneFns;Qe.forEach(Te=>Te()),Qe.length=0}}const We="!"},4438:(nt,Ee,v)=>{"use strict";function j(a,c){return Object.is(a,c)}v.d(Ee,{bc$:()=>MV,sZ2:()=>by,hnV:()=>uw,o8S:()=>ic,BIS:()=>$P,gRc:()=>BB,OM3:()=>Wy,Ocv:()=>$L,abz:()=>hh,Z63:()=>mc,aKT:()=>Fi,uvJ:()=>ll,zcH:()=>Mc,bkB:()=>Gl,y_5:()=>fA,nKC:()=>En,zZn:()=>ps,_q3:()=>cS,MKu:()=>dS,xe9:()=>Iu,Vns:()=>pp,SKi:()=>so,Agw:()=>vy,PLl:()=>uT,rOR:()=>hd,sFG:()=>zH,_9s:()=>xI,czy:()=>PC,C4Q:()=>Qy,NYb:()=>XE,giA:()=>cw,RxE:()=>ub,c1b:()=>Xy,gXe:()=>gc,mal:()=>h1,Tzd:()=>CM,Af3:()=>Ff,tdH:()=>fF,L39:()=>ko,EWP:()=>ik,sbv:()=>eN,w6W:()=>hN,QZP:()=>rk,Rfq:()=>Hn,WQX:()=>Pn,naY:()=>ZL,Hps:()=>VI,EmA:()=>_c,Udg:()=>Lc,N4e:()=>D0,vPA:()=>XO,O8t:()=>Wh,An2:()=>du,H3F:()=>QL,H8p:()=>F0,KH2:()=>dg,TgB:()=>zl,wOt:()=>Zt,WHO:()=>aw,e01:()=>lw,H5H:()=>iE,Zy3:()=>Mr,mq5:()=>cg,JZv:()=>Zi,TL3:()=>fS,jNT:()=>mb,zjR:()=>dw,ngT:()=>Fa,TL$:()=>tp,Tbb:()=>St,nM4:()=>Po,Vt3:()=>eF,GFd:()=>oF,OA$:()=>Cn,Jv_:()=>nB,aNF:()=>_g,R7$:()=>j4,BMQ:()=>v1,HbH:()=>xp,ZvI:()=>Or,STu:()=>rg,AVh:()=>wd,BUC:()=>HF,vxM:()=>YM,wni:()=>vE,C6U:()=>H1,VBU:()=>yA,FsC:()=>xa,jDH:()=>Mn,G2t:()=>pn,$C:()=>oa,EJ8:()=>us,rXU:()=>wm,nrm:()=>JM,eu8:()=>eE,bVm:()=>I1,qex:()=>T1,k0s:()=>S1,j41:()=>E1,RV6:()=>tE,xGo:()=>ry,Mr5:()=>nE,KVO:()=>ds,kS0:()=>dd,QTQ:()=>Yl,bIt:()=>L1,lsd:()=>mg,joV:()=>Zv,qSk:()=>Kv,XpG:()=>MD,nI1:()=>ML,bMT:()=>xu,i5U:()=>ua,ii3:()=>Td,SdG:()=>SD,NAR:()=>ED,Y8G:()=>jM,FS9:()=>bE,Mz_:()=>V1,lJ4:()=>cb,eq3:()=>IE,l_i:()=>FE,NyB:()=>ND,mGM:()=>OD,sdS:()=>LD,Dyx:()=>$F,Z7z:()=>jF,fX1:()=>GF,Vm6:()=>zF,Njj:()=>RA,EBC:()=>E4,tSv:()=>M4,eBV:()=>Y0,npT:()=>_m,B4B:()=>ap,Aen:()=>gs,xc7:()=>wr,DNE:()=>pu,C5r:()=>PE,EFF:()=>WD,JRh:()=>xE,SpI:()=>z1,Lme:()=>sb,LHq:()=>YD,DH7:()=>gg,mxI:()=>j1,R50:()=>ab,GBs:()=>PD});let o=null,y=!1,Z=1;const U=Symbol("SIGNAL");function L(a){const c=o;return o=a,c}function Y(){return o}const z={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 G(a){if(y)throw new Error("");if(null===o)return;o.consumerOnSignalRead(a);const c=o.nextProducerIndex++;je(o),ca.nextProducerIndex;)a.producerNode.pop(),a.producerLastReadVersion.pop(),a.producerIndexOfThis.pop()}}function Ne(a){je(a);for(let c=0;c0}function je(a){a.producerNode??=[],a.producerIndexOfThis??=[],a.producerLastReadVersion??=[]}function at(a){a.liveConsumerNode??=[],a.liveConsumerIndexOfThis??=[]}function We(a){return void 0!==a.producerNode}function ve(a){const c=Object.create(Le);c.computation=a;const d=()=>{if(ne(c),G(c),c.value===Te)throw c.error;return c.value};return d[U]=c,d}const he=Symbol("UNSET"),Qe=Symbol("COMPUTING"),Te=Symbol("ERRORED"),Le={...z,value:he,dirty:!0,error:null,equal:j,producerMustRecompute:a=>a.value===he||a.value===Qe,producerRecomputeValue(a){if(a.value===Qe)throw new Error("Detected cycle in computations.");const c=a.value;a.value=Qe;const d=Be(a);let h;try{h=a.computation()}catch(A){h=Te,a.error=A}finally{Ie(a,d)}c!==he&&c!==Te&&h!==Te&&a.equal(c,h)?a.value=c:(a.value=h,a.version++)}};let xt=function pt(){throw new Error};function Ut(){xt()}let fn=null;function Di(a,c){me()||Ut(),a.equal(a.value,c)||(a.value=c,function Rt(a){a.version++,function Q(){Z++}(),re(a),fn?.()}(a))}const rt={...z,equal:j,value:void 0};const cn=()=>{},Wt={...z,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:a=>{null!==a.schedule&&a.schedule(a.ref)},hasRun:!1,cleanupFn:cn};var oi=v(4412),Yi=v(1413),fr=v(8359),Hr=v(6354);const Ti="https://g.co/ng/security#xss";class Zt extends Error{constructor(c,d){super(Mr(c,d)),this.code=c}}function Mr(a,c){return`NG0${Math.abs(a)}${c?": "+c:""}`}function Li(a){return{toString:a}.toString()}const Bs="__parameters__";function Ao(a,c,d){return Li(()=>{const h=function ls(a){return function(...d){if(a){const h=a(...d);for(const A in h)this[A]=h[A]}}}(c);function A(...g){if(this instanceof A)return h.apply(this,g),this;const x=new A(...g);return B.annotation=x,B;function B(k,H,K){const fe=k.hasOwnProperty(Bs)?k[Bs]:Object.defineProperty(k,Bs,{value:[]})[Bs];for(;fe.length<=K;)fe.push(null);return(fe[K]=fe[K]||[]).push(x),k}}return d&&(A.prototype=Object.create(d.prototype)),A.prototype.ngMetadataName=a,A.annotationCls=A,A})}const Zi=globalThis;function It(a){for(let c in a)if(a[c]===It)return c;throw Error("Could not find renamed property on target object.")}function ot(a,c){for(const d in c)c.hasOwnProperty(d)&&!a.hasOwnProperty(d)&&(a[d]=c[d])}function St(a){if("string"==typeof a)return a;if(Array.isArray(a))return"["+a.map(St).join(", ")+"]";if(null==a)return""+a;if(a.overriddenName)return`${a.overriddenName}`;if(a.name)return`${a.name}`;const c=a.toString();if(null==c)return""+c;const d=c.indexOf("\n");return-1===d?c:c.substring(0,d)}function an(a,c){return null==a||""===a?null===c?"":c:null==c||""===c?a:a+" "+c}const Jn=It({__forward_ref__:It});function Hn(a){return a.__forward_ref__=Hn,a.toString=function(){return St(this())},a}function Xt(a){return kn(a)?a():a}function kn(a){return"function"==typeof a&&a.hasOwnProperty(Jn)&&a.__forward_ref__===Hn}function Mn(a){return{token:a.token,providedIn:a.providedIn||null,factory:a.factory,value:void 0}}function pn(a){return{providers:a.providers||[],imports:a.imports||[]}}function Ke(a){return Dn(a,bi)||Dn(a,mo)}function Dn(a,c){return a.hasOwnProperty(c)?a[c]:null}function _i(a){return a&&(a.hasOwnProperty(io)||a.hasOwnProperty(Io))?a[io]:null}const bi=It({\u0275prov:It}),io=It({\u0275inj:It}),mo=It({ngInjectableDef:It}),Io=It({ngInjectorDef:It});class En{constructor(c,d){this._desc=c,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof d?this.__NG_ELEMENT_ID__=d:void 0!==d&&(this.\u0275prov=Mn({token:this,providedIn:d.providedIn||"root",factory:d.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function Er(a){return a&&!!a.\u0275providers}const vr=It({\u0275cmp:It}),cs=It({\u0275dir:It}),Xo=It({\u0275pipe:It}),rl=It({\u0275mod:It}),No=It({\u0275fac:It}),ra=It({__NG_ELEMENT_ID__:It}),ga=It({__NG_ENV_ID__:It});function vi(a){return"string"==typeof a?a:null==a?"":String(a)}function Qn(a,c){throw new Zt(-201,!1)}var Ei=function(a){return a[a.Default=0]="Default",a[a.Host=1]="Host",a[a.Self=2]="Self",a[a.SkipSelf=4]="SkipSelf",a[a.Optional=8]="Optional",a}(Ei||{});let Lo;function yf(){return Lo}function Rs(a){const c=Lo;return Lo=a,c}function uA(a,c,d){const h=Ke(a);return h&&"root"==h.providedIn?void 0===h.value?h.value=h.factory():h.value:d&Ei.Optional?null:void 0!==c?c:void Qn()}const Wu={},ba="__NG_DI_FLAG__",Xu="ngTempTokenPath",v0=/\n/gm,wf="__source";let Ud;function pc(a){const c=Ud;return Ud=a,c}function _v(a,c=Ei.Default){if(void 0===Ud)throw new Zt(-203,!1);return null===Ud?uA(a,void 0,c):Ud.get(a,c&Ei.Optional?null:void 0,c)}function ds(a,c=Ei.Default){return(yf()||_v)(Xt(a),c)}function Pn(a,c=Ei.Default){return ds(a,y0(c))}function y0(a){return typeof a>"u"||"number"==typeof a?a:(a.optional&&8)|(a.host&&1)|(a.self&&2)|(a.skipSelf&&4)}function va(a){const c=[];for(let d=0;d({token:a})),-1),xf=Yu(Ao("Optional"),8),w0=Yu(Ao("SkipSelf"),4);function ol(a,c){return a.hasOwnProperty(No)?a[No]:null}function Ac(a,c){a.forEach(d=>Array.isArray(d)?Ac(d,c):c(d))}function Qx(a,c,d){c>=a.length?a.push(d):a.splice(c,0,d)}function Cf(a,c){return c>=a.length-1?a.pop():a.splice(c,1)[0]}function wa(a,c,d){let h=Mf(a,c);return h>=0?a[1|h]=d:(h=~h,function C0(a,c,d,h){let A=a.length;if(A==c)a.push(d,h);else if(1===A)a.push(h,a[0]),a[0]=d;else{for(A--,a.push(a[A-1],a[A]);A>c;)a[A]=a[A-2],A--;a[c]=d,a[c+1]=h}}(a,h,c,d)),h}function M0(a,c){const d=Mf(a,c);if(d>=0)return a[1|d]}function Mf(a,c){return function yv(a,c,d){let h=0,A=a.length>>d;for(;A!==h;){const g=h+(A-h>>1),x=a[g<c?A=g:h=g+1}return~(A<c){x=g-1;break}}}for(;g-1){let g;for(;++Ag?"":A[K+1].toLowerCase(),2&h&&H!==fe){if(yi(h))return!1;x=!0}}}}else{if(!x&&!yi(h)&&!yi(k))return!1;if(x&&yi(k))continue;x=!1,h=k|1&h}}return yi(h)||x}function yi(a){return!(1&a)}function Gx(a,c,d,h){if(null===c)return-1;let A=0;if(h||!d){let g=!1;for(;A-1)for(d++;d0?'="'+B+'"':"")+"]"}else 8&h?A+="."+x:4&h&&(A+=" "+x);else""!==A&&!yi(x)&&(c+=Mv(g,A),A=""),h=x,g=g||!yi(h);d++}return""!==A&&(c+=Mv(g,A)),c}function yA(a){return Li(()=>{const c=qx(a),d={...c,decls:a.decls,vars:a.vars,template:a.template,consts:a.consts||null,ngContentSelectors:a.ngContentSelectors,onPush:a.changeDetection===gA.OnPush,directiveDefs:null,pipeDefs:null,dependencies:c.standalone&&a.dependencies||null,getStandaloneInjector:null,signals:a.signals??!1,data:a.data||{},encapsulation:a.encapsulation||gc.Emulated,styles:a.styles||Ir,_:null,schemas:a.schemas||null,tView:null,id:""};Yc(d);const h=a.dependencies;return d.directiveDefs=Ca(h,!1),d.pipeDefs=Ca(h,!0),d.id=function Wx(a){let c=0;const d=[a.selectors,a.ngContentSelectors,a.hostVars,a.hostAttrs,a.consts,a.vars,a.decls,a.encapsulation,a.standalone,a.signals,a.exportAs,JSON.stringify(a.inputs),JSON.stringify(a.outputs),Object.getOwnPropertyNames(a.type.prototype),!!a.contentQueries,!!a.viewQuery].join("|");for(const A of d)c=Math.imul(31,c)+A.charCodeAt(0)|0;return c+=2147483648,"c"+c}(d),d})}function T0(a){return $i(a)||Uo(a)}function Sv(a){return null!==a}function oa(a){return Li(()=>({type:a.type,bootstrap:a.bootstrap||Ir,declarations:a.declarations||Ir,imports:a.imports||Ir,exports:a.exports||Ir,transitiveCompileScopes:null,schemas:a.schemas||null,id:a.id||null}))}function al(a,c){if(null==a)return Dl;const d={};for(const h in a)if(a.hasOwnProperty(h)){const A=a[h];let g,x,B=Wc.None;Array.isArray(A)?(B=A[0],g=A[1],x=A[2]??g):(g=A,x=A),c?(d[g]=B!==Wc.None?[h,B]:h,c[g]=x):d[g]=h}return d}function xa(a){return Li(()=>{const c=qx(a);return Yc(c),c})}function us(a){return{type:a.type,name:a.name,factory:null,pure:!1!==a.pure,standalone:!0===a.standalone,onDestroy:a.type.prototype.ngOnDestroy||null}}function $i(a){return a[vr]||null}function Uo(a){return a[cs]||null}function Ko(a){return a[Xo]||null}function qx(a){const c={};return{type:a.type,providersResolver:null,factory:null,hostBindings:a.hostBindings||null,hostVars:a.hostVars||0,hostAttrs:a.hostAttrs||null,contentQueries:a.contentQueries||null,declaredInputs:c,inputTransforms:null,inputConfig:a.inputs||Dl,exportAs:a.exportAs||null,standalone:!0===a.standalone,signals:!0===a.signals,selectors:a.selectors||Ir,viewQuery:a.viewQuery||null,features:a.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:al(a.inputs,c),outputs:al(a.outputs),debugInfo:null}}function Yc(a){a.features?.forEach(c=>c(a))}function Ca(a,c){if(!a)return null;const d=c?Ko:T0;return()=>("function"==typeof a?a():a).map(h=>d(h)).filter(Sv)}function _c(a){return{\u0275providers:a}}function Gd(...a){return{\u0275providers:Iv(0,a),\u0275fromNgModule:!0}}function Iv(a,...c){const d=[],h=new Set;let A;const g=x=>{d.push(x)};return Ac(c,x=>{const B=x;Ma(B,g,[],h)&&(A||=[],A.push(B))}),void 0!==A&&Xx(A,g),d}function Xx(a,c){for(let d=0;d{c(g,h)})}}function Ma(a,c,d,h){if(!(a=Xt(a)))return!1;let A=null,g=_i(a);const x=!g&&$i(a);if(g||x){if(x&&!x.standalone)return!1;A=a}else{const k=a.ngModule;if(g=_i(k),!g)return!1;A=k}const B=h.has(A);if(x){if(B)return!1;if(h.add(A),x.dependencies){const k="function"==typeof x.dependencies?x.dependencies():x.dependencies;for(const H of k)Ma(H,c,d,h)}}else{if(!g)return!1;{if(null!=g.imports&&!B){let H;h.add(A);try{Ac(g.imports,K=>{Ma(K,c,d,h)&&(H||=[],H.push(K))})}finally{}void 0!==H&&Xx(H,c)}if(!B){const H=ol(A)||(()=>new A);c({provide:A,useFactory:H,deps:Ir},A),c({provide:E0,useValue:A,multi:!0},A),c({provide:mc,useValue:()=>ds(A),multi:!0},A)}const k=g.providers;if(null!=k&&!B){const H=a;Fv(k,K=>{c(K,H)})}}}return A!==a&&void 0!==a.providers}function Fv(a,c){for(let d of a)Er(d)&&(d=d.\u0275providers),Array.isArray(d)?Fv(d,c):c(d)}const J2=It({provide:String,useValue:It});function Ef(a){return null!==a&&"object"==typeof a&&J2 in a}function Zc(a){return"function"==typeof a}const F0=new En(""),Sf={},Yx={};let wA;function Tf(){return void 0===wA&&(wA=new mA),wA}class ll{}class Jc extends ll{get destroyed(){return this._destroyed}constructor(c,d,h,A){super(),this.parent=d,this.source=h,this.scopes=A,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,Rv(c,x=>this.processProvider(x)),this.records.set(zx,eh(void 0,this)),A.has("environment")&&this.records.set(ll,eh(void 0,this));const g=this.records.get(F0);null!=g&&"string"==typeof g.value&&this.scopes.add(g.value),this.injectorDefTypes=new Set(this.get(E0,Ir,Ei.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const c=L(null);try{for(const h of this._ngOnDestroyHooks)h.ngOnDestroy();const d=this._onDestroyHooks;this._onDestroyHooks=[];for(const h of d)h()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),L(c)}}onDestroy(c){return this.assertNotDestroyed(),this._onDestroyHooks.push(c),()=>this.removeOnDestroy(c)}runInContext(c){this.assertNotDestroyed();const d=pc(this),h=Rs(void 0);try{return c()}finally{pc(d),Rs(h)}}get(c,d=Wu,h=Ei.Default){if(this.assertNotDestroyed(),c.hasOwnProperty(ga))return c[ga](this);h=y0(h);const g=pc(this),x=Rs(void 0);try{if(!(h&Ei.SkipSelf)){let k=this.records.get(c);if(void 0===k){const H=function iT(a){return"function"==typeof a||"object"==typeof a&&a instanceof En}(c)&&Ke(c);k=H&&this.injectableDefInScope(H)?eh(Bv(c),Sf):null,this.records.set(c,k)}if(null!=k)return this.hydrate(c,k)}return(h&Ei.Self?Tf():this.parent).get(c,d=h&Ei.Optional&&d===Wu?null:d)}catch(B){if("NullInjectorError"===B.name){if((B[Xu]=B[Xu]||[]).unshift(St(c)),g)throw B;return function Vx(a,c,d,h){const A=a[Xu];throw c[wf]&&A.unshift(c[wf]),a.message=function bv(a,c,d,h=null){a=a&&"\n"===a.charAt(0)&&"\u0275"==a.charAt(1)?a.slice(2):a;let A=St(c);if(Array.isArray(c))A=c.map(St).join(" -> ");else if("object"==typeof c){let g=[];for(let x in c)if(c.hasOwnProperty(x)){let B=c[x];g.push(x+":"+("string"==typeof B?JSON.stringify(B):St(B)))}A=`{${g.join(", ")}}`}return`${d}${h?"("+h+")":""}[${A}]: ${a.replace(v0,"\n ")}`}("\n"+a.message,A,d,h),a.ngTokenPath=A,a[Xu]=null,a}(B,c,"R3InjectorError",this.source)}throw B}finally{Rs(x),pc(g)}}resolveInjectorInitializers(){const c=L(null),d=pc(this),h=Rs(void 0);try{const g=this.get(mc,Ir,Ei.Self);for(const x of g)x()}finally{pc(d),Rs(h),L(c)}}toString(){const c=[],d=this.records;for(const h of d.keys())c.push(St(h));return`R3Injector[${c.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Zt(205,!1)}processProvider(c){let d=Zc(c=Xt(c))?c:Xt(c&&c.provide);const h=function kv(a){return Ef(a)?eh(void 0,a.useValue):eh(Zx(a),Sf)}(c);if(!Zc(c)&&!0===c.multi){let A=this.records.get(d);A||(A=eh(void 0,Sf,!0),A.factory=()=>va(A.multi),this.records.set(d,A)),d=c,A.multi.push(c)}this.records.set(d,h)}hydrate(c,d){const h=L(null);try{return d.value===Sf&&(d.value=Yx,d.value=d.factory()),"object"==typeof d.value&&d.value&&function nT(a){return null!==a&&"object"==typeof a&&"function"==typeof a.ngOnDestroy}(d.value)&&this._ngOnDestroyHooks.add(d.value),d.value}finally{L(h)}}injectableDefInScope(c){if(!c.providedIn)return!1;const d=Xt(c.providedIn);return"string"==typeof d?"any"===d||this.scopes.has(d):this.injectorDefTypes.has(d)}removeOnDestroy(c){const d=this._onDestroyHooks.indexOf(c);-1!==d&&this._onDestroyHooks.splice(d,1)}}function Bv(a){const c=Ke(a),d=null!==c?c.factory:ol(a);if(null!==d)return d;if(a instanceof En)throw new Zt(204,!1);if(a instanceof Function)return function eT(a){if(a.length>0)throw new Zt(204,!1);const d=function ei(a){return a&&(a[bi]||a[mo])||null}(a);return null!==d?()=>d.factory(a):()=>new a}(a);throw new Zt(204,!1)}function Zx(a,c,d){let h;if(Zc(a)){const A=Xt(a);return ol(A)||Bv(A)}if(Ef(a))h=()=>Xt(a.useValue);else if(function I0(a){return!(!a||!a.useFactory)}(a))h=()=>a.useFactory(...va(a.deps||[]));else if(function Kx(a){return!(!a||!a.useExisting)}(a))h=()=>ds(Xt(a.useExisting));else{const A=Xt(a&&(a.useClass||a.provide));if(!function tT(a){return!!a.deps}(a))return ol(A)||Bv(A);h=()=>new A(...va(a.deps))}return h}function eh(a,c,d=!1){return{factory:a,value:c,multi:d?[]:void 0}}function Rv(a,c){for(const d of a)Array.isArray(d)?Rv(d,c):d&&Er(d)?Rv(d.\u0275providers,c):c(d)}function D0(a,c){a instanceof Jc&&a.assertNotDestroyed();const h=pc(a),A=Rs(void 0);try{return c()}finally{pc(h),Rs(A)}}function If(){return void 0!==yf()||null!=function Ku(){return Ud}()}function Ff(a){if(!If())throw new Zt(-203,!1)}const ro=0,Jt=1,wi=2,$o=3,cl=4,ws=5,$s=6,th=7,oo=8,Vo=9,Va=10,Oi=11,jd=12,nC=13,$d=14,_o=15,vc=16,qd=17,dl=18,Bl=19,Ov=20,td=21,CA=22,Ha=23,ui=25,MA=1,kl=7,nh=9,Ho=10;var R0=function(a){return a[a.None=0]="None",a[a.HasTransplantedViews=2]="HasTransplantedViews",a}(R0||{});function hs(a){return Array.isArray(a)&&"object"==typeof a[MA]}function Os(a){return Array.isArray(a)&&!0===a[MA]}function P0(a){return!!(4&a.flags)}function ih(a){return a.componentOffset>-1}function O0(a){return!(1&~a.flags)}function Rl(a){return!!a.template}function SA(a){return!!(512&a[wi])}class sT{constructor(c,d,h){this.previousValue=c,this.currentValue=d,this.firstChange=h}isFirstChange(){return this.firstChange}}function H0(a,c,d,h){null!==c?c.applyValueToInputSignal(c,h):a[d]=h}function Cn(){return Xd}function Xd(a){return a.type.prototype.ngOnChanges&&(a.setInput=Ai),Xr}function Xr(){const a=Lv(this),c=a?.current;if(c){const d=a.previous;if(d===Dl)a.previous=c;else for(let h in c)d[h]=c[h];a.current=null,this.ngOnChanges(c)}}function Ai(a,c,d,h,A){const g=this.declaredInputs[h],x=Lv(a)||function IA(a,c){return a[un]=c}(a,{previous:Dl,current:null}),B=x.current||(x.current={}),k=x.previous,H=k[g];B[g]=new sT(H&&H.currentValue,d,k===Dl),H0(a,c,A,d)}Cn.ngInherit=!0;const un="__ngSimpleChanges__";function Lv(a){return a[un]||null}const Pl=function(a,c,d){},Of="svg";function ar(a){for(;Array.isArray(a);)a=a[ro];return a}function Nf(a,c){return ar(c[a])}function sa(a,c){return ar(c[a.index])}function Fr(a,c){return a.data[c]}function sr(a,c){return a[c]}function Ws(a,c){const d=c[a];return hs(d)?d:d[ro]}function z0(a){return!(128&~a[wi])}function Qa(a,c){return null==c?null:a[c]}function Uv(a){a[qd]=0}function Vv(a){1024&a[wi]||(a[wi]|=1024,z0(a)&&j0(a))}function G0(a){return!!(9216&a[wi]||a[Ha]?.dirty)}function Hv(a){a[Va].changeDetectionScheduler?.notify(8),64&a[wi]&&(a[wi]|=1024),G0(a)&&j0(a)}function j0(a){a[Va].changeDetectionScheduler?.notify(0);let c=yc(a);for(;null!==c&&!(8192&c[wi])&&(c[wi]|=8192,z0(c));)c=yc(c)}function DA(a,c){if(!(256&~a[wi]))throw new Zt(911,!1);null===a[td]&&(a[td]=[]),a[td].push(c)}function yc(a){const c=a[$o];return Os(c)?c[$o]:c}const Ni={lFrame:oh(null),bindingsEnabled:!0,skipHydrationRootTNode:null};let $0=!1;function kA(){return Ni.bindingsEnabled}function nd(){return null!==Ni.skipHydrationRootTNode}function Ot(){return Ni.lFrame.lView}function or(){return Ni.lFrame.tView}function Y0(a){return Ni.lFrame.contextLView=a,a[oo]}function RA(a){return Ni.lFrame.contextLView=null,a}function jr(){let a=jv();for(;null!==a&&64===a.type;)a=a.parent;return a}function jv(){return Ni.lFrame.currentTNode}function Mo(a,c){const d=Ni.lFrame;d.currentTNode=a,d.isParent=c}function eo(){return Ni.lFrame.isParent}function OA(){Ni.lFrame.isParent=!1}function $v(){return $0}function e_(a){$0=a}function Ns(){const a=Ni.lFrame;let c=a.bindingRootIndex;return-1===c&&(c=a.bindingRootIndex=a.tView.bindingStartIndex),c}function Ll(){return Ni.lFrame.bindingIndex}function ul(){return Ni.lFrame.bindingIndex++}function Pr(a){const c=Ni.lFrame,d=c.bindingIndex;return c.bindingIndex=c.bindingIndex+a,d}function Vf(a,c){const d=Ni.lFrame;d.bindingIndex=d.bindingRootIndex=a,LA(c)}function LA(a){Ni.lFrame.currentDirectiveIndex=a}function Hf(){return Ni.lFrame.currentQueryIndex}function Ul(a){Ni.lFrame.currentQueryIndex=a}function t_(a){const c=a[Jt];return 2===c.type?c.declTNode:1===c.type?a[ws]:null}function n_(a,c,d){if(d&Ei.SkipSelf){let A=c,g=a;for(;!(A=A.parent,null!==A||d&Ei.Host||(A=t_(g),null===A||(g=g[$d],10&A.type))););if(null===A)return!1;c=A,a=g}const h=Ni.lFrame=VA();return h.currentTNode=c,h.lView=a,!0}function Qf(a){const c=VA(),d=a[Jt];Ni.lFrame=c,c.currentTNode=d.firstChild,c.lView=a,c.tView=d,c.contextLView=a,c.bindingIndex=d.bindingStartIndex,c.inI18n=!1}function VA(){const a=Ni.lFrame,c=null===a?null:a.child;return null===c?oh(a):c}function oh(a){const c={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:a,child:null,inI18n:!1};return null!==a&&(a.child=c),c}function Wv(){const a=Ni.lFrame;return Ni.lFrame=a.parent,a.currentTNode=null,a.lView=null,a}const hl=Wv;function HA(){const a=Wv();a.isParent=!0,a.tView=null,a.selectedIndex=-1,a.contextLView=null,a.elementDepthCount=0,a.currentDirectiveIndex=-1,a.currentNamespace=null,a.bindingRootIndex=-1,a.bindingIndex=-1,a.currentQueryIndex=0}function $n(){return Ni.lFrame.selectedIndex}function id(a){Ni.lFrame.selectedIndex=a}function Rr(){const a=Ni.lFrame;return Fr(a.tView,a.selectedIndex)}function Kv(){Ni.lFrame.currentNamespace=Of}function Zv(){!function aT(){Ni.lFrame.currentNamespace=null}()}let zf=!0;function sh(){return zf}function fl(a){zf=a}function zA(a,c){for(let d=c.directiveStart,h=c.directiveEnd;d=h)break}else c[k]<0&&(a[qd]+=65536),(B>14>16&&(3&a[wi])===c&&(a[wi]+=16384,Gf(B,g)):Gf(B,g)}const jf=-1;class GA{constructor(c,d,h){this.factory=c,this.resolving=!1,this.canSeeViewProviders=d,this.injectImpl=h}}const qf={};class Vl{constructor(c,d){this.injector=c,this.parentInjector=d}get(c,d,h){h=y0(h);const A=this.injector.get(c,qf,h);return A!==qf||d===qf?A:this.parentInjector.get(c,d,h)}}function Wf(a){return a!==jf}function od(a){return 32767&a}function Zd(a,c){let d=function jA(a){return a>>16}(a),h=c;for(;d>0;)h=h[$d],d--;return h}let qA=!0;function sd(a){const c=qA;return qA=a,c}const XA=255,KA=5;let YA=0;const za={};function Xf(a,c){const d=xc(a,c);if(-1!==d)return d;const h=c[Jt];h.firstCreatePass&&(a.injectorIndex=c.length,Jd(h.data,a),Jd(c,null),Jd(h.blueprint,null));const A=ad(a,c),g=a.injectorIndex;if(Wf(A)){const x=od(A),B=Zd(A,c),k=B[Jt].data;for(let H=0;H<8;H++)c[g+H]=B[x+H]|k[x+H]}return c[g+8]=A,g}function Jd(a,c){a.push(0,0,0,0,0,0,0,0,c)}function xc(a,c){return-1===a.injectorIndex||a.parent&&a.parent.injectorIndex===a.injectorIndex||null===c[a.injectorIndex+8]?-1:a.injectorIndex}function ad(a,c){if(a.parent&&-1!==a.parent.injectorIndex)return a.parent.injectorIndex;let d=0,h=null,A=c;for(;null!==A;){if(h=oy(A),null===h)return jf;if(d++,A=A[$d],-1!==h.injectorIndex)return h.injectorIndex|d<<16}return jf}function bo(a,c,d){!function i_(a,c,d){let h;"string"==typeof d?h=d.charCodeAt(0)||0:d.hasOwnProperty(ra)&&(h=d[ra]),null==h&&(h=d[ra]=YA++);const A=h&XA;c.data[a+(A>>KA)]|=1<=0?c&XA:pC:c}(d);if("function"==typeof g){if(!n_(c,a,h))return h&Ei.Host?eu(A,0,h):Hl(c,d,h,A);try{let x;if(x=g(h),null!=x||h&Ei.Optional)return x;Qn()}finally{hl()}}else if("number"==typeof g){let x=null,B=xc(a,c),k=jf,H=h&Ei.Host?c[_o][ws]:null;for((-1===B||h&Ei.SkipSelf)&&(k=-1===B?ad(a,c):c[B+8],k!==jf&&Cc(h,!1)?(x=c[Jt],B=od(k),c=Zd(k,c)):B=-1);-1!==B;){const K=c[Jt];if(ZA(g,B,K.data)){const fe=pl(B,c,d,x,h,H);if(fe!==za)return fe}k=c[B+8],k!==jf&&Cc(h,c[Jt].data[B+8]===H)&&ZA(g,B,c)?(x=K,B=od(k),c=Zd(k,c)):B=-1}}return A}function pl(a,c,d,h,A,g){const x=c[Jt],B=x.data[a+8],K=lh(B,x,d,null==h?ih(B)&&qA:h!=x&&!!(3&B.type),A&Ei.Host&&g===B);return null!==K?ld(c,x,K,B):za}function lh(a,c,d,h,A){const g=a.providerIndexes,x=c.data,B=1048575&g,k=a.directiveStart,K=g>>20,Re=A?B+K:a.directiveEnd;for(let Ge=h?B:B+K;Ge=k&&st.type===d)return Ge}if(A){const Ge=x[k];if(Ge&&Rl(Ge)&&Ge.type===d)return k}return null}function ld(a,c,d,h){let A=a[d];const g=c.data;if(function ty(a){return a instanceof GA}(A)){const x=A;x.resolving&&function _a(a,c){throw c&&c.join(" > "),new Zt(-200,a)}(function Ji(a){return"function"==typeof a?a.name||a.toString():"object"==typeof a&&null!=a&&"function"==typeof a.type?a.type.name||a.type.toString():vi(a)}(g[d]));const B=sd(x.canSeeViewProviders);x.resolving=!0;const H=x.injectImpl?Rs(x.injectImpl):null;n_(a,h,Ei.Default);try{A=a[d]=x.factory(void 0,g,a,h),c.firstCreatePass&&d>=h.directiveStart&&function Kd(a,c,d){const{ngOnChanges:h,ngOnInit:A,ngDoCheck:g}=c.type.prototype;if(h){const x=Xd(c);(d.preOrderHooks??=[]).push(a,x),(d.preOrderCheckHooks??=[]).push(a,x)}A&&(d.preOrderHooks??=[]).push(0-a,A),g&&((d.preOrderHooks??=[]).push(a,g),(d.preOrderCheckHooks??=[]).push(a,g))}(d,g[d],c)}finally{null!==H&&Rs(H),sd(B),x.resolving=!1,hl()}}return A}function ZA(a,c,d){return!!(d[c+(a>>KA)]&1<{const c=a.prototype.constructor,d=c[No]||Yt(c),h=Object.prototype;let A=Object.getPrototypeOf(a.prototype).constructor;for(;A&&A!==h;){const g=A[No]||Yt(A);if(g&&g!==d)return g;A=Object.getPrototypeOf(A)}return g=>new g})}function Yt(a){return kn(a)?()=>{const c=Yt(Xt(a));return c&&c()}:ol(a)}function oy(a){const c=a[Jt],d=c.type;return 2===d?c.declTNode:1===d?a[ws]:null}function dd(a){return function Sa(a,c){if("class"===c)return a.classes;if("style"===c)return a.styles;const d=a.attrs;if(d){const h=d.length;let A=0;for(;Ads(zx)})}static{this.__NG_ELEMENT_ID__=-1}}new En("").__NG_ELEMENT_ID__=a=>{const c=jr();if(null===c)throw new Zt(204,!1);if(2&c.type)return c.value;if(a&Ei.Optional)return null;throw new Zt(204,!1)};function uh(a){return a.ngOriginalError}const Ta=!0;let hh=(()=>{class a{static{this.__NG_ELEMENT_ID__=Eo}static{this.__NG_ENV_ID__=d=>d}}return a})();class Kr extends hh{constructor(c){super(),this._lView=c}onDestroy(c){return DA(this._lView,c),()=>function Uf(a,c){if(null===a[td])return;const d=a[td].indexOf(c);-1!==d&&a[td].splice(d,1)}(this._lView,c)}}function Eo(){return new Kr(Ot())}let zl=(()=>{class a{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new oi.t(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const d=this.taskId++;return this.pendingTasks.add(d),d}remove(d){this.pendingTasks.delete(d),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static{this.\u0275prov=Mn({token:a,providedIn:"root",factory:()=>new a})}}return a})();const Gl=class im extends Yi.B{constructor(c=!1){super(),this.destroyRef=void 0,this.pendingTasks=void 0,this.__isAsync=c,If()&&(this.destroyRef=Pn(hh,{optional:!0})??void 0,this.pendingTasks=Pn(zl,{optional:!0})??void 0)}emit(c){const d=L(null);try{super.next(c)}finally{L(d)}}subscribe(c,d,h){let A=c,g=d||(()=>null),x=h;if(c&&"object"==typeof c){const k=c;A=k.next?.bind(k),g=k.error?.bind(k),x=k.complete?.bind(k)}this.__isAsync&&(g=this.wrapInTimeout(g),A&&(A=this.wrapInTimeout(A)),x&&(x=this.wrapInTimeout(x)));const B=super.subscribe({next:A,error:g,complete:x});return c instanceof fr.yU&&c.add(B),B}wrapInTimeout(c){return d=>{const h=this.pendingTasks?.add();setTimeout(()=>{c(d),void 0!==h&&this.pendingTasks?.remove(h)})}}};function ud(...a){}function uy(a){let c,d;function h(){a=ud;try{void 0!==d&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(d),void 0!==c&&clearTimeout(c)}catch{}}return c=setTimeout(()=>{a(),h()}),"function"==typeof requestAnimationFrame&&(d=requestAnimationFrame(()=>{a(),h()})),()=>h()}function hy(a){return queueMicrotask(()=>a()),()=>{a=ud}}const Yf="isAngularZone",Zf=Yf+"_ID";let c_=0;class so{constructor(c){this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Gl(!1),this.onMicrotaskEmpty=new Gl(!1),this.onStable=new Gl(!1),this.onError=new Gl(!1);const{enableLongStackTrace:d=!1,shouldCoalesceEventChangeDetection:h=!1,shouldCoalesceRunChangeDetection:A=!1,scheduleInRootZone:g=Ta}=c;if(typeof Zone>"u")throw new Zt(908,!1);Zone.assertZonePatched();const x=this;x._nesting=0,x._outer=x._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(x._inner=x._inner.fork(new Zone.TaskTrackingZoneSpec)),d&&Zone.longStackTraceZoneSpec&&(x._inner=x._inner.fork(Zone.longStackTraceZoneSpec)),x.shouldCoalesceEventChangeDetection=!A&&h,x.shouldCoalesceRunChangeDetection=A,x.callbackScheduled=!1,x.scheduleInRootZone=g,function _C(a){const c=()=>{!function py(a){function c(){uy(()=>{a.callbackScheduled=!1,fh(a),a.isCheckStableRunning=!0,Jf(a),a.isCheckStableRunning=!1})}a.isCheckStableRunning||a.callbackScheduled||(a.callbackScheduled=!0,a.scheduleInRootZone?Zone.root.run(()=>{c()}):a._outer.run(()=>{c()}),fh(a))}(a)},d=c_++;a._inner=a._inner.fork({name:"angular",properties:{[Yf]:!0,[Zf]:d,[Zf+d]:!0},onInvokeTask:(h,A,g,x,B,k)=>{if(function om(a){return gy(a,"__ignore_ng_zone__")}(k))return h.invokeTask(g,x,B,k);try{return Ay(a),h.invokeTask(g,x,B,k)}finally{(a.shouldCoalesceEventChangeDetection&&"eventTask"===x.type||a.shouldCoalesceRunChangeDetection)&&c(),my(a)}},onInvoke:(h,A,g,x,B,k,H)=>{try{return Ay(a),h.invoke(g,x,B,k,H)}finally{a.shouldCoalesceRunChangeDetection&&!a.callbackScheduled&&!function Ga(a){return gy(a,"__scheduler_tick__")}(k)&&c(),my(a)}},onHasTask:(h,A,g,x)=>{h.hasTask(g,x),A===g&&("microTask"==x.change?(a._hasPendingMicrotasks=x.microTask,fh(a),Jf(a)):"macroTask"==x.change&&(a.hasPendingMacrotasks=x.macroTask))},onHandleError:(h,A,g,x)=>(h.handleError(g,x),a.runOutsideAngular(()=>a.onError.emit(x)),!1)})}(x)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get(Yf)}static assertInAngularZone(){if(!so.isInAngularZone())throw new Zt(909,!1)}static assertNotInAngularZone(){if(so.isInAngularZone())throw new Zt(909,!1)}run(c,d,h){return this._inner.run(c,d,h)}runTask(c,d,h,A){const g=this._inner,x=g.scheduleEventTask("NgZoneEvent: "+A,c,fy,ud,ud);try{return g.runTask(x,d,h)}finally{g.cancelTask(x)}}runGuarded(c,d,h){return this._inner.runGuarded(c,d,h)}runOutsideAngular(c){return this._outer.run(c)}}const fy={};function Jf(a){if(0==a._nesting&&!a.hasPendingMicrotasks&&!a.isStable)try{a._nesting++,a.onMicrotaskEmpty.emit(null)}finally{if(a._nesting--,!a.hasPendingMicrotasks)try{a.runOutsideAngular(()=>a.onStable.emit(null))}finally{a.isStable=!0}}}function fh(a){a.hasPendingMicrotasks=!!(a._hasPendingMicrotasks||(a.shouldCoalesceEventChangeDetection||a.shouldCoalesceRunChangeDetection)&&!0===a.callbackScheduled)}function Ay(a){a._nesting++,a.isStable&&(a.isStable=!1,a.onUnstable.emit(null))}function my(a){a._nesting--,Jf(a)}class rm{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Gl,this.onMicrotaskEmpty=new Gl,this.onStable=new Gl,this.onError=new Gl}run(c,d,h){return c.apply(d,h)}runGuarded(c,d,h){return c.apply(d,h)}runOutsideAngular(c){return c()}runTask(c,d,h,A){return c.apply(d,h)}}function gy(a,c){return!(!Array.isArray(a)||1!==a.length)&&!0===a[0]?.data?.[c]}class Mc{constructor(){this._console=console}handleError(c){const d=this._findOriginalError(c);this._console.error("ERROR",c),d&&this._console.error("ORIGINAL ERROR",d)}_findOriginalError(c){let d=c&&uh(c);for(;d&&uh(d);)d=uh(d);return d||null}}const bC=new En("",{providedIn:"root",factory:()=>{const a=Pn(so),c=Pn(Mc);return d=>a.runOutsideAngular(()=>c.handleError(d))}});function dT(){return vn(jr(),Ot())}function vn(a,c){return new Fi(sa(a,c))}let Fi=(()=>{class a{constructor(d){this.nativeElement=d}static{this.__NG_ELEMENT_ID__=dT}}return a})();function Ec(a){return a instanceof Fi?a.nativeElement:a}function u_(){return this._results[Symbol.iterator]()}class hd{get changes(){return this._changes??=new Gl}constructor(c=!1){this._emitDistinctChangesOnly=c,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 d=hd.prototype;d[Symbol.iterator]||(d[Symbol.iterator]=u_)}get(c){return this._results[c]}map(c){return this._results.map(c)}filter(c){return this._results.filter(c)}find(c){return this._results.find(c)}reduce(c,d){return this._results.reduce(c,d)}forEach(c){this._results.forEach(c)}some(c){return this._results.some(c)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(c,d){this.dirty=!1;const h=function ya(a){return a.flat(Number.POSITIVE_INFINITY)}(c);(this._changesDetected=!function Zu(a,c,d){if(a.length!==c.length)return!1;for(let h=0;hh_}),h_="ng",uT=new En(""),vy=new En("",{providedIn:"platform",factory:()=>"unknown"}),MV=new En(""),$P=new En("",{providedIn:"root",factory:()=>Ah().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let XP=()=>null;function My(a,c,d=!1){return XP(a,c,d)}const t4=new En("",{providedIn:"root",factory:()=>!1});let SC,IC;function mh(a){return function TC(){if(void 0===SC&&(SC=null,Zi.trustedTypes))try{SC=Zi.trustedTypes.createPolicy("angular",{createHTML:a=>a,createScript:a=>a,createScriptURL:a=>a})}catch{}return SC}()?.createHTML(a)||a}function s4(a){return function bT(){if(void 0===IC&&(IC=null,Zi.trustedTypes))try{IC=Zi.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:a=>a,createScript:a=>a,createScriptURL:a=>a})}catch{}return IC}()?.createHTML(a)||a}class c4{constructor(c){this.changingThisBreaksApplicationSecurity=c}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Ti})`}}function gh(a){return a instanceof c4?a.changingThisBreaksApplicationSecurity:a}function Sy(a,c){const d=function BV(a){return a instanceof c4&&a.getTypeName()||null}(a);if(null!=d&&d!==c){if("ResourceURL"===d&&"URL"===c)return!0;throw new Error(`Required a safe ${c}, got a ${d} (see ${Ti})`)}return d===c}class g_{constructor(c){this.inertDocumentHelper=c}getInertBodyElement(c){c=""+c;try{const d=(new window.DOMParser).parseFromString(mh(c),"text/html").body;return null===d?this.inertDocumentHelper.getInertBodyElement(c):(d.firstChild?.remove(),d)}catch{return null}}}class d4{constructor(c){this.defaultDoc=c,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(c){const d=this.inertDocument.createElement("template");return d.innerHTML=mh(c),d}}const kV=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function DC(a){return(a=String(a)).match(kV)?a:"unsafe:"+a}function _h(a){const c={};for(const d of a.split(","))c[d]=!0;return c}function Ty(...a){const c={};for(const d of a)for(const h in d)d.hasOwnProperty(h)&&(c[h]=!0);return c}const u4=_h("area,br,col,hr,img,wbr"),__=_h("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),h4=_h("rp,rt"),bh=Ty(u4,Ty(__,_h("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")),Ty(h4,_h("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")),Ty(h4,__)),yT=_h("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),p4=Ty(yT,_h("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"),_h("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")),PV=_h("script,style,template");class A4{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(c){let d=c.firstChild,h=!0,A=[];for(;d;)if(d.nodeType===Node.ELEMENT_NODE?h=this.startElement(d):d.nodeType===Node.TEXT_NODE?this.chars(d.nodeValue):this.sanitizedSomething=!0,h&&d.firstChild)A.push(d),d=m4(d);else for(;d;){d.nodeType===Node.ELEMENT_NODE&&this.endElement(d);let g=sp(d);if(g){d=g;break}d=A.pop()}return this.buf.join("")}startElement(c){const d=wT(c).toLowerCase();if(!bh.hasOwnProperty(d))return this.sanitizedSomething=!0,!PV.hasOwnProperty(d);this.buf.push("<"),this.buf.push(d);const h=c.attributes;for(let A=0;A"),!0}endElement(c){const d=wT(c).toLowerCase();bh.hasOwnProperty(d)&&!u4.hasOwnProperty(d)&&(this.buf.push(""))}chars(c){this.buf.push(mm(c))}}function sp(a){const c=a.nextSibling;if(c&&a!==c.previousSibling)throw xT(c);return c}function m4(a){const c=a.firstChild;if(c&&function OV(a,c){return(a.compareDocumentPosition(c)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(a,c))throw xT(c);return c}function wT(a){const c=a.nodeName;return"string"==typeof c?c:"FORM"}function xT(a){return new Error(`Failed to sanitize html because the element is clobbered: ${a.outerHTML}`)}const NV=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,LV=/([^\#-~ |!])/g;function mm(a){return a.replace(/&/g,"&").replace(NV,function(c){return"&#"+(1024*(c.charCodeAt(0)-55296)+(c.charCodeAt(1)-56320)+65536)+";"}).replace(LV,function(c){return"&#"+c.charCodeAt(0)+";"}).replace(//g,">")}let md;function BC(a){return"content"in a&&function _4(a){return a.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===a.nodeName}(a)?a.content:null}var gm=function(a){return a[a.NONE=0]="NONE",a[a.HTML=1]="HTML",a[a.STYLE=2]="STYLE",a[a.SCRIPT=3]="SCRIPT",a[a.URL=4]="URL",a[a.RESOURCE_URL=5]="RESOURCE_URL",a}(gm||{});function _m(a){const c=Iy();return c?s4(c.sanitize(gm.HTML,a)||""):Sy(a,"HTML")?s4(gh(a)):function g4(a,c){let d=null;try{md=md||function Am(a){const c=new d4(a);return function FC(){try{return!!(new window.DOMParser).parseFromString(mh(""),"text/html")}catch{return!1}}()?new g_(c):c}(a);let h=c?String(c):"";d=md.getInertBodyElement(h);let A=5,g=h;do{if(0===A)throw new Error("Failed to sanitize html because the input is unstable");A--,h=g,g=d.innerHTML,d=md.getInertBodyElement(h)}while(h!==g);return mh((new A4).sanitizeChildren(BC(d)||d))}finally{if(d){const h=BC(d)||d;for(;h.firstChild;)h.firstChild.remove()}}}(Ah(),vi(a))}function ap(a){const c=Iy();return c?c.sanitize(gm.URL,a)||"":Sy(a,"URL")?gh(a):DC(vi(a))}function Iy(){const a=Ot();return a&&a[Va].sanitizer}const zV=/^>|^->||--!>|)/g,jV="\u200b$1\u200b";function M4(a){return a.ownerDocument.defaultView}function E4(a){return a.ownerDocument}function Kl(a){return"browser"===(a??Pn(ps)).get(vy)}var PC=function(a){return a[a.Important=1]="Important",a[a.DashCase=2]="DashCase",a}(PC||{});let ET;function ST(a,c){return ET(a,c)}function w_(a,c,d,h,A){if(null!=h){let g,x=!1;Os(h)?g=h:hs(h)&&(x=!0,h=h[ro]);const B=ar(h);0===a&&null!==d?null==A?R4(c,d,B):vm(c,d,B,A||null,!0):1===a&&null!==d?vm(c,d,B,A||null,!0):2===a?function Dy(a,c,d){a.removeChild(null,c,d)}(c,B,x):3===a&&c.destroyNode(B),null!=g&&function cH(a,c,d,h,A){const g=d[kl];g!==ar(d)&&w_(c,a,h,g,A);for(let B=Ho;Bc.replace(GV,jV))}(c))}function OC(a,c,d){return a.createElement(c,d)}function D4(a,c){c[Va].changeDetectionScheduler?.notify(9),UC(a,c,c[Oi],2,null,null)}function B4(a,c){const d=a[nh],h=c[$o];(hs(h)||c[_o]!==h[$o][_o])&&(a[wi]|=R0.HasTransplantedViews),null===d?a[nh]=[c]:d.push(c)}function FT(a,c){const d=a[nh],h=d.indexOf(c);d.splice(h,1)}function Fy(a,c){if(a.length<=Ho)return;const d=Ho+c,h=a[d];if(h){const A=h[vc];null!==A&&A!==a&&FT(A,h),c>0&&(a[d-1][cl]=h[cl]);const g=Cf(a,Ho+c);!function tH(a,c){D4(a,c),c[ro]=null,c[ws]=null}(h[Jt],h);const x=g[dl];null!==x&&x.detachView(g[Jt]),h[$o]=null,h[cl]=null,h[wi]&=-129}return h}function NC(a,c){if(!(256&c[wi])){const d=c[Oi];d.destroyNode&&UC(a,c,d,3,null,null),function iH(a){let c=a[jd];if(!c)return DT(a[Jt],a);for(;c;){let d=null;if(hs(c))d=c[jd];else{const h=c[Ho];h&&(d=h)}if(!d){for(;c&&!c[cl]&&c!==a;)hs(c)&&DT(c[Jt],c),c=c[$o];null===c&&(c=a),hs(c)&&DT(c[Jt],c),d=c&&c[cl]}c=d}}(c)}}function DT(a,c){if(256&c[wi])return;const d=L(null);try{c[wi]&=-129,c[wi]|=256,c[Ha]&&Je(c[Ha]),function sH(a,c){let d;if(null!=a&&null!=(d=a.destroyHooks))for(let h=0;h=0?h[x]():h[-x].unsubscribe(),g+=2}else d[g].call(h[d[g+1]]);null!==h&&(c[th]=null);const A=c[td];if(null!==A){c[td]=null;for(let g=0;g-1){const{encapsulation:g}=a.data[h.directiveStart+A];if(g===gc.None||g===gc.Emulated)return null}return sa(h,d)}}(a,c.parent,d)}function vm(a,c,d,h,A){a.insertBefore(c,d,h,A)}function R4(a,c,d){a.appendChild(c,d)}function P4(a,c,d,h,A){null!==h?vm(a,c,d,h,A):R4(a,c,d)}function kT(a,c){return a.parentNode(c)}function O4(a,c,d){return L4(a,c,d)}let RT,L4=function N4(a,c,d){return 40&a.type?sa(a,d):null};function LC(a,c,d,h){const A=BT(a,h,c),g=c[Oi],B=O4(h.parent||c[ws],h,c);if(null!=A)if(Array.isArray(d))for(let k=0;kui&&$4(a,c,ui,!1),Pl(x?2:0,A),d(h,A)}finally{id(g),Pl(x?3:1,A)}}function zC(a,c,d){if(P0(c)){const h=L(null);try{const g=c.directiveEnd;for(let x=c.directiveStart;xnull;function x_(a,c,d,h,A){for(let g in c){if(!c.hasOwnProperty(g))continue;const x=c[g];if(void 0===x)continue;h??={};let B,k=Wc.None;Array.isArray(x)?(B=x[0],k=x[1]):B=x;let H=g;if(null!==A){if(!A.hasOwnProperty(g))continue;H=A[g]}0===a?$C(h,d,H,B,k):$C(h,d,H,B)}return h}function $C(a,c,d,h,A){let g;a.hasOwnProperty(d)?(g=a[d]).push(c,h):g=a[d]=[c,h],void 0!==A&&g.push(A)}function As(a,c,d,h,A,g,x,B){const k=sa(c,d);let K,H=c.inputs;!B&&null!=H&&(K=H[h])?(I_(a,d,K,h,A),ih(c)&&function UT(a,c){const d=Ws(c,a);16&d[wi]||(d[wi]|=64)}(d,c.index)):3&c.type&&(h=function J4(a){return"class"===a?"className":"for"===a?"htmlFor":"formaction"===a?"formAction":"innerHtml"===a?"innerHTML":"readonly"===a?"readOnly":"tabindex"===a?"tabIndex":a}(h),A=null!=x?x(A,c.value||"",h):A,g.setProperty(k,h,A))}function HT(a,c,d,h){if(kA()){const A=null===h?null:{"":-1},g=function iO(a,c){const d=a.directiveRegistry;let h=null,A=null;if(d)for(let g=0;g0;){const d=a[--c];if("number"==typeof d&&d<0)return d}return 0})(x)!=B&&x.push(B),x.push(d,h,g)}}(a,c,h,cp(a,d,A.hostVars,nr),A)}function su(a,c,d,h,A,g){const x=sa(a,c);!function C_(a,c,d,h,A,g,x){if(null==g)a.removeAttribute(c,A,d);else{const B=null==x?vi(g):x(g,h||"",A);a.setAttribute(c,A,B,d)}}(c[Oi],x,g,a.value,d,h,A)}function M_(a,c,d,h,A,g){const x=g[c];if(null!==x)for(let B=0;B0&&(d[A-1][cl]=c),h{j0(a.lView)},consumerOnSignalRead(){this.lView[Ha]=this}},cO={...z,consumerIsAlwaysLive:!0,consumerMarkedDirty:a=>{let c=yc(a.lView);for(;c&&!KT(c[Jt]);)c=yc(c);c&&Vv(c)},consumerOnSignalRead(){this.lView[Ha]=this}};function KT(a){return 2!==a.type}const dO=100;function Ly(a,c=!0,d=0){const h=a[Va],A=h.rendererFactory;A.begin?.();try{!function uO(a,c){const d=$v();try{e_(!0),Uy(a,c);let h=0;for(;G0(a);){if(h===dO)throw new Zt(103,!1);h++,Uy(a,1)}}finally{e_(d)}}(a,d)}catch(x){throw c&&dp(a,x),x}finally{A.end?.(),h.inlineEffectRunner?.flush()}}function ZT(a,c,d,h){const A=c[wi];if(!(256&~A))return;c[Va].inlineEffectRunner?.flush(),Qf(c);let B=!0,k=null,H=null;KT(a)?(H=function aO(a){return a[Ha]??function gH(a){const c=XT.pop()??Object.create(YC);return c.lView=a,c}(a)}(c),k=Be(H)):null===Y()?(B=!1,H=function lO(a){const c=a[Ha]??Object.create(cO);return c.lView=a,c}(c),k=Be(H)):c[Ha]&&(Je(c[Ha]),c[Ha]=null);try{Uv(c),function NA(a){return Ni.lFrame.bindingIndex=a}(a.bindingStartIndex),null!==d&&QC(a,c,d,2,h);const K=!(3&~A);if(K){const Ge=a.preOrderCheckHooks;null!==Ge&&bn(c,Ge,null)}else{const Ge=a.preOrderHooks;null!==Ge&&Un(c,Ge,0,null),Jv(c,0)}if(function hO(a){for(let c=Vn(a);null!==c;c=mr(c)){if(!(c[wi]&R0.HasTransplantedViews))continue;const d=c[nh];for(let h=0;h-1&&(Fy(c,h),Cf(d,h))}this._attachedToViewContainer=!1}NC(this._lView[Jt],this._lView)}onDestroy(c){DA(this._lView,c)}markForCheck(){Vy(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[wi]&=-129}reattach(){Hv(this._lView),this._lView[wi]|=128}detectChanges(){this._lView[wi]|=1024,Ly(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new Zt(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;const c=SA(this._lView),d=this._lView[vc];null!==d&&!c&&FT(d,this._lView),D4(this._lView[Jt],this._lView)}attachToAppRef(c){if(this._attachedToViewContainer)throw new Zt(902,!1);this._appRef=c;const d=SA(this._lView),h=this._lView[vc];null!==h&&!d&&B4(h,this._lView),Hv(this._lView)}}let Qy=(()=>{class a{static{this.__NG_ELEMENT_ID__=yH}}return a})();const bH=Qy,vH=class extends bH{constructor(c,d,h){super(),this._declarationLView=c,this._declarationTContainer=d,this.elementRef=h}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(c,d){return this.createEmbeddedViewImpl(c,d)}createEmbeddedViewImpl(c,d,h){const A=up(this._declarationLView,this._declarationTContainer,c,{embeddedViewInjector:d,dehydratedView:h});return new Hy(A)}};function yH(){return Em(jr(),Ot())}function Em(a,c){return 4&a.type?new vH(c,a,vn(a,c)):null}let FO=()=>null;function Rm(a,c){return FO(a,c)}class du{}const qy=new En("",{providedIn:"root",factory:()=>!1}),DO=new En(""),dM=new En("");class BO{}class wI{}class RO{resolveComponentFactory(c){throw function HH(a){const c=Error(`No component factory found for ${St(a)}.`);return c.ngComponent=a,c}(c)}}class Wy{static{this.NULL=new RO}}class xI{}let zH=(()=>{class a{constructor(){this.destroyNode=null}static{this.__NG_ELEMENT_ID__=()=>function GH(){const a=Ot(),d=Ws(jr().index,a);return(hs(d)?d:a)[Oi]}()}}return a})(),CI=(()=>{class a{static{this.\u0275prov=Mn({token:a,providedIn:"root",factory:()=>null})}}return a})();function O_(a,c,d){let h=d?a.styles:null,A=d?a.classes:null,g=0;if(null!==c)for(let x=0;x0&&z4(a,d,g.join(" "))}}(Re,gr,st,h),void 0!==d&&function WH(a,c,d){const h=a.projection=[];for(let A=0;A{class a{static{this.__NG_ELEMENT_ID__=gd}}return a})();function gd(){return fM(jr(),Ot())}const UO=Xy,DI=class extends UO{constructor(c,d,h){super(),this._lContainer=c,this._hostTNode=d,this._hostLView=h}get element(){return vn(this._hostTNode,this._hostLView)}get injector(){return new Vi(this._hostTNode,this._hostLView)}get parentInjector(){const c=ad(this._hostTNode,this._hostLView);if(Wf(c)){const d=Zd(c,this._hostLView),h=od(c);return new Vi(d[Jt].data[h+8],d)}return new Vi(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(c){const d=VO(this._lContainer);return null!==d&&d[c]||null}get length(){return this._lContainer.length-Ho}createEmbeddedView(c,d,h){let A,g;"number"==typeof h?A=h:null!=h&&(A=h.index,g=h.injector);const x=Rm(this._lContainer,c.ssrId),B=c.createEmbeddedViewImpl(d||{},g,x);return this.insertImpl(B,A,lu(this._hostTNode,x)),B}createComponent(c,d,h,A,g){const x=c&&!function ed(a){return"function"==typeof a}(c);let B;if(x)B=d;else{const st=d||{};B=st.index,h=st.injector,A=st.projectableNodes,g=st.environmentInjector||st.ngModuleRef}const k=x?c:new gl($i(c)),H=h||this.parentInjector;if(!g&&null==k.ngModule){const it=(x?H:this.parentInjector).get(ll,null);it&&(g=it)}const K=$i(k.componentType??{}),fe=Rm(this._lContainer,K?.id??null),Ge=k.create(H,A,fe?.firstChild??null,g);return this.insertImpl(Ge.hostView,B,lu(this._hostTNode,fe)),Ge}insert(c,d){return this.insertImpl(c,d,!0)}insertImpl(c,d,h){const A=c._lView;if(function Lf(a){return Os(a[$o])}(A)){const B=this.indexOf(c);if(-1!==B)this.detach(B);else{const k=A[$o],H=new DI(k,k[ws],k[$o]);H.detach(H.indexOf(c))}}const g=this._adjustIndex(d),x=this._lContainer;return Cm(x,A,g,h),c.attachToViewContainerRef(),Qx(Ky(x),g,c),c}move(c,d){return this.insert(c,d)}indexOf(c){const d=VO(this._lContainer);return null!==d?d.indexOf(c):-1}remove(c){const d=this._adjustIndex(c,-1),h=Fy(this._lContainer,d);h&&(Cf(Ky(this._lContainer),d),NC(h[Jt],h))}detach(c){const d=this._adjustIndex(c,-1),h=Fy(this._lContainer,d);return h&&null!=Cf(Ky(this._lContainer),d)?new Hy(h):null}_adjustIndex(c,d=0){return c??this.length+d}};function VO(a){return a[8]}function Ky(a){return a[8]||(a[8]=[])}function fM(a,c){let d;const h=c[a.index];return Os(h)?d=h:(d=E_(h,c,null,a),c[a.index]=d,S_(c,d)),Yy(d,c,a,h),new DI(d,a,c)}let Yy=function BI(a,c,d,h){if(a[kl])return;let A;A=8&d.type?ar(h):function pM(a,c){const d=a[Oi],h=d.createComment(""),A=sa(c,a);return vm(d,kT(d,A),h,function aH(a,c){return a.nextSibling(c)}(d,A),!1),h}(c,d),a[kl]=A},Zy=()=>!1;class AM{constructor(c){this.queryList=c,this.matches=null}clone(){return new AM(this.queryList)}setDirty(){this.queryList.setDirty()}}class RI{constructor(c=[]){this.queries=c}createEmbeddedView(c){const d=c.queries;if(null!==d){const h=null!==c.contentQueries?c.contentQueries[0]:d.length,A=[];for(let g=0;gc.trim())}(c):c}}class PI{constructor(c=[]){this.queries=c}elementStart(c,d){for(let h=0;h0)h.push(x[B/2]);else{const H=g[B+1],K=c[-k];for(let fe=Ho;fe(G(c),c.value);return d[U]=c,d}(a),h=d[U];return c?.equal&&(h.equal=c.equal),d.set=A=>Di(h,A),d.update=A=>function ii(a,c){me()||Ut(),Di(a,c(a.value))}(h,A),d.asReadonly=KO.bind(d),d}function KO(){const a=this[U];if(void 0===a.readonlyFn){const c=()=>this();c[U]=a,a.readonlyFn=c}return a.readonlyFn}function HI(a){return VI(a)&&"function"==typeof a.set}function uu(a,c){let d;const h=ve(()=>{d._dirtyCounter();const A=function YO(a,c){const d=a._lView,h=a._queryIndex;if(void 0===d||void 0===h||4&d[wi])return c?void 0:Ir;const A=mM(d,h),g=qO(d,h);return A.reset(g,Ec),c?A.first:A._changesDetected||void 0===a._flatValue?a._flatValue=A.toArray():a._flatValue}(d,a);if(c&&void 0===A)throw new Zt(-951,!1);return A});return d=h[U],d._dirtyCounter=XO(0),d._flatValue=void 0,h}function L_(a,c){return function QI(){return uu(!0,!1)}()}const eN=(L_.required=function JO(a,c){return function zI(){return uu(!0,!0)}()},L_);function eF(a){let c=function bM(a){return Object.getPrototypeOf(a.prototype).constructor}(a.type),d=!0;const h=[a];for(;c;){let A;if(Rl(a))A=c.\u0275cmp||c.\u0275dir;else{if(c.\u0275cmp)throw new Zt(903,!1);A=c.\u0275dir}if(A){if(d){h.push(A);const x=a;x.inputs=e1(a.inputs),x.inputTransforms=e1(a.inputTransforms),x.declaredInputs=e1(a.declaredInputs),x.outputs=e1(a.outputs);const B=A.hostBindings;B&&dN(a,B);const k=A.viewQuery,H=A.contentQueries;if(k&&tF(a,k),H&&nF(a,H),h9(a,A),ot(a.outputs,A.outputs),Rl(A)&&A.data.animation){const K=a.data;K.animation=(K.animation||[]).concat(A.data.animation)}}const g=A.features;if(g)for(let x=0;x=0;h--){const A=a[h];A.hostVars=c+=A.hostVars,A.hostAttrs=_A(A.hostAttrs,d=_A(d,A.hostAttrs))}}(h)}function h9(a,c){for(const d in c.inputs){if(!c.inputs.hasOwnProperty(d)||a.inputs.hasOwnProperty(d))continue;const h=c.inputs[d];if(void 0!==h&&(a.inputs[d]=h,a.declaredInputs[d]=c.declaredInputs[d],null!==c.inputTransforms)){const A=Array.isArray(h)?h[0]:h;if(!c.inputTransforms.hasOwnProperty(A))continue;a.inputTransforms??={},a.inputTransforms[A]=c.inputTransforms[A]}}}function e1(a){return a===Dl?{}:a===Ir?[]:a}function tF(a,c){const d=a.viewQuery;a.viewQuery=d?(h,A)=>{c(h,A),d(h,A)}:c}function nF(a,c){const d=a.contentQueries;a.contentQueries=d?(h,A,g)=>{c(h,A,g),d(h,A,g)}:c}function dN(a,c){const d=a.hostBindings;a.hostBindings=d?(h,A)=>{c(h,A),d(h,A)}:c}function Po(a){const c=d=>{const h=(Array.isArray(a)?a:a()).map(A=>"function"==typeof A?{directive:Xt(A),inputs:Dl,outputs:Dl}:{directive:Xt(A.directive),inputs:H_(A.inputs),outputs:H_(A.outputs)});null===d.hostDirectives?(d.findHostDirectiveDefs=V_,d.hostDirectives=h):d.hostDirectives.unshift(...h)};return c.ngInherit=!0,c}function V_(a,c,d){if(null!==a.hostDirectives)for(const h of a.hostDirectives){const A=Uo(h.directive);iF(A.declaredInputs,h.inputs),V_(A,c,d),d.set(A,h),c.push(A)}}function H_(a){if(void 0===a||0===a.length)return Dl;const c={};for(let d=0;dd()),this.destroyCbs=null}onDestroy(c){this.destroyCbs.push(c)}}class yM extends pp{constructor(c){super(),this.componentFactoryResolver=new Nm(this),this.instance=null;const d=new Jc([...c.providers,{provide:pp,useValue:this},{provide:Wy,useValue:this.componentFactoryResolver}],c.parent||Tf(),c.debugName,new Set(["environment"]));this.injector=d,c.runEnvironmentInitializers&&d.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(c){this.injector.onDestroy(c)}}function r1(a){return!!s1(a)&&(Array.isArray(a)||!(a instanceof Map)&&Symbol.iterator in a)}function s1(a){return null!==a&&("function"==typeof a||"object"==typeof a)}function Bc(a,c,d){return a[c]=d}function es(a,c,d){return!Object.is(a[c],d)&&(a[c]=d,!0)}function xh(a,c,d,h){const A=es(a,c,d);return es(a,c+1,h)||A}function ec(a,c,d,h,A,g){const x=xh(a,c,d,h);return xh(a,c+2,A,g)||x}function _p(a,c,d,h,A,g,x,B,k,H){const K=d+ui,fe=c.firstCreatePass?function wM(a,c,d,h,A,g,x,B,k){const H=c.consts,K=lp(c,a,4,x||null,B||null);HT(c,d,K,Qa(H,k)),zA(c,K);const fe=K.tView=NT(2,K,h,A,g,c.directiveRegistry,c.pipeRegistry,null,c.schemas,H,null);return null!==c.queries&&(c.queries.template(c,K),fe.queries=c.queries.embeddedTView(K)),K}(K,c,a,h,A,g,x,B,k):c.data[K];Mo(fe,!1);const Re=lF(c,a,fe,d);sh()&&LC(c,a,Re,fe),ge(Re,a);const Ge=E_(Re,a,Re,fe);return a[K]=Ge,S_(a,Ge),function N_(a,c,d){return Zy(a,c,d)}(Ge,fe,a),O0(fe)&&GC(c,a,fe),null!=k&&xm(a,fe,H),fe}function pu(a,c,d,h,A,g,x,B){const k=Ot(),H=or();return _p(k,H,a,c,d,h,A,Qa(H.consts,g),x,B),pu}let lF=function cF(a,c,d,h){return fl(!0),c[Oi].createComment("")};function fF(a,c){if(null!==Y())throw new Zt(-602,!1)}var Rc=function(a){return a[a.EarlyRead=0]="EarlyRead",a[a.Write=1]="Write",a[a.MixedReadWrite=2]="MixedReadWrite",a[a.Read=3]="Read",a}(Rc||{});let pF=(()=>{class a{constructor(){this.impl=null}execute(){this.impl?.execute()}static{this.\u0275prov=Mn({token:a,providedIn:"root",factory:()=>new a})}}return a})();class z_{constructor(){this.ngZone=Pn(so),this.scheduler=Pn(du),this.errorHandler=Pn(Mc,{optional:!0}),this.sequences=new Set,this.deferredRegistrations=new Set,this.executing=!1}static{this.PHASES=[Rc.EarlyRead,Rc.Write,Rc.MixedReadWrite,Rc.Read]}execute(){this.executing=!0;for(const c of z_.PHASES)for(const d of this.sequences)if(!d.erroredOrDestroyed&&d.hooks[c])try{d.pipelinedValue=this.ngZone.runOutsideAngular(()=>d.hooks[c](d.pipelinedValue))}catch(h){d.erroredOrDestroyed=!0,this.errorHandler?.handleError(h)}this.executing=!1;for(const c of this.sequences)c.afterRun(),c.once&&(this.sequences.delete(c),c.destroy());for(const c of this.deferredRegistrations)this.sequences.add(c);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear()}register(c){this.executing?this.deferredRegistrations.add(c):(this.sequences.add(c),this.scheduler.notify(6))}unregister(c){this.executing&&this.sequences.has(c)?(c.erroredOrDestroyed=!0,c.pipelinedValue=void 0,c.once=!0):(this.sequences.delete(c),this.deferredRegistrations.delete(c))}static{this.\u0275prov=Mn({token:z_,providedIn:"root",factory:()=>new z_})}}class AF{constructor(c,d,h,A){this.impl=c,this.hooks=d,this.once=h,this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.unregisterOnDestroy=A?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.()}}function CM(a,c){!c?.injector&&Ff();const d=c?.injector??Pn(ps);return Kl(d)?(Fa("NgAfterRender"),mF(a,d,c,!1)):G_}function h1(a,c){!c?.injector&&Ff();const d=c?.injector??Pn(ps);return Kl(d)?(Fa("NgAfterNextRender"),mF(a,d,c,!0)):G_}function mF(a,c,d,h){const A=c.get(pF);A.impl??=c.get(z_);const g=d?.phase??Rc.MixedReadWrite,x=!0!==d?.manualCleanup?c.get(hh):null,B=new AF(A.impl,function gN(a,c){if(a instanceof Function){const d=[void 0,void 0,void 0,void 0];return d[c]=a,d}return[a.earlyRead,a.write,a.mixedReadWrite,a.read]}(a,g),h,x);return A.impl.register(B),B}const G_={destroy(){}};function v1(a,c,d,h){const A=Ot();return es(A,ul(),c)&&(or(),su(Rr(),A,a,c,d,h)),v1}function $m(a,c,d,h){return es(a,ul(),d)?c+vi(d)+h:nr}function qm(a,c,d,h,A,g){const B=xh(a,Ll(),d,A);return Pr(2),B?c+vi(d)+h+vi(A)+g:nr}function tg(a,c){return a<<17|c<<2}function Dh(a){return a>>17&32767}function vd(a){return 2|a}function wp(a){return(131068&a)>>2}function zM(a,c){return-131069&a|c<<2}function y1(a){return 1|a}function w1(a,c,d,h){const A=a[d+1],g=null===c;let x=h?Dh(A):wp(A),B=!1;for(;0!==x&&(!1===B||g);){const H=a[x+1];IN(a[x],c)&&(B=!0,a[x+1]=h?y1(H):vd(H)),x=h?Dh(H):wp(H)}B&&(a[d+1]=h?vd(A):y1(A))}function IN(a,c){return null===a||null==c||(Array.isArray(a)?a[1]:a)===c||!(!Array.isArray(a)||"string"!=typeof c)&&Mf(a,c)>=0}const Es={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function X_(a){return a.substring(Es.key,Es.keyEnd)}function FN(a){return a.substring(Es.value,Es.valueEnd)}function RF(a,c){const d=Es.textEnd;return d===c?-1:(c=Es.keyEnd=function kN(a,c,d){for(;c32;)c++;return c}(a,Es.key=c,d),ng(a,c,d))}function K_(a,c){const d=Es.textEnd;let h=Es.key=ng(a,c,d);return d===h?-1:(h=Es.keyEnd=function g9(a,c,d){let h;for(;c=65&&(-33&h)<=90||h>=48&&h<=57);)c++;return c}(a,h,d),h=RN(a,h,d),h=Es.value=ng(a,h,d),h=Es.valueEnd=function GM(a,c,d){let h=-1,A=-1,g=-1,x=c,B=x;for(;x32&&(B=x),g=A,A=h,h=-33&k}return B}(a,h,d),RN(a,h,d))}function PF(a){Es.key=0,Es.keyEnd=0,Es.value=0,Es.valueEnd=0,Es.textEnd=a.length}function ng(a,c,d){for(;c=0;d=K_(c,d))kh(a,X_(c),FN(c))}function xp(a){vl(NF,nc,a,!0)}function nc(a,c){for(let d=function DN(a){return PF(a),RF(a,ng(a,0,Es.textEnd))}(c);d>=0;d=RF(c,d))wa(a,X_(c),!0)}function bl(a,c,d,h){const A=Ot(),g=or(),x=Pr(2);g.firstUpdatePass&&C1(g,a,x,h),c!==nr&&es(A,x,c)&&LF(g,g.data[$n()],A,A[Oi],a,A[x+1]=function yl(a,c){return null==a||""===a||("string"==typeof c?a+=c:"object"==typeof a&&(a=St(gh(a)))),a}(c,d),h,x)}function vl(a,c,d,h){const A=or(),g=Pr(2);A.firstUpdatePass&&C1(A,null,g,h);const x=Ot();if(d!==nr&&es(x,g,d)){const B=A.data[$n()];if(Wa(B,h)&&!x1(A,g)){let k=h?B.classesWithoutHost:B.stylesWithoutHost;null!==k&&(d=an(k,d||"")),$M(A,B,x,d,h)}else!function Rh(a,c,d,h,A,g,x,B){A===nr&&(A=Ir);let k=0,H=0,K=0=a.expandoStartIndex}function C1(a,c,d,h){const A=a.data;if(null===A[d+1]){const g=A[$n()],x=x1(a,d);Wa(g,h)&&null===c&&!x&&(c=!1),c=function Cp(a,c,d,h){const A=function UA(a){const c=Ni.lFrame.currentDirectiveIndex;return-1===c?null:a[c]}(a);let g=h?c.residualClasses:c.residualStyles;if(null===A)0===(h?c.classBindings:c.styleBindings)&&(d=xd(d=bu(null,a,c,d,h),c.attrs,h),g=null);else{const x=c.directiveStylingLast;if(-1===x||a[x]!==A)if(d=bu(A,a,c,d,h),null===g){let k=function Y_(a,c,d){const h=d?c.classBindings:c.styleBindings;if(0!==wp(h))return a[Dh(h)]}(a,c,h);void 0!==k&&Array.isArray(k)&&(k=bu(null,a,c,k[1],h),k=xd(k,c.attrs,h),function Da(a,c,d,h){a[Dh(d?c.classBindings:c.styleBindings)]=h}(a,c,h,k))}else g=function ig(a,c,d){let h;const A=c.directiveEnd;for(let g=1+c.directiveStylingLast;g0)&&(H=!0)):K=d,A)if(0!==k){const Re=Dh(a[B+1]);a[h+1]=tg(Re,B),0!==Re&&(a[Re+1]=zM(a[Re+1],h)),a[B+1]=function EN(a,c){return 131071&a|c<<17}(a[B+1],h)}else a[h+1]=tg(B,0),0!==B&&(a[B+1]=zM(a[B+1],h)),B=h;else a[h+1]=tg(k,0),0===B?B=h:a[k+1]=zM(a[k+1],h),k=h;H&&(a[h+1]=vd(a[h+1])),w1(a,K,h,!0),w1(a,K,h,!1),function TN(a,c,d,h,A){const g=A?a.residualClasses:a.residualStyles;null!=g&&"string"==typeof c&&Mf(g,c)>=0&&(d[h+1]=y1(d[h+1]))}(c,K,a,h,g),x=tg(B,k),g?c.classBindings=x:c.styleBindings=x}(A,g,c,d,x,h)}}function bu(a,c,d,h,A){let g=null;const x=d.directiveEnd;let B=d.directiveStylingLast;for(-1===B?B=d.directiveStart:B++;B0;){const k=a[A],H=Array.isArray(k),K=H?k[1]:k,fe=null===K;let Re=d[A+1];Re===nr&&(Re=fe?Ir:void 0);let Ge=fe?M0(Re,h):K===h?Re:void 0;if(H&&!Pc(Ge)&&(Ge=M0(k,h)),Pc(Ge)&&(B=Ge,x))return B;const st=a[A+1];A=x?Dh(st):wp(st)}if(null!==c){let k=g?c.residualClasses:c.residualStyles;null!=k&&(B=M0(k,h))}return B}function Pc(a){return void 0!==a}function Wa(a,c){return!!(a.flags&(c?8:16))}function Or(a,c,d){vl(wa,nc,$m(Ot(),a,c,d),!0)}function rg(a,c,d,h,A){vl(wa,nc,qm(Ot(),a,c,d,h,A),!0)}function HF(){return Ot()[_o][oo]}class Cd{destroy(c){}updateValue(c,d){}swap(c,d){const h=Math.min(c,d),A=Math.max(c,d),g=this.detach(A);if(A-h>1){const x=this.detach(h);this.attach(h,g),this.attach(A,x)}else this.attach(h,g)}move(c,d){this.attach(d,this.detach(c))}}function Mp(a,c,d,h,A){return a===d&&Object.is(c,h)?1:Object.is(A(a,c),A(d,h))?-1:0}function Ep(a,c,d,h){return!(void 0===c||!c.has(h)||(a.attach(d,c.get(h)),c.delete(h),0))}function XM(a,c,d,h,A){if(Ep(a,c,h,d(h,A)))a.updateValue(h,A);else{const g=a.create(h,A);a.attach(h,g)}}function KM(a,c,d,h){const A=new Set;for(let g=c;g<=d;g++)A.add(h(g,a.at(g)));return A}class QF{constructor(){this.kvMap=new Map,this._vMap=void 0}has(c){return this.kvMap.has(c)}delete(c){if(!this.has(c))return!1;const d=this.kvMap.get(c);return void 0!==this._vMap&&this._vMap.has(d)?(this.kvMap.set(c,this._vMap.get(d)),this._vMap.delete(d)):this.kvMap.delete(c),!0}get(c){return this.kvMap.get(c)}set(c,d){if(this.kvMap.has(c)){let h=this.kvMap.get(c);void 0===this._vMap&&(this._vMap=new Map);const A=this._vMap;for(;A.has(h);)h=A.get(h);A.set(h,d)}else this.kvMap.set(c,d)}forEach(c){for(let[d,h]of this.kvMap)if(c(h,d),void 0!==this._vMap){const A=this._vMap;for(;A.has(h);)h=A.get(h),c(h,d)}}}function YM(a,c){Fa("NgControlFlow");const d=Ot(),h=ul(),A=d[h]!==nr?d[h]:-1,g=-1!==A?M1(d,ui+A):void 0;if(es(d,h,a)){const B=L(null);try{if(void 0!==g&&Ny(g,0),-1!==a){const k=ui+a,H=M1(d,k),K=ZM(d[Jt],k),fe=Rm(H,K.tView.ssrId);Cm(H,up(d,K,c,{dehydratedView:fe}),0,lu(K,fe))}}finally{L(B)}}else if(void 0!==g){const B=WT(g,0);void 0!==B&&(B[oo]=c)}}class VN{constructor(c,d,h){this.lContainer=c,this.$implicit=d,this.$index=h}get $count(){return this.lContainer.length-Ho}}function zF(a){return a}function GF(a,c){return c}class HN{constructor(c,d,h){this.hasEmptyBlock=c,this.trackByFn=d,this.liveCollection=h}}function jF(a,c,d,h,A,g,x,B,k,H,K,fe,Re){Fa("NgControlFlow");const Ge=Ot(),st=or(),it=void 0!==k,ln=Ot(),rn=B?x.bind(ln[_o][oo]):x,Lt=new HN(it,rn);ln[ui+a]=Lt,_p(Ge,st,a+1,c,d,h,A,Qa(st.consts,g)),it&&_p(Ge,st,a+2,k,H,K,fe,Qa(st.consts,Re))}class QN extends Cd{constructor(c,d,h){super(),this.lContainer=c,this.hostLView=d,this.templateTNode=h,this.operationsCounter=void 0,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-Ho}at(c){return this.getLView(c)[oo].$implicit}attach(c,d){const h=d[$s];this.needsIndexUpdate||=c!==this.length,Cm(this.lContainer,d,c,lu(this.templateTNode,h))}detach(c){return this.needsIndexUpdate||=c!==this.length-1,function zN(a,c){return Fy(a,c)}(this.lContainer,c)}create(c,d){const h=Rm(this.lContainer,this.templateTNode.tView.ssrId),A=up(this.hostLView,this.templateTNode,new VN(this.lContainer,d,c),{dehydratedView:h});return this.operationsCounter?.recordCreate(),A}destroy(c){NC(c[Jt],c),this.operationsCounter?.recordDestroy()}updateValue(c,d){this.getLView(c)[oo].$implicit=d}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let c=0;c{a.destroy(k)})}(k,a,g.trackByFn),k.updateIndexes(),g.hasEmptyBlock){const H=ul(),K=0===k.length;if(es(h,H,K)){const fe=d+2,Re=M1(h,fe);if(K){const Ge=ZM(A,fe),st=Rm(Re,Ge.tView.ssrId);Cm(Re,up(h,Ge,void 0,{dehydratedView:st}),0,lu(Ge,st))}else Ny(Re,0)}}}finally{L(c)}}function M1(a,c){return a[c]}function ZM(a,c){return Fr(a,c)}function E1(a,c,d,h){const A=Ot(),g=or(),x=ui+a,B=A[Oi],k=g.firstCreatePass?function Z_(a,c,d,h,A,g){const x=c.consts,k=lp(c,a,2,h,Qa(x,A));return HT(c,d,k,Qa(x,g)),null!==k.attrs&&O_(k,k.attrs,!1),null!==k.mergedAttrs&&O_(k,k.mergedAttrs,!0),null!==c.queries&&c.queries.elementStart(c,k),k}(x,g,A,c,d,h):g.data[x],H=J_(g,A,k,B,c,a);A[x]=H;const K=O0(k);return Mo(k,!0),G4(B,H,k),!function gp(a){return!(32&~a.flags)}(k)&&sh()&&LC(g,A,H,k),0===function lC(){return Ni.lFrame.elementDepthCount}()&&ge(H,A),function W0(){Ni.lFrame.elementDepthCount++}(),K&&(GC(g,A,k),zC(g,k,A)),null!==h&&xm(A,k),E1}function S1(){let a=jr();eo()?OA():(a=a.parent,Mo(a,!1));const c=a;(function Qv(a){return Ni.skipHydrationRootTNode===a})(c)&&function Gv(){Ni.skipHydrationRootTNode=null}(),function Nl(){Ni.lFrame.elementDepthCount--}();const d=or();return d.firstCreatePass&&(zA(d,a),P0(a)&&d.queries.elementEnd(a)),null!=c.classesWithoutHost&&function hC(a){return!!(8&a.flags)}(c)&&$M(d,c,Ot(),c.classesWithoutHost,!0),null!=c.stylesWithoutHost&&function ny(a){return!!(16&a.flags)}(c)&&$M(d,c,Ot(),c.stylesWithoutHost,!1),S1}function JM(a,c,d,h){return E1(a,c,d,h),S1(),JM}let J_=(a,c,d,h,A,g)=>(fl(!0),OC(h,A,function QA(){return Ni.lFrame.currentNamespace}()));function T1(a,c,d){const h=Ot(),A=or(),g=a+ui,x=A.firstCreatePass?function jN(a,c,d,h,A){const g=c.consts,x=Qa(g,h),B=lp(c,a,8,"ng-container",x);return null!==x&&O_(B,x,!0),HT(c,d,B,Qa(g,A)),null!==c.queries&&c.queries.elementStart(c,B),B}(g,A,h,c,d):A.data[g];Mo(x,!0);const B=ag(A,h,x,a);return h[g]=B,sh()&&LC(A,h,B,x),ge(B,h),O0(x)&&(GC(A,h,x),zC(A,x,h)),null!=d&&xm(h,x),T1}function I1(){let a=jr();const c=or();return eo()?OA():(a=a.parent,Mo(a,!1)),c.firstCreatePass&&(zA(c,a),P0(a)&&c.queries.elementEnd(a)),I1}function eE(a,c,d){return T1(a,c,d),I1(),eE}let ag=(a,c,d,h)=>(fl(!0),IT(c[Oi],""));function tE(){return Ot()}function nE(a,c,d){const h=Ot();return es(h,ul(),c)&&As(or(),Rr(),h,a,c,h[Oi],d,!0),nE}const Sp=void 0;var F1=["en",[["a","p"],["AM","PM"],Sp],[["AM","PM"],Sp,Sp],[["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"]],Sp,[["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"]],Sp,[["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}",Sp,"{1} 'at' {0}",Sp],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function qN(a){const d=Math.floor(Math.abs(a)),h=a.toString().replace(/^[^.]*\.?/,"").length;return 1===d&&0===h?1:5}];let lg={};function iE(a){const c=function WN(a){return a.toLowerCase().replace(/_/g,"-")}(a);let d=D1(c);if(d)return d;const h=c.split("-")[0];if(d=D1(h),d)return d;if("en"===h)return F1;throw new Zt(701,!1)}function cg(a){return iE(a)[dg.PluralCase]}function D1(a){return a in lg||(lg[a]=Zi.ng&&Zi.ng.common&&Zi.ng.common.locales&&Zi.ng.common.locales[a]),lg[a]}var dg=function(a){return a[a.LocaleId=0]="LocaleId",a[a.DayPeriodsFormat=1]="DayPeriodsFormat",a[a.DayPeriodsStandalone=2]="DayPeriodsStandalone",a[a.DaysFormat=3]="DaysFormat",a[a.DaysStandalone=4]="DaysStandalone",a[a.MonthsFormat=5]="MonthsFormat",a[a.MonthsStandalone=6]="MonthsStandalone",a[a.Eras=7]="Eras",a[a.FirstDayOfWeek=8]="FirstDayOfWeek",a[a.WeekendRange=9]="WeekendRange",a[a.DateFormat=10]="DateFormat",a[a.TimeFormat=11]="TimeFormat",a[a.DateTimeFormat=12]="DateTimeFormat",a[a.NumberSymbols=13]="NumberSymbols",a[a.NumberFormats=14]="NumberFormats",a[a.CurrencyCode=15]="CurrencyCode",a[a.CurrencySymbol=16]="CurrencySymbol",a[a.CurrencyName=17]="CurrencyName",a[a.Currencies=18]="Currencies",a[a.Directionality=19]="Directionality",a[a.PluralCase=20]="PluralCase",a[a.ExtraData=21]="ExtraData",a}(dg||{});const B1="en-US";let KF=B1,AE=(a,c,d)=>{};function L1(a,c,d,h){const A=Ot(),g=or(),x=jr();return gE(g,A,A[Oi],x,a,c,h),L1}function gE(a,c,d,h,A,g,x){const B=O0(h),H=a.firstCreatePass&&oO(a),K=c[oo],fe=T_(c);let Re=!0;if(3&h.type||x){const it=sa(h,c),ln=x?x(it):it,rn=fe.length,Lt=x?Gi=>x(ar(Gi[h.index])):h.index;let Bi=null;if(!x&&B&&(Bi=function mE(a,c,d,h){const A=a.cleanup;if(null!=A)for(let g=0;gk?B[k]:null}"string"==typeof x&&(g+=2)}return null}(a,c,A,h.index)),null!==Bi)(Bi.__ngLastListenerFn__||Bi).__ngNextListenerFn__=g,Bi.__ngLastListenerFn__=g,Re=!1;else{g=CD(h,c,K,g),AE(it,A,g);const Gi=d.listen(ln,A,g);fe.push(g,Gi),H&&H.push(A,Lt,rn,rn+1)}}else g=CD(h,c,K,g);const Ge=h.outputs;let st;if(Re&&null!==Ge&&(st=Ge[A])){const it=st.length;if(it)for(let ln=0;ln-1?Ws(a.index,c):c,5);let B=_E(c,d,h,g),k=A.__ngNextListenerFn__;for(;k;)B=_E(c,d,k,g)&&B,k=k.__ngNextListenerFn__;return B}}function MD(a=1){return function Xv(a){return(Ni.lFrame.contextLView=function aC(a,c){for(;a>0;)c=c[$d],a--;return c}(a,Ni.lFrame.contextLView))[oo]}(a)}function sL(a,c){let d=null;const h=function Cv(a){const c=a.attrs;if(null!=c){const d=c.indexOf(5);if(!(1&d))return c[d+1]}return null}(a);for(let A=0;Ad._dirtyCounter.update(h=>h+1))}(c,jO(a,d,h,A))}function ND(a=1){Ul(Hf()+a)}function LD(a){return sr(function Z0(){return Ni.lFrame.contextLView}(),ui+a)}function WD(a,c=""){const d=Ot(),h=or(),A=a+ui,g=h.firstCreatePass?lp(h,A,1,c,null):h.data[A],x=XD(h,d,g,c,a);d[A]=x,sh()&&LC(h,d,x,g),Mo(g,!1)}let XD=(a,c,d,h,A)=>(fl(!0),function TT(a,c){return a.createText(c)}(c[Oi],h));function xE(a){return z1("",a,""),xE}function z1(a,c,d){const h=Ot(),A=$m(h,a,c,d);return A!==nr&&au(h,$n(),A),z1}function sb(a,c,d,h,A){const g=Ot(),x=qm(g,a,c,d,h,A);return x!==nr&&au(g,$n(),x),sb}function YD(a,c,d,h,A,g,x,B,k){const H=Ot(),K=function Xm(a,c,d,h,A,g,x,B,k,H){const fe=ec(a,Ll(),d,A,x,k);return Pr(4),fe?c+vi(d)+h+vi(A)+g+vi(x)+B+vi(k)+H:nr}(H,a,c,d,h,A,g,x,B,k);return K!==nr&&au(H,$n(),K),YD}function ab(a,c,d){HI(c)&&(c=c());const h=Ot();return es(h,ul(),c)&&As(or(),Rr(),h,a,c,h[Oi],d,!1),ab}function gg(a,c){const d=HI(a);return d&&a.set(c),d}function j1(a,c){const d=Ot(),h=or(),A=jr();return gE(h,d,d[Oi],A,a,c),j1}function Ss(a,c,d,h,A){if(a=Xt(a),Array.isArray(a))for(let g=0;g>20;if(Zc(a)||!a.multi){const Ge=new GA(H,A,wm),st=Fp(k,c,A?K:K+Re,fe);-1===st?(bo(Xf(B,x),g,k),Do(g,a,c.length),c.push(k),B.directiveStart++,B.directiveEnd++,A&&(B.providerIndexes+=1048576),d.push(Ge),x.push(Ge)):(d[st]=Ge,x[st]=Ge)}else{const Ge=Fp(k,c,K+Re,fe),st=Fp(k,c,K,K+Re),ln=st>=0&&d[st];if(A&&!ln||!A&&!(Ge>=0&&d[Ge])){bo(Xf(B,x),g,k);const rn=function gL(a,c,d,h,A){const g=new GA(a,d,wm);return g.multi=[],g.index=c,g.componentProviders=0,yo(g,A,h&&!d),g}(A?yu:tB,d.length,A,h,H);!A&&ln&&(d[st].providerFactory=rn),Do(g,a,c.length,0),c.push(k),B.directiveStart++,B.directiveEnd++,A&&(B.providerIndexes+=1048576),d.push(rn),x.push(rn)}else Do(g,a,Ge>-1?Ge:st,yo(d[A?st:Ge],H,!A&&h));!A&&h&&ln&&d[st].componentProviders++}}}function Do(a,c,d,h){const A=Zc(c),g=function Dv(a){return!!a.useClass}(c);if(A||g){const k=(g?Xt(c.useClass):c).prototype.ngOnDestroy;if(k){const H=a.destroyHooks||(a.destroyHooks=[]);if(!A&&c.multi){const K=H.indexOf(d);-1===K?H.push(d,[h,k]):H[K+1].push(h,k)}else H.push(d,k)}}}function yo(a,c,d){return d&&a.componentProviders++,a.multi.push(c)-1}function Fp(a,c,d,h){for(let A=d;A{d.providersResolver=(h,A)=>function SE(a,c,d){const h=or();if(h.firstCreatePass){const A=Rl(a);Ss(d,h.data,h.blueprint,A,!0),Ss(c,h.data,h.blueprint,A,!1)}}(h,A?A(a):a,c)}}let iB=(()=>{class a{constructor(d){this._injector=d,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(d){if(!d.standalone)return null;if(!this.cachedInjectors.has(d)){const h=Iv(0,d.type),A=h.length>0?function sF(a,c,d=null){return new yM({providers:a,parent:c,debugName:d,runEnvironmentInitializers:!0}).injector}([h],this._injector,`Standalone[${d.type.name}]`):null;this.cachedInjectors.set(d,A)}return this.cachedInjectors.get(d)}ngOnDestroy(){try{for(const d of this.cachedInjectors.values())null!==d&&d.destroy()}finally{this.cachedInjectors.clear()}}static{this.\u0275prov=Mn({token:a,providedIn:"environment",factory:()=>new a(ds(ll))})}}return a})();function _g(a){Fa("NgStandalone"),a.getStandaloneInjector=c=>c.get(iB).getOrCreateStandaloneInjector(a)}function cb(a,c,d){const h=Ns()+a,A=Ot();return A[h]===nr?Bc(A,h,d?c.call(d):c()):function mp(a,c){return a[c]}(A,h)}function IE(a,c,d,h){return wu(Ot(),Ns(),a,c,d,h)}function FE(a,c,d,h,A){return oB(Ot(),Ns(),a,c,d,h,A)}function da(a,c){const d=a[c];return d===nr?void 0:d}function wu(a,c,d,h,A,g){const x=c+d;return es(a,x,A)?Bc(a,x+1,g?h.call(g,A):h(A)):da(a,x+1)}function oB(a,c,d,h,A,g,x){const B=c+d;return xh(a,B,A,g)?Bc(a,B+2,x?h.call(x,A,g):h(A,g)):da(a,B+2)}function ML(a,c){const d=or();let h;const A=a+ui;d.firstCreatePass?(h=function aB(a,c){if(c)for(let d=c.length-1;d>=0;d--){const h=c[d];if(a===h.name)return h}}(c,d.pipeRegistry),d.data[A]=h,h.onDestroy&&(d.destroyHooks??=[]).push(A,h.onDestroy)):h=d.data[A];const g=h.factory||(h.factory=ol(h.type)),B=Rs(wm);try{const k=sd(!1),H=g();return sd(k),function Q1(a,c,d,h){d>=a.data.length&&(a.data[d]=null,a.blueprint[d]=null),c[d]=h}(d,Ot(),A,H),H}finally{Rs(B)}}function xu(a,c,d){const h=a+ui,A=Ot(),g=sr(A,h);return vg(A,h)?wu(A,Ns(),c,g.transform,d,g):g.transform(d)}function ua(a,c,d,h){const A=a+ui,g=Ot(),x=sr(g,A);return vg(g,A)?oB(g,Ns(),c,x.transform,d,h,x):x.transform(d,h)}function Td(a,c,d,h,A,g){const x=a+ui,B=Ot(),k=sr(B,x);return vg(B,x)?function sB(a,c,d,h,A,g,x,B,k){const H=c+d;return ec(a,H,A,g,x,B)?Bc(a,H+4,k?h.call(k,A,g,x,B):h(A,g,x,B)):da(a,H+4)}(B,Ns(),c,k.transform,d,h,A,g,k):k.transform(d,h,A,g)}function vg(a,c){return a[Jt].data[c].pure}function PE(a,c){return Em(a,c)}class ub{constructor(c){this.full=c;const d=c.split(".");this.major=d[0],this.minor=d[1],this.patch=d.slice(2).join(".")}}let QL=(()=>{class a{log(d){console.log(d)}warn(d){console.warn(d)}static{this.\u0275fac=function(h){return new(h||a)}}static{this.\u0275prov=Mn({token:a,factory:a.\u0275fac,providedIn:"platform"})}}return a})();const aw=new En(""),lw=new En("");let Ab,XE=(()=>{class a{constructor(d,h,A){this._ngZone=d,this.registry=h,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,Ab||(function KE(a){Ab=a}(A),A.addToWindow(h)),this._watchAngularEvents(),d.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:()=>{so.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let d=this._callbacks.pop();clearTimeout(d.timeoutId),d.doneCb()}});else{let d=this.getPendingTasks();this._callbacks=this._callbacks.filter(h=>!h.updateCb||!h.updateCb(d)||(clearTimeout(h.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(d=>({source:d.source,creationLocation:d.creationLocation,data:d.data})):[]}addCallback(d,h,A){let g=-1;h&&h>0&&(g=setTimeout(()=>{this._callbacks=this._callbacks.filter(x=>x.timeoutId!==g),d()},h)),this._callbacks.push({doneCb:d,timeoutId:g,updateCb:A})}whenStable(d,h,A){if(A&&!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(d,h,A),this._runCallbacksIfReady()}registerApplication(d){this.registry.registerApplication(d,this)}unregisterApplication(d){this.registry.unregisterApplication(d)}findProviders(d,h,A){return[]}static{this.\u0275fac=function(h){return new(h||a)(ds(so),ds(cw),ds(lw))}}static{this.\u0275prov=Mn({token:a,factory:a.\u0275fac})}}return a})(),cw=(()=>{class a{constructor(){this._applications=new Map}registerApplication(d,h){this._applications.set(d,h)}unregisterApplication(d){this._applications.delete(d)}unregisterAllApplications(){this._applications.clear()}getTestability(d){return this._applications.get(d)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(d,h=!0){return Ab?.findTestabilityInTree(this,d,h)??null}static{this.\u0275fac=function(h){return new(h||a)}}static{this.\u0275prov=Mn({token:a,factory:a.\u0275fac,providedIn:"platform"})}}return a})();function mb(a){return!!a&&"function"==typeof a.then}function dw(a){return!!a&&"function"==typeof a.subscribe}const uw=new En("");let hw=(()=>{class a{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((d,h)=>{this.resolve=d,this.reject=h}),this.appInits=Pn(uw,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const d=[];for(const A of this.appInits){const g=A();if(mb(g))d.push(g);else if(dw(g)){const x=new Promise((B,k)=>{g.subscribe({complete:B,error:k})});d.push(x)}}const h=()=>{this.done=!0,this.resolve()};Promise.all(d).then(()=>{h()}).catch(A=>{this.reject(A)}),0===d.length&&h(),this.initialized=!0}static{this.\u0275fac=function(h){return new(h||a)}}static{this.\u0275prov=Mn({token:a,factory:a.\u0275fac,providedIn:"root"})}}return a})();const gb=new En("");let ic=(()=>{class a{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=Pn(bC),this.afterRenderManager=Pn(pF),this.zonelessEnabled=Pn(qy),this.dirtyFlags=0,this.deferredDirtyFlags=0,this.externalTestViews=new Set,this.beforeRender=new Yi.B,this.afterTick=new Yi.B,this.componentTypes=[],this.components=[],this.isStable=Pn(zl).hasPendingTasks.pipe((0,Hr.T)(d=>!d)),this._injector=Pn(ll)}get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}whenStable(){let d;return new Promise(h=>{d=this.isStable.subscribe({next:A=>{A&&h()}})}).finally(()=>{d.unsubscribe()})}get injector(){return this._injector}bootstrap(d,h){const A=d instanceof wI;if(!this._injector.get(hw).done)throw!A&&function Kc(a){const c=$i(a)||Uo(a)||Ko(a);return null!==c&&c.standalone}(d),new Zt(405,!1);let x;x=A?d:this._injector.get(Wy).resolveComponentFactory(d),this.componentTypes.push(x.componentType);const B=function YE(a){return a.isBoundToModule}(x)?void 0:this._injector.get(pp),H=x.create(ps.NULL,[],h||x.selector,B),K=H.location.nativeElement,fe=H.injector.get(aw,null);return fe?.registerApplication(K),H.onDestroy(()=>{this.detachView(H.hostView),Sg(this.components,H),fe?.unregisterApplication(K)}),this._loadComponent(H),H}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){if(this._runningTick)throw new Zt(101,!1);const d=L(null);try{this._runningTick=!0,this.synchronize()}catch(h){this.internalErrorHandler(h)}finally{this._runningTick=!1,L(d),this.afterTick.next()}}synchronize(){let d=null;this._injector.destroyed||(d=this._injector.get(xI,null,{optional:!0})),this.dirtyFlags|=this.deferredDirtyFlags,this.deferredDirtyFlags=0;let h=0;for(;0!==this.dirtyFlags&&h++<10;)this.synchronizeOnce(d)}synchronizeOnce(d){if(this.dirtyFlags|=this.deferredDirtyFlags,this.deferredDirtyFlags=0,7&this.dirtyFlags){const h=!!(1&this.dirtyFlags);this.dirtyFlags&=-8,this.dirtyFlags|=8,this.beforeRender.next(h);for(let{_lView:A,notifyErrorHandler:g}of this._views)eS(A,g,h,this.zonelessEnabled);if(this.dirtyFlags&=-5,this.syncDirtyFlagsWithViews(),7&this.dirtyFlags)return}else d?.begin?.(),d?.end?.();8&this.dirtyFlags&&(this.dirtyFlags&=-9,this.afterRenderManager.execute()),this.syncDirtyFlagsWithViews()}syncDirtyFlagsWithViews(){this.allViews.some(({_lView:d})=>G0(d))?this.dirtyFlags|=2:this.dirtyFlags&=-8}attachView(d){const h=d;this._views.push(h),h.attachToAppRef(this)}detachView(d){const h=d;Sg(this._views,h),h.detachFromAppRef()}_loadComponent(d){this.attachView(d.hostView),this.tick(),this.components.push(d);const h=this._injector.get(gb,[]);[...this._bootstrapListeners,...h].forEach(A=>A(d))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(d=>d()),this._views.slice().forEach(d=>d.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(d){return this._destroyListeners.push(d),()=>Sg(this._destroyListeners,d)}destroy(){if(this._destroyed)throw new Zt(406,!1);const d=this._injector;d.destroy&&!d.destroyed&&d.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static{this.\u0275fac=function(h){return new(h||a)}}static{this.\u0275prov=Mn({token:a,factory:a.\u0275fac,providedIn:"root"})}}return a})();function Sg(a,c){const d=a.indexOf(c);d>-1&&a.splice(d,1)}function eS(a,c,d,h){(d||G0(a))&&Ly(a,c,d&&!h?0:1)}let nS=(()=>{class a{constructor(){this.zone=Pn(so),this.changeDetectionScheduler=Pn(du),this.applicationRef=Pn(ic)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static{this.\u0275fac=function(h){return new(h||a)}}static{this.\u0275prov=Mn({token:a,factory:a.\u0275fac,providedIn:"root"})}}return a})();function Hh({ngZoneFactory:a,ignoreChangesOutsideZone:c,scheduleInRootZone:d}){return a??=()=>new so({...vb(),scheduleInRootZone:d}),[{provide:so,useFactory:a},{provide:mc,multi:!0,useFactory:()=>{const h=Pn(nS,{optional:!0});return()=>h.initialize()}},{provide:mc,multi:!0,useFactory:()=>{const h=Pn(TB);return()=>{h.initialize()}}},!0===c?{provide:DO,useValue:!0}:[],{provide:dM,useValue:d??Ta}]}function vb(a){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:a?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:a?.runCoalescing??!1}}let TB=(()=>{class a{constructor(){this.subscription=new fr.yU,this.initialized=!1,this.zone=Pn(so),this.pendingTasks=Pn(zl)}initialize(){if(this.initialized)return;this.initialized=!0;let d=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(d=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{so.assertNotInAngularZone(),queueMicrotask(()=>{null!==d&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(d),d=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{so.assertInAngularZone(),d??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static{this.\u0275fac=function(h){return new(h||a)}}static{this.\u0275prov=Mn({token:a,factory:a.\u0275fac,providedIn:"root"})}}return a})(),yb=(()=>{class a{constructor(){this.appRef=Pn(ic),this.taskService=Pn(zl),this.ngZone=Pn(so),this.zonelessEnabled=Pn(qy),this.disableScheduling=Pn(DO,{optional:!0})??!1,this.zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run,this.schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}],this.subscriptions=new fr.yU,this.angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Zf):null,this.scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(Pn(dM,{optional:!0})??!1),this.cancelScheduledCallback=null,this.useMicrotaskScheduler=!1,this.runningTick=!1,this.pendingRenderTaskId=null,this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof rm||!this.zoneIsDefined)}notify(d){if(!this.zonelessEnabled&&5===d)return;switch(d){case 0:this.appRef.dirtyFlags|=2;break;case 3:case 2:case 4:case 5:case 1:this.appRef.dirtyFlags|=4;break;case 7:this.appRef.deferredDirtyFlags|=8;break;default:this.appRef.dirtyFlags|=8}if(!this.shouldScheduleTick())return;const h=this.useMicrotaskScheduler?hy:uy;this.pendingRenderTaskId=this.taskService.add(),this.cancelScheduledCallback=this.scheduleInRootZone?Zone.root.run(()=>h(()=>this.tick())):this.ngZone.runOutsideAngular(()=>h(()=>this.tick()))}shouldScheduleTick(){return!(this.disableScheduling||null!==this.pendingRenderTaskId||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Zf+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;!this.zonelessEnabled&&7&this.appRef.dirtyFlags&&(this.appRef.dirtyFlags|=1);const d=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(h){throw this.taskService.remove(d),h}finally{this.cleanup()}this.useMicrotaskScheduler=!0,hy(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(d)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,null!==this.pendingRenderTaskId){const d=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(d)}}static{this.\u0275fac=function(h){return new(h||a)}}static{this.\u0275prov=Mn({token:a,factory:a.\u0275fac,providedIn:"root"})}}return a})();const Iu=new En("",{providedIn:"root",factory:()=>Pn(Iu,Ei.Optional|Ei.SkipSelf)||function V9(){return typeof $localize<"u"&&$localize.locale||B1}()}),$L=new En("",{providedIn:"root",factory:()=>"USD"}),Pp=new En("");function sS(a){return!a.moduleRef}let Np=null;function ZL(){return!1}let BB=(()=>{class a{static{this.__NG_ELEMENT_ID__=e5}}return a})();function e5(a){return function _w(a,c,d){if(ih(a)&&!d){const h=Ws(a.index,c);return new Hy(h,h)}return 175&a.type?new Hy(c[_o],c):null}(jr(),Ot(),!(16&~a))}class PB{constructor(){}supports(c){return r1(c)}create(c){return new n5(c)}}const Cb=(a,c)=>c;class n5{constructor(c){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=c||Cb}forEachItem(c){let d;for(d=this._itHead;null!==d;d=d._next)c(d)}forEachOperation(c){let d=this._itHead,h=this._removalsHead,A=0,g=null;for(;d||h;){const x=!h||d&&d.currentIndex{x=this._trackByFn(A,B),null!==d&&Object.is(d.trackById,x)?(h&&(d=this._verifyReinsertion(d,B,x,A)),Object.is(d.item,B)||this._addIdentityChange(d,B)):(d=this._mismatch(d,B,x,A),h=!0),d=d._next,A++}),this.length=A;return this._truncate(d),this.collection=c,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let c;for(c=this._previousItHead=this._itHead;null!==c;c=c._next)c._nextPrevious=c._next;for(c=this._additionsHead;null!==c;c=c._nextAdded)c.previousIndex=c.currentIndex;for(this._additionsHead=this._additionsTail=null,c=this._movesHead;null!==c;c=c._nextMoved)c.previousIndex=c.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(c,d,h,A){let g;return null===c?g=this._itTail:(g=c._prev,this._remove(c)),null!==(c=null===this._unlinkedRecords?null:this._unlinkedRecords.get(h,null))?(Object.is(c.item,d)||this._addIdentityChange(c,d),this._reinsertAfter(c,g,A)):null!==(c=null===this._linkedRecords?null:this._linkedRecords.get(h,A))?(Object.is(c.item,d)||this._addIdentityChange(c,d),this._moveAfter(c,g,A)):c=this._addAfter(new i5(d,h),g,A),c}_verifyReinsertion(c,d,h,A){let g=null===this._unlinkedRecords?null:this._unlinkedRecords.get(h,null);return null!==g?c=this._reinsertAfter(g,c._prev,A):c.currentIndex!=A&&(c.currentIndex=A,this._addToMoves(c,A)),c}_truncate(c){for(;null!==c;){const d=c._next;this._addToRemovals(this._unlink(c)),c=d}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(c,d,h){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(c);const A=c._prevRemoved,g=c._nextRemoved;return null===A?this._removalsHead=g:A._nextRemoved=g,null===g?this._removalsTail=A:g._prevRemoved=A,this._insertAfter(c,d,h),this._addToMoves(c,h),c}_moveAfter(c,d,h){return this._unlink(c),this._insertAfter(c,d,h),this._addToMoves(c,h),c}_addAfter(c,d,h){return this._insertAfter(c,d,h),this._additionsTail=null===this._additionsTail?this._additionsHead=c:this._additionsTail._nextAdded=c,c}_insertAfter(c,d,h){const A=null===d?this._itHead:d._next;return c._next=A,c._prev=d,null===A?this._itTail=c:A._prev=c,null===d?this._itHead=c:d._next=c,null===this._linkedRecords&&(this._linkedRecords=new OB),this._linkedRecords.put(c),c.currentIndex=h,c}_remove(c){return this._addToRemovals(this._unlink(c))}_unlink(c){null!==this._linkedRecords&&this._linkedRecords.remove(c);const d=c._prev,h=c._next;return null===d?this._itHead=h:d._next=h,null===h?this._itTail=d:h._prev=d,c}_addToMoves(c,d){return c.previousIndex===d||(this._movesTail=null===this._movesTail?this._movesHead=c:this._movesTail._nextMoved=c),c}_addToRemovals(c){return null===this._unlinkedRecords&&(this._unlinkedRecords=new OB),this._unlinkedRecords.put(c),c.currentIndex=null,c._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=c,c._prevRemoved=null):(c._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=c),c}_addIdentityChange(c,d){return c.item=d,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=c:this._identityChangesTail._nextIdentityChange=c,c}}class i5{constructor(c,d){this.item=c,this.trackById=d,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class r5{constructor(){this._head=null,this._tail=null}add(c){null===this._head?(this._head=this._tail=c,c._nextDup=null,c._prevDup=null):(this._tail._nextDup=c,c._prevDup=this._tail,c._nextDup=null,this._tail=c)}get(c,d){let h;for(h=this._head;null!==h;h=h._nextDup)if((null===d||d<=h.currentIndex)&&Object.is(h.trackById,c))return h;return null}remove(c){const d=c._prevDup,h=c._nextDup;return null===d?this._head=h:d._nextDup=h,null===h?this._tail=d:h._prevDup=d,null===this._head}}class OB{constructor(){this.map=new Map}put(c){const d=c.trackById;let h=this.map.get(d);h||(h=new r5,this.map.set(d,h)),h.add(c)}get(c,d){const A=this.map.get(c);return A?A.get(c,d):null}remove(c){const d=c.trackById;return this.map.get(d).remove(c)&&this.map.delete(d),c}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function NB(a,c,d){const h=a.previousIndex;if(null===h)return h;let A=0;return d&&h{if(d&&d.key===A)this._maybeAddToChanges(d,h),this._appendAfter=d,d=d._next;else{const g=this._getOrCreateRecordForKey(A,h);d=this._insertBeforeOrAppend(d,g)}}),d){d._prev&&(d._prev._next=null),this._removalsHead=d;for(let h=d;null!==h;h=h._nextRemoved)h===this._mapHead&&(this._mapHead=null),this._records.delete(h.key),h._nextRemoved=h._next,h.previousValue=h.currentValue,h.currentValue=null,h._prev=null,h._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(c,d){if(c){const h=c._prev;return d._next=c,d._prev=h,c._prev=d,h&&(h._next=d),c===this._mapHead&&(this._mapHead=d),this._appendAfter=c,c}return this._appendAfter?(this._appendAfter._next=d,d._prev=this._appendAfter):this._mapHead=d,this._appendAfter=d,null}_getOrCreateRecordForKey(c,d){if(this._records.has(c)){const A=this._records.get(c);this._maybeAddToChanges(A,d);const g=A._prev,x=A._next;return g&&(g._next=x),x&&(x._prev=g),A._next=null,A._prev=null,A}const h=new s5(c);return this._records.set(c,h),h.currentValue=d,this._addToAdditions(h),h}_reset(){if(this.isDirty){let c;for(this._previousMapHead=this._mapHead,c=this._previousMapHead;null!==c;c=c._next)c._nextPrevious=c._next;for(c=this._changesHead;null!==c;c=c._nextChanged)c.previousValue=c.currentValue;for(c=this._additionsHead;null!=c;c=c._nextAdded)c.previousValue=c.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(c,d){Object.is(d,c.currentValue)||(c.previousValue=c.currentValue,c.currentValue=d,this._addToChanges(c))}_addToAdditions(c){null===this._additionsHead?this._additionsHead=this._additionsTail=c:(this._additionsTail._nextAdded=c,this._additionsTail=c)}_addToChanges(c){null===this._changesHead?this._changesHead=this._changesTail=c:(this._changesTail._nextChanged=c,this._changesTail=c)}_forEach(c,d){c instanceof Map?c.forEach(d):Object.keys(c).forEach(h=>d(c[h],h))}}class s5{constructor(c){this.key=c,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 UB(){return new cS([new PB])}let cS=(()=>{class a{static{this.\u0275prov=Mn({token:a,providedIn:"root",factory:UB})}constructor(d){this.factories=d}static create(d,h){if(null!=h){const A=h.factories.slice();d=d.concat(A)}return new a(d)}static extend(d){return{provide:a,useFactory:h=>a.create(d,h||UB()),deps:[[a,new w0,new xf]]}}find(d){const h=this.factories.find(A=>A.supports(d));if(null!=h)return h;throw new Zt(901,!1)}}return a})();function VB(){return new dS([new LB])}let dS=(()=>{class a{static{this.\u0275prov=Mn({token:a,providedIn:"root",factory:VB})}constructor(d){this.factories=d}static create(d,h){if(h){const A=h.factories.slice();d=d.concat(A)}return new a(d)}static extend(d){return{provide:a,useFactory:h=>a.create(d,h||VB()),deps:[[a,new w0,new xf]]}}find(d){const h=this.factories.find(A=>A.supports(d));if(h)return h;throw new Zt(901,!1)}}return a})();function fS(a){try{const{rootComponent:c,appProviders:d,platformProviders:h}=a,A=function G9(a=[]){if(Np)return Np;const c=function XL(a=[],c){return ps.create({name:c,providers:[{provide:F0,useValue:"platform"},{provide:Pp,useValue:new Set([()=>Np=null])},...a]})}(a);return Np=c,function fw(){!function Pt(a){xt=a}(()=>{throw new Zt(600,!1)})}(),function KL(a){a.get(uT,null)?.forEach(d=>d())}(c),c}(h),g=[Hh({}),{provide:du,useExisting:yb},...d||[]];return function Op(a){const c=sS(a)?a.r3Injector:a.moduleRef.injector,d=c.get(so);return d.run(()=>{sS(a)?a.r3Injector.resolveInjectorInitializers():a.moduleRef.resolveInjectorInitializers();const h=c.get(Mc,null);let A;if(d.runOutsideAngular(()=>{A=d.onError.subscribe({next:g=>{h.handleError(g)}})}),sS(a)){const g=()=>c.destroy(),x=a.platformInjector.get(Pp);x.add(g),c.onDestroy(()=>{A.unsubscribe(),x.delete(g)})}else{const g=()=>a.moduleRef.destroy(),x=a.platformInjector.get(Pp);x.add(g),a.moduleRef.onDestroy(()=>{Sg(a.allPlatformModules,a.moduleRef),A.unsubscribe(),x.delete(g)})}return function JE(a,c,d){try{const h=d();return mb(h)?h.catch(A=>{throw c.runOutsideAngular(()=>a.handleError(A)),A}):h}catch(h){throw c.runOutsideAngular(()=>a.handleError(h)),h}}(h,d,()=>{const g=c.get(hw);return g.runInitializers(),g.donePromise.then(()=>{if(function ug(a){"string"==typeof a&&(KF=a.toLowerCase().replace(/_/g,"-"))}(c.get(Iu,B1)||B1),sS(a)){const B=c.get(ic);return void 0!==a.rootComponent&&B.bootstrap(a.rootComponent),B}return function H9(a,c){const d=a.injector.get(ic);if(a._bootstrapComponents.length>0)a._bootstrapComponents.forEach(h=>d.bootstrap(h));else{if(!a.instance.ngDoBootstrap)throw new Zt(-403,!1);a.instance.ngDoBootstrap(d)}c.push(a)}(a.moduleRef,a.allPlatformModules),a.moduleRef})})})}({r3Injector:new yM({providers:g,parent:A,debugName:"",runEnvironmentInitializers:!1}).injector,platformInjector:A,rootComponent:c})}catch(c){return Promise.reject(c)}}function ko(a){return"boolean"==typeof a?a:null!=a&&"false"!==a}function Lc(a,c=NaN){return isNaN(parseFloat(a))||isNaN(Number(a))?c:Number(a)}function ik(a,c){Fa("NgSignals");const d=ve(a);return c?.equal&&(d[U].equal=c.equal),d}function Wh(a){const c=L(null);try{return a()}finally{L(c)}}const Tw=new En("",{providedIn:"root",factory:()=>Pn(vS)});let vS=(()=>{class a{static{this.\u0275prov=Mn({token:a,providedIn:"root",factory:()=>new _n})}}return a})();class _n{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=Pn(zl),this.taskId=null}scheduleEffect(c){if(this.enqueue(c),null===this.taskId){const d=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(d),this.taskId=null})}}enqueue(c){const d=c.creationZone;this.queues.has(d)||this.queues.set(d,new Set);const h=this.queues.get(d);h.has(c)||(this.queuedEffectCount++,h.add(c))}flush(){for(;this.queuedEffectCount>0;)for(const[c,d]of this.queues)null===c?this.flushQueue(d):c.run(()=>this.flushQueue(d))}flushQueue(c){for(const d of c)c.delete(d),this.queuedEffectCount--,d.run()}}class pa{constructor(c,d,h,A,g,x){this.scheduler=c,this.effectFn=d,this.creationZone=h,this.injector=g,this.watcher=function qt(a,c,d){const h=Object.create(Wt);d&&(h.consumerAllowSignalWrites=!0),h.fn=a,h.schedule=c;const A=k=>{h.cleanupFn=k};return h.ref={notify:()=>we(h),run:()=>{if(null===h.fn)return;if(function V(){return y}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(h.dirty=!1,h.hasRun&&!Ne(h))return;h.hasRun=!0;const k=Be(h);try{h.cleanupFn(),h.cleanupFn=cn,h.fn(A)}finally{Ie(h,k)}},cleanup:()=>h.cleanupFn(),destroy:()=>function x(k){(function g(k){return null===k.fn&&null===k.schedule})(k)||(Je(k),k.cleanupFn(),k.fn=null,k.schedule=null,k.cleanupFn=cn)}(h),[U]:h},h.ref}(B=>this.runEffect(B),()=>this.schedule(),x),this.unregisterOnDestroy=A?.onDestroy(()=>this.destroy())}runEffect(c){try{this.effectFn(c)}catch(d){this.injector.get(Mc,null,{optional:!0})?.handleError(d)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}function rk(a,c){Fa("NgSignals"),!c?.injector&&Ff();const d=c?.injector??Pn(ps),h=!0!==c?.manualCleanup?d.get(hh):null,A=new pa(d.get(Tw),a,typeof Zone>"u"?null:Zone.current,h,d,c?.allowSignalWrites??!1),g=d.get(BB,null,{optional:!0});return g&&8&g._lView[wi]?(g._lView[CA]??=[]).push(A.watcher.notify):A.watcher.notify(),A}},3420:nt=>{"use strict";nt.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:nt=>{"use strict";nt.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}')}},nt=>{nt(nt.s=2809)}]); \ No newline at end of file +(self.webpackChunkvisualization=self.webpackChunkvisualization||[]).push([[792],{2809:(nt,Ee,v)=>{"use strict";v(6935);var o=v(4438);let y=null;function Z(){return y}class L{}const V=new o.nKC("");let X=(()=>{class n{historyGo(e){throw new Error("")}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=o.jDH({token:n,factory:()=>(0,o.WQX)(G),providedIn:"platform"})}}return n})(),G=(()=>{class n extends X{constructor(){super(),this._doc=(0,o.WQX)(V),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Z().getBaseHref(this._doc)}onPopState(e){const i=Z().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Z().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=o.jDH({token:n,factory:()=>new n,providedIn:"platform"})}}return n})();function Q(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 ne(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 re(n){return n&&"?"!==n[0]?"?"+n:n}let me=(()=>{class n{historyGo(e){throw new Error("")}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=o.jDH({token:n,factory:()=>(0,o.WQX)(Be),providedIn:"root"})}}return n})();const we=new o.nKC("");let Be=(()=>{class n extends me{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??(0,o.WQX)(V).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 Q(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+re(this._platformLocation.search),r=this._platformLocation.hash;return r&&e?`${i}${r}`:i}pushState(e,i,r,s){const l=this.prepareExternalUrl(r+re(s));this._platformLocation.pushState(e,i,l)}replaceState(e,i,r,s){const l=this.prepareExternalUrl(r+re(s));this._platformLocation.replaceState(e,i,l)}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)(o.KVO(X),o.KVO(we,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Ne=(()=>{class n{constructor(e){this._subject=new o.bkB,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function $e(n){if(new RegExp("^(https?:)?//").test(n)){const[,e]=n.split(/\/\/[^\/]+/);return e}return n}(ne(qe(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+re(i))}normalize(e){return n.stripTrailingSlash(function He(n,t){if(!n||!t.startsWith(n))return t;const e=t.substring(n.length);return""===e||["/",";","?","#"].includes(e[0])?e:t}(this._basePath,qe(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+re(i)),r)}replaceState(e,i="",r=null){this._locationStrategy.replaceState(r,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+re(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=re}static{this.joinWithSlash=Q}static{this.stripTrailingSlash=ne}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(me))}}static{this.\u0275prov=o.jDH({token:n,factory:()=>function Je(){return new Ne((0,o.KVO)(me))}(),providedIn:"root"})}}return n})();function qe(n){return n.replace(/\/index.html$/,"")}var at=function(n){return n[n.Decimal=0]="Decimal",n[n.Percent=1]="Percent",n[n.Currency=2]="Currency",n[n.Scientific=3]="Scientific",n}(at||{}),We=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}(We||{});const Te={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 li(n,t){const e=(0,o.H5H)(n),i=e[o.KH2.NumberSymbols][t];if(typeof i>"u"){if(t===Te.CurrencyDecimal)return e[o.KH2.NumberSymbols][Te.Decimal];if(t===Te.CurrencyGroup)return e[o.KH2.NumberSymbols][Te.Group]}return i}const gn=o.mq5,De=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function gt(n){const t=parseInt(n);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+n);return t}let Dn=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=o.jDH({token:n,factory:function(i){let r=null;return i?r=new i:(s=o.KVO(o.xe9),r=new _i(s)),r;var s},providedIn:"root"})}}return n})();let _i=(()=>{class n extends Dn{constructor(e){super(),this.locale=e}getPluralCategory(e,i){switch(gn(i||this.locale)(e)){case We.Zero:return"zero";case We.One:return"one";case We.Two:return"two";case We.Few:return"few";case We.Many:return"many";default:return"other"}}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(o.xe9))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();function io(n,t){t=encodeURIComponent(t);for(const e of n.split(";")){const i=e.indexOf("="),[r,s]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(r.trim()===t)return decodeURIComponent(s)}return null}const mo=/\s+/,Io=[];let En=(()=>{class n{constructor(e,i){this._ngEl=e,this._renderer=i,this.initialClasses=Io,this.stateMap=new Map}set klass(e){this.initialClasses=null!=e?e.trim().split(mo):Io}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(mo):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(mo).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)(o.rXU(o.aKT),o.rXU(o.sFG))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"},standalone:!0})}}return n})(),zn=(()=>{class n{constructor(e,i){this._viewContainer=e,this._context=new pi,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){Ui("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){Ui("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)(o.rXU(o.c1b),o.rXU(o.C4Q))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}}return n})();class pi{constructor(){this.$implicit=null,this.ngIf=null}}function Ui(n,t){if(t&&!t.createEmbeddedView)throw new Error(`${n} must be a TemplateRef, but received '${(0,o.Tbb)(t)}'.`)}class Xi{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 No=(()=>{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 ei(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)(o.rXU(Dn))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","ngPlural",""]],inputs:{ngPlural:"ngPlural"},standalone:!0})}}return n})(),ra=(()=>{class n{constructor(e,i,r,s){this.value=e;const l=!isNaN(Number(e));s.addCase(l?`=${e}`:e,new Xi(r,i))}static{this.\u0275fac=function(i){return new(i||n)(o.kS0("ngPluralCase"),o.rXU(o.C4Q),o.rXU(o.c1b),o.rXU(No,1))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","ngPluralCase",""]],standalone:!0})}}return n})(),ga=(()=>{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,s]=e.split("."),l=-1===r.indexOf("-")?void 0:o.czy.DashCase;null!=i?this._renderer.setStyle(this._ngEl.nativeElement,r,s?`${i}${s}`:i,l):this._renderer.removeStyle(this._ngEl.nativeElement,r,l)}_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)(o.rXU(o.aKT),o.rXU(o.MKu),o.rXU(o.sFG))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}}return n})(),vi=(()=>{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)(o.rXU(o.c1b))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[o.OA$]})}}return n})();function xo(n,t){return new o.wOt(2100,!1)}class fc{createSubscription(t,e){return(0,o.O8t)(()=>t.subscribe({next:e,error:i=>{throw i}}))}dispose(t){(0,o.O8t)(()=>t.unsubscribe())}}class _a{createSubscription(t,e){return t.then(e,i=>{throw i})}dispose(t){}}const ks=new _a,vf=new fc;let Qn=(()=>{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((0,o.jNT)(e))return ks;if((0,o.zjR)(e))return vf;throw xo()}_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)(o.rXU(o.gRc,16))}}static{this.\u0275pipe=o.EJ8({name:"async",type:n,pure:!1,standalone:!0})}}return n})();const Lo=/(?:[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 yf=(()=>{class n{transform(e){if(null==e)return null;if("string"!=typeof e)throw xo();return e.replace(Lo,i=>i[0].toUpperCase()+i.slice(1).toLowerCase())}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=o.EJ8({name:"titlecase",type:n,pure:!0,standalone:!0})}}return n})(),wf=(()=>{class n{constructor(e){this.differs=e,this.keyValues=[],this.compareFn=Ud}transform(e,i=Ud){if(!e||!(e instanceof Map)&&"object"!=typeof e)return null;this.differ??=this.differs.find(e).create();const r=this.differ.diff(e),s=i!==this.compareFn;return r&&(this.keyValues=[],r.forEachItem(l=>{this.keyValues.push(function Lx(n,t){return{key:n,value:t}}(l.key,l.currentValue))})),(r||s)&&(this.keyValues.sort(i),this.compareFn=i),this.keyValues}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.MKu,16))}}static{this.\u0275pipe=o.EJ8({name:"keyvalue",type:n,pure:!1,standalone:!0})}}return n})();function Ud(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 ds(n){return!(null==n||""===n||n!=n)}(e))return null;r||=this._locale;try{return function Ar(n,t,e){return function Ln(n,t,e,i,r,s,l=!1){let u="",f=!1;if(isFinite(n)){let p=function pn(n){let i,r,s,l,u,t=Math.abs(n)+"",e=0;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(s=t.search(/e/i))>0?(r<0&&(r=s),r+=+t.slice(s+1),t=t.substring(0,s)):r<0&&(r=t.length),s=0;"0"===t.charAt(s);s++);if(s===(u=t.length))i=[0],r=1;else{for(u--;"0"===t.charAt(u);)u--;for(r-=s,i=[],l=0;s<=u;s++,l++)i[l]=Number(t.charAt(s))}return r>22&&(i=i.splice(0,21),e=r-1,r=1),{digits:i,exponent:e,integerLen:r}}(n);l&&(p=function In(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}(p));let m=t.minInt,_=t.minFrac,b=t.maxFrac;if(s){const O=s.match(De);if(null===O)throw new Error(`${s} is not a valid digit info`);const R=O[1],P=O[3],ee=O[5];null!=R&&(m=gt(R)),null!=P&&(_=gt(P)),null!=ee?b=gt(ee):null!=P&&_>b&&(b=_)}!function Ke(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 s=Math.min(Math.max(t,r),e);let l=s+n.integerLen,u=i[l];if(l>0){i.splice(Math.max(n.integerLen,l));for(let _=l;_=5)if(l-1<0){for(let _=0;_>l;_--)i.unshift(0),n.integerLen++;i.unshift(1),n.integerLen++}else i[l-1]++;for(;r=p?F.pop():f=!1),b>=10?1:0},0);m&&(i.unshift(m),n.integerLen++)}(p,_,b);let w=p.digits,F=p.integerLen;const D=p.exponent;let T=[];for(f=w.every(O=>!O);F0?T=w.splice(F,w.length):(T=w,w=[0]);const I=[];for(w.length>=t.lgSize&&I.unshift(w.splice(-t.lgSize,w.length).join(""));w.length>t.gSize;)I.unshift(w.splice(-t.gSize,w.length).join(""));w.length&&I.unshift(w.join("")),u=I.join(li(e,i)),T.length&&(u+=li(e,r)+T.join("")),D&&(u+=li(e,Te.Exponential)+"+"+D)}else u=li(e,Te.Infinity);return u=n<0&&!f?t.negPre+u+t.negSuf:t.posPre+u+t.posSuf,u}(n,function Mn(n,t="-"){const e={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},i=n.split(";"),r=i[0],s=i[1],l=-1!==r.indexOf(".")?r.split("."):[r.substring(0,r.lastIndexOf("0")+1),r.substring(r.lastIndexOf("0")+1)],u=l[0],f=l[1]||"";e.posPre=u.substring(0,u.indexOf("#"));for(let m=0;m{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=o.$C({type:n})}static{this.\u0275inj=o.G2t({})}}return n})();const Yu="browser";function bv(n){return"server"===n}class ol{}class Yo extends L{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class xA extends Yo{static makeCurrent(){!function U(n){y??=n}(new xA)}onAndCancel(t,e,i){return t.addEventListener(e,i),()=>{t.removeEventListener(e,i)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){t.remove()}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 ed(){return Df=Df||document.querySelector("base"),Df?Df.getAttribute("href"):null}();return null==e?null:function Jx(n){return new URL(n,document.baseURI).pathname}(e)}resetBaseElement(){Df=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return io(document.cookie,t)}}let Df=null,tC=(()=>{class n{build(){return new XMLHttpRequest}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const k0=new o.nKC("");let Bf=(()=>{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(s=>s.supports(e)),!i)throw new o.wOt(5101,!1);return this._eventNameToPlugin.set(e,i),i}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(k0),o.KVO(o.SKi))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();class Pv{constructor(t){this._doc=t}}const kf="ng-app-id";let Rf=(()=>{class n{constructor(e,i,r,s={}){this.doc=e,this.appId=i,this.nonce=r,this.platformId=s,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=bv(s),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[${kf}="${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 s=r.get(e);return s.usage+=i,s.usage}return r.set(e,{usage:i,elements:[]}),i}getStyleElement(e,i){const r=this.styleNodesInDOM,s=r?.get(i);if(s?.parentNode===e)return r.delete(i),s.removeAttribute(kf),s;{const l=this.doc.createElement("style");return this.nonce&&l.setAttribute("nonce",this.nonce),l.textContent=i,this.platformIsServer&&l.setAttribute(kf,this.appId),e.appendChild(l),l}}addStyleToHost(e,i){const r=this.getStyleElement(e,i),s=this.styleRef,l=s.get(i)?.elements;l?l.push(r):s.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)(o.KVO(V),o.KVO(o.sZ2),o.KVO(o.BIS,8),o.KVO(o.Agw))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const ro={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/Math/MathML"},Jt=/%COMP%/g,$s=new o.nKC("",{providedIn:"root",factory:()=>!0});function Vo(n,t){return t.map(e=>e.replace(Jt,n))}let Va=(()=>{class n{constructor(e,i,r,s,l,u,f,p=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=r,this.removeStylesOnCompDestroy=s,this.doc=l,this.platformId=u,this.ngZone=f,this.nonce=p,this.rendererByCompId=new Map,this.platformIsServer=bv(u),this.defaultRenderer=new Oi(e,l,f,this.platformIsServer)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===o.gXe.ShadowDom&&(i={...i,encapsulation:o.gXe.Emulated});const r=this.getOrCreateRenderer(e,i);return r instanceof qd?r.applyToHost(e):r instanceof vc&&r.applyStyles(),r}getOrCreateRenderer(e,i){const r=this.rendererByCompId;let s=r.get(i.id);if(!s){const l=this.doc,u=this.ngZone,f=this.eventManager,p=this.sharedStylesHost,m=this.removeStylesOnCompDestroy,_=this.platformIsServer;switch(i.encapsulation){case o.gXe.Emulated:s=new qd(f,p,i,this.appId,m,l,u,_);break;case o.gXe.ShadowDom:return new _o(f,p,e,i,l,u,this.nonce,_);default:s=new vc(f,p,i,m,l,u,_)}r.set(i.id,s)}return s}ngOnDestroy(){this.rendererByCompId.clear()}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Bf),o.KVO(Rf),o.KVO(o.sZ2),o.KVO($s),o.KVO(V),o.KVO(o.Agw),o.KVO(o.SKi),o.KVO(o.BIS))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();class Oi{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(ro[e]||e,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,e){($d(t)?t.content:t).appendChild(e)}insertBefore(t,e,i){t&&($d(t)?t.content:t).insertBefore(e,i)}removeChild(t,e){e.remove()}selectRootElement(t,e){let i="string"==typeof t?this.doc.querySelector(t):t;if(!i)throw new o.wOt(-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 s=ro[r];s?t.setAttributeNS(s,e,i):t.setAttribute(e,i)}else t.setAttribute(e,i)}removeAttribute(t,e,i){if(i){const r=ro[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&(o.czy.DashCase|o.czy.Important)?t.style.setProperty(e,i,r&o.czy.Important?"important":""):t.style[e]=i}removeStyle(t,e,i){i&o.czy.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=Z().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 $d(n){return"TEMPLATE"===n.tagName&&void 0!==n.content}class _o extends Oi{constructor(t,e,i,r,s,l,u,f){super(t,s,l,f),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const p=Vo(r.id,r.styles);for(const m of p){const _=document.createElement("style");u&&_.setAttribute("nonce",u),_.textContent=m,this.shadowRoot.appendChild(_)}}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(null,e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class vc extends Oi{constructor(t,e,i,r,s,l,u,f){super(t,s,l,u),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=r,this.styles=f?Vo(f,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class qd extends vc{constructor(t,e,i,r,s,l,u,f){const p=r+"-"+i.id;super(t,e,i,s,l,u,f,p),this.contentAttr=function th(n){return"_ngcontent-%COMP%".replace(Jt,n)}(p),this.hostAttr=function oo(n){return"_nghost-%COMP%".replace(Jt,n)}(p)}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 dl=(()=>{class n extends Pv{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)(o.KVO(V))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const Bl=["alt","control","meta","shift"],Ov={"\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"},td={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey};let CA=(()=>{class n extends Pv{constructor(e){super(e)}supports(e){return null!=n.parseEventName(e)}addEventListener(e,i,r){const s=n.parseEventName(i),l=n.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Z().onAndCancel(e,s.domEventName,l))}static parseEventName(e){const i=e.toLowerCase().split("."),r=i.shift();if(0===i.length||"keydown"!==r&&"keyup"!==r)return null;const s=n._normalizeKey(i.pop());let l="",u=i.indexOf("code");if(u>-1&&(i.splice(u,1),l="code."),Bl.forEach(p=>{const m=i.indexOf(p);m>-1&&(i.splice(m,1),l+=p+".")}),l+=s,0!=i.length||0===s.length)return null;const f={};return f.domEventName=r,f.fullKey=l,f}static matchEventFullKeyCode(e,i){let r=Ov[e.key]||e.key,s="";return i.indexOf("code.")>-1&&(r=e.code,s="code."),!(null==r||!r)&&(r=r.toLowerCase()," "===r?r="space":"."===r&&(r="dot"),Bl.forEach(l=>{l!==r&&(0,td[l])(e)&&(s+=l+".")}),s+=r,s===i)}static eventCallback(e,i,r){return s=>{n.matchEventFullKeyCode(s,e)&&r.runGuarded(()=>i(s))}}static _normalizeKey(e){return"esc"===e?"escape":e}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(V))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();function MA(n){return{appProviders:[...P0,...n?.providers??[]],platformProviders:Ho}}const Ho=[{provide:o.Agw,useValue:Yu},{provide:o.PLl,useValue:function kl(){xA.makeCurrent()},multi:!0},{provide:V,useFactory:function nh(){return(0,o.TL$)(document),document},deps:[]}],P0=[{provide:o.H8p,useValue:"root"},{provide:o.zcH,useFactory:function EA(){return new o.zcH},deps:[]},{provide:k0,useClass:dl,multi:!0,deps:[V,o.SKi,o.Agw]},{provide:k0,useClass:CA,multi:!0,deps:[V]},Va,Rf,Bf,{provide:o._9s,useExisting:Va},{provide:ol,useClass:tC,deps:[]},[]];function H0(n,t,e,i,r,s,l){try{var u=n[s](l),f=u.value}catch(p){return void e(p)}u.done?t(f):Promise.resolve(f).then(i,r)}function Cn(n){return function(){var t=this,e=arguments;return new Promise(function(i,r){var s=n.apply(t,e);function l(f){H0(s,i,r,l,u,"next",f)}function u(f){H0(s,i,r,l,u,"throw",f)}l(void 0)})}}var Xd=v(4412),Xr=v(4226),Ai=v(1413),un=v(8359);class Lv extends un.yU{constructor(t,e){super()}schedule(t,e=0){return this}}const IA={setInterval(n,t,...e){const{delegate:i}=IA;return i?.setInterval?i.setInterval(n,t,...e):setInterval(n,t,...e)},clearInterval(n){const{delegate:t}=IA;return(t?.clearInterval||clearInterval)(n)},delegate:void 0};var Pf=v(7908);class Ea extends Lv{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,s=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(s,r,e)),this.pending=!0,this.delay=e,this.id=null!==(i=this.id)&&void 0!==i?i:this.requestAsyncId(s,this.id,e),this}requestAsyncId(t,e,i=0){return IA.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&&IA.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(s){i=!0,r=s||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,(0,Pf.o)(i,this),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null,super.unsubscribe()}}}const Of={now:()=>(Of.delegate||Date).now(),delegate:void 0};class Ol{constructor(t,e=Ol.now){this.schedulerActionCtor=t,this.now=e}schedule(t,e=0,i){return new this.schedulerActionCtor(this,t).schedule(i,e)}}Ol.now=Of.now;class ar extends Ol{constructor(t,e=Ol.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 Nf=new class Q0 extends ar{}(class Pl extends Ea{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 qs(n,t,e,i=0,r=!1){const s=t.schedule(function(){e(),r?n.add(this.schedule(null,i)):this.unsubscribe()},i);if(n.add(s),!r)return s}var Fr=v(9974),sr=v(4360);function Ws(n,t=0){return(0,Fr.N)((e,i)=>{e.subscribe((0,sr._)(i,r=>qs(i,n,()=>i.next(r),t),()=>qs(i,n,()=>i.complete(),t),r=>qs(i,n,()=>i.error(r),t)))})}function Nl(n){return this instanceof Nl?(this.v=n,this):new Nl(n)}function Qv(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 rh(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(s){e[s]=n[s]&&function(l){return new Promise(function(u,f){!function r(s,l,u,f){Promise.resolve(f).then(function(p){s({value:p,done:u})},l)}(u,f,(l=n[s](l)).done,l.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const Mo=n=>n&&"number"==typeof n.length&&"function"!=typeof n;var eo=v(8071);function OA(n){return(0,eo.T)(n?.then)}var Z0=v(3494);function cC(n){return(0,eo.T)(n[Z0.s])}function dC(n){return Symbol.asyncIterator&&(0,eo.T)(n?.[Symbol.asyncIterator])}function J0(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 e_=function $v(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Ns(n){return(0,eo.T)(n?.[e_])}function Ll(n){return function kA(n,t,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=e.apply(n,t||[]),s=[];return r={},u("next"),u("throw"),u("return",function l(w){return function(F){return Promise.resolve(F).then(w,_)}}),r[Symbol.asyncIterator]=function(){return this},r;function u(w,F){i[w]&&(r[w]=function(D){return new Promise(function(T,I){s.push([w,D,T,I])>1||f(w,D)})},F&&(r[w]=F(r[w])))}function f(w,F){try{!function p(w){w.value instanceof Nl?Promise.resolve(w.value.v).then(m,_):b(s[0][2],w)}(i[w](F))}catch(D){b(s[0][3],D)}}function m(w){f("next",w)}function _(w){f("throw",w)}function b(w,F){w(F),s.shift(),s.length&&f(s[0][0],s[0][1])}}(this,arguments,function*(){const e=n.getReader();try{for(;;){const{value:i,done:r}=yield Nl(e.read());if(r)return yield Nl(void 0);yield yield Nl(i)}}finally{e.releaseLock()}})}function NA(n){return(0,eo.T)(n?.getReader)}var ul=v(5334);function Pr(n){if(n instanceof Xr.c)return n;if(null!=n){if(cC(n))return function qv(n){return new Xr.c(t=>{const e=n[Z0.s]();if((0,eo.T)(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(n);if(Mo(n))return function fs(n){return new Xr.c(t=>{for(let e=0;e{n.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,ul.m)})}(n);if(dC(n))return LA(n);if(Ns(n))return function uC(n){return new Xr.c(t=>{for(const e of n)if(t.next(e),t.closed)return;t.complete()})}(n);if(NA(n))return function UA(n){return LA(Ll(n))}(n)}throw J0(n)}function LA(n){return new Xr.c(t=>{(function Hf(n,t){var e,i,r,s;return function Uf(n,t,e,i){return new(e||(e=Promise))(function(s,l){function u(m){try{p(i.next(m))}catch(_){l(_)}}function f(m){try{p(i.throw(m))}catch(_){l(_)}}function p(m){m.done?s(m.value):function r(s){return s instanceof e?s:new e(function(l){l(s)})}(m.value).then(u,f)}p((i=i.apply(n,t||[])).next())})}(this,void 0,void 0,function*(){try{for(e=Qv(n);!(i=yield e.next()).done;)if(t.next(i.value),t.closed)return}catch(l){r={error:l}}finally{try{i&&!i.done&&(s=e.return)&&(yield s.call(e))}finally{if(r)throw r.error}}t.complete()})})(n,t).catch(e=>t.error(e))})}var Ul=v(3669),t_=v(5343);function n_(n){return n&&(0,eo.T)(n.schedule)}function Qf(n){return n[n.length-1]}function VA(n){return(0,eo.T)(Qf(n))?n.pop():void 0}function oh(n){return n_(Qf(n))?n.pop():void 0}function hl(...n){const t=VA(n);return(0,Fr.N)((e,i)=>{const r=n.length,s=new Array(r);let l=n.map(()=>!1),u=!1;for(let f=0;f{s[f]=p,!u&&!l[f]&&(l[f]=!0,(u=l.every(Ul.D))&&(l=null))},t_.l));e.subscribe((0,sr._)(i,f=>{if(u){const p=[f,...s];i.next(t?t(...p):p)}}))})}var $n=v(6354);function Rr(n,t=Ul.D){return n=n??Kv,(0,Fr.N)((e,i)=>{let r,s=!0;e.subscribe((0,sr._)(i,l=>{const u=t(l);(s||!n(r,u))&&(s=!1,r=u,i.next(l))}))})}function Kv(n,t){return n===t}function sh(n,t){const e=!t?.manualCleanup;e&&!t?.injector&&(0,o.Af3)(sh);const i=e?t?.injector?.get(o.abz)??(0,o.WQX)(o.abz):null,r=function fl(n=Object.is){return(t,e)=>1===t.kind&&1===e.kind&&n(t.value,e.value)}(t?.equal);let s;s=(0,o.vPA)(t?.requireSync?{kind:0}:{kind:1,value:t?.initialValue},{equal:r});const l=n.subscribe({next:u=>s.set({kind:1,value:u}),error:u=>{if(t?.rejectErrors)throw u;s.set({kind:2,error:u})}});if(t?.requireSync&&0===s().kind)throw new o.wOt(601,!1);return i?.onDestroy(l.unsubscribe.bind(l)),(0,o.EWP)(()=>{const u=s();switch(u.kind){case 1:return u.value;case 2:throw u.error;case 0:throw new o.wOt(601,!1)}},{equal:t?.equal})}const Kd={};function bn(n,t){if(Kd[n]=(Kd[n]||0)+1,"function"==typeof t)return Yd(n,(...i)=>({...t(...i),type:n}));switch(t?t._as:"empty"){case"empty":return Yd(n,()=>({type:n}));case"props":return Yd(n,i=>({...i,type:n}));default:throw new Error("Unexpected config.")}}function Yd(n,t){return Object.defineProperty(t,"type",{value:n,writable:!1})}const $f="@ngrx/store/init";let wc=(()=>{class n extends Xd.t{constructor(){super({type:$f})}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=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const hC=[wc],ny=new o.nKC("@ngrx/store Internal Root Guard"),fC=new o.nKC("@ngrx/store Internal Initial State"),iy=new o.nKC("@ngrx/store Initial State"),qf=new o.nKC("@ngrx/store Reducer Factory"),Vl=new o.nKC("@ngrx/store Internal Reducer Factory Provider"),Wf=new o.nKC("@ngrx/store Initial Reducers"),od=new o.nKC("@ngrx/store Internal Initial Reducers"),Zd=(new o.nKC("@ngrx/store Store Features"),new o.nKC("@ngrx/store Internal Store Reducers")),KA=(new o.nKC("@ngrx/store Internal Feature Reducers"),new o.nKC("@ngrx/store Internal Feature Configs"),new o.nKC("@ngrx/store Internal Store Features"),new o.nKC("@ngrx/store Internal Feature Reducers Token"),new o.nKC("@ngrx/store Feature Reducers"),new o.nKC("@ngrx/store User Provided Meta Reducers")),YA=new o.nKC("@ngrx/store Meta Reducers"),za=new o.nKC("@ngrx/store Internal Resolved Meta Reducers"),i_=new o.nKC("@ngrx/store User Runtime Checks Config"),Xf=new o.nKC("@ngrx/store Internal User Runtime Checks Config"),Jd=new o.nKC("@ngrx/store Internal Runtime Checks"),xc=new o.nKC("@ngrx/store Check if Action types are unique"),ad=new o.nKC("@ngrx/store Root Store Provider"),bo=new o.nKC("@ngrx/store Feature State Provider");function Sa(n,t={}){const e=Object.keys(n),i={};for(let s=0;ss(r),e(t))}}function Ql(n,t){return Array.isArray(t)&&t.length>0&&(n=Hl.apply(null,[...t,n])),(e,i)=>{const r=n(e);return(s,l)=>r(s=void 0===s?i:s,l)}}class pl extends Xr.c{}class lh extends wc{}let Kf=(()=>{class n extends Xd.t{get currentReducers(){return this.reducers}constructor(e,i,r,s){super(s(r,i)),this.dispatcher=e,this.initialState=i,this.reducers=r,this.reducerFactory=s}addFeature(e){this.addFeatures([e])}addFeatures(e){const i=e.reduce((r,{reducers:s,reducerFactory:l,metaReducers:u,initialState:f,key:p})=>{const m="function"==typeof s?function ah(n){const t=Array.isArray(n)&&n.length>0?Hl(...n):e=>e;return(e,i)=>(e=t(e),(r,s)=>e(r=void 0===r?i:r,s))}(u)(s,f):Ql(l,u)(s,f);return r[p]=m,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 eu(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)(o.KVO(lh),o.KVO(iy),o.KVO(Wf),o.KVO(qf))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const ZA=[Kf,{provide:pl,useExisting:Kf},{provide:lh,useExisting:wc}];let Cc=(()=>{class n extends Ai.B{ngOnDestroy(){this.complete()}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=o.xGo(n)))(r||n)}})()}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const tu=[Cc];class cd extends Xr.c{}let Vi=(()=>{class n extends Xd.t{static{this.INIT=$f}constructor(e,i,r,s){super(s);const p=e.pipe(Ws(Nf)).pipe(hl(i)).pipe(function Xv(n,t){return(0,Fr.N)(function HA(n,t,e,i,r){return(s,l)=>{let u=e,f=t,p=0;s.subscribe((0,sr._)(l,m=>{const _=p++;f=u?n(f,m,_):(u=!0,m),i&&l.next(f)},r&&(()=>{u&&l.next(f),l.complete()})))}}(n,t,arguments.length>=2,!0))}(pC,{state:s}));this.stateSubscription=p.subscribe(({state:m,action:_})=>{this.next(m),r.next(_)}),this.state=sh(this,{manualCleanup:!0,requireSync:!0})}ngOnDestroy(){this.stateSubscription.unsubscribe(),this.complete()}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(wc),o.KVO(pl),o.KVO(Cc),o.KVO(iy))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();function pC(n={state:void 0},[t,e]){const{state:i}=n;return{state:e(i,t),action:t}}const ry=[Vi,{provide:cd,useExisting:Vi}];let Yt=(()=>{class n extends Xr.c{constructor(e,i,r){super(),this.actionsObserver=i,this.reducerManager=r,this.source=e,this.state=e.state}select(e,...i){return oy.call(null,e,...i)(this)}selectSignal(e,i){return(0,o.EWP)(()=>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)(o.KVO(cd),o.KVO(wc),o.KVO(Kf))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const AC=[Yt];function oy(n,t,...e){return function(r){let s;if("string"==typeof n){const l=[t,...e].filter(Boolean);s=r.pipe(function id(...n){const t=n.length;if(0===t)throw new Error("list of properties cannot be empty.");return(0,$n.T)(e=>{let i=e;for(let r=0;rn(l,t)))}return s.pipe(Rr())}}const dd="https://ngrx.io/guide/store/configuration/runtime-checks";function sy(n){return void 0===n}function r_(n){return null===n}function JA(n){return Array.isArray(n)}function tm(n){return"object"==typeof n&&null!==n}function a_(n){return"function"==typeof n}function nm(n,t){return n===t}function ch(n,t=nm,e=nm){let s,i=null,r=null;return{memoized:function p(){if(void 0!==s)return s.result;if(!i)return r=n.apply(null,arguments),i=arguments,r;if(!function ps(n,t,e){for(let i=0;il(n));return i.memoized.apply(null,s)}const r=t.map(s=>s(n,e));return i.memoized.apply(null,[...r,e])}function dh(n,t={stateFn:Bn}){return function(...e){let i=e;if(Array.isArray(i[0])){const[m,..._]=i;i=[...m,..._]}else 1===i.length&&function Ta(n){return!!n&&"object"==typeof n&&Object.values(n).every(t=>"function"==typeof t)}(i[0])&&(i=function hh(n){const t=Object.values(n),e=Object.keys(n);return[...t,(...r)=>e.reduce((s,l,u)=>({...s,[l]:r[u]}),{})]}(i[0]));const r=i.slice(0,i.length-1),s=i[i.length-1],l=r.filter(m=>m.release&&"function"==typeof m.release),u=n(function(...m){return s.apply(null,m)}),f=ch(function(m,_){return t.stateFn.apply(null,[m,r,_,u])});return Object.assign(f.memoized,{release:function p(){f.reset(),u.reset(),l.forEach(m=>m.release())},projector:u.memoized,setResult:f.setResult,clearResult:f.clearResult})}}function lT(n){return n instanceof o.nKC?(0,o.WQX)(n):n}function ud(n){return"function"==typeof n?n():n}function uy(n,t){return n.concat(t)}function hy(){if((0,o.WQX)(Yt,{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 Yf(n){Object.freeze(n);const t=a_(n);return Object.getOwnPropertyNames(n).forEach(e=>{if(!e.startsWith("\u0275")&&function mC(n,t){return Object.prototype.hasOwnProperty.call(n,t)}(n,e)&&(!t||"caller"!==e&&"callee"!==e&&"arguments"!==e)){const i=n[e];(tm(i)||a_(i))&&!Object.isFrozen(i)&&Yf(i)}}),n}function c_(n,t=[]){return(sy(n)||r_(n))&&0===t.length?{path:["root"],value:n}:Object.keys(n).reduce((i,r)=>{if(i)return i;const s=n[r];return function l_(n){return a_(n)&&n.hasOwnProperty("\u0275cmp")}(s)?i:!(sy(s)||r_(s)||function o_(n){return"number"==typeof n}(s)||function ay(n){return"boolean"==typeof n}(s)||function em(n){return"string"==typeof n}(s)||JA(s))&&(function s_(n){if(!function ly(n){return tm(n)&&!JA(n)}(n))return!1;const t=Object.getPrototypeOf(n);return t===Object.prototype||null===t}(s)?c_(s,[...t,r]):{path:[...t,r],value:s})},!1)}function so(n,t){if(!1===n)return;const e=n.path.join("."),i=new Error(`Detected unserializable ${t} at "${e}". ${dd}#strict${t}serializability`);throw i.value=n.value,i.unserializablePath=e,i}function Jf(n){return(0,o.naY)()?{strictStateSerializability:!1,strictActionSerializability:!1,strictStateImmutability:!0,strictActionImmutability:!0,strictActionWithinNgZone:!1,strictActionTypeUniqueness:!1,...n}:{strictStateSerializability:!1,strictActionSerializability:!1,strictStateImmutability:!1,strictActionImmutability:!1,strictActionWithinNgZone:!1,strictActionTypeUniqueness:!1}}function py({strictActionSerializability:n,strictStateSerializability:t}){return e=>n||t?function Zf(n,t){return function(e,i){t.action(i)&&so(c_(i),"action");const r=n(e,i);return t.state()&&so(c_(r),"state"),r}}(e,{action:i=>n&&!fh(i),state:()=>t}):e}function _C({strictActionImmutability:n,strictStateImmutability:t}){return e=>n||t?function gC(n,t){return function(e,i){const r=t.action(i)?Yf(i):i,s=n(e,r);return t.state()?Yf(s):s}}(e,{action:i=>n&&!fh(i),state:()=>t}):e}function fh(n){return n.type.startsWith("@ngrx")}function Ay({strictActionWithinNgZone:n}){return t=>n?function fy(n,t){return function(e,i){if(t.action(i)&&!o.SKi.isInAngularZone())throw new Error(`Action '${i.type}' running outside NgZone. ${dd}#strictactionwithinngzone`);return n(e,i)}}(t,{action:e=>n&&!fh(e)}):t}function my(n){return[{provide:Xf,useValue:n},{provide:i_,useFactory:om,deps:[Xf]},{provide:Jd,deps:[i_],useFactory:Jf},{provide:YA,multi:!0,deps:[Jd],useFactory:_C},{provide:YA,multi:!0,deps:[Jd],useFactory:py},{provide:YA,multi:!0,deps:[Jd],useFactory:Ay}]}function om(n){return n}function Ga(n){if(!n.strictActionTypeUniqueness)return;const t=Object.entries(Kd).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(", ")}. ${dd}#strictactiontypeuniqueness`)}function sm(n={},t={}){return[{provide:ny,useFactory:hy},{provide:fC,useValue:t.initialState},{provide:iy,useFactory:ud,deps:[fC]},{provide:od,useValue:n},{provide:Zd,useExisting:n instanceof o.nKC?n:od},{provide:Wf,deps:[od,[new o.y_5(Zd)]],useFactory:lT},{provide:KA,useValue:t.metaReducers?t.metaReducers:[]},{provide:za,deps:[YA,KA],useFactory:uy},{provide:Vl,useValue:t.reducerFactory?t.reducerFactory:Sa},{provide:qf,deps:[Vl,za],useFactory:Ql},hC,ZA,tu,ry,AC,my(t.runtimeChecks),[{provide:xc,multi:!0,deps:[Jd],useFactory:Ga}]]}const bC=[{provide:ad,useFactory:function Mc(){(0,o.WQX)(wc),(0,o.WQX)(pl),(0,o.WQX)(Cc),(0,o.WQX)(Yt),(0,o.WQX)(ny,{optional:!0}),(0,o.WQX)(xc,{optional:!0})}},{provide:o.Z63,multi:!0,useFactory:()=>()=>(0,o.WQX)(ad)}];function vn(...n){return{reducer:n.pop(),types:n.map(i=>i.type)}}function Fi(n,...t){const e=new Map;for(const i of t)for(const r of i.types){const s=e.get(r);e.set(r,s?(u,f)=>i.reducer(s(u,f),f):i.reducer)}return function(i=n,r){const s=e.get(r.type);return s?s(i,r):i}}const Ec=bn("SET_IS_LOADING_FILE",{_as:"props",_p:void 0}),u_=n=>n.appStatus,hd=sn(u_,n=>n.hoveredNodeId);let Al=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-action-icon"]],inputs:{icon:"icon"},standalone:!0,features:[o.aNF],decls:1,vars:2,consts:[["role","button"]],template:function(i,r){1&i&&o.nrm(0,"i",0),2&i&&o.HbH(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})();const ph=bn("SET_IS_LOADING_MAP",{_as:"props",_p:void 0});var ja=function(n){return n.SquarifiedTreeMap="Squarified TreeMap",n.StreetMap="StreetMap",n.TreeMapStreet="TreeMapStreet",n}(ja||{}),fd=function(n){return n.Standard="High",n.PixelRatioNoAA="Low",n.PixelRatioFXAA="Medium",n.PixelRatioAA="Best",n}(fd||{}),Zo=function(n){return n.FILE="File",n.FOLDER="Folder",n}(Zo||{}),pd=function(n){return n.NAME="Name",n.NUMBER_OF_FILES="Number of Files",n}(pd||{}),Sc=function(n){return n.absolute="absolute",n.relative="relative",n}(Sc||{}),jl=function(n){return n.trueGradient="trueGradient",n.weightedGradient="weightedGradient",n.focusedGradient="focusedGradient",n.absolute="absolute",n}(jl||{}),$l=function(n){return n.none="none",n.from="from",n.to="to",n.both="both",n}($l||{});function cm(n,t){return t instanceof Map?{dataType:"Map",value:[...t.entries()]}:t instanceof Set?{dataType:"Set",value:[...t]}:t}function _y(n,t){return"Map"===t?.dataType?new Map(t.value):"Set"===t?.dataType?new Set(t.value):t}function ao(n,t,e){const i=(0,eo.T)(n)||t||e?{next:n,error:t,complete:e}:n;return i?(0,Fr.N)((r,s)=>{var l;null===(l=i.subscribe)||void 0===l||l.call(i);let u=!0;r.subscribe((0,sr._)(s,f=>{var p;null===(p=i.next)||void 0===p||p.call(i,f),s.next(f)},()=>{var f;u=!1,null===(f=i.complete)||void 0===f||f.call(i),s.complete()},f=>{var p;u=!1,null===(p=i.error)||void 0===p||p.call(i,f),s.error(f)},()=>{var f,p;u&&(null===(f=i.unsubscribe)||void 0===f||f.call(i)),null===(p=i.finalize)||void 0===p||p.call(i)}))}):Ul.D}function M(n){var t,e,i;if(Array.isArray(n)){for(e=Array(t=n.length);t--;)e[t]=(i=n[t])&&"object"==typeof i?M(i):i;return e}if("[object Object]"===Object.prototype.toString.call(n)){for(t in e={},n)"__proto__"===t?Object.defineProperty(e,t,{value:M(n[t]),configurable:!0,enumerable:!0,writable:!0}):e[t]=(i=n[t])&&"object"==typeof i?M(i):i;return e}return n}function C(n){return M(n)}const S=bn("SET_FILES",{_as:"props",_p:void 0}),E=bn("ADD_FILE",{_as:"props",_p:void 0}),N=bn("REMOVE_FILES",{_as:"props",_p:void 0}),$=bn("SET_STANDARD",{_as:"props",_p:void 0}),se=bn("SET_STANDARD_BY_NAMES",{_as:"props",_p:void 0}),xe=bn("SWITCH_REFERENCE_AND_COMPARISON"),ge=bn("SET_DELTA_COMPARISON",{_as:"props",_p:void 0}),Xe=bn("SET_DELTA_REFERENCE",{_as:"props",_p:void 0}),tt=bn("SET_DELTA",{_as:"props",_p:void 0}),mt=[S,E,N,$,se,xe,ge,Xe,tt];var bt=function(n){return n.Reference="Reference",n.Comparison="Comparison",n.Partial="Partial",n.None="None",n}(bt||{});const yn=n=>n.files,Sn=sn(yn,n=>n.find(t=>t.selectedAs===bt.Reference)?.file);function mi(n){return null!=n&&"false"!=`${n}`}function Gn(n,t=0){return function ni(n){return!isNaN(parseFloat(n))&&!isNaN(Number(n))}(n)?Number(n):2===arguments.length?t:0}function Dr(n){return Array.isArray(n)?n:[n]}function hi(n){return null==n?"":"string"==typeof n?n:`${n}px`}function Ci(n){return n instanceof o.aKT?n.nativeElement:n}function mr(n,t=0){return(0,Fr.N)((e,i)=>{i.add(n.schedule(()=>e.subscribe(i),t))})}function Ks(n,t){if(!n)throw new Error("Iterable cannot be null");return new Xr.c(e=>{qs(e,t,()=>{const i=n[Symbol.asyncIterator]();qs(e,t,()=>{i.next().then(r=>{r.done?e.complete():e.next(r.value)})},0,!0)})})}function aa(n,t){return t?function xs(n,t){if(null!=n){if(cC(n))return function yr(n,t){return Pr(n).pipe(mr(t),Ws(t))}(n,t);if(Mo(n))return function Qo(n,t){return new Xr.c(e=>{let i=0;return t.schedule(function(){i===n.length?e.complete():(e.next(n[i++]),e.closed||this.schedule())})})}(n,t);if(OA(n))return function Hi(n,t){return Pr(n).pipe(mr(t),Ws(t))}(n,t);if(dC(n))return Ks(n,t);if(Ns(n))return function Xs(n,t){return new Xr.c(e=>{let i;return qs(e,t,()=>{i=n[e_](),qs(e,t,()=>{let r,s;try{({value:r,done:s}=i.next())}catch(l){return void e.error(l)}s?e.complete():e.next(r)},0,!0)}),()=>(0,eo.T)(i?.return)&&i.return()})}(n,t);if(NA(n))return function $r(n,t){return Ks(Ll(n),t)}(n,t)}throw J0(n)}(n,t):Pr(n)}function So(...n){return aa(n,oh(n))}function Ys(n,t,e=1/0){return(0,eo.T)(t)?Ys((i,r)=>(0,$n.T)((s,l)=>t(i,s,r,l))(Pr(n(i,r))),e):("number"==typeof t&&(e=t),(0,Fr.N)((i,r)=>function la(n,t,e,i,r,s,l,u){const f=[];let p=0,m=0,_=!1;const b=()=>{_&&!f.length&&!p&&t.complete()},w=D=>p{s&&t.next(D),p++;let T=!1;Pr(e(D,m++)).subscribe((0,sr._)(t,I=>{r?.(I),s?w(I):t.next(I)},()=>{T=!0},void 0,()=>{if(T)try{for(p--;f.length&&pF(I)):F(I)}b()}catch(I){t.error(I)}}))};return n.subscribe((0,sr._)(t,w,()=>{_=!0,b()})),()=>{u?.()}}(i,r,n,e)))}const{isArray:Tc}=Array;function Fc(n){return(0,$n.T)(t=>function Ic(n,t){return Tc(t)?n(...t):n(t)}(n,t))}const nu=["addListener","removeListener"],Ad=["addEventListener","removeEventListener"],iu=["on","off"];function Ls(n,t,e,i){if((0,eo.T)(e)&&(i=e,e=void 0),i)return Ls(n,t,e).pipe(Fc(i));const[r,s]=function by(n){return(0,eo.T)(n.addEventListener)&&(0,eo.T)(n.removeEventListener)}(n)?Ad.map(l=>u=>n[l](t,u,e)):function tp(n){return(0,eo.T)(n.addListener)&&(0,eo.T)(n.removeListener)}(n)?nu.map(Dc(n,t)):function Ah(n){return(0,eo.T)(n.on)&&(0,eo.T)(n.off)}(n)?iu.map(Dc(n,t)):[];if(!r&&Mo(n))return Ys(l=>Ls(l,t,e))(Pr(n));if(!r)throw new TypeError("Invalid event target");return new Xr.c(l=>{const u=(...f)=>l.next(1s(u)})}function Dc(n,t){return e=>i=>n[e](t,i)}const h_={schedule(n){let t=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=h_;i&&(t=i.requestAnimationFrame,e=i.cancelAnimationFrame);const r=t(s=>{e=void 0,n(s)});return new un.yU(()=>e?.(r))},requestAnimationFrame(...n){const{delegate:t}=h_;return(t?.requestAnimationFrame||requestAnimationFrame)(...n)},cancelAnimationFrame(...n){const{delegate:t}=h_;return(t?.cancelAnimationFrame||cancelAnimationFrame)(...n)},delegate:void 0};new class vy extends ar{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 uT extends Ea{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=h_.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:s}=t;null!=e&&(null===(r=s[s.length-1])||void 0===r?void 0:r.id)!==e&&(h_.cancelAnimationFrame(e),t._scheduled=void 0)}});let vC,$P=1;const yy={};function qP(n){return n in yy&&(delete yy[n],!0)}const EV={setImmediate(n){const t=$P++;return yy[t]=!0,vC||(vC=Promise.resolve()),vC.then(()=>qP(t)&&n()),t},clearImmediate(n){qP(n)}},{setImmediate:WP,clearImmediate:wC}=EV,dm={setImmediate(...n){const{delegate:t}=dm;return(t?.setImmediate||WP)(...n)},clearImmediate(n){const{delegate:t}=dm;return(t?.clearImmediate||wC)(n)},delegate:void 0},f_=new class wy extends ar{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 um extends Ea{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=dm.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:s}=t;null!=e&&(null===(r=s[s.length-1])||void 0===r?void 0:r.id)!==e&&(dm.clearImmediate(e),t._scheduled===e&&(t._scheduled=void 0))}}),ru=new ar(Ea),hm=ru;function np(n=0,t,e=hm){let i=-1;return null!=t&&(n_(t)?e=t:i=t),new Xr.c(r=>{let s=function Cy(n){return n instanceof Date&&!isNaN(n)}(n)?+n-e.now():n;s<0&&(s=0);let l=0;return e.schedule(function(){r.closed||(r.next(l++),0<=i?this.schedule(void 0,i):r.complete())},s)})}function p_(n,t=ru){return function xC(n){return(0,Fr.N)((t,e)=>{let i=!1,r=null,s=null,l=!1;const u=()=>{if(s?.unsubscribe(),s=null,i){i=!1;const p=r;r=null,e.next(p)}l&&e.complete()},f=()=>{s=null,l&&e.complete()};t.subscribe((0,sr._)(e,p=>{i=!0,r=p,s||Pr(n(p)).subscribe(s=(0,sr._)(e,u,f))},()=>{l=!0,(!i||!s||s.closed)&&e.complete()}))})}(()=>np(n,t))}function ur(n,t){return(0,Fr.N)((e,i)=>{let r=0;e.subscribe((0,sr._)(i,s=>n.call(t,s,r++)&&i.next(s)))})}function vo(n){return(0,Fr.N)((t,e)=>{Pr(n).subscribe((0,sr._)(e,()=>e.complete(),t_.l)),!e.closed&&t.subscribe(e)})}let ip;try{ip=typeof Intl<"u"&&Intl.v8BreakIterator}catch{ip=!1}let fm,Fo=(()=>{class n{constructor(e){this._platformId=e,this.isBrowser=this._platformId?function Vx(n){return n===Yu}(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&&!ip)&&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)(o.KVO(o.Agw))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const hT=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function My(){if(fm)return fm;if("object"!=typeof document||!document)return fm=new Set(hT),fm;let n=document.createElement("input");return fm=new Set(hT.filter(t=>(n.setAttribute("type",t),n.type===t))),fm}let pm;function rp(n){return function KP(){if(null==pm&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>pm=!0}))}finally{pm=pm||!1}return pm}()?n:!!n.capture}var $a=function(n){return n[n.NORMAL=0]="NORMAL",n[n.NEGATED=1]="NEGATED",n[n.INVERTED=2]="INVERTED",n}($a||{});let A_,ou,pT;function fT(){if(null==ou){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return ou=!1,ou;if("scrollBehavior"in document.documentElement.style)ou=!0;else{const n=Element.prototype.scrollTo;ou=!!n&&!/\{\s*\[native code\]\s*\}/.test(n.toString())}}return ou}function Ey(){if("object"!=typeof document||!document)return $a.NORMAL;if(null==A_){const n=document.createElement("div"),t=n.style;n.dir="rtl",t.width="1px",t.overflow="auto",t.visibility="hidden",t.pointerEvents="none",t.position="absolute";const e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",n.appendChild(e),document.body.appendChild(n),A_=$a.NORMAL,0===n.scrollLeft&&(n.scrollLeft=1,A_=0===n.scrollLeft?$a.NEGATED:$a.INVERTED),n.remove()}return A_}function op(){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 ql(n){return n.composedPath?n.composedPath()[0]:n.target}function CC(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const ZP=new o.nKC("cdk-dir-doc",{providedIn:"root",factory:function AT(){return(0,o.WQX)(V)}}),MC=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let Zs=(()=>{class n{constructor(e){this.value="ltr",this.change=new o.bkB,e&&(this.value=function mT(n){const t=n?.toLowerCase()||"";return"auto"===t&&typeof navigator<"u"&&navigator?.language?MC.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)(o.KVO(ZP,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),mh=(()=>{class n{constructor(e,i,r){this._ngZone=e,this._platform=i,this._scrolled=new Ai.B,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 Xr.c(i=>{this._globalSubscription||this._addGlobalListener();const r=e>0?this._scrolled.pipe(p_(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{r.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):So()}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(ur(s=>!s||r.indexOf(s)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((r,s)=>{this._scrollableContainsElement(s,e)&&i.push(s)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let r=Ci(i),s=e.getElementRef().nativeElement;do{if(r==s)return!0}while(r=r.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>Ls(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)(o.KVO(o.SKi),o.KVO(Fo),o.KVO(V,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),r4=(()=>{class n{constructor(e,i,r,s){this.elementRef=e,this.scrollDispatcher=i,this.ngZone=r,this.dir=s,this._destroyed=new Ai.B,this._elementScrolled=new Xr.c(l=>this.ngZone.runOutsideAngular(()=>Ls(this.elementRef.nativeElement,"scroll").pipe(vo(this._destroyed)).subscribe(l)))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(e){const i=this.elementRef.nativeElement,r=this.dir&&"rtl"==this.dir.value;null==e.left&&(e.left=r?e.end:e.start),null==e.right&&(e.right=r?e.start:e.end),null!=e.bottom&&(e.top=i.scrollHeight-i.clientHeight-e.bottom),r&&Ey()!=$a.NORMAL?(null!=e.left&&(e.right=i.scrollWidth-i.clientWidth-e.left),Ey()==$a.INVERTED?e.left=e.right:Ey()==$a.NEGATED&&(e.left=e.right?-e.right:e.right)):null!=e.right&&(e.left=i.scrollWidth-i.clientWidth-e.right),this._applyScrollToOptions(e)}_applyScrollToOptions(e){const i=this.elementRef.nativeElement;fT()?i.scrollTo(e):(null!=e.top&&(i.scrollTop=e.top),null!=e.left&&(i.scrollLeft=e.left))}measureScrollOffset(e){const i="left",r="right",s=this.elementRef.nativeElement;if("top"==e)return s.scrollTop;if("bottom"==e)return s.scrollHeight-s.clientHeight-s.scrollTop;const l=this.dir&&"rtl"==this.dir.value;return"start"==e?e=l?r:i:"end"==e&&(e=l?i:r),l&&Ey()==$a.INVERTED?e==i?s.scrollWidth-s.clientWidth-s.scrollLeft:s.scrollLeft:l&&Ey()==$a.NEGATED?e==i?s.scrollLeft+s.scrollWidth-s.clientWidth:-s.scrollLeft:e==i?s.scrollLeft:s.scrollWidth-s.clientWidth-s.scrollLeft}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT),o.rXU(mh),o.rXU(o.SKi),o.rXU(Zs,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]],standalone:!0})}}return n})(),_T=(()=>{class n{constructor(e,i,r){this._platform=e,this._change=new Ai.B,this._changeListener=s=>{this._change.next(s)},this._document=r,i.runOutsideAngular(()=>{if(e.isBrowser){const s=this._getWindow();s.addEventListener("resize",this._changeListener),s.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,s=r.getBoundingClientRect();return{top:-s.top||e.body.scrollTop||i.scrollY||r.scrollTop||0,left:-s.left||e.body.scrollLeft||i.scrollX||r.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(p_(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)(o.KVO(Fo),o.KVO(o.SKi),o.KVO(V,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();class vT{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 Am extends vT{constructor(t,e,i,r,s){super(),this.component=t,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=r,this.projectableNodes=s}}class g_ extends vT{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 d4 extends vT{constructor(t){super(),this.element=t instanceof o.aKT?t.nativeElement:t}}class FC{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(t){return t instanceof Am?(this._attachedPortal=t,this.attachComponentPortal(t)):t instanceof g_?(this._attachedPortal=t,this.attachTemplatePortal(t)):this.attachDomPortal&&t instanceof d4?(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 DC extends FC{constructor(t,e,i,r,s){super(),this.outletElement=t,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=r,this.attachDomPortal=l=>{const u=l.element,f=this._document.createComment("dom-portal");u.parentNode.insertBefore(f,u),this.outletElement.appendChild(u),this._attachedPortal=l,super.setDisposeFn(()=>{f.parentNode&&f.parentNode.replaceChild(u,f)})},this._document=s}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||o.zZn.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 __=(()=>{class n extends FC{constructor(e,i,r){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new o.bkB,this.attachDomPortal=s=>{const l=s.element,u=this._document.createComment("dom-portal");s.setAttachedHost(this),l.parentNode.insertBefore(u,l),this._getRootNode().appendChild(l),this._attachedPortal=s,super.setDisposeFn(()=>{u.parentNode&&u.parentNode.replaceChild(l,u)})},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,s=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),l=i.createComponent(s,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(l.hostView.rootNodes[0]),super.setDisposeFn(()=>l.destroy()),this._attachedPortal=e,this._attachedRef=l,this.attached.emit(l),l}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)(o.rXU(o.OM3),o.rXU(o.c1b),o.rXU(V))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],standalone:!0,features:[o.Vt3]})}}return n})();function f4(n=1/0){return Ys(Ul.D,n)}const bh=new Xr.c(n=>n.complete());function Wl(...n){const t=oh(n),e=function Wv(n,t){return"number"==typeof Qf(n)?n.pop():t}(n,1/0),i=n;return i.length?1===i.length?Pr(i[0]):f4(e)(aa(i,t)):bh}function Yl(n,...t){return t.length?t.some(e=>n[e]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}const VC=fT();class q4{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=hi(-this._previousScrollPosition.left),t.style.top=hi(-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,s=i.scrollBehavior||"",l=r.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),VC&&(i.scrollBehavior=r.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),VC&&(i.scrollBehavior=s,r.scrollBehavior=l)}}_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 lp{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(ur(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 By{enable(){}disable(){}attach(){}}function cp(n,t){return t.some(e=>n.bottome.bottom||n.righte.right)}function QC(n,t){return t.some(e=>n.tope.bottom||n.lefte.right)}class zC{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();cp(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 GC=(()=>{class n{constructor(e,i,r,s){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=r,this.noop=()=>new By,this.close=l=>new lp(this._scrollDispatcher,this._ngZone,this._viewportRuler,l),this.block=()=>new q4(this._viewportRuler,this._document),this.reposition=l=>new zC(this._scrollDispatcher,this._viewportRuler,this._ngZone,l),this._document=s}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(mh),o.KVO(_T),o.KVO(o.SKi),o.KVO(V))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();class xm{constructor(t){if(this.scrollStrategy=new By,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 X4{constructor(t,e){this.connectionPair=t,this.scrollableViewProperties=e}}let jC=(()=>{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)(o.KVO(V))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),K4=(()=>{class n extends jC{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=r=>{const s=this._attachedOverlays;for(let l=s.length-1;l>-1;l--)if(s[l]._keydownEvents.observers.length>0){const u=s[l]._keydownEvents;this._ngZone?this._ngZone.run(()=>u.next(r)):u.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)(o.KVO(V),o.KVO(o.SKi,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Y4=(()=>{class n extends jC{constructor(e,i,r){super(e),this._platform=i,this._ngZone=r,this._cursorStyleIsSet=!1,this._pointerDownListener=s=>{this._pointerDownEventTarget=ql(s)},this._clickListener=s=>{const l=ql(s),u="click"===s.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:l;this._pointerDownEventTarget=null;const f=this._attachedOverlays.slice();for(let p=f.length-1;p>-1;p--){const m=f[p];if(m._outsidePointerEvents.observers.length<1||!m.hasAttached())continue;if(LT(m.overlayElement,l)||LT(m.overlayElement,u))break;const _=m._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>_.next(s)):_.next(s)}}}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)(o.KVO(V),o.KVO(Fo),o.KVO(o.SKi,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function LT(n,t){const e=typeof ShadowRoot<"u"&&ShadowRoot;let i=t;for(;i;){if(i===n)return!0;i=e&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}let ky=(()=>{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||CC()){const r=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let s=0;sthis._backdropClick.next(b),this._backdropTransitionendHandler=b=>{this._disposeBackdrop(b.target)},this._keydownEvents=new Ai.B,this._outsidePointerEvents=new Ai.B,this._renders=new Ai.B,r.scrollStrategy&&(this._scrollStrategy=r.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=r.positionStrategy,this._afterRenderRef=(0,o.O8t)(()=>(0,o.Tzd)(()=>{this._renders.next()},{injector:this._injector}))}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._afterNextRenderRef?.destroy(),this._afterNextRenderRef=(0,o.mal)(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),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._detachContentWhenEmpty(),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._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=null,t&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.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=hi(this._config.width),t.height=hi(this._config.height),t.minWidth=hi(this._config.minWidth),t.minHeight=hi(this._config.minHeight),t.maxWidth=hi(this._config.maxWidth),t.maxHeight=hi(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=Dr(e||[]).filter(s=>!!s);r.length&&(i?t.classList.add(...r):t.classList.remove(...r))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{const t=this._renders.pipe(vo(Wl(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 $C="cdk-overlay-connected-position-bounding-box",Z4=/([A-Za-z%]+)$/;class J4{get positions(){return this._preferredPositions}constructor(t,e,i,r,s){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=s,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 Ai.B,this._resizeSubscription=un.yU.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(t)}attach(t){this._validatePositions(),t.hostElement.classList.add($C),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,s=[];let l;for(let u of this._preferredPositions){let f=this._getOriginPoint(t,r,u),p=this._getOverlayPoint(f,e,u),m=this._getOverlayFit(p,e,i,u);if(m.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(u,f);this._canFitWithFlexibleDimensions(m,p,i)?s.push({position:u,origin:f,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(f,u)}):(!l||l.overlayFit.visibleAreaf&&(f=m,u=p)}return this._isPushed=!1,void this._applyPosition(u.position,u.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(l.position,l.originPoint);this._applyPosition(l.position,l.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&As(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove($C),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,s;if("center"==i.originX)r=t.left+t.width/2;else{const l=this._isRtl()?t.right:t.left,u=this._isRtl()?t.left:t.right;r="start"==i.originX?l:u}return e.left<0&&(r-=e.left),s="center"==i.originY?t.top+t.height/2:"top"==i.originY?t.top:t.bottom,e.top<0&&(s-=e.top),{x:r,y:s}}_getOverlayPoint(t,e,i){let r,s;return r="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,s="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:t.x+r,y:t.y+s}}_getOverlayFit(t,e,i,r){const s=VT(e);let{x:l,y:u}=t,f=this._getOffset(r,"x"),p=this._getOffset(r,"y");f&&(l+=f),p&&(u+=p);let b=0-u,w=u+s.height-i.height,F=this._subtractOverflows(s.width,0-l,l+s.width-i.width),D=this._subtractOverflows(s.height,b,w),T=F*D;return{visibleArea:T,isCompletelyWithinViewport:s.width*s.height===T,fitsInViewportVertically:D===s.height,fitsInViewportHorizontally:F==s.width}}_canFitWithFlexibleDimensions(t,e,i){if(this._hasFlexibleDimensions){const r=i.bottom-e.y,s=i.right-e.x,l=UT(this._overlayRef.getConfig().minHeight),u=UT(this._overlayRef.getConfig().minWidth);return(t.fitsInViewportVertically||null!=l&&l<=r)&&(t.fitsInViewportHorizontally||null!=u&&u<=s)}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=VT(e),s=this._viewportRect,l=Math.max(t.x+r.width-s.width,0),u=Math.max(t.y+r.height-s.height,0),f=Math.max(s.top-i.top-t.y,0),p=Math.max(s.left-i.left-t.x,0);let m=0,_=0;return m=r.width<=s.width?p||-l:t.xF&&!this._isInitialRender&&!this._growAfterOpen&&(l=t.y-F/2)}if("end"===e.overlayX&&!r||"start"===e.overlayX&&r)b=i.width-t.x+2*this._viewportMargin,m=t.x-this._viewportMargin;else if("start"===e.overlayX&&!r||"end"===e.overlayX&&r)_=t.x,m=i.right-t.x;else{const w=Math.min(i.right-t.x+i.left,t.x),F=this._lastBoundingBoxSize.width;m=2*w,_=t.x-w,m>F&&!this._isInitialRender&&!this._growAfterOpen&&(_=t.x-F/2)}return{top:l,left:_,bottom:u,right:b,width:m,height:s}}_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 s=this._overlayRef.getConfig().maxHeight,l=this._overlayRef.getConfig().maxWidth;r.height=hi(i.height),r.top=hi(i.top),r.bottom=hi(i.bottom),r.width=hi(i.width),r.left=hi(i.left),r.right=hi(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",s&&(r.maxHeight=hi(s)),l&&(r.maxWidth=hi(l))}this._lastBoundingBoxSize=i,As(this._boundingBox.style,r)}_resetBoundingBoxStyles(){As(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){As(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,e){const i={},r=this._hasExactPosition(),s=this._hasFlexibleDimensions,l=this._overlayRef.getConfig();if(r){const m=this._viewportRuler.getViewportScrollPosition();As(i,this._getExactOverlayY(e,t,m)),As(i,this._getExactOverlayX(e,t,m))}else i.position="static";let u="",f=this._getOffset(e,"x"),p=this._getOffset(e,"y");f&&(u+=`translateX(${f}px) `),p&&(u+=`translateY(${p}px)`),i.transform=u.trim(),l.maxHeight&&(r?i.maxHeight=hi(l.maxHeight):s&&(i.maxHeight="")),l.maxWidth&&(r?i.maxWidth=hi(l.maxWidth):s&&(i.maxWidth="")),As(this._pane.style,i)}_getExactOverlayY(t,e,i){let r={top:"",bottom:""},s=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),"bottom"===t.overlayY?r.bottom=this._document.documentElement.clientHeight-(s.y+this._overlayRect.height)+"px":r.top=hi(s.y),r}_getExactOverlayX(t,e,i){let l,r={left:"",right:""},s=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),l=this._isRtl()?"end"===t.overlayX?"left":"right":"end"===t.overlayX?"right":"left","right"===l?r.right=this._document.documentElement.clientWidth-(s.x+this._overlayRect.width)+"px":r.left=hi(s.x),r}_getScrollVisibility(){const t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(r=>r.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:QC(t,i),isOriginOutsideView:cp(t,i),isOverlayClipped:QC(e,i),isOverlayOutsideView:cp(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&&Dr(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 o.aKT)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 As(n,t){for(let e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n}function UT(n){if("number"!=typeof n&&null!=n){const[t,e]=n.split(Z4);return e&&"px"!==e?null:parseFloat(t)}return n||null}function VT(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 QT="cdk-global-overlay-wrapper";class tO{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(QT),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:s,maxWidth:l,maxHeight:u}=i,f=!("100%"!==r&&"100vw"!==r||l&&"100%"!==l&&"100vw"!==l),p=!("100%"!==s&&"100vh"!==s||u&&"100%"!==u&&"100vh"!==u),m=this._xPosition,_=this._xOffset,b="rtl"===this._overlayRef.getConfig().direction;let w="",F="",D="";f?D="flex-start":"center"===m?(D="center",b?F=_:w=_):b?"left"===m||"end"===m?(D="flex-end",w=_):("right"===m||"start"===m)&&(D="flex-start",F=_):"left"===m||"start"===m?(D="flex-start",w=_):("right"===m||"end"===m)&&(D="flex-end",F=_),t.position=this._cssPosition,t.marginLeft=f?"0":w,t.marginTop=p?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=f?"0":F,e.justifyContent=D,e.alignItems=p?"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(QT),i.justifyContent=i.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}}let nO=(()=>{class n{constructor(e,i,r,s){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=s}global(){return new tO}flexibleConnectedTo(e){return new J4(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(_T),o.KVO(V),o.KVO(Fo),o.KVO(ky))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),zT=0,Us=(()=>{class n{constructor(e,i,r,s,l,u,f,p,m,_,b,w){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=r,this._positionBuilder=s,this._keyboardDispatcher=l,this._injector=u,this._ngZone=f,this._document=p,this._directionality=m,this._location=_,this._outsideClickDispatcher=b,this._animationsModuleType=w}create(e){const i=this._createHostElement(),r=this._createPaneElement(i),s=this._createPortalOutlet(r),l=new xm(e);return l.direction=l.direction||this._directionality.value,new x_(s,i,r,l,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType,this._injector.get(o.uvJ))}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+zT++,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(o.o8S)),new DC(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(GC),o.KVO(ky),o.KVO(o.OM3),o.KVO(nO),o.KVO(K4),o.KVO(o.zZn),o.KVO(o.SKi),o.KVO(V),o.KVO(Zs),o.KVO(Ne),o.KVO(Y4),o.KVO(o.bc$,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const iO=[{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"}],Ry=new o.nKC("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{const n=(0,o.WQX)(Us);return()=>n.scrollStrategies.reposition()}});let Py=(()=>{class n{constructor(e){this.elementRef=e}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"],standalone:!0})}}return n})(),GT=(()=>{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,s,l){this._overlay=e,this._dir=l,this._backdropSubscription=un.yU.EMPTY,this._attachSubscription=un.yU.EMPTY,this._detachSubscription=un.yU.EMPTY,this._positionSubscription=un.yU.EMPTY,this._disposeOnNavigation=!1,this._ngZone=(0,o.WQX)(o.SKi),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 o.bkB,this.positionChange=new o.bkB,this.attach=new o.bkB,this.detach=new o.bkB,this.overlayKeydown=new o.bkB,this.overlayOutsideClick=new o.bkB,this._templatePortal=new g_(i,r),this._scrollStrategyFactory=s,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=iO);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&&!Yl(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{const r=this._getOriginElement(),s=ql(i);(!r||r!==s&&!r.contains(s))&&this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new xm({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._getOrigin()).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._getOrigin());return this._updatePositionStrategy(e),e}_getOrigin(){return this.origin instanceof Py?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof Py?this.origin.elementRef.nativeElement:this.origin instanceof o.aKT?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_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 gh(n,t=!1){return(0,Fr.N)((e,i)=>{let r=0;e.subscribe((0,sr._)(i,s=>{const l=n(s,r++);(l||t)&&i.next(s),!l&&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)(o.rXU(Us),o.rXU(o.C4Q),o.rXU(o.c1b),o.rXU(Ry),o.rXU(Zs,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",o.L39],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",o.L39],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",o.L39],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",o.L39],push:[2,"cdkConnectedOverlayPush","push",o.L39],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",o.L39]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],standalone:!0,features:[o.GFd,o.OA$]})}}return n})();function M_(n,t=ru){return(0,Fr.N)((e,i)=>{let r=null,s=null,l=null;const u=()=>{if(r){r.unsubscribe(),r=null;const p=s;s=null,i.next(p)}};function f(){const p=l+n,m=t.now();if(m{s=p,l=t.now(),r||(r=t.schedule(f,n),i.add(r))},()=>{u(),i.complete()},void 0,()=>{s=r=null}))})}function ms(n){return n<=0?()=>bh:(0,Fr.N)((t,e)=>{let i=0;t.subscribe((0,sr._)(e,r=>{++i<=n&&(e.next(r),n<=i&&e.complete())}))})}function E_(n){return ur((t,e)=>n<=e)}function Oy(n,t,e){const i=T_(n,t);e=e.trim(),!i.some(r=>r.trim()===e)&&(i.push(e),n.setAttribute(t,i.join(" ")))}function jT(n,t,e){const i=T_(n,t);e=e.trim();const r=i.filter(s=>s!==e);r.length?n.setAttribute(t,r.join(" ")):n.removeAttribute(t)}function T_(n,t){return n.getAttribute(t)?.match(/\S+/g)??[]}const WC="cdk-describedby-message",dp="cdk-describedby-host";let I_=0,au=(()=>{class n{constructor(e,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+I_++,this._document=e,this._id=(0,o.WQX)(o.sZ2)+"-"+I_++}describe(e,i,r){if(!this._canBeDescribed(e,i))return;const s=XC(i,r);"string"!=typeof i?($T(i,this._id),this._messageRegistry.set(s,{messageElement:i,referenceCount:0})):this._messageRegistry.has(s)||this._createMessageElement(i,r),this._isElementDescribedByMessage(e,s)||this._addMessageReference(e,s)}removeDescription(e,i,r){if(!i||!this._isElementNode(e))return;const s=XC(i,r);if(this._isElementDescribedByMessage(e,s)&&this._removeMessageReference(e,s),"string"==typeof i){const l=this._messageRegistry.get(s);l&&0===l.referenceCount&&this._deleteMessageElement(s)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${dp}="${this._id}"]`);for(let i=0;i0!=r.indexOf(WC));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const r=this._messageRegistry.get(i);Oy(e,"aria-describedby",r.messageElement.id),e.setAttribute(dp,this._id),r.referenceCount++}_removeMessageReference(e,i){const r=this._messageRegistry.get(i);r.referenceCount--,jT(e,"aria-describedby",r.messageElement.id),e.removeAttribute(dp)}_isElementDescribedByMessage(e,i){const r=T_(e,"aria-describedby"),s=this._messageRegistry.get(i),l=s&&s.messageElement.id;return!!l&&-1!=r.indexOf(l)}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&"object"==typeof i)return!0;const r=null==i?"":`${i}`.trim(),s=e.getAttribute("aria-label");return!(!r||s&&s.trim()===r)}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(V),o.KVO(Fo))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function XC(n,t){return"string"==typeof n?`${t||""}/${n}`:n}function $T(n,t){n.id||(n.id=`${WC}-${t}-${I_++}`)}class qT{constructor(t,e){this._letterKeyStream=new Ai.B,this._items=[],this._selectedItemIndex=-1,this._pressedLetters=[],this._selectedItem=new Ai.B,this.selectedItem=this._selectedItem;const i="number"==typeof e?.debounceInterval?e.debounceInterval:200;e?.skipPredicate&&(this._skipPredicateFn=e.skipPredicate),this.setItems(t),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(t){this._selectedItemIndex=t}setItems(t){this._items=t}handleKey(t){const e=t.keyCode;t.key&&1===t.key.length?this._letterKeyStream.next(t.key.toLocaleUpperCase()):(e>=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(t){this._letterKeyStream.pipe(ao(e=>this._pressedLetters.push(e)),M_(t),ur(()=>this._pressedLetters.length>0),(0,$n.T)(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(e=>{for(let i=1;ii.disabled,this.tabOut=new Ai.B,this.change=new Ai.B,t instanceof o.rOR?this._itemChangesSubscription=t.changes.subscribe(i=>this._itemsChanged(i.toArray())):(0,o.Hps)(t)&&(this._effectRef=(0,o.QZP)(()=>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){this._typeaheadSubscription.unsubscribe();const e=this._getItemsArray();return this._typeahead=new qT(e,{debounceInterval:"number"==typeof t?t:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(t=!0){return this._homeAndEnd=t,this}withPageUpDown(t=!0,e=10){return this._pageUpAndDown={enabled:t,delta:e},this}setActiveItem(t){const e=this._activeItem;this.updateActiveItem(t),this._activeItem!==e&&this.change.next(this._activeItemIndex)}onKeydown(t){const e=t.keyCode,r=["altKey","ctrlKey","metaKey","shiftKey"].every(s=>!t[s]||this._allowedModifierKeys.indexOf(s)>-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 s=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(s>0?s:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&r){const s=this._activeItemIndex+this._pageUpAndDown.delta,l=this._getItemsArray().length;this._setActiveItemByIndex(s-1&&e!==this._activeItemIndex&&(this._activeItemIndex=e,this._typeahead?.setCurrentSelectedItemIndex(e))}}}class WT extends up{setActiveItem(t){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(t),this.activeItem&&this.activeItem.setActiveStyles()}}class lu extends up{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 YC=(()=>{class n{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function cO(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 lO(n){try{return n.frameElement}catch{return null}}(function JT(n){return n.ownerDocument&&n.ownerDocument.defaultView||window}(e));if(i&&(-1===ZC(i)||!this.isVisible(i)))return!1;let r=e.nodeName.toLowerCase(),s=ZC(e);return e.hasAttribute("contenteditable")?-1!==s:!("iframe"===r||"object"===r||this._platform.WEBKIT&&this._platform.IOS&&!function hO(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!==s:"video"===r?-1!==s&&(null!==s||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function fO(n){return!function dO(n){return function uO(n){return"input"==n.nodeName.toLowerCase()}(n)&&"hidden"==n.type}(n)&&(function KT(n){let t=n.nodeName.toLowerCase();return"input"===t||"select"===t||"button"===t||"textarea"===t}(n)||function Ly(n){return function YT(n){return"a"==n.nodeName.toLowerCase()}(n)&&n.hasAttribute("href")}(n)||n.hasAttribute("contenteditable")||ZT(n))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Fo))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function ZT(n){if(!n.hasAttribute("tabindex")||void 0===n.tabIndex)return!1;let t=n.getAttribute("tabindex");return!(!t||isNaN(parseInt(t,10)))}function ZC(n){if(!ZT(n))return null;const t=parseInt(n.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}class Uy{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,s=!1,l){this._element=t,this._checker=e,this._ngZone=i,this._document=r,this._injector=l,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,s||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._injector?(0,o.mal)(t,{injector:this._injector}):setTimeout(t)}}let JC=(()=>{class n{constructor(e,i,r){this._checker=e,this._ngZone=i,this._injector=(0,o.WQX)(o.zZn),this._document=r}create(e,i=!1){return new Uy(e,this._checker,this._ngZone,this._document,i,this._injector)}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(YC),o.KVO(o.SKi),o.KVO(V))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function Em(n){return 0===n.buttons||0===n.detail}function F_(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 pO=new o.nKC("cdk-input-modality-detector-options"),wH={ignoreKeys:[18,17,224,91,16]},Sm=rp({passive:!0,capture:!0});let mO=(()=>{class n{get mostRecentModality(){return this._modality.value}constructor(e,i,r,s){this._platform=e,this._mostRecentTarget=null,this._modality=new Xd.t(null),this._lastTouchMs=0,this._onKeydown=l=>{this._options?.ignoreKeys?.some(u=>u===l.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=ql(l))},this._onMousedown=l=>{Date.now()-this._lastTouchMs<650||(this._modality.next(Em(l)?"keyboard":"mouse"),this._mostRecentTarget=ql(l))},this._onTouchstart=l=>{F_(l)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=ql(l))},this._options={...wH,...s},this.modalityDetected=this._modality.pipe(E_(1)),this.modalityChanged=this.modalityDetected.pipe(Rr()),e.isBrowser&&i.runOutsideAngular(()=>{r.addEventListener("keydown",this._onKeydown,Sm),r.addEventListener("mousedown",this._onMousedown,Sm),r.addEventListener("touchstart",this._onTouchstart,Sm)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,Sm),document.removeEventListener("mousedown",this._onMousedown,Sm),document.removeEventListener("touchstart",this._onTouchstart,Sm))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Fo),o.KVO(o.SKi),o.KVO(V),o.KVO(pO,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const xH=new o.nKC("liveAnnouncerElement",{providedIn:"root",factory:function gO(){return null}}),CH=new o.nKC("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let _O=0,bO=(()=>{class n{constructor(e,i,r,s){this._ngZone=i,this._defaultOptions=s,this._document=r,this._liveElement=e||this._createLiveElement()}announce(e,...i){const r=this._defaultOptions;let s,l;return 1===i.length&&"number"==typeof i[0]?l=i[0]:[s,l]=i,this.clear(),clearTimeout(this._previousTimeout),s||(s=r&&r.politeness?r.politeness:"polite"),null==l&&r&&(l=r.duration),this._liveElement.setAttribute("aria-live",s),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(u=>this._currentResolve=u)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,"number"==typeof l&&(this._previousTimeout=setTimeout(()=>this.clear(),l)),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 s=0;s .cdk-overlay-container [aria-modal="true"]');for(let r=0;r{class n{constructor(e,i,r,s,l){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 Ai.B,this._rootNodeFocusAndBlurListener=u=>{for(let p=ql(u);p;p=p.parentElement)"focus"===u.type?this._onFocus(u,p):this._onBlur(u,p)},this._document=s,this._detectionMode=l?.detectionMode||Tm.IMMEDIATE}monitor(e,i=!1){const r=Ci(e);if(!this._platform.isBrowser||1!==r.nodeType)return So();const s=function YP(n){if(function m_(){if(null==pT){const n=typeof document<"u"?document.head:null;pT=!(!n||!n.createShadowRoot&&!n.attachShadow)}return pT}()){const t=n.getRootNode?n.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&t instanceof ShadowRoot)return t}return null}(r)||this._getDocument(),l=this._elementInfo.get(r);if(l)return i&&(l.checkChildren=!0),l.subject;const u={checkChildren:i,subject:new Ai.B,rootNode:s};return this._elementInfo.set(r,u),this._registerGlobalListeners(u),u.subject}stopMonitoring(e){const i=Ci(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 s=Ci(e);s===this._getDocument().activeElement?this._getClosestElementsInfo(s).forEach(([u,f])=>this._originChanged(u,i,f)):(this._setOrigin(i),"function"==typeof s.focus&&s.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===Tm.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===Tm.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const r=this._elementInfo.get(i),s=ql(e);!r||!r.checkChildren&&i!==s||this._originChanged(i,this._getFocusOrigin(s),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,Im),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,Im)}),this._rootNodeFocusListenerCount.set(i,r+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(vo(this._stopInputModalityDetector)).subscribe(s=>{this._setOrigin(s,!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,Im),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,Im),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,s)=>{(s===e||r.checkChildren&&s.contains(e))&&i.push([s,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 s=e.labels;if(s)for(let l=0;l{Pr(n()).subscribe(t)})}function eM(...n){return function eI(){return f4(1)}()(aa(n,oh(n)))}function cu(...n){const t=oh(n);return(0,Fr.N)((e,i)=>{(t?eM(n,e,t):eM(n,e)).subscribe(i)})}function CO(n,t){}class vh{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 tI=(()=>{class n extends FC{constructor(e,i,r,s,l,u,f,p){super(),this._elementRef=e,this._focusTrapFactory=i,this._config=s,this._interactivityChecker=l,this._ngZone=u,this._overlayRef=f,this._focusMonitor=p,this._platform=(0,o.WQX)(Fo),this._focusTrap=null,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this._ariaLabelledByQueue=[],this._changeDetectorRef=(0,o.WQX)(o.gRc),this._injector=(0,o.WQX)(o.zZn),this._isDestroyed=!1,this.attachDomPortal=m=>{this._portalOutlet.hasAttached();const _=this._portalOutlet.attachDomPortal(m);return this._contentAttached(),_},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._isDestroyed=!0,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(){this._isDestroyed||(0,o.mal)(()=>{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?.focusInitialElement()||this._focusDialogContainer();break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}},{injector:this._injector})}_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=op(),s=this._elementRef.nativeElement;(!r||r===this._document.body||r===s||s.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=op();return e===i||e.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=op()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT),o.rXU(JC),o.rXU(V,8),o.rXU(vh),o.rXU(YC),o.rXU(o.SKi),o.rXU(x_),o.rXU(Zl))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cdk-dialog-container"]],viewQuery:function(i,r){if(1&i&&o.GBs(__,7),2&i){let s;o.mGM(s=o.lsd())&&(r._portalOutlet=s.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,r){2&i&&o.BMQ("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:[o.Vt3,o.aNF],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,r){1&i&&o.DNE(0,CO,0,0,"ng-template",0)},dependencies:[__],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}}return n})();class tM{constructor(t,e){this.overlayRef=t,this.config=e,this.closed=new Ai.B,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&&!Yl(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 k_=new o.nKC("DialogScrollStrategy",{providedIn:"root",factory:()=>{const n=(0,o.WQX)(Us);return()=>n.scrollStrategies.block()}}),nI=new o.nKC("DialogData"),iI=new o.nKC("DefaultDialogConfig");let oI=0,nM=(()=>{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,s,l,u){this._overlay=e,this._injector=i,this._defaultOptions=r,this._parentDialog=s,this._overlayContainer=l,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new Ai.B,this._afterOpenedAtThisLevel=new Ai.B,this._ariaHiddenElements=new Map,this.afterAllClosed=Gy(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(cu(void 0))),this._scrollStrategy=u}open(e,i){(i={...this._defaultOptions||new vh,...i}).id=i.id||"cdk-dialog-"+oI++,i.id&&this.getDialogById(i.id);const s=this._getOverlayConfig(i),l=this._overlay.create(s),u=new tM(l,i),f=this._attachContainer(l,u,i);return u.containerInstance=f,this._attachDialogContent(e,u,f,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(u),u.closed.subscribe(()=>this._removeOpenDialog(u,!0)),this.afterOpened.next(u),u}closeAll(){Fm(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){Fm(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),Fm(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new xm({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 s=r.injector||r.viewContainerRef?.injector,l=[{provide:vh,useValue:r},{provide:tM,useValue:i},{provide:x_,useValue:e}];let u;r.container?"function"==typeof r.container?u=r.container:(u=r.container.type,l.push(...r.container.providers(r))):u=tI;const f=new Am(u,r.viewContainerRef,o.zZn.create({parent:s||this._injector,providers:l}),r.componentFactoryResolver);return e.attach(f).instance}_attachDialogContent(e,i,r,s){if(e instanceof o.C4Q){const l=this._createInjector(s,i,r,void 0);let u={$implicit:s.data,dialogRef:i};s.templateContext&&(u={...u,..."function"==typeof s.templateContext?s.templateContext():s.templateContext}),r.attachTemplatePortal(new g_(e,null,u,l))}else{const l=this._createInjector(s,i,r,this._injector),u=r.attachComponentPortal(new Am(e,s.viewContainerRef,l,s.componentFactoryResolver));i.componentRef=u,i.componentInstance=u.instance}}_createInjector(e,i,r,s){const l=e.injector||e.viewContainerRef?.injector,u=[{provide:nI,useValue:e.data},{provide:tM,useValue:i}];return e.providers&&("function"==typeof e.providers?u.push(...e.providers(i,e,r)):u.push(...e.providers)),e.direction&&(!l||!l.get(Zs,null,{optional:!0}))&&u.push({provide:Zs,useValue:{value:e.direction,change:So()}}),o.zZn.create({parent:l||s,providers:u})}_removeOpenDialog(e,i){const r=this.openDialogs.indexOf(e);r>-1&&(this.openDialogs.splice(r,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((s,l)=>{s?l.setAttribute("aria-hidden",s):l.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 s=i[r];s!==e&&"SCRIPT"!==s.nodeName&&"STYLE"!==s.nodeName&&!s.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(s,s.getAttribute("aria-hidden")),s.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Us),o.KVO(o.zZn),o.KVO(iI,8),o.KVO(n,12),o.KVO(ky),o.KVO(k_))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function Fm(n,t){let e=n.length;for(;e--;)t(n[e])}var On=v(9969);function MO(n,t){}class iM{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 rM="mdc-dialog--open",sI="mdc-dialog--opening",jy="mdc-dialog--closing";let oM=(()=>{class n extends tI{constructor(e,i,r,s,l,u,f,p,m){super(e,i,r,s,l,u,f,m),this._animationMode=p,this._animationStateChanged=new o.bkB,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._actionSectionCount=0,this._hostElement=this._elementRef.nativeElement,this._enterAnimationDuration=this._animationsEnabled?Dm(this._config.enterAnimationDuration)??150:0,this._exitAnimationDuration=this._animationsEnabled?Dm(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(lI,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(sI,rM)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(rM),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(rM),this._animationsEnabled?(this._hostElement.style.setProperty(lI,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(jy)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(e){this._actionSectionCount+=e,this._changeDetectorRef.markForCheck()}_clearAnimationClasses(){this._hostElement.classList.remove(sI,jy)}_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)(o.rXU(o.aKT),o.rXU(JC),o.rXU(V,8),o.rXU(iM),o.rXU(YC),o.rXU(o.SKi),o.rXU(x_),o.rXU(o.bc$,8),o.rXU(Zl))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,r){2&i&&(o.Mr5("id",r._config.id),o.BMQ("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),o.AVh("_mat-animation-noopable",!r._animationsEnabled)("mat-mdc-dialog-container-with-actions",r._actionSectionCount>0))},standalone:!0,features:[o.Vt3,o.aNF],decls:3,vars:0,consts:[[1,"mat-mdc-dialog-inner-container","mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,r){1&i&&(o.j41(0,"div",0)(1,"div",1),o.DNE(2,MO,0,0,"ng-template",2),o.k0s()())},dependencies:[__],styles:['.mat-mdc-dialog-container{width:100%;height:100%;display:block;box-sizing:border-box;max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;outline:0}.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-inner-container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;transition:opacity linear var(--mat-dialog-transition-duration, 0ms);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mdc-dialog--closing .mat-mdc-dialog-inner-container{transition:opacity 75ms linear;transform:none}.mdc-dialog--open .mat-mdc-dialog-inner-container{opacity:1}._mat-animation-noopable .mat-mdc-dialog-inner-container{transition:none}.mat-mdc-dialog-surface{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;width:100%;height:100%;position:relative;overflow-y:auto;outline:0;transform:scale(0.8);transition:transform var(--mat-dialog-transition-duration, 0ms) cubic-bezier(0, 0, 0.2, 1);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;box-shadow:var(--mat-dialog-container-elevation-shadow, 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));border-radius:var(--mdc-dialog-container-shape, var(--mat-app-corner-extra-large, 4px));background-color:var(--mdc-dialog-container-color, var(--mat-app-surface, white))}[dir=rtl] .mat-mdc-dialog-surface{text-align:right}.mdc-dialog--open .mat-mdc-dialog-surface,.mdc-dialog--closing .mat-mdc-dialog-surface{transform:none}._mat-animation-noopable .mat-mdc-dialog-surface{transition:none}.mat-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}.mat-mdc-dialog-title{display:block;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:var(--mat-dialog-headline-padding, 0 24px 9px)}.mat-mdc-dialog-title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mat-mdc-dialog-title{text-align:right}.mat-mdc-dialog-container .mat-mdc-dialog-title{color:var(--mdc-dialog-subhead-color, var(--mat-app-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mdc-dialog-subhead-font, var(--mat-app-headline-small-font, inherit));line-height:var(--mdc-dialog-subhead-line-height, var(--mat-app-headline-small-line-height, 1.5rem));font-size:var(--mdc-dialog-subhead-size, var(--mat-app-headline-small-size, 1rem));font-weight:var(--mdc-dialog-subhead-weight, var(--mat-app-headline-small-weight, 400));letter-spacing:var(--mdc-dialog-subhead-tracking, var(--mat-app-headline-small-tracking, 0.03125em))}.mat-mdc-dialog-content{display:block;flex-grow:1;box-sizing:border-box;margin:0;overflow:auto;max-height:65vh}.mat-mdc-dialog-content>:first-child{margin-top:0}.mat-mdc-dialog-content>:last-child{margin-bottom:0}.mat-mdc-dialog-container .mat-mdc-dialog-content{color:var(--mdc-dialog-supporting-text-color, var(--mat-app-on-surface-variant, rgba(0, 0, 0, 0.6)));font-family:var(--mdc-dialog-supporting-text-font, var(--mat-app-body-medium-font, inherit));line-height:var(--mdc-dialog-supporting-text-line-height, var(--mat-app-body-medium-line-height, 1.5rem));font-size:var(--mdc-dialog-supporting-text-size, var(--mat-app-body-medium-size, 1rem));font-weight:var(--mdc-dialog-supporting-text-weight, var(--mat-app-body-medium-weight, 400));letter-spacing:var(--mdc-dialog-supporting-text-tracking, var(--mat-app-body-medium-tracking, 0.03125em))}.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{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);padding:var(--mat-dialog-actions-padding, 8px);justify-content:var(--mat-dialog-actions-alignment, start)}.cdk-high-contrast-active .mat-mdc-dialog-actions{border-top-color:CanvasText}.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}.mat-mdc-dialog-component-host{display:contents}'],encapsulation:2})}}return n})();const lI="--mat-dialog-transition-duration";function Dm(n){return null==n?null:"number"==typeof n?n:n.endsWith("ms")?Gn(n.substring(0,n.length-2)):n.endsWith("s")?1e3*Gn(n.substring(0,n.length-1)):"0"===n?0:null}var hp=function(n){return n[n.OPEN=0]="OPEN",n[n.CLOSING=1]="CLOSING",n[n.CLOSED=2]="CLOSED",n}(hp||{});class cI{constructor(t,e,i){this._ref=t,this._containerInstance=i,this._afterOpened=new Ai.B,this._beforeClosed=new Ai.B,this._state=hp.OPEN,this.disableClose=e.disableClose,this.id=t.id,t.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(ur(r=>"opened"===r.state),ms(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(ur(r=>"closed"===r.state),ms(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),t.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),Wl(this.backdropClick(),this.keydownEvents().pipe(ur(r=>27===r.keyCode&&!this.disableClose&&!Yl(r)))).subscribe(r=>{this.disableClose||(r.preventDefault(),dI(this,"keydown"===r.type?"keyboard":"mouse"))})}close(t){this._result=t,this._containerInstance._animationStateChanged.pipe(ur(e=>"closing"===e.state),ms(1)).subscribe(e=>{this._beforeClosed.next(t),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=hp.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=hp.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function dI(n,t,e){return n._closeInteractionType=t,n.close(e)}const fp=new o.nKC("MatMdcDialogData"),sM=new o.nKC("mat-mdc-dialog-default-options"),uI=new o.nKC("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{const n=(0,o.WQX)(Us);return()=>n.scrollStrategies.block()}});let fI=0,Cs=(()=>{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,s,l,u,f,p){this._overlay=e,this._defaultOptions=s,this._scrollStrategy=l,this._parentDialog=u,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new Ai.B,this._afterOpenedAtThisLevel=new Ai.B,this.dialogConfigClass=iM,this.afterAllClosed=Gy(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(cu(void 0))),this._dialog=i.get(nM),this._dialogRefConstructor=cI,this._dialogContainerType=oM,this._dialogDataToken=fp}open(e,i){let r;(i={...this._defaultOptions||new iM,...i}).id=i.id||"mat-mdc-dialog-"+fI++,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const s=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:vh,useValue:i}]},templateContext:()=>({dialogRef:r}),providers:(l,u,f)=>(r=new this._dialogRefConstructor(l,i,f),r.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:f},{provide:this._dialogDataToken,useValue:u.data},{provide:this._dialogRefConstructor,useValue:r}])});return r.componentRef=s.componentRef,r.componentInstance=s.componentInstance,this.openDialogs.push(r),this.afterOpened.next(r),r.afterClosed().subscribe(()=>{const l=this.openDialogs.indexOf(r);l>-1&&(this.openDialogs.splice(l,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)(o.KVO(Us),o.KVO(o.zZn),o.KVO(Ne,8),o.KVO(sM,8),o.KVO(uI),o.KVO(n,12),o.KVO(ky),o.KVO(o.bc$,8))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),pI=0,Ia=(()=>{class n{constructor(e,i,r){this.dialogRef=e,this._elementRef=i,this._dialog=r,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=mI(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){dI(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(cI,8),o.rXU(o.aKT),o.rXU(Cs))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(i,r){1&i&&o.bIt("click",function(l){return r._onButtonClick(l)}),2&i&&o.BMQ("aria-label",r.ariaLabel||null)("type",r.type)},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],type:"type",dialogResult:[0,"mat-dialog-close","dialogResult"],_matDialogClose:[0,"matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],standalone:!0,features:[o.OA$]})}}return n})(),AI=(()=>{class n{constructor(e,i,r){this._dialogRef=e,this._elementRef=i,this._dialog=r}ngOnInit(){this._dialogRef||(this._dialogRef=mI(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)(o.rXU(cI,8),o.rXU(o.aKT),o.rXU(Cs))}}static{this.\u0275dir=o.FsC({type:n,standalone:!0})}}return n})(),$y=(()=>{class n extends AI{constructor(){super(...arguments),this.id="mat-mdc-dialog-title-"+pI++}_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=o.xGo(n)))(r||n)}})()}static{this.\u0275dir=o.FsC({type:n,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,r){2&i&&o.Mr5("id",r.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],standalone:!0,features:[o.Vt3]})}}return n})(),ml=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],standalone:!0,features:[o.nM4([r4])]})}}return n})(),Jl=(()=>{class n extends AI{_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=o.xGo(n)))(r||n)}})()}static{this.\u0275dir=o.FsC({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&&o.AVh("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:[o.Vt3]})}}return n})();function mI(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}const P_=["text"],aM=[[["mat-icon"]],"*"],lM=["mat-icon","*"];function EO(n,t){if(1&n&&o.nrm(0,"mat-pseudo-checkbox",1),2&n){const e=o.XpG();o.Y8G("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function km(n,t){if(1&n&&o.nrm(0,"mat-pseudo-checkbox",3),2&n){const e=o.XpG();o.Y8G("disabled",e.disabled)}}function bI(n,t){if(1&n&&(o.j41(0,"span",4),o.EFF(1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.SpI("(",e.group.label,")")}}const SO=["mat-internal-form-field",""],TO=["*"];class du{constructor(t,e,i,r,s){this._defaultMatcher=t,this.ngControl=e,this._parentFormGroup=i,this._parentForm=r,this._stateChanges=s,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,s=i?.isErrorState(r,e)??!1;s!==t&&(this.errorState=s,this._stateChanges.next())}}let CI=(()=>{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=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var Vs=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}(Vs||{});class OO{constructor(t,e,i,r=!1){this._renderer=t,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=r,this.state=Vs.HIDDEN}fadeOut(){this._renderer.fadeOutRipple(this)}}const EI=rp({passive:!0,capture:!0});class uM{constructor(){this._events=new Map,this._delegateEventHandler=t=>{const e=ql(t);e&&this._events.get(t.type)?.forEach((i,r)=>{(r===e||r.contains(e))&&i.forEach(s=>s.handleEvent(t))})}}addHandler(t,e,i,r){const s=this._events.get(e);if(s){const l=s.get(i);l?l.add(r):s.set(i,new Set([r]))}else this._events.set(e,new Map([[i,new Set([r])]])),t.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,EI)})}removeHandler(t,e,i){const r=this._events.get(t);if(!r)return;const s=r.get(e);s&&(s.delete(i),0===s.size&&r.delete(e),0===r.size&&(this._events.delete(t),document.removeEventListener(t,this._delegateEventHandler,EI)))}}const hM={enterDuration:225,exitDuration:150},Om=rp({passive:!0,capture:!0}),NO=["mousedown","touchstart"],O_=["mouseup","mouseleave","touchend","touchcancel"];class Nm{static{this._eventManager=new uM}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=Ci(i))}fadeInRipple(t,e,i={}){const r=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),s={...hM,...i.animation};i.centered&&(t=r.left+r.width/2,e=r.top+r.height/2);const l=i.radius||function SI(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),u=t-r.left,f=e-r.top,p=s.enterDuration,m=document.createElement("div");m.classList.add("mat-ripple-element"),m.style.left=u-l+"px",m.style.top=f-l+"px",m.style.height=2*l+"px",m.style.width=2*l+"px",null!=i.color&&(m.style.backgroundColor=i.color),m.style.transitionDuration=`${p}ms`,this._containerElement.appendChild(m);const _=window.getComputedStyle(m),w=_.transitionDuration,F="none"===_.transitionProperty||"0s"===w||"0s, 0s"===w||0===r.width&&0===r.height,D=new OO(this,m,i,F);m.style.transform="scale3d(1, 1, 1)",D.state=Vs.FADING_IN,i.persistent||(this._mostRecentTransientRipple=D);let T=null;return!F&&(p||s.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const I=()=>{T&&(T.fallbackTimer=null),clearTimeout(R),this._finishRippleTransition(D)},O=()=>this._destroyRipple(D),R=setTimeout(O,p+100);m.addEventListener("transitionend",I),m.addEventListener("transitioncancel",O),T={onTransitionEnd:I,onTransitionCancel:O,fallbackTimer:R}}),this._activeRipples.set(D,T),(F||!p)&&this._finishRippleTransition(D),D}fadeOutRipple(t){if(t.state===Vs.FADING_OUT||t.state===Vs.HIDDEN)return;const e=t.element,i={...hM,...t.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",t.state=Vs.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=Ci(t);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,NO.forEach(i=>{Nm._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(()=>{O_.forEach(e=>{this._triggerElement.addEventListener(e,this,Om)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(t){t.state===Vs.FADING_IN?this._startFadeOutTransition(t):t.state===Vs.FADING_OUT&&this._destroyRipple(t)}_startFadeOutTransition(t){const e=t===this._mostRecentTransientRipple,{persistent:i}=t.config;t.state=Vs.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=Vs.HIDDEN,null!==e&&(t.element.removeEventListener("transitionend",e.onTransitionEnd),t.element.removeEventListener("transitioncancel",e.onTransitionCancel),null!==e.fallbackTimer&&clearTimeout(e.fallbackTimer)),t.element.remove()}_onMousedown(t){const e=Em(t),i=this._lastTouchStartEvent&&Date.now(){!t.config.persistent&&(t.state===Vs.VISIBLE||t.config.terminateOnPointerUp&&t.state===Vs.FADING_IN)&&t.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const t=this._triggerElement;t&&(NO.forEach(e=>Nm._eventManager.removeHandler(e,t,this)),this._pointerUpEventsRegistered&&(O_.forEach(e=>t.removeEventListener(e,this,Om)),this._pointerUpEventsRegistered=!1))}}const Lm=new o.nKC("mat-ripple-global-options");let gl=(()=>{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,s,l){this._elementRef=e,this._animationMode=l,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=s||{},this._rippleRenderer=new Nm(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)(o.rXU(o.aKT),o.rXU(o.SKi),o.rXU(Fo),o.rXU(Lm,8),o.rXU(o.bc$,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,r){2&i&&o.AVh("mat-ripple-unbounded",r.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"],standalone:!0})}}return n})(),TI=(()=>{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)(o.rXU(o.bc$,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,r){2&i&&o.AVh("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:[o.aNF],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, var(--mat-app-primary))}.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, var(--mat-app-on-surface-variant));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, var(--mat-app-primary));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, var(--mat-app-on-primary))}.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, var(--mat-app-surface))}.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})();const II=new o.nKC("MAT_OPTION_PARENT_COMPONENT"),FI=new o.nKC("MatOptgroup");let LO=0;class Xy{constructor(t,e=!1){this.source=t,this.isUserInput=e}}let gd=(()=>{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,s){this._element=e,this._changeDetectorRef=i,this._parent=r,this.group=s,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+LO++,this.onSelectionChange=new o.bkB,this._stateChanges=new Ai.B}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)&&!Yl(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 Xy(this,e))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT),o.rXU(o.gRc),o.rXU(II,8),o.rXU(FI,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-option"]],viewQuery:function(i,r){if(1&i&&o.GBs(P_,7),2&i){let s;o.mGM(s=o.lsd())&&(r._text=s.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,r){1&i&&o.bIt("click",function(){return r._selectViaInteraction()})("keydown",function(l){return r._handleKeydown(l)}),2&i&&(o.Mr5("id",r.id),o.BMQ("aria-selected",r.selected)("aria-disabled",r.disabled.toString()),o.AVh("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:[2,"disabled","disabled",o.L39]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],standalone:!0,features:[o.GFd,o.aNF],ngContentSelectors:lM,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&&(o.NAR(aM),o.DNE(0,EO,1,2,"mat-pseudo-checkbox",1),o.SdG(1),o.j41(2,"span",2,0),o.SdG(4,1),o.k0s(),o.DNE(5,km,1,1,"mat-pseudo-checkbox",3)(6,bI,2,1,"span",4),o.nrm(7,"div",5)),2&i&&(o.vxM(r.multiple?0:-1),o.R7$(5),o.vxM(r.multiple||!r.selected||r.hideSingleSelectionIndicator?-1:5),o.R7$(),o.vxM(r.group&&r.group._inert?6:-1),o.R7$(),o.Y8G("matRippleTrigger",r._getHostElement())("matRippleDisabled",r.disabled||r.disableRipple))},dependencies:[TI,gl],styles:['.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-app-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-app-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-app-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-app-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-app-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-app-body-large-weight))}.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);outline:0}.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, var(--mat-app-on-secondary-container))}.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, var(--mat-app-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-app-on-secondary-container))}.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})();const Ky={capture:!0},fM=["focus","mousedown","mouseenter","touchstart"],pM="mat-ripple-loader-uninitialized",Yy="mat-ripple-loader-class-name",Zy="mat-ripple-loader-centered",N_="mat-ripple-loader-disabled";let BI=(()=>{class n{constructor(){this._document=(0,o.WQX)(V,{optional:!0}),this._animationMode=(0,o.WQX)(o.bc$,{optional:!0}),this._globalRippleOptions=(0,o.WQX)(Lm,{optional:!0}),this._platform=(0,o.WQX)(Fo),this._ngZone=(0,o.WQX)(o.SKi),this._hosts=new Map,this._onInteraction=e=>{const i=ql(e);if(i instanceof HTMLElement){const r=i.closest(`[${pM}="${this._globalRippleOptions?.namespace??""}"]`);r&&this._createRipple(r)}},this._ngZone.runOutsideAngular(()=>{for(const e of fM)this._document?.addEventListener(e,this._onInteraction,Ky)})}ngOnDestroy(){const e=this._hosts.keys();for(const i of e)this.destroyRipple(i);for(const i of fM)this._document?.removeEventListener(i,this._onInteraction,Ky)}configureRipple(e,i){e.setAttribute(pM,this._globalRippleOptions?.namespace??""),(i.className||!e.hasAttribute(Yy))&&e.setAttribute(Yy,i.className||""),i.centered&&e.setAttribute(Zy,""),i.disabled&&e.setAttribute(N_,"")}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(N_,""):e.removeAttribute(N_)}_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(Yy)),e.append(r);const s=new gl(new o.aKT(r),this._ngZone,this._platform,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);return s._isInitialized=!0,s.trigger=e,s.centered=e.hasAttribute(Zy),s.disabled=e.hasAttribute(N_),this.attachRipple(e,s),s}attachRipple(e,i){e.removeAttribute(pM),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=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),kI=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({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&&o.AVh("mdc-form-field--align-end","before"===r.labelPosition)},inputs:{labelPosition:"labelPosition"},standalone:!0,features:[o.aNF],attrs:SO,ngContentSelectors:TO,decls:1,vars:0,template:function(i,r){1&i&&(o.NAR(),o.SdG(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.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 .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}"],encapsulation:2,changeDetection:0})}}return n})();const HO=["mat-button",""],QO=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],AM=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],NI=new o.nKC("MAT_BUTTON_CONFIG"),mM=[{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-base","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}];let UI=(()=>{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,s){this._elementRef=e,this._platform=i,this._ngZone=r,this._animationMode=s,this._focusMonitor=(0,o.WQX)(Zl),this._rippleLoader=(0,o.WQX)(BI),this._isFab=!1,this._disableRipple=!1,this._disabled=!1;const l=(0,o.WQX)(NI,{optional:!0}),u=e.nativeElement,f=u.classList;this.disabledInteractive=l?.disabledInteractive??!1,this.color=l?.color??null,this._rippleLoader?.configureRipple(u,{className:"mat-mdc-button-ripple"});for(const{attribute:p,mdcClasses:m}of mM)u.hasAttribute(p)&&f.add(...m)}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){o.QTQ()}}static{this.\u0275dir=o.FsC({type:n,inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",o.L39],disabled:[2,"disabled","disabled",o.L39],ariaDisabled:[2,"aria-disabled","ariaDisabled",o.L39],disabledInteractive:[2,"disabledInteractive","disabledInteractive",o.L39]},features:[o.GFd]})}}return n})(),Jo=(()=>{class n extends UI{constructor(e,i,r,s){super(e,i,r,s)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT),o.rXU(Fo),o.rXU(o.SKi),o.rXU(o.bc$,8))}}static{this.\u0275cmp=o.VBU({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&&(o.BMQ("disabled",r._getDisabledAttribute())("aria-disabled",r._getAriaDisabled()),o.HbH(r.color?"mat-"+r.color:""),o.AVh("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:[o.Vt3,o.aNF],attrs:HO,ngContentSelectors:AM,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&&(o.NAR(QO),o.nrm(0,"span",0),o.SdG(1),o.j41(2,"span",1),o.SdG(3,1),o.k0s(),o.SdG(4,2),o.nrm(5,"span",2)(6,"span",3)),2&i&&o.AVh("mdc-button__ripple",!r._isFab)("mdc-fab__ripple",r._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;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;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.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__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 8px);height:var(--mdc-text-button-container-height);font-family:var(--mdc-text-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-app-label-large-weight))}.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, var(--mat-app-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-app-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, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-app-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,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-app-primary))}.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{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-filled-button-horizontal-padding, 16px);height:var(--mdc-filled-button-container-height);font-family:var(--mdc-filled-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-app-label-large-weight))}.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, var(--mat-app-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-unelevated-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-app-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, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-app-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:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-app-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-app-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-app-corner-full))}.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{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-protected-button-horizontal-padding, 16px);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-app-level1));height:var(--mdc-protected-button-container-height);font-family:var(--mdc-protected-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-app-label-large-weight))}.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, var(--mat-app-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-raised-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-app-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, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-raised-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-app-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:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-app-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-app-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-app-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-app-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-app-level1))}.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, var(--mat-app-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-outlined-button-horizontal-padding, 15px);height:var(--mdc-outlined-button-container-height);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-app-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-app-corner-full));border-width: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, var(--mat-app-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-app-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, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-outlined-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-app-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:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-app-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-app-outline))}.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-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width);border-style:solid;border-color:rgba(0,0,0,0)}.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-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.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}.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})();function HI(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",5),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.data.resolveErrorData.onResolveErrorClick())}),o.EFF(1),o.k0s()}if(2&n){const e=o.XpG();o.R7$(),o.SpI(" ",e.data.resolveErrorData.buttonText," ")}}let uu=(()=>{class n{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(fp))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-error-dialog"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"h1",0),o.EFF(1),o.k0s(),o.nrm(2,"div",1),o.j41(3,"div",2),o.DNE(4,HI,2,1,"button",3),o.j41(5,"button",4),o.EFF(6,"OK"),o.k0s()()),2&i&&(o.R7$(),o.JRh(r.data.title),o.R7$(),o.Y8G("innerHTML",r.data.message,o.npT),o.R7$(2),o.Y8G("ngIf",r.data.resolveErrorData))},dependencies:[$y,ml,Jl,zn,Jo,Ia],encapsulation:2})}}return n})();function QI(n){return{title:"Something is wrong with the loaded file(s)",message:[...zI(n),...GI(n)].join("")}}function zI(n){const t=n.filter(e=>e.errors.length>0);return t.length>0?["

    Errors

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

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

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

    Warnings

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

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

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

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

    `}var ZO=function(n){return n.hide="hide",n.exclude="exclude",n}(ZO||{}),t9=v(9812),L_=v.n(t9);function eN(n){return!n||Array.isArray(n.nodes)||Array.isArray(n.edges)?{nodes:{},edges:{}}:{nodes:n.nodes??{},edges:n.edges??{}}}function n9(n){return n||{}}function qI(n){for(const t of n)t.type===ZO.hide&&(t.type="flatten");return n}function XI(n){let t=null;try{const e="string"==typeof n?JSON.parse(n):n;if("data"in e&&"checksum"in e)return t=e.data,t.fileChecksum=e.checksum||L_()(JSON.stringify(e.data)),t;if(!e.fileChecksum){const i="string"==typeof n?n:JSON.stringify(n);e.fileChecksum=L_()(i)}return e}catch{}return t}var i9=v(7172),tN=v.n(i9);const Jy=JSON.parse('{"rE":"1.131.3","f4":{"X":"1.3"}}'),r9=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"}}}');function o9(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 lo(n,t){n instanceof Map?(n=[void 0,n],void 0===t&&(t=ZI)):void 0===t&&(t=lN);for(var i,s,l,u,f,e=new _M(n),r=[e];i=r.pop();)if((l=t(i.data))&&(f=(l=Array.from(l)).length))for(i.children=l,u=f-1;u>=0;--u)r.push(s=l[u]=new _M(l[u])),s.parent=i,s.depth=i.depth+1;return e.eachBefore(JI)}function lN(n){return n.children}function ZI(n){return Array.isArray(n)?n[1]:null}function u9(n){void 0!==n.data.value&&(n.value=n.data.value),n.data=n.data.data}function JI(n){var t=0;do{n.height=t}while((n=n.parent)&&n.height<++t)}function _M(n){this.data=n,this.depth=this.height=0,this.parent=null}_M.prototype=lo.prototype={constructor:_M,count:function s9(){return this.eachAfter(o9)},each:function a9(n,t){let e=-1;for(const i of this)n.call(t,i,++e,this);return this},eachAfter:function nN(n,t){for(var s,l,u,e=this,i=[e],r=[],f=-1;e=i.pop();)if(r.push(e),s=e.children)for(l=0,u=s.length;l=0;--s)i.push(r[s]);return this},find:function Um(n,t){let e=-1;for(const i of this)if(n.call(t,i,++e,this))return i},sum:function U_(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 iN(n){return this.eachBefore(function(t){t.children&&t.children.sort(n)})},path:function c9(n){for(var t=this,e=function KI(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 rN(){for(var n=this,t=[n];n=n.parent;)t.push(n);return t},descendants:function d9(){return Array.from(this)},leaves:function oN(){var n=[];return this.eachBefore(function(t){t.children||n.push(t)}),n},links:function sN(){var n=this,t=[];return n.each(function(e){e!==n&&t.push({source:e.parent,target:e})}),t},copy:function YI(){return lo(this).eachBefore(u9)},[Symbol.iterator]:function*aN(){var t,i,r,s,n=this,e=[n];do{for(t=e.reverse(),e=[];n=t.pop();)if(yield n,i=n.children)for(r=0,s=i.length;r=7340032:return V_.BIG_MAP;case e>=2097152:return V_.MEDIUM_MAP;default:return V_.SMALL_MAP}}const iF=Jy.f4.X,fu={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 rF(n){const t=[];return n&&function p9(n){return Ap(n.apiVersion).minor>Ap(iF).minor}(n)&&t.push(`${fu.minorApiVersionOutdated} Found: ${n.apiVersion}`),t}function oF(n){const t=[];switch(!0){case!n:t.push(fu.fileIsInvalid);break;case!function uN(n){const{apiVersion:t}=n,e=void 0!==t,r=/\d+\.\d+/.test(t);return e&&r}(n):t.push(fu.apiVersionIsInvalid);break;case function hN(n){return Ap(n.apiVersion).major>Ap(iF).major}(n):t.push(fu.majorApiVersionIsOutdated)}return 0===t.length&&t.push(...function pp(n){const t=[];if(0===t.length){const i=new(tN())({allErrors:!0}).compile(r9);i(n)?0===n.nodes.length?t.push(fu.nodesEmpty):t.push(...function fN(n){const t=[],e=new Set;return e.add(`${n.name}|${n.type}`),yM(n,t,e,`/${n.name}`),t}(n.nodes[0]),...aF(n)):t.push(...i.errors.map(s=>function vM(n){return`${n.keyword.charAt(0).toUpperCase()+n.keyword.slice(1)} error: ${n.dataPath.slice(1)} ${n.message}`}(s)))}return t}(n)),t}function Ap(n){return{major:Number(n.split(".")[0]),minor:Number(n.split(".")[1])}}function yM(n,t,e,i){if(!Po(n))for(const r of n.children){const s=`${i}/${r.name}`;e.has(`${s}|${r.type}`)?t.push(`${fu.nodesNotUnique} Found duplicate of ${r.type} with path: ${s}`):(e.add(`${s}|${r.type}`),yM(r,t,e,s))}}function aF(n,t=n.nodes[0].children){const e=[],i=[],r=[],s=new Set;(function sF(n,t,e,i,r,s){for(const l of n)if(void 0===l.fixedPosition)t.push(`${l.name}`);else{const u=Ap(e.apiVersion);if(u.major<1||1===u.major&&u.minor<2)return void i.push(`${fu.fixedFoldersNotAllowed} Found: ${e.apiVersion}`);pN(l)&&r.push(n1(l));for(const f of n)void 0!==f.fixedPosition&&l!==f&&r1(l.fixedPosition,f.fixedPosition)&&!s.has(`${n1(f)} and ${n1(l)}`)&&s.add(`${n1(l)} and ${n1(f)}`)}})(t,i,n,e,r,s),i.length>0&&i.length!==t.length&&e.push(`${fu.notAllFoldersAreFixed} Found: ${i.join(", ")}`),r.length>0&&e.push(`${fu.fixedFoldersOutOfBounds} Found: ${r.join(", ")}`),s.size>0&&e.push(`${fu.fixedFoldersOverlapped} Found: ${[...s].join(", ")}`);for(const l of t)l.children&&e.push(...aF(n,l.children));return e}function n1(n){return`${n.name} ${JSON.stringify(n.fixedPosition)}`}function r1(n,t){return o1(n.left,n.top,t)||o1(n.left,n.top+n.height,t)||o1(n.left+n.width,n.top,t)||o1(n.left+n.width,n.top+n.height,t)}function o1(n,t,e){return n>=e.left&&n<=e.left+e.width&&t>=e.top&&t<=e.top+e.height}function pN({fixedPosition:{left:n,top:t,width:e,height:i}}){return n<0||t<0||n+e>100||t+i>100||e<0||i<0}const s1=n=>{n.sort((t,e)=>{const i=t.name.toLowerCase(),r=e.name.toLowerCase();return i>r?1:r>i?-1:0})},a1="unary",Bc=(n,t)=>{if(0===n.length)return[];const e=new Map,i=new Map,r=new Map;for(const{file:l}of n)for(const u of lo(l.map))if(Po(u)&&u.data.path&&!hu(u.data.path,t,"exclude"))for(const f of Object.keys(u.data.attributes)){const p=i.get(f),m=r.get(f);e.get(f)||e.set(f,[]),e.get(f).push(u.data.attributes[f]),(void 0===m||m>=u.data.attributes[f])&&r.set(f,u.data.attributes[f]),(void 0===p||p<=u.data.attributes[f])&&i.set(f,u.data.attributes[f])}const s=[];i.set(a1,1),r.set(a1,1);for(const[l,u]of i)s.push({name:l,values:e.get(l),maxValue:u,minValue:r.get(l)});return s1(s),s},mp={decorateMap(n,t,e){for(const{data:i}of lo(n)){i.isFlattened=!1,i.isExcluded=!1;for(const r of e)"flatten"===r.type?i.isFlattened=i.isFlattened||tF(i,r.path):i.isExcluded=i.isExcluded||tF(i,r.path)&&Po(i)}n.isExcluded=!1,this.decorateMapWithMetricData(n,t)},decorateMapWithMetricData(n,t){const{nodeMetricData:e,edgeMetricData:i}=t;let r=0;for(const{data:s}of lo(n)){s.id=r,r++,void 0===s.attributes&&(s.attributes={}),Po(s)&&(s.attributes[a1]=1);for(const l of e)void 0===s.attributes[l.name]&&(s.attributes[l.name]=0),void 0!==s.deltas&&void 0===s.deltas[l.name]&&(s.deltas[l.name]=0);void 0===s.edgeAttributes&&(s.edgeAttributes={});for(const l of i)void 0===s.edgeAttributes[l.name]&&(s.edgeAttributes[l.name]={incoming:0,outgoing:0});es(s)}},decorateMapWithPathAttribute(n){for(const t of lo(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),s=Object.keys(n.edgeAttributes);lo(n).eachAfter(function({data:u,parent:f}){if(!u.isExcluded&&f){for(const p of r){const _=`${p}${f.data.path}`;e.nodes[p]===Sc.relative?(ec(i,`${p}${u.path}`,_,u,p,t),l1(i,_,u,p,t)):(f.data.attributes[p]+=u.attributes[p],t&&f.data.deltas&&(f.data.deltas[p]=f.data.deltas[p]??0,f.data.deltas[p]+=u.deltas[p]??0))}t&&f.data.fileCount&&(f.data.fileCount.added+=u.fileCount.added,f.data.fileCount.changed+=u.fileCount.changed,f.data.fileCount.removed+=u.fileCount.removed);for(const p of s){const m=u.edgeAttributes[p];if(!m)continue;const _=`${p}${u.path}`,b=`${p}${f.data.path}`;e.edges[p]===Sc.relative?(gp(i,`INCOMING${_}`,`INCOMING${b}`,u,p,"incoming"),gp(i,`OUTGOING${_}`,`OUTGOING${b}`,u,p,"outgoing"),xh(i,`INCOMING${b}`,u,p,"incoming"),xh(i,`OUTGOING${b}`,u,p,"outgoing")):(f.data.edgeAttributes[p].incoming+=m.incoming,f.data.edgeAttributes[p].outgoing+=m.outgoing)}}});for(const l of s)e.edges[l]===Sc.relative&&(n.edgeAttributes[l].incoming=pu(i.get(`INCOMING${l}${n.path}`)),n.edgeAttributes[l].outgoing=pu(i.get(`OUTGOING${l}${n.path}`)));for(const l of r)e.nodes[l]===Sc.relative&&(n.attributes[l]=pu(i.get(`MEDIAN${l}${n.path}`)),t&&n.deltas&&(n.deltas[l]=pu(i.get(`DELTA${l}${n.path}`))))}};function es(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 xh(n,t,e,i,r){0!==e.edgeAttributes[i][r]&&_p(n,t,e,e.edgeAttributes[i][r])}function l1(n,t,e,i,r){0!==e.attributes[i]&&_p(n,`MEDIAN${t}`,e,e.attributes[i]),r&&e.deltas&&0!==e.deltas[i]&&_p(n,`DELTA${t}`,e,e.deltas[i])}function ec(n,t,e,i,r,s){if(Po(i))return;const l=n.get(`MEDIAN${t}`);if(void 0!==l&&(i.attributes[r]=pu(l),wM(n,`MEDIAN${e}`,l)),s&&i.deltas){const u=n.get(`DELTA${t}`);void 0!==u&&(i.deltas[r]=pu(u),wM(n,`DELTA${e}`,u))}}function gp(n,t,e,i,r,s){if(Po(i))return;const l=n.get(t);void 0!==l&&(i.edgeAttributes[r][s]=pu(l),wM(n,e,l))}function wM(n,t,e){const i=n.get(t);void 0===i?n.set(t,e):function cF(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 _p(n,t,e,i){const r=n.get(t);void 0===r?n.set(t,[i]):Po(e)&&function lF(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 uF(n,t,e,i,r){i()&&(n.length=0,r(),localStorage.removeItem("scenarios"));const s=function JO(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:eN(t.attributeTypes),attributeDescriptors:n9(t.attributeDescriptors),blacklist:qI(t.blacklist||[]),markedPackages:t.markedPackages||[]}},map:C(t.nodes[0])}}(e);mp.decorateMapWithPathAttribute(s);const l=s.fileMeta.fileChecksum;let u=s.fileMeta.fileName;const f=new Map(n.map(_=>[_.file.fileMeta.fileName,_.file.fileMeta.fileChecksum])),p=new Map(n.map((_,b)=>[_.file.fileMeta.fileChecksum,b])),m=p.has(l);if(f.has(u)&&(u=function mN(n,t,e){if(t.get(n)===e)return n;let i=!1,r=1,s=n;for(;!i;){const l=n.indexOf(".");s=l>=0?[n.slice(0,l),"_",r,n.slice(l)].join(""):`${n}_${r}`,(t.get(s)===e||!t.has(s))&&(i=!0),r++}return s}(u,f,l),s.fileMeta.fileName=u),m)return n[p.get(l)].file.fileMeta.fileName=u,t[0]=u,void t.push(u);n.push({file:s,selectedAs:bt.None}),t.push(u)}const Yr={rootName:"root",rootPath:"/root",updateRoot(n){this.rootName=n,this.rootPath=`/${n}`}},Au=bn("CURRENT_FILES_ARE_SAMPLE_FILES",{_as:"props",_p:void 0}),Ch="File(s) could not be loaded";let mu=(()=>{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(Sn).pipe(ao(s=>{s&&Yr.updateRoot(s.map.name)})).subscribe()}ngOnDestroy(){this.referenceFileSubscription.unsubscribe()}loadFiles(e){const i=C(this.state.getValue().files),r=[],s=[];if(function ts(n,t,e,i,r,s){for(const l of e){const u={fileName:l?.fileName,errors:[],warnings:[]};u.errors.push(...oF(l?.content)),0===u.errors.length&&(u.warnings.push(...rF(l?.content)),uF(n,t,l,r,s)),(u.errors.length>0||u.warnings.length>0)&&i.push(u)}}(i,r,e,s,()=>this.state.getValue().appStatus.currentFilesAreSampleFiles,()=>this.store.dispatch(Au({value:!1}))),s.length>0&&this.dialog.open(uu,{data:QI(s)}),0===r.length)throw new Error(Ch);this.store.dispatch(S({value:i}));const l=r[0],u=this.state.getValue().files.find(f=>f.file.fileMeta.fileName===l).file.map.name;this.store.dispatch(se({fileNames:r})),Yr.updateRoot(u)}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(Vi),o.KVO(Cs))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const Q_=/_\d{4}(?:-\d{1,2}){2}_\d{1,2}-\d{1,2}\./;let kc=(()=>{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=Q_.exec(e);if(r)return e.slice(0,r.index);if(e.endsWith(mu.CC_FILE_EXTENSION))return e.slice(0,-mu.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})();class c1{static downloadCurrentMap(t,e,i,r,s){const l=this.getProjectDataAsCCJsonFormat(t,e,i,r),u=s+mu.CC_FILE_EXTENSION;this.downloadData(JSON.stringify(l),u)}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=C(t);for(const{data:i}of lo(e))delete i.isExcluded,delete i.isFlattened,delete i.edgeAttributes,delete i.path,i.type===Zo.FOLDER?i.attributes={}:delete i.attributes[a1];return e}static undecorateEdges(t){const e=C(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"),s=document.createElement("a");s.download=e,s.href=window.URL.createObjectURL(i),s.dataset.downloadurl=["text/json",s.download,s.href].join(":"),r.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),s.dispatchEvent(r)}}const xM=".cc.config.json",u1="CodeCharta::customConfigs";class hr{static{this.customConfigs=hr.loadCustomConfigsFromLocalStorage()}static{this.customConfigChange$=new Xd.t(null)}static setCustomConfigsToLocalStorage(){const t={version:"1.0.1",customConfigs:[...hr.customConfigs]};localStorage.setItem(u1,JSON.stringify(t,cm)),hr.customConfigChange$.next(null)}static loadCustomConfigsFromLocalStorage(){const t=this.getCcLocalStorage();return new Map(t?.customConfigs)}static getCcLocalStorage(){return JSON.parse(localStorage.getItem(u1),_y)}static addCustomConfig(t){hr.customConfigs.set(t.id,t),hr.setCustomConfigsToLocalStorage()}static editCustomConfigNote(t,e){const i=hr.customConfigs.get(t);i.note=e,hr.customConfigs.set(t,i),hr.setCustomConfigsToLocalStorage()}static getCustomConfigSettings(t){return hr.customConfigs.get(t)}static hasCustomConfigByName(t,e,i){for(const r of hr.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 hr.customConfigs}static importCustomConfigs(t){const e=JSON.parse(t,_y);for(const i of e.customConfigs.values()){if(hr.getCustomConfigSettings(i.id))continue;hr.hasCustomConfigByName(i.mapSelectionMode,i.assignedMaps,i.name)&&(i.name+=` (${kc.getFormattedTimestamp(new Date(i.creationTime))})`);const s={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}};hr.addCustomConfig(s)}}static downloadCustomConfigs(t){const e={downloadApiVersion:"1.0.1",timestamp:Date.now(),customConfigs:t},i=kc.getNewTimestamp()+xM;c1.downloadData(JSON.stringify(e,cm),i)}static createExportCustomConfigFromConfig(t){return{...t}}static getCustomConfigsAmountByMapAndMode(t,e){let i=0;for(const r of hr.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} #${hr.getCustomConfigsAmountByMapAndMode(i,t)+1}`}static deleteCustomConfigs(t){for(const e of t)hr.customConfigs.delete(e.id);hr.setCustomConfigsToLocalStorage()}static deleteCustomConfig(t){hr.customConfigs.delete(t),hr.setCustomConfigsToLocalStorage()}static sortCustomConfigDropDownGroupList(t,e){if(!e.hasApplicableItems){if(t.hasApplicableItems||t.mapSelectionMode{const n=document.createElement("INPUT");return n.setAttribute("type","file"),n.setAttribute("accept",".json,.gz"),n.setAttribute("multiple",""),document.body.appendChild(n),n},Rc="base";function AF(n,t,e,i,r,s){if(0===n.length)return;const[l]=n;let u={name:l,type:CM(n)?Zo.FILE:Zo.FOLDER,attributes:{}};CM(n)?u=function gN(n,t,e){const i={...t};return i.attributes={height:e.scale.y},{name:n,type:Zo.FOLDER,attributes:{},children:[i]}}(l,u,i):u.children=[],function h1(n,t){return n.some(e=>e.name===t)}(t,l)?u=t.find(m=>m.name===l):t.push(u);const f=r.find(m=>m.name===e);u.fixedPosition=function mF(n,t,e,i){let r;if(n.type===Zo.FOLDER){const l=t.position.z-t.scale.z/2,f=e.position.z-e.scale.z/2,p=G_((e.position.x-e.scale.x/2-(t.position.x-t.scale.x/2))/t.scale.x*100,2);r={left:G_((f-l)/t.scale.z*100,2),top:p,width:G_(e.scale.z/t.scale.z*100,2),height:G_(e.scale.x/t.scale.x*100,2)}}return n.name===i&&(r=function f1(n){const t={...n};return t.top=Math.floor(50-t.height/2),t.left=Math.floor(50-t.width/2),t}(r)),r}(u,f,i,s.name);const p=e===Rc?u.name:`${e}.${u.name}`;AF(n.slice(1),u.children,p,i,r,s)}function CM(n){return 1===n.length}function G_(n,t){const e=Math.pow(10,t);return Math.round(n*e)/e}function Mh(n){const t=n.replaceAll(".","/"),i=n.split(".").slice(-1);return`/${Rc}/${t}/${i}`}const vN=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}');function Hm(n){let t=n.length;for(;--t>=0;)n[t]=0}const DM=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]),j_=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]),wF=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),xF=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),gu=new Array(576);Hm(gu);const vp=new Array(60);Hm(vp);const yp=new Array(512);Hm(yp);const $_=new Array(256);Hm($_);const BM=new Array(29);Hm(BM);const _1=new Array(30);function kM(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 CF,MF,EF;function RM(n,t){this.dyn_tree=n,this.max_code=0,this.stat_desc=t}Hm(_1);const SF=n=>n<256?yp[n]:yp[256+(n>>>7)],q_=(n,t)=>{n.pending_buf[n.pending++]=255&t,n.pending_buf[n.pending++]=t>>>8&255},qa=(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<{qa(n,e[2*t],e[2*t+1])},TF=(n,t)=>{let e=0;do{e|=1&n,n>>>=1,e<<=1}while(--t>0);return e>>>1},IF=(n,t,e)=>{const i=new Array(16);let s,l,r=0;for(s=1;s<=15;s++)r=r+e[s-1]<<1,i[s]=r;for(l=0;l<=t;l++){let u=n[2*l+1];0!==u&&(n[2*l]=TF(i[u]++,u))}},PM=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},_u=n=>{n.bi_valid>8?q_(n,n.bi_buf):n.bi_valid>0&&(n.pending_buf[n.pending++]=n.bi_buf),n.bi_buf=0,n.bi_valid=0},b1=(n,t,e,i)=>{const r=2*t,s=2*e;return n[r]{const i=n.heap[e];let r=e<<1;for(;r<=n.heap_len&&(r{let i,r,l,u,s=0;if(0!==n.sym_next)do{i=255&n.pending_buf[n.sym_buf+s++],i+=(255&n.pending_buf[n.sym_buf+s++])<<8,r=n.pending_buf[n.sym_buf+s++],0===i?bd(n,r,t):(l=$_[r],bd(n,l+256+1,t),u=DM[l],0!==u&&(r-=BM[l],qa(n,r,u)),i--,l=SF(i),bd(n,l,e),u=j_[l],0!==u&&(i-=_1[l],qa(n,i,u)))}while(s{const e=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,s=t.stat_desc.elems;let l,u,p,f=-1;for(n.heap_len=0,n.heap_max=573,l=0;l>1;l>=1;l--)OM(n,e,l);p=s;do{l=n.heap[1],n.heap[1]=n.heap[n.heap_len--],OM(n,e,1),u=n.heap[1],n.heap[--n.heap_max]=l,n.heap[--n.heap_max]=u,e[2*p]=e[2*l]+e[2*u],n.depth[p]=(n.depth[l]>=n.depth[u]?n.depth[l]:n.depth[u])+1,e[2*l+1]=e[2*u+1]=p,n.heap[1]=p++,OM(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,s=t.stat_desc.has_stree,l=t.stat_desc.extra_bits,u=t.stat_desc.extra_base,f=t.stat_desc.max_length;let p,m,_,b,w,F,D=0;for(b=0;b<=15;b++)n.bl_count[b]=0;for(e[2*n.heap[n.heap_max]+1]=0,p=n.heap_max+1;p<573;p++)m=n.heap[p],b=e[2*e[2*m+1]+1]+1,b>f&&(b=f,D++),e[2*m+1]=b,!(m>i)&&(n.bl_count[b]++,w=0,m>=u&&(w=l[m-u]),F=e[2*m],n.opt_len+=F*(b+w),s&&(n.static_len+=F*(r[2*m+1]+w)));if(0!==D){do{for(b=f-1;0===n.bl_count[b];)b--;n.bl_count[b]--,n.bl_count[b+1]+=2,n.bl_count[f]--,D-=2}while(D>0);for(b=f;0!==b;b--)for(m=n.bl_count[b];0!==m;)_=n.heap[--p],!(_>i)&&(e[2*_+1]!==b&&(n.opt_len+=(b-e[2*_+1])*e[2*_],e[2*_+1]=b),m--)}})(n,t),IF(e,f,n.bl_count)},UM=(n,t,e)=>{let i,s,r=-1,l=t[1],u=0,f=7,p=4;for(0===l&&(f=138,p=3),t[2*(e+1)+1]=65535,i=0;i<=e;i++)s=l,l=t[2*(i+1)+1],!(++u{let i,s,r=-1,l=t[1],u=0,f=7,p=4;for(0===l&&(f=138,p=3),i=0;i<=e;i++)if(s=l,l=t[2*(i+1)+1],!(++u{qa(n,0+(i?1:0),3),_u(n),q_(n,e),q_(n,~e),e&&n.pending_buf.set(n.window.subarray(t,t+e),n.pending),n.pending+=e};var Jm={_tr_init:n=>{QM||((()=>{let n,t,e,i,r;const s=new Array(16);for(e=0,i=0;i<28;i++)for(BM[i]=e,n=0;n<1<>=7;i<30;i++)for(_1[i]=r<<7,n=0;n<1<{let r,s,l=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)),LM(n,n.l_desc),LM(n,n.d_desc),l=(n=>{let t;for(UM(n,n.dyn_ltree,n.l_desc.max_code),UM(n,n.dyn_dtree,n.d_desc.max_code),LM(n,n.bl_desc),t=18;t>=3&&0===n.bl_tree[2*xF[t]+1];t--);return n.opt_len+=3*(t+1)+5+5+4,t})(n),r=n.opt_len+3+7>>>3,s=n.static_len+3+7>>>3,s<=r&&(r=s)):r=s=e+5,e+4<=r&&-1!==t?v1(n,t,e,i):4===n.strategy||s===r?(qa(n,2+(i?1:0),3),NM(n,gu,vp)):(qa(n,4+(i?1:0),3),((n,t,e,i)=>{let r;for(qa(n,t-257,5),qa(n,e-1,5),qa(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*($_[e]+256+1)]++,n.dyn_dtree[2*SF(t)]++),n.sym_next===n.sym_end),_tr_align:n=>{qa(n,2,3),bd(n,256,gu),(n=>{16===n.bi_valid?(q_(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)}},eg=(n,t,e,i)=>{let r=65535&n,s=n>>>16&65535,l=0;for(;0!==e;){l=e>2e3?2e3:e,e-=l;do{r=r+t[i++]|0,s=s+r|0}while(--l);r%=65521,s%=65521}return r|s<<16};const BF=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 Ms=(n,t,e,i)=>{const r=BF,s=i+e;n^=-1;for(let l=i;l>>8^r[255&(n^t[l])];return~n},Ih={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"},Fh={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:kF,_tr_stored_block:tg,_tr_flush_block:Dh,_tr_tally:Bh,_tr_align:EN}=Jm,{Z_NO_FLUSH:vd,Z_PARTIAL_FLUSH:wp,Z_FULL_FLUSH:zM,Z_FINISH:tc,Z_BLOCK:y1,Z_OK:ca,Z_STREAM_END:SN,Z_STREAM_ERROR:yd,Z_DATA_ERROR:TN,Z_BUF_ERROR:w1,Z_DEFAULT_COMPRESSION:IN,Z_FILTERED:Es,Z_HUFFMAN_ONLY:X_,Z_RLE:FN,Z_FIXED:DN,Z_DEFAULT_STRATEGY:RF,Z_UNKNOWN:BN,Z_DEFLATED:K_}=Fh,gs=262,kh=(n,t)=>(n.msg=Ih[t],t),NF=n=>2*n-(n>4?9:0),Rh=n=>{let t=n.length;for(;--t>=0;)n[t]=0},LF=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 Pc=(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))},Wa=(n,t)=>{Dh(n,n.block_start>=0?n.block_start:-1,n.strstart-n.block_start,t),n.block_start=n.strstart,yl(n.strm)},Or=(n,t)=>{n.pending_buf[n.pending++]=t},rg=(n,t)=>{n.pending_buf[n.pending++]=t>>>8&255,n.pending_buf[n.pending++]=255&t},qM=(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=eg(n.adler,t,r,e):2===n.state.wrap&&(n.adler=Ms(n.adler,t,r,e)),n.next_in+=r,n.total_in+=r,r)},UF=(n,t)=>{let r,s,e=n.max_chain_length,i=n.strstart,l=n.prev_length,u=n.nice_match;const f=n.strstart>n.w_size-gs?n.strstart-(n.w_size-gs):0,p=n.window,m=n.w_mask,_=n.prev,b=n.strstart+258;let w=p[i+l-1],F=p[i+l];n.prev_length>=n.good_match&&(e>>=2),u>n.lookahead&&(u=n.lookahead);do{if(r=t,p[r+l]===F&&p[r+l-1]===w&&p[r]===p[i]&&p[++r]===p[i+1]){i+=2,r++;do{}while(p[++i]===p[++r]&&p[++i]===p[++r]&&p[++i]===p[++r]&&p[++i]===p[++r]&&p[++i]===p[++r]&&p[++i]===p[++r]&&p[++i]===p[++r]&&p[++i]===p[++r]&&il){if(n.match_start=t,l=s,s>=u)break;w=p[i+l-1],F=p[i+l]}}}while((t=_[t&m])>f&&0!=--e);return l<=n.lookahead?l:n.lookahead},og=n=>{const t=n.w_size;let e,i,r;do{if(i=n.window_size-n.lookahead-n.strstart,n.strstart>=t+(t-gs)&&(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),LF(n),i+=t),0===n.strm.avail_in)break;if(e=qM(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=Pc(n,n.ins_h,n.window[r+1]);n.insert&&(n.ins_h=Pc(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,s,e=n.pending_buf_size-5>n.w_size?n.w_size:n.pending_buf_size-5,l=0,u=n.strm.avail_in;do{if(i=65535,s=n.bi_valid+42>>3,n.strm.avail_outr+n.strm.avail_in&&(i=r+n.strm.avail_in),i>s&&(i=s),i>8,n.pending_buf[n.pending-2]=~i,n.pending_buf[n.pending-1]=~i>>8,yl(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&&(qM(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===l);return u-=n.strm.avail_in,u&&(u>=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<=u&&(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-u,n.strm.next_in),n.strstart),n.strstart+=u,n.insert+=u>n.w_size-n.insert?n.w_size-n.insert:u),n.block_start=n.strstart),n.high_waters&&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++,s+=n.w_size,n.insert>n.strstart&&(n.insert=n.strstart)),s>n.strm.avail_in&&(s=n.strm.avail_in),s&&(qM(n.strm,n.window,n.strstart,s),n.strstart+=s,n.insert+=s>n.w_size-n.insert?n.w_size-n.insert:s),n.high_water>3,s=n.pending_buf_size-s>65535?65535:n.pending_buf_size-s,e=s>n.w_size?n.w_size:s,r=n.strstart-n.block_start,(r>=e||(r||t===tc)&&t!==vd&&0===n.strm.avail_in&&r<=s)&&(i=r>s?s:r,l=t===tc&&0===n.strm.avail_in&&i===r?1:0,tg(n,n.block_start,i,l),n.block_start+=i,yl(n.strm)),l?3:1)},WM=(n,t)=>{let e,i;for(;;){if(n.lookahead=3&&(n.ins_h=Pc(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-gs&&(n.match_length=UF(n,e)),n.match_length>=3)if(i=Bh(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=Pc(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=Pc(n,n.ins_h,n.window[n.strstart+1]);else i=Bh(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(i&&(Wa(n,!1),0===n.strm.avail_out))return 1}return n.insert=n.strstart<2?n.strstart:2,t===tc?(Wa(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&(Wa(n,!1),0===n.strm.avail_out)?1:2},sg=(n,t)=>{let e,i,r;for(;;){if(n.lookahead=3&&(n.ins_h=Pc(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=Bh(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=Pc(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&&(Wa(n,!1),0===n.strm.avail_out))return 1}else if(n.match_available){if(i=Bh(n,0,n.window[n.strstart-1]),i&&Wa(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=Bh(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart<2?n.strstart:2,t===tc?(Wa(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&(Wa(n,!1),0===n.strm.avail_out)?1:2};function Cd(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 Mp=[new Cd(0,0,0,0,VF),new Cd(4,4,8,4,WM),new Cd(4,5,16,8,WM),new Cd(4,6,32,32,WM),new Cd(4,4,16,16,sg),new Cd(8,16,32,32,sg),new Cd(8,16,128,128,sg),new Cd(8,32,128,256,sg),new Cd(32,128,258,1024,sg),new Cd(32,258,258,4096,sg)];function UN(){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=K_,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),Rh(this.dyn_ltree),Rh(this.dyn_dtree),Rh(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),Rh(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Rh(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 Ep=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},XM=n=>{if(Ep(n))return kh(n,yd);n.total_in=n.total_out=0,n.data_type=BN;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,kF(t),ca},KM=n=>{const t=XM(n);return t===ca&&(n=>{n.window_size=2*n.w_size,Rh(n.head),n.max_lazy_match=Mp[n.level].max_lazy,n.good_match=Mp[n.level].good_length,n.nice_match=Mp[n.level].nice_length,n.max_chain_length=Mp[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},YM=(n,t,e,i,r,s)=>{if(!n)return yd;let l=1;if(t===IN&&(t=6),i<0?(l=0,i=-i):i>15&&(l=2,i-=16),r<1||r>9||e!==K_||i<8||i>15||t<0||t>9||s<0||s>DN||8===i&&1!==l)return kh(n,yd);8===i&&(i=9);const u=new UN;return n.state=u,u.strm=n,u.status=42,u.wrap=l,u.gzhead=null,u.w_bits=i,u.w_size=1<YM(n,t,K_,15,8,RF),deflateInit2:YM,deflateReset:KM,deflateResetKeep:XM,deflateSetHeader:(n,t)=>Ep(n)||2!==n.state.wrap?yd:(n.state.gzhead=t,ca),deflate:(n,t)=>{if(Ep(n)||t>y1||t<0)return n?kh(n,yd):yd;const e=n.state;if(!n.output||0!==n.avail_in&&!n.input||666===e.status&&t!==tc)return kh(n,0===n.avail_out?w1:yd);const i=e.last_flush;if(e.last_flush=t,0!==e.pending){if(yl(n),0===n.avail_out)return e.last_flush=-1,ca}else if(0===n.avail_in&&NF(t)<=NF(i)&&t!==tc)return kh(n,w1);if(666===e.status&&0!==n.avail_in)return kh(n,w1);if(42===e.status&&0===e.wrap&&(e.status=113),42===e.status){let r=K_+(e.w_bits-8<<4)<<8,s=-1;if(s=e.strategy>=X_||e.level<2?0:e.level<6?1:6===e.level?2:3,r|=s<<6,0!==e.strstart&&(r|=32),r+=31-r%31,rg(e,r),0!==e.strstart&&(rg(e,n.adler>>>16),rg(e,65535&n.adler)),n.adler=1,e.status=113,yl(n),0!==e.pending)return e.last_flush=-1,ca}if(57===e.status)if(n.adler=0,Or(e,31),Or(e,139),Or(e,8),e.gzhead)Or(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)),Or(e,255&e.gzhead.time),Or(e,e.gzhead.time>>8&255),Or(e,e.gzhead.time>>16&255),Or(e,e.gzhead.time>>24&255),Or(e,9===e.level?2:e.strategy>=X_||e.level<2?4:0),Or(e,255&e.gzhead.os),e.gzhead.extra&&e.gzhead.extra.length&&(Or(e,255&e.gzhead.extra.length),Or(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(n.adler=Ms(n.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=69;else if(Or(e,0),Or(e,0),Or(e,0),Or(e,0),Or(e,0),Or(e,9===e.level?2:e.strategy>=X_||e.level<2?4:0),Or(e,3),e.status=113,yl(n),0!==e.pending)return e.last_flush=-1,ca;if(69===e.status){if(e.gzhead.extra){let r=e.pending,s=(65535&e.gzhead.extra.length)-e.gzindex;for(;e.pending+s>e.pending_buf_size;){let u=e.pending_buf_size-e.pending;if(e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex,e.gzindex+u),e.pending),e.pending=e.pending_buf_size,e.gzhead.hcrc&&e.pending>r&&(n.adler=Ms(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex+=u,yl(n),0!==e.pending)return e.last_flush=-1,ca;r=0,s-=u}let l=new Uint8Array(e.gzhead.extra);e.pending_buf.set(l.subarray(e.gzindex,e.gzindex+s),e.pending),e.pending+=s,e.gzhead.hcrc&&e.pending>r&&(n.adler=Ms(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=73}if(73===e.status){if(e.gzhead.name){let s,r=e.pending;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=Ms(n.adler,e.pending_buf,e.pending-r,r)),yl(n),0!==e.pending)return e.last_flush=-1,ca;r=0}s=e.gzindexr&&(n.adler=Ms(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=91}if(91===e.status){if(e.gzhead.comment){let s,r=e.pending;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=Ms(n.adler,e.pending_buf,e.pending-r,r)),yl(n),0!==e.pending)return e.last_flush=-1,ca;r=0}s=e.gzindexr&&(n.adler=Ms(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&&(yl(n),0!==e.pending))return e.last_flush=-1,ca;Or(e,255&n.adler),Or(e,n.adler>>8&255),n.adler=0}if(e.status=113,yl(n),0!==e.pending)return e.last_flush=-1,ca}if(0!==n.avail_in||0!==e.lookahead||t!==vd&&666!==e.status){let r=0===e.level?VF(e,t):e.strategy===X_?((n,t)=>{let e;for(;;){if(0===n.lookahead&&(og(n),0===n.lookahead)){if(t===vd)return 1;break}if(n.match_length=0,e=Bh(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,e&&(Wa(n,!1),0===n.strm.avail_out))return 1}return n.insert=0,t===tc?(Wa(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&(Wa(n,!1),0===n.strm.avail_out)?1:2})(e,t):e.strategy===FN?((n,t)=>{let e,i,r,s;const l=n.window;for(;;){if(n.lookahead<=258){if(og(n),n.lookahead<=258&&t===vd)return 1;if(0===n.lookahead)break}if(n.match_length=0,n.lookahead>=3&&n.strstart>0&&(r=n.strstart-1,i=l[r],i===l[++r]&&i===l[++r]&&i===l[++r])){s=n.strstart+258;do{}while(i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&i===l[++r]&&rn.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=3?(e=Bh(n,1,n.match_length-3),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(e=Bh(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),e&&(Wa(n,!1),0===n.strm.avail_out))return 1}return n.insert=0,t===tc?(Wa(n,!0),0===n.strm.avail_out?3:4):n.sym_next&&(Wa(n,!1),0===n.strm.avail_out)?1:2})(e,t):Mp[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),ca;if(2===r&&(t===wp?EN(e):t!==y1&&(tg(e,0,0,!1),t===zM&&(Rh(e.head),0===e.lookahead&&(e.strstart=0,e.block_start=0,e.insert=0))),yl(n),0===n.avail_out))return e.last_flush=-1,ca}return t!==tc?ca:e.wrap<=0?SN:(2===e.wrap?(Or(e,255&n.adler),Or(e,n.adler>>8&255),Or(e,n.adler>>16&255),Or(e,n.adler>>24&255),Or(e,255&n.total_in),Or(e,n.total_in>>8&255),Or(e,n.total_in>>16&255),Or(e,n.total_in>>24&255)):(rg(e,n.adler>>>16),rg(e,65535&n.adler)),yl(n),e.wrap>0&&(e.wrap=-e.wrap),0!==e.pending?ca:SN)},deflateEnd:n=>{if(Ep(n))return yd;const t=n.state.status;return n.state=null,113===t?kh(n,TN):ca},deflateSetDictionary:(n,t)=>{let e=t.length;if(Ep(n))return yd;const i=n.state,r=i.wrap;if(2===r||1===r&&42!==i.status||i.lookahead)return yd;if(1===r&&(n.adler=eg(n.adler,t,e,0)),i.wrap=0,e>=i.w_size){0===r&&(Rh(i.head),i.strstart=0,i.block_start=0,i.insert=0);let f=new Uint8Array(i.w_size);f.set(t.subarray(e-i.w_size,e),0),t=f,e=i.w_size}const s=n.avail_in,l=n.next_in,u=n.input;for(n.avail_in=e,n.next_in=0,n.input=t,og(i);i.lookahead>=3;){let f=i.strstart,p=i.lookahead-2;do{i.ins_h=Pc(i,i.ins_h,i.window[f+3-1]),i.prev[f&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=f,f++}while(--p);i.strstart=f,i.lookahead=2,og(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=l,n.input=u,n.avail_in=s,i.wrap=r,ca},deflateInfo:"pako deflate (from Nodeca project)"};const E1=(n,t)=>Object.prototype.hasOwnProperty.call(n,t);var J_={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)E1(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;eb[254]=eb[254]=1;var ag={string2buf:n=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(n);let t,e,i,r,s,l=n.length,u=0;for(r=0;r>>6,t[s++]=128|63&e):e<65536?(t[s++]=224|e>>>12,t[s++]=128|e>>>6&63,t[s++]=128|63&e):(t[s++]=240|e>>>18,t[s++]=128|e>>>12&63,t[s++]=128|e>>>6&63,t[s++]=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 s=new Array(2*e);for(r=0,i=0;i4)s[r++]=65533,i+=u-1;else{for(l&=2===u?31:3===u?15:7;u>1&&i1?s[r++]=65533:l<65536?s[r++]=l:(l-=65536,s[r++]=55296|l>>10&1023,s[r++]=56320|1023&l)}}return((n,t)=>{if(t<65534&&n.subarray&&qF)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+eb[n[e]]>t?e:t}},WF=function $N(){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 tE=Object.prototype.toString,{Z_NO_FLUSH:nE,Z_SYNC_FLUSH:XF,Z_FULL_FLUSH:Sp,Z_FINISH:qN,Z_OK:F1,Z_STREAM_END:lg,Z_DEFAULT_COMPRESSION:w9,Z_DEFAULT_STRATEGY:iE,Z_DEFLATED:x9}=Fh;function cg(n){this.options=J_.assign({level:w9,method:x9,chunkSize:16384,windowBits:15,memLevel:8,strategy:iE},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 WF,this.strm.avail_out=0;let e=Z_.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(e!==F1)throw new Error(Ih[e]);if(t.header&&Z_.deflateSetHeader(this.strm,t.header),t.dictionary){let i;if(i="string"==typeof t.dictionary?ag.string2buf(t.dictionary):"[object ArrayBuffer]"===tE.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,e=Z_.deflateSetDictionary(this.strm,i),e!==F1)throw new Error(Ih[e]);this._dict_set=!0}}function D1(n,t){const e=new cg(t);if(e.push(n,!0),e.err)throw e.msg||Ih[e.err];return e.result}cg.prototype.push=function(n,t){const e=this.strm,i=this.options.chunkSize;let r,s;if(this.ended)return!1;for(s=t===~~t?t:!0===t?qN:nE,e.input="string"==typeof n?ag.string2buf(n):"[object ArrayBuffer]"===tE.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),(s===XF||s===Sp)&&e.avail_out<=6)this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;else{if(r=Z_.deflate(e,s),r===lg)return e.next_out>0&&this.onData(e.output.subarray(0,e.next_out)),r=Z_.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===F1;if(0!==e.avail_out){if(s>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},cg.prototype.onData=function(n){this.chunks.push(n)},cg.prototype.onEnd=function(n){n===F1&&(this.result=J_.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};var k1={Deflate:cg,deflate:D1,deflateRaw:function C9(n,t){return(t=t||{}).raw=!0,D1(n,t)},gzip:function dg(n,t){return(t=t||{}).gzip=!0,D1(n,t)},constants:Fh};const Tp=16209;var KF=function(t,e){let i,r,s,l,u,f,p,m,_,b,w,F,D,T,I,O,R,P,ee,J,te,ie,W,q;const le=t.state;i=t.next_in,W=t.input,r=i+(t.avail_in-5),s=t.next_out,q=t.output,l=s-(e-t.avail_out),u=s+(t.avail_out-257),f=le.dmax,p=le.wsize,m=le.whave,_=le.wnext,b=le.window,w=le.hold,F=le.bits,D=le.lencode,T=le.distcode,I=(1<>>24,w>>>=P,F-=P,P=R>>>16&255,0===P)q[s++]=65535&R;else{if(!(16&P)){if(64&P){if(32&P){le.mode=16191;break e}t.msg="invalid literal/length code",le.mode=Tp;break e}R=D[(65535&R)+(w&(1<>>=P,F-=P),F<15&&(w+=W[i++]<>>24,w>>>=P,F-=P,P=R>>>16&255,16&P){if(J=65535&R,P&=15,Ff){t.msg="invalid distance too far back",le.mode=Tp;break e}if(w>>>=P,F-=P,P=s-l,J>P){if(P=J-P,P>m&&le.sane){t.msg="invalid distance too far back",le.mode=Tp;break e}if(te=0,ie=b,0===_){if(te+=p-P,P2;)q[s++]=ie[te++],q[s++]=ie[te++],q[s++]=ie[te++],ee-=3;ee&&(q[s++]=ie[te++],ee>1&&(q[s++]=ie[te++]))}else{te=s-J;do{q[s++]=q[te++],q[s++]=q[te++],q[s++]=q[te++],ee-=3}while(ee>2);ee&&(q[s++]=q[te++],ee>1&&(q[s++]=q[te++]))}break}if(64&P){t.msg="invalid distance code",le.mode=Tp;break e}R=T[(65535&R)+(w&(1<>3,i-=ee,F-=ee<<3,w&=(1<{const f=u.bits;let R,P,ee,J,te,W,p=0,m=0,_=0,b=0,w=0,F=0,D=0,T=0,I=0,O=0,ie=null;const q=new Uint16Array(16),le=new Uint16Array(16);let Ue,ce,ze,ke=null;for(p=0;p<=15;p++)q[p]=0;for(m=0;m=1&&0===q[b];b--);if(w>b&&(w=b),0===b)return r[s++]=20971520,r[s++]=20971520,u.bits=1,0;for(_=1;_0&&(0===n||1!==b))return-1;for(le[1]=0,p=1;p<15;p++)le[p+1]=le[p]+q[p];for(m=0;m852||2===n&&I>592)return 1;for(;;){Ue=p-D,l[m]+1=W?(ce=ke[l[m]-W],ze=ie[l[m]-W]):(ce=96,ze=0),R=1<>D)+P]=Ue<<24|ce<<16|ze}while(0!==P);for(R=1<>=1;if(0!==R?(O&=R-1,O+=R):O=0,m++,0==--q[p]){if(p===b)break;p=t[e+l[m]]}if(p>w&&(O&J)!==ee){for(0===D&&(D=w),te+=_,F=p-D,T=1<852||2===n&&I>592)return 1;ee=O&J,r[ee]=w<<24|F<<16|te-s}}return 0!==O&&(r[te+O]=p-D<<24|64<<16),u.bits=w,0};const{Z_FINISH:sE,Z_BLOCK:eL,Z_TREES:aE,Z_OK:Ag,Z_STREAM_END:E9,Z_NEED_DICT:S9,Z_STREAM_ERROR:wl,Z_DATA_ERROR:nb,Z_MEM_ERROR:nD,Z_BUF_ERROR:tL,Z_DEFLATED:lE}=Fh,Ph=16180,Oh=16190,vu=16191,ib=16199,rb=16200,Oo=16209,fE=n=>(n>>>24&255)+(n>>>8&65280)+((65280&n)<<8)+((255&n)<<24);function oL(){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 Ip=n=>{if(!n)return 1;const t=n.state;return!t||t.strm!==n||t.mode16211?1:0},pE=n=>{if(Ip(n))return wl;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=Ph,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,Ag},yD=n=>{if(Ip(n))return wl;const t=n.state;return t.wsize=0,t.whave=0,t.wnext=0,pE(n)},wD=(n,t)=>{let e;if(Ip(n))return wl;const i=n.state;return t<0?(e=0,t=-t):(e=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?wl:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=e,i.wbits=t,yD(n))},AE=(n,t)=>{if(!n)return wl;const e=new oL;n.state=e,e.strm=n,e.window=null,e.mode=Ph;const i=wD(n,t);return i!==Ag&&(n.state=null),i};let U1,mE,L1=!0;const gE=n=>{if(L1){U1=new Int32Array(512),mE=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(pg(1,n.lens,0,288,U1,0,n.work,{bits:9}),t=0;t<32;)n.lens[t++]=5;pg(2,n.lens,0,32,mE,0,n.work,{bits:5}),L1=!1}n.lencode=U1,n.lenbits=9,n.distcode=mE,n.distbits=5},_E=(n,t,e,i)=>{let r;const s=n.state;return null===s.window&&(s.wsize=1<=s.wsize?(s.window.set(t.subarray(e-s.wsize,e),0),s.wnext=0,s.whave=s.wsize):(r=s.wsize-s.wnext,r>i&&(r=i),s.window.set(t.subarray(e-i,e-i+r),s.wnext),(i-=r)?(s.window.set(t.subarray(e-i,e),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=r,s.wnext===s.wsize&&(s.wnext=0),s.whaveAE(n,15),inflateInit2:AE,inflate:(n,t)=>{let e,i,r,s,l,u,f,p,m,_,b,w,F,D,I,O,R,P,ee,J,te,ie,T=0;const W=new Uint8Array(4);let q,le;const ke=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Ip(n)||!n.output||!n.input&&0!==n.avail_in)return wl;e=n.state,e.mode===vu&&(e.mode=16192),l=n.next_out,r=n.output,f=n.avail_out,s=n.next_in,i=n.input,u=n.avail_in,p=e.hold,m=e.bits,_=u,b=f,ie=Ag;e:for(;;)switch(e.mode){case Ph:if(0===e.wrap){e.mode=16192;break}for(;m<16;){if(0===u)break e;u--,p+=i[s++]<>>8&255,e.check=Ms(e.check,W,2,0),p=0,m=0,e.mode=16181;break}if(e.head&&(e.head.done=!1),!(1&e.wrap)||(((255&p)<<8)+(p>>8))%31){n.msg="incorrect header check",e.mode=Oo;break}if((15&p)!==lE){n.msg="unknown compression method",e.mode=Oo;break}if(p>>>=4,m-=4,te=8+(15&p),0===e.wbits&&(e.wbits=te),te>15||te>e.wbits){n.msg="invalid window size",e.mode=Oo;break}e.dmax=1<>8&1),512&e.flags&&4&e.wrap&&(W[0]=255&p,W[1]=p>>>8&255,e.check=Ms(e.check,W,2,0)),p=0,m=0,e.mode=16182;case 16182:for(;m<32;){if(0===u)break e;u--,p+=i[s++]<>>8&255,W[2]=p>>>16&255,W[3]=p>>>24&255,e.check=Ms(e.check,W,4,0)),p=0,m=0,e.mode=16183;case 16183:for(;m<16;){if(0===u)break e;u--,p+=i[s++]<>8),512&e.flags&&4&e.wrap&&(W[0]=255&p,W[1]=p>>>8&255,e.check=Ms(e.check,W,2,0)),p=0,m=0,e.mode=16184;case 16184:if(1024&e.flags){for(;m<16;){if(0===u)break e;u--,p+=i[s++]<>>8&255,e.check=Ms(e.check,W,2,0)),p=0,m=0}else e.head&&(e.head.extra=null);e.mode=16185;case 16185:if(1024&e.flags&&(w=e.length,w>u&&(w=u),w&&(e.head&&(te=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(i.subarray(s,s+w),te)),512&e.flags&&4&e.wrap&&(e.check=Ms(e.check,i,w,s)),u-=w,s+=w,e.length-=w),e.length))break e;e.length=0,e.mode=16186;case 16186:if(2048&e.flags){if(0===u)break e;w=0;do{te=i[s+w++],e.head&&te&&e.length<65536&&(e.head.name+=String.fromCharCode(te))}while(te&&w>9&1,e.head.done=!0),n.adler=e.check=0,e.mode=vu;break;case 16189:for(;m<32;){if(0===u)break e;u--,p+=i[s++]<>>=7&m,m-=7&m,e.mode=16206;break}for(;m<3;){if(0===u)break e;u--,p+=i[s++]<>>=1,m-=1,3&p){case 0:e.mode=16193;break;case 1:if(gE(e),e.mode=ib,t===aE){p>>>=2,m-=2;break e}break;case 2:e.mode=16196;break;case 3:n.msg="invalid block type",e.mode=Oo}p>>>=2,m-=2;break;case 16193:for(p>>>=7&m,m-=7&m;m<32;){if(0===u)break e;u--,p+=i[s++]<>>16^65535)){n.msg="invalid stored block lengths",e.mode=Oo;break}if(e.length=65535&p,p=0,m=0,e.mode=16194,t===aE)break e;case 16194:e.mode=16195;case 16195:if(w=e.length,w){if(w>u&&(w=u),w>f&&(w=f),0===w)break e;r.set(i.subarray(s,s+w),l),u-=w,s+=w,f-=w,l+=w,e.length-=w;break}e.mode=vu;break;case 16196:for(;m<14;){if(0===u)break e;u--,p+=i[s++]<>>=5,m-=5,e.ndist=1+(31&p),p>>>=5,m-=5,e.ncode=4+(15&p),p>>>=4,m-=4,e.nlen>286||e.ndist>30){n.msg="too many length or distance symbols",e.mode=Oo;break}e.have=0,e.mode=16197;case 16197:for(;e.have>>=3,m-=3}for(;e.have<19;)e.lens[ke[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,q={bits:e.lenbits},ie=pg(0,e.lens,0,19,e.lencode,0,e.work,q),e.lenbits=q.bits,ie){n.msg="invalid code lengths set",e.mode=Oo;break}e.have=0,e.mode=16198;case 16198:for(;e.have>>24,O=T>>>16&255,R=65535&T,!(I<=m);){if(0===u)break e;u--,p+=i[s++]<>>=I,m-=I,e.lens[e.have++]=R;else{if(16===R){for(le=I+2;m>>=I,m-=I,0===e.have){n.msg="invalid bit length repeat",e.mode=Oo;break}te=e.lens[e.have-1],w=3+(3&p),p>>>=2,m-=2}else if(17===R){for(le=I+3;m>>=I,m-=I,te=0,w=3+(7&p),p>>>=3,m-=3}else{for(le=I+7;m>>=I,m-=I,te=0,w=11+(127&p),p>>>=7,m-=7}if(e.have+w>e.nlen+e.ndist){n.msg="invalid bit length repeat",e.mode=Oo;break}for(;w--;)e.lens[e.have++]=te}}if(e.mode===Oo)break;if(0===e.lens[256]){n.msg="invalid code -- missing end-of-block",e.mode=Oo;break}if(e.lenbits=9,q={bits:e.lenbits},ie=pg(1,e.lens,0,e.nlen,e.lencode,0,e.work,q),e.lenbits=q.bits,ie){n.msg="invalid literal/lengths set",e.mode=Oo;break}if(e.distbits=6,e.distcode=e.distdyn,q={bits:e.distbits},ie=pg(2,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,q),e.distbits=q.bits,ie){n.msg="invalid distances set",e.mode=Oo;break}if(e.mode=ib,t===aE)break e;case ib:e.mode=rb;case rb:if(u>=6&&f>=258){n.next_out=l,n.avail_out=f,n.next_in=s,n.avail_in=u,e.hold=p,e.bits=m,KF(n,b),l=n.next_out,r=n.output,f=n.avail_out,s=n.next_in,i=n.input,u=n.avail_in,p=e.hold,m=e.bits,e.mode===vu&&(e.back=-1);break}for(e.back=0;T=e.lencode[p&(1<>>24,O=T>>>16&255,R=65535&T,!(I<=m);){if(0===u)break e;u--,p+=i[s++]<>P)],I=T>>>24,O=T>>>16&255,R=65535&T,!(P+I<=m);){if(0===u)break e;u--,p+=i[s++]<>>=P,m-=P,e.back+=P}if(p>>>=I,m-=I,e.back+=I,e.length=R,0===O){e.mode=16205;break}if(32&O){e.back=-1,e.mode=vu;break}if(64&O){n.msg="invalid literal/length code",e.mode=Oo;break}e.extra=15&O,e.mode=16201;case 16201:if(e.extra){for(le=e.extra;m>>=e.extra,m-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=16202;case 16202:for(;T=e.distcode[p&(1<>>24,O=T>>>16&255,R=65535&T,!(I<=m);){if(0===u)break e;u--,p+=i[s++]<>P)],I=T>>>24,O=T>>>16&255,R=65535&T,!(P+I<=m);){if(0===u)break e;u--,p+=i[s++]<>>=P,m-=P,e.back+=P}if(p>>>=I,m-=I,e.back+=I,64&O){n.msg="invalid distance code",e.mode=Oo;break}e.offset=R,e.extra=15&O,e.mode=16203;case 16203:if(e.extra){for(le=e.extra;m>>=e.extra,m-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){n.msg="invalid distance too far back",e.mode=Oo;break}e.mode=16204;case 16204:if(0===f)break e;if(w=b-f,e.offset>w){if(w=e.offset-w,w>e.whave&&e.sane){n.msg="invalid distance too far back",e.mode=Oo;break}w>e.wnext?(w-=e.wnext,F=e.wsize-w):F=e.wnext-w,w>e.length&&(w=e.length),D=e.window}else D=r,F=l-e.offset,w=e.length;w>f&&(w=f),f-=w,e.length-=w;do{r[l++]=D[F++]}while(--w);0===e.length&&(e.mode=rb);break;case 16205:if(0===f)break e;r[l++]=e.length,f--,e.mode=rb;break;case 16206:if(e.wrap){for(;m<32;){if(0===u)break e;u--,p|=i[s++]<{if(Ip(n))return wl;let t=n.state;return t.window&&(t.window=null),n.state=null,Ag},inflateGetHeader:(n,t)=>{if(Ip(n))return wl;const e=n.state;return 2&e.wrap?(e.head=t,t.done=!1,Ag):wl},inflateSetDictionary:(n,t)=>{const e=t.length;let i,r,s;return Ip(n)||(i=n.state,0!==i.wrap&&i.mode!==Oh)?wl:i.mode===Oh&&(r=1,r=eg(r,t,e,0),r!==i.check)?nb:(s=_E(n,t,e,e),s?(i.mode=16210,nD):(i.havedict=1,Ag))},inflateInfo:"pako inflate (from Nodeca project)"},RD=function kD(){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 vE=Object.prototype.toString,{Z_NO_FLUSH:PD,Z_FINISH:OD,Z_OK:mg,Z_STREAM_END:H1,Z_NEED_DICT:yE,Z_STREAM_ERROR:ND,Z_DATA_ERROR:Q1,Z_MEM_ERROR:LD}=Fh;function ob(n){this.options=J_.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 WF,this.strm.avail_out=0;let e=Md.inflateInit2(this.strm,t.windowBits);if(e!==mg)throw new Error(Ih[e]);if(this.header=new RD,Md.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=ag.string2buf(t.dictionary):"[object ArrayBuffer]"===vE.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(e=Md.inflateSetDictionary(this.strm,t.dictionary),e!==mg)))throw new Error(Ih[e])}function wE(n,t){const e=new ob(t);if(e.push(n),e.err)throw e.msg||Ih[e.err];return e.result}ob.prototype.push=function(n,t){const e=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let s,l,u;if(this.ended)return!1;for(l=t===~~t?t:!0===t?OD:PD,e.input="[object ArrayBuffer]"===vE.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),s=Md.inflate(e,l),s===yE&&r&&(s=Md.inflateSetDictionary(e,r),s===mg?s=Md.inflate(e,l):s===Q1&&(s=yE));e.avail_in>0&&s===H1&&e.state.wrap>0&&0!==n[e.next_in];)Md.inflateReset(e),s=Md.inflate(e,l);switch(s){case ND:case Q1:case yE:case LD:return this.onEnd(s),this.ended=!0,!1}if(u=e.avail_out,e.next_out&&(0===e.avail_out||s===H1))if("string"===this.options.to){let f=ag.utf8border(e.output,e.next_out),p=e.next_out-f,m=ag.buf2string(e.output,f);e.next_out=p,e.avail_out=i-p,p&&e.output.set(e.output.subarray(f,f+p),0),this.onData(m)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(s!==mg||0!==u){if(s===H1)return s=Md.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===e.avail_in)break}}return!0},ob.prototype.onData=function(n){this.chunks.push(n)},ob.prototype.onEnd=function(n){n===mg&&(this.result="string"===this.options.to?this.chunks.join(""):J_.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};var pL={Inflate:ob,inflate:wE,inflateRaw:function lL(n,t){return(t=t||{}).raw=!0,wE(n,t)},ungzip:wE,constants:Fh};const{ungzip:$D}=pL;var sb=$D;const CE=n=>{const t=[];for(let e=0;e{const i=t.name.endsWith(".gz"),r=new FileReader;let s;i?r.readAsArrayBuffer(t):r.readAsText(t,"utf8"),r.onload=l=>{const u=l.target.result.toString();s=i?sb(l.target.result,{to:"string"}):u,u.includes("gameObjectPositions")&&function MM(n){return new(tN())({allErrors:!0}).validate(vN,JSON.parse(n))}(u)&&(s=JSON.stringify(function pF(n){const{gameObjectPositions:t,cycles:e=[]}=JSON.parse(n),i={checksum:"",data:{projectName:"GameObjects",fileChecksum:"",apiVersion:"1.3",nodes:[]}},r=[{name:Rc,type:Zo.FOLDER,attributes:{},children:[]}];!function z_(n){for(const t of n)t.name.startsWith("root")||(t.name=t.name.startsWith(".")?`root${t.name}`:`root.${t.name}`)}(t);const s=t.find(u=>"root"===u.name),l=function bN(n){const t=Math.max(n.x,n.z);return{name:Rc,position:{x:0,y:0,z:0},scale:{x:t,y:0,z:t}}}(s.scale);t.push(l);for(const u of t){const f=u.name.split(".");f[0]!==Rc&&AF(f,r[0].children,Rc,u,t,s)}return i.data.nodes=r,i.data.edges=e.map(u=>function _N(n){return{fromNodeName:Mh(n.from),toNodeName:Mh(n.to),attributes:{coupling:100}}}(u)),i.data.attributeTypes=function _l(){return{edges:{coupling:Sc.relative}}}(),i.checksum=L_()(JSON.stringify(i.data)),i}(u)))},r.onloadend=()=>{e(s)}})});return function(e){return n.apply(this,arguments)}}();let ME=(()=>{class n{constructor(e,i){this.store=e,this.loadFileService=i,this.isUploading=!1}uploadFiles(){const e=fF();e.addEventListener("change",()=>{this.uploadFilesOnEvent(e)}),e.click()}uploadFilesOnEvent(e){var i=this;return Cn(function*(){try{i.isUploading=!0,i.store.dispatch(Ec({value:!0})),i.store.dispatch(ph({value:!0}));const r=yield Promise.all(CE(e.files)),{customConfigs:s,ccFiles:l}=i.splitCustomConfigsAndCCFiles(e.files,r);for(const u of s)hr.importCustomConfigs(u);l.length>0&&i.loadFileService.loadFiles(l)}catch{i.store.dispatch(Ec({value:!1})),i.store.dispatch(ph({value:!1}))}finally{i.isUploading=!1}})()}splitCustomConfigsAndCCFiles(e,i){const r=[],s=[];for(const[l,u]of i.entries()){const f=e[l].name;f.includes(xM)?r.push(u):s.push({fileName:f,fileSize:e[l].size,content:XI(u)})}return{customConfigs:r,ccFiles:s}}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(mu))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),JD=(()=>{class n{constructor(e){this.uploadFilesService=e}uploadFiles(){this.uploadFilesService.uploadFiles()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(ME))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-upload-files-button"]],standalone:!0,features:[o.aNF],decls:1,vars:1,consts:[["title","Load cc.json files",3,"click","icon"]],template:function(i,r){1&i&&(o.j41(0,"cc-action-icon",0),o.bIt("click",function(){return r.uploadFiles()}),o.k0s()),2&i&&o.Y8G("icon","fa fa-folder-open folder-icon")},dependencies:[Al],encapsulation:2})}}return n})();const G1=typeof navigator<"u"&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function ab(n,t,e,i){n.addEventListener?n.addEventListener(t,e,i):n.attachEvent&&n.attachEvent("on".concat(t),e)}function gg(n,t,e,i){n.removeEventListener?n.removeEventListener(t,e,i):n.detachEvent&&n.detachEvent("on".concat(t),e)}function j1(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 lb={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,"-":G1?173:189,"=":G1?61:187,";":G1?59:186,"'":222,"[":219,"]":221,"\\":220},Ed={"\u21e7":16,shift:16,"\u2325":18,alt:18,option:18,"\u2303":17,ctrl:17,control:17,"\u2318":91,cmd:91,command:91},SE={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},Ss={16:!1,18:!1,17:!1,91:!1},Do={};for(let n=1;n<20;n++)lb["f".concat(n)]=111+n;let yo=[],Fp=null,tB="all";const yu=new Map,Dp=n=>lb[n.toLowerCase()]||Ed[n.toLowerCase()]||n.toUpperCase().charCodeAt(0);function iB(n){tB=n||"all"}function _g(){return tB||"all"}function TE(n){if(typeof n>"u")Object.keys(Do).forEach(r=>{Array.isArray(Do[r])&&Do[r].forEach(s=>cb(s)),delete Do[r]}),DE(null);else if(Array.isArray(n))n.forEach(r=>{r.key&&cb(r)});else if("object"==typeof n)n.key&&cb(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;EE(t).forEach(l=>{const u=l.split(r),f=u.length,p=u[f-1],m="*"===p?"*":Dp(p);if(!Do[m])return;e||(e=_g());const _=f>1?j1(Ed,u):[],b=[];Do[m]=Do[m].filter(w=>{const D=(!i||w.method===i)&&w.scope===e&&function eB(n,t){const e=n.length>=t.length?n:t,i=n.length>=t.length?t:n;let r=!0;for(let s=0;sDE(w))})};function IE(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 s in Ss)Object.prototype.hasOwnProperty.call(Ss,s)&&(!Ss[s]&&t.mods.indexOf(+s)>-1||Ss[s]&&-1===t.mods.indexOf(+s))&&(r=!1);(0===t.mods.length&&!Ss[16]&&!Ss[18]&&!Ss[17]&&!Ss[91]||r||"*"===t.shortcut)&&(t.keys=[],t.keys=t.keys.concat(yo),!1===t.method(n,t)&&(n.preventDefault?n.preventDefault():n.returnValue=!1,n.stopPropagation&&n.stopPropagation(),n.cancelBubble&&(n.cancelBubble=!0)))}}function FE(n,t){const e=Do["*"];let i=n.keyCode||n.which||n.charCode;if(!Sd.filter.call(this,n))return;if((93===i||224===i)&&(i=91),-1===yo.indexOf(i)&&229!==i&&yo.push(i),["ctrlKey","altKey","shiftKey","metaKey"].forEach(u=>{const f=SE[u];n[u]&&-1===yo.indexOf(f)?yo.push(f):!n[u]&&yo.indexOf(f)>-1?yo.splice(yo.indexOf(f),1):"metaKey"===u&&n[u]&&3===yo.length&&(n.ctrlKey||n.shiftKey||n.altKey||(yo=yo.slice(yo.indexOf(f))))}),i in Ss){Ss[i]=!0;for(const u in Ed)Ed[u]===i&&(Sd[u]=!0);if(!e)return}for(const u in Ss)Object.prototype.hasOwnProperty.call(Ss,u)&&(Ss[u]=n[SE[u]]);n.getModifierState&&(!n.altKey||n.ctrlKey)&&n.getModifierState("AltGraph")&&(-1===yo.indexOf(17)&&yo.push(17),-1===yo.indexOf(18)&&yo.push(18),Ss[17]=!0,Ss[18]=!0);const r=_g();if(e)for(let u=0;u1&&(r=j1(Ed,n)),(n="*"===(n=n[n.length-1])?"*":Dp(n))in Do||(Do[n]=[]),Do[n].push({keyup:f,keydown:p,scope:s,mods:r,shortcut:i[u],method:e,key:i[u],splitKey:m,element:l});if(typeof l<"u"&&window){if(!yu.has(l)){const w=function(){return FE(arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event,l)},F=function(){let D=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event;FE(D,l),function vL(n){let t=n.keyCode||n.which||n.charCode;const e=yo.indexOf(t);if(e>=0&&yo.splice(e,1),n.key&&"meta"===n.key.toLowerCase()&&yo.splice(0,yo.length),(93===t||224===t)&&(t=91),t in Ss){Ss[t]=!1;for(const i in Ed)Ed[i]===t&&(Sd[i]=!1)}}(D)};yu.set(l,{keydownListener:w,keyupListenr:F,capture:_}),ab(l,"keydown",w,_),ab(l,"keyup",F,_)}if(!Fp){const w=()=>{yo=[]};Fp={listener:w,capture:_},ab(window,"focus",w,_)}}}function DE(n){const t=Object.values(Do).flat();if(t.findIndex(i=>{let{element:r}=i;return r===n})<0){const{keydownListener:i,keyupListenr:r,capture:s}=yu.get(n)||{};i&&r&&(gg(n,"keyup",r,s),gg(n,"keydown",i,s),yu.delete(n))}if((t.length<=0||yu.size<=0)&&(Object.keys(yu).forEach(r=>{const{keydownListener:s,keyupListenr:l,capture:u}=yu.get(r)||{};s&&l&&(gg(r,"keyup",l,u),gg(r,"keydown",s,u),yu.delete(r))}),yu.clear(),Object.keys(Do).forEach(r=>delete Do[r]),Fp)){const{listener:r,capture:s}=Fp;gg(window,"focus",r,s),Fp=null}}const BE={getPressedKeyString:function bL(){return yo.map(n=>(n=>Object.keys(lb).find(t=>lb[t]===n))(n)||(n=>Object.keys(Ed).find(t=>Ed[t]===n))(n)||String.fromCharCode(n))},setScope:iB,getScope:_g,deleteScope:function F9(n,t){let e,i;n||(n=_g());for(const r in Do)if(Object.prototype.hasOwnProperty.call(Do,r))for(e=Do[r],i=0;i{let{element:u}=l;return DE(u)}):i++;_g()===n&&iB(t||"all")},getPressedKeyCodes:function _L(){return yo.slice(0)},getAllKeyCodes:function $1(){const n=[];return Object.keys(Do).forEach(t=>{Do[t].forEach(e=>{let{key:i,scope:r,mods:s,shortcut:l}=e;n.push({scope:r,shortcut:l,mods:s,keys:i.split("+").map(u=>Dp(u))})})}),n},isPressed:function q1(n){return"string"==typeof n&&(n=Dp(n)),-1!==yo.indexOf(n)},filter:function rB(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 yL(n){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all";Object.keys(Do).forEach(e=>{Do[e].filter(r=>r.scope===t&&r.shortcut===n).forEach(r=>{r&&r.method&&r.method()})})},unbind:TE,keyMap:lb,modifier:Ed,modifierMap:SE};for(const n in BE)Object.prototype.hasOwnProperty.call(BE,n)&&(Sd[n]=BE[n]);if(typeof window<"u"){const n=window.hotkeys;Sd.noConflict=t=>(t&&window.hotkeys===Sd&&(window.hotkeys=n),Sd),window.hotkeys=Sd}var wL=v(7239),xL=v.n(wL);const aB=1,D9=2,Nh=3,xu=0,ua=1,Cu=2,ns=100,yg=101,SL=102,k9=200,db=201,IL=202,OE=203,NE=204,W1=205,FL=206,DL=207,BL=208,LE=209,cB=210,kL=211,X1=212,UE=213,R9=214,K1=0,OL=1,NL=2,Eu=0,fB=1,LL=2,pB=3,AB=4,UL=5,VL=6,mB=7,Su=301,Lh=302,ew=306,Bp=1e3,Id=1001,HE=1002,ha=1003,HL=1004,tw=1005,Ts=1006,ub=1007,Uh=1008,Tu=1009,wg=1010,hb=1011,fb=1012,QE=1013,Vh=1014,xl=1015,xg=1016,zE=1017,GE=1018,kp=1020,bB=35902,vB=1021,yB=1022,Ba=1023,wB=1024,xB=1025,Cg=1026,Mg=1027,jE=1028,nw=1029,CB=1030,$E=1031,iw=1033,Eg=33776,rw=33777,ow=33778,pb=33779,qE=35840,sw=35841,MB=35842,WE=35843,aw=36196,lw=37492,XE=37496,cw=37808,KE=37809,Ab=37810,mb=37811,dw=37812,uw=37813,hw=37814,gb=37815,EB=37816,fw=37817,YE=37818,SB=37819,ZE=37820,JE=37821,_b=36492,ic=36494,Sg=36495,bb=36283,pw=36284,eS=36285,tS=36286,Oc="srgb",Qh="srgb-linear",rS="display-p3",wb="display-p3-linear",oS="linear",Bo="srgb",gw="rec709",Pp="p3",Op=7680,j9=512,ZL=513,$9=514,JL=515,q9=516,DB=517,BB=518,e5=519,lS="300 es",ka=2e3;class Nc{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 s=r.indexOf(e);-1!==s&&r.splice(s,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 s=0,l=r.length;s>8&255]+Hs[n>>16&255]+Hs[n>>24&255]+"-"+Hs[255&t]+Hs[t>>8&255]+"-"+Hs[t>>16&15|64]+Hs[t>>24&255]+"-"+Hs[63&e|128]+Hs[e>>8&255]+"-"+Hs[e>>16&255]+Hs[e>>24&255]+Hs[255&i]+Hs[i>>8&255]+Hs[i>>16&255]+Hs[i>>24&255]).toLowerCase()}function is(n,t,e){return Math.max(t,Math.min(e,n))}function Cb(n,t,e){return(1-e)*n+e*t}function Ra(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 lr(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 Z9_DEG2RAD=Fu;class At{constructor(t=0,e=0){At.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(is(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),s=this.x-t.x,l=this.y-t.y;return this.x=s*i-l*r+t.x,this.y=s*r+l*i+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Ki{constructor(t,e,i,r,s,l,u,f,p){Ki.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==t&&this.set(t,e,i,r,s,l,u,f,p)}set(t,e,i,r,s,l,u,f,p){const m=this.elements;return m[0]=t,m[1]=r,m[2]=u,m[3]=e,m[4]=s,m[5]=f,m[6]=i,m[7]=l,m[8]=p,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,s=this.elements,l=i[0],u=i[3],f=i[6],p=i[1],m=i[4],_=i[7],b=i[2],w=i[5],F=i[8],D=r[0],T=r[3],I=r[6],O=r[1],R=r[4],P=r[7],ee=r[2],J=r[5],te=r[8];return s[0]=l*D+u*O+f*ee,s[3]=l*T+u*R+f*J,s[6]=l*I+u*P+f*te,s[1]=p*D+m*O+_*ee,s[4]=p*T+m*R+_*J,s[7]=p*I+m*P+_*te,s[2]=b*D+w*O+F*ee,s[5]=b*T+w*R+F*J,s[8]=b*I+w*P+F*te,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],s=t[3],l=t[4],u=t[5],f=t[6],p=t[7],m=t[8];return e*l*m-e*u*p-i*s*m+i*u*f+r*s*p-r*l*f}invert(){const t=this.elements,e=t[0],i=t[1],r=t[2],s=t[3],l=t[4],u=t[5],f=t[6],p=t[7],m=t[8],_=m*l-u*p,b=u*f-m*s,w=p*s-l*f,F=e*_+i*b+r*w;if(0===F)return this.set(0,0,0,0,0,0,0,0,0);const D=1/F;return t[0]=_*D,t[1]=(r*p-m*i)*D,t[2]=(u*i-r*l)*D,t[3]=b*D,t[4]=(m*e-r*f)*D,t[5]=(r*s-u*e)*D,t[6]=w*D,t[7]=(i*f-p*e)*D,t[8]=(l*e-i*s)*D,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,s,l,u){const f=Math.cos(s),p=Math.sin(s);return this.set(i*f,i*p,-i*(f*l+p*u)+l+t,-r*p,r*f,-r*(-p*l+f*u)+u+e,0,0,1),this}scale(t,e){return this.premultiply(HB.makeScale(t,e)),this}rotate(t){return this.premultiply(HB.makeRotation(-t)),this}translate(t,e){return this.premultiply(HB.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 HB=new Ki;function _s(n){for(let t=n.length-1;t>=0;--t)if(n[t]>=65535)return!0;return!1}function Gh(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function QB(){const n=Gh("canvas");return n.style.display="block",n}Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array;const l5={};function Ig(n){n in l5||(l5[n]=!0,console.warn(n))}const c5=(new Ki).set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),bw=(new Ki).set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),Eb={[Qh]:{transfer:oS,primaries:gw,luminanceCoefficients:[.2126,.7152,.0722],toReference:n=>n,fromReference:n=>n},[Oc]:{transfer:Bo,primaries:gw,luminanceCoefficients:[.2126,.7152,.0722],toReference:n=>n.convertSRGBToLinear(),fromReference:n=>n.convertLinearToSRGB()},[wb]:{transfer:oS,primaries:Pp,luminanceCoefficients:[.2289,.6917,.0793],toReference:n=>n.applyMatrix3(bw),fromReference:n=>n.applyMatrix3(c5)},[rS]:{transfer:Bo,primaries:Pp,luminanceCoefficients:[.2289,.6917,.0793],toReference:n=>n.convertSRGBToLinear().applyMatrix3(bw),fromReference:n=>n.applyMatrix3(c5).convertLinearToSRGB()}},zB=new Set([Qh,wb]),Nr={enabled:!0,_workingColorSpace:Qh,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(n){if(!zB.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,Eb[e].fromReference)((0,Eb[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 Eb[n].primaries},getTransfer:function(n){return""===n?oS:Eb[n].transfer},getLuminanceCoefficients:function(n,t=this._workingColorSpace){return n.fromArray(Eb[t].luminanceCoefficients)}};function Lp(n){return n<.04045?.0773993808*n:Math.pow(.9478672986*n+.0521327014,2.4)}function vw(n){return n<.0031308?12.92*n:1.055*Math.pow(n,.41666)-.055}let Fg;class d5{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===Fg&&(Fg=Gh("canvas")),Fg.width=t.width,Fg.height=t.height;const i=Fg.getContext("2d");t instanceof ImageData?i.putImageData(t,0,0):i.drawImage(t,0,0,t.width,t.height),e=Fg}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=Gh("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),s=r.data;for(let l=0;l{class n extends Nc{constructor(e=n.DEFAULT_IMAGE,i=n.DEFAULT_MAPPING,r=Id,s=Id,l=Ts,u=Uh,f=Ba,p=Tu,m=n.DEFAULT_ANISOTROPY,_=""){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:ww++}),this.uuid=fa(),this.name="",this.source=new Dg(e),this.mipmaps=[],this.mapping=i,this.channel=0,this.wrapS=r,this.wrapT=s,this.magFilter=l,this.minFilter=u,this.anisotropy=m,this.format=f,this.internalFormat=null,this.type=p,this.offset=new At(0,0),this.repeat=new At(1,1),this.center=new At(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Ki,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=_,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 Bp:e.x=e.x-Math.floor(e.x);break;case Id: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 Bp:e.y=e.y-Math.floor(e.y);break;case Id: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 Lr{constructor(t=0,e=0,i=0,r=1){Lr.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,s=this.w,l=t.elements;return this.x=l[0]*e+l[4]*i+l[8]*r+l[12]*s,this.y=l[1]*e+l[5]*i+l[9]*r+l[13]*s,this.z=l[2]*e+l[6]*i+l[10]*r+l[14]*s,this.w=l[3]*e+l[7]*i+l[11]*r+l[15]*s,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,s;const f=t.elements,p=f[0],m=f[4],_=f[8],b=f[1],w=f[5],F=f[9],D=f[2],T=f[6],I=f[10];if(Math.abs(m-b)<.01&&Math.abs(_-D)<.01&&Math.abs(F-T)<.01){if(Math.abs(m+b)<.1&&Math.abs(_+D)<.1&&Math.abs(F+T)<.1&&Math.abs(p+w+I-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;const R=(p+1)/2,P=(w+1)/2,ee=(I+1)/2,J=(m+b)/4,te=(_+D)/4,ie=(F+T)/4;return R>P&&R>ee?R<.01?(i=0,r=.707106781,s=.707106781):(i=Math.sqrt(R),r=J/i,s=te/i):P>ee?P<.01?(i=.707106781,r=0,s=.707106781):(r=Math.sqrt(P),i=J/r,s=ie/r):ee<.01?(i=.707106781,r=.707106781,s=0):(s=Math.sqrt(ee),i=te/s,r=ie/s),this.set(i,r,s,e),this}let O=Math.sqrt((T-F)*(T-F)+(_-D)*(_-D)+(b-m)*(b-m));return Math.abs(O)<.001&&(O=1),this.x=(T-F)/O,this.y=(_-D)/O,this.z=(b-m)/O,this.w=Math.acos((p+w+I-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 jB extends Nc{constructor(t=1,e=1,i={}){super(),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=1,this.scissor=new Lr(0,0,t,e),this.scissorTest=!1,this.viewport=new Lr(0,0,t,e);const r={width:t,height:e,depth:1};i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:Ts,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},i);const s=new Is(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace);s.flipY=!1,s.generateMipmaps=i.generateMipmaps,s.internalFormat=i.internalFormat,this.textures=[];const l=i.count;for(let u=0;u=0?1:-1,R=1-I*I;if(R>Number.EPSILON){const ee=Math.sqrt(R),J=Math.atan2(ee,I*O);T=Math.sin(T*J)/ee,u=Math.sin(u*J)/ee}const P=u*O;if(f=f*T+b*P,p=p*T+w*P,m=m*T+F*P,_=_*T+D*P,T===1-u){const ee=1/Math.sqrt(f*f+p*p+m*m+_*_);f*=ee,p*=ee,m*=ee,_*=ee}}t[e]=f,t[e+1]=p,t[e+2]=m,t[e+3]=_}static multiplyQuaternionsFlat(t,e,i,r,s,l){const u=i[r],f=i[r+1],p=i[r+2],m=i[r+3],_=s[l],b=s[l+1],w=s[l+2],F=s[l+3];return t[e]=u*F+m*_+f*w-p*b,t[e+1]=f*F+m*b+p*_-u*w,t[e+2]=p*F+m*w+u*b-f*_,t[e+3]=m*F-u*_-f*b-p*w,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,s=t._z,l=t._order,u=Math.cos,f=Math.sin,p=u(i/2),m=u(r/2),_=u(s/2),b=f(i/2),w=f(r/2),F=f(s/2);switch(l){case"XYZ":this._x=b*m*_+p*w*F,this._y=p*w*_-b*m*F,this._z=p*m*F+b*w*_,this._w=p*m*_-b*w*F;break;case"YXZ":this._x=b*m*_+p*w*F,this._y=p*w*_-b*m*F,this._z=p*m*F-b*w*_,this._w=p*m*_+b*w*F;break;case"ZXY":this._x=b*m*_-p*w*F,this._y=p*w*_+b*m*F,this._z=p*m*F+b*w*_,this._w=p*m*_-b*w*F;break;case"ZYX":this._x=b*m*_-p*w*F,this._y=p*w*_+b*m*F,this._z=p*m*F-b*w*_,this._w=p*m*_+b*w*F;break;case"YZX":this._x=b*m*_+p*w*F,this._y=p*w*_+b*m*F,this._z=p*m*F-b*w*_,this._w=p*m*_-b*w*F;break;case"XZY":this._x=b*m*_-p*w*F,this._y=p*w*_-b*m*F,this._z=p*m*F+b*w*_,this._w=p*m*_+b*w*F;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+l)}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],s=e[8],l=e[1],u=e[5],f=e[9],p=e[2],m=e[6],_=e[10],b=i+u+_;if(b>0){const w=.5/Math.sqrt(b+1);this._w=.25/w,this._x=(m-f)*w,this._y=(s-p)*w,this._z=(l-r)*w}else if(i>u&&i>_){const w=2*Math.sqrt(1+i-u-_);this._w=(m-f)/w,this._x=.25*w,this._y=(r+l)/w,this._z=(s+p)/w}else if(u>_){const w=2*Math.sqrt(1+u-i-_);this._w=(s-p)/w,this._x=(r+l)/w,this._y=.25*w,this._z=(f+m)/w}else{const w=2*Math.sqrt(1+_-i-u);this._w=(l-r)/w,this._x=(s+p)/w,this._y=(f+m)/w,this._z=.25*w}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(is(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,s=t._z,l=t._w,u=e._x,f=e._y,p=e._z,m=e._w;return this._x=i*m+l*u+r*p-s*f,this._y=r*m+l*f+s*u-i*p,this._z=s*m+l*p+i*f-r*u,this._w=l*m-i*u-r*f-s*p,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,s=this._z,l=this._w;let u=l*t._w+i*t._x+r*t._y+s*t._z;if(u<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,u=-u):this.copy(t),u>=1)return this._w=l,this._x=i,this._y=r,this._z=s,this;const f=1-u*u;if(f<=Number.EPSILON){const w=1-e;return this._w=w*l+e*this._w,this._x=w*i+e*this._x,this._y=w*r+e*this._y,this._z=w*s+e*this._z,this.normalize(),this}const p=Math.sqrt(f),m=Math.atan2(p,u),_=Math.sin((1-e)*m)/p,b=Math.sin(e*m)/p;return this._w=l*_+this._w*b,this._x=i*_+this._x*b,this._y=r*_+this._y*b,this._z=s*_+this._z*b,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),s=Math.sqrt(i);return this.set(r*Math.sin(t),r*Math.cos(t),s*Math.sin(e),s*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 pe{constructor(t=0,e=0,i=0){pe.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(uS.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(uS.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,i=this.y,r=this.z,s=t.elements;return this.x=s[0]*e+s[3]*i+s[6]*r,this.y=s[1]*e+s[4]*i+s[7]*r,this.z=s[2]*e+s[5]*i+s[8]*r,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,i=this.y,r=this.z,s=t.elements,l=1/(s[3]*e+s[7]*i+s[11]*r+s[15]);return this.x=(s[0]*e+s[4]*i+s[8]*r+s[12])*l,this.y=(s[1]*e+s[5]*i+s[9]*r+s[13])*l,this.z=(s[2]*e+s[6]*i+s[10]*r+s[14])*l,this}applyQuaternion(t){const e=this.x,i=this.y,r=this.z,s=t.x,l=t.y,u=t.z,f=t.w,p=2*(l*r-u*i),m=2*(u*e-s*r),_=2*(s*i-l*e);return this.x=e+f*p+l*_-u*m,this.y=i+f*m+u*p-s*_,this.z=r+f*_+s*m-l*p,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,s=t.elements;return this.x=s[0]*e+s[4]*i+s[8]*r,this.y=s[1]*e+s[5]*i+s[9]*r,this.z=s[2]*e+s[6]*i+s[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,s=t.z,l=e.x,u=e.y,f=e.z;return this.x=r*f-s*u,this.y=s*l-i*f,this.z=i*u-r*l,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 xw.copy(this).projectOnVector(t),this.sub(xw)}reflect(t){return this.sub(xw.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(is(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 xw=new pe,uS=new Pa;class Qs{constructor(t=new pe(1/0,1/0,1/0),e=new pe(-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,Fd),Fd.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(Cw),Ib.subVectors(this.max,Cw),Sb.subVectors(t.a,Cw),Bg.subVectors(t.b,Cw),Tb.subVectors(t.c,Cw),Up.subVectors(Bg,Sb),jh.subVectors(Tb,Bg),Vp.subVectors(Sb,Tb);let e=[0,-Up.z,Up.y,0,-jh.z,jh.y,0,-Vp.z,Vp.y,Up.z,0,-Up.x,jh.z,0,-jh.x,Vp.z,0,-Vp.x,-Up.y,Up.x,0,-jh.y,jh.x,0,-Vp.y,Vp.x,0];return!(!fS(e,Sb,Bg,Tb,Ib)||(e=[1,0,0,0,1,0,0,0,1],!fS(e,Sb,Bg,Tb,Ib)))&&(Mw.crossVectors(Up,jh),e=[Mw.x,Mw.y,Mw.z],fS(e,Sb,Bg,Tb,Ib))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,Fd).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=.5*this.getSize(Fd).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()||(rc[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),rc[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),rc[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),rc[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),rc[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),rc[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),rc[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),rc[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(rc)),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 rc=[new pe,new pe,new pe,new pe,new pe,new pe,new pe,new pe],Fd=new pe,hS=new Qs,Sb=new pe,Bg=new pe,Tb=new pe,Up=new pe,jh=new pe,Vp=new pe,Cw=new pe,Ib=new pe,Mw=new pe,kg=new pe;function fS(n,t,e,i,r){for(let s=0,l=n.length-3;s<=l;s+=3){kg.fromArray(n,s);const u=r.x*Math.abs(kg.x)+r.y*Math.abs(kg.y)+r.z*Math.abs(kg.z),f=t.dot(kg),p=e.dot(kg),m=i.dot(kg);if(Math.max(-Math.max(f,p,m),Math.min(f,p,m))>u)return!1}return!0}const qB=new Qs,Fb=new pe,pS=new pe;class Js{constructor(t=new pe,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):qB.setFromPoints(t).getCenter(i);let r=0;for(let s=0,l=t.length;sthis.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;Fb.subVectors(t,this.center);const e=Fb.lengthSq();if(e>this.radius*this.radius){const i=Math.sqrt(e),r=.5*(i-this.radius);this.center.addScaledVector(Fb,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):(pS.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(Fb.copy(t.center).add(pS)),this.expandByPoint(Fb.copy(t.center).sub(pS))),this)}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Bu=new pe,AS=new pe,Db=new pe,ku=new pe,WB=new pe,Ew=new pe,mS=new pe;class Hp{constructor(t=new pe,e=new pe(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,Bu)),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=Bu.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(Bu.copy(this.origin).addScaledVector(this.direction,e),Bu.distanceToSquared(t))}distanceSqToSegment(t,e,i,r){AS.copy(t).add(e).multiplyScalar(.5),Db.copy(e).sub(t).normalize(),ku.copy(this.origin).sub(AS);const s=.5*t.distanceTo(e),l=-this.direction.dot(Db),u=ku.dot(this.direction),f=-ku.dot(Db),p=ku.lengthSq(),m=Math.abs(1-l*l);let _,b,w,F;if(m>0)if(_=l*f-u,b=l*u-f,F=s*m,_>=0)if(b>=-F)if(b<=F){const D=1/m;_*=D,b*=D,w=_*(_+l*b+2*u)+b*(l*_+b+2*f)+p}else b=s,_=Math.max(0,-(l*b+u)),w=-_*_+b*(b+2*f)+p;else b=-s,_=Math.max(0,-(l*b+u)),w=-_*_+b*(b+2*f)+p;else b<=-F?(_=Math.max(0,-(-l*s+u)),b=_>0?-s:Math.min(Math.max(-s,-f),s),w=-_*_+b*(b+2*f)+p):b<=F?(_=0,b=Math.min(Math.max(-s,-f),s),w=b*(b+2*f)+p):(_=Math.max(0,-(l*s+u)),b=_>0?s:Math.min(Math.max(-s,-f),s),w=-_*_+b*(b+2*f)+p);else b=l>0?-s:s,_=Math.max(0,-(l*b+u)),w=-_*_+b*(b+2*f)+p;return i&&i.copy(this.origin).addScaledVector(this.direction,_),r&&r.copy(AS).addScaledVector(Db,b),w}intersectSphere(t,e){Bu.subVectors(t.center,this.origin);const i=Bu.dot(this.direction),r=Bu.dot(Bu)-i*i,s=t.radius*t.radius;if(r>s)return null;const l=Math.sqrt(s-r),u=i-l,f=i+l;return f<0?null:this.at(u<0?f:u,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,s,l,u,f;const p=1/this.direction.x,m=1/this.direction.y,_=1/this.direction.z,b=this.origin;return p>=0?(i=(t.min.x-b.x)*p,r=(t.max.x-b.x)*p):(i=(t.max.x-b.x)*p,r=(t.min.x-b.x)*p),m>=0?(s=(t.min.y-b.y)*m,l=(t.max.y-b.y)*m):(s=(t.max.y-b.y)*m,l=(t.min.y-b.y)*m),i>l||s>r||((s>i||isNaN(i))&&(i=s),(l=0?(u=(t.min.z-b.z)*_,f=(t.max.z-b.z)*_):(u=(t.max.z-b.z)*_,f=(t.min.z-b.z)*_),i>f||u>r)||((u>i||i!=i)&&(i=u),(f=0?i:r,e)}intersectsBox(t){return null!==this.intersectBox(t,Bu)}intersectTriangle(t,e,i,r,s){WB.subVectors(e,t),Ew.subVectors(i,t),mS.crossVectors(WB,Ew);let u,l=this.direction.dot(mS);if(l>0){if(r)return null;u=1}else{if(!(l<0))return null;u=-1,l=-l}ku.subVectors(this.origin,t);const f=u*this.direction.dot(Ew.crossVectors(ku,Ew));if(f<0)return null;const p=u*this.direction.dot(WB.cross(ku));if(p<0||f+p>l)return null;const m=-u*ku.dot(mS);return m<0?null:this.at(m/l,s)}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 zi{constructor(t,e,i,r,s,l,u,f,p,m,_,b,w,F,D,T){zi.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,s,l,u,f,p,m,_,b,w,F,D,T)}set(t,e,i,r,s,l,u,f,p,m,_,b,w,F,D,T){const I=this.elements;return I[0]=t,I[4]=e,I[8]=i,I[12]=r,I[1]=s,I[5]=l,I[9]=u,I[13]=f,I[2]=p,I[6]=m,I[10]=_,I[14]=b,I[3]=w,I[7]=F,I[11]=D,I[15]=T,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 zi).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/Qp.setFromMatrixColumn(t,0).length(),s=1/Qp.setFromMatrixColumn(t,1).length(),l=1/Qp.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]*s,e[5]=i[5]*s,e[6]=i[6]*s,e[7]=0,e[8]=i[8]*l,e[9]=i[9]*l,e[10]=i[10]*l,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,s=t.z,l=Math.cos(i),u=Math.sin(i),f=Math.cos(r),p=Math.sin(r),m=Math.cos(s),_=Math.sin(s);if("XYZ"===t.order){const b=l*m,w=l*_,F=u*m,D=u*_;e[0]=f*m,e[4]=-f*_,e[8]=p,e[1]=w+F*p,e[5]=b-D*p,e[9]=-u*f,e[2]=D-b*p,e[6]=F+w*p,e[10]=l*f}else if("YXZ"===t.order){const b=f*m,w=f*_,F=p*m,D=p*_;e[0]=b+D*u,e[4]=F*u-w,e[8]=l*p,e[1]=l*_,e[5]=l*m,e[9]=-u,e[2]=w*u-F,e[6]=D+b*u,e[10]=l*f}else if("ZXY"===t.order){const b=f*m,w=f*_,F=p*m,D=p*_;e[0]=b-D*u,e[4]=-l*_,e[8]=F+w*u,e[1]=w+F*u,e[5]=l*m,e[9]=D-b*u,e[2]=-l*p,e[6]=u,e[10]=l*f}else if("ZYX"===t.order){const b=l*m,w=l*_,F=u*m,D=u*_;e[0]=f*m,e[4]=F*p-w,e[8]=b*p+D,e[1]=f*_,e[5]=D*p+b,e[9]=w*p-F,e[2]=-p,e[6]=u*f,e[10]=l*f}else if("YZX"===t.order){const b=l*f,w=l*p,F=u*f,D=u*p;e[0]=f*m,e[4]=D-b*_,e[8]=F*_+w,e[1]=_,e[5]=l*m,e[9]=-u*m,e[2]=-p*m,e[6]=w*_+F,e[10]=b-D*_}else if("XZY"===t.order){const b=l*f,w=l*p,F=u*f,D=u*p;e[0]=f*m,e[4]=-_,e[8]=p*m,e[1]=b*_+D,e[5]=l*m,e[9]=w*_-F,e[2]=F*_-w,e[6]=u*m,e[10]=D*_+b}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(h5,t,XB)}lookAt(t,e,i){const r=this.elements;return Ml.subVectors(t,e),0===Ml.lengthSq()&&(Ml.z=1),Ml.normalize(),Ru.crossVectors(i,Ml),0===Ru.lengthSq()&&(1===Math.abs(i.z)?Ml.x+=1e-4:Ml.z+=1e-4,Ml.normalize(),Ru.crossVectors(i,Ml)),Ru.normalize(),gS.crossVectors(Ml,Ru),r[0]=Ru.x,r[4]=gS.x,r[8]=Ml.x,r[1]=Ru.y,r[5]=gS.y,r[9]=Ml.y,r[2]=Ru.z,r[6]=gS.z,r[10]=Ml.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,s=this.elements,l=i[0],u=i[4],f=i[8],p=i[12],m=i[1],_=i[5],b=i[9],w=i[13],F=i[2],D=i[6],T=i[10],I=i[14],O=i[3],R=i[7],P=i[11],ee=i[15],J=r[0],te=r[4],ie=r[8],W=r[12],q=r[1],le=r[5],ke=r[9],Ue=r[13],ce=r[2],ze=r[6],Ce=r[10],Oe=r[14],Fe=r[3],ft=r[7],Et=r[11],kt=r[15];return s[0]=l*J+u*q+f*ce+p*Fe,s[4]=l*te+u*le+f*ze+p*ft,s[8]=l*ie+u*ke+f*Ce+p*Et,s[12]=l*W+u*Ue+f*Oe+p*kt,s[1]=m*J+_*q+b*ce+w*Fe,s[5]=m*te+_*le+b*ze+w*ft,s[9]=m*ie+_*ke+b*Ce+w*Et,s[13]=m*W+_*Ue+b*Oe+w*kt,s[2]=F*J+D*q+T*ce+I*Fe,s[6]=F*te+D*le+T*ze+I*ft,s[10]=F*ie+D*ke+T*Ce+I*Et,s[14]=F*W+D*Ue+T*Oe+I*kt,s[3]=O*J+R*q+P*ce+ee*Fe,s[7]=O*te+R*le+P*ze+ee*ft,s[11]=O*ie+R*ke+P*Ce+ee*Et,s[15]=O*W+R*Ue+P*Oe+ee*kt,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],s=t[12],l=t[1],u=t[5],f=t[9],p=t[13],m=t[2],_=t[6],b=t[10],w=t[14];return t[3]*(+s*f*_-r*p*_-s*u*b+i*p*b+r*u*w-i*f*w)+t[7]*(+e*f*w-e*p*b+s*l*b-r*l*w+r*p*m-s*f*m)+t[11]*(+e*p*_-e*u*w-s*l*_+i*l*w+s*u*m-i*p*m)+t[15]*(-r*u*m-e*f*_+e*u*b+r*l*_-i*l*b+i*f*m)}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],s=t[3],l=t[4],u=t[5],f=t[6],p=t[7],m=t[8],_=t[9],b=t[10],w=t[11],F=t[12],D=t[13],T=t[14],I=t[15],O=_*T*p-D*b*p+D*f*w-u*T*w-_*f*I+u*b*I,R=F*b*p-m*T*p-F*f*w+l*T*w+m*f*I-l*b*I,P=m*D*p-F*_*p+F*u*w-l*D*w-m*u*I+l*_*I,ee=F*_*f-m*D*f-F*u*b+l*D*b+m*u*T-l*_*T,J=e*O+i*R+r*P+s*ee;if(0===J)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const te=1/J;return t[0]=O*te,t[1]=(D*b*s-_*T*s-D*r*w+i*T*w+_*r*I-i*b*I)*te,t[2]=(u*T*s-D*f*s+D*r*p-i*T*p-u*r*I+i*f*I)*te,t[3]=(_*f*s-u*b*s-_*r*p+i*b*p+u*r*w-i*f*w)*te,t[4]=R*te,t[5]=(m*T*s-F*b*s+F*r*w-e*T*w-m*r*I+e*b*I)*te,t[6]=(F*f*s-l*T*s-F*r*p+e*T*p+l*r*I-e*f*I)*te,t[7]=(l*b*s-m*f*s+m*r*p-e*b*p-l*r*w+e*f*w)*te,t[8]=P*te,t[9]=(F*_*s-m*D*s-F*i*w+e*D*w+m*i*I-e*_*I)*te,t[10]=(l*D*s-F*u*s+F*i*p-e*D*p-l*i*I+e*u*I)*te,t[11]=(m*u*s-l*_*s-m*i*p+e*_*p+l*i*w-e*u*w)*te,t[12]=ee*te,t[13]=(m*D*r-F*_*r+F*i*b-e*D*b-m*i*T+e*_*T)*te,t[14]=(F*u*r-l*D*r-F*i*f+e*D*f+l*i*T-e*u*T)*te,t[15]=(l*_*r-m*u*r+m*i*f-e*_*f-l*i*b+e*u*b)*te,this}scale(t){const e=this.elements,i=t.x,r=t.y,s=t.z;return e[0]*=i,e[4]*=r,e[8]*=s,e[1]*=i,e[5]*=r,e[9]*=s,e[2]*=i,e[6]*=r,e[10]*=s,e[3]*=i,e[7]*=r,e[11]*=s,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),s=1-i,l=t.x,u=t.y,f=t.z,p=s*l,m=s*u;return this.set(p*l+i,p*u-r*f,p*f+r*u,0,p*u+r*f,m*u+i,m*f-r*l,0,p*f-r*u,m*f+r*l,s*f*f+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,s,l){return this.set(1,i,s,0,t,1,l,0,e,r,1,0,0,0,0,1),this}compose(t,e,i){const r=this.elements,s=e._x,l=e._y,u=e._z,f=e._w,p=s+s,m=l+l,_=u+u,b=s*p,w=s*m,F=s*_,D=l*m,T=l*_,I=u*_,O=f*p,R=f*m,P=f*_,ee=i.x,J=i.y,te=i.z;return r[0]=(1-(D+I))*ee,r[1]=(w+P)*ee,r[2]=(F-R)*ee,r[3]=0,r[4]=(w-P)*J,r[5]=(1-(b+I))*J,r[6]=(T+O)*J,r[7]=0,r[8]=(F+R)*te,r[9]=(T-O)*te,r[10]=(1-(b+D))*te,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 s=Qp.set(r[0],r[1],r[2]).length();const l=Qp.set(r[4],r[5],r[6]).length(),u=Qp.set(r[8],r[9],r[10]).length();this.determinant()<0&&(s=-s),t.x=r[12],t.y=r[13],t.z=r[14],oc.copy(this);const p=1/s,m=1/l,_=1/u;return oc.elements[0]*=p,oc.elements[1]*=p,oc.elements[2]*=p,oc.elements[4]*=m,oc.elements[5]*=m,oc.elements[6]*=m,oc.elements[8]*=_,oc.elements[9]*=_,oc.elements[10]*=_,e.setFromRotationMatrix(oc),i.x=s,i.y=l,i.z=u,this}makePerspective(t,e,i,r,s,l,u=ka){const f=this.elements,p=2*s/(e-t),m=2*s/(i-r),_=(e+t)/(e-t),b=(i+r)/(i-r);let w,F;if(u===ka)w=-(l+s)/(l-s),F=-2*l*s/(l-s);else{if(2001!==u)throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+u);w=-l/(l-s),F=-l*s/(l-s)}return f[0]=p,f[4]=0,f[8]=_,f[12]=0,f[1]=0,f[5]=m,f[9]=b,f[13]=0,f[2]=0,f[6]=0,f[10]=w,f[14]=F,f[3]=0,f[7]=0,f[11]=-1,f[15]=0,this}makeOrthographic(t,e,i,r,s,l,u=ka){const f=this.elements,p=1/(e-t),m=1/(i-r),_=1/(l-s),b=(e+t)*p,w=(i+r)*m;let F,D;if(u===ka)F=(l+s)*_,D=-2*_;else{if(2001!==u)throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+u);F=s*_,D=-1*_}return f[0]=2*p,f[4]=0,f[8]=0,f[12]=-b,f[1]=0,f[5]=2*m,f[9]=0,f[13]=-w,f[2]=0,f[6]=0,f[10]=D,f[14]=-F,f[3]=0,f[7]=0,f[11]=0,f[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 Qp=new pe,oc=new zi,h5=new pe(0,0,0),XB=new pe(1,1,1),Ru=new pe,gS=new pe,Ml=new pe,Rg=new zi,Sw=new Pa;let Dd=(()=>{class n{constructor(e=0,i=0,r=0,s=n.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=i,this._z=r,this._order=s}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,s=this._order){return this._x=e,this._y=i,this._z=r,this._order=s,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 s=e.elements,l=s[0],u=s[4],f=s[8],p=s[1],m=s[5],_=s[9],b=s[2],w=s[6],F=s[10];switch(i){case"XYZ":this._y=Math.asin(is(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(-_,F),this._z=Math.atan2(-u,l)):(this._x=Math.atan2(w,m),this._z=0);break;case"YXZ":this._x=Math.asin(-is(_,-1,1)),Math.abs(_)<.9999999?(this._y=Math.atan2(f,F),this._z=Math.atan2(p,m)):(this._y=Math.atan2(-b,l),this._z=0);break;case"ZXY":this._x=Math.asin(is(w,-1,1)),Math.abs(w)<.9999999?(this._y=Math.atan2(-b,F),this._z=Math.atan2(-u,m)):(this._y=0,this._z=Math.atan2(p,l));break;case"ZYX":this._y=Math.asin(-is(b,-1,1)),Math.abs(b)<.9999999?(this._x=Math.atan2(w,F),this._z=Math.atan2(p,l)):(this._x=0,this._z=Math.atan2(-u,m));break;case"YZX":this._z=Math.asin(is(p,-1,1)),Math.abs(p)<.9999999?(this._x=Math.atan2(-_,m),this._y=Math.atan2(-b,l)):(this._x=0,this._y=Math.atan2(f,F));break;case"XZY":this._z=Math.asin(-is(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(w,m),this._y=Math.atan2(f,l)):(this._x=Math.atan2(-_,F),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 Rg.makeRotationFromQuaternion(e),this.setFromRotationMatrix(Rg,i,r)}setFromVector3(e,i=this._order){return this.set(e.x,e.y,e.z,i)}reorder(e){return Sw.setFromEuler(this),this.setFromQuaternion(Sw,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 _S{constructor(){this.mask=1}set(t){this.mask=1<>>0}enable(t){this.mask|=1<{class n extends Nc{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:f5++}),this.uuid=fa(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=n.DEFAULT_UP.clone();const e=new pe,i=new Dd,r=new Pa,s=new pe(1,1,1);i._onChange(function l(){r.setFromEuler(i,!1)}),r._onChange(function u(){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:s},modelViewMatrix:{value:new zi},normalMatrix:{value:new Ki}}),this.matrix=new zi,this.matrixWorld=new zi,this.matrixAutoUpdate=n.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=n.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new _S,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 Pg.setFromAxisAngle(e,i),this.quaternion.multiply(Pg),this}rotateOnWorldAxis(e,i){return Pg.setFromAxisAngle(e,i),this.quaternion.premultiply(Pg),this}rotateX(e){return this.rotateOnAxis(KB,e)}rotateY(e){return this.rotateOnAxis(A5,e)}rotateZ(e){return this.rotateOnAxis(YB,e)}translateOnAxis(e,i){return Bb.copy(e).applyQuaternion(this.quaternion),this.position.add(Bb.multiplyScalar(i)),this}translateX(e){return this.translateOnAxis(KB,e)}translateY(e){return this.translateOnAxis(A5,e)}translateZ(e){return this.translateOnAxis(YB,e)}localToWorld(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(this.matrixWorld)}worldToLocal(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(Pu.copy(this.matrixWorld).invert())}lookAt(e,i,r){e.isVector3?kb.copy(e):kb.set(e,i,r);const s=this.parent;this.updateWorldMatrix(!0,!1),Og.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Pu.lookAt(Og,kb,this.up):Pu.lookAt(kb,Og,this.up),this.quaternion.setFromRotationMatrix(Pu),s&&(Pu.extractRotation(s.matrixWorld),Pg.setFromRotationMatrix(Pu),this.quaternion.premultiply(Pg.invert()))}add(e){if(arguments.length>1){for(let i=0;i1){for(let r=0;r0&&(s.userData=this.userData),s.layers=this.layers.mask,s.matrix=this.matrix.toArray(),s.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(s.matrixAutoUpdate=!1),this.isInstancedMesh&&(s.type="InstancedMesh",s.count=this.count,s.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(s.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(s.type="BatchedMesh",s.perObjectFrustumCulled=this.perObjectFrustumCulled,s.sortObjects=this.sortObjects,s.drawRanges=this._drawRanges,s.reservedRanges=this._reservedRanges,s.visibility=this._visibility,s.active=this._active,s.bounds=this._bounds.map(f=>({boxInitialized:f.boxInitialized,boxMin:f.box.min.toArray(),boxMax:f.box.max.toArray(),sphereInitialized:f.sphereInitialized,sphereRadius:f.sphere.radius,sphereCenter:f.sphere.center.toArray()})),s.maxInstanceCount=this._maxInstanceCount,s.maxVertexCount=this._maxVertexCount,s.maxIndexCount=this._maxIndexCount,s.geometryInitialized=this._geometryInitialized,s.geometryCount=this._geometryCount,s.matricesTexture=this._matricesTexture.toJSON(e),null!==this._colorsTexture&&(s.colorsTexture=this._colorsTexture.toJSON(e)),null!==this.boundingSphere&&(s.boundingSphere={center:s.boundingSphere.center.toArray(),radius:s.boundingSphere.radius}),null!==this.boundingBox&&(s.boundingBox={min:s.boundingBox.min.toArray(),max:s.boundingBox.max.toArray()})),this.isScene)this.background&&(this.background.isColor?s.background=this.background.toJSON():this.background.isTexture&&(s.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(s.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){s.geometry=l(e.geometries,this.geometry);const f=this.geometry.parameters;if(void 0!==f&&void 0!==f.shapes){const p=f.shapes;if(Array.isArray(p))for(let m=0,_=p.length;m<_;m++)l(e.shapes,p[m]);else l(e.shapes,p)}}if(this.isSkinnedMesh&&(s.bindMode=this.bindMode,s.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(l(e.skeletons,this.skeleton),s.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const f=[];for(let p=0,m=this.material.length;p0){s.children=[];for(let f=0;f0){s.animations=[];for(let f=0;f0&&(r.geometries=f),p.length>0&&(r.materials=p),m.length>0&&(r.textures=m),_.length>0&&(r.images=_),b.length>0&&(r.shapes=b),w.length>0&&(r.skeletons=w),F.length>0&&(r.animations=F),D.length>0&&(r.nodes=D)}return r.object=s,r;function u(f){const p=[];for(const m in f){const _=f[m];delete _.metadata,p.push(_)}return p}}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(s)):r.set(0,0,0)}static getBarycoord(t,e,i,r,s){Lc.subVectors(r,e),$h.subVectors(i,e),ZB.subVectors(t,e);const l=Lc.dot(Lc),u=Lc.dot($h),f=Lc.dot(ZB),p=$h.dot($h),m=$h.dot(ZB),_=l*p-u*u;if(0===_)return s.set(0,0,0),null;const b=1/_,w=(p*f-u*m)*b,F=(l*m-u*f)*b;return s.set(1-w-F,F,w)}static containsPoint(t,e,i,r){return null!==this.getBarycoord(t,e,i,r,qh)&&qh.x>=0&&qh.y>=0&&qh.x+qh.y<=1}static getInterpolation(t,e,i,r,s,l,u,f){return null===this.getBarycoord(t,e,i,r,qh)?(f.x=0,f.y=0,"z"in f&&(f.z=0),"w"in f&&(f.w=0),null):(f.setScalar(0),f.addScaledVector(s,qh.x),f.addScaledVector(l,qh.y),f.addScaledVector(u,qh.z),f)}static isFrontFacing(t,e,i,r){return Lc.subVectors(i,e),$h.subVectors(t,e),Lc.cross($h).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 Lc.subVectors(this.c,this.b),$h.subVectors(this.a,this.b),.5*Lc.cross($h).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Uc.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Uc.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,i,r,s){return Uc.getInterpolation(t,this.a,this.b,this.c,e,i,r,s)}containsPoint(t){return Uc.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Uc.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const i=this.a,r=this.b,s=this.c;let l,u;Pb.subVectors(r,i),Ob.subVectors(s,i),ek.subVectors(t,i);const f=Pb.dot(ek),p=Ob.dot(ek);if(f<=0&&p<=0)return e.copy(i);tk.subVectors(t,r);const m=Pb.dot(tk),_=Ob.dot(tk);if(m>=0&&_<=m)return e.copy(r);const b=f*_-m*p;if(b<=0&&f>=0&&m<=0)return l=f/(f-m),e.copy(i).addScaledVector(Pb,l);nk.subVectors(t,s);const w=Pb.dot(nk),F=Ob.dot(nk);if(F>=0&&w<=F)return e.copy(s);const D=w*p-f*F;if(D<=0&&p>=0&&F<=0)return u=p/(p-F),e.copy(i).addScaledVector(Ob,u);const T=m*F-w*_;if(T<=0&&_-m>=0&&w-F>=0)return JB.subVectors(s,r),u=(_-m)/(_-m+(w-F)),e.copy(r).addScaledVector(JB,u);const I=1/(T+D+b);return l=D*I,u=b*I,e.copy(i).addScaledVector(Pb,l).addScaledVector(Ob,u)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}const ik={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},Wh={h:0,s:0,l:0},Tw={h:0,s:0,l:0};function vS(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 _n{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,Nr.toWorkingColorSpace(this,e),this}setRGB(t,e,i,r=Nr.workingColorSpace){return this.r=t,this.g=e,this.b=i,Nr.toWorkingColorSpace(this,r),this}setHSL(t,e,i,r=Nr.workingColorSpace){if(t=function RB(n,t){return(n%t+t)%t}(t,1),e=is(e,0,1),i=is(i,0,1),0===e)this.r=this.g=this.b=i;else{const s=i<=.5?i*(1+e):i+e-i*e,l=2*i-s;this.r=vS(l,s,t+1/3),this.g=vS(l,s,t),this.b=vS(l,s,t-1/3)}return Nr.toWorkingColorSpace(this,r),this}setStyle(t,e=Oc){function i(s){void 0!==s&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(t)){let s;const u=r[2];switch(r[1]){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return i(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,e);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return i(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,e);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return i(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,e);break;default:console.warn("THREE.Color: Unknown color model "+t)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(t)){const s=r[1],l=s.length;if(3===l)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,e);if(6===l)return this.setHex(parseInt(s,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=ik[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=Lp(t.r),this.g=Lp(t.g),this.b=Lp(t.b),this}copyLinearToSRGB(t){return this.r=vw(t.r),this.g=vw(t.g),this.b=vw(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=Oc){return Nr.fromWorkingColorSpace(pa.copy(this),t),65536*Math.round(is(255*pa.r,0,255))+256*Math.round(is(255*pa.g,0,255))+Math.round(is(255*pa.b,0,255))}getHexString(t=Oc){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=Nr.workingColorSpace){Nr.fromWorkingColorSpace(pa.copy(this),e);const i=pa.r,r=pa.g,s=pa.b,l=Math.max(i,r,s),u=Math.min(i,r,s);let f,p;const m=(u+l)/2;if(u===l)f=0,p=0;else{const _=l-u;switch(p=m<=.5?_/(l+u):_/(2-l-u),l){case i:f=(r-s)/_+(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(s){const l=[];for(const u in s){const f=s[u];delete f.metadata,l.push(f)}return l}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!==Op&&(i.stencilFail=this.stencilFail),this.stencilZFail!==Op&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==Op&&(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 s=r(t.textures),l=r(t.images);s.length>0&&(i.textures=s),l.length>0&&(i.images=l)}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 s=0;s!==r;++s)i[s]=e[s].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 Xh extends Ka{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new _n(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 Dd,this.combine=K1,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 A=new pe,g=new At;class x{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=xl,this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}get updateRange(){return Ig("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,s=this.itemSize;r0&&(t.userData=this.userData),void 0!==this.parameters){const f=this.parameters;for(const p in f)void 0!==f[p]&&(t[p]=f[p]);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 f in i)t.data.attributes[f]=i[f].toJSON(t.data);const r={};let s=!1;for(const f in this.morphAttributes){const p=this.morphAttributes[f],m=[];for(let _=0,b=p.length;_0&&(r[f]=m,s=!0)}s&&(t.data.morphAttributes=r,t.data.morphTargetsRelative=this.morphTargetsRelative);const l=this.groups;l.length>0&&(t.data.groups=JSON.parse(JSON.stringify(l)));const u=this.boundingSphere;return null!==u&&(t.data.boundingSphere={center:u.center.toArray(),radius:u.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 p in r)this.setAttribute(p,r[p].clone(e));const s=t.morphAttributes;for(const p in s){const m=[],_=s[p];for(let b=0,w=_.length;b0){const r=e[i[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,l=r.length;s(t.far-t.near)**2))&&(zp.copy(s).invert(),Yh.copy(t.ray).applyMatrix4(zp),(null===i.boundingBox||!1!==Yh.intersectsBox(i.boundingBox))&&this._computeIntersections(t,e,Yh)))}_computeIntersections(t,e,i){let r;const s=this.geometry,l=this.material,u=s.index,f=s.attributes.position,p=s.attributes.uv,m=s.attributes.uv1,_=s.attributes.normal,b=s.groups,w=s.drawRange;if(null!==u)if(Array.isArray(l))for(let F=0,D=b.length;Fe.far?null:{distance:p,point:uk.clone(),object:n}}(n,t,e,i,Iw,Fw,Dw,dk);if(m){r&&(ak.fromBufferAttribute(r,u),lk.fromBufferAttribute(r,f),ck.fromBufferAttribute(r,p),m.uv=Uc.getInterpolation(dk,Iw,Fw,Dw,ak,lk,ck,new At)),s&&(ak.fromBufferAttribute(s,u),lk.fromBufferAttribute(s,f),ck.fromBufferAttribute(s,p),m.uv1=Uc.getInterpolation(dk,Iw,Fw,Dw,ak,lk,ck,new At)),l&&(rQ.fromBufferAttribute(l,u),oQ.fromBufferAttribute(l,f),sQ.fromBufferAttribute(l,p),m.normal=Uc.getInterpolation(dk,Iw,Fw,Dw,rQ,oQ,sQ,new pe),m.normal.dot(i.direction)>0&&m.normal.multiplyScalar(-1));const _={a:u,b:f,c:p,normal:new pe,materialIndex:0};Uc.getNormal(Iw,Fw,Dw,_.normal),m.face=_}return m}class Vc extends fi{constructor(t=1,e=1,i=1,r=1,s=1,l=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:i,widthSegments:r,heightSegments:s,depthSegments:l};const u=this;r=Math.floor(r),s=Math.floor(s),l=Math.floor(l);const f=[],p=[],m=[],_=[];let b=0,w=0;function F(D,T,I,O,R,P,ee,J,te,ie,W){const q=P/te,le=ee/ie,ke=P/2,Ue=ee/2,ce=J/2,ze=te+1,Ce=ie+1;let Oe=0,Fe=0;const ft=new pe;for(let Et=0;Et0?1:-1,m.push(ft.x,ft.y,ft.z),_.push(nn/te),_.push(1-Et/ie),Oe+=1}for(let Et=0;Et0&&(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 b5 extends ko{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new zi,this.projectionMatrix=new zi,this.projectionMatrixInverse=new zi,this.coordinateSystem=ka}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 Ng=new pe,lQ=new At,cQ=new At;class ea extends b5{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*zh*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*Fu*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*zh*Math.atan(Math.tan(.5*Fu*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){Ng.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),e.set(Ng.x,Ng.y).multiplyScalar(-t/Ng.z),Ng.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Ng.x,Ng.y).multiplyScalar(-t/Ng.z)}getViewSize(t,e){return this.getViewBounds(t,lQ,cQ),e.subVectors(cQ,lQ)}setViewOffset(t,e,i,r,s,l){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=s,this.view.height=l,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*Fu*this.fov)/this.zoom,i=2*e,r=this.aspect*i,s=-.5*r;const l=this.view;if(null!==this.view&&this.view.enabled){const f=l.fullWidth,p=l.fullHeight;s+=l.offsetX*r/f,e-=l.offsetY*i/p,r*=l.width/f,i*=l.height/p}const u=this.filmOffset;0!==u&&(s+=t*u/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+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 uZ extends ko{constructor(t,e,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new ea(-90,1,t,e);r.layers=this.layers,this.add(r);const s=new ea(-90,1,t,e);s.layers=this.layers,this.add(s);const l=new ea(-90,1,t,e);l.layers=this.layers,this.add(l);const u=new ea(-90,1,t,e);u.layers=this.layers,this.add(u);const f=new ea(-90,1,t,e);f.layers=this.layers,this.add(f);const p=new ea(-90,1,t,e);p.layers=this.layers,this.add(p)}updateCoordinateSystem(){const t=this.coordinateSystem,e=this.children.concat(),[i,r,s,l,u,f]=e;for(const p of e)this.remove(p);if(t===ka)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),l.up.set(0,0,1),l.lookAt(0,-1,0),u.up.set(0,1,0),u.lookAt(0,0,1),f.up.set(0,1,0),f.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),s.up.set(0,0,1),s.lookAt(0,1,0),l.up.set(0,0,-1),l.lookAt(0,-1,0),u.up.set(0,-1,0),u.lookAt(0,0,1),f.up.set(0,-1,0),f.lookAt(0,0,-1)}for(const p of e)this.add(p),p.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[s,l,u,f,p,m]=this.children,_=t.getRenderTarget(),b=t.getActiveCubeFace(),w=t.getActiveMipmapLevel(),F=t.xr.enabled;t.xr.enabled=!1;const D=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,t.setRenderTarget(i,0,r),t.render(e,s),t.setRenderTarget(i,1,r),t.render(e,l),t.setRenderTarget(i,2,r),t.render(e,u),t.setRenderTarget(i,3,r),t.render(e,f),t.setRenderTarget(i,4,r),t.render(e,p),i.texture.generateMipmaps=D,t.setRenderTarget(i,5,r),t.render(e,m),t.setRenderTarget(_,b,w),t.xr.enabled=F,i.texture.needsPMREMUpdate=!0}}class fk extends Is{constructor(t,e,i,r,s,l,u,f,p,m){super(t=void 0!==t?t:[],e=void 0!==e?e:Su,i,r,s,l,u,f,p,m),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class hZ extends Cl{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const i={width:t,height:t,depth:1};this.texture=new fk([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:Ts}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 Vc(5,5,5),s=new sc({name:"CubemapFromEquirect",uniforms:Bw(i_uniforms),vertexShader:i_vertexShader,fragmentShader:i_fragmentShader,side:1,blending:0});s.uniforms.tEquirect.value=e;const l=new cr(r,s),u=e.minFilter;return e.minFilter===Uh&&(e.minFilter=Ts),new uZ(1,10,this).update(t,l),e.minFilter=u,l.geometry.dispose(),l.material.dispose(),this}clear(t,e,i,r){const s=t.getRenderTarget();for(let l=0;l<6;l++)t.setRenderTarget(this,l),t.clear(e,i,r);t.setRenderTarget(s)}}const v5=new pe,fZ=new pe,pZ=new Ki;class Lg{constructor(t=new pe(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=v5.subVectors(i,e).cross(fZ.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(v5),r=this.normal.dot(i);if(0===r)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const s=-(t.start.dot(this.normal)+this.constant)/r;return s<0||s>1?null:e.copy(t.start).addScaledVector(i,s)}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||pZ.getNormalMatrix(t),r=this.coplanarPoint(v5).applyMatrix4(t),s=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(s),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 Nb=new Js,pk=new pe;class Ak{constructor(t=new Lg,e=new Lg,i=new Lg,r=new Lg,s=new Lg,l=new Lg){this.planes=[t,e,i,r,s,l]}set(t,e,i,r,s,l){const u=this.planes;return u[0].copy(t),u[1].copy(e),u[2].copy(i),u[3].copy(r),u[4].copy(s),u[5].copy(l),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=ka){const i=this.planes,r=t.elements,s=r[0],l=r[1],u=r[2],f=r[3],p=r[4],m=r[5],_=r[6],b=r[7],w=r[8],F=r[9],D=r[10],T=r[11],I=r[12],O=r[13],R=r[14],P=r[15];if(i[0].setComponents(f-s,b-p,T-w,P-I).normalize(),i[1].setComponents(f+s,b+p,T+w,P+I).normalize(),i[2].setComponents(f+l,b+m,T+F,P+O).normalize(),i[3].setComponents(f-l,b-m,T-F,P-O).normalize(),i[4].setComponents(f-u,b-_,T-D,P-R).normalize(),e===ka)i[5].setComponents(f+u,b+_,T+D,P+R).normalize();else{if(2001!==e)throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+e);i[5].setComponents(u,_,D,R).normalize()}return this}intersectsObject(t){if(void 0!==t.boundingSphere)null===t.boundingSphere&&t.computeBoundingSphere(),Nb.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{const e=t.geometry;null===e.boundingSphere&&e.computeBoundingSphere(),Nb.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(Nb)}intersectsSprite(t){return Nb.center.set(0,0,0),Nb.radius=.7071067811865476,Nb.applyMatrix4(t.matrixWorld),this.intersectsSphere(Nb)}intersectsSphere(t){const e=this.planes,i=t.center,r=-t.radius;for(let s=0;s<6;s++)if(e[s].distanceToPoint(i)0?t.max.x:t.min.x,pk.y=r.normal.y>0?t.max.y:t.min.y,pk.z=r.normal.z>0?t.max.z:t.min.z,r.distanceToPoint(pk)<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 dQ(){let n=null,t=!1,e=null,i=null;function r(s,l){e(s,l),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(s){e=s},setContext:function(s){n=s}}}function AZ(n){const t=new WeakMap;return{get:function r(u){return u.isInterleavedBufferAttribute&&(u=u.data),t.get(u)},remove:function s(u){u.isInterleavedBufferAttribute&&(u=u.data);const f=t.get(u);f&&(n.deleteBuffer(f.buffer),t.delete(u))},update:function l(u,f){if(u.isInterleavedBufferAttribute&&(u=u.data),u.isGLBufferAttribute){const m=t.get(u);return void((!m||m.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}"},Nn={common:{diffuse:{value:new _n(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Ki},alphaMap:{value:null},alphaMapTransform:{value:new Ki},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Ki}},envmap:{envMap:{value:null},envMapRotation:{value:new Ki},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Ki}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Ki}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Ki},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Ki},normalScale:{value:new At(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Ki},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Ki}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Ki}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Ki}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new _n(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 _n(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Ki},alphaTest:{value:0},uvTransform:{value:new Ki}},sprite:{diffuse:{value:new _n(16777215)},opacity:{value:1},center:{value:new At(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Ki},alphaMap:{value:null},alphaMapTransform:{value:new Ki},alphaTest:{value:0}}},Zh={basic:{uniforms:El([Nn.common,Nn.specularmap,Nn.envmap,Nn.aomap,Nn.lightmap,Nn.fog]),vertexShader:_r.meshbasic_vert,fragmentShader:_r.meshbasic_frag},lambert:{uniforms:El([Nn.common,Nn.specularmap,Nn.envmap,Nn.aomap,Nn.lightmap,Nn.emissivemap,Nn.bumpmap,Nn.normalmap,Nn.displacementmap,Nn.fog,Nn.lights,{emissive:{value:new _n(0)}}]),vertexShader:_r.meshlambert_vert,fragmentShader:_r.meshlambert_frag},phong:{uniforms:El([Nn.common,Nn.specularmap,Nn.envmap,Nn.aomap,Nn.lightmap,Nn.emissivemap,Nn.bumpmap,Nn.normalmap,Nn.displacementmap,Nn.fog,Nn.lights,{emissive:{value:new _n(0)},specular:{value:new _n(1118481)},shininess:{value:30}}]),vertexShader:_r.meshphong_vert,fragmentShader:_r.meshphong_frag},standard:{uniforms:El([Nn.common,Nn.envmap,Nn.aomap,Nn.lightmap,Nn.emissivemap,Nn.bumpmap,Nn.normalmap,Nn.displacementmap,Nn.roughnessmap,Nn.metalnessmap,Nn.fog,Nn.lights,{emissive:{value:new _n(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:_r.meshphysical_vert,fragmentShader:_r.meshphysical_frag},toon:{uniforms:El([Nn.common,Nn.aomap,Nn.lightmap,Nn.emissivemap,Nn.bumpmap,Nn.normalmap,Nn.displacementmap,Nn.gradientmap,Nn.fog,Nn.lights,{emissive:{value:new _n(0)}}]),vertexShader:_r.meshtoon_vert,fragmentShader:_r.meshtoon_frag},matcap:{uniforms:El([Nn.common,Nn.bumpmap,Nn.normalmap,Nn.displacementmap,Nn.fog,{matcap:{value:null}}]),vertexShader:_r.meshmatcap_vert,fragmentShader:_r.meshmatcap_frag},points:{uniforms:El([Nn.points,Nn.fog]),vertexShader:_r.points_vert,fragmentShader:_r.points_frag},dashed:{uniforms:El([Nn.common,Nn.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:_r.linedashed_vert,fragmentShader:_r.linedashed_frag},depth:{uniforms:El([Nn.common,Nn.displacementmap]),vertexShader:_r.depth_vert,fragmentShader:_r.depth_frag},normal:{uniforms:El([Nn.common,Nn.bumpmap,Nn.normalmap,Nn.displacementmap,{opacity:{value:1}}]),vertexShader:_r.meshnormal_vert,fragmentShader:_r.meshnormal_frag},sprite:{uniforms:El([Nn.sprite,Nn.fog]),vertexShader:_r.sprite_vert,fragmentShader:_r.sprite_frag},background:{uniforms:{uvTransform:{value:new Ki},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:_r.background_vert,fragmentShader:_r.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Ki}},vertexShader:_r.backgroundCube_vert,fragmentShader:_r.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:_r.cube_vert,fragmentShader:_r.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:_r.equirect_vert,fragmentShader:_r.equirect_frag},distanceRGBA:{uniforms:El([Nn.common,Nn.displacementmap,{referencePosition:{value:new pe},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:_r.distanceRGBA_vert,fragmentShader:_r.distanceRGBA_frag},shadow:{uniforms:El([Nn.lights,Nn.fog,{color:{value:new _n(0)},opacity:{value:1}}]),vertexShader:_r.shadow_vert,fragmentShader:_r.shadow_frag}};Zh.physical={uniforms:El([Zh.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Ki},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Ki},clearcoatNormalScale:{value:new At(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Ki},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Ki},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Ki},sheen:{value:0},sheenColor:{value:new _n(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Ki},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Ki},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Ki},transmissionSamplerSize:{value:new At},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Ki},attenuationDistance:{value:0},attenuationColor:{value:new _n(0)},specularColor:{value:new _n(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Ki},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Ki},anisotropyVector:{value:new At},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Ki}}]),vertexShader:_r.meshphysical_vert,fragmentShader:_r.meshphysical_frag};const mk={r:0,b:0,g:0},Lb=new Dd,Aee=new zi;function mee(n,t,e,i,r,s,l){const u=new _n(0);let p,m,f=!0===s?0:1,_=null,b=0,w=null;function F(O){let R=!0===O.isScene?O.background:null;return R&&R.isTexture&&(R=(O.backgroundBlurriness>0?e:t).get(R)),R}function I(O,R){O.getRGB(mk,aQ(n)),i.buffers.color.setClear(mk.r,mk.g,mk.b,R,l)}return{getClearColor:function(){return u},setClearColor:function(O,R=1){u.set(O),f=R,I(u,f)},getClearAlpha:function(){return f},setClearAlpha:function(O){f=O,I(u,f)},render:function D(O){let R=!1;const P=F(O);null===P?I(u,f):P&&P.isColor&&(I(P,1),R=!0);const ee=n.xr.getEnvironmentBlendMode();"additive"===ee?i.buffers.color.setClear(0,0,0,1,l):"alpha-blend"===ee&&i.buffers.color.setClear(0,0,0,0,l),(n.autoClear||R)&&(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 T(O,R){const P=F(R);P&&(P.isCubeTexture||P.mapping===ew)?(void 0===m&&(m=new cr(new Vc(1,1,1),new sc({name:"BackgroundCubeMaterial",uniforms:Bw(Zh.backgroundCube.uniforms),vertexShader:Zh.backgroundCube.vertexShader,fragmentShader:Zh.backgroundCube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),m.geometry.deleteAttribute("normal"),m.geometry.deleteAttribute("uv"),m.onBeforeRender=function(ee,J,te){this.matrixWorld.copyPosition(te.matrixWorld)},Object.defineProperty(m.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(m)),Lb.copy(R.backgroundRotation),Lb.x*=-1,Lb.y*=-1,Lb.z*=-1,P.isCubeTexture&&!1===P.isRenderTargetTexture&&(Lb.y*=-1,Lb.z*=-1),m.material.uniforms.envMap.value=P,m.material.uniforms.flipEnvMap.value=P.isCubeTexture&&!1===P.isRenderTargetTexture?-1:1,m.material.uniforms.backgroundBlurriness.value=R.backgroundBlurriness,m.material.uniforms.backgroundIntensity.value=R.backgroundIntensity,m.material.uniforms.backgroundRotation.value.setFromMatrix4(Aee.makeRotationFromEuler(Lb)),m.material.toneMapped=Nr.getTransfer(P.colorSpace)!==Bo,(_!==P||b!==P.version||w!==n.toneMapping)&&(m.material.needsUpdate=!0,_=P,b=P.version,w=n.toneMapping),m.layers.enableAll(),O.unshift(m,m.geometry,m.material,0,0,null)):P&&P.isTexture&&(void 0===p&&(p=new cr(new Pw(2,2),new sc({name:"BackgroundMaterial",uniforms:Bw(Zh.background.uniforms),vertexShader:Zh.background.vertexShader,fragmentShader:Zh.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),p.geometry.deleteAttribute("normal"),Object.defineProperty(p.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(p)),p.material.uniforms.t2D.value=P,p.material.uniforms.backgroundIntensity.value=R.backgroundIntensity,p.material.toneMapped=Nr.getTransfer(P.colorSpace)!==Bo,!0===P.matrixAutoUpdate&&P.updateMatrix(),p.material.uniforms.uvTransform.value.copy(P.matrix),(_!==P||b!==P.version||w!==n.toneMapping)&&(p.material.needsUpdate=!0,_=P,b=P.version,w=n.toneMapping),p.layers.enableAll(),O.unshift(p,p.geometry,p.material,0,0,null))}}}function gee(n,t){const e=n.getParameter(n.MAX_VERTEX_ATTRIBS),i={},r=b(null);let s=r,l=!1;function p(q){return n.bindVertexArray(q)}function m(q){return n.deleteVertexArray(q)}function b(q){const le=[],ke=[],Ue=[];for(let ce=0;ce=0){const Et=ce[Fe];let kt=ze[Fe];if(void 0===kt&&("instanceMatrix"===Fe&&q.instanceMatrix&&(kt=q.instanceMatrix),"instanceColor"===Fe&&q.instanceColor&&(kt=q.instanceColor)),void 0===Et||Et.attribute!==kt||kt&&Et.data!==kt.data)return!0;Ce++}return s.attributesNum!==Ce||s.index!==Ue}(q,Ue,ke,ce),ze&&function F(q,le,ke,Ue){const ce={},ze=le.attributes;let Ce=0;const Oe=ke.getAttributes();for(const Fe in Oe)if(Oe[Fe].location>=0){let Et=ze[Fe];void 0===Et&&("instanceMatrix"===Fe&&q.instanceMatrix&&(Et=q.instanceMatrix),"instanceColor"===Fe&&q.instanceColor&&(Et=q.instanceColor));const kt={};kt.attribute=Et,Et&&Et.data&&(kt.data=Et.data),ce[Fe]=kt,Ce++}s.attributes=ce,s.attributesNum=Ce,s.index=Ue}(q,Ue,ke,ce),null!==ce&&t.update(ce,n.ELEMENT_ARRAY_BUFFER),(ze||l)&&(l=!1,function P(q,le,ke,Ue){D();const ce=Ue.attributes,ze=ke.getAttributes(),Ce=le.defaultAttributeValues;for(const Oe in ze){const Fe=ze[Oe];if(Fe.location>=0){let ft=ce[Oe];if(void 0===ft&&("instanceMatrix"===Oe&&q.instanceMatrix&&(ft=q.instanceMatrix),"instanceColor"===Oe&&q.instanceColor&&(ft=q.instanceColor)),void 0!==ft){const Et=ft.normalized,kt=ft.itemSize,nn=t.get(ft);if(void 0===nn)continue;const Xn=nn.buffer,Me=nn.type,be=nn.bytesPerElement,Ae=Me===n.INT||Me===n.UNSIGNED_INT||ft.gpuType===QE;if(ft.isInterleavedBufferAttribute){const ae=ft.data,ut=ae.stride,Nt=ft.offset;if(ae.isInstancedInterleavedBuffer){for(let lt=0;lt0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";J="mediump"}return"mediump"===J&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let p=void 0!==e.precision?e.precision:"highp";const m=f(p);m!==p&&(console.warn("THREE.WebGLRenderer:",p,"not supported, using",m,"instead."),p=m);const _=!0===e.logarithmicDepthBuffer,b=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),w=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS);return{isWebGL2:!0,getMaxAnisotropy:function s(){if(void 0!==r)return r;if(!0===t.has("EXT_texture_filter_anisotropic")){const J=t.get("EXT_texture_filter_anisotropic");r=n.getParameter(J.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r},getMaxPrecision:f,textureFormatReadable:function l(J){return!(J!==Ba&&i.convert(J)!==n.getParameter(n.IMPLEMENTATION_COLOR_READ_FORMAT))},textureTypeReadable:function u(J){const te=J===xg&&(t.has("EXT_color_buffer_half_float")||t.has("EXT_color_buffer_float"));return!(J!==Tu&&i.convert(J)!==n.getParameter(n.IMPLEMENTATION_COLOR_READ_TYPE)&&J!==xl&&!te)},precision:p,logarithmicDepthBuffer:_,maxTextures:b,maxVertexTextures:w,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:w>0,maxSamples:n.getParameter(n.MAX_SAMPLES)}}function vee(n){const t=this;let e=null,i=0,r=!1,s=!1;const l=new Lg,u=new Ki,f={value:null,needsUpdate:!1};function m(_,b,w,F){const D=null!==_?_.length:0;let T=null;if(0!==D){if(T=f.value,!0!==F||null===T){const I=w+4*D,O=b.matrixWorldInverse;u.getNormalMatrix(O),(null===T||T.length0),t.numPlanes=i,t.numIntersection=0}();else{const O=s?0:i,R=4*O;let P=I.clippingState||null;f.value=P,P=m(F,b,R,w);for(let ee=0;ee!==R;++ee)P[ee]=e[ee];I.clippingState=P,this.numIntersection=D?this.numPlanes:0,this.numPlanes+=O}}}function yee(n){let t=new WeakMap;function e(l,u){return 303===u?l.mapping=Su:304===u&&(l.mapping=Lh),l}function r(l){const u=l.target;u.removeEventListener("dispose",r);const f=t.get(u);void 0!==f&&(t.delete(u),f.dispose())}return{get:function i(l){if(l&&l.isTexture){const u=l.mapping;if(303===u||304===u){if(t.has(l))return e(t.get(l).texture,l.mapping);{const f=l.image;if(f&&f.height>0){const p=new hZ(f.height);return p.fromEquirectangularTexture(n,l),t.set(l,p),l.addEventListener("dispose",r),e(p.texture,l.mapping)}return null}}}return l},dispose:function s(){t=new WeakMap}}}class gk extends b5{constructor(t=-1,e=1,i=1,r=-1,s=.1,l=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=s,this.far=l,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,s,l){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=s,this.view.height=l,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 s=i-t,l=i+t,u=r+e,f=r-e;if(null!==this.view&&this.view.enabled){const p=(this.right-this.left)/this.view.fullWidth/this.zoom,m=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=p*this.view.offsetX,l=s+p*this.view.width,u-=m*this.view.offsetY,f=u-m*this.view.height}this.projectionMatrix.makeOrthographic(s,l,u,f,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 uQ=[.125,.215,.35,.446,.526,.582],y5=new gk,hQ=new _n;let w5=null,x5=0,C5=0,M5=!1;const Vb=(1+Math.sqrt(5))/2,Nw=1/Vb,fQ=[new pe(-Vb,Nw,0),new pe(Vb,Nw,0),new pe(-Nw,0,Vb),new pe(Nw,0,Vb),new pe(0,Vb,-Nw),new pe(0,Vb,Nw),new pe(-1,1,-1),new pe(1,1,-1),new pe(-1,1,1),new pe(1,1,1)];class pQ{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){w5=this._renderer.getRenderTarget(),x5=this._renderer.getActiveCubeFace(),C5=this._renderer.getActiveMipmapLevel(),M5=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(t,i,r,s),e>0&&this._blur(s,0,0,e),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=gQ(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=mQ(),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?f=uQ[l-n+4-1]:0===l&&(f=0),i.push(f);const p=1/(u-2),m=-p,_=1+p,b=[m,m,_,m,_,_,m,m,_,_,m,_],w=6,F=6,D=3,T=2,I=1,O=new Float32Array(D*F*w),R=new Float32Array(T*F*w),P=new Float32Array(I*F*w);for(let J=0;J2?0:-1;O.set([te,ie,0,te+2/3,ie,0,te+2/3,ie+1,0,te,ie,0,te+2/3,ie+1,0,te,ie+1,0],D*F*J),R.set(b,T*F*J),P.set([J,J,J,J,J,J],I*F*J)}const ee=new fi;ee.setAttribute("position",new x(O,D)),ee.setAttribute("uv",new x(R,T)),ee.setAttribute("faceIndex",new x(P,I)),t.push(ee),r>4&&r--}return{lodPlanes:t,sizeLods:e,sigmas:i}}(s)),this._blurMaterial=function xee(n,t,e){const i=new Float32Array(20),r=new pe(0,1,0);return new sc({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})}(s,t,e)}return r}_compileMaterial(t){const e=new cr(this._lodPlanes[0],t);this._renderer.compile(e,y5)}_sceneToCubeUV(t,e,i,r){const u=new ea(90,1,e,i),f=[1,-1,1,1,1,1],p=[1,1,1,-1,-1,-1],m=this._renderer,_=m.autoClear,b=m.toneMapping;m.getClearColor(hQ),m.toneMapping=Eu,m.autoClear=!1;const w=new Xh({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),F=new cr(new Vc,w);let D=!1;const T=t.background;T?T.isColor&&(w.color.copy(T),t.background=null,D=!0):(w.color.copy(hQ),D=!0);for(let I=0;I<6;I++){const O=I%3;0===O?(u.up.set(0,f[I],0),u.lookAt(p[I],0,0)):1===O?(u.up.set(0,0,f[I]),u.lookAt(0,p[I],0)):(u.up.set(0,f[I],0),u.lookAt(0,0,p[I]));const R=this._cubeSize;_k(r,O*R,I>2?R:0,R,R),m.setRenderTarget(r),D&&m.render(F,u),m.render(t,u)}F.geometry.dispose(),F.material.dispose(),m.toneMapping=b,m.autoClear=_,t.background=T}_textureToCubeUV(t,e){const i=this._renderer,r=t.mapping===Su||t.mapping===Lh;r?(null===this._cubemapMaterial&&(this._cubemapMaterial=gQ()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=mQ());const s=r?this._cubemapMaterial:this._equirectMaterial,l=new cr(this._lodPlanes[0],s);s.uniforms.envMap.value=t;const f=this._cubeSize;_k(e,0,0,3*f,2*f),i.setRenderTarget(e),i.render(l,y5)}_applyPMREM(t){const e=this._renderer,i=e.autoClear;e.autoClear=!1;const r=this._lodPlanes.length;for(let s=1;s20&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${T} samples when the maximum is set to 20`);const I=[];let O=0;for(let te=0;te<20;++te){const ie=te/D,W=Math.exp(-ie*ie/2);I.push(W),0===te?O+=W:teR-4?r-R+4:0),4*(this._cubeSize-P),3*P,2*P),f.setRenderTarget(e),f.render(_,y5)}}function AQ(n,t,e){const i=new Cl(n,t,e);return i.texture.mapping=ew,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function _k(n,t,e,i,r){n.viewport.set(t,e,i,r),n.scissor.set(t,e,i,r)}function mQ(){return new sc({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 gQ(){return new sc({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 Cee(n){let t=new WeakMap,e=null;function s(u){const f=u.target;f.removeEventListener("dispose",s);const p=t.get(f);void 0!==p&&(t.delete(f),p.dispose())}return{get:function i(u){if(u&&u.isTexture){const f=u.mapping,p=303===f||304===f,m=f===Su||f===Lh;if(p||m){let _=t.get(u);if(u.isRenderTargetTexture&&u.pmremVersion!==(void 0!==_?_.texture.pmremVersion:0))return null===e&&(e=new pQ(n)),_=p?e.fromEquirectangular(u,_):e.fromCubemap(u,_),_.texture.pmremVersion=u.pmremVersion,t.set(u,_),_.texture;if(void 0!==_)return _.texture;{const w=u.image;return p&&w&&w.height>0||m&&w&&function r(u){let f=0;for(let m=0;m<6;m++)void 0!==u[m]&&f++;return 6===f}(w)?(null===e&&(e=new pQ(n)),_=p?e.fromEquirectangular(u):e.fromCubemap(u),_.texture.pmremVersion=u.pmremVersion,t.set(u,_),u.addEventListener("dispose",s),_.texture):null}}}return u},dispose:function l(){t=new WeakMap,null!==e&&(e.dispose(),e=null)}}}function Mee(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&&Ig("THREE.WebGLRenderer: "+i+" extension not supported."),r}}}function Eee(n,t,e,i){const r={},s=new WeakMap;function l(_){const b=_.target;null!==b.index&&t.remove(b.index);for(const F in b.attributes)t.remove(b.attributes[F]);for(const F in b.morphAttributes){const D=b.morphAttributes[F];for(let T=0,I=D.length;Tt.maxTextureSize&&(ee=Math.ceil(P/t.maxTextureSize),P=t.maxTextureSize);const J=new Float32Array(P*ee*4*_),te=new $B(J,P,ee,_);te.type=xl,te.needsUpdate=!0;const ie=4*R;for(let q=0;q<_;q++){const le=T[q],ke=I[q],Ue=O[q],ce=P*ee*4*q;for(let ze=0;ze0)return n;const r=t*e;let s=CQ[r];if(void 0===s&&(s=new Float32Array(r),CQ[r]=s),0!==t){i.toArray(s,0);for(let l=1,u=0;l!==t;++l)u+=e,n[l].toArray(s,u)}return s}function ta(n,t){if(n.length!==t.length)return!1;for(let e=0,i=n.length;e":" "} ${u}: ${e[l]}`)}return i.join("\n")}(n.getShaderSource(t),l)}return r}function Mte(n,t){const e=function Cte(n){const t=Nr.getPrimaries(Nr.workingColorSpace),e=Nr.getPrimaries(n);let i;switch(t===e?i="":t===Pp&&e===gw?i="LinearDisplayP3ToLinearSRGB":t===gw&&e===Pp&&(i="LinearSRGBToLinearDisplayP3"),n){case Qh:case wb:return[i,"LinearTransferOETF"];case Oc:case rS: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 Ete(n,t){let e;switch(t){case fB:e="Linear";break;case LL:e="Reinhard";break;case pB:e="Cineon";break;case AB:e="ACESFilmic";break;case VL:e="AgX";break;case mB:e="Neutral";break;case UL:e="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),e="Linear"}return"vec3 "+n+"( vec3 color ) { return "+e+"ToneMapping( color ); }"}const yk=new pe;function yS(n){return""!==n}function BQ(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 kQ(n,t){return n.replace(/NUM_CLIPPING_PLANES/g,t.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,t.numClippingPlanes-t.numClipIntersection)}const Dte=/^[ \t]*#include +<([\w\d./]+)>/gm;function T5(n){return n.replace(Dte,kte)}const Bte=new Map;function kte(n,t){let e=_r[t];if(void 0===e){const i=Bte.get(t);if(void 0===i)throw new Error("Can not resolve #include <"+t+">");e=_r[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',t,i)}return T5(e)}const Rte=/#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 RQ(n){return n.replace(Rte,Pte)}function Pte(n,t,e,i){let r="";for(let s=parseInt(t);s0&&(T+="\n"),I=["#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,F].filter(yS).join("\n"),I.length>0&&(I+="\n")):(T=[PQ(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,F,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 "+m:"",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 "+f:"",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(yS).join("\n"),I=[PQ(e),"#define SHADER_TYPE "+e.shaderType,"#define SHADER_NAME "+e.shaderName,F,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 "+p:"",e.envMap?"#define "+m:"",e.envMap?"#define "+_:"",b?"#define CUBEUV_TEXEL_WIDTH "+b.texelWidth:"",b?"#define CUBEUV_TEXEL_HEIGHT "+b.texelHeight:"",b?"#define CUBEUV_MAX_MIP "+b.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 "+f:"",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!==Eu?"#define TONE_MAPPING":"",e.toneMapping!==Eu?_r.tonemapping_pars_fragment:"",e.toneMapping!==Eu?Ete("toneMapping",e.toneMapping):"",e.dithering?"#define DITHERING":"",e.opaque?"#define OPAQUE":"",_r.colorspace_pars_fragment,Mte("linearToOutputTexel",e.outputColorSpace),(Nr.getLuminanceCoefficients(yk),["float luminance( const in vec3 rgb ) {",`\tconst vec3 weights = vec3( ${yk.x.toFixed(4)}, ${yk.y.toFixed(4)}, ${yk.z.toFixed(4)} );`,"\treturn dot( weights, rgb );","}"].join("\n")),e.useDepthPacking?"#define DEPTH_PACKING "+e.depthPacking:"","\n"].filter(yS).join("\n")),l=T5(l),l=BQ(l,e),l=kQ(l,e),u=T5(u),u=BQ(u,e),u=kQ(u,e),l=RQ(l),u=RQ(u),!0!==e.isRawShaderMaterial&&(O="#version 300 es\n",T=[w,"#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+T,I=["#define varying in",e.glslVersion===lS?"":"layout(location = 0) out highp vec4 pc_fragColor;",e.glslVersion===lS?"":"#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"+I);const P=O+I+u,ee=FQ(r,r.VERTEX_SHADER,O+T+l),J=FQ(r,r.FRAGMENT_SHADER,P);function te(le){if(n.debug.checkShaderErrors){const ke=r.getProgramInfoLog(D).trim(),Ue=r.getShaderInfoLog(ee).trim(),ce=r.getShaderInfoLog(J).trim();let ze=!0,Ce=!0;if(!1===r.getProgramParameter(D,r.LINK_STATUS))if(ze=!1,"function"==typeof n.debug.onShaderError)n.debug.onShaderError(r,D,ee,J);else{const Oe=DQ(r,ee,"vertex"),Fe=DQ(r,J,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(D,r.VALIDATE_STATUS)+"\n\nMaterial Name: "+le.name+"\nMaterial Type: "+le.type+"\n\nProgram Info Log: "+ke+"\n"+Oe+"\n"+Fe)}else""!==ke?console.warn("THREE.WebGLProgram: Program Info Log:",ke):(""===Ue||""===ce)&&(Ce=!1);Ce&&(le.diagnostics={runnable:ze,programLog:ke,vertexShader:{log:Ue,prefix:T},fragmentShader:{log:ce,prefix:I}})}r.deleteShader(ee),r.deleteShader(J),ie=new vk(r,D),W=function Fte(n,t){const e={},i=n.getProgramParameter(t,n.ACTIVE_ATTRIBUTES);for(let r=0;r0,Ct=W.clearcoat>0,Vt=W.iridescence>0,jt=W.sheen>0,Si=W.transmission>0,Fn=oe&&!!W.anisotropyMap,Kn=Ct&&!!W.clearcoatMap,ir=Ct&&!!W.clearcoatNormalMap,hn=Ct&&!!W.clearcoatRoughnessMap,Yn=Vt&&!!W.iridescenceMap,kr=Vt&&!!W.iridescenceThicknessMap,er=jt&&!!W.sheenColorMap,ci=jt&&!!W.sheenRoughnessMap,dr=!!W.specularMap,Sr=!!W.specularColorMap,ss=!!W.specularIntensityMap,ht=Si&&!!W.transmissionMap,wn=Si&&!!W.thicknessMap,Kt=!!W.alphaMap,qr=!!W.extensions;let Gs=Eu;W.toneMapped&&(null===ae||!0===ae.isXRRenderTarget)&&(Gs=n.toneMapping);const La={shaderID:ft,shaderType:W.type,shaderName:W.name,vertexShader:Xn,fragmentShader:Me,defines:W.defines,customVertexShaderID:be,customFragmentShaderID:Ae,isRawShaderMaterial:!0===W.isRawShaderMaterial,glslVersion:W.glslVersion,precision:w,batching:Nt,batchingColor:Nt&&null!==Ue._colorsTexture,instancing:ut,instancingColor:ut&&null!==Ue.instanceColor,instancingMorph:ut&&null!==Ue.morphTexture,supportsVertexTextures:b,outputColorSpace:null===ae?n.outputColorSpace:!0===ae.isXRRenderTarget?ae.texture.colorSpace:Qh,alphaToCoverage:!!W.alphaToCoverage,map:lt,matcap:!!W.matcap,envMap:de,envMapMode:de&&Oe.mapping,envMapCubeUVHeight:Fe,aoMap:wt,lightMap:Ze,bumpMap:Mt,normalMap:_t,displacementMap:b&&Ft,emissiveMap:Pe,normalMapObjectSpace:_t&&1===W.normalMapType,normalMapTangentSpace:_t&&0===W.normalMapType,metalnessMap:Se,roughnessMap:_e,anisotropy:oe,anisotropyMap:Fn,clearcoat:Ct,clearcoatMap:Kn,clearcoatNormalMap:ir,clearcoatRoughnessMap:hn,dispersion:W.dispersion>0,iridescence:Vt,iridescenceMap:Yn,iridescenceThicknessMap:kr,sheen:jt,sheenColorMap:er,sheenRoughnessMap:ci,specularMap:dr,specularColorMap:Sr,specularIntensityMap:ss,transmission:Si,transmissionMap:ht,thicknessMap:wn,gradientMap:!!W.gradientMap,opaque:!1===W.transparent&&1===W.blending&&!1===W.alphaToCoverage,alphaMap:Kt,alphaTest:W.alphaTest>0,alphaHash:!!W.alphaHash,combine:W.combine,mapUv:lt&&D(W.map.channel),aoMapUv:wt&&D(W.aoMap.channel),lightMapUv:Ze&&D(W.lightMap.channel),bumpMapUv:Mt&&D(W.bumpMap.channel),normalMapUv:_t&&D(W.normalMap.channel),displacementMapUv:Ft&&D(W.displacementMap.channel),emissiveMapUv:Pe&&D(W.emissiveMap.channel),metalnessMapUv:Se&&D(W.metalnessMap.channel),roughnessMapUv:_e&&D(W.roughnessMap.channel),anisotropyMapUv:Fn&&D(W.anisotropyMap.channel),clearcoatMapUv:Kn&&D(W.clearcoatMap.channel),clearcoatNormalMapUv:ir&&D(W.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:hn&&D(W.clearcoatRoughnessMap.channel),iridescenceMapUv:Yn&&D(W.iridescenceMap.channel),iridescenceThicknessMapUv:kr&&D(W.iridescenceThicknessMap.channel),sheenColorMapUv:er&&D(W.sheenColorMap.channel),sheenRoughnessMapUv:ci&&D(W.sheenRoughnessMap.channel),specularMapUv:dr&&D(W.specularMap.channel),specularColorMapUv:Sr&&D(W.specularColorMap.channel),specularIntensityMapUv:ss&&D(W.specularIntensityMap.channel),transmissionMapUv:ht&&D(W.transmissionMap.channel),thicknessMapUv:wn&&D(W.thicknessMap.channel),alphaMapUv:Kt&&D(W.alphaMap.channel),vertexTangents:!!ze.attributes.tangent&&(_t||oe),vertexColors:W.vertexColors,vertexAlphas:!0===W.vertexColors&&!!ze.attributes.color&&4===ze.attributes.color.itemSize,pointsUvs:!0===Ue.isPoints&&!!ze.attributes.uv&&(lt||Kt),fog:!!ce,useFog:!0===W.fog,fogExp2:!!ce&&ce.isFogExp2,flatShading:!0===W.flatShading,sizeAttenuation:!0===W.sizeAttenuation,logarithmicDepthBuffer:_,skinning:!0===Ue.isSkinnedMesh,morphTargets:void 0!==ze.morphAttributes.position,morphNormals:void 0!==ze.morphAttributes.normal,morphColors:void 0!==ze.morphAttributes.color,morphTargetsCount:kt,morphTextureStride:nn,numDirLights:q.directional.length,numPointLights:q.point.length,numSpotLights:q.spot.length,numSpotLightMaps:q.spotLightMap.length,numRectAreaLights:q.rectArea.length,numHemiLights:q.hemi.length,numDirLightShadows:q.directionalShadowMap.length,numPointLightShadows:q.pointShadowMap.length,numSpotLightShadows:q.spotShadowMap.length,numSpotLightShadowsWithMaps:q.numSpotLightShadowsWithMaps,numLightProbes:q.numLightProbes,numClippingPlanes:l.numPlanes,numClipIntersection:l.numIntersection,dithering:W.dithering,shadowMapEnabled:n.shadowMap.enabled&&le.length>0,shadowMapType:n.shadowMap.type,toneMapping:Gs,decodeVideoTexture:lt&&!0===W.map.isVideoTexture&&Nr.getTransfer(W.map.colorSpace)===Bo,premultipliedAlpha:W.premultipliedAlpha,doubleSided:2===W.side,flipSided:1===W.side,useDepthPacking:W.depthPacking>=0,depthPacking:W.depthPacking||0,index0AttributeName:W.index0AttributeName,extensionClipCullDistance:qr&&!0===W.extensions.clipCullDistance&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(qr&&!0===W.extensions.multiDraw||Nt)&&i.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:W.customProgramCacheKey()};return La.vertexUv1s=p.has(1),La.vertexUv2s=p.has(2),La.vertexUv3s=p.has(3),p.clear(),La},getProgramCacheKey:function I(W){const q=[];if(W.shaderID?q.push(W.shaderID):(q.push(W.customVertexShaderID),q.push(W.customFragmentShaderID)),void 0!==W.defines)for(const le in W.defines)q.push(le),q.push(W.defines[le]);return!1===W.isRawShaderMaterial&&(function O(W,q){W.push(q.precision),W.push(q.outputColorSpace),W.push(q.envMapMode),W.push(q.envMapCubeUVHeight),W.push(q.mapUv),W.push(q.alphaMapUv),W.push(q.lightMapUv),W.push(q.aoMapUv),W.push(q.bumpMapUv),W.push(q.normalMapUv),W.push(q.displacementMapUv),W.push(q.emissiveMapUv),W.push(q.metalnessMapUv),W.push(q.roughnessMapUv),W.push(q.anisotropyMapUv),W.push(q.clearcoatMapUv),W.push(q.clearcoatNormalMapUv),W.push(q.clearcoatRoughnessMapUv),W.push(q.iridescenceMapUv),W.push(q.iridescenceThicknessMapUv),W.push(q.sheenColorMapUv),W.push(q.sheenRoughnessMapUv),W.push(q.specularMapUv),W.push(q.specularColorMapUv),W.push(q.specularIntensityMapUv),W.push(q.transmissionMapUv),W.push(q.thicknessMapUv),W.push(q.combine),W.push(q.fogExp2),W.push(q.sizeAttenuation),W.push(q.morphTargetsCount),W.push(q.morphAttributeCount),W.push(q.numDirLights),W.push(q.numPointLights),W.push(q.numSpotLights),W.push(q.numSpotLightMaps),W.push(q.numHemiLights),W.push(q.numRectAreaLights),W.push(q.numDirLightShadows),W.push(q.numPointLightShadows),W.push(q.numSpotLightShadows),W.push(q.numSpotLightShadowsWithMaps),W.push(q.numLightProbes),W.push(q.shadowMapType),W.push(q.toneMapping),W.push(q.numClippingPlanes),W.push(q.numClipIntersection),W.push(q.depthPacking)}(q,W),function R(W,q){u.disableAll(),q.supportsVertexTextures&&u.enable(0),q.instancing&&u.enable(1),q.instancingColor&&u.enable(2),q.instancingMorph&&u.enable(3),q.matcap&&u.enable(4),q.envMap&&u.enable(5),q.normalMapObjectSpace&&u.enable(6),q.normalMapTangentSpace&&u.enable(7),q.clearcoat&&u.enable(8),q.iridescence&&u.enable(9),q.alphaTest&&u.enable(10),q.vertexColors&&u.enable(11),q.vertexAlphas&&u.enable(12),q.vertexUv1s&&u.enable(13),q.vertexUv2s&&u.enable(14),q.vertexUv3s&&u.enable(15),q.vertexTangents&&u.enable(16),q.anisotropy&&u.enable(17),q.alphaHash&&u.enable(18),q.batching&&u.enable(19),q.dispersion&&u.enable(20),q.batchingColor&&u.enable(21),W.push(u.mask),u.disableAll(),q.fog&&u.enable(0),q.useFog&&u.enable(1),q.flatShading&&u.enable(2),q.logarithmicDepthBuffer&&u.enable(3),q.skinning&&u.enable(4),q.morphTargets&&u.enable(5),q.morphNormals&&u.enable(6),q.morphColors&&u.enable(7),q.premultipliedAlpha&&u.enable(8),q.shadowMapEnabled&&u.enable(9),q.doubleSided&&u.enable(10),q.flipSided&&u.enable(11),q.useDepthPacking&&u.enable(12),q.dithering&&u.enable(13),q.transmission&&u.enable(14),q.sheen&&u.enable(15),q.opaque&&u.enable(16),q.pointsUvs&&u.enable(17),q.decodeVideoTexture&&u.enable(18),q.alphaToCoverage&&u.enable(19),W.push(u.mask)}(q,W),q.push(n.outputColorSpace)),q.push(W.customProgramCacheKey),q.join()},getUniforms:function P(W){const q=F[W.type];let le;return le=q?_5.clone(Zh[q].uniforms):W.uniforms,le},acquireProgram:function ee(W,q){let le;for(let ke=0,Ue=m.length;ke0?i.push(I):!0===w.transparent?r.push(I):e.push(I)},unshift:function f(_,b,w,F,D,T){const I=l(_,b,w,F,D,T);w.transmission>0?i.unshift(I):!0===w.transparent?r.unshift(I):e.unshift(I)},finish:function m(){for(let _=t,b=n.length;_1&&e.sort(_||qte),i.length>1&&i.sort(b||OQ),r.length>1&&r.sort(b||OQ)}}}function Wte(){let n=new WeakMap;return{get:function t(i,r){const s=n.get(i);let l;return void 0===s?(l=new NQ,n.set(i,[l])):r>=s.length?(l=new NQ,s.push(l)):l=s[r],l},dispose:function e(){n=new WeakMap}}}function Xte(){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 pe,color:new _n};break;case"SpotLight":e={position:new pe,direction:new pe,color:new _n,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":e={position:new pe,color:new _n,distance:0,decay:0};break;case"HemisphereLight":e={direction:new pe,skyColor:new _n,groundColor:new _n};break;case"RectAreaLight":e={color:new _n,position:new pe,halfWidth:new pe,halfHeight:new pe}}return n[t.id]=e,e}}}let Yte=0;function Zte(n,t){return(t.castShadow?2:0)-(n.castShadow?2:0)+(t.map?1:0)-(n.map?1:0)}function Jte(n){const t=new Xte,e=function Kte(){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 At};break;case"PointLight":e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new At,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 p=0;p<9;p++)i.probe.push(new pe);const r=new pe,s=new zi,l=new zi;return{setup:function u(p){let m=0,_=0,b=0;for(let W=0;W<9;W++)i.probe[W].set(0,0,0);let w=0,F=0,D=0,T=0,I=0,O=0,R=0,P=0,ee=0,J=0,te=0;p.sort(Zte);for(let W=0,q=p.length;W0&&(!0===n.has("OES_texture_float_linear")?(i.rectAreaLTC1=Nn.LTC_FLOAT_1,i.rectAreaLTC2=Nn.LTC_FLOAT_2):(i.rectAreaLTC1=Nn.LTC_HALF_1,i.rectAreaLTC2=Nn.LTC_HALF_2)),i.ambient[0]=m,i.ambient[1]=_,i.ambient[2]=b;const ie=i.hash;(ie.directionalLength!==w||ie.pointLength!==F||ie.spotLength!==D||ie.rectAreaLength!==T||ie.hemiLength!==I||ie.numDirectionalShadows!==O||ie.numPointShadows!==R||ie.numSpotShadows!==P||ie.numSpotMaps!==ee||ie.numLightProbes!==te)&&(i.directional.length=w,i.spot.length=D,i.rectArea.length=T,i.point.length=F,i.hemi.length=I,i.directionalShadow.length=O,i.directionalShadowMap.length=O,i.pointShadow.length=R,i.pointShadowMap.length=R,i.spotShadow.length=P,i.spotShadowMap.length=P,i.directionalShadowMatrix.length=O,i.pointShadowMatrix.length=R,i.spotLightMatrix.length=P+ee-J,i.spotLightMap.length=ee,i.numSpotLightShadowsWithMaps=J,i.numLightProbes=te,ie.directionalLength=w,ie.pointLength=F,ie.spotLength=D,ie.rectAreaLength=T,ie.hemiLength=I,ie.numDirectionalShadows=O,ie.numPointShadows=R,ie.numSpotShadows=P,ie.numSpotMaps=ee,ie.numLightProbes=te,i.version=Yte++)},setupView:function f(p,m){let _=0,b=0,w=0,F=0,D=0;const T=m.matrixWorldInverse;for(let I=0,O=p.length;I=l.length?(u=new LQ(n),l.push(u)):u=l[s],u},dispose:function i(){t=new WeakMap}}}class UQ extends Ka{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 VQ extends Ka{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 ine(n,t,e){let i=new Ak;const r=new At,s=new At,l=new Lr,u=new UQ({depthPacking:3201}),f=new VQ,p={},m=e.maxTextureSize,_={[xu]:1,[ua]:0,[Cu]:2},b=new sc({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new At},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}"}),w=b.clone();w.defines.HORIZONTAL_PASS=1;const F=new fi;F.setAttribute("position",new x(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const D=new cr(F,b),T=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=aB;let I=this.type;function O(J,te){const ie=t.update(D);b.defines.VSM_SAMPLES!==J.blurSamples&&(b.defines.VSM_SAMPLES=J.blurSamples,w.defines.VSM_SAMPLES=J.blurSamples,b.needsUpdate=!0,w.needsUpdate=!0),null===J.mapPass&&(J.mapPass=new Cl(r.x,r.y)),b.uniforms.shadow_pass.value=J.map.texture,b.uniforms.resolution.value=J.mapSize,b.uniforms.radius.value=J.radius,n.setRenderTarget(J.mapPass),n.clear(),n.renderBufferDirect(te,null,ie,b,D,null),w.uniforms.shadow_pass.value=J.mapPass.texture,w.uniforms.resolution.value=J.mapSize,w.uniforms.radius.value=J.radius,n.setRenderTarget(J.map),n.clear(),n.renderBufferDirect(te,null,ie,w,D,null)}function R(J,te,ie,W){let q=null;const le=!0===ie.isPointLight?J.customDistanceMaterial:J.customDepthMaterial;if(void 0!==le)q=le;else if(q=!0===ie.isPointLight?f:u,n.localClippingEnabled&&!0===te.clipShadows&&Array.isArray(te.clippingPlanes)&&0!==te.clippingPlanes.length||te.displacementMap&&0!==te.displacementScale||te.alphaMap&&te.alphaTest>0||te.map&&te.alphaTest>0){const ke=q.uuid,Ue=te.uuid;let ce=p[ke];void 0===ce&&(ce={},p[ke]=ce);let ze=ce[Ue];void 0===ze&&(ze=q.clone(),ce[Ue]=ze,te.addEventListener("dispose",ee)),q=ze}return q.visible=te.visible,q.wireframe=te.wireframe,q.side=W===Nh?null!==te.shadowSide?te.shadowSide:te.side:null!==te.shadowSide?te.shadowSide:_[te.side],q.alphaMap=te.alphaMap,q.alphaTest=te.alphaTest,q.map=te.map,q.clipShadows=te.clipShadows,q.clippingPlanes=te.clippingPlanes,q.clipIntersection=te.clipIntersection,q.displacementMap=te.displacementMap,q.displacementScale=te.displacementScale,q.displacementBias=te.displacementBias,q.wireframeLinewidth=te.wireframeLinewidth,q.linewidth=te.linewidth,!0===ie.isPointLight&&!0===q.isMeshDistanceMaterial&&(n.properties.get(q).light=ie),q}function P(J,te,ie,W,q){if(!1===J.visible)return;if(J.layers.test(te.layers)&&(J.isMesh||J.isLine||J.isPoints)&&(J.castShadow||J.receiveShadow&&q===Nh)&&(!J.frustumCulled||i.intersectsObject(J))){J.modelViewMatrix.multiplyMatrices(ie.matrixWorldInverse,J.matrixWorld);const Ue=t.update(J),ce=J.material;if(Array.isArray(ce)){const ze=Ue.groups;for(let Ce=0,Oe=ze.length;Cem||r.y>m)&&(r.x>m&&(s.x=Math.floor(m/ft.x),r.x=s.x*ft.x,Fe.mapSize.x=s.x),r.y>m&&(s.y=Math.floor(m/ft.y),r.y=s.y*ft.y,Fe.mapSize.y=s.y)),null===Fe.map||!0===Ue||!0===ce){const kt=this.type!==Nh?{minFilter:ha,magFilter:ha}:{};null!==Fe.map&&Fe.map.dispose(),Fe.map=new Cl(r.x,r.y,kt),Fe.map.texture.name=Oe.name+".shadowMap",Fe.camera.updateProjectionMatrix()}n.setRenderTarget(Fe.map),n.clear();const Et=Fe.getViewportCount();for(let kt=0;kt=1):-1!==Oe.indexOf("OpenGL ES")&&(Ce=parseFloat(/^OpenGL ES (\d)/.exec(Oe)[1]),ze=Ce>=2);let Fe=null,ft={};const Et=n.getParameter(n.SCISSOR_BOX),kt=n.getParameter(n.VIEWPORT),nn=(new Lr).fromArray(Et),Xn=(new Lr).fromArray(kt);function Me(ht,wn,$t,Kt){const Tn=new Uint8Array(4),tr=n.createTexture();n.bindTexture(ht,tr),n.texParameteri(ht,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(ht,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let qr=0;qr<$t;qr++)ht===n.TEXTURE_3D||ht===n.TEXTURE_2D_ARRAY?n.texImage3D(wn,0,n.RGBA,1,1,Kt,0,n.RGBA,n.UNSIGNED_BYTE,Tn):n.texImage2D(wn+qr,0,n.RGBA,1,1,0,n.RGBA,n.UNSIGNED_BYTE,Tn);return tr}const be={};function Ae(ht){!0!==p[ht]&&(n.enable(ht),p[ht]=!0)}function ae(ht){!1!==p[ht]&&(n.disable(ht),p[ht]=!1)}be[n.TEXTURE_2D]=Me(n.TEXTURE_2D,n.TEXTURE_2D,1),be[n.TEXTURE_CUBE_MAP]=Me(n.TEXTURE_CUBE_MAP,n.TEXTURE_CUBE_MAP_POSITIVE_X,6),be[n.TEXTURE_2D_ARRAY]=Me(n.TEXTURE_2D_ARRAY,n.TEXTURE_2D_ARRAY,1,1),be[n.TEXTURE_3D]=Me(n.TEXTURE_3D,n.TEXTURE_3D,1,1),r.setClear(0,0,0,1),s.setClear(1),l.setClear(0),Ae(n.DEPTH_TEST),s.setFunc(3),Mt(!1),_t(1),Ae(n.CULL_FACE),wt(0);const zt={[ns]:n.FUNC_ADD,[yg]:n.FUNC_SUBTRACT,[SL]:n.FUNC_REVERSE_SUBTRACT};zt[103]=n.MIN,zt[104]=n.MAX;const de={[k9]:n.ZERO,[db]:n.ONE,[IL]:n.SRC_COLOR,[NE]:n.SRC_ALPHA,[cB]:n.SRC_ALPHA_SATURATE,[BL]:n.DST_COLOR,[FL]:n.DST_ALPHA,[OE]:n.ONE_MINUS_SRC_COLOR,[W1]:n.ONE_MINUS_SRC_ALPHA,[LE]:n.ONE_MINUS_DST_COLOR,[DL]:n.ONE_MINUS_DST_ALPHA,[kL]:n.CONSTANT_COLOR,[X1]:n.ONE_MINUS_CONSTANT_COLOR,[UE]:n.CONSTANT_ALPHA,[R9]:n.ONE_MINUS_CONSTANT_ALPHA};function wt(ht,wn,$t,Kt,Tn,tr,qr,Gs,La,ho){if(0!==ht){if(!1===F&&(Ae(n.BLEND),F=!0),5===ht)Tn=Tn||wn,tr=tr||$t,qr=qr||Kt,(wn!==T||Tn!==R)&&(n.blendEquationSeparate(zt[wn],zt[Tn]),T=wn,R=Tn),($t!==I||Kt!==O||tr!==P||qr!==ee)&&(n.blendFuncSeparate(de[$t],de[Kt],de[tr],de[qr]),I=$t,O=Kt,P=tr,ee=qr),(!1===Gs.equals(J)||La!==te)&&(n.blendColor(Gs.r,Gs.g,Gs.b,La),J.copy(Gs),te=La),D=ht,ie=!1;else if(ht!==D||ho!==ie){if((100!==T||100!==R)&&(n.blendEquation(n.FUNC_ADD),T=100,R=100),ho)switch(ht){case 1:n.blendFuncSeparate(n.ONE,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA);break;case 2:n.blendFunc(n.ONE,n.ONE);break;case 3:n.blendFuncSeparate(n.ZERO,n.ONE_MINUS_SRC_COLOR,n.ZERO,n.ONE);break;case 4:n.blendFuncSeparate(n.ZERO,n.SRC_COLOR,n.ZERO,n.SRC_ALPHA);break;default:console.error("THREE.WebGLState: Invalid blending: ",ht)}else switch(ht){case 1:n.blendFuncSeparate(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA);break;case 2:n.blendFunc(n.SRC_ALPHA,n.ONE);break;case 3:n.blendFuncSeparate(n.ZERO,n.ONE_MINUS_SRC_COLOR,n.ZERO,n.ONE);break;case 4:n.blendFunc(n.ZERO,n.SRC_COLOR);break;default:console.error("THREE.WebGLState: Invalid blending: ",ht)}I=null,O=null,P=null,ee=null,J.set(0,0,0),te=0,D=ht,ie=ho}}else!0===F&&(ae(n.BLEND),F=!1)}function Mt(ht){W!==ht&&(n.frontFace(ht?n.CW:n.CCW),W=ht)}function _t(ht){0!==ht?(Ae(n.CULL_FACE),ht!==q&&n.cullFace(1===ht?n.BACK:2===ht?n.FRONT:n.FRONT_AND_BACK)):ae(n.CULL_FACE),q=ht}function Pe(ht,wn,$t){ht?(Ae(n.POLYGON_OFFSET_FILL),(ke!==wn||Ue!==$t)&&(n.polygonOffset(wn,$t),ke=wn,Ue=$t)):ae(n.POLYGON_OFFSET_FILL)}return{buffers:{color:r,depth:s,stencil:l},enable:Ae,disable:ae,bindFramebuffer:function ut(ht,wn){return m[ht]!==wn&&(n.bindFramebuffer(ht,wn),m[ht]=wn,ht===n.DRAW_FRAMEBUFFER&&(m[n.FRAMEBUFFER]=wn),ht===n.FRAMEBUFFER&&(m[n.DRAW_FRAMEBUFFER]=wn),!0)},drawBuffers:function Nt(ht,wn){let $t=b,Kt=!1;if(ht){$t=_.get(wn),void 0===$t&&($t=[],_.set(wn,$t));const Tn=ht.textures;if($t.length!==Tn.length||$t[0]!==n.COLOR_ATTACHMENT0){for(let tr=0,qr=Tn.length;tr"u")&&/OculusBrowser/g.test(navigator.userAgent),p=new At,m=new WeakMap;let _;const b=new WeakMap;let w=!1;try{w=typeof OffscreenCanvas<"u"&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch{}function F(_e,oe){return w?new OffscreenCanvas(_e,oe):Gh("canvas")}function D(_e,oe,Ct){let Ht=1;const Vt=Se(_e);if((Vt.width>Ct||Vt.height>Ct)&&(Ht=Ct/Math.max(Vt.width,Vt.height)),Ht<1){if(typeof HTMLImageElement<"u"&&_e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&_e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&_e instanceof ImageBitmap||typeof VideoFrame<"u"&&_e instanceof VideoFrame){const jt=Math.floor(Ht*Vt.width),Si=Math.floor(Ht*Vt.height);void 0===_&&(_=F(jt,Si));const Fn=oe?F(jt,Si):_;return Fn.width=jt,Fn.height=Si,Fn.getContext("2d").drawImage(_e,0,0,jt,Si),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+Vt.width+"x"+Vt.height+") to ("+jt+"x"+Si+")."),Fn}return"data"in _e&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+Vt.width+"x"+Vt.height+")."),_e}return _e}function T(_e){return _e.generateMipmaps&&_e.minFilter!==ha&&_e.minFilter!==Ts}function I(_e){n.generateMipmap(_e)}function O(_e,oe,Ct,Ht,Vt=!1){if(null!==_e){if(void 0!==n[_e])return n[_e];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+_e+"'")}let jt=oe;if(oe===n.RED&&(Ct===n.FLOAT&&(jt=n.R32F),Ct===n.HALF_FLOAT&&(jt=n.R16F),Ct===n.UNSIGNED_BYTE&&(jt=n.R8)),oe===n.RED_INTEGER&&(Ct===n.UNSIGNED_BYTE&&(jt=n.R8UI),Ct===n.UNSIGNED_SHORT&&(jt=n.R16UI),Ct===n.UNSIGNED_INT&&(jt=n.R32UI),Ct===n.BYTE&&(jt=n.R8I),Ct===n.SHORT&&(jt=n.R16I),Ct===n.INT&&(jt=n.R32I)),oe===n.RG&&(Ct===n.FLOAT&&(jt=n.RG32F),Ct===n.HALF_FLOAT&&(jt=n.RG16F),Ct===n.UNSIGNED_BYTE&&(jt=n.RG8)),oe===n.RG_INTEGER&&(Ct===n.UNSIGNED_BYTE&&(jt=n.RG8UI),Ct===n.UNSIGNED_SHORT&&(jt=n.RG16UI),Ct===n.UNSIGNED_INT&&(jt=n.RG32UI),Ct===n.BYTE&&(jt=n.RG8I),Ct===n.SHORT&&(jt=n.RG16I),Ct===n.INT&&(jt=n.RG32I)),oe===n.RGB&&Ct===n.UNSIGNED_INT_5_9_9_9_REV&&(jt=n.RGB9_E5),oe===n.RGBA){const Si=Vt?oS:Nr.getTransfer(Ht);Ct===n.FLOAT&&(jt=n.RGBA32F),Ct===n.HALF_FLOAT&&(jt=n.RGBA16F),Ct===n.UNSIGNED_BYTE&&(jt=Si===Bo?n.SRGB8_ALPHA8:n.RGBA8),Ct===n.UNSIGNED_SHORT_4_4_4_4&&(jt=n.RGBA4),Ct===n.UNSIGNED_SHORT_5_5_5_1&&(jt=n.RGB5_A1)}return(jt===n.R16F||jt===n.R32F||jt===n.RG16F||jt===n.RG32F||jt===n.RGBA16F||jt===n.RGBA32F)&&t.get("EXT_color_buffer_float"),jt}function R(_e,oe){let Ct;return _e?null===oe||oe===Vh||oe===kp?Ct=n.DEPTH24_STENCIL8:oe===xl?Ct=n.DEPTH32F_STENCIL8:oe===fb&&(Ct=n.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):null===oe||oe===Vh||oe===kp?Ct=n.DEPTH_COMPONENT24:oe===xl?Ct=n.DEPTH_COMPONENT32F:oe===fb&&(Ct=n.DEPTH_COMPONENT16),Ct}function P(_e,oe){return!0===T(_e)||_e.isFramebufferTexture&&_e.minFilter!==ha&&_e.minFilter!==Ts?Math.log2(Math.max(oe.width,oe.height))+1:void 0!==_e.mipmaps&&_e.mipmaps.length>0?_e.mipmaps.length:_e.isCompressedTexture&&Array.isArray(_e.image)?oe.mipmaps.length:1}function ee(_e){const oe=_e.target;oe.removeEventListener("dispose",ee),function te(_e){const oe=i.get(_e);if(void 0===oe.__webglInit)return;const Ct=_e.source,Ht=b.get(Ct);if(Ht){const Vt=Ht[oe.__cacheKey];Vt.usedTimes--,0===Vt.usedTimes&&ie(_e),0===Object.keys(Ht).length&&b.delete(Ct)}i.remove(_e)}(oe),oe.isVideoTexture&&m.delete(oe)}function J(_e){const oe=_e.target;oe.removeEventListener("dispose",J),function W(_e){const oe=i.get(_e);if(_e.depthTexture&&_e.depthTexture.dispose(),_e.isWebGLCubeRenderTarget)for(let Ht=0;Ht<6;Ht++){if(Array.isArray(oe.__webglFramebuffer[Ht]))for(let Vt=0;Vt0&&Ct.__version!==_e.version){const Ht=_e.image;if(null===Ht)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==Ht.complete)return void Xn(Ct,_e,oe);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}e.bindTexture(n.TEXTURE_2D,Ct.__webglTexture,n.TEXTURE0+oe)}const Fe={[Bp]:n.REPEAT,[Id]:n.CLAMP_TO_EDGE,[HE]:n.MIRRORED_REPEAT},ft={[ha]:n.NEAREST,[HL]:n.NEAREST_MIPMAP_NEAREST,[tw]:n.NEAREST_MIPMAP_LINEAR,[Ts]:n.LINEAR,[ub]:n.LINEAR_MIPMAP_NEAREST,[Uh]:n.LINEAR_MIPMAP_LINEAR},Et={[j9]:n.NEVER,[e5]:n.ALWAYS,[ZL]:n.LESS,[JL]:n.LEQUAL,[$9]:n.EQUAL,[BB]:n.GEQUAL,[q9]:n.GREATER,[DB]:n.NOTEQUAL};function kt(_e,oe){if(oe.type===xl&&!1===t.has("OES_texture_float_linear")&&(oe.magFilter===Ts||1007===oe.magFilter||1005===oe.magFilter||oe.magFilter===Uh||oe.minFilter===Ts||1007===oe.minFilter||1005===oe.minFilter||oe.minFilter===Uh)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),n.texParameteri(_e,n.TEXTURE_WRAP_S,Fe[oe.wrapS]),n.texParameteri(_e,n.TEXTURE_WRAP_T,Fe[oe.wrapT]),(_e===n.TEXTURE_3D||_e===n.TEXTURE_2D_ARRAY)&&n.texParameteri(_e,n.TEXTURE_WRAP_R,Fe[oe.wrapR]),n.texParameteri(_e,n.TEXTURE_MAG_FILTER,ft[oe.magFilter]),n.texParameteri(_e,n.TEXTURE_MIN_FILTER,ft[oe.minFilter]),oe.compareFunction&&(n.texParameteri(_e,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(_e,n.TEXTURE_COMPARE_FUNC,Et[oe.compareFunction])),!0===t.has("EXT_texture_filter_anisotropic")){if(oe.magFilter===ha||1005!==oe.minFilter&&oe.minFilter!==Uh||oe.type===xl&&!1===t.has("OES_texture_float_linear"))return;if(oe.anisotropy>1||i.get(oe).__currentAnisotropy){const Ct=t.get("EXT_texture_filter_anisotropic");n.texParameterf(_e,Ct.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(oe.anisotropy,r.getMaxAnisotropy())),i.get(oe).__currentAnisotropy=oe.anisotropy}}}function nn(_e,oe){let Ct=!1;void 0===_e.__webglInit&&(_e.__webglInit=!0,oe.addEventListener("dispose",ee));const Ht=oe.source;let Vt=b.get(Ht);void 0===Vt&&(Vt={},b.set(Ht,Vt));const jt=function Ue(_e){const oe=[];return oe.push(_e.wrapS),oe.push(_e.wrapT),oe.push(_e.wrapR||0),oe.push(_e.magFilter),oe.push(_e.minFilter),oe.push(_e.anisotropy),oe.push(_e.internalFormat),oe.push(_e.format),oe.push(_e.type),oe.push(_e.generateMipmaps),oe.push(_e.premultiplyAlpha),oe.push(_e.flipY),oe.push(_e.unpackAlignment),oe.push(_e.colorSpace),oe.join()}(oe);if(jt!==_e.__cacheKey){void 0===Vt[jt]&&(Vt[jt]={texture:n.createTexture(),usedTimes:0},l.memory.textures++,Ct=!0),Vt[jt].usedTimes++;const Si=Vt[_e.__cacheKey];void 0!==Si&&(Vt[_e.__cacheKey].usedTimes--,0===Si.usedTimes&&ie(oe)),_e.__cacheKey=jt,_e.__webglTexture=Vt[jt].texture}return Ct}function Xn(_e,oe,Ct){let Ht=n.TEXTURE_2D;(oe.isDataArrayTexture||oe.isCompressedArrayTexture)&&(Ht=n.TEXTURE_2D_ARRAY),oe.isData3DTexture&&(Ht=n.TEXTURE_3D);const Vt=nn(_e,oe),jt=oe.source;e.bindTexture(Ht,_e.__webglTexture,n.TEXTURE0+Ct);const Si=i.get(jt);if(jt.version!==Si.__version||!0===Vt){e.activeTexture(n.TEXTURE0+Ct);const Fn=Nr.getPrimaries(Nr.workingColorSpace),Kn=""===oe.colorSpace?null:Nr.getPrimaries(oe.colorSpace),ir=""===oe.colorSpace||Fn===Kn?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,oe.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,oe.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,oe.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,ir);let hn=D(oe.image,!1,r.maxTextureSize);hn=Pe(oe,hn);const Yn=s.convert(oe.format,oe.colorSpace),kr=s.convert(oe.type);let ci,er=O(oe.internalFormat,Yn,kr,oe.colorSpace,oe.isVideoTexture);kt(Ht,oe);const dr=oe.mipmaps,Sr=!0!==oe.isVideoTexture,ss=void 0===Si.__version||!0===Vt,ht=jt.dataReady,wn=P(oe,hn);if(oe.isDepthTexture)er=R(oe.format===Mg,oe.type),ss&&(Sr?e.texStorage2D(n.TEXTURE_2D,1,er,hn.width,hn.height):e.texImage2D(n.TEXTURE_2D,0,er,hn.width,hn.height,0,Yn,kr,null));else if(oe.isDataTexture)if(dr.length>0){Sr&&ss&&e.texStorage2D(n.TEXTURE_2D,wn,er,dr[0].width,dr[0].height);for(let $t=0,Kt=dr.length;$t0){const Tn=I5(ci.width,ci.height,oe.format,oe.type);for(const tr of oe.layerUpdates){const qr=ci.data.subarray(tr*Tn/ci.data.BYTES_PER_ELEMENT,(tr+1)*Tn/ci.data.BYTES_PER_ELEMENT);e.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,$t,0,0,tr,ci.width,ci.height,1,Yn,qr,0,0)}oe.clearLayerUpdates()}else e.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,$t,0,0,0,ci.width,ci.height,hn.depth,Yn,ci.data,0,0)}else e.compressedTexImage3D(n.TEXTURE_2D_ARRAY,$t,er,ci.width,ci.height,hn.depth,0,ci.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else Sr?ht&&e.texSubImage3D(n.TEXTURE_2D_ARRAY,$t,0,0,0,ci.width,ci.height,hn.depth,Yn,kr,ci.data):e.texImage3D(n.TEXTURE_2D_ARRAY,$t,er,ci.width,ci.height,hn.depth,0,Yn,kr,ci.data)}else{Sr&&ss&&e.texStorage2D(n.TEXTURE_2D,wn,er,dr[0].width,dr[0].height);for(let $t=0,Kt=dr.length;$t0){const $t=I5(hn.width,hn.height,oe.format,oe.type);for(const Kt of oe.layerUpdates){const Tn=hn.data.subarray(Kt*$t/hn.data.BYTES_PER_ELEMENT,(Kt+1)*$t/hn.data.BYTES_PER_ELEMENT);e.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,Kt,hn.width,hn.height,1,Yn,kr,Tn)}oe.clearLayerUpdates()}else e.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,0,hn.width,hn.height,hn.depth,Yn,kr,hn.data)}else e.texImage3D(n.TEXTURE_2D_ARRAY,0,er,hn.width,hn.height,hn.depth,0,Yn,kr,hn.data);else if(oe.isData3DTexture)Sr?(ss&&e.texStorage3D(n.TEXTURE_3D,wn,er,hn.width,hn.height,hn.depth),ht&&e.texSubImage3D(n.TEXTURE_3D,0,0,0,0,hn.width,hn.height,hn.depth,Yn,kr,hn.data)):e.texImage3D(n.TEXTURE_3D,0,er,hn.width,hn.height,hn.depth,0,Yn,kr,hn.data);else if(oe.isFramebufferTexture){if(ss)if(Sr)e.texStorage2D(n.TEXTURE_2D,wn,er,hn.width,hn.height);else{let $t=hn.width,Kt=hn.height;for(let Tn=0;Tn>=1,Kt>>=1}}else if(dr.length>0){if(Sr&&ss){const $t=Se(dr[0]);e.texStorage2D(n.TEXTURE_2D,wn,er,$t.width,$t.height)}for(let $t=0,Kt=dr.length;$t>jt),Yn=Math.max(1,oe.height>>jt);Vt===n.TEXTURE_3D||Vt===n.TEXTURE_2D_ARRAY?e.texImage3D(Vt,jt,Kn,hn,Yn,oe.depth,0,Si,Fn,null):e.texImage2D(Vt,jt,Kn,hn,Yn,0,Si,Fn,null)}e.bindFramebuffer(n.FRAMEBUFFER,_e),_t(oe)?u.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,Ht,Vt,i.get(Ct).__webglTexture,0,Mt(oe)):(Vt===n.TEXTURE_2D||Vt>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&Vt<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,Ht,Vt,i.get(Ct).__webglTexture,jt),e.bindFramebuffer(n.FRAMEBUFFER,null)}function Ae(_e,oe,Ct){if(n.bindRenderbuffer(n.RENDERBUFFER,_e),oe.depthBuffer){const Ht=oe.depthTexture,jt=R(oe.stencilBuffer,Ht&&Ht.isDepthTexture?Ht.type:null),Si=oe.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Fn=Mt(oe);_t(oe)?u.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Fn,jt,oe.width,oe.height):Ct?n.renderbufferStorageMultisample(n.RENDERBUFFER,Fn,jt,oe.width,oe.height):n.renderbufferStorage(n.RENDERBUFFER,jt,oe.width,oe.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,Si,n.RENDERBUFFER,_e)}else{const Ht=oe.textures;for(let Vt=0;Vt{delete oe.__boundDepthTexture,delete oe.__depthDisposeCallback,Ht.removeEventListener("dispose",Vt)};Ht.addEventListener("dispose",Vt),oe.__depthDisposeCallback=Vt}oe.__boundDepthTexture=Ht}if(_e.depthTexture&&!oe.__autoAllocateDepthBuffer){if(Ct)throw new Error("target.depthTexture not supported in Cube render targets");!function ae(_e,oe){if(oe&&oe.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(e.bindFramebuffer(n.FRAMEBUFFER,_e),!oe.depthTexture||!oe.depthTexture.isDepthTexture)throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");(!i.get(oe.depthTexture).__webglTexture||oe.depthTexture.image.width!==oe.width||oe.depthTexture.image.height!==oe.height)&&(oe.depthTexture.image.width=oe.width,oe.depthTexture.image.height=oe.height,oe.depthTexture.needsUpdate=!0),ce(oe.depthTexture,0);const Ht=i.get(oe.depthTexture).__webglTexture,Vt=Mt(oe);if(oe.depthTexture.format===Cg)_t(oe)?u.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,Ht,0,Vt):n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,Ht,0);else{if(oe.depthTexture.format!==Mg)throw new Error("Unknown depthTexture format");_t(oe)?u.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.TEXTURE_2D,Ht,0,Vt):n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.TEXTURE_2D,Ht,0)}}(oe.__webglFramebuffer,_e)}else if(Ct){oe.__webglDepthbuffer=[];for(let Ht=0;Ht<6;Ht++)if(e.bindFramebuffer(n.FRAMEBUFFER,oe.__webglFramebuffer[Ht]),void 0===oe.__webglDepthbuffer[Ht])oe.__webglDepthbuffer[Ht]=n.createRenderbuffer(),Ae(oe.__webglDepthbuffer[Ht],_e,!1);else{const Vt=_e.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,jt=oe.__webglDepthbuffer[Ht];n.bindRenderbuffer(n.RENDERBUFFER,jt),n.framebufferRenderbuffer(n.FRAMEBUFFER,Vt,n.RENDERBUFFER,jt)}}else if(e.bindFramebuffer(n.FRAMEBUFFER,oe.__webglFramebuffer),void 0===oe.__webglDepthbuffer)oe.__webglDepthbuffer=n.createRenderbuffer(),Ae(oe.__webglDepthbuffer,_e,!1);else{const Ht=_e.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Vt=oe.__webglDepthbuffer;n.bindRenderbuffer(n.RENDERBUFFER,Vt),n.framebufferRenderbuffer(n.FRAMEBUFFER,Ht,n.RENDERBUFFER,Vt)}e.bindFramebuffer(n.FRAMEBUFFER,null)}const de=[],wt=[];function Mt(_e){return Math.min(r.maxSamples,_e.samples)}function _t(_e){const oe=i.get(_e);return _e.samples>0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==oe.__useRenderToTexture}function Pe(_e,oe){const Ct=_e.colorSpace,Ht=_e.format,Vt=_e.type;return!0===_e.isCompressedTexture||!0===_e.isVideoTexture||Ct!==Qh&&""!==Ct&&(Nr.getTransfer(Ct)===Bo?(Ht!==Ba||Vt!==Tu)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",Ct)),oe}function Se(_e){return typeof HTMLImageElement<"u"&&_e instanceof HTMLImageElement?(p.width=_e.naturalWidth||_e.width,p.height=_e.naturalHeight||_e.height):typeof VideoFrame<"u"&&_e instanceof VideoFrame?(p.width=_e.displayWidth,p.height=_e.displayHeight):(p.width=_e.width,p.height=_e.height),p}this.allocateTextureUnit=function ke(){const _e=q;return _e>=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+_e+" texture units while this GPU supports only "+r.maxTextures),q+=1,_e},this.resetTextureUnits=function le(){q=0},this.setTexture2D=ce,this.setTexture2DArray=function ze(_e,oe){const Ct=i.get(_e);_e.version>0&&Ct.__version!==_e.version?Xn(Ct,_e,oe):e.bindTexture(n.TEXTURE_2D_ARRAY,Ct.__webglTexture,n.TEXTURE0+oe)},this.setTexture3D=function Ce(_e,oe){const Ct=i.get(_e);_e.version>0&&Ct.__version!==_e.version?Xn(Ct,_e,oe):e.bindTexture(n.TEXTURE_3D,Ct.__webglTexture,n.TEXTURE0+oe)},this.setTextureCube=function Oe(_e,oe){const Ct=i.get(_e);_e.version>0&&Ct.__version!==_e.version?function Me(_e,oe,Ct){if(6!==oe.image.length)return;const Ht=nn(_e,oe),Vt=oe.source;e.bindTexture(n.TEXTURE_CUBE_MAP,_e.__webglTexture,n.TEXTURE0+Ct);const jt=i.get(Vt);if(Vt.version!==jt.__version||!0===Ht){e.activeTexture(n.TEXTURE0+Ct);const Si=Nr.getPrimaries(Nr.workingColorSpace),Fn=""===oe.colorSpace?null:Nr.getPrimaries(oe.colorSpace),Kn=""===oe.colorSpace||Si===Fn?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,oe.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,oe.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,oe.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,Kn);const ir=oe.isCompressedTexture||oe.image[0].isCompressedTexture,hn=oe.image[0]&&oe.image[0].isDataTexture,Yn=[];for(let Kt=0;Kt<6;Kt++)Yn[Kt]=ir||hn?hn?oe.image[Kt].image:oe.image[Kt]:D(oe.image[Kt],!0,r.maxCubemapSize),Yn[Kt]=Pe(oe,Yn[Kt]);const kr=Yn[0],er=s.convert(oe.format,oe.colorSpace),ci=s.convert(oe.type),dr=O(oe.internalFormat,er,ci,oe.colorSpace),Sr=!0!==oe.isVideoTexture,ss=void 0===jt.__version||!0===Ht,ht=Vt.dataReady;let $t,wn=P(oe,kr);if(kt(n.TEXTURE_CUBE_MAP,oe),ir){Sr&&ss&&e.texStorage2D(n.TEXTURE_CUBE_MAP,wn,dr,kr.width,kr.height);for(let Kt=0;Kt<6;Kt++){$t=Yn[Kt].mipmaps;for(let Tn=0;Tn<$t.length;Tn++){const tr=$t[Tn];oe.format!==Ba?null!==er?Sr?ht&&e.compressedTexSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,Tn,0,0,tr.width,tr.height,er,tr.data):e.compressedTexImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,Tn,dr,tr.width,tr.height,0,tr.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):Sr?ht&&e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,Tn,0,0,tr.width,tr.height,er,ci,tr.data):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,Tn,dr,tr.width,tr.height,0,er,ci,tr.data)}}}else{if($t=oe.mipmaps,Sr&&ss){$t.length>0&&wn++;const Kt=Se(Yn[0]);e.texStorage2D(n.TEXTURE_CUBE_MAP,wn,dr,Kt.width,Kt.height)}for(let Kt=0;Kt<6;Kt++)if(hn){Sr?ht&&e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,0,0,0,Yn[Kt].width,Yn[Kt].height,er,ci,Yn[Kt].data):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,0,dr,Yn[Kt].width,Yn[Kt].height,0,er,ci,Yn[Kt].data);for(let Tn=0;Tn<$t.length;Tn++){const qr=$t[Tn].image[Kt].image;Sr?ht&&e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,Tn+1,0,0,qr.width,qr.height,er,ci,qr.data):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,Tn+1,dr,qr.width,qr.height,0,er,ci,qr.data)}}else{Sr?ht&&e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,0,0,0,er,ci,Yn[Kt]):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,0,dr,er,ci,Yn[Kt]);for(let Tn=0;Tn<$t.length;Tn++){const tr=$t[Tn];Sr?ht&&e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,Tn+1,0,0,er,ci,tr.image[Kt]):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+Kt,Tn+1,dr,er,ci,tr.image[Kt])}}}T(oe)&&I(n.TEXTURE_CUBE_MAP),jt.__version=Vt.version,oe.onUpdate&&oe.onUpdate(oe)}_e.__version=oe.version}(Ct,_e,oe):e.bindTexture(n.TEXTURE_CUBE_MAP,Ct.__webglTexture,n.TEXTURE0+oe)},this.rebindTextures=function Nt(_e,oe,Ct){const Ht=i.get(_e);void 0!==oe&&be(Ht.__webglFramebuffer,_e,_e.texture,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,0),void 0!==Ct&&ut(_e)},this.setupRenderTarget=function lt(_e){const oe=_e.texture,Ct=i.get(_e),Ht=i.get(oe);_e.addEventListener("dispose",J);const Vt=_e.textures,jt=!0===_e.isWebGLCubeRenderTarget,Si=Vt.length>1;if(Si||(void 0===Ht.__webglTexture&&(Ht.__webglTexture=n.createTexture()),Ht.__version=oe.version,l.memory.textures++),jt){Ct.__webglFramebuffer=[];for(let Fn=0;Fn<6;Fn++)if(oe.mipmaps&&oe.mipmaps.length>0){Ct.__webglFramebuffer[Fn]=[];for(let Kn=0;Kn0){Ct.__webglFramebuffer=[];for(let Fn=0;Fn0&&!1===_t(_e)){Ct.__webglMultisampledFramebuffer=n.createFramebuffer(),Ct.__webglColorRenderbuffer=[],e.bindFramebuffer(n.FRAMEBUFFER,Ct.__webglMultisampledFramebuffer);for(let Fn=0;Fn0)for(let Kn=0;Kn0)for(let Kn=0;Kn0)if(!1===_t(_e)){const oe=_e.textures,Ct=_e.width,Ht=_e.height;let Vt=n.COLOR_BUFFER_BIT;const jt=_e.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Si=i.get(_e),Fn=oe.length>1;if(Fn)for(let Kn=0;Knw+F?(p.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!p.inputState.pinching&&b<=w-F&&(p.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==f&&t.gripSpace&&(s=e.getPose(t.gripSpace,i),null!==s&&(f.matrix.fromArray(s.transform.matrix),f.matrix.decompose(f.position,f.rotation,f.scale),f.matrixWorldNeedsUpdate=!0,s.linearVelocity?(f.hasLinearVelocity=!0,f.linearVelocity.copy(s.linearVelocity)):f.hasLinearVelocity=!1,s.angularVelocity?(f.hasAngularVelocity=!0,f.angularVelocity.copy(s.angularVelocity)):f.hasAngularVelocity=!1));null!==u&&(r=e.getPose(t.targetRaySpace,i),null===r&&null!==s&&(r=s),null!==r&&(u.matrix.fromArray(r.transform.matrix),u.matrix.decompose(u.position,u.rotation,u.scale),u.matrixWorldNeedsUpdate=!0,r.linearVelocity?(u.hasLinearVelocity=!0,u.linearVelocity.copy(r.linearVelocity)):u.hasLinearVelocity=!1,r.angularVelocity?(u.hasAngularVelocity=!0,u.angularVelocity.copy(r.angularVelocity)):u.hasAngularVelocity=!1,this.dispatchEvent(hne)))}return null!==u&&(u.visible=null!==r),null!==f&&(f.visible=null!==s),null!==p&&(p.visible=null!==l),this}_getHandJoint(t,e){if(void 0===t.joints[e.jointName]){const i=new ac;i.matrixAutoUpdate=!1,i.visible=!1,t.joints[e.jointName]=i,t.add(i)}return t.joints[e.jointName]}}class Ane{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,i){if(null===this.texture){const r=new Is;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 sc({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 cr(new Pw(20,20),i)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class mne extends Nc{constructor(t,e){super();const i=this;let r=null,s=1,l=null,u="local-floor",f=1,p=null,m=null,_=null,b=null,w=null,F=null;const D=new Ane,T=e.getContextAttributes();let I=null,O=null;const R=[],P=[],ee=new At;let J=null;const te=new ea;te.layers.enable(1),te.viewport=new Lr;const ie=new ea;ie.layers.enable(2),ie.viewport=new Lr;const W=[te,ie],q=new une;q.layers.enable(1),q.layers.enable(2);let le=null,ke=null;function Ue(Me){const be=P.indexOf(Me.inputSource);if(-1===be)return;const Ae=R[be];void 0!==Ae&&(Ae.update(Me.inputSource,Me.frame,p||l),Ae.dispatchEvent({type:Me.type,data:Me.inputSource}))}function ce(){r.removeEventListener("select",Ue),r.removeEventListener("selectstart",Ue),r.removeEventListener("selectend",Ue),r.removeEventListener("squeeze",Ue),r.removeEventListener("squeezestart",Ue),r.removeEventListener("squeezeend",Ue),r.removeEventListener("end",ce),r.removeEventListener("inputsourceschange",ze);for(let Me=0;Me=0&&(P[ae]=null,R[ae].disconnect(Ae))}for(let be=0;be=P.length){P.push(Ae),ae=Nt;break}if(null===P[Nt]){P[Nt]=Ae,ae=Nt;break}}if(-1===ae)break}const ut=R[ae];ut&&ut.connect(Ae)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(Me){let be=R[Me];return void 0===be&&(be=new F5,R[Me]=be),be.getTargetRaySpace()},this.getControllerGrip=function(Me){let be=R[Me];return void 0===be&&(be=new F5,R[Me]=be),be.getGripSpace()},this.getHand=function(Me){let be=R[Me];return void 0===be&&(be=new F5,R[Me]=be),be.getHandSpace()},this.setFramebufferScaleFactor=function(Me){s=Me,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(Me){u=Me,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return p||l},this.setReferenceSpace=function(Me){p=Me},this.getBaseLayer=function(){return null!==b?b:w},this.getBinding=function(){return _},this.getFrame=function(){return F},this.getSession=function(){return r},this.setSession=function(){var Me=Cn(function*(be){if(r=be,null!==r){if(I=t.getRenderTarget(),r.addEventListener("select",Ue),r.addEventListener("selectstart",Ue),r.addEventListener("selectend",Ue),r.addEventListener("squeeze",Ue),r.addEventListener("squeezestart",Ue),r.addEventListener("squeezeend",Ue),r.addEventListener("end",ce),r.addEventListener("inputsourceschange",ze),!0!==T.xrCompatible&&(yield e.makeXRCompatible()),J=t.getPixelRatio(),t.getSize(ee),void 0===r.renderState.layers)w=new XRWebGLLayer(r,e,{antialias:T.antialias,alpha:!0,depth:T.depth,stencil:T.stencil,framebufferScaleFactor:s}),r.updateRenderState({baseLayer:w}),t.setPixelRatio(1),t.setSize(w.framebufferWidth,w.framebufferHeight,!1),O=new Cl(w.framebufferWidth,w.framebufferHeight,{format:Ba,type:Tu,colorSpace:t.outputColorSpace,stencilBuffer:T.stencil});else{let Ae=null,ae=null,ut=null;T.depth&&(ut=T.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,Ae=T.stencil?Mg:Cg,ae=T.stencil?kp:Vh);const Nt={colorFormat:e.RGBA8,depthFormat:ut,scaleFactor:s};_=new XRWebGLBinding(r,e),b=_.createProjectionLayer(Nt),r.updateRenderState({layers:[b]}),t.setPixelRatio(1),t.setSize(b.textureWidth,b.textureHeight,!1),O=new Cl(b.textureWidth,b.textureHeight,{format:Ba,type:Tu,depthTexture:new _Q(b.textureWidth,b.textureHeight,ae,void 0,void 0,void 0,void 0,void 0,void 0,Ae),stencilBuffer:T.stencil,colorSpace:t.outputColorSpace,samples:T.antialias?4:0,resolveDepthBuffer:!1===b.ignoreDepthValues})}O.isXRRenderTarget=!0,this.setFoveation(f),p=null,l=yield r.requestReferenceSpace(u),Xn.setContext(r),Xn.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}});return function(be){return Me.apply(this,arguments)}}(),this.getEnvironmentBlendMode=function(){if(null!==r)return r.environmentBlendMode},this.getDepthTexture=function(){return D.getDepthTexture()};const Ce=new pe,Oe=new pe;function ft(Me,be){null===be?Me.matrixWorld.copy(Me.matrix):Me.matrixWorld.multiplyMatrices(be.matrixWorld,Me.matrix),Me.matrixWorldInverse.copy(Me.matrixWorld).invert()}this.updateCamera=function(Me){if(null===r)return;let be=Me.near,Ae=Me.far;null!==D.texture&&(D.depthNear>0&&(be=D.depthNear),D.depthFar>0&&(Ae=D.depthFar)),q.near=ie.near=te.near=be,q.far=ie.far=te.far=Ae,(le!==q.near||ke!==q.far)&&(r.updateRenderState({depthNear:q.near,depthFar:q.far}),le=q.near,ke=q.far);const ae=Me.parent,ut=q.cameras;ft(q,ae);for(let Nt=0;Nt0&&(T.alphaTest.value=I.alphaTest);const O=t.get(I),R=O.envMap,P=O.envMapRotation;R&&(T.envMap.value=R,Hb.copy(P),Hb.x*=-1,Hb.y*=-1,Hb.z*=-1,R.isCubeTexture&&!1===R.isRenderTargetTexture&&(Hb.y*=-1,Hb.z*=-1),T.envMapRotation.value.setFromMatrix4(gne.makeRotationFromEuler(Hb)),T.flipEnvMap.value=R.isCubeTexture&&!1===R.isRenderTargetTexture?-1:1,T.reflectivity.value=I.reflectivity,T.ior.value=I.ior,T.refractionRatio.value=I.refractionRatio),I.lightMap&&(T.lightMap.value=I.lightMap,T.lightMapIntensity.value=I.lightMapIntensity,e(I.lightMap,T.lightMapTransform)),I.aoMap&&(T.aoMap.value=I.aoMap,T.aoMapIntensity.value=I.aoMapIntensity,e(I.aoMap,T.aoMapTransform))}return{refreshFogUniforms:function i(T,I){I.color.getRGB(T.fogColor.value,aQ(n)),I.isFog?(T.fogNear.value=I.near,T.fogFar.value=I.far):I.isFogExp2&&(T.fogDensity.value=I.density)},refreshMaterialUniforms:function r(T,I,O,R,P){I.isMeshBasicMaterial||I.isMeshLambertMaterial?s(T,I):I.isMeshToonMaterial?(s(T,I),function _(T,I){I.gradientMap&&(T.gradientMap.value=I.gradientMap)}(T,I)):I.isMeshPhongMaterial?(s(T,I),function m(T,I){T.specular.value.copy(I.specular),T.shininess.value=Math.max(I.shininess,1e-4)}(T,I)):I.isMeshStandardMaterial?(s(T,I),function b(T,I){T.metalness.value=I.metalness,I.metalnessMap&&(T.metalnessMap.value=I.metalnessMap,e(I.metalnessMap,T.metalnessMapTransform)),T.roughness.value=I.roughness,I.roughnessMap&&(T.roughnessMap.value=I.roughnessMap,e(I.roughnessMap,T.roughnessMapTransform)),I.envMap&&(T.envMapIntensity.value=I.envMapIntensity)}(T,I),I.isMeshPhysicalMaterial&&function w(T,I,O){T.ior.value=I.ior,I.sheen>0&&(T.sheenColor.value.copy(I.sheenColor).multiplyScalar(I.sheen),T.sheenRoughness.value=I.sheenRoughness,I.sheenColorMap&&(T.sheenColorMap.value=I.sheenColorMap,e(I.sheenColorMap,T.sheenColorMapTransform)),I.sheenRoughnessMap&&(T.sheenRoughnessMap.value=I.sheenRoughnessMap,e(I.sheenRoughnessMap,T.sheenRoughnessMapTransform))),I.clearcoat>0&&(T.clearcoat.value=I.clearcoat,T.clearcoatRoughness.value=I.clearcoatRoughness,I.clearcoatMap&&(T.clearcoatMap.value=I.clearcoatMap,e(I.clearcoatMap,T.clearcoatMapTransform)),I.clearcoatRoughnessMap&&(T.clearcoatRoughnessMap.value=I.clearcoatRoughnessMap,e(I.clearcoatRoughnessMap,T.clearcoatRoughnessMapTransform)),I.clearcoatNormalMap&&(T.clearcoatNormalMap.value=I.clearcoatNormalMap,e(I.clearcoatNormalMap,T.clearcoatNormalMapTransform),T.clearcoatNormalScale.value.copy(I.clearcoatNormalScale),1===I.side&&T.clearcoatNormalScale.value.negate())),I.dispersion>0&&(T.dispersion.value=I.dispersion),I.iridescence>0&&(T.iridescence.value=I.iridescence,T.iridescenceIOR.value=I.iridescenceIOR,T.iridescenceThicknessMinimum.value=I.iridescenceThicknessRange[0],T.iridescenceThicknessMaximum.value=I.iridescenceThicknessRange[1],I.iridescenceMap&&(T.iridescenceMap.value=I.iridescenceMap,e(I.iridescenceMap,T.iridescenceMapTransform)),I.iridescenceThicknessMap&&(T.iridescenceThicknessMap.value=I.iridescenceThicknessMap,e(I.iridescenceThicknessMap,T.iridescenceThicknessMapTransform))),I.transmission>0&&(T.transmission.value=I.transmission,T.transmissionSamplerMap.value=O.texture,T.transmissionSamplerSize.value.set(O.width,O.height),I.transmissionMap&&(T.transmissionMap.value=I.transmissionMap,e(I.transmissionMap,T.transmissionMapTransform)),T.thickness.value=I.thickness,I.thicknessMap&&(T.thicknessMap.value=I.thicknessMap,e(I.thicknessMap,T.thicknessMapTransform)),T.attenuationDistance.value=I.attenuationDistance,T.attenuationColor.value.copy(I.attenuationColor)),I.anisotropy>0&&(T.anisotropyVector.value.set(I.anisotropy*Math.cos(I.anisotropyRotation),I.anisotropy*Math.sin(I.anisotropyRotation)),I.anisotropyMap&&(T.anisotropyMap.value=I.anisotropyMap,e(I.anisotropyMap,T.anisotropyMapTransform))),T.specularIntensity.value=I.specularIntensity,T.specularColor.value.copy(I.specularColor),I.specularColorMap&&(T.specularColorMap.value=I.specularColorMap,e(I.specularColorMap,T.specularColorMapTransform)),I.specularIntensityMap&&(T.specularIntensityMap.value=I.specularIntensityMap,e(I.specularIntensityMap,T.specularIntensityMapTransform))}(T,I,P)):I.isMeshMatcapMaterial?(s(T,I),function F(T,I){I.matcap&&(T.matcap.value=I.matcap)}(T,I)):I.isMeshDepthMaterial?s(T,I):I.isMeshDistanceMaterial?(s(T,I),function D(T,I){const O=t.get(I).light;T.referencePosition.value.setFromMatrixPosition(O.matrixWorld),T.nearDistance.value=O.shadow.camera.near,T.farDistance.value=O.shadow.camera.far}(T,I)):I.isMeshNormalMaterial?s(T,I):I.isLineBasicMaterial?(function l(T,I){T.diffuse.value.copy(I.color),T.opacity.value=I.opacity,I.map&&(T.map.value=I.map,e(I.map,T.mapTransform))}(T,I),I.isLineDashedMaterial&&function u(T,I){T.dashSize.value=I.dashSize,T.totalSize.value=I.dashSize+I.gapSize,T.scale.value=I.scale}(T,I)):I.isPointsMaterial?function f(T,I,O,R){T.diffuse.value.copy(I.color),T.opacity.value=I.opacity,T.size.value=I.size*O,T.scale.value=.5*R,I.map&&(T.map.value=I.map,e(I.map,T.uvTransform)),I.alphaMap&&(T.alphaMap.value=I.alphaMap,e(I.alphaMap,T.alphaMapTransform)),I.alphaTest>0&&(T.alphaTest.value=I.alphaTest)}(T,I,O,R):I.isSpriteMaterial?function p(T,I){T.diffuse.value.copy(I.color),T.opacity.value=I.opacity,T.rotation.value=I.rotation,I.map&&(T.map.value=I.map,e(I.map,T.mapTransform)),I.alphaMap&&(T.alphaMap.value=I.alphaMap,e(I.alphaMap,T.alphaMapTransform)),I.alphaTest>0&&(T.alphaTest.value=I.alphaTest)}(T,I):I.isShadowMaterial?(T.color.value.copy(I.color),T.opacity.value=I.opacity):I.isShaderMaterial&&(I.uniformsNeedUpdate=!1)}}}function bne(n,t,e,i){let r={},s={},l=[];const u=n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS);function w(O,R,P,ee){const J=O.value,te=R+"_"+P;if(void 0===ee[te])return ee[te]="number"==typeof J||"boolean"==typeof J?J:J.clone(),!0;{const ie=ee[te];if("number"==typeof J||"boolean"==typeof J){if(ie!==J)return ee[te]=J,!0}else if(!1===ie.equals(J))return ie.copy(J),!0}return!1}function D(O){const R={boundary:0,storage:0};return"number"==typeof O||"boolean"==typeof O?(R.boundary=4,R.storage=4):O.isVector2?(R.boundary=8,R.storage=8):O.isVector3||O.isColor?(R.boundary=16,R.storage=12):O.isVector4?(R.boundary=16,R.storage=16):O.isMatrix3?(R.boundary=48,R.storage=48):O.isMatrix4?(R.boundary=64,R.storage=64):O.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",O),R}function T(O){const R=O.target;R.removeEventListener("dispose",T);const P=l.indexOf(R.__bindingPointIndex);l.splice(P,1),n.deleteBuffer(r[R.id]),delete r[R.id],delete s[R.id]}return{bind:function f(O,R){i.uniformBlockBinding(O,R.program)},update:function p(O,R){let P=r[O.id];void 0===P&&(function F(O){const R=O.uniforms;let P=0;for(let te=0,ie=R.length;te0&&(P+=16-J),O.__size=P,O.__cache={}}(O),P=function m(O){const R=function _(){for(let O=0;O0),Ri=!!Dt.morphAttributes.position,to=!!Dt.morphAttributes.normal,jo=!!Dt.morphAttributes.color;let vs=Eu;Bt.toneMapped&&(null===te||!0===te.isXRRenderTarget)&&(vs=R.toneMapping);const $c=Dt.morphAttributes.position||Dt.morphAttributes.normal||Dt.morphAttributes.color,fo=void 0!==$c?$c.length:0,Pi=Pe.get(Bt),Ua=T.state.lights;!0!==Me||!0!==be&&ye===W||ir.setState(Bt,ye,ye===W&&Bt.id===ie);let po=!1;Bt.version===Pi.__version?(Pi.needsLights&&Pi.lightsStateVersion!==Ua.state.version||Pi.outputColorSpace!==xi||vt.isBatchedMesh&&!1===Pi.batching||!vt.isBatchedMesh&&!0===Pi.batching||vt.isBatchedMesh&&!0===Pi.batchingColor&&null===vt.colorTexture||vt.isBatchedMesh&&!1===Pi.batchingColor&&null!==vt.colorTexture||vt.isInstancedMesh&&!1===Pi.instancing||!vt.isInstancedMesh&&!0===Pi.instancing||vt.isSkinnedMesh&&!1===Pi.skinning||!vt.isSkinnedMesh&&!0===Pi.skinning||vt.isInstancedMesh&&!0===Pi.instancingColor&&null===vt.instanceColor||vt.isInstancedMesh&&!1===Pi.instancingColor&&null!==vt.instanceColor||vt.isInstancedMesh&&!0===Pi.instancingMorph&&null===vt.morphTexture||vt.isInstancedMesh&&!1===Pi.instancingMorph&&null!==vt.morphTexture||Pi.envMap!==gi||!0===Bt.fog&&Pi.fog!==xn||void 0!==Pi.numClippingPlanes&&(Pi.numClippingPlanes!==ir.numPlanes||Pi.numIntersection!==ir.numIntersection)||Pi.vertexAlphas!==Wi||Pi.vertexTangents!==rr||Pi.morphTargets!==Ri||Pi.morphNormals!==to||Pi.morphColors!==jo||Pi.toneMapping!==vs||Pi.morphTargetsCount!==fo)&&(po=!0):(po=!0,Pi.__version=Bt.version);let qu=Pi.currentProgram;!0===po&&(qu=IP(Bt,ct,vt));let Px=!1,qc=!1,yV=!1;const js=qu.getUniforms(),_0=Pi.uniforms;if(_t.useProgram(qu.program)&&(Px=!0,qc=!0,yV=!0),Bt.id!==ie&&(ie=Bt.id,qc=!0),Px||W!==ye){js.setValue(de,"projectionMatrix",ye.projectionMatrix),js.setValue(de,"viewMatrix",ye.matrixWorldInverse);const Ld=js.map.cameraPosition;void 0!==Ld&&Ld.setValue(de,ae.setFromMatrixPosition(ye.matrixWorld)),Mt.logarithmicDepthBuffer&&js.setValue(de,"logDepthBufFC",2/(Math.log(ye.far+1)/Math.LN2)),(Bt.isMeshPhongMaterial||Bt.isMeshToonMaterial||Bt.isMeshLambertMaterial||Bt.isMeshBasicMaterial||Bt.isMeshStandardMaterial||Bt.isShaderMaterial)&&js.setValue(de,"isOrthographic",!0===ye.isOrthographicCamera),W!==ye&&(W=ye,qc=!0,yV=!0)}if(vt.isSkinnedMesh){js.setOptional(de,vt,"bindMatrix"),js.setOptional(de,vt,"bindMatrixInverse");const Ld=vt.skeleton;Ld&&(null===Ld.boneTexture&&Ld.computeBoneTexture(),js.setValue(de,"boneTexture",Ld.boneTexture,Se))}vt.isBatchedMesh&&(js.setOptional(de,vt,"batchingTexture"),js.setValue(de,"batchingTexture",vt._matricesTexture,Se),js.setOptional(de,vt,"batchingIdTexture"),js.setValue(de,"batchingIdTexture",vt._indirectTexture,Se),js.setOptional(de,vt,"batchingColorTexture"),null!==vt._colorsTexture&&js.setValue(de,"batchingColorTexture",vt._colorsTexture,Se));const wV=Dt.morphAttributes;if((void 0!==wV.position||void 0!==wV.normal||void 0!==wV.color)&&kr.update(vt,Dt,qu),(qc||Pi.receiveShadow!==vt.receiveShadow)&&(Pi.receiveShadow=vt.receiveShadow,js.setValue(de,"receiveShadow",vt.receiveShadow)),Bt.isMeshGouraudMaterial&&null!==Bt.envMap&&(_0.envMap.value=gi,_0.flipEnvMap.value=gi.isCubeTexture&&!1===gi.isRenderTargetTexture?-1:1),Bt.isMeshStandardMaterial&&null===Bt.envMap&&null!==ct.environment&&(_0.envMapIntensity.value=ct.environmentIntensity),qc&&(js.setValue(de,"toneMappingExposure",R.toneMappingExposure),Pi.needsLights&&function oEe(ye,ct){ye.ambientLightColor.needsUpdate=ct,ye.lightProbe.needsUpdate=ct,ye.directionalLights.needsUpdate=ct,ye.directionalLightShadows.needsUpdate=ct,ye.pointLights.needsUpdate=ct,ye.pointLightShadows.needsUpdate=ct,ye.spotLights.needsUpdate=ct,ye.spotLightShadows.needsUpdate=ct,ye.rectAreaLights.needsUpdate=ct,ye.hemisphereLights.needsUpdate=ct}(_0,yV),xn&&!0===Bt.fog&&Si.refreshFogUniforms(_0,xn),Si.refreshMaterialUniforms(_0,Bt,Oe,Ce,T.state.transmissionRenderTarget[ye.id]),vk.upload(de,CY(Pi),_0,Se)),Bt.isShaderMaterial&&!0===Bt.uniformsNeedUpdate&&(vk.upload(de,CY(Pi),_0,Se),Bt.uniformsNeedUpdate=!1),Bt.isSpriteMaterial&&js.setValue(de,"center",vt.center),js.setValue(de,"modelViewMatrix",vt.modelViewMatrix),js.setValue(de,"normalMatrix",vt.normalMatrix),js.setValue(de,"modelMatrix",vt.matrixWorld),Bt.isShaderMaterial||Bt.isRawShaderMaterial){const Ld=Bt.uniformsGroups;for(let xV=0,aEe=Ld.length;xV{function xn(){Bt.forEach(function(Zn){Pe.get(Zn).currentProgram.isReady()&&Bt.delete(Zn)}),0!==Bt.size?setTimeout(xn,10):vt(ye)}null!==Ze.get("KHR_parallel_shader_compile")?xn():setTimeout(xn,10)})};let ho=null;function bf(){gv.stop()}function vY(){gv.start()}const gv=new dQ;function vV(ye,ct,Dt,Bt){if(!1===ye.visible)return;if(ye.layers.test(ct.layers))if(ye.isGroup)Dt=ye.renderOrder;else if(ye.isLOD)!0===ye.autoUpdate&&ye.update(ct);else if(ye.isLight)T.pushLight(ye),ye.castShadow&&T.pushShadow(ye);else if(ye.isSprite){if(!ye.frustumCulled||Xn.intersectsSprite(ye)){Bt&&ut.setFromMatrixPosition(ye.matrixWorld).applyMatrix4(Ae);const Zn=Vt.update(ye),xi=ye.material;xi.visible&&D.push(ye,Zn,xi,Dt,ut.z,null)}}else if((ye.isMesh||ye.isLine||ye.isPoints)&&(!ye.frustumCulled||Xn.intersectsObject(ye))){const Zn=Vt.update(ye),xi=ye.material;if(Bt&&(void 0!==ye.boundingSphere?(null===ye.boundingSphere&&ye.computeBoundingSphere(),ut.copy(ye.boundingSphere.center)):(null===Zn.boundingSphere&&Zn.computeBoundingSphere(),ut.copy(Zn.boundingSphere.center)),ut.applyMatrix4(ye.matrixWorld).applyMatrix4(Ae)),Array.isArray(xi)){const gi=Zn.groups;for(let Wi=0,rr=gi.length;Wi0&&TP(vt,ct,Dt),xn.length>0&&TP(xn,ct,Dt),Zn.length>0&&TP(Zn,ct,Dt),_t.buffers.depth.setTest(!0),_t.buffers.depth.setMask(!0),_t.buffers.color.setMask(!0),_t.setPolygonOffset(!1)}function wY(ye,ct,Dt,Bt){if(null!==(!0===Dt.isScene?Dt.overrideMaterial:null))return;void 0===T.state.transmissionRenderTarget[Bt.id]&&(T.state.transmissionRenderTarget[Bt.id]=new Cl(1,1,{generateMipmaps:!0,type:Ze.has("EXT_color_buffer_half_float")||Ze.has("EXT_color_buffer_float")?xg:Tu,minFilter:Uh,samples:4,stencilBuffer:s,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:Nr.workingColorSpace}));const xn=T.state.transmissionRenderTarget[Bt.id],Zn=Bt.viewport||q;xn.setSize(Zn.z,Zn.w);const xi=R.getRenderTarget();R.setRenderTarget(xn),R.getClearColor(Ue),ce=R.getClearAlpha(),ce<1&&R.setClearColor(16777215,.5),R.clear(),lt&&Yn.render(Dt);const gi=R.toneMapping;R.toneMapping=Eu;const Wi=Bt.viewport;if(void 0!==Bt.viewport&&(Bt.viewport=void 0),T.setupLightsView(Bt),!0===Me&&ir.setGlobalState(R.clippingPlanes,Bt),TP(ye,Dt,Bt),Se.updateMultisampleRenderTarget(xn),Se.updateRenderTargetMipmap(xn),!1===Ze.has("WEBGL_multisampled_render_to_texture")){let rr=!1;for(let Ri=0,to=ct.length;Ri0)for(let Zn=0,xi=xn.length;Zn0&&wY(Bt,vt,ye,ct),lt&&Yn.render(ye),yY(D,ye,ct);null!==te&&(Se.updateMultisampleRenderTarget(te),Se.updateRenderTargetMipmap(te)),!0===ye.isScene&&ye.onAfterRender(R,ye,ct),Sr.resetDefaultState(),ie=-1,W=null,O.pop(),O.length>0?(T=O[O.length-1],!0===Me&&ir.setGlobalState(R.clippingPlanes,T.state.camera)):T=null,I.pop(),D=I.length>0?I[I.length-1]:null},this.getActiveCubeFace=function(){return ee},this.getActiveMipmapLevel=function(){return J},this.getRenderTarget=function(){return te},this.setRenderTargetTextures=function(ye,ct,Dt){Pe.get(ye.texture).__webglTexture=ct,Pe.get(ye.depthTexture).__webglTexture=Dt;const Bt=Pe.get(ye);Bt.__hasExternalTextures=!0,Bt.__autoAllocateDepthBuffer=void 0===Dt,Bt.__autoAllocateDepthBuffer||!0===Ze.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),Bt.__useRenderToTexture=!1)},this.setRenderTargetFramebuffer=function(ye,ct){const Dt=Pe.get(ye);Dt.__webglFramebuffer=ct,Dt.__useDefaultFramebuffer=void 0===ct},this.setRenderTarget=function(ye,ct=0,Dt=0){te=ye,ee=ct,J=Dt;let Bt=!0,vt=null,xn=!1,Zn=!1;if(ye){const gi=Pe.get(ye);if(void 0!==gi.__useDefaultFramebuffer)_t.bindFramebuffer(de.FRAMEBUFFER,null),Bt=!1;else if(void 0===gi.__webglFramebuffer)Se.setupRenderTarget(ye);else if(gi.__hasExternalTextures)Se.rebindTextures(ye,Pe.get(ye.texture).__webglTexture,Pe.get(ye.depthTexture).__webglTexture);else if(ye.depthBuffer){const Ri=ye.depthTexture;if(gi.__boundDepthTexture!==Ri){if(null!==Ri&&Pe.has(Ri)&&(ye.width!==Ri.image.width||ye.height!==Ri.image.height))throw new Error("WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.");Se.setupDepthRenderbuffer(ye)}}const Wi=ye.texture;(Wi.isData3DTexture||Wi.isDataArrayTexture||Wi.isCompressedArrayTexture)&&(Zn=!0);const rr=Pe.get(ye).__webglFramebuffer;ye.isWebGLCubeRenderTarget?(vt=Array.isArray(rr[ct])?rr[ct][Dt]:rr[ct],xn=!0):vt=ye.samples>0&&!1===Se.useMultisampledRTT(ye)?Pe.get(ye).__webglMultisampledFramebuffer:Array.isArray(rr)?rr[Dt]:rr,q.copy(ye.viewport),le.copy(ye.scissor),ke=ye.scissorTest}else q.copy(Et).multiplyScalar(Oe).floor(),le.copy(kt).multiplyScalar(Oe).floor(),ke=nn;if(_t.bindFramebuffer(de.FRAMEBUFFER,vt)&&Bt&&_t.drawBuffers(ye,vt),_t.viewport(q),_t.scissor(le),_t.setScissorTest(ke),xn){const gi=Pe.get(ye.texture);de.framebufferTexture2D(de.FRAMEBUFFER,de.COLOR_ATTACHMENT0,de.TEXTURE_CUBE_MAP_POSITIVE_X+ct,gi.__webglTexture,Dt)}else if(Zn){const gi=Pe.get(ye.texture);de.framebufferTextureLayer(de.FRAMEBUFFER,de.COLOR_ATTACHMENT0,gi.__webglTexture,Dt||0,ct||0)}ie=-1},this.readRenderTargetPixels=function(ye,ct,Dt,Bt,vt,xn,Zn){if(!ye||!ye.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let xi=Pe.get(ye).__webglFramebuffer;if(ye.isWebGLCubeRenderTarget&&void 0!==Zn&&(xi=xi[Zn]),xi){_t.bindFramebuffer(de.FRAMEBUFFER,xi);try{const gi=ye.texture,Wi=gi.format,rr=gi.type;if(!Mt.textureFormatReadable(Wi))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");if(!Mt.textureTypeReadable(rr))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");ct>=0&&ct<=ye.width-Bt&&Dt>=0&&Dt<=ye.height-vt&&de.readPixels(ct,Dt,Bt,vt,dr.convert(Wi),dr.convert(rr),xn)}finally{const gi=null!==te?Pe.get(te).__webglFramebuffer:null;_t.bindFramebuffer(de.FRAMEBUFFER,gi)}}},this.readRenderTargetPixelsAsync=function(){var ye=Cn(function*(ct,Dt,Bt,vt,xn,Zn,xi){if(!ct||!ct.isWebGLRenderTarget)throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let gi=Pe.get(ct).__webglFramebuffer;if(ct.isWebGLCubeRenderTarget&&void 0!==xi&&(gi=gi[xi]),gi){_t.bindFramebuffer(de.FRAMEBUFFER,gi);try{const Wi=ct.texture,rr=Wi.format,Ri=Wi.type;if(!Mt.textureFormatReadable(rr))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!Mt.textureTypeReadable(Ri))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(Dt>=0&&Dt<=ct.width-vt&&Bt>=0&&Bt<=ct.height-xn){const to=de.createBuffer();de.bindBuffer(de.PIXEL_PACK_BUFFER,to),de.bufferData(de.PIXEL_PACK_BUFFER,Zn.byteLength,de.STREAM_READ),de.readPixels(Dt,Bt,vt,xn,dr.convert(rr),dr.convert(Ri),0),de.flush();const jo=de.fenceSync(de.SYNC_GPU_COMMANDS_COMPLETE,0);yield function J9(n,t,e){return new Promise(function(i,r){setTimeout(function s(){switch(n.clientWaitSync(t,n.SYNC_FLUSH_COMMANDS_BIT,0)){case n.WAIT_FAILED:r();break;case n.TIMEOUT_EXPIRED:setTimeout(s,e);break;default:i()}},e)})}(de,jo,4);try{de.bindBuffer(de.PIXEL_PACK_BUFFER,to),de.getBufferSubData(de.PIXEL_PACK_BUFFER,0,Zn)}finally{de.deleteBuffer(to),de.deleteSync(jo)}return Zn}}finally{const Wi=null!==te?Pe.get(te).__webglFramebuffer:null;_t.bindFramebuffer(de.FRAMEBUFFER,Wi)}}});return function(ct,Dt,Bt,vt,xn,Zn,xi){return ye.apply(this,arguments)}}(),this.copyFramebufferToTexture=function(ye,ct=null,Dt=0){!0!==ye.isTexture&&(Ig("WebGLRenderer: copyFramebufferToTexture function signature has changed."),ct=arguments[0]||null,ye=arguments[1]);const Bt=Math.pow(2,-Dt),vt=Math.floor(ye.image.width*Bt),xn=Math.floor(ye.image.height*Bt),Zn=null!==ct?ct.x:0,xi=null!==ct?ct.y:0;Se.setTexture2D(ye,0),de.copyTexSubImage2D(de.TEXTURE_2D,Dt,0,0,Zn,xi,vt,xn),_t.unbindTexture()},this.copyTextureToTexture=function(ye,ct,Dt=null,Bt=null,vt=0){let xn,Zn,xi,gi,Wi,rr;!0!==ye.isTexture&&(Ig("WebGLRenderer: copyTextureToTexture function signature has changed."),Bt=arguments[0]||null,ye=arguments[1],ct=arguments[2],vt=arguments[3]||0,Dt=null),null!==Dt?(xn=Dt.max.x-Dt.min.x,Zn=Dt.max.y-Dt.min.y,xi=Dt.min.x,gi=Dt.min.y):(xn=ye.image.width,Zn=ye.image.height,xi=0,gi=0),null!==Bt?(Wi=Bt.x,rr=Bt.y):(Wi=0,rr=0);const Ri=dr.convert(ct.format),to=dr.convert(ct.type);Se.setTexture2D(ct,0),de.pixelStorei(de.UNPACK_FLIP_Y_WEBGL,ct.flipY),de.pixelStorei(de.UNPACK_PREMULTIPLY_ALPHA_WEBGL,ct.premultiplyAlpha),de.pixelStorei(de.UNPACK_ALIGNMENT,ct.unpackAlignment);const jo=de.getParameter(de.UNPACK_ROW_LENGTH),vs=de.getParameter(de.UNPACK_IMAGE_HEIGHT),$c=de.getParameter(de.UNPACK_SKIP_PIXELS),fo=de.getParameter(de.UNPACK_SKIP_ROWS),Pi=de.getParameter(de.UNPACK_SKIP_IMAGES),Ua=ye.isCompressedTexture?ye.mipmaps[vt]:ye.image;de.pixelStorei(de.UNPACK_ROW_LENGTH,Ua.width),de.pixelStorei(de.UNPACK_IMAGE_HEIGHT,Ua.height),de.pixelStorei(de.UNPACK_SKIP_PIXELS,xi),de.pixelStorei(de.UNPACK_SKIP_ROWS,gi),ye.isDataTexture?de.texSubImage2D(de.TEXTURE_2D,vt,Wi,rr,xn,Zn,Ri,to,Ua.data):ye.isCompressedTexture?de.compressedTexSubImage2D(de.TEXTURE_2D,vt,Wi,rr,Ua.width,Ua.height,Ri,Ua.data):de.texSubImage2D(de.TEXTURE_2D,vt,Wi,rr,xn,Zn,Ri,to,Ua),de.pixelStorei(de.UNPACK_ROW_LENGTH,jo),de.pixelStorei(de.UNPACK_IMAGE_HEIGHT,vs),de.pixelStorei(de.UNPACK_SKIP_PIXELS,$c),de.pixelStorei(de.UNPACK_SKIP_ROWS,fo),de.pixelStorei(de.UNPACK_SKIP_IMAGES,Pi),0===vt&&ct.generateMipmaps&&de.generateMipmap(de.TEXTURE_2D),_t.unbindTexture()},this.copyTextureToTexture3D=function(ye,ct,Dt=null,Bt=null,vt=0){let xn,Zn,xi,gi,Wi,rr,Ri,to,jo;!0!==ye.isTexture&&(Ig("WebGLRenderer: copyTextureToTexture3D function signature has changed."),Dt=arguments[0]||null,Bt=arguments[1]||null,ye=arguments[2],ct=arguments[3],vt=arguments[4]||0);const vs=ye.isCompressedTexture?ye.mipmaps[vt]:ye.image;null!==Dt?(xn=Dt.max.x-Dt.min.x,Zn=Dt.max.y-Dt.min.y,xi=Dt.max.z-Dt.min.z,gi=Dt.min.x,Wi=Dt.min.y,rr=Dt.min.z):(xn=vs.width,Zn=vs.height,xi=vs.depth,gi=0,Wi=0,rr=0),null!==Bt?(Ri=Bt.x,to=Bt.y,jo=Bt.z):(Ri=0,to=0,jo=0);const $c=dr.convert(ct.format),fo=dr.convert(ct.type);let Pi;if(ct.isData3DTexture)Se.setTexture3D(ct,0),Pi=de.TEXTURE_3D;else{if(!ct.isDataArrayTexture&&!ct.isCompressedArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");Se.setTexture2DArray(ct,0),Pi=de.TEXTURE_2D_ARRAY}de.pixelStorei(de.UNPACK_FLIP_Y_WEBGL,ct.flipY),de.pixelStorei(de.UNPACK_PREMULTIPLY_ALPHA_WEBGL,ct.premultiplyAlpha),de.pixelStorei(de.UNPACK_ALIGNMENT,ct.unpackAlignment);const Ua=de.getParameter(de.UNPACK_ROW_LENGTH),po=de.getParameter(de.UNPACK_IMAGE_HEIGHT),qu=de.getParameter(de.UNPACK_SKIP_PIXELS),Px=de.getParameter(de.UNPACK_SKIP_ROWS),qc=de.getParameter(de.UNPACK_SKIP_IMAGES);de.pixelStorei(de.UNPACK_ROW_LENGTH,vs.width),de.pixelStorei(de.UNPACK_IMAGE_HEIGHT,vs.height),de.pixelStorei(de.UNPACK_SKIP_PIXELS,gi),de.pixelStorei(de.UNPACK_SKIP_ROWS,Wi),de.pixelStorei(de.UNPACK_SKIP_IMAGES,rr),ye.isDataTexture||ye.isData3DTexture?de.texSubImage3D(Pi,vt,Ri,to,jo,xn,Zn,xi,$c,fo,vs.data):ct.isCompressedArrayTexture?de.compressedTexSubImage3D(Pi,vt,Ri,to,jo,xn,Zn,xi,$c,vs.data):de.texSubImage3D(Pi,vt,Ri,to,jo,xn,Zn,xi,$c,fo,vs),de.pixelStorei(de.UNPACK_ROW_LENGTH,Ua),de.pixelStorei(de.UNPACK_IMAGE_HEIGHT,po),de.pixelStorei(de.UNPACK_SKIP_PIXELS,qu),de.pixelStorei(de.UNPACK_SKIP_ROWS,Px),de.pixelStorei(de.UNPACK_SKIP_IMAGES,qc),0===vt&&ct.generateMipmaps&&de.generateMipmap(Pi),_t.unbindTexture()},this.initRenderTarget=function(ye){void 0===Pe.get(ye).__webglFramebuffer&&Se.setupRenderTarget(ye)},this.initTexture=function(ye){ye.isCubeTexture?Se.setTextureCube(ye,0):ye.isData3DTexture?Se.setTexture3D(ye,0):ye.isDataArrayTexture||ye.isCompressedArrayTexture?Se.setTexture2DArray(ye,0):Se.setTexture2D(ye,0),_t.unbindTexture()},this.resetState=function(){ee=0,J=0,te=null,_t.reset(),Sr.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return ka}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===rS?"display-p3":"srgb",e.unpackColorSpace=Nr.workingColorSpace===wb?"display-p3":"srgb"}}class wk extends ko{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 Dd,this.environmentIntensity=1,this.environmentRotation=new Dd,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 R5{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=fa()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}get updateRange(){return Ig("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,s=this.stride;rt.far||e.push({distance:f,point:wS.clone(),uv:Uc.getInterpolation(wS,xk,CS,Ck,QQ,O5,zQ,new At),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 Mk(n,t,e,i,r,s){zw.subVectors(n,e).addScalar(.5).multiply(i),void 0!==r?(xS.x=s*zw.x-r*zw.y,xS.y=r*zw.x+s*zw.y):xS.copy(zw),n.copy(t),n.x+=xS.x,n.y+=xS.y,n.applyMatrix4(HQ)}class Za extends Ka{constructor(t){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new _n(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 Dk=new pe,Bk=new pe,nz=new zi,IS=new Hp,kk=new Js,G5=new pe,iz=new pe;class Ou extends ko{constructor(t=new fi,e=new Za){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,s=e.count;r0){const r=e[i[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,l=r.length;si)return;G5.applyMatrix4(n.matrixWorld);const f=t.ray.origin.distanceTo(G5);return ft.far?void 0:{distance:f,point:iz.clone().applyMatrix4(n.matrixWorld),index:r,face:null,faceIndex:null,object:n}}const rz=new pe,oz=new pe;class jp extends Ou{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,s=e.count;r0)){f=r;break}f=r-1}if(r=f,i[r]===l)return r/(s-1);const m=i[r];return(r+(l-m)/(i[r+1]-m))/(s-1)}getTangent(t,e){let r=t-1e-4,s=t+1e-4;r<0&&(r=0),s>1&&(s=1);const l=this.getPoint(r),u=this.getPoint(s),f=e||(l.isVector2?new At:new pe);return f.copy(u).sub(l).normalize(),f}getTangentAt(t,e){const i=this.getUtoTmapping(t);return this.getTangent(i,e)}computeFrenetFrames(t,e){const i=new pe,r=[],s=[],l=[],u=new pe,f=new zi;for(let w=0;w<=t;w++)r[w]=this.getTangentAt(w/t,new pe);s[0]=new pe,l[0]=new pe;let p=Number.MAX_VALUE;const m=Math.abs(r[0].x),_=Math.abs(r[0].y),b=Math.abs(r[0].z);m<=p&&(p=m,i.set(1,0,0)),_<=p&&(p=_,i.set(0,1,0)),b<=p&&i.set(0,0,1),u.crossVectors(r[0],i).normalize(),s[0].crossVectors(r[0],u),l[0].crossVectors(r[0],s[0]);for(let w=1;w<=t;w++){if(s[w]=s[w-1].clone(),l[w]=l[w-1].clone(),u.crossVectors(r[w-1],r[w]),u.length()>Number.EPSILON){u.normalize();const F=Math.acos(is(r[w-1].dot(r[w]),-1,1));s[w].applyMatrix4(f.makeRotationAxis(u,F))}l[w].crossVectors(r[w],s[w])}if(!0===e){let w=Math.acos(is(s[0].dot(s[t]),-1,1));w/=t,r[0].dot(u.crossVectors(s[0],s[t]))>0&&(w=-w);for(let F=1;F<=t;F++)s[F].applyMatrix4(f.makeRotationAxis(r[F],w*F)),l[F].crossVectors(r[F],s[F])}return{tangents:r,normals:s,binormals:l}}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 q5 extends Jh{constructor(t=0,e=0,i=1,r=1,s=0,l=2*Math.PI,u=!1,f=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=i,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=l,this.aClockwise=u,this.aRotation=f}getPoint(t,e=new At){const i=e,r=2*Math.PI;let s=this.aEndAngle-this.aStartAngle;const l=Math.abs(s)r;)s-=r;sr.length-2?r.length-1:l+1],_=r[l>r.length-3?r.length-1:l+2];return i.set(cz(u,f.x,p.x,m.x,_.x),cz(u,f.y,p.y,m.y,_.y)),i}copy(t){super.copy(t),this.points=[];for(let e=0,i=t.points.length;e0?0:(Math.floor(Math.abs(u)/s)+1)*s:0===f&&u===s-1&&(u=s-2,f=1),this.closed||u>0?p=r[(u-1)%s]:(Nk.subVectors(r[0],r[1]).add(r[0]),p=Nk);const _=r[u%s],b=r[(u+1)%s];if(this.closed||u+2=i){const l=r[s]-i,u=this.curves[s],f=u.getLength();return u.getPointAt(0===f?0:1-l/f,e)}s++}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 _=p.getPoint(0);_.equals(this.currentPoint)||this.lineTo(_.x,_.y)}this.curves.push(p);const m=p.getPoint(1);return this.currentPoint.copy(m),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 BS extends fi{constructor(t=1,e=1,i=1,r=32,s=1,l=!1,u=0,f=2*Math.PI){super(),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:i,radialSegments:r,heightSegments:s,openEnded:l,thetaStart:u,thetaLength:f};const p=this;r=Math.floor(r),s=Math.floor(s);const m=[],_=[],b=[],w=[];let F=0;const D=[],T=i/2;let I=0;function R(P){const ee=F,J=new At,te=new pe;let ie=0;const W=!0===P?t:e,q=!0===P?1:-1;for(let ke=1;ke<=r;ke++)_.push(0,T*q,0),b.push(0,q,0),w.push(.5,.5),F++;const le=F;for(let ke=0;ke<=r;ke++){const ce=ke/r*f+u,ze=Math.cos(ce),Ce=Math.sin(ce);te.x=W*Ce,te.y=T*q,te.z=W*ze,_.push(te.x,te.y,te.z),b.push(0,q,0),J.x=.5*ze+.5,J.y=.5*Ce*q+.5,w.push(J.x,J.y),F++}for(let ke=0;ke0&&R(!0),e>0&&R(!1)),this.setIndex(m),this.setAttribute("position",new it(_,3)),this.setAttribute("normal",new it(b,3)),this.setAttribute("uv",new it(w,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new BS(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class Vg extends zb{constructor(t){super(t),this.uuid=fa(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let i=0,r=this.holes.length;i0)for(s=t;s=t;s-=i)l=bz(s,n[s],n[s+1],l);return l&&zk(l,l.next)&&(PS(l),l=l.next),l}function jb(n,t){if(!n)return n;t||(t=n);let i,e=n;do{if(i=!1,e.steiner||!zk(e,e.next)&&0!==rs(e.prev,e,e.next))e=e.next;else{if(PS(e),e=t=e.prev,e===e.next)break;i=!0}}while(i||e!==t);return t}function kS(n,t,e,i,r,s,l){if(!n)return;!l&&s&&function oie(n,t,e,i){let r=n;do{0===r.z&&(r.z=iU(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 sie(n){let t,e,i,r,s,l,u,f,p=1;do{for(e=n,n=null,s=null,l=0;e;){for(l++,i=e,u=0,t=0;t0||f>0&&i;)0!==u&&(0===f||!i||e.z<=i.z)?(r=e,e=e.nextZ,u--):(r=i,i=i.nextZ,f--),s?s.nextZ=r:n=r,r.prevZ=s,s=r;e=i}s.nextZ=null,p*=2}while(l>1)}(r)}(n,i,r,s);let f,p,u=n;for(;n.prev!==n.next;)if(f=n.prev,p=n.next,s?Yne(n,i,r,s):Kne(n))t.push(f.i/e|0),t.push(n.i/e|0),t.push(p.i/e|0),PS(n),n=p.next,u=p.next;else if((n=p)===u){l?1===l?kS(n=Zne(jb(n),t,e),t,e,i,r,s,2):2===l&&Jne(n,t,e,i,r,s):kS(jb(n),t,e,i,r,s,1);break}}function Kne(n){const t=n.prev,e=n,i=n.next;if(rs(t,e,i)>=0)return!1;const r=t.x,s=e.x,l=i.x,u=t.y,f=e.y,p=i.y,m=rs?r>l?r:l:s>l?s:l,w=u>f?u>p?u:p:f>p?f:p;let F=i.next;for(;F!==t;){if(F.x>=m&&F.x<=b&&F.y>=_&&F.y<=w&&jw(r,u,s,f,l,p,F.x,F.y)&&rs(F.prev,F,F.next)>=0)return!1;F=F.next}return!0}function Yne(n,t,e,i){const r=n.prev,s=n,l=n.next;if(rs(r,s,l)>=0)return!1;const u=r.x,f=s.x,p=l.x,m=r.y,_=s.y,b=l.y,w=uf?u>p?u:p:f>p?f:p,T=m>_?m>b?m:b:_>b?_:b,I=iU(w,F,t,e,i),O=iU(D,T,t,e,i);let R=n.prevZ,P=n.nextZ;for(;R&&R.z>=I&&P&&P.z<=O;){if(R.x>=w&&R.x<=D&&R.y>=F&&R.y<=T&&R!==r&&R!==l&&jw(u,m,f,_,p,b,R.x,R.y)&&rs(R.prev,R,R.next)>=0||(R=R.prevZ,P.x>=w&&P.x<=D&&P.y>=F&&P.y<=T&&P!==r&&P!==l&&jw(u,m,f,_,p,b,P.x,P.y)&&rs(P.prev,P,P.next)>=0))return!1;P=P.nextZ}for(;R&&R.z>=I;){if(R.x>=w&&R.x<=D&&R.y>=F&&R.y<=T&&R!==r&&R!==l&&jw(u,m,f,_,p,b,R.x,R.y)&&rs(R.prev,R,R.next)>=0)return!1;R=R.prevZ}for(;P&&P.z<=O;){if(P.x>=w&&P.x<=D&&P.y>=F&&P.y<=T&&P!==r&&P!==l&&jw(u,m,f,_,p,b,P.x,P.y)&&rs(P.prev,P,P.next)>=0)return!1;P=P.nextZ}return!0}function Zne(n,t,e){let i=n;do{const r=i.prev,s=i.next.next;!zk(r,s)&&gz(r,i,i.next,s)&&RS(r,s)&&RS(s,r)&&(t.push(r.i/e|0),t.push(i.i/e|0),t.push(s.i/e|0),PS(i),PS(i.next),i=n=s),i=i.next}while(i!==n);return jb(i)}function Jne(n,t,e,i,r,s){let l=n;do{let u=l.next.next;for(;u!==l.prev;){if(l.i!==u.i&&lie(l,u)){let f=_z(l,u);return l=jb(l,l.next),f=jb(f,f.next),kS(l,t,e,i,r,s,0),void kS(f,t,e,i,r,s,0)}u=u.next}l=l.next}while(l!==n)}function tie(n,t){return n.x-t.x}function nie(n,t){const e=function iie(n,t){let r,e=t,i=-1/0;const s=n.x,l=n.y;do{if(l<=e.y&&l>=e.next.y&&e.next.y!==e.y){const b=e.x+(l-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(b<=s&&b>i&&(i=b,r=e.x=e.x&&e.x>=f&&s!==e.x&&jw(lr.x||e.x===r.x&&rie(r,e)))&&(r=e,m=_)),e=e.next}while(e!==u);return r}(n,t);if(!e)return t;const i=_z(e,n);return jb(i,i.next),jb(e,e.next)}function rie(n,t){return rs(n.prev,n,t.prev)<0&&rs(t.next,n,n.next)<0}function iU(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 aie(n){let t=n,e=n;do{(t.x=(n-l)*(s-u)&&(n-l)*(i-u)>=(e-l)*(t-u)&&(e-l)*(s-u)>=(r-l)*(i-u)}function lie(n,t){return n.next.i!==t.i&&n.prev.i!==t.i&&!function cie(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&&gz(e,e.next,n,t))return!0;e=e.next}while(e!==n);return!1}(n,t)&&(RS(n,t)&&RS(t,n)&&function die(n,t){let e=n,i=!1;const r=(n.x+t.x)/2,s=(n.y+t.y)/2;do{e.y>s!=e.next.y>s&&e.next.y!==e.y&&r<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(i=!i),e=e.next}while(e!==n);return i}(n,t)&&(rs(n.prev,n,t.prev)||rs(n,t.prev,t))||zk(n,t)&&rs(n.prev,n,n.next)>0&&rs(t.prev,t,t.next)>0)}function rs(n,t,e){return(t.y-n.y)*(e.x-t.x)-(t.x-n.x)*(e.y-t.y)}function zk(n,t){return n.x===t.x&&n.y===t.y}function gz(n,t,e,i){const r=jk(rs(n,t,e)),s=jk(rs(n,t,i)),l=jk(rs(e,i,n)),u=jk(rs(e,i,t));return!!(r!==s&&l!==u||0===r&&Gk(n,e,t)||0===s&&Gk(n,i,t)||0===l&&Gk(e,n,i)||0===u&&Gk(e,t,i))}function Gk(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 jk(n){return n>0?1:n<0?-1:0}function RS(n,t){return rs(n.prev,n,n.next)<0?rs(n,t,n.next)>=0&&rs(n,n.prev,t)>=0:rs(n,t,n.prev)<0||rs(n,n.next,t)<0}function _z(n,t){const e=new rU(n.i,n.x,n.y),i=new rU(t.i,t.x,t.y),r=n.next,s=t.prev;return n.next=t,t.prev=n,e.next=r,r.prev=e,i.next=e,e.prev=i,s.next=i,i.prev=s,i}function bz(n,t,e,i){const r=new rU(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 PS(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 rU(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 ef{static area(t){const e=t.length;let i=0;for(let r=e-1,s=0;s80*e){u=p=n[0],f=m=n[1];for(let F=e;Fp&&(p=_),b>m&&(m=b);w=Math.max(p-u,m-f),w=0!==w?32767/w:0}return kS(s,l,e,u,f,w,0),l}(i,r);for(let f=0;f2&&n[t-1].equals(n[0])&&n.pop()}function yz(n,t){for(let e=0;eNumber.EPSILON){const Vt=Math.sqrt(Ct),jt=Math.sqrt(_e*_e+oe*oe),Si=wt.x-Se/Vt,Fn=wt.y+Pe/Vt,hn=((Ze.x-oe/jt-Si)*oe-(Ze.y+_e/jt-Fn)*_e)/(Pe*oe-Se*_e);Mt=Si+Pe*hn-de.x,_t=Fn+Se*hn-de.y;const Yn=Mt*Mt+_t*_t;if(Yn<=2)return new At(Mt,_t);Ft=Math.sqrt(Yn/2)}else{let Vt=!1;Pe>Number.EPSILON?_e>Number.EPSILON&&(Vt=!0):Pe<-Number.EPSILON?_e<-Number.EPSILON&&(Vt=!0):Math.sign(Se)===Math.sign(oe)&&(Vt=!0),Vt?(Mt=-Se,_t=Pe,Ft=Math.sqrt(Ct)):(Mt=Pe,_t=Se,Ft=Math.sqrt(Ct/2))}return new At(Mt/Ft,_t/Ft)}const ft=[];for(let de=0,wt=ce.length,Ze=wt-1,Mt=de+1;de=0;de--){const wt=de/T,Ze=w*Math.cos(wt*Math.PI/2),Mt=F*Math.sin(wt*Math.PI/2)+D;for(let _t=0,Ft=ce.length;_t=0;){const Mt=Ze;let _t=Ze-1;_t<0&&(_t=de.length-1);for(let Ft=0,Pe=m+2*T;Ft=s)break e;{const u=e[1];t=s)break t}l=i,i=0}}for(;i>>1;te;)--l;if(++l,0!==s||l!==r){s>=l&&(l=Math.max(l,1),s=l-1);const u=this.getValueSize();this.times=i.slice(s,l),this.values=this.values.slice(s*u,l*u)}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,s=i.length;0===s&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let l=null;for(let u=0;u!==s;u++){const f=i[u];if("number"==typeof f&&isNaN(f)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,u,f),t=!1;break}if(null!==l&&l>f){console.error("THREE.KeyframeTrack: Out of order keys.",this,u,f,l),t=!1;break}l=f}if(void 0!==r&&function Ez(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}(r))for(let u=0,f=r.length;u!==f;++u){const p=r[u];if(isNaN(p)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,u,p),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),i=this.getValueSize(),r=2302===this.getInterpolation(),s=t.length-1;let l=1;for(let u=1;u0){t[l]=t[s];for(let u=s*i,f=l*i,p=0;p!==i;++p)e[f+p]=e[u+p];++l}return l!==t.length?(this.times=t.slice(0,l),this.values=e.slice(0,l*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}}tf.prototype.TimeBufferType=Float32Array,tf.prototype.ValueBufferType=Float32Array,tf.prototype.DefaultInterpolation=2301;class qw extends tf{constructor(t,e,i){super(t,e,i)}}qw.prototype.ValueTypeName="bool",qw.prototype.ValueBufferType=Array,qw.prototype.DefaultInterpolation=2300,qw.prototype.InterpolantFactoryMethodLinear=void 0,qw.prototype.InterpolantFactoryMethodSmooth=void 0;(class Iz extends tf{}).prototype.ValueTypeName="color";(class Kk extends tf{}).prototype.ValueTypeName="number";class Sie extends Xk{constructor(t,e,i,r){super(t,e,i,r)}interpolate_(t,e,i,r){const s=this.resultBuffer,l=this.sampleValues,u=this.valueSize,f=(i-e)/(r-e);let p=t*u;for(let m=p+u;p!==m;p+=4)Pa.slerpFlat(s,0,l,p-u,l,p,f);return s}}class Yk extends tf{InterpolantFactoryMethodLinear(t){return new Sie(this.times,this.values,this.getValueSize(),t)}}Yk.prototype.ValueTypeName="quaternion",Yk.prototype.InterpolantFactoryMethodSmooth=void 0;class Ww extends tf{constructor(t,e,i){super(t,e,i)}}Ww.prototype.ValueTypeName="string",Ww.prototype.ValueBufferType=Array,Ww.prototype.DefaultInterpolation=2300,Ww.prototype.InterpolantFactoryMethodLinear=void 0,Ww.prototype.InterpolantFactoryMethodSmooth=void 0;(class Zk extends tf{}).prototype.ValueTypeName="vector";const Hg={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 Fz{constructor(t,e,i){const r=this;let f,s=!1,l=0,u=0;const p=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=i,this.itemStart=function(m){u++,!1===s&&void 0!==r.onStart&&r.onStart(m,l,u),s=!0},this.itemEnd=function(m){l++,void 0!==r.onProgress&&r.onProgress(m,l,u),l===u&&(s=!1,void 0!==r.onLoad&&r.onLoad())},this.itemError=function(m){void 0!==r.onError&&r.onError(m)},this.resolveURL=function(m){return f?f(m):m},this.setURLModifier=function(m){return f=m,this},this.addHandler=function(m,_){return p.push(m,_),this},this.removeHandler=function(m){const _=p.indexOf(m);return-1!==_&&p.splice(_,2),this},this.getHandler=function(m){for(let _=0,b=p.length;_{class n{constructor(e){this.manager=void 0!==e?e:Fie,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(e,i){const r=this;return new Promise(function(s,l){r.load(e,s,i,l)})}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 $p={};class Die extends Error{constructor(t,e){super(t),this.response=e}}class nf extends lc{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 s=Hg.get(t);if(void 0!==s)return this.manager.itemStart(t),setTimeout(()=>{e&&e(s),this.manager.itemEnd(t)},0),s;if(void 0!==$p[t])return void $p[t].push({onLoad:e,onProgress:i,onError:r});$p[t]=[],$p[t].push({onLoad:e,onProgress:i,onError:r});const l=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),u=this.mimeType,f=this.responseType;fetch(l).then(p=>{if(200===p.status||0===p.status){if(0===p.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||void 0===p.body||void 0===p.body.getReader)return p;const m=$p[t],_=p.body.getReader(),b=p.headers.get("X-File-Size")||p.headers.get("Content-Length"),w=b?parseInt(b):0,F=0!==w;let D=0;const T=new ReadableStream({start(I){!function O(){_.read().then(({done:R,value:P})=>{if(R)I.close();else{D+=P.byteLength;const ee=new ProgressEvent("progress",{lengthComputable:F,loaded:D,total:w});for(let J=0,te=m.length;J{I.error(R)})}()}});return new Response(T)}throw new Die(`fetch for "${p.url}" responded with ${p.status}: ${p.statusText}`,p)}).then(p=>{switch(f){case"arraybuffer":return p.arrayBuffer();case"blob":return p.blob();case"document":return p.text().then(m=>(new DOMParser).parseFromString(m,u));case"json":return p.json();default:if(void 0===u)return p.text();{const _=/charset="?([^;"\s]*)"?/i.exec(u),b=_&&_[1]?_[1].toLowerCase():void 0,w=new TextDecoder(b);return p.arrayBuffer().then(F=>w.decode(F))}}}).then(p=>{Hg.add(t,p);const m=$p[t];delete $p[t];for(let _=0,b=m.length;_{const m=$p[t];if(void 0===m)throw this.manager.itemError(t),p;delete $p[t];for(let _=0,b=m.length;_{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class qb extends ko{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new _n(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 pU=new zi,Dz=new pe,Bz=new pe;class AU{constructor(t){this.camera=t,this.intensity=1,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new At(512,512),this.map=null,this.mapPass=null,this.matrix=new zi,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new Ak,this._frameExtents=new At(1,1),this._viewportCount=1,this._viewports=[new Lr(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,i=this.matrix;Dz.setFromMatrixPosition(t.matrixWorld),e.position.copy(Dz),Bz.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(Bz),e.updateMatrixWorld(),pU.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(pU),i.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),i.multiply(pU)}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 Nie extends AU{constructor(){super(new gk(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class NS extends qb{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(ko.DEFAULT_UP),this.updateMatrix(),this.target=new ko,this.shadow=new Nie}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class gU extends qb{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class Vz{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Hz(),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=Hz();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Hz(){return(typeof performance>"u"?Date:performance).now()}const bU="\\[\\]\\.:\\/",Wie=new RegExp("["+bU+"]","g"),vU="[^"+bU+"]",Xie="[^"+bU.replace("\\.","")+"]",ere=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",vU)+/(WCOD+)?/.source.replace("WCOD",Xie)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",vU)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",vU)+"$"),tre=["material","materials","bones","map"];class nre{constructor(t,e,i){const r=i||zo.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_,s=i.length;r!==s;++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 zo=(()=>{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(Wie,"")}static parseTrackName(e){const i=ere.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]},s=r.nodeName&&r.nodeName.lastIndexOf(".");if(void 0!==s&&-1!==s){const l=r.nodeName.substring(s+1);-1!==tre.indexOf(l)&&(r.nodeName=r.nodeName.substring(0,s),r.objectName=l)}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(l){for(let u=0;u=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,Kz).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 a3=new Qs;class lre extends jp{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),s=new fi;s.setIndex(new x(i,1)),s.setAttribute("position",new x(r,3)),super(s,new Za({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&&a3.setFromObject(this.object),a3.isEmpty())return;const e=a3.min,i=a3.max,r=this.geometry.attributes.position,s=r.array;s[0]=i.x,s[1]=i.y,s[2]=i.z,s[3]=e.x,s[4]=i.y,s[5]=i.z,s[6]=e.x,s[7]=e.y,s[8]=i.z,s[9]=i.x,s[10]=e.y,s[11]=i.z,s[12]=i.x,s[13]=i.y,s[14]=e.z,s[15]=e.x,s[16]=i.y,s[17]=e.z,s[18]=e.x,s[19]=e.y,s[20]=e.z,s[21]=i.x,s[22]=e.y,s[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 rG=new pe;let l3,xU;class cre extends ko{constructor(t=new pe(0,0,1),e=new pe(0,0,0),i=1,r=16776960,s=.2*i,l=.2*s){super(),this.type="ArrowHelper",void 0===l3&&(l3=new fi,l3.setAttribute("position",new it([0,0,0,0,1,0],3)),xU=new BS(0,.5,1,5,1),xU.translate(0,-.5,0)),this.position.copy(e),this.line=new Ou(l3,new Za({color:r,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new cr(xU,new Xh({color:r,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(i,s,l)}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{rG.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(rG,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 dre extends jp{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 fi;r.setAttribute("position",new it(e,3)),r.setAttribute("color",new it([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3)),super(r,new Za({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(t,e,i){const r=new _n,s=this.geometry.attributes.color.array;return r.set(t),r.toArray(s,0),r.toArray(s,3),r.set(e),r.toArray(s,6),r.toArray(s,9),r.set(i),r.toArray(s,12),r.toArray(s,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class zg{constructor(){this.type="ShapePath",this.color=new _n,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new zb,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,s,l){return this.currentPath.bezierCurveTo(t,e,i,r,s,l),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t){function i(I,O){const R=O.length;let P=!1;for(let ee=R-1,J=0;JNumber.EPSILON){if(q<0&&(te=O[J],W=-W,ie=O[ee],q=-q),I.yie.y)continue;if(I.y===te.y){if(I.x===te.x)return!0}else{const le=q*(I.x-te.x)-W*(I.y-te.y);if(0===le)return!0;if(le<0)continue;P=!P}}else{if(I.y!==te.y)continue;if(ie.x<=I.x&&I.x<=te.x||te.x<=I.x&&I.x<=ie.x)return!0}}return P}const r=ef.isClockWise,s=this.subPaths;if(0===s.length)return[];let l,u,f;const p=[];if(1===s.length)return u=s[0],f=new Vg,f.curves=u.curves,p.push(f),p;let m=!r(s[0].getPoints());m=t?!m:m;const _=[],b=[];let D,T,w=[],F=0;b[F]=void 0,w[F]=[];for(let I=0,O=s.length;I1){let I=!1,O=0;for(let R=0,P=b.length;R0&&!1===I&&(w=_)}for(let I=0,O=b.length;In.appSettings,oG=sn(Ro,n=>n.screenshotToClipboardEnabled),MU=".png",sG="~",c3="_";function aG(n){return n.some(t=>t.selectedAs!==bt.None)}function d3(n){return n.filter(t=>t.selectedAs!==bt.None)}function Bd(n){return n.some(t=>t.selectedAs===bt.Reference)}function lG(n){return n.some(t=>t.selectedAs===bt.Partial)}function u3(n,t){return n.fileMeta.fileChecksum===t.fileMeta.fileChecksum}let rf=(()=>{class n{static{this.VIEW_ANGLE=45}static{this.NEAR=50}static{this.FAR=2e5}init(e,i){this.camera=new ea(n.VIEW_ANGLE,e/i,n.NEAR,n.FAR),this.setPosition(new pe(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=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var yre=v(3205),cG=v.n(yre);class dG{constructor(t,e,i){this.h=t,this.s=e,this.l=i}toHex(){return`#${cG().hsl.hex([this.h,this.s,this.l])}`}decreaseLightness(t){this.l-=t}getLightness(){return this.l}setLightness(t){this.l=t}toString(){return`hsl(${this.h}, ${this.s}%, ${this.l}%)`}}class Br{static{this.colorToVector3Map=new Map}static{this.colorToVector3ArrayMap=new Map}static{this.hexToNumberMap=new Map}static getVector3(t){let e=this.colorToVector3Map.get(t);return void 0===e&&(e=Br.colorToVector3(t),this.colorToVector3Map.set(t,e)),e}static getVector3Array(t){let e=this.colorToVector3ArrayMap.get(t);return void 0===e&&(e=Br.colorToVector3Array(t),this.colorToVector3ArrayMap.set(t,e)),e}static getNumber(t){let e=this.hexToNumberMap.get(t);return void 0===e&&(e=Br.convertHexToNumber(t),this.hexToNumberMap.set(t,e)),e}static convertHexToNumber(t){return+`0x${t.slice(1)}`}static convertNumberToHex(t){const e=t.toString(16);return`#${"0".repeat(6-e.length)}${e}`}static convertHexToRgba(t,e=1){return`rgba(${this.encodeHex(t).join(",")},${e})`}static convertHexToColorObject(t){const e=this.encodeHex(t);return new _n(...e)}static convertColorToHex(t){return[t.r,t.g,t.b].reduce((e,i)=>e+Math.round(i).toString(16).padStart(2,"0"),"#")}static hexToHSL(t){const e=cG().hex.hsl(t);return new dG(...e)}static colorToVector3(t){const e=Br.convertHexToNumber(t);return new pe((e>>16&255)/255,(e>>8&255)/255,(255&e)/255)}static colorToVector3Array(t){const e=Br.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 _n(e,i,r)}static gradient(t,e,i){const r=this.convertHexToColorObject(t),l=this.convertHexToColorObject(e).sub(r),u=[];for(let f=0;f<=i;f++){const p=l.clone().multiplyScalar(1/i*f),m=r.clone().add(p);u[f]=this.convertColorToHex(m)}return u}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+/=",l=(3&t)<<4|e>>4,u=(15&e)<<2|i>>6,f=63&i;return r.charAt(t>>2)+r.charAt(l)+r.charAt(u)+r.charAt(f)}static generatePixel(t){return`data:image/gif;base64,R0lGODlhAQABAPAA${t}/yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`}}function wre(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 xre(n,t,e,i,r){for(var l,s=n.children,u=-1,f=s.length,p=n.value&&(i-t)/n.value;++uO&&(O=p),J=T*T*ee,(R=Math.max(O/J,J/I))>P){T-=p;break}P=R}l.push(f={value:T,dice:w1?i:1)},e}((1+Math.sqrt(5))/2);function LS(){return 0}function US(n){return function(){return n}}function Tre(){var n=Sre,t=!1,e=1,i=1,r=[0],s=LS,l=LS,u=LS,f=LS,p=LS;function m(b){return b.x0=b.y0=0,b.x1=e,b.y1=i,b.eachBefore(_),r=[0],t&&b.eachBefore(wre),b}function _(b){var w=r[b.depth],F=b.x0+w,D=b.y0+w,T=b.x1-w,I=b.y1-w;Tn.dynamicSettings,Xw=sn(Hc,n=>n.searchPattern);function hG(n,t){return function Fre(n){return n.startsWith(`${Yr.rootPath}/`)}(t)?VS(n,t):t}function VS(n,t){const e=Yr.rootPath.length+1,i=t.length<=e?"":`/${t.slice(e)}`;return`${Yr.rootPath}/${n}${i}`}function EU(n,t){do{t=t.slice(0,t.lastIndexOf("/"));const e=n.get(t);if(e)return e}while(t!==Yr.rootPath&&t.length>0)}let fG=(()=>{class n{static{this.projectNameArray=[]}static{this.fileNameArray=[]}static{this.fileChecksumArray=[]}static{this.fileSizesSum=0}static calculateAggregationFile(e){const i=C(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(kc.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:Jy.f4.X,exportedFileSize:this.fileSizesSum},map:{name:Yr.rootName,type:Zo.FOLDER,children:[],attributes:{},path:Yr.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=VS(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=VS(e,r.path)),r.children&&this.updatePathOfAllChildren(e,r.children)}static resetVariables(){this.projectNameArray=[],this.fileNameArray=[],this.fileChecksumArray=[],this.fileSizesSum=0}}return n})();const HS=n=>n.fileSettings,sf=sn(HS,n=>n.blacklist);function pG(n,t){if(n===t||0===n.length&&0===t.length)return!0;if(Bd(n)!==Bd(t))return!1;const e=n.filter(s=>s.selectedAs!==bt.None).map(s=>s.file.fileMeta.fileName);let i=t.filter(s=>s.selectedAs!==bt.None).map(s=>s.file.fileMeta.fileName);return e.length===i.length&&e.reduce(function r(s,l){return!1!==s&&!!i.includes(l)&&(i=function Dre(n,t){const e=n.indexOf(t);return[...n.slice(0,e),...n.slice(e+1)]}(i,l),!0)},!0)}const Qc=dh(n=>ch(n,pG,pG))(yn,d3);function Bre(n,t){const e=new Map,i=new Set;for(const{file:s}of n)for(const{data:l}of lo(s.map))i.add(l.path);for(const s of n)for(const l of s.file.settings.fileSettings.edges)if(kre(l,i,t))for(const u of Object.keys(l.attributes))Pre(Rre(e,u),AG(n.length,s,l.fromNodeName),AG(n.length,s,l.toNodeName));const r=function Ore(n){const t=[];for(const[e,i]of n){const r=[];let s=0,l=Number.MAX_SAFE_INTEGER;for(const u of i.values()){const f=u.incoming+u.outgoing;r.push(f),f>s&&(s=f),f<=l&&(l=f)}t.push({name:e,values:r,maxValue:s,minValue:l})}return t}(e);return s1(r),{edgeMetricData:r,nodeEdgeMetricsMap:e}}function AG(n,t,e){return n>1?`/root/${t.file.fileMeta.fileName}${e.replace("/root","")}`:e}function kre(n,t,e){return!(!t.has(n.fromNodeName)||!t.has(n.toNodeName)||hu(n.fromNodeName,e,"exclude")||hu(n.toNodeName,e,"exclude"))}function Rre(n,t){let e=n.get(t);return e||(e=new Map,n.set(t,e)),e}function Pre(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 Aa=sn(Qc,sf,(n,t)=>({nodeMetricData:Bc(n,t),...Bre(n,t)})),Nre=sn(Aa,n=>n.edgeMetricData.map(t=>t.name));class Lre{static createCodeMapFromHashMap(t){let e;for(const[i,r]of t)i===Yr.rootPath?e=r:EU(t,i).children.push(r);return e}static getDeltaFile(t,e){const i=this.getDeltaNodesByPath(t.map,e.map),r=this.createCodeMapFromHashMap(i),s=this.getFileMetaData(t,e);return this.getNewCCFileWithDeltas(r,s)}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 lo(t))e.set(i.path,i);return e}static addExistingAndNewNodesToDeltaMap(t,e,i){for(const{data:r}of lo(e)){const s=t.get(r.path);if(s){(s.children||r.children)&&(s.children=[]);const{deltaList:u,differenceExists:f}=this.compareAttributeValues(s.attributes,r.attributes);s.deltas=u;const p=f?1:0;s.attributes=r.attributes,s.fileCount={added:0,removed:0,changed:p}}else r.children&&(r.children=[]),r.deltas={...r.attributes},r.fileCount={added:r.type===Zo.FILE?1:0,removed:0,changed:0};const l=s??r;i.set(l.path,l),t.delete(l.path)}}static addDeletedNodesToDeltaMap(t,e){for(const i of t.values()){i.children&&(i.children=[]),i.deltas={},i.fileCount={added:0,removed:i.type===Zo.FILE?1:0,changed:0};for(const[r,s]of Object.entries(i.attributes))i.deltas[r]=-s,i.attributes[r]=0;e.set(i.path,i)}}static compareAttributeValues(t,e){const i={};let r=!1;const s=new Set(Object.keys(t));for(const l of Object.keys(e))s.add(l);for(const l of s){const u=t[l]??0,f=e[l]??0;u!==f&&(r=!0),i[l]=f-u}return{deltaList:i,differenceExists:r}}static getFileMetaData(t,e){return{fileName:`delta_between_${kc.withoutCCExtension(t.fileMeta.fileName)}_and_${kc.withoutCCExtension(e.fileMeta.fileName)}`,fileChecksum:`${t.fileMeta.fileChecksum};${e.fileMeta.fileChecksum}`,apiVersion:Jy.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 Vre=(n,t,e)=>{const i=new Map;for(const r of e){const s=n.get(r);s&&i.set(r,s.get(t.data.path))}return i},SU=sn(HS,n=>n.attributeTypes),mG=Object.freeze({unifiedMapNode:void 0,unifiedFileMeta:void 0}),kd=sn(Aa,Qc,SU,sf,Nre,(n,t,e,i,r)=>{if(!aG(t)||!n.nodeMetricData)return mG;const s=Qre(C(t));return s?.map?(mp.decorateMap(s.map,n,i),((n,t,e)=>{if(0!==e.length)for(const i of lo(t))if(Po(i)){const r=Vre(n,i,e);for(const[s,l]of r)i.data.edgeAttributes[s]=l}})(n.nodeEdgeMetricsMap,s.map,r),mp.decorateParentNodesWithAggregatedAttributes(s.map,Bd(t),e),{unifiedMapNode:s.map,unifiedFileMeta:s.fileMeta}):mG}),Qre=n=>{if(lG(n))return fG.calculateAggregationFile(n);if(Bd(n)){const[t,e]=n;return e&&t.file.map.name!==e.file.map.name?fG.calculateAggregationFile(n):(n=>{if(2===n.length){let[t,e]=n;if(t.selectedAs!==bt.Reference){const i=e;e=t,t=i}return Lre.getDeltaFile(t.file,e.file)}return n[0].file})(n)}},gG=sn(kd,Xw,(n,t)=>function Ire(n,t){if(0===(t=t.trimStart()).length||!n)return[];const e=nF(t),i=[];for(const{data:r}of lo(n))e.ignoredNodePaths.ignores(Vm(r.path))===e.condition&&i.push(r);return i}(n.unifiedMapNode,t)),TU=sn(gG,n=>new Set(n.map(t=>t.path))),IU={getColorByTrueGradient(n,t,e,i){const r=(t.from+t.to)/2,s=Br.convertHexToColorObject(n.neutral);if(i<=r){const f=i/r,p=Br.convertHexToColorObject(n.positive);return Br.convertColorToHex((new _n).lerpColors(p,s,f))}const l=(i-r)/(e.maxValue-r),u=Br.convertHexToColorObject(n.negative);return Br.convertColorToHex((new _n).lerpColors(s,u,l))},getColorByFocusedGradient(n,t,e,i){const r=(t.from+t.to)/2,s=Br.convertHexToColorObject(n.neutral);if(i=t.to&&t.to!==e.maxValue)return n.negative;if(i===r)return n.neutral;if(in.colorMetric),qp=sn(Aa,Gg,(n,t)=>{const e=n.nodeMetricData.find(i=>i.name===t);return{values:e?.values??[],minValue:e?.minValue??0,maxValue:e?.maxValue??0}}),Ds=250;function yG(n,t,e,i){const r=H_(n.files);if(i)return 2;let s=t.attributes[n.dynamicSettings.heightMetric]||0;s*=r;const l=n.dynamicSettings.heightMetric;return 1===n.fileSettings.attributeDescriptors[l]?.direction?n.appSettings.invertHeight?s:e-s:n.appSettings.invertHeight?e-s:s}function wG(n,t,e,i){const r=e.deltas?.[i.dynamicSettings.heightMetric]?0:2;return Math.max(Math.abs(t*n),r)}function DU(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 f3(n,t,e,i,r){return n>e?new pe(i.x-r+n/4,i.y+t,i.z-r+e/2):new pe(i.x-r+n/2,i.y+t,i.z-r+e/4)}function xG(n,t,e,i,r){return n>e?new pe(i.x-r+.75*n,i.y+t,i.z-r+e/2):new pe(i.x-r+n/2,i.y+t,i.z-r+.75*e)}function p3(n,t){if(n.isFlattened)return!0;const e=TU(t);return e&&t.dynamicSettings.searchPattern?.length>0?0===e.size||function qre(n,t){return!TU(t).has(n.path)}(n,t):!(!t.appSettings.showOnlyBuildingsWithEdges||!t.fileSettings.edges.some(i=>i.visible))&&function $re(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 BU(n,{appSettings:t,dynamicSettings:e},i,r,s){const{mapColors:l}=t;if(r)return l.base;const u=n.attributes[e.colorMetric];if(void 0===u)return l.base;if(s)return l.flat;const{colorRange:f,colorMode:p}=e;return"unary"===e.colorMetric?l.positive:p===jl.absolute?u0)for(const i of n.children)e+=vG(i,t);return e},buildNodeFrom:function jre(n,t,e,i,r){const s=H_(i.files),{x0:l,x1:u,y0:f,y1:p,data:m}=n,_=Po(n),b=p3(m,i),w=yG(i,m,e,b),F=m.path.split("/").length-2,D=_?wG(w,t,m,i)*s:2,T=u-l,I=p-f,O=2*n.depth,R=(m.deltas?.[i.dynamicSettings.heightMetric]??0)*t*s,P=D+(R<0?Math.abs(R):0);return{name:m.name,id:m.id,width:T,height:D,length:I,depth:F,mapNodeDepth:n.depth,x0:l,z0:O,y0:f,isLeaf:_,attributes:m.attributes,edgeAttributes:m.edgeAttributes,deltas:m.deltas,heightDelta:R,visible:DU(m,_,i,b),path:m.path,link:m.link,markingColor:t1(m,i.fileSettings.markedPackages),flat:b,color:BU(m,i,qp(i),r,b),incomingEdgePoint:f3(T,P,I,new pe(l,O,f),Ds),outgoingEdgePoint:xG(T,P,I,new pe(l,O,f),Ds)}},isNodeFlat:p3,resolveHeightValue:wG,getHeightValue:yG,FOLDER_HEIGHT:2,MIN_BUILDING_HEIGHT:2,HEIGHT_VALUE_WHEN_METRIC_NOT_FOUND:0},CG=.4,MG=120,EG=95,Wre=.035,Xre=.028,kU=3;function SG(n,t,e,i,r,s,l,u,f,p,m){const _=[];for(const b of n.children){const w=b.data.fixedPosition,F=IG(b.data,t,m,f);for(const D of F.treeMap.descendants()){const T=w.width/F.width,I=w.height/F.height;D.x0=(D.x0*T+w.left)*i,D.x1=(D.x1*T+w.left)*i,D.y0=(D.y0*I+w.top)*e,D.y1=(D.y1*I+w.top)*e,D.x0+=r,D.x1+=r,D.y0+=s,D.y1+=s;const O=Ja.buildNodeFrom(D,l,u,t,p);if(_.push(O),TG(b.data)){Array.prototype.push.apply(_,SG(b,t,O.length/100,O.width/100,D.x0,D.y0,l,u,f,p,m));break}}}return _}function TG(n){return!!n.children[0]?.fixedPosition}function IG(n,t,e,i){const r=lo(n),s=FG(r),{enableFloorLabels:l,experimentalFeaturesEnabled:u}=t.appSettings,{margin:f}=t.dynamicSettings,p=f*CG*e;let m,_;void 0!==n.fixedPosition?(m=n.fixedPosition.width,_=n.fixedPosition.height):(m=2*Ds,_=2*Ds);let b=0;r.eachAfter(I=>{!Po(I)&&l&&(0===I.depth&&(b+=MG),I.depth>0&&I.depth{if(!D&&null===I.parent&&(D=I),D&&l){if(0===I.depth)return Math.max((D.x1-D.x0)*Wre,MG);if(I.depth>0&&I.depthfunction Jre(n,{dynamicSettings:t,appSettings:e,fileSettings:i},r,s){if(n.isExcluded)return 0;if(n.deltas&&function Zre(n,t){return 0===n.attributes[t.areaMetric]&&n.deltas[t.heightMetric]<0}(n,t))return Math.abs(n.deltas[t.areaMetric]);if(Po(n)&&n.attributes?.[t.areaMetric]){const l=t.areaMetric;return 1===i.attributeDescriptors[l]?.direction?e.invertArea?n.attributes[t.areaMetric]:r-n.attributes[t.areaMetric]:e.invertArea?r-n.attributes[t.areaMetric]:n.attributes[t.areaMetric]}return s?.5:0}(I,t,i,u)*e)),height:F,width:w}}function FG(n){let t=0,e=0;return n.each(({data:i})=>{(i.isExcluded||i.isFlattened)&&e++,t++}),2*Math.sqrt(t-e)}class QS{static getMapResolutionScaling(t){const{width:e}=document.getElementById("codeMapScene"),i=QS.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,s=t),i.width=r,i.height=s;const l=i.getContext("2d");return l.fillStyle="white",l.textAlign="center",l.textBaseline="middle",{textCanvas:i,context:l}}writeLabelsOnCanvas(t,e,i){const{width:r,length:s}=this.rootNode;for(const l of e){let u=0===l.depth?Math.max(Math.floor(.03*r),120):Math.max(Math.floor(.023*r),95);u*=i,t.font=`${u}px Arial`;const f=Kw.getLabelAndSetContextFont(l,t,i,u);t.fillText(f.labelText,(s-l.y0-l.length/2)*i,(l.x0+l.width)*i-f.fontSize/2)}}drawLevelPlaneGeometry(t,e,i,r,s){const l=new One(t);l.wrapS=Bp,l.wrapT=Bp,l.repeat.x=-1,l.needsUpdate=!0,l.rotation=90*Math.PI/180;const u=new Pw(e,i),f=new Xh({side:1,map:l,transparent:!0}),p=new cr(u,f);p.rotateX(90*Math.PI/180),u.translate(e/2,i/2,-this.folderGeometryHeight*this.scaling.y*(r+1)-2),p.scale.set(this.scaling.x/s,this.scaling.z/s,1),p.position.set(-this.mapSize*this.scaling.x,0,-this.mapSize*this.scaling.z),this.floorLabelPlanes.push(p),this.floorLabelPlaneLevel.set(p,r)}static getLabelAndSetContextFont(t,e,i,r){const s=t.name,l=t.length*i;e.font=`${r}px Arial`;const u=e.measureText(s),f=Kw.getFontScaleFactor(l,u.width);return f<=.5?(r*=.5,r=Math.floor(Math.min(r,t.width*i)),e.font=`${r}px Arial`,{labelText:Kw.getFittingLabelText(e,l,s),fontSize:r}):(r=Math.floor(Math.min(r*f,t.width*i)),e.font=`${r}px Arial`,{labelText:s,fontSize:r})}static getFontScaleFactor(t,e){return e=e&&s>1;)s-=1,l=`${i.slice(0,s)}\u2026`;return l}}const RU=bn("SET_SELECTED_BUILDING_ID",{_as:"props",_p:void 0}),Yw=sn(kd,n=>{if(!n.unifiedMapNode)return new Map;const t=new Map([[n.unifiedMapNode.id,n.unifiedMapNode]]);for(const{data:e}of lo(n.unifiedMapNode))t.set(e.id,e);return t}),Zw=sn(Ro,n=>n.mapColors),Wp=bn("SET_MAP_COLORS",{_as:"props",_p:void 0}),A3=bn("INVERT_COLOR_RANGE"),m3=bn("INVERT_DELTA_COLORS"),xr=n=>(t,e)=>void 0===e.value?n:e.value,g3=n=>(t,e)=>void 0===e.value?n:{...t,...e.value},af={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}},eoe=Fi(af,vn(Wp,g3(af)),vn(A3,n=>({...n,positive:n.negative,negative:n.positive})),vn(m3,n=>({...n,positiveDelta:n.negativeDelta,negativeDelta:n.positiveDelta})));class PU{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 zS=(()=>{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=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();class _3{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 toe=new gk(-1,1,1,-1,0,1),ioe=new class noe extends fi{constructor(){super(),this.setAttribute("position",new it([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new it([0,2,0,0,2,0],2))}};class roe{constructor(t){this._mesh=new cr(ioe,t)}dispose(){this._mesh.geometry.dispose()}render(t){t.render(this._mesh,toe)}get material(){return this._mesh.material}set material(t){this._mesh.material=t}}class ooe extends _3{constructor(t,e,i=null,r=null,s=null){super(),this.scene=t,this.camera=e,this.overrideMaterial=i,this.clearColor=r,this.clearAlpha=s,this.clear=!0,this.clearDepth=!1,this.needsSwap=!1,this._oldClearColor=new _n}render(t,e,i){const r=t.autoClear;let s,l;t.autoClear=!1,null!==this.overrideMaterial&&(l=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),null!==this.clearColor&&(t.getClearColor(this._oldClearColor),t.setClearColor(this.clearColor,t.getClearAlpha())),null!==this.clearAlpha&&(s=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(s),null!==this.overrideMaterial&&(this.scene.overrideMaterial=l),t.autoClear=r}}const aoe=class soe{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 s=document.createElement("div");return s.id="webglmessage",s.style.fontFamily="monospace",s.style.fontSize="13px",s.style.fontWeight="normal",s.style.textAlign="center",s.style.background="#fff",s.style.color="#000",s.style.padding="1.5em",s.style.width="400px",s.style.margin="5em auto 0",r=r.replace("$0",i[t]?"graphics card":"browser"),r=r.replace("$1",{1:"WebGL",2:"WebGL 2"}[t]),s.innerHTML=r,s}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 DG extends _3{constructor(t,e){super(),this.textureID=void 0!==e?e:"tDiffuse",t instanceof sc?(this.uniforms=t.uniforms,this.material=t):t&&(this.uniforms=_5.clone(t.uniforms),this.material=new sc({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 roe(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 OU extends _3{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(),s=t.state;let l,u;s.buffers.color.setMask(!1),s.buffers.depth.setMask(!1),s.buffers.color.setLocked(!0),s.buffers.depth.setLocked(!0),this.inverse?(l=0,u=1):(l=1,u=0),s.buffers.stencil.setTest(!0),s.buffers.stencil.setOp(r.REPLACE,r.REPLACE,r.REPLACE),s.buffers.stencil.setFunc(r.ALWAYS,l,4294967295),s.buffers.stencil.setClear(u),s.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),s.buffers.color.setLocked(!1),s.buffers.depth.setLocked(!1),s.buffers.color.setMask(!0),s.buffers.depth.setMask(!0),s.buffers.stencil.setLocked(!1),s.buffers.stencil.setFunc(r.EQUAL,1,4294967295),s.buffers.stencil.setOp(r.KEEP,r.KEEP,r.KEEP),s.buffers.stencil.setLocked(!0)}}class BG extends _3{constructor(){super(),this.needsSwap=!1}render(t){t.state.buffers.stencil.setLocked(!1),t.state.buffers.stencil.setTest(!1)}}const loe={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 coe{constructor(t,e){if(this.renderer=t,this._pixelRatio=t.getPixelRatio(),void 0===e){const i=t.getSize(new At);this._width=i.width,this._height=i.height,(e=new Cl(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:xg})).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 DG(loe),this.copyPass.material.blending=0,this.clock=new Vz}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 doe{constructor(){this.vertexShader=v(889),this.fragmentShader=v(6655),this.uniforms={tDiffuse:{value:null},resolution:{value:new At(1/1024,1/512)}}}}class Cr{static{this.BACKGROUND_COLOR={white:16777215,normal:16053483}}static{this.CLEAR_COLOR=Cr.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=>{Cr.CLEAR_COLOR=i?Cr.BACKGROUND_COLOR.white:Cr.BACKGROUND_COLOR.normal,this.renderer?.setClearColor(Cr.CLEAR_COLOR,Cr.CLEAR_ALPHA)},this.initGL=(i,r)=>{if(this.setGLOptions(),this.renderer=new D5(Cr.RENDER_OPTIONS),Cr.setPixelRatio&&this.renderer.setPixelRatio(window.devicePixelRatio),Cr.enableFXAA)if(aoe.isWebGL2Available){const s=this.renderer.getDrawingBufferSize(new At),l=new Cl(s.width,s.height,{format:Ba});this.composer=new kG(this.renderer,l)}else this.composer=new kG(this.renderer);this.renderer.setSize(i,r),this.renderer.domElement.id="codeMapScene",Cr.enableFXAA&&this.initComposer()},this.setGLOptions=()=>{switch(this.state.getValue().appSettings.sharpnessMode){case fd.Standard:Cr.RENDER_OPTIONS.antialias=!0,Cr.enableFXAA=!1,Cr.setPixelRatio=!1;break;case fd.PixelRatioNoAA:Cr.RENDER_OPTIONS.antialias=!1,Cr.enableFXAA=!1,Cr.setPixelRatio=!0;break;case fd.PixelRatioFXAA:Cr.RENDER_OPTIONS.antialias=!1,Cr.enableFXAA=!0,Cr.setPixelRatio=!0;break;case fd.PixelRatioAA:Cr.RENDER_OPTIONS.antialias=!0,Cr.enableFXAA=!1,Cr.setPixelRatio=!0}},this.initComposer=()=>{const i=this.renderer.getPixelRatio();this.composer.setSize(window.innerWidth*i,window.innerHeight*i);const r=new ooe(this.scene,this.camera);this.composer.addPass(r);const s=new DG(new doe);s.renderToScreen=!1,s.uniforms.resolution.value.x=1/(window.innerWidth*i),s.uniforms.resolution.value.y=1/(window.innerHeight*i),this.composer.addPass(s)},this.getInfo=()=>Cr.enableFXAA?this.composer.getInfo():this.renderer.info.render,this.getMemoryInfo=()=>Cr.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(RG).subscribe(this.setBackgroundColorToState)}render(){const{scene:t,camera:e,composer:i,renderer:r}=this;Cr.enableFXAA?i?.render():r?.render(t,e)}static{this.\u0275fac=function(e){return new(e||Cr)(o.KVO(Yt),o.KVO(Vi))}}static{this.\u0275prov=o.jDH({token:Cr,factory:Cr.\u0275fac,providedIn:"root"})}}let Rd=(()=>{class n{constructor(e,i,r,s){this.store=e,this.state=i,this.idToBuilding=r,this.threeRendererService=s,this.eventEmitter=new PU,this.selected=null,this.highlighted=[],this.constantHighlight=new Map,this.folderLabelColorHighlighted=Br.convertHexToNumber("#FFFFFF"),this.folderLabelColorNotHighlighted=Br.convertHexToNumber("#7A7777"),this.rayPoint=new pe(0,0,0),this.normedTransformVector=new pe(0,0,0),this.highlightedLabel=null,this.highlightedLineIndex=-1,this.highlightedLine=null,this.subscription=this.store.select(Zw).subscribe(l=>{this.folderLabelColorSelected=l.selected,this.numberSelectionColor=Br.convertHexToNumber(this.folderLabelColorSelected)}),this.scene=new wk,this.mapGeometry=new ac,this.lights=new ac,this.labels=new ac,this.floorLabelPlanes=new ac,this.edgeArrows=new ac,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!==ja.SquarifiedTreeMap||!r)return;const s=this.getRootNode(e);if(!s)return;const l=this.state.getValue().appSettings.scaling,u=this.state.getValue().appSettings.experimentalFeaturesEnabled,f=new pe(l.x,l.y,l.z);this.floorLabelDrawer=new Kw(this.mapMesh.getNodes(),s,Ds,f,u);const p=this.floorLabelDrawer.draw(this.state.getValue());p.length>0&&(this.floorLabelPlanes.add(...p),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(-Ds*e.x,0,-Ds*e.z),this.mapMesh.setScale(e)}highlightMaterial(e){const i=new Set(this.highlighted.map(({node:s})=>s.id)),r=new Set;for(const{node:s}of this.constantHighlight.values())r.add(s.id);for(const s of e){const l=s.userData.id;this.selected&&l===this.selected.node.id?s.color.setHex(this.numberSelectionColor):i.has(l)||r.has(l)?s.color.setHex(this.folderLabelColorHighlighted):s.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(RU({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 pe,this.rayPoint.subVectors(i.ray.origin,e.position);const s=Math.sqrt(this.rayPoint.x**2+this.rayPoint.y**2+this.rayPoint.z**2);this.normedTransformVector=new pe(this.rayPoint.x/s,this.rayPoint.y/s,this.rayPoint.z/s);const u=this.calculateMaxDistance(e,r,i.ray.origin);this.normedTransformVector.multiplyScalar(u),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=af.labelColorAndAlpha.alpha,this.highlightedLine&&this.toggleLineAnimation(this.highlightedLabel),this.highlightedLabel=null)}getHoveredLabelLineIndex(e,i){const r=e.findIndex(({uuid:s})=>s===i.uuid);if(r>=0)return r+1}toggleLineAnimation(e){const i=new pe(e.position.x,e.position.y,e.position.z),s=[...this.highlightedLine.geometry.attributes.position.array],l=(new fi).setFromPoints([new pe(s[0],s[1],s[2]),i]),u=new Ou(l,this.highlightedLine.material);this.labels.children.splice(this.highlightedLineIndex,1,u)}getLabelForHoveredNode(e,i){for(let r=0;r=i.min[r]&&i.max[r]>=e.min[r])}getIntersectionDistanceFunction(e,i){return r=>{const s=this.normedTransformVector.clone();s.multiplyScalar(r),e.translate(s);const l=this.isOverlapping(i,e,"x")+this.isOverlapping(i,e,"y");return 2===l||1===l&&this.isOverlapping(i,e,"z")?r:0}}calculateMaxDistance(e,i,r){const s=(new Qs).setFromObject(e),l=new pe;s.getCenter(l);const u=r.distanceTo(l);let f=u/20;for(let p=0;p0&&this.clearHighlight()}clearSelection(){this.selected&&(this.getMapMesh().clearSelection(this.selected),this.store.dispatch(RU({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 gU(7368816),i=new NS(14737632,1.5);i.position.set(50,10,8).normalize();const r=new NS(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=-Ds,this.mapGeometry.position.y=0,this.mapGeometry.position.z=-Ds,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)(o.KVO(Yt),o.KVO(Vi),o.KVO(zS),o.KVO(Cr))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function uoe(n,t){if(1&n){const e=o.RV6();o.j41(0,"cc-action-icon",2),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.makeScreenshotToClipboard())}),o.k0s()}if(2&n){const e=o.XpG();o.AVh("disabled",!e.isWriteToClipboardAllowed),o.FS9("title",e.TITLE_CLIPBOARD_BUTTON),o.Y8G("icon","fa fa-camera")}}function hoe(n,t){if(1&n){const e=o.RV6();o.j41(0,"cc-action-icon",2),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.makeScreenshotToFile())}),o.k0s()}if(2&n){const e=o.XpG();o.FS9("title",e.TITLE_FILE_BUTTON),o.Y8G("icon","fa fa-camera")}}let foe=(()=>{class n{constructor(e,i,r,s,l){this.threeCameraService=e,this.threeSceneService=i,this.threeRendererService=r,this.store=s,this.state=l,this.SCREENSHOT_HOTKEY_TO_FILE="Ctrl+Alt+S",this.SCREENSHOT_HOTKEY_TO_CLIPBOARD="Ctrl+Alt+F",this.isScreenshotToClipboardEnabled$=this.store.select(oG)}ngOnInit(){this.isWriteToClipboardAllowed=function fre(){return"clipboard"in navigator&&"write"in navigator.clipboard}(),this.TITLE_CLIPBOARD_BUTTON=this.createTitleClipboardButton(),this.TITLE_FILE_BUTTON=this.createTitleFileButton(),Sd(this.SCREENSHOT_HOTKEY_TO_FILE,()=>{this.makeScreenshotToFile()}),Sd(this.SCREENSHOT_HOTKEY_TO_CLIPBOARD,()=>{this.makeScreenshotToClipboard()})}makeScreenshotToFile(){var e=this;return Cn(function*(){const i=e.threeRendererService.renderer,r=e.saveRenderSettings(i),s=yield e.buildScreenShotCanvas(i);e.downloadScreenshot(s,e.state.getValue().files),e.applyRenderSettings(i,r)})()}makeScreenshotToClipboard(){var e=this;return Cn(function*(){if(!e.isWriteToClipboardAllowed)return;const i=e.threeRendererService.renderer,r=e.saveRenderSettings(i),s=yield e.buildScreenShotCanvas(i),l=new Promise(f=>s.toBlob(f));e.applyRenderSettings(i,r);const u=yield l;yield function hre(n){return CU.apply(this,arguments)}(u)})()}downloadScreenshot(e,i){const r=e.toDataURL("image/png"),s=document.createElement("a");s.download=function gre(n,t){const e=Bd(n)?"delta":"",r=d3(n).map(u=>function _re(n){return n.file.fileMeta.fileName.replace(/(.cc)?.json$/,"")}(u)),s=function bre(n){return n.length<=3?n.join(c3):[n.at(0),sG,n.at(-1)].join(c3)}(r);return function vre(n,t,e){const i=[t,n].filter(s=>s.length>0).join(c3),r=255-e.length-MU.length;return i.length<=r?[i,c3,e,MU].join(""):[i.slice(0,r-1),sG,e,MU].join("")}(s,e,t)}(i,"map"),s.href=r,document.body.appendChild(s),s.click(),s.remove()}saveRenderSettings(e){const i=e.getPixelRatio(),r=new _n;return e.getClearColor(r),{pixelRatio:i,clearColor:r}}applyRenderSettings(e,i){const{pixelRatio:r,clearColor:s}=i;e.setPixelRatio(r),e.setClearColor(s),e.render(this.threeSceneService.scene,this.threeCameraService.camera)}buildScreenShotCanvas(e){var i=this;return Cn(function*(){e.setPixelRatio(window.devicePixelRatio),e.setClearColor(new _n(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"]),s=new Set(["legend-panel-button"]),l=document.querySelector("body")?.offsetHeight,u=document.querySelector("cc-ribbon-bar")?.offsetHeight,f=document.querySelector("cc-tool-bar")?.offsetHeight,p=document.querySelector("cc-file-extension-bar")?.offsetHeight,m=u+f+p,_=yield xL()(document.querySelector("body"),{removeContainer:!0,backgroundColor:"#00",scrollY:-m,height:l-m,ignoreElements:b=>r.has(b.tagName.toLowerCase())||s.has(b.id)||"10000"===b.style.zIndex});return i.getCroppedCanvas(_)})()}getCroppedCanvas(e){const i=e.getContext("2d"),r=e.width,s=e.height,u=i.getImageData(0,0,r,s).data;let f=r,p=s,m=0,_=0;for(let F=0;F0&&(f=Math.min(f,F),m=Math.max(m,F),p=Math.min(p,D),_=Math.max(_,D));const b=document.createElement("canvas"),w=b.getContext("2d");return b.width=m-f+1,b.height=_-p+1,w.drawImage(e,f,p,b.width,b.height,0,0,b.width,b.height),b}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)(o.rXU(rf),o.rXU(Rd),o.rXU(Cr),o.rXU(Yt),o.rXU(Vi))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-screenshot-button"]],standalone:!0,features:[o.aNF],decls:4,vars:6,consts:[[3,"icon","title","disabled"],[3,"icon","title"],[3,"click","icon","title"]],template:function(i,r){1&i&&(o.DNE(0,uoe,1,4,"cc-action-icon",0),o.nI1(1,"async"),o.DNE(2,hoe,1,2,"cc-action-icon",1),o.nI1(3,"async")),2&i&&(o.vxM(o.bMT(1,2,r.isScreenshotToClipboardEnabled$)?0:-1),o.R7$(2),o.vxM(o.bMT(3,4,r.isScreenshotToClipboardEnabled$)?-1:2))},dependencies:[Al,Qn],encapsulation:2})}}return n})();function poe(n){return`\t\u2022 ${n.filePath} (${n.value})\n`}function Aoe(n){return`${n.toUpperCase()}\n`}function boe(n){return n.type===Zo.FILE&&void 0!==n.attributes}function voe(n,t,e){for(const[i,r]of Object.entries(n.attributes)){const s=t?.[i]?.direction,l={filePath:n.path,value:r};if(e.has(i)){const u=e.get(i);yoe(u,l,s),e.set(i,u.slice(0,10))}else e.set(i,[l])}}function yoe(n,t,e){const i=function woe(n){return 1===n?(t,e)=>t.value-e.value:(t,e)=>e.value-t.value}(e),r=n.findIndex(s=>i(t,s)<0);-1===r?n.push(t):n.splice(r,0,t)}let xoe=(()=>{class n{constructor(e){this.state=e}getClipboardText(){const r=function _oe(n,t){const e=new Map;for(const{data:i}of lo(n))boe(i)&&voe(i,t,e);return e}(this.getUnifiedMapNode(),this.state.getValue().fileSettings.attributeDescriptors);return function moe(n){let t="";for(const[e,i]of n.entries()){t+=Aoe(e);for(const r of i)t+=poe(r)}return t}(r)}getUnifiedMapNode(){const{unifiedMapNode:e}=kd(this.state.getValue());return e}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Vi))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Coe=(()=>{class n{constructor(e){this.copyToClipboardService=e}copyNamesToClipBoard(){var e=this;return Cn(function*(){yield navigator.clipboard.writeText(e.copyToClipboardService.getClipboardText())})()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(xoe))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-copy-to-clipboard-button"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"cc-action-icon",0),o.bIt("click",function(){return r.copyNamesToClipBoard()}),o.k0s())},dependencies:[Al],encapsulation:2})}}return n})();const PG={type:"change"},NU={type:"start"},OG={type:"end"},b3=new Hp,NG=new Lg,Moe=Math.cos(70*Z9_DEG2RAD),ia=new pe,cc=2*Math.PI,LU=1e-6;class UU extends ure{constructor(t,e=null){super(t,e),this.state=-1,this.enabled=!0,this.target=new pe,this.cursor=new pe,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 pe,this._lastQuaternion=new Pa,this._lastTargetPosition=new pe,this._quat=(new Pa).setFromUnitVectors(t.up,new pe(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new Wz,this._sphericalDelta=new Wz,this._scale=1,this._panOffset=new pe,this._rotateStart=new At,this._rotateEnd=new At,this._rotateDelta=new At,this._panStart=new At,this._panEnd=new At,this._panDelta=new At,this._dollyStart=new At,this._dollyEnd=new At,this._dollyDelta=new At,this._dollyDirection=new pe,this._mouse=new At,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=Soe.bind(this),this._onPointerDown=Eoe.bind(this),this._onPointerUp=Toe.bind(this),this._onContextMenu=Poe.bind(this),this._onMouseWheel=Doe.bind(this),this._onKeyDown=Boe.bind(this),this._onTouchStart=koe.bind(this),this._onTouchMove=Roe.bind(this),this._onMouseDown=Ioe.bind(this),this._onMouseMove=Foe.bind(this),this._interceptControlDown=Ooe.bind(this),this._interceptControlUp=Noe.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(PG),this.update(),this.state=-1}update(t=null){const e=this.object.position;ia.copy(e).sub(this.target),ia.applyQuaternion(this._quat),this._spherical.setFromVector3(ia),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+=cc:i>Math.PI&&(i-=cc),r<-Math.PI?r+=cc:r>Math.PI&&(r-=cc),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 s=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const l=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),s=l!=this._spherical.radius}if(ia.setFromSpherical(this._spherical),ia.applyQuaternion(this._quatInverse),e.copy(this.target).add(ia),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 l=null;if(this.object.isPerspectiveCamera){const u=ia.length();l=this._clampDistance(u*this._scale);const f=u-l;this.object.position.addScaledVector(this._dollyDirection,f),this.object.updateMatrixWorld(),s=!!f}else if(this.object.isOrthographicCamera){const u=new pe(this._mouse.x,this._mouse.y,0);u.unproject(this.object);const f=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),s=f!==this.object.zoom;const p=new pe(this._mouse.x,this._mouse.y,0);p.unproject(this.object),this.object.position.sub(p).add(u),this.object.updateMatrixWorld(),l=ia.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;null!==l&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(l).add(this.object.position):(b3.origin.copy(this.object.position),b3.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(b3.direction))LU||8*(1-this._lastQuaternion.dot(this.object.quaternion))>LU||this._lastTargetPosition.distanceToSquared(this.target)>LU)&&(this.dispatchEvent(PG),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0)}_getAutoRotationAngle(t){return null!==t?cc/60*this.autoRotateSpeed*t:cc/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){ia.setFromMatrixColumn(e,0),ia.multiplyScalar(-t),this._panOffset.add(ia)}_panUp(t,e){!0===this.screenSpacePanning?ia.setFromMatrixColumn(e,1):(ia.setFromMatrixColumn(e,0),ia.crossVectors(this.object.up,ia)),ia.multiplyScalar(t),this._panOffset.add(ia)}_pan(t,e){const i=this.domElement;if(this.object.isPerspectiveCamera){ia.copy(this.object.position).sub(this.target);let s=ia.length();s*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*s/i.clientHeight,this.object.matrix),this._panUp(2*e*s/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(),s=e-i.top,u=i.height;this._mouse.x=(t-i.left)/i.width*2-1,this._mouse.y=-s/u*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(cc*this._rotateDelta.x/e.clientHeight),this._rotateUp(cc*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(cc*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(-cc*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(cc*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(-cc*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,s=Math.sqrt(i*i+r*r);this._dollyStart.set(0,s)}_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(cc*this._rotateDelta.x/e.clientHeight),this._rotateUp(cc*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,s=Math.sqrt(i*i+r*r);this._dollyEnd.set(0,s),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>1|(21845&Go)<<1;$S[Go]=((65280&(jg=(61680&(jg=(52428&jg)>>2|(13107&jg)<<2))>>4|(3855&jg)<<4))>>8|(255&jg)<<8)>>1}var lf=function(n,t,e){for(var i=n.length,r=0,s=new Tl(t);r>f]=p}else for(u=new Tl(i),r=0;r>15-n[r]);return u},$g=new wo(288);for(Go=0;Go<144;++Go)$g[Go]=8;for(Go=144;Go<256;++Go)$g[Go]=9;for(Go=256;Go<280;++Go)$g[Go]=7;for(Go=280;Go<288;++Go)$g[Go]=8;var qS=new wo(32);for(Go=0;Go<32;++Go)qS[Go]=5;var zG=lf($g,9,0),jG=lf(qS,5,0),WS=function(n){return(n+7)/8|0},qg=function(n,t,e){return(null==t||t<0)&&(t=0),(null==e||e>n.length)&&(e=n.length),new wo(n.subarray(t,e))},qG=["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"],Vr=function(n,t,e){var i=new Error(t||qG[n]);if(i.code=n,Error.captureStackTrace&&Error.captureStackTrace(i,Vr),!e)throw i;return i},cf=function(n,t,e){var i=t/8|0;n[i]|=e<<=7&t,n[i+1]|=e>>8},nx=function(n,t,e){var i=t/8|0;n[i]|=e<<=7&t,n[i+1]|=e>>8,n[i+2]|=e>>16},C3=function(n,t){for(var e=[],i=0;ib&&(b=s[i].s);var w=new Tl(b+1),F=M3(e[m-1],w,0);if(F>t){i=0;var D=0,T=F-t,I=1<t))break;D+=I-(1<>=T;D>0;){var R=s[i].s;w[R]=0&&D;--i){var P=s[i].s;w[P]==t&&(--w[P],++D)}F=t}return{t:new wo(w),l:F}},M3=function(n,t,e){return-1==n.s?Math.max(M3(n.l,t,e+1),M3(n.r,t,e+1)):t[n.s]=e},QU=function(n){for(var t=n.length;t&&!n[--t];);for(var e=new Tl(++t),i=0,r=n[0],s=1,l=function(f){e[i++]=f},u=1;u<=t;++u)if(n[u]==r&&u!=t)++s;else{if(!r&&s>2){for(;s>138;s-=138)l(32754);s>2&&(l(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(l(r),--s;s>6;s-=6)l(8304);s>2&&(l(s-3<<5|8208),s=0)}for(;s--;)l(r);s=1,r=n[u]}return{c:e.subarray(0,i),n:t}},ix=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 s=0;s4&&!q[jS[ke-1]];--ke);var Ce,Oe,Fe,ft,Ue=p+5<<3,ce=ix(r,$g)+ix(s,qS)+l,ze=ix(r,b)+ix(s,D)+l+14+3*ke+ix(te,q)+2*te[16]+3*te[17]+7*te[18];if(f>=0&&Ue<=ce&&Ue<=ze)return zU(t,m,n.subarray(f,f+p));if(cf(t,m,1+(ze15&&(cf(t,m,Xn[ie]>>5&127),m+=Xn[ie]>>12)}}else Ce=zG,Oe=$g,Fe=jG,ft=qS;for(ie=0;ie255){var Me;nx(t,m,Ce[257+(Me=be>>18&31)]),m+=Oe[Me+257],Me>7&&(cf(t,m,be>>23&31),m+=ex[Me]);var Ae=31&be;nx(t,m,Fe[Ae]),m+=ft[Ae],Ae>3&&(nx(t,m,be>>5&8191),m+=tx[Ae])}else nx(t,m,Ce[be]),m+=Oe[be]}return nx(t,m,Ce[256]),m+Oe[256]},WG=new GS([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),jU=new wo(0),KG=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}(),E3=function(){var n=-1;return{p:function(t){for(var e=n,i=0;i>>8;n=e},d:function(){return~n}}},S3=function(n,t,e,i,r){if(!r&&(r={l:1},t.dictionary)){var s=t.dictionary.subarray(-32768),l=new wo(s.length+n.length);l.set(s),l.set(n,s.length),n=l,r.w=s.length}return function(n,t,e,i,r,s){var l=s.z||n.length,u=new wo(i+l+5*(1+Math.ceil(l/7e3))+r),f=u.subarray(i,u.length-r),p=s.l,m=7&(s.r||0);if(t){m&&(f[0]=s.r>>3);for(var _=WG[t-1],b=_>>13,w=8191&_,F=(1<7e3||q>24576)&&(Ce>423||!p)){m=GU(n,f,0,P,ee,J,ie,q,ke,W-ke,m),q=te=ie=0,ke=W;for(var Oe=0;Oe<286;++Oe)ee[Oe]=0;for(Oe=0;Oe<30;++Oe)J[Oe]=0}var Fe=2,ft=0,Et=w,kt=ce-ze&32767;if(Ce>2&&Ue==R(W-kt))for(var nn=Math.min(b,Ce)-1,Xn=Math.min(32767,W),Me=Math.min(258,Ce);kt<=Xn&&--Et&&ce!=ze;){if(n[W+Fe]==n[W+Fe-kt]){for(var be=0;beFe){if(Fe=be,ft=kt,be>nn)break;var Ae=Math.min(kt,be-2),ae=0;for(Oe=0;Oeae&&(ae=lt,ze=ut)}}}kt+=(ce=ze)-(ze=D[ce])&32767}if(ft){P[q++]=268435456|v3[Fe]<<18|HU[ft];var zt=31&v3[Fe],de=31&HU[ft];ie+=ex[zt]+tx[de],++ee[257+zt],++J[de],le=W+Fe,++te}else P[q++]=n[W],++ee[n[W]]}}for(W=Math.max(W,le);W=l&&(f[m/8|0]=p,wt=l),m=zU(f,m+1,n.subarray(W,wt))}s.i=l}return qg(u,0,i+WS(m)+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)},T3=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},qo=function(n,t,e){for(;e;++t)n[t]=e,e>>>=8};function F3(n,t){return S3(n,t||{},0,0)}var JU=function(n,t,e,i){for(var r in n){var s=n[r],l=t+r,u=i;Array.isArray(s)&&(u=T3(i,s[1]),s=s[0]),s instanceof wo?e[l]=[s,u]:(e[l+="/"]=[new wo(0),u],JU(s,l,e,i))}},lj=typeof TextEncoder<"u"&&new TextEncoder,e8=typeof TextDecoder<"u"&&new TextDecoder;try{e8.decode(jU,{stream:!0})}catch{}function Xg(n,t){if(t){for(var e=new wo(n.length),i=0;i>1)),l=0,u=function(m){s[l++]=m};for(i=0;is.length){var f=new wo(l+8+(r-i<<1));f.set(s),s=f}var p=n.charCodeAt(i);p<128||t?u(p):p<2048?(u(192|p>>6),u(128|63&p)):p>55295&&p<57344?(u(240|(p=65536+(1047552&p)|1023&n.charCodeAt(++i))>>18),u(128|p>>12&63),u(128|p>>6&63),u(128|63&p)):(u(224|p>>12),u(128|p>>6&63),u(128|63&p))}return qg(s,0,l)}var KS=function(n){var t=0;if(n)for(var e in n){var i=n[e].length;i>65535&&Vr(9),t+=i+4}return t},D3=function(n,t,e,i,r,s,l,u){var f=i.length,p=e.extra,m=u&&u.length,_=KS(p);qo(n,t,null!=l?33639248:67324752),t+=4,null!=l&&(n[t++]=20,n[t++]=e.os),n[t]=20,t+=2,n[t++]=e.flag<<1|(s<0&&8),n[t++]=r&&8,n[t++]=255&e.compression,n[t++]=e.compression>>8;var b=new Date(null==e.mtime?Date.now():e.mtime),w=b.getFullYear()-1980;if((w<0||w>119)&&Vr(10),qo(n,t,w<<25|b.getMonth()+1<<21|b.getDate()<<16|b.getHours()<<11|b.getMinutes()<<5|b.getSeconds()>>1),t+=4,-1!=s&&(qo(n,t,e.crc),qo(n,t+4,s<0?-s-2:s),qo(n,t+8,e.size)),qo(n,t+12,f),qo(n,t+14,_),t+=16,null!=l&&(qo(n,t,m),qo(n,t+6,e.attrs),qo(n,t+10,l),t+=14),n.set(i,t),t+=f,_)for(var F in p){var D=p[F],T=D.length;qo(n,t,+F),qo(n,t+2,T),n.set(D,t+4),t+=4+T}return m&&(n.set(u,t),t+=m),t};function ise(n){return` \n \n \n \n \n \n`}function t8(){return(t8=Cn(function*(n){const{vertices:t,triangles:e,volumes:i}=function hj(n){const t=[],e=[],i=[],r=new Map,s=new Map;for(const u of n.children)n8(u,t,e,r,1,s,i);return{vertices:t,triangles:e,volumes:i}}(n),r=function ose(n,t){const i=function ase(n){let t=" \n";for(const e of n)t+=` ${e}\n`;return t+=" \n",t}(n),r=function lse(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),s=function tse(n){let t='\n\n \n \n';for(const e of n)t+=ise(e);return t+=" \n\n",t}(i);return function Zoe(n,t){t||(t={});var e={},i=[];JU(n,"",e,t);var r=0,s=0;for(var l in e){var u=e[l],f=u[0],p=u[1],m=0==p.level?0:8,b=(_=Xg(l)).length,w=p.comment,F=w&&Xg(w),D=F&&F.length,T=KS(p.extra);b>65535&&Vr(11);var I=m?F3(f,p):f,O=I.length,R=E3();R.p(f),i.push(T3(p,{size:f.length,crc:R.d(),c:I,f:_,m:F,u:b!=l.length||F&&w.length!=D,o:r,compression:m})),r+=30+b+T+O,s+=76+2*(b+T)+(D||0)+O}for(var P=new wo(s+22),ee=r,J=s-r,te=0;te\n \n \n')},Metadata:{"Slic3r_PE_model.config":Xg(s)},"[Content_Types].xml":Xg('\n\n \n \n')},{comment:"created by CodeCharta"}).buffer})).apply(this,arguments)}function n8(n,t,e,i,r,s,l,u=void 0){if(!n.visible)return;for(const m of n.children){let _=n.matrix;u&&(_=u.clone().multiply(n.matrix)),n8(m,t,e,i,r,s,l,_)}const f=function fj(n){const t=new Map;if(n.geometry.attributes.color)for(let e=0;el);t.set(i,r)}return t}(n),p=new Map;for(const[m,_]of f.entries()){const b=e.length;pj(t,i,p,_,n,u),Aj(n.geometry,e,p,_),mj(n,m,b,e.length-1,l,r,s),r++}}function pj(n,t,e,i,r,s){const l=r.geometry.attributes.position;for(const u of i){const f=new pe(l.getX(u),l.getY(u),l.getZ(u));f.applyMatrix4(r.matrix),s&&f.applyMatrix4(s);const p=``;t.has(p)?e.set(u,t.get(p)):(n.push(p),t.set(p,n.length-1),e.set(u,n.length-1))}}function Aj(n,t,e,i){if(n.index){const r=n.index;for(let s=0;s`;t.push(p)}}}else for(let r=0;r`;t.push(s)}}function mj(n,t,e,i,r,s,l){l.has(t)||l.set(t,l.size+1);const u=l.get(t);r.push({id:s,name:"Map"===n.name?`${n.name} 0x${t}`:n.name,color:t,extruder:u,firstTriangleId:e,lastTriangleId:i})}function i8(n,t){return(n instanceof x?[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 r8{constructor(t){this.isFont=!0,this.type="Font",this.data=t}generateShapes(t,e=100){const i=[],r=function use(n,t,e){const i=Array.from(n),r=t/e.resolution,s=(e.boundingBox.yMax-e.boundingBox.yMin+e.underlineThickness)*r,l=[];let u=0,f=0;for(let p=0;p{e.geometry=r});const i=new sc;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 Jb extends Lu{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 Lu&&e.updateColor(t);this.updateVisibility()}}class dc{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 mse extends Jb{constructor(){super("Map",new dc,1,!1)}init(t){var e=this;return Cn(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,s=i/e.boundingBox.max.x;return e.scale(s,s,s),e.translate(-i/2,i/2,0),this.updateMapColors(this.originalColors,e,t.numberOfColors),e}updateMapColors(t,e,i){const r=[];for(let s=0;s.75&&u>.75?p=i<4?[1,1,1]:[1,1,0]:l>.45&&u<.1?p=i<4?[1,1,1]:[1,0,0]:l<5&&u>.6?p=i<4?[1,1,1]:[0,1,0]:(console.error("Unknown color"),p=[1,1,1]),r.push(...p)}e.setAttribute("color",new it(r,3))}changeSize(t,e){var i=this;return Cn(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 gse=Oc;class o8 extends lc{constructor(t){super(t),this.defaultDPI=90,this.defaultUnit="px"}load(t,e,i,r){const s=this,l=new nf(s.manager);l.setPath(s.path),l.setRequestHeader(s.requestHeader),l.setWithCredentials(s.withCredentials),l.load(t,function(u){try{e(s.parse(u))}catch(f){r?r(f):console.error(f),s.manager.itemError(t)}},i,r)}parse(t){const e=this;function l(Me,be,Ae,ae,ut,Nt,lt,zt){if(0==be||0==Ae)return void Me.lineTo(zt.x,zt.y);ae=ae*Math.PI/180,be=Math.abs(be),Ae=Math.abs(Ae);const de=(lt.x-zt.x)/2,wt=(lt.y-zt.y)/2,Ze=Math.cos(ae)*de+Math.sin(ae)*wt,Mt=-Math.sin(ae)*de+Math.cos(ae)*wt;let _t=be*be,Ft=Ae*Ae;const Pe=Ze*Ze,Se=Mt*Mt,_e=Pe/_t+Se/Ft;if(_e>1){const hn=Math.sqrt(_e);_t=(be*=hn)*be,Ft=(Ae*=hn)*Ae}const oe=_t*Se+Ft*Pe;let Ht=Math.sqrt(Math.max(0,(_t*Ft-oe)/oe));ut===Nt&&(Ht=-Ht);const Vt=Ht*be*Mt/Ae,jt=-Ht*Ae*Ze/be,Si=Math.cos(ae)*Vt-Math.sin(ae)*jt+(lt.x+zt.x)/2,Fn=Math.sin(ae)*Vt+Math.cos(ae)*jt+(lt.y+zt.y)/2,Kn=u(1,0,(Ze-Vt)/be,(Mt-jt)/Ae),ir=u((Ze-Vt)/be,(Mt-jt)/Ae,(-Ze-Vt)/be,(-Mt-jt)/Ae)%(2*Math.PI);Me.currentPath.absellipse(Si,Fn,be,Ae,Kn,Kn+ir,0===Nt,ae)}function u(Me,be,Ae,ae){const ut=Me*Ae+be*ae,Nt=Math.sqrt(Me*Me+be*be)*Math.sqrt(Ae*Ae+ae*ae);let lt=Math.acos(Math.max(-1,Math.min(1,ut/Nt)));return Me*ae-be*Ae<0&&(lt=-lt),lt}function F(Me,be){be=Object.assign({},be);let Ae={};if(Me.hasAttribute("class")){const lt=Me.getAttribute("class").split(/\s/).filter(Boolean).map(zt=>zt.trim());for(let zt=0;ztNumber.EPSILON}function W(Me){const be=Me.elements;return Math.sqrt(be[0]*be[0]+be[1]*be[1])}function q(Me){const be=Me.elements;return Math.sqrt(be[3]*be[3]+be[4]*be[4])}const ke=[],Ue={},ce=[],ze=new Ki,Ce=new Ki,Oe=new Ki,Fe=new Ki,ft=new At,Et=new pe,kt=new Ki,nn=(new DOMParser).parseFromString(t,"image/svg+xml");return function i(Me,be){if(1!==Me.nodeType)return;const Ae=function P(Me){if(!(Me.hasAttribute("transform")||"use"===Me.nodeName&&(Me.hasAttribute("x")||Me.hasAttribute("y"))))return null;const be=function ee(Me){const be=new Ki,Ae=ze;if("use"===Me.nodeName&&(Me.hasAttribute("x")||Me.hasAttribute("y"))){const ae=R(Me.getAttribute("x")),ut=R(Me.getAttribute("y"));be.translate(ae,ut)}if(Me.hasAttribute("transform")){const ae=Me.getAttribute("transform").split(")");for(let ut=ae.length-1;ut>=0;ut--){const Nt=ae[ut].trim();if(""===Nt)continue;const lt=Nt.indexOf("(");if(lt>0&<=1){let Mt=0;wt.length>=2&&(Mt=wt[1]),Ae.translate(wt[0],Mt)}break;case"rotate":if(wt.length>=1){let Ze=0,Mt=0,_t=0;Ze=wt[0]*Math.PI/180,wt.length>=3&&(Mt=wt[1],_t=wt[2]),Ce.makeTranslation(-Mt,-_t),Oe.makeRotation(Ze),Fe.multiplyMatrices(Oe,Ce),Ce.makeTranslation(Mt,_t),Ae.multiplyMatrices(Ce,Fe)}break;case"scale":if(wt.length>=1){const Ze=wt[0];let Mt=Ze;wt.length>=2&&(Mt=wt[1]),Ae.scale(Ze,Mt)}break;case"skewX":1===wt.length&&Ae.set(1,Math.tan(wt[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":1===wt.length&&Ae.set(1,0,0,Math.tan(wt[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":6===wt.length&&Ae.set(wt[0],wt[2],wt[4],wt[1],wt[3],wt[5],0,0,1)}}be.premultiply(Ae)}}return be}(Me);return ce.length>0&&be.premultiply(ce[ce.length-1]),kt.copy(be),ce.push(be),be}(Me);let ae=!1,ut=null;switch(Me.nodeName){case"svg":case"g":be=F(Me,be);break;case"style":!function s(Me){if(Me.sheet&&Me.sheet.cssRules&&Me.sheet.cssRules.length)for(let be=0;beut.trim());for(let ut=0;ut""!==lt));Ue[ae[ut]]=Object.assign(Ue[ae[ut]]||{},Nt)}}}(Me);break;case"path":be=F(Me,be),Me.hasAttribute("d")&&(ut=function r(Me){const be=new zg,Ae=new At,ae=new At,ut=new At;let Nt=!0,lt=!1;const zt=Me.getAttribute("d");if(""===zt||"none"===zt)return null;const de=zt.match(/[a-df-z][^a-df-z]*/gi);for(let wt=0,Ze=de.length;wt0&&(Ae.copy(ut),be.currentPath.currentPoint.copy(Ae),Nt=!0);break;default:console.warn(Mt)}lt=!1}return be}(Me));break;case"rect":be=F(Me,be),ut=function f(Me){const be=R(Me.getAttribute("x")||0),Ae=R(Me.getAttribute("y")||0),ae=R(Me.getAttribute("rx")||Me.getAttribute("ry")||0),ut=R(Me.getAttribute("ry")||Me.getAttribute("rx")||0),Nt=R(Me.getAttribute("width")),lt=R(Me.getAttribute("height")),zt=.448084975506,de=new zg;return de.moveTo(be+ae,Ae),de.lineTo(be+Nt-ae,Ae),(0!==ae||0!==ut)&&de.bezierCurveTo(be+Nt-ae*zt,Ae,be+Nt,Ae+ut*zt,be+Nt,Ae+ut),de.lineTo(be+Nt,Ae+lt-ut),(0!==ae||0!==ut)&&de.bezierCurveTo(be+Nt,Ae+lt-ut*zt,be+Nt-ae*zt,Ae+lt,be+Nt-ae,Ae+lt),de.lineTo(be+ae,Ae+lt),(0!==ae||0!==ut)&&de.bezierCurveTo(be+ae*zt,Ae+lt,be,Ae+lt-ut*zt,be,Ae+lt-ut),de.lineTo(be,Ae+ut),(0!==ae||0!==ut)&&de.bezierCurveTo(be,Ae+ut*zt,be+ae*zt,Ae,be+ae,Ae),de}(Me);break;case"polygon":be=F(Me,be),ut=function p(Me){const ae=new zg;let ut=0;return Me.getAttribute("points").replace(/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,function be(Nt,lt,zt){const de=R(lt),wt=R(zt);0===ut?ae.moveTo(de,wt):ae.lineTo(de,wt),ut++}),ae.currentPath.autoClose=!0,ae}(Me);break;case"polyline":be=F(Me,be),ut=function m(Me){const ae=new zg;let ut=0;return Me.getAttribute("points").replace(/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,function be(Nt,lt,zt){const de=R(lt),wt=R(zt);0===ut?ae.moveTo(de,wt):ae.lineTo(de,wt),ut++}),ae.currentPath.autoClose=!1,ae}(Me);break;case"circle":be=F(Me,be),ut=function _(Me){const be=R(Me.getAttribute("cx")||0),Ae=R(Me.getAttribute("cy")||0),ae=R(Me.getAttribute("r")||0),ut=new zb;ut.absarc(be,Ae,ae,0,2*Math.PI);const Nt=new zg;return Nt.subPaths.push(ut),Nt}(Me);break;case"ellipse":be=F(Me,be),ut=function b(Me){const be=R(Me.getAttribute("cx")||0),Ae=R(Me.getAttribute("cy")||0),ae=R(Me.getAttribute("rx")||0),ut=R(Me.getAttribute("ry")||0),Nt=new zb;Nt.absellipse(be,Ae,ae,ut,0,2*Math.PI);const lt=new zg;return lt.subPaths.push(Nt),lt}(Me);break;case"line":be=F(Me,be),ut=function w(Me){const be=R(Me.getAttribute("x1")||0),Ae=R(Me.getAttribute("y1")||0),ae=R(Me.getAttribute("x2")||0),ut=R(Me.getAttribute("y2")||0),Nt=new zg;return Nt.moveTo(be,Ae),Nt.lineTo(ae,ut),Nt.currentPath.autoClose=!1,Nt}(Me);break;case"defs":ae=!0;break;case"use":be=F(Me,be);const zt=(Me.getAttributeNS("http://www.w3.org/1999/xlink","href")||"").substring(1),de=Me.viewportElement.getElementById(zt);de?i(de,be):console.warn("SVGLoader: 'use node' references non-existent node id: "+zt)}ut&&(void 0!==be.fill&&"none"!==be.fill&&ut.color.setStyle(be.fill,gse),function J(Me,be){function Ae(lt){Et.set(lt.x,lt.y,1).applyMatrix3(be),lt.set(Et.x,Et.y)}function ae(lt){const zt=lt.xRadius,de=lt.yRadius,wt=Math.cos(lt.aRotation),Ze=Math.sin(lt.aRotation),Mt=new pe(zt*wt,zt*Ze,0),_t=new pe(-de*Ze,de*wt,0),Ft=Mt.applyMatrix3(be),Pe=_t.applyMatrix3(be),Se=ze.set(Ft.x,Pe.x,0,Ft.y,Pe.y,0,0,0,1),_e=Ce.copy(Se).invert(),Ht=Oe.copy(_e).transpose().multiply(_e).elements,Vt=function le(Me,be,Ae){let ae,ut,Nt,lt,zt;const de=Me+Ae,wt=Me-Ae,Ze=Math.sqrt(wt*wt+4*be*be);return de>0?(ae=.5*(de+Ze),zt=1/ae,ut=Me*zt*Ae-be*zt*be):de<0?ut=.5*(de-Ze):(ae=.5*Ze,ut=-.5*Ze),Nt=wt>0?wt+Ze:wt-Ze,Math.abs(Nt)>2*Math.abs(be)?(zt=-2*be/Nt,lt=1/Math.sqrt(1+zt*zt),Nt=zt*lt):0===Math.abs(be)?(Nt=1,lt=0):(zt=-.5*Nt/be,Nt=1/Math.sqrt(1+zt*zt),lt=zt*Nt),wt>0&&(zt=Nt,Nt=-lt,lt=zt),{rt1:ae,rt2:ut,cs:Nt,sn:lt}}(Ht[0],Ht[1],Ht[4]),jt=Math.sqrt(Vt.rt1),Si=Math.sqrt(Vt.rt2);if(lt.xRadius=1/jt,lt.yRadius=1/Si,lt.aRotation=Math.atan2(Vt.sn,Vt.cs),!((lt.aEndAngle-lt.aStartAngle)%(2*Math.PI){const{x:er,y:ci}=new pe(Math.cos(kr),Math.sin(kr),0).applyMatrix3(hn);return Math.atan2(ci,er)};lt.aStartAngle=Yn(lt.aStartAngle),lt.aEndAngle=Yn(lt.aEndAngle),te(be)&&(lt.aClockwise=!lt.aClockwise)}}function ut(lt){const zt=W(be),de=q(be);lt.xRadius*=zt,lt.yRadius*=de;const wt=zt>Number.EPSILON?Math.atan2(be.elements[1],be.elements[0]):Math.atan2(-be.elements[3],be.elements[4]);lt.aRotation+=wt,te(be)&&(lt.aStartAngle*=-1,lt.aEndAngle*=-1,lt.aClockwise=!lt.aClockwise)}const Nt=Me.subPaths;for(let lt=0,zt=Nt.length;lt0?kt.copy(ce[ce.length-1]):kt.identity())}(nn.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4}),{paths:ke,xml:nn.documentElement}}static createShapes(t){const r={loc:0,t:0};function s(D,T,I,O){const R=D.x,P=T.x,ee=I.x,J=O.x,te=D.y,ie=T.y,W=I.y,q=O.y,le=(J-ee)*(te-W)-(q-W)*(R-ee),Ue=(q-W)*(P-R)-(J-ee)*(ie-te),ce=le/Ue,ze=((P-R)*(te-W)-(ie-te)*(R-ee))/Ue;if(0===Ue&&0!==le||ce<=0||ce>=1||ze<0||ze>1)return null;if(0===le&&0===Ue){for(let Ce=0;Ce<2;Ce++){if(l(0===Ce?I:O,D,T),0==r.loc){const Oe=0===Ce?I:O;return{x:Oe.x,y:Oe.y,t:r.t}}if(2==r.loc)return{x:+(R+r.t*(P-R)).toPrecision(10),y:+(te+r.t*(ie-te)).toPrecision(10),t:r.t}}return null}for(let Fe=0;Fe<2;Fe++)if(l(0===Fe?I:O,D,T),0==r.loc){const ft=0===Fe?I:O;return{x:ft.x,y:ft.y,t:r.t}}return{x:+(R+ce*(P-R)).toPrecision(10),y:+(te+ce*(ie-te)).toPrecision(10),t:ce}}function l(D,T,I){const O=I.x-T.x,R=I.y-T.y,P=D.x-T.x,ee=D.y-T.y,J=O*ee-P*R;if(D.x===T.x&&D.y===T.y)return r.loc=0,void(r.t=0);if(D.x===I.x&&D.y===I.y)return r.loc=1,void(r.t=1);if(J<-Number.EPSILON)return void(r.loc=3);if(J>Number.EPSILON)return void(r.loc=4);if(O*P<0||R*ee<0)return void(r.loc=5);if(Math.sqrt(O*O+R*R){const T=D.getPoints();let I=-999999999,O=999999999,R=-999999999,P=999999999;for(let ee=0;eeI&&(I=J.y),J.yR&&(R=J.x),J.x=P&&(m=P-1),{curves:D.curves,points:T,isCW:ef.isClockWise(T),identifier:-1,boundingBox:new sre(new At(P,O),new At(R,I))}});b=b.filter(D=>D.points.length>1);for(let D=0;Dfunction p(D,T,I,O,R){(null==R||""===R)&&(R="nonzero");const P=new At;D.boundingBox.getCenter(P);const J=function f(D,T,I){const O=new At;T.getCenter(O);const R=[];return I.forEach(P=>{P.boundingBox.containsPoint(O)&&function u(D,T){const I=[],O=[];for(let R=1;Rq.t<=W.t+Number.EPSILON&&q.t>=W.t-Number.EPSILON)&&(I.push(W),O.push(new At(W.x,W.y)))}}return O}(D,P.points).forEach(J=>{R.push({identifier:P.identifier,isCW:P.isCW,point:J})})}),R.sort((P,ee)=>P.point.x-ee.point.x),R}([new At(I,P.y),new At(O,P.y)],D.boundingBox,T);J.sort((ke,Ue)=>ke.point.x-Ue.point.x);const te=[],ie=[];J.forEach(ke=>{ke.identifier===D.identifier?te.push(ke):ie.push(ke)});const W=te[0].point.x,q=[];let le=0;for(;le0&&q[q.length-1]===ie[le].identifier?q.pop():q.push(ie[le].identifier),le++;if(q.push(D.identifier),"evenodd"===R)return{identifier:D.identifier,isHole:q.length%2==0,for:q[q.length-2]};if("nonzero"===R){let ke=!0,Ue=null,ce=null;for(let ze=0;ze{if(!w[D.identifier].isHole){const I=new Vg;I.curves=D.curves,w.filter(R=>R.isHole&&R.for===D.identifier).forEach(R=>{const P=b[R.identifier],ee=new zb;ee.curves=P.curves,I.holes.push(ee)}),F.push(I)}}),F}static getStrokeStyle(t,e,i,r,s){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:s=void 0!==s?s:4}}static pointsToStroke(t,e,i,r){const s=[],l=[],u=[];if(0===o8.pointsToStrokeWithBuffers(t,e,i,r,s,l,u))return null;const f=new fi;return f.setAttribute("position",new it(s,3)),f.setAttribute("normal",new it(l,3)),f.setAttribute("uv",new it(u,2)),f}static pointsToStrokeWithBuffers(t,e,i,r,s,l,u,f){const p=new At,m=new At,_=new At,b=new At,w=new At,F=new At,D=new At,T=new At,I=new At,O=new At,R=new At,P=new At,ee=new At,J=new At,te=new At,ie=new At,W=new At;i=void 0!==i?i:12,r=void 0!==r?r:.001,f=void 0!==f?f:0;const q=(t=function wt(Ze){let Mt=!1;for(let Ft=1,Pe=Ze.length-1;Ft=r&&_t.push(Ze[Ft]);return _t.push(Ze[Ze.length-1]),_t}(t)).length;if(q<2)return 0;const le=t[0].equals(t[q-1]);let ke,ce,Ue=t[0];const ze=e.strokeWidth/2,Ce=1/(q-1);let Fe,ft,Et,kt,Oe=0,nn=!1,Xn=0,Me=3*f,be=2*f;Ae(t[0],t[1],p).multiplyScalar(ze),T.copy(t[0]).sub(p),I.copy(t[0]).add(p),O.copy(T),R.copy(I);for(let Ze=1;ZeNumber.EPSILON){const Ft=ze/_t;_.multiplyScalar(-Ft),b.subVectors(ke,Ue),w.copy(b).setLength(Ft).add(_),ie.copy(w).negate();const Pe=w.length(),Se=b.length();b.divideScalar(Se),F.subVectors(ce,ke);const _e=F.length();switch(F.divideScalar(_e),b.dot(ie){r.load(i,function(u){const f=u.paths,p=[];for(const F of f){const D=F.toShapes(!0);for(const T of D){const I=new $w(T,{depth:t.printHeight,bevelEnabled:!1});p.push(I)}}const m=k3(p);m.computeBoundingBox();const w=e.size/Math.max(m.boundingBox.max.x-m.boundingBox.min.x,m.boundingBox.max.y-m.boundingBox.min.y);m.scale(w,w,1),m.center(),"back"===e.side?m.rotateZ(Math.PI):(m.rotateZ(Math.PI),m.rotateY(Math.PI)),s(m)},void 0,function(u){console.error(`Error loading ${i}`),l(u)})})})()}}class _se extends Jb{constructor(t){super(t,new dc,120,!0),this.name="BackMWLogo"}init(t){var e=this;return Cn(function*(){const i=new YS;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 _j extends $w{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 bj{create(t,e){var i=this;return Cn(function*(){const{font:r,side:s,text:l,xPosition:u,yPosition:f,align:p}=e;if(!l)return new fi;let{textSize:m}=e;m||(m=.025);const _="center"===p&&l.includes("\n")?i.createMultilineCenteredTextGeometry(l,r,m,t.printHeight):new _j(l,{font:r,size:m,height:t.printHeight});return _.center(),"back"===s&&_.rotateY(Math.PI),_.computeBoundingBox(),_.translate(("front"===s?1:-1)*(("center"===p?0:(_.boundingBox.max.x-_.boundingBox.min.x)/2)+u),f,"front"===s?t.printHeight/2:t.printHeight/2-t.baseplateHeight),_})()}createMultilineCenteredTextGeometry(t,e,i,r){const s=t.split("\n"),l=[];for(const[u,f]of s.entries()){const p=new _j(f,{font:e,size:i,height:r});p.center(),p.translate(0,-u*i*1.5,0),l.push(p)}return k3(l)}}class ZS extends Jb{constructor(t,e=new dc,i,r,s,l=new bj){super(t,e,i,r),this.createTextGeometryOptions=s,this.createTextGeometryStrategy=l}init(t){var e=this;return Cn(function*(){return e.geometry=yield e.createTextGeometryStrategy.create(t,e.createTextGeometryOptions),e.updateColor(t.numberOfColors),e})()}updateText(t){var e=this;return Cn(function*(){e.geometry=yield e.createTextGeometryStrategy.create(t,e.createTextGeometryOptions),e.boundingBoxCalculated=!1})()}updateTextGeometryOptions(t){this.createTextGeometryOptions.text=t}}class bse extends ZS{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 dc,200,!0,i)}}var vse=v(8314);class yse extends Jb{constructor(t){super(t,new dc,0,!1)}init(t){var e=this;return Cn(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 Cn(function*(){e.geometry=yield e.create(t)})()}create(t){var e=this;return Cn(function*(){if(!t.qrCodeText||0===t.qrCodeText.length)return new fi;const i=document.createElement("canvas");yield vse.mo(i,t.qrCodeText,{errorCorrectionLevel:"H"});const s=i.getContext("2d").getImageData(0,0,i.width,i.height),l=[],u=.6/s.width;for(let f=0;fsuper.init,i=this;return Cn(function*(){const r=yield i.createColoredBackTextChildren(t);for(const s of r)i.add(s);return e().call(i,t),i})()}createTextGeometry(t,e,i){var r=this;return Cn(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 Cn(function*(){const i=e.metricDescriptionBlockOptions,r=[],s=["Value ranges:",`${i.nodeMetricData.minValue} - ${i.colorRange.from-1}`,"/",`${i.colorRange.from} - ${i.colorRange.to-1}`,"/",`${i.colorRange.to} - ${i.nodeMetricData.maxValue}`],l=[new dc,new Cse,new dc,new Mse,new dc,new Ese];let u=.05;for(let f=0;f{if(e instanceof cr&&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 Ise extends Lu{constructor(t){super("BackPrintContainer",new dc),this.font=t}init(t){var e=this;return Cn(function*(){return e.childrenMeshes=new Map,e.childrenMeshes.set("BackMWLogo",new _se("BackMWLogo")),e.childrenMeshes.set("BackBelowLogoText",new bse("BackBelowLogoText",e.font)),e.childrenMeshes.set("QrCode",new yse("QrCode")),e.childrenMeshes.set("CodeChartaLogo",new wse("CodeChartaLogo")),e.childrenMeshes.set("CodeChartaText",new xse("CodeChartaText",e.font)),e.childrenMeshes.set("MetricDescriptionsContainer",new Tse("MetricDescriptionsContainer",e.font)),yield Promise.all([...e.childrenMeshes.values()].map(function(){var i=Cn(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 Jb&&r.setCurrentWidth(t.width)})}isQRCodeVisible(){return this.childrenMeshes.get("QrCode").visible}updateQrCodeText(t,e){var i=this;return Cn(function*(){e.qrCodeText=t,yield i.childrenMeshes.get("QrCode").changeText(e)})()}updateQrCodeVisibility(t){this.childrenMeshes.get("QrCode").setManualVisibility(t)}getChildrenMeshes(){return this.childrenMeshes}}class l8{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 Fse extends ZS{constructor(t,e,i){let r=i.frontText;r||(r="FrontText");const s={font:e,side:"front",text:r,xPosition:0,yPosition:i.frontTextSize/2,textSize:i.frontTextSize,align:"center"};super(t,new l8,0,!0,s),this.name="Front Text"}}class Dse extends ZS{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 l8,0,!1,r)}}class c8 extends Lu{constructor(t,e){super(t,new l8),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 s=i?-1:1,l="left"===this.alignment?-1:1;this.translateY(s*t.secondRowTextSize);const u=i?e/this.getWidth():this.getWidth()/e;this.translateX(2*u*l*s)}}class Bse extends c8{constructor(t){super(t,"right")}init(t,e=new YS){var i=this;return Cn(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 kse extends c8{constructor(t,e){super(t,"left"),this.filePath=e}init(t){var e=this;return Cn(function*(){const i=new YS,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 Rse extends Lu{constructor(t){super("FrontPrintContainer",new dc),this.font=t}init(t){var e=this;return Cn(function*(){return e.childrenMeshes=new Map,e.childrenMeshes.set("FrontText",new Fse("FrontText",e.font,t)),e.childrenMeshes.set("SecondRowText",new Dse("SecondRowText",e.font,t)),e.childrenMeshes.set("FrontMWLogo",new Bse("FrontMWLogo")),yield Promise.all([...e.childrenMeshes.values()].map(function(){var i=Cn(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 Cn(function*(){i.childrenMeshes.has("CustomLogo")&&i.removeCustomLogo();const r=yield new kse("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 Cn(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 c8&&i.isGeneralSizeChangeMesh()&&i.changeSize(t,e)}updateSecondRowText(t,e){var i=this;return Cn(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 vj=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 Pse{constructor(t,e=new Rse(new r8(vj)),i=new Ise(new r8(vj)),r=new Ase,s=new mse){this.geometryOptions=t,this.frontPrintContainerMesh=e,this.backPrintContainerMesh=i,this.baseplateMesh=r,this.mapMesh=s,this.printMesh=new cr,this.printMesh.name="PrintMesh"}initialize(){var t=this;return Cn(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 Cn(function*(){e.geometryOptions.width=t;const i=e.currentSize.x;return yield Promise.all([...e.printMesh.children].map(function(){var r=Cn(function*(s){s instanceof Lu&&s.isGeneralSizeChangeMesh()&&s.changeSize(e.geometryOptions,i)});return function(s){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 Lu&&e.updateColor(t)}addCustomLogo(t){var e=this;return Cn(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 Cn(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 pe(t,e,i)}updateQrCodeText(t){var e=this;return Cn(function*(){yield e.backPrintContainerMesh.updateQrCodeText(t,e.geometryOptions)})()}updateQrCodeVisibility(t){this.backPrintContainerMesh.updateQrCodeVisibility(t)}}function yj(n,t,e,i,r){const u=n.z,f=n.x,p=n.y-e;return t.geometry.boundingBox||t.geometry.computeBoundingBox(),Math.min(f,p,(u-i)*t.geometry.boundingBox.max.x/(t.geometry.boundingBox.max.z-t.geometry.boundingBox.min.z)+2*r)}const{isArray:Ose}=Array,{getPrototypeOf:Nse,prototype:Lse,keys:Use}=Object;function wj(n){if(1===n.length){const t=n[0];if(Ose(t))return{args:t,keys:null};if(function Vse(n){return n&&"object"==typeof n&&Nse(n)===Lse}(t)){const e=Use(t);return{args:e.map(i=>t[i]),keys:e}}}return{args:n,keys:null}}function xj(n,t){return n.reduce((e,i,r)=>(e[i]=t[r],e),{})}let Cj=(()=>{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)(o.rXU(o.sFG),o.rXU(o.aKT))}}static{this.\u0275dir=o.FsC({type:n})}}return n})(),ev=(()=>{class n extends Cj{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=o.xGo(n)))(r||n)}})()}static{this.\u0275dir=o.FsC({type:n,features:[o.Vt3]})}}return n})();const ma=new o.nKC(""),zse={provide:ma,useExisting:(0,o.Rfq)(()=>Kg),multi:!0},jse=new o.nKC("");let Kg=(()=>{class n extends Cj{constructor(e,i,r){super(e,i),this._compositionMode=r,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function Gse(){const n=Z()?Z().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)(o.rXU(o.sFG),o.rXU(o.aKT),o.rXU(jse,8))}}static{this.\u0275dir=o.FsC({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&&o.bIt("input",function(l){return r._handleInput(l.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(l){return r._compositionEnd(l.target.value)})},features:[o.Jv_([zse]),o.Vt3]})}}return n})();function Yg(n){return null==n||("string"==typeof n||Array.isArray(n))&&0===n.length}function Ej(n){return null!=n&&"number"==typeof n.length}const zs=new o.nKC(""),Zg=new o.nKC(""),$se=/^(?=.{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 d8{static min(t){return function Sj(n){return t=>{if(Yg(t.value)||Yg(n))return null;const e=parseFloat(t.value);return!isNaN(e)&&e{if(Yg(t.value)||Yg(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 Ij(t)}static requiredTrue(t){return function Fj(n){return!0===n.value?null:{required:!0}}(t)}static email(t){return function Dj(n){return Yg(n.value)||$se.test(n.value)?null:{email:!0}}(t)}static minLength(t){return function Bj(n){return t=>Yg(t.value)||!Ej(t.value)?null:t.value.lengthEj(t.value)&&t.value.length>n?{maxlength:{requiredLength:n,actualLength:t.value.length}}:null}(t)}static pattern(t){return function Rj(n){if(!n)return R3;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(Yg(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 Vj(t)}static composeAsync(t){return Hj(t)}}function Ij(n){return Yg(n.value)?{required:!0}:null}function R3(n){return null}function Pj(n){return null!=n}function Oj(n){return(0,o.jNT)(n)?aa(n):n}function Nj(n){let t={};return n.forEach(e=>{t=null!=e?{...t,...e}:t}),0===Object.keys(t).length?null:t}function Lj(n,t){return t.map(e=>e(n))}function Uj(n){return n.map(t=>function qse(n){return!n.validate}(t)?t:e=>t.validate(e))}function Vj(n){if(!n)return null;const t=n.filter(Pj);return 0==t.length?null:function(e){return Nj(Lj(e,t))}}function u8(n){return null!=n?Vj(Uj(n)):null}function Hj(n){if(!n)return null;const t=n.filter(Pj);return 0==t.length?null:function(e){return function Hse(...n){const t=VA(n),{args:e,keys:i}=wj(n),r=new Xr.c(s=>{const{length:l}=e;if(!l)return void s.complete();const u=new Array(l);let f=l,p=l;for(let m=0;m{_||(_=!0,p--),u[m]=b},()=>f--,void 0,()=>{(!f||!_)&&(p||s.next(i?xj(i,u):u),s.complete())}))}});return t?r.pipe(Fc(t)):r}(Lj(e,t).map(Oj)).pipe((0,$n.T)(Nj))}}function h8(n){return null!=n?Hj(Uj(n)):null}function Qj(n,t){return null===n?[t]:Array.isArray(n)?[...n,t]:[n,t]}function zj(n){return n._rawValidators}function Gj(n){return n._rawAsyncValidators}function f8(n){return n?Array.isArray(n)?n:[n]:[]}function P3(n,t){return Array.isArray(n)?n.includes(t):n===t}function jj(n,t){const e=f8(t);return f8(n).forEach(r=>{P3(e,r)||e.push(r)}),e}function $j(n,t){return f8(t).filter(e=>!P3(n,e))}class qj{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=u8(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=h8(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 Il extends qj{get formDirective(){return null}get path(){return null}}class df extends qj{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class Wj{constructor(t){this._cd=t}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}}let ox=(()=>{class n extends Wj{constructor(e){super(e)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(df,2))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){2&i&&o.AVh("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:[o.Vt3]})}}return n})();const JS="VALID",N3="INVALID",sx="PENDING",e2="DISABLED";class ax{}class Kj extends ax{constructor(t,e){super(),this.value=t,this.source=e}}class m8 extends ax{constructor(t,e){super(),this.pristine=t,this.source=e}}class g8 extends ax{constructor(t,e){super(),this.touched=t,this.source=e}}class L3 extends ax{constructor(t,e){super(),this.status=t,this.source=e}}class Jse extends ax{constructor(t){super(),this.source=t}}class eae extends ax{constructor(t){super(),this.source=t}}function _8(n){return(U3(n)?n.validators:n)||null}function b8(n,t){return(U3(t)?t.asyncValidators:n)||null}function U3(n){return null!=n&&!Array.isArray(n)&&"object"==typeof n}class v8{constructor(t,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=null,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this._status=(0,o.EWP)(()=>this.statusReactive()),this.statusReactive=(0,o.vPA)(void 0),this._pristine=(0,o.EWP)(()=>this.pristineReactive()),this.pristineReactive=(0,o.vPA)(!0),this._touched=(0,o.EWP)(()=>this.touchedReactive()),this.touchedReactive=(0,o.vPA)(!1),this._events=new Ai.B,this.events=this._events.asObservable(),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 status(){return(0,o.O8t)(this.statusReactive)}set status(t){(0,o.O8t)(()=>this.statusReactive.set(t))}get valid(){return this.status===JS}get invalid(){return this.status===N3}get pending(){return this.status==sx}get disabled(){return this.status===e2}get enabled(){return this.status!==e2}get pristine(){return(0,o.O8t)(this.pristineReactive)}set pristine(t){(0,o.O8t)(()=>this.pristineReactive.set(t))}get dirty(){return!this.pristine}get touched(){return(0,o.O8t)(this.touchedReactive)}set touched(t){(0,o.O8t)(()=>this.touchedReactive.set(t))}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(jj(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(jj(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators($j(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators($j(t,this._rawAsyncValidators))}hasValidator(t){return P3(this._rawValidators,t)}hasAsyncValidator(t){return P3(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){const e=!1===this.touched;this.touched=!0;const i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsTouched({...t,sourceControl:i}),e&&!1!==t.emitEvent&&this._events.next(new g8(!0,i))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(t))}markAsUntouched(t={}){const e=!0===this.touched;this.touched=!1,this._pendingTouched=!1;const i=t.sourceControl??this;this._forEachChild(r=>{r.markAsUntouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:i})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,i),e&&!1!==t.emitEvent&&this._events.next(new g8(!1,i))}markAsDirty(t={}){const e=!0===this.pristine;this.pristine=!1;const i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsDirty({...t,sourceControl:i}),e&&!1!==t.emitEvent&&this._events.next(new m8(!1,i))}markAsPristine(t={}){const e=!1===this.pristine;this.pristine=!0,this._pendingDirty=!1;const i=t.sourceControl??this;this._forEachChild(r=>{r.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t,i),e&&!1!==t.emitEvent&&this._events.next(new m8(!0,i))}markAsPending(t={}){this.status=sx;const e=t.sourceControl??this;!1!==t.emitEvent&&(this._events.next(new L3(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.markAsPending({...t,sourceControl:e})}disable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=e2,this.errors=null,this._forEachChild(r=>{r.disable({...t,onlySelf:!0})}),this._updateValue();const i=t.sourceControl??this;!1!==t.emitEvent&&(this._events.next(new Kj(this.value,i)),this._events.next(new L3(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...t,skipPristineCheck:e},this),this._onDisabledChange.forEach(r=>r(!0))}enable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=JS,this._forEachChild(i=>{i.enable({...t,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors({...t,skipPristineCheck:e},this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t,e){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine({},e),this._parent._updateTouched({},e))}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){const i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===JS||this.status===sx)&&this._runAsyncValidator(i,t.emitEvent)}const e=t.sourceControl??this;!1!==t.emitEvent&&(this._events.next(new Kj(this.value,e)),this._events.next(new L3(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity({...t,sourceControl:e})}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?e2:JS}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,e){if(this.asyncValidator){this.status=sx,this._hasOwnPendingAsyncValidator={emitEvent:!1!==e};const i=Oj(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:e,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();const t=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,t}return!1}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(!1!==e.emitEvent,this,e.shouldHaveEmitted)}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,e,i){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),(t||i)&&this._events.next(new L3(this.status,e)),this._parent&&this._parent._updateControlsErrors(t,e,i)}_initObservables(){this.valueChanges=new o.bkB,this.statusChanges=new o.bkB}_calculateStatus(){return this._allControlsDisabled()?e2:this.errors?N3:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(sx)?sx:this._anyControlsHaveStatus(N3)?N3:JS}_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,e){const i=!this._anyControlsDirty(),r=this.pristine!==i;this.pristine=i,this._parent&&!t.onlySelf&&this._parent._updatePristine(t,e),r&&this._events.next(new m8(this.pristine,e))}_updateTouched(t={},e){this.touched=this._anyControlsTouched(),this._events.next(new g8(this.touched,e)),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,e)}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){U3(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 tae(n){return Array.isArray(n)?u8(n):n||null}(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=function nae(n){return Array.isArray(n)?h8(n):n||null}(this._rawAsyncValidators)}}class y8 extends v8{constructor(t,e,i){super(_8(e),b8(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 Zj(n,t,e){n._forEachChild((i,r)=>{if(void 0===e[r])throw new o.wOt(1002,"")})})(this,0,t),Object.keys(t).forEach(i=>{(function Yj(n,t,e){const i=n.controls;if(!(t?Object.keys(i):i).length)throw new o.wOt(1e3,"");if(!i[e])throw new o.wOt(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),this._updateTouched(e,this),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,s)=>{i=e(i,r,s)}),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 tv=new o.nKC("CallSetDisabledState",{providedIn:"root",factory:()=>t2}),t2="always";function n2(n,t,e=t2){w8(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||"always"===e)&&t.valueAccessor.setDisabledState?.(n.disabled),function oae(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,"change"===n.updateOn&&Jj(n,t)})}(n,t),function aae(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 sae(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,"blur"===n.updateOn&&n._pendingChange&&Jj(n,t),"submit"!==n.updateOn&&n.markAsTouched()})}(n,t),function rae(n,t){if(t.valueAccessor.setDisabledState){const e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}(n,t)}function H3(n,t,e=!0){const i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),z3(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function Q3(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function w8(n,t){const e=zj(n);null!==t.validator?n.setValidators(Qj(e,t.validator)):"function"==typeof e&&n.setValidators([e]);const i=Gj(n);null!==t.asyncValidator?n.setAsyncValidators(Qj(i,t.asyncValidator)):"function"==typeof i&&n.setAsyncValidators([i]);const r=()=>n.updateValueAndValidity();Q3(t._rawValidators,r),Q3(t._rawAsyncValidators,r)}function z3(n,t){let e=!1;if(null!==n){if(null!==t.validator){const r=zj(n);if(Array.isArray(r)&&r.length>0){const s=r.filter(l=>l!==t.validator);s.length!==r.length&&(e=!0,n.setValidators(s))}}if(null!==t.asyncValidator){const r=Gj(n);if(Array.isArray(r)&&r.length>0){const s=r.filter(l=>l!==t.asyncValidator);s.length!==r.length&&(e=!0,n.setAsyncValidators(s))}}}const i=()=>{};return Q3(t._rawValidators,i),Q3(t._rawAsyncValidators,i),e}function Jj(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function e$(n,t){w8(n,t)}function C8(n,t){if(!n.hasOwnProperty("model"))return!1;const e=n.model;return!!e.isFirstChange()||!Object.is(t,e.currentValue)}function t$(n,t){n._syncPendingControls(),t.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function M8(n,t){if(!t)return null;let e,i,r;return Array.isArray(t),t.forEach(s=>{s.constructor===Kg?e=s:function dae(n){return Object.getPrototypeOf(n.constructor)===ev}(s)?i=s:r=s}),r||i||e||null}const hae={provide:Il,useExisting:(0,o.Rfq)(()=>o2)},r2=Promise.resolve();let o2=(()=>{class n extends Il{get submitted(){return(0,o.O8t)(this.submittedReactive)}constructor(e,i,r){super(),this.callSetDisabledState=r,this._submitted=(0,o.EWP)(()=>this.submittedReactive()),this.submittedReactive=(0,o.vPA)(!1),this._directives=new Set,this.ngSubmit=new o.bkB,this.form=new y8({},u8(e),h8(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){r2.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),n2(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){r2.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){r2.then(()=>{const i=this._findContainer(e.path),r=new y8({});e$(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){r2.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){r2.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submittedReactive.set(!0),t$(this.form,this._directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!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)(o.rXU(zs,10),o.rXU(Zg,10),o.rXU(tv,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){1&i&&o.bIt("submit",function(l){return r.onSubmit(l)})("reset",function(){return r.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[o.Jv_([hae]),o.Vt3]})}}return n})();function n$(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}function i$(n){return"object"==typeof n&&null!==n&&2===Object.keys(n).length&&"value"in n&&"disabled"in n}const E8=class extends v8{constructor(t=null,e,i){super(_8(e),b8(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}),U3(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=i$(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){n$(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){n$(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){i$(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}},r$=E8,Aae={provide:df,useExisting:(0,o.Rfq)(()=>lx)},a$=Promise.resolve();let lx=(()=>{class n extends df{constructor(e,i,r,s,l,u){super(),this._changeDetectorRef=l,this.callSetDisabledState=u,this.control=new E8,this._registered=!1,this.name="",this.update=new o.bkB,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=M8(0,s)}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),C8(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(){n2(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){a$.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,r=0!==i&&(0,o.L39)(i);a$.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?function V3(n,t){return[...t.path,n]}(e,this._parent):[e]}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Il,9),o.rXU(zs,10),o.rXU(Zg,10),o.rXU(ma,10),o.rXU(o.gRc,8),o.rXU(tv,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[o.Jv_([Aae]),o.Vt3,o.OA$]})}}return n})();const S8=new o.nKC(""),yae={provide:df,useExisting:(0,o.Rfq)(()=>G3)};let G3=(()=>{class n extends df{set isDisabled(e){}static{this._ngModelWarningSentOnce=!1}constructor(e,i,r,s,l){super(),this._ngModelWarningConfig=s,this.callSetDisabledState=l,this.update=new o.bkB,this._ngModelWarningSent=!1,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=M8(0,r)}ngOnChanges(e){if(this._isControlChanged(e)){const i=e.form.previousValue;i&&H3(i,this,!1),n2(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}C8(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&H3(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)(o.rXU(zs,10),o.rXU(Zg,10),o.rXU(ma,10),o.rXU(S8,8),o.rXU(tv,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[o.Jv_([yae]),o.Vt3,o.OA$]})}}return n})();const wae={provide:Il,useExisting:(0,o.Rfq)(()=>s2)};let s2=(()=>{class n extends Il{get submitted(){return(0,o.O8t)(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}constructor(e,i,r){super(),this.callSetDisabledState=r,this._submitted=(0,o.EWP)(()=>this._submittedReactive()),this._submittedReactive=(0,o.vPA)(!1),this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new o.bkB,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&&(z3(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 n2(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){H3(e.control||null,e,!1),function uae(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._submittedReactive.set(!0),t$(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new Jse(this.control)),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this._submittedReactive.set(!1),this.form._events.next(new eae(this.form))}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,r=this.form.get(e.path);i!==r&&(H3(i||null,e),(n=>n instanceof E8)(r)&&(n2(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);e$(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function lae(n,t){return z3(n,t)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){w8(this.form,this),this._oldForm&&z3(this._oldForm,this)}_checkFormPresent(){}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(zs,10),o.rXU(Zg,10),o.rXU(tv,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){1&i&&o.bIt("submit",function(l){return r.onSubmit(l)})("reset",function(){return r.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[o.Jv_([wae]),o.Vt3,o.OA$]})}}return n})(),nv=(()=>{class n{constructor(){this._validator=R3}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):R3,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=o.FsC({type:n,features:[o.OA$]})}}return n})();const Rae={provide:zs,useExisting:(0,o.Rfq)(()=>j3),multi:!0};let j3=(()=>{class n extends nv{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=o.L39,this.createValidator=e=>Ij}enabled(e){return e}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=o.xGo(n)))(r||n)}})()}static{this.\u0275dir=o.FsC({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&&o.BMQ("required",r._enabled?"":null)},inputs:{required:"required"},features:[o.Jv_([Rae]),o.Vt3]})}}return n})(),x$=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=o.$C({type:n})}static{this.\u0275inj=o.G2t({})}}return n})(),a2=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:tv,useValue:e.callSetDisabledState??t2}]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=o.$C({type:n})}static{this.\u0275inj=o.G2t({imports:[x$]})}}return n})(),C$=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:S8,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:tv,useValue:e.callSetDisabledState??t2}]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=o.$C({type:n})}static{this.\u0275inj=o.G2t({imports:[x$]})}}return n})();const Hae=["switch"],Qae=["*"];function zae(n,t){1&n&&(o.j41(0,"span",10),o.qSk(),o.j41(1,"svg",12),o.nrm(2,"path",13),o.k0s(),o.j41(3,"svg",14),o.nrm(4,"path",15),o.k0s()())}const Gae=new o.nKC("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})}),jae={provide:ma,useExisting:(0,o.Rfq)(()=>l2),multi:!0};class M${constructor(t,e){this.source=t,this.checked=e}}let $ae=0,l2=(()=>{class n{_createChangeEvent(e){return new M$(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,s,l,u){this._elementRef=e,this._focusMonitor=i,this._changeDetectorRef=r,this.defaults=l,this._onChange=f=>{},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 o.bkB,this.toggleChange=new o.bkB,this.tabIndex=parseInt(s)||0,this.color=l.color||"accent",this._noopAnimations="NoopAnimations"===u,this.id=this._uniqueId="mat-mdc-slide-toggle-"+ ++$ae,this.hideIcon=l.hideIcon??!1,this.disabledInteractive=l.disabledInteractive??!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.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new M$(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT),o.rXU(Zl),o.rXU(o.gRc),o.kS0("tabindex"),o.rXU(Gae),o.rXU(o.bc$,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-slide-toggle"]],viewQuery:function(i,r){if(1&i&&o.GBs(Hae,5),2&i){let s;o.mGM(s=o.lsd())&&(r._switchElement=s.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,r){2&i&&(o.Mr5("id",r.id),o.BMQ("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),o.HbH(r.color?"mat-"+r.color:""),o.AVh("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:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",o.L39],color:"color",disabled:[2,"disabled","disabled",o.L39],disableRipple:[2,"disableRipple","disableRipple",o.L39],tabIndex:[2,"tabIndex","tabIndex",e=>null==e?0:(0,o.Udg)(e)],checked:[2,"checked","checked",o.L39],hideIcon:[2,"hideIcon","hideIcon",o.L39],disabledInteractive:[2,"disabledInteractive","disabledInteractive",o.L39]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],standalone:!0,features:[o.Jv_([jae,{provide:zs,useExisting:n,multi:!0}]),o.GFd,o.OA$,o.aNF],ngContentSelectors:Qae,decls:13,vars:27,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 s=o.RV6();o.NAR(),o.j41(0,"div",1)(1,"button",2,0),o.bIt("click",function(){return o.eBV(s),o.Njj(r._handleClick())}),o.nrm(3,"span",3),o.j41(4,"span",4)(5,"span",5)(6,"span",6),o.nrm(7,"span",7),o.k0s(),o.j41(8,"span",8),o.nrm(9,"span",9),o.k0s(),o.DNE(10,zae,5,0,"span",10),o.k0s()()(),o.j41(11,"label",11),o.bIt("click",function(u){return o.eBV(s),o.Njj(u.stopPropagation())}),o.SdG(12),o.k0s()()}if(2&i){const s=o.sdS(2);o.Y8G("labelPosition",r.labelPosition),o.R7$(),o.AVh("mdc-switch--selected",r.checked)("mdc-switch--unselected",!r.checked)("mdc-switch--checked",r.checked)("mdc-switch--disabled",r.disabled)("mat-mdc-slide-toggle-disabled-interactive",r.disabledInteractive),o.Y8G("tabIndex",r.disabled&&!r.disabledInteractive?-1:r.tabIndex)("disabled",r.disabled&&!r.disabledInteractive),o.BMQ("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)("aria-disabled",r.disabled&&r.disabledInteractive?"true":null),o.R7$(8),o.Y8G("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),o.R7$(),o.vxM(r.hideIcon?-1:10),o.R7$(),o.Y8G("for",r.buttonId),o.BMQ("id",r._labelId)}},dependencies:[gl,kI],styles:['.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;width:var(--mdc-switch-track-width)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mdc-switch-track-height);border-radius:var(--mdc-switch-track-shape, var(--mat-app-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity)}.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%;border-width:var(--mat-switch-track-outline-width);border-color:var(--mat-switch-track-outline-color, var(--mat-app-outline))}.cdk-high-contrast-active .mdc-switch__track::before,.cdk-high-contrast-active .mdc-switch__track::after{border-color:currentColor}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-switch-selected-track-outline-width);border-color:var(--mat-switch-selected-track-outline-color)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-switch-disabled-unselected-track-outline-width);border-color:var(--mat-switch-disabled-unselected-track-outline-color, var(--mat-app-on-surface))}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mdc-switch-unselected-track-color, var(--mat-app-surface-variant))}.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--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-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:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color, var(--mat-app-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color, var(--mat-app-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color, var(--mat-app-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color, var(--mat-app-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mdc-switch-selected-track-color, var(--mat-app-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.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::after{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-track-transition)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color, var(--mat-app-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color, var(--mat-app-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color, var(--mat-app-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color, var(--mat-app-on-surface))}.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);width:calc(100% - var(--mdc-switch-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;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);width:var(--mdc-switch-handle-width);height:var(--mdc-switch-handle-height);border-radius:var(--mdc-switch-handle-shape, var(--mat-app-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size);height:var(--mat-switch-unselected-handle-size);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 .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size);height:var(--mat-switch-selected-handle-size);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__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 .mdc-switch:active: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:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin)}.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)}.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}.cdk-high-contrast-active .mdc-switch__handle::before,.cdk-high-contrast-active .mdc-switch__handle::after{border-color:currentColor}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color, var(--mat-app-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color, var(--mat-app-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color, var(--mat-app-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color, var(--mat-app-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color, var(--mat-app-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color, var(--mat-app-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color, var(--mat-app-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color, var(--mat-app-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color, var(--mat-app-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color, var(--mat-app-on-surface))}.mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mdc-switch-state-layer-size);height:var(--mdc-switch-state-layer-size)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:75ms opacity 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-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-hover-state-layer-color, var(--mat-app-on-surface))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-focus-state-layer-color, var(--mat-app-on-surface))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-pressed-state-layer-color, var(--mat-app-on-surface));opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-selected-hover-state-layer-color, var(--mat-app-primary))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-selected-focus-state-layer-color, var(--mat-app-primary))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-selected-pressed-state-layer-color, var(--mat-app-primary));opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity)}.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--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size);height:var(--mdc-switch-unselected-icon-size);fill:var(--mdc-switch-unselected-icon-color, var(--mat-app-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color, var(--mat-app-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size);height:var(--mdc-switch-selected-icon-size);fill:var(--mdc-switch-selected-icon-color, var(--mat-app-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color, var(--mat-app-on-surface))}.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{-webkit-user-select:none;user-select:none;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.mat-mdc-slide-toggle-focused .mat-mdc-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-switch-label-text-color, var(--mat-app-on-surface));font-family:var(--mat-switch-label-text-font, var(--mat-app-body-medium-font));line-height:var(--mat-switch-label-text-line-height, var(--mat-app-body-medium-line-height));font-size:var(--mat-switch-label-text-size, var(--mat-app-body-medium-size));letter-spacing:var(--mat-switch-label-text-tracking, var(--mat-app-body-medium-tracking));font-weight:var(--mat-switch-label-text-weight, var(--mat-app-body-medium-weight))}.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-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}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}'],encapsulation:2,changeDetection:0})}}return n})();const Xae=["*",[["mat-toolbar-row"]]],Kae=["*","mat-toolbar-row"];let Yae=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,selectors:[["mat-toolbar-row"]],hostAttrs:[1,"mat-toolbar-row"],exportAs:["matToolbarRow"],standalone:!0})}}return n})(),Jg=(()=>{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)(o.rXU(o.aKT),o.rXU(Fo),o.rXU(V))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-toolbar"]],contentQueries:function(i,r,s){if(1&i&&o.wni(s,Yae,5),2&i){let l;o.mGM(l=o.lsd())&&(r._toolbarRows=l)}},hostAttrs:[1,"mat-toolbar"],hostVars:6,hostBindings:function(i,r){2&i&&(o.HbH(r.color?"mat-"+r.color:""),o.AVh("mat-toolbar-multiple-rows",r._toolbarRows.length>0)("mat-toolbar-single-row",0===r._toolbarRows.length))},inputs:{color:"color"},exportAs:["matToolbar"],standalone:!0,features:[o.aNF],ngContentSelectors:Kae,decls:2,vars:0,template:function(i,r){1&i&&(o.NAR(Xae),o.SdG(0),o.SdG(1,1))},styles:[".mat-toolbar{background:var(--mat-toolbar-container-background-color, var(--mat-app-surface));color:var(--mat-toolbar-container-text-color, var(--mat-app-on-surface))}.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, var(--mat-app-title-large-font));font-size:var(--mat-toolbar-title-text-size, var(--mat-app-title-large-size));line-height:var(--mat-toolbar-title-text-line-height, var(--mat-app-title-large-line-height));font-weight:var(--mat-toolbar-title-text-weight, var(--mat-app-title-large-weight));letter-spacing:var(--mat-toolbar-title-text-tracking, var(--mat-app-title-large-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, var(--mat-app-on-surface));--mdc-outlined-button-label-text-color:var(--mat-toolbar-container-text-color, var(--mat-app-on-surface))}.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})();class Zae extends Ai.B{constructor(t=1/0,e=1/0,i=Of){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:s,_windowTime:l}=this;e||(i.push(t),!r&&i.push(s.now()+l)),this._trimBuffer(),super.next(t)}_subscribe(t){this._throwIfClosed(),this._trimBuffer();const e=this._innerSubscribe(t),{_infiniteTimeWindow:i,_buffer:r}=this,s=r.slice();for(let l=0;lnew Ai.B,resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:r=!0}=n;return s=>{let l,u,f,p=0,m=!1,_=!1;const b=()=>{u?.unsubscribe(),u=void 0},w=()=>{b(),l=f=void 0,m=_=!1},F=()=>{const D=l;w(),D?.unsubscribe()};return(0,Fr.N)((D,T)=>{p++,!_&&!m&&b();const I=f=f??t();T.add(()=>{p--,0===p&&!_&&!m&&(u=k8(F,r))}),I.subscribe(T),!l&&p>0&&(l=new B8.Ms({next:O=>I.next(O),error:O=>{_=!0,b(),u=k8(w,e,O),I.error(O)},complete:()=>{m=!0,b(),u=k8(w,i),I.complete()}}),Pr(D).subscribe(l))})(s)}}function k8(n,t,...e){if(!0===t)return void n();if(!1===t)return;const i=new B8.Ms({next:()=>{i.unsubscribe(),n()}});return Pr(t(...e)).subscribe(i)}class ele{constructor(t){this._box=t,this._destroyed=new Ai.B,this._resizeSubject=new Ai.B,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 Xr.c(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(ur(e=>e.some(i=>i.target===t)),function Jae(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,q3({connector:()=>new Zae(i,t,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:r})}({bufferSize:1,refCount:!0}),vo(this._destroyed))),this._elementObservables.get(t)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}}let tle=(()=>{class n{constructor(){this._observers=new Map,this._ngZone=(0,o.WQX)(o.SKi)}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 ele(r)),this._observers.get(r).observe(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const nle=["notch"],ile=["matFormFieldNotchedOutline",""],rle=["*"],ole=["textField"],sle=["iconPrefixContainer"],ale=["textPrefixContainer"],lle=["iconSuffixContainer"],cle=["textSuffixContainer"],dle=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],ule=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function hle(n,t){1&n&&o.nrm(0,"span",21)}function fle(n,t){if(1&n&&(o.j41(0,"label",20),o.SdG(1,1),o.DNE(2,hle,1,0,"span",21),o.k0s()),2&n){const e=o.XpG(2);o.Y8G("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),o.BMQ("for",e._control.disableAutomaticLabeling?null:e._control.id),o.R7$(2),o.vxM(!e.hideRequiredMarker&&e._control.required?2:-1)}}function ple(n,t){if(1&n&&o.DNE(0,fle,3,5,"label",20),2&n){const e=o.XpG();o.vxM(e._hasFloatingLabel()?0:-1)}}function Ale(n,t){1&n&&o.nrm(0,"div",7)}function mle(n,t){}function gle(n,t){if(1&n&&o.DNE(0,mle,0,0,"ng-template",13),2&n){o.XpG(2);const e=o.sdS(1);o.Y8G("ngTemplateOutlet",e)}}function _le(n,t){if(1&n&&(o.j41(0,"div",9),o.DNE(1,gle,1,1,null,13),o.k0s()),2&n){const e=o.XpG();o.Y8G("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),o.R7$(),o.vxM(e._forceDisplayInfixLabel()?-1:1)}}function ble(n,t){1&n&&(o.j41(0,"div",10,2),o.SdG(2,2),o.k0s())}function vle(n,t){1&n&&(o.j41(0,"div",11,3),o.SdG(2,3),o.k0s())}function yle(n,t){}function wle(n,t){if(1&n&&o.DNE(0,yle,0,0,"ng-template",13),2&n){o.XpG();const e=o.sdS(1);o.Y8G("ngTemplateOutlet",e)}}function xle(n,t){1&n&&(o.j41(0,"div",14,4),o.SdG(2,4),o.k0s())}function Cle(n,t){1&n&&(o.j41(0,"div",15,5),o.SdG(2,5),o.k0s())}function Mle(n,t){1&n&&o.nrm(0,"div",16)}function Ele(n,t){if(1&n&&(o.j41(0,"div",18),o.SdG(1,6),o.k0s()),2&n){const e=o.XpG();o.Y8G("@transitionMessages",e._subscriptAnimationState)}}function Sle(n,t){if(1&n&&(o.j41(0,"mat-hint",22),o.EFF(1),o.k0s()),2&n){const e=o.XpG(2);o.Y8G("id",e._hintLabelId),o.R7$(),o.JRh(e.hintLabel)}}function Tle(n,t){if(1&n&&(o.j41(0,"div",19),o.DNE(1,Sle,2,2,"mat-hint",22),o.SdG(2,7),o.nrm(3,"div",23),o.SdG(4,8),o.k0s()),2&n){const e=o.XpG();o.Y8G("@transitionMessages",e._subscriptAnimationState),o.R7$(),o.vxM(e.hintLabel?1:-1)}}let Uu=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,selectors:[["mat-label"]],standalone:!0})}}return n})(),Ile=0;const E$=new o.nKC("MatError");let S$=(()=>{class n{constructor(e,i){this.id="mat-mdc-error-"+Ile++,e||i.nativeElement.setAttribute("aria-live","polite")}static{this.\u0275fac=function(i){return new(i||n)(o.kS0("aria-live"),o.rXU(o.aKT))}}static{this.\u0275dir=o.FsC({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&&o.Mr5("id",r.id)},inputs:{id:"id"},standalone:!0,features:[o.Jv_([{provide:E$,useExisting:n}])]})}}return n})(),Fle=0,R8=(()=>{class n{constructor(){this.align="start",this.id="mat-mdc-hint-"+Fle++}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({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&&(o.Mr5("id",r.id),o.BMQ("align",null),o.AVh("mat-mdc-form-field-hint-end","end"===r.align))},inputs:{align:"align",id:"id"},standalone:!0})}}return n})();const T$=new o.nKC("MatPrefix");let I$=(()=>{class n{constructor(){this._isText=!1}set _isTextSelector(e){this._isText=!0}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","matPrefix",""],["","matIconPrefix",""],["","matTextPrefix",""]],inputs:{_isTextSelector:[0,"matTextPrefix","_isTextSelector"]},standalone:!0,features:[o.Jv_([{provide:T$,useExisting:n}])]})}}return n})();const Dle=new o.nKC("MatSuffix"),F$=new o.nKC("FloatingLabelParent");let D$=(()=>{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=(0,o.WQX)(tle),this._ngZone=(0,o.WQX)(o.SKi),this._parent=(0,o.WQX)(F$),this._resizeSubscription=new un.yU}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return function Ble(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)(o.rXU(o.aKT))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,r){2&i&&o.AVh("mdc-floating-label--float-above",r.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"},standalone:!0})}}return n})();const B$="mdc-line-ripple--active",W3="mdc-line-ripple--deactivating";let k$=(()=>{class n{constructor(e,i){this._elementRef=e,this._handleTransitionEnd=r=>{const s=this._elementRef.nativeElement.classList,l=s.contains(W3);"opacity"===r.propertyName&&l&&s.remove(B$,W3)},i.runOutsideAngular(()=>{e.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(W3),e.add(B$)}deactivate(){this._elementRef.nativeElement.classList.add(W3)}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT),o.rXU(o.SKi))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"],standalone:!0})}}return n})(),R$=(()=>{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)(o.rXU(o.aKT),o.rXU(o.SKi))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,r){if(1&i&&o.GBs(nle,5),2&i){let s;o.mGM(s=o.lsd())&&(r._notch=s.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,r){2&i&&o.AVh("mdc-notched-outline--notched",r.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},standalone:!0,features:[o.aNF],attrs:ile,ngContentSelectors:rle,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,r){1&i&&(o.NAR(),o.nrm(0,"div",1),o.j41(1,"div",2,0),o.SdG(3),o.k0s(),o.nrm(4,"div",3))},encapsulation:2,changeDetection:0})}}return n})();const kle={transitionMessages:(0,On.hZ)("transitionMessages",[(0,On.wk)("enter",(0,On.iF)({opacity:1,transform:"translateY(0%)"})),(0,On.kY)("void => enter",[(0,On.iF)({opacity:0,transform:"translateY(-5px)"}),(0,On.i0)("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let P8=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n})}}return n})();const O8=new o.nKC("MatFormField"),Rle=new o.nKC("MAT_FORM_FIELD_DEFAULT_OPTIONS");let P$=0,Vu=(()=>{class n{get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=mi(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._needsOutlineLabelOffsetUpdate=!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,s,l,u,f,p){this._elementRef=e,this._changeDetectorRef=i,this._dir=s,this._platform=l,this._defaults=u,this._animationMode=f,this._labelChild=(0,o.sbv)(Uu),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-"+P$++,this._hintLabelId="mat-mdc-hint-"+P$++,this._subscriptAnimationState="",this._destroyed=new Ai.B,this._isFocused=null,this._needsOutlineLabelOffsetUpdate=!1,this._previousControl=null,this._injector=(0,o.WQX)(o.zZn),this.getLabelId=(0,o.EWP)(()=>this._hasFloatingLabel()?this._labelId:null),this._hasFloatingLabel=(0,o.EWP)(()=>!!this._labelChild()),u&&(u.appearance&&(this.appearance=u.appearance),this._hideRequiredMarker=!!u?.hideRequiredMarker,u.color&&(this.color=u.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._previousControl=this._control)}ngOnDestroy(){this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(e){const i=this._control,r="mat-mdc-form-field-type-";e&&this._elementRef.nativeElement.classList.remove(r+e.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(r+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(vo(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(),Wl(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._needsOutlineLabelOffsetUpdate=!0),(0,o.Tzd)(()=>{this._needsOutlineLabelOffsetUpdate&&(this._needsOutlineLabelOffsetUpdate=!1,this._updateOutlineLabelOffset())},{injector:this._injector}),this._dir.change.pipe(vo(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0)}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_shouldLabelFloat(){return!!this._hasFloatingLabel()&&(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(s=>"start"===s.align):null,r=this._hintChildren?this._hintChildren.find(s=>"end"===s.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._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._needsOutlineLabelOffsetUpdate=!0);const i=this._iconPrefixContainer?.nativeElement,r=this._textPrefixContainer?.nativeElement,s=this._iconSuffixContainer?.nativeElement,l=this._textSuffixContainer?.nativeElement,u=i?.getBoundingClientRect().width??0,f=r?.getBoundingClientRect().width??0,p=s?.getBoundingClientRect().width??0,m=l?.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"} * (${u+f}px + var(--mat-mdc-form-field-label-offset-x, 0px))))\n )`,this._elementRef.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${u+f+p+m}px)`)}_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)(o.rXU(o.aKT),o.rXU(o.gRc),o.rXU(o.SKi),o.rXU(Zs),o.rXU(Fo),o.rXU(Rle,8),o.rXU(o.bc$,8),o.rXU(V))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-form-field"]],contentQueries:function(i,r,s){if(1&i&&(o.C6U(s,r._labelChild,Uu,5),o.wni(s,P8,5),o.wni(s,T$,5),o.wni(s,Dle,5),o.wni(s,E$,5),o.wni(s,R8,5)),2&i){let l;o.NyB(),o.mGM(l=o.lsd())&&(r._formFieldControl=l.first),o.mGM(l=o.lsd())&&(r._prefixChildren=l),o.mGM(l=o.lsd())&&(r._suffixChildren=l),o.mGM(l=o.lsd())&&(r._errorChildren=l),o.mGM(l=o.lsd())&&(r._hintChildren=l)}},viewQuery:function(i,r){if(1&i&&(o.GBs(ole,5),o.GBs(sle,5),o.GBs(ale,5),o.GBs(lle,5),o.GBs(cle,5),o.GBs(D$,5),o.GBs(R$,5),o.GBs(k$,5)),2&i){let s;o.mGM(s=o.lsd())&&(r._textField=s.first),o.mGM(s=o.lsd())&&(r._iconPrefixContainer=s.first),o.mGM(s=o.lsd())&&(r._textPrefixContainer=s.first),o.mGM(s=o.lsd())&&(r._iconSuffixContainer=s.first),o.mGM(s=o.lsd())&&(r._textSuffixContainer=s.first),o.mGM(s=o.lsd())&&(r._floatingLabel=s.first),o.mGM(s=o.lsd())&&(r._notchedOutline=s.first),o.mGM(s=o.lsd())&&(r._lineRipple=s.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,r){2&i&&o.AVh("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:[o.Jv_([{provide:O8,useExisting:n},{provide:F$,useExisting:n}]),o.aNF],ngContentSelectors:ule,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[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"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,r){if(1&i){const s=o.RV6();o.NAR(dle),o.DNE(0,ple,1,1,"ng-template",null,0,o.C5r),o.j41(2,"div",6,1),o.bIt("click",function(u){return o.eBV(s),o.Njj(r._control.onContainerClick(u))}),o.DNE(4,Ale,1,0,"div",7),o.j41(5,"div",8),o.DNE(6,_le,2,2,"div",9)(7,ble,3,0,"div",10)(8,vle,3,0,"div",11),o.j41(9,"div",12),o.DNE(10,wle,1,1,null,13),o.SdG(11),o.k0s(),o.DNE(12,xle,3,0,"div",14)(13,Cle,3,0,"div",15),o.k0s(),o.DNE(14,Mle,1,0,"div",16),o.k0s(),o.j41(15,"div",17),o.DNE(16,Ele,2,1,"div",18)(17,Tle,5,2,"div",19),o.k0s()}if(2&i){let s;o.R7$(2),o.AVh("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),o.R7$(2),o.vxM(r._hasOutline()||r._control.disabled?-1:4),o.R7$(2),o.vxM(r._hasOutline()?6:-1),o.R7$(),o.vxM(r._hasIconPrefix?7:-1),o.R7$(),o.vxM(r._hasTextPrefix?8:-1),o.R7$(2),o.vxM(!r._hasOutline()||r._forceDisplayInfixLabel()?10:-1),o.R7$(2),o.vxM(r._hasTextSuffix?12:-1),o.R7$(),o.vxM(r._hasIconSuffix?13:-1),o.R7$(),o.vxM(r._hasOutline()?-1:14),o.R7$(),o.AVh("mat-mdc-form-field-subscript-dynamic-size","dynamic"===r.subscriptSizing),o.R7$(),o.vxM("error"===(s=r._getDisplayedMessages())?16:"hint"===s?17:-1)}},dependencies:[D$,R$,vi,k$,R8],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.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--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-app-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-app-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.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, var(--mat-app-on-surface-variant))}.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.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-app-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-app-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.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, var(--mat-app-on-surface-variant))}.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.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color)}.mdc-text-field--disabled .cdk-high-contrast-active .mdc-text-field__input{background-color:Window}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-app-corner-extra-small-top));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-app-corner-extra-small-top))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-app-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color)}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;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{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.cdk-high-contrast-active .mdc-text-field--disabled .mdc-floating-label{z-index:1}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-app-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-app-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-app-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-app-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-app-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-app-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-app-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-app-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-app-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-app-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-app-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-app-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-app-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-app-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-app-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.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-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-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-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::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{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-app-outline));border-width:var(--mdc-outlined-text-field-outline-width)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-app-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-app-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-app-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{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;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-app-on-surface-variant))}.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, var(--mat-app-on-surface))}.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:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-app-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-app-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height)}.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, var(--mat-app-primary))}.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, var(--mat-app-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.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-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, var(--mat-app-error))}.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, var(--mat-app-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-app-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-app-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-app-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-app-body-small-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, var(--mat-app-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-app-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, var(--mat-app-on-surface-variant))}[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, var(--mat-app-primary))}.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, var(--mat-app-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-app-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-app-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-app-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-app-body-large-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, var(--mat-app-on-surface-variant))}.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, var(--mat-app-on-surface-variant))}.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, var(--mat-app-error))}.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, var(--mat-app-on-error-container))}.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, var(--mat-app-error))}.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-infix:has(textarea[cols]){width:auto}.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-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .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--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-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:[kle.transitionMessages]},changeDetection:0})}}return n})();class X3{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 Ai.B,e&&e.length&&(t?e.forEach(s=>this._markSelected(s)):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(s=>this._markSelected(s)),e.filter(s=>!i.has(this._getConcreteValue(s,i))).forEach(s=>this._unmarkSelected(s));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 L$=(()=>{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=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function Xp(n,t){return(0,Fr.N)((e,i)=>{let r=null,s=0,l=!1;const u=()=>l&&!r&&i.complete();e.subscribe((0,sr._)(i,f=>{r?.unsubscribe();let p=0;const m=s++;Pr(n(f,m)).subscribe(r=(0,sr._)(i,_=>i.next(t?t(f,_,m,p++):_),()=>{r=null,u()}))},()=>{l=!0,u()}))})}const Lle=["trigger"],Ule=["panel"],Vle=[[["mat-select-trigger"]],"*"],Hle=["mat-select-trigger","*"];function Qle(n,t){if(1&n&&(o.j41(0,"span",4),o.EFF(1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.JRh(e.placeholder)}}function zle(n,t){1&n&&o.SdG(0)}function Gle(n,t){if(1&n&&(o.j41(0,"span",11),o.EFF(1),o.k0s()),2&n){const e=o.XpG(2);o.R7$(),o.JRh(e.triggerValue)}}function jle(n,t){if(1&n&&(o.j41(0,"span",5),o.DNE(1,zle,1,0)(2,Gle,2,1,"span",11),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.vxM(e.customTrigger?1:2)}}function $le(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",12,1),o.bIt("@transformPanel.done",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s._panelDoneAnimatingStream.next(r.toState))})("keydown",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s._handleKeydown(r))}),o.SdG(2,1),o.k0s()}if(2&n){const e=o.XpG();o.ZvI("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),o.Y8G("ngClass",e.panelClass)("@transformPanel","showing"),o.BMQ("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const qle={transformPanelWrap:(0,On.hZ)("transformPanelWrap",[(0,On.kY)("* => void",(0,On.P)("@transformPanel",[(0,On.MA)()],{optional:!0}))]),transformPanel:(0,On.hZ)("transformPanel",[(0,On.wk)("void",(0,On.iF)({opacity:0,transform:"scale(1, 0.8)"})),(0,On.kY)("void => showing",(0,On.i0)("120ms cubic-bezier(0, 0, 0.2, 1)",(0,On.iF)({opacity:1,transform:"scale(1, 1)"}))),(0,On.kY)("* => void",(0,On.i0)("100ms linear",(0,On.iF)({opacity:0})))])};let U$=0;const V$=new o.nKC("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{const n=(0,o.WQX)(Us);return()=>n.scrollStrategies.reposition()}}),Xle=new o.nKC("MAT_SELECT_CONFIG"),H$=new o.nKC("MatSelectTrigger");class Kle{constructor(t,e){this.source=t,this.value=e}}let t0=(()=>{class n{_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const r=this.panel.nativeElement,s=function UO(n,t,e){if(e.length){let i=t.toArray(),r=e.toArray(),s=0;for(let l=0;le+i?Math.max(0,n-i+t):e}(l.offsetTop,l.offsetHeight,r.scrollTop,r.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new Kle(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(d8.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,s,l,u,f,p,m,_,b,w,F,D){this._viewportRuler=e,this._changeDetectorRef=i,this._elementRef=l,this._dir=u,this._parentFormField=m,this.ngControl=_,this._liveAnnouncer=F,this._defaultOptions=D,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=(T,I)=>T===I,this._uid="mat-select-"+U$++,this._triggerAriaLabelledBy=null,this._destroy=new Ai.B,this.stateChanges=new Ai.B,this.disableAutomaticLabeling=!0,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+U$++,this._panelDoneAnimatingStream=new Ai.B,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 Ai.B,this.optionSelectionChanges=Gy(()=>{const T=this.options;return T?T.changes.pipe(cu(T),Xp(()=>Wl(...T.map(I=>I.onSelectionChange)))):this._initialized.pipe(Xp(()=>this.optionSelectionChanges))}),this.openedChange=new o.bkB,this._openedStream=this.openedChange.pipe(ur(T=>T),(0,$n.T)(()=>{})),this._closedStream=this.openedChange.pipe(ur(T=>!T),(0,$n.T)(()=>{})),this.selectionChange=new o.bkB,this.valueChange=new o.bkB,this._trackedModal=null,this._skipPredicate=T=>!this.panelOpen&&T.disabled,this.ngControl&&(this.ngControl.valueAccessor=this),null!=D?.typeaheadDebounceInterval&&(this.typeaheadDebounceInterval=D.typeaheadDebounceInterval),this._errorStateTracker=new du(s,_,p,f,this.stateChanges),this._scrollStrategyFactory=w,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(b)||0,this.id=this.id}ngOnInit(){this._selectionModel=new X3(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(Rr(),vo(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen)),this._viewportRuler.change().pipe(vo(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(vo(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(cu(null),vo(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&&jT(this._trackedModal,"aria-owns",i),Oy(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){this._trackedModal&&(jT(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,s=13===i||32===i,l=this._keyManager;if(!l.isTyping()&&s&&!Yl(e)||(this.multiple||e.altKey)&&r)e.preventDefault(),this.open();else if(!this.multiple){const u=this.selected;l.onKeydown(e);const f=this.selected;f&&u!==f&&this._liveAnnouncer.announce(f.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,r=e.keyCode,s=40===r||38===r,l=i.isTyping();if(s&&e.altKey)e.preventDefault(),this.close();else if(l||13!==r&&32!==r||!i.activeItem||Yl(e))if(!l&&this._multiple&&65===r&&e.ctrlKey){e.preventDefault();const u=this.options.some(f=>!f.disabled&&!f.selected);this.options.forEach(f=>{f.disabled||(u?f.select():f.deselect())})}else{const u=i.activeItemIndex;i.onKeydown(e),this._multiple&&s&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==u&&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(ms(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 Py?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 WT(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=Wl(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(vo(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Wl(...this.options.map(i=>i._stateChanges)).pipe(vo(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)(o.rXU(_T),o.rXU(o.gRc),o.rXU(o.SKi),o.rXU(CI),o.rXU(o.aKT),o.rXU(Zs,8),o.rXU(o2,8),o.rXU(s2,8),o.rXU(O8,8),o.rXU(df,10),o.kS0("tabindex"),o.rXU(V$),o.rXU(bO),o.rXU(Xle,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-select"]],contentQueries:function(i,r,s){if(1&i&&(o.wni(s,H$,5),o.wni(s,gd,5),o.wni(s,FI,5)),2&i){let l;o.mGM(l=o.lsd())&&(r.customTrigger=l.first),o.mGM(l=o.lsd())&&(r.options=l),o.mGM(l=o.lsd())&&(r.optionGroups=l)}},viewQuery:function(i,r){if(1&i&&(o.GBs(Lle,5),o.GBs(Ule,5),o.GBs(GT,5)),2&i){let s;o.mGM(s=o.lsd())&&(r.trigger=s.first),o.mGM(s=o.lsd())&&(r.panel=s.first),o.mGM(s=o.lsd())&&(r._overlayDir=s.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,r){1&i&&o.bIt("keydown",function(l){return r._handleKeydown(l)})("focus",function(){return r._onFocus()})("blur",function(){return r._onBlur()}),2&i&&(o.BMQ("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()),o.AVh("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:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",o.L39],disableRipple:[2,"disableRipple","disableRipple",o.L39],tabIndex:[2,"tabIndex","tabIndex",e=>null==e?0:(0,o.Udg)(e)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",o.L39],placeholder:"placeholder",required:[2,"required","required",o.L39],multiple:[2,"multiple","multiple",o.L39],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",o.L39],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",o.Udg],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],standalone:!0,features:[o.Jv_([{provide:P8,useExisting:n},{provide:II,useExisting:n}]),o.GFd,o.OA$,o.aNF],ngContentSelectors:Hle,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-value-text"],[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-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,r){if(1&i){const s=o.RV6();o.NAR(Vle),o.j41(0,"div",2,0),o.bIt("click",function(){return o.eBV(s),o.Njj(r.open())}),o.j41(3,"div",3),o.DNE(4,Qle,2,1,"span",4)(5,jle,3,1,"span",5),o.k0s(),o.j41(6,"div",6)(7,"div",7),o.qSk(),o.j41(8,"svg",8),o.nrm(9,"path",9),o.k0s()()()(),o.DNE(10,$le,3,9,"ng-template",10),o.bIt("backdropClick",function(){return o.eBV(s),o.Njj(r.close())})("attach",function(){return o.eBV(s),o.Njj(r._onAttached())})("detach",function(){return o.eBV(s),o.Njj(r.close())})}if(2&i){const s=o.sdS(1);o.R7$(3),o.BMQ("id",r._valueId),o.R7$(),o.vxM(r.empty?4:5),o.R7$(6),o.Y8G("cdkConnectedOverlayPanelClass",r._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",r._scrollStrategy)("cdkConnectedOverlayOrigin",r._preferredOverlayOrigin||s)("cdkConnectedOverlayOpen",r.panelOpen)("cdkConnectedOverlayPositions",r._positions)("cdkConnectedOverlayWidth",r._overlayWidth)}},dependencies:[Py,GT,En],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, var(--mat-app-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-app-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-app-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-app-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-app-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-app-body-large-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, var(--mat-app-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-app-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-app-primary))}.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, var(--mat-app-surface-container))}.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, var(--mat-app-on-surface-variant))}._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:[qle.transformPanel]},changeDetection:0})}}return n})(),Q$=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,selectors:[["mat-select-trigger"]],standalone:!0,features:[o.Jv_([{provide:H$,useExisting:n}])]})}}return n})();const Yle=["*"],ece=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],tce=["[mat-card-avatar], [matCardAvatar]","mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]","*"],nce=new o.nKC("MAT_CARD_CONFIG");let c2=(()=>{class n{constructor(e){this.appearance=e?.appearance||"raised"}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(nce,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,r){2&i&&o.AVh("mat-mdc-card-outlined","outlined"===r.appearance)("mdc-card--outlined","outlined"===r.appearance)},inputs:{appearance:"appearance"},exportAs:["matCard"],standalone:!0,features:[o.aNF],ngContentSelectors:Yle,decls:1,vars:0,template:function(i,r){1&i&&(o.NAR(),o.SdG(0))},styles:['.mat-mdc-card{display:flex;flex-direction:column;box-sizing:border-box;position:relative;border-style:solid;border-width:0;background-color:var(--mdc-elevated-card-container-color, var(--mat-app-surface-container-low));border-color:var(--mdc-elevated-card-container-color, var(--mat-app-surface-container-low));border-radius:var(--mdc-elevated-card-container-shape, var(--mat-app-corner-medium));box-shadow:var(--mdc-elevated-card-container-elevation, var(--mat-app-level1))}.mat-mdc-card::after{position:absolute;top:0;left:0;width:100%;height:100%;border:solid 1px rgba(0,0,0,0);content:"";display:block;pointer-events:none;box-sizing:border-box;border-radius:var(--mdc-elevated-card-container-shape, var(--mat-app-corner-medium))}.mat-mdc-card-outlined{background-color:var(--mdc-outlined-card-container-color, var(--mat-app-surface));border-radius:var(--mdc-outlined-card-container-shape, var(--mat-app-corner-medium));border-width:var(--mdc-outlined-card-outline-width);border-color:var(--mdc-outlined-card-outline-color, var(--mat-app-outline-variant));box-shadow:var(--mdc-outlined-card-container-elevation, var(--mat-app-level0))}.mat-mdc-card-outlined::after{border:none}.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}.mat-mdc-card-actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font, var(--mat-app-title-large-font));line-height:var(--mat-card-title-text-line-height, var(--mat-app-title-large-line-height));font-size:var(--mat-card-title-text-size, var(--mat-app-title-large-size));letter-spacing:var(--mat-card-title-text-tracking, var(--mat-app-title-large-tracking));font-weight:var(--mat-card-title-text-weight, var(--mat-app-title-large-weight))}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color, var(--mat-app-on-surface));font-family:var(--mat-card-subtitle-text-font, var(--mat-app-title-medium-font));line-height:var(--mat-card-subtitle-text-line-height, var(--mat-app-title-medium-line-height));font-size:var(--mat-card-subtitle-text-size, var(--mat-app-title-medium-size));letter-spacing:var(--mat-card-subtitle-text-tracking, var(--mat-app-title-medium-tracking));font-weight:var(--mat-card-subtitle-text-weight, var(--mat-app-title-medium-weight))}.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})(),z$=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,selectors:[["mat-card-content"]],hostAttrs:[1,"mat-mdc-card-content"],standalone:!0})}}return n})(),G$=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-mdc-card-header"],standalone:!0,features:[o.aNF],ngContentSelectors:tce,decls:4,vars:0,consts:[[1,"mat-mdc-card-header-text"]],template:function(i,r){1&i&&(o.NAR(ece),o.SdG(0),o.j41(1,"div",0),o.SdG(2,1),o.k0s(),o.SdG(3,2))},encapsulation:2,changeDetection:0})}}return n})();const ace=["knob"],lce=["valueIndicatorContainer"];function cce(n,t){if(1&n&&(o.j41(0,"div",2,1)(2,"div",5)(3,"span",6),o.EFF(4),o.k0s()()()),2&n){const e=o.XpG();o.R7$(4),o.JRh(e.valueIndicatorText)}}const dce=["trackActive"],uce=["*"];function hce(n,t){if(1&n&&o.nrm(0,"div"),2&n){const e=t.$implicit,i=t.$index,r=o.XpG(3);o.HbH(0===e?"mdc-slider__tick-mark--active":"mdc-slider__tick-mark--inactive"),o.xc7("transform",r._calcTickMarkTransform(i))}}function fce(n,t){if(1&n&&o.Z7z(0,hce,1,4,"div",8,o.Vm6),2&n){const e=o.XpG(2);o.Dyx(e._tickMarks)}}function pce(n,t){if(1&n&&(o.j41(0,"div",6,1),o.DNE(2,fce,2,0),o.k0s()),2&n){const e=o.XpG();o.R7$(2),o.vxM(e._cachedWidth?2:-1)}}function Ace(n,t){if(1&n&&o.nrm(0,"mat-slider-visual-thumb",7),2&n){const e=o.XpG();o.Y8G("discrete",e.discrete)("thumbPosition",1)("valueIndicatorText",e.startValueIndicatorText)}}var qi=function(n){return n[n.START=1]="START",n[n.END=2]="END",n}(qi||{}),cx=function(n){return n[n.ACTIVE=0]="ACTIVE",n[n.INACTIVE=1]="INACTIVE",n}(cx||{});const K3=new o.nKC("_MatSlider"),j$=new o.nKC("_MatSliderThumb"),$$=new o.nKC("_MatSliderRangeThumb"),q$=new o.nKC("_MatSliderVisualThumb");let mce=(()=>{class n{constructor(e,i,r,s){this._cdr=e,this._ngZone=i,this._slider=s,this._isHovered=!1,this._isActive=!1,this._isValueIndicatorVisible=!1,this._platform=(0,o.WQX)(Fo),this._onPointerMove=l=>{if(this._sliderInput._isFocused)return;const u=this._hostElement.getBoundingClientRect(),f=this._slider._isCursorOnSliderThumb(l,u);this._isHovered=f,f?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=l=>{0===l.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(){const e=this._slider._getInput(this.thumbPosition);e&&(this._ripple.radius=24,this._sliderInput=e,this._sliderInputEl=this._sliderInput._hostElement,this._ngZone.runOutsideAngular(()=>{const i=this._sliderInputEl;i.addEventListener("pointermove",this._onPointerMove),i.addEventListener("pointerdown",this._onDragStart),i.addEventListener("pointerup",this._onDragEnd),i.addEventListener("pointerleave",this._onMouseLeave),i.addEventListener("focus",this._onFocus),i.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===Vs.FADING_IN||e?.state===Vs.VISIBLE}_showRipple(e,i){if(!this._slider.disabled&&(this._showValueIndicator(),this._slider._isRange&&this._slider._getThumb(this.thumbPosition===qi.START?qi.END:qi.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===qi.START?qi.END:qi.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)(o.rXU(o.gRc),o.rXU(o.SKi),o.rXU(o.aKT),o.rXU(K3))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-slider-visual-thumb"]],viewQuery:function(i,r){if(1&i&&(o.GBs(gl,5),o.GBs(ace,5),o.GBs(lce,5)),2&i){let s;o.mGM(s=o.lsd())&&(r._ripple=s.first),o.mGM(s=o.lsd())&&(r._knob=s.first),o.mGM(s=o.lsd())&&(r._valueIndicatorContainer=s.first)}},hostAttrs:[1,"mdc-slider__thumb","mat-mdc-slider-visual-thumb"],inputs:{discrete:"discrete",thumbPosition:"thumbPosition",valueIndicatorText:"valueIndicatorText"},standalone:!0,features:[o.Jv_([{provide:q$,useExisting:n}]),o.aNF],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&&(o.DNE(0,cce,5,1,"div",2),o.nrm(1,"div",3,0)(3,"div",4)),2&i&&(o.vxM(r.discrete?0:-1),o.R7$(3),o.Y8G("matRippleDisabled",!0))},dependencies:[gl],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})(),W$=(()=>{class n{get disabled(){return this._disabled}set disabled(e){this._disabled=e;const i=this._getInput(qi.END),r=this._getInput(qi.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(qi.END),r=this._getInput(qi.START),s=i.value,l=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),s!==i.value&&this._onValueChange(i),l!==r.value&&this._onValueChange(r)}_updateMaxNonRange(e){const i=this._getInput(qi.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(qi.END),i=this._getInput(qi.START),r=e.value,s=i.value,l=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`${f}`,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=(0,o.WQX)(Fo),this._knobRadius=8,this._thumbsOverlap=!1,this._noopAnimations="NoopAnimations"===u,this._dirChangeSubscription=this._dir.change.subscribe(()=>this._onDirChange()),this._isRtl="rtl"===this._dir.value}ngAfterViewInit(){this._platform.isBrowser&&this._updateDimensions();const e=this._getInput(qi.END),i=this._getInput(qi.START);this._isRange=!!e&&!!i,this._cdr.detectChanges();const r=this._getThumb(qi.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(qi.END),i=this._getInput(qi.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(qi.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(qi.START)._isActive||this._getThumb(qi.END)._isActive}_getValue(e=qi.END){const i=this._getInput(e);return i?i.value:this.min}_skipUpdate(){return!(!this._getInput(qi.START)?._skipUIUpdate&&!this._getInput(qi.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(qi.END),i=this._getInput(qi.START);e._updateThumbUIByValue(),i._updateThumbUIByValue(),e._updateStaticStyles(),i._updateStaticStyles(),e._updateMinMax(),i._updateMinMax(),e._updateWidthInactive(),i._updateWidthInactive()}else{const e=this._getInput(qi.END);e&&e._updateThumbUIByValue()}this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.detectChanges()}}_areThumbsOverlapping(){const e=this._getInput(qi.START),i=this._getInput(qi.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===qi.END?qi.END:qi.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.set(i):e._hostElement.setAttribute("aria-valuetext",i),this.discrete){e.thumbPosition===qi.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(qi.END),i=this._getInput(qi.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.round((i-this.min)/e),0),s=Math.max(Math.round((this.max-i)/e),0);this._isRtl?r++:s++,this._tickMarks=Array(r).fill(cx.ACTIVE).concat(Array(s).fill(cx.INACTIVE))}_updateTickMarkUIRange(e){const i=this._getValue(),r=this._getValue(qi.START),s=Math.max(Math.round((r-this.min)/e),0),l=Math.max(Math.round((i-r)/e)+1,0),u=Math.max(Math.round((this.max-i)/e),0);this._tickMarks=Array(s).fill(cx.INACTIVE).concat(Array(l).fill(cx.ACTIVE),Array(u).fill(cx.INACTIVE))}_getInput(e){return e===qi.END&&this._input?this._input:this._inputs?.length?e===qi.START?this._inputs.first:this._inputs.last:void 0}_getThumb(e){return e===qi.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,f=e.clientY-(i.y+r);return Math.pow(e.clientX-(i.x+r),2)+Math.pow(f,2)Y3),multi:!0};let Y3=(()=>{class n{get value(){return(0,o.Udg)(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(0,o.Udg)(this._hostElement.min,0)}set min(e){this._hostElement.min=e+"",this._cdr.detectChanges()}get max(){return(0,o.Udg)(this._hostElement.max,0)}set max(e){this._hostElement.max=e+"",this._cdr.detectChanges()}get step(){return(0,o.Udg)(this._hostElement.step,0)}set step(e){this._hostElement.step=e+"",this._cdr.detectChanges()}get disabled(){return(0,o.L39)(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,s){this._ngZone=e,this._elementRef=i,this._cdr=r,this._slider=s,this.valueChange=new o.bkB,this.dragStart=new o.bkB,this.dragEnd=new o.bkB,this.thumbPosition=qi.END,this._valuetext=(0,o.vPA)(""),this._knobRadius=8,this._tickMarkOffset=3,this._isActive=!1,this._isFocused=!1,this._hasSetInitialValue=!1,this._destroyed=new Ai.B,this._skipUIUpdate=!1,this._onTouchedFn=()=>{},this._isControlInitialized=!1,this._platform=(0,o.WQX)(Fo),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,s=0===this._slider.step?1:this._slider.step,l=Math.floor((this._slider.max-this._slider.min)/s),p=Math.round((this._slider._isRtl?1-i/r:i/r)*l)/l*(this._slider.max-this._slider.min)+this._slider.min,m=Math.round(p/s)*s;if(m===this.value)return this._slider._onValueChange(this),void(this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(e,{withAnimation:this._slider._hasAnimation}));this.value=m,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)(o.rXU(o.SKi),o.rXU(o.aKT),o.rXU(o.gRc),o.rXU(K3))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["input","matSliderThumb",""]],hostAttrs:["type","range",1,"mdc-slider__input"],hostVars:1,hostBindings:function(i,r){1&i&&o.bIt("change",function(){return r._onChange()})("input",function(){return r._onInput()})("blur",function(){return r._onBlur()})("focus",function(){return r._onFocus()}),2&i&&o.BMQ("aria-valuetext",r._valuetext())},inputs:{value:[2,"value","value",o.Udg]},outputs:{valueChange:"valueChange",dragStart:"dragStart",dragEnd:"dragEnd"},exportAs:["matSliderThumb"],standalone:!0,features:[o.Jv_([_ce,{provide:j$,useExisting:n}]),o.GFd]})}}return n})();const X$=rp({passive:!0});let yce=(()=>{class n{constructor(e,i){this._platform=e,this._ngZone=i,this._monitoredElements=new Map}monitor(e){if(!this._platform.isBrowser)return bh;const i=Ci(e),r=this._monitoredElements.get(i);if(r)return r.subject;const s=new Ai.B,l="cdk-text-field-autofilled",u=f=>{"cdk-text-field-autofill-start"!==f.animationName||i.classList.contains(l)?"cdk-text-field-autofill-end"===f.animationName&&i.classList.contains(l)&&(i.classList.remove(l),this._ngZone.run(()=>s.next({target:f.target,isAutofilled:!1}))):(i.classList.add(l),this._ngZone.run(()=>s.next({target:f.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",u,X$),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:s,unlisten:()=>{i.removeEventListener("animationstart",u,X$)}}),s}stopMonitoring(e){const i=Ci(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)(o.KVO(Fo),o.KVO(o.SKi))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),K$=(()=>{class n{get minRows(){return this._minRows}set minRows(e){this._minRows=Gn(e),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(e){this._maxRows=Gn(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,s){this._elementRef=e,this._platform=i,this._ngZone=r,this._destroyed=new Ai.B,this._enabled=!0,this._previousMinRows=-1,this._isViewInited=!1,this._handleFocusEvent=l=>{this._hasFocus="focus"===l.type},this._document=s,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(()=>{Ls(this._getWindow(),"resize").pipe(p_(16),vo(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,s=r&&this._hasFocus,l=r?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";s&&(e.style.marginBottom=`${e.clientHeight}px`),e.classList.add(l);const u=e.scrollHeight-4;return e.classList.remove(l),s&&(e.style.marginBottom=i),u}_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 s=this._measureScrollHeight(),l=Math.max(s,this._cachedPlaceholderHeight||0);i.style.height=`${l}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)(o.rXU(o.aKT),o.rXU(Fo),o.rXU(o.SKi),o.rXU(V,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,r){1&i&&o.bIt("input",function(){return r._noopInputHandler()})},inputs:{minRows:[0,"cdkAutosizeMinRows","minRows"],maxRows:[0,"cdkAutosizeMaxRows","maxRows"],enabled:[2,"cdkTextareaAutosize","enabled",o.L39],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"],standalone:!0,features:[o.GFd]})}}return n})();const wce=new o.nKC("MAT_INPUT_VALUE_ACCESSOR"),xce=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let Cce=0,n0=(()=>{class n{get disabled(){return this._disabled}set disabled(e){this._disabled=mi(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(d8.required)??!1}set required(e){this._required=mi(e)}get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&My().has(this._type)&&(this._elementRef.nativeElement.type=this._type),this._ensureWheelDefaultBehavior()}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=mi(e)}get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}constructor(e,i,r,s,l,u,f,p,m,_){this._elementRef=e,this._platform=i,this.ngControl=r,this._autofillMonitor=p,this._ngZone=m,this._formField=_,this._uid="mat-input-"+Cce++,this._webkitBlinkWheelListenerAttached=!1,this.focused=!1,this.stateChanges=new Ai.B,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(F=>My().has(F)),this._iOSKeyupListener=F=>{const D=F.target;!D.value&&0===D.selectionStart&&0===D.selectionEnd&&(D.setSelectionRange(1,1),D.setSelectionRange(0,0))},this._webkitBlinkWheelListener=()=>{};const b=this._elementRef.nativeElement,w=b.nodeName.toLowerCase();this._inputValueAccessor=f||b,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&m.runOutsideAngular(()=>{e.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._errorStateTracker=new du(u,r,l,s,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===w,this._isTextarea="textarea"===w,this._isInFormField=!!_,this._isNativeSelect&&(this.controlType=b.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),this._webkitBlinkWheelListenerAttached&&this._elementRef.nativeElement.removeEventListener("wheel",this._webkitBlinkWheelListener)}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(){xce.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)}_ensureWheelDefaultBehavior(){!this._webkitBlinkWheelListenerAttached&&"number"===this._type&&(this._platform.BLINK||this._platform.WEBKIT)&&(this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("wheel",this._webkitBlinkWheelListener)}),this._webkitBlinkWheelListenerAttached=!0),this._webkitBlinkWheelListenerAttached&&"number"!==this._type&&(this._elementRef.nativeElement.removeEventListener("wheel",this._webkitBlinkWheelListener),this._webkitBlinkWheelListenerAttached=!0)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT),o.rXU(Fo),o.rXU(df,10),o.rXU(o2,8),o.rXU(s2,8),o.rXU(CI),o.rXU(wce,10),o.rXU(yce),o.rXU(o.SKi),o.rXU(O8,8))}}static{this.\u0275dir=o.FsC({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&&o.bIt("focus",function(){return r._focusChanged(!0)})("blur",function(){return r._focusChanged(!1)})("input",function(){return r._onInput()}),2&i&&(o.Mr5("id",r.id)("disabled",r.disabled)("required",r.required),o.BMQ("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),o.AVh("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:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],standalone:!0,features:[o.Jv_([{provide:P8,useExisting:n}]),o.OA$]})}}return n})();function Y$(){return(0,Fr.N)((n,t)=>{n.subscribe((0,sr._)(t,t_.l))})}function Z$(n,t){return t?e=>eM(t.pipe(ms(1),Y$()),e.pipe(Z$(n))):Ys((e,i)=>Pr(n(e,i)).pipe(ms(1),function Mce(n){return(0,$n.T)(()=>n)}(e)))}function J$(n,t=ru){const e=np(n,t);return Z$(()=>e)}const Ece=["mat-menu-item",""],Sce=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],Tce=["mat-icon, [matMenuItemIcon]","*"];function Ice(n,t){1&n&&(o.qSk(),o.j41(0,"svg",2),o.nrm(1,"polygon",3),o.k0s())}const Fce=["*"];function Dce(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",0),o.bIt("keydown",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s._handleKeydown(r))})("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.closed.emit("click"))})("@transformMenu.start",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s._onAnimationStart(r))})("@transformMenu.done",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s._onAnimationDone(r))}),o.j41(1,"div",1),o.SdG(2),o.k0s()()}if(2&n){const e=o.XpG();o.HbH(e._classList),o.Y8G("id",e.panelId)("@transformMenu",e._panelAnimationState),o.BMQ("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const N8=new o.nKC("MAT_MENU_PANEL");let Z3=(()=>{class n{constructor(e,i,r,s,l){this._elementRef=e,this._document=i,this._focusMonitor=r,this._parentMenu=s,this._changeDetectorRef=l,this.role="menuitem",this.disabled=!1,this.disableRipple=!1,this._hovered=new Ai.B,this._focused=new Ai.B,this._highlighted=!1,this._triggersSubmenu=!1,s?.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",(0,On.i0)("120ms cubic-bezier(0, 0, 0.2, 1)",(0,On.iF)({opacity:1,transform:"scale(1)"}))),(0,On.kY)("* => void",(0,On.i0)("100ms 25ms linear",(0,On.iF)({opacity:0})))]),fadeInItems:(0,On.hZ)("fadeInItems",[(0,On.wk)("showing",(0,On.iF)({opacity:1})),(0,On.kY)("void => *",[(0,On.iF)({opacity:0}),(0,On.i0)("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let kce=0;const Rce=new o.nKC("mat-menu-default-options",{providedIn:"root",factory:function Pce(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let uf=(()=>{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,r={...this._classList};i&&i.length&&i.split(" ").forEach(s=>{r[s]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(s=>{r[s]=!0}),this._elementRef.nativeElement.className=""),this._classList=r}get classList(){return this.panelClass}set classList(e){this.panelClass=e}constructor(e,i,r,s){this._elementRef=e,this._changeDetectorRef=s,this._elevationPrefix="mat-elevation-z",this._baseElevation=null,this._directDescendantItems=new o.rOR,this._classList={},this._panelAnimationState="void",this._animationDone=new Ai.B,this.closed=new o.bkB,this.close=this.closed,this.panelId="mat-menu-panel-"+kce++,this._injector=(0,o.WQX)(o.zZn),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 lu(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(cu(this._directDescendantItems),Xp(e=>Wl(...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(),s=Math.max(0,Math.min(r.length-1,i.activeItemIndex||0));r[s]&&!r[s].disabled?i.setActiveItem(s):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusRef?.destroy()}_hovered(){return this._directDescendantItems.changes.pipe(cu(this._directDescendantItems),Xp(i=>Wl(...i.map(r=>r._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,r=this._keyManager;switch(i){case 27:Yl(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._firstItemFocusRef?.destroy(),this._firstItemFocusRef=(0,o.mal)(()=>{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()}},{injector:this._injector})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){if(null===this._baseElevation){const u=("function"==typeof getComputedStyle?getComputedStyle(this._elementRef.nativeElement):null)?.getPropertyValue("--mat-menu-base-elevation-level")||"8";this._baseElevation=parseInt(u)}const i=Math.min(this._baseElevation+e,24),r=`${this._elevationPrefix}${i}`,s=Object.keys(this._classList).find(l=>l.startsWith(this._elevationPrefix));if(!s||s===this._previousElevation){const l={...this._classList};this._previousElevation&&(l[this._previousElevation]=!1),l[r]=!0,this._previousElevation=r,this._classList=l}}setPositionClasses(e=this.xPosition,i=this.yPosition){this._classList={...this._classList,"mat-menu-before":"before"===e,"mat-menu-after":"after"===e,"mat-menu-above":"above"===i,"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(cu(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)(o.rXU(o.aKT),o.rXU(o.SKi),o.rXU(Rce),o.rXU(o.gRc))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-menu"]],contentQueries:function(i,r,s){if(1&i&&(o.wni(s,Bce,5),o.wni(s,Z3,5),o.wni(s,Z3,4)),2&i){let l;o.mGM(l=o.lsd())&&(r.lazyContent=l.first),o.mGM(l=o.lsd())&&(r._allItems=l),o.mGM(l=o.lsd())&&(r.items=l)}},viewQuery:function(i,r){if(1&i&&o.GBs(o.C4Q,5),2&i){let s;o.mGM(s=o.lsd())&&(r.templateRef=s.first)}},hostVars:3,hostBindings:function(i,r){2&i&&o.BMQ("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[2,"overlapTrigger","overlapTrigger",o.L39],hasBackdrop:[2,"hasBackdrop","hasBackdrop",e=>null==e?null:(0,o.L39)(e)],panelClass:[0,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],standalone:!0,features:[o.Jv_([{provide:N8,useExisting:n}]),o.GFd,o.aNF],ngContentSelectors:Fce,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mat-mdc-elevation-specific",3,"keydown","click","id"],[1,"mat-mdc-menu-content"]],template:function(i,r){1&i&&(o.NAR(),o.DNE(0,Dce,3,7,"ng-template"))},styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;outline:0}.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, var(--mat-app-label-large-font));line-height:var(--mat-menu-item-label-text-line-height, var(--mat-app-label-large-line-height));font-size:var(--mat-menu-item-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mat-menu-item-label-text-tracking, var(--mat-app-label-large-tracking));font-weight:var(--mat-menu-item-label-text-weight, var(--mat-app-label-large-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, var(--mat-app-corner-extra-small));background-color:var(--mat-menu-container-color, var(--mat-app-surface-container));will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.mat-mdc-menu-panel.ng-animating:has(.mat-mdc-menu-content:empty){display:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-mdc-menu-panel .mat-divider{color:var(--mat-menu-divider-color, var(--mat-app-surface-variant));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;min-height:48px}[dir=rtl] .mat-mdc-menu-item{padding-right:var(--mat-menu-item-leading-spacing);padding-left:var(--mat-menu-item-trailing-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]){padding-right:var(--mat-menu-item-with-icon-leading-spacing);padding-left:var(--mat-menu-item-with-icon-trailing-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, var(--mat-app-on-surface))}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color, var(--mat-app-on-surface-variant))}.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:focus{outline: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{padding-right:var(--mat-menu-item-spacing);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1);transform-origin:center}.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:[J3.transformMenu,J3.fadeInItems]},changeDetection:0})}}return n})();const eq=new o.nKC("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{const n=(0,o.WQX)(Us);return()=>n.scrollStrategies.reposition()}}),tq=rp({passive:!0});let dx=(()=>{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,s,l,u,f,p,m){this._overlay=e,this._element=i,this._viewContainerRef=r,this._menuItemInstance=u,this._dir=f,this._focusMonitor=p,this._ngZone=m,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=un.yU.EMPTY,this._hoverSubscription=un.yU.EMPTY,this._menuCloseSubscription=un.yU.EMPTY,this._changeDetectorRef=(0,o.WQX)(o.gRc),this._handleTouchStart=_=>{F_(_)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new o.bkB,this.onMenuOpen=this.menuOpened,this.menuClosed=new o.bkB,this.onMenuClose=this.menuClosed,this._scrollStrategy=s,this._parentMaterialMenu=l instanceof uf?l:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,tq)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,tq),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(),s=r.positionStrategy;this._setPosition(e,s),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 uf&&(e._startAnimation(),e._directDescendantItems.changes.pipe(vo(e.close)).subscribe(()=>{s.withLockedPosition(!1).reapplyLastPosition(),s.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 uf?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(ur(r=>"void"===r.toState),ms(1),vo(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 xm({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 s="start"===r.connectionPair.overlayX?"after":"before",l="top"===r.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>e.setPositionClasses(s,l)):e.setPositionClasses(s,l)})}_setPosition(e,i){let[r,s]="before"===e.xPosition?["end","start"]:["start","end"],[l,u]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[f,p]=[l,u],[m,_]=[r,s],b=0;if(this.triggersSubmenu()){if(_=r="before"===e.xPosition?"start":"end",s=m="end"===r?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const w=this._parentMaterialMenu.items.first;this._parentInnerPadding=w?w._getHostElement().offsetTop:0}b="bottom"===l?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(f="top"===l?"bottom":"top",p="top"===u?"bottom":"top");i.withPositions([{originX:r,originY:f,overlayX:m,overlayY:l,offsetY:b},{originX:s,originY:f,overlayX:_,overlayY:l,offsetY:b},{originX:r,originY:p,overlayX:m,overlayY:u,offsetY:-b},{originX:s,originY:p,overlayX:_,overlayY:u,offsetY:-b}])}_menuClosingActions(){const e=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return Wl(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:So(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(ur(l=>l!==this._menuItemInstance),ur(()=>this._menuOpen)):So(),i)}_handleMousedown(e){Em(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(ur(e=>e===this._menuItemInstance&&!e.disabled),J$(0,f_)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof uf&&this.menu._isAnimating?this.menu._animationDone.pipe(ms(1),J$(0,f_),vo(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new g_(e.templateRef,this._viewContainerRef)),this._portal}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Us),o.rXU(o.aKT),o.rXU(o.c1b),o.rXU(eq),o.rXU(N8,8),o.rXU(Z3,10),o.rXU(Zs,8),o.rXU(Zl),o.rXU(o.SKi))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,r){1&i&&o.bIt("click",function(l){return r._handleClick(l)})("mousedown",function(l){return r._handleMousedown(l)})("keydown",function(l){return r._handleKeydown(l)}),2&i&&o.BMQ("aria-haspopup",r.menu?"menu":null)("aria-expanded",r.menuOpen)("aria-controls",r.menuOpen?r.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[0,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[0,"matMenuTriggerFor","menu"],menuData:[0,"matMenuTriggerData","menuData"],restoreFocus:[0,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"],standalone:!0})}}return n})();function Na(n,t){(function Nce(n){return"string"==typeof n&&-1!==n.indexOf(".")&&1===parseFloat(n)})(n)&&(n="100%");var e=function Lce(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 eR(n){return Math.min(1,Math.max(0,n))}function nq(n){return n=parseFloat(n),(isNaN(n)||n<0||n>1)&&(n=1),n}function tR(n){return n<=1?"".concat(100*Number(n),"%"):n}function iv(n){return 1===n.length?"0"+n:String(n)}function iq(n,t,e){n=Na(n,255),t=Na(t,255),e=Na(e,255);var i=Math.max(n,t,e),r=Math.min(n,t,e),s=0,l=0,u=(i+r)/2;if(i===r)l=0,s=0;else{var f=i-r;switch(l=u>.5?f/(2-i-r):f/(i+r),i){case n:s=(t-e)/f+(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 rq(n,t,e){n=Na(n,255),t=Na(t,255),e=Na(e,255);var i=Math.max(n,t,e),r=Math.min(n,t,e),s=0,l=i,u=i-r,f=0===i?0:u/i;if(i===r)s=0;else{switch(i){case n:s=(t-e)/u+(t>16,g:(65280&n)>>8,b:255&n}}(t)),this.originalInput=t;var r=function Gce(n){var t={r:0,g:0,b:0},e=1,i=null,r=null,s=null,l=!1,u=!1;return"string"==typeof n&&(n=function qce(n){if(0===(n=n.trim().toLowerCase()).length)return!1;var t=!1;if(U8[n])n=U8[n],t=!0;else if("transparent"===n)return{r:0,g:0,b:0,a:0,format:"name"};var e=Hu.rgb.exec(n);return e?{r:e[1],g:e[2],b:e[3]}:(e=Hu.rgba.exec(n))?{r:e[1],g:e[2],b:e[3],a:e[4]}:(e=Hu.hsl.exec(n))?{h:e[1],s:e[2],l:e[3]}:(e=Hu.hsla.exec(n))?{h:e[1],s:e[2],l:e[3],a:e[4]}:(e=Hu.hsv.exec(n))?{h:e[1],s:e[2],v:e[3]}:(e=Hu.hsva.exec(n))?{h:e[1],s:e[2],v:e[3],a:e[4]}:(e=Hu.hex8.exec(n))?{r:zc(e[1]),g:zc(e[2]),b:zc(e[3]),a:aq(e[4]),format:t?"name":"hex8"}:(e=Hu.hex6.exec(n))?{r:zc(e[1]),g:zc(e[2]),b:zc(e[3]),format:t?"name":"hex"}:(e=Hu.hex4.exec(n))?{r:zc(e[1]+e[1]),g:zc(e[2]+e[2]),b:zc(e[3]+e[3]),a:aq(e[4]+e[4]),format:t?"name":"hex8"}:!!(e=Hu.hex3.exec(n))&&{r:zc(e[1]+e[1]),g:zc(e[2]+e[2]),b:zc(e[3]+e[3]),format:t?"name":"hex"}}(n)),"object"==typeof n&&(Kp(n.r)&&Kp(n.g)&&Kp(n.b)?(t=function Uce(n,t,e){return{r:255*Na(n,255),g:255*Na(t,255),b:255*Na(e,255)}}(n.r,n.g,n.b),l=!0,u="%"===String(n.r).substr(-1)?"prgb":"rgb"):Kp(n.h)&&Kp(n.s)&&Kp(n.v)?(i=tR(n.s),r=tR(n.v),t=function Hce(n,t,e){n=6*Na(n,360),t=Na(t,100),e=Na(e,100);var i=Math.floor(n),r=n-i,s=e*(1-t),l=e*(1-r*t),u=e*(1-(1-r)*t),f=i%6;return{r:255*[e,l,s,s,u,e][f],g:255*[u,e,e,l,s,s][f],b:255*[s,s,u,e,e,l][f]}}(n.h,i,r),l=!0,u="hsv"):Kp(n.h)&&Kp(n.s)&&Kp(n.l)&&(i=tR(n.s),s=tR(n.l),t=function Vce(n,t,e){var i,r,s;if(n=Na(n,360),t=Na(t,100),e=Na(e,100),0===t)r=e,s=e,i=e;else{var l=e<.5?e*(1+t):e+t-e*t,u=2*e-l;i=L8(u,l,n+1/3),r=L8(u,l,n),s=L8(u,l,n-1/3)}return{r:255*i,g:255*r,b:255*s}}(n.h,i,s),l=!0,u="hsl"),Object.prototype.hasOwnProperty.call(n,"a")&&(e=n.a)),e=nq(e),{ok:l,format:n.format||u,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(),s=t.r/255,l=t.g/255,u=t.b/255;return.2126*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.7152*(l<=.03928?l/12.92:Math.pow((l+.055)/1.055,2.4))+.0722*(u<=.03928?u/12.92:Math.pow((u+.055)/1.055,2.4))},n.prototype.getAlpha=function(){return this.a},n.prototype.setAlpha=function(t){return this.a=nq(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=rq(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=rq(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=iq(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=iq(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),oq(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 Qce(n,t,e,i,r){var s=[iv(Math.round(n).toString(16)),iv(Math.round(t).toString(16)),iv(Math.round(e).toString(16)),iv(sq(i))];return r&&s[0].startsWith(s[0].charAt(1))&&s[1].startsWith(s[1].charAt(1))&&s[2].startsWith(s[2].charAt(1))&&s[3].startsWith(s[3].charAt(1))?s[0].charAt(0)+s[1].charAt(0)+s[2].charAt(0)+s[3].charAt(0):s.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*Na(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*Na(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="#"+oq(this.r,this.g,this.b,!1),e=0,i=Object.entries(U8);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=eR(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=eR(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=eR(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=eR(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(),s=e/100;return new n({r:(r.r-i.r)*s+i.r,g:(r.g-i.g)*s+i.g,b:(r.b-i.b)*s+i.b,a:(r.a-i.a)*s+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,s=[this];for(i.h=(i.h-(r*t>>1)+720)%360;--t;)i.h=(i.h+r)%360,s.push(new n(i));return s},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,s=e.v,l=[],u=1/t;t--;)l.push(new n({h:i,s:r,v:s})),s=(s+u)%1;return l},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],s=360/t,l=1;l{class n{constructor(){this.white="transparent",this.size=8,this.grey="rgba(0,0,0,.08)"}ngOnInit(){const e=function Yce(n,t,e){const i=`${n}-${t}-${e}`;if(Q8[i])return Q8[i];const r=function Kce(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?(Q8[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=o.VBU({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&&o.nrm(0,"div",0),2&e&&o.Y8G("ngStyle",i.gridStyles)},dependencies:[ga],styles:[".grid[_ngcontent-%COMP%]{top:0px;right:0px;bottom:0px;left:0px;position:absolute}"],changeDetection:0}),n})(),cq=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=o.$C({type:n}),n.\u0275inj=o.G2t({imports:[[va]]}),n})(),z8=(()=>{class n{constructor(e){this.el=e,this.coordinatesChange=new Ai.B,this.mousechange=new Ai.B,this.mouseListening=!1}mousemove(e,i,r,s=!1){this.mouseListening&&(e.preventDefault(),this.mousechange.next({$event:e,x:i,y:r,isTouch:s}))}mouseup(){this.mouseListening=!1}mousedown(e,i,r,s=!1){e.preventDefault(),this.mouseListening=!0,this.mousechange.next({$event:e,x:i,y:r,isTouch:s})}ngOnInit(){this.sub=this.mousechange.pipe(Rr((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,s){const l=this.el.nativeElement.clientWidth,u=this.el.nativeElement.clientHeight,f=e-(this.el.nativeElement.getBoundingClientRect().left+window.pageXOffset);let p=i-this.el.nativeElement.getBoundingClientRect().top;s||(p-=window.pageYOffset),this.coordinatesChange.next({x:e,y:i,top:p,left:f,containerWidth:l,containerHeight:u,$event:r})}}return n.\u0275fac=function(e){return new(e||n)(o.rXU(o.aKT))},n.\u0275dir=o.FsC({type:n,selectors:[["","ngx-color-coordinates",""]],hostBindings:function(e,i){1&e&&o.bIt("mousemove",function(s){return i.mousemove(s,s.pageX,s.pageY)},!1,o.tSv)("touchmove",function(s){return i.mousemove(s,s.touches[0].clientX,s.touches[0].clientY,!0)},!1,o.tSv)("mouseup",function(){return i.mouseup()},!1,o.tSv)("touchend",function(){return i.mouseup()},!1,o.tSv)("mousedown",function(s){return i.mousedown(s,s.pageX,s.pageY)})("touchstart",function(s){return i.mousedown(s,s.touches[0].clientX,s.touches[0].clientY,!0)})},outputs:{coordinatesChange:"coordinatesChange"}}),n})(),G8=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=o.$C({type:n}),n.\u0275inj=o.G2t({}),n})(),Zce=(()=>{class n{constructor(){this.direction="horizontal",this.onChange=new o.bkB}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:s,$event:l}){let u;if("vertical"===this.direction){let f;f=e<0?0:e>r?1:Math.round(100*e/r)/100,this.hsl.a!==f&&(u={h:this.hsl.h,s:this.hsl.s,l:this.hsl.l,a:f,source:"rgb"})}else{let f;f=i<0?0:i>s?1:Math.round(100*i/s)/100,this.hsl.a!==f&&(u={h:this.hsl.h,s:this.hsl.s,l:this.hsl.l,a:f,source:"rgb"})}u&&this.onChange.emit({data:u,$event:l})}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=o.VBU({type:n,selectors:[["color-alpha"]],inputs:{hsl:"hsl",rgb:"rgb",pointer:"pointer",shadow:"shadow",radius:"radius",direction:"direction"},outputs:{onChange:"onChange"},features:[o.OA$],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&&(o.j41(0,"div",0)(1,"div",1),o.nrm(2,"color-checkboard"),o.k0s(),o.nrm(3,"div",2),o.j41(4,"div",3),o.bIt("coordinatesChange",function(s){return i.handleChange(s)}),o.j41(5,"div",4),o.nrm(6,"div",5),o.k0s()()()),2&e&&(o.xc7("border-radius",i.radius),o.R7$(3),o.xc7("box-shadow",i.shadow)("border-radius",i.radius),o.Y8G("ngStyle",i.gradient),o.R7$(),o.ZvI("alpha-container color-alpha-",i.direction,""),o.R7$(),o.xc7("left",i.pointerLeft,"%")("top",i.pointerTop,"%"),o.R7$(),o.Y8G("ngStyle",i.pointer))},dependencies:[lq,ga,z8],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})(),Jce=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=o.$C({type:n}),n.\u0275inj=o.G2t({imports:[[va,cq,G8]]}),n})();function dq(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 u2(n,t,e){const i=new d2(n.hex?n.hex:n);e&&i.setAlpha(1);const r=i.toHsl(),s=i.toHsv(),l=i.toRgb(),u=i.toHex();return 0===r.s&&(r.h=t||0,s.h=t||0),{hsl:r,hex:"000000"===u&&0===l.a?"transparent":i.toHexString(),rgb:l,hsv:s,oldHue:n.h||t||r.h,source:n.source}}var ux=function(n){return n.HEX="hex",n.HSL="hsl",n.HSV="hsv",n.RGB="rgb",n}(ux||{});let uq=(()=>{class n{constructor(){this.mode=ux.HEX,this.color={h:250,s:.5,l:.2,a:1},this.colorChange=new o.bkB,this.onChange=new o.bkB,this.onChangeComplete=new o.bkB,this.onSwatchHover=new o.bkB,this._onChangeCompleteSubscription=new un.yU,this._onSwatchHoverSubscription=new un.yU}ngOnInit(){this.changes=this.onChange.pipe(M_(100),ao(e=>{switch(this.onChangeComplete.emit(e),this.mode){case ux.HEX:this.colorChange.emit(e.color.hex);break;case ux.HSL:this.colorChange.emit(e.color.hsl);break;case ux.HSV:this.colorChange.emit(e.color.hsv);break;case ux.RGB:this.colorChange.emit(e.color.rgb);break;default:const i=`The mode '${this.mode}' is not supported`;if((0,o.naY)())throw new Error(i);console.warn(i)}})).subscribe(),this.setState(u2(this.color,0)),this.currentColor=this.hex}ngOnChanges(){this.setState(u2(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(dq(e)){const s=u2(e,e.h||this.oldHue,this.disableAlpha);this.setState(s),this.onChange.emit({color:s,$event:i}),this.afterValidChange()}}afterValidChange(){}handleSwatchHover(e,i){if(dq(e)){const s=u2(e,e.h||this.oldHue);this.setState(s),this.onSwatchHover.emit({color:s,$event:i})}}registerOnChange(e){this._onChangeCompleteSubscription.add(this.onChangeComplete.pipe(ao(i=>e(i.color.hex))).subscribe())}registerOnTouched(e){this._onSwatchHoverSubscription.add(this.onSwatchHover.pipe(ao(()=>e())).subscribe())}setDisabledState(e){}writeValue(e){this.color=e}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=o.VBU({type:n,selectors:[["color-wrap"]],inputs:{className:"className",mode:"mode",color:"color"},outputs:{colorChange:"colorChange",onChange:"onChange",onChangeComplete:"onChangeComplete",onSwatchHover:"onSwatchHover"},features:[o.Jv_([{provide:ma,useExisting:(0,o.Rfq)(()=>n),multi:!0}]),o.OA$],decls:0,vars:0,template:function(e,i){},encapsulation:2}),n})(),tde=0,nde=(()=>{class n{constructor(){this.placeholder="",this.onChange=new o.bkB,this.focus=!1,this.uniqueId="editableInput-"+ ++tde}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,s=Number(i.replace(/%/g,""));if(isNaN(s))return;const l=this.arrowOffset||1;38===e.keyCode&&(this.onChange.emit(this.label?{data:{[this.label]:s+l},$event:e}:{data:s+l,$event:e}),this.currentValue=r?`${s+l}%`:s+l),40===e.keyCode&&(this.onChange.emit(this.label?{data:{[this.label]:s-l},$event:e}:{data:s-l,$event:e}),this.currentValue=r?s-l+"%":s-l)}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=Ls(document,"mousemove").subscribe(e=>this.handleDrag(e)),this.mouseup=Ls(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=o.VBU({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:[o.OA$],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&&(o.j41(0,"div",0)(1,"input",1),o.bIt("keydown",function(s){return i.handleKeydown(s)})("keyup",function(s){return i.handleKeyup(s)})("focus",function(s){return i.handleFocus(s)})("focusout",function(s){return i.handleFocusOut(s)}),o.k0s(),o.DNE(2,Wce,2,3,"span",2),o.k0s()),2&e&&(o.Y8G("ngStyle",i.wrapStyle),o.R7$(),o.Y8G("ngStyle",i.inputStyle)("value",i.currentValue)("placeholder",i.placeholder),o.BMQ("aria-labelledby",i.uniqueId),o.R7$(),o.Y8G("ngIf",i.label))},dependencies:[ga,zn],styles:["[_nghost-%COMP%]{display:flex}.wrap[_ngcontent-%COMP%]{position:relative}"],changeDetection:0}),n})(),ide=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=o.$C({type:n}),n.\u0275inj=o.G2t({imports:[[va]]}),n})(),rde=(()=>{class n{constructor(){this.hidePointer=!1,this.direction="horizontal",this.onChange=new o.bkB,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:s,$event:l}){let u;if("vertical"===this.direction){let f;f=e<0?359:e>r?0:360*(-100*e/r+100)/100,this.hsl.h!==f&&(u={h:f,s:this.hsl.s,l:this.hsl.l,a:this.hsl.a,source:"rgb"})}else{let f;f=i<0?0:i>s?359:100*i/s*360/100,this.hsl.h!==f&&(u={h:f,s:this.hsl.s,l:this.hsl.l,a:this.hsl.a,source:"rgb"})}u&&this.onChange.emit({data:u,$event:l})}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=o.VBU({type:n,selectors:[["color-hue"]],inputs:{hsl:"hsl",pointer:"pointer",radius:"radius",shadow:"shadow",hidePointer:"hidePointer",direction:"direction"},outputs:{onChange:"onChange"},features:[o.OA$],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&&(o.j41(0,"div")(1,"div",0),o.bIt("coordinatesChange",function(s){return i.handleChange(s)}),o.DNE(2,Xce,2,5,"div",1),o.k0s()()),2&e&&(o.ZvI("color-hue color-hue-",i.direction,""),o.xc7("border-radius",i.radius,"px")("box-shadow",i.shadow),o.R7$(2),o.Y8G("ngIf",!i.hidePointer))},dependencies:[z8,zn,ga],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})(),ode=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=o.$C({type:n}),n.\u0275inj=o.G2t({imports:[[va,G8]]}),n})(),sde=(()=>{class n{constructor(){this.onChange=new o.bkB}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:s,$event:l}){i<0?i=0:i>s?i=s:e<0?e=0:e>r&&(e=r);let f=-e/r+1;f=f>0?f:0,f=f>1?1:f,this.onChange.emit({data:{h:this.hsl.h,s:i/s,v:f,a:this.hsl.a,source:"hsva"},$event:l})}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=o.VBU({type:n,selectors:[["color-saturation"]],inputs:{hsl:"hsl",hsv:"hsv",radius:"radius",pointer:"pointer",circle:"circle"},outputs:{onChange:"onChange"},features:[o.OA$],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&&(o.j41(0,"div",0),o.bIt("coordinatesChange",function(s){return i.handleChange(s)}),o.j41(1,"div",1),o.nrm(2,"div",2),o.j41(3,"div",3),o.nrm(4,"div",4),o.k0s()()()),2&e&&(o.xc7("background",i.background),o.R7$(3),o.xc7("top",i.pointerTop)("left",i.pointerLeft),o.Y8G("ngStyle",i.pointer),o.R7$(),o.Y8G("ngStyle",i.circle))},dependencies:[z8,ga],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})(),ade=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=o.$C({type:n}),n.\u0275inj=o.G2t({imports:[[va,G8]]}),n})();const Yp=(n,t)=>({input:n,label:t});function lde(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",11)(1,"color-editable-input",12),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleChange(r))}),o.k0s()()}if(2&n){const e=o.XpG();o.R7$(),o.Aen(o.l_i(3,Yp,e.input,e.label)),o.Y8G("value",e.hex)}}function cde(n,t){if(1&n){const e=o.RV6();o.j41(0,"color-editable-input",17),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG(2);return o.Njj(s.handleChange(r))}),o.k0s()}if(2&n){const e=o.XpG(2);o.Aen(o.l_i(4,Yp,e.input,e.label)),o.Y8G("value",e.rgb.a)("arrowOffset",.01)}}function dde(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",11)(1,"color-editable-input",13),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleChange(r))}),o.k0s()(),o.j41(2,"div",11)(3,"color-editable-input",14),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleChange(r))}),o.k0s()(),o.j41(4,"div",11)(5,"color-editable-input",15),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleChange(r))}),o.k0s()(),o.j41(6,"div",11),o.DNE(7,cde,1,7,"color-editable-input",16),o.k0s()}if(2&n){const e=o.XpG();o.R7$(),o.Aen(o.l_i(10,Yp,e.input,e.label)),o.Y8G("value",e.rgb.r),o.R7$(2),o.Aen(o.l_i(13,Yp,e.input,e.label)),o.Y8G("value",e.rgb.g),o.R7$(2),o.Aen(o.l_i(16,Yp,e.input,e.label)),o.Y8G("value",e.rgb.b),o.R7$(2),o.Y8G("ngIf",!e.disableAlpha)}}function ude(n,t){if(1&n){const e=o.RV6();o.j41(0,"color-editable-input",17),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG(2);return o.Njj(s.handleChange(r))}),o.k0s()}if(2&n){const e=o.XpG(2);o.Aen(o.l_i(4,Yp,e.input,e.label)),o.Y8G("value",e.hsl.a)("arrowOffset",.01)}}function hde(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",11)(1,"color-editable-input",18),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleChange(r))}),o.k0s()(),o.j41(2,"div",11)(3,"color-editable-input",19),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleChange(r))}),o.k0s()(),o.j41(4,"div",11)(5,"color-editable-input",20),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleChange(r))}),o.k0s()(),o.j41(6,"div",11),o.DNE(7,ude,1,7,"color-editable-input",16),o.k0s()}if(2&n){const e=o.XpG();o.R7$(),o.Aen(o.l_i(10,Yp,e.input,e.label)),o.Y8G("value",e.round(e.hsl.h)),o.R7$(2),o.Aen(o.l_i(13,Yp,e.input,e.label)),o.Y8G("value",e.round(100*e.hsl.s)+"%"),o.R7$(2),o.Aen(o.l_i(16,Yp,e.input,e.label)),o.Y8G("value",e.round(100*e.hsl.l)+"%"),o.R7$(2),o.Y8G("ngIf",!e.disableAlpha)}}function fde(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",12)(1,"color-alpha",13),o.bIt("onChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleValueChange(r))}),o.k0s()()}if(2&n){const e=o.XpG();o.R7$(),o.Y8G("radius",2)("rgb",e.rgb)("hsl",e.hsl)("pointer",e.pointer)}}let pde=(()=>{class n{constructor(){this.onChange=new o.bkB,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 ede(n){return new d2(n).isValid}(e.hex)){const r=new d2(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("%",""),s=e.l&&e.l.replace("%","");this.onChange.emit({data:{h:e.h||this.hsl.h,s:Number(r||this.hsl.s),l:Number(s||this.hsl.l),source:"hsl"},$event:i})}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=o.VBU({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=o.RV6();o.j41(0,"div",3)(1,"div",4),o.DNE(2,lde,2,6,"ng-template",5)(3,dde,8,19,"ng-template",5)(4,hde,8,19,"ng-template",5),o.k0s(),o.j41(5,"div",6)(6,"div",7,0),o.bIt("click",function(){return o.eBV(r),o.Njj(i.toggleViews())}),o.qSk(),o.j41(8,"svg",8),o.nrm(9,"path",9,1)(11,"path",10,2),o.k0s()()()()}2&e&&(o.R7$(2),o.Y8G("ngIf","hex"===i.view),o.R7$(),o.Y8G("ngIf","rgb"===i.view),o.R7$(),o.Y8G("ngIf","hsl"===i.view))},dependencies:[nde,zn],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})(),Ade=(()=>{class n extends uq{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=o.VBU({type:n,selectors:[["color-chrome"]],inputs:{disableAlpha:"disableAlpha"},features:[o.Jv_([{provide:ma,useExisting:(0,o.Rfq)(()=>n),multi:!0},{provide:uq,useExisting:(0,o.Rfq)(()=>n)}]),o.Vt3],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&&(o.j41(0,"div")(1,"div",0)(2,"color-saturation",1),o.bIt("onChange",function(s){return i.handleValueChange(s)}),o.k0s()(),o.j41(3,"div",2)(4,"div",3)(5,"div",4)(6,"div",5),o.nrm(7,"div",6)(8,"color-checkboard"),o.k0s()(),o.j41(9,"div",7)(10,"div",8)(11,"color-hue",9),o.bIt("onChange",function(s){return i.handleValueChange(s)}),o.k0s()(),o.DNE(12,fde,2,4,"div",10),o.k0s()(),o.j41(13,"color-chrome-fields",11),o.bIt("onChange",function(s){return i.handleValueChange(s)}),o.k0s()()()),2&e&&(o.ZvI("chrome-picker ",i.className,""),o.R7$(2),o.Y8G("hsl",i.hsl)("hsv",i.hsv)("circle",i.circle),o.R7$(5),o.xc7("background",i.activeBackground),o.R7$(4),o.Y8G("radius",2)("hsl",i.hsl)("pointer",i.pointer),o.R7$(),o.Y8G("ngIf",!i.disableAlpha),o.R7$(),o.Y8G("rgb",i.rgb)("hsl",i.hsl)("hex",i.hex)("disableAlpha",i.disableAlpha))},dependencies:()=>[sde,lq,rde,Zce,pde,zn],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})(),mde=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=o.$C({type:n}),n.\u0275inj=o.G2t({imports:[[va,Jce,cq,ide,ode,ade]]}),n})();const gde=["colorPickerMenuTrigger"],_de=(n,t)=>({isOpen:n,isHovered:t});let hq=(()=>{class n{constructor(){this.openXPosition="after",this.onColorChange=new o.bkB,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=o.VBU({type:n,selectors:[["cc-color-picker"]],viewQuery:function(i,r){if(1&i&&o.GBs(gde,5),2&i){let s;o.mGM(s=o.lsd())&&(r.colorPickerMenuTrigger=s.first)}},hostBindings:function(i,r){1&i&&o.bIt("mouseenter",function(){return r.onMouseEnter()})("mouseleave",function(){return r.onMouseLeave()})("click",function(){return r.onClick()})("click",function(){return r.handleDocumentClick()},!1,o.EBC)},inputs:{hexColor:"hexColor",openXPosition:"openXPosition",triggerTemplate:"triggerTemplate"},outputs:{onColorChange:"onColorChange"},standalone:!0,features:[o.aNF],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 s=o.RV6();o.eu8(0,2),o.nrm(1,"span",3,0),o.j41(3,"mat-menu",4,1)(5,"color-chrome",5),o.bIt("click",function(u){return o.eBV(s),o.Njj(u.stopPropagation())})("onChangeComplete",function(u){return o.eBV(s),o.Njj(r.handleChangeComplete(u.color.hex))}),o.k0s()()}if(2&i){const s=o.sdS(2),l=o.sdS(4);o.Y8G("ngTemplateOutlet",r.triggerTemplate)("ngTemplateOutletContext",o.l_i(7,_de,s.menuOpen,r.isHovered)),o.R7$(),o.Y8G("matMenuTriggerFor",l),o.R7$(2),o.Y8G("xPosition",r.openXPosition)("hasBackdrop",!1),o.R7$(2),o.Y8G("disableAlpha",!0)("color",r.hexColor)}},dependencies:[vi,dx,uf,mde,Ade],encapsulation:2})}}return n})(),vde=(()=>{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=o.EJ8({name:"readableColorForBackground",type:n,pure:!0,standalone:!0})}}return n})();function yde(n,t){1&n&&o.nrm(0,"br")}function wde(n,t){if(1&n&&(o.j41(0,"span"),o.EFF(1),o.DNE(2,yde,1,0,"br"),o.k0s()),2&n){const e=t.$implicit,i=t.$index,r=t.$count;o.R7$(),o.SpI(" ",e," "),o.R7$(),o.vxM(i!==r-1?2:-1)}}function xde(n,t){if(1&n&&(o.j41(0,"div",2)(1,"div",3),o.nrm(2,"span",4)(3,"span",5),o.nI1(4,"readableColorForBackground"),o.k0s(),o.j41(5,"div",6),o.Z7z(6,wde,3,2,"span",null,o.fX1),o.k0s()()),2&n){const e=t.isOpen,i=t.isHovered,r=o.XpG();o.R7$(2),o.xc7("background-color",r.hexColor),o.R7$(),o.xc7("color",o.bMT(4,6,r.hexColor))("opacity",i||e?"1":"0"),o.R7$(3),o.Dyx(r.labels)}}let j8=(()=>{class n{constructor(){this.onColorChange=new o.bkB}handleColorChange(e){this.onColorChange.emit(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-labelled-color-picker"]],inputs:{hexColor:"hexColor",labels:"labels"},outputs:{onColorChange:"onColorChange"},standalone:!0,features:[o.aNF],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 s=o.RV6();o.j41(0,"cc-color-picker",1),o.bIt("onColorChange",function(u){return o.eBV(s),o.Njj(r.handleColorChange(u))}),o.k0s(),o.DNE(1,xde,8,8,"ng-template",null,0,o.C5r)}if(2&i){const s=o.sdS(2);o.Y8G("hexColor",r.hexColor)("openXPosition","before")("triggerTemplate",s)}},dependencies:[hq,vde],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})();const Cde=["rendererContainer"],Mde=["fileInput"],Ede=()=>["Color"];function Sde(n,t){if(1&n&&(o.j41(0,"mat-option",9),o.EFF(1),o.j41(2,"span",35),o.EFF(3),o.k0s()()),2&n){const e=t.$implicit;o.Y8G("value",e),o.R7$(),o.SpI("",e.name," "),o.R7$(2),o.LHq(" (x: ",e.x,"cm, y: ",e.y,"cm, z: ",e.z,"cm, colors ",e.numberOfColors," )")}}let fq=(()=>{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=yj(new pe(this.selectedPrinter.x,this.selectedPrinter.y,this.selectedPrinter.z),this.threeSceneService.getMapMesh().getThreeMesh(),this.frontTextSize,this.baseplateHeight,this.mapSideOffset),this.currentSize=new pe,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=d3(this.state.getValue().files),s=this.state.getValue().fileSettings.blacklist,l=Bc(r,s);this.nodeMetricData=l.filter(u=>u.name===this.areaMetric||u.name===this.heightMetric||u.name===this.colorMetric)}ngAfterViewInit(){var e=this;return Cn(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 Cn(function*(){const i=new wk;i.name="printPreviewScene",e.printPreviewScene=i,i.background=new _n(15527388);const r=e.threeSceneService.scene.clone().children[3];r.name="lights",i.add(r);const s=new ea(45,1.15,50,2e5);s.name="camera",s.up=new pe(0,0,1),i.add(s),e.initRenderer(i,s),e.previewMesh=new Pse(e.initGeometryOptions()),yield e.previewMesh.initialize(),e.currentSize=e.previewMesh.getSize(),i.add(e.previewMesh.getThreeMesh()),e.updateCameraPosition(s)})()}initRenderer(e,i){const r=this.getGL(),s=new At;r.getSize(s);const l=this.rendererContainer.nativeElement.offsetWidth;r.setSize(l,s.y*(l/s.x),!0),this.rendererContainer.nativeElement.appendChild(r.domElement);const f=new UU(i,r.domElement),p=function(){requestAnimationFrame(p),f.update(),r.render(e,i)};p()}getGL(){return new D5}updateCameraPosition(e){e.position.set(.2*-this.currentSize.x,1.2*-this.currentSize.y,3*this.currentSize.z)}download3MFFile(){var e=this;return Cn(function*(){const i=yield function dse(n){return t8.apply(this,arguments)}(e.printPreviewScene.getObjectByName("PrintMesh"));e.downloadFile(i,"3mf")})()}makeMapMaxSize(){this.wantedWidth=yj(new pe(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 Loe).parse(this.previewMesh.getMapMesh(),{binary:!0});this.downloadFile(e,"stl")}initGeometryOptions(){const e=this.state.getValue().fileSettings.attributeDescriptors,i=Jw,r=e[this.areaMetric]?.title||i.get(this.areaMetric),s=e[this.heightMetric]?.title||i.get(this.heightMetric),l=e[this.colorMetric]?.title||i.get(this.colorMetric);return{originalMapMesh:this.threeSceneService.getMapMesh().getThreeMesh(),width:this.wantedWidth,areaMetricTitle:r,areaMetricData:this.nodeMetricData.find(u=>u.name===this.areaMetric),heightMetricTitle:s,heightMetricData:this.nodeMetricData.find(u=>u.name===this.heightMetric),colorMetricTitle:l,colorMetricData:this.nodeMetricData.find(u=>u.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=yn(this.state.getValue()),s=kd(this.state.getValue()).unifiedFileMeta?.fileName,l=`${kc.getNewFileName(s,Bd(r))}.${i}`;c1.downloadData(e,l)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Vi),o.rXU(Rd))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-export-3D-map-dialog"]],viewQuery:function(i,r){if(1&i&&(o.GBs(Cde,5),o.GBs(Mde,5)),2&i){let s;o.mGM(s=o.lsd())&&(r.rendererContainer=s.first),o.mGM(s=o.lsd())&&(r.fileInput=s.first)}},inputs:{logoColor:"logoColor"},standalone:!0,features:[o.aNF],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 s=o.RV6();o.j41(0,"mat-toolbar",3),o.EFF(1,"3D Print CodeCharta Map"),o.k0s(),o.j41(2,"div",4),o.nrm(3,"div",5,0),o.j41(5,"mat-dialog-content",6)(6,"mat-form-field",7)(7,"mat-label"),o.EFF(8,"Printer preset"),o.k0s(),o.j41(9,"mat-select",8),o.bIt("selectionChange",function(){return o.eBV(s),o.Njj(r.onSelectedPrinterChange())}),o.mxI("valueChange",function(u){return o.eBV(s),o.DH7(r.selectedPrinter,u)||(r.selectedPrinter=u),o.Njj(u)}),o.j41(10,"mat-select-trigger"),o.EFF(11),o.k0s(),o.Z7z(12,Sde,4,6,"mat-option",9,o.fX1),o.k0s()(),o.j41(14,"mat-card",10)(15,"mat-card-header"),o.EFF(16,"Scale:"),o.k0s(),o.j41(17,"mat-card-content")(18,"div",11)(19,"mat-slider",12),o.bIt("change",function(){return o.eBV(s),o.Njj(r.onScaleChange())}),o.j41(20,"input",13,1),o.mxI("ngModelChange",function(u){return o.eBV(s),o.DH7(r.wantedWidth,u)||(r.wantedWidth=u),o.Njj(u)}),o.k0s()()(),o.j41(22,"div",14)(23,"span"),o.EFF(24),o.k0s(),o.nrm(25,"br"),o.j41(26,"span"),o.EFF(27),o.k0s(),o.nrm(28,"br"),o.j41(29,"span"),o.EFF(30),o.k0s()()()(),o.j41(31,"mat-form-field",7)(32,"mat-label"),o.EFF(33,"Bottom center label text"),o.k0s(),o.j41(34,"input",15),o.mxI("ngModelChange",function(u){return o.eBV(s),o.DH7(r.frontText,u)||(r.frontText=u),o.Njj(u)}),o.bIt("input",function(){return o.eBV(s),o.Njj(r.onFrontTextChange())}),o.k0s()(),o.j41(35,"mat-card",10)(36,"mat-card-header"),o.EFF(37,"Second row center text"),o.k0s(),o.j41(38,"mat-card-content",16)(39,"mat-slide-toggle",17),o.bIt("change",function(u){return o.eBV(s),o.Njj(r.onSecondRowVisibilityChange(u))}),o.EFF(40," Show second row text "),o.k0s(),o.j41(41,"mat-form-field",18)(42,"mat-label"),o.EFF(43,"Text"),o.k0s(),o.j41(44,"input",19),o.mxI("ngModelChange",function(u){return o.eBV(s),o.DH7(r.secondRow.currentText,u)||(r.secondRow.currentText=u),o.Njj(u)}),o.bIt("input",function(){return o.eBV(s),o.Njj(r.onSecondRowTextChange())}),o.k0s()()()(),o.j41(45,"mat-card",10)(46,"mat-card-header"),o.EFF(47,"QR-Code"),o.k0s(),o.j41(48,"mat-card-content",16)(49,"mat-slide-toggle",20),o.bIt("change",function(u){return o.eBV(s),o.Njj(r.onQrCodeVisibilityChange(u))}),o.EFF(50," Show QR-Code "),o.k0s(),o.j41(51,"mat-form-field",18)(52,"mat-label"),o.EFF(53,"QR-Code text"),o.k0s(),o.j41(54,"input",21),o.mxI("ngModelChange",function(u){return o.eBV(s),o.DH7(r.qrCode.currentText,u)||(r.qrCode.currentText=u),o.Njj(u)}),o.bIt("input",function(){return o.eBV(s),o.Njj(r.onQrCodeTextChange())}),o.k0s()()()(),o.j41(55,"mat-card",10)(56,"mat-card-header"),o.EFF(57,"Bottom left logo (SVG):"),o.k0s(),o.j41(58,"mat-card-content")(59,"input",22,2),o.bIt("change",function(u){return o.eBV(s),o.Njj(r.onFileSelected(u))}),o.k0s(),o.j41(61,"button",23),o.bIt("click",function(){return o.eBV(s),o.Njj(r.onRemoveLogo())}),o.j41(62,"span"),o.nrm(63,"i",24),o.EFF(64," Remove Logo"),o.k0s()(),o.j41(65,"div",25)(66,"button",26),o.bIt("click",function(){return o.eBV(s),o.Njj(r.onRotateLogo())}),o.j41(67,"span"),o.nrm(68,"i",27),o.EFF(69," Rotate Logo"),o.k0s()(),o.j41(70,"button",28),o.bIt("click",function(){return o.eBV(s),o.Njj(r.onFlipLogo())}),o.j41(71,"span"),o.nrm(72,"i",29),o.EFF(73," Flip Logo"),o.k0s()(),o.j41(74,"cc-labelled-color-picker",30),o.bIt("onColorChange",function(u){return o.eBV(s),o.Njj(r.onLogoColorChange(u))}),o.k0s()()()()(),o.j41(75,"mat-dialog-actions",31)(76,"button",32),o.bIt("click",function(){return o.eBV(s),o.Njj(r.download3MFFile())}),o.j41(77,"span"),o.nrm(78,"i",33),o.EFF(79," Download 3MF"),o.k0s()(),o.j41(80,"button",34),o.bIt("click",function(){return o.eBV(s),o.Njj(r.downloadStlFile())}),o.j41(81,"span"),o.nrm(82,"i",33),o.EFF(83," Download minimal STL"),o.k0s()()()()}2&i&&(o.R7$(9),o.R50("value",r.selectedPrinter),o.R7$(2),o.SpI(" ",r.selectedPrinter.name," "),o.R7$(),o.Dyx(r.printers),o.R7$(7),o.Y8G("max",r.maxWidth),o.R7$(),o.R50("ngModel",r.wantedWidth),o.R7$(4),o.Lme("Width: ",(r.currentSize.x/10).toFixed(1),"cm (max. ",(r.selectedPrinter.x/10).toFixed(1),")"),o.R7$(3),o.Lme("Depth: ",(r.currentSize.y/10).toFixed(1),"cm (max. ",(r.selectedPrinter.y/10).toFixed(1),")"),o.R7$(3),o.Lme("Height: ",(r.currentSize.z/10).toFixed(1),"cm (max. ",(r.selectedPrinter.z/10).toFixed(1),")"),o.R7$(4),o.R50("ngModel",r.frontText),o.Y8G("placeholder","CodeCharta"),o.R7$(5),o.Y8G("checked",r.secondRow.isVisible),o.R7$(2),o.Y8G("hidden",r.secondRow.isVisible),o.R7$(3),o.R50("ngModel",r.secondRow.currentText),o.R7$(5),o.Y8G("checked",r.qrCode.isVisible),o.R7$(2),o.Y8G("hidden",r.qrCode.isVisible),o.R7$(3),o.R50("ngModel",r.qrCode.currentText),o.R7$(7),o.Y8G("hidden",!r.isFileSelected),o.R7$(4),o.Y8G("hidden",!r.isFileSelected),o.R7$(9),o.Y8G("hexColor",r.logoColor)("labels",o.lJ4(24,Ede)),o.R7$(2),o.Y8G("disabled",!r.isPrintMeshLoaded),o.R7$(4),o.Y8G("disabled",!r.isPrintMeshLoaded))},dependencies:[Jg,ml,Vu,Uu,t0,Q$,gd,c2,G$,z$,W$,Y3,a2,Kg,ox,lx,n0,l2,Jo,j8,Jl],styles:[".cc-printer-specs[_ngcontent-%COMP%]{color:#888}.cc-file-input[_ngcontent-%COMP%]{margin-top:16px}"]})}}return n})();const pq=sn(Hc,n=>n.colorMode),hx=bn("SET_COLOR_MODE",{_as:"props",_p:void 0});let Tde=(()=>{class n{constructor(e,i,r){this.dialog=e,this.state=i,this.store=r}export3DMap(){this.state.getValue().dynamicSettings.colorMode!==jl.absolute?this.dialog.open(uu,{data:this.buildErrorDialog()}):this.dialog.open(fq,{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(hx({value:jl.absolute})),this.store.select(pq).pipe(ms(1)).subscribe(l=>{l===jl.absolute&&setTimeout(()=>{this.dialog.open(fq,{panelClass:"cc-export-3D-map-dialog"})},100)})}}}}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Cs),o.rXU(Vi),o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-export-3d-map-button"]],standalone:!0,features:[o.aNF],decls:1,vars:1,consts:[["title","Download 3MF code file",3,"click","icon"]],template:function(i,r){1&i&&(o.j41(0,"cc-action-icon",0),o.bIt("click",function(){return r.export3DMap()}),o.k0s()),2&i&&o.Y8G("icon","fa fa-print")},dependencies:[Al],encapsulation:2})}}return n})();const $8=(0,v(1853).L)(n=>function(){n(this),this.name="EmptyError",this.message="no elements in sequence"});function Dde(n=Bde){return(0,Fr.N)((t,e)=>{let i=!1;t.subscribe((0,sr._)(e,r=>{i=!0,e.next(r)},()=>i?e.complete():e.error(n())))})}function Bde(){return new $8}function h2(n,t){const e=arguments.length>=2;return i=>i.pipe(n?ur((r,s)=>n(r,s,i)):Ul.D,ms(1),e?function Fde(n){return(0,Fr.N)((t,e)=>{let i=!1;t.subscribe((0,sr._)(e,r=>{i=!0,e.next(r)},()=>{i||e.next(n),e.complete()}))})}(t):Dde(()=>new $8))}const Qu=v(4999),o0=bn("SET_AMOUNT_OF_TOP_LABELS",{_as:"props",_p:void 0}),f2=bn("SET_COLOR_LABELS",{_as:"props",_p:void 0}),fx=bn("SET_EDGE_HEIGHT",{_as:"props",_p:void 0}),nR=bn("SET_SCREENSHOT_TO_CLIPBOARD_ENABLED",{_as:"props",_p:void 0}),iR=bn("SET_EXPERIMENTAL_FEATURES_ENABLED",{_as:"props",_p:void 0}),p2=bn("SET_ENABLE_FLOOR_LABELS",{_as:"props",_p:void 0}),A2=bn("SET_HIDE_FLAT_BUILDINGS",{_as:"props",_p:void 0}),m2=bn("SET_INVERT_AREA",{_as:"props",_p:void 0}),g2=bn("SET_INVERT_HEIGHT",{_as:"props",_p:void 0}),q8=bn("SET_IS_EDGE_METRIC_VISIBLE",{_as:"props",_p:void 0}),rR=bn("TOGGLE_IS_EDGE_METRIC_VISIBLE"),W8=bn("SET_IS_COLOR_METRIC_LINKED_TO_HEIGHT_METRIC",{_as:"props",_p:void 0}),X8=bn("TOGGLE_IS_COLOR_METRIC_LINKED_TO_HEIGHT_METRIC"),oR=bn("SET_PRESENTATION_MODE",{_as:"props",_p:void 0}),_2=bn("SET_IS_WHITE_BACKGROUND",{_as:"props",_p:void 0}),b2=bn("SET_LAYOUT_ALGORITHM",{_as:"props",_p:void 0}),v2=bn("SET_MAX_TREE_MAP_FILES",{_as:"props",_p:void 0}),sR=bn("SET_RESET_CAMERA_IF_NEW_FILE_IS_LOADED",{_as:"props",_p:void 0}),px=bn("SET_SCALING",{_as:"props",_p:void 0}),y2=bn("SET_SHARPNESS_MODE",{_as:"props",_p:void 0}),w2=bn("SET_SHOW_METRIC_LABEL_NAME_VALUE",{_as:"props",_p:void 0}),x2=bn("SET_SHOW_METRIC_LABEL_NODE_NAME",{_as:"props",_p:void 0}),C2=bn("SET_SHOW_ONLY_BUILDINGS_WITH_EDGES",{_as:"props",_p:void 0}),Zp=bn("SET_AREA_METRIC",{_as:"props",_p:void 0}),zu=bn("SET_COLOR_METRIC",{_as:"props",_p:void 0}),hf=bn("SET_COLOR_RANGE",{_as:"props",_p:void 0}),M2=bn("SET_DISTRIBUTION_METRIC",{_as:"props",_p:void 0}),Jp=bn("SET_EDGE_METRIC",{_as:"props",_p:void 0}),aR=bn("SET_ALL_FOCUSED_NODES",{_as:"props",_p:void 0}),lR=bn("FOCUS_NODE",{_as:"props",_p:void 0}),E2=bn("UNFOCUS_ALL_NODES"),cR=bn("UNFOCUS_NODE"),eA=bn("SET_HEIGHT_METRIC",{_as:"props",_p:void 0}),Ax=bn("SET_MARGIN",{_as:"props",_p:void 0}),s0=bn("SET_SEARCH_PATTERN",{_as:"props",_p:void 0}),dR=bn("SET_SORTING_OPTION",{_as:"props",_p:void 0}),K8=bn("SET_ATTRIBUTE_DESCRIPTORS",{_as:"props",_p:void 0}),Y8=bn("SET_ATTRIBUTE_TYPES",{_as:"props",_p:void 0}),Z8=bn("UPDATE_ATTRIBUTE_TYPE",{_as:"props",_p:void 0}),J8=bn("SET_BLACKLIST",{_as:"props",_p:void 0}),e6=bn("ADD_BLACKLIST_ITEM",{_as:"props",_p:void 0}),uR=bn("ADD_BLACKLIST_ITEMS",{_as:"props",_p:void 0}),hR=bn("REMOVE_BLACKLIST_ITEM",{_as:"props",_p:void 0}),t6=bn("ADD_BLACKLIST_ITEMS_IF_NOT_RESULTS_IN_EMPTY_MAP",{_as:"props",_p:void 0}),n6=bn("SET_EDGES",{_as:"props",_p:void 0}),mq=bn("ADD_EDGE",{_as:"props",_p:void 0}),gq=bn("REMOVE_EDGE",{_as:"props",_p:void 0}),fR=bn("SET_MARKED_PACKAGES",{_as:"props",_p:void 0}),S2=bn("MARK_PACKAGES",{_as:"props",_p:void 0}),pR=bn("UNMARK_PACKAGE",{_as:"props",_p:void 0});function _q(n,t){this.v=n,this.k=t}function bq(n){return new _q(n,0)}function T2(n){var t,e;function i(s,l){try{var u=n[s](l),f=u.value,p=f instanceof _q;Promise.resolve(p?f.v:f).then(function(m){if(p){var _="return"===s?"return":"next";if(!f.k||m.done)return i(_,m);m=n[_](m).value}r(u.done?"return":"normal",m)},function(m){i("throw",m)})}catch(m){r("throw",m)}}function r(s,l){switch(s){case"return":t.resolve({value:l,done:!0});break;case"throw":t.reject(l);break;default:t.resolve({value:l,done:!1})}(t=t.next)?i(t.key,t.arg):e=null}this._invoke=function(s,l){return new Promise(function(u,f){var p={key:s,arg:l,resolve:u,reject:f,next:null};e?e=e.next=p:(t=e=p,i(s,l))})},"function"!=typeof n.return&&(this.return=void 0)}T2.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},T2.prototype.next=function(n){return this._invoke("next",n)},T2.prototype.throw=function(n){return this._invoke("throw",n)},T2.prototype.return=function(n){return this._invoke("return",n)};const i6=(n,t)=>t.some(e=>n instanceof e);let vq,yq;const r6=new WeakMap,o6=new WeakMap,AR=new WeakMap;let s6={get(n,t,e){if(n instanceof IDBTransaction){if("done"===t)return r6.get(n);if("store"===t)return e.objectStoreNames[1]?void 0:e.objectStore(e.objectStoreNames[0])}return a0(n[t])},set:(n,t,e)=>(n[t]=e,!0),has:(n,t)=>n instanceof IDBTransaction&&("done"===t||"store"===t)||t in n};function wq(n){s6=n(s6)}function Ude(n){return"function"==typeof n?function Lde(n){return function Pde(){return yq||(yq=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(n)?function(...t){return n.apply(a6(this),t),a0(this.request)}:function(...t){return a0(n.apply(a6(this),t))}}(n):(n instanceof IDBTransaction&&function Nde(n){if(r6.has(n))return;const t=new Promise((e,i)=>{const r=()=>{n.removeEventListener("complete",s),n.removeEventListener("error",l),n.removeEventListener("abort",l)},s=()=>{e(),r()},l=()=>{i(n.error||new DOMException("AbortError","AbortError")),r()};n.addEventListener("complete",s),n.addEventListener("error",l),n.addEventListener("abort",l)});r6.set(n,t)}(n),i6(n,function Rde(){return vq||(vq=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}())?new Proxy(n,s6):n)}function a0(n){if(n instanceof IDBRequest)return function Ode(n){const t=new Promise((e,i)=>{const r=()=>{n.removeEventListener("success",s),n.removeEventListener("error",l)},s=()=>{e(a0(n.result)),r()},l=()=>{i(n.error),r()};n.addEventListener("success",s),n.addEventListener("error",l)});return AR.set(t,n),t}(n);if(o6.has(n))return o6.get(n);const t=Ude(n);return t!==n&&(o6.set(n,t),AR.set(t,n)),t}const a6=n=>AR.get(n),Hde=["get","getKey","getAll","getAllKeys","count"],Qde=["put","add","delete","clear"],l6=new Map;function xq(n,t){if(!(n instanceof IDBDatabase)||t in n||"string"!=typeof t)return;if(l6.get(t))return l6.get(t);const e=t.replace(/FromIndex$/,""),i=t!==e,r=Qde.includes(e);if(!(e in(i?IDBIndex:IDBObjectStore).prototype)||!r&&!Hde.includes(e))return;const s=function(){var l=Cn(function*(u,...f){const p=this.transaction(u,r?"readwrite":"readonly");let m=p.store;return i&&(m=m.index(f.shift())),(yield Promise.all([m[e](...f),r&&p.done]))[0]});return function(f){return l.apply(this,arguments)}}();return l6.set(t,s),s}wq(n=>({...n,get:(t,e,i)=>xq(t,e)||n.get(t,e,i),has:(t,e)=>!!xq(t,e)||n.has(t,e)}));const zde=["continue","continuePrimaryKey","advance"],Cq={},c6=new WeakMap,Mq=new WeakMap,Gde={get(n,t){if(!zde.includes(t))return n[t];let e=Cq[t];return e||(e=Cq[t]=function(...i){c6.set(this,Mq.get(this)[t](...i))}),e}};function jde(){return d6.apply(this,arguments)}function d6(){return d6=function kde(n){return function(){return new T2(n.apply(this,arguments))}}(function*(...n){let t=this;if(t instanceof IDBCursor||(t=yield bq(t.openCursor(...n))),!t)return;const e=new Proxy(t,Gde);for(Mq.set(e,t),AR.set(e,a6(t));t;)yield e,t=yield bq(c6.get(e)||t.continue()),c6.delete(e)}),d6.apply(this,arguments)}function Eq(n,t){return t===Symbol.asyncIterator&&i6(n,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&i6(n,[IDBIndex,IDBObjectStore])}wq(n=>({...n,get:(t,e,i)=>Eq(t,e)?jde:n.get(t,e,i),has:(t,e)=>Eq(t,e)||n.has(t,e)}));const $de="CodeCharta",qde=1,I2="ccstate",Sq="id",u6=1001;function h6(){return(h6=Cn(function*(n){const e=(yield m6()).transaction(I2,"readwrite");yield e.store.put({[Sq]:u6,state:n}),yield e.done})).apply(this,arguments)}function f6(){return p6.apply(this,arguments)}function p6(){return(p6=Cn(function*(){return(yield(yield m6()).get(I2,u6))?.state||null})).apply(this,arguments)}function A6(){return(A6=Cn(function*(){const t=(yield m6()).transaction(I2,"readwrite");yield t.store.delete(u6),yield t.done})).apply(this,arguments)}function m6(){return g6.apply(this,arguments)}function g6(){return(g6=Cn(function*(){return function Vde(n,t,{blocked:e,upgrade:i,blocking:r,terminated:s}={}){const l=indexedDB.open(n,t),u=a0(l);return i&&l.addEventListener("upgradeneeded",f=>{i(a0(l.result),f.oldVersion,f.newVersion,a0(l.transaction),f)}),e&&l.addEventListener("blocked",f=>e(f.oldVersion,f.newVersion,f)),u.then(f=>{s&&f.addEventListener("close",()=>s()),r&&f.addEventListener("versionchange",p=>r(p.oldVersion,p.newVersion,p))}).catch(()=>{}),u}($de,qde,{upgrade(n){n.objectStoreNames.contains(I2)||n.createObjectStore(I2,{keyPath:Sq})}})})).apply(this,arguments)}const Kde=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"}}}'),Yde=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"}}}');class tA{constructor(t,e,i){this.kind=t,this.value=e,this.error=i,this.hasValue="N"===t}observe(t){return Tq(this,t)}do(t,e,i){const{kind:r,value:s,error:l}=this;return"N"===r?t?.(s):"E"===r?e?.(l):i?.()}accept(t,e,i){var r;return(0,eo.T)(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?So(e):"E"===t?function Zde(n,t){const e=(0,eo.T)(n)?n:()=>n,i=r=>r.error(e());return new Xr.c(t?r=>t.schedule(i,0,r):i)}(()=>i):"C"===t?bh:0;if(!r)throw new TypeError(`Unexpected notification kind ${t}`);return r}static createNext(t){return new tA("N",t)}static createError(t){return new tA("E",void 0,t)}static createComplete(){return tA.completeNotification}}function Tq(n,t){var e,i,r;const{kind:s,value:l,error:u}=n;if("string"!=typeof s)throw new TypeError('Invalid notification, missing "kind"');"N"===s?null===(e=t.next)||void 0===e||e.call(t,l):"E"===s?null===(i=t.error)||void 0===i||i.call(t,u):null===(r=t.complete)||void 0===r||r.call(t)}function Iq(n){return(0,Fr.N)((t,e)=>{let s,i=null,r=!1;i=t.subscribe((0,sr._)(e,void 0,void 0,l=>{s=Pr(n(l,Iq(n)(t))),i?(i.unsubscribe(),i=null,s.subscribe(e)):r=!0})),r&&(i.unsubscribe(),i=null,s.subscribe(e))})}function Fq(n,t,e,i){return(0,Fr.N)((r,s)=>{let l;t&&"function"!=typeof t?({duration:e,element:l,connector:i}=t):l=t;const u=new Map,f=F=>{u.forEach(F),F(s)},p=F=>f(D=>D.error(F));let m=0,_=!1;const b=new sr.H(s,F=>{try{const D=n(F);let T=u.get(D);if(!T){u.set(D,T=i?i():new Ai.B);const I=function w(F,D){const T=new Xr.c(I=>{m++;const O=D.subscribe(I);return()=>{O.unsubscribe(),0==--m&&_&&b.unsubscribe()}});return T.key=F,T}(D,T);if(s.next(I),e){const O=(0,sr._)(T,()=>{T.complete(),O?.unsubscribe()},void 0,void 0,()=>u.delete(D));b.add(Pr(e(I)).subscribe(O))}}T.next(l?l(F):F)}catch(D){p(D)}},()=>f(F=>F.complete()),p,()=>u.clear(),()=>(_=!0,0===m));r.subscribe(b)})}function Dq(n,t){return t?e=>e.pipe(Dq((i,r)=>Pr(n(i,r)).pipe((0,$n.T)((s,l)=>t(i,s,r,l))))):(0,Fr.N)((e,i)=>{let r=0,s=null,l=!1;e.subscribe((0,sr._)(i,u=>{s||(s=(0,sr._)(i,void 0,()=>{s=null,l&&i.complete()}),Pr(n(u,r++)).subscribe(s))},()=>{l=!0,!s&&i.complete()}))})}tA.completeNotification=new tA("C");const nue={dispatch:!0,functional:!1,useEffectsErrorHandler:!0},mR="__@ngrx/effects_create__";function os(n,t={}){const e=t.functional?n:n(),i={...nue,...t};return Object.defineProperty(e,mR,{value:i}),e}function kq(n){return Object.getPrototypeOf(n)}function _6(n){return"function"==typeof n}function aue(n,t,e){const i=kq(n),s=i&&"Object"!==i.constructor.name?i.constructor.name:null,l=function Bq(n){return function iue(n){return Object.getOwnPropertyNames(n).filter(i=>!(!n[i]||!n[i].hasOwnProperty(mR))&&n[i][mR].hasOwnProperty("dispatch")).map(i=>({propertyName:i,...n[i][mR]}))}(n)}(n).map(({propertyName:u,dispatch:f,useEffectsErrorHandler:p})=>{const m="function"==typeof n[u]?n[u]():n[u],_=p?e(m,t):m;return!1===f?_.pipe(Y$()):_.pipe(function eue(){return(0,Fr.N)((n,t)=>{n.subscribe((0,sr._)(t,e=>{t.next(tA.createNext(e))},()=>{t.next(tA.createComplete()),t.complete()},e=>{t.next(tA.createError(e)),t.complete()}))})}()).pipe((0,$n.T)(w=>({effect:n[u],notification:w,propertyName:u,sourceName:s,sourceInstance:n})))});return Wl(...l)}function Rq(n,t,e=10){return n.pipe(Iq(i=>(t&&t.handleError(i),e<=1?n:Rq(n,t,e-1))))}let nA=(()=>{class n extends Xr.c{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)(o.KVO(Cc))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function ff(...n){return ur(t=>n.some(e=>"string"==typeof e?e===t.type:e.type===t.type))}new o.nKC("@ngrx/effects Internal Root Guard"),new o.nKC("@ngrx/effects User Provided Effects"),new o.nKC("@ngrx/effects Internal Root Effects"),new o.nKC("@ngrx/effects Internal Root Effects Instances"),new o.nKC("@ngrx/effects Internal Feature Effects"),new o.nKC("@ngrx/effects Internal Feature Effects Instance Groups");const due=new o.nKC("@ngrx/effects Effects Error Handler",{providedIn:"root",factory:()=>Rq}),uue=bn("@ngrx/effects/init");function yue(n){return b6(n,"ngrxOnInitEffects")}function b6(n,t){return n&&t in n&&"function"==typeof n[t]}let Pq=(()=>{class n extends Ai.B{constructor(e,i){super(),this.errorHandler=e,this.effectsErrorHandler=i}addEffects(e){this.next(e)}toActions(){return this.pipe(Fq(e=>function rue(n){return!!n.constructor&&"Object"!==n.constructor.name&&"Function"!==n.constructor.name}(e)?kq(e):e),Ys(e=>e.pipe(Fq(wue))),Ys(e=>{const i=e.pipe(Dq(s=>function xue(n,t){return e=>{const i=aue(e,n,t);return function bue(n){return b6(n,"ngrxOnRunEffects")}(e)?e.ngrxOnRunEffects(i):i}}(this.errorHandler,this.effectsErrorHandler)(s)),(0,$n.T)(s=>(function hue(n,t){if("N"===n.notification.kind){const e=n.notification.value;!function fue(n){return"function"!=typeof n&&n&&n.type&&"string"==typeof n.type}(e)&&t.handleError(new Error(`Effect ${function pue({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 Aue(n){try{return JSON.stringify(n)}catch{return n}}(e)}`))}}(s,this.errorHandler),s.notification)),ur(s=>"N"===s.kind&&null!=s.value),function tue(){return(0,Fr.N)((n,t)=>{n.subscribe((0,sr._)(t,e=>Tq(e,t)))})}());return Wl(i,e.pipe(ms(1),ur(yue),(0,$n.T)(s=>s.ngrxOnInitEffects())))}))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(o.zcH),o.KVO(due))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function wue(n){return function gue(n){return b6(n,"ngrxOnIdentifyEffects")}(n)?n.ngrxOnIdentifyEffects():""}let Oq=(()=>{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)(o.KVO(Pq),o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const Mue=[Jp,eA,zu,Zp,Au];var Gc=function(n){return n.areaMetric="area",n.heightMetric="height",n.colorMetric="color",n.edgeMetric="edge",n.currentFilesAreSampleFiles="currentFilesAreSampleFiles",n}(Gc||{});let Eue=(()=>{class n{constructor(e,i,r,s){this.loadInitialFileService=e,this.actions$=i,this.state=r,this.store=s,this.saveMetricsInQueryParameters$=os(()=>this.actions$.pipe(ff(...Mue),hl(this.store.select(Aa)),(0,$n.T)(l=>l[1].edgeMetricData&&l[1].edgeMetricData.length>0),M_(100),ao(l=>{this.updateMetricQueryParameters(l)})),{dispatch:!1})}updateMetricQueryParameters(e){const i=this.state.getValue(),{edgeMetric:r,heightMetric:s,colorMetric:l,areaMetric:u}=i.dynamicSettings;this.loadInitialFileService.checkFileQueryParameterPresent()&&(this.addOrUpdateQueryParameter(Gc.areaMetric,u),this.addOrUpdateQueryParameter(Gc.heightMetric,s),this.addOrUpdateQueryParameter(Gc.colorMetric,l),e?this.addOrUpdateQueryParameter(Gc.edgeMetric,r):this.deleteQueryParameterIfExists(Gc.edgeMetric),i.appStatus.currentFilesAreSampleFiles?this.addOrUpdateQueryParameter(Gc.currentFilesAreSampleFiles,!0):this.deleteQueryParameterIfExists(Gc.currentFilesAreSampleFiles))}addOrUpdateQueryParameter(e,i){const r=new URL(window.location.href),s=r.search.slice(1),l=s.length>0?s.split("&"):[],u=[];let f=!1;for(const p of l)p.split("=")[0]===e?(u.push(`${e}=${encodeURIComponent(i)}`),f=!0):u.push(p);f||u.push(`${e}=${encodeURIComponent(i)}`),r.search=u.join("&"),window.history.replaceState(null,"",r.toString())}deleteQueryParameterIfExists(e){const i=new URL(window.location.href),r=i.search.slice(1),s=r.length>0?r.split("&"):[],l=[];for(const u of s){const[f,p]=u.split("=");f!==e&&l.push(`${f}=${p}`)}i.search=l.join("&"),window.history.replaceState(null,"",i.toString())}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(E6),o.KVO(nA),o.KVO(Vi),o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();function Nq(n,t){const e="object"==typeof t;return new Promise((i,r)=>{const s=new B8.Ms({next:l=>{i(l),s.unsubscribe()},error:r,complete:()=>{e?i(t.defaultValue):r(new $8)}});n.subscribe(s)})}class Lq{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 Cn(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=Cn(function*(s){return t.getFileDataFromFile(s)});return function(s){return r.apply(this,arguments)}}()))})()}getFileDataFromFile(t){var e=this;return Cn(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 Cn(function*(){const i=yield Nq(e.httpClient.get(t,{responseType:"arraybuffer",observe:"response"}));if(i.status>=200&&i.status<300){const l=XI(sb(i.body,{to:"string"}));return{fileName:e.getFileName(t,l.projectName),fileSize:13,content:l}}throw new Error(`Could not load file "${t}"`)})()}getFile(t){var e=this;return Cn(function*(){const i=yield Nq(e.httpClient.get(t,{observe:"response"}));if(i.status>=200&&i.status<300){const s=XI(i.body);return{fileName:t=e.getFileName(t,s.projectName),fileSize:15,content:s}}throw new Error(`Could not load file "${t}"`)})()}getFileName(t,e){return e?.trim()||t.split("/").pop()}}function Uq(n){return(0,Fr.N)((t,e)=>{try{t.subscribe(e)}finally{e.add(n)}})}class gR{}class _R{}class Od{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),s=r.toLowerCase(),l=e.slice(i+1).trim();this.maybeSetNormalizedName(r,s),this.headers.has(s)?this.headers.get(s).push(l):this.headers.set(s,[l])}})}: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 Od?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 Od;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof Od?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 s=t.value;if(s){let l=this.headers.get(e);if(!l)return;l=l.filter(u=>-1===s.indexOf(u)),0===l.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,l)}else this.headers.delete(e),this.normalizedNames.delete(e)}}setHeaderEntries(t,e){const i=(Array.isArray(e)?e:[e]).map(s=>s.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 Tue{encodeKey(t){return Vq(t)}encodeValue(t){return Vq(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const Fue=/%(\d[a-f0-9])/gi,Due={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function Vq(n){return encodeURIComponent(n).replace(Fue,(t,e)=>Due[e]??t)}function bR(n){return`${n}`}class l0{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new Tue,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function Iue(n,t){const e=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(r=>{const s=r.indexOf("="),[l,u]=-1==s?[t.decodeKey(r),""]:[t.decodeKey(r.slice(0,s)),t.decodeValue(r.slice(s+1))],f=e.get(l)||[];f.push(u),e.set(l,f)}),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(bR):[bR(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(s=>{e.push({param:i,value:s,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 l0({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(bR(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(bR(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 Bue{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 Hq(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer}function Qq(n){return typeof Blob<"u"&&n instanceof Blob}function zq(n){return typeof FormData<"u"&&n instanceof FormData}class F2{constructor(t,e,i,r){let s;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function kue(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,s=r):s=i,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params),this.transferCache=s.transferCache),this.headers??=new Od,this.context??=new Bue,this.params){const l=this.params.toString();if(0===l.length)this.urlWithParams=e;else{const u=e.indexOf("?");this.urlWithParams=e+(-1===u?"?":ub.set(w,t.setHeaders[w]),p)),t.setParams&&(m=Object.keys(t.setParams).reduce((b,w)=>b.set(w,t.setParams[w]),m)),new F2(e,i,l,{params:m,headers:p,context:_,reportProgress:f,responseType:r,withCredentials:u,transferCache:s})}}var c0=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}(c0||{});class v6{constructor(t,e=200,i="OK"){this.headers=t.headers||new Od,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 vR extends v6{constructor(t={}){super(t),this.type=c0.ResponseHeader}clone(t={}){return new vR({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 rv extends v6{constructor(t={}){super(t),this.type=c0.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new rv({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 mx extends v6{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}}function y6(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 w6=(()=>{class n{constructor(e){this.handler=e}request(e,i,r={}){let s;if(e instanceof F2)s=e;else{let f,p;f=r.headers instanceof Od?r.headers:new Od(r.headers),r.params&&(p=r.params instanceof l0?r.params:new l0({fromObject:r.params})),s=new F2(e,i,void 0!==r.body?r.body:null,{headers:f,context:r.context,params:p,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials,transferCache:r.transferCache})}const l=So(s).pipe(function Sue(n,t){return(0,eo.T)(t)?Ys(n,t,1):Ys(n,1)}(f=>this.handler.handle(f)));if(e instanceof F2||"events"===r.observe)return l;const u=l.pipe(ur(f=>f instanceof rv));switch(r.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return u.pipe((0,$n.T)(f=>{if(null!==f.body&&!(f.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return f.body}));case"blob":return u.pipe((0,$n.T)(f=>{if(null!==f.body&&!(f.body instanceof Blob))throw new Error("Response is not a Blob.");return f.body}));case"text":return u.pipe((0,$n.T)(f=>{if(null!==f.body&&"string"!=typeof f.body)throw new Error("Response is not a string.");return f.body}));default:return u.pipe((0,$n.T)(f=>f.body))}case"response":return u;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 l0).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,y6(r,i))}post(e,i,r={}){return this.request("POST",e,y6(r,i))}put(e,i,r={}){return this.request("PUT",e,y6(r,i))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(gR))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const Nue=/^\)\]\}',?\n/;function jq(n){if(n.url)return n.url;const t="X-Request-URL".toLocaleLowerCase();return n.headers.get(t)}let x6=(()=>{class n{constructor(){this.fetchImpl=(0,o.WQX)(Uue,{optional:!0})?.fetch??((...e)=>globalThis.fetch(...e)),this.ngZone=(0,o.WQX)(o.SKi)}handle(e){return new Xr.c(i=>{const r=new AbortController;return this.doRequest(e,r.signal,i).then(C6,s=>i.error(new mx({error:s}))),()=>r.abort()})}doRequest(e,i,r){var s=this;return Cn(function*(){const l=s.createRequestInit(e);let u;try{const F=s.ngZone.runOutsideAngular(()=>s.fetchImpl(e.urlWithParams,{signal:i,...l}));(function Vue(n){n.then(C6,C6)})(F),r.next({type:c0.Sent}),u=yield F}catch(F){return void r.error(new mx({error:F,status:F.status??0,statusText:F.statusText,url:e.urlWithParams,headers:F.headers}))}const f=new Od(u.headers),p=u.statusText,m=jq(u)??e.urlWithParams;let _=u.status,b=null;if(e.reportProgress&&r.next(new vR({headers:f,status:_,statusText:p,url:m})),u.body){const F=u.headers.get("content-length"),D=[],T=u.body.getReader();let O,R,I=0;const P=typeof Zone<"u"&&Zone.current;yield s.ngZone.runOutsideAngular(Cn(function*(){for(;;){const{done:J,value:te}=yield T.read();if(J)break;if(D.push(te),I+=te.length,e.reportProgress){R="text"===e.responseType?(R??"")+(O??=new TextDecoder).decode(te,{stream:!0}):void 0;const ie=()=>r.next({type:c0.DownloadProgress,total:F?+F:void 0,loaded:I,partialText:R});P?P.run(ie):ie()}}}));const ee=s.concatChunks(D,I);try{const J=u.headers.get("Content-Type")??"";b=s.parseBody(e,ee,J)}catch(J){return void r.error(new mx({error:J,headers:new Od(u.headers),status:u.status,statusText:u.statusText,url:jq(u)??e.urlWithParams}))}}0===_&&(_=b?200:0),_>=200&&_<300?(r.next(new rv({body:b,headers:f,status:_,statusText:p,url:m})),r.complete()):r.error(new mx({error:b,headers:f,status:_,statusText:p,url:m}))})()}parseBody(e,i,r){switch(e.responseType){case"json":const s=(new TextDecoder).decode(i).replace(Nue,"");return""===s?null:JSON.parse(s);case"text":return(new TextDecoder).decode(i);case"blob":return new Blob([i],{type:r});case"arraybuffer":return i.buffer}}createRequestInit(e){const i={},r=e.withCredentials?"include":void 0;if(e.headers.forEach((s,l)=>i[s]=l.join(",")),e.headers.has("Accept")||(i.Accept="application/json, text/plain, */*"),!e.headers.has("Content-Type")){const s=e.detectContentTypeHeader();null!==s&&(i["Content-Type"]=s)}return{body:e.serializeBody(),method:e.method,headers:i,credentials:r}}concatChunks(e,i){const r=new Uint8Array(i);let s=0;for(const l of e)r.set(l,s),s+=l.length;return r}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();class Uue{}function C6(){}function $q(n,t){return t(n)}function Hue(n,t){return(e,i)=>t.intercept(e,{handle:r=>n(r,i)})}const zue=new o.nKC(""),D2=new o.nKC(""),qq=new o.nKC(""),Wq=new o.nKC("",{providedIn:"root",factory:()=>!0});function Gue(){let n=null;return(t,e)=>{null===n&&(n=((0,o.WQX)(zue,{optional:!0})??[]).reduceRight(Hue,$q));const i=(0,o.WQX)(o.TgB);if((0,o.WQX)(Wq)){const s=i.add();return n(t,e).pipe(Uq(()=>i.remove(s)))}return n(t,e)}}let Xq=(()=>{class n extends gR{constructor(e,i){super(),this.backend=e,this.injector=i,this.chain=null,this.pendingTasks=(0,o.WQX)(o.TgB),this.contributeToStability=(0,o.WQX)(Wq)}handle(e){if(null===this.chain){const i=Array.from(new Set([...this.injector.get(D2),...this.injector.get(qq,[])]));this.chain=i.reduceRight((r,s)=>function Que(n,t,e){return(i,r)=>(0,o.N4e)(e,()=>t(i,s=>n(s,r)))}(r,s,this.injector),$q)}if(this.contributeToStability){const i=this.pendingTasks.add();return this.chain(e,r=>this.backend.handle(r)).pipe(Uq(()=>this.pendingTasks.remove(i)))}return this.chain(e,i=>this.backend.handle(i))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(_R),o.KVO(o.uvJ))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const Xue=/^\)\]\}',?\n/;let Yq=(()=>{class n{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new o.wOt(-2800,!1);const i=this.xhrFactory;return(i.\u0275loadImpl?aa(i.\u0275loadImpl()):So(null)).pipe(Xp(()=>new Xr.c(s=>{const l=i.build();if(l.open(e.method,e.urlWithParams),e.withCredentials&&(l.withCredentials=!0),e.headers.forEach((D,T)=>l.setRequestHeader(D,T.join(","))),e.headers.has("Accept")||l.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const D=e.detectContentTypeHeader();null!==D&&l.setRequestHeader("Content-Type",D)}if(e.responseType){const D=e.responseType.toLowerCase();l.responseType="json"!==D?D:"text"}const u=e.serializeBody();let f=null;const p=()=>{if(null!==f)return f;const D=l.statusText||"OK",T=new Od(l.getAllResponseHeaders()),I=function Kue(n){return"responseURL"in n&&n.responseURL?n.responseURL:/^X-Request-URL:/m.test(n.getAllResponseHeaders())?n.getResponseHeader("X-Request-URL"):null}(l)||e.url;return f=new vR({headers:T,status:l.status,statusText:D,url:I}),f},m=()=>{let{headers:D,status:T,statusText:I,url:O}=p(),R=null;204!==T&&(R=typeof l.response>"u"?l.responseText:l.response),0===T&&(T=R?200:0);let P=T>=200&&T<300;if("json"===e.responseType&&"string"==typeof R){const ee=R;R=R.replace(Xue,"");try{R=""!==R?JSON.parse(R):null}catch(J){R=ee,P&&(P=!1,R={error:J,text:R})}}P?(s.next(new rv({body:R,headers:D,status:T,statusText:I,url:O||void 0})),s.complete()):s.error(new mx({error:R,headers:D,status:T,statusText:I,url:O||void 0}))},_=D=>{const{url:T}=p(),I=new mx({error:D,status:l.status||0,statusText:l.statusText||"Unknown Error",url:T||void 0});s.error(I)};let b=!1;const w=D=>{b||(s.next(p()),b=!0);let T={type:c0.DownloadProgress,loaded:D.loaded};D.lengthComputable&&(T.total=D.total),"text"===e.responseType&&l.responseText&&(T.partialText=l.responseText),s.next(T)},F=D=>{let T={type:c0.UploadProgress,loaded:D.loaded};D.lengthComputable&&(T.total=D.total),s.next(T)};return l.addEventListener("load",m),l.addEventListener("error",_),l.addEventListener("timeout",_),l.addEventListener("abort",_),e.reportProgress&&(l.addEventListener("progress",w),null!==u&&l.upload&&l.upload.addEventListener("progress",F)),l.send(u),s.next({type:c0.Sent}),()=>{l.removeEventListener("error",_),l.removeEventListener("abort",_),l.removeEventListener("load",m),l.removeEventListener("timeout",_),e.reportProgress&&(l.removeEventListener("progress",w),null!==u&&l.upload&&l.upload.removeEventListener("progress",F)),l.readyState!==l.DONE&&l.abort()}})))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(ol))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const M6=new o.nKC(""),Zq=new o.nKC("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),Jq=new o.nKC("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class eW{}let Jue=(()=>{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=io(e,this.cookieName),this.lastCookieString=e),this.lastToken}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(V),o.KVO(o.Agw),o.KVO(Zq))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();function ehe(n,t){const e=n.url.toLowerCase();if(!(0,o.WQX)(M6)||"GET"===n.method||"HEAD"===n.method||e.startsWith("http://")||e.startsWith("https://"))return t(n);const i=(0,o.WQX)(eW).getToken(),r=(0,o.WQX)(Jq);return null!=i&&!n.headers.has(r)&&(n=n.clone({headers:n.headers.set(r,i)})),t(n)}var d0=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}(d0||{});const tW=new o.nKC(""),wR={fileName:"sample1.cc.json",fileSize:3072,content:Kde},xR={fileName:"sample2.cc.json",fileSize:2048,content:Yde};let E6=(()=>{class n{constructor(e,i,r,s,l){this.store=e,this.state=i,this.dialog=r,this.loadFileService=s,this.httpClient=l,this.urlUtils=new Lq(this.httpClient)}loadFilesOrSampleFiles(){var e=this;return Cn(function*(){yield e.checkFileQueryParameterPresent()?e.loadFilesFromQueryParams():e.loadFilesFromIndexedDB()})()}checkFileQueryParameterPresent(){return!!this.urlUtils.getParameterByName("file")}loadFilesFromQueryParams(){var e=this;return Cn(function*(){try{const i=yield e.urlUtils.getFileDataFromQueryParam(),r=yield f6();if(!r)return e.loadFileService.loadFiles(i),void e.setRenderStateFromUrl();const s=r.files,l=s.map(p=>dF(p.file)),u=i.map(p=>p.content.fileChecksum),f=l.map(p=>p.content.fileChecksum);Qu(u)===Qu(f)?e.applySettingsAndFilesFromSavedState(s,r,l):e.applySettingsFromSavedState(r,i),e.setRenderStateFromUrl()}catch(i){yield e.handleErrorLoadFilesFromQueryParams(i)}finally{e.setMetricsFromUrl(),e.setCurrentFilesAreSampleFilesFromUrl()}})()}applySettingsAndFilesFromSavedState(e,i,r){const s=[];i.appSettings.resetCameraIfNewFileIsLoaded||this.store.dispatch({type:"StartWithGlobalOption:resetCameraIfNewFileIsLoadedSetToFalse"});const l=this.applyAppSettings(i.appSettings);s.push(...l),this.loadFileService.loadFiles(r),this.store.dispatch(S({value:e}));const u=this.applyFileSettings(i.fileSettings);s.push(...u);const f=this.applyDynamicSettings(i.dynamicSettings);s.push(...f),s.length>0&&this.showErrorDialogForMissingProperties(s)}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 Cn(function*(){if(e.message!==Ch){const r="File(s) could not be loaded from the given file URL parameter. Loaded sample files instead.",s=i.createTitleUrlErrorDialog(e);i.showErrorDialog(r,s)}yield i.loadSampleFiles()})()}loadFilesFromIndexedDB(){var e=this;return Cn(function*(){try{const i=yield f6();if(!i)return void(yield e.loadSampleFiles());const r=i.files,s=r.map(l=>dF(l.file));e.applySettingsAndFilesFromSavedState(r,i,s)}catch(i){yield e.handleErrorLoadFilesFromIndexedDB(i)}})()}handleErrorLoadFilesFromIndexedDB(e){var i=this;return Cn(function*(){e.message!==Ch&&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 Cn(function*(){const r=e.fileSettings,s=e.dynamicSettings,l=e.appSettings,u=[];if(r){const f=i.applyFileSettings(r);u.push(...f)}if(s){const f=i.applyDynamicSettings(s);u.push(...f)}if(l){const f=i.applyAppSettings(l);u.push(...f)}u.length>0&&i.showErrorDialogForMissingProperties(u)})()}applyFileSettings(e){const i=this.state.getValue().fileSettings,r=[];for(const[s,l]of Object.entries(i))s in e?Qu(l)!==Qu(e[s])&&this.mapFileSettingToAction(s,e[s]):r.push(s);return r}applyDynamicSettings(e){const i=this.state.getValue().dynamicSettings,r=[];for(const[s,l]of Object.entries(i))s in e?Qu(l)!==Qu(e[s])&&this.mapDynamicSettingToAction(s,e[s]):r.push(s);return r}applyAppSettings(e){const i=this.state.getValue().appSettings,r=[];for(const[s,l]of Object.entries(i))s in e?Qu(l)!==Qu(e[s])&&this.mapAppSettingToAction(s,e[s]):r.push(s);return r}mapFileSettingToAction(e,i){switch(e){case"attributeTypes":this.store.dispatch(Y8({value:i}));break;case"attributeDescriptors":this.store.dispatch(K8({value:i}));break;case"blacklist":this.store.dispatch(J8({value:i}));break;case"edges":this.store.dispatch(n6({value:i}));break;case"markedPackages":this.store.dispatch(fR({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}mapDynamicSettingToAction(e,i){switch(e){case"areaMetric":this.store.dispatch(Zp({value:i}));break;case"heightMetric":this.store.dispatch(eA({value:i}));break;case"edgeMetric":this.store.dispatch(Jp({value:i}));break;case"colorMetric":this.store.dispatch(zu({value:i}));break;case"colorMode":this.store.dispatch(hx({value:i}));break;case"sortingOption":this.store.dispatch(dR({value:i}));break;case"colorRange":this.store.dispatch(hf({value:i}));break;case"distributionMetric":this.store.dispatch(M2({value:i}));break;case"focusedNodePath":this.store.dispatch(aR({value:i}));break;case"searchPattern":this.store.dispatch(s0({value:i}));break;case"margin":this.store.dispatch(Ax({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}mapAppSettingToAction(e,i){switch(e){case"amountOfTopLabels":case"amountOfEdgePreviews":this.store.dispatch(o0({value:i}));break;case"edgeHeight":this.store.dispatch(fx({value:i}));break;case"scaling":this.store.dispatch(px({value:i}));break;case"hideFlatBuildings":this.store.dispatch(A2({value:i}));break;case"invertHeight":this.store.dispatch(g2({value:i}));break;case"invertArea":this.store.dispatch(m2({value:i}));break;case"isWhiteBackground":this.store.dispatch(_2({value:i}));break;case"mapColors":this.store.dispatch(Wp({value:i}));break;case"isPresentationMode":this.store.dispatch(oR({value:i}));break;case"showOnlyBuildingsWithEdges":this.store.dispatch(C2({value:i}));break;case"isEdgeMetricVisible":this.store.dispatch(q8({value:i}));break;case"resetCameraIfNewFileIsLoaded":this.store.dispatch(sR({value:i}));break;case"isLoadingMap":this.store.dispatch(ph({value:i}));break;case"isLoadingFile":this.store.dispatch(Ec({value:i}));break;case"sortingOrderAscending":case"isSearchPanelPinned":break;case"showMetricLabelNameValue":this.store.dispatch(w2({value:i}));break;case"showMetricLabelNodeName":this.store.dispatch(x2({value:i}));break;case"layoutAlgorithm":this.store.dispatch(b2({value:i}));break;case"maxTreeMapFiles":this.store.dispatch(v2({value:i}));break;case"sharpnessMode":this.store.dispatch(y2({value:i}));break;case"experimentalFeaturesEnabled":this.store.dispatch(iR({value:i}));break;case"screenshotToClipboardEnabled":this.store.dispatch(nR({value:i}));break;case"colorLabels":this.store.dispatch(f2({value:i}));break;case"isColorMetricLinkedToHeightMetric":this.store.dispatch(W8({value:i}));break;case"enableFloorLabels":this.store.dispatch(p2({value:i}));break;default:throw new Error(`Unhandled key: ${e}`)}}buildMissingPropertiesMessage(e){return`${$I(' ',e)}`}loadSampleFiles(){var e=this;return Cn(function*(){try{const i=yield f6();i&&e.applyAllSettings(i),e.loadFileService.loadFiles([wR,xR])}catch{e.loadFileService.loadFiles([wR,xR])}e.store.dispatch(Au({value:!0}))})()}showErrorDialog(e,i){this.dialog.open(uu,{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(Gc.areaMetric),i=this.urlUtils.getParameterByName(Gc.heightMetric),r=this.urlUtils.getParameterByName(Gc.colorMetric),s=this.urlUtils.getParameterByName(Gc.edgeMetric),l=this.state.getValue(),u=Aa(l).nodeMetricData,f=Aa(l).edgeMetricData;if(!u)return;const p=new Set(u.map(_=>_.name)),m=f.map(_=>_.name);e&&p.has(e)&&this.store.dispatch(Zp({value:e})),i&&p.has(i)&&this.store.dispatch(eA({value:i})),r&&p.has(r)&&this.store.dispatch(zu({value:r})),s&&m.includes(s)&&this.store.dispatch(Jp({value:s}))}setRenderStateFromUrl(){const e=this.urlUtils.getParameterByName("mode"),i=function Are(n){return n.map(t=>t.file)}(this.state.getValue().files);"Delta"===e&&i.length>=2&&this.store.dispatch(tt({referenceFile:i[0],comparisonFile:i[1]}))}setCurrentFilesAreSampleFilesFromUrl(){const e=this.urlUtils.getParameterByName(Gc.currentFilesAreSampleFiles);e&&"true"===e&&this.store.dispatch(Au({value:!0}))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(Vi),o.KVO(Cs),o.KVO(mu),o.KVO(w6))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const gx=sn(Hc,n=>n.areaMetric),B2=sn(Hc,n=>n.heightMetric),Ahe=sn(yn,n=>aG(n)),cW=sn(Aa,gx,Gg,B2,(n,t,e,i)=>((n,t)=>t.every(e=>((n,t)=>n.some(e=>e.name===t))(n,e)))(n.nodeMetricData,[t,e,i])),mhe=sn(Hc,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)),ghe=(sn(Aa,Ahe,cW,mhe,(n,t,e,i)=>!(null===n.nodeMetricData||!t||!e||!i)),n=>n.some(t=>"rloc"===t.name)?"rloc":"unary"),_he=["rloc","real_lines_of_code","loc","lines_of_code","lines","statements","functions"],dW=["complexity","mcc","cognitive_complexity","sonar_complexity","sonar_cognitive_complexity","max_nesting_level","indentation_level"];function bhe(n){return n.some(t=>t.maxValue>0)}let whe=(()=>{class n{constructor(e){this.store=e,this.resetChosenDistributionMetric$=os(()=>this.store.select(Aa).pipe((0,$n.T)(i=>i.nodeMetricData),ur(bhe),hl(this.store.select(cW)),ur(([,i])=>!i),ao(([i])=>{uW(this.store,i)})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();function uW(n,t){n.dispatch(M2({value:ghe(t)}));let[e,i,r]=function yhe(n){const t=[],e={AreaMetric:_he,HeightMetric:dW,ColorMetric:dW},i=new Set(n.map(r=>r.name));for(const r in e)for(const s of e[r])if(i.has(s)){t.push(s);break}return t}(t);(!e||!i||!r)&&([e,i,r]=function vhe(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(Zp({value:e})),n.dispatch(eA({value:i})),n.dispatch(zu({value:r}))}const _x=bn("SET_STATE",{_as:"props",_p:void 0}),S6={positive:!1,negative:!1,neutral:!1},Che=Fi(S6,vn(f2,g3(S6))),Mhe=Fi(!0,vn(x2,xr(!0))),I6=!1,Ehe=Fi(I6,vn(w2,xr(I6))),hW=bn("SET_SORTING_ORDER_ASCENDING",{_as:"props",_p:void 0}),F6=bn("TOGGLE_SORTING_ORDER_ASCENDING"),She=Fi(!0,vn(hW,xr(!0)),vn(F6,n=>!n)),The=Fi(!0,vn(Ec,xr(!0))),Ihe=Fi(!0,vn(ph,xr(!0))),Fhe=Fi(!0,vn(sR,xr(!0))),P6=!1,Dhe=Fi(P6,vn(C2,xr(P6))),O6=!1,Bhe=Fi(O6,vn(_2,xr(O6))),N6=!1,khe=Fi(N6,vn(g2,xr(N6))),L6=!1,Rhe=Fi(L6,vn(A2,xr(L6))),CR={x:1,y:1,z:1},Phe=Fi(CR,vn(px,g3(CR))),Ohe=Fi(4,vn(fx,xr(4))),k2=bn("SET_AMOUNT_OF_EDGE_PREVIEWS",{_as:"props",_p:void 0}),Nhe=Fi(1,vn(k2,xr(1))),Lhe=Fi(1,vn(o0,xr(1))),U6=!1,Uhe=Fi(U6,vn(oR,xr(U6))),V6=!1,Vhe=Fi(V6,vn(iR,xr(V6))),H6=ja.SquarifiedTreeMap,Hhe=Fi(H6,vn(b2,xr(H6))),Qhe=Fi(100,vn(v2,xr(100))),z6=fd.Standard,zhe=Fi(z6,vn(y2,xr(z6))),G6=!1,Ghe=Fi(G6,vn(nR,xr(G6))),j6=!1,jhe=Fi(j6,vn(m2,xr(j6))),$he=Fi(!0,vn(q8,(n,t)=>t.value),vn(rR,n=>!n)),qhe=Fi(!1,vn(W8,(n,t)=>t.value),vn(X8,n=>!n)),AW=bn("SET_IS_FILE_EXPLORER_PINNED",{_as:"props",_p:void 0}),$6=bn("TOGGLE_IS_FILE_EXPLORER_PINNED"),q6=!1,Khe=Sa({colorLabels:Che,showMetricLabelNodeName:Mhe,showMetricLabelNameValue:Ehe,sortingOrderAscending:She,isSearchPanelPinned:Fi(q6,vn(AW,xr(q6)),vn($6,n=>!n)),isLoadingFile:The,isLoadingMap:Ihe,mapColors:eoe,resetCameraIfNewFileIsLoaded:Fhe,showOnlyBuildingsWithEdges:Dhe,isEdgeMetricVisible:$he,isWhiteBackground:Bhe,invertHeight:khe,invertArea:jhe,hideFlatBuildings:Rhe,scaling:Phe,edgeHeight:Ohe,amountOfEdgePreviews:Nhe,amountOfTopLabels:Lhe,isPresentationMode:Uhe,experimentalFeaturesEnabled:Vhe,screenshotToClipboardEnabled:Ghe,layoutAlgorithm:Hhe,maxTreeMapFiles:Qhe,sharpnessMode:zhe,isColorMetricLinkedToHeightMetric:qhe,enableFloorLabels:Fi(!0,vn(p2,xr(!0)))}),Yhe={colorLabels:S6,showMetricLabelNodeName:!0,showMetricLabelNameValue:I6,sortingOrderAscending:!0,isSearchPanelPinned:q6,isLoadingFile:!0,isLoadingMap:!0,mapColors:af,resetCameraIfNewFileIsLoaded:!0,showOnlyBuildingsWithEdges:P6,isEdgeMetricVisible:!0,isWhiteBackground:O6,invertHeight:N6,invertArea:j6,hideFlatBuildings:L6,scaling:CR,edgeHeight:4,amountOfEdgePreviews:1,amountOfTopLabels:1,isPresentationMode:U6,experimentalFeaturesEnabled:V6,screenshotToClipboardEnabled:G6,layoutAlgorithm:H6,maxTreeMapFiles:100,sharpnessMode:z6,isColorMetricLinkedToHeightMetric:!1,enableFloorLabels:!0};var mW=Object.prototype.hasOwnProperty;function gW(n,t,e){for(e of n.keys())if(sv(e,t))return e}function sv(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--&&sv(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=gW(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=gW(t,r))||!sv(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(mW.call(n,e)&&++i&&!mW.call(t,e)||!(e in t)||!sv(n[e],t[e]))return!1;return Object.keys(t).length===i}}return n!=n&&t!=t}function _W(n,t){return n.filter(e=>!sv(e,t))}function bW(n,t){return vW(n,t)?n:[...n,C(t)]}function vW(n,t){return n.some(e=>sv(e,t))}const efe=(n,{path:t,color:e})=>{const i=EU(n,t);(!i||i.color!==e)&&n.set(t,{path:t,color:e});for(const[r,s]of n)if(s.path===t)s.color!==e&&n.delete(r);else if(s.path.startsWith(t)){const l=EU(n,s.path);l&&l.color===s.color&&n.delete(r)}},yW=(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)efe(e,i);return[...e.values()]}),vn(pR,(n,t)=>{const e=yW(n,t.path);return-1!==e?function Zhe(n,t){return[...n.slice(0,t),...n.slice(t+1)]}(n,e):n})),K6=[],nfe=Fi(K6,vn(n6,xr(K6)),vn(mq,(n,t)=>bW(n,t.edge)),vn(gq,(n,t)=>_W(n,t.edge))),Y6={nodes:{},edges:{}},ife=Fi(Y6,vn(Y8,xr(Y6)),vn(Z8,(n,t)=>({...n,[t.category]:{...n[t.category],[t.name]:t.attributeType}}))),Z6=[],rfe=Fi(Z6,vn(J8,xr(Z6)),vn(e6,(n,t)=>bW(n,t.item)),vn(uR,(n,t)=>function Jhe(n,t){const e=[...n];for(const i of t)vW(e,i)||e.push(i);return e}(n,t.items)),vn(hR,(n,t)=>_W(n,t.item))),J6={},sfe=Sa({markedPackages:tfe,edges:nfe,attributeTypes:ife,attributeDescriptors:Fi(J6,vn(K8,xr(J6))),blacklist:rfe}),afe={markedPackages:X6,edges:K6,attributeTypes:Y6,attributeDescriptors:J6,blacklist:Z6},e7=jl.weightedGradient,lfe=Fi(e7,vn(hx,xr(e7))),t7=pd.NAME,i7={from:0,to:0},wW=[],bfe=Sa({colorMode:lfe,sortingOption:Fi(t7,vn(dR,xr(t7))),edgeMetric:Fi(null,vn(Jp,xr(null))),colorRange:Fi(i7,vn(hf,g3(i7))),margin:Fi(50,vn(Ax,xr(50))),searchPattern:Fi("",vn(s0,xr("")),vn($,()=>"")),focusedNodePath:Fi(wW,vn(aR,(n,t)=>[...t.value]),vn(E2,()=>[]),vn(lR,(n,t)=>t.value===Yr.rootPath?n:[t.value,...n]),vn(cR,n=>n.slice(1))),heightMetric:Fi(null,vn(eA,xr(null))),distributionMetric:Fi(null,vn(M2,xr(null))),colorMetric:Fi(null,vn(zu,xr(null))),areaMetric:Fi(null,vn(Zp,xr(null)))}),vfe={colorMode:e7,sortingOption:t7,edgeMetric:null,colorRange:i7,margin:50,searchPattern:"",focusedNodePath:wW,heightMetric:null,distributionMetric:null,colorMetric:null,areaMetric:null},l7=[],yfe=Fi(l7,vn(S,xr(l7)),vn(E,(n,t)=>[...n,{file:t.file,selectedAs:bt.None}]),vn(N,(n,t)=>function wfe(n,t){if(0===t.length)return n;const e=n.filter(r=>!t.includes(r.file.fileMeta.fileName));return e.some(r=>r.selectedAs===bt.Partial)||(e[0]={...e[0],selectedAs:bt.Partial}),e}(n,t.fileNames)),vn(tt,(n,t)=>function xfe(n,t,e){return n.map(i=>u3(i.file,t)?{...i,selectedAs:bt.Reference}:e&&u3(i.file,e)?{...i,selectedAs:bt.Comparison}:{...i,selectedAs:bt.None})}(n,t.referenceFile,t.comparisonFile)),vn(Xe,(n,t)=>function Cfe(n,t){return n.map(e=>u3(e.file,t)?{...e,selectedAs:bt.Reference}:e.selectedAs===bt.Comparison?e:{...e,selectedAs:bt.None})}(n,t.file)),vn(ge,(n,t)=>function Mfe(n,t){return n.map(e=>e.file===t?{...e,selectedAs:bt.Comparison}:e.selectedAs===bt.Reference?e:{...e,selectedAs:bt.None})}(n,t.file)),vn(xe,n=>function Efe(n){return n.map(t=>t.selectedAs===bt.Reference?{...t,selectedAs:bt.Comparison}:t.selectedAs===bt.Comparison?{...t,selectedAs:bt.Reference}:t)}(n)),vn($,(n,t)=>xW(n,t.files.map(e=>e.fileMeta.fileName))),vn(se,(n,t)=>xW(n,t.fileNames)));function xW(n,t){return n.map(e=>({...e,selectedAs:t.includes(e.file.fileMeta.fileName)?bt.Partial:bt.None}))}const bx=bn("SET_HOVERED_NODE_ID",{_as:"props",_p:void 0}),Sfe=Fi(null,vn(bx,xr(null))),vx=bn("SET_RIGHT_CLICKED_NODE_DATA",{_as:"props",_p:void 0}),Tfe=Fi(null,vn(vx,(n,t)=>t.value)),Ife=Fi(null,vn(RU,xr(null))),kfe={fileSettings:sfe,appSettings:Khe,dynamicSettings:bfe,files:yfe,appStatus:Sa({currentFilesAreSampleFiles:Fi(!1,vn(Au,(n,t)=>t.value)),hoveredNodeId:Sfe,selectedBuildingId:Ife,rightClickedNodeData:Tfe})},EW={fileSettings:afe,appSettings:Yhe,dynamicSettings:vfe,files:l7,appStatus:{currentFilesAreSampleFiles:!1,hoveredNodeId:null,selectedBuildingId:null,rightClickedNodeData:null}},Pfe=new Set(["fileSettings.attributeTypes","fileSettings.attributeDescriptors","fileSettings.blacklist","fileSettings.edges","fileSettings.markedPackages","dynamicSettings.focusedNodePath","files"]);function SW(n,t,e=[]){for(const[i,r]of Object.entries(t)){if(null==r||!Ofe(n,i))continue;const s=[...e,i],l=s.join(".");n[i]="object"!=typeof r||Pfe.has(l)?r:SW(n[i],r,s)}return n}function Ofe(n,t){return Object.prototype.hasOwnProperty.call(n,t)}let Nfe=(()=>{class n{constructor(e,i,r,s){this.store=e,this.httpClient=i,this.loadFileService=r,this.loadInitialFileService=s,this.urlUtils=new Lq(this.httpClient)}resetMap(){var e=this;return Cn(function*(){if(yield function Xde(){return A6.apply(this,arguments)}(),e.store.dispatch(_x({value:EW})),e.loadInitialFileService.checkFileQueryParameterPresent())try{const r=yield e.urlUtils.getFileDataFromQueryParam();e.loadFileService.loadFiles(r),e.loadInitialFileService.setRenderStateFromUrl()}catch{e.loadFileService.loadFiles([wR,xR])}else e.loadFileService.loadFiles([wR,xR]);e.resetMetrics()})()}resetMetrics(){this.store.select(Aa).pipe(h2(),ao(e=>{uW(this.store,e.nodeMetricData)})).subscribe()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(w6),o.rXU(mu),o.rXU(E6))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-confirm-reset-map-dialog"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-toolbar",0)(1,"h2"),o.EFF(2,"Confirm reset map to default"),o.k0s()(),o.j41(3,"mat-dialog-content")(4,"div",1)(5,"p"),o.EFF(6,"Uploaded maps, selected metrics and settings are reset to default"),o.k0s()()(),o.j41(7,"mat-dialog-actions")(8,"button",2),o.EFF(9,"No"),o.k0s(),o.j41(10,"button",3),o.bIt("click",function(){return r.resetMap()}),o.EFF(11,"Yes"),o.k0s()())},dependencies:[Jg,ml,Jl,Jo,Ia],encapsulation:2})}}return n})(),Lfe=(()=>{class n{constructor(e){this.dialog=e}showConfirmResetStateDialog(){this.dialog.open(Nfe,{panelClass:"cc-confirm-reset-map-dialog"})}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-reset-map-button"]],standalone:!0,features:[o.aNF],decls:1,vars:1,consts:[["title","Reset map to default",3,"click","icon"]],template:function(i,r){1&i&&(o.j41(0,"cc-action-icon",0),o.bIt("click",function(){return r.showConfirmResetStateDialog()}),o.k0s()),2&i&&o.Y8G("icon","fa fa-undo")},dependencies:[Al],encapsulation:2})}}return n})();const u0=sn(yn,n=>Bd(n));function TW(){return(0,Fr.N)((n,t)=>{let e,i=!1;n.subscribe((0,sr._)(t,r=>{const s=e;e=r,i&&t.next([s,r]),i=!0}))})}let Ufe=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.lastSetFilesOfPreviousMode=[],this.subscription=this.store.select(yn).pipe(TW(),ur(([r,s])=>Bd(r)!==Bd(s)||0===s.length),ao(([r,s])=>{this.lastSetFilesOfPreviousMode=0===s.length?s:r})).subscribe()}ngOnDestroy(){this.subscription.unsubscribe()}toggle(){if(0===this.lastSetFilesOfPreviousMode.length||Bd(this.lastSetFilesOfPreviousMode)){const i=yn(this.state.getValue());this.lastSetFilesOfPreviousMode=this.filterNoneExisting(i,this.lastSetFilesOfPreviousMode);const r=this.lastSetFilesOfPreviousMode.find(l=>l.selectedAs===bt.Reference)??i.find(l=>l.selectedAs===bt.Partial),s=this.lastSetFilesOfPreviousMode.find(l=>l.selectedAs===bt.Comparison);this.store.dispatch(tt({referenceFile:r.file,comparisonFile:s?.file}))}else this.store.dispatch(S({value:this.lastSetFilesOfPreviousMode}))}filterNoneExisting(e,i){return i.filter(r=>e.find(s=>u3(s.file,r.file)))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(Vi))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Vfe=(()=>{class n{constructor(e,i){this.store=e,this.fileSelectionModeService=i,this.isDeltaState$=this.store.select(u0)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(Ufe))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-file-panel-state-buttons"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"button",0),o.nI1(1,"async"),o.nI1(2,"async"),o.bIt("click",function(){return r.fileSelectionModeService.toggle()}),o.j41(3,"span",1),o.EFF(4,"Standard"),o.k0s()(),o.j41(5,"button",2),o.nI1(6,"async"),o.nI1(7,"async"),o.bIt("click",function(){return r.fileSelectionModeService.toggle()}),o.j41(8,"span",1),o.EFF(9,"Delta"),o.k0s()()),2&i&&(o.AVh("current",!o.bMT(1,6,r.isDeltaState$)),o.Y8G("disabled",!o.bMT(2,8,r.isDeltaState$)),o.R7$(5),o.AVh("current",o.bMT(6,10,r.isDeltaState$)),o.Y8G("disabled",o.bMT(7,12,r.isDeltaState$)))},dependencies:[Jo,Qn],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})(),u7=(()=>{class n{transform(e){return kc.withoutCCExtension(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=o.EJ8({name:"removeExtension",type:n,pure:!0,standalone:!0})}}return n})();function Hfe(n,t){1&n&&o.nrm(0,"i",1)}function Qfe(n,t){1&n&&o.nrm(0,"i",2)}let zfe=(()=>{class n{constructor(){this.removeOrAddFile=new o.bkB}onRemoveOrAddFile(e,i){this.removeOrAddFile.emit(e),i.stopPropagation(),i.preventDefault()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-remove-file-button"]],inputs:{filename:"filename",isRemoved:"isRemoved"},outputs:{removeOrAddFile:"removeOrAddFile"},standalone:!0,features:[o.aNF],decls:3,vars:2,consts:[[3,"click","title"],[1,"fa","fa-undo"],[1,"fa","fa-trash","delete-symbol"]],template:function(i,r){1&i&&(o.j41(0,"button",0),o.bIt("click",function(l){return r.onRemoveOrAddFile(r.filename,l)}),o.DNE(1,Hfe,1,0,"i",1)(2,Qfe,1,0,"i",2),o.k0s()),2&i&&(o.FS9("title",r.isRemoved?"Undo remove map":"Remove map"),o.R7$(),o.vxM(r.isRemoved?1:2))},styles:["button[_ngcontent-%COMP%]{padding:8px 10px}button[_ngcontent-%COMP%]:hover{border-radius:50%}"]})}}return n})();const Gfe=["tooltip"],FW=new o.nKC("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{const n=(0,o.WQX)(Us);return()=>n.scrollStrategies.reposition({scrollThrottle:20})}}),qfe=new o.nKC("mat-tooltip-default-options",{providedIn:"root",factory:function $fe(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),DW="tooltip-panel",BW=rp({passive:!0});let h7=(()=>{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=mi(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){const i=mi(e);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=Gn(e)}get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=Gn(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(e){const i=this._message;this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}constructor(e,i,r,s,l,u,f,p,m,_,b,w){this._overlay=e,this._elementRef=i,this._scrollDispatcher=r,this._viewContainerRef=s,this._ngZone=l,this._platform=u,this._ariaDescriber=f,this._focusMonitor=p,this._dir=_,this._defaultOptions=b,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._tooltipComponent=Zfe,this._viewportMargin=8,this._cssClassPrefix="mat-mdc",this.touchGestures="auto",this._message="",this._passiveListeners=[],this._touchstartTimeout=null,this._destroyed=new Ai.B,this._injector=(0,o.WQX)(o.zZn),this._scrollStrategy=m,this._document=w,b&&(this._showDelay=b.showDelay,this._hideDelay=b.hideDelay,b.position&&(this.position=b.position),b.positionAtOrigin&&(this.positionAtOrigin=b.positionAtOrigin),b.touchGestures&&(this.touchGestures=b.touchGestures),b.tooltipClass&&(this.tooltipClass=b.tooltipClass)),_.change.pipe(vo(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)}),this._viewportMargin=8}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(vo(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,r])=>{e.removeEventListener(i,r,BW)}),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 Am(this._tooltipComponent,this._viewContainerRef);const s=this._tooltipInstance=r.attach(this._portal).instance;s._triggerElement=this._elementRef.nativeElement,s._mouseLeaveHideDelay=this._hideDelay,s.afterHidden().pipe(vo(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),s.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 s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&s._origin instanceof o.aKT)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(vo(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:r,panelClass:`${this._cssClassPrefix}-${DW}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(vo(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(vo(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(vo(this._destroyed)).subscribe(s=>{this._isTooltipVisible()&&27===s.keyCode&&!Yl(s)&&(s.preventDefault(),s.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(),s=this._getOverlayPosition();i.withPositions([this._addOffset({...r.main,...s.main}),this._addOffset({...r.fallback,...s.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:s,y:l}=this._invertPosition(r.originX,r.originY);return{main:r,fallback:{originX:s,originY:l}}}_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:s,y:l}=this._invertPosition(r.overlayX,r.overlayY);return{main:r,fallback:{overlayX:s,overlayY:l}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),(0,o.mal)(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_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:s}=e;let l;if(l="center"===i?this._dir&&"rtl"===this._dir.value?"end"===r?"left":"right":"start"===r?"left":"right":"bottom"===i&&"top"===s?"above":"below",l!==this._currentPosition){const u=this._overlayRef;if(u){const f=`${this._cssClassPrefix}-${DW}-`;u.removePanelClass(f+this._currentPosition),u.addPanelClass(f+l)}this._currentPosition=l}}_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(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,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=()=>{this._touchstartTimeout&&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,BW)})}_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"}}_syncAriaDescription(e){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,e,"tooltip"),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Us),o.rXU(o.aKT),o.rXU(mh),o.rXU(o.c1b),o.rXU(o.SKi),o.rXU(Fo),o.rXU(au),o.rXU(Zl),o.rXU(FW),o.rXU(Zs),o.rXU(qfe,8),o.rXU(V))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,r){2&i&&o.AVh("mat-mdc-tooltip-disabled",r.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"],standalone:!0})}}return n})(),Zfe=(()=>{class n{constructor(e,i,r){this._changeDetectorRef=e,this._elementRef=i,this._isMultiline=!1,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new Ai.B,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,s=this._hideAnimation;if(i.classList.remove(e?s:r),i.classList.add(e?r:s),this._isVisible!==e&&(this._isVisible=e,this._changeDetectorRef.markForCheck()),e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const l=getComputedStyle(i);("0s"===l.getPropertyValue("animation-duration")||"none"===l.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)(o.rXU(o.gRc),o.rXU(o.aKT),o.rXU(o.bc$,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(i,r){if(1&i&&o.GBs(Gfe,7),2&i){let s;o.mGM(s=o.lsd())&&(r._tooltip=s.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,r){1&i&&o.bIt("mouseleave",function(l){return r._handleMouseLeave(l)})},standalone:!0,features:[o.aNF],decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,r){if(1&i){const s=o.RV6();o.j41(0,"div",1,0),o.bIt("animationend",function(u){return o.eBV(s),o.Njj(r._handleAnimationEnd(u))}),o.j41(2,"div",2),o.EFF(3),o.k0s()()}2&i&&(o.AVh("mdc-tooltip--multiline",r._isMultiline),o.Y8G("ngClass",r.tooltipClass),o.R7$(3),o.JRh(r.message))},dependencies:[En],styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.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-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-app-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-app-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-app-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-app-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-app-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-app-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-app-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-app-body-small-tracking))}.mat-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}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.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})();const Jfe=["fileSelect"],epe=n=>({"text-decoration":n});function tpe(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-option",4),o.EFF(1),o.nI1(2,"removeExtension"),o.j41(3,"cc-remove-file-button",7),o.bIt("removeOrAddFile",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleAddOrRemoveFile(r))}),o.k0s()()}if(2&n){const e=t.$implicit;o.Y8G("value",e.file)("ngStyle",o.eq3(7,epe,e.isRemoved?"line-through":"none")),o.R7$(),o.SpI(" ",o.bMT(2,5,e.file.fileMeta.fileName)," "),o.R7$(2),o.Y8G("filename",e.file.fileMeta.fileName)("isRemoved",e.isRemoved)}}let npe=(()=>{class n{constructor(e){this.store=e,this.filesInUI=[],this.selectedFilesInUI=[],this.filesInStore=[],this.closedByApply=!1,this.applyButtonTooltip="",this.applyButtonDisabled=!1,this.filesSubscription=this.store.select(yn).subscribe(i=>{this.filesInStore=i,this.filesInUI=i.map(r=>({file:r.file,isRemoved:!1})),this.selectedFilesInUI=i.filter(r=>r.selectedAs===bt.Partial).map(r=>r.file)})}ngOnDestroy(){this.filesSubscription.unsubscribe()}handleSelectedFilesChanged(e){this.selectedFilesInUI=e;for(const i of this.filesInUI)e.includes(i.file)&&(i.isRemoved=!1);this.updateApplyButtonState()}handleOpenedChanged(e){this.closedByApply||e?this.closedByApply=!1:this.store.select(yn).pipe(ms(1)).subscribe(i=>{this.filesInUI=i.map(r=>({file:r.file,isRemoved:!1})),this.selectedFilesInUI=i.filter(r=>r.selectedAs===bt.Partial).map(r=>r.file)}),e&&this.setApplyButtonStateToNoChangesToApply()}handleSelectZeroFiles(){this.selectedFilesInUI=[],this.setApplyButtonStateToNoMapSelected()}handleInvertSelectedFiles(){const e=this.filesInUI.filter(i=>!i.isRemoved);0!==e.length&&(this.selectedFilesInUI=0===this.selectedFilesInUI.length?e.map(i=>i.file):this.selectedFilesInUI.length===e.length?[]:e.filter(i=>!this.selectedFilesInUI.includes(i.file)).map(i=>i.file),this.updateApplyButtonState())}handleSelectAllFiles(){this.selectedFilesInUI=this.filesInUI.filter(e=>!e.isRemoved).map(e=>e.file),this.updateApplyButtonState()}handleApplyFileChanges(){const e=this.filesInUI.filter(i=>i.isRemoved).map(i=>i.file.fileMeta.fileName);this.store.dispatch($({files:this.selectedFilesInUI})),this.store.dispatch(N({fileNames:e})),this.closedByApply=!0,this.select.close()}handleAddOrRemoveFile(e){this.filesInUI=this.filesInUI.map(i=>i.file.fileMeta.fileName===e?{file:i.file,isRemoved:!i.isRemoved}:i),this.selectedFilesInUI=this.selectedFilesInUI.filter(i=>i.fileMeta.fileName!==e),this.updateApplyButtonState()}updateApplyButtonState(){0!==this.selectedFilesInUI.length?this.uiSelectionDiffersFromStore()?this.setApplyButtonStateEnabled():this.setApplyButtonStateToNoChangesToApply():this.setApplyButtonStateToNoMapSelected()}setApplyButtonStateToNoChangesToApply(){this.applyButtonTooltip="No changes to apply",this.applyButtonDisabled=!0}setApplyButtonStateToNoMapSelected(){this.applyButtonTooltip="Select at least one map",this.applyButtonDisabled=!0}setApplyButtonStateEnabled(){this.applyButtonTooltip="",this.applyButtonDisabled=!1}uiSelectionDiffersFromStore(){if(this.filesInUI.some(i=>i.isRemoved))return!0;const e=this.filesInStore.filter(i=>i.selectedAs===bt.Partial).map(i=>i.file);return this.selectedFilesInUI.length!==e.length||!this.selectedFilesInUI.every(i=>e.includes(i))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-file-panel-file-selector"]],viewQuery:function(i,r){if(1&i&&o.GBs(Jfe,5),2&i){let s;o.mGM(s=o.lsd())&&(r.select=s.first)}},standalone:!0,features:[o.aNF],decls:14,vars:4,consts:[["fileSelect",""],["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","ngStyle"],[1,"cc-apply-file-selection-button-container"],[3,"click","disabled","matTooltip","matTooltipDisabled"],[3,"removeOrAddFile","filename","isRemoved"]],template:function(i,r){if(1&i){const s=o.RV6();o.j41(0,"mat-select",1,0),o.mxI("valueChange",function(u){return o.eBV(s),o.DH7(r.selectedFilesInUI,u)||(r.selectedFilesInUI=u),o.Njj(u)}),o.bIt("selectionChange",function(u){return o.eBV(s),o.Njj(r.handleSelectedFilesChanged(u.value))})("openedChange",function(u){return o.eBV(s),o.Njj(r.handleOpenedChanged(u))}),o.j41(2,"div",2)(3,"button",3),o.bIt("click",function(){return o.eBV(s),o.Njj(r.handleSelectAllFiles())}),o.EFF(4,"All"),o.k0s(),o.j41(5,"button",3),o.bIt("click",function(){return o.eBV(s),o.Njj(r.handleSelectZeroFiles())}),o.EFF(6,"None"),o.k0s(),o.j41(7,"button",3),o.bIt("click",function(){return o.eBV(s),o.Njj(r.handleInvertSelectedFiles())}),o.EFF(8,"Invert"),o.k0s()(),o.Z7z(9,tpe,4,9,"mat-option",4,o.fX1),o.j41(11,"div",5)(12,"button",6),o.bIt("click",function(){return o.eBV(s),o.Njj(r.handleApplyFileChanges())}),o.EFF(13," Apply "),o.k0s()()()}2&i&&(o.R50("value",r.selectedFilesInUI),o.R7$(9),o.Dyx(r.filesInUI),o.R7$(3),o.FS9("matTooltip",r.applyButtonTooltip),o.FS9("matTooltipDisabled",!r.applyButtonDisabled),o.Y8G("disabled",r.applyButtonDisabled))},dependencies:[t0,gd,zfe,u7,ga,h7],styles:[".cc-standard-select[_ngcontent-%COMP%]{width:200px;font-size:10pt}.cc-apply-file-selection-button-container[_ngcontent-%COMP%]{padding-right:16px;display:flex;justify-content:flex-end}.cc-apply-file-selection-button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:50%;height:30px}.cc-apply-file-selection-button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover:not(:disabled){border-radius:10%;background-color:#ddd}"]})}}return n})();const ipe=sn(Zw,n=>`linear-gradient(${n.positiveDelta} 50%, ${n.negativeDelta} 50%)`),rpe=["input"],ope=["label"],spe=["*"],ape=new o.nKC("mat-checkbox-default-options",{providedIn:"root",factory:kW});function kW(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var el=function(n){return n[n.Init=0]="Init",n[n.Checked=1]="Checked",n[n.Unchecked=2]="Unchecked",n[n.Indeterminate=3]="Indeterminate",n}(el||{});const lpe={provide:ma,useExisting:(0,o.Rfq)(()=>av),multi:!0};class cpe{}let dpe=0;const RW=kW();let av=(()=>{class n{focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new cpe;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,s,l,u){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=r,this._animationMode=l,this._options=u,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 o.bkB,this.indeterminateChange=new o.bkB,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=el.Init,this._controlValueAccessorChangeFn=()=>{},this._validatorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||RW,this.color=this._options.color||RW.color,this.tabIndex=parseInt(s)||0,this.id=this._uniqueId="mat-mdc-checkbox-"+ ++dpe,this.disabledInteractive=u?.disabledInteractive??!1}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?el.Indeterminate:this.checked?el.Checked:el.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 s=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{r.classList.remove(s)},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&&this.disabledInteractive||!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?el.Checked:el.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 el.Init:if(i===el.Checked)return this._animationClasses.uncheckedToChecked;if(i==el.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case el.Unchecked:return i===el.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case el.Checked:return i===el.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case el.Indeterminate:return i===el.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)(o.rXU(o.aKT),o.rXU(o.gRc),o.rXU(o.SKi),o.kS0("tabindex"),o.rXU(o.bc$,8),o.rXU(ape,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-checkbox"]],viewQuery:function(i,r){if(1&i&&(o.GBs(rpe,5),o.GBs(ope,5),o.GBs(gl,5)),2&i){let s;o.mGM(s=o.lsd())&&(r._inputElement=s.first),o.mGM(s=o.lsd())&&(r._labelElement=s.first),o.mGM(s=o.lsd())&&(r.ripple=s.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,r){2&i&&(o.Mr5("id",r.id),o.BMQ("tabindex",null)("aria-label",null)("aria-labelledby",null),o.HbH(r.color?"mat-"+r.color:"mat-accent"),o.AVh("_mat-animation-noopable","NoopAnimations"===r._animationMode)("mdc-checkbox--disabled",r.disabled)("mat-mdc-checkbox-disabled",r.disabled)("mat-mdc-checkbox-checked",r.checked)("mat-mdc-checkbox-disabled-interactive",r.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],id:"id",required:[2,"required","required",o.L39],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",o.L39],tabIndex:[2,"tabIndex","tabIndex",e=>null==e?void 0:(0,o.Udg)(e)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",o.L39],checked:[2,"checked","checked",o.L39],disabled:[2,"disabled","disabled",o.L39],indeterminate:[2,"indeterminate","indeterminate",o.L39]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],standalone:!0,features:[o.Jv_([lpe,{provide:zs,useExisting:n,multi:!0}]),o.GFd,o.OA$,o.aNF],ngContentSelectors:spe,decls:15,vars:20,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 s=o.RV6();o.NAR(),o.j41(0,"div",3),o.bIt("click",function(u){return o.eBV(s),o.Njj(r._preventBubblingFromLabel(u))}),o.j41(1,"div",4,0)(3,"div",5),o.bIt("click",function(){return o.eBV(s),o.Njj(r._onTouchTargetClick())}),o.k0s(),o.j41(4,"input",6,1),o.bIt("blur",function(){return o.eBV(s),o.Njj(r._onBlur())})("click",function(){return o.eBV(s),o.Njj(r._onInputClick())})("change",function(u){return o.eBV(s),o.Njj(r._onInteractionEvent(u))}),o.k0s(),o.nrm(6,"div",7),o.j41(7,"div",8),o.qSk(),o.j41(8,"svg",9),o.nrm(9,"path",10),o.k0s(),o.joV(),o.nrm(10,"div",11),o.k0s(),o.nrm(11,"div",12),o.k0s(),o.j41(12,"label",13,2),o.SdG(14),o.k0s()()}if(2&i){const s=o.sdS(2);o.Y8G("labelPosition",r.labelPosition),o.R7$(4),o.AVh("mdc-checkbox--selected",r.checked),o.Y8G("checked",r.checked)("indeterminate",r.indeterminate)("disabled",r.disabled&&!r.disabledInteractive)("id",r.inputId)("required",r.required)("tabIndex",r.disabled&&!r.disabledInteractive?-1:r.tabIndex),o.BMQ("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-checked",r.indeterminate?"mixed":null)("aria-disabled",!(!r.disabled||!r.disabledInteractive)||null)("name",r.name)("value",r.value),o.R7$(7),o.Y8G("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),o.R7$(),o.Y8G("for",r.inputId)}},dependencies:[gl,kI],styles:['.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;padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-app-primary))}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-app-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity));background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-app-primary))}.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, var(--mat-app-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity));background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-app-primary))}.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, var(--mat-app-primary))}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-app-on-surface))}.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, var(--mat-app-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mdc-checkbox__ripple{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-app-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.cdk-high-contrast-active .mdc-checkbox--disabled{opacity:.5}.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 cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mdc-checkbox-unselected-icon-color, var(--mat-app-on-surface-variant));top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mat-app-primary));background-color:var(--mdc-checkbox-selected-icon-color, var(--mat-app-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color)}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color);border-color:rgba(0,0,0,0)}.mdc-checkbox:hover .mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mat-app-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-app-primary));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-app-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mat-app-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-app-primary));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-app-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover .mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color)}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color);border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-app-on-primary))}.cdk-high-contrast-active .mdc-checkbox__checkmark{color:CanvasText}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-app-surface))}.cdk-high-contrast-active .mdc-checkbox--disabled .mdc-checkbox__checkmark,.cdk-high-contrast-active .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 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 cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-app-on-primary))}.cdk-high-contrast-active .mdc-checkbox__mixedmark{margin:0 1px}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-app-surface))}.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;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 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{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 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{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@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:cubic-bezier(0, 0, 0.2, 1);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}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable .mdc-checkbox *,.mat-mdc-checkbox._mat-animation-noopable .mdc-checkbox *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-app-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-app-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-app-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-app-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-app-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-app-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color)}.mat-mdc-checkbox label:empty{display:none}.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%;left:50%;height:48px;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})();const f7="alertOnIncompatibleMaps";let fpe=(()=>{class n{constructor(e){this.data=e}setDoNotAlertOnIncompatibleMaps(e){localStorage.setItem(f7,JSON.stringify(!e.checked))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(fp))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-incompatible-maps-dialog"]],standalone:!0,features:[o.aNF],decls:25,vars:4,consts:[["color","primary"],[1,"cc-files"],[3,"change"],["align","end"],["href","https://maibornwolff.github.io/codecharta/docs/filter/structure-modifier","target","_blank","rel","noopener noreferrer"],["mat-flat-button","",3,"mat-dialog-close"]],template:function(i,r){1&i&&(o.j41(0,"mat-toolbar",0),o.EFF(1,"Incompatible Maps"),o.k0s(),o.j41(2,"mat-dialog-content")(3,"p"),o.EFF(4,"The selected maps use different complexity metrics and are therefore incompatible:"),o.k0s(),o.j41(5,"p",1),o.EFF(6),o.k0s(),o.j41(7,"p"),o.EFF(8," The file "),o.j41(9,"b"),o.EFF(10),o.k0s(),o.EFF(11," is using the "),o.j41(12,"b"),o.EFF(13,"mcc metric"),o.k0s(),o.EFF(14," and the other one "),o.j41(15,"b"),o.EFF(16,"complexity"),o.k0s(),o.EFF(17,". Please migrate. "),o.k0s(),o.j41(18,"mat-checkbox",2),o.bIt("change",function(l){return r.setDoNotAlertOnIncompatibleMaps(l)}),o.EFF(19,"Don't show again"),o.k0s()(),o.j41(20,"mat-dialog-actions",3)(21,"a",4),o.EFF(22,"Know more"),o.k0s(),o.j41(23,"button",5),o.EFF(24,"CLOSE"),o.k0s()()),2&i&&(o.R7$(6),o.Lme("",r.data.referenceFileName," \u2192 ",r.data.comparisonFileName,""),o.R7$(4),o.JRh(r.data.fileWithMccMetric),o.R7$(13),o.Y8G("mat-dialog-close",!0))},dependencies:[Jg,ml,av,Jl,Jo,Ia],styles:["p[_ngcontent-%COMP%]{font-size:18px}.cc-files[_ngcontent-%COMP%]{text-align:center}"]})}}return n})();function ppe(n,t){if(1&n&&(o.j41(0,"mat-option",2),o.EFF(1),o.nI1(2,"removeExtension"),o.k0s()),2&n){const e=t.$implicit;o.Y8G("value",e.file),o.R7$(),o.SpI(" ",o.bMT(2,2,e.file.fileMeta.fileName)," ")}}function Ape(n,t){if(1&n&&(o.j41(0,"mat-option",2),o.EFF(1),o.nI1(2,"removeExtension"),o.k0s()),2&n){const e=t.$implicit;o.Y8G("value",e.file),o.R7$(),o.SpI(" ",o.bMT(2,2,e.file.fileMeta.fileName)," ")}}let mpe=(()=>{class n{constructor(e,i){this.store=e,this.dialog=i,this.files$=this.store.select(yn),this.referenceFile$=this.store.select(Sn),this.comparisonFile$=this.files$.pipe((0,$n.T)(r=>r.find(s=>s.selectedAs===bt.Comparison)?.file)),this.possibleComparisonFiles$=this.files$.pipe((0,$n.T)(r=>r.filter(s=>s.selectedAs!==bt.Reference))),this.pictogramBackground$=this.store.select(ipe),this.referenceFile$.subscribe(r=>this.referenceFile=r),this.comparisonFile$.subscribe(r=>this.comparisonFile=r)}handleDeltaReferenceFileChange(e){this.store.dispatch(Xe({file:e})),this.showAlertWhenFilesAreIncompatible()}handleDeltaComparisonFileChange(e){this.store.dispatch(ge({file:e})),this.showAlertWhenFilesAreIncompatible()}showAlertWhenFilesAreIncompatible(){this.alertOnIncompatibleMaps()&&this.areMapsIncompatible()&&this.openIncompatibleMapsDialog()}alertOnIncompatibleMaps(){return!localStorage.getItem(f7)||!0===JSON.parse(localStorage.getItem(f7))}openIncompatibleMapsDialog(){this.dialog.open(fpe,{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=>this.containsMCCAttribute(i))}containsMCCAttribute(e){if(e.attributes.mcc)return!0;if(e.children)for(const i of e.children)if(this.containsMCCAttribute(i))return!0;return!1}getFileWithMccMetric(e,i){return this.hasMccMetric(e)?this.getFileName(e):this.hasMccMetric(i)?this.getFileName(i):void 0}switchReferenceAndComparison(){this.store.dispatch(xe())}areMapsIncompatible(){if(this.referenceFile&&this.comparisonFile)return this.hasMccMetric(this.referenceFile)!==this.hasMccMetric(this.comparisonFile)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-file-panel-delta-selector"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"mat-select",1),o.nI1(2,"async"),o.bIt("selectionChange",function(l){return r.handleDeltaReferenceFileChange(l.value)}),o.Z7z(3,ppe,3,4,"mat-option",2,o.fX1),o.nI1(5,"async"),o.k0s(),o.j41(6,"button",3),o.nI1(7,"async"),o.bIt("click",function(){return r.switchReferenceAndComparison()}),o.nrm(8,"i",4),o.k0s(),o.j41(9,"mat-select",5),o.nI1(10,"async"),o.bIt("selectionChange",function(l){return r.handleDeltaComparisonFileChange(l.value)}),o.Z7z(11,Ape,3,4,"mat-option",2,o.fX1),o.nI1(13,"async"),o.k0s(),o.nrm(14,"div",6),o.nI1(15,"async"),o.k0s()),2&i&&(o.R7$(),o.Y8G("value",o.bMT(2,5,r.referenceFile$)),o.R7$(2),o.Dyx(o.bMT(5,7,r.files$)),o.R7$(3),o.Y8G("disabled",void 0===o.bMT(7,9,r.comparisonFile$)),o.R7$(3),o.Y8G("value",o.bMT(10,11,r.comparisonFile$)),o.R7$(2),o.Dyx(o.bMT(13,13,r.possibleComparisonFiles$)),o.R7$(3),o.xc7("background",o.bMT(15,15,r.pictogramBackground$)))},dependencies:[t0,gd,Qn,u7],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})();function gpe(n,t){1&n&&o.nrm(0,"cc-file-panel-file-selector")}function _pe(n,t){1&n&&o.nrm(0,"cc-file-panel-delta-selector")}let bpe=(()=>{class n{constructor(e){this.store=e,this.isDeltaState$=this.store.select(u0)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-file-panel"]],standalone:!0,features:[o.aNF],decls:4,vars:3,template:function(i,r){1&i&&(o.nrm(0,"cc-file-panel-state-buttons"),o.DNE(1,gpe,1,0,"cc-file-panel-file-selector"),o.nI1(2,"async"),o.DNE(3,_pe,1,0,"cc-file-panel-delta-selector")),2&i&&(o.R7$(),o.vxM(o.bMT(2,1,r.isDeltaState$)?3:1))},dependencies:[Vfe,npe,mpe,Qn],styles:["[_nghost-%COMP%]{display:flex;gap:inherit}.hidden[_nghost-%COMP%]{display:none}"]})}}return n})();const PW=sn(Yw,hd,(n,t)=>n.get(t)),vpe=sn(PW,n=>n&&{path:n.path.slice(1).split("/"),isFile:"File"===n.type});function ype(n,t){if(1&n&&o.nrm(0,"i",2),2&n){const e=o.XpG(2);o.AVh("fa-file-o",e.isFile)("fa-folder",!e.isFile)}}function wpe(n,t){1&n&&o.nrm(0,"i",1)}function xpe(n,t){if(1&n&&(o.j41(0,"span"),o.DNE(1,ype,1,4,"i",0),o.j41(2,"span"),o.EFF(3),o.k0s(),o.DNE(4,wpe,1,0,"i",1),o.k0s()),2&n){const e=t.$implicit,i=t.$index,r=t.$count;o.R7$(),o.vxM(i===r-1?1:-1),o.R7$(),o.AVh("bold",i===r-1),o.R7$(),o.JRh(e),o.R7$(),o.vxM(i!==r-1?4:-1)}}function Cpe(n,t){1&n&&o.Z7z(0,xpe,5,5,"span",null,o.fX1),2&n&&o.Dyx(t.path)}let Mpe=(()=>{class n{constructor(e){this.store=e,this.hoveredNodePathPanelData$=this.store.select(vpe)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-hovered-node-path-panel"]],standalone:!0,features:[o.aNF],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&&(o.DNE(0,Cpe,2,0),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.hoveredNodePathPanelData$))?0:-1,s)}},dependencies:[Qn],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 Epe=sn(Ro,n=>n.isLoadingMap),Spe=["determinateSpinner"];function Tpe(n,t){if(1&n&&(o.qSk(),o.j41(0,"svg",11),o.nrm(1,"circle",12),o.k0s()),2&n){const e=o.XpG();o.BMQ("viewBox",e._viewBox()),o.R7$(),o.xc7("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),o.BMQ("r",e._circleRadius())}}const Ipe=new o.nKC("mat-progress-spinner-default-options",{providedIn:"root",factory:function Fpe(){return{diameter:OW}}}),OW=100;let NW=(()=>{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=OW,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)(o.rXU(o.aKT),o.rXU(o.bc$,8),o.rXU(Ipe))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,r){if(1&i&&o.GBs(Spe,5),2&i){let s;o.mGM(s=o.lsd())&&(r._determinateCircle=s.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,r){2&i&&(o.BMQ("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===r.mode?r.value:null)("mode",r.mode),o.HbH("mat-"+r.color),o.xc7("width",r.diameter,"px")("height",r.diameter,"px")("--mdc-circular-progress-size",r.diameter+"px")("--mdc-circular-progress-active-indicator-width",r.diameter+"px"),o.AVh("_mat-animation-noopable",r._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===r.mode))},inputs:{color:"color",mode:"mode",value:[2,"value","value",o.Udg],diameter:[2,"diameter","diameter",o.Udg],strokeWidth:[2,"strokeWidth","strokeWidth",o.Udg]},exportAs:["matProgressSpinner"],standalone:!0,features:[o.GFd,o.aNF],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&&(o.DNE(0,Tpe,2,8,"ng-template",null,0,o.C5r),o.j41(2,"div",2,1),o.qSk(),o.j41(4,"svg",3),o.nrm(5,"circle",4),o.k0s()(),o.joV(),o.j41(6,"div",5)(7,"div",6)(8,"div",7),o.eu8(9,8),o.k0s(),o.j41(10,"div",9),o.eu8(11,8),o.k0s(),o.j41(12,"div",10),o.eu8(13,8),o.k0s()()()),2&i){const s=o.sdS(1);o.R7$(4),o.BMQ("viewBox",r._viewBox()),o.R7$(),o.xc7("stroke-dasharray",r._strokeCircumference(),"px")("stroke-dashoffset",r._strokeDashOffset(),"px")("stroke-width",r._circleStrokeWidth(),"%"),o.BMQ("r",r._circleRadius()),o.R7$(4),o.Y8G("ngTemplateOutlet",s),o.R7$(2),o.Y8G("ngTemplateOutlet",s),o.R7$(2),o.Y8G("ngTemplateOutlet",s)}},dependencies:[vi],styles:[".mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.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 !important}.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}.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 .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,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, var(--mat-app-primary))}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 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 .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__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__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.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}@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-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)}}"],encapsulation:2,changeDetection:0})}}return n})(),Bpe=(()=>{class n{constructor(e){this.isLoadingMap$=e.select(Epe)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-loading-map-progress-spinner"]],standalone:!0,features:[o.aNF],decls:2,vars:4,consts:[["id","loading-gif-map","mode","indeterminate","diameter","22","title","Rendering map"]],template:function(i,r){1&i&&(o.nrm(0,"mat-progress-spinner",0),o.nI1(1,"async")),2&i&&o.xc7("visibility",o.bMT(1,2,r.isLoadingMap$)?"visible":"hidden")},dependencies:[NW,Qn],styles:["[_nghost-%COMP%]{display:inline-block;vertical-align:middle}"]})}}return n})();const kpe=sn(Ro,n=>n.isPresentationMode);let Rpe=(()=>{class n{constructor(e,i){this.store=e,this.elementReference=i,this.isPresentationModeEnabled$=this.store.select(kpe)}setPresentationModeEnabled(e){this.store.dispatch(oR({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)(o.rXU(Yt),o.rXU(o.aKT))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-presentation-mode-button"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-slide-toggle",0),o.nI1(1,"async"),o.nI1(2,"async"),o.bIt("change",function(l){return r.setPresentationModeEnabled(l)}),o.nrm(3,"i",1),o.j41(4,"span"),o.EFF(5,"Presentation Mode"),o.k0s()()),2&i&&o.Y8G("checked",o.bMT(1,2,r.isPresentationModeEnabled$))("title",o.bMT(2,4,r.isPresentationModeEnabled$)?"Disable flashlight hover effect":"Enable flashlight hover effect")},dependencies:[l2,Qn],styles:["i[_ngcontent-%COMP%]{margin-right:4px}"]})}}return n})();const Ppe=sn(Ro,n=>n.experimentalFeaturesEnabled),Ope=sn(Ro,n=>n.hideFlatBuildings),LW=sn(Ro,n=>n.resetCameraIfNewFileIsLoaded),UW=sn(Ro,n=>n.layoutAlgorithm),Npe=sn(Ro,n=>n.maxTreeMapFiles);function pf(n,t=0){let e;return(...i)=>{clearTimeout(e),e=setTimeout(()=>{n.apply(this,i),e=null},t)}}const p7=(n,t,e)=>{const i=Number.parseInt(n.target.value);return ie?e:i};let IR=(()=>{class n{constructor(){this.step=1,this.disabled=!1}handleSliderOnChange(e){e!==this.value&&this.onChange(e)}handleInputOnChange(e){const i=p7(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=o.VBU({type:n,selectors:[["cc-slider"]],inputs:{value:"value",min:"min",max:"max",label:"label",step:"step",disabled:"disabled",onChange:"onChange"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"mat-label",1),o.EFF(2),o.k0s(),o.j41(3,"div",2)(4,"mat-slider",3)(5,"input",4),o.bIt("input",function(l){return r.handleInputOnChange(l)}),o.k0s()(),o.j41(6,"mat-form-field",5)(7,"input",6),o.bIt("input",function(l){return r.handleInputOnChange(l)}),o.k0s()()()()),2&i&&(o.R7$(2),o.JRh(r.label),o.R7$(2),o.Y8G("disabled",r.disabled)("step",r.step)("min",r.min)("max",r.max),o.R7$(),o.Y8G("value",r.value),o.R7$(2),o.Y8G("value",r.value)("disabled",r.disabled)("min",r.min)("max",r.max))},dependencies:[Uu,W$,Y3,Vu,n0],styles:["[_nghost-%COMP%]{width:100%;margin-top:8px;display:inline-block}"]})}}return n})();function Lpe(n,t){if(1&n&&(o.j41(0,"mat-option",2),o.EFF(1),o.k0s()),2&n){const e=t.$implicit;o.Y8G("value",e),o.R7$(),o.SpI(" ",e," ")}}function Upe(n,t){if(1&n&&(o.nrm(0,"cc-slider",3),o.nI1(1,"async")),2&n){const e=o.XpG();o.Y8G("label","Maximum TreeMap Files")("min",1)("max",1e3)("value",o.bMT(1,5,e.maxTreeMapFiles$))("onChange",e.handleChangeMaxTreeMapFiles)}}let Vpe=(()=>{class n{constructor(e){this.store=e,this.layoutAlgorithms=Object.values(ja),this.layoutAlgorithm$=this.store.select(UW),this.maxTreeMapFiles$=this.store.select(Npe),this.handleChangeMaxTreeMapFiles=pf(i=>{this.store.dispatch(v2({value:i}))},400)}handleSelectedLayoutAlgorithmChanged(e){this.store.dispatch(b2({value:e.value}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-map-layout-selection"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-form-field",0)(1,"mat-label"),o.EFF(2,"Map Layout"),o.k0s(),o.j41(3,"mat-select",1),o.nI1(4,"async"),o.bIt("selectionChange",function(l){return r.handleSelectedLayoutAlgorithmChanged(l)}),o.Z7z(5,Lpe,2,2,"mat-option",2,o.fX1),o.k0s()(),o.DNE(7,Upe,2,7,"cc-slider",3),o.nI1(8,"async")),2&i&&(o.R7$(3),o.Y8G("value",o.bMT(4,2,r.layoutAlgorithm$)),o.R7$(2),o.Dyx(r.layoutAlgorithms),o.R7$(2),o.vxM("TreeMapStreet"===o.bMT(8,4,r.layoutAlgorithm$)?7:-1))},dependencies:[Vu,Uu,t0,gd,IR,Qn],encapsulation:2})}}return n})();const VW=sn(Ro,n=>n.sharpnessMode);function Hpe(n,t){if(1&n&&(o.j41(0,"mat-option",2),o.EFF(1),o.k0s()),2&n){const e=t.$implicit;o.Y8G("value",e),o.R7$(),o.SpI(" ",e," ")}}let Qpe=(()=>{class n{constructor(e){this.store=e,this.sharpnessModes=Object.values(fd),this.sharpnessMode$=this.store.select(VW)}handleSelectedSharpnessModeChanged(e){this.store.dispatch(y2({value:e.value}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-display-quality-selection"]],standalone:!0,features:[o.aNF],decls:7,vars:3,consts:[["appearance","outline","subscriptSizing","dynamic"],[3,"selectionChange","value"],[3,"value"]],template:function(i,r){1&i&&(o.j41(0,"mat-form-field",0)(1,"mat-label"),o.EFF(2,"Display Quality"),o.k0s(),o.j41(3,"mat-select",1),o.nI1(4,"async"),o.bIt("selectionChange",function(l){return r.handleSelectedSharpnessModeChanged(l)}),o.Z7z(5,Hpe,2,2,"mat-option",2,o.fX1),o.k0s()()),2&i&&(o.R7$(3),o.Y8G("value",o.bMT(4,1,r.sharpnessMode$)),o.R7$(2),o.Dyx(r.sharpnessModes))},dependencies:[Vu,Uu,t0,gd,Qn],encapsulation:2})}}return n})();function A7(n){for(const e of Object.keys(n))if("object"==typeof n[e]&&null!==n[e]){const{x:i,y:r,z:s}=n[e];void 0!==i||void 0!==r||void 0!==s?n[e]=new pe(i??1,r??1,s??1):A7(n[e])}}const FR=sn(kd,n=>function e1(n){const t=[];if(void 0!==n)for(const{data:e}of lo(n))"Folder"!==e.type&&t.push(e);return t}(n.unifiedMapNode)),m7=n=>{const t=Math.floor(n.length/100);return t<=1?1:Math.min(t,10)};function qpe(n,t){if(1&n&&(o.j41(0,"span",2),o.EFF(1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.SpI(" ",e.label,"")}}let P2=(()=>{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 s=r.split(".");let l=EW,u=e;for(const[f,p]of s.entries())void 0!==l[p]&&(u[p]||(u[p]={},i++),f===s.length-1?u[p]=l[p]:(l=l[p],u=u[p]))}return 0!==i&&A7(e),n.includes("appSettings.amountOfTopLabels")&&(e.appSettings.amountOfTopLabels=m7(FR(t))),e})(this.settingsKeys,this.state.getValue());this.store.dispatch(_x({value:e})),this.callback&&this.callback()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(Vi))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-reset-settings-button"]],inputs:{settingsKeys:"settingsKeys",tooltip:"tooltip",label:"label",callback:"callback"},standalone:!0,features:[o.aNF],decls:3,vars:2,consts:[[3,"click","title"],[1,"fa","fa-undo"],[1,"reset-settings-button-label"]],template:function(i,r){1&i&&(o.j41(0,"button",0),o.bIt("click",function(){return r.applyDefaultSettings()}),o.nrm(1,"i",1),o.DNE(2,qpe,2,1,"span",2),o.k0s()),2&i&&(o.Y8G("title",r.tooltip),o.R7$(2),o.vxM(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 Wpe=()=>["appSettings.hideFlatBuildings","appSettings.isWhiteBackground","appSettings.resetCameraIfNewFileIsLoaded","appSettings.layoutAlgorithm","appSettings.maxTreeMapFiles"];let Xpe=(()=>{class n{constructor(e){this.store=e,this.screenshotToClipboardEnabled$=this.store.select(oG),this.experimentalFeaturesEnabled$=this.store.select(Ppe),this.isWhiteBackground$=this.store.select(RG),this.hideFlatBuildings$=this.store.select(Ope),this.resetCameraIfNewFileIsLoaded$=this.store.select(LW)}handleResetCameraIfNewFileIsLoadedChanged(e){this.store.dispatch(sR({value:e.checked}))}handleHideFlatBuildingsChanged(e){this.store.dispatch(A2({value:e.checked}))}handleIsWhiteBackgroundChanged(e){this.store.dispatch(_2({value:e.checked}))}handleExperimentalFeaturesEnabledChanged(e){this.store.dispatch(iR({value:e.checked}))}handleScreenshotToClipboardEnabledChanged(e){this.store.dispatch(nR({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-global-configuration-dialog"]],standalone:!0,features:[o.aNF],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)\nVisibility of buildings without area metric: Show buildings without area metric in the map (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&&(o.j41(0,"mat-toolbar",0)(1,"h2"),o.EFF(2,"Global Configuration"),o.k0s()(),o.j41(3,"mat-dialog-content")(4,"div",1),o.nrm(5,"cc-map-layout-selection")(6,"cc-display-quality-selection"),o.j41(7,"mat-slide-toggle",2),o.nI1(8,"async"),o.bIt("change",function(l){return r.handleHideFlatBuildingsChanged(l)}),o.EFF(9," Hide Flattened Buildings "),o.k0s(),o.j41(10,"mat-slide-toggle",2),o.nI1(11,"async"),o.bIt("change",function(l){return r.handleResetCameraIfNewFileIsLoadedChanged(l)}),o.EFF(12," Reset Camera when changing map "),o.k0s(),o.j41(13,"mat-slide-toggle",2),o.nI1(14,"async"),o.bIt("change",function(l){return r.handleIsWhiteBackgroundChanged(l)}),o.EFF(15," White Background "),o.k0s(),o.j41(16,"mat-slide-toggle",3),o.nI1(17,"async"),o.bIt("change",function(l){return r.handleExperimentalFeaturesEnabledChanged(l)}),o.EFF(18," Enable Experimental Features "),o.nrm(19,"i",4),o.k0s(),o.j41(20,"mat-slide-toggle",2),o.nI1(21,"async"),o.bIt("change",function(l){return r.handleScreenshotToClipboardEnabledChanged(l)}),o.EFF(22," Screenshot to clipboard "),o.k0s(),o.nrm(23,"cc-reset-settings-button",5),o.j41(24,"div",6)(25,"a",7),o.nrm(26,"em",8),o.EFF(27,"How-to "),o.k0s(),o.j41(28,"a",9),o.nrm(29,"em",8),o.EFF(30,"Github "),o.k0s(),o.j41(31,"a",10),o.nrm(32,"em",8),o.EFF(33,"Wiki "),o.k0s()()()(),o.j41(34,"mat-dialog-actions",11)(35,"button",12),o.EFF(36,"Close"),o.k0s()()),2&i&&(o.R7$(7),o.Y8G("checked",o.bMT(8,6,r.hideFlatBuildings$)),o.R7$(3),o.Y8G("checked",o.bMT(11,8,r.resetCameraIfNewFileIsLoaded$)),o.R7$(3),o.Y8G("checked",o.bMT(14,10,r.isWhiteBackground$)),o.R7$(3),o.Y8G("checked",o.bMT(17,12,r.experimentalFeaturesEnabled$)),o.R7$(4),o.Y8G("checked",o.bMT(21,14,r.screenshotToClipboardEnabled$)),o.R7$(3),o.Y8G("settingsKeys",o.lJ4(16,Wpe)))},dependencies:[Jg,ml,Vpe,Qpe,l2,P2,Jl,Jo,Ia,Qn],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})(),Kpe=(()=>{class n{constructor(e){this.dialog=e}showGlobalConfiguration(){this.dialog.open(Xpe,{panelClass:"cc-global-configuration-dialog"})}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-global-configuration-button"]],standalone:!0,features:[o.aNF],decls:4,vars:1,consts:[["mat-button","","title","Global Configuration",3,"click"],[3,"icon"]],template:function(i,r){1&i&&(o.j41(0,"button",0),o.bIt("click",function(){return r.showGlobalConfiguration()}),o.j41(1,"span"),o.EFF(2,"Global Configuration"),o.k0s(),o.nrm(3,"cc-action-icon",1),o.k0s()),2&i&&(o.R7$(3),o.Y8G("icon","fa fa-cog"))},dependencies:[Jo,Al],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 Ype(n,t){1&n&&o.nrm(0,"cc-file-panel")}function Zpe(n,t){1&n&&o.nrm(0,"cc-hovered-node-path-panel")}let Jpe=(()=>{class n{constructor(e){this.store=e,this.hoveredNodeId$=this.store.select(hd)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-tool-bar"]],standalone:!0,features:[o.aNF],decls:12,vars:3,consts:[[1,"right-aligned"]],template:function(i,r){1&i&&(o.nrm(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"),o.DNE(5,Ype,1,0,"cc-file-panel"),o.nI1(6,"async"),o.DNE(7,Zpe,1,0,"cc-hovered-node-path-panel"),o.j41(8,"div",0),o.nrm(9,"cc-loading-map-progress-spinner")(10,"cc-presentation-mode-button")(11,"cc-global-configuration-button"),o.k0s()),2&i&&(o.R7$(5),o.vxM(null===o.bMT(6,1,r.hoveredNodeId$)?5:7))},dependencies:[JD,foe,Coe,Tde,Lfe,bpe,Mpe,Bpe,Rpe,Kpe,Qn],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})(),HW=(()=>{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 s=0;for(const u of lo(e))if(Po(u)&&!u.data.isExcluded){const f=u.data.attributes[i],p=n.estimateFileExtension(u.data.name),m=r.get(p);s+=f,m?m.absoluteMetricValue+=f:r.set(p,n.getDistributionObject(p,f))}if(0===s)return[n.getNoneExtension()];let l=[];for(const u of r.values())0!==u.absoluteMetricValue&&(u.relativeMetricValue=100*u.absoluteMetricValue/s,l.push(u));return l.sort((u,f)=>f.absoluteMetricValue-u.absoluteMetricValue),l=n.getMetricDistributionWithOthers(l),l.length>0?l:[n.getNoneExtension()]}static getMetricDistributionWithOthers(e){const i=n.getOtherExtension(),r=[];for(const s of e)s.relativeMetricValue>n.OTHER_GROUP_THRESHOLD_VALUE?r.push(s):(i.absoluteMetricValue+=s.absoluteMetricValue,i.relativeMetricValue+=s.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),eAe=sn(kd,QW,(n,t)=>HW.getMetricDistribution(n.unifiedMapNode,t)),DR=sn(HS,n=>n.attributeDescriptors),iA=sn(Hc,n=>n.edgeMetric),BR=sn(gx,B2,Gg,iA,(n,t,e,i)=>({areaMetric:n,heightMetric:t,colorMetric:e,edgeMetric:i})),tAe=["*"];let zW=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-rounded-box"]],inputs:{backgroundColor:"backgroundColor"},standalone:!0,features:[o.aNF],ngContentSelectors:tAe,decls:3,vars:2,consts:[[1,"metric-value"],[1,"rounded-box"]],template:function(i,r){1&i&&(o.NAR(),o.j41(0,"div",0)(1,"div",1),o.SdG(2),o.k0s()()),2&i&&(o.R7$(),o.xc7("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 h0(...n){const t=oh(n),e=VA(n),{args:i,keys:r}=wj(n);if(0===i.length)return aa([],t);const s=new Xr.c(function iAe(n,t,e=Ul.D){return i=>{GW(t,()=>{const{length:r}=n,s=new Array(r);let l=r,u=r;for(let f=0;f{const p=aa(n[f],t);let m=!1;p.subscribe((0,sr._)(i,_=>{s[f]=_,m||(m=!0,u--),u||i.next(e(s.slice()))},()=>{--l||i.complete()}))},i)},i)}}(i,t,r?l=>xj(r,l):Ul.D));return e?s.pipe(Fc(e)):s}function GW(n,t,e){n?qs(e,n,t):t()}const rAe=sn(u_,n=>n.selectedBuildingId),f0=sn(rAe,Yw,(n,t)=>t?.get(n));class oAe{constructor(){this.vertexShaderCode=v(1812),this.fragmentShaderCode=v(1190)}}class sAe{constructor(t){this._buildings=new Array,this.mapSize=t,this.scales=new pe(1,1,1)}add(t){this._buildings.push(t)}get buildings(){return this._buildings}setScales(t){this.scales=new pe(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 pe(-1,0,-1));for(const s of this._buildings){const l=s.boundingBox.clone();if(l.min.multiply(this.scales),l.max.multiply(this.scales),l.translate(r),this.rayIntersectsAxisAlignedBoundingBox(t,l)){const u=t.intersectBox(l,new pe);if(u){const f=u.distanceTo(t.origin);f=s}}class aAe{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 pe(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=Br.hexToHSL(t);return i.decreaseLightness(e),i.getLightness()<10?i.setLightness(10):i.setLightness(i.getLightness()),i.toHex()}getColorVector(){return Br.getVector3(this._color)}getDefaultColorVector(){return Br.getVector3(this._defaultColor)}getDeltaColorVector(){return Br.getVector3(this._deltaColor)}getDefaultDeltaColorVector(){return Br.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 kR=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}(kR||{});const lAe=[[-1,0,0],[1,0,0],[0,-1,0],[0,1,0],[0,0,-1],[0,0,1]],jW=[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 $W(n,t,e,i,r,s,l){s.add(new aAe(r,new Qs(new pe(e.x,e.y,e.z),new pe(e.x+e.width,e.y+e.height,e.z+e.depth)),t,i)),n.uvs.set(jW,r*jW.length),function cAe(n,t,e){const{x:i,y:r,z:s,width:l,height:u,depth:f}=t,p=i+l,m=r+u,_=s+f;let b=4*e*6*3;n[b++]=i,n[b++]=r,n[b++]=s,n[b++]=i,n[b++]=m,n[b++]=s,n[b++]=i,n[b++]=m,n[b++]=_,n[b++]=i,n[b++]=r,n[b++]=_,n[b++]=p,n[b++]=r,n[b++]=s,n[b++]=p,n[b++]=m,n[b++]=s,n[b++]=p,n[b++]=m,n[b++]=_,n[b++]=p,n[b++]=r,n[b++]=_,n[b++]=i,n[b++]=r,n[b++]=s,n[b++]=i,n[b++]=r,n[b++]=_,n[b++]=p,n[b++]=r,n[b++]=_,n[b++]=p,n[b++]=r,n[b++]=s,n[b++]=i,n[b++]=m,n[b++]=s,n[b++]=i,n[b++]=m,n[b++]=_,n[b++]=p,n[b++]=m,n[b++]=_,n[b++]=p,n[b++]=m,n[b++]=s,n[b++]=p,n[b++]=r,n[b++]=_,n[b++]=i,n[b++]=r,n[b++]=_,n[b++]=i,n[b++]=m,n[b++]=_,n[b++]=p,n[b++]=m,n[b++]=_,n[b++]=p,n[b++]=r,n[b++]=s,n[b++]=i,n[b++]=r,n[b++]=s,n[b++]=i,n[b++]=m,n[b++]=s,n[b++]=p,n[b++]=m,n[b++]=s}(n.positions,e,r),function uAe(n,t,e,i,r,s){const{y:l,height:u}=t,p=i/(l+u-l);let m=6*r*4,_=3*m,b=6*r*6;const w=Br.getVector3Array(e);for(let F=0;F<6;F++){const D=dAe(F,n),T=lAe[F],I=m,O=m+1,R=m+2,P=m+3;s.isHeight.set(D,m);for(const te=m+4;m{class n{static{this.MINIMAL_BUILDING_HEIGHT=1}build(e,i,r,s){const l=new sAe(Ds);this.floorGradient=Br.gradient("#333333","#DDDDDD",this.getMaxNodeDepth(e)),this.materials=[i];const u=e.length,b=4*u*6,w={positions:new Float32Array(3*b),uvs:new Float32Array(2*b),normals:new Float32Array(3*b),colors:new Float32Array(3*b),indices:new Uint32Array(6*u*6),ids:new Float32Array(b),deltas:new Float32Array(b),isHeight:new Float32Array(b)};for(const[F,D]of e.entries())D.isLeaf?this.addBuilding(w,D,F,l,r,s):this.addFloor(w,D,F,l);return{mesh:this.buildMeshFromIntermediateVertexData(w),desc:l}}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,s){const l=this.getMarkingColorWithGradient(i);$W(e,i,this.mapNodeToLocalBox(i),l,r,s,0)}getMarkingColorWithGradient(e){if(e.markingColor){const r=Br.getNumber(e.markingColor)&(e.depth%2==0?14540253:16777215);return Br.convertNumberToHex(r)}return this.floorGradient[e.depth]}addBuilding(e,i,r,s,l,u){const f=this.mapNodeToLocalBox(i);f.height=this.ensureMinHeightUnlessDeltaIsNegative(i.height,i.heightDelta);let p=0;u&&i.deltas&&i.deltas[l.dynamicSettings.heightMetric]&&i.heightDelta&&(p=i.heightDelta,!i.flat&&p<0&&(f.height+=Math.abs(p))),$W(e,i,f,i.color,r,s,p)}buildMeshFromIntermediateVertexData(e){const s=new Float32Array(e.colors),l=new fi;return l.setAttribute("position",new x(e.positions,3)),l.setAttribute("normal",new x(e.normals,3)),l.setAttribute("isHeight",new x(e.isHeight,1)),l.setAttribute("uv",new x(e.uvs,2)),l.setAttribute("color",new x(e.colors,3)),l.setAttribute("deltaColor",new x(s,3)),l.setAttribute("subGeomIdx",new x(e.ids,1)),l.setAttribute("delta",new x(e.deltas,1)),l.setIndex(new x(e.indices,1)),l.addGroup(0,Number.POSITIVE_INFINITY,0),new cr(l,this.materials)}}return n})(),fAe=(()=>{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 hAe,this.material.precision="lowp";const s=this.geomGen.build(e,this.material,i,r);this.threeMesh=s.mesh,this.mapGeomDesc=s.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,s){const l=Ja.buildingArrayToMap(e);for(const u of this.mapGeomDesc.buildings)this.isBuildingSelected(i,u)||(l.get(u.id)||s.get(u.id)?u.decreaseLightness(n.LIGHTNESS_INCREASE):this.adjustSurroundingBuildingColors(e,u,r),this.setVertexColor(u.id,u.getColorVector(),u.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 s=e[0].getCenterPoint(Ds).distanceTo(i.getCenterPoint(Ds));this.decreaseLightnessByDistance(i,s)}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:s}}=i,{node:l}=e;if(l.flat)e.setInitialDeltaColor(r.flat);else if(l.deltas){const u=l.deltas[s];u>0&&e.setInitialDeltaColor(r.positiveDelta),u<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 s=n.NUM_OF_VERTICES,l=e*s,u=this.threeMesh.geometry.getAttribute("color"),f=this.threeMesh.geometry.getAttribute("deltaColor");for(let p=l;pthis.height?this.height:this.width}isVertical(){return this.height>this.width}area(){return this.width*this.height}getBottomRight(){return this.bottomRight}}class b7{constructor(t){this.height=0,this.width=0,this.FIXED_MARGIN=.5,this.mapNode=t}getNode(){return this.mapNode}createMarginatedRectangle(t){const e=new At(t.x+this.FIXED_MARGIN,t.y+this.FIXED_MARGIN);return new p0(e,this.width-2*this.FIXED_MARGIN,this.height-2*this.FIXED_MARGIN)}}var v7=function(n){return n[n.Horizontal=0]="Horizontal",n[n.Vertical=1]="Vertical",n}(v7||{});class qW extends b7{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 RR(n,t){let e=n.attributes[t]||0;if(0===e&&n.children&&n.children.length>0)for(const i of n.children)e+=RR(i,t);return e}const wx={calculateSize:RR,mergeDirectories:function pAe(n,t){let e=n;const i=RR(n,t);for(const r of n.children)if(!Po(r)&&i===RR(r,t)){const l=e.name;e=r,e.name=`${l}/${r.name}`;break}return e},buildNodeFrom:function AAe(n,t,e,i,r){const s=!(n.children&&n.children.length>0),l=p3(n,i),u=Ja.getHeightValue(i,n,e,l),f=Math.abs(s?Math.max(t*u,Ja.MIN_BUILDING_HEIGHT):Ja.FOLDER_HEIGHT),p=n.rect.height,m=n.rect.topLeft.x,_=n.rect.topLeft.y,b=n.zOffset*Ja.FOLDER_HEIGHT;return{name:n.name,id:n.id,width:n.rect.width,height:f,length:p,depth:n.zOffset,mapNodeDepth:100,x0:m,z0:b,y0:_,isLeaf:s,attributes:n.attributes,edgeAttributes:n.edgeAttributes,deltas:n.deltas,heightDelta:n.deltas?.[i.dynamicSettings.heightMetric]?t*n.deltas[i.dynamicSettings.heightMetric]:0,visible:DU(n,s,i,l),path:n.path,link:n.link,markingColor:t1(n,i.fileSettings.markedPackages),flat:l,color:BU(n,i,qp(i),r,l),incomingEdgePoint:f3(n.rect.width,f,p,new pe(m,b,_),Ds),outgoingEdgePoint:f3(n.rect.width,f,p,new pe(m,b,_),Ds)}}};var A0=function(n){return n[n.RIGHT=0]="RIGHT",n[n.LEFT=1]="LEFT",n}(A0||{});class lv extends qW{constructor(t,e,i=A0.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=wx.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),s=this.layoutBottomRow(e,i,t);return[...r,this.layoutStreet(e,i),...s]}layoutTopRow(t,e,i){const r=new At(t.x,t.y),s=[];if(this.orientation===A0.LEFT){const l=this.getLength(this.topRow);r.x+=this.width-l}for(let l=0;lMath.max(e,i.height),Number.MIN_VALUE)}calculateStreetOverhang(t){return this.orientation===A0.LEFT?this.calculateLeftStreetOverhang(t):this.calculateRightStreetOverhang(t)}calculateLeftStreetOverhang(t){const e=this.topRow[0],i=this.bottomRow[0],r=e instanceof xx&&e.streetRect?e.streetRect.topLeft.x-t.x:this.width-this.getLength(this.topRow),s=i instanceof xx&&i.streetRect?i.streetRect.topLeft.x-t.x:this.width-this.getLength(this.bottomRow);return r>0&&s>0?Math.min(r,s):0}calculateRightStreetOverhang(t){const e=this.topRow.at(-1),i=this.bottomRow.at(-1),r=t.x+this.width,s=e instanceof xx&&e.streetRect?r-e.streetRect.getBottomRight().x:this.width-this.getLength(this.topRow),l=i instanceof xx&&i.streetRect?r-i.streetRect.getBottomRight().x:this.width-this.getLength(this.bottomRow);return s>0&&l>0?Math.min(s,l):0}}var m0=function(n){return n[n.UP=0]="UP",n[n.DOWN=1]="DOWN",n}(m0||{});class xx extends qW{constructor(t,e,i,r=m0.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=wx.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),s=this.layoutRightRow(e,i,t);return[...r,this.layoutStreet(e,i),...s]}layoutLeftRow(t,e,i){const r=new At(t.x,t.y),s=[];if(this.orientation===m0.UP){const l=this.getLength(this.leftRow);r.y+=this.height-l}for(let l=0;le.mapNode.type===i.mapNode.type?0:e.mapNode.type===Zo.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 lv&&(r.orientation=A0.LEFT),this.leftRow.push(r),i+=r.height):this.rightRow.push(r)}rearrangeRows(){this.orientation===m0.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===m0.UP?this.calculateTopStreetOverhang(t):this.calculateBottomStreetOverhang(t)}calculateTopStreetOverhang(t){const e=this.leftRow[0],i=this.rightRow[0],r=e instanceof lv&&e.streetRect?e.streetRect.topLeft.y-t.y:this.height-this.getLength(this.leftRow),s=i instanceof lv&&i.streetRect?i.streetRect.topLeft.y-t.y:this.height-this.getLength(this.rightRow);return r>0&&s>0?Math.min(r,s):0}calculateBottomStreetOverhang(t){const e=this.leftRow.at(-1),i=this.rightRow.at(-1),r=t.y+this.height,s=e instanceof lv&&e.streetRect?r-e.streetRect.getBottomRight().y:this.height-this.getLength(this.leftRow),l=i instanceof lv&&i.streetRect?r-i.streetRect.getBottomRight().y:this.height-this.getLength(this.rightRow);return s>0&&l>0?Math.min(s,l):0}}class mAe extends b7{constructor(t){super(t)}calculateDimension(t){this.metricValue=wx.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 gAe extends b7{constructor(t){super(t),this.treeMapNodes=[]}calculateDimension(t){this.metricName=t,this.metricValue=Ja.calculateSize(this.mapNode,t),this.width=Math.sqrt(this.metricValue),this.height=Math.sqrt(this.metricValue)}}class WW{constructor(t){this.nodes=[],this.nodes=t}totalScaledSize(t,e,i,r){return t.reduce((s,l)=>s+this.scaledSize(l,i,r,e),0)}totalSize(t){return this.nodes.reduce((e,i)=>e+Ja.calculateSize(i,t),0)}min(t,e,i,r){return t.reduce((s,l)=>Math.min(s,this.scaledSize(l,i,r,e)),Number.MAX_VALUE)}max(t,e,i,r){return t.reduce((s,l)=>Math.max(s,this.scaledSize(l,i,r,e)),Number.MIN_VALUE)}populate(t,e,i,r){for(const s of t){const l=this.worstAspectRatio(this.nodes,e,i,r);if(!(this.worstAspectRatio([...this.nodes,s],e,i,r)0?F/_:0,T=new p0(new At(u,t.topLeft.y),D,_);b.push({...w,value:"File"===w.type?e:0,rect:this.applyNodeMargin(T,s),zOffset:r}),u+=D}return b}worstAspectRatio(t,e,i,r){const s=e.width,l=e.area(),u=this.totalScaledSize(t,r,i,l),f=this.min(t,r,i,l),p=this.max(t,r,i,l),m=Math.pow(s,2),_=Math.pow(u,2);return Math.max(m*p/_,_/(m*f))}}var w7=function(n){return n[n.topToBottom=0]="topToBottom",n[n.bottomToTop=1]="bottomToTop",n}(w7||{});class _Ae extends WW{constructor(t){super(t)}layout(t,e,i,r,s,l=w7.topToBottom){let u=t.topLeft.y;l!==w7.topToBottom&&this.nodes.reverse();const f=this.nodes,p=t.area(),m=t.height,_=this.totalScaledSize(f,i,e,p)/m,b=[];for(const w of f){const F=this.scaledSize(w,e,p,i),D=_>0?F/_:0,T=new p0(new At(t.topLeft.x,u),_,D);b.push({...w,value:"File"===w.type?e:0,rect:this.applyNodeMargin(T,s),zOffset:r}),u+=D}return b}worstAspectRatio(t,e,i,r){const s=e.height,l=e.area(),u=this.totalScaledSize(t,r,i,l),f=this.min(t,r,i,l),p=this.max(t,r,i,l),m=s**2,_=u**2;return Math.max(m*p/_,_/(m*f))}}class bAe extends gAe{constructor(t){super(t)}layout(t,e=new At(0,0)){const i=this.createMarginatedRectangle(e),r={...this.mapNode,value:this.metricValue,rect:i,zOffset:0},s=this.mapNode.children.filter(l=>Ja.calculateSize(l,this.metricName)>0);return this.treeMapNodes.push(r),s.length>0&&this.createNodes(s,i,this.metricValue,1,t),this.treeMapNodes}createNodes(t,e,i,r,s){let l=0,u=new p0(new At(e.topLeft.x,e.topLeft.y),e.width,e.height),f=i;const p=this.orderBySizeDescending(t);do{const m=this.createStrip(u,p.slice(l),f),_=m.totalSize(this.metricName);if(_>0){const b=this.createStripNodes(m,u,f,r,s);this.createChildrenNodes(b,r,s),u=this.remainingRectangle(u,m,f,u.area()),f-=_}l+=m.nodes.length}while(l0){const s=r.children.filter(l=>Ja.calculateSize(l,this.metricName)>0);if(s.length>0){const l=Ja.calculateSize(r,this.metricName);this.createNodes(s,r.rect,l,e+1,i)}}}orderBySizeDescending(t){return t.sort((e,i)=>Ja.calculateSize(i,this.metricName)-Ja.calculateSize(e,this.metricName))}}class cv{static createStreetLayoutNodes(t,e,i,r){const s=H_(e.files),l=i.find(F=>F.name===e.dynamicSettings.heightMetric).maxValue*s,u=e.dynamicSettings.areaMetric,f=wx.mergeDirectories(t,u),m=this.createBoxes(f,u,e,v7.Vertical,1,e.appSettings.maxTreeMapFiles),_=new lv(f,m,0);return _.calculateDimension(u),_.layout(.02*e.dynamicSettings.margin,new At(0,0)).map(F=>wx.buildNodeFrom(F,this.calculateHeightScale(t,Ds,l),l,e,r))}static createBoxes(t,e,i,r,s,l){const u=[],f=i.dynamicSettings.areaMetric;for(let p of t.children){if(Po(p)){u.push(new mAe(p));continue}if(hu(p.path,i.fileSettings.blacklist,"exclude"))continue;const m=i.appSettings.layoutAlgorithm,_=cv.countFileDescendants(p);if(m===ja.TreeMapStreet&&_<=l){const b=cv.createTreeMap(p);u.push(b)}else{p=wx.mergeDirectories(p,f);const b=cv.createBoxes(p,e,i,1-r,s+1,l),w=cv.createStreet(p,r,b,s);u.push(w)}}return u}static createStreet(t,e,i,r){return e===v7.Horizontal?new lv(t,i,r):new xx(t,i,r)}static createTreeMap(t){return new bAe(t)}static countFileDescendants(t){let e=0;for(const i of t.children)e+=Po(i)?1:cv.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 x7=sn(Ro,n=>n.isLoadingFile);class yAe extends UU{constructor(t,e){super(t,e),this.screenSpacePanning=!1,this.mouseButtons={LEFT:2,MIDDLE:1,RIGHT:0},this.touches={ONE:1,TWO:3}}}let Nd=(()=>{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 PU,this.zoomPercentage$=new Xd.t(100)}setControlTarget(e){this.controls.target.set(e.x,e.y,e.z)}rotateCameraInVectorDirection(e,i,r){const s=this.getZoom();this.lookAtDirectionFromTarget(e,i,r),this.applyOldZoom(s),this.threeRendererService.render(),this.onInput(this.threeCameraService.camera)}autoFitTo(){setTimeout(()=>{const e=this.getBoundingSphere();if(-1===e.radius)return;const i=this.cameraPerspectiveLengthCalculation(e);this.threeCameraService.camera.position.set(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 s=this.threeCameraService.camera.fov*Math.PI/180*1.3,l=e.radius/Math.tan(s/2);return Math.sqrt(Math.pow(l,2)+Math.pow(l,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 Qs).setFromObject(this.threeSceneService.mapGeometry).getBoundingSphere(new Js)}lookAtDirectionFromTarget(e,i,r){this.threeCameraService.camera.position.set(this.controls.target.x,this.controls.target.y,this.controls.target.z);const s=new cr(new Vc(20,20,20),new Mz);this.threeSceneService.scene.add(s),s.position.set(this.controls.target.x,this.controls.target.y,this.controls.target.z),s.translateX(e),s.translateY(i),s.translateZ(r),this.threeCameraService.camera.lookAt(s.getWorldPosition(s.position)),this.threeSceneService.scene.remove(s)}getZoom(){return this.threeCameraService.camera.position.distanceTo(this.controls.target)}applyOldZoom(e){this.threeCameraService.camera.translateZ(e)}init(e){this.controls=new yAe(this.threeCameraService.camera,e),this.controls.mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2},this.controls.zoomToCursor=!0;const i=r=>{this.controls.zoomToCursor=!r.altKey};window.addEventListener("keydown",i),window.addEventListener("keyup",i),window.addEventListener("mousemove",i),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 pe).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)}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(rf),o.KVO(Rd),o.KVO(Cr))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),KW=(()=>{class n{constructor(e,i,r,s){this.state=e,this.threeCameraService=i,this.threeSceneService=r,this.threeMapControlsService=s,this.mapLabelColors=af.labelColorAndAlpha,this.LABEL_COLOR_RGB=Br.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 pe(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:s,dynamicSettings:l}=this.state.getValue(),{scaling:u,layoutAlgorithm:f,showMetricLabelNodeName:p,showMetricLabelNameValue:m}=s,{margin:_,heightMetric:b}=l,w=new pe(u.x,u.y,u.z);let F="";if(p||r&&!m)F=`${e.name}`;else if(!m)return;m&&(""!==F&&(F+="\n"),F+=`${e.attributes[b]} ${b}`);const D=this.makeText(F,30,e);let T=e.height+Math.abs(e.heightDelta??0);T=T*w.y>i*w.y?T:i,this.nodeHeight=this.nodeHeight>T?this.nodeHeight:T;const O=e.z0,P=(e.x0-Ds+e.width/2)*w.x,ee=(O+this.nodeHeight)*w.y,J=(O+e.height)*w.y,te=(e.y0-Ds+e.length/2)*w.z,ie=this.LABEL_HEIGHT_COEFFICIENT*_*this.LABEL_SCALE_FACTOR;let W=ie+D.heightValue/2;switch(f){case ja.StreetMap:case ja.TreeMapStreet:W/=10,this.LABEL_HEIGHT_POSITION=0,D.line=this.makeLine(P,ee+W,J,te);break;default:D.line=this.makeLine(P,ee+ie/2,J,te)}D.sprite.position.set(P,ee+W,te),D.sprite.material.color=new _n(this.mapLabelColors.rgb),D.sprite.material.opacity=this.mapLabelColors.alpha,D.sprite.userData={node:e},this.threeSceneService.labels.add(D.sprite),this.threeSceneService.labels.add(D.line),this.labels.push(D)}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 N5&&this.disposeSprite(i),i instanceof Ou&&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 pe(e.x,e.y,e.z),{margin:r}=this.state.getValue().dynamicSettings,s=new pe(0,this.LABEL_HEIGHT_COEFFICIENT*r*this.LABEL_SCALE_FACTOR,0);for(const l of this.labels){const u=i.clone();l.sprite.position.sub(s).divide(this.previousScaling).multiply(u).add(s),u.y>1&&(u.y=1);const p=l.line.geometry.attributes.position;p.setX(0,p.getX(0)*u.x),p.setY(0,p.getY(0)*u.y),p.setZ(0,p.getZ(0)*u.z),p.setX(1,l.sprite.position.x),p.setY(1,l.sprite.position.y),p.setZ(1,l.sprite.position.z),p.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 s=document.createElement("canvas"),l=s.getContext("2d");l.font=`${i}px Roboto`;const f=e.split("\n"),p=l.measureText(f[0]).width,m=l.measureText(f[1]).width;s.width=p>m?p+25:m+25,s.height=25+i*f.length,l.font=`${i}px Roboto`,l.fillStyle="rgba(255,255,255,1)",l.lineJoin="round",l.lineCap="round",l.lineWidth=5,n.drawRectangleWithRoundedCorners(l,0,0,s.width,s.height,this.LABEL_CORNER_RADIUS),l.fillStyle="rgba(0,0,0,1)",l.textAlign="center",l.textBaseline="middle";for(const[F,D]of f.entries())l.fillText(D,s.width/2,s.height*(F+1)/(f.length+1));const _=new Is(s);_.minFilter=Ts,_.needsUpdate=!0;const b=new P5({map:_}),w=new N5(b);return this.lineCount=f.length,this.setLabelSize(w,null,s.width),{sprite:w,heightValue:s.height,line:null,lineCount:f.length,node:r}}static drawRectangleWithRoundedCorners(e,i,r,s,l,u){s<2*u&&(u=s/2),l<2*u&&(u=l/2),e.beginPath(),e.moveTo(i+u,r),e.arcTo(i+s,r,i+s,r+l,u),e.arcTo(i+s,r+l,i,r+l,u),e.arcTo(i,r+l,i,r,u),e.arcTo(i,r,i+s,r,u),e.closePath(),e.fill()}setLabelSize(e,i,r=e.material.map.image.width){const s=(new Qs).setFromObject(this.threeSceneService.mapGeometry).getBoundingSphere(new Js).center;if(this.threeCameraService.camera){const l=this.threeCameraService.camera.position.distanceTo(s);null!==i&&(this.lineCount=i.lineCount),e.scale.set(l/this.LABEL_WIDTH_DIVISOR*r,this.lineCount>1?l/25:l/this.LABEL_HEIGHT_DIVISOR,1)}}makeLine(e,i,r,s){const l=new Za({color:this.LABEL_COLOR_RGB,linewidth:2}),u=(new fi).setFromPoints([new pe(e,r,s),new pe(e,i+this.LABEL_HEIGHT_POSITION,s)]);return new Ou(u,l)}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Vi),o.KVO(rf),o.KVO(Rd),o.KVO(Nd))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();const YW=sn(Ro,n=>n.amountOfEdgePreviews),wAe=sn(Aa,iA,YW,(n,t,e)=>new Set(xAe(n.nodeEdgeMetricsMap,t,e))),xAe=(n,t,e)=>{const i=[];if(0===e)return i;const r=n.get(t);if(void 0===r)return i;for(const s of r.keys())if(i.push(s),i.length===e)break;return i},CAe=sn(HS,n=>n.edges),EAe=sn(wAe,CAe,iA,(n,t,e)=>{const i=C(t);return((n,t,e)=>{for(const i of t)if(i.visible=$l.none,void 0!==i.attributes[e]){const r=n.has(i.fromNodeName),s=n.has(i.toNodeName);r&&s?i.visible=$l.both:r?i.visible=$l.from:s&&(i.visible=$l.to)}})(n,i,e),i});let SAe=(()=>{class n{constructor(e,i,r,s){this.store=e,this.state=i,this.threeSceneService=r,this.idToBuildingService=s,this.VERTICES_PER_LINE=5,this.arrows=new Array,this.HIGHLIGHT_BUILDING_DELAY=1,this.debounceCalculation=pf(l=>this.resetEdgesOfBuildings(l),this.HIGHLIGHT_BUILDING_DELAY),this.subscription=this.store.select(hd).pipe(ao(l=>{if(null!==l){const u=this.idToBuildingService.get(l);this.onBuildingHovered(u)}else this.onBuildingUnhovered()})).subscribe(),this.resetEdgesOfBuildings=l=>{this.isEdgeApplicableForBuilding(l)&&(this.clearArrows(),this.showEdgesOfBuildings(l)),this.scale()},this.onBuildingSelected=l=>{this.isEdgeApplicableForBuilding(l.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:s,dynamicSettings:l}=this.state.getValue(),u=100*s.edgeHeight;if(e.attributes?.[l.heightMetric]&&i.attributes?.[l.heightMetric]){const f=this.createCurve(i,e,u),p=Br.getNumber(s.mapColors[r?"outgoingEdge":"incomingEdge"]);this.highlightBuilding(r?e:i),this.setCurveColor(f,p)}}addEdgePreview(){const e=EAe(this.state.getValue());for(const i of e){const r=this.map.get(i.fromNodeName),s=this.map.get(i.toNodeName);if(r&&s&&i.visible!==$l.none&&i.visible){const l=100*this.state.getValue().appSettings.edgeHeight,u=this.createCurve(r,s,l);this.previewMode(u,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:s}=r;i.set(s.path,s)}if(e){const{node:s}=e;i.set(s.path,s)}i.size>0?this.buildPairingEdges(i):this.addEdgePreview()}buildPairingEdges(e){const{edges:i}=this.state.getValue().fileSettings;for(const r of i){const s=this.map.get(r.fromNodeName);if(void 0===s)continue;const l=this.map.get(r.toNodeName);void 0!==l&&(e.has(s.path)?(this.addArrow(l,s,!0),this.threeSceneService.highlightBuildings()):e.has(l.path)&&(this.addArrow(l,s,!1),this.threeSceneService.highlightBuildings()))}}createCurve(e,i,r){const s=e.outgoingEdgePoint.clone(),l=i.incomingEdgePoint.clone(),u=Math.max(s.y+i.height,l.y+1)+r;return s.setY(u),l.setY(u),new uz(e.outgoingEdgePoint,s,l,i.incomingEdgePoint)}highlightBuilding(e){const i=this.threeSceneService.getMapMesh().getMeshDescription().getBuildingByPath(e.path);this.threeSceneService.addBuildingToHighlightingList(i)}setCurveColor(e,i,r=50){const s=e.getPoints(r),l=this.buildLine(s,i);l.add(this.buildArrow(s)),this.threeSceneService.edgeArrows.add(l),this.arrows.push(l)}previewMode(e,i){if(i===$l.both||i===$l.from){const r=this.makeArrowFromBezier(e,!1);this.threeSceneService.edgeArrows.add(r),this.arrows.push(r)}if(i===$l.both||i===$l.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 s=e.getPoints(r),{incomingEdge:l,outgoingEdge:u}=this.state.getValue().appSettings.mapColors,f=i?l:u,p=i?s.slice(r+1-this.VERTICES_PER_LINE):s.slice(0,s.length-(r+1-this.VERTICES_PER_LINE));return this.buildEdge(p,Br.getNumber(f))}buildEdge(e,i){const r=this.buildLine(e,i);return r.add(this.buildArrow(e)),r}buildLine(e,i=0){const r=new fi;r.setFromPoints(e);const s=new Za({color:i,linewidth:1});return new Ou(r,s)}buildArrow(e,i=0,r=10,s=10){const l=e.at(-1).clone().sub(e.at(-2).clone()).normalize(),u=e.at(-1).clone();return l.y<0&&(u.y+=r+1),new cre(l,u,r+1,i,r,s)}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(Vi),o.KVO(Rd),o.KVO(zS))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var O2=function(){var n=0,t=document.createElement("div");function e(m){return t.appendChild(m.dom),m}function i(m){for(var _=0;_=s+1e3&&(u.update(1e3*l/(m-s),100),s=m,l=0,p)){var _=performance.memory;p.update(_.usedJSHeapSize/1048576,_.jsHeapSizeLimit/1048576)}return m},update:function(){r=this.end()},domElement:t,setMode:i}};O2.Panel=function(n,t,e){var i=1/0,r=0,s=Math.round,l=s(window.devicePixelRatio||1),u=80*l,f=48*l,p=3*l,m=2*l,_=3*l,b=15*l,w=74*l,F=30*l,D=document.createElement("canvas");D.width=u,D.height=f,D.style.cssText="width:80px;height:48px";var T=D.getContext("2d");return T.font="bold "+9*l+"px Helvetica,Arial,sans-serif",T.textBaseline="top",T.fillStyle=e,T.fillRect(0,0,u,f),T.fillStyle=t,T.fillText(n,p,m),T.fillRect(_,b,w,F),T.fillStyle=e,T.globalAlpha=.9,T.fillRect(_,b,w,F),{dom:D,update:function(I,O){i=Math.min(i,I),r=Math.max(r,I),T.fillStyle=e,T.globalAlpha=1,T.fillRect(0,0,u,b),T.fillStyle=t,T.fillText(s(I)+" "+n+" ("+s(i)+"-"+s(r)+")",p,m),T.drawImage(D,_+l,b,w-l,F,_,b,w-l,F),T.fillRect(_+w-l,b,l,F),T.fillStyle=e,T.globalAlpha=.9,T.fillRect(_+w-l,b,l,s((1-I/O)*F))}}};const N2=O2;let ZW=(()=>{class n{constructor(e){this.threeRendererService=e,this.isDevelopmentMode=(0,o.naY)(),this.init=i=>{this.isDevelopmentMode&&(this.stats=new N2,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 N2.Panel("triangles","#ff8","#221")),maxHeight:0},this.glCallsPanel={panel:this.stats.addPanel(new N2.Panel("calls","#f8f","#212")),maxHeight:0},this.geometryMemoryPanel={panel:this.stats.addPanel(new N2.Panel("geo. mem","#f08","#221")),maxHeight:0},this.textureMemoryPanel={panel:this.stats.addPanel(new N2.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(),s=this.threeRendererService.getMemoryInfo();this.processPanel(this.trianglesPanel,r.triangles),this.processPanel(this.glCallsPanel,r.calls),this.processPanel(this.geometryMemoryPanel,s.geometries),this.processPanel(this.textureMemoryPanel,s.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)(o.KVO(Cr))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),JW=(()=>{class n{constructor(e){this.threeMapControlsService=e,this.eventEmitter=new PU,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 UU(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 $z;r.setFromCamera(i,this.camera);const s=[];for(const u of lo(this.cubeGroup))Po(u)&&s.push(u.data);const[l]=r.intersectObjects(s);return l?l.object:null}transformIntoCanvasVector(e){const{domElement:i}=this.renderer,r=this.renderer.getPixelRatio(),s=i.getBoundingClientRect();return new At((e.clientX-s.left)/i.width*r*2-1,-(e.clientY-s.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,L2.changeCursorIndicator(rA.Pointer),this.eventEmitter.emit("viewCubeHoveredEvent",{cube:e})}triggerViewCubeUnhoverEvent(){this.currentlyHovered=null,L2.changeCursorIndicator(rA.Default),this.eventEmitter.emit("viewCubeUnHoveredEvent")}subscribe(e,i){this.eventEmitter.on(e,r=>{i(r)})}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Nd))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),eX=(()=>{class n{constructor(e,i,r,s,l){this.threeSceneService=e,this.threeCameraService=i,this.threeMapControlsService=r,this.threeRendererService=s,this.threeStatsService=l,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=u=>{"INPUT"===u.target.nodeName&&this.threeMapControlsService.controls.stopListenToKeyEvents()},this.onFocusOut=u=>{"INPUT"===u.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)(o.KVO(Rd),o.KVO(rf),o.KVO(Nd),o.KVO(Cr),o.KVO(ZW))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var PR=function(n){return n[n.LeftClick=0]="LeftClick",n[n.RightClick=2]="RightClick",n}(PR||{}),rA=function(n){return n.Default="default",n.Grabbing="grabbing",n.Pointer="pointer",n.Moving="move",n}(rA||{});let L2=(()=>{class n{constructor(e,i,r,s,l,u,f,p,m){this.threeCameraService=e,this.threeRendererService=i,this.threeSceneService=r,this.store=s,this.state=l,this.codeMapLabelService=u,this.viewCubeMouseEvents=f,this.threeViewerService=p,this.idToBuilding=m,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 $z,this.labelHoveredBuilding=null,this.labelSelectedBuilding=null,this.subscriptions=[this.store.select(Qc).pipe(ao(()=>this.onFilesSelectionChanged())).subscribe(),this.store.select(sf).pipe(ao(_=>this.onBlacklistChanged(_))).subscribe(),this.store.select(hd).pipe(ao(_=>{null!==_?this.hoverNode(_):this.unhoverNode(!1)})).subscribe()],this.onViewCubeEventPropagation=_=>{switch(_.type){case"mousemove":this.onDocumentMouseMove(_.event);break;case"mouseup":this.onDocumentMouseUp(_.event);break;case"mousedown":this.onDocumentMouseDown(_.event);break;case"dblclick":this.onDocumentDoubleClick()}},this.onDocumentMouseMove=_=>{this.mouse.x=_.clientX,this.mouse.y=_.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",pf(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",pf(()=>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 dN(n,t){return hu(n,t,"exclude")||hu(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 s=this.transformHTMLToSceneCoordinates(),l=this.threeCameraService.camera;l.isPerspectiveCamera&&this.raycaster.setFromCamera(s,l);const u=this.calculateHoveredLabel(e);u&&(this.threeSceneService.animateLabel(u.object,this.raycaster,e),r=u.object.userData.node.path),this.intersectedBuilding=""!==r?i.getBuildingByPath(r):i.checkMouseRayMeshIntersection(s,l);const f=this.threeSceneService.getHighlightedBuilding(),p=this.intersectedBuilding;f?.id!==p?.id&&(this.clearLabelHoveredBuilding(),this.threeSceneService.resetLabel(),this.unhoverBuilding(),p&&!this.isGrabbingOrMoving()&&(this.setLabelHoveredLeaf(p,e),this.hoverBuilding(p)))}}}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,s=this.threeSceneService.getLabelForHoveredNode(e,r);return this.labelHoveredBuilding=e.node,s}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 s=i.node.link;if(s)return void window.open(s,"_blank")}}onDocumentMouseDown(e){e.button===PR.RightClick&&(this.isMoving=!0,n.changeCursorIndicator(rA.Moving)),e.button===PR.LeftClick&&(this.isGrabbing=!0,n.changeCursorIndicator(rA.Grabbing)),this.mouseOnLastClick={x:e.clientX,y:e.clientY},document.activeElement.blur()}onDocumentMouseUp(e){this.viewCubeMouseEvents.resetIsDragging(),e.button===PR.LeftClick?this.onLeftClick():this.onRightClick(),n.changeCursorIndicator(void 0!==this.intersectedBuilding?rA.Pointer:rA.Default)}calculateHoveredLabel(e){let i=null;for(let r=0;r0&&(i=null===i?s[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(rA.Pointer);const s=Yw(this.state.getValue()).get(e.node.id);for(const{data:l}of lo(s)){const u=this.idToBuilding.get(l.id);u&&this.threeSceneService.addBuildingToHighlightingList(u)}this.threeSceneService.highlightBuildings(),i&&this.store.dispatch(bx({value:e.node.id}))}transformHTMLToSceneCoordinates(){const{renderer:e,renderer:{domElement:i}}=this.threeRendererService,r=e.getPixelRatio(),s=i.getBoundingClientRect();return{x:this.mouse.x/i.width*r*2-1,y:-(this.mouse.y-s.top)/i.height*r*2+1}}unhoverBuilding(e=!0){this.isGrabbingOrMoving()||n.changeCursorIndicator(rA.Default),this.threeSceneService.getConstantHighlight().size>0?this.threeSceneService.clearHoverHighlight():this.threeSceneService.clearHighlight(),e&&this.store.dispatch(bx({value:null}))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(rf),o.KVO(Cr),o.KVO(Rd),o.KVO(Yt),o.KVO(Vi),o.KVO(KW),o.KVO(JW),o.KVO(eX),o.KVO(zS))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),tX=(()=>{class n{constructor(e,i,r,s,l,u,f){this.store=e,this.state=i,this.threeSceneService=r,this.codeMapLabelService=s,this.codeMapArrowService=l,this.threeStatsService=u,this.codeMapMouseEventService=f,this.nodesByColor={positive:[],neutral:[],negative:[]},this.onIsLoadingFileChanged=p=>{p?this.threeSceneService?.dispose():this.threeStatsService?.resetPanels()},this.subscription=this.store.select(x7).pipe(ao(this.onIsLoadingFileChanged)).subscribe()}ngOnDestroy(){this.subscription.unsubscribe()}render(e){const i=this.getNodes(e),r=this.sortVisibleNodesByHeightDescending(i);this.unflattenedNodes=r.filter(({flat:s})=>!s),this.setNewMapMesh(i,r),this.getNodesMatchingColorSelector(this.unflattenedNodes),this.setLabels(this.unflattenedNodes),this.setArrows(r)}setNewMapMesh(e,i){const r=this.state.getValue(),s=new fAe(i,r,Bd(r.files));this.threeSceneService.setMapMesh(e,s)}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=Aa(i).nodeMetricData,{appSettings:{layoutAlgorithm:s},files:l}=i,u=Bd(l);switch(s){case ja.StreetMap:case ja.TreeMapStreet:return cv.createStreetLayoutNodes(e,i,r,u);case ja.SquarifiedTreeMap:return function Kre(n,t,e,i){const r=H_(t.files),s=e.find(m=>m.name===t.dynamicSettings.heightMetric)?.maxValue*r,l=e.find(m=>m.name===t.dynamicSettings.areaMetric)?.maxValue*r,u=2*Ds/s;if(TG(n)){const m=lo(n),_=[Ja.buildRootFolderForFixedFolders(m.data,u,t,i)],b=2*Ds+FG(m)*(t.dynamicSettings.margin/CG),w=b/_[0].width,F=b/_[0].length;return function Yre(n,t,e){n.x0*=e,n.y0*=t,n.width*=e,n.length*=t}(_[0],w,F),[..._,...SG(m,t,w,F,0,0,u,s,l,i,r)]}const f=IG(n,t,r,l),p=[];for(const m of f.treeMap)p.push(Ja.buildNodeFrom(m,u,s,t,i));return p}(e,i,r,u);default:return[]}}sortVisibleNodesByHeightDescending(e){return this.state.getValue().appSettings.experimentalFeaturesEnabled?(this.setMinBuildingLength(e),e.filter(r=>r.visible&&r.width>0).sort((r,s)=>s.height-r.height)):e.filter(r=>r.visible&&r.length>0&&r.width>0).sort((r,s)=>s.height-r.height)}setMinBuildingLength(e){for(const i of e)i.length<=0&&(i.length=2)}getNodesMatchingColorSelector(e){const i=this.state.getValue().dynamicSettings;this.nodesByColor={positive:[],negative:[],neutral:[]};for(const r of e)if(r.isLeaf){const s=r.attributes[i.colorMetric];"unary"===i.colorMetric?this.nodesByColor.positive.push(r):null!==s&&(sp.isLeaf).slice(0,l);this.setBuildingLabel(f,u)}}}setArrows(e){this.codeMapArrowService.clearArrows(),this.codeMapArrowService.addEdgeMapBasedOnNodes(e),this.codeMapArrowService.addEdgePreview()}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(Vi),o.KVO(Rd),o.KVO(KW),o.KVO(SAe),o.KVO(ZW),o.KVO(L2))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),C7=(()=>{class n{constructor(e,i){this.store=e,this.codeMapRenderService=i}createNodeObservable(){return h0([this.store.select(PW),this.store.select(f0),this.createTopLevelNodeObservable()]).pipe((0,$n.T)(([s,l,u])=>s??l??u))}createTopLevelNodeObservable(){return h0([this.store.select(kd),this.store.select(Hc)]).pipe(ur(([e])=>!!e.unifiedMapNode),(0,$n.T)(([e])=>this.findTopLevelNode(e)))}findTopLevelNode(e){const i=this.codeMapRenderService.getNodes(e.unifiedMapNode),r=this.codeMapRenderService.sortVisibleNodesByHeightDescending(i);return r.reduce((s,l)=>s.attributes.unary>l.attributes.unary?s:l,r[0])}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(tX))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),nX=(()=>{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:Po(r)}}ngOnInit(){this.isNodeALeaf$=this.nodeSelectionService.createNodeObservable().pipe((0,$n.T)(e=>this.isNodeALeaf(e))),this.attributeType$=this.store.select(((n,t)=>sn(BR,SU,(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)(o.rXU(Yt),o.rXU(C7))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-metric-chooser-type"]],inputs:{metricFor:"metricFor",attributeType:"attributeType"},standalone:!0,features:[o.aNF],decls:4,vars:6,consts:[[3,"hidden"]],template:function(i,r){1&i&&(o.j41(0,"span",0),o.nI1(1,"async"),o.EFF(2),o.nI1(3,"async"),o.k0s()),2&i&&(o.Y8G("hidden",o.bMT(1,2,r.isNodeALeaf$)),o.R7$(2),o.SpI(" ",o.bMT(3,4,r.attributeType$),"\n"))},dependencies:[Qn],encapsulation:2})}}return n})();function FAe(n,t){if(1&n&&(o.j41(0,"cc-rounded-box",1),o.nI1(1,"async"),o.EFF(2),o.nI1(3,"async"),o.k0s()),2&n){let e;const i=o.XpG(),r=o.XpG();o.Y8G("backgroundColor",r.calculateBackgroundColor(i.deltas[o.bMT(1,2,r.primaryMetricNames$)[r.metricFor]])),o.R7$(2),o.SpI(" \u0394",null==(e=i.deltas[o.bMT(3,4,r.primaryMetricNames$)[r.metricFor]])?null:e.toLocaleString()," ")}}function DAe(n,t){if(1&n&&(o.j41(0,"cc-rounded-box"),o.nrm(1,"cc-metric-chooser-type",0),o.j41(2,"span"),o.EFF(3),o.nI1(4,"async"),o.k0s()(),o.DNE(5,FAe,4,6,"cc-rounded-box",1)),2&n){let e;const i=t,r=o.XpG();o.R7$(),o.Y8G("metricFor",r.metricFor),o.R7$(2),o.JRh(null==(e=i.attributes[o.bMT(4,3,r.primaryMetricNames$)[r.metricFor]])?null:e.toLocaleString()),o.R7$(2),o.vxM(i.deltas?5:-1)}}let BAe=(()=>{class n{constructor(e,i){this.nodeSelectionService=e,this.store=i,this.node$=this.nodeSelectionService.createNodeObservable(),this.primaryMetricNames$=this.store.select(BR)}calculateBackgroundColor(e){return"heightMetric"===this.metricFor&&e>0?"#b1d8a8":e<0?"#ffcccc":"#e6e6e6"}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(C7),o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-metric-chooser-value"]],inputs:{metricFor:"metricFor"},standalone:!0,features:[o.aNF],decls:2,vars:3,consts:[[3,"metricFor"],[3,"backgroundColor"]],template:function(i,r){if(1&i&&(o.DNE(0,DAe,6,5),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.node$))?0:-1,s)}},dependencies:[zW,nX,Qn],styles:["[_nghost-%COMP%]{display:flex;gap:2px}"]})}}return n})(),OR=(()=>{class n{transform(e,i){if(null==e)return Jw.get(i)??"";const r=e.title?`${e.title} (${i})`:`${i}`;let s=e.description?`\n${e.description}`:"";return s+=e.hintHighValue?`\nHigh Values: ${e.hintHighValue}`:"",s+=e.hintLowValue?`\nLow Values: ${e.hintLowValue}`:"",s.length>0?`${r}:${s}`:r}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=o.EJ8({name:"attributeDescriptorTooltip",type:n,pure:!0,standalone:!0})}}return n})(),kAe=(()=>{class n{transform(e,i){const r=i.toLocaleLowerCase();return e.filter(s=>{let l=s.name;return("complexity"===s.name||"sonar_complexity"===s.name)&&(l+=" (formerly mcc)"),l.toLocaleLowerCase().includes(r)})}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=o.EJ8({name:"filterMetricDataBySearchTerm",type:n,pure:!0,standalone:!0})}}return n})();const RAe=["searchTermInput"],PAe=["matSelect"],OAe=["*"];function NAe(n,t){if(1&n&&o.nrm(0,"i"),2&n){const e=o.XpG(2);o.HbH("fa "+e.icon)}}function LAe(n,t){1&n&&o.EFF(0," (formerly mcc) ")}function UAe(n,t){1&n&&(o.j41(0,"span",11),o.EFF(1),o.k0s()),2&n&&(o.R7$(),o.SpI(" ",t," "))}function VAe(n,t){if(1&n&&(o.j41(0,"mat-option",9),o.nI1(1,"attributeDescriptorTooltip"),o.EFF(2),o.DNE(3,LAe,1,0),o.j41(4,"span",10),o.EFF(5),o.k0s(),o.nrm(6,"br"),o.DNE(7,UAe,2,1,"span",11),o.k0s()),2&n){let e;const i=t.$implicit,r=o.XpG();o.Y8G("value",i.name)("title",o.i5U(1,6,r[i.name],i.name)),o.R7$(2),o.SpI(" ",i.name," "),o.R7$(),o.vxM("complexity"==i.name||"sonar_complexity"==i.name?3:-1),o.R7$(2),o.SpI("(",i.maxValue,")"),o.R7$(2),o.vxM((e=null==r[i.name]?null:r[i.name].description)?7:-1,e)}}function HAe(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-select",3,0),o.bIt("selectionChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleMetricChanged(r.value))})("openedChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleOpenedChanged(r))}),o.j41(2,"mat-select-trigger"),o.DNE(3,NAe,1,2,"i",4),o.EFF(4),o.k0s(),o.j41(5,"mat-form-field",5),o.nrm(6,"i",6),o.j41(7,"input",7,1),o.mxI("ngModelChange",function(r){o.eBV(e);const s=o.XpG();return o.DH7(s.searchTerm,r)||(s.searchTerm=r),o.Njj(r)}),o.bIt("keydown",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleKeyDown(r))}),o.k0s()(),o.j41(9,"div",8),o.Z7z(10,VAe,8,9,"mat-option",9,o.fX1),o.nI1(12,"async"),o.nI1(13,"filterMetricDataBySearchTerm"),o.k0s()()}if(2&n){const e=o.XpG();o.Y8G("value",e.selectedMetricName)("disabled",e.isDisabled),o.R7$(3),o.Y8G("ngIf",e.icon),o.R7$(),o.JRh(e.selectedMetricName),o.R7$(3),o.Y8G("placeholder",e.searchPlaceholder),o.R50("ngModel",e.searchTerm),o.R7$(3),o.Dyx(o.i5U(13,8,o.bMT(12,6,e.metricData$),e.searchTerm))}}function QAe(n,t){if(1&n&&o.nrm(0,"cc-metric-chooser-value",12),2&n){const e=o.XpG(2);o.Y8G("metricFor",e.metricFor)}}function zAe(n,t){1&n&&o.SdG(0)}function GAe(n,t){if(1&n&&o.DNE(0,QAe,1,1,"cc-metric-chooser-value",12)(1,zAe,1,0),2&n){const e=o.XpG();o.vxM(e.metricFor?0:1)}}let U2=(()=>{class n{constructor(e){this.store=e,this.type="node",this.isDisabled=!1,this.searchTerm="",this.attributeDescriptors$=this.store.select(DR),this.hideMetricSum=!1}ngOnInit(){this.metricData$=this.store.select(Aa).pipe((0,$n.T)(e=>"node"===this.type?e.nodeMetricData:e.edgeMetricData))}ngAfterViewInit(){this.matOptions.changes.subscribe(e=>{this.setFirstItemActiveOnSearch(e)})}setFirstItemActiveOnSearch(e){const i=e.filter(l=>l._selected),r=e.filter(l=>l.value.toLowerCase().startsWith(this.searchTerm.toLowerCase())).sort((l,u)=>l.value.localeCompare(u.value)),s=this.searchTerm.trim().length>0;setTimeout(()=>{s&&0===i.length&&0===r.length?this.matSelect._keyManager.setActiveItem(0):s&&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)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-metric-chooser"]],viewQuery:function(i,r){if(1&i&&(o.GBs(RAe,5),o.GBs(PAe,5),o.GBs(gd,5)),2&i){let s;o.mGM(s=o.lsd())&&(r.searchTermInput=s.first),o.mGM(s=o.lsd())&&(r.matSelect=s.first),o.mGM(s=o.lsd())&&(r.matOptions=s)}},hostVars:2,hostBindings:function(i,r){2&i&&o.AVh("hide-metric-value",r.hideMetricSum)},inputs:{metricFor:"metricFor",icon:"icon",selectedMetricName:"selectedMetricName",searchPlaceholder:"searchPlaceholder",handleMetricChanged:"handleMetricChanged",type:"type",isDisabled:"isDisabled"},standalone:!0,features:[o.aNF],ngContentSelectors:OAe,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&&(o.NAR(),o.DNE(0,HAe,14,11,"mat-select",2),o.nI1(1,"async"),o.DNE(2,GAe,2,1)),2&i){let s;o.vxM((s=o.bMT(1,2,r.attributeDescriptors$))?0:-1,s),o.R7$(2),o.vxM(r.hideMetricSum?-1:2)}},dependencies:[t0,Q$,zn,Vu,I$,n0,a2,Kg,ox,lx,gd,BAe,Qn,OR,kAe],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})(),jAe=(()=>{class n{constructor(e){this.store=e,this.distributionMetric$=this.store.select(QW)}handleDistributionMetricChanged(e){this.store.dispatch(M2({value:e}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-distribution-metric-chooser"]],standalone:!0,features:[o.aNF],decls:3,vars:5,consts:[[1,"fa","fa-pie-chart"],[3,"selectedMetricName","searchPlaceholder","handleMetricChanged"]],template:function(i,r){1&i&&(o.nrm(0,"i",0)(1,"cc-metric-chooser",1),o.nI1(2,"async")),2&i&&(o.R7$(),o.Y8G("selectedMetricName",o.bMT(2,3,r.distributionMetric$))("searchPlaceholder","Distribution Metric (highest value)")("handleMetricChanged",r.handleDistributionMetricChanged))},dependencies:[U2,Qn],styles:["[_nghost-%COMP%]{width:210px;display:flex;align-items:center;font-size:12px;gap:6px;margin-left:5px;margin-right:5px}"]})}}return n})();function $Ae(n,t){if(1&n){const e=o.RV6();o.j41(0,"span",7),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.toggleShowAbsoluteValues())}),o.j41(1,"div",8),o.bIt("mouseover",function(){const r=o.eBV(e).$implicit,s=o.XpG();return o.Njj(s.onHoverFileExtensionBar(r.fileExtension))})("mouseleave",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.onUnhoverFileExtensionBar())}),o.EFF(2),o.k0s()()}if(2&n){const e=t.$implicit,i=o.XpG();o.xc7("width",e.relativeMetricValue+"%")("background",e.color),o.R7$(),o.FS9("title",e.fileExtension.toString()+" "+(i.showAbsoluteValues?e.absoluteMetricValue.toFixed(0):e.relativeMetricValue.toFixed(2)+"%")),o.R7$(),o.Lme(" ",e.relativeMetricValue>=e.fileExtension.length/2+1?e.fileExtension:""," ",i.showAbsoluteValues?e.absoluteMetricValue.toLocaleString():e.relativeMetricValue.toFixed(2)+"%"," ")}}function qAe(n,t){if(1&n&&(o.j41(0,"div",6),o.nrm(1,"span",9),o.EFF(2),o.j41(3,"span",10),o.EFF(4),o.k0s()()),2&n){const e=t.$implicit,i=o.XpG();o.R7$(),o.xc7("background",e.color),o.R7$(),o.SpI("",e.fileExtension," : "),o.R7$(2),o.SpI(" ",i.showAbsoluteValues?e.absoluteMetricValue.toLocaleString():e.relativeMetricValue.toFixed(2)+"%"," ")}}let WAe=(()=>{class n{constructor(e,i){this.store=e,this.threeSceneService=i,this.showAbsoluteValues=!1,this.showDetails=!1,this.store.select(eAe).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 s=HW.estimateFileExtension(r.node.name);(s===e||"other"===e&&!i.has(s))&&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)(o.rXU(Yt),o.rXU(Rd))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-file-extension-bar"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0),o.nrm(1,"cc-distribution-metric-chooser",1),o.j41(2,"div",2),o.Z7z(3,$Ae,3,7,"span",3,o.fX1),o.k0s(),o.j41(5,"button",4),o.bIt("click",function(){return r.toggleShowDetails()}),o.nrm(6,"i"),o.k0s()(),o.j41(7,"div",5),o.bIt("click",function(){return r.toggleShowAbsoluteValues()}),o.Z7z(8,qAe,5,4,"div",6,o.fX1),o.k0s()),2&i&&(o.R7$(3),o.Dyx(r.metricDistribution),o.R7$(3),o.ZvI("fa ",r.showDetails?"fa-caret-up":"fa-caret-down",""),o.R7$(),o.AVh("cc-hidden",!r.showDetails),o.R7$(),o.Dyx(r.metricDistribution))},dependencies:[jAe],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})();const iX=sn(Ro,n=>n.isSearchPanelPinned),XAe=["*"];let M7=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-ribbon-bar-panel-settings"]],standalone:!0,features:[o.aNF],ngContentSelectors:XAe,decls:1,vars:0,template:function(i,r){1&i&&(o.NAR(),o.SdG(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 KAe=["toggle"],YAe=["toggleHeader"],ZAe=[[["cc-ribbon-bar-panel-settings"]],[["",8,"toggleheader"]],"*"],JAe=["cc-ribbon-bar-panel-settings",".toggleHeader","*"];function eme(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",6,0),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.toggleSettings())}),o.SdG(2,1),o.k0s()}}function tme(n,t){1&n&&(o.j41(0,"div",4),o.SdG(1,2),o.k0s())}function nme(n,t){if(1&n&&o.nrm(0,"i"),2&n){const e=o.XpG(2);o.HbH("fa fa-angle-"+(e.isExpanded?"up":"down"))}}function ime(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",7,1),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.toggleSettings())}),o.EFF(2),o.DNE(3,nme,1,2,"i",8),o.k0s()}if(2&n){const e=o.XpG();o.R7$(2),o.SpI(" ",e.title," "),o.R7$(),o.vxM(e.hasSettings?3:-1)}}let E7=(()=>{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 o.bkB}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"),s=this.viewReference.element.nativeElement.contains(i),l=!!r&&r.contains(i),u=this.settingsRef?.nativeElement?.contains(i)??!1,f=this.toggleSettingsRef.nativeElement.contains(i),p=this.toggleHeaderRef?.nativeElement.contains(i)??!1;!l&&!u&&!f&&!p&&(!s||this.collapseOnPanelClick)&&(this.isExpanded=!1)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.c1b))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-ribbon-bar-panel"]],contentQueries:function(i,r,s){if(1&i&&o.wni(s,M7,5,o.aKT),2&i){let l;o.mGM(l=o.lsd())&&(r.settingsRef=l.first)}},viewQuery:function(i,r){if(1&i&&(o.GBs(KAe,5),o.GBs(YAe,5)),2&i){let s;o.mGM(s=o.lsd())&&(r.toggleSettingsRef=s.first),o.mGM(s=o.lsd())&&(r.toggleHeaderRef=s.first)}},hostVars:6,hostBindings:function(i,r){2&i&&o.AVh("separator",r.separator)("expanded",r.isExpanded)("expandable",r.hasSettings)},inputs:{title:"title",collapseOnPanelClick:"collapseOnPanelClick",separator:"separator",isHeaderExpandable:"isHeaderExpandable",isPinned:"isPinned"},outputs:{onToggleSettings:"onToggleSettings"},standalone:!0,features:[o.aNF],ngContentSelectors:JAe,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&&(o.NAR(ZAe),o.j41(0,"mat-card",2)(1,"div",3),o.DNE(2,eme,3,0,"div",4)(3,tme,2,0,"div",4)(4,ime,4,2,"div",5),o.k0s(),o.SdG(5),o.k0s()),2&i&&(o.R7$(2),o.vxM(r.isHeaderExpandable?2:3),o.R7$(2),o.vxM(r.title||r.hasSettings?4:-1))},dependencies:[c2],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})();const S7=sn(Xw,n=>""===n||"!"===n||","===n),NR=n=>(n=n.trim()).startsWith("*")||n.endsWith("*")||n.startsWith("/")||n.startsWith("./")||n.startsWith('"')||n.endsWith('"')||n.startsWith("!")?n:`*${n}*`,rX=(n,t,e)=>{const i=e.trim().split(",");if(e.trim().startsWith("!")){i[0]=i[0].slice(1);for(const r of i){const s=`!${NR(r)}`;if(n.some(l=>s===l.path&&t===l.type))return!0}return!1}for(const r of i)if(n.some(s=>NR(r)===s.path&&t===s.type))return!0;return!1},rme=sn(Xw,S7,sf,(n,t,e)=>!!t||rX(e,"flatten",n)),ome=sn(Xw,S7,sf,(n,t,e)=>!!t||rX(e,"exclude",n)),sme=(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:`!${NR(r)}`,type:n})}else for(let r of i)if(r.length>0){if(r.startsWith("!"))break;r=NR(r),e.push({path:r,type:n})}return e},ame=(n,t,e)=>{const i=[...t,...e];for(const{file:r}of n)if(!lme(r,i))return!1;return!0},lme=(n,t)=>{for(const e of lo(n.map))if(cme(e,t))return!1;return!0},cme=(n,t)=>Po(n)&&n.data.path&&!hu(n.data.path,t,"exclude");let oX=(()=>{class n{constructor(e,i,r){this.actions$=e,this.store=i,this.dialog=r,this.doBlacklistItemsResultInEmptyMap$=this.actions$.pipe(ff(t6),hl(this.store.select(Qc),this.store.select(sf)),(0,$n.T)(([s,l,u])=>({items:s.items,resultsInEmptyMap:ame(l,u,s.items)})),q3()),this.showErrorDialogIfBlacklistItemsResultInEmptyMap$=os(()=>this.doBlacklistItemsResultInEmptyMap$.pipe(ur(s=>s.resultsInEmptyMap),ao(()=>{this.dialog.open(uu,{data:{title:"Blacklist Error",message:"Excluding all buildings is not possible."}})})),{dispatch:!1}),this.addBlacklistItems$=os(()=>this.doBlacklistItemsResultInEmptyMap$.pipe(ur(s=>!s.resultsInEmptyMap),(0,$n.T)(s=>uR({items:s.items}))))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(nA),o.KVO(Yt),o.KVO(Cs))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),ume=(()=>{class n{constructor(e,i,r){this.actions$=e,this.store=i,this.addBlacklistItemsIfNotResultsInEmptyMapEffect=r,this.searchPattern2BlacklistItems$=this.actions$.pipe(ff("BlacklistSearchPatternAction"),hl(this.store.select(Xw)),(0,$n.T)(([s,l])=>({type:s.action.type,blacklistItems:sme(s.action.type,l)})),q3()),this.flattenSearchPattern$=os(()=>this.searchPattern2BlacklistItems$.pipe(ur(s=>"flatten"===s.type),ao(s=>{this.store.dispatch(uR({items:s.blacklistItems})),this.store.dispatch(s0({value:""}))})),{dispatch:!1}),this.excludeSearchPattern$=os(()=>this.searchPattern2BlacklistItems$.pipe(ur(s=>"exclude"===s.type),ao(()=>{this.addBlacklistItemsIfNotResultsInEmptyMapEffect.doBlacklistItemsResultInEmptyMap$.pipe(ms(1),ur(s=>!s.resultsInEmptyMap),ao(()=>{this.store.dispatch(s0({value:""}))})).subscribe()}),(0,$n.T)(s=>t6({items:s.blacklistItems}))))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(nA),o.KVO(Yt),o.KVO(oX))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),T7=(()=>{class n{constructor(){this._vertical=!1,this._inset=!1}get vertical(){return this._vertical}set vertical(e){this._vertical=mi(e)}get inset(){return this._inset}set inset(e){this._inset=mi(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,r){2&i&&(o.BMQ("aria-orientation",r.vertical?"vertical":"horizontal"),o.AVh("mat-divider-vertical",r.vertical)("mat-divider-horizontal",!r.vertical)("mat-divider-inset",r.inset))},inputs:{vertical:"vertical",inset:"inset"},standalone:!0,features:[o.aNF],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, var(--mat-app-outline));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, var(--mat-app-outline));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})();function hme(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",12),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.resetSearchPattern())}),o.nrm(1,"i",13),o.k0s()}}let fme=(()=>{class n{constructor(e){this.store=e,this.searchPattern$=this.store.select(Xw),this.isSearchPatternEmpty$=this.store.select(S7),this.isFlattenPatternDisabled$=this.store.select(rme),this.isExcludePatternDisabled$=this.store.select(ome),this.setSearchPatternDebounced=pf(i=>this.setSearchPattern(i),400)}setSearchPattern(e){this.store.dispatch(s0({value:e.target.value}))}resetSearchPattern(){this.store.dispatch(s0({value:""}))}blacklistSearchPattern(e){this.store.dispatch((n=>({type:"BlacklistSearchPatternAction",action:{type:n}}))(e))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-search-bar"]],standalone:!0,features:[o.aNF],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 s=o.RV6();o.nrm(0,"i",1),o.j41(1,"div",2)(2,"input",3),o.nI1(3,"async"),o.bIt("input",function(u){return o.eBV(s),o.Njj(r.setSearchPatternDebounced(u))}),o.k0s(),o.DNE(4,hme,2,0,"button",4),o.nI1(5,"async"),o.k0s(),o.j41(6,"button",5),o.nrm(7,"i",6),o.k0s(),o.j41(8,"mat-menu",null,0)(10,"button",7),o.EFF(11,"Add Pattern to Blacklist"),o.k0s(),o.nrm(12,"mat-divider"),o.j41(13,"button",8),o.nI1(14,"async"),o.bIt("click",function(){return o.eBV(s),o.Njj(r.blacklistSearchPattern("flatten"))}),o.nrm(15,"i",9),o.EFF(16," Flatten "),o.k0s(),o.j41(17,"button",10),o.nI1(18,"async"),o.bIt("click",function(){return o.eBV(s),o.Njj(r.blacklistSearchPattern("exclude"))}),o.nrm(19,"i",11),o.EFF(20," Exclude "),o.k0s()()}if(2&i){const s=o.sdS(9);o.R7$(2),o.Y8G("value",o.bMT(3,5,r.searchPattern$)),o.R7$(2),o.vxM(o.bMT(5,7,r.isSearchPatternEmpty$)?-1:4),o.R7$(2),o.Y8G("matMenuTriggerFor",s),o.R7$(7),o.Y8G("disabled",o.bMT(14,9,r.isFlattenPatternDisabled$)),o.R7$(4),o.Y8G("disabled",o.bMT(18,11,r.isExcludePatternDisabled$))}},dependencies:[dx,uf,Z3,T7,Qn],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 pme=sn(sf,n=>0===n.length),Ame=["button"],mme=["*"];function gme(n,t){if(1&n&&o.nrm(0,"mat-pseudo-checkbox",3),2&n){const e=o.XpG();o.Y8G("disabled",e.disabled)}}function _me(n,t){if(1&n&&o.nrm(0,"mat-pseudo-checkbox",3),2&n){const e=o.XpG();o.Y8G("disabled",e.disabled)}}const sX=new o.nKC("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS",{providedIn:"root",factory:function bme(){return{hideSingleSelectionIndicator:!1,hideMultipleSelectionIndicator:!1,disabledInteractive:!1}}}),aX=new o.nKC("MatButtonToggleGroup"),vme={provide:ma,useExisting:(0,o.Rfq)(()=>I7),multi:!0};let lX=0;class cX{constructor(t,e){this.source=t,this.value=e}}let I7=(()=>{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 disabledInteractive(){return this._disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e,this._markButtonsForCheck()}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}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,r){this._changeDetector=e,this._dir=r,this._multiple=!1,this._disabled=!1,this._disabledInteractive=!1,this._controlValueAccessorChangeFn=()=>{},this._onTouched=()=>{},this._name="mat-button-toggle-group-"+lX++,this.valueChange=new o.bkB,this.change=new o.bkB,this.appearance=i&&i.appearance?i.appearance:"standard",this.hideSingleSelectionIndicator=i?.hideSingleSelectionIndicator??!1,this.hideMultipleSelectionIndicator=i?.hideMultipleSelectionIndicator??!1}ngOnInit(){this._selectionModel=new X3(this.multiple,void 0,!1)}ngAfterContentInit(){this._selectionModel.select(...this._buttonToggles.filter(e=>e.checked)),this.multiple||this._initializeTabIndex()}writeValue(e){this.value=e,this._changeDetector.markForCheck()}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_keydown(e){if(this.multiple||this.disabled)return;const r=e.target.id,s=this._buttonToggles.toArray().findIndex(u=>u.buttonId===r);let l=null;switch(e.keyCode){case 32:case 13:l=this._buttonToggles.get(s)||null;break;case 38:l=this._getNextButton(s,-1);break;case 37:l=this._getNextButton(s,"ltr"===this.dir?-1:1);break;case 40:l=this._getNextButton(s,1);break;case 39:l=this._getNextButton(s,"ltr"===this.dir?1:-1);break;default:return}l&&(e.preventDefault(),l._onButtonClick(),l.focus())}_emitChangeEvent(e){const i=new cX(e,this.value);this._rawValue=i.value,this._controlValueAccessorChangeFn(i.value),this.change.emit(i)}_syncButtonToggle(e,i,r=!1,s=!1){!this.multiple&&this.selected&&!e.checked&&(this.selected.checked=!1),this._selectionModel?i?this._selectionModel.select(e):this._selectionModel.deselect(e):s=!0,s?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)}_initializeTabIndex(){if(this._buttonToggles.forEach(e=>{e.tabIndex=-1}),this.selected)this.selected.tabIndex=0;else for(let e=0;ethis._selectValue(i))):(this._clearSelection(),this._selectValue(e)))}_clearSelection(){this._selectionModel.clear(),this._buttonToggles.forEach(e=>{e.checked=!1,this.multiple||(e.tabIndex=-1)})}_selectValue(e){const i=this._buttonToggles.find(r=>null!=r.value&&r.value===e);i&&(i.checked=!0,this._selectionModel.select(i),this.multiple||(i.tabIndex=0))}_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)(o.rXU(o.gRc),o.rXU(sX,8),o.rXU(Zs,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["mat-button-toggle-group"]],contentQueries:function(i,r,s){if(1&i&&o.wni(s,LR,5),2&i){let l;o.mGM(l=o.lsd())&&(r._buttonToggles=l)}},hostAttrs:[1,"mat-button-toggle-group"],hostVars:6,hostBindings:function(i,r){1&i&&o.bIt("keydown",function(l){return r._keydown(l)}),2&i&&(o.BMQ("role",r.multiple?"group":"radiogroup")("aria-disabled",r.disabled),o.AVh("mat-button-toggle-vertical",r.vertical)("mat-button-toggle-group-appearance-standard","standard"===r.appearance))},inputs:{appearance:"appearance",name:"name",vertical:[2,"vertical","vertical",o.L39],value:"value",multiple:[2,"multiple","multiple",o.L39],disabled:[2,"disabled","disabled",o.L39],disabledInteractive:[2,"disabledInteractive","disabledInteractive",o.L39],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",o.L39],hideMultipleSelectionIndicator:[2,"hideMultipleSelectionIndicator","hideMultipleSelectionIndicator",o.L39]},outputs:{valueChange:"valueChange",change:"change"},exportAs:["matButtonToggleGroup"],standalone:!0,features:[o.Jv_([vme,{provide:aX,useExisting:n}]),o.GFd]})}}return n})(),LR=(()=>{class n{get buttonId(){return`${this.id}-button`}get tabIndex(){return this._tabIndex}set tabIndex(e){this._tabIndex=e,this._markForCheck()}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}get disabledInteractive(){return this._disabledInteractive||null!==this.buttonToggleGroup&&this.buttonToggleGroup.disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e}constructor(e,i,r,s,l,u){this._changeDetectorRef=i,this._elementRef=r,this._focusMonitor=s,this._checked=!1,this.ariaLabelledby=null,this._disabled=!1,this.change=new o.bkB;const f=Number(l);this.tabIndex=f||0===f?f:null,this.buttonToggleGroup=e,this.appearance=u&&u.appearance?u.appearance:"standard",this.disabledInteractive=u?.disabledInteractive??!1}ngOnInit(){const e=this.buttonToggleGroup;this.id=this.id||"mat-button-toggle-"+lX++,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(){if(this.disabled)return;const e=!!this.isSingleSelector()||!this._checked;if(e!==this._checked&&(this._checked=e,this.buttonToggleGroup&&(this.buttonToggleGroup._syncButtonToggle(this,this._checked,!0),this.buttonToggleGroup._onTouched())),this.isSingleSelector()){const i=this.buttonToggleGroup._buttonToggles.find(r=>0===r.tabIndex);i&&(i.tabIndex=-1),this.tabIndex=0}this.change.emit(new cX(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)(o.rXU(aX,8),o.rXU(o.gRc),o.rXU(o.aKT),o.rXU(Zl),o.kS0("tabindex"),o.rXU(sX,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-button-toggle"]],viewQuery:function(i,r){if(1&i&&o.GBs(Ame,5),2&i){let s;o.mGM(s=o.lsd())&&(r._buttonElement=s.first)}},hostAttrs:["role","presentation",1,"mat-button-toggle"],hostVars:14,hostBindings:function(i,r){1&i&&o.bIt("focus",function(){return r.focus()}),2&i&&(o.BMQ("aria-label",null)("aria-labelledby",null)("id",r.id)("name",null),o.AVh("mat-button-toggle-standalone",!r.buttonToggleGroup)("mat-button-toggle-checked",r.checked)("mat-button-toggle-disabled",r.disabled)("mat-button-toggle-disabled-interactive",r.disabledInteractive)("mat-button-toggle-appearance-standard","standard"===r.appearance))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],id:"id",name:"name",value:"value",tabIndex:"tabIndex",disableRipple:[2,"disableRipple","disableRipple",o.L39],appearance:"appearance",checked:[2,"checked","checked",o.L39],disabled:[2,"disabled","disabled",o.L39],disabledInteractive:[2,"disabledInteractive","disabledInteractive",o.L39]},outputs:{change:"change"},exportAs:["matButtonToggle"],standalone:!0,features:[o.GFd,o.aNF],ngContentSelectors:mme,decls:8,vars:14,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 s=o.RV6();o.NAR(),o.j41(0,"button",1,0),o.bIt("click",function(){return o.eBV(s),o.Njj(r._onButtonClick())}),o.j41(2,"span",2),o.DNE(3,gme,1,1,"mat-pseudo-checkbox",3)(4,_me,1,1,"mat-pseudo-checkbox",3),o.SdG(5),o.k0s()(),o.nrm(6,"span",4)(7,"span",5)}if(2&i){const s=o.sdS(1);o.Y8G("id",r.buttonId)("disabled",r.disabled&&!r.disabledInteractive||null),o.BMQ("role",r.isSingleSelector()?"radio":"button")("tabindex",r.disabled&&!r.disabledInteractive?-1:r.tabIndex)("aria-pressed",r.isSingleSelector()?null:r.checked)("aria-checked",r.isSingleSelector()?r.checked:null)("name",r._getButtonName())("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby)("aria-disabled",r.disabled&&r.disabledInteractive?"true":null),o.R7$(3),o.vxM(r.buttonToggleGroup&&r.checked&&!r.buttonToggleGroup.multiple&&!r.buttonToggleGroup.hideSingleSelectionIndicator?3:-1),o.R7$(),o.vxM(r.buttonToggleGroup&&r.checked&&r.buttonToggleGroup.multiple&&!r.buttonToggleGroup.hideMultipleSelectionIndicator?4:-1),o.R7$(3),o.Y8G("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)}},dependencies:[gl,TI],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, var(--mat-app-corner-full));border:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-app-outline))}.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, var(--mat-app-on-secondary-container))}.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{pointer-events:none;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-disabled-interactive{pointer-events:auto}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color, var(--mat-app-on-surface));background-color:var(--mat-standard-button-toggle-background-color);font-family:var(--mat-standard-button-toggle-label-text-font, var(--mat-app-label-large-font));font-size:var(--mat-standard-button-toggle-label-text-size, var(--mat-app-label-large-size));line-height:var(--mat-standard-button-toggle-label-text-line-height, var(--mat-app-label-large-line-height));font-weight:var(--mat-standard-button-toggle-label-text-weight, var(--mat-app-label-large-weight));letter-spacing:var(--mat-standard-button-toggle-label-text-tracking, var(--mat-app-label-large-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, var(--mat-app-outline))}[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, var(--mat-app-outline))}.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, var(--mat-app-outline))}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-app-on-secondary-container));background-color:var(--mat-standard-button-toggle-selected-state-background-color, var(--mat-app-secondary-container))}.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, var(--mat-app-on-surface))}.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}@media(hover: none){.mat-button-toggle-appearance-standard: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, var(--mat-app-corner-full))}.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, var(--mat-app-corner-full));border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-app-corner-full))}.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, var(--mat-app-corner-full));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-app-corner-full))}"],encapsulation:2,changeDetection:0})}}return n})(),yme=(()=>{class n{constructor(e){this.hideBlacklistItemsIndicator$=e.select(pme)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-search-panel-mode-selector"]],inputs:{searchPanelMode:"searchPanelMode",updateSearchPanelMode:"updateSearchPanelMode"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-button-toggle",0),o.bIt("click",function(){return r.updateSearchPanelMode("blacklist")}),o.nrm(1,"i",1)(2,"div",2),o.nI1(3,"async"),o.k0s()),2&i&&(o.R7$(2),o.Y8G("hidden",o.bMT(3,1,r.hideBlacklistItemsIndicator$)))},dependencies:[LR,Qn],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 dX=n=>sn(sf,t=>wme(n,t)),wme=(n,t)=>{const e=t.filter(i=>i.type===n);return e.sort((i,r)=>i.path.localeCompare(r.path)),e};let Cme=(()=>{class n{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),Mme=(()=>{class n{constructor(e){this._mutationObserverFactory=e,this._observedElements=new Map,this._ngZone=(0,o.WQX)(o.SKi)}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=Ci(e);return new Xr.c(r=>{const l=this._observeElement(i).pipe((0,$n.T)(u=>u.filter(f=>!function xme(n){if("characterData"===n.type&&n.target instanceof Comment)return!0;if("childList"===n.type){for(let t=0;t!!u.length)).subscribe(u=>{this._ngZone.run(()=>{r.next(u)})});return()=>{l.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new Ai.B,r=this._mutationObserverFactory.create(s=>i.next(s));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)(o.KVO(Cme))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),uX=(()=>{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=Gn(e),this._subscribe()}constructor(e,i){this._contentObserver=e,this._elementRef=i,this.event=new o.bkB,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._currentSubscription=(this.debounce?e.pipe(M_(this.debounce)):e).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Mme),o.rXU(o.aKT))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",o.L39],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"],standalone:!0,features:[o.GFd]})}}return n})();const hX=["*"],pX=["unscopedContent"],Eme=["text"],Sme=[[["","matListItemAvatar",""],["","matListItemIcon",""]],[["","matListItemTitle",""]],[["","matListItemLine",""]],"*",[["","matListItemMeta",""]],[["mat-divider"]]],Tme=["[matListItemAvatar],[matListItemIcon]","[matListItemTitle]","[matListItemLine]","*","[matListItemMeta]","mat-divider"],AX=new o.nKC("ListOption");let mX=(()=>{class n{constructor(e){this._elementRef=e}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","matListItemTitle",""]],hostAttrs:[1,"mat-mdc-list-item-title","mdc-list-item__primary-text"],standalone:!0})}}return n})(),gX=(()=>{class n{constructor(e){this._elementRef=e}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","matListItemLine",""]],hostAttrs:[1,"mat-mdc-list-item-line","mdc-list-item__secondary-text"],standalone:!0})}}return n})(),$me=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","matListItemMeta",""]],hostAttrs:[1,"mat-mdc-list-item-meta","mdc-list-item__end"],standalone:!0})}}return n})(),_X=(()=>{class n{constructor(e){this._listOption=e}_isAlignedAtStart(){return!this._listOption||"after"===this._listOption?._getTogglePosition()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(AX,8))}}static{this.\u0275dir=o.FsC({type:n,hostVars:4,hostBindings:function(i,r){2&i&&o.AVh("mdc-list-item__start",r._isAlignedAtStart())("mdc-list-item__end",!r._isAlignedAtStart())},standalone:!0})}}return n})(),qme=(()=>{class n extends _X{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=o.xGo(n)))(r||n)}})()}static{this.\u0275dir=o.FsC({type:n,selectors:[["","matListItemAvatar",""]],hostAttrs:[1,"mat-mdc-list-item-avatar"],standalone:!0,features:[o.Vt3]})}}return n})(),Wme=(()=>{class n extends _X{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=o.xGo(n)))(r||n)}})()}static{this.\u0275dir=o.FsC({type:n,selectors:[["","matListItemIcon",""]],hostAttrs:[1,"mat-mdc-list-item-icon"],standalone:!0,features:[o.Vt3]})}}return n})();const Xme=new o.nKC("MAT_LIST_CONFIG");let Cx=(()=>{class n{constructor(){this._isNonInteractive=!0,this._disableRipple=!1,this._disabled=!1,this._defaultOptions=(0,o.WQX)(Xme,{optional:!0})}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=mi(e)}get disabled(){return this._disabled}set disabled(e){this._disabled=mi(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,hostVars:1,hostBindings:function(i,r){2&i&&o.BMQ("aria-disabled",r.disabled)},inputs:{disableRipple:"disableRipple",disabled:"disabled"},standalone:!0})}}return n})(),F7=(()=>{class n{set lines(e){this._explicitLines=Gn(e,null),this._updateItemLines(!1)}get disableRipple(){return this.disabled||this._disableRipple||this._noopAnimations||!!this._listBase?.disableRipple}set disableRipple(e){this._disableRipple=mi(e)}get disabled(){return this._disabled||!!this._listBase?.disabled}set disabled(e){this._disabled=mi(e)}get rippleDisabled(){return this.disableRipple||!!this.rippleConfig.disabled}constructor(e,i,r,s,l,u){this._elementRef=e,this._ngZone=i,this._listBase=r,this._platform=s,this._explicitLines=null,this._disableRipple=!1,this._disabled=!1,this._subscriptions=new un.yU,this._rippleRenderer=null,this._hasUnscopedTextContent=!1,this.rippleConfig=l||{},this._hostElement=this._elementRef.nativeElement,this._isButtonElement="button"===this._hostElement.nodeName.toLowerCase(),this._noopAnimations="NoopAnimations"===u,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 Nm(this,this._ngZone,this._hostElement,this._platform),this._rippleRenderer.setupTriggerEvents(this._hostElement)}_monitorProjectedLinesAndTitle(){this._ngZone.runOutsideAngular(()=>{this._subscriptions.add(Wl(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 s=0===this._titles.length&&1===i;r.classList.toggle("mdc-list-item__primary-text",s),r.classList.toggle("mdc-list-item__secondary-text",!s)}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)(o.rXU(o.aKT),o.rXU(o.SKi),o.rXU(Cx,8),o.rXU(Fo),o.rXU(Lm,8),o.rXU(o.bc$,8))}}static{this.\u0275dir=o.FsC({type:n,contentQueries:function(i,r,s){if(1&i&&(o.wni(s,qme,4),o.wni(s,Wme,4)),2&i){let l;o.mGM(l=o.lsd())&&(r._avatars=l),o.mGM(l=o.lsd())&&(r._icons=l)}},hostVars:4,hostBindings:function(i,r){2&i&&(o.BMQ("aria-disabled",r.disabled)("disabled",r._isButtonElement&&r.disabled||null),o.AVh("mdc-list-item--disabled",r.disabled))},inputs:{lines:"lines",disableRipple:"disableRipple",disabled:"disabled"},standalone:!0})}}return n})(),bX=(()=>{class n extends Cx{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=o.xGo(n)))(r||n)}})()}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-list"]],hostAttrs:[1,"mat-mdc-list","mat-mdc-list-base","mdc-list"],exportAs:["matList"],standalone:!0,features:[o.Jv_([{provide:Cx,useExisting:n}]),o.Vt3,o.aNF],ngContentSelectors:hX,decls:1,vars:0,template:function(i,r){1&i&&(o.NAR(),o.SdG(0))},styles:['.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item{display:flex;position:relative;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer;padding-left:16px;padding-right:16px;background-color:var(--mdc-list-list-item-container-color);border-radius:var(--mdc-list-list-item-container-shape, var(--mat-app-corner-none))}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item:focus{outline:0}.mdc-list-item.mdc-list-item--disabled{cursor:auto}.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-one-line .mdc-list-item__start{align-self:center;margin-top:0}.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{height:var(--mdc-list-list-item-two-line-container-height)}.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-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height)}.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-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--selected::before,.mdc-list-item.mdc-list-item--selected:focus::before,.mdc-list-item:not(.mdc-list-item--selected):focus::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}.cdk-high-contrast-active .mdc-list-item.mdc-list-item--selected::before,.cdk-high-contrast-active .mdc-list-item.mdc-list-item--selected:focus::before,.cdk-high-contrast-active .mdc-list-item:not(.mdc-list-item--selected):focus::before{border-color:CanvasText}.mdc-list-item.mdc-list-item--selected:focus::before,.mdc-list-item.mdc-list-item--selected::before{border-width:3px;border-style:double}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color, var(--mat-app-on-surface-variant));width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size);margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:32px;margin-right:16px}.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-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size);height:var(--mdc-list-list-item-leading-avatar-size);margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item--with-leading-avatar .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font, var(--mat-app-label-small-font));line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height, var(--mat-app-label-small-line-height));font-size:var(--mdc-list-list-item-trailing-supporting-text-size, var(--mat-app-label-small-size));font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight, var(--mat-app-label-small-weight));letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking, var(--mat-app-label-small-tracking))}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color, var(--mat-app-on-surface-variant));width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color, var(--mat-app-on-surface-variant))}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color, var(--mat-app-primary))}.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__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:var(--mdc-list-list-item-label-text-color, var(--mat-app-on-surface));font-family:var(--mdc-list-list-item-label-text-font, var(--mat-app-body-large-font));line-height:var(--mdc-list-list-item-label-text-line-height, var(--mat-app-body-large-line-height));font-size:var(--mdc-list-list-item-label-text-size, var(--mat-app-body-large-size));font-weight:var(--mdc-list-list-item-label-text-weight, var(--mat-app-body-large-weight));letter-spacing:var(--mdc-list-list-item-label-text-tracking, var(--mat-app-body-large-tracking))}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color, var(--mat-app-on-surface))}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color, var(--mat-app-on-surface))}.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;color:var(--mdc-list-list-item-supporting-text-color, var(--mat-app-on-surface-variant));font-family:var(--mdc-list-list-item-supporting-text-font, var(--mat-app-body-medium-font));line-height:var(--mdc-list-list-item-supporting-text-line-height, var(--mat-app-body-medium-line-height));font-size:var(--mdc-list-list-item-supporting-text-size, var(--mat-app-body-medium-size));font-weight:var(--mdc-list-list-item-supporting-text-weight, var(--mat-app-body-medium-weight));letter-spacing:var(--mdc-list-list-item-supporting-text-tracking, var(--mat-app-body-medium-tracking))}.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--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:16px}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:16px;padding-right:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.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-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.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-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.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-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.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-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.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-trailing-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:0;padding-right:0}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-webkit-user-select:none;user-select:none;margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;line-height:normal;align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before,.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-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start,.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-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-left:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-right:0}.mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end,.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-group__subheader{margin:.75rem 16px}.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{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, var(--mat-app-on-surface));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, var(--mat-app-on-surface));opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity)}.mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing,[dir=rtl] .mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing{padding-left:0;padding-right:0}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color, var(--mat-app-on-surface))}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color, var(--mat-app-on-surface));opacity:var(--mdc-list-list-item-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color, var(--mat-app-on-surface));opacity:var(--mdc-list-list-item-disabled-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color, var(--mat-app-on-surface));opacity:var(--mdc-list-list-item-focus-state-layer-opacity, var(--mat-app-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, var(--mat-app-corner-full));background-color:var(--mdc-list-list-item-leading-avatar-color, var(--mat-app-primary-container))}.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)}.mat-mdc-nav-list .mat-mdc-list-item{border-radius:var(--mat-list-active-indicator-shape, var(--mat-app-corner-full));--mat-mdc-focus-indicator-border-radius:var(--mat-list-active-indicator-shape, var(--mat-app-corner-full))}.mat-mdc-nav-list .mat-mdc-list-item.mdc-list-item--activated{background-color:var(--mat-list-active-indicator-color, var(--mat-app-secondary-container))}'],encapsulation:2,changeDetection:0})}}return n})(),vX=(()=>{class n extends F7{get activated(){return this._activated}set activated(e){this._activated=mi(e)}constructor(e,i,r,s,l,u){super(e,i,r,s,l,u),this._activated=!1}_getAriaCurrent(){return"A"===this._hostElement.nodeName&&this._activated?"page":null}_hasBothLeadingAndTrailing(){return 0!==this._meta.length&&(0!==this._avatars.length||0!==this._icons.length)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.aKT),o.rXU(o.SKi),o.rXU(Cx,8),o.rXU(Fo),o.rXU(Lm,8),o.rXU(o.bc$,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-list-item"],["a","mat-list-item",""],["button","mat-list-item",""]],contentQueries:function(i,r,s){if(1&i&&(o.wni(s,gX,5),o.wni(s,mX,5),o.wni(s,$me,5)),2&i){let l;o.mGM(l=o.lsd())&&(r._lines=l),o.mGM(l=o.lsd())&&(r._titles=l),o.mGM(l=o.lsd())&&(r._meta=l)}},viewQuery:function(i,r){if(1&i&&(o.GBs(pX,5),o.GBs(Eme,5)),2&i){let s;o.mGM(s=o.lsd())&&(r._unscopedContent=s.first),o.mGM(s=o.lsd())&&(r._itemText=s.first)}},hostAttrs:[1,"mat-mdc-list-item","mdc-list-item"],hostVars:13,hostBindings:function(i,r){2&i&&(o.BMQ("aria-current",r._getAriaCurrent()),o.AVh("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-mdc-list-item-both-leading-and-trailing",r._hasBothLeadingAndTrailing())("_mat-animation-noopable",r._noopAnimations))},inputs:{activated:"activated"},exportAs:["matListItem"],standalone:!0,features:[o.Vt3,o.aNF],ngContentSelectors:Tme,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 s=o.RV6();o.NAR(Sme),o.SdG(0),o.j41(1,"span",1),o.SdG(2,1),o.SdG(3,2),o.j41(4,"span",2,0),o.bIt("cdkObserveContent",function(){return o.eBV(s),o.Njj(r._updateItemLines(!0))}),o.SdG(6,3),o.k0s()(),o.SdG(7,4),o.SdG(8,5),o.nrm(9,"div",3)}},dependencies:[uX],encapsulation:2,changeDetection:0})}}return n})();function ege(n,t){1&n&&(o.j41(0,"mat-list-item"),o.EFF(1,"Add pattern via search or node context-menu"),o.k0s())}function tge(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-list-item",4)(1,"button",5),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG(2);return o.Njj(s.removeBlacklistEntry(r))}),o.nrm(2,"em",6),o.EFF(3),o.k0s()()}if(2&n){const e=t.$implicit;o.Y8G("title",e.path),o.R7$(3),o.SpI(" ",e.path," ")}}function nge(n,t){if(1&n&&(o.j41(0,"div"),o.DNE(1,ege,2,0,"mat-list-item"),o.Z7z(2,tge,4,2,"mat-list-item",4,o.fX1),o.k0s()),2&n){const e=t;o.R7$(),o.vxM(0===e.length?1:-1),o.R7$(),o.Dyx(e)}}function ige(n,t){1&n&&(o.j41(0,"mat-list-item"),o.EFF(1,"Add pattern via search or node context-menu"),o.k0s())}function rge(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-list-item",4)(1,"button",5),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG(2);return o.Njj(s.removeBlacklistEntry(r))}),o.nrm(2,"em",6),o.EFF(3),o.k0s()()}if(2&n){const e=t.$implicit;o.Y8G("title",e.path),o.R7$(3),o.SpI(" ",e.path," ")}}function oge(n,t){if(1&n&&(o.j41(0,"div"),o.DNE(1,ige,2,0,"mat-list-item"),o.Z7z(2,rge,4,2,"mat-list-item",4,o.fX1),o.k0s()),2&n){const e=t;o.R7$(),o.vxM(0===e.length?1:-1),o.R7$(),o.Dyx(e)}}let sge=(()=>{class n{constructor(e){this.store=e,this.flattenedItems$=this.store.select(dX("flatten")),this.excludedItems$=this.store.select(dX("exclude"))}removeBlacklistEntry(e){this.store.dispatch(hR({item:e}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-blacklist-panel"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-list",0)(1,"div")(2,"h3",1),o.EFF(3,"Flattened"),o.k0s(),o.nrm(4,"em",2),o.k0s(),o.DNE(5,nge,4,1,"div"),o.nI1(6,"async"),o.k0s(),o.j41(7,"mat-list",0)(8,"div")(9,"h3",1),o.EFF(10,"Excluded"),o.k0s(),o.nrm(11,"em",3),o.k0s(),o.DNE(12,oge,4,1,"div"),o.nI1(13,"async"),o.k0s()),2&i){let s,l;o.R7$(5),o.vxM((s=o.bMT(6,2,r.flattenedItems$))?5:-1,s),o.R7$(7),o.vxM((l=o.bMT(13,4,r.excludedItems$))?12:-1,l)}},dependencies:[bX,h7,vX,Jo,Qn],styles:["[_nghost-%COMP%] .cc-header-text[_ngcontent-%COMP%]{display:inline-block;margin:0 .25em 0 0}"]})}}return n})();const UR=(n,t,e)=>t.reduce((i,r)=>hu(r.path,e,n)?i+1:i,0),age=sn(gG,sf,FR,(n,t,e)=>{const i=n.filter(r=>Po(r));return{fileCount:`${i.length}/${e.length}`,flattenCount:`${UR("flatten",i,t)}/${UR("flatten",e,t)}`,excludeCount:`${UR("exclude",i,t)}/${UR("exclude",e,t)}`}});let lge=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.isSearchPanelPinned$=this.store.select(iX)}onClick(){this.store.dispatch($6())}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-thumb-tack-button"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"button",0),o.nI1(1,"async"),o.bIt("click",function(){return r.onClick()}),o.nrm(2,"i",1),o.k0s()),2&i&&o.Y8G("ngClass",o.bMT(1,1,r.isSearchPanelPinned$)?"pinned":"")},dependencies:[En,Qn],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})();const wX=sn(Ro,n=>n.sortingOrderAscending);let cge=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.sortingOrderAscending$=this.store.select(wX)}onClick(){this.store.dispatch(F6())}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-sorting-button"]],standalone:!0,features:[o.aNF],decls:4,vars:7,consts:[[1,"box-rounded",3,"click","title"],[3,"className"]],template:function(i,r){1&i&&(o.j41(0,"button",0),o.nI1(1,"async"),o.bIt("click",function(){return r.onClick()}),o.nrm(2,"i",1),o.nI1(3,"async"),o.k0s()),2&i&&(o.Mz_("title","Toggle sort order (currently ",o.bMT(1,3,r.sortingOrderAscending$)?"ascending":"descending",")"),o.R7$(2),o.Y8G("className",o.bMT(3,5,r.sortingOrderAscending$)?"fa fa-sort-amount-asc":"fa fa-sort-amount-desc"))},dependencies:[Qn],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 xX=sn(Hc,n=>n.sortingOption);function dge(n,t){if(1&n&&(o.j41(0,"mat-option",1),o.EFF(1),o.k0s()),2&n){const e=t.$implicit;o.Y8G("value",e),o.R7$(),o.SpI(" ",e," ")}}let uge=(()=>{class n{constructor(e){this.store=e,this.sortingOptions=Object.values(pd),this.selectedSortingOption$=e.select(xX)}handleSelectedSortingOptionChanged(e){this.store.dispatch(dR(e.value))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-sorting-option"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-select",0),o.nI1(1,"async"),o.bIt("selectionChange",function(l){return r.handleSelectedSortingOptionChanged(l)}),o.Z7z(2,dge,2,2,"mat-option",1,o.fX1),o.k0s()),2&i&&(o.Y8G("value",o.bMT(1,1,r.selectedSortingOption$)),o.R7$(2),o.Dyx(r.sortingOptions))},dependencies:[t0,gd,Qn],styles:[".sorting-option-select[_ngcontent-%COMP%]{max-width:88px}"]})}}return n})();function hge(n,t){if(1&n&&(o.j41(0,"span",0),o.EFF(1),o.nrm(2,"i",1),o.k0s(),o.j41(3,"span",2),o.EFF(4),o.nrm(5,"img",3),o.k0s(),o.j41(6,"span",4),o.EFF(7),o.nrm(8,"i",5),o.k0s(),o.j41(9,"div",6),o.nrm(10,"cc-thumb-tack-button"),o.k0s(),o.j41(11,"div",6),o.nrm(12,"cc-sorting-button")(13,"cc-sorting-option"),o.k0s()),2&n){const e=t;o.R7$(),o.JRh(e.fileCount),o.R7$(3),o.JRh(e.flattenCount),o.R7$(3),o.JRh(e.excludeCount)}}let fge=(()=>{class n{constructor(e){this.matchingFileCounters$=e.select(age)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-matching-files-counter"]],standalone:!0,features:[o.aNF],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&&(o.DNE(0,hge,14,3),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.matchingFileCounters$))?0:-1,s)}},dependencies:[lge,cge,uge,Qn],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 oA(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]=oA(n[t]));else for(t in e={},n)"__proto__"===t?Object.defineProperty(e,t,{value:oA(n[t]),configurable:!0,enumerable:!0,writable:!0}):e[t]=oA(n[t]);return e}if("[object Array]"===i){for(t=n.length,e=Array(t);t--;)e[t]=oA(n[t]);return e}return"[object Set]"===i?(e=new Set,n.forEach(function(r){e.add(oA(r))}),e):"[object Map]"===i?(e=new Map,n.forEach(function(r,s){e.set(oA(s),oA(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(oA(n.buffer)):"[object ArrayBuffer]"===i?n.slice(0):"Array]"===i.slice(-6)?new n.constructor(n):n}const pge=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}),Age=(n,t)=>pge.compare(n.name,t.name),mge=(n,t)=>n.attributes.unary-t.attributes.unary,CX=(n,t,e)=>{if(!n)return;for(let r=0;r{const e=n===pd.NUMBER_OF_FILES?mge:Age;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===Zo.FOLDER?e.push(r):i.push(r);return e.sort(n),i.sort(n),[...e,...i]})(i,n),n},bge=sn(kd,xX,wX,(n,t,e)=>CX(oA(n.unifiedMapNode),t,e)),MX=sn(u_,n=>n.rightClickedNodeData);let EX=(()=>{class n{transform(e,i){return D7(e,i)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=o.EJ8({name:"areaMetricValid",type:n,pure:!0,standalone:!0})}}return n})();function D7(n,t){return n.deltas?.[t]<0||n.attributes?.[t]>0}let vge=(()=>{class n{transform(e,i){return Po(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=o.EJ8({name:"mapTreeViewItemIconClass",type:n,pure:!0,standalone:!0})}}return n})(),yge=(()=>{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 D7(e,i)?Po(e)?void 0:t1(e,this.state.getValue().fileSettings.markedPackages)||n.defaultColor:n.areMetricZeroColor}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Vi,16))}}static{this.\u0275pipe=o.EJ8({name:"mapTreeViewItemIconColor",type:n,pure:!1,standalone:!0})}}return n})(),wge=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-map-tree-view-item-icon"]],inputs:{node:"node",isOpen:"isOpen"},standalone:!0,features:[o.aNF],decls:3,vars:9,consts:[["role","img","aria-hidden","true"]],template:function(i,r){1&i&&(o.nrm(0,"span",0),o.nI1(1,"mapTreeViewItemIconClass"),o.nI1(2,"mapTreeViewItemIconColor")),2&i&&(o.HbH(o.i5U(1,4,r.node,r.isOpen)),o.xc7("color",o.bMT(2,7,r.node)))},dependencies:[vge,yge],encapsulation:2})}}return n})();const xge=sn(kd,n=>n.unifiedMapNode?.attributes.unary);let SX=(()=>{class n{transform(e){return Po(e)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=o.EJ8({name:"isNodeLeaf",type:n,pure:!0,standalone:!0})}}return n})();function Cge(n,t){if(1&n&&(o.j41(0,"span"),o.EFF(1),o.nI1(2,"async"),o.k0s()),2&n){const e=o.XpG(2);o.R7$(),o.SpI("",(100*e.unaryValue/o.bMT(2,1,e.rootUnary$)).toFixed(0),"%")}}function Mge(n,t){1&n&&o.EFF(0,"File")}function Ege(n,t){1&n&&o.EFF(0,"Files")}function Sge(n,t){if(1&n&&(o.j41(0,"span",2),o.EFF(1),o.DNE(2,Mge,1,0,"ng-template",3)(3,Ege,1,0,"ng-template",4),o.k0s()),2&n){const e=o.XpG(2);o.Y8G("ngPlural",e.unaryValue),o.R7$(),o.SpI(" ",e.unaryValue," ")}}function Tge(n,t){if(1&n&&(o.j41(0,"span",1),o.DNE(1,Cge,3,3,"span")(2,Sge,4,2,"span",2),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.vxM(e.isHovered?2:1)}}let Ige=(()=>{class n{constructor(e){this.searchedNodePaths$=e.select(TU),this.rootUnary$=e.select(xge),this.areaMetric$=e.select(gx)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-map-tree-view-item-name"]],inputs:{node:"node",isHovered:"isHovered",unaryValue:"unaryValue",unaryPercentage:"unaryPercentage"},standalone:!0,features:[o.aNF],decls:7,vars:17,consts:[[1,"node-name"],[1,"unary-number"],[3,"ngPlural"],["ngPluralCase","=1"],["ngPluralCase","other"]],template:function(i,r){1&i&&(o.j41(0,"span",0),o.nI1(1,"async"),o.nI1(2,"areaMetricValid"),o.nI1(3,"async"),o.EFF(4),o.k0s(),o.DNE(5,Tge,3,1,"span",1),o.nI1(6,"isNodeLeaf")),2&i&&(o.AVh("flattened",r.node.isFlattened)("noAreaMetric",!o.i5U(2,10,r.node,o.bMT(1,8,r.areaMetric$)))("tree-search-result",o.bMT(3,13,r.searchedNodePaths$).has(r.node.path)),o.R7$(4),o.SpI(" ",r.node.name,"\n"),o.R7$(),o.vxM(o.bMT(6,15,r.node)?-1:5))},dependencies:[No,ra,Qn,EX,SX],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 Fge(n,t){1&n&&o.nrm(0,"i",1)}let Dge=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-map-tree-view-item-option-buttons"]],inputs:{isFlattened:"isFlattened",openNodeContextMenu:"openNodeContextMenu"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"span",0),o.DNE(1,Fge,1,0,"i",1),o.j41(2,"div",2)(3,"button",3),o.bIt("click",function(l){return r.openNodeContextMenu(l)}),o.nrm(4,"i",4),o.k0s()()()),2&i&&(o.R7$(),o.vxM(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 Bge(n,t){if(1&n&&o.nrm(0,"cc-map-tree-view-item-option-buttons",4),2&n){const e=o.XpG(2);o.Y8G("isFlattened",e.node.isFlattened)("openNodeContextMenu",e.openNodeContextMenu)}}function kge(n,t){if(1&n&&(o.j41(0,"div"),o.nrm(1,"cc-map-tree-view-level",5),o.k0s()),2&n){const e=t.$implicit,i=o.XpG(3);o.R7$(),o.Y8G("node",e)("depth",i.depth+1)}}function Rge(n,t){if(1&n&&o.Z7z(0,kge,2,2,"div",null,o.fX1),2&n){const e=o.XpG(2);o.Dyx(e.node.children)}}function Pge(n,t){if(1&n){const e=o.RV6();o.j41(0,"div"),o.nI1(1,"isNodeLeaf"),o.j41(2,"div",1),o.nI1(3,"async"),o.nI1(4,"async"),o.nI1(5,"async"),o.nI1(6,"areaMetricValid"),o.bIt("mouseenter",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.onMouseEnter())})("mouseleave",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.onMouseLeave())})("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.onClick())})("contextmenu",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.openNodeContextMenu(r))}),o.nrm(7,"cc-map-tree-view-item-icon",2)(8,"cc-map-tree-view-item-name",3),o.nI1(9,"async"),o.DNE(10,Bge,1,2,"cc-map-tree-view-item-option-buttons",4),o.nI1(11,"async"),o.nI1(12,"async"),o.nI1(13,"areaMetricValid"),o.k0s(),o.j41(14,"div"),o.DNE(15,Rge,2,0),o.k0s()()}if(2&n){let e;const i=o.XpG();o.STu("tree-element-",i.depth," ",o.bMT(1,23,i.node)?"tree-leaf":"tree-parent",""),o.R7$(2),o.ZvI("tree-element-label-",i.depth," tree-element-label"),o.AVh("hovered",o.bMT(3,25,i.hoveredNodeId$)===i.node.id)("marked",(null==(e=o.bMT(4,27,i.rightClickedNodeData$))?null:e.nodeId)===i.node.id),o.FS9("id",i.node.path),o.Y8G("title",o.i5U(6,31,i.node,o.bMT(5,29,i.areaMetric$))?"":"No Node Area for Chosen Metric"),o.R7$(5),o.Y8G("node",i.node)("isOpen",i.isOpen),o.R7$(),o.Y8G("node",i.node)("isHovered",o.bMT(9,34,i.hoveredNodeId$)===i.node.id)("unaryValue",i.node.attributes.unary),o.R7$(2),o.vxM(o.bMT(11,36,i.hoveredNodeId$)===i.node.id&&o.i5U(13,40,i.node,o.bMT(12,38,i.areaMetric$))?10:-1),o.R7$(4),o.ZvI("tree-element-children tree-element-children-",i.depth,""),o.R7$(),o.vxM(i.isOpen?15:-1)}}let Oge=(()=>{class n{constructor(e,i,r,s,l){this.store=e,this.threeSceneService=i,this.idToBuildingService=r,this.threeRendererService=s,this.codeMapMouseEventService=l,this.hoveredNodeId$=this.store.select(hd),this.rightClickedNodeData$=this.store.select(MX),this.areaMetric$=this.store.select(gx),this.isOpen=!1,this.areMetricValid=!1,this.openNodeContextMenu=u=>{u.preventDefault(),u.stopPropagation(),this.areaMetric$.subscribe(f=>this.areMetricValid=D7(this.node,f)).unsubscribe(),this.areMetricValid&&(this.store.dispatch(vx({value:{nodeId:this.node.id,xPositionOfRightClickEvent:u.clientX,yPositionOfRightClickEvent:u.clientY}})),document.querySelector(".tree-element-0").addEventListener("scroll",this.scrollFunction))},this.scrollFunction=()=>{this.store.dispatch(vx({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(bx({value:this.node.id}))}onMouseLeave(){this.threeSceneService.resetLabel(),this.codeMapMouseEventService.unhoverNode(),this.codeMapMouseEventService.clearLabelHoveredBuilding(),this.store.dispatch(bx({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)(o.rXU(Yt),o.rXU(Rd),o.rXU(zS),o.rXU(Cr),o.rXU(L2))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-map-tree-view-level"]],inputs:{node:"node",depth:"depth"},standalone:!0,features:[o.aNF],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&&o.DNE(0,Pge,16,43,"div",0),2&i&&o.vxM(r.node.isExcluded?-1:0)},dependencies:[n,wge,Ige,Dge,Qn,EX,SX],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 Nge(n,t){1&n&&o.nrm(0,"cc-map-tree-view-level",0),2&n&&o.Y8G("node",t)("depth",0)}let Lge=(()=>{class n{constructor(e){this.mapTreeViewNode$=e.select(bge)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-map-tree-view"]],standalone:!0,features:[o.aNF],decls:2,vars:3,consts:[[3,"node","depth"]],template:function(i,r){if(1&i&&(o.DNE(0,Nge,1,2,"cc-map-tree-view-level",0),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.mapTreeViewNode$))?0:-1,s)}},dependencies:[Oge,Qn],encapsulation:2})}}return n})(),Uge=(()=>{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(iX).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)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-search-panel"]],viewQuery:function(i,r){if(1&i&&o.GBs(E7,5),2&i){let s;o.mGM(s=o.lsd())&&(r.panelRef=s.first)}},standalone:!0,features:[o.aNF],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&&(o.j41(0,"cc-ribbon-bar-panel",0),o.bIt("onToggleSettings",function(l){return r.onToggleSettings(l)}),o.j41(1,"cc-search-bar",1),o.bIt("click",function(){return r.openSearchPanel()}),o.k0s(),o.nrm(2,"cc-search-panel-mode-selector",2),o.j41(3,"cc-ribbon-bar-panel-settings"),o.nrm(4,"cc-blacklist-panel",3)(5,"cc-matching-files-counter",3)(6,"cc-map-tree-view",3),o.k0s()()),2&i&&(o.Y8G("isPinned",r.isSearchPanelPinned)("collapseOnPanelClick",!1),o.R7$(2),o.Y8G("searchPanelMode",r.searchPanelMode)("updateSearchPanelMode",r.updateSearchPanelMode),o.R7$(2),o.Y8G("hidden","blacklist"!==r.searchPanelMode),o.R7$(),o.Y8G("hidden","treeView"!==r.searchPanelMode),o.R7$(),o.Y8G("hidden","treeView"!==r.searchPanelMode))},dependencies:[E7,fme,yme,M7,sge,fge,Lge],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})();const Vge=["*"];let VR=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-ribbon-bar-menu-button"]],inputs:{icon:"icon",title:"title"},standalone:!0,features:[o.aNF],ngContentSelectors:Vge,decls:3,vars:3,consts:[[3,"title"]],template:function(i,r){1&i&&(o.NAR(),o.j41(0,"button",0),o.nrm(1,"i"),o.SdG(2),o.k0s()),2&i&&(o.Y8G("title",r.title),o.R7$(),o.HbH("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})();const Hge=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 sA{static{this.SCENARIOS_LOCAL_STORAGE_VERSION="1.0.0"}static{this.SCENARIOS_LOCAL_STORAGE_ELEMENT="scenarios"}static{this.scenarios=sA.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:s,edge:l}=t;if(i||r||s){const u=new Set(e.nodeMetricData.map(f=>f.name));if(i&&!u.has(i.areaMetric)||r&&!u.has(r.colorMetric)||s&&!u.has(s.heightMetric))return!1}return!(l&&!e.edgeMetricData.some(u=>u.name===l.edgeMetric))}static getPreLoadScenarios(){const t=this.importScenarios(Hge),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=sA.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(s=>s.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)A7(e.settings),e.camera&&(e.camera.camera=new pe(e.camera.camera.x,e.camera.camera.y,e.camera.camera.z),e.camera.cameraTarget=new pe(e.camera.camera.x,e.camera.camera.y,e.camera.camera.z));return t}static isScenarioExisting(t){return this.scenarios.has(t)}}function Gge(n,t){if(1&n&&(o.j41(0,"mat-error"),o.EFF(1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.JRh(e.scenarioName.getError("Error"))}}function jge(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-slide-toggle",6),o.bIt("change",function(){const r=o.eBV(e).$implicit,s=o.XpG();return o.Njj(s.handleScenarioMetricPropertySelectionChange(r))}),o.EFF(1),o.k0s()}if(2&n){const e=t.$implicit;o.Y8G("checked",e.isSelected),o.R7$(),o.SpI(" ",e.metricName?e.metricType+" ("+e.metricName+")":e.metricType," ")}}function $ge(n,t){1&n&&(o.j41(0,"mat-error"),o.EFF(1,"You cannot create an empty Scenario."),o.k0s())}let qge=(()=>{class n{constructor(e,i,r){this.state=e,this.scenarioName=new r$("",[n=>0===n.value.length?{Error:"Scenario name is required"}:sA.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,s=[{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&&s.push({metricType:"Edge-Metric",metricName:e.edgeMetric,savedValues:{edgePreview:i.amountOfEdgePreviews,edgeHeight:i.edgeHeight},isSelected:!0,isDisabled:!1}),s})(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(){sA.addScenario(this.scenarioName.value,this.scenarioContent)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Vi),o.rXU(rf),o.rXU(Nd))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-add-custom-scenario-dialog"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-toolbar",0)(1,"h2"),o.EFF(2,"Add Scenario"),o.k0s()(),o.j41(3,"mat-dialog-content")(4,"p")(5,"mat-form-field",1)(6,"mat-label"),o.EFF(7,"Scenario Name"),o.k0s(),o.nrm(8,"input",2),o.DNE(9,Gge,2,1,"mat-error"),o.k0s()(),o.j41(10,"p"),o.EFF(11,"The scenario includes:"),o.k0s(),o.j41(12,"div",3),o.Z7z(13,jge,2,2,"mat-slide-toggle",4,o.fX1),o.DNE(15,$ge,2,0,"mat-error"),o.k0s()(),o.j41(16,"mat-dialog-actions")(17,"button",5),o.bIt("click",function(){return r.addCustomScenario()}),o.EFF(18," ADD "),o.k0s()()),2&i&&(o.R7$(8),o.Y8G("formControl",r.scenarioName),o.R7$(),o.vxM(r.scenarioName.invalid?9:-1),o.R7$(4),o.Dyx(r.scenarioContent),o.R7$(2),o.vxM(r.areAnyScenarioMetricPropertiesSelected?-1:15),o.R7$(2),o.Y8G("disabled",r.scenarioName.invalid||!r.areAnyScenarioMetricPropertiesSelected))},dependencies:[Jg,ml,Vu,Uu,n0,a2,Kg,ox,C$,G3,S$,l2,Jl,Jo,Ia],styles:[".cc-add-custom-scenario-toggles[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}mat-slide-toggle[_ngcontent-%COMP%]{display:block}"]})}}return n})();const HR=n=>{const e=Math.round((n.maxValue-n.minValue)/3);return{from:e+n.minValue,to:2*e+n.minValue}};let TX=(()=>{class n{constructor(e,i,r,s,l){this.state=e,this.store=i,this.dialog=r,this.threeCameraService=s,this.threeOrbitControlsService=l}getScenarios(){return sA.getScenarioItems(Aa(this.state.getValue()))}applyScenario(e){const i=sA.scenarios.get(e),r=sA.getScenarioSettings(i);this.store.dispatch(_x({value:r})),r.appSettings.amountOfTopLabels||this.store.select(FR).pipe(h2()).subscribe(s=>{const l=m7(s);this.store.dispatch(o0({value:l}))}),r.appSettings.mapColors||this.store.dispatch(Wp({value:af})),r.appSettings.edgeHeight||this.store.dispatch(fx({value:4})),r.appSettings.amountOfEdgePreviews||this.store.dispatch(k2({value:1})),r.appSettings.scaling||this.store.dispatch(px({value:CR})),r.dynamicSettings.colorRange||this.store.select(qp).pipe(h2()).subscribe(s=>{this.store.dispatch(hf({value:HR(s)}))}),r.dynamicSettings.margin||this.store.dispatch(Ax({value:50})),r.dynamicSettings.edgeMetric||this.store.select(Aa).pipe(h2()).subscribe(s=>{this.store.dispatch(Jp({value:s.edgeMetricData[0]?.name}))}),i.camera&&(this.threeCameraService.setPosition(i.camera.camera),this.threeOrbitControlsService.setControlTarget(i.camera.cameraTarget))}removeScenario(e){"Complexity"!==e?(sA.deleteScenario(e),this.dialog.open(uu,{data:{title:"Info",message:`${e} deleted.`}})):this.dialog.open(uu,{data:{title:"Error",message:`${e} cannot be deleted as it is the default Scenario.`}})}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Vi),o.KVO(Yt),o.KVO(Cs),o.KVO(rf),o.KVO(Nd))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function Wge(n,t){if(1&n&&(o.j41(0,"span",5),o.nrm(1,"i"),o.k0s()),2&n){const e=t.$implicit;o.Y8G("title",e.tooltip),o.R7$(),o.ZvI("fa ",e.faIconClass,""),o.AVh("cc-is-saved",e.isSaved)}}function Xge(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",0)(1,"button",4),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG();return o.Njj(s.scenarioService.applyScenario(r.scenarioName))}),o.EFF(2),o.k0s(),o.Z7z(3,Wge,2,6,"span",5,o.fX1),o.j41(5,"button",6),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG();return o.Njj(s.scenarioService.removeScenario(r.scenarioName))}),o.nrm(6,"i",7),o.k0s()()}if(2&n){const e=t.$implicit;o.R7$(),o.Y8G("disabled",!e.isScenarioApplicable),o.R7$(),o.SpI(" ",e.scenarioName," "),o.R7$(),o.Dyx(e.icons)}}let Kge=(()=>{class n{constructor(e,i){this.scenarioService=e,this.dialog=i,this.scenarios=[]}addScenario(){this.dialog.open(qge,{panelClass:"cc-add-custom-scenario"})}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(TX),o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-scenarios"]],inputs:{scenarios:"scenarios"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"button",1),o.EFF(2,"Metric Scenarios"),o.k0s(),o.j41(3,"button",2),o.bIt("click",function(){return r.addScenario()}),o.nrm(4,"i",3),o.k0s()(),o.nrm(5,"mat-divider"),o.Z7z(6,Xge,7,2,"div",0,o.fX1)),2&i&&(o.R7$(6),o.Dyx(r.scenarios))},dependencies:[T7],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})(),Yge=(()=>{class n{constructor(e){this.scenarioService=e,this.scenarios=[]}loadScenarios(){this.scenarios=this.scenarioService.getScenarios()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(TX))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-show-scenarios-button"]],standalone:!0,features:[o.aNF],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 s=o.RV6();o.j41(0,"cc-ribbon-bar-menu-button",1),o.bIt("click",function(){return o.eBV(s),o.Njj(r.loadScenarios())}),o.k0s(),o.j41(1,"mat-menu",2,0),o.nrm(3,"cc-scenarios",3),o.k0s()}if(2&i){const s=o.sdS(2);o.Y8G("title","Open the scenario list")("matMenuTriggerFor",s),o.R7$(3),o.Y8G("scenarios",r.scenarios)}},dependencies:[VR,dx,uf,Kge],styles:["[_nghost-%COMP%]{display:flex;justify-content:center}"]})}}return n})(),Zge=(()=>{class n{upload(){const e=fF();e.addEventListener("change",()=>{this.uploadOnEvent(e)}),e.click()}uploadOnEvent(e){return Cn(function*(){const i=yield Promise.all(CE(e.files));for(const r of i)try{hr.importCustomConfigs(r)}catch{}})()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-upload-custom-config-button"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"button",0),o.bIt("click",function(){return r.upload()}),o.nrm(1,"i",1),o.k0s())},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})();function i0e(n,t){return[...n.keys()].some(i=>t.has(i))}var QR=function(n){return n.MULTIPLE="STANDARD",n.DELTA="DELTA",n}(QR||{});const V2=sn(Qc,n=>{const t=new Map;let e;for(const{selectedAs:i,file:r}of n)e=i===bt.Partial?QR.MULTIPLE:QR.DELTA,t.set(r.fileMeta.fileChecksum,r.fileMeta.fileName);return{mapSelectionMode:e,assignedMaps:t}});let IX=(()=>{class n{constructor(e){this.store=e,this.downloadableCustomConfigs$=h0([this.store.select(V2),hr.customConfigChange$]).pipe((0,$n.T)(([i])=>(({assignedMaps:n})=>{const t=new Map,e=hr.getCustomConfigs();for(const[i,r]of e.entries())i0e(r.assignedMaps,n)&&t.set(i,hr.createExportCustomConfigFromConfig(r));return t})(i))),this.customConfigItemGroups$=h0([this.store.select(V2),hr.customConfigChange$]).pipe((0,$n.T)(([i])=>function r0e({assignedMaps:n}){const t={applicableItems:new Map,nonApplicableItems:new Map},e=new Map;for(const i of hr.loadCustomConfigsFromLocalStorage().values()){const r=[...i.assignedMaps.values()],s=`${r.join("_")}_${i.mapSelectionMode}`,l=[...i.assignedMaps.keys()].some(I=>n.has(I));e.has(s)||e.set(s,{mapNames:r.join(" "),mapSelectionMode:i.mapSelectionMode,hasApplicableItems:l,customConfigItems:[]});const{positive:u,neutral:f,negative:p,selected:m,positiveDelta:_,negativeDelta:b}=i.stateSettings.appSettings.mapColors,{areaMetric:w,heightMetric:F,colorMetric:D,edgeMetric:T}=i.stateSettings.dynamicSettings;e.get(s).customConfigItems.push({id:i.id,name:i.name,assignedMaps:i.assignedMaps,mapSelectionMode:i.mapSelectionMode,metrics:{areaMetric:w,heightMetric:F,colorMetric:D,edgeMetric:T},mapColors:{positive:u,neutral:f,negative:p,selected:m,positiveDelta:_,negativeDelta:b},isApplicable:l,...i.note&&{note:i.note}}),e.get(s).hasApplicableItems?t.applicableItems.set(s,e.get(s)):t.nonApplicableItems.set(s,e.get(s))}return t}(i)))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),o0e=(()=>{class n{constructor(e){this.downloadCustomConfigService=e}ngOnInit(){this.subscription=this.downloadCustomConfigService.downloadableCustomConfigs$.subscribe(e=>{this.downloadableConfigs=e})}ngOnDestroy(){this.subscription.unsubscribe()}downloadPreloadedCustomConfigs(){!function t0e(n){const t={downloadApiVersion:"1.0.1",timestamp:Date.now(),customConfigs:n},e=kc.getNewTimestamp()+".cc.config.json";c1.downloadData(JSON.stringify(t,cm),e)}(this.downloadableConfigs)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(IX))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-download-custom-configs-button"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"button",0),o.bIt("click",function(){return r.downloadPreloadedCustomConfigs()}),o.nrm(1,"i",1),o.k0s()),2&i&&o.Y8G("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})();function a0e(n,t,e,i){const{mapSelectionMode:r,assignedMaps:s}=V2(t),l={id:"",name:n,creationTime:Date.now(),mapSelectionMode:r,assignedMaps:s,customConfigVersion:"1.0.0",stateSettings:{appSettings:void 0,dynamicSettings:void 0,fileSettings:void 0},camera:e,...i&&{note:i}};return function l0e(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:""}}}(l),function c0e(n){n.stateSettings.dynamicSettings={areaMetric:"",colorMetric:"",distributionMetric:"",edgeMetric:"",focusedNodePath:[],heightMetric:"",margin:0,searchPattern:"",sortingOption:void 0,colorRange:{from:0,to:0},colorMode:void 0}}(l),function d0e(n){n.stateSettings.fileSettings={blacklist:void 0,edges:[],attributeDescriptors:{},markedPackages:[]}}(l),FX(t,l.stateSettings),l.id=L_()(JSON.stringify(l,cm)),l}function FX(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:FX(i,t[e]))}let u0e=(()=>{class n{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(fp))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-confirmation-dialog"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"h1",1),o.EFF(2),o.k0s(),o.j41(3,"div",2),o.EFF(4),o.k0s()(),o.j41(5,"div",3)(6,"button",4),o.EFF(7,"CANCEL"),o.k0s(),o.j41(8,"button",5),o.EFF(9,"OK"),o.k0s()()),2&i&&(o.R7$(2),o.JRh(r.data.title),o.R7$(2),o.JRh(r.data.message),o.R7$(2),o.Y8G("mat-dialog-close",!1),o.R7$(2),o.Y8G("mat-dialog-close",!0))},dependencies:[$y,ml,Jl,Jo,Ia],encapsulation:2})}}return n})();function A0e(n,t){if(1&n){const e=o.RV6();o.j41(0,"span",0),o.EFF(1,"Do you want to download and then purge old unused Configs to make space for new ones?"),o.k0s(),o.j41(2,"button",1),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.showPurgeConfirmDialog())}),o.EFF(3," DOWNLOAD & PURGE... "),o.k0s()}}let m0e=(()=>{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 p0e(){const n=new Set,t=hr.getCustomConfigs(),e=new Map;for(const[r,s]of t.entries())void 0===s?.creationTime&&(s.creationTime=Date.now()),(Date.now()-s.creationTime)/2592e6>=6&&(e.set(r,hr.createExportCustomConfigFromConfig(s)),n.add(s));return e.size>0&&hr.downloadCustomConfigs(e),n}();0!==e.size?this.dialog.open(u0e,{panelClass:"cc-confirmation-dialog",data:{title:"Confirm to purge old Configs",message:"Are you sure to delete old Configs now?"}}).afterClosed().subscribe(r=>{r&&hr.deleteCustomConfigs([...e])}):this.dialog.open(uu,{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)(o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-download-and-purge-configs"]],standalone:!0,features:[o.aNF],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&&o.DNE(0,A0e,4,0),2&i&&o.vxM(r.isLocalStorageSizeValid?-1:0)},dependencies:[Jo],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})();function g0e(n,t){if(1&n&&(o.j41(0,"mat-error"),o.EFF(1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.JRh(e.getErrorMessage())}}let DX=(()=>{class n{constructor(e,i,r){this.state=e,this.threeCameraService=i,this.threeOrbitControlsService=r}ngOnInit(){const e=V2(this.state.getValue());this.customConfigName=new r$("",[d8.required,_0e(e)]),this.customConfigName.setValue(hr.getConfigNameSuggestionByFileState(e))}getErrorMessage(){return this.customConfigName.hasError("required")?"Please enter a view name.":this.customConfigName.hasError("Error")?this.customConfigName.getError("Error"):""}addCustomConfig(){const e=a0e(this.customConfigName.value,this.state.getValue(),{camera:this.threeCameraService.camera.position,cameraTarget:this.threeOrbitControlsService.controls.target},this.customConfigNote);hr.addCustomConfig(e)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Vi),o.rXU(rf),o.rXU(Nd))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-add-custom-config-dialog"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-toolbar",0)(1,"h2"),o.EFF(2,"Add Custom View"),o.k0s()(),o.j41(3,"mat-dialog-content")(4,"p")(5,"mat-form-field")(6,"mat-label"),o.EFF(7,"Save individual configurations for your map."),o.k0s(),o.nrm(8,"input",1),o.j41(9,"mat-hint"),o.EFF(10,"Config View Name"),o.k0s(),o.DNE(11,g0e,2,1,"mat-error"),o.k0s()(),o.j41(12,"p")(13,"mat-form-field")(14,"mat-label"),o.EFF(15,"Provide custom note for configuration (optional)"),o.k0s(),o.j41(16,"textarea",2),o.mxI("ngModelChange",function(l){return o.DH7(r.customConfigNote,l)||(r.customConfigNote=l),l}),o.EFF(17," "),o.k0s(),o.j41(18,"mat-hint"),o.EFF(19,"Config Note"),o.k0s()()()(),o.j41(20,"mat-dialog-actions",3),o.nrm(21,"cc-download-and-purge-configs"),o.j41(22,"button",4),o.bIt("click",function(){return r.addCustomConfig()}),o.EFF(23,"ADD"),o.k0s()()),2&i&&(o.R7$(8),o.Y8G("formControl",r.customConfigName),o.R7$(3),o.vxM(r.customConfigName.invalid?11:-1),o.R7$(5),o.R50("ngModel",r.customConfigNote),o.R7$(6),o.Y8G("disabled",r.customConfigName.invalid))},dependencies:[Jg,ml,Vu,Uu,n0,a2,Kg,ox,j3,lx,C$,G3,R8,S$,K$,Jl,m0e,Jo,Ia],encapsulation:2})}}return n})();function _0e(n){return t=>hr.hasCustomConfigByName(n.mapSelectionMode,n.assignedMaps,t.value)?{Error:"A Custom View with this name already exists."}:null}let b0e=(()=>{class n{constructor(e){this.dialog=e}showAddCustomConfigDialog(){this.dialog.open(DX,{panelClass:"cc-add-custom-config-dialog"})}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-add-custom-config-button"]],standalone:!0,features:[o.aNF],decls:2,vars:0,consts:[["title","Create new Custom View",3,"click"],[1,"fa","fa-plus"]],template:function(i,r){1&i&&(o.j41(0,"button",0),o.bIt("click",function(){return r.showAddCustomConfigDialog()}),o.nrm(1,"i",1),o.k0s())},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})(),v0e=0;const B7=new o.nKC("CdkAccordion");let y0e=(()=>{class n{constructor(){this._stateChanges=new Ai.B,this._openCloseAllActions=new Ai.B,this.id="cdk-accordion-"+v0e++,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=o.FsC({type:n,selectors:[["cdk-accordion"],["","cdkAccordion",""]],inputs:{multi:[2,"multi","multi",o.L39]},exportAs:["cdkAccordion"],standalone:!0,features:[o.Jv_([{provide:B7,useExisting:n}]),o.GFd,o.OA$]})}}return n})(),w0e=0,x0e=(()=>{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=un.yU.EMPTY,this.closed=new o.bkB,this.opened=new o.bkB,this.destroyed=new o.bkB,this.expandedChange=new o.bkB,this.id="cdk-accordion-child-"+w0e++,this._expanded=!1,this.disabled=!1,this._removeUniqueSelectionListener=()=>{},this._removeUniqueSelectionListener=r.listen((s,l)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===l&&this.id!==s&&(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)(o.rXU(B7,12),o.rXU(o.gRc),o.rXU(L$))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[2,"expanded","expanded",o.L39],disabled:[2,"disabled","disabled",o.L39]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],standalone:!0,features:[o.Jv_([{provide:B7,useValue:void 0}]),o.GFd]})}}return n})();const C0e=["body"],M0e=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],E0e=["mat-expansion-panel-header","*","mat-action-row"];function S0e(n,t){}const T0e=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],I0e=["mat-panel-title","mat-panel-description","*"];function F0e(n,t){if(1&n&&(o.j41(0,"span",1),o.qSk(),o.j41(1,"svg",2),o.nrm(2,"path",3),o.k0s()()),2&n){const e=o.XpG();o.Y8G("@indicatorRotate",e._getExpandedState())}}const k7=new o.nKC("MAT_ACCORDION"),BX="225ms cubic-bezier(0.4,0.0,0.2,1)",kX={indicatorRotate:(0,On.hZ)("indicatorRotate",[(0,On.wk)("collapsed, void",(0,On.iF)({transform:"rotate(0deg)"})),(0,On.wk)("expanded",(0,On.iF)({transform:"rotate(180deg)"})),(0,On.kY)("expanded <=> collapsed, void => collapsed",(0,On.i0)(BX))]),bodyExpansion:(0,On.hZ)("bodyExpansion",[(0,On.wk)("collapsed, void",(0,On.iF)({height:"0px",visibility:"hidden"})),(0,On.wk)("expanded",(0,On.iF)({height:"*",visibility:""})),(0,On.kY)("expanded <=> collapsed, void => collapsed",(0,On.i0)(BX))])},RX=new o.nKC("MAT_EXPANSION_PANEL");let D0e=(()=>{class n{constructor(e,i){this._template=e,this._expansionPanel=i}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.C4Q),o.rXU(RX,8))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["ng-template","matExpansionPanelContent",""]],standalone:!0})}}return n})(),B0e=0;const PX=new o.nKC("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS");let OX=(()=>{class n extends x0e{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,s,l,u,f){super(e,i,r),this._viewContainerRef=s,this._animationMode=u,this._hideToggle=!1,this.afterExpand=new o.bkB,this.afterCollapse=new o.bkB,this._inputChanges=new Ai.B,this._headerId="mat-expansion-panel-header-"+B0e++,this.accordion=e,this._document=l,this._animationsDisabled="NoopAnimations"===u,f&&(this.hideToggle=f.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(cu(null),ur(()=>this.expanded&&!this._portal),ms(1)).subscribe(()=>{this._portal=new g_(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){!NX(e)&&!this._animationsDisabled&&this._body&&this._body?.nativeElement.setAttribute("inert","")}_animationDone(e){NX(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)(o.rXU(k7,12),o.rXU(o.gRc),o.rXU(L$),o.rXU(o.c1b),o.rXU(V),o.rXU(o.bc$,8),o.rXU(PX,8))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["mat-expansion-panel"]],contentQueries:function(i,r,s){if(1&i&&o.wni(s,D0e,5),2&i){let l;o.mGM(l=o.lsd())&&(r._lazyContent=l.first)}},viewQuery:function(i,r){if(1&i&&o.GBs(C0e,5),2&i){let s;o.mGM(s=o.lsd())&&(r._body=s.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:6,hostBindings:function(i,r){2&i&&o.AVh("mat-expanded",r.expanded)("_mat-animation-noopable",r._animationsDisabled)("mat-expansion-panel-spacing",r._hasSpacing())},inputs:{hideToggle:[2,"hideToggle","hideToggle",o.L39],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],standalone:!0,features:[o.Jv_([{provide:k7,useValue:void 0},{provide:RX,useExisting:n}]),o.GFd,o.Vt3,o.OA$,o.aNF],ngContentSelectors:E0e,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 s=o.RV6();o.NAR(M0e),o.SdG(0),o.j41(1,"div",1,0),o.bIt("@bodyExpansion.start",function(u){return o.eBV(s),o.Njj(r._animationStarted(u))})("@bodyExpansion.done",function(u){return o.eBV(s),o.Njj(r._animationDone(u))}),o.j41(3,"div",2),o.SdG(4,1),o.DNE(5,S0e,0,0,"ng-template",3),o.k0s(),o.SdG(6,2),o.k0s()}2&i&&(o.R7$(),o.Y8G("@bodyExpansion",r._getExpandedState())("id",r.id),o.BMQ("aria-labelledby",r._headerId),o.R7$(4),o.Y8G("cdkPortalOutlet",r._portal))},dependencies:[__],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, var(--mat-app-surface));color:var(--mat-expansion-container-text-color, var(--mat-app-on-surface));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, var(--mat-app-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-app-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-app-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-app-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-app-body-large-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, var(--mat-app-outline))}.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:[kX.bodyExpansion]},changeDetection:0})}}return n})();function NX(n){return"void"===n.fromState}let LX=(()=>{class n{constructor(e,i,r,s,l,u,f){this.panel=e,this._element=i,this._focusMonitor=r,this._changeDetectorRef=s,this._animationMode=u,this._parentChangeSubscription=un.yU.EMPTY,this.tabIndex=0;const p=e.accordion?e.accordion._stateChanges.pipe(ur(m=>!(!m.hideToggle&&!m.togglePosition))):bh;this.tabIndex=parseInt(f||"")||0,this._parentChangeSubscription=Wl(e.opened,e.closed,p,e._inputChanges.pipe(ur(m=>!!(m.hideToggle||m.disabled||m.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),e.closed.pipe(ur(()=>e._containsFocus())).subscribe(()=>r.focusVia(i,"program")),l&&(this.expandedHeight=l.expandedHeight,this.collapsedHeight=l.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:Yl(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)(o.rXU(OX,1),o.rXU(o.aKT),o.rXU(Zl),o.rXU(o.gRc),o.rXU(PX,8),o.rXU(o.bc$,8),o.kS0("tabindex"))}}static{this.\u0275cmp=o.VBU({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&&o.bIt("click",function(){return r._toggle()})("keydown",function(l){return r._keydown(l)}),2&i&&(o.BMQ("id",r.panel._headerId)("tabindex",r.disabled?-1:r.tabIndex)("aria-controls",r._getPanelId())("aria-expanded",r._isExpanded())("aria-disabled",r.panel.disabled),o.xc7("height",r._getHeaderHeight()),o.AVh("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:[2,"tabIndex","tabIndex",e=>null==e?0:(0,o.Udg)(e)]},standalone:!0,features:[o.GFd,o.aNF],ngContentSelectors:I0e,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&&(o.NAR(T0e),o.j41(0,"span",0),o.SdG(1),o.SdG(2,1),o.SdG(3,2),o.k0s(),o.DNE(4,F0e,3,1,"span",1)),2&i&&(o.AVh("mat-content-hide-toggle",!r._showToggle()),o.R7$(4),o.vxM(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, var(--mat-app-title-medium-font));font-size:var(--mat-expansion-header-text-size, var(--mat-app-title-medium-size));font-weight:var(--mat-expansion-header-text-weight, var(--mat-app-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-app-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-app-title-medium-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, var(--mat-app-surface))}}.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, var(--mat-app-on-surface))}.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, var(--mat-app-on-surface-variant))}.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, var(--mat-app-on-surface-variant));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, var(--mat-app-on-surface-variant));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:[kX.indicatorRotate]},changeDetection:0})}}return n})(),k0e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275dir=o.FsC({type:n,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"],standalone:!0})}}return n})(),R0e=(()=>{class n extends y0e{constructor(){super(...arguments),this._ownHeaders=new o.rOR,this.hideToggle=!1,this.displayMode="default",this.togglePosition="after"}ngAfterContentInit(){this._headers.changes.pipe(cu(this._headers)).subscribe(e=>{this._ownHeaders.reset(e.filter(i=>i.panel.accordion===this)),this._ownHeaders.notifyOnChanges()}),this._keyManager=new lu(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=o.xGo(n)))(r||n)}})()}static{this.\u0275dir=o.FsC({type:n,selectors:[["mat-accordion"]],contentQueries:function(i,r,s){if(1&i&&o.wni(s,LX,5),2&i){let l;o.mGM(l=o.lsd())&&(r._headers=l)}},hostAttrs:[1,"mat-accordion"],hostVars:2,hostBindings:function(i,r){2&i&&o.AVh("mat-accordion-multi",r.multi)},inputs:{hideToggle:[2,"hideToggle","hideToggle",o.L39],displayMode:"displayMode",togglePosition:"togglePosition"},exportAs:["matAccordion"],standalone:!0,features:[o.Jv_([{provide:k7,useExisting:n}]),o.GFd,o.Vt3]})}}return n})(),P0e=(()=>{class n{constructor(e){this.data=e}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(fp))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-custom-config-note-dialog"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"div",1)(2,"mat-form-field",2)(3,"mat-label"),o.EFF(4,"Custom Note"),o.k0s(),o.j41(5,"textarea",3),o.mxI("ngModelChange",function(l){return o.DH7(r.data,l)||(r.data=l),l}),o.k0s()()(),o.j41(6,"div",4)(7,"button",5),o.EFF(8,"Cancel"),o.k0s(),o.j41(9,"button",5),o.EFF(10,"Ok"),o.k0s()()()),2&i&&(o.R7$(5),o.R50("ngModel",r.data),o.R7$(4),o.Y8G("mat-dialog-close",r.data))},dependencies:[ml,Vu,Uu,n0,K$,a2,Kg,ox,lx,Jl,Jo,Ia],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})(),O0e=(()=>{class n{constructor(e){this.dialog=e}openDialog(){this.customConfigNote=this.customConfigItem.note,this.dialog.open(P0e,{width:"600px",data:this.customConfigNote}).afterClosed().subscribe(i=>{void 0!==i&&this.customConfigNote!==i&&(this.customConfigNote=i,hr.editCustomConfigNote(this.customConfigItem.id,i))})}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-custom-config-note-dialog-button"]],inputs:{customConfigItem:"customConfigItem"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"button",0),o.bIt("click",function(){return r.openDialog()}),o.nrm(1,"i",1),o.k0s())},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 UX(n,t){const{mapSelectionMode:e,assignedMaps:i}=V2(t),r=[];for(const s of n.assignedMaps.keys())i.has(s)||r.push(n.assignedMaps.get(s));return{mapSelectionMode:n.mapSelectionMode!==e?n.mapSelectionMode:"",mapNames:r}}let N0e=(()=>{class n{constructor(e){this.state=e}transform(e){const{mapSelectionMode:i,mapNames:r}=UX(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)(o.rXU(Vi,16))}}static{this.\u0275pipe=o.EJ8({name:"customConfig2ApplicableColor",type:n,pure:!0,standalone:!0})}}return n})(),L0e=(()=>{class n{transform(e){const{mapColors:i,mapSelectionMode:r}=e;return r===QR.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=o.EJ8({name:"customConfigColorSchemaBySelectionMode",type:n,pure:!0,standalone:!0})}}return n})();function U0e(n,t){if(1&n&&(o.j41(0,"p",2),o.nrm(1,"i",8),o.EFF(2),o.k0s()),2&n){const e=o.XpG();o.R7$(2),o.SpI(" ",e.customConfigItem.metrics.edgeMetric,"")}}function V0e(n,t){if(1&n&&(o.j41(0,"div",7),o.nrm(1,"span",9),o.k0s()),2&n){const e=t.$implicit,i=o.XpG();o.R7$(),o.xc7("background-color",i.customConfigItem.isApplicable?e:"rgb(204, 204, 204)")}}let H0e=(()=>{class n{constructor(e,i,r,s){this.store=e,this.threeCameraService=i,this.threeOrbitControlsService=r,this.threeRendererService=s}applyCustomConfig(){hr.applyCustomConfig(this.customConfigItem.id,this.store,this.threeCameraService,this.threeOrbitControlsService,this.threeRendererService)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(rf),o.rXU(Nd),o.rXU(Cr))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-apply-custom-config-button"]],inputs:{customConfigItem:"customConfigItem"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"button",0),o.nI1(1,"customConfig2ApplicableColor"),o.bIt("click",function(){return r.applyCustomConfig()}),o.j41(2,"div",1)(3,"p",2),o.nrm(4,"i",3),o.EFF(5),o.k0s(),o.j41(6,"p",2),o.nrm(7,"i",4),o.EFF(8),o.k0s(),o.j41(9,"p",2),o.nrm(10,"i",5),o.EFF(11),o.k0s(),o.DNE(12,U0e,3,1,"p",2),o.j41(13,"div",6),o.Z7z(14,V0e,2,2,"div",7,o.fX1),o.nI1(16,"customConfigColorSchemaBySelectionMode"),o.k0s()()()),2&i&&(o.xc7("color",o.bMT(1,8,r.customConfigItem)),o.FS9("title",r.customConfigItem.name),o.Y8G("disabled",!r.customConfigItem.isApplicable),o.R7$(5),o.SpI(" ",r.customConfigItem.metrics.areaMetric,""),o.R7$(3),o.SpI(" ",r.customConfigItem.metrics.heightMetric,""),o.R7$(3),o.SpI(" ",r.customConfigItem.metrics.colorMetric,""),o.R7$(),o.vxM(r.customConfigItem.metrics.edgeMetric?12:-1),o.R7$(2),o.Dyx(o.bMT(16,10,r.customConfigItem)))},dependencies:[Ia,N0e,L0e],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})(),VX=(()=>{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=o.EJ8({name:"truncateText",type:n,pure:!0,standalone:!0})}}return n})(),Q0e=(()=>{class n{constructor(e){this.state=e}transform(e){const{mapSelectionMode:i,mapNames:r}=UX(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)(o.rXU(Vi,16))}}static{this.\u0275pipe=o.EJ8({name:"customConfig2ApplicableMessage",type:n,pure:!0,standalone:!0})}}return n})(),z0e=(()=>{class n{transform(e,i){const r=i.toLocaleLowerCase().trimEnd();return e.filter(s=>this.isItemMatchingSearchTerm(s,r))}isItemMatchingSearchTerm(e,i){const r=e.name.toLocaleLowerCase().includes(i),s=e.mapSelectionMode.toLocaleLowerCase().includes(i),l=Object.values(e.metrics).some(u=>u?.toLocaleLowerCase().includes(i));return r||s||l}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=o.EJ8({name:"filterCustomConfigDataBySearchTerm",type:n,pure:!0,standalone:!0})}}return n})();const G0e=["matExpansionPanel"];function j0e(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-list-item",5),o.nI1(1,"customConfig2ApplicableMessage"),o.j41(2,"div",6)(3,"p",7)(4,"strong")(5,"span",8),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG(4);return o.Njj(s.applyCustomConfig(r.id))}),o.EFF(6),o.nI1(7,"truncateText"),o.k0s()()()(),o.j41(8,"div",9)(9,"p",10)(10,"span",8),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG(4);return o.Njj(s.applyCustomConfig(r.id))}),o.EFF(11),o.nI1(12,"truncateText"),o.k0s()(),o.nrm(13,"cc-custom-config-note-dialog-button",11),o.k0s(),o.j41(14,"div",12),o.nrm(15,"cc-apply-custom-config-button",11),o.j41(16,"button",13),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG(3).$implicit,l=o.XpG();return o.Njj(l.removeCustomConfig(r.id,s.key))}),o.nrm(17,"i",14),o.k0s()()()}if(2&n){const e=t.$implicit;o.FS9("title",o.bMT(1,6,e)),o.R7$(3),o.FS9("title",e.name),o.R7$(3),o.SpI(" ",o.i5U(7,8,e.name,75)," "),o.R7$(5),o.SpI(" ",e.note?o.i5U(12,11,e.note,95):"Add Note"," "),o.R7$(2),o.Y8G("customConfigItem",e),o.R7$(2),o.Y8G("customConfigItem",e)}}function $0e(n,t){if(1&n&&(o.j41(0,"mat-list"),o.Z7z(1,j0e,18,14,"mat-list-item",5,o.fX1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.Dyx(e)}}function q0e(n,t){1&n&&(o.j41(0,"div",4)(1,"p"),o.EFF(2,"No configurations found."),o.k0s()())}function W0e(n,t){if(1&n&&o.DNE(0,$0e,3,0,"mat-list")(1,q0e,3,0,"div",4),2&n){const e=t;o.vxM(e.length>0?0:-1),o.R7$(),o.vxM(0===e.length?1:-1)}}function X0e(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-expansion-panel",1,0)(2,"mat-expansion-panel-header",2),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG();return o.Njj(s.toggleGroupExpansion(r.key))}),o.j41(3,"mat-panel-title",3),o.EFF(4," Custom View(s) in "),o.j41(5,"strong"),o.EFF(6),o.nI1(7,"titlecase"),o.k0s(),o.EFF(8),o.k0s()(),o.DNE(9,W0e,2,2),o.nI1(10,"filterCustomConfigDataBySearchTerm"),o.k0s()}if(2&n){let e;const i=t.$implicit,r=o.XpG();o.Y8G("expanded",r.isGroupExpanded(i.key)||r.searchTerm.length>0),o.R7$(6),o.SpI(" ",o.bMT(7,4,i.value.mapSelectionMode)," "),o.R7$(2),o.SpI(" mode for ",i.value.mapNames," "),o.R7$(),o.vxM((e=o.i5U(10,6,i.value.customConfigItems,r.searchTerm))?9:-1,e)}}let K0e=(()=>{class n{constructor(e,i,r,s){this.store=e,this.threeCameraService=i,this.threeOrbitControlsService=r,this.threeRendererService=s,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){hr.deleteCustomConfig(e),this.expandedStates[i]=!0}applyCustomConfig(e){hr.applyCustomConfig(e,this.store,this.threeCameraService,this.threeOrbitControlsService,this.threeRendererService)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(rf),o.rXU(Nd),o.rXU(Cr))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-custom-config-item-group"]],viewQuery:function(i,r){if(1&i&&o.GBs(G0e,5),2&i){let s;o.mGM(s=o.lsd())&&(r.matExpansionPanel=s.first)}},inputs:{customConfigItemGroups:"customConfigItemGroups",searchTerm:"searchTerm"},standalone:!0,features:[o.OA$,o.aNF],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&&(o.Z7z(0,X0e,11,9,"mat-expansion-panel",1,o.fX1),o.nI1(2,"keyvalue")),2&i&&o.Dyx(o.bMT(2,0,r.customConfigItemGroups))},dependencies:[OX,LX,k0e,bX,vX,Ia,O0e,H0e,yf,wf,VX,Q0e,z0e],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})();function Y0e(n,t){1&n&&(o.j41(0,"div",7),o.EFF(1,"It is time to add your first Custom View!"),o.k0s())}function Z0e(n,t){if(1&n&&o.nrm(0,"cc-custom-config-item-group",12),2&n){const e=o.XpG(2),i=o.XpG();o.Y8G("customConfigItemGroups",e.nonApplicableItems)("searchTerm",i.searchTerm)}}function J0e(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",14),o.bIt("click",function(){o.eBV(e);const r=o.XpG(3);return o.Njj(r.toggleNonApplicableCustomConfigsList())}),o.EFF(1),o.nrm(2,"i",15),o.k0s()}if(2&n){const e=o.XpG(3);o.R7$(),o.SpI(" ",e.isNonApplicableListCollapsed?"Show non-applicable Custom Views":"Hide non-applicable Custom Views"," "),o.R7$(),o.Y8G("ngClass",e.isNonApplicableListCollapsed?"fa fa-angle-down":"fa fa-angle-up")}}function e_e(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-accordion",8)(1,"mat-form-field",9),o.nrm(2,"i",10),o.j41(3,"mat-label"),o.EFF(4),o.k0s(),o.j41(5,"input",11),o.bIt("input",function(r){o.eBV(e);const s=o.XpG(2);return o.Njj(s.setSearchTermDebounced(r))}),o.k0s()(),o.nrm(6,"cc-custom-config-item-group",12),o.DNE(7,Z0e,1,2,"cc-custom-config-item-group",12)(8,J0e,3,2,"button",13),o.k0s()}if(2&n){const e=o.XpG(),i=o.XpG();o.Y8G("multi",!0),o.R7$(4),o.SpI("",i.searchPlaceholder," "),o.R7$(),o.Y8G("value",i.searchTerm),o.R7$(),o.Y8G("customConfigItemGroups",e.applicableItems)("searchTerm",i.searchTerm),o.R7$(),o.vxM(i.isNonApplicableListCollapsed?-1:7),o.R7$(),o.vxM(e.nonApplicableItems.size>0?8:-1)}}function t_e(n,t){if(1&n&&(o.j41(0,"mat-dialog-content",4)(1,"p",5),o.EFF(2," Custom Views allow you to save and upload your individual configurations for certain maps. Find out more about Custom Views in the "),o.j41(3,"a",6),o.EFF(4,"documentation"),o.k0s(),o.EFF(5,". "),o.k0s(),o.DNE(6,Y0e,2,0,"div",7)(7,e_e,9,7,"mat-accordion",8),o.k0s()),2&n){const e=t;o.R7$(6),o.vxM(0===e.applicableItems.size&&0===e.nonApplicableItems.size?6:-1),o.R7$(),o.vxM(0!==e.applicableItems.size||0!==e.nonApplicableItems.size?7:-1)}}let n_e=(()=>{class n{constructor(e){this.customConfigService=e,this.searchTerm="",this.isNonApplicableListCollapsed=!0,this.searchPlaceholder="Search by name, mode and metrics...",this.setSearchTermDebounced=pf(i=>this.searchTerm=i.target.value,400)}toggleNonApplicableCustomConfigsList(){this.isNonApplicableListCollapsed=!this.isNonApplicableListCollapsed}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(IX))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-custom-config-list"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-toolbar",0),o.EFF(1,"Custom Views "),o.j41(2,"div",1)(3,"div",2),o.nrm(4,"cc-upload-custom-config-button")(5,"cc-download-custom-configs-button")(6,"cc-add-custom-config-button",3),o.k0s()()(),o.DNE(7,t_e,8,2,"mat-dialog-content",4),o.nI1(8,"async")),2&i){let s;o.R7$(7),o.vxM((s=o.bMT(8,1,r.customConfigService.customConfigItemGroups$))?7:-1,s)}},dependencies:[Jg,Zge,o0e,b0e,ml,R0e,Vu,I$,Uu,n0,K0e,En,Qn],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})(),i_e=(()=>{class n{constructor(e){this.dialog=e}openCustomConfigDialog(){this.dialog.open(n_e,{panelClass:"cc-custom-config-list"})}showAddCustomConfigDialog(){this.dialog.open(DX,{panelClass:"cc-add-custom-config-dialog"})}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-custom-configs"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"cc-ribbon-bar-menu-button",1),o.bIt("click",function(){return r.openCustomConfigDialog()}),o.k0s(),o.j41(2,"cc-ribbon-bar-menu-button",2),o.bIt("click",function(){return r.showAddCustomConfigDialog()}),o.k0s()()),2&i&&(o.R7$(),o.Y8G("title","Open your saved Custom Views"),o.R7$(),o.Y8G("title","Create new Custom View"))},dependencies:[VR],styles:["[_nghost-%COMP%] .custom-configs-panel-buttons[_ngcontent-%COMP%]{display:flex;justify-content:center;gap:4px}"]})}}return n})();function R7(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 s=0;for(let l=i-1;l>=0;l--)"string"==typeof e[l]&&(e[l]=Number.parseFloat(e[l])),s+=1*e[l];if(isNaN(s))throw new Error("percentRound invalid input");if(0===s)r.fill(0);else{const l=Math.pow(10,t),u=100*l;let f=0;for(let p=i-1;p>=0;p--)e[p]=100*e[p]/s,f+=r[p]=Math.round(e[p]*l);if(f!==u){const m=1;let _=Math.abs(f-u);const b=new Array(i);for(let w=0;w0;){let w=0,F=b[0];for(let D=1;Du&&r[D]-m<0)continue;w=D,F=b[D]}f>u?r[w]-=m:r[w]+=m,b[w]-=m,_--}}if(l>1)for(let p=0;pvoid 0!==n.attributes[f]),s=QX(e)[i],l=n.attributes[i],u=n.attributes[zR];l<=s.percentile70?t.lowRisk+=u:l<=s.percentile80?t.moderateRisk+=u:l<=s.percentile90?t.highRisk+=u:t.veryHighRisk+=u}function c_e(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 d_e(n,t){return n.isOutlier&&!t.isOutlier?-1:!n.isOutlier&&t.isOutlier?1:0}function u_e(n){const t=Jw.get(n);return t?`${n} (${t})`:`${n}`}function A_e(n){return n.includes(".")?n.slice(n.lastIndexOf(".")+1):void 0}function m_e(n,t){return P7.some(e=>void 0!==n.attributes[e])&&void 0!==n.attributes[zR]&&!o_e.has(t)}const g_e=sn(kd,sf,(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 s=0,l=0;const u={};for(const{data:p}of lo(n.unifiedMapNode)){const m=A_e(p.name);if(p.type===Zo.FILE&&void 0!==m&&!hu(p.path,t,"exclude")){const _=i.get(m)??0;if(i.set(m,_+1),c_e(p,u,m),m_e(p,m)){const b=P7.find(w=>void 0!==p.attributes[w]);l+=p.attributes[b],s+=p.attributes[zR],s_e(p,r,m)}}}s>0&&l>0&&(e.riskProfile=function a_e(n){const[t,e,i,r]=r_e([n.lowRisk,n.moderateRisk,n.highRisk,n.veryHighRisk]);return{lowRisk:t,moderateRisk:e,highRisk:i,veryHighRisk:r}}(r));const f=function f_e(n){let t,e=-1;for(const[i,r]of n)el.percentile70&&(e.suspiciousMetrics.set(r,{from:l.percentile70,to:l.percentile80}),u>l.percentile90&&e.outliersThresholds.set(r,l.percentile90))}for(const r in n[t])!Object.keys(i).includes(r)&&!e.untrackedMetrics.includes(r)&&e.untrackedMetrics.push(r);return e}(u,f);e.unsuspiciousMetrics=p.unsuspiciousMetrics,e.untrackedMetrics=p.untrackedMetrics,e.suspiciousMetricSuggestionLinks=function l_e(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(d_e)}(p)}return e});let __e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-suspicious-metric-dialog"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"h2",1),o.EFF(2,"Suspicious Metrics Information"),o.k0s(),o.j41(3,"mat-dialog-content",2),o.EFF(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 "),o.j41(5,"a",3),o.EFF(6,"How-To Article "),o.nrm(7,"i",4),o.k0s(),o.EFF(8,". "),o.k0s(),o.j41(9,"mat-dialog-actions",5)(10,"button",6),o.EFF(11,"Close"),o.k0s()()())},dependencies:[$y,ml,Jl,Jo,Ia],encapsulation:2})}}return n})();const b_e=(n,t)=>({"fa-caret-right":n,"fa-caret-down":t});function v_e(n,t){if(1&n&&(o.nrm(0,"br"),o.j41(1,"span",13),o.EFF(2),o.k0s()),2&n){const e=o.XpG().$implicit,i=o.XpG(3);o.R7$(2),o.JRh(i.getDescriptionOfMetric(e.metric))}}function y_e(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-button-toggle",14),o.bIt("click",function(){o.eBV(e);const r=o.XpG().$implicit,s=o.XpG(3);return o.Njj(s.applySuspiciousMetric(r,!0))}),o.EFF(1," High-Risk\xa0"),o.nrm(2,"i",15),o.k0s()}}function w_e(n,t){1&n&&(o.j41(0,"mat-button-toggle",12),o.EFF(1," High-Risk\xa0"),o.nrm(2,"i",16),o.k0s())}function x_e(n,t){if(1&n){const e=o.RV6();o.nrm(0,"div",6),o.j41(1,"div",7)(2,"b"),o.EFF(3),o.nI1(4,"truncateText"),o.k0s(),o.DNE(5,v_e,3,1),o.k0s(),o.j41(6,"div")(7,"mat-button-toggle-group")(8,"mat-button-toggle",8),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG(3);return o.Njj(s.applySuspiciousMetric(r,!1))}),o.EFF(9," Apply preset\xa0"),o.nrm(10,"i",9),o.EFF(11,"\xa0"),o.nrm(12,"i",10),o.k0s(),o.DNE(13,y_e,3,0,"mat-button-toggle",11)(14,w_e,3,0,"mat-button-toggle",12),o.k0s()()}if(2&n){const e=t.$implicit,i=o.XpG(3);o.R7$(),o.FS9("title",i.getNameAndDescriptionOfMetric(e.metric)),o.R7$(2),o.JRh(o.i5U(4,6,e.metric,40)),o.R7$(2),o.vxM(i.getDescriptionOfMetric(e.metric)?5:-1),o.R7$(3),o.Mz_("title","Apply Map Configuration to show files with suspicious metric ",e.metric," and high risk or very high risk depending on selection"),o.R7$(5),o.vxM(e.isOutlier?13:14)}}function C_e(n,t){if(1&n&&(o.j41(0,"div",5),o.Z7z(1,x_e,15,9,null,null,o.fX1),o.k0s()),2&n){const e=o.XpG(2);o.R7$(),o.Dyx(e.data.suspiciousMetricSuggestionLinks)}}function M_e(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",1)(1,"button",2),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.toggleSuspiciousMetricsVisibility())}),o.j41(2,"span",3),o.nrm(3,"i",4),o.k0s(),o.EFF(4," Suspicious Metrics in "),o.j41(5,"code"),o.EFF(6),o.k0s(),o.EFF(7," code "),o.k0s()(),o.DNE(8,C_e,3,0,"div",5)}if(2&n){const e=o.XpG();o.Mz_("title","Suspicious Metrics in .",e.data.analyzedProgrammingLanguage," code"),o.R7$(3),o.Y8G("ngClass",o.l_i(5,b_e,!e.isSuspiciuosMetricsVisible,e.isSuspiciuosMetricsVisible)),o.R7$(3),o.SpI(".",e.data.analyzedProgrammingLanguage,""),o.R7$(2),o.vxM(e.isSuspiciuosMetricsVisible?8:-1)}}function E_e(n,t){if(1&n&&(o.j41(0,"div",0),o.EFF(1," No Suspicious Metrics found in "),o.j41(2,"code"),o.EFF(3),o.k0s(),o.EFF(4,"! "),o.k0s()),2&n){const e=o.XpG();o.Mz_("title","Suspicious Metrics in this .",e.data.analyzedProgrammingLanguage," code"),o.R7$(3),o.SpI(".",e.data.analyzedProgrammingLanguage,"")}}let S_e=(()=>{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(Zp({value:zR})),this.store.dispatch(eA({value:e.metric})),this.store.dispatch(zu({value:e.metric})),this.store.dispatch(hf({value:{from:e.from,to:i?e.outlierThreshold:e.to}})),this.store.dispatch(Wp({value:{positive:i?"#ffffff":af.positive,neutral:i?"#ffffff":af.neutral,negative:i?"#A900C0":af.negative}})),this.matMenuTriggerReference.closeMenu()}getNameAndDescriptionOfMetric(e){const i=Jw.get(e);return i?`${e.toUpperCase()} (${i.toLowerCase()})`:e.toUpperCase()}getDescriptionOfMetric(e){const i=Jw.get(e);return i?`${i.toLowerCase()}`:""}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-suspicious-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},standalone:!0,features:[o.aNF],decls:2,vars:1,consts:[[1,"sub-title-not-text-content","sub-title",3,"title"],[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)"],["title","No high risk profile detected","disabled",""],[1,"sub-sub-title"],["title","Show very high risk files (90th percentile)",3,"click"],[1,"fa","fa-exclamation-triangle","risk-button-active"],[1,"fa","fa-exclamation-triangle"]],template:function(i,r){1&i&&o.DNE(0,M_e,9,8)(1,E_e,5,3,"div",0),2&i&&o.vxM(r.data.suspiciousMetricSuggestionLinks.length?0:1)},dependencies:[En,I7,LR,VX],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 T_e=(n,t)=>({"fa-caret-right":n,"fa-caret-down":t});function I_e(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",0)(1,"button",2),o.bIt("click",function(){o.eBV(e);const r=o.XpG(2);return o.Njj(r.toggleUnsuspiciousMetricsVisibility())}),o.j41(2,"span",3),o.nrm(3,"i",4),o.k0s(),o.EFF(4," Unsuspicious metrics in "),o.j41(5,"code"),o.EFF(6),o.k0s(),o.EFF(7," code "),o.k0s()()}if(2&n){const e=o.XpG(2);o.R7$(3),o.Y8G("ngClass",o.l_i(2,T_e,!e.isUnsuspiciuosMetricsVisible,e.isUnsuspiciuosMetricsVisible)),o.R7$(3),o.SpI(".",e.data.analyzedProgrammingLanguage,"")}}function F_e(n,t){if(1&n&&(o.j41(0,"li"),o.EFF(1),o.k0s()),2&n){const e=t.$implicit;o.R7$(),o.JRh(e)}}function D_e(n,t){if(1&n&&(o.j41(0,"ul",1),o.Z7z(1,F_e,2,1,"li",null,o.fX1),o.k0s()),2&n){const e=o.XpG(2);o.R7$(),o.Dyx(e.data.unsuspiciousMetrics)}}function B_e(n,t){if(1&n&&o.DNE(0,I_e,8,5,"div",0)(1,D_e,3,0,"ul",1),2&n){const e=o.XpG();o.vxM(e.data.analyzedProgrammingLanguage.length?0:-1),o.R7$(),o.vxM(e.isUnsuspiciuosMetricsVisible?1:-1)}}let k_e=(()=>{class n{constructor(){this.isUnsuspiciuosMetricsVisible=!1}toggleUnsuspiciousMetricsVisibility(){this.isUnsuspiciuosMetricsVisible=!this.isUnsuspiciuosMetricsVisible}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-unsuspicious-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},standalone:!0,features:[o.aNF],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&&o.DNE(0,B_e,2,2),2&i&&o.vxM(r.data.unsuspiciousMetrics.length?0:-1)},dependencies:[En],encapsulation:2})}}return n})();const R_e=(n,t)=>({"fa-caret-right":n,"fa-caret-down":t});function P_e(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",0)(1,"button",2),o.bIt("click",function(){o.eBV(e);const r=o.XpG(2);return o.Njj(r.toggleUntrackedMetricsVisibility())}),o.j41(2,"span",3),o.nrm(3,"i",4),o.k0s(),o.EFF(4," Untracked metrics in "),o.j41(5,"code"),o.EFF(6),o.k0s(),o.EFF(7," code "),o.k0s()()}if(2&n){const e=o.XpG(2);o.R7$(3),o.Y8G("ngClass",o.l_i(2,R_e,!e.isUntrackedMetricsVisible,e.isUntrackedMetricsVisible)),o.R7$(3),o.SpI(".",e.data.analyzedProgrammingLanguage,"")}}function O_e(n,t){if(1&n&&(o.j41(0,"li"),o.EFF(1),o.k0s()),2&n){const e=t.$implicit;o.R7$(),o.JRh(e)}}function N_e(n,t){if(1&n&&(o.j41(0,"ul",1),o.Z7z(1,O_e,2,1,"li",null,o.fX1),o.k0s()),2&n){const e=o.XpG(2);o.R7$(),o.Dyx(e.data.untrackedMetrics)}}function L_e(n,t){1&n&&(o.j41(0,"div"),o.EFF(1,"No programming language was found for analyzing suspicious metrics."),o.k0s())}function U_e(n,t){if(1&n&&o.DNE(0,P_e,8,5,"div",0)(1,N_e,3,0,"ul",1)(2,L_e,2,0,"div"),2&n){const e=o.XpG();o.vxM(e.data.analyzedProgrammingLanguage.length?0:-1),o.R7$(),o.vxM(e.isUntrackedMetricsVisible?1:-1),o.R7$(),o.vxM(void 0===e.data.analyzedProgrammingLanguage?2:-1)}}let V_e=(()=>{class n{constructor(){this.isUntrackedMetricsVisible=!1}toggleUntrackedMetricsVisibility(){this.isUntrackedMetricsVisible=!this.isUntrackedMetricsVisible}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-untracked-metrics-list"]],inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},standalone:!0,features:[o.aNF],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&&o.DNE(0,U_e,3,3),2&i&&o.vxM(r.data.untrackedMetrics.length?0:-1)},dependencies:[En],encapsulation:2})}}return n})(),zX=(()=>{class n{constructor(e){this.dialog=e}openDialog(){this.dialog.open(__e,{width:"500px"})}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Cs))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-suspicious-metrics-menu"]],viewQuery:function(i,r){if(1&i&&(o.GBs(dx,5),o.GBs(uf,5)),2&i){let s;o.mGM(s=o.lsd())&&(r.menuTrigger=s.first),o.mGM(s=o.lsd())&&(r.menu=s.first)}},inputs:{matMenuTriggerReference:"matMenuTriggerReference",data:"data"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0),o.bIt("click",function(l){return l.stopPropagation()}),o.j41(1,"div")(2,"div",1),o.EFF(3,"Suspicious Metrics"),o.k0s(),o.j41(4,"cc-action-icon",2),o.bIt("click",function(){return r.openDialog()}),o.k0s()(),o.j41(5,"div",3),o.nrm(6,"cc-suspicious-metrics-list",4)(7,"cc-unsuspicious-metrics-list",4)(8,"cc-untracked-metrics-list",4),o.k0s()()),2&i&&(o.R7$(6),o.Y8G("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference),o.R7$(),o.Y8G("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference),o.R7$(),o.Y8G("data",r.data)("matMenuTriggerReference",r.matMenuTriggerReference))},dependencies:[Al,S_e,k_e,V_e],styles:[".suspicious-menu-content-wrapper[_ngcontent-%COMP%]{padding:8px}"]})}}return n})();const H_e=["matMenuTrigger"];function Q_e(n,t){if(1&n&&(o.j41(0,"span",3),o.EFF(1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.SpI(" ",e.data.suspiciousMetricSuggestionLinks.length," ")}}let z_e=(()=>{class n{constructor(){this.hideBadge=!1}ngOnChanges(e){e.data&&!sv(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=o.VBU({type:n,selectors:[["cc-suspicious-metrics"]],viewQuery:function(i,r){if(1&i&&(o.GBs(zX,5),o.GBs(H_e,5)),2&i){let s;o.mGM(s=o.lsd())&&(r.menuComponent=s.first),o.mGM(s=o.lsd())&&(r.matMenuTrigger=s.first)}},inputs:{data:"data",menu:"menu"},standalone:!0,features:[o.OA$,o.aNF],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 s=o.RV6();o.j41(0,"cc-ribbon-bar-menu-button",2,0),o.bIt("click",function(){return o.eBV(s),o.Njj(r.hideBadge=!0)}),o.DNE(2,Q_e,2,1,"span",3),o.k0s(),o.j41(3,"mat-menu",4,1),o.nrm(5,"cc-suspicious-metrics-menu",5),o.k0s()}if(2&i){const s=o.sdS(1),l=o.sdS(4);o.Y8G("title","Open Suspicious Metrics Panel")("matMenuTriggerFor",l),o.R7$(2),o.vxM(r.hideBadge||void 0===r.data.analyzedProgrammingLanguage&&!r.data.suspiciousMetricSuggestionLinks.length&&!r.data.unsuspiciousMetrics.length?-1:2),o.R7$(3),o.Y8G("data",r.data)("matMenuTriggerReference",s)}},dependencies:[VR,dx,uf,zX],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})(),G_e=(()=>{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)(o.rXU(o.aKT))}}static{this.\u0275dir=o.FsC({type:n,selectors:[["","ccRiskProfileBar",""]],inputs:{ccRiskProfileBar:"ccRiskProfileBar"},standalone:!0,features:[o.OA$]})}}return n})();function j_e(n,t){if(1&n&&(o.j41(0,"div",3),o.EFF(1,"Risk Profile"),o.k0s(),o.j41(2,"div",4),o.EFF(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 "),o.j41(4,"a",5),o.EFF(5,"How-To Article "),o.nrm(6,"i",6),o.k0s(),o.EFF(7,". "),o.k0s(),o.j41(8,"div",7)(9,"div"),o.nrm(10,"i",8),o.EFF(11," Calculations are based on an available complexity metric"),o.k0s()(),o.j41(12,"div",4)(13,"ul")(14,"li"),o.EFF(15),o.k0s(),o.j41(16,"li"),o.EFF(17),o.k0s(),o.j41(18,"li"),o.EFF(19),o.k0s(),o.j41(20,"li"),o.EFF(21),o.k0s()()(),o.j41(22,"div",9)(23,"div",10),o.EFF(24),o.k0s(),o.j41(25,"div",11),o.EFF(26),o.k0s(),o.j41(27,"div",12),o.EFF(28),o.k0s(),o.j41(29,"div",13),o.EFF(30),o.k0s()()),2&n){const e=o.XpG();o.R7$(15),o.SpI("",e.data.riskProfile.lowRisk,"% of overall code is in files with low complexity"),o.R7$(2),o.SpI("",e.data.riskProfile.moderateRisk,"% of overall code is in files with moderate complexity"),o.R7$(2),o.SpI("",e.data.riskProfile.highRisk,"% of overall code is in files with high complexity"),o.R7$(2),o.SpI("",e.data.riskProfile.veryHighRisk,"% of overall code is in files with extreme complexity"),o.R7$(2),o.Mz_("title","Low Risk (",e.data.riskProfile.lowRisk,"% of code)"),o.Y8G("ccRiskProfileBar",e.data.riskProfile.lowRisk),o.R7$(),o.SpI(" ",e.data.riskProfile.lowRisk,"% "),o.R7$(),o.Mz_("title","Moderate Risk (",e.data.riskProfile.moderateRisk,"% of code)"),o.Y8G("ccRiskProfileBar",e.data.riskProfile.moderateRisk),o.R7$(),o.SpI(" ",e.data.riskProfile.moderateRisk,"% "),o.R7$(),o.Mz_("title","High Risk (",e.data.riskProfile.highRisk,"% of code)"),o.Y8G("ccRiskProfileBar",e.data.riskProfile.highRisk),o.R7$(),o.SpI(" ",e.data.riskProfile.highRisk,"% "),o.R7$(),o.Mz_("title","Very High Risk (",e.data.riskProfile.veryHighRisk,"% of code)"),o.Y8G("ccRiskProfileBar",e.data.riskProfile.veryHighRisk),o.R7$(),o.SpI(" ",e.data.riskProfile.veryHighRisk,"% ")}}function $_e(n,t){1&n&&(o.j41(0,"span"),o.EFF(1," Could not calculate Risk Profile. At least one of the metrics rloc (real lines of code) or complexity (cyclomatic complexity) is not available. "),o.k0s(),o.nrm(2,"br")(3,"br"),o.j41(4,"span"),o.EFF(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. "),o.k0s())}let q_e=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-high-risk-profile"]],inputs:{data:"data"},standalone:!0,features:[o.aNF],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&&(o.nrm(0,"cc-ribbon-bar-menu-button",1),o.j41(1,"mat-menu",2,0),o.DNE(3,j_e,31,20)(4,$_e,6,0),o.k0s()),2&i){const s=o.sdS(2);o.Y8G("title","Open High Risk Profile")("matMenuTriggerFor",s),o.R7$(3),o.vxM(void 0!==r.data.riskProfile?3:-1),o.R7$(),o.vxM(void 0===r.data.riskProfile?4:-1)}},dependencies:[VR,dx,uf,G_e],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 W_e(n,t){if(1&n&&o.nrm(0,"cc-suspicious-metrics",0)(1,"cc-high-risk-profile",0),2&n){const e=t;o.Y8G("data",e),o.R7$(),o.Y8G("data",e)}}let X_e=(()=>{class n{constructor(e){this.store=e,this.data$=this.store.select(g_e)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-artificial-intelligence"]],standalone:!0,features:[o.aNF],decls:2,vars:3,consts:[[3,"data"]],template:function(i,r){if(1&i&&(o.DNE(0,W_e,2,2),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.data$))?0:-1,s)}},dependencies:[z_e,q_e,Qn],styles:["[_nghost-%COMP%]{display:flex;justify-content:center;gap:4px}"]})}}return n})(),K_e=(()=>{class n{constructor(e){this.store=e,this.areaMetric$=this.store.select(gx)}handleAreaMetricChanged(e){this.store.dispatch(Zp({value:e}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-area-metric-chooser"]],standalone:!0,features:[o.aNF],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&&(o.nrm(0,"cc-metric-chooser",0),o.nI1(1,"async")),2&i&&o.Y8G("selectedMetricName",o.bMT(1,2,r.areaMetric$))("handleMetricChanged",r.handleAreaMetricChanged)},dependencies:[U2,Qn],encapsulation:2})}}return n})();const Y_e=sn(Hc,n=>n.margin),Z_e=sn(Ro,n=>n.enableFloorLabels),J_e=sn(Ro,n=>n.invertArea),ebe=()=>["dynamicSettings.margin","appSettings.invertArea","appSettings.enableFloorLabels"];let tbe=(()=>{class n{static{this.DEBOUNCE_TIME=400}constructor(e){this.store=e,this.margin$=this.store.select(Y_e),this.enableFloorLabels$=this.store.select(Z_e),this.isInvertedArea$=this.store.select(J_e),this.applyDebouncedMargin=pf(i=>{this.store.dispatch(Ax({value:i}))},n.DEBOUNCE_TIME)}setEnableFloorLabel(e){this.store.dispatch(p2({value:e.checked}))}toggleInvertingArea(e){this.store.dispatch(m2({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-area-settings-panel"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0),o.nrm(1,"cc-slider",1),o.nI1(2,"async"),o.j41(3,"mat-checkbox",2),o.nI1(4,"async"),o.bIt("change",function(l){return r.setEnableFloorLabel(l)}),o.EFF(5,"Enable Floor Labels"),o.k0s(),o.j41(6,"mat-checkbox",2),o.nI1(7,"async"),o.bIt("change",function(l){return r.toggleInvertingArea(l)}),o.EFF(8,"Invert Area"),o.k0s(),o.nrm(9,"cc-reset-settings-button",3),o.k0s()),2&i&&(o.R7$(),o.Y8G("value",o.bMT(2,7,r.margin$))("onChange",r.applyDebouncedMargin)("min",1)("max",100),o.R7$(2),o.Y8G("checked",o.bMT(4,9,r.enableFloorLabels$)),o.R7$(3),o.Y8G("checked",o.bMT(7,11,r.isInvertedArea$)),o.R7$(3),o.Y8G("settingsKeys",o.lJ4(13,ebe)))},dependencies:[IR,av,P2,Qn],styles:["[_nghost-%COMP%]{text-align:left;max-height:300px}[_nghost-%COMP%] .options[_ngcontent-%COMP%]{display:flex;flex-direction:column}"]})}}return n})(),nbe=(()=>{class n{constructor(e){this.store=e,this.heightMetric$=this.store.select(B2)}handleHeightMetricChanged(e){this.store.dispatch(eA({value:e}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-height-metric-chooser"]],standalone:!0,features:[o.aNF],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&&(o.nrm(0,"cc-metric-chooser",0),o.nI1(1,"async")),2&i&&o.Y8G("selectedMetricName",o.bMT(1,2,r.heightMetric$))("handleMetricChanged",r.handleHeightMetricChanged)},dependencies:[U2,Qn],encapsulation:2})}}return n})();const ibe=sn(Ro,n=>n.amountOfTopLabels),GX=sn(Ro,n=>n.colorLabels),rbe=sn(GX,n=>n.negative||n.neutral||n.positive),obe=sn(Ro,n=>n.showMetricLabelNodeName),sbe=sn(Ro,n=>n.showMetricLabelNameValue),abe=sn(Ro,n=>n.scaling),lbe=sn(Ro,n=>n.invertHeight),cbe=()=>["appSettings.amountOfTopLabels","appSettings.scaling.y","appSettings.invertHeight"];function dbe(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-checkbox",1),o.nI1(1,"async"),o.bIt("change",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.setInvertHeight(r))}),o.EFF(2," Invert Height "),o.k0s()}if(2&n){const e=o.XpG();o.Y8G("checked",o.bMT(1,1,e.invertHeight$))}}let ube=(()=>{class n{static{this.DEBOUNCE_TIME=400}constructor(e){this.store=e,this.amountOfTopLabels$=this.store.select(ibe),this.isLabelsSliderDisabled$=this.store.select(rbe),this.showMetricLabelNodeName$=this.store.select(obe),this.showMetricLabelNodeValue$=this.store.select(sbe),this.scaling$=this.store.select(abe),this.invertHeight$=this.store.select(lbe),this.isDeltaState$=this.store.select(u0),this.applyDebouncedTopLabels=pf(i=>{this.store.dispatch(o0({value:i}))},n.DEBOUNCE_TIME),this.applyDebouncedScalingY=pf(i=>{this.store.dispatch(px({value:{y:i}}))},n.DEBOUNCE_TIME)}setShowMetricLabelNodeName(e){this.store.dispatch(x2({value:e.checked}))}setShowMetricLabelNameValue(e){this.store.dispatch(w2({value:e.checked}))}setInvertHeight(e){this.store.dispatch(g2({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-height-settings-panel"]],standalone:!0,features:[o.aNF],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&&(o.nrm(0,"cc-slider",0),o.nI1(1,"async"),o.nI1(2,"async"),o.nI1(3,"async"),o.nI1(4,"async"),o.j41(5,"mat-checkbox",1),o.nI1(6,"async"),o.bIt("change",function(l){return r.setShowMetricLabelNodeName(l)}),o.EFF(7,"Show label node names\n"),o.k0s(),o.j41(8,"mat-checkbox",1),o.nI1(9,"async"),o.bIt("change",function(l){return r.setShowMetricLabelNameValue(l)}),o.EFF(10,"Show label node metrics\n"),o.k0s(),o.nrm(11,"cc-slider",2),o.nI1(12,"async"),o.DNE(13,dbe,3,3,"mat-checkbox",3),o.nI1(14,"async"),o.nrm(15,"cc-reset-settings-button",4)),2&i&&(o.Y8G("disabled",o.bMT(1,15,r.isLabelsSliderDisabled$))("title",o.bMT(2,17,r.isLabelsSliderDisabled$)?"Disabled because color labels are used":"Display the labels of the "+o.bMT(3,19,r.amountOfTopLabels$)+" highest buildings")("min",0)("max",50)("value",o.bMT(4,21,r.amountOfTopLabels$))("onChange",r.applyDebouncedTopLabels),o.R7$(5),o.Y8G("checked",o.bMT(6,23,r.showMetricLabelNodeName$)),o.R7$(3),o.Y8G("checked",o.bMT(9,25,r.showMetricLabelNodeValue$)),o.R7$(3),o.Y8G("step",1)("min",1)("max",5)("value",o.bMT(12,27,r.scaling$).y)("onChange",r.applyDebouncedScalingY),o.R7$(2),o.vxM(o.bMT(14,29,r.isDeltaState$)?-1:13),o.R7$(2),o.Y8G("settingsKeys",o.lJ4(31,cbe)))},dependencies:[IR,av,P2,Qn],encapsulation:2})}}return n})();const O7=sn(Ro,n=>n.isColorMetricLinkedToHeightMetric);let hbe=(()=>{class n{constructor(e){this.store=e,this.isColorMetricLinkedToHeightMetric$=this.store.select(O7)}toggleIsColorMetricLinkedToHeightMetric(){this.store.dispatch(X8())}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-link-color-metric-to-height-metric-button"]],standalone:!0,features:[o.aNF],decls:4,vars:6,consts:[[1,"cc-link-metrics-button",3,"click","title"],[3,"ngClass"]],template:function(i,r){1&i&&(o.j41(0,"button",0),o.nI1(1,"async"),o.bIt("click",function(){return r.toggleIsColorMetricLinkedToHeightMetric()}),o.nrm(2,"i",1),o.nI1(3,"async"),o.k0s()),2&i&&(o.FS9("title",o.bMT(1,2,r.isColorMetricLinkedToHeightMetric$)?"Unlink Height and Color Metric":"Link Height and Color Metric"),o.R7$(2),o.Y8G("ngClass",o.bMT(3,4,r.isColorMetricLinkedToHeightMetric$)?"fa fa-chain-broken":"fa fa-link"))},dependencies:[En,Qn],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})(),fbe=(()=>{class n{constructor(e){this.store=e,this.colorMetric$=this.store.select(Gg),this.isColorMetricLinkedToHeightMetric$=this.store.select(O7)}handleColorMetricChanged(e){this.store.dispatch(zu({value:e}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-color-metric-chooser"]],standalone:!0,features:[o.aNF],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&&(o.nrm(0,"cc-metric-chooser",0),o.nI1(1,"async"),o.nI1(2,"async"),o.nI1(3,"async")),2&i&&(o.Y8G("selectedMetricName",o.bMT(1,4,r.colorMetric$))("handleMetricChanged",r.handleColorMetricChanged)("isDisabled",o.bMT(2,6,r.isColorMetricLinkedToHeightMetric$)),o.BMQ("title",o.bMT(3,8,r.isColorMetricLinkedToHeightMetric$)?"Currently linked to height metric":"Change color metric"))},dependencies:[U2,Qn],encapsulation:2})}}return n})();const Abe=({thumbX:n,minValue:t,maxValue:e,sliderWidth:i})=>Math.round(t+n*((e-t)/i)),jX=({newThumbScreenX:n,sliderBoundingClientRectX:t,thumbRadius:e,sliderWidth:i,minValue:r,maxValue:s})=>{const l=n-t+e;return{updatedThumbX:l,upcomingValue:Abe({thumbX:l,minValue:r,maxValue:s,sliderWidth:i})}},_be=["minLabel"],bbe=["maxLabel"],vbe=["currentLeftLabel"],ybe=["currentRightLabel"],wbe=["combinedCurrentLeftRightLabel"];let xbe=(()=>{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,s=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>=s;const l=this.currentLeftLabelLeftPosition+i;this.doLeftRightLabelOverlap=l+4>=this.currentRightLabelLeftPosition;const u=(l+this.currentRightLabelLeftPosition)/2,f=this.combinedCurrentLeftRightLabel.nativeElement.getBoundingClientRect().width;this.combinedCurrentLeftRightLabelLeftPosition=u-f/2,this.changeDetector.detectChanges()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(o.gRc))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-range-slider-labels"]],viewQuery:function(i,r){if(1&i&&(o.GBs(_be,5),o.GBs(bbe,5),o.GBs(vbe,5),o.GBs(ybe,5),o.GBs(wbe,5)),2&i){let s;o.mGM(s=o.lsd())&&(r.minLabel=s.first),o.mGM(s=o.lsd())&&(r.maxLabel=s.first),o.mGM(s=o.lsd())&&(r.currentLeftLabel=s.first),o.mGM(s=o.lsd())&&(r.currentRightLabel=s.first),o.mGM(s=o.lsd())&&(r.combinedCurrentLeftRightLabel=s.first)}},inputs:{minValue:"minValue",maxValue:"maxValue",leftValueLabel:"leftValueLabel",rightValueLabel:"rightValueLabel",sliderRangePosition:"sliderRangePosition",sliderWidth:"sliderWidth"},standalone:!0,features:[o.aNF],decls:15,vars:26,consts:[["minLabel",""],["currentLeftLabel",""],["currentRightLabel",""],["combinedCurrentLeftRightLabel",""],["maxLabel",""],[1,"cc-range-slider-label"]],template:function(i,r){1&i&&(o.j41(0,"div",5,0),o.EFF(2),o.k0s(),o.j41(3,"div",5,1),o.EFF(5),o.k0s(),o.j41(6,"div",5,2),o.EFF(8),o.k0s(),o.j41(9,"div",5,3),o.EFF(11),o.k0s(),o.j41(12,"div",5,4),o.EFF(14),o.k0s()),2&i&&(o.xc7("left",0,"px")("visibility",r.hideMinLabel?"hidden":"visible"),o.R7$(2),o.SpI(" ",r.minValue,"\n"),o.R7$(),o.xc7("left",r.currentLeftLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"hidden":"visible"),o.R7$(2),o.SpI(" ",r.leftValueLabel,"\n"),o.R7$(),o.xc7("left",r.currentRightLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"hidden":"visible"),o.R7$(2),o.SpI(" ",r.rightValueLabel,"\n"),o.R7$(),o.xc7("left",r.combinedCurrentLeftRightLabelLeftPosition,"px")("visibility",r.doLeftRightLabelOverlap?"visible":"hidden"),o.R7$(2),o.Lme(" ",r.leftValueLabel," - ",r.rightValueLabel,"\n"),o.R7$(),o.xc7("right",0,"px")("visibility",r.hideMaxLabel?"hidden":"visible"),o.R7$(2),o.SpI(" ",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 Cbe=["rangeSliderContainer"],Mbe=["leftThumb"],Ebe=["rightThumb"];let Sbe=(()=>{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:s,minValue:l,maxValue:u})=>{let f=t+n;return fi&&(f=i),jX({newThumbScreenX:f,sliderBoundingClientRectX:r,thumbRadius:e,sliderWidth:s,minValue:l,maxValue:u})})({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:s,minValue:l,maxValue:u})=>{let f=t+n;return f>r+s-e&&(f=r+s-e),f{const s=t-n;return s<=0?{leftEnd:r,rightStart:r}:{leftEnd:(e-n)/s*r,rightStart:(i-n)/s*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=p7(e,this.minValue,this.currentRightValue);i!==this.currentLeftValue&&this.handleValueChange({newLeftValue:i})}handleCurrentRightInputChanged(e){const i=p7(e,this.currentLeftValue,this.maxValue);i!==this.currentRightValue&&this.handleValueChange({newRightValue:i})}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-metric-color-range-slider"]],viewQuery:function(i,r){if(1&i&&(o.GBs(Cbe,5),o.GBs(Mbe,5),o.GBs(Ebe,5)),2&i){let s;o.mGM(s=o.lsd())&&(r.sliderContainer=s.first),o.mGM(s=o.lsd())&&(r.leftThumb=s.first),o.mGM(s=o.lsd())&&(r.rightThumb=s.first)}},inputs:{minValue:"minValue",maxValue:"maxValue",currentLeftValue:"currentLeftValue",currentRightValue:"currentRightValue",leftColor:"leftColor",middleColor:"middleColor",rightColor:"rightColor",handleValueChange:"handleValueChange",sliderWidth:"sliderWidth",isAttributeDirectionInversed:"isAttributeDirectionInversed"},standalone:!0,features:[o.OA$,o.aNF],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 s=o.RV6();o.j41(0,"div",3)(1,"mat-form-field",4)(2,"input",5),o.bIt("input",function(u){return o.eBV(s),o.Njj(r.handleCurrentLeftInputChanged(u))}),o.k0s()(),o.j41(3,"div",6,0),o.nrm(5,"span",7)(6,"span",7)(7,"span",7),o.j41(8,"div",8,1),o.bIt("mousedown",function(){return o.eBV(s),o.Njj(r.setCurrentlySliding("leftThumb"))}),o.k0s(),o.j41(10,"div",8,2),o.bIt("mousedown",function(){return o.eBV(s),o.Njj(r.setCurrentlySliding("rightThumb"))}),o.k0s(),o.nrm(12,"cc-range-slider-labels",9),o.k0s(),o.j41(13,"mat-form-field",4)(14,"input",5),o.bIt("input",function(u){return o.eBV(s),o.Njj(r.handleCurrentRightInputChanged(u))}),o.k0s()()()}2&i&&(o.R7$(2),o.Y8G("value",r.currentLeftValue)("min",r.minValue)("max",r.upcomingRightValue),o.R7$(3),o.xc7("width",r.sliderRangePosition.leftEnd,"px")("border-bottom-color",r.leftColor),o.R7$(),o.xc7("width",r.sliderRangePosition.rightStart-r.sliderRangePosition.leftEnd,"px")("border-bottom-color",r.middleColor),o.R7$(),o.xc7("width",r.sliderWidth-r.sliderRangePosition.rightStart,"px")("border-bottom-color",r.rightColor),o.R7$(),o.xc7("left",r.sliderRangePosition.leftEnd-r.thumbRadius,"px"),o.R7$(2),o.xc7("left",r.sliderRangePosition.rightStart-r.thumbRadius,"px"),o.R7$(2),o.Y8G("minValue",r.minValue)("maxValue",r.maxValue)("leftValueLabel",r.upcomingLeftValue)("rightValueLabel",r.upcomingRightValue)("sliderRangePosition",r.sliderRangePosition)("sliderWidth",r.sliderWidth),o.R7$(2),o.Y8G("value",r.currentRightValue)("min",r.upcomingLeftValue)("max",r.maxValue))},dependencies:[Vu,n0,xbe],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 Tbe=sn(Zw,u0,n=>({leftColor:n.positive,middleColor:n.neutral,rightColor:n.negative})),$X=sn(Hc,n=>n.colorRange),Ibe=sn(qp,$X,(n,t)=>({values:n.values,min:n.minValue,max:n.maxValue,from:t.from,to:t.to}));function qX(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 Dbe(n){return n}function Bbe(n){return"translate("+n+",0)"}function kbe(n){return"translate(0,"+n+")"}function Rbe(n){return t=>+n(t)}function Pbe(n,t){return t=Math.max(0,n.bandwidth()-2*t)/2,n.round()&&(t=Math.round(t)),e=>+n(e)+t}function Obe(){return!this.__axis}function $R(n,t){var e=[],i=null,r=null,s=6,l=6,u=3,f=typeof window<"u"&&window.devicePixelRatio>1?0:.5,p=1===n||4===n?-1:1,m=4===n||2===n?"x":"y",_=1===n||3===n?Bbe:kbe;function b(w){var F=i??(t.ticks?t.ticks.apply(t,e):t.domain()),D=r??(t.tickFormat?t.tickFormat.apply(t,e):Dbe),T=Math.max(s,0)+u,I=t.range(),O=+I[0]+f,R=+I[I.length-1]+f,P=(t.bandwidth?Pbe:Rbe)(t.copy(),f),ee=w.selection?w.selection():w,J=ee.selectAll(".domain").data([null]),te=ee.selectAll(".tick").data(F,t).order(),ie=te.exit(),W=te.enter().append("g").attr("class","tick"),q=te.select("line"),le=te.select("text");J=J.merge(J.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),te=te.merge(W),q=q.merge(W.append("line").attr("stroke","currentColor").attr(m+"2",p*s)),le=le.merge(W.append("text").attr("fill","currentColor").attr(m,p*T).attr("dy",1===n?"0em":3===n?"0.71em":"0.32em")),w!==ee&&(J=J.transition(w),te=te.transition(w),q=q.transition(w),le=le.transition(w),ie=ie.transition(w).attr("opacity",1e-6).attr("transform",function(ke){return isFinite(ke=P(ke))?_(ke+f):this.getAttribute("transform")}),W.attr("opacity",1e-6).attr("transform",function(ke){var Ue=this.parentNode.__axis;return _((Ue&&isFinite(Ue=Ue(ke))?Ue:P(ke))+f)})),ie.remove(),J.attr("d",4===n||2===n?l?"M"+p*l+","+O+"H"+f+"V"+R+"H"+p*l:"M"+f+","+O+"V"+R:l?"M"+O+","+p*l+"V"+f+"H"+R+"V"+p*l:"M"+O+","+f+"H"+R),te.attr("opacity",1).attr("transform",function(ke){return _(P(ke)+f)}),q.attr(m+"2",p*s),le.attr(m,p*T).text(D),ee.filter(Obe).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===n?"start":4===n?"end":"middle"),ee.each(function(){this.__axis=P})}return b.scale=function(w){return arguments.length?(t=w,b):t},b.ticks=function(){return e=Array.from(arguments),b},b.tickArguments=function(w){return arguments.length?(e=null==w?[]:Array.from(w),b):e.slice()},b.tickValues=function(w){return arguments.length?(i=null==w?null:Array.from(w),b):i&&i.slice()},b.tickFormat=function(w){return arguments.length?(r=w,b):r},b.tickSize=function(w){return arguments.length?(s=l=+w,b):s},b.tickSizeInner=function(w){return arguments.length?(s=+w,b):s},b.tickSizeOuter=function(w){return arguments.length?(l=+w,b):l},b.tickPadding=function(w){return arguments.length?(u=+w,b):u},b.offset=function(w){return arguments.length?(f=+w,b):f},b}function Ube(){}function U7(n){return null==n?Ube:function(){return this.querySelector(n)}}function Qbe(){return[]}function XX(n){return null==n?Qbe:function(){return this.querySelectorAll(n)}}function KX(n){return function(){return this.matches(n)}}function YX(n){return function(t){return t.matches(n)}}var jbe=Array.prototype.find;function qbe(){return this.firstElementChild}var Xbe=Array.prototype.filter;function Kbe(){return Array.from(this.children)}function ZX(n){return new Array(n.length)}function qR(n,t){this.ownerDocument=n.ownerDocument,this.namespaceURI=n.namespaceURI,this._next=null,this._parent=n,this.__data__=t}function nve(n,t,e,i,r,s){for(var u,l=0,f=t.length,p=s.length;lt?1:n>=t?0:NaN}qR.prototype={constructor:qR,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 V7="http://www.w3.org/1999/xhtml";const JX={svg:"http://www.w3.org/2000/svg",xhtml:V7,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function WR(n){var t=n+="",e=t.indexOf(":");return e>=0&&"xmlns"!==(t=n.slice(0,e))&&(n=n.slice(e+1)),JX.hasOwnProperty(t)?{space:JX[t],local:n}:n}function bve(n){return function(){this.removeAttribute(n)}}function vve(n){return function(){this.removeAttributeNS(n.space,n.local)}}function yve(n,t){return function(){this.setAttribute(n,t)}}function wve(n,t){return function(){this.setAttributeNS(n.space,n.local,t)}}function xve(n,t){return function(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}}function Cve(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 eK(n){return n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView}function Eve(n){return function(){this.style.removeProperty(n)}}function Sve(n,t,e){return function(){this.style.setProperty(n,t,e)}}function Tve(n,t,e){return function(){var i=t.apply(this,arguments);null==i?this.style.removeProperty(n):this.style.setProperty(n,i,e)}}function Mx(n,t){return n.style.getPropertyValue(t)||eK(n).getComputedStyle(n,null).getPropertyValue(t)}function Fve(n){return function(){delete this[n]}}function Dve(n,t){return function(){this[n]=t}}function Bve(n,t){return function(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}}function tK(n){return n.trim().split(/^|\s+/)}function H7(n){return n.classList||new nK(n)}function nK(n){this._node=n,this._names=tK(n.getAttribute("class")||"")}function iK(n,t){for(var e=H7(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 aK=[null];function jc(n,t){this._groups=n,this._parents=t}function lK(){return new jc([[document.documentElement]],aK)}jc.prototype=lK.prototype={constructor:jc,select:function Vbe(n){"function"!=typeof n&&(n=U7(n));for(var t=this._groups,e=t.length,i=new Array(e),r=0;r=R&&(R=O+1);!(ee=T[R])&&++R=0;)(l=i[r])&&(s&&4^l.compareDocumentPosition(s)&&s.parentNode.insertBefore(l,s),s=l);return this},sort:function uve(n){function t(_,b){return _&&b?n(_.__data__,b.__data__):!_-!b}n||(n=hve);for(var e=this._groups,i=e.length,r=new Array(i),s=0;s1?this.each((null==t?Eve:"function"==typeof t?Tve:Sve)(n,t,e??"")):Mx(this.node(),n)},property:function kve(n,t){return arguments.length>1?this.each((null==t?Fve:"function"==typeof t?Bve:Dve)(n,t)):this.node()[n]},classed:function Nve(n,t){var e=tK(n+"");if(arguments.length<2){for(var i=H7(this.node()),r=-1,s=e.length;++r=0&&(e=t.slice(i+1),t=t.slice(0,i)),{type:t,name:e}})}(n+""),s=i.length;if(!(arguments.length<2)){for(u=t?dye:cye,r=0;r{}};function cK(){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),s=-1,l=i.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++s0)for(var r,s,e=new Array(r),i=0;i=0&&n._call.call(void 0,t),n=n._next;--Ex}()}finally{Ex=0,function Cye(){for(var n,e,t=KR,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:KR=e);j2=n,z7(i)}(),dv=0}}function xye(){var n=$2.now(),t=n-YR;t>uK&&(ZR-=t,YR=n)}function z7(n){Ex||(z2&&(z2=clearTimeout(z2)),n-dv>24?(n<1/0&&(z2=setTimeout(pK,n-$2.now()-ZR)),G2&&(G2=clearInterval(G2))):(G2||(YR=$2.now(),G2=setInterval(xye,uK)),Ex=1,hK(pK)))}function AK(n,t,e){var i=new JR;return i.restart(r=>{i.stop(),n(r+t)},t=null==t?0:+t,e),i}JR.prototype=fK.prototype={constructor:JR,restart:function(n,t,e){if("function"!=typeof n)throw new TypeError("callback is not a function");e=(null==e?Q7():+e)+(null==t?0:+t),!this._next&&j2!==this&&(j2?j2._next=this:KR=this,j2=this),this._call=n,this._time=e,z7()},stop:function(){this._call&&(this._call=null,this._time=1/0,z7())}};var Mye=vye("start","end","cancel","interrupt"),Eye=[],mK=0,eP=3;function nP(n,t,e,i,r,s){var l=n.__transition;if(l){if(e in l)return}else n.__transition={};!function Sye(n,t,e){var r,i=n.__transition;function l(p){var m,_,b,w;if(1!==e.state)return f();for(m in i)if((w=i[m]).name===e.name){if(w.state===eP)return AK(l);4===w.state?(w.state=6,w.timer.stop(),w.on.call("interrupt",n,n.__data__,w.index,w.group),delete i[m]):+mmK)throw new Error("too late; already scheduled");return e}function Af(n,t){var e=Gu(n,t);if(e.state>eP)throw new Error("too late; already running");return e}function Gu(n,t){var e=n.__transition;if(!e||!(e=e[t]))throw new Error("transition not found");return e}function ju(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}var iP,bK=180/Math.PI,q7={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function vK(n,t,e,i,r,s){var l,u,f;return(l=Math.sqrt(n*n+t*t))&&(n/=l,t/=l),(f=n*e+t*i)&&(e-=n*f,i-=t*f),(u=Math.sqrt(e*e+i*i))&&(e/=u,i/=u,f/=u),n*i180?m+=360:m-p>180&&(p+=360),b.push({i:_.push(r(_)+"rotate(",null,i)-2,x:ju(p,m)})):m&&_.push(r(_)+"rotate("+m+i)}(p.rotate,m.rotate,_,b),function u(p,m,_,b){p!==m?b.push({i:_.push(r(_)+"skewX(",null,i)-2,x:ju(p,m)}):m&&_.push(r(_)+"skewX("+m+i)}(p.skewX,m.skewX,_,b),function f(p,m,_,b,w,F){if(p!==_||m!==b){var D=w.push(r(w)+"scale(",null,",",null,")");F.push({i:D-4,x:ju(p,_)},{i:D-2,x:ju(m,b)})}else(1!==_||1!==b)&&w.push(r(w)+"scale("+_+","+b+")")}(p.scaleX,p.scaleY,m.scaleX,m.scaleY,_,b),p=m=null,function(w){for(var T,F=-1,D=b.length;++F>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===e?oP(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===e?oP(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=Lye.exec(n))?new uc(t[1],t[2],t[3],1):(t=Uye.exec(n))?new uc(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Vye.exec(n))?oP(t[1],t[2],t[3],t[4]):(t=Hye.exec(n))?oP(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Qye.exec(n))?IK(t[1],t[2]/100,t[3]/100,1):(t=zye.exec(n))?IK(t[1],t[2]/100,t[3]/100,t[4]):xK.hasOwnProperty(n)?EK(xK[n]):"transparent"===n?new uc(NaN,NaN,NaN,0):null}function EK(n){return new uc(n>>16&255,n>>8&255,255&n,1)}function oP(n,t,e,i){return i<=0&&(n=t=e=NaN),new uc(n,t,e,i)}function sP(n,t,e,i){return 1===arguments.length?function $ye(n){return n instanceof q2||(n=uv(n)),n?new uc((n=n.rgb()).r,n.g,n.b,n.opacity):new uc}(n):new uc(n,t,e,i??1)}function uc(n,t,e,i){this.r=+n,this.g=+t,this.b=+e,this.opacity=+i}function SK(){return`#${fv(this.r)}${fv(this.g)}${fv(this.b)}`}function TK(){const n=aP(this.opacity);return`${1===n?"rgb(":"rgba("}${hv(this.r)}, ${hv(this.g)}, ${hv(this.b)}${1===n?")":`, ${n})`}`}function aP(n){return isNaN(n)?1:Math.max(0,Math.min(1,n))}function hv(n){return Math.max(0,Math.min(255,Math.round(n)||0))}function fv(n){return((n=hv(n))<16?"0":"")+n.toString(16)}function IK(n,t,e,i){return i<=0?n=t=e=NaN:e<=0||e>=1?n=t=NaN:t<=0&&(n=NaN),new $u(n,t,e,i)}function FK(n){if(n instanceof $u)return new $u(n.h,n.s,n.l,n.opacity);if(n instanceof q2||(n=uv(n)),!n)return new $u;if(n instanceof $u)return n;var t=(n=n.rgb()).r/255,e=n.g/255,i=n.b/255,r=Math.min(t,e,i),s=Math.max(t,e,i),l=NaN,u=s-r,f=(s+r)/2;return u?(l=t===s?(e-i)/u+6*(e0&&f<1?0:l,new $u(l,u,f,n.opacity)}function $u(n,t,e,i){this.h=+n,this.s=+t,this.l=+e,this.opacity=+i}function DK(n){return(n=(n||0)%360)<0?n+360:n}function lP(n){return Math.max(0,Math.min(1,n||0))}function K7(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 BK(n,t,e,i,r){var s=n*n,l=s*n;return((1-3*n+3*s-l)*t+(4-6*s+3*l)*e+(1+3*n+3*s-3*l)*i+l*r)/6}X7(q2,uv,{copy(n){return Object.assign(new this.constructor,this,n)},displayable(){return this.rgb().displayable()},hex:CK,formatHex:CK,formatHex8:function Gye(){return this.rgb().formatHex8()},formatHsl:function jye(){return FK(this).formatHsl()},formatRgb:MK,toString:MK}),X7(uc,sP,wK(q2,{brighter(n){return n=null==n?rP:Math.pow(rP,n),new uc(this.r*n,this.g*n,this.b*n,this.opacity)},darker(n){return n=null==n?.7:Math.pow(.7,n),new uc(this.r*n,this.g*n,this.b*n,this.opacity)},rgb(){return this},clamp(){return new uc(hv(this.r),hv(this.g),hv(this.b),aP(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:SK,formatHex:SK,formatHex8:function qye(){return`#${fv(this.r)}${fv(this.g)}${fv(this.b)}${fv(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:TK,toString:TK})),X7($u,function Wye(n,t,e,i){return 1===arguments.length?FK(n):new $u(n,t,e,i??1)},wK(q2,{brighter(n){return n=null==n?rP:Math.pow(rP,n),new $u(this.h,this.s,this.l*n,this.opacity)},darker(n){return n=null==n?.7:Math.pow(.7,n),new $u(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 uc(K7(n>=240?n-240:n+120,r,i),K7(n,r,i),K7(n<120?n+240:n-120,r,i),this.opacity)},clamp(){return new $u(DK(this.h),lP(this.s),lP(this.l),aP(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=aP(this.opacity);return`${1===n?"hsl(":"hsla("}${DK(this.h)}, ${100*lP(this.s)}%, ${100*lP(this.l)}%${1===n?")":`, ${n})`}`}}));const Y7=n=>()=>n;function RK(n,t){var e=t-n;return e?function kK(n,t){return function(e){return n+e*t}}(n,e):Y7(isNaN(n)?t:n)}const cP=function n(t){var e=function Zye(n){return 1==(n=+n)?RK:function(t,e){return e-t?function Yye(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):Y7(isNaN(t)?e:t)}}(t);function i(r,s){var l=e((r=sP(r)).r,(s=sP(s)).r),u=e(r.g,s.g),f=e(r.b,s.b),p=RK(r.opacity,s.opacity);return function(m){return r.r=l(m),r.g=u(m),r.b=f(m),r.opacity=p(m),r+""}}return i.gamma=n,i}(1);function PK(n){return function(t){var l,u,e=t.length,i=new Array(e),r=new Array(e),s=new Array(e);for(l=0;l=1?(e=1,t-1):Math.floor(e*t),r=n[i],s=n[i+1];return BK((e-i/t)*t,i>0?n[i-1]:2*r-s,r,s,ie&&(s=t.slice(e,s),u[l]?u[l]+=s:u[++l]=s),(i=i[0])===(r=r[0])?u[l]?u[l]+=r:u[++l]=r:(u[++l]=null,f.push({i:l,x:ju(i,r)})),e=J7.lastIndex;return e=0&&(t=t.slice(0,e)),!t||"start"===t})}(t)?$7:Af;return function(){var l=s(this,n),u=l.on;u!==i&&(r=(i=u).copy()).on(t,e),l.on=r}}(e,n,t))},attr:function a1e(n,t){var e=WR(n),i="transform"===e?kye:NK;return this.attrTween(n,"function"==typeof t?(e.local?s1e:o1e)(e,i,W7(this,"attr."+n,t)):null==t?(e.local?n1e:t1e)(e):(e.local?r1e:i1e)(e,i,t))},attrTween:function h1e(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=WR(n);return this.tween(e,(i.local?d1e:u1e)(i,t))},style:function L1e(n,t,e){var i="transform"==(n+="")?Bye:NK;return null==t?this.styleTween(n,function R1e(n,t){var e,i,r;return function(){var s=Mx(this,n),l=(this.style.removeProperty(n),Mx(this,n));return s===l?null:s===e&&l===i?r:r=t(e=s,i=l)}}(n,i)).on("end.style."+n,LK(n)):"function"==typeof t?this.styleTween(n,function O1e(n,t,e){var i,r,s;return function(){var l=Mx(this,n),u=e(this),f=u+"";return null==u&&(this.style.removeProperty(n),f=u=Mx(this,n)),l===f?null:l===i&&f===r?s:(r=f,s=t(i=l,u))}}(n,i,W7(this,"style."+n,t))).each(function N1e(n,t){var e,i,r,u,s="style."+t,l="end."+s;return function(){var f=Af(this,n),p=f.on,m=null==f.value[s]?u||(u=LK(t)):void 0;(p!==e||r!==m)&&(i=(e=p).copy()).on(l,r=m),f.on=i}}(this._id,n)):this.styleTween(n,function P1e(n,t,e){var i,s,r=e+"";return function(){var l=Mx(this,n);return l===r?null:l===i?s:s=t(i=l,e)}}(n,i,t),e).on("end.style."+n,null)},styleTween:function H1e(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 V1e(n,t,e){var i,r;function s(){var l=t.apply(this,arguments);return l!==r&&(i=(r=l)&&function U1e(n,t,e){return function(i){this.style.setProperty(n,t.call(this,i),e)}}(n,l,e)),i}return s._value=t,s}(n,t,e??""))},text:function G1e(n){return this.tween("text","function"==typeof n?function z1e(n){return function(){var t=n(this);this.textContent=t??""}}(W7(this,"text",n)):function Q1e(n){return function(){this.textContent=n}}(null==n?"":n+""))},textTween:function q1e(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 $1e(n){var t,e;function i(){var r=n.apply(this,arguments);return r!==e&&(t=(e=r)&&function j1e(n){return function(t){this.textContent=n.call(this,t)}}(r)),t}return i._value=n,i}(n))},remove:function I1e(){return this.on("end.remove",function T1e(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 Oye(n,t){var e=this._id;if(n+="",arguments.length<2){for(var l,i=Gu(this.node(),e).tween,r=0,s=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[l]):s=!1;s&&delete n.__transition}}(this,n)})},Q2.prototype.transition=function twe(n){var t,e;n instanceof aA?(t=n._id,n=n._name):(t=UK(),(e=J1e).time=Q7(),n=null==n?null:n+"");for(var i=this._groups,r=i.length,s=0;s1?i[0]+i.slice(2):i,+n.slice(e+1)]}function Fx(n){return(n=hP(Math.abs(n)))?n[1]:NaN}["w","e"].map(K2),["n","s"].map(K2),["n","w","e","s","nw","ne","sw","se"].map(K2);var jK,hwe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function fP(n){if(!(t=hwe.exec(n)))throw new Error("invalid format: "+n);var t;return new rV({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 rV(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 $K(n,t){var e=hP(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")}fP.prototype=rV.prototype,rV.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 qK={"%":(n,t)=>(100*n).toFixed(t),b:n=>Math.round(n).toString(2),c:n=>n+"",d:function cwe(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)=>$K(100*n,t),r:$K,s:function pwe(n,t){var e=hP(n,t);if(!e)return n+"";var i=e[0],r=e[1],s=r-(jK=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,l=i.length;return s===l?i:s>l?i+new Array(s-l+1).join("0"):s>0?i.slice(0,s)+"."+i.slice(s):"0."+new Array(1-s).join("0")+hP(n,Math.max(0,t+s-1))[0]},X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function WK(n){return n}var pP,AP,YK,XK=Array.prototype.map,KK=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];!function mwe(n){pP=function Awe(n){var t=void 0===n.grouping||void 0===n.thousands?WK:function dwe(n,t){return function(e,i){for(var r=e.length,s=[],l=0,u=n[0],f=0;r>0&&u>0&&(f+u+1>i&&(u=Math.max(1,i-f)),s.push(e.substring(r-=u,r+u)),!((f+=u+1)>i));)u=n[l=(l+1)%n.length];return s.reverse().join(t)}}(XK.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+"",s=void 0===n.numerals?WK:function uwe(n){return function(t){return t.replace(/[0-9]/g,function(e){return n[+e]})}}(XK.call(n.numerals,String)),l=void 0===n.percent?"%":n.percent+"",u=void 0===n.minus?"\u2212":n.minus+"",f=void 0===n.nan?"NaN":n.nan+"";function p(_){var b=(_=fP(_)).fill,w=_.align,F=_.sign,D=_.symbol,T=_.zero,I=_.width,O=_.comma,R=_.precision,P=_.trim,ee=_.type;"n"===ee?(O=!0,ee="g"):qK[ee]||(void 0===R&&(R=12),P=!0,ee="g"),(T||"0"===b&&"="===w)&&(T=!0,b="0",w="=");var J="$"===D?e:"#"===D&&/[boxX]/.test(ee)?"0"+ee.toLowerCase():"",te="$"===D?i:/[%p]/.test(ee)?l:"",ie=qK[ee],W=/[defgprs%]/.test(ee);function q(le){var ce,ze,Ce,ke=J,Ue=te;if("c"===ee)Ue=ie(le)+Ue,le="";else{var Oe=(le=+le)<0||1/le<0;if(le=isNaN(le)?f:ie(Math.abs(le),R),P&&(le=function fwe(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}(le)),Oe&&0==+le&&"+"!==F&&(Oe=!1),ke=(Oe?"("===F?F:u:"-"===F||"("===F?"":F)+ke,Ue=("s"===ee?KK[8+jK/3]:"")+Ue+(Oe&&"("===F?")":""),W)for(ce=-1,ze=le.length;++ce(Ce=le.charCodeAt(ce))||Ce>57){Ue=(46===Ce?r+le.slice(ce+1):le.slice(ce))+Ue,le=le.slice(0,ce);break}}O&&!T&&(le=t(le,1/0));var Fe=ke.length+le.length+Ue.length,ft=Fe>1)+ke+le+Ue+ft.slice(Fe);break;default:le=ft+ke+le+Ue}return s(le)}return R=void 0===R?6:/[gprs]/.test(ee)?Math.max(1,Math.min(21,R)):Math.max(0,Math.min(20,R)),q.toString=function(){return _+""},q}return{format:p,formatPrefix:function m(_,b){var w=p(((_=fP(_)).type="f",_)),F=3*Math.max(-8,Math.min(8,Math.floor(Fx(b)/3))),D=Math.pow(10,-F),T=KK[8+F/3];return function(I){return w(D*I)+T}}}}(n),AP=pP.format,YK=pP.formatPrefix}({thousands:",",grouping:[3],currency:["$",""]});const gwe=Math.sqrt(50),_we=Math.sqrt(10),bwe=Math.sqrt(2);function mP(n,t,e){const i=(t-n)/Math.max(0,e),r=Math.floor(Math.log10(i)),s=i/Math.pow(10,r),l=s>=gwe?10:s>=_we?5:s>=bwe?2:1;let u,f,p;return r<0?(p=Math.pow(10,-r)/l,u=Math.round(n*p),f=Math.round(t*p),u/pt&&--f,p=-p):(p=Math.pow(10,r)*l,u=Math.round(n/p),f=Math.round(t/p),u*pt&&--f),ft?1:n>=t?0:NaN}function wwe(n,t){return null==n||null==t?NaN:tn?1:t>=n?0:NaN}function ZK(n){let t,e,i;function r(u,f,p=0,m=u.length){if(p>>1;e(u[_],f)<0?p=_+1:m=_}while(pgP(n(u),f),i=(u,f)=>n(u)-f):(t=n===gP||n===wwe?n:xwe,e=n,i=n),{left:r,center:function l(u,f,p=0,m=u.length){const _=r(u,f,p,m-1);return _>p&&i(u[_-1],f)>-i(u[_],f)?_-1:_},right:function s(u,f,p=0,m=u.length){if(p>>1;e(u[_],f)<=0?p=_+1:m=_}while(p0))return[];if((n=+n)==(t=+t))return[n];const i=t=r))return[];const u=s-r+1,f=new Array(u);if(i)if(l<0)for(let p=0;p0;){if((p=oV(l,u,e))===f)return i[r]=l,i[s]=u,t(i);if(p>0)l=Math.floor(l/p)*p,u=Math.ceil(u/p)*p;else{if(!(p<0))break;l=Math.ceil(l*p)/p,u=Math.floor(u*p)/p}f=p}return n},n}function lV(){var n=function Uwe(){return function Lwe(){var i,r,s,u,f,p,n=tY,t=tY,e=sV,l=Dx;function m(){var b=Math.min(n.length,t.length);return l!==Dx&&(l=function Rwe(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[b-1])),u=b>2?Owe:Pwe,f=p=null,_}function _(b){return null==b||isNaN(b=+b)?s:(f||(f=u(n.map(i),t,e)))(i(l(b)))}return _.invert=function(b){return l(r((p||(p=u(t,n.map(i),ju)))(b)))},_.domain=function(b){return arguments.length?(n=Array.from(b,kwe),m()):n.slice()},_.range=function(b){return arguments.length?(t=Array.from(b),m()):t.slice()},_.rangeRound=function(b){return t=Array.from(b),e=Dwe,m()},_.clamp=function(b){return arguments.length?(l=!!b||Dx,m()):l!==Dx},_.interpolate=function(b){return arguments.length?(e=b,m()):e},_.unknown=function(b){return arguments.length?(s=b,_):s},function(b,w){return i=b,r=w,m()}}()(Dx,Dx)}();return n.copy=function(){return function Nwe(n,t){return t.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown())}(n,lV())},Vwe.apply(n,arguments),jwe(n)}function nY(n){return"string"==typeof n?new jc([[document.querySelector(n)]],[document.documentElement]):new jc([[n]],aK)}function Bx(n){return function(){return n}}function iY(n){this._context=n}function qwe(n){return new iY(n)}iY.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 cV=Math.PI,dV=2*cV,pv=1e-6,Wwe=dV-pv;function rY(n){this._+=n[0];for(let t=1,e=n.length;t=0))throw new Error(`invalid digits: ${n}`);if(t>15)return rY;const e=10**t;return function(i){this._+=i[0];for(let r=1,s=i.length;rpv)if(Math.abs(_*f-p*m)>pv&&s){let w=i-l,F=r-u,D=f*f+p*p,T=w*w+F*F,I=Math.sqrt(D),O=Math.sqrt(b),R=s*Math.tan((cV-Math.acos((D+b-T)/(2*I*O)))/2),P=R/O,ee=R/I;Math.abs(P-1)>pv&&this._append`L${t+P*m},${e+P*_}`,this._append`A${s},${s},0,0,${+(_*w>m*F)},${this._x1=t+ee*f},${this._y1=e+ee*p}`}else this._append`L${this._x1=t},${this._y1=e}`}arc(t,e,i,r,s,l){if(t=+t,e=+e,l=!!l,(i=+i)<0)throw new Error(`negative radius: ${i}`);let u=i*Math.cos(r),f=i*Math.sin(r),p=t+u,m=e+f,_=1^l,b=l?r-s:s-r;null===this._x1?this._append`M${p},${m}`:(Math.abs(this._x1-p)>pv||Math.abs(this._y1-m)>pv)&&this._append`L${p},${m}`,i&&(b<0&&(b=b%dV+dV),b>Wwe?this._append`A${i},${i},0,1,${_},${t-u},${e-f}A${i},${i},0,1,${_},${this._x1=p},${this._y1=m}`:b>pv&&this._append`A${i},${i},0,${+(b>=cV)},${_},${this._x1=t+i*Math.cos(s)},${this._y1=e+i*Math.sin(s)}`)}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 Zwe(n){return n[0]}function Jwe(n){return n[1]}function bP(n,t){this._context=n,this._t=t}function txe(n){return new bP(n,0)}function kx(n,t,e){this.k=n,this.x=t,this.y=e}bP.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}},kx.prototype={constructor:kx,scale:function(n){return 1===n?this:new kx(this.k*n,this.x,this.y)},translate:function(n,t){return 0===n&0===t?this:new kx(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 kx(1,0,0);let cxe=(()=>{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(),s=this.createYScale();this.drawAxes(i,r,s),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(){nY("#cc-range-diagram-container").selectAll("*").remove()}createSvg(){return nY("#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 Nbe(n){return $R(3,n)}(i).ticks(5)).attr("color","#888"),e.append("g").attr("id","axis-y").attr("transform",`translate(${-this.frameBuffer}, 0)`).call(function Lbe(n){return $R(4,n)}(r).ticks(5).tickFormat(function(s){return s>=1e4?`${AP(".0f")(s/1e3)}k`:s>=1e3?`${AP(".1f")(s/1e3)}k`:s.toString()})).attr("color","#888")}createXScale(){return lV().domain(function Fbe(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=s&&(e=i=s):(e>s&&(e=s),ie.x)).range([0,this.diagramWidth])}createYScale(){const e=[0,qX(this.percentileRanks,r=>r.y)],i=[qX(this.percentileRanks,r=>r.y),0];return lV().domain(this.isAttributeDirectionInversed?i:e).range([this.diagramHeight,0])}drawLabels(e){const s=(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",-s).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)),s=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",s-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",s).attr("y",-this.frameBuffer).attr("width",this.diagramWidth-s).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 exe(n,t){var e=Bx(!0),i=null,r=qwe,s=null,l=function Ywe(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 _P(t)}(u);function u(f){var p,_,w,m=(f=function $we(n){return"object"==typeof n&&"length"in n?n:Array.from(n)}(f)).length,b=!1;for(null==i&&(s=r(w=l())),p=0;p<=m;++p)!(pthis.createXScale()(i.x)).y(i=>this.createYScale()(i.y)))}calculatePercentileRanks(e){const i=[...new Set(e)].sort((l,u)=>l-u),r=e.length,s=[{x:0,y:i[0]}];for(const l of i){const f=e.filter(p=>p<=l).length/r*100;s.push({x:f,y:l})}return s}calculateReversedPercentileRanks(e){const i=[...new Set(e)].sort((l,u)=>l-u).reverse(),r=e.length,s=[{x:0,y:i[0]}];for(const l of i){const f=e.filter(p=>p>=l).length/r*100;s.push({x:f,y:l})}return s.sort((l,u)=>l.x-u.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=o.VBU({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"},standalone:!0,features:[o.OA$,o.aNF],decls:1,vars:0,consts:[["id","cc-range-diagram-container",1,"cc-range-diagram-container"]],template:function(i,r){1&i&&o.nrm(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})(),dxe=(()=>{class n{transform(e,i,r,s){switch(e){case"positive":return"unary"===s?`${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=o.EJ8({name:"mapColorLabel",type:n,pure:!0,standalone:!0})}}return n})();const uxe=n=>[n];let uV=(()=>{class n{constructor(e){this.store=e,this.colorMetric$=this.store.select(Gg),this.mapColors$=this.store.select(Zw),this.colorRange$=this.store.select($X),this.nodeMetricRange$=this.store.select(qp)}handleColorChange(e){this.store.dispatch(Wp({value:{[this.mapColorFor]:e}}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-color-picker-for-map-color"]],inputs:{mapColorFor:"mapColorFor"},standalone:!0,features:[o.aNF],decls:6,vars:17,consts:[[3,"onColorChange","hexColor","labels"]],template:function(i,r){1&i&&(o.j41(0,"cc-labelled-color-picker",0),o.nI1(1,"async"),o.nI1(2,"async"),o.nI1(3,"async"),o.nI1(4,"async"),o.nI1(5,"mapColorLabel"),o.bIt("onColorChange",function(l){return r.handleColorChange(l)}),o.k0s()),2&i&&o.Y8G("hexColor",o.bMT(1,2,r.mapColors$)[r.mapColorFor])("labels",o.eq3(15,uxe,o.ii3(5,10,r.mapColorFor,o.bMT(2,4,r.colorRange$),o.bMT(3,6,r.nodeMetricRange$),o.bMT(4,8,r.colorMetric$))))},dependencies:[j8,Qn,dxe],encapsulation:2})}}return n})();const hxe=()=>["appSettings.mapColors.positiveDelta","appSettings.mapColors.negativeDelta","appSettings.mapColors.selected"],fxe=()=>["appSettings.mapColors.positive","appSettings.mapColors.negative","appSettings.mapColors.neutral","appSettings.mapColors.selected"],pxe=()=>["appSettings.mapColors.positiveDelta","appSettings.mapColors.negativeDelta"];function Axe(n,t){if(1&n){const e=o.RV6();o.j41(0,"div"),o.nrm(1,"cc-metric-color-range-slider",4),o.nI1(2,"async"),o.nI1(3,"async"),o.nI1(4,"async"),o.nI1(5,"async"),o.nI1(6,"async"),o.nI1(7,"async"),o.nI1(8,"async"),o.nI1(9,"async"),o.nrm(10,"cc-reset-settings-button",5)(11,"cc-metric-color-range-diagram",6),o.nI1(12,"async"),o.nI1(13,"async"),o.nI1(14,"async"),o.nI1(15,"async"),o.nI1(16,"async"),o.nI1(17,"async"),o.nI1(18,"async"),o.nI1(19,"async"),o.nI1(20,"async"),o.nI1(21,"async"),o.j41(22,"mat-form-field",7)(23,"mat-label"),o.EFF(24,"Gradient Mode"),o.k0s(),o.j41(25,"mat-select",8),o.nI1(26,"async"),o.bIt("selectionChange",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleColorModeChange(r.value))}),o.j41(27,"div",9),o.bIt("mousedown",function(r){return o.eBV(e),o.Njj(r.stopPropagation())}),o.j41(28,"mat-option",10),o.EFF(29,"Absolute"),o.k0s(),o.j41(30,"mat-option",11),o.EFF(31,"Focused Gradient"),o.k0s(),o.j41(32,"mat-option",12),o.EFF(33,"Weighted Gradient"),o.k0s(),o.j41(34,"mat-option",13),o.EFF(35,"True Gradient"),o.k0s()()()()()}if(2&n){const e=o.XpG();o.R7$(),o.Y8G("minValue",o.bMT(2,22,e.sliderValues$).min)("maxValue",o.bMT(3,24,e.sliderValues$).max)("currentLeftValue",o.bMT(4,26,e.sliderValues$).from)("currentRightValue",o.bMT(5,28,e.sliderValues$).to)("leftColor",o.bMT(6,30,e.sliderColors$).leftColor)("middleColor",o.bMT(7,32,e.sliderColors$).middleColor)("rightColor",o.bMT(8,34,e.sliderColors$).rightColor)("handleValueChange",e.handleValueChange)("isAttributeDirectionInversed",o.bMT(9,36,e.isAttributeDescriptionInversed$)),o.R7$(9),o.Y8G("settingsKeys",o.lJ4(60,pxe))("callback",e.resetColorRange),o.R7$(),o.Y8G("minValue",o.bMT(12,38,e.sliderValues$).min)("maxValue",o.bMT(13,40,e.sliderValues$).max)("currentLeftValue",o.bMT(14,42,e.sliderValues$).from)("currentRightValue",o.bMT(15,44,e.sliderValues$).to)("leftColor",o.bMT(16,46,e.sliderColors$).leftColor)("middleColor",o.bMT(17,48,e.sliderColors$).middleColor)("rightColor",o.bMT(18,50,e.sliderColors$).rightColor)("colorMetric",o.bMT(19,52,e.colorMetric$))("values",o.bMT(20,54,e.sliderValues$).values)("isAttributeDirectionInversed",o.bMT(21,56,e.isAttributeDescriptionInversed$)),o.R7$(14),o.Y8G("value",o.bMT(26,58,e.colorMode$))}}function mxe(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",1),o.nrm(1,"cc-color-picker-for-map-color",0),o.j41(2,"mat-checkbox",14),o.nI1(3,"async"),o.bIt("change",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.toggleColorLabel(r,"positive"))}),o.EFF(4,"Show labels"),o.k0s()(),o.j41(5,"div",1),o.nrm(6,"cc-color-picker-for-map-color",0),o.j41(7,"mat-checkbox",14),o.nI1(8,"async"),o.bIt("change",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.toggleColorLabel(r,"neutral"))}),o.EFF(9,"Show labels"),o.k0s()(),o.j41(10,"div",1),o.nrm(11,"cc-color-picker-for-map-color",0),o.j41(12,"mat-checkbox",14),o.nI1(13,"async"),o.bIt("change",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.toggleColorLabel(r,"negative"))}),o.EFF(14,"Show labels"),o.k0s()()}if(2&n){const e=o.XpG();o.R7$(),o.Y8G("mapColorFor","positive"),o.R7$(),o.Y8G("checked",o.bMT(3,6,e.colorLabels$).positive),o.R7$(4),o.Y8G("mapColorFor","neutral"),o.R7$(),o.Y8G("checked",o.bMT(8,8,e.colorLabels$).neutral),o.R7$(4),o.Y8G("mapColorFor","negative"),o.R7$(),o.Y8G("checked",o.bMT(13,10,e.colorLabels$).negative)}}function gxe(n,t){1&n&&o.nrm(0,"cc-color-picker-for-map-color",0)(1,"cc-color-picker-for-map-color",0),2&n&&(o.Y8G("mapColorFor","positiveDelta"),o.R7$(),o.Y8G("mapColorFor","negativeDelta"))}function _xe(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-checkbox",14),o.bIt("change",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleIsColorRangeInvertedChange(r.checked))}),o.EFF(1,"Invert Colors"),o.k0s()}if(2&n){const e=o.XpG();o.Y8G("checked",e.isColorRangeInverted)}}function bxe(n,t){if(1&n){const e=o.RV6();o.j41(0,"mat-checkbox",14),o.bIt("change",function(r){o.eBV(e);const s=o.XpG();return o.Njj(s.handleAreDeltaColorsInverted(r.checked))}),o.EFF(1,"Invert Colors"),o.k0s()}if(2&n){const e=o.XpG();o.Y8G("checked",e.areDeltaColorsInverted)}}let vxe=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.colorMode$=this.store.select(pq),this.colorLabels$=this.store.select(GX),this.colorMetric$=this.store.select(Gg),this.isDeltaState$=this.store.select(u0),this.sliderValues$=this.store.select(Ibe),this.sliderColors$=this.store.select(Tbe),this.isAttributeDescriptionInversed$=this.checkIsAttributeDirectionReversed(),this.isColorRangeInverted=!1,this.areDeltaColorsInverted=!1,this.newLeftValue=null,this.newRightValue=null,this.handleValueChange=({newLeftValue:r,newRightValue:s})=>{this.newLeftValue=r??this.newLeftValue,this.newRightValue=s??this.newRightValue,this.updateColorRangeDebounced()},this.updateColorRangeDebounced=pf(()=>{const r={};null!==this.newLeftValue&&(r.from=this.newLeftValue),null!==this.newRightValue&&(r.to=this.newRightValue),this.store.dispatch(hf({value:r})),this.newLeftValue=null,this.newRightValue=null},400),this.resetInvertColorCheckboxes=()=>{this.isColorRangeInverted=!1,this.areDeltaColorsInverted=!1},this.resetColorRange=()=>{const r=qp(this.state.getValue());this.store.dispatch(hf({value:HR(r)}))}}checkIsAttributeDirectionReversed(){return this.colorMetric$.pipe((0,$n.T)(e=>1===this.state.getValue().fileSettings.attributeDescriptors[e]?.direction))}handleColorModeChange(e){this.store.dispatch(hx({value:e}))}toggleColorLabel(e,i){this.store.dispatch(f2({value:{[i]:e.checked}}))}handleIsColorRangeInvertedChange(e){this.isColorRangeInverted=e,this.store.dispatch(A3())}handleAreDeltaColorsInverted(e){this.areDeltaColorsInverted=e,this.store.dispatch(m3())}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(Vi))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-color-settings-panel"]],standalone:!0,features:[o.aNF],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&&(o.DNE(0,Axe,36,61,"div"),o.nI1(1,"async"),o.nI1(2,"async"),o.DNE(3,mxe,15,12),o.nI1(4,"async"),o.DNE(5,gxe,2,2),o.nrm(6,"cc-color-picker-for-map-color",0),o.j41(7,"div",1),o.nrm(8,"cc-reset-settings-button",2),o.nI1(9,"async"),o.DNE(10,_xe,2,1,"mat-checkbox",3),o.nI1(11,"async"),o.DNE(12,bxe,2,1,"mat-checkbox",3),o.k0s()),2&i&&(o.vxM(o.bMT(1,6,r.isDeltaState$)||"unary"===o.bMT(2,8,r.colorMetric$)?-1:0),o.R7$(3),o.vxM(o.bMT(4,10,r.isDeltaState$)?5:3),o.R7$(3),o.Y8G("mapColorFor","selected"),o.R7$(2),o.Y8G("settingsKeys",o.bMT(9,12,r.isDeltaState$)?o.lJ4(16,hxe):o.lJ4(17,fxe))("callback",r.resetInvertColorCheckboxes),o.R7$(2),o.vxM(o.bMT(11,14,r.isDeltaState$)?12:10))},dependencies:[Sbe,P2,cxe,Vu,Uu,t0,gd,uV,av,Qn],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 hV=sn(Ro,n=>n.isEdgeMetricVisible);function yxe(n,t){1&n&&(o.j41(0,"cc-rounded-box"),o.nrm(1,"cc-metric-chooser-type",3),o.EFF(2),o.k0s()),2&n&&(o.R7$(),o.Y8G("metricFor","edgeMetric"),o.R7$(),o.SpI(" ",t," "))}function wxe(n,t){if(1&n&&(o.j41(0,"cc-metric-chooser",1),o.nI1(1,"async"),o.j41(2,"div",2),o.DNE(3,yxe,3,2,"cc-rounded-box"),o.nI1(4,"async"),o.k0s()()),2&n){let e;const i=o.XpG();o.AVh("is-edge-metric-disabled",!o.bMT(1,6,i.isEdgeMetricVisible$)),o.Y8G("selectedMetricName",t)("searchPlaceholder","Edge Metric (highest value)")("handleMetricChanged",i.handleEdgeMetricChanged),o.R7$(3),o.vxM((e=o.bMT(4,8,i.edgeValue$))?3:-1,e)}}let xxe=(()=>{class n{constructor(e,i){this.store=e,this.nodeSelectionService=i,this.edgeValue$=this.createEdgeValue(),this.edgeMetric$=this.store.select(iA),this.isEdgeMetricVisible$=this.store.select(hV),this.formatHoveredEdgeValue=(r,s)=>{if(!s)return null;const l=s.edgeAttributes[r];return l?`${this.formatValue(l.incoming)} / ${this.formatValue(l.outgoing)}`:null},this.formatValue=r=>"number"==typeof r?r.toLocaleString():"-"}handleEdgeMetricChanged(e){this.store.dispatch(Jp({value:e}))}createEdgeValue(){return h0([this.store.select(iA),this.nodeSelectionService.createNodeObservable()]).pipe((0,$n.T)(([e,i])=>this.formatHoveredEdgeValue(e,i)))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(C7))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-edge-metric-chooser"]],standalone:!0,features:[o.aNF],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&&(o.DNE(0,wxe,5,10,"cc-metric-chooser",0),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.edgeMetric$))?0:-1,s)}},dependencies:[U2,zW,nX,Qn],styles:["cc-rounded-box[_ngcontent-%COMP%]{position:absolute;top:10%;right:28px}"]})}}return n})();const Cxe=sn(Ro,n=>n.edgeHeight),Mxe=sn(Ro,n=>n.showOnlyBuildingsWithEdges),Exe=sn(Aa,iA,(n,t)=>n.nodeEdgeMetricsMap.get(t)?.size??0);let Sxe=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.isEdgeMetricVisible$=this.store.select(hV)}toggleEdgeMetric(){this.store.dispatch(rR())}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-edge-metric-toggle"]],standalone:!0,features:[o.aNF],decls:3,vars:3,consts:[[1,"edgeMetricCheckbox",3,"change","checked"]],template:function(i,r){1&i&&(o.j41(0,"mat-checkbox",0),o.nI1(1,"async"),o.bIt("change",function(){return r.toggleEdgeMetric()}),o.EFF(2," Disable edge metric\n"),o.k0s()),2&i&&o.Y8G("checked",!o.bMT(1,1,r.isEdgeMetricVisible$))},dependencies:[av,Qn],encapsulation:2})}}return n})();const Txe=()=>["appSettings.showOnlyBuildingsWithEdges","appSettings.amountOfEdgePreviews","appSettings.edgeHeight"];let Ixe=(()=>{class n{constructor(e){this.store=e,this.amountOfBuildingsWithSelectedEdgeMetric$=this.store.select(Exe),this.edgePreviewLabel$=this.amountOfBuildingsWithSelectedEdgeMetric$.pipe((0,$n.T)(i=>`Preview the edges of up to ${i} buildings with the highest amount of incoming and outgoing edges`)),this.amountOfEdgePreviews$=this.store.select(YW),this.edgeHeight$=this.store.select(Cxe),this.showOnlyBuildingsWithEdges$=this.store.select(Mxe),this.applySettingsAmountOfEdgePreviews=i=>{this.store.dispatch(k2({value:i}))},this.applySettingsEdgeHeight=i=>{this.store.dispatch(fx({value:i}))}}applyShowOnlyBuildingsWithEdges(e){this.store.dispatch(C2({value:e.checked}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-edge-settings-panel"]],standalone:!0,features:[o.aNF],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&&(o.nrm(0,"cc-slider",0),o.nI1(1,"async"),o.nI1(2,"async"),o.nI1(3,"async"),o.nI1(4,"async"),o.nrm(5,"cc-slider",1),o.nI1(6,"async"),o.nI1(7,"async"),o.j41(8,"div",2),o.nrm(9,"cc-color-picker-for-map-color",3)(10,"cc-color-picker-for-map-color",3),o.k0s(),o.j41(11,"mat-checkbox",4),o.nI1(12,"async"),o.nI1(13,"async"),o.bIt("change",function(l){return r.applyShowOnlyBuildingsWithEdges(l)}),o.EFF(14," Only show nodes with edges\n"),o.k0s(),o.nrm(15,"cc-edge-metric-toggle")(16,"cc-reset-settings-button",5)),2&i&&(o.Y8G("title",o.bMT(1,18,r.edgePreviewLabel$))("label","Preview")("value",o.bMT(2,20,r.amountOfEdgePreviews$))("onChange",r.applySettingsAmountOfEdgePreviews)("min",0)("max",o.bMT(3,22,r.amountOfBuildingsWithSelectedEdgeMetric$))("disabled",0===o.bMT(4,24,r.amountOfBuildingsWithSelectedEdgeMetric$)),o.R7$(5),o.Y8G("label","Height")("value",o.bMT(6,26,r.edgeHeight$))("onChange",r.applySettingsEdgeHeight)("min",1)("max",9)("disabled",0===o.bMT(7,28,r.amountOfBuildingsWithSelectedEdgeMetric$)),o.R7$(4),o.Y8G("mapColorFor","outgoingEdge"),o.R7$(),o.Y8G("mapColorFor","incomingEdge"),o.R7$(),o.Y8G("checked",o.bMT(12,30,r.showOnlyBuildingsWithEdges$))("disabled",0===o.bMT(13,32,r.amountOfBuildingsWithSelectedEdgeMetric$)),o.R7$(5),o.Y8G("settingsKeys",o.lJ4(34,Txe)))},dependencies:[IR,uV,av,Sxe,P2,Qn],encapsulation:2})}}return n})();function Fxe(n,t){1&n&&(o.j41(0,"mat-card",8),o.nrm(1,"cc-link-color-metric-to-height-metric-button"),o.k0s(),o.j41(2,"cc-ribbon-bar-panel",9),o.nrm(3,"cc-color-metric-chooser"),o.j41(4,"cc-ribbon-bar-panel-settings"),o.nrm(5,"cc-color-settings-panel",4),o.k0s()()),2&n&&(o.R7$(2),o.Y8G("separator",!0))}function Dxe(n,t){1&n&&(o.j41(0,"cc-ribbon-bar-panel",6),o.nrm(1,"cc-edge-metric-chooser"),o.j41(2,"cc-ribbon-bar-panel-settings"),o.nrm(3,"cc-edge-settings-panel",4),o.k0s()()),2&n&&o.Y8G("separator",!0)}function Bxe(n,t){1&n&&(o.j41(0,"cc-ribbon-bar-panel",7)(1,"div",10),o.nrm(2,"i",11),o.j41(3,"span"),o.EFF(4,"Color Settings"),o.k0s()(),o.j41(5,"cc-ribbon-bar-panel-settings"),o.nrm(6,"cc-color-settings-panel",4),o.k0s()()),2&n&&o.Y8G("separator",!0)("isHeaderExpandable",!0)}let kxe=(()=>{class n{constructor(e){this.store=e,this.isDeltaState$=this.store.select(u0),this.hasEdgeMetric$=this.store.select(Aa).pipe((0,$n.T)(i=>i.edgeMetricData.length>0))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-ribbon-bar"]],standalone:!0,features:[o.aNF],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&&(o.nrm(0,"cc-search-panel"),o.j41(1,"cc-ribbon-bar-panel",0),o.nrm(2,"cc-show-scenarios-button"),o.k0s(),o.j41(3,"cc-ribbon-bar-panel",1),o.nrm(4,"cc-custom-configs"),o.k0s(),o.j41(5,"cc-ribbon-bar-panel",2),o.nrm(6,"cc-artificial-intelligence"),o.k0s(),o.j41(7,"cc-ribbon-bar-panel",3),o.nrm(8,"cc-area-metric-chooser"),o.j41(9,"cc-ribbon-bar-panel-settings"),o.nrm(10,"cc-area-settings-panel",4),o.k0s()(),o.j41(11,"cc-ribbon-bar-panel",5),o.nrm(12,"cc-height-metric-chooser"),o.j41(13,"cc-ribbon-bar-panel-settings"),o.nrm(14,"cc-height-settings-panel",4),o.k0s()(),o.DNE(15,Fxe,6,1),o.nI1(16,"async"),o.DNE(17,Dxe,4,1,"cc-ribbon-bar-panel",6),o.nI1(18,"async"),o.DNE(19,Bxe,7,2,"cc-ribbon-bar-panel",7),o.nI1(20,"async")),2&i&&(o.R7$(7),o.Y8G("separator",!0),o.R7$(4),o.Y8G("separator",!0),o.R7$(4),o.vxM(o.bMT(16,5,r.isDeltaState$)?-1:15),o.R7$(2),o.vxM(o.bMT(18,7,r.hasEdgeMetric$)?17:-1),o.R7$(2),o.vxM(o.bMT(20,9,r.isDeltaState$)?19:-1))},dependencies:[Uge,E7,Yge,i_e,X_e,K_e,M7,tbe,nbe,ube,c2,hbe,fbe,vxe,xxe,Ixe,Qn],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 Av=()=>new Wk({color:16580095}),Rx=()=>new Wk({color:16580095}),vP=()=>new Wk({color:16580095});class Y2{static buildCube(t){const e=1/t,i=(1-e)/2,r=new Vc(e,i,i),s=new Vc(i,e+i,i),l=new Vc(i,i,i),u=new Vc(e,e,i),f=new Vc(e,e+i,i);return Y2.newBuildCubeGroup(r,s,l,u,f)}static newBuildCubeGroup(t,e,i,r,s){const l=new ac,{group:u,frontLeft:f,frontCenter:p,frontRight:m,middleLeft:_,middleCenter:b,middleRight:w,backLeft:F,backCenter:D,backRight:T}=Y2.buildCubeTopFace(t,i,r);l.add(u);const{group:I,frontLeftEdge:O,frontCenterFace:R,frontRightEdge:P,middleLeftFace:ee,middleRightFace:J,backLeftEdge:te,backCenterFace:ie,backRightEdge:W}=Y2.buildCubeSides(e,s);return l.add(I),{group:l,top:{front:{left:f,center:p,right:m},middle:{left:_,center:b,right:w},back:{left:F,center:D,right:T}},sides:{front:{left:O,center:R,right:P},middle:{left:ee,right:J},back:{left:te,center:ie,right:W}}}}static buildCubeTopFace(t,e,i){const r=new cr(e,vP()),s=new cr(t,Av()),l=new cr(e,vP()),u=new cr(t,Av()),f=new cr(i,Rx()),p=new cr(t,Rx()),m=new cr(e,vP()),_=new cr(t,Av()),b=new cr(e,vP()),w=i.parameters.height/2+e.parameters.height/2;r.position.x-=w,r.position.y-=w,s.position.y-=w,l.position.x+=w,l.position.y-=w,u.position.x-=w,u.rotation.z=Math.PI/2,p.position.x+=w,p.rotation.z=Math.PI/2,m.position.x-=w,m.position.y+=w,_.position.y+=w,b.position.x+=w,b.position.y+=w;const F=new ac;return F.rotation.x=Math.PI/2,F.position.y+=w,F.add(r),F.add(s),F.add(l),F.add(u),F.add(f),F.add(p),F.add(m),F.add(_),F.add(b),{group:F,frontLeft:r,frontCenter:s,frontRight:l,middleLeft:u,middleCenter:f,middleRight:p,backLeft:m,backCenter:_,backRight:b}}static buildCubeSides(t,e){const i=new cr(t,Av()),r=new cr(e,Rx()),s=new cr(t,Av()),l=new cr(e,Rx()),u=new cr(e,Rx()),f=new cr(t,Av()),p=new cr(e,Rx()),m=new cr(t,Av()),_=e.parameters.width/2+t.parameters.width/2,b=t.parameters.width/2;i.position.x-=_,i.position.z+=_,r.position.z+=_,s.position.x+=_,s.position.z+=_,l.position.x-=_,l.rotation.y=Math.PI/2,u.position.x+=_,u.rotation.y=Math.PI/2,f.position.x-=_,f.position.z-=_,p.position.z-=_,m.position.x+=_,m.position.z-=_;const w=new ac;return w.position.y-=b,w.add(i),w.add(r),w.add(s),w.add(l),w.add(u),w.add(f),w.add(p),w.add(m),{group:w,frontLeftEdge:i,frontCenterFace:r,frontRightEdge:s,middleLeftFace:l,middleRightFace:u,backLeftEdge:f,backCenterFace:p,backRightEdge:m}}}let Rxe=(()=>{class n{constructor(e){this.threeMapControlsService=e}centerMap(){this.threeMapControlsService.autoFitTo()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Nd))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-center-map-button"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"button",0),o.bIt("click",function(){return r.centerMap()}),o.nrm(1,"i",1),o.k0s())},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})(),Pxe=(()=>{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)(o.rXU(Nd),o.rXU(o.gRc))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-zoom-slider"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"button",1),o.bIt("click",function(){return r.zoomOut()}),o.EFF(2,"-"),o.k0s(),o.j41(3,"input",2),o.bIt("input",function(l){return r.onInput(l)}),o.k0s(),o.j41(4,"button",3),o.bIt("click",function(){return r.zoomIn()}),o.EFF(5,"+"),o.k0s(),o.j41(6,"span",4),o.EFF(7),o.k0s()()),2&i&&(o.R7$(3),o.Y8G("min",r.minZoom)("max",r.maxZoom)("value",r.zoomPercentage),o.R7$(4),o.SpI("",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%], .cdk-drag-preview[_ngcontent-%COMP%] .mat-ripple-element[_ngcontent-%COMP%], .cdk-drag-placeholder[_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, var(--mat-app-background, transparent));color:var(--mat-app-text-color, var(--mat-app-on-background, inherit))}.mat-elevation-z0[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z0[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-0, none)}.mat-elevation-z1[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z1[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-1, none)}.mat-elevation-z2[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z2[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-2, none)}.mat-elevation-z3[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z3[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-3, none)}.mat-elevation-z4[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z4[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-4, none)}.mat-elevation-z5[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z5[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-5, none)}.mat-elevation-z6[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z6[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-6, none)}.mat-elevation-z7[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z7[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-7, none)}.mat-elevation-z8[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z8[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-8, none)}.mat-elevation-z9[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z9[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-9, none)}.mat-elevation-z10[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z10[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-10, none)}.mat-elevation-z11[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z11[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-11, none)}.mat-elevation-z12[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z12[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-12, none)}.mat-elevation-z13[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z13[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-13, none)}.mat-elevation-z14[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z14[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-14, none)}.mat-elevation-z15[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z15[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-15, none)}.mat-elevation-z16[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z16[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-16, none)}.mat-elevation-z17[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z17[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-17, none)}.mat-elevation-z18[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z18[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-18, none)}.mat-elevation-z19[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z19[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-19, none)}.mat-elevation-z20[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z20[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-20, none)}.mat-elevation-z21[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z21[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-21, none)}.mat-elevation-z22[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z22[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-22, none)}.mat-elevation-z23[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z23[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-23, none)}.mat-elevation-z24[_ngcontent-%COMP%], .mat-mdc-elevation-specific.mat-elevation-z24[_ngcontent-%COMP%]{box-shadow:var(--mat-app-elevation-shadow-level-24, none)}[_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})(),Oxe=(()=>{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=s=>{const l=this.calculateCameraPosition(s.camera);this.setCameraPosition(l),this.renderer.render(this.scene,this.camera)},this.onCubeHovered=s=>{this.hoverInfo={cube:s.cube,originalMaterial:s.cube.material},this.hoverInfo.cube.material.emissive=new _n(16777215),this.renderer.render(this.scene,this.camera)},this.onCubeUnhovered=()=>{this.hoverInfo.cube.material.emissive=new _n(0),this.hoverInfo.cube=null,this.renderer.render(this.scene,this.camera)},this.onCubeClicked=s=>{switch(s.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 dre(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}=Y2.buildCube(1.9);this.cubeGroup=e,this.cubeDefinition.top=i,this.cubeDefinition.sides=r;const s=new lre(this.cubeGroup,new _n(0));this.scene.add(this.cubeGroup),this.scene.add(s)}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 wk}initRenderer(e){this.renderer=new D5({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 ea(45,this.WIDTH/this.HEIGHT,.1,1e3),this.camera.position.z=4}initLights(){this.lights=new ac;const e=new gU(7368816,2.8),i=new NS(14737632,1.8);i.position.set(50,10,8).normalize();const r=new NS(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)(o.rXU(o.aKT),o.rXU(Nd),o.rXU(JW))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-view-cube"]],standalone:!0,features:[o.aNF],decls:2,vars:0,template:function(i,r){1&i&&o.nrm(0,"cc-center-map-button")(1,"cc-zoom-slider")},dependencies:[Rxe,Pxe],styles:["[_nghost-%COMP%]{transition:right .3s ease;position:absolute;z-index:11;right:0;top:10px}.sideBarVisible[_nghost-%COMP%]{right:350px}"]})}}return n})();const Nxe=sn(f0,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 Lxe(n,t){if(1&n&&(o.j41(0,"span",2),o.EFF(1," | "),o.j41(2,"span",3),o.EFF(3),o.k0s(),o.EFF(4," | "),o.j41(5,"span",4),o.EFF(6),o.k0s(),o.EFF(7," | "),o.j41(8,"span",5),o.EFF(9),o.k0s()()),2&n){const e=o.XpG();o.R7$(3),o.SpI(" \u0394",e.added,""),o.R7$(3),o.SpI(" \u0394",e.removed>0?-e.removed:0,""),o.R7$(3),o.SpI(" \u0394",e.changed,"")}}function Uxe(n,t){if(1&n&&(o.j41(0,"span",2),o.EFF(1),o.DNE(2,Lxe,10,3,"span",2),o.nI1(3,"async"),o.EFF(4," ) "),o.k0s()),2&n){const e=t,i=o.XpG(2);o.R7$(),o.Lme(" ( ",e.all," ",1===e.all?"file":"files"," "),o.R7$(),o.vxM(null!=i.node.children&&i.node.children.length&&o.bMT(3,3,i.isDeltaMode$)?2:-1)}}function Vxe(n,t){if(1&n&&(o.j41(0,"span",1),o.EFF(1),o.DNE(2,Uxe,5,5,"span",2),o.nI1(3,"async"),o.k0s()),2&n){let e;const i=o.XpG();o.R7$(),o.SpI(" ",i.node.path," "),o.R7$(),o.vxM((e=o.bMT(3,2,(null==i.node.children?null:i.node.children.length)&&i.fileCount$))?2:-1,e)}}let Hxe=(()=>{class n{constructor(e){this.fileCount$=e.select(Nxe),this.isDeltaMode$=e.select(u0)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-node-path"]],inputs:{node:"node"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"p",0),o.DNE(1,Vxe,4,4,"span",1),o.k0s()),2&i&&(o.R7$(),o.vxM(r.node?1:-1))},dependencies:[Qn],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})(),yP=(()=>{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)(o.KVO(Rd))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();function Qxe(n,t){if(1&n&&(o.j41(0,"div",1)(1,"a",4)(2,"h2"),o.EFF(3),o.k0s(),o.nrm(4,"i",5),o.k0s()()),2&n){const e=o.XpG(2);o.FS9("matTooltip",e.node.link),o.Y8G("matTooltipShowDelay",200),o.R7$(),o.FS9("href",e.node.link,o.B4B),o.R7$(2),o.SpI("",e.node.name,"\xa0")}}function zxe(n,t){if(1&n){const e=o.RV6();o.j41(0,"i",0),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.closeSideBar())}),o.k0s(),o.DNE(1,Qxe,5,4,"div",1),o.j41(2,"p",2),o.EFF(3),o.nI1(4,"removeExtension"),o.k0s(),o.nrm(5,"cc-node-path",3)}if(2&n){const e=o.XpG();o.R7$(),o.vxM(e.node.link?1:-1),o.R7$(2),o.JRh(o.bMT(4,3,e.fileName)),o.R7$(2),o.Y8G("node",e.node)}}let Gxe=(()=>{class n{constructor(e){this.isAttributeSideBarVisibleService=e}closeSideBar(){this.isAttributeSideBarVisibleService.isOpen=!1}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(yP))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-attribute-side-bar-header-section"]],inputs:{node:"node",fileName:"fileName"},standalone:!0,features:[o.aNF],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&&o.DNE(0,zxe,6,5),2&i&&o.vxM(r.node?0:-1)},dependencies:[h7,Hxe,u7],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 fV=sn(f0,n=>n&&!Po(n)),jxe=sn(f0,BR,(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:$xe(t.edgeMetric,n)}});function $xe(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}}let pV=(()=>{class n{constructor(e){this.store=e,this.attributeTypes$=this.store.select(SU)}setToAbsolute(){this.setAttributeType(Sc.absolute)}setToRelative(){this.setAttributeType(Sc.relative)}setAttributeType(e){this.store.dispatch(Z8({category:this.metricType,name:this.metricName,attributeType:e}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-attribute-type-selector"]],inputs:{metricName:"metricName",metricType:"metricType"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-button-toggle-group",0),o.nI1(1,"async"),o.j41(2,"mat-button-toggle",1),o.bIt("click",function(){return r.setToAbsolute()}),o.EFF(3,"\u03a3"),o.k0s(),o.j41(4,"mat-button-toggle",2),o.bIt("click",function(){return r.setToRelative()}),o.EFF(5,"x\u0342"),o.k0s()()),2&i){let s;o.Y8G("value",null!==(s=o.bMT(1,1,r.attributeTypes$)[r.metricType][r.metricName])&&void 0!==s?s:"absolute")}},dependencies:[I7,LR,Qn],encapsulation:2})}}return n})();function qxe(n,t){if(1&n&&(o.j41(0,"span"),o.nI1(1,"async"),o.EFF(2),o.nI1(3,"number"),o.k0s()),2&n){const e=t,i=o.XpG();o.xc7("color",o.bMT(1,3,i.mapColors$)[e>0?"positiveDelta":"negativeDelta"]),o.R7$(2),o.SpI(" \u0394",o.i5U(3,5,e,"1.1-2")," ")}}let sY=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.selectedNode$=this.store.select(f0),this.mapColors$=this.store.select(Zw)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-metric-delta-selected"]],inputs:{metricName:"metricName"},standalone:!0,features:[o.aNF],decls:2,vars:3,consts:[[3,"color"]],template:function(i,r){if(1&i&&(o.DNE(0,qxe,4,8,"span",0),o.nI1(1,"async")),2&i){let s;o.vxM((s=null==(s=o.bMT(1,1,r.selectedNode$))||null==s.deltas?null:s.deltas[r.metricName])?0:-1,s)}},dependencies:[Qn,Ku],styles:["[_nghost-%COMP%]:has(span){margin-top:5px}"]})}}return n})();function Wxe(n,t){if(1&n&&o.nrm(0,"cc-attribute-type-selector",2),2&n){const e=o.XpG();o.Y8G("metricName",e.metric.name)("metricType","nodes")}}function Xxe(n,t){if(1&n&&(o.j41(0,"a",5),o.EFF(1),o.nrm(2,"i",7),o.k0s()),2&n){const e=o.XpG();o.Y8G("href",t,o.B4B),o.R7$(),o.SpI(" ",e.metric.name," ")}}function Kxe(n,t){if(1&n&&(o.j41(0,"span",6),o.EFF(1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.JRh(e.metric.name)}}let Yxe=(()=>{class n{constructor(e){this.showAttributeTypeSelector$=e.select(fV)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-attribute-side-bar-primary-metric"]],inputs:{iconName:"iconName",metric:"metric",metricLink:"metricLink"},standalone:!0,features:[o.aNF],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,"metric-name"],[1,"fa","fa-external-link"]],template:function(i,r){if(1&i&&(o.j41(0,"div",0)(1,"div",1),o.nrm(2,"i"),o.DNE(3,Wxe,1,2,"cc-attribute-type-selector",2),o.nI1(4,"async"),o.j41(5,"span",3),o.EFF(6),o.nI1(7,"number"),o.k0s()(),o.nrm(8,"cc-metric-delta-selected",4),o.DNE(9,Xxe,3,2,"a",5)(10,Kxe,2,1,"span",6),o.k0s()),2&i){let s;o.R7$(2),o.HbH(r.iconName),o.R7$(),o.vxM(o.bMT(4,6,r.showAttributeTypeSelector$)?3:-1),o.R7$(3),o.JRh(o.i5U(7,8,r.metric.value,"1.0-0")),o.R7$(2),o.Y8G("metricName",r.metric.name),o.R7$(),o.vxM((s=r.metricLink)?9:10,s)}},dependencies:[pV,sY,Qn,Ku],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})();function Zxe(n,t){if(1&n&&o.nrm(0,"cc-attribute-type-selector",8),2&n){const e=o.XpG();o.Y8G("metricName",e.name)("metricType","edges")}}function Jxe(n,t){if(1&n&&(o.j41(0,"a",10),o.EFF(1),o.nrm(2,"i",12),o.k0s()),2&n){const e=o.XpG();o.Y8G("href",t,o.B4B),o.R7$(),o.SpI(" ",e.name," (in/out) ")}}function eCe(n,t){if(1&n&&(o.j41(0,"span",11),o.EFF(1),o.k0s()),2&n){const e=o.XpG();o.R7$(),o.SpI("",e.name," (in/out)")}}function tCe(n,t){if(1&n&&(o.j41(0,"td",3),o.nI1(1,"attributeDescriptorTooltip"),o.j41(2,"div",5)(3,"div",6),o.nrm(4,"i",7),o.DNE(5,Zxe,1,2,"cc-attribute-type-selector",8),o.nI1(6,"async"),o.j41(7,"span",9),o.EFF(8),o.nI1(9,"number"),o.j41(10,"span"),o.EFF(11,"/"),o.k0s(),o.EFF(12),o.nI1(13,"number"),o.k0s()(),o.DNE(14,Jxe,3,2,"a",10)(15,eCe,2,1,"span",11),o.k0s()()),2&n){let e;const i=t,r=o.XpG(2),s=o.XpG();o.Y8G("title",o.i5U(1,5,r[i.name],i.name)),o.R7$(5),o.vxM(o.bMT(6,8,s.showAttributeTypeSelector$)?5:-1),o.R7$(3),o.SpI(" ",o.i5U(9,10,i.incoming,"1.0-0")," "),o.R7$(4),o.SpI(" ",o.i5U(13,13,i.outgoing,"1.0-0")," "),o.R7$(2),o.vxM((e=null==r[i.name]?null:r[i.name].link)?14:15,e)}}function nCe(n,t){1&n&&(o.j41(0,"td")(1,"span",11),o.EFF(2,"No edge metric available"),o.k0s()())}function iCe(n,t){if(1&n&&(o.j41(0,"table",1)(1,"th",2),o.EFF(2,"Primary Metrics"),o.k0s(),o.j41(3,"tr")(4,"td",3),o.nI1(5,"attributeDescriptorTooltip"),o.nrm(6,"cc-attribute-side-bar-primary-metric",4),o.k0s(),o.j41(7,"td",3),o.nI1(8,"attributeDescriptorTooltip"),o.nrm(9,"cc-attribute-side-bar-primary-metric",4),o.k0s()(),o.j41(10,"tr")(11,"td",3),o.nI1(12,"attributeDescriptorTooltip"),o.nrm(13,"cc-attribute-side-bar-primary-metric",4),o.k0s(),o.DNE(14,tCe,16,16,"td",3)(15,nCe,3,0,"td"),o.k0s()()),2&n){let e;const i=t,r=o.XpG();o.R7$(4),o.Y8G("title",o.i5U(5,13,r[i.area.name],i.area.name)),o.R7$(2),o.Y8G("iconName","fa fa-arrows-alt")("metric",i.area)("metricLink",null==r[i.area.name]?null:r[i.area.name].link),o.R7$(),o.Y8G("title",o.i5U(8,16,r[i.height.name],i.height.name)),o.R7$(2),o.Y8G("iconName","fa fa-arrows-v")("metric",i.height)("metricLink",null==r[i.height.name]?null:r[i.height.name].link),o.R7$(2),o.Y8G("title",o.i5U(12,19,r[i.color.name],i.color.name)),o.R7$(2),o.Y8G("iconName","fa fa-paint-brush")("metric",i.color)("metricLink",null==r[i.color.name]?null:r[i.color.name].link),o.R7$(),o.vxM((e=i.edge)?14:15,e)}}function rCe(n,t){if(1&n&&(o.j41(0,"div",0),o.DNE(1,iCe,16,22,"table",1),o.nI1(2,"async"),o.k0s()),2&n){let e;const i=o.XpG();o.R7$(),o.vxM((e=o.bMT(2,1,i.primaryMetrics$))?1:-1,e)}}let oCe=(()=>{class n{constructor(e){this.store=e,this.primaryMetrics$=this.store.select(jxe),this.showAttributeTypeSelector$=this.store.select(fV),this.attributeDescriptors$=this.store.select(DR)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-attribute-side-bar-primary-metrics"]],standalone:!0,features:[o.aNF],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,"metric-name"],[1,"fa","fa-external-link"]],template:function(i,r){if(1&i&&(o.DNE(0,rCe,3,3,"div",0),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.attributeDescriptors$))?0:-1,s)}},dependencies:[Yxe,pV,Qn,Ku,OR],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 sCe=sn(f0,n=>!!n?.deltas),aCe=sn(BR,f0,(n,t)=>{if(!t)return[];const e=Object.values(n);return Object.keys(t.attributes).filter(r=>"unary"!==r&&!e.includes(r)).sort((r,s)=>r.localeCompare(s)).map(r=>({name:r,value:t.attributes[r]}))});function lCe(n,t){if(1&n&&o.nrm(0,"cc-attribute-type-selector",8),2&n){const e=o.XpG().$implicit;o.Y8G("metricName",e.name)("metricType","nodes")}}function cCe(n,t){if(1&n&&(o.j41(0,"a",12),o.EFF(1),o.nrm(2,"i",14),o.k0s()),2&n){const e=o.XpG().$implicit;o.Y8G("href",t,o.B4B),o.R7$(),o.SpI(" ",e.name," ")}}function dCe(n,t){if(1&n&&(o.j41(0,"span",13),o.EFF(1),o.k0s()),2&n){const e=o.XpG().$implicit;o.R7$(),o.JRh(e.name)}}function uCe(n,t){if(1&n&&(o.j41(0,"tr",5),o.nI1(1,"attributeDescriptorTooltip"),o.j41(2,"td",6)(3,"div",7),o.DNE(4,lCe,1,2,"cc-attribute-type-selector",8),o.nI1(5,"async"),o.j41(6,"span",9),o.EFF(7),o.nI1(8,"number"),o.k0s()()(),o.j41(9,"td",10),o.nI1(10,"async"),o.nrm(11,"cc-metric-delta-selected",11),o.k0s(),o.j41(12,"td"),o.DNE(13,cCe,3,2,"a",12)(14,dCe,2,1,"span",13),o.k0s()()),2&n){let e;const i=t.$implicit,r=o.XpG(),s=o.XpG();o.Y8G("title",o.i5U(1,6,r[i.name],i.name)),o.R7$(4),o.vxM(o.bMT(5,9,s.showAttributeTypeSelector$)?4:-1),o.R7$(3),o.JRh(o.i5U(8,11,i.value,"1.0-0")),o.R7$(2),o.Y8G("hidden",!o.bMT(10,14,s.showDeltaValue$)),o.R7$(2),o.Y8G("metricName",i.name),o.R7$(2),o.vxM((e=null==r[i.name]?null:r[i.name].link)?13:14,e)}}function hCe(n,t){if(1&n&&(o.j41(0,"div",2)(1,"table",3)(2,"tr")(3,"th",4),o.EFF(4,"Secondary Metrics"),o.k0s()(),o.Z7z(5,uCe,15,16,"tr",5,o.fX1),o.nI1(7,"async"),o.k0s()()),2&n){const e=o.XpG();o.R7$(5),o.Dyx(o.bMT(7,0,e.secondaryMetrics$))}}let fCe=(()=>{class n{constructor(e){this.store=e,this.secondaryMetrics$=this.store.select(aCe),this.showAttributeTypeSelector$=this.store.select(fV),this.showDeltaValue$=this.store.select(sCe),this.attributeDescriptors$=this.store.select(DR)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-attribute-side-bar-secondary-metrics"]],standalone:!0,features:[o.aNF],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,"metric-name"],[1,"fa","fa-external-link"]],template:function(i,r){if(1&i&&(o.j41(0,"div",0)(1,"div",1),o.DNE(2,hCe,8,2,"div",2),o.nI1(3,"async"),o.k0s()()),2&i){let s;o.R7$(2),o.vxM((s=o.bMT(3,1,r.attributeDescriptors$))?2:-1,s)}},dependencies:[pV,sY,Qn,Ku,OR],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})(),pCe=(()=>{class n{constructor(e,i){this.isAttributeSideBarVisibleService=e,this.store=i,this.selectedNode$=this.store.select(f0),this.fileName$=this.store.select(kd).pipe((0,$n.T)(r=>r.unifiedFileMeta?.fileName??""))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(yP),o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-attribute-side-bar"]],standalone:!0,features:[o.aNF],decls:6,vars:8,consts:[[1,"side-bar-container","cc-shadow"],[3,"node","fileName"]],template:function(i,r){1&i&&(o.j41(0,"div",0),o.nrm(1,"cc-attribute-side-bar-header-section",1),o.nI1(2,"async"),o.nI1(3,"async"),o.nrm(4,"cc-attribute-side-bar-primary-metrics")(5,"cc-attribute-side-bar-secondary-metrics"),o.k0s()),2&i&&(o.AVh("expanded",r.isAttributeSideBarVisibleService.isOpen),o.R7$(),o.Y8G("node",o.bMT(2,4,r.selectedNode$))("fileName",o.bMT(3,6,r.fileName$)))},dependencies:[Gxe,oCe,fCe,Qn],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})(),ACe=(()=>{class n{constructor(e,i,r,s,l){this.isAttributeSideBarVisibleService=e,this.store=i,this.threeViewerService=r,this.codeMapMouseEventService=s,this.elementReference=l,this.isLoadingFile$=this.store.select(x7),this.restartOnSharpnessModeChangesSubscription=this.store.select(VW).pipe(E_(1),ao(()=>{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)(o.rXU(yP),o.rXU(Yt),o.rXU(eX),o.rXU(L2),o.rXU(o.aKT))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-code-map"]],standalone:!0,features:[o.aNF],decls:4,vars:6,consts:[["id","codeMap"]],template:function(i,r){1&i&&(o.j41(0,"div",0),o.nI1(1,"async"),o.nrm(2,"cc-view-cube")(3,"cc-attribute-side-bar"),o.k0s()),2&i&&(o.AVh("hidden",o.bMT(1,4,r.isLoadingFile$)),o.R7$(2),o.AVh("sideBarVisible",r.isAttributeSideBarVisibleService.isOpen))},dependencies:[Oxe,pCe,Qn],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})();function mCe(n,t){if(1&n&&(o.j41(0,"a",2)(1,"span",3),o.EFF(2),o.k0s(),o.EFF(3),o.nrm(4,"i",4),o.k0s()),2&n){const e=o.XpG(),i=o.XpG(2);o.Y8G("href",t,o.B4B),o.R7$(2),o.JRh(e),o.R7$(),o.SpI(" (",i.metricName,") ")}}function gCe(n,t){if(1&n&&(o.j41(0,"span",3),o.EFF(1),o.k0s(),o.EFF(2)),2&n){const e=o.XpG(),i=o.XpG(2);o.R7$(),o.JRh(e),o.R7$(),o.SpI(" (",i.metricName,") ")}}function _Ce(n,t){if(1&n&&(o.qex(0,0),o.j41(1,"div",1),o.nI1(2,"attributeDescriptorTooltip"),o.EFF(3),o.DNE(4,mCe,5,3,"a",2)(5,gCe,3,2),o.k0s(),o.bVm()),2&n){let e;const i=o.XpG(),r=o.XpG();o.R7$(),o.Y8G("title",o.i5U(2,3,i[r.metricName],r.metricName)),o.R7$(2),o.SpI(" ",r.metricSpecification," metric: "),o.R7$(),o.vxM((e=i[r.metricName].link)?4:5,e)}}function bCe(n,t){if(1&n&&(o.j41(0,"span",3),o.EFF(1),o.k0s(),o.EFF(2)),2&n){const e=o.XpG(3);o.R7$(),o.JRh(t),o.R7$(),o.SpI(" (",e.metricName,") ")}}function vCe(n,t){if(1&n&&(o.j41(0,"span",3),o.EFF(1),o.k0s()),2&n){const e=o.XpG(3);o.R7$(),o.SpI(" ",e.metricName," ")}}function yCe(n,t){if(1&n&&(o.j41(0,"div"),o.EFF(1),o.DNE(2,bCe,3,2)(3,vCe,2,1,"span",3),o.k0s()),2&n){let e;const i=o.XpG(2);o.R7$(),o.SpI(" ",i.metricSpecification," metric: "),o.R7$(),o.vxM((e=i.fallbackTitles.get(i.metricName))?2:3,e)}}function wCe(n,t){if(1&n&&o.DNE(0,_Ce,6,6,"ng-container",0)(1,yCe,4,2,"div"),2&n){let e;const i=t,r=o.XpG();o.vxM((e=null==i[r.metricName]?null:i[r.metricName].title)?0:1,e)}}let xCe=(()=>{class n{constructor(e){this.store=e,this.attributeDescriptors$=this.store.select(DR),this.fallbackTitles=Jw}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-legend-block"]],inputs:{metricName:"metricName",metricSpecification:"metricSpecification"},standalone:!0,features:[o.aNF],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&&(o.DNE(0,wCe,2,1),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.attributeDescriptors$))?0:-1,s)}},dependencies:[Qn,OR],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})();const aY=sn(HS,n=>n.markedPackages),CCe=sn(aY,n=>n.reduce((t,{color:e,path:i})=>(Object.prototype.hasOwnProperty.call(t,e)||(t[e]=[]),t[e].push(i),t),{}));function MCe(n,t){if(1&n){const e=o.RV6();o.j41(0,"cc-labelled-color-picker",1),o.bIt("onColorChange",function(r){const s=o.eBV(e).$implicit,l=o.XpG(2);return o.Njj(l.handleColorChange(r,s.value))}),o.k0s()}if(2&n){const e=t.$implicit;o.Y8G("hexColor",e.key)("labels",e.value)}}function ECe(n,t){if(1&n&&(o.nrm(0,"hr"),o.Z7z(1,MCe,1,2,"cc-labelled-color-picker",0,o.BUC().trackMarkedPackage,!0),o.nI1(3,"async"),o.nI1(4,"keyvalue")),2&n){const e=o.XpG();o.R7$(),o.Dyx(o.i5U(4,2,o.bMT(3,0,e.markedPackagesMap$),e.sortMarkedPackagesMap))}}let SCe=(()=>{class n{constructor(e){this.store=e,this.markedPackagesMap$=e.select(CCe),this.hasMarkedPackages$=this.markedPackagesMap$.pipe((0,$n.T)(i=>Object.keys(i).length>0))}handleColorChange(e,i){this.store.dispatch(S2({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)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-legend-marked-packages"]],standalone:!0,features:[o.aNF],decls:2,vars:3,consts:[[3,"hexColor","labels"],[3,"onColorChange","hexColor","labels"]],template:function(i,r){1&i&&(o.DNE(0,ECe,5,5),o.nI1(1,"async")),2&i&&o.vxM(o.bMT(1,1,r.hasMarkedPackages$)?0:-1)},dependencies:[j8,Qn,wf],styles:["[_nghost-%COMP%] cc-labelled-color-picker[_ngcontent-%COMP%]{display:block}"]})}}return n})();function TCe(n,t){1&n&&o.nrm(0,"cc-legend-block",5),2&n&&o.Y8G("metricName",t)}function ICe(n,t){if(1&n&&(o.j41(0,"div"),o.nrm(1,"cc-legend-block",3),o.nI1(2,"async"),o.nrm(3,"cc-legend-block",4),o.nI1(4,"async"),o.DNE(5,TCe,1,1,"cc-legend-block",5),o.nI1(6,"async"),o.nrm(7,"hr")(8,"cc-legend-block",6),o.nI1(9,"async"),o.nrm(10,"cc-color-picker-for-map-color",1)(11,"cc-color-picker-for-map-color",1)(12,"cc-color-picker-for-map-color",1),o.k0s()),2&n){let e;const i=o.XpG();o.R7$(),o.Y8G("metricName",o.bMT(2,7,i.areaMetric$)),o.R7$(2),o.Y8G("metricName",o.bMT(4,9,i.heightMetric$)),o.R7$(2),o.vxM((e=o.bMT(6,11,i.edgeMetric$))?5:-1,e),o.R7$(3),o.Y8G("metricName",o.bMT(9,13,i.colorMetric$)),o.R7$(2),o.Y8G("mapColorFor","positive"),o.R7$(),o.Y8G("mapColorFor","neutral"),o.R7$(),o.Y8G("mapColorFor","negative")}}function FCe(n,t){1&n&&(o.j41(0,"div"),o.nrm(1,"cc-color-picker-for-map-color",1)(2,"cc-color-picker-for-map-color",1),o.k0s()),2&n&&(o.R7$(),o.Y8G("mapColorFor","positiveDelta"),o.R7$(),o.Y8G("mapColorFor","negativeDelta"))}function DCe(n,t){1&n&&o.nrm(0,"hr")(1,"cc-color-picker-for-map-color",1)(2,"cc-color-picker-for-map-color",1),2&n&&(o.R7$(),o.Y8G("mapColorFor","outgoingEdge"),o.R7$(),o.Y8G("mapColorFor","incomingEdge"))}let BCe=(()=>{class n{constructor(e,i,r){this.store=e,this.isAttributeSideBarVisibleService=i,this.viewReference=r,this.isLegendVisible=!1,this.isDeltaState$=this.store.select(u0),this.heightMetric$=this.store.select(B2),this.areaMetric$=this.store.select(gx),this.colorMetric$=this.store.select(Gg),this.edgeMetric$=this.store.select(iA)}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),s=document.querySelector(".cdk-overlay-container"),l=!!s&&s.contains(i);!r&&!l&&(this.isLegendVisible=!1)}}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(yP),o.rXU(o.c1b))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-legend-panel"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0),o.DNE(1,ICe,13,15,"div"),o.nI1(2,"async"),o.DNE(3,FCe,3,2,"div"),o.nrm(4,"hr")(5,"cc-color-picker-for-map-color",1),o.DNE(6,DCe,3,2),o.nI1(7,"async"),o.nrm(8,"cc-legend-marked-packages"),o.k0s(),o.j41(9,"button",2),o.bIt("click",function(){return r.toggleIsLegendVisible()}),o.EFF(10," LEGEND\n"),o.k0s()),2&i&&(o.AVh("visible",r.isLegendVisible)("isAttributeSideBarVisible",r.isAttributeSideBarVisibleService.isOpen),o.R7$(),o.vxM(o.bMT(2,10,r.isDeltaState$)?3:1),o.R7$(4),o.Y8G("mapColorFor","selected"),o.R7$(),o.vxM(o.bMT(7,12,r.edgeMetric$)?6:-1),o.R7$(3),o.AVh("isAttributeSideBarVisible",r.isAttributeSideBarVisibleService.isOpen),o.FS9("title",r.isLegendVisible?"Hide panel":"Show panel"))},dependencies:[xCe,uV,SCe,Jo,Qn],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})(),kCe=(()=>{class n{constructor(e){this.isLoadingFile$=e.select(x7)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-loading-file-progress-spinner"]],standalone:!0,features:[o.aNF],decls:3,vars:4,consts:[["id","loading-gif-file"],["mode","indeterminate","diameter","96"]],template:function(i,r){1&i&&(o.j41(0,"div",0),o.nI1(1,"async"),o.nrm(2,"mat-progress-spinner",1),o.k0s()),2&i&&o.xc7("visibility",o.bMT(1,2,r.isLoadingFile$)?"visible":"hidden")},dependencies:[NW,Qn],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})(),RCe=(()=>{class n{constructor(){this.version=Jy.rE}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-logo"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"div",0)(1,"a",1),o.nrm(2,"img",2),o.k0s(),o.j41(3,"h2"),o.EFF(4),o.k0s()()),2&i&&(o.R7$(4),o.SpI("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})(),PCe=(()=>{class n{constructor(e,i){this.store=e,this.loadInitialFileService=i,this.isInitialized=!1}ngOnInit(){var e=this;return Cn(function*(){e.store.dispatch(Ec({value:!0})),yield e.loadInitialFileService.loadFilesOrSampleFiles(),e.isInitialized=!0})()}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt),o.rXU(E6))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-code-charta"]],standalone:!0,features:[o.aNF],decls:8,vars:2,template:function(i,r){1&i&&(o.j41(0,"div"),o.nrm(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"),o.k0s()),2&i&&o.xc7("visibility",r.isInitialized?"visible":"hidden")},dependencies:[Jpe,WAe,kxe,ACe,BCe,kCe,RCe],encapsulation:2})}}return n})(),OCe=(()=>{class n{constructor(e){this.store=e,this.unfocusNodes$=os(()=>this.store.select(Qc).pipe((0,$n.T)(()=>E2())))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();let g0={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};function lY(n){g0=n}const cY=/[&<>"']/,LCe=new RegExp(cY.source,"g"),dY=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,UCe=new RegExp(dY.source,"g"),VCe={"&":"&","<":"<",">":">",'"':""","'":"'"},uY=n=>VCe[n];function il(n,t){if(t){if(cY.test(n))return n.replace(LCe,uY)}else if(dY.test(n))return n.replace(UCe,uY);return n}const HCe=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function hY(n){return n.replace(HCe,(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 QCe=/(^|[^\[])\^/g;function co(n,t){n="string"==typeof n?n:n.source,t=t||"";const e={replace:(i,r)=>(r=(r=r.source||r).replace(QCe,"$1"),n=n.replace(i,r),e),getRegex:()=>new RegExp(n,t)};return e}const zCe=/[^\w:]/g,GCe=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function fY(n,t,e){if(n){let i;try{i=decodeURIComponent(hY(e)).replace(zCe,"").toLowerCase()}catch{return null}if(0===i.indexOf("javascript:")||0===i.indexOf("vbscript:")||0===i.indexOf("data:"))return null}t&&!GCe.test(e)&&(e=function WCe(n,t){wP[" "+n]||(wP[" "+n]=jCe.test(n)?n+"/":CP(n,"/",!0));const e=-1===(n=wP[" "+n]).indexOf(":");return"//"===t.substring(0,2)?e?t:n.replace($Ce,"$1")+t:"/"===t.charAt(0)?e?t:n.replace(qCe,"$1")+t:n+t}(t,e));try{e=encodeURI(e).replace(/%25/g,"%")}catch{return null}return e}const wP={},jCe=/^[^:]+:\/*[^/]*$/,$Ce=/^([^:]+:)[\s\S]*$/,qCe=/^([^:]+:\/*[^/]*)[\s\S]*$/,xP={exec:function(){}};function pY(n,t){const i=n.replace(/\|/g,(s,l,u)=>{let f=!1,p=l;for(;--p>=0&&"\\"===u[p];)f=!f;return f?"|":" |"}).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.length0)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:CP(i,"\n")}}}fences(t){const e=this.rules.block.fences.exec(t);if(e){const i=e[0],r=function YCe(n,t){const e=n.match(/^(\s+)(?:```)/);if(null===e)return t;const i=e[1];return t.split("\n").map(r=>{const s=r.match(/^\s+/);if(null===s)return r;const[l]=s;return l.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=CP(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 s=this.lexer.blockTokens(i);return this.lexer.state.top=r,{type:"blockquote",raw:e[0],tokens:s,text:i}}}list(t){let e=this.rules.block.list.exec(t);if(e){let i,r,s,l,u,f,p,m,_,b,w,F,D=e[1].trim();const T=D.length>1,I={type:"list",raw:"",ordered:T,start:T?+D.slice(0,-1):"",loose:!1,items:[]};D=T?`\\d{1,9}\\${D.slice(-1)}`:`\\${D}`,this.options.pedantic&&(D=T?D:"[*+-]");const O=new RegExp(`^( {0,3}${D})((?:[\t ][^\\n]*)?(?:\\n|$))`);for(;t&&(F=!1,(e=O.exec(t))&&!this.rules.block.hr.test(t));){if(i=e[0],t=t.substring(i.length),m=e[2].split("\n",1)[0].replace(/^\t+/,P=>" ".repeat(3*P.length)),_=t.split("\n",1)[0],this.options.pedantic?(l=2,w=m.trimLeft()):(l=e[2].search(/[^ ]/),l=l>4?1:l,w=m.slice(l),l+=e[1].length),f=!1,!m&&/^ *$/.test(_)&&(i+=_+"\n",t=t.substring(_.length+1),F=!0),!F){const P=new RegExp(`^ {0,${Math.min(3,l-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),ee=new RegExp(`^ {0,${Math.min(3,l-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),J=new RegExp(`^ {0,${Math.min(3,l-1)}}(?:\`\`\`|~~~)`),te=new RegExp(`^ {0,${Math.min(3,l-1)}}#`);for(;t&&(b=t.split("\n",1)[0],_=b,this.options.pedantic&&(_=_.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!(J.test(_)||te.test(_)||P.test(_)||ee.test(t)));){if(_.search(/[^ ]/)>=l||!_.trim())w+="\n"+_.slice(l);else{if(f||m.search(/[^ ]/)>=4||J.test(m)||te.test(m)||ee.test(m))break;w+="\n"+_}!f&&!_.trim()&&(f=!0),i+=b+"\n",t=t.substring(b.length+1),m=_.slice(l)}}I.loose||(p?I.loose=!0:/\n *\n *$/.test(i)&&(p=!0)),this.options.gfm&&(r=/^\[[ xX]\] /.exec(w),r&&(s="[ ] "!==r[0],w=w.replace(/^\[[ xX]\] +/,""))),I.items.push({type:"list_item",raw:i,task:!!r,checked:s,loose:!1,text:w}),I.raw+=i}I.items[I.items.length-1].raw=i.trimRight(),I.items[I.items.length-1].text=w.trimRight(),I.raw=I.raw.trimRight();const R=I.items.length;for(u=0;u"space"===J.type),ee=P.length>0&&P.some(J=>/\n.*\n/.test(J.raw));I.loose=ee}if(I.loose)for(u=0;u$/,"$1").replace(this.rules.inline._escapes,"$1"):"",s=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:s}}}table(t){const e=this.rules.block.table.exec(t);if(e){const i={type:"table",header:pY(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 s,l,u,f,r=i.align.length;for(s=0;s({text:p}));for(r=i.header.length,l=0;l/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,block:!1,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):il(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 l=CP(i.slice(0,-1),"\\");if((i.length-l.length)%2==0)return}else{const l=function XCe(n,t){if(-1===n.indexOf(t[1]))return-1;const e=n.length;let i=0,r=0;for(;r-1){const f=(0===e[0].indexOf("!")?5:4)+e[1].length+l;e[2]=e[2].substring(0,l),e[0]=e[0].substring(0,f).trim(),e[3]=""}}let r=e[2],s="";if(this.options.pedantic){const l=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r);l&&(r=l[1],s=l[3])}else s=e[3]?e[3].slice(1,-1):"";return r=r.trim(),/^$/.test(i)?r.slice(1):r.slice(1,-1)),AY(e,{href:r&&r.replace(this.rules.inline._escapes,"$1"),title:s&&s.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 s=i[0].charAt(0);return{type:"text",raw:s,text:s}}return AY(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))&&(!r[1]&&!r[2]||!i||this.rules.inline.punctuation.exec(i))){const l=r[0].length-1;let u,f,p=l,m=0;const _="*"===r[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(_.lastIndex=0,e=e.slice(-1*t.length+l);null!=(r=_.exec(e));){if(u=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!u)continue;if(f=u.length,r[3]||r[4]){p+=f;continue}if((r[5]||r[6])&&l%3&&!((l+f)%3)){m+=f;continue}if(p-=f,p>0)continue;f=Math.min(f,f+p+m);const b=t.slice(0,l+r.index+f+1);if(Math.min(l,f)%2){const F=b.slice(1,-1);return{type:"em",raw:b,text:F,tokens:this.lexer.inlineTokens(F)}}const w=b.slice(2,-2);return{type:"strong",raw:b,text:w,tokens:this.lexer.inlineTokens(w)}}}}codespan(t){const e=this.rules.inline.code.exec(t);if(e){let i=e[2].replace(/\n/g," ");const r=/[^ ]/.test(i),s=/^ /.test(i)&&/ $/.test(i);return r&&s&&(i=i.substring(1,i.length-1)),i=il(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,s;return"@"===i[2]?(r=il(this.options.mangle?e(i[1]):i[1]),s="mailto:"+r):(r=il(i[1]),s=r),{type:"link",raw:i[0],text:r,href:s,tokens:[{type:"text",raw:r,text:r}]}}}url(t,e){let i;if(i=this.rules.inline.url.exec(t)){let r,s;if("@"===i[2])r=il(this.options.mangle?e(i[0]):i[0]),s="mailto:"+r;else{let l;do{l=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0]}while(l!==i[0]);r=il(i[0]),s="www."===i[1]?"http://"+i[0]:i[0]}return{type:"link",raw:i[0],text:r,href:s,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]):il(i[0]):i[0]:il(this.options.smartypants?e(i[0]):i[0]),{type:"text",raw:i[0],text:r}}}}const ki={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:xP,lheading:/^((?:(?!^bull ).|\n(?!\n|bull ))+?)\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?'|\([^()]*\))/};ki.def=co(ki.def).replace("label",ki._label).replace("title",ki._title).getRegex(),ki.bullet=/(?:[*+-]|\d{1,9}[.)])/,ki.listItemStart=co(/^( *)(bull) */).replace("bull",ki.bullet).getRegex(),ki.list=co(ki.list).replace(/bull/g,ki.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+ki.def.source+")").getRegex(),ki._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",ki._comment=/|$)/,ki.html=co(ki.html,"i").replace("comment",ki._comment).replace("tag",ki._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ki.lheading=co(ki.lheading).replace(/bull/g,ki.bullet).getRegex(),ki.paragraph=co(ki._paragraph).replace("hr",ki.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",ki._tag).getRegex(),ki.blockquote=co(ki.blockquote).replace("paragraph",ki.paragraph).getRegex(),ki.normal={...ki},ki.gfm={...ki.normal,table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"},ki.gfm.table=co(ki.gfm.table).replace("hr",ki.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",ki._tag).getRegex(),ki.gfm.paragraph=co(ki._paragraph).replace("hr",ki.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",ki.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",ki._tag).getRegex(),ki.pedantic={...ki.normal,html:co("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",ki._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:xP,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:co(ki.normal._paragraph).replace("hr",ki.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",ki.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()};const qn={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:xP,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:xP,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(i="x"+i.toString(16)),t+="&#"+i+";";return t}qn._punctuation="\\p{P}$+<=>`^|~",qn.punctuation=co(qn.punctuation,"u").replace(/punctuation/g,qn._punctuation).getRegex(),qn.blockSkip=/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,qn.anyPunctuation=/\\[punct]/g,qn._escapes=/\\([punct])/g,qn._comment=co(ki._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),qn.emStrong.lDelim=co(qn.emStrong.lDelim,"u").replace(/punct/g,qn._punctuation).getRegex(),qn.emStrong.rDelimAst=co(qn.emStrong.rDelimAst,"gu").replace(/punct/g,qn._punctuation).getRegex(),qn.emStrong.rDelimUnd=co(qn.emStrong.rDelimUnd,"gu").replace(/punct/g,qn._punctuation).getRegex(),qn.anyPunctuation=co(qn.anyPunctuation,"gu").replace(/punct/g,qn._punctuation).getRegex(),qn._escapes=co(qn._escapes,"gu").replace(/punct/g,qn._punctuation).getRegex(),qn._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,qn._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])?)+(?![-_])/,qn.autolink=co(qn.autolink).replace("scheme",qn._scheme).replace("email",qn._email).getRegex(),qn._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,qn.tag=co(qn.tag).replace("comment",qn._comment).replace("attribute",qn._attribute).getRegex(),qn._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,qn._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,qn._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,qn.link=co(qn.link).replace("label",qn._label).replace("href",qn._href).replace("title",qn._title).getRegex(),qn.reflink=co(qn.reflink).replace("label",qn._label).replace("ref",ki._label).getRegex(),qn.nolink=co(qn.nolink).replace("ref",ki._label).getRegex(),qn.reflinkSearch=co(qn.reflinkSearch,"g").replace("reflink",qn.reflink).replace("nolink",qn.nolink).getRegex(),qn.normal={...qn},qn.pedantic={...qn.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:co(/^!?\[(label)\]\((.*?)\)/).replace("label",qn._label).getRegex(),reflink:co(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",qn._label).getRegex()},qn.gfm={...qn.normal,escape:co(qn.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]*?(?:(?=[\\f+" ".repeat(p.length));t;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(u=>!!(i=u.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(s=t,this.options.extensions&&this.options.extensions.startBlock){let u=1/0;const f=t.slice(1);let p;this.options.extensions.startBlock.forEach(function(m){p=m.call({lexer:this},f),"number"==typeof p&&p>=0&&(u=Math.min(u,p))}),u<1/0&&u>=0&&(s=t.substring(0,u+1))}if(this.state.top&&(i=this.tokenizer.paragraph(s))){r=e[e.length-1],l&&"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),l=s.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 u="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(u);break}throw new Error(u)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let i,r,s,u,f,p,l=t;if(this.tokens.links){const m=Object.keys(this.tokens.links);if(m.length>0)for(;null!=(u=this.tokenizer.rules.inline.reflinkSearch.exec(l));)m.includes(u[0].slice(u[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,u.index)+"["+"a".repeat(u[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(u=this.tokenizer.rules.inline.blockSkip.exec(l));)l=l.slice(0,u.index)+"["+"a".repeat(u[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(u=this.tokenizer.rules.inline.anyPunctuation.exec(l));)l=l.slice(0,u.index)+"++"+l.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;)if(f||(p=""),f=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(m=>!!(i=m.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,l,p)){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,mY)){t=t.substring(i.raw.length),e.push(i);continue}if(!this.state.inLink&&(i=this.tokenizer.url(t,mY))){t=t.substring(i.raw.length),e.push(i);continue}if(s=t,this.options.extensions&&this.options.extensions.startInline){let m=1/0;const _=t.slice(1);let b;this.options.extensions.startInline.forEach(function(w){b=w.call({lexer:this},_),"number"==typeof b&&b>=0&&(m=Math.min(m,b))}),m<1/0&&m>=0&&(s=t.substring(0,m+1))}if(i=this.tokenizer.inlineText(s,ZCe)){t=t.substring(i.raw.length),"_"!==i.raw.slice(-1)&&(p=i.raw.slice(-1)),f=!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 m="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(m);break}throw new Error(m)}}return e}}class EP{constructor(t){this.options=t||g0}code(t,e,i){const r=(e||"").match(/\S*/)[0];if(this.options.highlight){const s=this.options.highlight(t,r);null!=s&&s!==t&&(i=!0,t=s)}return t=t.replace(/\n$/,"")+"\n",r?'

    '+(i?t:il(t,!0))+"
    \n":"
    "+(i?t:il(t,!0))+"
    \n"}blockquote(t){return`
    \n${t}
    \n`}html(t,e){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=fY(this.options.sanitize,this.options.baseUrl,t)))return i;let r='",r}image(t,e,i){if(null===(t=fY(this.options.sanitize,this.options.baseUrl,t)))return i;let r=`${i}":">",r}text(t){return t}}class mV{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 gV{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 _f{constructor(t){this.options=t||g0,this.options.renderer=this.options.renderer||new EP,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new mV,this.slugger=new gV}static parse(t,e){return new _f(e).parse(t)}static parseInline(t,e){return new _f(e).parseInline(t)}parse(t,e=!0){let r,s,l,u,f,p,m,_,b,w,F,D,T,I,O,R,P,ee,J,i="";const te=t.length;for(r=0;r0&&"paragraph"===O.tokens[0].type?(O.tokens[0].text=ee+" "+O.tokens[0].text,O.tokens[0].tokens&&O.tokens[0].tokens.length>0&&"text"===O.tokens[0].tokens[0].type&&(O.tokens[0].tokens[0].text=ee+" "+O.tokens[0].tokens[0].text)):O.tokens.unshift({type:"text",text:ee}):I+=ee),I+=this.parse(O.tokens,T),b+=this.renderer.listitem(I,P,R);i+=this.renderer.list(b,F,D);continue;case"html":i+=this.renderer.html(w.text,w.block);continue;case"paragraph":i+=this.renderer.paragraph(this.parseInline(w.tokens));continue;case"text":for(b=w.tokens?this.parseInline(w.tokens):w.text;r+1{i=i.concat(this.walkTokens(r[s],e))}):r.tokens&&(i=i.concat(this.walkTokens(r.tokens,e)))}return i}use(...t){const e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(i=>{const r={...i};if(r.async=this.defaults.async||r.async||!1,i.extensions&&(i.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if(s.renderer){const l=e.renderers[s.name];e.renderers[s.name]=l?function(...u){let f=s.renderer.apply(this,u);return!1===f&&(f=l.apply(this,u)),f}:s.renderer}if(s.tokenizer){if(!s.level||"block"!==s.level&&"inline"!==s.level)throw new Error("extension level must be 'block' or 'inline'");e[s.level]?e[s.level].unshift(s.tokenizer):e[s.level]=[s.tokenizer],s.start&&("block"===s.level?e.startBlock?e.startBlock.push(s.start):e.startBlock=[s.start]:"inline"===s.level&&(e.startInline?e.startInline.push(s.start):e.startInline=[s.start]))}s.childTokens&&(e.childTokens[s.name]=s.childTokens)}),r.extensions=e),i.renderer){const s=this.defaults.renderer||new EP(this.defaults);for(const l in i.renderer){const u=s[l];s[l]=(...f)=>{let p=i.renderer[l].apply(s,f);return!1===p&&(p=u.apply(s,f)),p}}r.renderer=s}if(i.tokenizer){const s=this.defaults.tokenizer||new MP(this.defaults);for(const l in i.tokenizer){const u=s[l];s[l]=(...f)=>{let p=i.tokenizer[l].apply(s,f);return!1===p&&(p=u.apply(s,f)),p}}r.tokenizer=s}if(i.hooks){const s=this.defaults.hooks||new SP;for(const l in i.hooks){const u=s[l];s[l]=SP.passThroughHooks.has(l)?f=>{if(this.defaults.async)return Promise.resolve(i.hooks[l].call(s,f)).then(m=>u.call(s,m));const p=i.hooks[l].call(s,f);return u.call(s,p)}:(...f)=>{let p=i.hooks[l].apply(s,f);return!1===p&&(p=u.apply(s,f)),p}}r.hooks=s}if(i.walkTokens){const s=this.defaults.walkTokens;r.walkTokens=function(l){let u=[];return u.push(i.walkTokens.call(this,l)),s&&(u=u.concat(s.call(this,l))),u}}this.defaults={...this.defaults,...r}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}#e(t,e){return(i,r,s)=>{"function"==typeof r&&(s=r,r=null);const l={...r};r={...this.defaults,...l};const u=this.#t(r.silent,r.async,s);if(typeof i>"u"||null===i)return u(new Error("marked(): input parameter is undefined or null"));if("string"!=typeof i)return u(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(i)+", string expected"));if(function KCe(n,t){!n||n.silent||(t&&console.warn("marked(): callback is deprecated since version 5.0.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/using_pro#async"),(n.sanitize||n.sanitizer)&&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"),(n.highlight||"language-"!==n.langPrefix)&&console.warn("marked(): highlight and langPrefix parameters are deprecated since version 5.0.0, should not be used and will be removed in the future. Instead use https://www.npmjs.com/package/marked-highlight."),n.mangle&&console.warn("marked(): mangle parameter is enabled by default, but is deprecated since version 5.0.0, and will be removed in the future. To clear this warning, install https://www.npmjs.com/package/marked-mangle, or disable by setting `{mangle: false}`."),n.baseUrl&&console.warn("marked(): baseUrl parameter is deprecated since version 5.0.0, should not be used and will be removed in the future. Instead use https://www.npmjs.com/package/marked-base-url."),n.smartypants&&console.warn("marked(): smartypants parameter is deprecated since version 5.0.0, should not be used and will be removed in the future. Instead use https://www.npmjs.com/package/marked-smartypants."),n.xhtml&&console.warn("marked(): xhtml parameter is deprecated since version 5.0.0, should not be used and will be removed in the future. Instead use https://www.npmjs.com/package/marked-xhtml."),(n.headerIds||n.headerPrefix)&&console.warn("marked(): headerIds and headerPrefix parameters enabled by default, but are deprecated since version 5.0.0, and will be removed in the future. To clear this warning, install https://www.npmjs.com/package/marked-gfm-heading-id, or disable by setting `{headerIds: false}`."))}(r,s),r.hooks&&(r.hooks.options=r),s){const f=r.highlight;let p;try{r.hooks&&(i=r.hooks.preprocess(i)),p=t(i,r)}catch(b){return u(b)}const m=b=>{let w;if(!b)try{r.walkTokens&&this.walkTokens(p,r.walkTokens),w=e(p,r),r.hooks&&(w=r.hooks.postprocess(w))}catch(F){b=F}return r.highlight=f,b?u(b):s(null,w)};if(!f||f.length<3||(delete r.highlight,!p.length))return m();let _=0;return this.walkTokens(p,b=>{"code"===b.type&&(_++,setTimeout(()=>{f(b.text,b.lang,(w,F)=>{if(w)return m(w);null!=F&&F!==b.text&&(b.text=F,b.escaped=!0),_--,0===_&&m()})},0))}),void(0===_&&m())}if(r.async)return Promise.resolve(r.hooks?r.hooks.preprocess(i):i).then(f=>t(f,r)).then(f=>r.walkTokens?Promise.all(this.walkTokens(f,r.walkTokens)).then(()=>f):f).then(f=>e(f,r)).then(f=>r.hooks?r.hooks.postprocess(f):f).catch(u);try{r.hooks&&(i=r.hooks.preprocess(i));const f=t(i,r);r.walkTokens&&this.walkTokens(f,r.walkTokens);let p=e(f,r);return r.hooks&&(p=r.hooks.postprocess(p)),p}catch(f){return u(f)}}}#t(t,e,i){return r=>{if(r.message+="\nPlease report this to https://github.com/markedjs/marked.",t){const s="

    An error occurred:

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

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

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

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

    ${f}

    `),m=this.getAllIndexes(i,p),_=[];for(const b of m){const w=b+2,F=this.findEndChangesLine(i,b);for(const D of i.slice(w,F))_.push(`${D}
    `)}_.length>0&&(u[f]=_.join("\n"))}return u}getAllIndexes(e,i){return e.reduce((r,s,l)=>(i.test(s)&&r.push(l),r),[])}findVersionLine(e,i){const r=new RegExp(`\\[${i}]`);return e.findIndex(s=>r.test(s))}findEndChangesLine(e,i){return i+e.slice(i+1).findIndex(r=>/

    /.test(r)||/

    /.test(r))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(fp))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-change-log-dialog"]],standalone:!0,features:[o.aNF],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&&(o.j41(0,"mat-toolbar",0),o.EFF(1,"Changelog"),o.k0s(),o.j41(2,"div",1)(3,"h1"),o.EFF(4,"What is new in CodeCharta?"),o.k0s(),o.j41(5,"h2"),o.EFF(6),o.k0s(),o.j41(7,"div",2),o.Z7z(8,eMe,4,2,"div",null,o.fX1),o.nI1(10,"keyvalue"),o.k0s()(),o.j41(11,"div",3)(12,"a",4),o.EFF(13,"Know more"),o.k0s(),o.j41(14,"button",5),o.EFF(15,"CLOSE"),o.k0s()()),2&i&&(o.R7$(6),o.Lme("",r.data.previousVersion," \u2192 ",r.data.currentVersion,""),o.R7$(2),o.Dyx(o.bMT(10,3,r.changes)),o.R7$(6),o.Y8G("mat-dialog-close",!0))},dependencies:[Jg,ml,Jl,Jo,Ia,wf],encapsulation:2})}}return n})();function gY(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 iMe=(()=>{class n{constructor(e){this.dialog=e,this.version=Jy.rE}synchronizeLocalCodeChartaVersion(){const e=localStorage.getItem("codeChartaVersion");null!==e?function nMe(n,t){const e=gY(n),i=gY(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,s,l){this.doc=e,this.delegate=i,this.zone=r,this.animationType=s,this.moduleImpl=l,this._rendererFactoryPromise=null,this.scheduler=(0,o.WQX)(o.An2,{optional:!0}),this.loadingSchedulerFn=(0,o.WQX)(aMe,{optional:!0})}ngOnDestroy(){this._engine?.flush()}loadImpl(){const e=()=>this.moduleImpl??v.e(8).then(v.bind(v,8008)).then(r=>r);let i;return i=this.loadingSchedulerFn?this.loadingSchedulerFn(e):e(),i.catch(r=>{throw new o.wOt(5300,!1)}).then(({\u0275createEngine:r,\u0275AnimationRendererFactory:s})=>{this._engine=r(this.animationType,this.doc);const l=new s(this.delegate,this._engine,this.zone);return this.delegate=l,l})}createRenderer(e,i){const r=this.delegate.createRenderer(e,i);if(0===r.\u0275type)return r;"boolean"==typeof r.throwOnSyntheticProps&&(r.throwOnSyntheticProps=!1);const s=new sMe(r);return i?.data?.animation&&!this._rendererFactoryPromise&&(this._rendererFactoryPromise=this.loadImpl()),this._rendererFactoryPromise?.then(l=>{const u=l.createRenderer(e,i);s.use(u),this.scheduler?.notify(10)}).catch(l=>{s.use(r)}),s}begin(){this.delegate.begin?.()}end(){this.delegate.end?.()}whenRenderingDone(){return this.delegate.whenRenderingDone?.()??Promise.resolve()}static{this.\u0275fac=function(i){o.QTQ()}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();class sMe{constructor(t){this.delegate=t,this.replay=[],this.\u0275type=1}use(t){if(this.delegate=t,null!==this.replay){for(const e of this.replay)e(t);this.replay=null}}get data(){return this.delegate.data}destroy(){this.replay=null,this.delegate.destroy()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}get destroyNode(){return this.delegate.destroyNode}appendChild(t,e){this.delegate.appendChild(t,e)}insertBefore(t,e,i,r){this.delegate.insertBefore(t,e,i,r)}removeChild(t,e,i){this.delegate.removeChild(t,e,i)}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){this.shouldReplay(e)&&this.replay.push(r=>r.setProperty(t,e,i)),this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i){return this.shouldReplay(e)&&this.replay.push(r=>r.listen(t,e,i)),this.delegate.listen(t,e,i)}shouldReplay(t){return null!==this.replay&&t.startsWith("@")}}const aMe=new o.nKC(""),_V=sn(Hc,n=>n.focusedNodePath);const _Y=[f2,Wp,A3,m3,x2,w2,_2,m2,g2,A2,px,fx,k2,o0,b2,v2,y2,hx,Jp,hf,Ax,s0,aR,lR,E2,cR,eA,Zp,zu,C2,fR,S2,pR,p2,_x],uMe=1e3/60;let bY=(()=>{class n{constructor(e,i,r,s,l){this.store=e,this.actions$=i,this.uploadFilesService=r,this.threeRendererService=s,this.codeMapRenderService=l,this.actionsRequiringRender$=this.actions$.pipe(ff(..._Y)),this.renderCodeMap$=os(()=>h0([this.store.select(kd),this.actionsRequiringRender$]).pipe(ur(([u])=>!!u.unifiedMapNode),function dMe(n,t=ru,e){const i=np(n,t);return function cMe(n,t){return(0,Fr.N)((e,i)=>{const{leading:r=!0,trailing:s=!1}=t??{};let l=!1,u=null,f=null,p=!1;const m=()=>{f?.unsubscribe(),f=null,s&&(w(),p&&i.complete())},_=()=>{f=null,p&&i.complete()},b=F=>f=Pr(n(F)).subscribe((0,sr._)(i,m,_)),w=()=>{if(l){l=!1;const F=u;u=null,i.next(F),!p&&b(F)}};e.subscribe((0,sr._)(i,F=>{l=!0,u=F,(!f||f.closed)&&(r?w():b(F))},()=>{p=!0,(!(s&&l&&f)||f.closed)&&i.complete()}))})}(()=>i,e)}(uMe,ru,{leading:!1,trailing:!0}),ao(([u])=>{this.codeMapRenderService.render(u.unifiedMapNode),this.codeMapRenderService.scaleMap(),this.threeRendererService.render()}),q3()),{dispatch:!1}),this.removeLoadingIndicatorAfterRender$=os(()=>this.renderCodeMap$.pipe(ur(()=>!this.uploadFilesService.isUploading),ao(()=>{this.store.dispatch(Ec({value:!1})),this.store.dispatch(ph({value:!1}))})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(nA),o.KVO(ME),o.KVO(Cr),o.KVO(tX))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),hMe=(()=>{class n{constructor(e,i,r,s){this.store=e,this.renderCodeMapEffect=i,this.threeMapControlsService=r,this.actions$=s,this.autoFitTo$=os(()=>h0([this.store.select(Qc),this.store.select(_V),this.store.select(UW)]).pipe(E_(1),hl(this.store.select(LW)),ur(([,l])=>l),Xp(()=>this.renderCodeMapEffect.renderCodeMap$.pipe(ms(1))),ao(()=>{this.threeMapControlsService.autoFitTo()})),{dispatch:!1}),this.autoFitToWhenResetCameraIfNewFileIsLoadedSetToFalse$=os(()=>this.actions$.pipe(ff("StartWithGlobalOption:resetCameraIfNewFileIsLoadedSetToFalse"),h2(),Xp(()=>this.renderCodeMapEffect.renderCodeMap$.pipe(ms(1))),ao(()=>{this.threeMapControlsService.autoFitTo()})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(bY),o.KVO(Nd),o.KVO(nA))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),fMe=(()=>{class n{constructor(e){this.store=e,this.linkHeightAndColorMetric$=os(()=>h0([this.store.select(B2),this.store.select(O7)]).pipe(ur(([,i])=>i),(0,$n.T)(([i])=>zu({value:i}))))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const bV=sn(MX,Yw,(n,t)=>n?t.get(n.nodeId):null),pMe=sn(Zw,n=>n.markingColors),AMe=sn(bV,pMe,aY,(n,t,e)=>{if(null===n)return t.map(r=>({color:r,isMarked:!1}));const i=yW(e,n.path);return t.map(r=>({color:r,isMarked:-1!==i&&r===e[i].color}))});function mMe(n,t){1&n&&o.nrm(0,"i",5)}function gMe(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",4),o.bIt("click",function(){const r=o.eBV(e).$implicit,s=o.XpG(),l=o.XpG();return o.Njj(r.isMarked?l.unmarkFolder(s.path):l.markFolder(s.path,r.color))}),o.DNE(1,mMe,1,0,"i",5),o.k0s()}if(2&n){const e=t.$implicit;o.xc7("background-color",e.color),o.R7$(),o.vxM(e.isMarked?1:-1)}}function _Me(n,t){if(1&n){const e=o.RV6();o.j41(0,"div",1),o.Z7z(1,gMe,2,3,"button",2,o.fX1),o.nI1(3,"async"),o.j41(4,"cc-color-picker",3),o.bIt("onColorChange",function(r){const s=o.eBV(e),l=o.XpG();return o.Njj(l.markFolder(s.path,r))}),o.k0s()()}if(2&n){const e=o.XpG(),i=o.sdS(3);o.R7$(),o.Dyx(o.bMT(3,2,e.markFolderItems$)),o.R7$(3),o.Y8G("hexColor","#ff0000")("triggerTemplate",i)}}function bMe(n,t){1&n&&o.nrm(0,"div",6)}let vMe=(()=>{class n{constructor(e){this.store=e,this.markFolderItems$=this.store.select(AMe),this.codeMapNode$=this.store.select(bV)}markFolder(e,i){this.store.dispatch(S2({packages:[{path:e,color:i}]}))}unmarkFolder(e){this.store.dispatch(pR({path:e}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-mark-folder-row"]],standalone:!0,features:[o.aNF],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&&(o.DNE(0,_Me,5,4,"div",1),o.nI1(1,"async"),o.DNE(2,bMe,1,0,"ng-template",null,0,o.C5r)),2&i){let s;o.vxM((s=o.bMT(1,1,r.codeMapNode$))?0:-1,s)}},dependencies:[hq,Qn],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})();const yMe=sn(_V,n=>n[0]);let wMe=(()=>{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=o.EJ8({name:"isNodeFocused",type:n,pure:!0,standalone:!0})}}return n})();function xMe(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",1),o.bIt("click",function(){o.eBV(e);const r=o.XpG(2);return o.Njj(r.handleFocusNodeClicked())}),o.nrm(1,"i",2),o.EFF(2," FOCUS "),o.k0s()}}function CMe(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",5),o.bIt("click",function(){o.eBV(e);const r=o.XpG(3);return o.Njj(r.handleUnfocusAllNodesClicked())}),o.nrm(1,"i",2),o.EFF(2," UNFOCUS ALL "),o.k0s()}}function MMe(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",3),o.bIt("click",function(){o.eBV(e);const r=o.XpG(2);return o.Njj(r.handleUnfocusNodeClicked())}),o.nrm(1,"i",2),o.EFF(2),o.k0s(),o.DNE(3,CMe,3,0,"button",4),o.nI1(4,"async")}if(2&n){const e=o.XpG(),i=o.XpG();o.R7$(2),o.SpI(" ",e.isParentFocused?"UNFOCUS PARENT":"UNFOCUS"," "),o.R7$(),o.vxM(o.bMT(4,2,i.hasPreviousFocusedNodePath$)?3:-1)}}function EMe(n,t){if(1&n&&o.DNE(0,xMe,3,0,"button",0)(1,MMe,5,4),2&n){const e=t;o.vxM(e.isNodeFocused?-1:0),o.R7$(),o.vxM(e.isNodeFocused||e.isParentFocused?1:-1)}}let SMe=(()=>{class n{constructor(e){this.store=e,this.currentFocusedNodePath$=this.store.select(yMe),this.hasPreviousFocusedNodePath$=this.store.select(_V).pipe((0,$n.T)(i=>i.length>1))}handleFocusNodeClicked(){this.store.dispatch(lR({value:this.codeMapNode.path}))}handleUnfocusNodeClicked(){this.store.dispatch(cR())}handleUnfocusAllNodesClicked(){this.store.dispatch(E2())}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-focus-buttons"]],inputs:{codeMapNode:"codeMapNode"},standalone:!0,features:[o.aNF],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&&(o.DNE(0,EMe,2,2),o.nI1(1,"async"),o.nI1(2,"isNodeFocused")),2&i){let s;o.vxM((s=o.i5U(2,3,o.bMT(1,1,r.currentFocusedNodePath$),r.codeMapNode))?0:-1,s)}},dependencies:[Jo,Qn,wMe],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 TMe(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",2),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.flattenNode())}),o.nrm(1,"img",3),o.EFF(2," FLATTEN "),o.k0s()}}function IMe(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",4),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.unFlattenNode())}),o.nrm(1,"img",3),o.EFF(2," SHOW "),o.k0s()}}let FMe=(()=>{class n{constructor(e){this.store=e}flattenNode(){this.store.dispatch(e6({item:{path:this.codeMapNode.path,type:"flatten",nodeType:this.codeMapNode.type}}))}unFlattenNode(){this.store.dispatch(hR({item:{path:this.codeMapNode.path,type:"flatten",nodeType:this.codeMapNode.type}}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-flatten-buttons"]],inputs:{codeMapNode:"codeMapNode"},standalone:!0,features:[o.aNF],decls:2,vars:1,consts:[["mat-button","","title","Flatten node and children-nodes, but keep an empty space"],["mat-button","","title","Show node and children-nodes"],["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&&o.DNE(0,TMe,3,0,"button",0)(1,IMe,3,0,"button",1),2&i&&o.vxM(null!=r.codeMapNode&&r.codeMapNode.isFlattened?1:0)},dependencies:[Jo],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 DMe(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",2),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.addNodeToConstantHighlight())}),o.nrm(1,"i",3),o.EFF(2," KEEP HIGHLIGHT "),o.k0s()}}function BMe(n,t){if(1&n){const e=o.RV6();o.j41(0,"button",4),o.bIt("click",function(){o.eBV(e);const r=o.XpG();return o.Njj(r.removeNodeFromConstantHighlight())}),o.nrm(1,"i",3),o.EFF(2," REMOVE HIGHLIGHT "),o.k0s()}}let kMe=(()=>{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)(o.rXU(Rd),o.rXU(zS))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-highlight-buttons"]],inputs:{codeMapNode:"codeMapNode"},standalone:!0,features:[o.OA$,o.aNF],decls:2,vars:1,consts:[["mat-button","","title","Highlight node constantly"],["mat-button","","title","Remove constant highlight"],["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&&o.DNE(0,DMe,3,0,"button",0)(1,BMe,3,0,"button",1),2&i&&o.vxM(r.isHighlighted?1:0)},dependencies:[Jo],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})(),RMe=(()=>{class n{constructor(e){this.store=e}excludeNode(){this.store.dispatch(t6({items:[{path:this.codeMapNode.path,type:"exclude",nodeType:this.codeMapNode.type}]}))}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-exclude-button"]],inputs:{codeMapNode:"codeMapNode"},standalone:!0,features:[o.aNF],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&&(o.j41(0,"button",0),o.bIt("click",function(){return r.excludeNode()}),o.nrm(1,"i",1),o.EFF(2," EXCLUDE\n"),o.k0s())},dependencies:[Jo],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})(),PMe=(()=>{class n{transform(e){return`${0===e.lastIndexOf("/")?"":"..."}${e.slice(e.lastIndexOf("/"))}`}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=o.EJ8({name:"lastPartOfNodePath",type:n,pure:!0,standalone:!0})}}return n})();function OMe(n,t){1&n&&(o.j41(0,"div"),o.nrm(1,"cc-mark-folder-row")(2,"mat-divider"),o.k0s())}function NMe(n,t){if(1&n&&(o.j41(0,"mat-card",0),o.DNE(1,OMe,3,0,"div"),o.j41(2,"div",1)(3,"button",2),o.EFF(4),o.nI1(5,"lastPartOfNodePath"),o.k0s(),o.nrm(6,"cc-focus-buttons",3)(7,"cc-flatten-buttons",3)(8,"cc-highlight-buttons",3)(9,"cc-exclude-button",3),o.k0s()()),2&n){const e=t;o.R7$(),o.vxM((null==e||null==e.children?null:e.children.length)>0?1:-1),o.R7$(2),o.FS9("title",e.path),o.R7$(),o.SpI(" ",o.bMT(5,7,e.path)," "),o.R7$(2),o.Y8G("codeMapNode",e),o.R7$(),o.Y8G("codeMapNode",e),o.R7$(),o.Y8G("codeMapNode",e),o.R7$(),o.Y8G("codeMapNode",e)}}let LMe=(()=>{class n{constructor(e){this.store=e}ngOnInit(){this.codeMapNode$=this.store.select(bV)}static{this.\u0275fac=function(i){return new(i||n)(o.rXU(Yt))}}static{this.\u0275cmp=o.VBU({type:n,selectors:[["cc-node-context-menu-card"]],standalone:!0,features:[o.aNF],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&&(o.DNE(0,NMe,10,9,"mat-card",0),o.nI1(1,"async")),2&i){let s;o.vxM((s=o.bMT(1,1,r.codeMapNode$))?0:-1,s)}},dependencies:[c2,vMe,T7,Jo,SMe,FMe,kMe,RMe,Qn,PMe],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})(),UMe=(()=>{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(vx(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 Am(LMe)),this.overlayReference.overlayElement.addEventListener("contextmenu",s=>{s.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)(o.KVO(Us),o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})(),VMe=(()=>{class n{constructor(e,i){this.actions$=e,this.nodeContextMenu=i,this.openNodeContextMenu$=os(()=>this.actions$.pipe(ff(vx),ao(r=>{r.value&&this.nodeContextMenu.open(r.value.xPositionOfRightClickEvent,r.value.yPositionOfRightClickEvent)})),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(nA),o.KVO(UMe))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),HMe=(()=>{class n{constructor(e){this.store=e,this.resetSelectedEdgeMetricWhenItDoesntExistAnymore$=os(()=>this.store.select(Aa).pipe(hl(this.store.select(iA)),ur(([i,r])=>!i.edgeMetricData.some(s=>s.name===r)),(0,$n.T)(([i])=>i.edgeMetricData[0]?.name),Rr(),(0,$n.T)(i=>Jp({value:i}))))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();const GMe=[[fR,S2,pR,n6,mq,gq,Y8,Z8,K8,J8,e6,uR,hR],[f2,x2,w2,hW,F6,AW,$6,Wp,A3,m3,sR,C2,q8,rR,_2,g2,m2,A2,px,fx,k2,o0,oR,iR,nR,b2,v2,y2,W8,X8,p2],[hx,dR,Jp,hf,Ax,s0,$,aR,E2,lR,cR,eA,M2,zu,Zp],[...mt]].flat();let jMe=(()=>{class n{constructor(e,i){var r=this;this.actions$=e,this.state=i,this.saveCcState$=os(()=>this.actions$.pipe(ur(s=>s.type!==bx.type),ff(...GMe),M_(500),ao(Cn(function*(){const s=r.state.getValue();yield function Wde(n){return h6.apply(this,arguments)}(s)}))),{dispatch:!1})}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(nA),o.KVO(Vi))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),$Me=(()=>{class n{constructor(e,i){this.actions$=e,this.store=i,this.setIsLoadingFile$=os(()=>this.store.select(Qc).pipe((0,$n.T)(()=>Ec({value:!0})))),this.setIsLoadingMap$=os(()=>this.actions$.pipe(ff(..._Y),(0,$n.T)(()=>ph({value:!0}))))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(nA),o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),qMe=(()=>{class n{constructor(e){this.store=e,this.resetIsEdgeMetricVisible$=os(()=>this.store.select(iA).pipe(hl(this.store.select(hV)),ur(([,i])=>!i),(0,$n.T)(()=>rR())))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();function WMe(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 s={fromNodeName:t?VS(i.fileMeta.fileName,r.fromNodeName):r.fromNodeName,toNodeName:t?VS(i.fileMeta.fileName,r.toNodeName):r.toNodeName,attributes:C(r.attributes),visible:r.visible},l=e.get(`${s.fromNodeName}|${s.toNodeName}`);if(void 0!==l)for(const u of Object.keys(s.attributes))l.attributes[u]=s.attributes[u];else e.set(`${s.fromNodeName}|${s.toNodeName}`,s)}return[...e.values()]}function XMe(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 s={path:t?hG(i.fileMeta.fileName,r.path):r.path,color:r.color};e.set(`${s.path}|${s.color}`,s)}return[...e.values()]}function KMe(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 s={path:t?hG(i.fileMeta.fileName,r.path):r.path,type:r.type};e.set(`${s.path}|${s.type}`,s)}return[...e.values()]}function YMe(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 ZMe(n){const t={};for(const e of n)for(const i of Object.keys(e))t[i]||(t[i]=e[i]);return t}let JMe=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.updateFileSettings$=os(()=>this.store.select(Qc).pipe((0,$n.T)(()=>{const r=this.state.getValue(),s=function mre(n){return d3(n).map(t=>t.file)}(r.files),l=lG(r.files),u=Qc(r).map(({file:p})=>p.settings.fileSettings.attributeTypes),f=Qc(r).map(({file:p})=>p.settings.fileSettings.attributeDescriptors);return _x({value:{fileSettings:{edges:WMe(s,l),markedPackages:XMe(s,l),blacklist:KMe(s,l),attributeTypes:YMe(u),attributeDescriptors:ZMe(f)}}})})))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(Vi))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),eEe=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.updateMapColors$=os(()=>this.store.select(Gg).pipe((0,$n.T)(r=>{const s=this.state.getValue();if(1===s.fileSettings.attributeDescriptors[r]?.direction){const u=JSON.parse(Qu(s.appSettings.mapColors)),f=u.negative;return u.negative=u.positive,u.positive=f,Wp({value:u})}return Wp({value:af})})))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(Vi))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),tEe=(()=>{class n{constructor(e,i){this.store=e,this.state=i,this.updateVisibleTopLabels$=os(()=>this.store.select(Qc).pipe(TW(),hl(this.store.select(FR)),(0,$n.T)(([[r,s],l])=>{const f=Qu(r)===Qu(s)?this.state.getValue().appSettings.amountOfTopLabels:m7(l);return o0({value:f})})))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(Yt),o.KVO(Vi))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})(),nEe=(()=>{class n{constructor(e,i){this.actions$=e,this.store=i,this.resetColorRange$=os(()=>this.actions$.pipe(ff(...mt),hl(this.store.select(Qc)),Xp(()=>this.store.select(qp).pipe(E_(1),ms(1))),(0,$n.T)(r=>hf({value:HR(r)})))),this.resetColorRangeOnColorMetricChange$=os(()=>this.actions$.pipe(ff(zu),Xp(()=>this.store.select(qp).pipe(ms(1))),(0,$n.T)(r=>hf({value:HR(r)}))))}static{this.\u0275fac=function(i){return new(i||n)(o.KVO(nA),o.KVO(Yt))}}static{this.\u0275prov=o.jDH({token:n,factory:n.\u0275fac})}}return n})();!function Ha(n,t){(0,o.TL3)({rootComponent:n,...MA(t)})}(PCe,{providers:[function lMe(n="animations"){return(0,o.ngT)("NgAsyncAnimations"),(0,o.EmA)([{provide:o._9s,useFactory:(t,e,i)=>new oMe(t,e,i,n),deps:[V,Va,o.SKi]},{provide:o.bc$,useValue:"noop"===n?"NoopAnimations":"BrowserAnimations"}])}(),function the(...n){const t=[w6,Yq,Xq,{provide:gR,useExisting:Xq},{provide:_R,useFactory:()=>(0,o.WQX)(x6,{optional:!0})??(0,o.WQX)(Yq)},{provide:D2,useValue:ehe,multi:!0},{provide:M6,useValue:!0},{provide:eW,useClass:Jue}];for(const e of n)t.push(...e.\u0275providers);return(0,o.EmA)(t)}(function nhe(){return function ov(n,t){return{\u0275kind:n,\u0275providers:t}}(d0.LegacyInterceptors,[{provide:tW,useFactory:Gue},{provide:D2,useExisting:tW,multi:!0}])}()),function am(n,t){return(0,o.EmA)([...sm(n,t),bC])}(kfe,{metaReducers:[n=>(t,e)=>function xhe(n){return n.type===_x.type}(e)?SW(C(t),e.value):n(t,e)]}),function Cue(...n){const t=n.flat(),e=function oue(n){return n.filter(_6)}(t);return(0,o.EmA)([e,{provide:o.Z63,multi:!0,useValue:()=>{(0,o.WQX)(ad),(0,o.WQX)(bo,{optional:!0});const i=(0,o.WQX)(Oq),r=(0,o.WQX)(Pq),s=!i.isStarted;s&&i.start();for(const l of t){const u=_6(l)?(0,o.WQX)(l):l;r.addEffects(u)}s&&(0,o.WQX)(Yt).dispatch(uue())}}])}([OCe,oX,VMe,ume,nEe,whe,qMe,bY,hMe,tEe,fMe,HMe,JMe,$Me,jMe,Eue,eEe]),{provide:o.hnV,useFactory:n=>()=>n.synchronizeLocalCodeChartaVersion(),deps:[iMe],multi:!0}]})},7172:(nt,Ee,v)=>{"use strict";var j=v(6685),o=v(5841),y=v(8493),Z=v(2420),U=v(8861),L=v(7741),Y=v(8930),V=v(2615),X=v(1677);nt.exports=me,me.prototype.validate=function we(rt,Rt){var qt;if("string"==typeof rt){if(!(qt=this.getSchema(rt)))throw new Error('no schema with key or ref "'+rt+'"')}else{var cn=this._addSchema(rt);qt=cn.validate||this._compile(cn)}var Wt=qt(Rt);return!0!==qt.$async&&(this.errors=qt.errors),Wt},me.prototype.compile=function Be(rt,Rt){var qt=this._addSchema(rt,void 0,Rt);return qt.validate||this._compile(qt)},me.prototype.addSchema=function Ie(rt,Rt,qt,cn){if(Array.isArray(rt)){for(var Wt=0;Wt{"use strict";var Ee=nt.exports=function(){this._cache={}};Ee.prototype.put=function(j,o){this._cache[j]=o},Ee.prototype.get=function(j){return this._cache[j]},Ee.prototype.del=function(j){delete this._cache[j]},Ee.prototype.clear=function(){this._cache={}}},4442:(nt,Ee,v)=>{"use strict";var j=v(8892).MissingRef;nt.exports=function o(y,Z,U){var L=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof Z&&(U=Z,Z=void 0);var Y=V(y).then(function(){var z=L._addSchema(y,void 0,Z);return z.validate||X(z)});return U&&Y.then(function(z){U(null,z)},U),Y;function V(z){var G=z.$schema;return G&&!L.getSchema(G)?o.call(L,{$ref:G},!0):Promise.resolve()}function X(z){try{return L._compile(z)}catch(Q){if(Q instanceof j)return function G(Q){var ne=Q.missingSchema;if(we(ne))throw new Error("Schema "+ne+" is loaded but "+Q.missingRef+" cannot be resolved");var re=L._loadingSchemas[ne];return re||(re=L._loadingSchemas[ne]=L._opts.loadSchema(ne)).then(me,me),re.then(function(Be){if(!we(ne))return V(Be).then(function(){we(ne)||L.addSchema(Be,ne,void 0,Z)})}).then(function(){return X(z)});function me(){delete L._loadingSchemas[ne]}function we(Be){return L._refs[Be]||L._schemas[Be]}}(Q);throw Q}}}},8892:(nt,Ee,v)=>{"use strict";var j=v(5841);function y(U,L,Y){this.message=Y||y.message(U,L),this.missingRef=j.url(U,L),this.missingSchema=j.normalizeId(j.fullPath(this.missingRef))}function Z(U){return U.prototype=Object.create(Error.prototype),U.prototype.constructor=U,U}nt.exports={Validation:Z(function o(U){this.message="validation failed",this.errors=U,this.ajv=this.validation=!0}),MissingRef:Z(y)},y.message=function(U,L){return"can't resolve reference "+L+" from id "+U}},7741:(nt,Ee,v)=>{"use strict";var j=v(1677),o=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,y=[0,31,28,31,30,31,30,31,31,30,31,30,31],Z=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,U=/^(?=.{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,L=/^(?:[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,V=/^(?:(?:[^\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,X=/^(?:(?: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,z=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,G=/^(?:\/(?:[^~/]|~0|~1)*)*$/,Q=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,ne=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function re(je){return j.copy(re[je="full"==je?"full":"fast"])}function we(je){var at=je.match(o);if(!at)return!1;var ve=+at[2],he=+at[3];return ve>=1&&ve<=12&&he>=1&&he<=(2==ve&&function me(je){return je%4==0&&(je%100!=0||je%400==0)}(+at[1])?29:y[ve])}function Be(je,at){var We=je.match(Z);if(!We)return!1;var ve=We[1],he=We[2],Qe=We[3];return(ve<=23&&he<=59&&Qe<=59||23==ve&&59==he&&60==Qe)&&(!at||We[5])}nt.exports=re,re.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":V,url:X,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:U,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:$e,uuid:z,"json-pointer":G,"json-pointer-uri-fragment":Q,"relative-json-pointer":ne},re.full={date:we,time:Be,"date-time":function Ne(je){var at=je.split(Ie);return 2==at.length&&we(at[0])&&Be(at[1],!0)},uri:function He(je){return Je.test(je)&&L.test(je)},"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":V,url:X,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:U,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:$e,uuid:z,"json-pointer":G,"json-pointer-uri-fragment":Q,"relative-json-pointer":ne};var Ie=/t|\s/i,Je=/\/|:/,qe=/[^\\]\\Z/;function $e(je){if(qe.test(je))return!1;try{return new RegExp(je),!0}catch{return!1}}},6685:(nt,Ee,v)=>{"use strict";var j=v(5841),o=v(1677),y=v(8892),Z=v(8861),U=v(604),L=o.ucs2length,Y=v(362),V=y.Validation;function z(Ie,Ne,Je){var He=Q.call(this,Ie,Ne,Je);return He>=0?{index:He,compiling:!0}:(this._compilations[He=this._compilations.length]={schema:Ie,root:Ne,baseId:Je},{index:He,compiling:!1})}function G(Ie,Ne,Je){var He=Q.call(this,Ie,Ne,Je);He>=0&&this._compilations.splice(He,1)}function Q(Ie,Ne,Je){for(var He=0;He{"use strict";var j=v(5568),o=v(362),y=v(1677),Z=v(2420),U=v(4331);function L(He,qe,$e){var je=this._refs[$e];if("string"==typeof je){if(!this._refs[je])return L.call(this,He,qe,je);je=this._refs[je]}if((je=je||this._schemas[$e])instanceof Z)return Q(je.schema,this._opts.inlineRefs)?je.schema:je.validate||this._compile(je);var We,ve,he,at=Y.call(this,qe,$e);return at&&(We=at.schema,qe=at.root,he=at.baseId),We instanceof Z?ve=We.validate||He.call(this,We.schema,qe,void 0,he):void 0!==We&&(ve=Q(We,this._opts.inlineRefs)?We:He.call(this,We,qe,void 0,he)),ve}function Y(He,qe){var $e=j.parse(qe),je=we($e),at=me(this._getId(He.schema));if(0===Object.keys(He.schema).length||je!==at){var We=Ie(je),ve=this._refs[We];if("string"==typeof ve)return V.call(this,He,ve,$e);if(ve instanceof Z)ve.validate||this._compile(ve),He=ve;else{if(!((ve=this._schemas[We])instanceof Z))return;if(ve.validate||this._compile(ve),We==Ie(qe))return{schema:ve,root:He,baseId:at};He=ve}if(!He.schema)return;at=me(this._getId(He.schema))}return z.call(this,$e,at,He.schema,He)}function V(He,qe,$e){var je=Y.call(this,He,qe);if(je){var at=je.schema,We=je.baseId;He=je.root;var ve=this._getId(at);return ve&&(We=Ne(We,ve)),z.call(this,$e,We,at,He)}}nt.exports=L,L.normalizeId=Ie,L.fullPath=me,L.url=Ne,L.ids=function Je(He){var qe=Ie(this._getId(He)),$e={"":qe},je={"":me(qe,!1)},at={},We=this;return U(He,{allKeys:!0},function(ve,he,Qe,Te,Le,pt,xt){if(""!==he){var Ut=We._getId(ve),Pt=$e[Te],fn=je[Te]+"/"+Le;if(void 0!==xt&&(fn+="/"+("number"==typeof xt?xt:y.escapeFragment(xt))),"string"==typeof Ut){Ut=Pt=Ie(Pt?j.resolve(Pt,Ut):Ut);var jn=We._refs[Ut];if("string"==typeof jn&&(jn=We._refs[jn]),jn&&jn.schema){if(!o(ve,jn.schema))throw new Error('id "'+Ut+'" resolves to more than one schema')}else if(Ut!=Ie(fn))if("#"==Ut[0]){if(at[Ut]&&!o(ve,at[Ut]))throw new Error('id "'+Ut+'" resolves to more than one schema');at[Ut]=ve}else We._refs[Ut]=fn}$e[he]=Pt,je[he]=fn}}),at},L.inlineRef=Q,L.schema=Y;var X=y.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function z(He,qe,$e,je){if(He.fragment=He.fragment||"","/"==He.fragment.slice(0,1)){for(var at=He.fragment.split("/"),We=1;We{"use strict";var j=v(2956),o=v(1677).toHash;nt.exports=function(){var Z=[{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"]}],U=["type","$comment"];return Z.all=o(U),Z.types=o(["number","integer","string","array","object","boolean","null"]),Z.forEach(function(V){V.rules=V.rules.map(function(X){var z;if("object"==typeof X){var G=Object.keys(X)[0];z=X[G],X=G,z.forEach(function(ne){U.push(ne),Z.all[ne]=!0})}return U.push(X),Z.all[X]={keyword:X,code:j[X],implements:z}}),Z.all.$comment={keyword:"$comment",code:j.$comment},V.type&&(Z.types[V.type]=V)}),Z.keywords=o(U.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),Z.custom={},Z}},2420:(nt,Ee,v)=>{"use strict";var j=v(1677);nt.exports=function o(y){j.copy(y,this)}},1132:nt=>{"use strict";nt.exports=function(v){for(var Z,j=0,o=v.length,y=0;y=55296&&Z<=56319&&y{"use strict";function o(ve,he,Qe,Te){var Le=Te?" !== ":" === ",pt=Te?" || ":" && ",xt=Te?"!":"",Ut=Te?"":"!";switch(ve){case"null":return he+Le+"null";case"array":return xt+"Array.isArray("+he+")";case"object":return"("+xt+he+pt+"typeof "+he+Le+'"object"'+pt+Ut+"Array.isArray("+he+"))";case"integer":return"(typeof "+he+Le+'"number"'+pt+Ut+"("+he+" % 1)"+pt+he+Le+he+(Qe?pt+xt+"isFinite("+he+")":"")+")";case"number":return"(typeof "+he+Le+'"'+ve+'"'+(Qe?pt+xt+"isFinite("+he+")":"")+")";default:return"typeof "+he+Le+'"'+ve+'"'}}nt.exports={copy:function j(ve,he){for(var Qe in he=he||{},ve)he[Qe]=ve[Qe];return he},checkDataType:o,checkDataTypes:function y(ve,he,Qe){if(1===ve.length)return o(ve[0],he,Qe,!0);var Te="",Le=L(ve);for(var pt in Le.array&&Le.object&&(Te=Le.null?"(":"(!"+he+" || ",Te+="typeof "+he+' !== "object")',delete Le.null,delete Le.array,delete Le.object),Le.number&&delete Le.integer,Le)Te+=(Te?" && ":"")+o(pt,he,Qe,!0);return Te},coerceToTypes:function U(ve,he){if(Array.isArray(he)){for(var Qe=[],Te=0;Te=he)throw new Error("Cannot access property/index "+Te+" levels up, current level is "+he);return Qe[he-Te]}if(Te>he)throw new Error("Cannot access data "+Te+" levels up, current level is "+he);if(pt="data"+(he-Te||""),!Le)return pt}for(var Ut=pt,Pt=Le.split("/"),fn=0;fn{"use strict";var Ee=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];nt.exports=function(v,j){for(var o=0;o{"use strict";var j=v(8198);nt.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:j.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:j.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:nt=>{"use strict";nt.exports=function(v,j,o){var Q,y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G=v.opts.$data&&L&&L.$data;G?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",Q="schema"+Z):Q=L;var ne="maximum"==j,re=ne?"exclusiveMaximum":"exclusiveMinimum",me=v.schema[re],we=v.opts.$data&&me&&me.$data,Be=ne?"<":">",Ie=ne?">":"<",Ne=void 0;if(!G&&"number"!=typeof L&&void 0!==L)throw new Error(j+" must be number");if(!we&&void 0!==me&&"number"!=typeof me&&"boolean"!=typeof me)throw new Error(re+" must be number or boolean");if(we){var We,Je=v.util.getData(me.$data,U,v.dataPathArr),He="exclusive"+Z,qe="exclType"+Z,$e="exclIsNumber"+Z,at="' + "+(je="op"+Z)+" + '";y+=" var schemaExcl"+Z+" = "+Je+"; ",Ne=re,(We=We||[]).push(y+=" var "+He+"; var "+qe+" = typeof "+(Je="schemaExcl"+Z)+"; if ("+qe+" != 'boolean' && "+qe+" != 'undefined' && "+qe+" != 'number') { "),y="",!1!==v.createErrors?(y+=" { keyword: '"+(Ne||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: {} ",!1!==v.opts.messages&&(y+=" , message: '"+re+" should be boolean' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var ve=y;y=We.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+ve+"]); ":" validate.errors = ["+ve+"]; return false; ":" var err = "+ve+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" } else if ( ",G&&(y+=" ("+Q+" !== undefined && typeof "+Q+" != 'number') || "),y+=" "+qe+" == 'number' ? ( ("+He+" = "+Q+" === undefined || "+Je+" "+Be+"= "+Q+") ? "+z+" "+Ie+"= "+Je+" : "+z+" "+Ie+" "+Q+" ) : ( ("+He+" = "+Je+" === true) ? "+z+" "+Ie+"= "+Q+" : "+z+" "+Ie+" "+Q+" ) || "+z+" !== "+z+") { var op"+Z+" = "+He+" ? '"+Be+"' : '"+Be+"='; ",void 0===L&&(Ne=re,V=v.errSchemaPath+"/"+re,Q=Je,G=we)}else if(at=Be,($e="number"==typeof me)&&G){var je="'"+at+"'";y+=" if ( ",G&&(y+=" ("+Q+" !== undefined && typeof "+Q+" != 'number') || "),y+=" ( "+Q+" === undefined || "+me+" "+Be+"= "+Q+" ? "+z+" "+Ie+"= "+me+" : "+z+" "+Ie+" "+Q+" ) || "+z+" !== "+z+") { "}else $e&&void 0===L?(He=!0,Ne=re,V=v.errSchemaPath+"/"+re,Q=me,Ie+="="):($e&&(Q=Math[ne?"min":"max"](me,L)),me===(!$e||Q)?(He=!0,Ne=re,V=v.errSchemaPath+"/"+re,Ie+="="):(He=!1,at+="=")),je="'"+at+"'",y+=" if ( ",G&&(y+=" ("+Q+" !== undefined && typeof "+Q+" != 'number') || "),y+=" "+z+" "+Ie+" "+Q+" || "+z+" !== "+z+") { ";return Ne=Ne||j,(We=We||[]).push(y),y="",!1!==v.createErrors?(y+=" { keyword: '"+(Ne||"_limit")+"' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { comparison: "+je+", limit: "+Q+", exclusive: "+He+" } ",!1!==v.opts.messages&&(y+=" , message: 'should be "+at+" ",y+=G?"' + "+Q:Q+"'"),v.opts.verbose&&(y+=" , schema: ",y+=G?"validate.schema"+Y:""+L,y+=" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ",ve=y,y=We.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+ve+"]); ":" validate.errors = ["+ve+"]; return false; ":" var err = "+ve+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" } ",X&&(y+=" else { "),y}},3792:nt=>{"use strict";nt.exports=function(v,j,o){var Q,y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G=v.opts.$data&&L&&L.$data;if(G?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",Q="schema"+Z):Q=L,!G&&"number"!=typeof L)throw new Error(j+" must be number");y+="if ( ",G&&(y+=" ("+Q+" !== undefined && typeof "+Q+" != 'number') || ");var re=j,me=me||[];me.push(y+=" "+z+".length "+("maxItems"==j?">":"<")+" "+Q+") { "),y="",!1!==v.createErrors?(y+=" { keyword: '"+(re||"_limitItems")+"' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { limit: "+Q+" } ",!1!==v.opts.messages&&(y+=" , message: 'should NOT have ",y+="maxItems"==j?"more":"fewer",y+=" than ",y+=G?"' + "+Q+" + '":""+L,y+=" items' "),v.opts.verbose&&(y+=" , schema: ",y+=G?"validate.schema"+Y:""+L,y+=" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var we=y;return y=me.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+we+"]); ":" validate.errors = ["+we+"]; return false; ":" var err = "+we+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+="} ",X&&(y+=" else { "),y}},3226:nt=>{"use strict";nt.exports=function(v,j,o){var Q,y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G=v.opts.$data&&L&&L.$data;if(G?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",Q="schema"+Z):Q=L,!G&&"number"!=typeof L)throw new Error(j+" must be number");y+="if ( ",G&&(y+=" ("+Q+" !== undefined && typeof "+Q+" != 'number') || "),y+=!1===v.opts.unicode?" "+z+".length ":" ucs2length("+z+") ";var re=j,me=me||[];me.push(y+=" "+("maxLength"==j?">":"<")+" "+Q+") { "),y="",!1!==v.createErrors?(y+=" { keyword: '"+(re||"_limitLength")+"' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { limit: "+Q+" } ",!1!==v.opts.messages&&(y+=" , message: 'should NOT be ",y+="maxLength"==j?"longer":"shorter",y+=" than ",y+=G?"' + "+Q+" + '":""+L,y+=" characters' "),v.opts.verbose&&(y+=" , schema: ",y+=G?"validate.schema"+Y:""+L,y+=" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var we=y;return y=me.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+we+"]); ":" validate.errors = ["+we+"]; return false; ":" var err = "+we+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+="} ",X&&(y+=" else { "),y}},2119:nt=>{"use strict";nt.exports=function(v,j,o){var Q,y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G=v.opts.$data&&L&&L.$data;if(G?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",Q="schema"+Z):Q=L,!G&&"number"!=typeof L)throw new Error(j+" must be number");y+="if ( ",G&&(y+=" ("+Q+" !== undefined && typeof "+Q+" != 'number') || ");var re=j,me=me||[];me.push(y+=" Object.keys("+z+").length "+("maxProperties"==j?">":"<")+" "+Q+") { "),y="",!1!==v.createErrors?(y+=" { keyword: '"+(re||"_limitProperties")+"' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { limit: "+Q+" } ",!1!==v.opts.messages&&(y+=" , message: 'should NOT have ",y+="maxProperties"==j?"more":"fewer",y+=" than ",y+=G?"' + "+Q+" + '":""+L,y+=" properties' "),v.opts.verbose&&(y+=" , schema: ",y+=G?"validate.schema"+Y:""+L,y+=" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var we=y;return y=me.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+we+"]); ":" validate.errors = ["+we+"]; return false; ":" var err = "+we+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+="} ",X&&(y+=" else { "),y}},9218:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.schema[j],U=v.schemaPath+v.util.getProperty(j),L=v.errSchemaPath+"/"+j,Y=!v.opts.allErrors,V=v.util.copy(v),X="";V.level++;var z="valid"+V.level,G=V.baseId,Q=!0,ne=Z;if(ne)for(var re,me=-1,we=ne.length-1;me0||!1===re:v.util.schemaHasRules(re,v.RULES.all))&&(Q=!1,V.schema=re,V.schemaPath=U+"["+me+"]",V.errSchemaPath=L+"/"+me,y+=" "+v.validate(V)+" ",V.baseId=G,Y&&(y+=" if ("+z+") { ",X+="}"));return Y&&(y+=Q?" if (true) { ":" "+X.slice(0,-1)+" "),y}},3883:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q="errs__"+Z,ne=v.util.copy(v),re="";ne.level++;var me="valid"+ne.level;if(L.every(function($e){return v.opts.strictKeywords?"object"==typeof $e&&Object.keys($e).length>0||!1===$e:v.util.schemaHasRules($e,v.RULES.all)})){var Be=ne.baseId;y+=" var "+Q+" = errors; var "+G+" = false; ";var Ie=v.compositeRule;v.compositeRule=ne.compositeRule=!0;var Ne=L;if(Ne)for(var Je,He=-1,qe=Ne.length-1;He{"use strict";nt.exports=function(v,j,o){var y=" ",U=v.errSchemaPath+"/"+j,Y=v.util.toQuotedString(v.schema[j]);return!0===v.opts.$comment?y+=" console.log("+Y+");":"function"==typeof v.opts.$comment&&(y+=" self._opts.$comment("+Y+", "+v.util.toQuotedString(U)+", validate.root.schema);"),y}},439:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q=v.opts.$data&&L&&L.$data;Q&&(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; "),Q||(y+=" var schema"+Z+" = validate.schema"+Y+";");var re=re||[];re.push(y+="var "+G+" = equal("+z+", schema"+Z+"); if (!"+G+") { "),y="",!1!==v.createErrors?(y+=" { keyword: 'const' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { allowedValue: schema"+Z+" } ",!1!==v.opts.messages&&(y+=" , message: 'should be equal to constant' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var me=y;return y=re.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+me+"]); ":" validate.errors = ["+me+"]; return false; ":" var err = "+me+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" }",X&&(y+=" else { "),y}},7939:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q="errs__"+Z,ne=v.util.copy(v);ne.level++;var me="valid"+ne.level,we="i"+Z,Be=ne.dataLevel=v.dataLevel+1,Ie="data"+Be,Ne=v.baseId,Je=v.opts.strictKeywords?"object"==typeof L&&Object.keys(L).length>0||!1===L:v.util.schemaHasRules(L,v.RULES.all);if(y+="var "+Q+" = errors;var "+G+";",Je){var He=v.compositeRule;v.compositeRule=ne.compositeRule=!0,ne.schema=L,ne.schemaPath=Y,ne.errSchemaPath=V,y+=" var "+me+" = false; for (var "+we+" = 0; "+we+" < "+z+".length; "+we+"++) { ",ne.errorPath=v.util.getPathExpr(v.errorPath,we,v.opts.jsonPointers,!0);var qe=z+"["+we+"]";ne.dataPathArr[Be]=we;var $e=v.validate(ne);ne.baseId=Ne,v.util.varOccurences($e,Ie)<2?y+=" "+v.util.varReplace($e,Ie,qe)+" ":y+=" var "+Ie+" = "+qe+"; "+$e+" ",y+=" if ("+me+") break; } ",v.compositeRule=ne.compositeRule=He,y+=" if (!"+me+") {"}else y+=" if ("+z+".length == 0) {";var je=je||[];je.push(y),y="",!1!==v.createErrors?(y+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: {} ",!1!==v.opts.messages&&(y+=" , message: 'should contain a valid item' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var at=y;return y=je.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+at+"]); ":" validate.errors = ["+at+"]; return false; ":" var err = "+at+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" } else { ",Je&&(y+=" errors = "+Q+"; if (vErrors !== null) { if ("+Q+") vErrors.length = "+Q+"; else vErrors = null; } "),v.opts.allErrors&&(y+=" } "),y}},5237:nt=>{"use strict";nt.exports=function(v,j,o){var z,me,y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,G="data"+(U||""),Q="valid"+Z,ne="errs__"+Z,re=v.opts.$data&&L&&L.$data;re?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",me="schema"+Z):me=L;var Je,He,qe,$e,je,we=this,Be="definition"+Z,Ie=we.definition,Ne="";if(re&&Ie.$data){var at=Ie.validateSchema;y+=" var "+Be+" = RULES.custom['"+j+"'].definition; var "+(je="keywordValidate"+Z)+" = "+Be+".validate;"}else{if(!($e=v.useCustomRule(we,L,v.schema,v)))return;me="validate.schema"+Y,je=$e.code,Je=Ie.compile,He=Ie.inline,qe=Ie.macro}var We=je+".errors",ve="i"+Z,he="ruleErr"+Z,Qe=Ie.async;if(Qe&&!v.async)throw new Error("async keyword in sync schema");if(He||qe||(y+=We+" = null;"),y+="var "+ne+" = errors;var "+Q+";",re&&Ie.$data&&(Ne+="}",y+=" if ("+me+" === undefined) { "+Q+" = true; } else { ",at&&(Ne+="}",y+=" "+Q+" = "+Be+".validateSchema("+me+"); if ("+Q+") { ")),He)y+=Ie.statements?" "+$e.validate+" ":" "+Q+" = "+$e.validate+"; ";else if(qe){var Te=v.util.copy(v);Ne="",Te.level++;var Le="valid"+Te.level;Te.schema=$e.validate,Te.schemaPath="";var pt=v.compositeRule;v.compositeRule=Te.compositeRule=!0;var xt=v.validate(Te).replace(/validate\.schema/g,je);v.compositeRule=Te.compositeRule=pt,y+=" "+xt}else{(Ut=Ut||[]).push(y),y="",y+=" "+je+".call( ",y+=v.opts.passContext?"this":"self",y+=Je||!1===Ie.schema?" , "+G+" ":" , "+me+" , "+G+" , validate.schema"+v.schemaPath+" ",y+=" , (dataPath || '')",'""'!=v.errorPath&&(y+=" + "+v.errorPath);var Pt=U?"data"+(U-1||""):"parentData",fn=U?v.dataPathArr[U]:"parentDataProperty",jn=y+=" , "+Pt+" , "+fn+" , rootData ) ";y=Ut.pop(),!1===Ie.errors?(y+=" "+Q+" = ",Qe&&(y+="await "),y+=jn+"; "):y+=Qe?" var "+(We="customErrors"+Z)+" = null; try { "+Q+" = await "+jn+"; } catch (e) { "+Q+" = false; if (e instanceof ValidationError) "+We+" = e.errors; else throw e; } ":" "+We+" = null; "+Q+" = "+jn+"; "}if(Ie.modifying&&(y+=" if ("+Pt+") "+G+" = "+Pt+"["+fn+"];"),y+=""+Ne,Ie.valid)X&&(y+=" if (true) { ");else{var Ut;y+=" if ( ",void 0===Ie.valid?(y+=" !",y+=qe?""+Le:""+Q):y+=" "+!Ie.valid+" ",z=we.keyword,(Ut=Ut||[]).push(y+=") { "),(Ut=Ut||[]).push(y=""),y="",!1!==v.createErrors?(y+=" { keyword: '"+(z||"custom")+"' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { keyword: '"+we.keyword+"' } ",!1!==v.opts.messages&&(y+=" , message: 'should pass \""+we.keyword+"\" keyword validation' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+G+" "),y+=" } "):y+=" {} ";var Qi=y;y=Ut.pop();var di=y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+Qi+"]); ":" validate.errors = ["+Qi+"]; return false; ":" var err = "+Qi+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";y=Ut.pop(),He?Ie.errors?"full"!=Ie.errors&&(y+=" for (var "+ve+"="+ne+"; "+ve+"{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="errs__"+Z,Q=v.util.copy(v),ne="";Q.level++;var re="valid"+Q.level,me={},we={},Be=v.opts.ownProperties;for(He in L)if("__proto__"!=He){var Ie=L[He],Ne=Array.isArray(Ie)?we:me;Ne[He]=Ie}y+="var "+G+" = errors;";var Je=v.errorPath;for(var He in y+="var missing"+Z+";",we)if((Ne=we[He]).length){if(y+=" if ( "+z+v.util.getProperty(He)+" !== undefined ",Be&&(y+=" && Object.prototype.hasOwnProperty.call("+z+", '"+v.util.escapeQuotes(He)+"') "),X){y+=" && ( ";var qe=Ne;if(qe)for(var je=-1,at=qe.length-1;je0||!1===Ie:v.util.schemaHasRules(Ie,v.RULES.all))&&(y+=" "+re+" = true; if ( "+z+v.util.getProperty(He)+" !== undefined ",Be&&(y+=" && Object.prototype.hasOwnProperty.call("+z+", '"+v.util.escapeQuotes(He)+"') "),y+=") { ",Q.schema=Ie,Q.schemaPath=Y+v.util.getProperty(He),Q.errSchemaPath=V+"/"+v.util.escapeFragment(He),y+=" "+v.validate(Q)+" ",Q.baseId=Pt,y+=" } ",X&&(y+=" if ("+re+") { ",ne+="}"));return X&&(y+=" "+ne+" if ("+G+" == errors) {"),y}},4299:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q=v.opts.$data&&L&&L.$data;Q&&(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ");var re="i"+Z,me="schema"+Z;Q||(y+=" var "+me+" = validate.schema"+Y+";"),y+="var "+G+";",Q&&(y+=" if (schema"+Z+" === undefined) "+G+" = true; else if (!Array.isArray(schema"+Z+")) "+G+" = false; else {"),y+=G+" = false;for (var "+re+"=0; "+re+"<"+me+".length; "+re+"++) if (equal("+z+", "+me+"["+re+"])) { "+G+" = true; break; }",Q&&(y+=" } ");var we=we||[];we.push(y+=" if (!"+G+") { "),y="",!1!==v.createErrors?(y+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { allowedValues: schema"+Z+" } ",!1!==v.opts.messages&&(y+=" , message: 'should be equal to one of the allowed values' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var Be=y;return y=we.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+Be+"]); ":" validate.errors = ["+Be+"]; return false; ":" var err = "+Be+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" }",X&&(y+=" else { "),y}},4097:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||"");if(!1===v.opts.format)return X&&(y+=" if (true) { "),y;var Q,G=v.opts.$data&&L&&L.$data;G?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",Q="schema"+Z):Q=L;var ne=v.opts.unknownFormats,re=Array.isArray(ne);if(G)y+=" var "+(me="format"+Z)+" = formats["+Q+"]; var "+(we="isObject"+Z)+" = typeof "+me+" == 'object' && !("+me+" instanceof RegExp) && "+me+".validate; var "+(Be="formatType"+Z)+" = "+we+" && "+me+".type || 'string'; if ("+we+") { ",v.async&&(y+=" var async"+Z+" = "+me+".async; "),y+=" "+me+" = "+me+".validate; } if ( ",G&&(y+=" ("+Q+" !== undefined && typeof "+Q+" != 'string') || "),y+=" (","ignore"!=ne&&(y+=" ("+Q+" && !"+me+" ",re&&(y+=" && self._opts.unknownFormats.indexOf("+Q+") == -1 "),y+=") || "),y+=" ("+me+" && "+Be+" == '"+o+"' && !(typeof "+me+" == 'function' ? ",y+=v.async?" (async"+Z+" ? await "+me+"("+z+") : "+me+"("+z+")) ":" "+me+"("+z+") ",y+=" : "+me+".test("+z+"))))) {";else{var me;if(!(me=v.formats[L])){if("ignore"==ne)return v.logger.warn('unknown format "'+L+'" ignored in schema at path "'+v.errSchemaPath+'"'),X&&(y+=" if (true) { "),y;if(re&&ne.indexOf(L)>=0)return X&&(y+=" if (true) { "),y;throw new Error('unknown format "'+L+'" is used in schema at path "'+v.errSchemaPath+'"')}var we,Be=(we="object"==typeof me&&!(me instanceof RegExp)&&me.validate)&&me.type||"string";if(we){var Ie=!0===me.async;me=me.validate}if(Be!=o)return X&&(y+=" if (true) { "),y;if(Ie){if(!v.async)throw new Error("async format in sync schema");y+=" if (!(await "+(Ne="formats"+v.util.getProperty(L)+".validate")+"("+z+"))) { "}else{y+=" if (! ";var Ne="formats"+v.util.getProperty(L);we&&(Ne+=".validate"),y+="function"==typeof me?" "+Ne+"("+z+") ":" "+Ne+".test("+z+") ",y+=") { "}}var Je=Je||[];Je.push(y),y="",!1!==v.createErrors?(y+=" { keyword: 'format' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { format: ",y+=G?""+Q:""+v.util.toQuotedString(L),y+=" } ",!1!==v.opts.messages&&(y+=" , message: 'should match format \"",y+=G?"' + "+Q+" + '":""+v.util.escapeQuotes(L),y+="\"' "),v.opts.verbose&&(y+=" , schema: ",y+=G?"validate.schema"+Y:""+v.util.toQuotedString(L),y+=" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var He=y;return y=Je.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+He+"]); ":" validate.errors = ["+He+"]; return false; ":" var err = "+He+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" } ",X&&(y+=" else { "),y}},2061:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q="errs__"+Z,ne=v.util.copy(v);ne.level++;var re="valid"+ne.level,me=v.schema.then,we=v.schema.else,Be=void 0!==me&&(v.opts.strictKeywords?"object"==typeof me&&Object.keys(me).length>0||!1===me:v.util.schemaHasRules(me,v.RULES.all)),Ie=void 0!==we&&(v.opts.strictKeywords?"object"==typeof we&&Object.keys(we).length>0||!1===we:v.util.schemaHasRules(we,v.RULES.all)),Ne=ne.baseId;if(Be||Ie){var Je;ne.createErrors=!1,ne.schema=L,ne.schemaPath=Y,ne.errSchemaPath=V,y+=" var "+Q+" = errors; var "+G+" = true; ";var He=v.compositeRule;v.compositeRule=ne.compositeRule=!0,y+=" "+v.validate(ne)+" ",ne.baseId=Ne,ne.createErrors=!0,y+=" errors = "+Q+"; if (vErrors !== null) { if ("+Q+") vErrors.length = "+Q+"; else vErrors = null; } ",v.compositeRule=ne.compositeRule=He,Be?(y+=" if ("+re+") { ",ne.schema=v.schema.then,ne.schemaPath=v.schemaPath+".then",ne.errSchemaPath=v.errSchemaPath+"/then",y+=" "+v.validate(ne)+" ",ne.baseId=Ne,y+=" "+G+" = "+re+"; ",Be&&Ie?y+=" var "+(Je="ifClause"+Z)+" = 'then'; ":Je="'then'",y+=" } ",Ie&&(y+=" else { ")):y+=" if (!"+re+") { ",Ie&&(ne.schema=v.schema.else,ne.schemaPath=v.schemaPath+".else",ne.errSchemaPath=v.errSchemaPath+"/else",y+=" "+v.validate(ne)+" ",ne.baseId=Ne,y+=" "+G+" = "+re+"; ",Be&&Ie?y+=" var "+(Je="ifClause"+Z)+" = 'else'; ":Je="'else'",y+=" } "),y+=" if (!"+G+") { var err = ",!1!==v.createErrors?(y+=" { keyword: 'if' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { failingKeyword: "+Je+" } ",!1!==v.opts.messages&&(y+=" , message: 'should match \"' + "+Je+" + '\" schema' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ",y+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!v.compositeRule&&X&&(y+=v.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),y+=" } ",X&&(y+=" else { ")}else X&&(y+=" if (true) { ");return y}},2956:(nt,Ee,v)=>{"use strict";nt.exports={$ref:v(3953),allOf:v(9218),anyOf:v(3883),$comment:v(757),const:v(439),contains:v(7939),dependencies:v(3899),enum:v(4299),format:v(4097),if:v(2061),items:v(9240),maximum:v(9402),minimum:v(9402),maxItems:v(3792),minItems:v(3792),maxLength:v(3226),minLength:v(3226),maxProperties:v(2119),minProperties:v(2119),multipleOf:v(9095),not:v(8457),oneOf:v(7681),pattern:v(9438),properties:v(6319),propertyNames:v(6611),required:v(5051),uniqueItems:v(5329),validate:v(604)}},9240:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q="errs__"+Z,ne=v.util.copy(v),re="";ne.level++;var me="valid"+ne.level,we="i"+Z,Be=ne.dataLevel=v.dataLevel+1,Ie="data"+Be,Ne=v.baseId;if(y+="var "+Q+" = errors;var "+G+";",Array.isArray(L)){var Je=v.schema.additionalItems;if(!1===Je){y+=" "+G+" = "+z+".length <= "+L.length+"; ";var He=V;V=v.errSchemaPath+"/additionalItems";var qe=qe||[];qe.push(y+=" if (!"+G+") { "),y="",!1!==v.createErrors?(y+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { limit: "+L.length+" } ",!1!==v.opts.messages&&(y+=" , message: 'should NOT have more than "+L.length+" items' "),v.opts.verbose&&(y+=" , schema: false , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var $e=y;y=qe.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+$e+"]); ":" validate.errors = ["+$e+"]; return false; ":" var err = "+$e+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" } ",V=He,X&&(re+="}",y+=" else { ")}var je=L;if(je)for(var at,We=-1,ve=je.length-1;We0||!1===at:v.util.schemaHasRules(at,v.RULES.all)){y+=" "+me+" = true; if ("+z+".length > "+We+") { ";var he=z+"["+We+"]";ne.schema=at,ne.schemaPath=Y+"["+We+"]",ne.errSchemaPath=V+"/"+We,ne.errorPath=v.util.getPathExpr(v.errorPath,We,v.opts.jsonPointers,!0),ne.dataPathArr[Be]=We;var Qe=v.validate(ne);ne.baseId=Ne,v.util.varOccurences(Qe,Ie)<2?y+=" "+v.util.varReplace(Qe,Ie,he)+" ":y+=" var "+Ie+" = "+he+"; "+Qe+" ",y+=" } ",X&&(y+=" if ("+me+") { ",re+="}")}"object"==typeof Je&&(v.opts.strictKeywords?"object"==typeof Je&&Object.keys(Je).length>0||!1===Je:v.util.schemaHasRules(Je,v.RULES.all))&&(ne.schema=Je,ne.schemaPath=v.schemaPath+".additionalItems",ne.errSchemaPath=v.errSchemaPath+"/additionalItems",y+=" "+me+" = true; if ("+z+".length > "+L.length+") { for (var "+we+" = "+L.length+"; "+we+" < "+z+".length; "+we+"++) { ",ne.errorPath=v.util.getPathExpr(v.errorPath,we,v.opts.jsonPointers,!0),he=z+"["+we+"]",ne.dataPathArr[Be]=we,Qe=v.validate(ne),ne.baseId=Ne,v.util.varOccurences(Qe,Ie)<2?y+=" "+v.util.varReplace(Qe,Ie,he)+" ":y+=" var "+Ie+" = "+he+"; "+Qe+" ",X&&(y+=" if (!"+me+") break; "),y+=" } } ",X&&(y+=" if ("+me+") { ",re+="}"))}else(v.opts.strictKeywords?"object"==typeof L&&Object.keys(L).length>0||!1===L:v.util.schemaHasRules(L,v.RULES.all))&&(ne.schema=L,ne.schemaPath=Y,ne.errSchemaPath=V,y+=" for (var "+we+" = 0; "+we+" < "+z+".length; "+we+"++) { ",ne.errorPath=v.util.getPathExpr(v.errorPath,we,v.opts.jsonPointers,!0),he=z+"["+we+"]",ne.dataPathArr[Be]=we,Qe=v.validate(ne),ne.baseId=Ne,v.util.varOccurences(Qe,Ie)<2?y+=" "+v.util.varReplace(Qe,Ie,he)+" ":y+=" var "+Ie+" = "+he+"; "+Qe+" ",X&&(y+=" if (!"+me+") break; "),y+=" }");return X&&(y+=" "+re+" if ("+Q+" == errors) {"),y}},9095:nt=>{"use strict";nt.exports=function(v,j,o){var Q,y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G=v.opts.$data&&L&&L.$data;if(G?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",Q="schema"+Z):Q=L,!G&&"number"!=typeof L)throw new Error(j+" must be number");y+="var division"+Z+";if (",G&&(y+=" "+Q+" !== undefined && ( typeof "+Q+" != 'number' || "),y+=" (division"+Z+" = "+z+" / "+Q+", ",y+=v.opts.multipleOfPrecision?" Math.abs(Math.round(division"+Z+") - division"+Z+") > 1e-"+v.opts.multipleOfPrecision+" ":" division"+Z+" !== parseInt(division"+Z+") ",y+=" ) ",G&&(y+=" ) ");var ne=ne||[];ne.push(y+=" ) { "),y="",!1!==v.createErrors?(y+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { multipleOf: "+Q+" } ",!1!==v.opts.messages&&(y+=" , message: 'should be multiple of ",y+=G?"' + "+Q:Q+"'"),v.opts.verbose&&(y+=" , schema: ",y+=G?"validate.schema"+Y:""+L,y+=" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var re=y;return y=ne.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+re+"]); ":" validate.errors = ["+re+"]; return false; ":" var err = "+re+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+="} ",X&&(y+=" else { "),y}},8457:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="errs__"+Z,Q=v.util.copy(v);Q.level++;var ne="valid"+Q.level;if(v.opts.strictKeywords?"object"==typeof L&&Object.keys(L).length>0||!1===L:v.util.schemaHasRules(L,v.RULES.all)){Q.schema=L,Q.schemaPath=Y,Q.errSchemaPath=V,y+=" var "+G+" = errors; ";var me,re=v.compositeRule;v.compositeRule=Q.compositeRule=!0,Q.createErrors=!1,Q.opts.allErrors&&(me=Q.opts.allErrors,Q.opts.allErrors=!1),y+=" "+v.validate(Q)+" ",Q.createErrors=!0,me&&(Q.opts.allErrors=me),v.compositeRule=Q.compositeRule=re;var we=we||[];we.push(y+=" if ("+ne+") { "),y="",!1!==v.createErrors?(y+=" { keyword: 'not' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: {} ",!1!==v.opts.messages&&(y+=" , message: 'should NOT be valid' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var Be=y;y=we.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+Be+"]); ":" validate.errors = ["+Be+"]; return false; ":" var err = "+Be+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" } else { errors = "+G+"; if (vErrors !== null) { if ("+G+") vErrors.length = "+G+"; else vErrors = null; } ",v.opts.allErrors&&(y+=" } ")}else y+=" var err = ",!1!==v.createErrors?(y+=" { keyword: 'not' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: {} ",!1!==v.opts.messages&&(y+=" , message: 'should NOT be valid' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ",y+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",X&&(y+=" if (false) { ");return y}},7681:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q="errs__"+Z,ne=v.util.copy(v),re="";ne.level++;var me="valid"+ne.level,we=ne.baseId,Be="prevValid"+Z,Ie="passingSchemas"+Z;y+="var "+Q+" = errors , "+Be+" = false , "+G+" = false , "+Ie+" = null; ";var Ne=v.compositeRule;v.compositeRule=ne.compositeRule=!0;var Je=L;if(Je)for(var He,qe=-1,$e=Je.length-1;qe<$e;)He=Je[qe+=1],(v.opts.strictKeywords?"object"==typeof He&&Object.keys(He).length>0||!1===He:v.util.schemaHasRules(He,v.RULES.all))?(ne.schema=He,ne.schemaPath=Y+"["+qe+"]",ne.errSchemaPath=V+"/"+qe,y+=" "+v.validate(ne)+" ",ne.baseId=we):y+=" var "+me+" = true; ",qe&&(y+=" if ("+me+" && "+Be+") { "+G+" = false; "+Ie+" = ["+Ie+", "+qe+"]; } else { ",re+="}"),y+=" if ("+me+") { "+G+" = "+Be+" = true; "+Ie+" = "+qe+"; }";return v.compositeRule=ne.compositeRule=Ne,y+=re+"if (!"+G+") { var err = ",!1!==v.createErrors?(y+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { passingSchemas: "+Ie+" } ",!1!==v.opts.messages&&(y+=" , message: 'should match exactly one schema in oneOf' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ",y+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!v.compositeRule&&X&&(y+=v.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),y+="} else { errors = "+Q+"; if (vErrors !== null) { if ("+Q+") vErrors.length = "+Q+"; else vErrors = null; }",v.opts.allErrors&&(y+=" } "),y}},9438:nt=>{"use strict";nt.exports=function(v,j,o){var Q,y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G=v.opts.$data&&L&&L.$data;G?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",Q="schema"+Z):Q=L;var ne=G?"(new RegExp("+Q+"))":v.usePattern(L);y+="if ( ",G&&(y+=" ("+Q+" !== undefined && typeof "+Q+" != 'string') || ");var re=re||[];re.push(y+=" !"+ne+".test("+z+") ) { "),y="",!1!==v.createErrors?(y+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { pattern: ",y+=G?""+Q:""+v.util.toQuotedString(L),y+=" } ",!1!==v.opts.messages&&(y+=" , message: 'should match pattern \"",y+=G?"' + "+Q+" + '":""+v.util.escapeQuotes(L),y+="\"' "),v.opts.verbose&&(y+=" , schema: ",y+=G?"validate.schema"+Y:""+v.util.toQuotedString(L),y+=" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var me=y;return y=re.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+me+"]); ":" validate.errors = ["+me+"]; return false; ":" var err = "+me+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+="} ",X&&(y+=" else { "),y}},6319:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="errs__"+Z,Q=v.util.copy(v),ne="";Q.level++;var re="valid"+Q.level,me="key"+Z,we="idx"+Z,Be=Q.dataLevel=v.dataLevel+1,Ie="data"+Be,Ne="dataProperties"+Z,Je=Object.keys(L||{}).filter(xt),He=v.schema.patternProperties||{},qe=Object.keys(He).filter(xt),$e=v.schema.additionalProperties,je=Je.length||qe.length,at=!1===$e,We="object"==typeof $e&&Object.keys($e).length,ve=v.opts.removeAdditional,he=at||We||ve,Qe=v.opts.ownProperties,Te=v.baseId,Le=v.schema.required;if(Le&&(!v.opts.$data||!Le.$data)&&Le.length8)y+=" || validate.schema"+Y+".hasOwnProperty("+me+") ";else{var Ut=Je;if(Ut)for(var fn=-1,jn=Ut.length-1;fn0||!1===Ti:v.util.schemaHasRules(Ti,v.RULES.all)){var Zt=v.util.getProperty(Pt),Mr=(gn=z+Zt,Yi&&void 0!==Ti.default);if(Q.schema=Ti,Q.schemaPath=Y+Zt,Q.errSchemaPath=V+"/"+v.util.escapeFragment(Pt),Q.errorPath=v.util.getPath(v.errorPath,Pt,v.opts.jsonPointers),Q.dataPathArr[Be]=v.util.toQuotedString(Pt),oi=v.validate(Q),Q.baseId=Te,v.util.varOccurences(oi,Ie)<2){oi=v.util.varReplace(oi,Ie,gn);var br=gn}else br=Ie,y+=" var "+Ie+" = "+gn+"; ";if(Mr)y+=" "+oi+" ";else{if(pt&&pt[Pt]){y+=" if ( "+br+" === undefined ",Qe&&(y+=" || ! Object.prototype.hasOwnProperty.call("+z+", '"+v.util.escapeQuotes(Pt)+"') "),y+=") { "+re+" = false; ",li=v.errorPath,Rt=V;var qt,Qr=v.util.escapeQuotes(Pt);v.opts._errorDataPathProperty&&(v.errorPath=v.util.getPath(li,Pt,v.opts.jsonPointers)),V=v.errSchemaPath+"/required",(qt=qt||[]).push(y),y="",!1!==v.createErrors?(y+=" { keyword: 'required' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { missingProperty: '"+Qr+"' } ",!1!==v.opts.messages&&(y+=" , message: '",y+=v.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+Qr+"\\'",y+="' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ",cn=y,y=qt.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+cn+"]); ":" validate.errors = ["+cn+"]; return false; ":" var err = "+cn+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",V=Rt,v.errorPath=li,y+=" } else { "}else X?(y+=" if ( "+br+" === undefined ",Qe&&(y+=" || ! Object.prototype.hasOwnProperty.call("+z+", '"+v.util.escapeQuotes(Pt)+"') "),y+=") { "+re+" = true; } else { "):(y+=" if ("+br+" !== undefined ",Qe&&(y+=" && Object.prototype.hasOwnProperty.call("+z+", '"+v.util.escapeQuotes(Pt)+"') "),y+=" ) { ");y+=" "+oi+" } "}}X&&(y+=" if ("+re+") { ",ne+="}")}}if(qe.length){var no=qe;if(no)for(var di,Fl=-1,as=no.length-1;Fl0||!1===Ti:v.util.schemaHasRules(Ti,v.RULES.all))&&(Q.schema=Ti,Q.schemaPath=v.schemaPath+".patternProperties"+v.util.getProperty(di),Q.errSchemaPath=v.errSchemaPath+"/patternProperties/"+v.util.escapeFragment(di),y+=Qe?" "+Ne+" = "+Ne+" || Object.keys("+z+"); for (var "+we+"=0; "+we+"<"+Ne+".length; "+we+"++) { var "+me+" = "+Ne+"["+we+"]; ":" for (var "+me+" in "+z+") { ",y+=" if ("+v.usePattern(di)+".test("+me+")) { ",Q.errorPath=v.util.getPathExpr(v.errorPath,me,v.opts.jsonPointers),gn=z+"["+me+"]",Q.dataPathArr[Be]=me,oi=v.validate(Q),Q.baseId=Te,v.util.varOccurences(oi,Ie)<2?y+=" "+v.util.varReplace(oi,Ie,gn)+" ":y+=" var "+Ie+" = "+gn+"; "+oi+" ",X&&(y+=" if (!"+re+") break; "),y+=" } ",X&&(y+=" else "+re+" = true; "),y+=" } ",X&&(y+=" if ("+re+") { ",ne+="}"))}return X&&(y+=" "+ne+" if ("+G+" == errors) {"),y}},6611:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="errs__"+Z,Q=v.util.copy(v);Q.level++;var re="valid"+Q.level;if(y+="var "+G+" = errors;",v.opts.strictKeywords?"object"==typeof L&&Object.keys(L).length>0||!1===L:v.util.schemaHasRules(L,v.RULES.all)){Q.schema=L,Q.schemaPath=Y,Q.errSchemaPath=V;var me="key"+Z,we="idx"+Z,Be="i"+Z,Ie="' + "+me+" + '",Je="data"+(Q.dataLevel=v.dataLevel+1),He="dataProperties"+Z,qe=v.opts.ownProperties,$e=v.baseId;qe&&(y+=" var "+He+" = undefined; "),y+=qe?" "+He+" = "+He+" || Object.keys("+z+"); for (var "+we+"=0; "+we+"<"+He+".length; "+we+"++) { var "+me+" = "+He+"["+we+"]; ":" for (var "+me+" in "+z+") { ",y+=" var startErrs"+Z+" = errors; ";var je=me,at=v.compositeRule;v.compositeRule=Q.compositeRule=!0;var We=v.validate(Q);Q.baseId=$e,v.util.varOccurences(We,Je)<2?y+=" "+v.util.varReplace(We,Je,je)+" ":y+=" var "+Je+" = "+je+"; "+We+" ",v.compositeRule=Q.compositeRule=at,y+=" if (!"+re+") { for (var "+Be+"=startErrs"+Z+"; "+Be+"{"use strict";nt.exports=function(v,j,o){var G,Q,y=" ",U=v.dataLevel,L=v.schema[j],Y=v.errSchemaPath+"/"+j,V=!v.opts.allErrors,X="data"+(U||""),z="valid"+v.level;if("#"==L||"#/"==L)v.isRoot?(G=v.async,Q="validate"):(G=!0===v.root.schema.$async,Q="root.refVal[0]");else{var ne=v.resolveRef(v.baseId,L,v.isRoot);if(void 0===ne){var re=v.MissingRefError.message(v.baseId,L);if("fail"==v.opts.missingRefs){v.logger.error(re),(me=me||[]).push(y),y="",!1!==v.createErrors?(y+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(Y)+" , params: { ref: '"+v.util.escapeQuotes(L)+"' } ",!1!==v.opts.messages&&(y+=" , message: 'can\\'t resolve reference "+v.util.escapeQuotes(L)+"' "),v.opts.verbose&&(y+=" , schema: "+v.util.toQuotedString(L)+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+X+" "),y+=" } "):y+=" {} ";var we=y;y=me.pop(),y+=!v.compositeRule&&V?v.async?" throw new ValidationError(["+we+"]); ":" validate.errors = ["+we+"]; return false; ":" var err = "+we+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",V&&(y+=" if (false) { ")}else{if("ignore"!=v.opts.missingRefs)throw new v.MissingRefError(v.baseId,L,re);v.logger.warn(re),V&&(y+=" if (true) { ")}}else if(ne.inline){var Be=v.util.copy(v);Be.level++;var Ie="valid"+Be.level;Be.schema=ne.schema,Be.schemaPath="",Be.errSchemaPath=L,y+=" "+v.validate(Be).replace(/validate\.schema/g,ne.code)+" ",V&&(y+=" if ("+Ie+") { ")}else G=!0===ne.$async||v.async&&!1!==ne.$async,Q=ne.code}if(Q){var me;(me=me||[]).push(y),y="",y+=v.opts.passContext?" "+Q+".call(this, ":" "+Q+"( ",y+=" "+X+", (dataPath || '')",'""'!=v.errorPath&&(y+=" + "+v.errorPath);var qe=y+=" , "+(U?"data"+(U-1||""):"parentData")+" , "+(U?v.dataPathArr[U]:"parentDataProperty")+", rootData) ";if(y=me.pop(),G){if(!v.async)throw new Error("async schema referenced by sync schema");V&&(y+=" var "+z+"; "),y+=" try { await "+qe+"; ",V&&(y+=" "+z+" = true; "),y+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",V&&(y+=" "+z+" = false; "),y+=" } ",V&&(y+=" if ("+z+") { ")}else y+=" if (!"+qe+") { if (vErrors === null) vErrors = "+Q+".errors; else vErrors = vErrors.concat("+Q+".errors); errors = vErrors.length; } ",V&&(y+=" else { ")}return y}},5051:nt=>{"use strict";nt.exports=function(v,j,o){var y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q=v.opts.$data&&L&&L.$data;Q&&(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ");var re="schema"+Z;if(!Q)if(L.length0||!1===Je:v.util.schemaHasRules(Je,v.RULES.all))||(me[me.length]=Be)}}else me=L;if(Q||me.length){var He=v.errorPath,qe=Q||me.length>=v.opts.loopRequired,$e=v.opts.ownProperties;if(X)if(y+=" var missing"+Z+"; ",qe){Q||(y+=" var "+re+" = validate.schema"+Y+"; ");var We="' + "+(at="schema"+Z+"["+(je="i"+Z)+"]")+" + '";v.opts._errorDataPathProperty&&(v.errorPath=v.util.getPathExpr(He,at,v.opts.jsonPointers)),y+=" var "+G+" = true; ",Q&&(y+=" if (schema"+Z+" === undefined) "+G+" = true; else if (!Array.isArray(schema"+Z+")) "+G+" = false; else {"),y+=" for (var "+je+" = 0; "+je+" < "+re+".length; "+je+"++) { "+G+" = "+z+"["+re+"["+je+"]] !== undefined ",$e&&(y+=" && Object.prototype.hasOwnProperty.call("+z+", "+re+"["+je+"]) "),y+="; if (!"+G+") break; } ",Q&&(y+=" } "),(ve=ve||[]).push(y+=" if (!"+G+") { "),y="",!1!==v.createErrors?(y+=" { keyword: 'required' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { missingProperty: '"+We+"' } ",!1!==v.opts.messages&&(y+=" , message: '",y+=v.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+We+"\\'",y+="' "),v.opts.verbose&&(y+=" , schema: validate.schema"+Y+" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var he=y;y=ve.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+he+"]); ":" validate.errors = ["+he+"]; return false; ":" var err = "+he+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" } else { "}else{y+=" if ( ";var ve,Qe=me;if(Qe)for(var je=-1,Le=Qe.length-1;je{"use strict";nt.exports=function(v,j,o){var ne,y=" ",Z=v.level,U=v.dataLevel,L=v.schema[j],Y=v.schemaPath+v.util.getProperty(j),V=v.errSchemaPath+"/"+j,X=!v.opts.allErrors,z="data"+(U||""),G="valid"+Z,Q=v.opts.$data&&L&&L.$data;if(Q?(y+=" var schema"+Z+" = "+v.util.getData(L.$data,U,v.dataPathArr)+"; ",ne="schema"+Z):ne=L,(L||Q)&&!1!==v.opts.uniqueItems){Q&&(y+=" var "+G+"; if ("+ne+" === false || "+ne+" === undefined) "+G+" = true; else if (typeof "+ne+" != 'boolean') "+G+" = false; else { "),y+=" var i = "+z+".length , "+G+" = true , j; if (i > 1) { ";var re=v.schema.items&&v.schema.items.type,me=Array.isArray(re);!re||"object"==re||"array"==re||me&&(re.indexOf("object")>=0||re.indexOf("array")>=0)?y+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+z+"[i], "+z+"[j])) { "+G+" = false; break outer; } } } ":(y+=" var itemIndices = {}, item; for (;i--;) { var item = "+z+"[i]; ",y+=" if ("+v.util["checkDataType"+(me?"s":"")](re,"item",v.opts.strictNumbers,!0)+") continue; ",me&&(y+=" if (typeof item == 'string') item = '\"' + item; "),y+=" if (typeof itemIndices[item] == 'number') { "+G+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "),y+=" } ",Q&&(y+=" } ");var Be=Be||[];Be.push(y+=" if (!"+G+") { "),y="",!1!==v.createErrors?(y+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(V)+" , params: { i: i, j: j } ",!1!==v.opts.messages&&(y+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),v.opts.verbose&&(y+=" , schema: ",y+=Q?"validate.schema"+Y:""+L,y+=" , parentSchema: validate.schema"+v.schemaPath+" , data: "+z+" "),y+=" } "):y+=" {} ";var Ie=y;y=Be.pop(),y+=!v.compositeRule&&X?v.async?" throw new ValidationError(["+Ie+"]); ":" validate.errors = ["+Ie+"]; return false; ":" var err = "+Ie+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",y+=" } ",X&&(y+=" else { ")}else X&&(y+=" if (true) { ");return y}},604:nt=>{"use strict";nt.exports=function(v,j,o){var y="",Z=!0===v.schema.$async,U=v.util.schemaHasRulesExcept(v.schema,v.RULES.all,"$ref"),L=v.self._getId(v.schema);if(v.opts.strictKeywords){var Y=v.util.schemaUnknownRules(v.schema,v.RULES.keywords);if(Y){var V="unknown keyword: "+Y;if("log"!==v.opts.strictKeywords)throw new Error(V);v.logger.warn(V)}}if(v.isTop&&(y+=" var validate = ",Z&&(v.async=!0,y+="async "),y+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",L&&(v.opts.sourceCode||v.opts.processCode)&&(y+=" /*# sourceURL="+L+" */ ")),"boolean"==typeof v.schema||!U&&!v.schema.$ref){var X=v.level,z=v.dataLevel,G=v.schema[j="false schema"],Q=v.schemaPath+v.util.getProperty(j),ne=v.errSchemaPath+"/"+j,Je=!v.opts.allErrors,re="data"+(z||""),Ne="valid"+X;if(!1===v.schema){v.isTop?Je=!0:y+=" var "+Ne+" = false; ",(me=me||[]).push(y),y="",!1!==v.createErrors?(y+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+v.errorPath+" , schemaPath: "+v.util.toQuotedString(ne)+" , params: {} ",!1!==v.opts.messages&&(y+=" , message: 'boolean schema is false' "),v.opts.verbose&&(y+=" , schema: false , parentSchema: validate.schema"+v.schemaPath+" , data: "+re+" "),y+=" } "):y+=" {} ";var we=y;y=me.pop(),y+=!v.compositeRule&&Je?v.async?" throw new ValidationError(["+we+"]); ":" validate.errors = ["+we+"]; return false; ":" var err = "+we+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else y+=v.isTop?Z?" return data; ":" validate.errors = null; return true; ":" var "+Ne+" = true; ";return v.isTop&&(y+=" }; return validate; "),y}if(v.isTop){var Be=v.isTop;if(X=v.level=0,z=v.dataLevel=0,re="data",v.rootId=v.resolve.fullPath(v.self._getId(v.root.schema)),v.baseId=v.baseId||v.rootId,delete v.isTop,v.dataPathArr=[""],void 0!==v.schema.default&&v.opts.useDefaults&&v.opts.strictDefaults){var Ie="default is ignored in the schema root";if("log"!==v.opts.strictDefaults)throw new Error(Ie);v.logger.warn(Ie)}y+=" var vErrors = null; ",y+=" var errors = 0; ",y+=" if (rootData === undefined) rootData = data; "}else{if(X=v.level,re="data"+((z=v.dataLevel)||""),L&&(v.baseId=v.resolve.url(v.baseId,L)),Z&&!v.async)throw new Error("async schema in sync schema");y+=" var errs_"+X+" = errors;"}Ne="valid"+X,Je=!v.opts.allErrors;var He="",qe="",je=v.schema.type,at=Array.isArray(je);if(je&&v.opts.nullable&&!0===v.schema.nullable&&(at?-1==je.indexOf("null")&&(je=je.concat("null")):"null"!=je&&(je=[je,"null"],at=!0)),at&&1==je.length&&(je=je[0],at=!1),v.schema.$ref&&U){if("fail"==v.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+v.errSchemaPath+'" (see option extendRefs)');!0!==v.opts.extendRefs&&(U=!1,v.logger.warn('$ref: keywords ignored in schema at path "'+v.errSchemaPath+'"'))}if(v.schema.$comment&&v.opts.$comment&&(y+=" "+v.RULES.all.$comment.code(v,"$comment")),je){if(v.opts.coerceTypes)var We=v.util.coerceToTypes(v.opts.coerceTypes,je);var ve=v.RULES.types[je];if(We||at||!0===ve||ve&&!Ti(ve)){if(Q=v.schemaPath+".type",ne=v.errSchemaPath+"/type",Q=v.schemaPath+".type",ne=v.errSchemaPath+"/type",y+=" if ("+v.util[at?"checkDataTypes":"checkDataType"](je,re,v.opts.strictNumbers,!0)+") { ",We){var Qe="dataType"+X,Te="coerced"+X;y+=" var "+Qe+" = typeof "+re+"; var "+Te+" = undefined; ","array"==v.opts.coerceTypes&&(y+=" if ("+Qe+" == 'object' && Array.isArray("+re+") && "+re+".length == 1) { "+re+" = "+re+"[0]; "+Qe+" = typeof "+re+"; if ("+v.util.checkDataType(v.schema.type,re,v.opts.strictNumbers)+") "+Te+" = "+re+"; } "),y+=" if ("+Te+" !== undefined) ; ";var Le=We;if(Le)for(var pt,xt=-1,Ut=Le.length-1;xt{"use strict";var j=/^[a-z_$][a-z0-9_$-]*$/i,o=v(5237),y=v(8606);nt.exports={add:function Z(V,X){var z=this.RULES;if(z.keywords[V])throw new Error("Keyword "+V+" is already defined");if(!j.test(V))throw new Error("Keyword "+V+" is not a valid identifier");if(X){this.validateKeyword(X,!0);var G=X.type;if(Array.isArray(G))for(var Q=0;Q{var Ee={utf8:{stringToBytes:function(v){return Ee.bin.stringToBytes(unescape(encodeURIComponent(v)))},bytesToString:function(v){return decodeURIComponent(escape(Ee.bin.bytesToString(v)))}},bin:{stringToBytes:function(v){for(var j=[],o=0;o{const j=v(4605),o={};for(const U of Object.keys(j))o[j[U]]=U;const y={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"]}};nt.exports=y;for(const U of Object.keys(y)){if(!("channels"in y[U]))throw new Error("missing channels property: "+U);if(!("labels"in y[U]))throw new Error("missing channel labels property: "+U);if(y[U].labels.length!==y[U].channels)throw new Error("channel and label counts mismatch: "+U);const{channels:L,labels:Y}=y[U];delete y[U].channels,delete y[U].labels,Object.defineProperty(y[U],"channels",{value:L}),Object.defineProperty(y[U],"labels",{value:Y})}function Z(U,L){return(U[0]-L[0])**2+(U[1]-L[1])**2+(U[2]-L[2])**2}y.rgb.hsl=function(U){const L=U[0]/255,Y=U[1]/255,V=U[2]/255,X=Math.min(L,Y,V),z=Math.max(L,Y,V),G=z-X;let Q,ne;z===X?Q=0:L===z?Q=(Y-V)/G:Y===z?Q=2+(V-L)/G:V===z&&(Q=4+(L-Y)/G),Q=Math.min(60*Q,360),Q<0&&(Q+=360);const re=(X+z)/2;return ne=z===X?0:re<=.5?G/(z+X):G/(2-z-X),[Q,100*ne,100*re]},y.rgb.hsv=function(U){let L,Y,V,X,z;const G=U[0]/255,Q=U[1]/255,ne=U[2]/255,re=Math.max(G,Q,ne),me=re-Math.min(G,Q,ne),we=function(Be){return(re-Be)/6/me+.5};return 0===me?(X=0,z=0):(z=me/re,L=we(G),Y=we(Q),V=we(ne),G===re?X=V-Y:Q===re?X=1/3+L-V:ne===re&&(X=2/3+Y-L),X<0?X+=1:X>1&&(X-=1)),[360*X,100*z,100*re]},y.rgb.hwb=function(U){const L=U[0],Y=U[1];let V=U[2];const X=y.rgb.hsl(U)[0],z=1/255*Math.min(L,Math.min(Y,V));return V=1-1/255*Math.max(L,Math.max(Y,V)),[X,100*z,100*V]},y.rgb.cmyk=function(U){const L=U[0]/255,Y=U[1]/255,V=U[2]/255,X=Math.min(1-L,1-Y,1-V);return[100*((1-L-X)/(1-X)||0),100*((1-Y-X)/(1-X)||0),100*((1-V-X)/(1-X)||0),100*X]},y.rgb.keyword=function(U){const L=o[U];if(L)return L;let V,Y=1/0;for(const X of Object.keys(j)){const G=Z(U,j[X]);G.04045?((L+.055)/1.055)**2.4:L/12.92,Y=Y>.04045?((Y+.055)/1.055)**2.4:Y/12.92,V=V>.04045?((V+.055)/1.055)**2.4:V/12.92,[100*(.4124*L+.3576*Y+.1805*V),100*(.2126*L+.7152*Y+.0722*V),100*(.0193*L+.1192*Y+.9505*V)]},y.rgb.lab=function(U){const L=y.rgb.xyz(U);let Y=L[0],V=L[1],X=L[2];return Y/=95.047,V/=100,X/=108.883,Y=Y>.008856?Y**(1/3):7.787*Y+16/116,V=V>.008856?V**(1/3):7.787*V+16/116,X=X>.008856?X**(1/3):7.787*X+16/116,[116*V-16,500*(Y-V),200*(V-X)]},y.hsl.rgb=function(U){const L=U[0]/360,Y=U[1]/100,V=U[2]/100;let X,z,G;if(0===Y)return G=255*V,[G,G,G];X=V<.5?V*(1+Y):V+Y-V*Y;const Q=2*V-X,ne=[0,0,0];for(let re=0;re<3;re++)z=L+1/3*-(re-1),z<0&&z++,z>1&&z--,G=6*z<1?Q+6*(X-Q)*z:2*z<1?X:3*z<2?Q+(X-Q)*(2/3-z)*6:Q,ne[re]=255*G;return ne},y.hsl.hsv=function(U){const L=U[0];let Y=U[1]/100,V=U[2]/100,X=Y;const z=Math.max(V,.01);return V*=2,Y*=V<=1?V:2-V,X*=z<=1?z:2-z,[L,100*(0===V?2*X/(z+X):2*Y/(V+Y)),(V+Y)/2*100]},y.hsv.rgb=function(U){const L=U[0]/60,Y=U[1]/100;let V=U[2]/100;const X=Math.floor(L)%6,z=L-Math.floor(L),G=255*V*(1-Y),Q=255*V*(1-Y*z),ne=255*V*(1-Y*(1-z));switch(V*=255,X){case 0:return[V,ne,G];case 1:return[Q,V,G];case 2:return[G,V,ne];case 3:return[G,Q,V];case 4:return[ne,G,V];case 5:return[V,G,Q]}},y.hsv.hsl=function(U){const L=U[0],Y=U[1]/100,V=U[2]/100,X=Math.max(V,.01);let z,G;G=(2-Y)*V;const Q=(2-Y)*X;return z=Y*X,z/=Q<=1?Q:2-Q,z=z||0,G/=2,[L,100*z,100*G]},y.hwb.rgb=function(U){const L=U[0]/360;let Y=U[1]/100,V=U[2]/100;const X=Y+V;let z;X>1&&(Y/=X,V/=X);const G=Math.floor(6*L),Q=1-V;z=6*L-G,1&G&&(z=1-z);const ne=Y+z*(Q-Y);let re,me,we;switch(G){default:case 6:case 0:re=Q,me=ne,we=Y;break;case 1:re=ne,me=Q,we=Y;break;case 2:re=Y,me=Q,we=ne;break;case 3:re=Y,me=ne,we=Q;break;case 4:re=ne,me=Y,we=Q;break;case 5:re=Q,me=Y,we=ne}return[255*re,255*me,255*we]},y.cmyk.rgb=function(U){const Y=U[1]/100,V=U[2]/100,X=U[3]/100;return[255*(1-Math.min(1,U[0]/100*(1-X)+X)),255*(1-Math.min(1,Y*(1-X)+X)),255*(1-Math.min(1,V*(1-X)+X))]},y.xyz.rgb=function(U){const L=U[0]/100,Y=U[1]/100,V=U[2]/100;let X,z,G;return X=3.2406*L+-1.5372*Y+-.4986*V,z=-.9689*L+1.8758*Y+.0415*V,G=.0557*L+-.204*Y+1.057*V,X=X>.0031308?1.055*X**(1/2.4)-.055:12.92*X,z=z>.0031308?1.055*z**(1/2.4)-.055:12.92*z,G=G>.0031308?1.055*G**(1/2.4)-.055:12.92*G,X=Math.min(Math.max(0,X),1),z=Math.min(Math.max(0,z),1),G=Math.min(Math.max(0,G),1),[255*X,255*z,255*G]},y.xyz.lab=function(U){let L=U[0],Y=U[1],V=U[2];return L/=95.047,Y/=100,V/=108.883,L=L>.008856?L**(1/3):7.787*L+16/116,Y=Y>.008856?Y**(1/3):7.787*Y+16/116,V=V>.008856?V**(1/3):7.787*V+16/116,[116*Y-16,500*(L-Y),200*(Y-V)]},y.lab.xyz=function(U){let X,z,G;z=(U[0]+16)/116,X=U[1]/500+z,G=z-U[2]/200;const Q=z**3,ne=X**3,re=G**3;return z=Q>.008856?Q:(z-16/116)/7.787,X=ne>.008856?ne:(X-16/116)/7.787,G=re>.008856?re:(G-16/116)/7.787,X*=95.047,z*=100,G*=108.883,[X,z,G]},y.lab.lch=function(U){const L=U[0],Y=U[1],V=U[2];let X;return X=360*Math.atan2(V,Y)/2/Math.PI,X<0&&(X+=360),[L,Math.sqrt(Y*Y+V*V),X]},y.lch.lab=function(U){const Y=U[1],X=U[2]/360*2*Math.PI;return[U[0],Y*Math.cos(X),Y*Math.sin(X)]},y.rgb.ansi16=function(U,L=null){const[Y,V,X]=U;let z=null===L?y.rgb.hsv(U)[2]:L;if(z=Math.round(z/50),0===z)return 30;let G=30+(Math.round(X/255)<<2|Math.round(V/255)<<1|Math.round(Y/255));return 2===z&&(G+=60),G},y.hsv.ansi16=function(U){return y.rgb.ansi16(y.hsv.rgb(U),U[2])},y.rgb.ansi256=function(U){const L=U[0],Y=U[1],V=U[2];return L===Y&&Y===V?L<8?16:L>248?231:Math.round((L-8)/247*24)+232:16+36*Math.round(L/255*5)+6*Math.round(Y/255*5)+Math.round(V/255*5)},y.ansi16.rgb=function(U){let L=U%10;if(0===L||7===L)return U>50&&(L+=3.5),L=L/10.5*255,[L,L,L];const Y=.5*(1+~~(U>50));return[(1&L)*Y*255,(L>>1&1)*Y*255,(L>>2&1)*Y*255]},y.ansi256.rgb=function(U){if(U>=232){const z=10*(U-232)+8;return[z,z,z]}let L;return U-=16,[Math.floor(U/36)/5*255,Math.floor((L=U%36)/6)/5*255,L%6/5*255]},y.rgb.hex=function(U){const Y=(((255&Math.round(U[0]))<<16)+((255&Math.round(U[1]))<<8)+(255&Math.round(U[2]))).toString(16).toUpperCase();return"000000".substring(Y.length)+Y},y.hex.rgb=function(U){const L=U.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!L)return[0,0,0];let Y=L[0];3===L[0].length&&(Y=Y.split("").map(Q=>Q+Q).join(""));const V=parseInt(Y,16);return[V>>16&255,V>>8&255,255&V]},y.rgb.hcg=function(U){const L=U[0]/255,Y=U[1]/255,V=U[2]/255,X=Math.max(Math.max(L,Y),V),z=Math.min(Math.min(L,Y),V),G=X-z;let Q,ne;return Q=G<1?z/(1-G):0,ne=G<=0?0:X===L?(Y-V)/G%6:X===Y?2+(V-L)/G:4+(L-Y)/G,ne/=6,ne%=1,[360*ne,100*G,100*Q]},y.hsl.hcg=function(U){const L=U[1]/100,Y=U[2]/100,V=Y<.5?2*L*Y:2*L*(1-Y);let X=0;return V<1&&(X=(Y-.5*V)/(1-V)),[U[0],100*V,100*X]},y.hsv.hcg=function(U){const Y=U[2]/100,V=U[1]/100*Y;let X=0;return V<1&&(X=(Y-V)/(1-V)),[U[0],100*V,100*X]},y.hcg.rgb=function(U){const Y=U[1]/100,V=U[2]/100;if(0===Y)return[255*V,255*V,255*V];const X=[0,0,0],z=U[0]/360%1*6,G=z%1,Q=1-G;let ne=0;switch(Math.floor(z)){case 0:X[0]=1,X[1]=G,X[2]=0;break;case 1:X[0]=Q,X[1]=1,X[2]=0;break;case 2:X[0]=0,X[1]=1,X[2]=G;break;case 3:X[0]=0,X[1]=Q,X[2]=1;break;case 4:X[0]=G,X[1]=0,X[2]=1;break;default:X[0]=1,X[1]=0,X[2]=Q}return ne=(1-Y)*V,[255*(Y*X[0]+ne),255*(Y*X[1]+ne),255*(Y*X[2]+ne)]},y.hcg.hsv=function(U){const L=U[1]/100,V=L+U[2]/100*(1-L);let X=0;return V>0&&(X=L/V),[U[0],100*X,100*V]},y.hcg.hsl=function(U){const L=U[1]/100,V=U[2]/100*(1-L)+.5*L;let X=0;return V>0&&V<.5?X=L/(2*V):V>=.5&&V<1&&(X=L/(2*(1-V))),[U[0],100*X,100*V]},y.hcg.hwb=function(U){const L=U[1]/100,V=L+U[2]/100*(1-L);return[U[0],100*(V-L),100*(1-V)]},y.hwb.hcg=function(U){const V=1-U[2]/100,X=V-U[1]/100;let z=0;return X<1&&(z=(V-X)/(1-X)),[U[0],100*X,100*z]},y.apple.rgb=function(U){return[U[0]/65535*255,U[1]/65535*255,U[2]/65535*255]},y.rgb.apple=function(U){return[U[0]/255*65535,U[1]/255*65535,U[2]/255*65535]},y.gray.rgb=function(U){return[U[0]/100*255,U[0]/100*255,U[0]/100*255]},y.gray.hsl=function(U){return[0,0,U[0]]},y.gray.hsv=y.gray.hsl,y.gray.hwb=function(U){return[0,100,U[0]]},y.gray.cmyk=function(U){return[0,0,0,U[0]]},y.gray.lab=function(U){return[U[0],0,0]},y.gray.hex=function(U){const L=255&Math.round(U[0]/100*255),V=((L<<16)+(L<<8)+L).toString(16).toUpperCase();return"000000".substring(V.length)+V},y.rgb.gray=function(U){return[(U[0]+U[1]+U[2])/3/255*100]}},3205:(nt,Ee,v)=>{const j=v(2348),o=v(8236),y={};Object.keys(j).forEach(Y=>{y[Y]={},Object.defineProperty(y[Y],"channels",{value:j[Y].channels}),Object.defineProperty(y[Y],"labels",{value:j[Y].labels});const V=o(Y);Object.keys(V).forEach(z=>{const G=V[z];y[Y][z]=function L(Y){const V=function(...X){const z=X[0];if(null==z)return z;z.length>1&&(X=z);const G=Y(X);if("object"==typeof G)for(let Q=G.length,ne=0;ne1&&(X=z),Y(X))};return"conversion"in Y&&(V.conversion=Y.conversion),V}(G)})}),nt.exports=y},8236:(nt,Ee,v)=>{const j=v(2348);function Z(L,Y){return function(V){return Y(L(V))}}function U(L,Y){const V=[Y[L].parent,L];let X=j[Y[L].parent][L],z=Y[L].parent;for(;Y[z].parent;)V.unshift(Y[z].parent),X=Z(j[Y[z].parent][z],X),z=Y[z].parent;return X.conversion=V,X}nt.exports=function(L){const Y=function y(L){const Y=function o(){const L={},Y=Object.keys(j);for(let V=Y.length,X=0;X{"use strict";nt.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:nt=>{var Ee,v;Ee="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",nt.exports=v={rotl:function(j,o){return j<>>32-o},rotr:function(j,o){return j<<32-o|j>>>o},endian:function(j){if(j.constructor==Number)return 16711935&v.rotl(j,8)|4278255360&v.rotl(j,24);for(var o=0;o0;j--)o.push(Math.floor(256*Math.random()));return o},bytesToWords:function(j){for(var o=[],y=0,Z=0;y>>5]|=j[y]<<24-Z%32;return o},wordsToBytes:function(j){for(var o=[],y=0;y<32*j.length;y+=8)o.push(j[y>>>5]>>>24-y%32&255);return o},bytesToHex:function(j){for(var o=[],y=0;y>>4).toString(16)),o.push((15&j[y]).toString(16));return o.join("")},hexToBytes:function(j){for(var o=[],y=0;y>>6*(3-U)&63):"=");return o.join("")},base64ToBytes:function(j){j=j.replace(/[^A-Z0-9+\/]/gi,"");for(var o=[],y=0,Z=0;y>>6-2*Z);return o}}},243:nt=>{"use strict";var Ee={single_source_shortest_paths:function(v,j,o){var y={},Z={};Z[j]=0;var L,Y,V,X,z,Q,U=Ee.PriorityQueue.make();for(U.push(j,0);!U.empty();)for(V in X=(L=U.pop()).cost,z=v[Y=L.value]||{})z.hasOwnProperty(V)&&(Q=X+z[V],(typeof Z[V]>"u"||Z[V]>Q)&&(Z[V]=Q,U.push(V,Q),y[V]=Y));if(typeof o<"u"&&typeof Z[o]>"u"){var me=["Could not find a path from ",j," to ",o,"."].join("");throw new Error(me)}return y},extract_shortest_path_from_predecessor_list:function(v,j){for(var o=[],y=j;y;)o.push(y),y=v[y];return o.reverse(),o},find_path:function(v,j,o){var y=Ee.single_source_shortest_paths(v,j,o);return Ee.extract_shortest_path_from_predecessor_list(y,o)},PriorityQueue:{make:function(v){var y,j=Ee.PriorityQueue,o={};for(y in v=v||{},j)j.hasOwnProperty(y)&&(o[y]=j[y]);return o.queue=[],o.sorter=v.sorter||j.default_sorter,o},default_sorter:function(v,j){return v.cost-j.cost},push:function(v,j){this.queue.push({value:v,cost:j}),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};nt.exports=Ee},362:nt=>{"use strict";nt.exports=function Ee(v,j){if(v===j)return!0;if(v&&j&&"object"==typeof v&&"object"==typeof j){if(v.constructor!==j.constructor)return!1;var o,y,Z;if(Array.isArray(v)){if((o=v.length)!=j.length)return!1;for(y=o;0!=y--;)if(!Ee(v[y],j[y]))return!1;return!0}if(v.constructor===RegExp)return v.source===j.source&&v.flags===j.flags;if(v.valueOf!==Object.prototype.valueOf)return v.valueOf()===j.valueOf();if(v.toString!==Object.prototype.toString)return v.toString()===j.toString();if((o=(Z=Object.keys(v)).length)!==Object.keys(j).length)return!1;for(y=o;0!=y--;)if(!Object.prototype.hasOwnProperty.call(j,Z[y]))return!1;for(y=o;0!=y--;){var U=Z[y];if(!Ee(v[U],j[U]))return!1}return!0}return v!=v&&j!=j}},8861:nt=>{"use strict";nt.exports=function(Ee,v){v||(v={}),"function"==typeof v&&(v={cmp:v});var j="boolean"==typeof v.cycles&&v.cycles,o=v.cmp&&function(Z){return function(U){return function(L,Y){return Z({key:L,value:U[L]},{key:Y,value:U[Y]})}}}(v.cmp),y=[];return function Z(U){if(U&&U.toJSON&&"function"==typeof U.toJSON&&(U=U.toJSON()),void 0!==U){if("number"==typeof U)return isFinite(U)?""+U:"null";if("object"!=typeof U)return JSON.stringify(U);var L,Y;if(Array.isArray(U)){for(Y="[",L=0;L0&&$[$.length-1])&&(6===Xe[0]||2===Xe[0])){S=0;continue}if(3===Xe[0]&&(!$||Xe[1]>$[0]&&Xe[1]<$[3])){S.label=Xe[1];break}if(6===Xe[0]&&S.label<$[1]){S.label=$[1],$=Xe;break}if($&&S.label<$[2]){S.label=$[2],S.ops.push(Xe);break}$[2]&&S.ops.pop(),S.trys.pop();continue}Xe=C.call(M,S)}catch(tt){Xe=[6,tt],N=0}finally{E=$=0}if(5&Xe[0])throw Xe[1];return{value:Xe[0]?Xe[1]:void 0,done:!0}}([Xe,tt])}}}function Z(M,C,S){if(S||2===arguments.length)for(var $,E=0,N=C.length;E=55296&&N<=56319&&S>10),se%1024+56320),(N+1===S||E.length>16384)&&($+=String.fromCharCode.apply(String,E),E.length=0)}return $},z="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",G=typeof Uint8Array>"u"?[]:new Uint8Array(256),Q=0;Q<64;Q++)G[z.charCodeAt(Q)]=Q;for(var ne="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",re=typeof Uint8Array>"u"?[]:new Uint8Array(256),me=0;me<64;me++)re[ne.charCodeAt(me)]=me;for(var Ut=function(M,C,S){return M.slice?M.slice(C,S):new Uint16Array(Array.prototype.slice.call(M,C,S))},jn=function(){function M(C,S,E,N,$,se){this.initialValue=C,this.errorValue=S,this.highStart=E,this.highValueIndex=N,this.index=$,this.data=se}return M.prototype.get=function(C){var S;if(C>=0){if(C<55296||C>56319&&C<=65535)return this.data[S=((S=this.index[C>>5])<<2)+(31&C)];if(C<=65535)return this.data[S=((S=this.index[2048+(C-55296>>5)])<<2)+(31&C)];if(C>11)],this.data[S=((S=this.index[S+=C>>5&63])<<2)+(31&C)];if(C<=1114111)return this.data[this.highValueIndex]}return this.errorValue},M}(),Qi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",di=typeof Uint8Array>"u"?[]:new Uint8Array(256),Di=0;Di<64;Di++)di[Qi.charCodeAt(Di)]=Di;var S,E,N,se,xe,fr=10,Ti=13,Mr=15,Qr=17,no=18,Fl=19,as=20,Li=21,Ii=22,Wo=24,Zr=25,ls=26,Ao=27,hc=28,et=30,It=32,ot=33,St=34,an=35,Jn=37,Hn=38,Xt=39,kn=40,ji=42,Jr=[9001,65288],Mi="\xd7",De=(S=function(M){var E,$,se,xe,ge,C=.75*M.length,S=M.length,N=0;"="===M[M.length-1]&&(C--,"="===M[M.length-2]&&C--);var Xe=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(C):new Array(C),tt=Array.isArray(Xe)?Xe:new Uint8Array(Xe);for(E=0;E>4,tt[N++]=(15&se)<<4|xe>>2,tt[N++]=(3&xe)<<6|63≥return Xe}("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=="),E=Array.isArray(S)?function(M){for(var C=M.length,S=[],E=0;E0;){var xe=E[--$];if(Array.isArray(M)?-1!==M.indexOf(xe):M===xe)for(var ge=S;ge<=E.length;){var se;if((se=E[++ge])===C)return!0;if(se!==fr)break}if(xe!==fr)break}return!1},mn=function(M,C){for(var S=M;S>=0;){var E=C[S];if(E!==fr)return E;S--}return 0},Wn=function(M,C,S,E,N){if(0===S[E])return Mi;var $=E-1;if(Array.isArray(N)&&!0===N[$])return Mi;var se=$-1,xe=$+1,ge=C[$],Xe=se>=0?C[se]:0,tt=C[xe];if(2===ge&&3===tt)return Mi;if(-1!==Ve.indexOf(ge))return"!";if(-1!==Ve.indexOf(tt)||-1!==dt.indexOf(tt))return Mi;if(8===mn($,C))return"\xf7";if(11===De.get(M[$])||(ge===It||ge===ot)&&11===De.get(M[xe])||7===ge||7===tt||9===ge||-1===[fr,Ti,Mr].indexOf(ge)&&9===tt||-1!==[Qr,no,Fl,Wo,hc].indexOf(tt)||mn($,C)===Ii||Ln(23,Ii,$,C)||Ln([Qr,no],Li,$,C)||Ln(12,12,$,C))return Mi;if(ge===fr)return"\xf7";if(23===ge||23===tt)return Mi;if(16===tt||16===ge)return"\xf7";if(-1!==[Ti,Mr,Li].indexOf(tt)||14===ge||36===Xe&&-1!==Gt.indexOf(ge)||ge===hc&&36===tt||tt===as||-1!==ue.indexOf(tt)&&ge===Zr||-1!==ue.indexOf(ge)&&tt===Zr||ge===Ao&&-1!==[Jn,It,ot].indexOf(tt)||-1!==[Jn,It,ot].indexOf(ge)&&tt===ls||-1!==ue.indexOf(ge)&&-1!==yt.indexOf(tt)||-1!==yt.indexOf(ge)&&-1!==ue.indexOf(tt)||-1!==[Ao,ls].indexOf(ge)&&(tt===Zr||-1!==[Ii,Mr].indexOf(tt)&&C[xe+1]===Zr)||-1!==[Ii,Mr].indexOf(ge)&&tt===Zr||ge===Zr&&-1!==[Zr,hc,Wo].indexOf(tt))return Mi;if(-1!==[Zr,hc,Wo,Qr,no].indexOf(tt))for(var mt=$;mt>=0;){if((bt=C[mt])===Zr)return Mi;if(-1===[hc,Wo].indexOf(bt))break;mt--}if(-1!==[Ao,ls].indexOf(tt))for(mt=-1!==[Qr,no].indexOf(ge)?se:$;mt>=0;){var bt;if((bt=C[mt])===Zr)return Mi;if(-1===[hc,Wo].indexOf(bt))break;mt--}if(Hn===ge&&-1!==[Hn,Xt,St,an].indexOf(tt)||-1!==[Xt,St].indexOf(ge)&&-1!==[Xt,kn].indexOf(tt)||-1!==[kn,an].indexOf(ge)&&tt===kn||-1!==Qt.indexOf(ge)&&-1!==[as,ls].indexOf(tt)||-1!==Qt.indexOf(tt)&&ge===Ao||-1!==ue.indexOf(ge)&&-1!==ue.indexOf(tt)||ge===Wo&&-1!==ue.indexOf(tt)||-1!==ue.concat(Zr).indexOf(ge)&&tt===Ii&&-1===Jr.indexOf(M[xe])||-1!==ue.concat(Zr).indexOf(tt)&&ge===no)return Mi;if(41===ge&&41===tt){for(var yn=S[$],An=1;yn>0&&41===C[--yn];)An++;if(An%2!=0)return Mi}return ge===It&&tt===ot?Mi:"\xf7"},Ar=function(M,C){C||(C={lineBreak:"normal",wordBreak:"normal"});var S=function(M,C){void 0===C&&(C="strict");var S=[],E=[],N=[];return M.forEach(function($,se){var xe=De.get($);if(xe>50?(N.push(!0),xe-=50):N.push(!1),-1!==["normal","auto","loose"].indexOf(C)&&-1!==[8208,8211,12316,12448].indexOf($))return E.push(se),S.push(16);if(4===xe||11===xe){if(0===se)return E.push(se),S.push(et);var ge=S[se-1];return-1===en.indexOf(ge)?(E.push(E[se-1]),S.push(ge)):(E.push(se),S.push(et))}return E.push(se),31===xe?S.push("strict"===C?Li:Jn):xe===ji||29===xe?S.push(et):43===xe?S.push($>=131072&&$<=196605||$>=196608&&$<=262141?Jn:et):void S.push(xe)}),[E,S,N]}(M,C.lineBreak),E=S[0],N=S[1],$=S[2];return("break-all"===C.wordBreak||"break-word"===C.wordBreak)&&(N=N.map(function(xe){return-1!==[Zr,et,ji].indexOf(xe)?Jn:xe})),[E,N,"keep-all"===C.wordBreak?$.map(function(xe,ge){return xe&&M[ge]>=19968&&M[ge]<=40959}):void 0]},Mn=function(){function M(C,S,E,N){this.codePoints=C,this.required="!"===S,this.start=E,this.end=N}return M.prototype.slice=function(){return X.apply(void 0,this.codePoints.slice(this.start,this.end))},M}(),Pn=function(M){return M>=48&&M<=57},va=function(M){return Pn(M)||M>=65&&M<=70||M>=97&&M<=102},fA=function(M){return 10===M||9===M||32===M},xf=function(M){return function(M){return function(M){return M>=97&&M<=122}(M)||function(M){return M>=65&&M<=90}(M)}(M)||function(M){return M>=128}(M)||95===M},Hx=function(M){return xf(M)||Pn(M)||45===M},w0=function(M){return M>=0&&M<=8||11===M||M>=14&&M<=31||127===M},Vd=function(M,C){return 92===M&&10!==C},ol=function(M,C,S){return 45===M?xf(C)||Vd(C,S):!!xf(M)||!(92!==M||!Vd(M,C))},Zu=function(M,C,S){return 43===M||45===M?!!Pn(C)||46===C&&Pn(S):Pn(46===M?C:M)},ya=function(M){var C=0,S=1;(43===M[C]||45===M[C])&&(45===M[C]&&(S=-1),C++);for(var E=[];Pn(M[C]);)E.push(M[C++]);var N=E.length?parseInt(X.apply(void 0,E),10):0;46===M[C]&&C++;for(var $=[];Pn(M[C]);)$.push(M[C++]);var se=$.length,xe=se?parseInt(X.apply(void 0,$),10):0;(69===M[C]||101===M[C])&&C++;var ge=1;(43===M[C]||45===M[C])&&(45===M[C]&&(ge=-1),C++);for(var Xe=[];Pn(M[C]);)Xe.push(M[C++]);var tt=Xe.length?parseInt(X.apply(void 0,Xe),10):0;return S*(N+xe*Math.pow(10,-se))*Math.pow(10,ge*tt)},Ac={type:2},Qx={type:3},Cf={type:4},pA={type:13},x0={type:8},AA={type:21},C0={type:9},FP={type:10},wa={type:11},M0={type:12},Mf={type:14},vv={type:23},yv={type:1},Dl={type:25},Ir={type:24},mc={type:26},zx={type:27},E0={type:28},mA={type:29},gA={type:31},gc={type:32},Wc=function(){function M(){this._value=[]}return M.prototype.write=function(C){this._value=this._value.concat(V(C))},M.prototype.read=function(){for(var C=[],S=this.consumeToken();S!==gc;)C.push(S),S=this.consumeToken();return C},M.prototype.consumeToken=function(){var C=this.consumeCodePoint();switch(C){case 34:return this.consumeStringToken(34);case 35:var S=this.peekCodePoint(0),E=this.peekCodePoint(1),N=this.peekCodePoint(2);if(Hx(S)||Vd(E,N)){var $=ol(S,E,N)?2:1;return{type:5,value:this.consumeName(),flags:$}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),pA;break;case 39:return this.consumeStringToken(39);case 40:return Ac;case 41:return Qx;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Mf;break;case 43:if(Zu(C,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(C),this.consumeNumericToken();break;case 44:return Cf;case 45:var xe=C,ge=this.peekCodePoint(0),Xe=this.peekCodePoint(1);if(Zu(xe,ge,Xe))return this.reconsumeCodePoint(C),this.consumeNumericToken();if(ol(xe,ge,Xe))return this.reconsumeCodePoint(C),this.consumeIdentLikeToken();if(45===ge&&62===Xe)return this.consumeCodePoint(),this.consumeCodePoint(),Ir;break;case 46:if(Zu(C,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(C),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var tt=this.consumeCodePoint();if(42===tt&&47===(tt=this.consumeCodePoint()))return this.consumeToken();if(-1===tt)return this.consumeToken()}break;case 58:return mc;case 59:return zx;case 60:if(33===this.peekCodePoint(0)&&45===this.peekCodePoint(1)&&45===this.peekCodePoint(2))return this.consumeCodePoint(),this.consumeCodePoint(),Dl;break;case 64:var mt=this.peekCodePoint(0),bt=this.peekCodePoint(1),yn=this.peekCodePoint(2);if(ol(mt,bt,yn))return{type:7,value:this.consumeName()};break;case 91:return E0;case 92:if(Vd(C,this.peekCodePoint(0)))return this.reconsumeCodePoint(C),this.consumeIdentLikeToken();break;case 93:return mA;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),x0;break;case 123:return wa;case 125:return M0;case 117:case 85:var An=this.peekCodePoint(0),Sn=this.peekCodePoint(1);return 43===An&&(va(Sn)||63===Sn)&&(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(C),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),C0;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),AA;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),FP;break;case-1:return gc}return fA(C)?(this.consumeWhiteSpace(),gA):Pn(C)?(this.reconsumeCodePoint(C),this.consumeNumericToken()):xf(C)?(this.reconsumeCodePoint(C),this.consumeIdentLikeToken()):{type:6,value:X(C)}},M.prototype.consumeCodePoint=function(){var C=this._value.shift();return typeof C>"u"?-1:C},M.prototype.reconsumeCodePoint=function(C){this._value.unshift(C)},M.prototype.peekCodePoint=function(C){return C>=this._value.length?-1:this._value[C]},M.prototype.consumeUnicodeRangeToken=function(){for(var C=[],S=this.consumeCodePoint();va(S)&&C.length<6;)C.push(S),S=this.consumeCodePoint();for(var E=!1;63===S&&C.length<6;)C.push(S),S=this.consumeCodePoint(),E=!0;if(E)return{type:30,start:parseInt(X.apply(void 0,C.map(function(ge){return 63===ge?48:ge})),16),end:parseInt(X.apply(void 0,C.map(function(ge){return 63===ge?70:ge})),16)};var se=parseInt(X.apply(void 0,C),16);if(45===this.peekCodePoint(0)&&va(this.peekCodePoint(1))){this.consumeCodePoint(),S=this.consumeCodePoint();for(var xe=[];va(S)&&xe.length<6;)xe.push(S),S=this.consumeCodePoint();return{type:30,start:se,end:parseInt(X.apply(void 0,xe),16)}}return{type:30,start:se,end:se}},M.prototype.consumeIdentLikeToken=function(){var C=this.consumeName();return"url"===C.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:C}):{type:20,value:C}},M.prototype.consumeUrlToken=function(){var C=[];if(this.consumeWhiteSpace(),-1===this.peekCodePoint(0))return{type:22,value:""};var S=this.peekCodePoint(0);if(39===S||34===S){var E=this.consumeStringToken(this.consumeCodePoint());return 0===E.type&&(this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:E.value}):(this.consumeBadUrlRemnants(),vv)}for(;;){var N=this.consumeCodePoint();if(-1===N||41===N)return{type:22,value:X.apply(void 0,C)};if(fA(N))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:X.apply(void 0,C)}):(this.consumeBadUrlRemnants(),vv);if(34===N||39===N||40===N||w0(N))return this.consumeBadUrlRemnants(),vv;if(92===N){if(!Vd(N,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),vv;C.push(this.consumeEscapedCodePoint())}else C.push(N)}},M.prototype.consumeWhiteSpace=function(){for(;fA(this.peekCodePoint(0));)this.consumeCodePoint()},M.prototype.consumeBadUrlRemnants=function(){for(;;){var C=this.consumeCodePoint();if(41===C||-1===C)return;Vd(C,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},M.prototype.consumeStringSlice=function(C){for(var E="";C>0;){var N=Math.min(5e4,C);E+=X.apply(void 0,this._value.splice(0,N)),C-=N}return this._value.shift(),E},M.prototype.consumeStringToken=function(C){for(var S="",E=0;;){var N=this._value[E];if(-1===N||void 0===N||N===C)return{type:0,value:S+=this.consumeStringSlice(E)};if(10===N)return this._value.splice(0,E),yv;if(92===N){var $=this._value[E+1];-1!==$&&void 0!==$&&(10===$?(S+=this.consumeStringSlice(E),E=-1,this._value.shift()):Vd(N,$)&&(S+=this.consumeStringSlice(E),S+=X(this.consumeEscapedCodePoint()),E=-1))}E++}},M.prototype.consumeNumber=function(){var C=[],S=4,E=this.peekCodePoint(0);for((43===E||45===E)&&C.push(this.consumeCodePoint());Pn(this.peekCodePoint(0));)C.push(this.consumeCodePoint());E=this.peekCodePoint(0);var N=this.peekCodePoint(1);if(46===E&&Pn(N))for(C.push(this.consumeCodePoint(),this.consumeCodePoint()),S=8;Pn(this.peekCodePoint(0));)C.push(this.consumeCodePoint());E=this.peekCodePoint(0),N=this.peekCodePoint(1);var $=this.peekCodePoint(2);if((69===E||101===E)&&((43===N||45===N)&&Pn($)||Pn(N)))for(C.push(this.consumeCodePoint(),this.consumeCodePoint()),S=8;Pn(this.peekCodePoint(0));)C.push(this.consumeCodePoint());return[ya(C),S]},M.prototype.consumeNumericToken=function(){var C=this.consumeNumber(),S=C[0],E=C[1],N=this.peekCodePoint(0),$=this.peekCodePoint(1),se=this.peekCodePoint(2);return ol(N,$,se)?{type:15,number:S,flags:E,unit:this.consumeName()}:37===N?(this.consumeCodePoint(),{type:16,number:S,flags:E}):{type:17,number:S,flags:E}},M.prototype.consumeEscapedCodePoint=function(){var C=this.consumeCodePoint();if(va(C)){for(var S=X(C);va(this.peekCodePoint(0))&&S.length<6;)S+=X(this.consumeCodePoint());fA(this.peekCodePoint(0))&&this.consumeCodePoint();var E=parseInt(S,16);return 0===E||function(M){return M>=55296&&M<=57343}(E)||E>1114111?65533:E}return-1===C?65533:C},M.prototype.consumeName=function(){for(var C="";;){var S=this.consumeCodePoint();if(Hx(S))C+=X(S);else{if(!Vd(S,this.peekCodePoint(0)))return this.reconsumeCodePoint(S),C;C+=X(this.consumeEscapedCodePoint())}}},M}(),wv=function(){function M(C){this._tokens=C}return M.create=function(C){var S=new Wc;return S.write(C),new M(S.read())},M.parseValue=function(C){return M.create(C).parseComponentValue()},M.parseValues=function(C){return M.create(C).parseComponentValues()},M.prototype.parseComponentValue=function(){for(var C=this.consumeToken();31===C.type;)C=this.consumeToken();if(32===C.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(C);var S=this.consumeComponentValue();do{C=this.consumeToken()}while(31===C.type);if(32===C.type)return S;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},M.prototype.parseComponentValues=function(){for(var C=[];;){var S=this.consumeComponentValue();if(32===S.type)return C;C.push(S),C.push()}},M.prototype.consumeComponentValue=function(){var C=this.consumeToken();switch(C.type){case 11:case 28:case 2:return this.consumeSimpleBlock(C.type);case 19:return this.consumeFunction(C)}return C},M.prototype.consumeSimpleBlock=function(C){for(var S={type:C,values:[]},E=this.consumeToken();;){if(32===E.type||xv(E,C))return S;this.reconsumeToken(E),S.values.push(this.consumeComponentValue()),E=this.consumeToken()}},M.prototype.consumeFunction=function(C){for(var S={name:C.value,values:[],type:18};;){var E=this.consumeToken();if(32===E.type||3===E.type)return S;this.reconsumeToken(E),S.values.push(this.consumeComponentValue())}},M.prototype.consumeToken=function(){var C=this._tokens.shift();return typeof C>"u"?gc:C},M.prototype.reconsumeToken=function(C){this._tokens.unshift(C)},M}(),Hd=function(M){return 15===M.type},Qd=function(M){return 17===M.type},Wr=function(M){return 20===M.type},_A=function(M){return 0===M.type},bA=function(M,C){return Wr(M)&&M.value===C},S0=function(M){return 31!==M.type},Ju=function(M){return 31!==M.type&&4!==M.type},sl=function(M){var C=[],S=[];return M.forEach(function(E){if(4===E.type){if(0===S.length)throw new Error("Error parsing function args, zero tokens for arg");return C.push(S),void(S=[])}31!==E.type&&S.push(E)}),S.length&&C.push(S),C},xv=function(M,C){return 11===C&&12===M.type||28===C&&29===M.type||2===C&&3===M.type},Xc=function(M){return 17===M.type||15===M.type},yi=function(M){return 16===M.type||Xc(M)},Gx=function(M){return M.length>1?[M[0],M[1]]:[M[0]]},ys={type:17,number:0,flags:4},Cv={type:16,number:50,flags:4},zd={type:16,number:100,flags:4},vA=function(M,C,S){var E=M[0],N=M[1];return[go(E,C),go(typeof N<"u"?N:E,S)]},go=function(M,C){if(16===M.type)return M.number/100*C;if(Hd(M))switch(M.unit){case"rem":case"em":return 16*M.number;default:return M.number}return M.number},yA_parse=function(M,C){if(15===C.type)switch(C.unit){case"deg":return Math.PI*C.number/180;case"grad":return Math.PI/200*C.number;case"rad":return C.number;case"turn":return 2*Math.PI*C.number}throw new Error("Unsupported angle type")},T0=function(M){return 15===M.type&&("deg"===M.unit||"grad"===M.unit||"rad"===M.unit||"turn"===M.unit)},Sv=function(M){switch(M.filter(Wr).map(function(S){return S.value}).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[ys,ys];case"to top":case"bottom":return oa(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[ys,zd];case"to right":case"left":return oa(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[zd,zd];case"to bottom":case"top":return oa(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[zd,ys];case"to left":case"right":return oa(270)}return 0},oa=function(M){return Math.PI*M/180},al_parse=function(M,C){if(18===C.type){var S=qx[C.name];if(typeof S>"u")throw new Error('Attempting to parse an unsupported color function "'+C.name+'"');return S(M,C.values)}if(5===C.type){if(3===C.value.length){var E=C.value.substring(0,1),N=C.value.substring(1,2),$=C.value.substring(2,3);return $i(parseInt(E+E,16),parseInt(N+N,16),parseInt($+$,16),1)}if(4===C.value.length){E=C.value.substring(0,1),N=C.value.substring(1,2),$=C.value.substring(2,3);var se=C.value.substring(3,4);return $i(parseInt(E+E,16),parseInt(N+N,16),parseInt($+$,16),parseInt(se+se,16)/255)}if(6===C.value.length)return E=C.value.substring(0,2),N=C.value.substring(2,4),$=C.value.substring(4,6),$i(parseInt(E,16),parseInt(N,16),parseInt($,16),1);if(8===C.value.length)return E=C.value.substring(0,2),N=C.value.substring(2,4),$=C.value.substring(4,6),se=C.value.substring(6,8),$i(parseInt(E,16),parseInt(N,16),parseInt($,16),parseInt(se,16)/255)}if(20===C.type){var xe=Ca[C.value.toUpperCase()];if(typeof xe<"u")return xe}return Ca.TRANSPARENT},xa=function(M){return!(255&M)},us=function(M){var C=255&M,S=255&M>>8,E=255&M>>16,N=255&M>>24;return C<255?"rgba("+N+","+E+","+S+","+C/255+")":"rgb("+N+","+E+","+S+")"},$i=function(M,C,S,E){return(M<<24|C<<16|S<<8|Math.round(255*E))>>>0},Uo=function(M,C){if(17===M.type)return M.number;if(16===M.type){var S=3===C?1:255;return 3===C?M.number/100*S:Math.round(M.number/100*S)}return 0},Ko=function(M,C){var S=C.filter(Ju);if(3===S.length){var E=S.map(Uo);return $i(E[0],E[1],E[2],1)}if(4===S.length){var xe=S.map(Uo);return $i(xe[0],xe[1],xe[2],xe[3])}return 0};function Kc(M,C,S){return S<0&&(S+=1),S>=1&&(S-=1),S<1/6?(C-M)*S*6+M:S<.5?C:S<2/3?6*(C-M)*(2/3-S)+M:M}var Ps=function(M,C){var S=C.filter(Ju),E=S[0],N=S[1],$=S[2],se=S[3],xe=(17===E.type?oa(E.number):yA_parse(M,E))/(2*Math.PI),ge=yi(N)?N.number/100:0,Xe=yi($)?$.number/100:0,tt=typeof se<"u"&&yi(se)?go(se,1):1;if(0===ge)return $i(255*Xe,255*Xe,255*Xe,1);var mt=Xe<=.5?Xe*(ge+1):Xe+ge-Xe*ge,bt=2*Xe-mt,yn=Kc(bt,mt,xe+1/3),An=Kc(bt,mt,xe),Sn=Kc(bt,mt,xe-1/3);return $i(255*yn,255*An,255*Sn,tt)},qx={hsl:Ps,hsla:Ps,rgb:Ko,rgba:Ko},Yc=function(M,C){return al_parse(M,wv.create(C).parseComponentValue())},Ca={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},Tv={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(M,C){return C.map(function(S){if(Wr(S))switch(S.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},Wx={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},_c=function(M,C){var S=al_parse(M,C[0]),E=C[1];return E&&yi(E)?{color:S,stop:E}:{color:S,stop:null}},Gd=function(M,C){var S=M[0],E=M[M.length-1];null===S.stop&&(S.stop=ys),null===E.stop&&(E.stop=zd);for(var N=[],$=0,se=0;se$?ge:$),$=ge}else N.push(null)}var Xe=null;for(se=0;sese.optimumDistance)?{optimumCorner:xe,optimumDistance:tt}:se},{optimumDistance:N?1/0:-1/0,optimumCorner:null}).optimumCorner},Ef=function(M,C){var S=oa(180),E=[];return sl(C).forEach(function(N,$){if(0===$){var se=N[0];if(20===se.type&&-1!==["top","left","right","bottom"].indexOf(se.value))return void(S=Sv(N));if(T0(se))return void(S=(yA_parse(M,se)+oa(270))%oa(360))}var xe=_c(M,N);E.push(xe)}),{angle:S,stops:E,type:1}},I0="closest-side",Zc="farthest-side",Dv="closest-corner",F0="farthest-corner",Yx="ellipse",Tf="contain",Jc=function(M,C){var S=0,E=3,N=[],$=[];return sl(C).forEach(function(se,xe){var ge=!0;if(0===xe?ge=se.reduce(function(tt,mt){if(Wr(mt))switch(mt.value){case"center":return $.push(Cv),!1;case"top":case"left":return $.push(ys),!1;case"right":case"bottom":return $.push(zd),!1}else if(yi(mt)||Xc(mt))return $.push(mt),!1;return tt},ge):1===xe&&(ge=se.reduce(function(tt,mt){if(Wr(mt))switch(mt.value){case"circle":return S=0,!1;case Yx:return S=1,!1;case Tf:case I0:return E=0,!1;case Zc:return E=1,!1;case Dv:return E=2,!1;case"cover":case F0:return E=3,!1}else if(Xc(mt)||yi(mt))return Array.isArray(E)||(E=[]),E.push(mt),!1;return tt},ge)),ge){var Xe=_c(M,se);N.push(Xe)}}),{size:E,shape:S,stops:N,position:$,type:2}},kv_parse=function(M,C){if(22===C.type){var S={url:C.value,type:0};return M.cache.addImage(C.value),S}if(18===C.type){var E=eh[C.name];if(typeof E>"u")throw new Error('Attempting to parse an unsupported image function "'+C.name+'"');return E(M,C.values)}throw new Error("Unsupported image type "+C.type)};for(var eh={"linear-gradient":function(M,C){var S=oa(180),E=[];return sl(C).forEach(function(N,$){if(0===$){var se=N[0];if(20===se.type&&"to"===se.value)return void(S=Sv(N));if(T0(se))return void(S=yA_parse(M,se))}var xe=_c(M,N);E.push(xe)}),{angle:S,stops:E,type:1}},"-moz-linear-gradient":Ef,"-ms-linear-gradient":Ef,"-o-linear-gradient":Ef,"-webkit-linear-gradient":Ef,"radial-gradient":function(M,C){var S=0,E=3,N=[],$=[];return sl(C).forEach(function(se,xe){var ge=!0;if(0===xe){var Xe=!1;ge=se.reduce(function(mt,bt){if(Xe)if(Wr(bt))switch(bt.value){case"center":return $.push(Cv),mt;case"top":case"left":return $.push(ys),mt;case"right":case"bottom":return $.push(zd),mt}else(yi(bt)||Xc(bt))&&$.push(bt);else if(Wr(bt))switch(bt.value){case"circle":return S=0,!1;case Yx:return S=1,!1;case"at":return Xe=!0,!1;case I0:return E=0,!1;case"cover":case Zc:return E=1,!1;case Tf:case Dv:return E=2,!1;case F0:return E=3,!1}else if(Xc(bt)||yi(bt))return Array.isArray(E)||(E=[]),E.push(bt),!1;return mt},ge)}if(ge){var tt=_c(M,se);N.push(tt)}}),{size:E,shape:S,stops:N,position:$,type:2}},"-moz-radial-gradient":Jc,"-ms-radial-gradient":Jc,"-o-radial-gradient":Jc,"-webkit-radial-gradient":Jc,"-webkit-gradient":function(M,C){var S=oa(180),E=[],N=1;return sl(C).forEach(function(ge,Xe){var tt=ge[0];if(0===Xe){if(Wr(tt)&&"linear"===tt.value)return void(N=1);if(Wr(tt)&&"radial"===tt.value)return void(N=2)}if(18===tt.type)if("from"===tt.name){var mt=al_parse(M,tt.values[0]);E.push({stop:ys,color:mt})}else if("to"===tt.name)mt=al_parse(M,tt.values[0]),E.push({stop:zd,color:mt});else if("color-stop"===tt.name){var bt=tt.values.filter(Ju);if(2===bt.length){mt=al_parse(M,bt[1]);var yn=bt[0];Qd(yn)&&E.push({stop:{type:16,number:100*yn.number,flags:yn.flags},color:mt})}}}),1===N?{angle:(S+oa(180))%oa(360),stops:E,type:N}:{size:3,shape:0,stops:E,position:[],type:N}}},tT={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(M,C){if(0===C.length)return[];var S=C[0];return 20===S.type&&"none"===S.value?[]:C.filter(function(E){return Ju(E)&&function Zx(M){return!(20===M.type&&"none"===M.value||18===M.type&&!eh[M.name])}(E)}).map(function(E){return kv_parse(M,E)})}},nT={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(M,C){return C.map(function(S){if(Wr(S))switch(S.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},iT={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(M,C){return sl(C).map(function(S){return S.filter(yi)}).map(Gx)}},Rv={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(M,C){return sl(C).map(function(S){return S.filter(Wr).map(function(E){return E.value}).join(" ")}).map(D0)}},D0=function(M){switch(M){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}},If=function(M){return M.AUTO="auto",M.CONTAIN="contain",M.COVER="cover",M}(If||{}),Ff={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(M,C){return sl(C).map(function(S){return S.filter(bc)})}},bc=function(M){return Wr(M)||yi(M)},B0=function(M){return{name:"border-"+M+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},rT=B0("top"),Yo=B0("right"),xA=B0("bottom"),Df=B0("left"),ed=function(M){return{name:"border-radius-"+M,initialValue:"0 0",prefix:!1,type:1,parse:function(C,S){return Gx(S.filter(yi))}}},Jx=ed("top-left"),eC=ed("top-right"),tC=ed("bottom-right"),k0=ed("bottom-left"),Bf=function(M){return{name:"border-"+M+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(C,S){switch(S){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},Pv=Bf("top"),kf=Bf("right"),Rf=Bf("bottom"),ro=Bf("left"),Jt=function(M){return{name:"border-"+M+"-width",initialValue:"0",type:0,prefix:!1,parse:function(C,S){return Hd(S)?S.number:0}}},wi=Jt("top"),$o=Jt("right"),cl=Jt("bottom"),ws=Jt("left"),$s={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},th={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(M,C){return"rtl"===C?1:0}},oo={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(M,C){return C.filter(Wr).reduce(function(S,E){return S|Vo(E.value)},0)}},Vo=function(M){switch(M){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},Va={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(M,C){switch(C){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Oi={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(M,C){return 20===C.type&&"normal"===C.value?0:17===C.type||15===C.type?C.number:0}},jd=function(M){return M.NORMAL="normal",M.STRICT="strict",M}(jd||{}),nC={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(M,C){return"strict"===C?jd.STRICT:jd.NORMAL}},$d={name:"line-height",initialValue:"normal",prefix:!1,type:4},_o=function(M,C){return Wr(M)&&"normal"===M.value?1.2*C:17===M.type?C*M.number:yi(M)?go(M,C):C},vc={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(M,C){return 20===C.type&&"none"===C.value?null:kv_parse(M,C)}},qd={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(M,C){return"inside"===C?0:1}},dl={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(M,C){switch(C){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}}},Bl=function(M){return{name:"margin-"+M,initialValue:"0",prefix:!1,type:4}},Ov=Bl("top"),td=Bl("right"),CA=Bl("bottom"),Ha=Bl("left"),ui={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(M,C){return C.filter(Wr).map(function(S){switch(S.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}})}},MA={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(M,C){return"break-word"===C?"break-word":"normal"}},Wd=function(M){return{name:"padding-"+M,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},kl=Wd("top"),EA=Wd("right"),nh=Wd("bottom"),Ho=Wd("left"),R0={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(M,C){switch(C){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},hs={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(M,C){switch(C){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},Os={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(M,C){return 1===C.length&&bA(C[0],"none")?[]:sl(C).map(function(S){for(var E={color:Ca.TRANSPARENT,offsetX:ys,offsetY:ys,blur:ys},N=0,$=0;$"u")throw new Error('Attempting to parse an unsupported transform function "'+C.name+'"');return S(C.values)}return null}},SA={matrix:function(M){var C=M.filter(function(S){return 17===S.type}).map(function(S){return S.number});return 6===C.length?C:null},matrix3d:function(M){var C=M.filter(function(ge){return 17===ge.type}).map(function(ge){return ge.number});return 16===C.length?[C[0],C[1],C[4],C[5],C[12],C[13]]:null}},TA={type:16,number:50,flags:4},iC=[TA,TA],N0={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:1,parse:function(M,C){var S=C.filter(yi);return 2!==S.length?iC:[S[0],S[1]]}},L0={name:"visible",initialValue:"none",prefix:!1,type:2,parse:function(M,C){switch(C){case"hidden":return 1;case"collapse":return 2;default:return 0}}},U0=function(M){return M.NORMAL="normal",M.BREAK_ALL="break-all",M.KEEP_ALL="keep-all",M}(U0||{}),Nv={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:function(M,C){switch(C){case"break-all":return U0.BREAK_ALL;case"keep-all":return U0.KEEP_ALL;default:return U0.NORMAL}}},DP={name:"z-index",initialValue:"auto",prefix:!1,type:0,parse:function(M,C){if(20===C.type)return{auto:!0,order:0};if(Qd(C))return{auto:!1,order:C.number};throw new Error("Invalid z-index number parsed")}},rC={name:"time",parse:function(M,C){if(15===C.type)switch(C.unit.toLowerCase()){case"s":return 1e3*C.number;case"ms":return C.number}throw new Error("Unsupported time type")}},BP={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:function(M,C){return Qd(C)?C.number:1}},kP={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},RP={name:"text-decoration-line",initialValue:"none",prefix:!1,type:1,parse:function(M,C){return C.filter(Wr).map(function(S){switch(S.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0}).filter(function(S){return 0!==S})}},PP={name:"font-family",initialValue:"",prefix:!1,type:1,parse:function(M,C){var S=[],E=[];return C.forEach(function(N){switch(N.type){case 20:case 0:S.push(N.value);break;case 17:S.push(N.number.toString());break;case 4:E.push(S.join(" ")),S.length=0}}),S.length&&E.push(S.join(" ")),E.map(function(N){return-1===N.indexOf(" ")?N:"'"+N+"'"})}},OP={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},NP={name:"font-weight",initialValue:"normal",type:0,prefix:!1,parse:function(M,C){return Qd(C)?C.number:Wr(C)&&"bold"===C.value?700:400}},LP={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:function(M,C){return C.filter(Wr).map(function(S){return S.value})}},UP={name:"font-style",initialValue:"normal",prefix:!1,type:2,parse:function(M,C){switch(C){case"oblique":return"oblique";case"italic":return"italic";default:return"normal"}}},Co=function(M,C){return!!(M&C)},V0={name:"content",initialValue:"none",type:1,prefix:!1,parse:function(M,C){if(0===C.length)return[];var S=C[0];return 20===S.type&&"none"===S.value?[]:C}},oC={name:"counter-increment",initialValue:"none",prefix:!0,type:1,parse:function(M,C){if(0===C.length)return null;var S=C[0];if(20===S.type&&"none"===S.value)return null;for(var E=[],N=C.filter(S0),$=0;$1?1:0],this.overflowWrap=un(C,MA,S.overflowWrap),this.paddingTop=un(C,kl,S.paddingTop),this.paddingRight=un(C,EA,S.paddingRight),this.paddingBottom=un(C,nh,S.paddingBottom),this.paddingLeft=un(C,Ho,S.paddingLeft),this.paintOrder=un(C,sT,S.paintOrder),this.position=un(C,hs,S.position),this.textAlign=un(C,R0,S.textAlign),this.textDecorationColor=un(C,kP,null!==(E=S.textDecorationColor)&&void 0!==E?E:S.color),this.textDecorationLine=un(C,RP,null!==(N=S.textDecorationLine)&&void 0!==N?N:S.textDecoration),this.textShadow=un(C,Os,S.textShadow),this.textTransform=un(C,P0,S.textTransform),this.transform=un(C,ih,S.transform),this.transformOrigin=un(C,N0,S.transformOrigin),this.visibility=un(C,L0,S.visibility),this.webkitTextStrokeColor=un(C,H0,S.webkitTextStrokeColor),this.webkitTextStrokeWidth=un(C,Cn,S.webkitTextStrokeWidth),this.wordBreak=un(C,Nv,S.wordBreak),this.zIndex=un(C,DP,S.zIndex)}return M.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},M.prototype.isTransparent=function(){return xa(this.backgroundColor)},M.prototype.isTransformed=function(){return null!==this.transform},M.prototype.isPositioned=function(){return 0!==this.position},M.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},M.prototype.isFloating=function(){return 0!==this.float},M.prototype.isInlineLevel=function(){return Co(this.display,4)||Co(this.display,33554432)||Co(this.display,268435456)||Co(this.display,536870912)||Co(this.display,67108864)||Co(this.display,134217728)},M}(),Xr=function(){return function M(C,S){this.content=un(C,V0,S.content),this.quotes=un(C,HP,S.quotes)}}(),Ai=function(){return function M(C,S){this.counterIncrement=un(C,oC,S.counterIncrement),this.counterReset=un(C,sC,S.counterReset)}}(),un=function(M,C,S){var E=new Wc,N=null!==S&&typeof S<"u"?S.toString():C.initialValue;E.write(N);var $=new wv(E.read());switch(C.type){case 2:var se=$.parseComponentValue();return C.parse(M,Wr(se)?se.value:C.initialValue);case 0:return C.parse(M,$.parseComponentValue());case 1:return C.parse(M,$.parseComponentValues());case 4:return $.parseComponentValue();case 3:switch(C.format){case"angle":return yA_parse(M,$.parseComponentValue());case"color":return al_parse(M,$.parseComponentValue());case"image":return kv_parse(M,$.parseComponentValue());case"length":var xe=$.parseComponentValue();return Xc(xe)?xe:ys;case"length-percentage":var ge=$.parseComponentValue();return yi(ge)?ge:ys;case"time":return rC.parse(M,$.parseComponentValue())}}},Pf=function(M,C){var S=function(M){switch(M.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(M);return 1===S||C===S},Ea=function(){return function M(C,S){this.context=C,this.textNodes=[],this.elements=[],this.flags=0,Pf(S,3),this.styles=new Xd(C,window.getComputedStyle(S,null)),$f(S)&&(this.styles.animationDuration.some(function(E){return E>0})&&(S.style.animationDuration="0s"),null!==this.styles.transform&&(S.style.transform="none")),this.bounds=L(this.context,S),Pf(S,4)&&(this.flags|=16)}}(),Of="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ol=typeof Uint8Array>"u"?[]:new Uint8Array(256),ar=0;ar<64;ar++)Ol[Of.charCodeAt(ar)]=ar;for(var Uf=function(M,C,S){return M.slice?M.slice(C,S):new Uint16Array(Array.prototype.slice.call(M,C,S))},BA=function(){function M(C,S,E,N,$,se){this.initialValue=C,this.errorValue=S,this.highStart=E,this.highValueIndex=N,this.index=$,this.data=se}return M.prototype.get=function(C){var S;if(C>=0){if(C<55296||C>56319&&C<=65535)return this.data[S=((S=this.index[C>>5])<<2)+(31&C)];if(C<=65535)return this.data[S=((S=this.index[2048+(C-55296>>5)])<<2)+(31&C)];if(C>11)],this.data[S=((S=this.index[S+=C>>5&63])<<2)+(31&C)];if(C<=1114111)return this.data[this.highValueIndex]}return this.errorValue},M}(),rh="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",$0=typeof Uint8Array>"u"?[]:new Uint8Array(256),q0=0;q0<64;q0++)$0[rh.charCodeAt(q0)]=q0;var zv=8,X0=9,Gv=11,Ot=12,jv=function(){for(var M=[],C=0;C>10),se%1024+56320),(N+1===S||E.length>16384)&&($+=String.fromCharCode.apply(String,E),E.length=0)}return $},PA=function(M){var S=function(M){var E,$,se,xe,ge,C=.75*M.length,S=M.length,N=0;"="===M[M.length-1]&&(C--,"="===M[M.length-2]&&C--);var Xe=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(C):new Array(C),tt=Array.isArray(Xe)?Xe:new Uint8Array(Xe);for(E=0;E>4,tt[N++]=(15&se)<<4|xe>>2,tt[N++]=(3&xe)<<6|63≥return Xe}(M),E=Array.isArray(S)?function(M){for(var C=M.length,S=[],E=0;E=55296&&N<=56319&&S=S)return{done:!0,value:null};for(var se="\xd7";Ese.x||tt.y>se.y;return se=tt,0===Xe||mt});return M.body.removeChild(C),xe}(document);return Object.defineProperty(fs,"SUPPORT_WORD_BREAKING",{value:M}),M},get SUPPORT_SVG_DRAWING(){var M=function(M){var C=new Image,S=M.createElement("canvas"),E=S.getContext("2d");if(!E)return!1;C.src="data:image/svg+xml,";try{E.drawImage(C,0,0),S.toDataURL()}catch{return!1}return!0}(document);return Object.defineProperty(fs,"SUPPORT_SVG_DRAWING",{value:M}),M},get SUPPORT_FOREIGNOBJECT_DRAWING(){var M="function"==typeof Array.from&&"function"==typeof window.fetch?function(M){var C=M.createElement("canvas"),S=100;C.width=S,C.height=S;var E=C.getContext("2d");if(!E)return Promise.reject(!1);E.fillStyle="rgb(0, 255, 0)",E.fillRect(0,0,S,S);var N=new Image,$=C.toDataURL();N.src=$;var se=Pr(S,S,0,0,N);return E.fillStyle="red",E.fillRect(0,0,S,S),qv(se).then(function(xe){E.drawImage(xe,0,0);var ge=E.getImageData(0,0,S,S).data;E.fillStyle="red",E.fillRect(0,0,S,S);var Xe=M.createElement("div");return Xe.style.backgroundImage="url("+$+")",Xe.style.height=S+"px",NA(ge)?qv(Pr(S,S,0,0,Xe)):Promise.reject(!1)}).then(function(xe){return E.drawImage(xe,0,0),NA(E.getImageData(0,0,S,S).data)}).catch(function(){return!1})}(document):Promise.resolve(!1);return Object.defineProperty(fs,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:M}),M},get SUPPORT_CORS_IMAGES(){var M=typeof(new Image).crossOrigin<"u";return Object.defineProperty(fs,"SUPPORT_CORS_IMAGES",{value:M}),M},get SUPPORT_RESPONSE_TYPE(){var M="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(fs,"SUPPORT_RESPONSE_TYPE",{value:M}),M},get SUPPORT_CORS_XHR(){var M="withCredentials"in new XMLHttpRequest;return Object.defineProperty(fs,"SUPPORT_CORS_XHR",{value:M}),M},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var M=!!(typeof Intl<"u"&&Intl.Segmenter);return Object.defineProperty(fs,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:M}),M}},Vf=function(){return function M(C,S){this.text=C,this.bounds=S}}(),LA=function(M,C){var S=C.ownerDocument;if(S){var E=S.createElement("html2canvaswrapper");E.appendChild(C.cloneNode(!0));var N=C.parentNode;if(N){N.replaceChild(E,C);var $=L(M,E);return E.firstChild&&N.replaceChild(E.firstChild,E),$}}return U.EMPTY},UA=function(M,C,S){var E=M.ownerDocument;if(!E)throw new Error("Node has no owner document");var N=E.createRange();return N.setStart(M,C),N.setEnd(M,C+S),N},Hf=function(M){if(fs.SUPPORT_NATIVE_TEXT_SEGMENTATION){var C=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(C.segment(M)).map(function(S){return S.segment})}return function(M){for(var E,C=cC(M),S=[];!(E=C.next()).done;)E.value&&S.push(E.value.slice());return S}(M)},t_=function(M,C){return 0!==C.letterSpacing?Hf(M):function(M,C){if(fs.SUPPORT_NATIVE_TEXT_SEGMENTATION){var S=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(S.segment(M)).map(function(E){return E.segment})}return Qf(M,C)}(M,C)},n_=[32,160,4961,65792,65793,4153,4241],Qf=function(M,C){for(var N,S=function(M,C){var S=V(M),E=Ar(S,C),N=E[0],$=E[1],se=E[2],xe=S.length,ge=0,Xe=0;return{next:function(){if(Xe>=xe)return{done:!0,value:null};for(var tt=Mi;Xe0)if(fs.SUPPORT_RANGE_BOUNDS){var ge=UA(E,se,xe.length).getClientRects();if(ge.length>1){var Xe=Hf(xe),tt=0;Xe.forEach(function(bt){$.push(new Vf(bt,U.fromDOMRectList(M,UA(E,tt+se,bt.length).getClientRects()))),tt+=bt.length})}else $.push(new Vf(xe,U.fromDOMRectList(M,ge)))}else{var mt=E.splitText(xe.length);$.push(new Vf(xe,LA(M,E))),E=mt}else fs.SUPPORT_RANGE_BOUNDS||(E=E.splitText(xe.length));se+=xe.length}),$}(C,this.text,E,S)}}(),oh=function(M,C){switch(C){case 1:return M.toLowerCase();case 3:return M.replace(Wv,hl);case 2:return M.toUpperCase();default:return M}},Wv=/(^|\s|:|-|\(|\))([a-z])/g,hl=function(M,C,S){return M.length>0?C+S.toUpperCase():M},HA=function(M){function C(S,E){var N=M.call(this,S,E)||this;return N.src=E.currentSrc||E.src,N.intrinsicWidth=E.naturalWidth,N.intrinsicHeight=E.naturalHeight,N.context.cache.addImage(N.src),N}return v(C,M),C}(Ea),Xv=function(M){function C(S,E){var N=M.call(this,S,E)||this;return N.canvas=E,N.intrinsicWidth=E.width,N.intrinsicHeight=E.height,N}return v(C,M),C}(Ea),$n=function(M){function C(S,E){var N=M.call(this,S,E)||this,$=new XMLSerializer,se=L(S,E);return E.setAttribute("width",se.width+"px"),E.setAttribute("height",se.height+"px"),N.svg="data:image/svg+xml,"+encodeURIComponent($.serializeToString(E)),N.intrinsicWidth=E.width.baseVal.value,N.intrinsicHeight=E.height.baseVal.value,N.context.cache.addImage(N.svg),N}return v(C,M),C}(Ea),id=function(M){function C(S,E){var N=M.call(this,S,E)||this;return N.value=E.value,N}return v(C,M),C}(Ea),Rr=function(M){function C(S,E){var N=M.call(this,S,E)||this;return N.start=E.start,N.reversed="boolean"==typeof E.reversed&&!0===E.reversed,N}return v(C,M),C}(Ea),Kv=[{type:15,flags:0,unit:"px",number:3}],Yv=[{type:16,flags:0,number:50}],QA="checkbox",zf="radio",sh="password",fl=707406591,Kd=function(M){function C(S,E){var N=M.call(this,S,E)||this;switch(N.type=E.type.toLowerCase(),N.checked=E.checked,N.value=function(M){var C=M.type===sh?new Array(M.value.length+1).join("\u2022"):M.value;return 0===C.length?M.placeholder||"":C}(E),(N.type===QA||N.type===zf)&&(N.styles.backgroundColor=3739148031,N.styles.borderTopColor=N.styles.borderRightColor=N.styles.borderBottomColor=N.styles.borderLeftColor=2779096575,N.styles.borderTopWidth=N.styles.borderRightWidth=N.styles.borderBottomWidth=N.styles.borderLeftWidth=1,N.styles.borderTopStyle=N.styles.borderRightStyle=N.styles.borderBottomStyle=N.styles.borderLeftStyle=1,N.styles.backgroundClip=[0],N.styles.backgroundOrigin=[0],N.bounds=function(M){return M.width>M.height?new U(M.left+(M.width-M.height)/2,M.top,M.height,M.height):M.width0)S.textNodes.push(new VA(M,N,S.styles));else if(rd(N))if(XA(N)&&N.assignedNodes)N.assignedNodes().forEach(function(xe){return Yd(M,xe,S,E)});else{var se=Gf(M,N);se.styles.isVisible()&&(jf(N,se,E)?se.flags|=4:GA(se.styles)&&(se.flags|=2),-1!==Jv.indexOf(N.tagName)&&(se.flags|=8),S.elements.push(se),N.shadowRoot?Yd(M,N.shadowRoot,se,E):!sd(N)&&!qf(N)&&!WA(N)&&Yd(M,N,se,E))}},Gf=function(M,C){return jA(C)?new HA(M,C):Wf(C)?new Xv(M,C):qf(C)?new $n(M,C):hC(C)?new id(M,C):ny(C)?new Rr(M,C):fC(C)?new Kd(M,C):WA(C)?new zA(M,C):sd(C)?new bn(M,C):Zd(C)?new Un(M,C):new Ea(M,C)},ey=function(M,C){var S=Gf(M,C);return S.flags|=4,Yd(M,C,S,S),S},jf=function(M,C,S){return C.styles.isPositionedWithZIndex()||C.styles.opacity<1||C.styles.isTransformed()||Vl(M)&&S.styles.isTransparent()},GA=function(M){return M.isPositioned()||M.isFloating()},ty=function(M){return M.nodeType===Node.TEXT_NODE},rd=function(M){return M.nodeType===Node.ELEMENT_NODE},$f=function(M){return rd(M)&&typeof M.style<"u"&&!wc(M)},wc=function(M){return"object"==typeof M.className},hC=function(M){return"LI"===M.tagName},ny=function(M){return"OL"===M.tagName},fC=function(M){return"INPUT"===M.tagName},qf=function(M){return"svg"===M.tagName},Vl=function(M){return"BODY"===M.tagName},Wf=function(M){return"CANVAS"===M.tagName},od=function(M){return"VIDEO"===M.tagName},jA=function(M){return"IMG"===M.tagName},Zd=function(M){return"IFRAME"===M.tagName},$A=function(M){return"STYLE"===M.tagName},sd=function(M){return"TEXTAREA"===M.tagName},WA=function(M){return"SELECT"===M.tagName},XA=function(M){return"SLOT"===M.tagName},KA=function(M){return M.tagName.indexOf("-")>0},YA=function(){function M(){this.counters={}}return M.prototype.getCounterValue=function(C){var S=this.counters[C];return S&&S.length?S[S.length-1]:1},M.prototype.getCounterValues=function(C){return this.counters[C]||[]},M.prototype.pop=function(C){var S=this;C.forEach(function(E){return S.counters[E].pop()})},M.prototype.parse=function(C){var S=this,E=C.counterIncrement,N=C.counterReset,$=!0;null!==E&&E.forEach(function(xe){var ge=S.counters[xe.counter];ge&&0!==xe.increment&&($=!1,ge.length||ge.push(1),ge[Math.max(0,ge.length-1)]+=xe.increment)});var se=[];return $&&N.forEach(function(xe){var ge=S.counters[xe.counter];se.push(xe.counter),ge||(ge=S.counters[xe.counter]=[]),ge.push(xe.reset)}),se},M}(),za={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"]},i_={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"]},Xf={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"]},Jd={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"]},xc=function(M,C,S,E,N,$){return MS?Cc(M,N,$.length>0):E.integers.reduce(function(se,xe,ge){for(;M>=xe;)M-=xe,se+=E.values[ge];return se},"")+$},ad=function(M,C,S,E){var N="";do{S||M--,N=E(M)+N,M/=C}while(M*C>=C);return N},bo=function(M,C,S,E,N){var $=S-C+1;return(M<0?"-":"")+(ad(Math.abs(M),$,E,function(se){return X(Math.floor(se%$)+C)})+N)},Sa=function(M,C,S){void 0===S&&(S=". ");var E=C.length;return ad(Math.abs(M),E,!1,function(N){return C[Math.floor(N%E)]})+S},pl=function(M,C,S,E,N,$){if(M<-9999||M>9999)return Cc(M,4,N.length>0);var se=Math.abs(M),xe=N;if(0===se)return C[0]+xe;for(var ge=0;se>0&&ge<=4;ge++){var Xe=se%10;0===Xe&&Co($,1)&&""!==xe?xe=C[Xe]+xe:Xe>1||1===Xe&&0===ge||1===Xe&&1===ge&&Co($,2)||1===Xe&&1===ge&&Co($,4)&&M>100||1===Xe&&ge>1&&Co($,8)?xe=C[Xe]+(ge>0?S[ge-1]:"")+xe:1===Xe&&ge>0&&(xe=S[ge-1]+xe),se=Math.floor(se/10)}return(M<0?E:"")+xe},ZA="\ub9c8\uc774\ub108\uc2a4",Cc=function(M,C,S){var E=S?". ":"",N=S?"\u3001":"",$=S?", ":"",se=S?" ":"";switch(C){case 0:return"\u2022"+se;case 1:return"\u25e6"+se;case 2:return"\u25fe"+se;case 5:var xe=bo(M,48,57,!0,E);return xe.length<4?"0"+xe:xe;case 4:return Sa(M,"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d",N);case 6:return xc(M,1,3999,za,3,E).toLowerCase();case 7:return xc(M,1,3999,za,3,E);case 8:return bo(M,945,969,!1,E);case 9:return bo(M,97,122,!1,E);case 10:return bo(M,65,90,!1,E);case 11:return bo(M,1632,1641,!0,E);case 12:case 49:return xc(M,1,9999,i_,3,E);case 35:return xc(M,1,9999,i_,3,E).toLowerCase();case 13:return bo(M,2534,2543,!0,E);case 14:case 30:return bo(M,6112,6121,!0,E);case 15:return Sa(M,"\u5b50\u4e11\u5bc5\u536f\u8fb0\u5df3\u5348\u672a\u7533\u9149\u620c\u4ea5",N);case 16:return Sa(M,"\u7532\u4e59\u4e19\u4e01\u620a\u5df1\u5e9a\u8f9b\u58ec\u7678",N);case 17:case 48:return pl(M,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c","\u8ca0",N,14);case 47:return pl(M,"\u96f6\u58f9\u8cb3\u53c3\u8086\u4f0d\u9678\u67d2\u634c\u7396","\u62fe\u4f70\u4edf\u842c","\u8ca0",N,15);case 42:return pl(M,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c","\u8d1f",N,14);case 41:return pl(M,"\u96f6\u58f9\u8d30\u53c1\u8086\u4f0d\u9646\u67d2\u634c\u7396","\u62fe\u4f70\u4edf\u842c","\u8d1f",N,15);case 26:return pl(M,"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u4e07","\u30de\u30a4\u30ca\u30b9",N,0);case 25:return pl(M,"\u96f6\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d","\u62fe\u767e\u5343\u4e07","\u30de\u30a4\u30ca\u30b9",N,7);case 31:return pl(M,"\uc601\uc77c\uc774\uc0bc\uc0ac\uc624\uc721\uce60\ud314\uad6c","\uc2ed\ubc31\ucc9c\ub9cc",ZA,$,7);case 33:return pl(M,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c",ZA,$,0);case 32:return pl(M,"\u96f6\u58f9\u8cb3\u53c3\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u62fe\u767e\u5343",ZA,$,7);case 18:return bo(M,2406,2415,!0,E);case 20:return xc(M,1,19999,Jd,3,E);case 21:return bo(M,2790,2799,!0,E);case 22:return bo(M,2662,2671,!0,E);case 22:return xc(M,1,10999,Xf,3,E);case 23:return Sa(M,"\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 Sa(M,"\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 bo(M,3302,3311,!0,E);case 28:return Sa(M,"\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",N);case 29:return Sa(M,"\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",N);case 34:return bo(M,3792,3801,!0,E);case 37:return bo(M,6160,6169,!0,E);case 38:return bo(M,4160,4169,!0,E);case 39:return bo(M,2918,2927,!0,E);case 40:return bo(M,1776,1785,!0,E);case 43:return bo(M,3046,3055,!0,E);case 44:return bo(M,3174,3183,!0,E);case 45:return bo(M,3664,3673,!0,E);case 46:return bo(M,3872,3881,!0,E);default:return bo(M,48,57,!0,E)}},tu="data-html2canvas-ignore",cd=function(){function M(C,S,E){if(this.context=C,this.options=E,this.scrolledElements=[],this.referenceElement=S,this.counters=new YA,this.quoteDepth=0,!S.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(S.ownerDocument.documentElement,!1)}return M.prototype.toIFrame=function(C,S){var E=this,N=pC(C,S);if(!N.contentWindow)return Promise.reject("Unable to find iframe window");var $=C.defaultView.pageXOffset,se=C.defaultView.pageYOffset,xe=N.contentWindow,ge=xe.document,Xe=AC(N).then(function(){return o(E,void 0,void 0,function(){var tt,mt;return y(this,function(bt){switch(bt.label){case 0:return this.scrolledElements.forEach(JA),xe&&(xe.scrollTo(S.left,S.top),/(iPad|iPhone|iPod)/g.test(navigator.userAgent)&&(xe.scrollY!==S.top||xe.scrollX!==S.left)&&(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(xe.scrollX-S.left,xe.scrollY-S.top,0,0))),tt=this.options.onclone,typeof(mt=this.clonedReferenceElement)>"u"?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:ge.fonts&&ge.fonts.ready?[4,ge.fonts.ready]:[3,2];case 1:bt.sent(),bt.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,Yt(ge)]:[3,4];case 3:bt.sent(),bt.label=4;case 4:return"function"==typeof tt?[2,Promise.resolve().then(function(){return tt(ge,mt)}).then(function(){return N})]:[2,N]}})})});return ge.open(),ge.write(sy(document.doctype)+""),r_(this.referenceElement.ownerDocument,$,se),ge.replaceChild(ge.adoptNode(this.documentElement),ge.documentElement),ge.close(),Xe},M.prototype.createElementClone=function(C){if(Pf(C,2),Wf(C))return this.createCanvasClone(C);if(od(C))return this.createVideoClone(C);if($A(C))return this.createStyleClone(C);var S=C.cloneNode(!1);return jA(S)&&(jA(C)&&C.currentSrc&&C.currentSrc!==C.src&&(S.src=C.currentSrc,S.srcset=""),"lazy"===S.loading&&(S.loading="eager")),KA(S)?this.createCustomElementClone(S):S},M.prototype.createCustomElementClone=function(C){var S=document.createElement("html2canvascustomelement");return dd(C.style,S),S},M.prototype.createStyleClone=function(C){try{var S=C.sheet;if(S&&S.cssRules){var E=[].slice.call(S.cssRules,0).reduce(function($,se){return se&&"string"==typeof se.cssText?$+se.cssText:$},""),N=C.cloneNode(!1);return N.textContent=E,N}}catch($){if(this.context.logger.error("Unable to access cssRules property",$),"SecurityError"!==$.name)throw $}return C.cloneNode(!1)},M.prototype.createCanvasClone=function(C){var S;if(this.options.inlineImages&&C.ownerDocument){var E=C.ownerDocument.createElement("img");try{return E.src=C.toDataURL(),E}catch{this.context.logger.info("Unable to inline canvas contents, canvas is tainted",C)}}var N=C.cloneNode(!1);try{N.width=C.width,N.height=C.height;var $=C.getContext("2d"),se=N.getContext("2d");if(se)if(!this.options.allowTaint&&$)se.putImageData($.getImageData(0,0,C.width,C.height),0,0);else{var xe=null!==(S=C.getContext("webgl2"))&&void 0!==S?S:C.getContext("webgl");if(xe){var ge=xe.getContextAttributes();!1===ge?.preserveDrawingBuffer&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",C)}se.drawImage(C,0,0)}return N}catch{this.context.logger.info("Unable to clone canvas as it is tainted",C)}return N},M.prototype.createVideoClone=function(C){var S=C.ownerDocument.createElement("canvas");S.width=C.offsetWidth,S.height=C.offsetHeight;var E=S.getContext("2d");try{return E&&(E.drawImage(C,0,0,S.width,S.height),this.options.allowTaint||E.getImageData(0,0,S.width,S.height)),S}catch{this.context.logger.info("Unable to clone video as it is tainted",C)}var N=C.ownerDocument.createElement("canvas");return N.width=C.offsetWidth,N.height=C.offsetHeight,N},M.prototype.appendChildNode=function(C,S,E){(!rd(S)||!function(M){return"SCRIPT"===M.tagName}(S)&&!S.hasAttribute(tu)&&("function"!=typeof this.options.ignoreElements||!this.options.ignoreElements(S)))&&(!this.options.copyStyles||!rd(S)||!$A(S))&&C.appendChild(this.cloneNode(S,E))},M.prototype.cloneChildNodes=function(C,S,E){for(var N=this,$=C.shadowRoot?C.shadowRoot.firstChild:C.firstChild;$;$=$.nextSibling)if(rd($)&&XA($)&&"function"==typeof $.assignedNodes){var se=$.assignedNodes();se.length&&se.forEach(function(xe){return N.appendChildNode(S,xe,E)})}else this.appendChildNode(S,$,E)},M.prototype.cloneNode=function(C,S){if(ty(C))return document.createTextNode(C.data);if(!C.ownerDocument)return C.cloneNode(!1);var E=C.ownerDocument.defaultView;if(E&&rd(C)&&($f(C)||wc(C))){var N=this.createElementClone(C);N.style.transitionProperty="none";var $=E.getComputedStyle(C),se=E.getComputedStyle(C,":before"),xe=E.getComputedStyle(C,":after");this.referenceElement===C&&$f(N)&&(this.clonedReferenceElement=N),Vl(N)&&s_(N);var ge=this.counters.parse(new Ai(this.context,$)),Xe=this.resolvePseudoContent(C,N,se,Vi.BEFORE);KA(C)&&(S=!0),od(C)||this.cloneChildNodes(C,N,S),Xe&&N.insertBefore(Xe,N.firstChild);var tt=this.resolvePseudoContent(C,N,xe,Vi.AFTER);return tt&&N.appendChild(tt),this.counters.pop(ge),($&&(this.options.copyStyles||wc(C))&&!Zd(C)||S)&&dd($,N),(0!==C.scrollTop||0!==C.scrollLeft)&&this.scrolledElements.push([N,C.scrollLeft,C.scrollTop]),(sd(C)||WA(C))&&(sd(N)||WA(N))&&(N.value=C.value),N}return C.cloneNode(!1)},M.prototype.resolvePseudoContent=function(C,S,E,N){var $=this;if(E){var se=E.content,xe=S.ownerDocument;if(xe&&se&&"none"!==se&&"-moz-alt-content"!==se&&"none"!==E.display){this.counters.parse(new Ai(this.context,E));var ge=new Xr(this.context,E),Xe=xe.createElement("html2canvaspseudoelement");dd(E,Xe),ge.content.forEach(function(mt){if(0===mt.type)Xe.appendChild(xe.createTextNode(mt.value));else if(22===mt.type){var bt=xe.createElement("img");bt.src=mt.value,bt.style.opacity="1",Xe.appendChild(bt)}else if(18===mt.type){if("attr"===mt.name){var yn=mt.values.filter(Wr);yn.length&&Xe.appendChild(xe.createTextNode(C.getAttribute(yn[0].value)||""))}else if("counter"===mt.name){var An=mt.values.filter(Ju),mi=An[1];if((Sn=An[0])&&Wr(Sn)){var Gn=$.counters.getCounterValue(Sn.value),ni=mi&&Wr(mi)?dl.parse($.context,mi.value):3;Xe.appendChild(xe.createTextNode(Cc(Gn,ni,!1)))}}else if("counters"===mt.name){var Sn,Dr=mt.values.filter(Ju),hi=Dr[1];if(mi=Dr[2],(Sn=Dr[0])&&Wr(Sn)){var Ci=$.counters.getCounterValues(Sn.value),Vn=mi&&Wr(mi)?dl.parse($.context,mi.value):3,mr=hi&&0===hi.type?hi.value:"",yr=Ci.map(function(Xs){return Cc(Xs,Vn,!1)}).join(mr);Xe.appendChild(xe.createTextNode(yr))}}}else if(20===mt.type)switch(mt.value){case"open-quote":Xe.appendChild(xe.createTextNode(oT(ge.quotes,$.quoteDepth++,!0)));break;case"close-quote":Xe.appendChild(xe.createTextNode(oT(ge.quotes,--$.quoteDepth,!1)));break;default:Xe.appendChild(xe.createTextNode(mt.value))}}),Xe.className=o_+" "+tm;var tt=N===Vi.BEFORE?" "+o_:" "+tm;return wc(S)?S.className.baseValue+=tt:S.className+=tt,Xe}}},M.destroy=function(C){return!!C.parentNode&&(C.parentNode.removeChild(C),!0)},M}(),Vi=function(M){return M[M.BEFORE=0]="BEFORE",M[M.AFTER=1]="AFTER",M}(Vi||{}),pC=function(M,C){var S=M.createElement("iframe");return S.className="html2canvas-container",S.style.visibility="hidden",S.style.position="fixed",S.style.left="-10000px",S.style.top="0px",S.style.border="0",S.width=C.width.toString(),S.height=C.height.toString(),S.scrolling="no",S.setAttribute(tu,"true"),M.body.appendChild(S),S},ry=function(M){return new Promise(function(C){M.complete?C():M.src?(M.onload=C,M.onerror=C):C()})},Yt=function(M){return Promise.all([].slice.call(M.images,0).map(ry))},AC=function(M){return new Promise(function(C,S){var E=M.contentWindow;if(!E)return S("No window assigned for iframe");var N=E.document;E.onload=M.onload=function(){E.onload=M.onload=null;var $=setInterval(function(){N.body.childNodes.length>0&&"complete"===N.readyState&&(clearInterval($),C(M))},50)}})},oy=["all","d","content"],dd=function(M,C){for(var S=M.length-1;S>=0;S--){var E=M.item(S);-1===oy.indexOf(E)&&C.style.setProperty(E,M.getPropertyValue(E))}return C},sy=function(M){var C="";return M&&(C+=""),C},r_=function(M,C,S){M&&M.defaultView&&(C!==M.defaultView.pageXOffset||S!==M.defaultView.pageYOffset)&&M.defaultView.scrollTo(C,S)},JA=function(M){var C=M[0],E=M[2];C.scrollLeft=M[1],C.scrollTop=E},o_="___html2canvas___pseudoelement_before",tm="___html2canvas___pseudoelement_after",ly='{\n content: "" !important;\n display: none !important;\n}',s_=function(M){a_(M,"."+o_+":before"+ly+"\n ."+tm+":after"+ly)},a_=function(M,C){var S=M.ownerDocument;if(S){var E=S.createElement("style");E.textContent=C,M.appendChild(E)}},l_=function(){function M(){}return M.getOrigin=function(C){var S=M._link;return S?(S.href=C,S.href=S.href,S.protocol+S.hostname+S.port):"about:blank"},M.isSameOrigin=function(C){return M.getOrigin(C)===M._origin},M.setContext=function(C){M._link=C.document.createElement("a"),M._origin=M.getOrigin(C.location.href)},M._origin="about:blank",M}(),mC=function(){function M(C,S){this.context=C,this._options=S,this._cache={}}return M.prototype.addImage=function(C){var S=Promise.resolve();return this.has(C)||(ch(C)||nm(C))&&(this._cache[C]=this.loadImage(C)).catch(function(){}),S},M.prototype.match=function(C){return this._cache[C]},M.prototype.loadImage=function(C){return o(this,void 0,void 0,function(){var S,E,N,$,se=this;return y(this,function(xe){switch(xe.label){case 0:return S=l_.isSameOrigin(C),E=!ps(C)&&!0===this._options.useCORS&&fs.SUPPORT_CORS_IMAGES&&!S,N=!ps(C)&&!S&&!ch(C)&&"string"==typeof this._options.proxy&&fs.SUPPORT_CORS_XHR&&!E,S||!1!==this._options.allowTaint||ps(C)||ch(C)||N||E?($=C,N?[4,this.proxy($)]:[3,2]):[2];case 1:$=xe.sent(),xe.label=2;case 2:return this.context.logger.debug("Added image "+C.substring(0,256)),[4,new Promise(function(ge,Xe){var tt=new Image;tt.onload=function(){return ge(tt)},tt.onerror=Xe,(GP($)||E)&&(tt.crossOrigin="anonymous"),tt.src=$,!0===tt.complete&&setTimeout(function(){return ge(tt)},500),se._options.imageTimeout>0&&setTimeout(function(){return Xe("Timed out ("+se._options.imageTimeout+"ms) loading image")},se._options.imageTimeout)})];case 3:return[2,xe.sent()]}})})},M.prototype.has=function(C){return typeof this._cache[C]<"u"},M.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},M.prototype.proxy=function(C){var S=this,E=this._options.proxy;if(!E)throw new Error("No proxy defined");var N=C.substring(0,256);return new Promise(function($,se){var xe=fs.SUPPORT_RESPONSE_TYPE?"blob":"text",ge=new XMLHttpRequest;ge.onload=function(){if(200===ge.status)if("text"===xe)$(ge.response);else{var mt=new FileReader;mt.addEventListener("load",function(){return $(mt.result)},!1),mt.addEventListener("error",function(bt){return se(bt)},!1),mt.readAsDataURL(ge.response)}else se("Failed to proxy resource "+N+" with status code "+ge.status)},ge.onerror=se;var Xe=E.indexOf("?")>-1?"&":"?";if(ge.open("GET",""+E+Xe+"url="+encodeURIComponent(C)+"&responseType="+xe),"text"!==xe&&ge instanceof XMLHttpRequest&&(ge.responseType=xe),S._options.imageTimeout){var tt=S._options.imageTimeout;ge.timeout=tt,ge.ontimeout=function(){return se("Timed out ("+tt+"ms) proxying "+N)}}ge.send()})},M}(),cy=/^data:image\/svg\+xml/i,zP=/^data:image\/.*;base64,/i,dy=/^data:image\/.*/i,nm=function(M){return fs.SUPPORT_SVG_DRAWING||!sn(M)},ps=function(M){return dy.test(M)},GP=function(M){return zP.test(M)},ch=function(M){return"blob"===M.substr(0,4)},sn=function(M){return"svg"===M.substr(-3).toLowerCase()||cy.test(M)},Bn=function(){function M(C,S){this.type=0,this.x=C,this.y=S}return M.prototype.add=function(C,S){return new M(this.x+C,this.y+S)},M}(),dh=function(M,C,S){return new Bn(M.x+(C.x-M.x)*S,M.y+(C.y-M.y)*S)},uh=function(){function M(C,S,E,N){this.type=1,this.start=C,this.startControl=S,this.endControl=E,this.end=N}return M.prototype.subdivide=function(C,S){var E=dh(this.start,this.startControl,C),N=dh(this.startControl,this.endControl,C),$=dh(this.endControl,this.end,C),se=dh(E,N,C),xe=dh(N,$,C),ge=dh(se,xe,C);return S?new M(this.start,E,se,ge):new M(ge,xe,$,this.end)},M.prototype.add=function(C,S){return new M(this.start.add(C,S),this.startControl.add(C,S),this.endControl.add(C,S),this.end.add(C,S))},M.prototype.reverse=function(){return new M(this.end,this.endControl,this.startControl,this.start)},M}(),Ta=function(M){return 1===M.type},hh=function(){return function M(C){var S=C.styles,E=C.bounds,N=vA(S.borderTopLeftRadius,E.width,E.height),$=N[0],se=N[1],xe=vA(S.borderTopRightRadius,E.width,E.height),ge=xe[0],Xe=xe[1],tt=vA(S.borderBottomRightRadius,E.width,E.height),mt=tt[0],bt=tt[1],yn=vA(S.borderBottomLeftRadius,E.width,E.height),An=yn[0],Sn=yn[1],mi=[];mi.push(($+ge)/E.width),mi.push((An+mt)/E.width),mi.push((se+Sn)/E.height),mi.push((Xe+bt)/E.height);var Gn=Math.max.apply(Math,mi);Gn>1&&($/=Gn,se/=Gn,ge/=Gn,Xe/=Gn,mt/=Gn,bt/=Gn,An/=Gn,Sn/=Gn);var ni=E.width-ge,Dr=E.height-bt,hi=E.width-mt,Ci=E.height-Sn,Vn=S.borderTopWidth,mr=S.borderRightWidth,yr=S.borderBottomWidth,Hi=S.borderLeftWidth,Qo=go(S.paddingTop,C.bounds.width),Xs=go(S.paddingRight,C.bounds.width),Ks=go(S.paddingBottom,C.bounds.width),$r=go(S.paddingLeft,C.bounds.width);this.topLeftBorderDoubleOuterBox=$>0||se>0?Eo(E.left+Hi/3,E.top+Vn/3,$-Hi/3,se-Vn/3,Kr.TOP_LEFT):new Bn(E.left+Hi/3,E.top+Vn/3),this.topRightBorderDoubleOuterBox=$>0||se>0?Eo(E.left+ni,E.top+Vn/3,ge-mr/3,Xe-Vn/3,Kr.TOP_RIGHT):new Bn(E.left+E.width-mr/3,E.top+Vn/3),this.bottomRightBorderDoubleOuterBox=mt>0||bt>0?Eo(E.left+hi,E.top+Dr,mt-mr/3,bt-yr/3,Kr.BOTTOM_RIGHT):new Bn(E.left+E.width-mr/3,E.top+E.height-yr/3),this.bottomLeftBorderDoubleOuterBox=An>0||Sn>0?Eo(E.left+Hi/3,E.top+Ci,An-Hi/3,Sn-yr/3,Kr.BOTTOM_LEFT):new Bn(E.left+Hi/3,E.top+E.height-yr/3),this.topLeftBorderDoubleInnerBox=$>0||se>0?Eo(E.left+2*Hi/3,E.top+2*Vn/3,$-2*Hi/3,se-2*Vn/3,Kr.TOP_LEFT):new Bn(E.left+2*Hi/3,E.top+2*Vn/3),this.topRightBorderDoubleInnerBox=$>0||se>0?Eo(E.left+ni,E.top+2*Vn/3,ge-2*mr/3,Xe-2*Vn/3,Kr.TOP_RIGHT):new Bn(E.left+E.width-2*mr/3,E.top+2*Vn/3),this.bottomRightBorderDoubleInnerBox=mt>0||bt>0?Eo(E.left+hi,E.top+Dr,mt-2*mr/3,bt-2*yr/3,Kr.BOTTOM_RIGHT):new Bn(E.left+E.width-2*mr/3,E.top+E.height-2*yr/3),this.bottomLeftBorderDoubleInnerBox=An>0||Sn>0?Eo(E.left+2*Hi/3,E.top+Ci,An-2*Hi/3,Sn-2*yr/3,Kr.BOTTOM_LEFT):new Bn(E.left+2*Hi/3,E.top+E.height-2*yr/3),this.topLeftBorderStroke=$>0||se>0?Eo(E.left+Hi/2,E.top+Vn/2,$-Hi/2,se-Vn/2,Kr.TOP_LEFT):new Bn(E.left+Hi/2,E.top+Vn/2),this.topRightBorderStroke=$>0||se>0?Eo(E.left+ni,E.top+Vn/2,ge-mr/2,Xe-Vn/2,Kr.TOP_RIGHT):new Bn(E.left+E.width-mr/2,E.top+Vn/2),this.bottomRightBorderStroke=mt>0||bt>0?Eo(E.left+hi,E.top+Dr,mt-mr/2,bt-yr/2,Kr.BOTTOM_RIGHT):new Bn(E.left+E.width-mr/2,E.top+E.height-yr/2),this.bottomLeftBorderStroke=An>0||Sn>0?Eo(E.left+Hi/2,E.top+Ci,An-Hi/2,Sn-yr/2,Kr.BOTTOM_LEFT):new Bn(E.left+Hi/2,E.top+E.height-yr/2),this.topLeftBorderBox=$>0||se>0?Eo(E.left,E.top,$,se,Kr.TOP_LEFT):new Bn(E.left,E.top),this.topRightBorderBox=ge>0||Xe>0?Eo(E.left+ni,E.top,ge,Xe,Kr.TOP_RIGHT):new Bn(E.left+E.width,E.top),this.bottomRightBorderBox=mt>0||bt>0?Eo(E.left+hi,E.top+Dr,mt,bt,Kr.BOTTOM_RIGHT):new Bn(E.left+E.width,E.top+E.height),this.bottomLeftBorderBox=An>0||Sn>0?Eo(E.left,E.top+Ci,An,Sn,Kr.BOTTOM_LEFT):new Bn(E.left,E.top+E.height),this.topLeftPaddingBox=$>0||se>0?Eo(E.left+Hi,E.top+Vn,Math.max(0,$-Hi),Math.max(0,se-Vn),Kr.TOP_LEFT):new Bn(E.left+Hi,E.top+Vn),this.topRightPaddingBox=ge>0||Xe>0?Eo(E.left+Math.min(ni,E.width-mr),E.top+Vn,ni>E.width+mr?0:Math.max(0,ge-mr),Math.max(0,Xe-Vn),Kr.TOP_RIGHT):new Bn(E.left+E.width-mr,E.top+Vn),this.bottomRightPaddingBox=mt>0||bt>0?Eo(E.left+Math.min(hi,E.width-Hi),E.top+Math.min(Dr,E.height-yr),Math.max(0,mt-mr),Math.max(0,bt-yr),Kr.BOTTOM_RIGHT):new Bn(E.left+E.width-mr,E.top+E.height-yr),this.bottomLeftPaddingBox=An>0||Sn>0?Eo(E.left+Hi,E.top+Math.min(Ci,E.height-yr),Math.max(0,An-Hi),Math.max(0,Sn-yr),Kr.BOTTOM_LEFT):new Bn(E.left+Hi,E.top+E.height-yr),this.topLeftContentBox=$>0||se>0?Eo(E.left+Hi+$r,E.top+Vn+Qo,Math.max(0,$-(Hi+$r)),Math.max(0,se-(Vn+Qo)),Kr.TOP_LEFT):new Bn(E.left+Hi+$r,E.top+Vn+Qo),this.topRightContentBox=ge>0||Xe>0?Eo(E.left+Math.min(ni,E.width+Hi+$r),E.top+Vn+Qo,ni>E.width+Hi+$r?0:ge-Hi+$r,Xe-(Vn+Qo),Kr.TOP_RIGHT):new Bn(E.left+E.width-(mr+Xs),E.top+Vn+Qo),this.bottomRightContentBox=mt>0||bt>0?Eo(E.left+Math.min(hi,E.width-(Hi+$r)),E.top+Math.min(Dr,E.height+Vn+Qo),Math.max(0,mt-(mr+Xs)),bt-(yr+Ks),Kr.BOTTOM_RIGHT):new Bn(E.left+E.width-(mr+Xs),E.top+E.height-(yr+Ks)),this.bottomLeftContentBox=An>0||Sn>0?Eo(E.left+Hi+$r,E.top+Ci,Math.max(0,An-(Hi+$r)),Sn-(yr+Ks),Kr.BOTTOM_LEFT):new Bn(E.left+Hi+$r,E.top+E.height-(yr+Ks))}}(),Kr=function(M){return M[M.TOP_LEFT=0]="TOP_LEFT",M[M.TOP_RIGHT=1]="TOP_RIGHT",M[M.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",M[M.BOTTOM_LEFT=3]="BOTTOM_LEFT",M}(Kr||{}),Eo=function(M,C,S,E,N){var $=(Math.sqrt(2)-1)/3*4,se=S*$,xe=E*$,ge=M+S,Xe=C+E;switch(N){case Kr.TOP_LEFT:return new uh(new Bn(M,Xe),new Bn(M,Xe-xe),new Bn(ge-se,C),new Bn(ge,C));case Kr.TOP_RIGHT:return new uh(new Bn(M,C),new Bn(M+se,C),new Bn(ge,Xe-xe),new Bn(ge,Xe));case Kr.BOTTOM_RIGHT:return new uh(new Bn(ge,C),new Bn(ge,C+xe),new Bn(M+se,Xe),new Bn(M,Xe));default:return new uh(new Bn(ge,Xe),new Bn(ge-se,Xe),new Bn(M,C+xe),new Bn(M,C))}},zl=function(M){return[M.topLeftBorderBox,M.topRightBorderBox,M.bottomRightBorderBox,M.bottomLeftBorderBox]},im=function(M){return[M.topLeftPaddingBox,M.topRightPaddingBox,M.bottomRightPaddingBox,M.bottomLeftPaddingBox]},Gl=function(){return function M(C,S,E){this.offsetX=C,this.offsetY=S,this.matrix=E,this.type=0,this.target=6}}(),ud=function(){return function M(C,S){this.path=C,this.target=S,this.type=1}}(),uy=function(){return function M(C){this.opacity=C,this.type=2,this.target=6}}(),gC=function(M){return 1===M.type},Zf=function(M,C){return M.length===C.length&&M.some(function(S,E){return S===C[E]})},so=function(){return function M(C){this.element=C,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}}(),fy=function(){function M(C,S){if(this.container=C,this.parent=S,this.effects=[],this.curves=new hh(this.container),this.container.styles.opacity<1&&this.effects.push(new uy(this.container.styles.opacity)),null!==this.container.styles.transform&&this.effects.push(new Gl(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 se=zl(this.curves),xe=im(this.curves);Zf(se,xe)?this.effects.push(new ud(se,6)):(this.effects.push(new ud(se,2)),this.effects.push(new ud(xe,4)))}}return M.prototype.getEffects=function(C){for(var S=-1===[2,3].indexOf(this.container.styles.position),E=this.parent,N=this.effects.slice(0);E;){var $=E.effects.filter(function(ge){return!gC(ge)});if(S||0!==E.container.styles.position||!E.parent){if(N.unshift.apply(N,$),S=-1===[2,3].indexOf(E.container.styles.position),0!==E.container.styles.overflowX){var se=zl(E.curves),xe=im(E.curves);Zf(se,xe)||N.unshift(new ud(xe,6))}}else N.unshift.apply(N,$);E=E.parent}return N.filter(function(ge){return Co(ge.target,C)})},M}(),Jf=function(M,C,S,E){M.container.elements.forEach(function(N){var $=Co(N.flags,4),se=Co(N.flags,2),xe=new fy(N,M);Co(N.styles.display,2048)&&E.push(xe);var ge=Co(N.flags,8)?[]:E;if($||se){var Xe=$||N.styles.isPositioned()?S:C,tt=new so(xe);if(N.styles.isPositioned()||N.styles.opacity<1||N.styles.isTransformed()){var mt=N.styles.zIndex.order;if(mt<0){var bt=0;Xe.negativeZIndex.some(function(An,Sn){return mt>An.element.container.styles.zIndex.order?(bt=Sn,!1):bt>0}),Xe.negativeZIndex.splice(bt,0,tt)}else if(mt>0){var yn=0;Xe.positiveZIndex.some(function(An,Sn){return mt>=An.element.container.styles.zIndex.order?(yn=Sn+1,!1):yn>0}),Xe.positiveZIndex.splice(yn,0,tt)}else Xe.zeroOrAutoZIndexOrTransformedOrOpacity.push(tt)}else N.styles.isFloating()?Xe.nonPositionedFloats.push(tt):Xe.nonPositionedInlineLevel.push(tt);Jf(xe,tt,$?tt:S,ge)}else N.styles.isInlineLevel()?C.inlineLevel.push(xe):C.nonInlineLevel.push(xe),Jf(xe,C,S,ge);Co(N.flags,8)&&py(N,ge)})},py=function(M,C){for(var S=M instanceof Rr?M.start:1,E=M instanceof Rr&&M.reversed,N=0;N"u"?M[0]:S},jP=function(M,C,S,E,N){var $=C[0],se=C[1],xe=S[0],ge=S[1];switch(M){case 2:return[new Bn(Math.round(E.left),Math.round(E.top+se)),new Bn(Math.round(E.left+E.width),Math.round(E.top+se)),new Bn(Math.round(E.left+E.width),Math.round(ge+E.top+se)),new Bn(Math.round(E.left),Math.round(ge+E.top+se))];case 3:return[new Bn(Math.round(E.left+$),Math.round(E.top)),new Bn(Math.round(E.left+$+xe),Math.round(E.top)),new Bn(Math.round(E.left+$+xe),Math.round(E.height+E.top)),new Bn(Math.round(E.left+$),Math.round(E.height+E.top))];case 1:return[new Bn(Math.round(E.left+$),Math.round(E.top+se)),new Bn(Math.round(E.left+$+xe),Math.round(E.top+se)),new Bn(Math.round(E.left+$+xe),Math.round(E.top+se+ge)),new Bn(Math.round(E.left+$),Math.round(E.top+se+ge))];default:return[new Bn(Math.round(N.left),Math.round(N.top)),new Bn(Math.round(N.left+N.width),Math.round(N.top)),new Bn(Math.round(N.left+N.width),Math.round(N.height+N.top)),new Bn(Math.round(N.left),Math.round(N.height+N.top))]}},vn="Hidden Text",Fi=function(){function M(C){this._data={},this._document=C}return M.prototype.parseMetrics=function(C,S){var E=this._document.createElement("div"),N=this._document.createElement("img"),$=this._document.createElement("span"),se=this._document.body;E.style.visibility="hidden",E.style.fontFamily=C,E.style.fontSize=S,E.style.margin="0",E.style.padding="0",E.style.whiteSpace="nowrap",se.appendChild(E),N.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",N.width=1,N.height=1,N.style.margin="0",N.style.padding="0",N.style.verticalAlign="baseline",$.style.fontFamily=C,$.style.fontSize=S,$.style.margin="0",$.style.padding="0",$.appendChild(this._document.createTextNode(vn)),E.appendChild($),E.appendChild(N);var xe=N.offsetTop-$.offsetTop+2;E.removeChild($),E.appendChild(this._document.createTextNode(vn)),E.style.lineHeight="normal",N.style.verticalAlign="super";var ge=N.offsetTop-E.offsetTop+2;return se.removeChild(E),{baseline:xe,middle:ge}},M.prototype.getMetrics=function(C,S){var E=C+" "+S;return typeof this._data[E]>"u"&&(this._data[E]=this.parseMetrics(C,S)),this._data[E]},M}(),Ec=function(){return function M(C,S){this.context=C,this.options=S}}(),hd=function(M){function C(S,E){var N=M.call(this,S,E)||this;return N._activeEffects=[],N.canvas=E.canvas?E.canvas:document.createElement("canvas"),N.ctx=N.canvas.getContext("2d"),E.canvas||(N.canvas.width=Math.floor(E.width*E.scale),N.canvas.height=Math.floor(E.height*E.scale),N.canvas.style.width=E.width+"px",N.canvas.style.height=E.height+"px"),N.fontMetrics=new Fi(document),N.ctx.scale(N.options.scale,N.options.scale),N.ctx.translate(-E.x,-E.y),N.ctx.textBaseline="bottom",N._activeEffects=[],N.context.logger.debug("Canvas renderer initialized ("+E.width+"x"+E.height+") with scale "+E.scale),N}return v(C,M),C.prototype.applyEffects=function(S){for(var E=this;this._activeEffects.length;)this.popEffect();S.forEach(function(N){return E.applyEffect(N)})},C.prototype.applyEffect=function(S){this.ctx.save(),function(M){return 2===M.type}(S)&&(this.ctx.globalAlpha=S.opacity),function(M){return 0===M.type}(S)&&(this.ctx.translate(S.offsetX,S.offsetY),this.ctx.transform(S.matrix[0],S.matrix[1],S.matrix[2],S.matrix[3],S.matrix[4],S.matrix[5]),this.ctx.translate(-S.offsetX,-S.offsetY)),gC(S)&&(this.path(S.path),this.ctx.clip()),this._activeEffects.push(S)},C.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},C.prototype.renderStack=function(S){return o(this,void 0,void 0,function(){return y(this,function(N){switch(N.label){case 0:return S.element.container.styles.isVisible()?[4,this.renderStackContent(S)]:[3,2];case 1:N.sent(),N.label=2;case 2:return[2]}})})},C.prototype.renderNode=function(S){return o(this,void 0,void 0,function(){return y(this,function(E){switch(E.label){case 0:return Co(S.container.flags,16),S.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(S)]:[3,3];case 1:return E.sent(),[4,this.renderNodeContent(S)];case 2:E.sent(),E.label=3;case 3:return[2]}})})},C.prototype.renderTextWithLetterSpacing=function(S,E,N){var $=this;0===E?this.ctx.fillText(S.text,S.bounds.left,S.bounds.top+N):Hf(S.text).reduce(function(xe,ge){return $.ctx.fillText(ge,xe,S.bounds.top+N),xe+$.ctx.measureText(ge).width},S.bounds.left)},C.prototype.createFontStyle=function(S){var E=S.fontVariant.filter(function(se){return"normal"===se||"small-caps"===se}).join(""),N=Zo(S.fontFamily).join(", "),$=Hd(S.fontSize)?""+S.fontSize.number+S.fontSize.unit:S.fontSize.number+"px";return[[S.fontStyle,E,S.fontWeight,$,N].join(" "),N,$]},C.prototype.renderTextNode=function(S,E){return o(this,void 0,void 0,function(){var N,se,xe,ge,Xe,tt,mt,bt=this;return y(this,function(yn){return N=this.createFontStyle(E),se=N[1],xe=N[2],this.ctx.font=N[0],this.ctx.direction=1===E.direction?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic",ge=this.fontMetrics.getMetrics(se,xe),Xe=ge.baseline,tt=ge.middle,mt=E.paintOrder,S.textBounds.forEach(function(An){mt.forEach(function(Sn){switch(Sn){case 0:bt.ctx.fillStyle=us(E.color),bt.renderTextWithLetterSpacing(An,E.letterSpacing,Xe);var mi=E.textShadow;mi.length&&An.text.trim().length&&(mi.slice(0).reverse().forEach(function(Gn){bt.ctx.shadowColor=us(Gn.color),bt.ctx.shadowOffsetX=Gn.offsetX.number*bt.options.scale,bt.ctx.shadowOffsetY=Gn.offsetY.number*bt.options.scale,bt.ctx.shadowBlur=Gn.blur.number,bt.renderTextWithLetterSpacing(An,E.letterSpacing,Xe)}),bt.ctx.shadowColor="",bt.ctx.shadowOffsetX=0,bt.ctx.shadowOffsetY=0,bt.ctx.shadowBlur=0),E.textDecorationLine.length&&(bt.ctx.fillStyle=us(E.textDecorationColor||E.color),E.textDecorationLine.forEach(function(Gn){switch(Gn){case 1:bt.ctx.fillRect(An.bounds.left,Math.round(An.bounds.top+Xe),An.bounds.width,1);break;case 2:bt.ctx.fillRect(An.bounds.left,Math.round(An.bounds.top),An.bounds.width,1);break;case 3:bt.ctx.fillRect(An.bounds.left,Math.ceil(An.bounds.top+tt),An.bounds.width,1)}}));break;case 1:E.webkitTextStrokeWidth&&An.text.trim().length&&(bt.ctx.strokeStyle=us(E.webkitTextStrokeColor),bt.ctx.lineWidth=E.webkitTextStrokeWidth,bt.ctx.lineJoin=window.chrome?"miter":"round",bt.ctx.strokeText(An.text,An.bounds.left,An.bounds.top+Xe)),bt.ctx.strokeStyle="",bt.ctx.lineWidth=0,bt.ctx.lineJoin="miter"}})}),[2]})})},C.prototype.renderReplacedElement=function(S,E,N){if(N&&S.intrinsicWidth>0&&S.intrinsicHeight>0){var $=sm(S),se=im(E);this.path(se),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(N,0,0,S.intrinsicWidth,S.intrinsicHeight,$.left,$.top,$.width,$.height),this.ctx.restore()}},C.prototype.renderNodeContent=function(S){return o(this,void 0,void 0,function(){var E,N,$,se,xe,tt,mt,bt,An,Sn,mi,Gn,ni,Dr,hi,Ci;return y(this,function(Vn){switch(Vn.label){case 0:this.applyEffects(S.getEffects(4)),N=S.curves,$=(E=S.container).styles,se=0,xe=E.textNodes,Vn.label=1;case 1:return se0&&Ic>0&&(Fc=$.ctx.createRadialGradient(Xs+So,Ks+la,0,Xs+So,Ks+la,Tc),Gd(tt.stops,2*Tc).forEach(function(tp){return Fc.addColorStop(tp.stop,us(tp.color))}),$.path(Qo),$.ctx.fillStyle=Fc,Tc!==Ic?(nu=S.bounds.left+.5*S.bounds.width,Ad=S.bounds.top+.5*S.bounds.height,Ls=1/(iu=Ic/Tc),$.ctx.save(),$.ctx.translate(nu,Ad),$.ctx.transform(1,0,0,iu,0,0),$.ctx.translate(-nu,-Ad),$.ctx.fillRect(Xs,Ls*(Ks-Ad)+Ad,$r,xs*Ls),$.ctx.restore()):$.ctx.fill())):(An=am(S,E,[null,null,null]),Qo=An[0],So=An[1],la=An[2],Sn=Xx(tt.angle,$r=An[3],xs=An[4]),mi=Sn[0],Gn=Sn[1],ni=Sn[2],Dr=Sn[3],hi=Sn[4],(Ci=document.createElement("canvas")).width=$r,Ci.height=xs,Vn=Ci.getContext("2d"),mr=Vn.createLinearGradient(Gn,Dr,ni,hi),Gd(tt.stops,mi).forEach(function(tp){return mr.addColorStop(tp.stop,us(tp.color))}),Vn.fillStyle=mr,Vn.fillRect(0,0,$r,xs),$r>0&&xs>0&&(yr=$.ctx.createPattern(Ci,"repeat"),$.renderRepeat(Qo,yr,So,la))),Dc.label=6;case 6:return E--,[2]}})},$=this,se=0,xe=S.styles.backgroundImage.slice(0).reverse(),Xe.label=1;case 1:return se0?2!==tt.style?[3,5]:[4,this.renderDashedDottedBorder(tt.color,tt.width,xe,S.curves,2)]:[3,11]:[3,13];case 4:return bt.sent(),[3,11];case 5:return 3!==tt.style?[3,7]:[4,this.renderDashedDottedBorder(tt.color,tt.width,xe,S.curves,3)];case 6:return bt.sent(),[3,11];case 7:return 4!==tt.style?[3,9]:[4,this.renderDoubleBorder(tt.color,tt.width,xe,S.curves)];case 8:return bt.sent(),[3,11];case 9:return[4,this.renderSolidBorder(tt.color,xe,S.curves)];case 10:bt.sent(),bt.label=11;case 11:xe++,bt.label=12;case 12:return ge++,[3,3];case 13:return[2]}})})},C.prototype.renderDashedDottedBorder=function(S,E,N,$,se){return o(this,void 0,void 0,function(){var xe,ge,Xe,tt,mt,bt,yn,An,Sn,mi,Gn,ni,Dr,hi,Ci,Vn;return y(this,function(mr){return this.ctx.save(),xe=function(M,C){switch(C){case 0:return om(M.topLeftBorderStroke,M.topRightBorderStroke);case 1:return om(M.topRightBorderStroke,M.bottomRightBorderStroke);case 2:return om(M.bottomRightBorderStroke,M.bottomLeftBorderStroke);default:return om(M.bottomLeftBorderStroke,M.topLeftBorderStroke)}}($,N),ge=fh($,N),2===se&&(this.path(ge),this.ctx.clip()),Ta(ge[0])?(Xe=ge[0].start.x,tt=ge[0].start.y):(Xe=ge[0].x,tt=ge[0].y),Ta(ge[1])?(mt=ge[1].end.x,bt=ge[1].end.y):(mt=ge[1].x,bt=ge[1].y),yn=0===N||2===N?Math.abs(Xe-mt):Math.abs(tt-bt),this.ctx.beginPath(),this.formatPath(3===se?xe:ge.slice(0,2)),An=E<3?3*E:2*E,Sn=E<3?2*E:E,3===se&&(An=E,Sn=E),mi=!0,yn<=2*An?mi=!1:yn<=2*An+Sn?(An*=Gn=yn/(2*An+Sn),Sn*=Gn):(ni=Math.floor((yn+Sn)/(An+Sn)),Dr=(yn-ni*An)/(ni-1),Sn=(hi=(yn-(ni+1)*An)/ni)<=0||Math.abs(Sn-Dr){function Ee(Le){return Array.isArray(Le)?Le:[Le]}const y=/^\s+$/,Z=/(?:[^\\]|^)\\$/,U=/^\\!/,L=/^\\#/,Y=/\r?\n/g,V=/^\.*\/|^\.+$/;let z="node-ignore";typeof Symbol<"u"&&(z=Symbol.for("node-ignore"));const G=z,ne=/([0-z])-([0-z])/g,re=()=>!1,Be=[[/^\uFEFF/,()=>""],[/((?:\\\\)*?)(\\?\s+)$/,(Le,pt,xt)=>pt+(0===xt.indexOf("\\")?" ":"")],[/(\\+?)\s/g,(Le,pt)=>{const{length:xt}=pt;return pt.slice(0,xt-xt%2)+" "}],[/[\\$.|*+(){^]/g,Le=>`\\${Le}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(Le,pt,xt)=>pt+6pt+xt.replace(/\\\*/g,"[^\\/]*")],[/\\\\\\(?=[$.|*+(){^])/g,()=>"\\"],[/\\\\/g,()=>"\\"],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(Le,pt,xt,Ut,Pt)=>"\\"===pt?`\\[${xt}${(Le=>{const{length:pt}=Le;return Le.slice(0,pt-pt%2)})(Ut)}${Pt}`:"]"===Pt&&Ut.length%2==0?`[${(Le=>Le.replace(ne,(pt,xt,Ut)=>xt.charCodeAt(0)<=Ut.charCodeAt(0)?pt:""))(xt)}${Ut}]`:"[]"],[/(?:[^*])$/,Le=>/\/$/.test(Le)?`${Le}$`:`${Le}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(Le,pt)=>(pt?`${pt}[^/]+`:"[^/]*")+"(?=$|\\/$)"]],Ie=Object.create(null),Je=Le=>"string"==typeof Le;class $e{constructor(pt,xt,Ut,Pt){this.origin=pt,this.pattern=xt,this.negative=Ut,this.regex=Pt}}const at=(Le,pt)=>{throw new pt(Le)},We=(Le,pt,xt)=>Je(Le)?Le?!We.isNotRelative(Le)||xt(`path should be a \`path.relative()\`d string, but got "${pt}"`,RangeError):xt("path must not be empty",TypeError):xt(`path must be a string, but got \`${pt}\``,TypeError),ve=Le=>V.test(Le);We.isNotRelative=ve,We.convert=Le=>Le;class he{constructor({ignorecase:pt=!0,ignoreCase:xt=pt,allowRelativePaths:Ut=!1}={}){((Le,pt)=>{Object.defineProperty(this,pt,{value:!0})})(0,G),this._rules=[],this._ignoreCase=xt,this._allowRelativePaths=Ut,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(pt){if(pt&&pt[G])return this._rules=this._rules.concat(pt._rules),void(this._added=!0);if((Le=pt)&&Je(Le)&&!y.test(Le)&&!Z.test(Le)&&0!==Le.indexOf("#")){const xt=((Le,pt)=>{const xt=Le;let Ut=!1;0===Le.indexOf("!")&&(Ut=!0,Le=Le.substr(1));const Pt=((Le,pt)=>{let xt=Ie[Le];return xt||(xt=Be.reduce((Ut,[Pt,fn])=>Ut.replace(Pt,fn.bind(Le)),Le),Ie[Le]=xt),pt?new RegExp(xt,"i"):new RegExp(xt)})(Le=Le.replace(U,"!").replace(L,"#"),pt);return new $e(xt,Le,Ut,Pt)})(pt,this._ignoreCase);this._added=!0,this._rules.push(xt)}var Le}add(pt){return this._added=!1,Ee(Je(pt)?(Le=pt,Le.split(Y)):pt).forEach(this._addPattern,this),this._added&&this._initCache(),this;var Le}addPattern(pt){return this.add(pt)}_testOne(pt,xt){let Ut=!1,Pt=!1;return this._rules.forEach(fn=>{const{negative:jn}=fn;Pt===jn&&Ut!==Pt||jn&&!Ut&&!Pt&&!xt||fn.regex.test(pt)&&(Ut=!jn,Pt=jn)}),{ignored:Ut,unignored:Pt}}_test(pt,xt,Ut,Pt){const fn=pt&&We.convert(pt);return We(fn,pt,this._allowRelativePaths?re:at),this._t(fn,xt,Ut,Pt)}_t(pt,xt,Ut,Pt){if(pt in xt)return xt[pt];if(Pt||(Pt=pt.split("/")),Pt.pop(),!Pt.length)return xt[pt]=this._testOne(pt,Ut);const fn=this._t(Pt.join("/")+"/",xt,Ut,Pt);return xt[pt]=fn.ignored?fn:this._testOne(pt,Ut)}ignores(pt){return this._test(pt,this._ignoreCache,!1).ignored}createFilter(){return pt=>!this.ignores(pt)}filter(pt){return Ee(pt).filter(this.createFilter())}test(pt){return this._test(pt,this._testCache,!0)}}const Qe=Le=>new he(Le);if(Qe.isPathValid=Le=>We(Le&&We.convert(Le),Le,re),Qe.default=Qe,nt.exports=Qe,typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||"win32"===process.platform)){We.convert=xt=>/^\\\\\?\\/.test(xt)||/["<>|\u0000-\u001F]+/u.test(xt)?xt:xt.replace(/\\/g,"/");const pt=/^[a-z]:\//i;We.isNotRelative=xt=>pt.test(xt)||ve(xt)}},8749:nt=>{function Ee(j){return!!j.constructor&&"function"==typeof j.constructor.isBuffer&&j.constructor.isBuffer(j)}nt.exports=function(j){return null!=j&&(Ee(j)||function v(j){return"function"==typeof j.readFloatLE&&"function"==typeof j.slice&&Ee(j.slice(0,0))}(j)||!!j._isBuffer)}},4331:nt=>{"use strict";var Ee=nt.exports=function(o,y,Z){"function"==typeof y&&(Z=y,y={}),v(y,"function"==typeof(Z=y.cb||Z)?Z:Z.pre||function(){},Z.post||function(){},o,"",o)};function v(o,y,Z,U,L,Y,V,X,z,G){if(U&&"object"==typeof U&&!Array.isArray(U)){for(var Q in y(U,L,Y,V,X,z,G),U){var ne=U[Q];if(Array.isArray(ne)){if(Q in Ee.arrayKeywords)for(var re=0;re{var j,o,y,Z,U;j=v(9928),o=v(7468).utf8,y=v(8749),Z=v(7468).bin,(U=function(L,Y){L.constructor==String?L=Y&&"binary"===Y.encoding?Z.stringToBytes(L):o.stringToBytes(L):y(L)?L=Array.prototype.slice.call(L,0):!Array.isArray(L)&&L.constructor!==Uint8Array&&(L=L.toString());for(var V=j.bytesToWords(L),X=8*L.length,z=1732584193,G=-271733879,Q=-1732584194,ne=271733878,re=0;re>>24)|4278255360&(V[re]<<24|V[re]>>>8);V[X>>>5]|=128<>>9<<4)]=X;var me=U._ff,we=U._gg,Be=U._hh,Ie=U._ii;for(re=0;re>>0,G=G+Je>>>0,Q=Q+He>>>0,ne=ne+qe>>>0}return j.endian([z,G,Q,ne])})._ff=function(L,Y,V,X,z,G,Q){var ne=L+(Y&V|~Y&X)+(z>>>0)+Q;return(ne<>>32-G)+Y},U._gg=function(L,Y,V,X,z,G,Q){var ne=L+(Y&X|V&~X)+(z>>>0)+Q;return(ne<>>32-G)+Y},U._hh=function(L,Y,V,X,z,G,Q){var ne=L+(Y^V^X)+(z>>>0)+Q;return(ne<>>32-G)+Y},U._ii=function(L,Y,V,X,z,G,Q){var ne=L+(V^(Y|~X))+(z>>>0)+Q;return(ne<>>32-G)+Y},U._blocksize=16,U._digestsize=16,nt.exports=function(L,Y){if(null==L)throw new Error("Illegal argument "+L);var V=j.wordsToBytes(U(L,Y));return Y&&Y.asBytes?V:Y&&Y.asString?Z.bytesToString(V):j.bytesToHex(V)}},8314:(nt,Ee,v)=>{const o=v(2836),y=v(9460),Z=v(7030),U=v(6511);function L(Y,V,X,z,G){const Q=[].slice.call(arguments,1),ne=Q.length,re="function"==typeof Q[ne-1];if(!re&&!o())throw new Error("Callback required as last argument");if(!re){if(ne<1)throw new Error("Too few arguments provided");return 1===ne?(X=V,V=z=void 0):2===ne&&!V.getContext&&(z=X,X=V,V=void 0),new Promise(function(me,we){try{const Be=y.create(X,z);me(Y(Be,V,z))}catch(Be){we(Be)}})}if(ne<2)throw new Error("Too few arguments provided");2===ne?(G=X,X=V,V=z=void 0):3===ne&&(V.getContext&&typeof G>"u"?(G=z,z=void 0):(G=z,z=X,X=V,V=void 0));try{const me=y.create(X,z);G(null,Y(me,V,z))}catch(me){G(me)}}Ee.mo=L.bind(null,Z.render),L.bind(null,Z.renderToDataURL),L.bind(null,function(Y,V,X){return U.render(Y,X)})},2836:nt=>{nt.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},6214:(nt,Ee,v)=>{const j=v(9089).getSymbolSize;Ee.getRowColCoords=function(y){if(1===y)return[];const Z=Math.floor(y/7)+2,U=j(y),L=145===U?26:2*Math.ceil((U-13)/(2*Z-2)),Y=[U-7];for(let V=1;V{const j=v(4058),o=["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 y(Z){this.mode=j.ALPHANUMERIC,this.data=Z}y.getBitsLength=function(U){return 11*Math.floor(U/2)+U%2*6},y.prototype.getLength=function(){return this.data.length},y.prototype.getBitsLength=function(){return y.getBitsLength(this.data.length)},y.prototype.write=function(U){let L;for(L=0;L+2<=this.data.length;L+=2){let Y=45*o.indexOf(this.data[L]);Y+=o.indexOf(this.data[L+1]),U.put(Y,11)}this.data.length%2&&U.put(o.indexOf(this.data[L]),6)},nt.exports=y},4662:nt=>{function Ee(){this.buffer=[],this.length=0}Ee.prototype={get:function(v){const j=Math.floor(v/8);return 1==(this.buffer[j]>>>7-v%8&1)},put:function(v,j){for(let o=0;o>>j-o-1&1))},getLengthInBits:function(){return this.length},putBit:function(v){const j=Math.floor(this.length/8);this.buffer.length<=j&&this.buffer.push(0),v&&(this.buffer[j]|=128>>>this.length%8),this.length++}},nt.exports=Ee},5941:nt=>{function Ee(v){if(!v||v<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=v,this.data=new Uint8Array(v*v),this.reservedBit=new Uint8Array(v*v)}Ee.prototype.set=function(v,j,o,y){const Z=v*this.size+j;this.data[Z]=o,y&&(this.reservedBit[Z]=!0)},Ee.prototype.get=function(v,j){return this.data[v*this.size+j]},Ee.prototype.xor=function(v,j,o){this.data[v*this.size+j]^=o},Ee.prototype.isReserved=function(v,j){return this.reservedBit[v*this.size+j]},nt.exports=Ee},4969:(nt,Ee,v)=>{const j=v(4058);function o(y){this.mode=j.BYTE,this.data="string"==typeof y?(new TextEncoder).encode(y):new Uint8Array(y)}o.getBitsLength=function(Z){return 8*Z},o.prototype.getLength=function(){return this.data.length},o.prototype.getBitsLength=function(){return o.getBitsLength(this.data.length)},o.prototype.write=function(y){for(let Z=0,U=this.data.length;Z{const j=v(7424),o=[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],y=[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];Ee.getBlocksCount=function(U,L){switch(L){case j.L:return o[4*(U-1)+0];case j.M:return o[4*(U-1)+1];case j.Q:return o[4*(U-1)+2];case j.H:return o[4*(U-1)+3];default:return}},Ee.getTotalCodewordsCount=function(U,L){switch(L){case j.L:return y[4*(U-1)+0];case j.M:return y[4*(U-1)+1];case j.Q:return y[4*(U-1)+2];case j.H:return y[4*(U-1)+3];default:return}}},7424:(nt,Ee)=>{Ee.L={bit:1},Ee.M={bit:0},Ee.Q={bit:3},Ee.H={bit:2},Ee.isValid=function(o){return o&&typeof o.bit<"u"&&o.bit>=0&&o.bit<4},Ee.from=function(o,y){if(Ee.isValid(o))return o;try{return function v(j){if("string"!=typeof j)throw new Error("Param is not a string");switch(j.toLowerCase()){case"l":case"low":return Ee.L;case"m":case"medium":return Ee.M;case"q":case"quartile":return Ee.Q;case"h":case"high":return Ee.H;default:throw new Error("Unknown EC Level: "+j)}}(o)}catch{return y}}},6269:(nt,Ee,v)=>{const j=v(9089).getSymbolSize;Ee.getPositions=function(Z){const U=j(Z);return[[0,0],[U-7,0],[0,U-7]]}},6254:(nt,Ee,v)=>{const j=v(9089),Z=j.getBCHDigit(1335);Ee.getEncodedBits=function(L,Y){const V=L.bit<<3|Y;let X=V<<10;for(;j.getBCHDigit(X)-Z>=0;)X^=1335<{const v=new Uint8Array(512),j=new Uint8Array(256);(function(){let y=1;for(let Z=0;Z<255;Z++)v[Z]=y,j[y]=Z,y<<=1,256&y&&(y^=285);for(let Z=255;Z<512;Z++)v[Z]=v[Z-255]})(),Ee.log=function(y){if(y<1)throw new Error("log("+y+")");return j[y]},Ee.exp=function(y){return v[y]},Ee.mul=function(y,Z){return 0===y||0===Z?0:v[j[y]+j[Z]]}},3264:(nt,Ee,v)=>{const j=v(4058),o=v(9089);function y(Z){this.mode=j.KANJI,this.data=Z}y.getBitsLength=function(U){return 13*U},y.prototype.getLength=function(){return this.data.length},y.prototype.getBitsLength=function(){return y.getBitsLength(this.data.length)},y.prototype.write=function(Z){let U;for(U=0;U=33088&&L<=40956)L-=33088;else{if(!(L>=57408&&L<=60351))throw new Error("Invalid SJIS character: "+this.data[U]+"\nMake sure your charset is UTF-8");L-=49472}L=192*(L>>>8&255)+(255&L),Z.put(L,13)}},nt.exports=y},3361:(nt,Ee)=>{Ee.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};function j(o,y,Z){switch(o){case Ee.Patterns.PATTERN000:return(y+Z)%2==0;case Ee.Patterns.PATTERN001:return y%2==0;case Ee.Patterns.PATTERN010:return Z%3==0;case Ee.Patterns.PATTERN011:return(y+Z)%3==0;case Ee.Patterns.PATTERN100:return(Math.floor(y/2)+Math.floor(Z/3))%2==0;case Ee.Patterns.PATTERN101:return y*Z%2+y*Z%3==0;case Ee.Patterns.PATTERN110:return(y*Z%2+y*Z%3)%2==0;case Ee.Patterns.PATTERN111:return(y*Z%3+(y+Z)%2)%2==0;default:throw new Error("bad maskPattern:"+o)}}Ee.isValid=function(y){return null!=y&&""!==y&&!isNaN(y)&&y>=0&&y<=7},Ee.from=function(y){return Ee.isValid(y)?parseInt(y,10):void 0},Ee.getPenaltyN1=function(y){const Z=y.size;let U=0,L=0,Y=0,V=null,X=null;for(let z=0;z=5&&(U+=L-5+3),V=Q,L=1),Q=y.get(G,z),Q===X?Y++:(Y>=5&&(U+=Y-5+3),X=Q,Y=1)}L>=5&&(U+=L-5+3),Y>=5&&(U+=Y-5+3)}return U},Ee.getPenaltyN2=function(y){const Z=y.size;let U=0;for(let L=0;L=10&&(1488===L||93===L)&&U++,Y=Y<<1&2047|y.get(X,V),X>=10&&(1488===Y||93===Y)&&U++}return 40*U},Ee.getPenaltyN4=function(y){let Z=0;const U=y.data.length;for(let Y=0;Y{const j=v(377),o=v(9359);Ee.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},Ee.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},Ee.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},Ee.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},Ee.MIXED={bit:-1},Ee.getCharCountIndicator=function(U,L){if(!U.ccBits)throw new Error("Invalid mode: "+U);if(!j.isValid(L))throw new Error("Invalid version: "+L);return L>=1&&L<10?U.ccBits[0]:L<27?U.ccBits[1]:U.ccBits[2]},Ee.getBestModeForData=function(U){return o.testNumeric(U)?Ee.NUMERIC:o.testAlphanumeric(U)?Ee.ALPHANUMERIC:o.testKanji(U)?Ee.KANJI:Ee.BYTE},Ee.toString=function(U){if(U&&U.id)return U.id;throw new Error("Invalid mode")},Ee.isValid=function(U){return U&&U.bit&&U.ccBits},Ee.from=function(U,L){if(Ee.isValid(U))return U;try{return function y(Z){if("string"!=typeof Z)throw new Error("Param is not a string");switch(Z.toLowerCase()){case"numeric":return Ee.NUMERIC;case"alphanumeric":return Ee.ALPHANUMERIC;case"kanji":return Ee.KANJI;case"byte":return Ee.BYTE;default:throw new Error("Unknown mode: "+Z)}}(U)}catch{return L}}},6628:(nt,Ee,v)=>{const j=v(4058);function o(y){this.mode=j.NUMERIC,this.data=y.toString()}o.getBitsLength=function(Z){return 10*Math.floor(Z/3)+(Z%3?Z%3*3+1:0)},o.prototype.getLength=function(){return this.data.length},o.prototype.getBitsLength=function(){return o.getBitsLength(this.data.length)},o.prototype.write=function(Z){let U,L,Y;for(U=0;U+3<=this.data.length;U+=3)L=this.data.substr(U,3),Y=parseInt(L,10),Z.put(Y,10);const V=this.data.length-U;V>0&&(L=this.data.substr(U),Y=parseInt(L,10),Z.put(Y,3*V+1))},nt.exports=o},1744:(nt,Ee,v)=>{const j=v(6686);Ee.mul=function(y,Z){const U=new Uint8Array(y.length+Z.length-1);for(let L=0;L=0;){const L=U[0];for(let V=0;V{const j=v(9089),o=v(7424),y=v(4662),Z=v(5941),U=v(6214),L=v(6269),Y=v(3361),V=v(3677),X=v(6289),z=v(1252),G=v(6254),Q=v(4058),ne=v(2868);function Ie($e,je,at){const We=$e.size,ve=G.getEncodedBits(je,at);let he,Qe;for(he=0;he<15;he++)Qe=1==(ve>>he&1),$e.set(he<6?he:he<8?he+1:We-15+he,8,Qe,!0),$e.set(8,he<8?We-he-1:he<9?15-he-1+1:15-he-1,Qe,!0);$e.set(We-8,8,1,!0)}function qe($e,je,at,We){let ve;if(Array.isArray($e))ve=ne.fromArray($e);else{if("string"!=typeof $e)throw new Error("Invalid data");{let pt=je;if(!pt){const xt=ne.rawSplit($e);pt=z.getBestVersionForData(xt,at)}ve=ne.fromString($e,pt||40)}}const he=z.getBestVersionForData(ve,at);if(!he)throw new Error("The amount of data is too big to be stored in a QR Code");if(je){if(je=0&&Te<=6&&(0===Le||6===Le)||Le>=0&&Le<=6&&(0===Te||6===Te)||Te>=2&&Te<=4&&Le>=2&&Le<=4,!0)}}(Le,je),function me($e){const je=$e.size;for(let at=8;at=7&&function Be($e,je){const at=$e.size,We=z.getEncodedBits(je);let ve,he,Qe;for(let Te=0;Te<18;Te++)ve=Math.floor(Te/3),he=Te%3+at-8-3,Qe=1==(We>>Te&1),$e.set(ve,he,Qe,!0),$e.set(he,ve,Qe,!0)}(Le,je),function Ne($e,je){const at=$e.size;let We=-1,ve=at-1,he=7,Qe=0;for(let Te=at-1;Te>0;Te-=2)for(6===Te&&Te--;;){for(let Le=0;Le<2;Le++)if(!$e.isReserved(ve,Te-Le)){let pt=!1;Qe>>he&1)),$e.set(ve,Te-Le,pt),he--,-1===he&&(Qe++,he=7)}if(ve+=We,ve<0||at<=ve){ve-=We,We=-We;break}}}(Le,Qe),isNaN(We)&&(We=Y.getBestMask(Le,Ie.bind(null,Le,at))),Y.applyMask(We,Le),Ie(Le,at,We),{modules:Le,version:je,errorCorrectionLevel:at,maskPattern:We,segments:ve}}Ee.create=function(je,at){if(typeof je>"u"||""===je)throw new Error("No input text");let ve,he,We=o.M;return typeof at<"u"&&(We=o.from(at.errorCorrectionLevel,o.M),ve=z.from(at.version),he=Y.from(at.maskPattern),at.toSJISFunc&&j.setToSJISFunction(at.toSJISFunc)),qe(je,ve,We,he)}},6289:(nt,Ee,v)=>{const j=v(1744);function o(y){this.genPoly=void 0,this.degree=y,this.degree&&this.initialize(this.degree)}o.prototype.initialize=function(Z){this.degree=Z,this.genPoly=j.generateECPolynomial(this.degree)},o.prototype.encode=function(Z){if(!this.genPoly)throw new Error("Encoder not initialized");const U=new Uint8Array(Z.length+this.degree);U.set(Z);const L=j.mod(U,this.genPoly),Y=this.degree-L.length;if(Y>0){const V=new Uint8Array(this.degree);return V.set(L,Y),V}return L},nt.exports=o},9359:(nt,Ee)=>{const v="[0-9]+";let o="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";o=o.replace(/u/g,"\\u");const y="(?:(?![A-Z0-9 $%*+\\-./:]|"+o+")(?:.|[\r\n]))+";Ee.KANJI=new RegExp(o,"g"),Ee.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),Ee.BYTE=new RegExp(y,"g"),Ee.NUMERIC=new RegExp(v,"g"),Ee.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");const Z=new RegExp("^"+o+"$"),U=new RegExp("^"+v+"$"),L=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");Ee.testKanji=function(V){return Z.test(V)},Ee.testNumeric=function(V){return U.test(V)},Ee.testAlphanumeric=function(V){return L.test(V)}},2868:(nt,Ee,v)=>{const j=v(4058),o=v(6628),y=v(1018),Z=v(4969),U=v(3264),L=v(9359),Y=v(9089),V=v(243);function X(Be){return unescape(encodeURIComponent(Be)).length}function z(Be,Ie,Ne){const Je=[];let He;for(;null!==(He=Be.exec(Ne));)Je.push({data:He[0],index:He.index,mode:Ie,length:He[0].length});return Je}function G(Be){const Ie=z(L.NUMERIC,j.NUMERIC,Be),Ne=z(L.ALPHANUMERIC,j.ALPHANUMERIC,Be);let Je,He;return Y.isKanjiModeEnabled()?(Je=z(L.BYTE,j.BYTE,Be),He=z(L.KANJI,j.KANJI,Be)):(Je=z(L.BYTE_KANJI,j.BYTE,Be),He=[]),Ie.concat(Ne,Je,He).sort(function($e,je){return $e.index-je.index}).map(function($e){return{data:$e.data,mode:$e.mode,length:$e.length}})}function Q(Be,Ie){switch(Ie){case j.NUMERIC:return o.getBitsLength(Be);case j.ALPHANUMERIC:return y.getBitsLength(Be);case j.KANJI:return U.getBitsLength(Be);case j.BYTE:return Z.getBitsLength(Be)}}function we(Be,Ie){let Ne;const Je=j.getBestModeForData(Be);if(Ne=j.from(Ie,Je),Ne!==j.BYTE&&Ne.bit=0?Ie[Ie.length-1]:null;return Je&&Je.mode===Ne.mode?(Ie[Ie.length-1].data+=Ne.data,Ie):(Ie.push(Ne),Ie)},[])}(je))},Ee.rawSplit=function(Ie){return Ee.fromArray(G(Ie,Y.isKanjiModeEnabled()))}},9089:(nt,Ee)=>{let v;const j=[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];Ee.getSymbolSize=function(y){if(!y)throw new Error('"version" cannot be null or undefined');if(y<1||y>40)throw new Error('"version" should be in range from 1 to 40');return 4*y+17},Ee.getSymbolTotalCodewords=function(y){return j[y]},Ee.getBCHDigit=function(o){let y=0;for(;0!==o;)y++,o>>>=1;return y},Ee.setToSJISFunction=function(y){if("function"!=typeof y)throw new Error('"toSJISFunc" is not a valid function.');v=y},Ee.isKanjiModeEnabled=function(){return typeof v<"u"},Ee.toSJIS=function(y){return v(y)}},377:(nt,Ee)=>{Ee.isValid=function(j){return!isNaN(j)&&j>=1&&j<=40}},1252:(nt,Ee,v)=>{const j=v(9089),o=v(3677),y=v(7424),Z=v(4058),U=v(377),Y=j.getBCHDigit(7973);function X(Q,ne){return Z.getCharCountIndicator(Q,ne)+4}function z(Q,ne){let re=0;return Q.forEach(function(me){const we=X(me.mode,ne);re+=we+me.getBitsLength()}),re}Ee.from=function(ne,re){return U.isValid(ne)?parseInt(ne,10):re},Ee.getCapacity=function(ne,re,me){if(!U.isValid(ne))throw new Error("Invalid QR Code version");typeof me>"u"&&(me=Z.BYTE);const Ie=8*(j.getSymbolTotalCodewords(ne)-o.getTotalCodewordsCount(ne,re));if(me===Z.MIXED)return Ie;const Ne=Ie-X(me,ne);switch(me){case Z.NUMERIC:return Math.floor(Ne/10*3);case Z.ALPHANUMERIC:return Math.floor(Ne/11*2);case Z.KANJI:return Math.floor(Ne/13);default:return Math.floor(Ne/8)}},Ee.getBestVersionForData=function(ne,re){let me;const we=y.from(re,y.M);if(Array.isArray(ne)){if(ne.length>1)return function G(Q,ne){for(let re=1;re<=40;re++)if(z(Q,re)<=Ee.getCapacity(re,ne,Z.MIXED))return re}(ne,we);if(0===ne.length)return 1;me=ne[0]}else me=ne;return function V(Q,ne,re){for(let me=1;me<=40;me++)if(ne<=Ee.getCapacity(me,re,Q))return me}(me.mode,me.getLength(),we)},Ee.getEncodedBits=function(ne){if(!U.isValid(ne)||ne<7)throw new Error("Invalid QR Code version");let re=ne<<12;for(;j.getBCHDigit(re)-Y>=0;)re^=7973<{const j=v(7077);Ee.render=function(U,L,Y){let V=Y,X=L;typeof V>"u"&&(!L||!L.getContext)&&(V=L,L=void 0),L||(X=function y(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}()),V=j.getOptions(V);const z=j.getImageWidth(U.modules.size,V),G=X.getContext("2d"),Q=G.createImageData(z,z);return j.qrToImageData(Q.data,U,V),function o(Z,U,L){Z.clearRect(0,0,U.width,U.height),U.style||(U.style={}),U.height=L,U.width=L,U.style.height=L+"px",U.style.width=L+"px"}(G,X,z),G.putImageData(Q,0,0),X},Ee.renderToDataURL=function(U,L,Y){let V=Y;return typeof V>"u"&&(!L||!L.getContext)&&(V=L,L=void 0),V||(V={}),Ee.render(U,L,V).toDataURL(V.type||"image/png",(V.rendererOpts||{}).quality)}},6511:(nt,Ee,v)=>{const j=v(7077);function o(U,L){const Y=U.a/255,V=L+'="'+U.hex+'"';return Y<1?V+" "+L+'-opacity="'+Y.toFixed(2).slice(1)+'"':V}function y(U,L,Y){let V=U+L;return typeof Y<"u"&&(V+=" "+Y),V}Ee.render=function(L,Y,V){const X=j.getOptions(Y),z=L.modules.size,G=L.modules.data,Q=z+2*X.margin,ne=X.color.light.a?"':"",re="0&&ne>0&&U[Q-1]||(V+=z?y("M",ne+Y,.5+re+Y):y("m",X,0),X=0,z=!1),ne+1',Be=''+ne+re+"\n";return"function"==typeof V&&V(null,Be),Be}},7077:(nt,Ee)=>{function v(j){if("number"==typeof j&&(j=j.toString()),"string"!=typeof j)throw new Error("Color should be defined as hex string");let o=j.slice().replace("#","").split("");if(o.length<3||5===o.length||o.length>8)throw new Error("Invalid hex color: "+j);(3===o.length||4===o.length)&&(o=Array.prototype.concat.apply([],o.map(function(Z){return[Z,Z]}))),6===o.length&&o.push("F","F");const y=parseInt(o.join(""),16);return{r:y>>24&255,g:y>>16&255,b:y>>8&255,a:255&y,hex:"#"+o.slice(0,6).join("")}}Ee.getOptions=function(o){o||(o={}),o.color||(o.color={});const Z=o.width&&o.width>=21?o.width:void 0;return{width:Z,scale:Z?4:o.scale||4,margin:typeof o.margin>"u"||null===o.margin||o.margin<0?4:o.margin,color:{dark:v(o.color.dark||"#000000ff"),light:v(o.color.light||"#ffffffff")},type:o.type,rendererOpts:o.rendererOpts||{}}},Ee.getScale=function(o,y){return y.width&&y.width>=o+2*y.margin?y.width/(o+2*y.margin):y.scale},Ee.getImageWidth=function(o,y){const Z=Ee.getScale(o,y);return Math.floor((o+2*y.margin)*Z)},Ee.qrToImageData=function(o,y,Z){const U=y.modules.size,L=y.modules.data,Y=Ee.getScale(U,Z),V=Math.floor((U+2*Z.margin)*Y),X=Z.margin*Y,z=[Z.color.light,Z.color.dark];for(let G=0;G=X&&Q>=X&&G{"use strict";v.d(Ee,{t:()=>o});var j=v(1413);class o extends j.B{constructor(Z){super(),this._value=Z}get value(){return this.getValue()}_subscribe(Z){const U=super._subscribe(Z);return!U.closed&&Z.next(this._value),U}getValue(){const{hasError:Z,thrownError:U,_value:L}=this;if(Z)throw U;return this._throwIfClosed(),L}next(Z){super.next(this._value=Z)}}},4226:(nt,Ee,v)=>{"use strict";v.d(Ee,{c:()=>z});var j=v(7707),o=v(8359),y=v(3494),Z=v(3669);var Y=v(1026),V=v(8071),X=v(9786);let z=(()=>{class re{constructor(we){we&&(this._subscribe=we)}lift(we){const Be=new re;return Be.source=this,Be.operator=we,Be}subscribe(we,Be,Ie){const Ne=function ne(re){return re&&re instanceof j.vU||function Q(re){return re&&(0,V.T)(re.next)&&(0,V.T)(re.error)&&(0,V.T)(re.complete)}(re)&&(0,o.Uv)(re)}(we)?we:new j.Ms(we,Be,Ie);return(0,X.Y)(()=>{const{operator:Je,source:He}=this;Ne.add(Je?Je.call(Ne,He):He?this._subscribe(Ne):this._trySubscribe(Ne))}),Ne}_trySubscribe(we){try{return this._subscribe(we)}catch(Be){we.error(Be)}}forEach(we,Be){return new(Be=G(Be))((Ie,Ne)=>{const Je=new j.Ms({next:He=>{try{we(He)}catch(qe){Ne(qe),Je.unsubscribe()}},error:Ne,complete:Ie});this.subscribe(Je)})}_subscribe(we){var Be;return null===(Be=this.source)||void 0===Be?void 0:Be.subscribe(we)}[y.s](){return this}pipe(...we){return function L(re){return 0===re.length?Z.D:1===re.length?re[0]:function(we){return re.reduce((Be,Ie)=>Ie(Be),we)}}(we)(this)}toPromise(we){return new(we=G(we))((Be,Ie)=>{let Ne;this.subscribe(Je=>Ne=Je,Je=>Ie(Je),()=>Be(Ne))})}}return re.create=me=>new re(me),re})();function G(re){var me;return null!==(me=re??Y.$.Promise)&&void 0!==me?me:Promise}},1413:(nt,Ee,v)=>{"use strict";v.d(Ee,{B:()=>Y});var j=v(4226),o=v(8359);const Z=(0,v(1853).L)(X=>function(){X(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var U=v(7908),L=v(9786);let Y=(()=>{class X extends j.c{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(G){const Q=new V(this,this);return Q.operator=G,Q}_throwIfClosed(){if(this.closed)throw new Z}next(G){(0,L.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const Q of this.currentObservers)Q.next(G)}})}error(G){(0,L.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=G;const{observers:Q}=this;for(;Q.length;)Q.shift().error(G)}})}complete(){(0,L.Y)(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:G}=this;for(;G.length;)G.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var G;return(null===(G=this.observers)||void 0===G?void 0:G.length)>0}_trySubscribe(G){return this._throwIfClosed(),super._trySubscribe(G)}_subscribe(G){return this._throwIfClosed(),this._checkFinalizedStatuses(G),this._innerSubscribe(G)}_innerSubscribe(G){const{hasError:Q,isStopped:ne,observers:re}=this;return Q||ne?o.Kn:(this.currentObservers=null,re.push(G),new o.yU(()=>{this.currentObservers=null,(0,U.o)(re,G)}))}_checkFinalizedStatuses(G){const{hasError:Q,thrownError:ne,isStopped:re}=this;Q?G.error(ne):re&&G.complete()}asObservable(){const G=new j.c;return G.source=this,G}}return X.create=(z,G)=>new V(z,G),X})();class V extends Y{constructor(z,G){super(),this.destination=z,this.source=G}next(z){var G,Q;null===(Q=null===(G=this.destination)||void 0===G?void 0:G.next)||void 0===Q||Q.call(G,z)}error(z){var G,Q;null===(Q=null===(G=this.destination)||void 0===G?void 0:G.error)||void 0===Q||Q.call(G,z)}complete(){var z,G;null===(G=null===(z=this.destination)||void 0===z?void 0:z.complete)||void 0===G||G.call(z)}_subscribe(z){var G,Q;return null!==(Q=null===(G=this.source)||void 0===G?void 0:G.subscribe(z))&&void 0!==Q?Q:o.Kn}}},7707:(nt,Ee,v)=>{"use strict";v.d(Ee,{Ms:()=>we,vU:()=>Q});var j=v(8071),o=v(8359),y=v(1026),Z=v(5334),U=v(5343);const L=X("C",void 0,void 0);function X(He,qe,$e){return{kind:He,value:qe,error:$e}}var z=v(9270),G=v(9786);class Q extends o.yU{constructor(qe){super(),this.isStopped=!1,qe?(this.destination=qe,(0,o.Uv)(qe)&&qe.add(this)):this.destination=Je}static create(qe,$e,je){return new we(qe,$e,je)}next(qe){this.isStopped?Ne(function V(He){return X("N",He,void 0)}(qe),this):this._next(qe)}error(qe){this.isStopped?Ne(function Y(He){return X("E",void 0,He)}(qe),this):(this.isStopped=!0,this._error(qe))}complete(){this.isStopped?Ne(L,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(qe){this.destination.next(qe)}_error(qe){try{this.destination.error(qe)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const ne=Function.prototype.bind;function re(He,qe){return ne.call(He,qe)}class me{constructor(qe){this.partialObserver=qe}next(qe){const{partialObserver:$e}=this;if($e.next)try{$e.next(qe)}catch(je){Be(je)}}error(qe){const{partialObserver:$e}=this;if($e.error)try{$e.error(qe)}catch(je){Be(je)}else Be(qe)}complete(){const{partialObserver:qe}=this;if(qe.complete)try{qe.complete()}catch($e){Be($e)}}}class we extends Q{constructor(qe,$e,je){let at;if(super(),(0,j.T)(qe)||!qe)at={next:qe??void 0,error:$e??void 0,complete:je??void 0};else{let We;this&&y.$.useDeprecatedNextContext?(We=Object.create(qe),We.unsubscribe=()=>this.unsubscribe(),at={next:qe.next&&re(qe.next,We),error:qe.error&&re(qe.error,We),complete:qe.complete&&re(qe.complete,We)}):at=qe}this.destination=new me(at)}}function Be(He){y.$.useDeprecatedSynchronousErrorHandling?(0,G.l)(He):(0,Z.m)(He)}function Ne(He,qe){const{onStoppedNotification:$e}=y.$;$e&&z.f.setTimeout(()=>$e(He,qe))}const Je={closed:!0,next:U.l,error:function Ie(He){throw He},complete:U.l}},8359:(nt,Ee,v)=>{"use strict";v.d(Ee,{Kn:()=>L,yU:()=>U,Uv:()=>Y});var j=v(8071);const y=(0,v(1853).L)(X=>function(G){X(this),this.message=G?`${G.length} errors occurred during unsubscription:\n${G.map((Q,ne)=>`${ne+1}) ${Q.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=G});var Z=v(7908);class U{constructor(z){this.initialTeardown=z,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let z;if(!this.closed){this.closed=!0;const{_parentage:G}=this;if(G)if(this._parentage=null,Array.isArray(G))for(const re of G)re.remove(this);else G.remove(this);const{initialTeardown:Q}=this;if((0,j.T)(Q))try{Q()}catch(re){z=re instanceof y?re.errors:[re]}const{_finalizers:ne}=this;if(ne){this._finalizers=null;for(const re of ne)try{V(re)}catch(me){z=z??[],me instanceof y?z=[...z,...me.errors]:z.push(me)}}if(z)throw new y(z)}}add(z){var G;if(z&&z!==this)if(this.closed)V(z);else{if(z instanceof U){if(z.closed||z._hasParent(this))return;z._addParent(this)}(this._finalizers=null!==(G=this._finalizers)&&void 0!==G?G:[]).push(z)}}_hasParent(z){const{_parentage:G}=this;return G===z||Array.isArray(G)&&G.includes(z)}_addParent(z){const{_parentage:G}=this;this._parentage=Array.isArray(G)?(G.push(z),G):G?[G,z]:z}_removeParent(z){const{_parentage:G}=this;G===z?this._parentage=null:Array.isArray(G)&&(0,Z.o)(G,z)}remove(z){const{_finalizers:G}=this;G&&(0,Z.o)(G,z),z instanceof U&&z._removeParent(this)}}U.EMPTY=(()=>{const X=new U;return X.closed=!0,X})();const L=U.EMPTY;function Y(X){return X instanceof U||X&&"closed"in X&&(0,j.T)(X.remove)&&(0,j.T)(X.add)&&(0,j.T)(X.unsubscribe)}function V(X){(0,j.T)(X)?X():X.unsubscribe()}},1026:(nt,Ee,v)=>{"use strict";v.d(Ee,{$:()=>j});const j={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}},4360:(nt,Ee,v)=>{"use strict";v.d(Ee,{H:()=>y,_:()=>o});var j=v(7707);function o(Z,U,L,Y,V){return new y(Z,U,L,Y,V)}class y extends j.vU{constructor(U,L,Y,V,X,z){super(U),this.onFinalize=X,this.shouldUnsubscribe=z,this._next=L?function(G){try{L(G)}catch(Q){U.error(Q)}}:super._next,this._error=V?function(G){try{V(G)}catch(Q){U.error(Q)}finally{this.unsubscribe()}}:super._error,this._complete=Y?function(){try{Y()}catch(G){U.error(G)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var U;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:L}=this;super.unsubscribe(),!L&&(null===(U=this.onFinalize)||void 0===U||U.call(this))}}}},6354:(nt,Ee,v)=>{"use strict";v.d(Ee,{T:()=>y});var j=v(9974),o=v(4360);function y(Z,U){return(0,j.N)((L,Y)=>{let V=0;L.subscribe((0,o._)(Y,X=>{Y.next(Z.call(U,X,V++))}))})}},9270:(nt,Ee,v)=>{"use strict";v.d(Ee,{f:()=>j});const j={setTimeout(o,y,...Z){const{delegate:U}=j;return U?.setTimeout?U.setTimeout(o,y,...Z):setTimeout(o,y,...Z)},clearTimeout(o){const{delegate:y}=j;return(y?.clearTimeout||clearTimeout)(o)},delegate:void 0}},3494:(nt,Ee,v)=>{"use strict";v.d(Ee,{s:()=>j});const j="function"==typeof Symbol&&Symbol.observable||"@@observable"},7908:(nt,Ee,v)=>{"use strict";function j(o,y){if(o){const Z=o.indexOf(y);0<=Z&&o.splice(Z,1)}}v.d(Ee,{o:()=>j})},1853:(nt,Ee,v)=>{"use strict";function j(o){const Z=o(U=>{Error.call(U),U.stack=(new Error).stack});return Z.prototype=Object.create(Error.prototype),Z.prototype.constructor=Z,Z}v.d(Ee,{L:()=>j})},9786:(nt,Ee,v)=>{"use strict";v.d(Ee,{Y:()=>y,l:()=>Z});var j=v(1026);let o=null;function y(U){if(j.$.useDeprecatedSynchronousErrorHandling){const L=!o;if(L&&(o={errorThrown:!1,error:null}),U(),L){const{errorThrown:Y,error:V}=o;if(o=null,Y)throw V}}else U()}function Z(U){j.$.useDeprecatedSynchronousErrorHandling&&o&&(o.errorThrown=!0,o.error=U)}},3669:(nt,Ee,v)=>{"use strict";function j(o){return o}v.d(Ee,{D:()=>j})},8071:(nt,Ee,v)=>{"use strict";function j(o){return"function"==typeof o}v.d(Ee,{T:()=>j})},9974:(nt,Ee,v)=>{"use strict";v.d(Ee,{N:()=>y});var j=v(8071);function y(Z){return U=>{if(function o(Z){return(0,j.T)(Z?.lift)}(U))return U.lift(function(L){try{return Z(L,this)}catch(Y){this.error(Y)}});throw new TypeError("Unable to lift unknown Observable type")}}},5343:(nt,Ee,v)=>{"use strict";function j(){}v.d(Ee,{l:()=>j})},5334:(nt,Ee,v)=>{"use strict";v.d(Ee,{m:()=>y});var j=v(1026),o=v(9270);function y(Z){o.f.setTimeout(()=>{const{onUnhandledError:U}=j.$;if(!U)throw Z;U(Z)})}},4999:(nt,Ee)=>{"use strict";const{hasOwnProperty:v}=Object.prototype,j=me();j.configure=me,j.stringify=j,j.default=j,Ee.stringify=j,Ee.configure=me,nt.exports=j;const o=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function y(we){return we.length<5e3&&!o.test(we)?`"${we}"`:JSON.stringify(we)}function Z(we,Be){if(we.length>200||Be)return we.sort(Be);for(let Ie=1;IeNe;)we[Je]=we[Je-1],Je--;we[Je]=Ne}return we}const U=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function L(we){return void 0!==U.call(we)&&0!==we.length}function Y(we,Be,Ie){we.length= 1`)}return void 0===Ie?1/0:Ie}function Q(we){return 1===we?"1 item":`${we} items`}function me(we){const Be=function re(we){if(v.call(we,"strict")){const Be=we.strict;if("boolean"!=typeof Be)throw new TypeError('The "strict" argument must be of type boolean');if(Be)return Ie=>{let Ne="Object can not safely be stringified. Received type "+typeof Ie;throw"function"!=typeof Ie&&(Ne+=` (${Ie.toString()})`),new Error(Ne)}}}(we={...we});Be&&(void 0===we.bigint&&(we.bigint=!1),"circularValue"in we||(we.circularValue=Error));const Ie=function V(we){if(v.call(we,"circularValue")){const Be=we.circularValue;if("string"==typeof Be)return`"${Be}"`;if(null==Be)return Be;if(Be===Error||Be===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]"'}(we),Ne=function z(we,Be){let Ie;if(v.call(we,Be)&&(Ie=we[Be],"boolean"!=typeof Ie))throw new TypeError(`The "${Be}" argument must be of type boolean`);return void 0===Ie||Ie}(we,"bigint"),Je=function X(we){let Be;if(v.call(we,"deterministic")&&(Be=we.deterministic,"boolean"!=typeof Be&&"function"!=typeof Be))throw new TypeError('The "deterministic" argument must be of type boolean or comparator function');return void 0===Be||Be}(we),He="function"==typeof Je?Je:void 0,qe=G(we,"maximumDepth"),$e=G(we,"maximumBreadth");function je(Qe,Te,Le,pt,xt,Ut){let Pt=Te[Qe];switch("object"==typeof Pt&&null!==Pt&&"function"==typeof Pt.toJSON&&(Pt=Pt.toJSON(Qe)),Pt=pt.call(Te,Qe,Pt),typeof Pt){case"string":return y(Pt);case"object":{if(null===Pt)return"null";if(-1!==Le.indexOf(Pt))return Ie;let fn="",jn=",";const Qi=Ut;if(Array.isArray(Pt)){if(0===Pt.length)return"[]";if(qe$e&&(fn+=`${jn}"... ${Q(Pt.length-$e-1)} not stringified"`),""!==xt&&(fn+=`\n${Qi}`),Le.pop(),`[${fn}]`}let di=Object.keys(Pt);const Di=di.length;if(0===Di)return"{}";if(qe$e&&(fn+=`${li}"...":${ii}"${Q(Di-$e)} not stringified"`,li=jn),""!==xt&&li.length>1&&(fn=`\n${Ut}${fn}\n${Qi}`),Le.pop(),`{${fn}}`}case"number":return isFinite(Pt)?String(Pt):Be?Be(Pt):"null";case"boolean":return!0===Pt?"true":"false";case"undefined":return;case"bigint":if(Ne)return String(Pt);default:return Be?Be(Pt):void 0}}function at(Qe,Te,Le,pt,xt,Ut){switch("object"==typeof Te&&null!==Te&&"function"==typeof Te.toJSON&&(Te=Te.toJSON(Qe)),typeof Te){case"string":return y(Te);case"object":{if(null===Te)return"null";if(-1!==Le.indexOf(Te))return Ie;const Pt=Ut;let fn="",jn=",";if(Array.isArray(Te)){if(0===Te.length)return"[]";if(qe$e&&(fn+=`${jn}"... ${Q(Te.length-$e-1)} not stringified"`),""!==xt&&(fn+=`\n${Pt}`),Le.pop(),`[${fn}]`}Le.push(Te);let Qi="";""!==xt&&(jn=`,\n${Ut+=xt}`,Qi=" ");let di="";for(const Di of pt){const ii=at(Di,Te[Di],Le,pt,xt,Ut);void 0!==ii&&(fn+=`${di}${y(Di)}:${Qi}${ii}`,di=jn)}return""!==xt&&di.length>1&&(fn=`\n${Ut}${fn}\n${Pt}`),Le.pop(),`{${fn}}`}case"number":return isFinite(Te)?String(Te):Be?Be(Te):"null";case"boolean":return!0===Te?"true":"false";case"undefined":return;case"bigint":if(Ne)return String(Te);default:return Be?Be(Te):void 0}}function We(Qe,Te,Le,pt,xt){switch(typeof Te){case"string":return y(Te);case"object":{if(null===Te)return"null";if("function"==typeof Te.toJSON){if("object"!=typeof(Te=Te.toJSON(Qe)))return We(Qe,Te,Le,pt,xt);if(null===Te)return"null"}if(-1!==Le.indexOf(Te))return Ie;const Ut=xt;if(Array.isArray(Te)){if(0===Te.length)return"[]";if(qe$e&&(ii+=`${li}"... ${Q(Te.length-$e-1)} not stringified"`),ii+=`\n${Ut}`,Le.pop(),`[${ii}]`}let Pt=Object.keys(Te);const fn=Pt.length;if(0===fn)return"{}";if(qe$e&&(Qi+=`${di}"...": "${Q(fn-$e)} not stringified"`,di=jn),""!==di&&(Qi=`\n${xt}${Qi}\n${Ut}`),Le.pop(),`{${Qi}}`}case"number":return isFinite(Te)?String(Te):Be?Be(Te):"null";case"boolean":return!0===Te?"true":"false";case"undefined":return;case"bigint":if(Ne)return String(Te);default:return Be?Be(Te):void 0}}function ve(Qe,Te,Le){switch(typeof Te){case"string":return y(Te);case"object":{if(null===Te)return"null";if("function"==typeof Te.toJSON){if("object"!=typeof(Te=Te.toJSON(Qe)))return ve(Qe,Te,Le);if(null===Te)return"null"}if(-1!==Le.indexOf(Te))return Ie;let pt="";const xt=void 0!==Te.length;if(xt&&Array.isArray(Te)){if(0===Te.length)return"[]";if(qe$e&&(pt+=`,"... ${Q(Te.length-$e-1)} not stringified"`),Le.pop(),`[${pt}]`}let Ut=Object.keys(Te);const Pt=Ut.length;if(0===Pt)return"{}";if(qe$e&&(pt+=`${fn}"...":"${Q(Pt-$e)} not stringified"`),Le.pop(),`{${pt}}`}case"number":return isFinite(Te)?String(Te):Be?Be(Te):"null";case"boolean":return!0===Te?"true":"false";case"undefined":return;case"bigint":if(Ne)return String(Te);default:return Be?Be(Te):void 0}}return function he(Qe,Te,Le){if(arguments.length>1){let pt="";if("number"==typeof Le?pt=" ".repeat(Math.min(Le,10)):"string"==typeof Le&&(pt=Le.slice(0,10)),null!=Te){if("function"==typeof Te)return je("",{"":Qe},[],Te,pt,"");if(Array.isArray(Te))return at("",Qe,[],function ne(we){const Be=new Set;for(const Ie of we)("string"==typeof Ie||"number"==typeof Ie)&&Be.add(String(Ie));return Be}(Te),pt,"")}if(0!==pt.length)return We("",Qe,[],pt,"")}return ve("",Qe,[])}}},5568:function(nt,Ee){!function(v){"use strict";function j(){for(var De=arguments.length,ue=Array(De),Ve=0;Ve1){ue[0]=ue[0].slice(0,-1);for(var dt=ue.length-1,yt=1;yt= 0x80 (not a basic code point)","invalid-input":"Invalid input"},We=Math.floor,ve=String.fromCharCode;function he(De){throw new RangeError(je[De])}function Te(De,ue){var Ve=De.split("@"),dt="";return Ve.length>1&&(dt=Ve[0]+"@",De=Ve[1]),dt+function Qe(De,ue){for(var Ve=[],dt=De.length;dt--;)Ve[dt]=ue(De[dt]);return Ve}((De=De.replace($e,".")).split("."),ue).join(".")}function Le(De){for(var ue=[],Ve=0,dt=De.length;Ve=55296&&yt<=56319&&Ve>1,ue+=We(ue/Ve);ue>455;yt+=36)ue=We(ue/35);return We(yt+36*ue/(ue+38))},fn=function(ue){var Ve=[],dt=ue.length,yt=0,en=128,Qt=72,Gt=ue.lastIndexOf("-");Gt<0&&(Gt=0);for(var Rn=0;Rn=128&&he("not-basic"),Ve.push(ue.charCodeAt(Rn));for(var Ln=Gt>0?Gt+1:0;Ln=dt&&he("invalid-input");var Mn=xt(ue.charCodeAt(Ln++));(Mn>=36||Mn>We((Q-yt)/Wn))&&he("overflow"),yt+=Mn*Wn;var In=Ar<=Qt?1:Ar>=Qt+26?26:Ar-Qt;if(MnWe(Q/pn)&&he("overflow"),Wn*=pn}var Ke=Ve.length+1;Qt=Pt(yt-mn,Ke,0==mn),We(yt/Ke)>Q-en&&he("overflow"),en+=We(yt/Ke),yt%=Ke,Ve.splice(yt++,0,en)}return String.fromCodePoint.apply(String,Ve)},jn=function(ue){var Ve=[],dt=(ue=Le(ue)).length,yt=128,en=0,Qt=72,Gt=!0,Rn=!1,Ln=void 0;try{for(var Wn,mn=ue[Symbol.iterator]();!(Gt=(Wn=mn.next()).done);Gt=!0){var Ar=Wn.value;Ar<128&&Ve.push(ve(Ar))}}catch(Ui){Rn=!0,Ln=Ui}finally{try{!Gt&&mn.return&&mn.return()}finally{if(Rn)throw Ln}}var Mn=Ve.length,In=Mn;for(Mn&&Ve.push("-");In=yt&&biWe((Q-en)/io)&&he("overflow"),en+=(pn-yt)*io,yt=pn;var mo=!0,Io=!1,En=void 0;try{for(var on,dn=ue[Symbol.iterator]();!(mo=(on=dn.next()).done);mo=!0){var Tt=on.value;if(TtQ&&he("overflow"),Tt==yt){for(var tn=en,ti=36;;ti+=36){var ai=ti<=Qt?1:ti>=Qt+26?26:ti-Qt;if(tn>6|192).toString(16).toUpperCase()+"%"+(63&ue|128).toString(16).toUpperCase():"%"+(ue>>12|224).toString(16).toUpperCase()+"%"+(ue>>6&63|128).toString(16).toUpperCase()+"%"+(63&ue|128).toString(16).toUpperCase()}function rt(De){for(var ue="",Ve=0,dt=De.length;Ve=194&&yt<224){if(dt-Ve>=6){var en=parseInt(De.substr(Ve+4,2),16);ue+=String.fromCharCode((31&yt)<<6|63&en)}else ue+=De.substr(Ve,6);Ve+=6}else if(yt>=224){if(dt-Ve>=9){var Qt=parseInt(De.substr(Ve+4,2),16),Gt=parseInt(De.substr(Ve+7,2),16);ue+=String.fromCharCode((15&yt)<<12|(63&Qt)<<6|63&Gt)}else ue+=De.substr(Ve,9);Ve+=9}else ue+=De.substr(Ve,3),Ve+=3}return ue}function Rt(De,ue){function Ve(dt){var yt=rt(dt);return yt.match(ue.UNRESERVED)?yt:dt}return De.scheme&&(De.scheme=String(De.scheme).replace(ue.PCT_ENCODED,Ve).toLowerCase().replace(ue.NOT_SCHEME,"")),void 0!==De.userinfo&&(De.userinfo=String(De.userinfo).replace(ue.PCT_ENCODED,Ve).replace(ue.NOT_USERINFO,li).replace(ue.PCT_ENCODED,Z)),void 0!==De.host&&(De.host=String(De.host).replace(ue.PCT_ENCODED,Ve).toLowerCase().replace(ue.NOT_HOST,li).replace(ue.PCT_ENCODED,Z)),void 0!==De.path&&(De.path=String(De.path).replace(ue.PCT_ENCODED,Ve).replace(De.scheme?ue.NOT_PATH:ue.NOT_PATH_NOSCHEME,li).replace(ue.PCT_ENCODED,Z)),void 0!==De.query&&(De.query=String(De.query).replace(ue.PCT_ENCODED,Ve).replace(ue.NOT_QUERY,li).replace(ue.PCT_ENCODED,Z)),void 0!==De.fragment&&(De.fragment=String(De.fragment).replace(ue.PCT_ENCODED,Ve).replace(ue.NOT_FRAGMENT,li).replace(ue.PCT_ENCODED,Z)),De}function qt(De){return De.replace(/^0*(.*)/,"$1")||"0"}function cn(De,ue){var Ve=De.match(ue.IPV4ADDRESS)||[],yt=z(Ve,2)[1];return yt?yt.split(".").map(qt).join("."):De}function Wt(De,ue){var Ve=De.match(ue.IPV6ADDRESS)||[],dt=z(Ve,3),yt=dt[1],en=dt[2];if(yt){for(var Qt=yt.toLowerCase().split("::").reverse(),Gt=z(Qt,2),Rn=Gt[0],Ln=Gt[1],mn=Ln?Ln.split(":").map(qt):[],Wn=Rn.split(":").map(qt),Ar=ue.IPV4ADDRESS.test(Wn[Wn.length-1]),Mn=Ar?7:8,In=Wn.length-Mn,pn=Array(Mn),Ke=0;Ke1){var _i=pn.slice(0,Dn.index),bi=pn.slice(Dn.index+Dn.length);ei=_i.join(":")+"::"+bi.join(":")}else ei=pn.join(":");return en&&(ei+="%"+en),ei}return De}var gn=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,oi=void 0==="".match(/(){0}/)[1];function Yi(De){var ue=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},Ve={},dt=!1!==ue.iri?X:V;"suffix"===ue.reference&&(De=(ue.scheme?ue.scheme+":":"")+"//"+De);var yt=De.match(gn);if(yt){oi?(Ve.scheme=yt[1],Ve.userinfo=yt[3],Ve.host=yt[4],Ve.port=parseInt(yt[5],10),Ve.path=yt[6]||"",Ve.query=yt[7],Ve.fragment=yt[8],isNaN(Ve.port)&&(Ve.port=yt[5])):(Ve.scheme=yt[1]||void 0,Ve.userinfo=-1!==De.indexOf("@")?yt[3]:void 0,Ve.host=-1!==De.indexOf("//")?yt[4]:void 0,Ve.port=parseInt(yt[5],10),Ve.path=yt[6]||"",Ve.query=-1!==De.indexOf("?")?yt[7]:void 0,Ve.fragment=-1!==De.indexOf("#")?yt[8]:void 0,isNaN(Ve.port)&&(Ve.port=De.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?yt[4]:void 0)),Ve.host&&(Ve.host=Wt(cn(Ve.host,dt),dt)),Ve.reference=void 0!==Ve.scheme||void 0!==Ve.userinfo||void 0!==Ve.host||void 0!==Ve.port||Ve.path||void 0!==Ve.query?void 0===Ve.scheme?"relative":void 0===Ve.fragment?"absolute":"uri":"same-document",ue.reference&&"suffix"!==ue.reference&&ue.reference!==Ve.reference&&(Ve.error=Ve.error||"URI is not a "+ue.reference+" reference.");var en=ii[(ue.scheme||Ve.scheme||"").toLowerCase()];if(ue.unicodeSupport||en&&en.unicodeSupport)Rt(Ve,dt);else{if(Ve.host&&(ue.domainHost||en&&en.domainHost))try{Ve.host=Di.toASCII(Ve.host.replace(dt.PCT_ENCODED,rt).toLowerCase())}catch(Qt){Ve.error=Ve.error||"Host's domain name can not be converted to ASCII via punycode: "+Qt}Rt(Ve,V)}en&&en.parse&&en.parse(Ve,ue)}else Ve.error=Ve.error||"URI can not be parsed.";return Ve}var Hr=/^\.\.?\//,pr=/^\/\.(\/|$)/,Ti=/^\/\.\.(\/|$)/,Zt=/^\/?(?:.|\n)*?(?=\/|$)/;function Mr(De){for(var ue=[];De.length;)if(De.match(Hr))De=De.replace(Hr,"");else if(De.match(pr))De=De.replace(pr,"/");else if(De.match(Ti))De=De.replace(Ti,"/"),ue.pop();else if("."===De||".."===De)De="";else{var Ve=De.match(Zt);if(!Ve)throw new Error("Unexpected dot segment condition");var dt=Ve[0];De=De.slice(dt.length),ue.push(dt)}return ue.join("")}function br(De){var ue=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},Ve=ue.iri?X:V,dt=[],yt=ii[(ue.scheme||De.scheme||"").toLowerCase()];if(yt&&yt.serialize&&yt.serialize(De,ue),De.host&&!Ve.IPV6ADDRESS.test(De.host)&&(ue.domainHost||yt&&yt.domainHost))try{De.host=ue.iri?Di.toUnicode(De.host):Di.toASCII(De.host.replace(Ve.PCT_ENCODED,rt).toLowerCase())}catch(Gt){De.error=De.error||"Host's domain name can not be converted to "+(ue.iri?"Unicode":"ASCII")+" via punycode: "+Gt}Rt(De,Ve),"suffix"!==ue.reference&&De.scheme&&(dt.push(De.scheme),dt.push(":"));var en=function fr(De,ue){var Ve=!1!==ue.iri?X:V,dt=[];return void 0!==De.userinfo&&(dt.push(De.userinfo),dt.push("@")),void 0!==De.host&&dt.push(Wt(cn(String(De.host),Ve),Ve).replace(Ve.IPV6ADDRESS,function(yt,en,Qt){return"["+en+(Qt?"%25"+Qt:"")+"]"})),("number"==typeof De.port||"string"==typeof De.port)&&(dt.push(":"),dt.push(String(De.port))),dt.length?dt.join(""):void 0}(De,ue);if(void 0!==en&&("suffix"!==ue.reference&&dt.push("//"),dt.push(en),De.path&&"/"!==De.path.charAt(0)&&dt.push("/")),void 0!==De.path){var Qt=De.path;!ue.absolutePath&&(!yt||!yt.absolutePath)&&(Qt=Mr(Qt)),void 0===en&&(Qt=Qt.replace(/^\/\//,"/%2F")),dt.push(Qt)}return void 0!==De.query&&(dt.push("?"),dt.push(De.query)),void 0!==De.fragment&&(dt.push("#"),dt.push(De.fragment)),dt.join("")}function Qr(De,ue){var Ve=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},yt={};return arguments[3]||(De=Yi(br(De,Ve),Ve),ue=Yi(br(ue,Ve),Ve)),!(Ve=Ve||{}).tolerant&&ue.scheme?(yt.scheme=ue.scheme,yt.userinfo=ue.userinfo,yt.host=ue.host,yt.port=ue.port,yt.path=Mr(ue.path||""),yt.query=ue.query):(void 0!==ue.userinfo||void 0!==ue.host||void 0!==ue.port?(yt.userinfo=ue.userinfo,yt.host=ue.host,yt.port=ue.port,yt.path=Mr(ue.path||""),yt.query=ue.query):(ue.path?("/"===ue.path.charAt(0)?yt.path=Mr(ue.path):(yt.path=void 0===De.userinfo&&void 0===De.host&&void 0===De.port||De.path?De.path?De.path.slice(0,De.path.lastIndexOf("/")+1)+ue.path:ue.path:"/"+ue.path,yt.path=Mr(yt.path)),yt.query=ue.query):(yt.path=De.path,yt.query=void 0!==ue.query?ue.query:De.query),yt.userinfo=De.userinfo,yt.host=De.host,yt.port=De.port),yt.scheme=De.scheme),yt.fragment=ue.fragment,yt}function Ii(De,ue){return De&&De.toString().replace(ue&&ue.iri?X.PCT_ENCODED:V.PCT_ENCODED,rt)}var Bs={scheme:"http",domainHost:!0,parse:function(ue,Ve){return ue.host||(ue.error=ue.error||"HTTP URIs must have a host."),ue},serialize:function(ue,Ve){var dt="https"===String(ue.scheme).toLowerCase();return(ue.port===(dt?443:80)||""===ue.port)&&(ue.port=void 0),ue.path||(ue.path="/"),ue}},Wo={scheme:"https",domainHost:Bs.domainHost,parse:Bs.parse,serialize:Bs.serialize};function Zr(De){return"boolean"==typeof De.secure?De.secure:"wss"===String(De.scheme).toLowerCase()}var ls={scheme:"ws",domainHost:!0,parse:function(ue,Ve){var dt=ue;return dt.secure=Zr(dt),dt.resourceName=(dt.path||"/")+(dt.query?"?"+dt.query:""),dt.path=void 0,dt.query=void 0,dt},serialize:function(ue,Ve){if((ue.port===(Zr(ue)?443:80)||""===ue.port)&&(ue.port=void 0),"boolean"==typeof ue.secure&&(ue.scheme=ue.secure?"wss":"ws",ue.secure=void 0),ue.resourceName){var dt=ue.resourceName.split("?"),yt=z(dt,2),en=yt[0],Qt=yt[1];ue.path=en&&"/"!==en?en:void 0,ue.query=Qt,ue.resourceName=void 0}return ue.fragment=void 0,ue}},Ao={scheme:"wss",domainHost:ls.domainHost,parse:ls.parse,serialize:ls.serialize},hc={},et="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",Ye="[0-9A-Fa-f]",It=o(o("%[EFef]"+Ye+"%"+Ye+Ye+"%"+Ye+Ye)+"|"+o("%[89A-Fa-f]"+Ye+"%"+Ye+Ye)+"|"+o("%"+Ye+Ye)),an=j("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),Jn=new RegExp(et,"g"),Hn=new RegExp(It,"g"),Xt=new RegExp(j("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',an),"g"),kn=new RegExp(j("[^]",et,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),ri=kn;function ji(De){var ue=rt(De);return ue.match(Jn)?ue:De}var Tr={scheme:"mailto",parse:function(ue,Ve){var dt=ue,yt=dt.to=dt.path?dt.path.split(","):[];if(dt.path=void 0,dt.query){for(var en=!1,Qt={},Gt=dt.query.split("&"),Rn=0,Ln=Gt.length;Rn{"use strict";const nt=globalThis;function Ee(et){return(nt.__Zone_symbol_prefix||"__zone_symbol__")+et}const o=Object.getOwnPropertyDescriptor,y=Object.defineProperty,Z=Object.getPrototypeOf,U=Object.create,L=Array.prototype.slice,Y="addEventListener",V="removeEventListener",X=Ee(Y),z=Ee(V),G="true",Q="false",ne=Ee("");function re(et,Ye){return Zone.current.wrap(et,Ye)}function me(et,Ye,It,ot,St){return Zone.current.scheduleMacroTask(et,Ye,It,ot,St)}const we=Ee,Be=typeof window<"u",Ie=Be?window:void 0,Ne=Be&&Ie||globalThis,Je="removeAttribute";function He(et,Ye){for(let It=et.length-1;It>=0;It--)"function"==typeof et[It]&&(et[It]=re(et[It],Ye+"_"+It));return et}function $e(et){return!et||!1!==et.writable&&!("function"==typeof et.get&&typeof et.set>"u")}const je=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,at=!("nw"in Ne)&&typeof Ne.process<"u"&&"[object process]"===Ne.process.toString(),We=!at&&!je&&!(!Be||!Ie.HTMLElement),ve=typeof Ne.process<"u"&&"[object process]"===Ne.process.toString()&&!je&&!(!Be||!Ie.HTMLElement),he={},Qe=we("enable_beforeunload"),Te=function(et){if(!(et=et||Ne.event))return;let Ye=he[et.type];Ye||(Ye=he[et.type]=we("ON_PROPERTY"+et.type));const It=this||et.target||Ne,ot=It[Ye];let St;return We&&It===Ie&&"error"===et.type?(St=ot&&ot.call(this,et.message,et.filename,et.lineno,et.colno,et.error),!0===St&&et.preventDefault()):(St=ot&&ot.apply(this,arguments),"beforeunload"===et.type&&Ne[Qe]&&"string"==typeof St?et.returnValue=St:null!=St&&!St&&et.preventDefault()),St};function Le(et,Ye,It){let ot=o(et,Ye);if(!ot&&It&&o(It,Ye)&&(ot={enumerable:!0,configurable:!0}),!ot||!ot.configurable)return;const St=we("on"+Ye+"patched");if(et.hasOwnProperty(St)&&et[St])return;delete ot.writable,delete ot.value;const an=ot.get,si=ot.set,Jn=Ye.slice(2);let Hn=he[Jn];Hn||(Hn=he[Jn]=we("ON_PROPERTY"+Jn)),ot.set=function(Xt){let kn=this;!kn&&et===Ne&&(kn=Ne),kn&&("function"==typeof kn[Hn]&&kn.removeEventListener(Jn,Te),si&&si.call(kn,null),kn[Hn]=Xt,"function"==typeof Xt&&kn.addEventListener(Jn,Te,!1))},ot.get=function(){let Xt=this;if(!Xt&&et===Ne&&(Xt=Ne),!Xt)return null;const kn=Xt[Hn];if(kn)return kn;if(an){let ri=an.call(this);if(ri)return ot.set.call(this,ri),"function"==typeof Xt[Je]&&Xt.removeAttribute(Ye),ri}return null},y(et,Ye,ot),et[St]=!0}function pt(et,Ye,It){if(Ye)for(let ot=0;otfunction(si,Jn){const Hn=It(si,Jn);return Hn.cbIdx>=0&&"function"==typeof Jn[Hn.cbIdx]?me(Hn.name,Jn[Hn.cbIdx],Hn,St):an.apply(si,Jn)})}function jn(et,Ye){et[we("OriginalDelegate")]=Ye}let Qi=!1,di=!1;function ii(){if(Qi)return di;Qi=!0;try{const et=Ie.navigator.userAgent;(-1!==et.indexOf("MSIE ")||-1!==et.indexOf("Trident/")||-1!==et.indexOf("Edge/"))&&(di=!0)}catch{}return di}function li(et){return"function"==typeof et}function rt(et){return"number"==typeof et}let Rt=!1;if(typeof window<"u")try{const et=Object.defineProperty({},"passive",{get:function(){Rt=!0}});window.addEventListener("test",et,et),window.removeEventListener("test",et,et)}catch{Rt=!1}const qt={useG:!0},cn={},Wt={},gn=new RegExp("^"+ne+"(\\w+)(true|false)$"),oi=we("propagationStopped");function Yi(et,Ye){const It=(Ye?Ye(et):et)+Q,ot=(Ye?Ye(et):et)+G,St=ne+It,an=ne+ot;cn[et]={},cn[et][Q]=St,cn[et][G]=an}function fr(et,Ye,It,ot){const St=ot&&ot.add||Y,an=ot&&ot.rm||V,si=ot&&ot.listeners||"eventListeners",Jn=ot&&ot.rmAll||"removeAllListeners",Hn=we(St),Xt="."+St+":",kn="prependListener",ri="."+kn+":",ji=function(De,ue,Ve){if(De.isRemoved)return;const dt=De.callback;let yt;"object"==typeof dt&&dt.handleEvent&&(De.callback=Qt=>dt.handleEvent(Qt),De.originalDelegate=dt);try{De.invoke(De,ue,[Ve])}catch(Qt){yt=Qt}const en=De.options;return en&&"object"==typeof en&&en.once&&ue[an].call(ue,Ve.type,De.originalDelegate?De.originalDelegate:De.callback,en),yt};function Tr(De,ue,Ve){if(!(ue=ue||et.event))return;const dt=De||ue.target||et,yt=dt[cn[ue.type][Ve?G:Q]];if(yt){const en=[];if(1===yt.length){const Qt=ji(yt[0],dt,ue);Qt&&en.push(Qt)}else{const Qt=yt.slice();for(let Gt=0;Gt{throw Gt})}}}const Jr=function(De){return Tr(this,De,!1)},zr=function(De){return Tr(this,De,!0)};function Mi(De,ue){if(!De)return!1;let Ve=!0;ue&&void 0!==ue.useG&&(Ve=ue.useG);const dt=ue&&ue.vh;let yt=!0;ue&&void 0!==ue.chkDup&&(yt=ue.chkDup);let en=!1;ue&&void 0!==ue.rt&&(en=ue.rt);let Qt=De;for(;Qt&&!Qt.hasOwnProperty(St);)Qt=Z(Qt);if(!Qt&&De[St]&&(Qt=De),!Qt||Qt[Hn])return!1;const Gt=ue&&ue.eventNameToString,Rn={},Ln=Qt[Hn]=Qt[St],mn=Qt[we(an)]=Qt[an],Wn=Qt[we(si)]=Qt[si],Ar=Qt[we(Jn)]=Qt[Jn];let Mn;ue&&ue.prepend&&(Mn=Qt[we(ue.prepend)]=Qt[ue.prepend]);const _i=Ve?function(Tt){if(!Rn.isExisting)return Ln.call(Rn.target,Rn.eventName,Rn.capture?zr:Jr,Rn.options)}:function(Tt){return Ln.call(Rn.target,Rn.eventName,Tt.invoke,Rn.options)},bi=Ve?function(Tt){if(!Tt.isRemoved){const tn=cn[Tt.eventName];let ti;tn&&(ti=tn[Tt.capture?G:Q]);const ai=ti&&Tt.target[ti];if(ai)for(let zn=0;znEi.zone.cancelTask(Ei);Tt.call(rl,"abort",Lo,{once:!0}),Ei.removeAbortListener=()=>rl.removeEventListener("abort",Lo)}return Rn.target=null,Qn&&(Qn.taskData=null),ra&&(Rn.options.once=!0),!Rt&&"boolean"==typeof Ei.options||(Ei.options=Xo),Ei.target=Ui,Ei.capture=No,Ei.eventName=Xi,vr&&(Ei.originalDelegate=Er),pi?xo.unshift(Ei):xo.push(Ei),zn?Ui:void 0}};return Qt[St]=on(Ln,Xt,_i,bi,en),Mn&&(Qt[kn]=on(Mn,ri,function(Tt){return Mn.call(Rn.target,Rn.eventName,Tt.invoke,Rn.options)},bi,en,!0)),Qt[an]=function(){const Tt=this||et;let tn=arguments[0];ue&&ue.transferEventName&&(tn=ue.transferEventName(tn));const ti=arguments[2],ai=!!ti&&("boolean"==typeof ti||ti.capture),zn=arguments[1];if(!zn)return mn.apply(this,arguments);if(dt&&!dt(mn,zn,Tt,arguments))return;const pi=cn[tn];let Ui;pi&&(Ui=pi[ai?G:Q]);const Xi=Ui&&Tt[Ui];if(Xi)for(let Er=0;Erfunction(St,an){St[oi]=!0,ot&&ot.apply(St,an)})}const Zt=we("zoneTask");function Mr(et,Ye,It,ot){let St=null,an=null;It+=ot;const si={};function Jn(Xt){const kn=Xt.data;kn.args[0]=function(){return Xt.invoke.apply(this,arguments)};const ri=St.apply(et,kn.args);return rt(ri)?kn.handleId=ri:(kn.handle=ri,kn.isRefreshable=li(ri.refresh)),Xt}function Hn(Xt){const{handle:kn,handleId:ri}=Xt.data;return an.call(et,kn??ri)}St=Pt(et,Ye+=ot,Xt=>function(kn,ri){if(li(ri[0])){const ji={isRefreshable:!1,isPeriodic:"Interval"===ot,delay:"Timeout"===ot||"Interval"===ot?ri[1]||0:void 0,args:ri},Tr=ri[0];ri[0]=function(){try{return Tr.apply(this,arguments)}finally{const{handle:Ve,handleId:dt,isPeriodic:yt,isRefreshable:en}=ji;!yt&&!en&&(dt?delete si[dt]:Ve&&(Ve[Zt]=null))}};const Jr=me(Ye,ri[0],ji,Jn,Hn);if(!Jr)return Jr;const{handleId:zr,handle:Mi,isRefreshable:Gr,isPeriodic:De}=Jr.data;if(zr)si[zr]=Jr;else if(Mi&&(Mi[Zt]=Jr,Gr&&!De)){const ue=Mi.refresh;Mi.refresh=function(){const{zone:Ve,state:dt}=Jr;return"notScheduled"===dt?(Jr._state="scheduled",Ve._updateTaskCount(Jr,1)):"running"===dt&&(Jr._state="scheduling"),ue.call(this)}}return Mi??zr??Jr}return Xt.apply(et,ri)}),an=Pt(et,It,Xt=>function(kn,ri){const ji=ri[0];let Tr;rt(ji)?(Tr=si[ji],delete si[ji]):(Tr=ji?.[Zt],Tr?ji[Zt]=null:Tr=ji),Tr?.type?Tr.cancelFn&&Tr.zone.cancelTask(Tr):Xt.apply(et,ri)})}function Fl(et,Ye,It){if(!It||0===It.length)return Ye;const ot=It.filter(an=>an.target===et);if(!ot||0===ot.length)return Ye;const St=ot[0].ignoreProperties;return Ye.filter(an=>-1===St.indexOf(an))}function as(et,Ye,It,ot){et&&pt(et,Fl(et,Ye,It),ot)}function Li(et){return Object.getOwnPropertyNames(et).filter(Ye=>Ye.startsWith("on")&&Ye.length>2).map(Ye=>Ye.substring(2))}function ls(et,Ye,It,ot,St){const an=Zone.__symbol__(ot);if(Ye[an])return;const si=Ye[an]=Ye[ot];Ye[ot]=function(Jn,Hn,Xt){return Hn&&Hn.prototype&&St.forEach(function(kn){const ri=`${It}.${ot}::`+kn,ji=Hn.prototype;try{if(ji.hasOwnProperty(kn)){const Tr=et.ObjectGetOwnPropertyDescriptor(ji,kn);Tr&&Tr.value?(Tr.value=et.wrapWithCurrentZone(Tr.value,ri),et._redefineProperty(Hn.prototype,kn,Tr)):ji[kn]&&(ji[kn]=et.wrapWithCurrentZone(ji[kn],ri))}else ji[kn]&&(ji[kn]=et.wrapWithCurrentZone(ji[kn],ri))}catch{}}),si.call(Ye,Jn,Hn,Xt)},et.attachOriginToPatched(Ye[ot],si)}const Zi=function j(){const et=globalThis,Ye=!0===et[Ee("forceDuplicateZoneCheck")];if(et.Zone&&(Ye||"function"!=typeof et.Zone.__symbol__))throw new Error("Zone already loaded.");return et.Zone??=function v(){const et=nt.performance;function Ye(In){et&&et.mark&&et.mark(In)}function It(In,pn){et&&et.measure&&et.measure(In,pn)}Ye("Zone");let ot=(()=>{class In{static{this.__symbol__=Ee}static assertZonePatched(){if(nt.Promise!==Rn.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let Ke=In.current;for(;Ke.parent;)Ke=Ke.parent;return Ke}static get current(){return mn.zone}static get currentTask(){return Wn}static __load_patch(Ke,gt,Dn=!1){if(Rn.hasOwnProperty(Ke)){const ei=!0===nt[Ee("forceDuplicateZoneCheck")];if(!Dn&&ei)throw Error("Already loaded patch: "+Ke)}else if(!nt["__Zone_disable_"+Ke]){const ei="Zone:"+Ke;Ye(ei),Rn[Ke]=gt(nt,In,Ln),It(ei,ei)}}get parent(){return this._parent}get name(){return this._name}constructor(Ke,gt){this._parent=Ke,this._name=gt?gt.name||"unnamed":"",this._properties=gt&>.properties||{},this._zoneDelegate=new an(this,this._parent&&this._parent._zoneDelegate,gt)}get(Ke){const gt=this.getZoneWith(Ke);if(gt)return gt._properties[Ke]}getZoneWith(Ke){let gt=this;for(;gt;){if(gt._properties.hasOwnProperty(Ke))return gt;gt=gt._parent}return null}fork(Ke){if(!Ke)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,Ke)}wrap(Ke,gt){if("function"!=typeof Ke)throw new Error("Expecting function got: "+Ke);const Dn=this._zoneDelegate.intercept(this,Ke,gt),ei=this;return function(){return ei.runGuarded(Dn,this,arguments,gt)}}run(Ke,gt,Dn,ei){mn={parent:mn,zone:this};try{return this._zoneDelegate.invoke(this,Ke,gt,Dn,ei)}finally{mn=mn.parent}}runGuarded(Ke,gt=null,Dn,ei){mn={parent:mn,zone:this};try{try{return this._zoneDelegate.invoke(this,Ke,gt,Dn,ei)}catch(_i){if(this._zoneDelegate.handleError(this,_i))throw _i}}finally{mn=mn.parent}}runTask(Ke,gt,Dn){if(Ke.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(Ke.zone||Mi).name+"; Execution: "+this.name+")");const ei=Ke,{type:_i,data:{isPeriodic:bi=!1,isRefreshable:io=!1}={}}=Ke;if(Ke.state===Gr&&(_i===Gt||_i===Qt))return;const mo=Ke.state!=Ve;mo&&ei._transitionTo(Ve,ue);const Io=Wn;Wn=ei,mn={parent:mn,zone:this};try{_i==Qt&&Ke.data&&!bi&&!io&&(Ke.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,ei,gt,Dn)}catch(En){if(this._zoneDelegate.handleError(this,En))throw En}}finally{const En=Ke.state;if(En!==Gr&&En!==yt)if(_i==Gt||bi||io&&En===De)mo&&ei._transitionTo(ue,Ve,De);else{const dn=ei._zoneDelegates;this._updateTaskCount(ei,-1),mo&&ei._transitionTo(Gr,Ve,Gr),io&&(ei._zoneDelegates=dn)}mn=mn.parent,Wn=Io}}scheduleTask(Ke){if(Ke.zone&&Ke.zone!==this){let Dn=this;for(;Dn;){if(Dn===Ke.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${Ke.zone.name}`);Dn=Dn.parent}}Ke._transitionTo(De,Gr);const gt=[];Ke._zoneDelegates=gt,Ke._zone=this;try{Ke=this._zoneDelegate.scheduleTask(this,Ke)}catch(Dn){throw Ke._transitionTo(yt,De,Gr),this._zoneDelegate.handleError(this,Dn),Dn}return Ke._zoneDelegates===gt&&this._updateTaskCount(Ke,1),Ke.state==De&&Ke._transitionTo(ue,De),Ke}scheduleMicroTask(Ke,gt,Dn,ei){return this.scheduleTask(new si(en,Ke,gt,Dn,ei,void 0))}scheduleMacroTask(Ke,gt,Dn,ei,_i){return this.scheduleTask(new si(Qt,Ke,gt,Dn,ei,_i))}scheduleEventTask(Ke,gt,Dn,ei,_i){return this.scheduleTask(new si(Gt,Ke,gt,Dn,ei,_i))}cancelTask(Ke){if(Ke.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(Ke.zone||Mi).name+"; Execution: "+this.name+")");if(Ke.state===ue||Ke.state===Ve){Ke._transitionTo(dt,ue,Ve);try{this._zoneDelegate.cancelTask(this,Ke)}catch(gt){throw Ke._transitionTo(yt,dt),this._zoneDelegate.handleError(this,gt),gt}return this._updateTaskCount(Ke,-1),Ke._transitionTo(Gr,dt),Ke.runCount=-1,Ke}}_updateTaskCount(Ke,gt){const Dn=Ke._zoneDelegates;-1==gt&&(Ke._zoneDelegates=null);for(let ei=0;eiIn.hasTask(Ke,gt),onScheduleTask:(In,pn,Ke,gt)=>In.scheduleTask(Ke,gt),onInvokeTask:(In,pn,Ke,gt,Dn,ei)=>In.invokeTask(Ke,gt,Dn,ei),onCancelTask:(In,pn,Ke,gt)=>In.cancelTask(Ke,gt)};class an{get zone(){return this._zone}constructor(pn,Ke,gt){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this._zone=pn,this._parentDelegate=Ke,this._forkZS=gt&&(gt&>.onFork?gt:Ke._forkZS),this._forkDlgt=gt&&(gt.onFork?Ke:Ke._forkDlgt),this._forkCurrZone=gt&&(gt.onFork?this._zone:Ke._forkCurrZone),this._interceptZS=gt&&(gt.onIntercept?gt:Ke._interceptZS),this._interceptDlgt=gt&&(gt.onIntercept?Ke:Ke._interceptDlgt),this._interceptCurrZone=gt&&(gt.onIntercept?this._zone:Ke._interceptCurrZone),this._invokeZS=gt&&(gt.onInvoke?gt:Ke._invokeZS),this._invokeDlgt=gt&&(gt.onInvoke?Ke:Ke._invokeDlgt),this._invokeCurrZone=gt&&(gt.onInvoke?this._zone:Ke._invokeCurrZone),this._handleErrorZS=gt&&(gt.onHandleError?gt:Ke._handleErrorZS),this._handleErrorDlgt=gt&&(gt.onHandleError?Ke:Ke._handleErrorDlgt),this._handleErrorCurrZone=gt&&(gt.onHandleError?this._zone:Ke._handleErrorCurrZone),this._scheduleTaskZS=gt&&(gt.onScheduleTask?gt:Ke._scheduleTaskZS),this._scheduleTaskDlgt=gt&&(gt.onScheduleTask?Ke:Ke._scheduleTaskDlgt),this._scheduleTaskCurrZone=gt&&(gt.onScheduleTask?this._zone:Ke._scheduleTaskCurrZone),this._invokeTaskZS=gt&&(gt.onInvokeTask?gt:Ke._invokeTaskZS),this._invokeTaskDlgt=gt&&(gt.onInvokeTask?Ke:Ke._invokeTaskDlgt),this._invokeTaskCurrZone=gt&&(gt.onInvokeTask?this._zone:Ke._invokeTaskCurrZone),this._cancelTaskZS=gt&&(gt.onCancelTask?gt:Ke._cancelTaskZS),this._cancelTaskDlgt=gt&&(gt.onCancelTask?Ke:Ke._cancelTaskDlgt),this._cancelTaskCurrZone=gt&&(gt.onCancelTask?this._zone:Ke._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const Dn=gt&>.onHasTask;(Dn||Ke&&Ke._hasTaskZS)&&(this._hasTaskZS=Dn?gt:St,this._hasTaskDlgt=Ke,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=this._zone,gt.onScheduleTask||(this._scheduleTaskZS=St,this._scheduleTaskDlgt=Ke,this._scheduleTaskCurrZone=this._zone),gt.onInvokeTask||(this._invokeTaskZS=St,this._invokeTaskDlgt=Ke,this._invokeTaskCurrZone=this._zone),gt.onCancelTask||(this._cancelTaskZS=St,this._cancelTaskDlgt=Ke,this._cancelTaskCurrZone=this._zone))}fork(pn,Ke){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,pn,Ke):new ot(pn,Ke)}intercept(pn,Ke,gt){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,pn,Ke,gt):Ke}invoke(pn,Ke,gt,Dn,ei){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,pn,Ke,gt,Dn,ei):Ke.apply(gt,Dn)}handleError(pn,Ke){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,pn,Ke)}scheduleTask(pn,Ke){let gt=Ke;if(this._scheduleTaskZS)this._hasTaskZS&>._zoneDelegates.push(this._hasTaskDlgtOwner),gt=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,pn,Ke),gt||(gt=Ke);else if(Ke.scheduleFn)Ke.scheduleFn(Ke);else{if(Ke.type!=en)throw new Error("Task is missing scheduleFn.");Jr(Ke)}return gt}invokeTask(pn,Ke,gt,Dn){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,pn,Ke,gt,Dn):Ke.callback.apply(gt,Dn)}cancelTask(pn,Ke){let gt;if(this._cancelTaskZS)gt=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,pn,Ke);else{if(!Ke.cancelFn)throw Error("Task is not cancelable");gt=Ke.cancelFn(Ke)}return gt}hasTask(pn,Ke){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,pn,Ke)}catch(gt){this.handleError(pn,gt)}}_updateTaskCount(pn,Ke){const gt=this._taskCounts,Dn=gt[pn],ei=gt[pn]=Dn+Ke;if(ei<0)throw new Error("More tasks executed then were scheduled.");0!=Dn&&0!=ei||this.hasTask(this._zone,{microTask:gt.microTask>0,macroTask:gt.macroTask>0,eventTask:gt.eventTask>0,change:pn})}}class si{constructor(pn,Ke,gt,Dn,ei,_i){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=pn,this.source=Ke,this.data=Dn,this.scheduleFn=ei,this.cancelFn=_i,!gt)throw new Error("callback is not defined");this.callback=gt;const bi=this;this.invoke=pn===Gt&&Dn&&Dn.useG?si.invokeTask:function(){return si.invokeTask.call(nt,bi,this,arguments)}}static invokeTask(pn,Ke,gt){pn||(pn=this),Ar++;try{return pn.runCount++,pn.zone.runTask(pn,Ke,gt)}finally{1==Ar&&zr(),Ar--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(Gr,De)}_transitionTo(pn,Ke,gt){if(this._state!==Ke&&this._state!==gt)throw new Error(`${this.type} '${this.source}': can not transition to '${pn}', expecting state '${Ke}'${gt?" or '"+gt+"'":""}, was '${this._state}'.`);this._state=pn,pn==Gr&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const Jn=Ee("setTimeout"),Hn=Ee("Promise"),Xt=Ee("then");let ji,kn=[],ri=!1;function Tr(In){if(ji||nt[Hn]&&(ji=nt[Hn].resolve(0)),ji){let pn=ji[Xt];pn||(pn=ji.then),pn.call(ji,In)}else nt[Jn](In,0)}function Jr(In){0===Ar&&0===kn.length&&Tr(zr),In&&kn.push(In)}function zr(){if(!ri){for(ri=!0;kn.length;){const In=kn;kn=[];for(let pn=0;pnmn,onUnhandledError:Mn,microtaskDrainDone:Mn,scheduleMicroTask:Jr,showUncaughtError:()=>!ot[Ee("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:Mn,patchMethod:()=>Mn,bindArguments:()=>[],patchThen:()=>Mn,patchMacroTask:()=>Mn,patchEventPrototype:()=>Mn,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>Mn,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>Mn,wrapWithCurrentZone:()=>Mn,filterProperties:()=>[],attachOriginToPatched:()=>Mn,_redefineProperty:()=>Mn,patchCallbacks:()=>Mn,nativeScheduleMicroTask:Tr};let mn={parent:null,zone:new ot(null,null)},Wn=null,Ar=0;function Mn(){}return It("Zone","Zone"),ot}(),et.Zone}();(function hc(et){(function Wo(et){et.__load_patch("ZoneAwarePromise",(Ye,It,ot)=>{const St=Object.getOwnPropertyDescriptor,an=Object.defineProperty,Jn=ot.symbol,Hn=[],Xt=!1!==Ye[Jn("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],kn=Jn("Promise"),ri=Jn("then"),ji="__creationTrace__";ot.onUnhandledError=dn=>{if(ot.showUncaughtError()){const on=dn&&dn.rejection;on?console.error("Unhandled Promise rejection:",on instanceof Error?on.message:on,"; Zone:",dn.zone.name,"; Task:",dn.task&&dn.task.source,"; Value:",on,on instanceof Error?on.stack:void 0):console.error(dn)}},ot.microtaskDrainDone=()=>{for(;Hn.length;){const dn=Hn.shift();try{dn.zone.runGuarded(()=>{throw dn.throwOriginal?dn.rejection:dn})}catch(on){Jr(on)}}};const Tr=Jn("unhandledPromiseRejectionHandler");function Jr(dn){ot.onUnhandledError(dn);try{const on=It[Tr];"function"==typeof on&&on.call(this,dn)}catch{}}function zr(dn){return dn&&dn.then}function Mi(dn){return dn}function Gr(dn){return bi.reject(dn)}const De=Jn("state"),ue=Jn("value"),Ve=Jn("finally"),dt=Jn("parentPromiseValue"),yt=Jn("parentPromiseState"),en="Promise.then",Qt=null,Gt=!0,Rn=!1,Ln=0;function mn(dn,on){return Tt=>{try{In(dn,on,Tt)}catch(tn){In(dn,!1,tn)}}}const Wn=function(){let dn=!1;return function(Tt){return function(){dn||(dn=!0,Tt.apply(null,arguments))}}},Ar="Promise resolved with itself",Mn=Jn("currentTaskTrace");function In(dn,on,Tt){const tn=Wn();if(dn===Tt)throw new TypeError(Ar);if(dn[De]===Qt){let ti=null;try{("object"==typeof Tt||"function"==typeof Tt)&&(ti=Tt&&Tt.then)}catch(ai){return tn(()=>{In(dn,!1,ai)})(),dn}if(on!==Rn&&Tt instanceof bi&&Tt.hasOwnProperty(De)&&Tt.hasOwnProperty(ue)&&Tt[De]!==Qt)Ke(Tt),In(dn,Tt[De],Tt[ue]);else if(on!==Rn&&"function"==typeof ti)try{ti.call(Tt,tn(mn(dn,on)),tn(mn(dn,!1)))}catch(ai){tn(()=>{In(dn,!1,ai)})()}else{dn[De]=on;const ai=dn[ue];if(dn[ue]=Tt,dn[Ve]===Ve&&on===Gt&&(dn[De]=dn[yt],dn[ue]=dn[dt]),on===Rn&&Tt instanceof Error){const zn=It.currentTask&&It.currentTask.data&&It.currentTask.data[ji];zn&&an(Tt,Mn,{configurable:!0,enumerable:!1,writable:!0,value:zn})}for(let zn=0;zn{try{const pi=dn[ue],Ui=!!Tt&&Ve===Tt[Ve];Ui&&(Tt[dt]=pi,Tt[yt]=ai);const Xi=on.run(zn,void 0,Ui&&zn!==Gr&&zn!==Mi?[]:[pi]);In(Tt,!0,Xi)}catch(pi){In(Tt,!1,pi)}},Tt)}const ei=function(){},_i=Ye.AggregateError;class bi{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(on){return on instanceof bi?on:In(new this(null),Gt,on)}static reject(on){return In(new this(null),Rn,on)}static withResolvers(){const on={};return on.promise=new bi((Tt,tn)=>{on.resolve=Tt,on.reject=tn}),on}static any(on){if(!on||"function"!=typeof on[Symbol.iterator])return Promise.reject(new _i([],"All promises were rejected"));const Tt=[];let tn=0;try{for(let zn of on)tn++,Tt.push(bi.resolve(zn))}catch{return Promise.reject(new _i([],"All promises were rejected"))}if(0===tn)return Promise.reject(new _i([],"All promises were rejected"));let ti=!1;const ai=[];return new bi((zn,pi)=>{for(let Ui=0;Ui{ti||(ti=!0,zn(Xi))},Xi=>{ai.push(Xi),tn--,0===tn&&(ti=!0,pi(new _i(ai,"All promises were rejected")))})})}static race(on){let Tt,tn,ti=new this((pi,Ui)=>{Tt=pi,tn=Ui});function ai(pi){Tt(pi)}function zn(pi){tn(pi)}for(let pi of on)zr(pi)||(pi=this.resolve(pi)),pi.then(ai,zn);return ti}static all(on){return bi.allWithCallback(on)}static allSettled(on){return(this&&this.prototype instanceof bi?this:bi).allWithCallback(on,{thenCallback:tn=>({status:"fulfilled",value:tn}),errorCallback:tn=>({status:"rejected",reason:tn})})}static allWithCallback(on,Tt){let tn,ti,ai=new this((Xi,Er)=>{tn=Xi,ti=Er}),zn=2,pi=0;const Ui=[];for(let Xi of on){zr(Xi)||(Xi=this.resolve(Xi));const Er=pi;try{Xi.then(vr=>{Ui[Er]=Tt?Tt.thenCallback(vr):vr,zn--,0===zn&&tn(Ui)},vr=>{Tt?(Ui[Er]=Tt.errorCallback(vr),zn--,0===zn&&tn(Ui)):ti(vr)})}catch(vr){ti(vr)}zn++,pi++}return zn-=2,0===zn&&tn(Ui),ai}constructor(on){const Tt=this;if(!(Tt instanceof bi))throw new Error("Must be an instanceof Promise.");Tt[De]=Qt,Tt[ue]=[];try{const tn=Wn();on&&on(tn(mn(Tt,Gt)),tn(mn(Tt,Rn)))}catch(tn){In(Tt,!1,tn)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return bi}then(on,Tt){let tn=this.constructor?.[Symbol.species];(!tn||"function"!=typeof tn)&&(tn=this.constructor||bi);const ti=new tn(ei),ai=It.current;return this[De]==Qt?this[ue].push(ai,ti,on,Tt):gt(this,ai,ti,on,Tt),ti}catch(on){return this.then(null,on)}finally(on){let Tt=this.constructor?.[Symbol.species];(!Tt||"function"!=typeof Tt)&&(Tt=bi);const tn=new Tt(ei);tn[Ve]=Ve;const ti=It.current;return this[De]==Qt?this[ue].push(ti,tn,on,on):gt(this,ti,tn,on,on),tn}}bi.resolve=bi.resolve,bi.reject=bi.reject,bi.race=bi.race,bi.all=bi.all;const io=Ye[kn]=Ye.Promise;Ye.Promise=bi;const mo=Jn("thenPatched");function Io(dn){const on=dn.prototype,Tt=St(on,"then");if(Tt&&(!1===Tt.writable||!Tt.configurable))return;const tn=on.then;on[ri]=tn,dn.prototype.then=function(ti,ai){return new bi((pi,Ui)=>{tn.call(this,pi,Ui)}).then(ti,ai)},dn[mo]=!0}return ot.patchThen=Io,io&&(Io(io),Pt(Ye,"fetch",dn=>function En(dn){return function(on,Tt){let tn=dn.apply(on,Tt);if(tn instanceof bi)return tn;let ti=tn.constructor;return ti[mo]||Io(ti),tn}}(dn))),Promise[It.__symbol__("uncaughtPromiseErrors")]=Hn,bi})})(et),function Zr(et){et.__load_patch("toString",Ye=>{const It=Function.prototype.toString,ot=we("OriginalDelegate"),St=we("Promise"),an=we("Error"),si=function(){if("function"==typeof this){const kn=this[ot];if(kn)return"function"==typeof kn?It.call(kn):Object.prototype.toString.call(kn);if(this===Promise){const ri=Ye[St];if(ri)return It.call(ri)}if(this===Error){const ri=Ye[an];if(ri)return It.call(ri)}}return It.call(this)};si[ot]=It,Function.prototype.toString=si;const Jn=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":Jn.call(this)}})}(et),function Ao(et){et.__load_patch("util",(Ye,It,ot)=>{const St=Li(Ye);ot.patchOnProperties=pt,ot.patchMethod=Pt,ot.bindArguments=He,ot.patchMacroTask=fn;const an=It.__symbol__("BLACK_LISTED_EVENTS"),si=It.__symbol__("UNPATCHED_EVENTS");Ye[si]&&(Ye[an]=Ye[si]),Ye[an]&&(It[an]=It[si]=Ye[an]),ot.patchEventPrototype=pr,ot.patchEventTarget=fr,ot.isIEOrEdge=ii,ot.ObjectDefineProperty=y,ot.ObjectGetOwnPropertyDescriptor=o,ot.ObjectCreate=U,ot.ArraySlice=L,ot.patchClass=Ut,ot.wrapWithCurrentZone=re,ot.filterProperties=Fl,ot.attachOriginToPatched=jn,ot._redefineProperty=Object.defineProperty,ot.patchCallbacks=ls,ot.getGlobalObjects=()=>({globalSources:Wt,zoneSymbolEventNames:cn,eventNames:St,isBrowser:We,isMix:ve,isNode:at,TRUE_STR:G,FALSE_STR:Q,ZONE_SYMBOL_PREFIX:ne,ADD_EVENT_LISTENER_STR:Y,REMOVE_EVENT_LISTENER_STR:V})})}(et)})(Zi),function Bs(et){et.__load_patch("legacy",Ye=>{const It=Ye[et.__symbol__("legacyPatch")];It&&It()}),et.__load_patch("timers",Ye=>{const ot="clear";Mr(Ye,"set",ot,"Timeout"),Mr(Ye,"set",ot,"Interval"),Mr(Ye,"set",ot,"Immediate")}),et.__load_patch("requestAnimationFrame",Ye=>{Mr(Ye,"request","cancel","AnimationFrame"),Mr(Ye,"mozRequest","mozCancel","AnimationFrame"),Mr(Ye,"webkitRequest","webkitCancel","AnimationFrame")}),et.__load_patch("blocking",(Ye,It)=>{const ot=["alert","prompt","confirm"];for(let St=0;Stfunction(Xt,kn){return It.current.run(si,Ye,kn,Hn)})}),et.__load_patch("EventTarget",(Ye,It,ot)=>{(function no(et,Ye){Ye.patchEventPrototype(et,Ye)})(Ye,ot),function Qr(et,Ye){if(Zone[Ye.symbol("patchEventTarget")])return;const{eventNames:It,zoneSymbolEventNames:ot,TRUE_STR:St,FALSE_STR:an,ZONE_SYMBOL_PREFIX:si}=Ye.getGlobalObjects();for(let Hn=0;Hn{Ut("MutationObserver"),Ut("WebKitMutationObserver")}),et.__load_patch("IntersectionObserver",(Ye,It,ot)=>{Ut("IntersectionObserver")}),et.__load_patch("FileReader",(Ye,It,ot)=>{Ut("FileReader")}),et.__load_patch("on_property",(Ye,It,ot)=>{!function Ii(et,Ye){if(at&&!ve||Zone[et.symbol("patchEvents")])return;const It=Ye.__Zone_ignore_on_properties;let ot=[];if(We){const St=window;ot=ot.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const an=function Di(){try{const et=Ie.navigator.userAgent;if(-1!==et.indexOf("MSIE ")||-1!==et.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:St,ignoreProperties:["error"]}]:[];as(St,Li(St),It&&It.concat(an),Z(St))}ot=ot.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let St=0;St{!function br(et,Ye){const{isBrowser:It,isMix:ot}=Ye.getGlobalObjects();(It||ot)&&et.customElements&&"customElements"in et&&Ye.patchCallbacks(Ye,et.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"])}(Ye,ot)}),et.__load_patch("XHR",(Ye,It)=>{!function Xt(kn){const ri=kn.XMLHttpRequest;if(!ri)return;const ji=ri.prototype;let Jr=ji[X],zr=ji[z];if(!Jr){const Ln=kn.XMLHttpRequestEventTarget;if(Ln){const mn=Ln.prototype;Jr=mn[X],zr=mn[z]}}const Mi="readystatechange",Gr="scheduled";function De(Ln){const mn=Ln.data,Wn=mn.target;Wn[si]=!1,Wn[Hn]=!1;const Ar=Wn[an];Jr||(Jr=Wn[X],zr=Wn[z]),Ar&&zr.call(Wn,Mi,Ar);const Mn=Wn[an]=()=>{if(Wn.readyState===Wn.DONE)if(!mn.aborted&&Wn[si]&&Ln.state===Gr){const pn=Wn[It.__symbol__("loadfalse")];if(0!==Wn.status&&pn&&pn.length>0){const Ke=Ln.invoke;Ln.invoke=function(){const gt=Wn[It.__symbol__("loadfalse")];for(let Dn=0;Dnfunction(Ln,mn){return Ln[St]=0==mn[2],Ln[Jn]=mn[1],dt.apply(Ln,mn)}),en=we("fetchTaskAborting"),Qt=we("fetchTaskScheduling"),Gt=Pt(ji,"send",()=>function(Ln,mn){if(!0===It.current[Qt]||Ln[St])return Gt.apply(Ln,mn);{const Wn={target:Ln,url:Ln[Jn],isPeriodic:!1,args:mn,aborted:!1},Ar=me("XMLHttpRequest.send",ue,Wn,De,Ve);Ln&&!0===Ln[Hn]&&!Wn.aborted&&Ar.state===Gr&&Ar.invoke()}}),Rn=Pt(ji,"abort",()=>function(Ln,mn){const Wn=function Tr(Ln){return Ln[ot]}(Ln);if(Wn&&"string"==typeof Wn.type){if(null==Wn.cancelFn||Wn.data&&Wn.data.aborted)return;Wn.zone.cancelTask(Wn)}else if(!0===It.current[en])return Rn.apply(Ln,mn)})}(Ye);const ot=we("xhrTask"),St=we("xhrSync"),an=we("xhrListener"),si=we("xhrScheduled"),Jn=we("xhrURL"),Hn=we("xhrErrorBeforeScheduled")}),et.__load_patch("geolocation",Ye=>{Ye.navigator&&Ye.navigator.geolocation&&function qe(et,Ye){const It=et.constructor.name;for(let ot=0;ot{const Hn=function(){return Jn.apply(this,He(arguments,It+"."+St))};return jn(Hn,Jn),Hn})(an)}}}(Ye.navigator.geolocation,["getCurrentPosition","watchPosition"])}),et.__load_patch("PromiseRejectionEvent",(Ye,It)=>{function ot(St){return function(an){Hr(Ye,St).forEach(Jn=>{const Hn=Ye.PromiseRejectionEvent;if(Hn){const Xt=new Hn(St,{promise:an.promise,reason:an.rejection});Jn.invoke(Xt)}})}}Ye.PromiseRejectionEvent&&(It[we("unhandledPromiseRejectionHandler")]=ot("unhandledrejection"),It[we("rejectionHandledHandler")]=ot("rejectionhandled"))}),et.__load_patch("queueMicrotask",(Ye,It,ot)=>{!function Ti(et,Ye){Ye.patchMethod(et,"queueMicrotask",It=>function(ot,St){Zone.current.scheduleMicroTask("queueMicrotask",St[0])})}(Ye,ot)})}(Zi)},1190:nt=>{nt.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:nt=>{nt.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:nt=>{nt.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:nt=>{nt.exports="varying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}\n"},9969:(nt,Ee,v)=>{"use strict";v.d(Ee,{FX:()=>We,If:()=>j,K2:()=>L,MA:()=>Q,Os:()=>U,P:()=>re,hZ:()=>y,i0:()=>Z,iF:()=>Y,kY:()=>z,kp:()=>o,sf:()=>je,ui:()=>at,wk:()=>V});var j=function(ve){return ve[ve.State=0]="State",ve[ve.Transition=1]="Transition",ve[ve.Sequence=2]="Sequence",ve[ve.Group=3]="Group",ve[ve.Animate=4]="Animate",ve[ve.Keyframes=5]="Keyframes",ve[ve.Style=6]="Style",ve[ve.Trigger=7]="Trigger",ve[ve.Reference=8]="Reference",ve[ve.AnimateChild=9]="AnimateChild",ve[ve.AnimateRef=10]="AnimateRef",ve[ve.Query=11]="Query",ve[ve.Stagger=12]="Stagger",ve}(j||{});const o="*";function y(ve,he){return{type:j.Trigger,name:ve,definitions:he,options:{}}}function Z(ve,he=null){return{type:j.Animate,styles:he,timings:ve}}function U(ve,he=null){return{type:j.Group,steps:ve,options:he}}function L(ve,he=null){return{type:j.Sequence,steps:ve,options:he}}function Y(ve){return{type:j.Style,styles:ve,offset:null}}function V(ve,he,Qe){return{type:j.State,name:ve,styles:he,options:Qe}}function z(ve,he,Qe=null){return{type:j.Transition,expr:ve,animation:he,options:Qe}}function Q(ve=null){return{type:j.AnimateChild,options:ve}}function re(ve,he,Qe=null){return{type:j.Query,selector:ve,animation:he,options:Qe}}class je{constructor(he=0,Qe=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=he+Qe}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(he=>he()),this._onDoneFns=[])}onStart(he){this._originalOnStartFns.push(he),this._onStartFns.push(he)}onDone(he){this._originalOnDoneFns.push(he),this._onDoneFns.push(he)}onDestroy(he){this._onDestroyFns.push(he)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(he=>he()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(he=>he()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(he){this._position=this.totalTime?he*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(he){const Qe="start"==he?this._onStartFns:this._onDoneFns;Qe.forEach(Te=>Te()),Qe.length=0}}class at{constructor(he){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=he;let Qe=0,Te=0,Le=0;const pt=this.players.length;0==pt?queueMicrotask(()=>this._onFinish()):this.players.forEach(xt=>{xt.onDone(()=>{++Qe==pt&&this._onFinish()}),xt.onDestroy(()=>{++Te==pt&&this._onDestroy()}),xt.onStart(()=>{++Le==pt&&this._onStart()})}),this.totalTime=this.players.reduce((xt,Ut)=>Math.max(xt,Ut.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(he=>he()),this._onDoneFns=[])}init(){this.players.forEach(he=>he.init())}onStart(he){this._onStartFns.push(he)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(he=>he()),this._onStartFns=[])}onDone(he){this._onDoneFns.push(he)}onDestroy(he){this._onDestroyFns.push(he)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(he=>he.play())}pause(){this.players.forEach(he=>he.pause())}restart(){this.players.forEach(he=>he.restart())}finish(){this._onFinish(),this.players.forEach(he=>he.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(he=>he.destroy()),this._onDestroyFns.forEach(he=>he()),this._onDestroyFns=[])}reset(){this.players.forEach(he=>he.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(he){const Qe=he*this.totalTime;this.players.forEach(Te=>{const Le=Te.totalTime?Math.min(1,Qe/Te.totalTime):1;Te.setPosition(Le)})}getPosition(){const he=this.players.reduce((Qe,Te)=>null===Qe||Te.totalTime>Qe.totalTime?Te:Qe,null);return null!=he?he.getPosition():0}beforeDestroy(){this.players.forEach(he=>{he.beforeDestroy&&he.beforeDestroy()})}triggerCallback(he){const Qe="start"==he?this._onStartFns:this._onDoneFns;Qe.forEach(Te=>Te()),Qe.length=0}}const We="!"},4438:(nt,Ee,v)=>{"use strict";function j(a,c){return Object.is(a,c)}v.d(Ee,{bc$:()=>MV,sZ2:()=>by,hnV:()=>uw,o8S:()=>ic,BIS:()=>$P,gRc:()=>BB,OM3:()=>Wy,Ocv:()=>$L,abz:()=>hh,Z63:()=>mc,aKT:()=>Fi,uvJ:()=>ll,zcH:()=>Mc,bkB:()=>Gl,y_5:()=>fA,nKC:()=>En,zZn:()=>ps,_q3:()=>cS,MKu:()=>dS,xe9:()=>Iu,Vns:()=>pp,SKi:()=>so,Agw:()=>vy,PLl:()=>uT,rOR:()=>hd,sFG:()=>zH,_9s:()=>xI,czy:()=>PC,C4Q:()=>Qy,NYb:()=>XE,giA:()=>cw,RxE:()=>ub,c1b:()=>Xy,gXe:()=>gc,mal:()=>h1,Tzd:()=>CM,Af3:()=>Ff,tdH:()=>fF,L39:()=>ko,EWP:()=>ik,sbv:()=>eN,w6W:()=>hN,QZP:()=>rk,Rfq:()=>Hn,WQX:()=>Pn,naY:()=>ZL,Hps:()=>VI,EmA:()=>_c,Udg:()=>Lc,N4e:()=>D0,vPA:()=>XO,O8t:()=>Wh,An2:()=>du,H3F:()=>QL,H8p:()=>F0,KH2:()=>dg,TgB:()=>zl,wOt:()=>Zt,WHO:()=>aw,e01:()=>lw,H5H:()=>iE,Zy3:()=>Mr,mq5:()=>cg,JZv:()=>Zi,TL3:()=>fS,jNT:()=>mb,zjR:()=>dw,ngT:()=>Fa,TL$:()=>tp,Tbb:()=>St,nM4:()=>Po,Vt3:()=>eF,GFd:()=>oF,OA$:()=>Cn,Jv_:()=>nB,aNF:()=>_g,R7$:()=>j4,BMQ:()=>v1,HbH:()=>xp,ZvI:()=>Or,STu:()=>rg,AVh:()=>wd,BUC:()=>HF,vxM:()=>YM,wni:()=>vE,C6U:()=>H1,VBU:()=>yA,FsC:()=>xa,jDH:()=>Mn,G2t:()=>pn,$C:()=>oa,EJ8:()=>us,rXU:()=>wm,nrm:()=>JM,eu8:()=>eE,bVm:()=>I1,qex:()=>T1,k0s:()=>S1,j41:()=>E1,RV6:()=>tE,xGo:()=>ry,Mr5:()=>nE,KVO:()=>ds,kS0:()=>dd,QTQ:()=>Yl,bIt:()=>L1,lsd:()=>mg,joV:()=>Zv,qSk:()=>Kv,XpG:()=>MD,nI1:()=>ML,bMT:()=>xu,i5U:()=>ua,ii3:()=>Td,SdG:()=>SD,NAR:()=>ED,Y8G:()=>jM,FS9:()=>bE,Mz_:()=>V1,lJ4:()=>cb,eq3:()=>IE,l_i:()=>FE,NyB:()=>ND,mGM:()=>OD,sdS:()=>LD,Dyx:()=>$F,Z7z:()=>jF,fX1:()=>GF,Vm6:()=>zF,Njj:()=>RA,EBC:()=>E4,tSv:()=>M4,eBV:()=>Y0,npT:()=>_m,B4B:()=>ap,Aen:()=>gs,xc7:()=>wr,DNE:()=>pu,C5r:()=>PE,EFF:()=>WD,JRh:()=>xE,SpI:()=>z1,Lme:()=>sb,LHq:()=>YD,DH7:()=>gg,mxI:()=>j1,R50:()=>ab,GBs:()=>PD});let o=null,y=!1,Z=1;const U=Symbol("SIGNAL");function L(a){const c=o;return o=a,c}function Y(){return o}const z={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 G(a){if(y)throw new Error("");if(null===o)return;o.consumerOnSignalRead(a);const c=o.nextProducerIndex++;je(o),ca.nextProducerIndex;)a.producerNode.pop(),a.producerLastReadVersion.pop(),a.producerIndexOfThis.pop()}}function Ne(a){je(a);for(let c=0;c0}function je(a){a.producerNode??=[],a.producerIndexOfThis??=[],a.producerLastReadVersion??=[]}function at(a){a.liveConsumerNode??=[],a.liveConsumerIndexOfThis??=[]}function We(a){return void 0!==a.producerNode}function ve(a){const c=Object.create(Le);c.computation=a;const d=()=>{if(ne(c),G(c),c.value===Te)throw c.error;return c.value};return d[U]=c,d}const he=Symbol("UNSET"),Qe=Symbol("COMPUTING"),Te=Symbol("ERRORED"),Le={...z,value:he,dirty:!0,error:null,equal:j,producerMustRecompute:a=>a.value===he||a.value===Qe,producerRecomputeValue(a){if(a.value===Qe)throw new Error("Detected cycle in computations.");const c=a.value;a.value=Qe;const d=Be(a);let h;try{h=a.computation()}catch(A){h=Te,a.error=A}finally{Ie(a,d)}c!==he&&c!==Te&&h!==Te&&a.equal(c,h)?a.value=c:(a.value=h,a.version++)}};let xt=function pt(){throw new Error};function Ut(){xt()}let fn=null;function Di(a,c){me()||Ut(),a.equal(a.value,c)||(a.value=c,function Rt(a){a.version++,function Q(){Z++}(),re(a),fn?.()}(a))}const rt={...z,equal:j,value:void 0};const cn=()=>{},Wt={...z,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:a=>{null!==a.schedule&&a.schedule(a.ref)},hasRun:!1,cleanupFn:cn};var oi=v(4412),Yi=v(1413),fr=v(8359),Hr=v(6354);const Ti="https://g.co/ng/security#xss";class Zt extends Error{constructor(c,d){super(Mr(c,d)),this.code=c}}function Mr(a,c){return`NG0${Math.abs(a)}${c?": "+c:""}`}function Li(a){return{toString:a}.toString()}const Bs="__parameters__";function Ao(a,c,d){return Li(()=>{const h=function ls(a){return function(...d){if(a){const h=a(...d);for(const A in h)this[A]=h[A]}}}(c);function A(...g){if(this instanceof A)return h.apply(this,g),this;const x=new A(...g);return B.annotation=x,B;function B(k,H,K){const fe=k.hasOwnProperty(Bs)?k[Bs]:Object.defineProperty(k,Bs,{value:[]})[Bs];for(;fe.length<=K;)fe.push(null);return(fe[K]=fe[K]||[]).push(x),k}}return d&&(A.prototype=Object.create(d.prototype)),A.prototype.ngMetadataName=a,A.annotationCls=A,A})}const Zi=globalThis;function It(a){for(let c in a)if(a[c]===It)return c;throw Error("Could not find renamed property on target object.")}function ot(a,c){for(const d in c)c.hasOwnProperty(d)&&!a.hasOwnProperty(d)&&(a[d]=c[d])}function St(a){if("string"==typeof a)return a;if(Array.isArray(a))return"["+a.map(St).join(", ")+"]";if(null==a)return""+a;if(a.overriddenName)return`${a.overriddenName}`;if(a.name)return`${a.name}`;const c=a.toString();if(null==c)return""+c;const d=c.indexOf("\n");return-1===d?c:c.substring(0,d)}function an(a,c){return null==a||""===a?null===c?"":c:null==c||""===c?a:a+" "+c}const Jn=It({__forward_ref__:It});function Hn(a){return a.__forward_ref__=Hn,a.toString=function(){return St(this())},a}function Xt(a){return kn(a)?a():a}function kn(a){return"function"==typeof a&&a.hasOwnProperty(Jn)&&a.__forward_ref__===Hn}function Mn(a){return{token:a.token,providedIn:a.providedIn||null,factory:a.factory,value:void 0}}function pn(a){return{providers:a.providers||[],imports:a.imports||[]}}function Ke(a){return Dn(a,bi)||Dn(a,mo)}function Dn(a,c){return a.hasOwnProperty(c)?a[c]:null}function _i(a){return a&&(a.hasOwnProperty(io)||a.hasOwnProperty(Io))?a[io]:null}const bi=It({\u0275prov:It}),io=It({\u0275inj:It}),mo=It({ngInjectableDef:It}),Io=It({ngInjectorDef:It});class En{constructor(c,d){this._desc=c,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof d?this.__NG_ELEMENT_ID__=d:void 0!==d&&(this.\u0275prov=Mn({token:this,providedIn:d.providedIn||"root",factory:d.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function Er(a){return a&&!!a.\u0275providers}const vr=It({\u0275cmp:It}),cs=It({\u0275dir:It}),Xo=It({\u0275pipe:It}),rl=It({\u0275mod:It}),No=It({\u0275fac:It}),ra=It({__NG_ELEMENT_ID__:It}),ga=It({__NG_ENV_ID__:It});function vi(a){return"string"==typeof a?a:null==a?"":String(a)}function Qn(a,c){throw new Zt(-201,!1)}var Ei=function(a){return a[a.Default=0]="Default",a[a.Host=1]="Host",a[a.Self=2]="Self",a[a.SkipSelf=4]="SkipSelf",a[a.Optional=8]="Optional",a}(Ei||{});let Lo;function yf(){return Lo}function Rs(a){const c=Lo;return Lo=a,c}function uA(a,c,d){const h=Ke(a);return h&&"root"==h.providedIn?void 0===h.value?h.value=h.factory():h.value:d&Ei.Optional?null:void 0!==c?c:void Qn()}const Wu={},ba="__NG_DI_FLAG__",Xu="ngTempTokenPath",v0=/\n/gm,wf="__source";let Ud;function pc(a){const c=Ud;return Ud=a,c}function _v(a,c=Ei.Default){if(void 0===Ud)throw new Zt(-203,!1);return null===Ud?uA(a,void 0,c):Ud.get(a,c&Ei.Optional?null:void 0,c)}function ds(a,c=Ei.Default){return(yf()||_v)(Xt(a),c)}function Pn(a,c=Ei.Default){return ds(a,y0(c))}function y0(a){return typeof a>"u"||"number"==typeof a?a:(a.optional&&8)|(a.host&&1)|(a.self&&2)|(a.skipSelf&&4)}function va(a){const c=[];for(let d=0;d({token:a})),-1),xf=Yu(Ao("Optional"),8),w0=Yu(Ao("SkipSelf"),4);function ol(a,c){return a.hasOwnProperty(No)?a[No]:null}function Ac(a,c){a.forEach(d=>Array.isArray(d)?Ac(d,c):c(d))}function Qx(a,c,d){c>=a.length?a.push(d):a.splice(c,0,d)}function Cf(a,c){return c>=a.length-1?a.pop():a.splice(c,1)[0]}function wa(a,c,d){let h=Mf(a,c);return h>=0?a[1|h]=d:(h=~h,function C0(a,c,d,h){let A=a.length;if(A==c)a.push(d,h);else if(1===A)a.push(h,a[0]),a[0]=d;else{for(A--,a.push(a[A-1],a[A]);A>c;)a[A]=a[A-2],A--;a[c]=d,a[c+1]=h}}(a,h,c,d)),h}function M0(a,c){const d=Mf(a,c);if(d>=0)return a[1|d]}function Mf(a,c){return function yv(a,c,d){let h=0,A=a.length>>d;for(;A!==h;){const g=h+(A-h>>1),x=a[g<c?A=g:h=g+1}return~(A<c){x=g-1;break}}}for(;g-1){let g;for(;++Ag?"":A[K+1].toLowerCase(),2&h&&H!==fe){if(yi(h))return!1;x=!0}}}}else{if(!x&&!yi(h)&&!yi(k))return!1;if(x&&yi(k))continue;x=!1,h=k|1&h}}return yi(h)||x}function yi(a){return!(1&a)}function Gx(a,c,d,h){if(null===c)return-1;let A=0;if(h||!d){let g=!1;for(;A-1)for(d++;d0?'="'+B+'"':"")+"]"}else 8&h?A+="."+x:4&h&&(A+=" "+x);else""!==A&&!yi(x)&&(c+=Mv(g,A),A=""),h=x,g=g||!yi(h);d++}return""!==A&&(c+=Mv(g,A)),c}function yA(a){return Li(()=>{const c=qx(a),d={...c,decls:a.decls,vars:a.vars,template:a.template,consts:a.consts||null,ngContentSelectors:a.ngContentSelectors,onPush:a.changeDetection===gA.OnPush,directiveDefs:null,pipeDefs:null,dependencies:c.standalone&&a.dependencies||null,getStandaloneInjector:null,signals:a.signals??!1,data:a.data||{},encapsulation:a.encapsulation||gc.Emulated,styles:a.styles||Ir,_:null,schemas:a.schemas||null,tView:null,id:""};Yc(d);const h=a.dependencies;return d.directiveDefs=Ca(h,!1),d.pipeDefs=Ca(h,!0),d.id=function Wx(a){let c=0;const d=[a.selectors,a.ngContentSelectors,a.hostVars,a.hostAttrs,a.consts,a.vars,a.decls,a.encapsulation,a.standalone,a.signals,a.exportAs,JSON.stringify(a.inputs),JSON.stringify(a.outputs),Object.getOwnPropertyNames(a.type.prototype),!!a.contentQueries,!!a.viewQuery].join("|");for(const A of d)c=Math.imul(31,c)+A.charCodeAt(0)|0;return c+=2147483648,"c"+c}(d),d})}function T0(a){return $i(a)||Uo(a)}function Sv(a){return null!==a}function oa(a){return Li(()=>({type:a.type,bootstrap:a.bootstrap||Ir,declarations:a.declarations||Ir,imports:a.imports||Ir,exports:a.exports||Ir,transitiveCompileScopes:null,schemas:a.schemas||null,id:a.id||null}))}function al(a,c){if(null==a)return Dl;const d={};for(const h in a)if(a.hasOwnProperty(h)){const A=a[h];let g,x,B=Wc.None;Array.isArray(A)?(B=A[0],g=A[1],x=A[2]??g):(g=A,x=A),c?(d[g]=B!==Wc.None?[h,B]:h,c[g]=x):d[g]=h}return d}function xa(a){return Li(()=>{const c=qx(a);return Yc(c),c})}function us(a){return{type:a.type,name:a.name,factory:null,pure:!1!==a.pure,standalone:!0===a.standalone,onDestroy:a.type.prototype.ngOnDestroy||null}}function $i(a){return a[vr]||null}function Uo(a){return a[cs]||null}function Ko(a){return a[Xo]||null}function qx(a){const c={};return{type:a.type,providersResolver:null,factory:null,hostBindings:a.hostBindings||null,hostVars:a.hostVars||0,hostAttrs:a.hostAttrs||null,contentQueries:a.contentQueries||null,declaredInputs:c,inputTransforms:null,inputConfig:a.inputs||Dl,exportAs:a.exportAs||null,standalone:!0===a.standalone,signals:!0===a.signals,selectors:a.selectors||Ir,viewQuery:a.viewQuery||null,features:a.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:al(a.inputs,c),outputs:al(a.outputs),debugInfo:null}}function Yc(a){a.features?.forEach(c=>c(a))}function Ca(a,c){if(!a)return null;const d=c?Ko:T0;return()=>("function"==typeof a?a():a).map(h=>d(h)).filter(Sv)}function _c(a){return{\u0275providers:a}}function Gd(...a){return{\u0275providers:Iv(0,a),\u0275fromNgModule:!0}}function Iv(a,...c){const d=[],h=new Set;let A;const g=x=>{d.push(x)};return Ac(c,x=>{const B=x;Ma(B,g,[],h)&&(A||=[],A.push(B))}),void 0!==A&&Xx(A,g),d}function Xx(a,c){for(let d=0;d{c(g,h)})}}function Ma(a,c,d,h){if(!(a=Xt(a)))return!1;let A=null,g=_i(a);const x=!g&&$i(a);if(g||x){if(x&&!x.standalone)return!1;A=a}else{const k=a.ngModule;if(g=_i(k),!g)return!1;A=k}const B=h.has(A);if(x){if(B)return!1;if(h.add(A),x.dependencies){const k="function"==typeof x.dependencies?x.dependencies():x.dependencies;for(const H of k)Ma(H,c,d,h)}}else{if(!g)return!1;{if(null!=g.imports&&!B){let H;h.add(A);try{Ac(g.imports,K=>{Ma(K,c,d,h)&&(H||=[],H.push(K))})}finally{}void 0!==H&&Xx(H,c)}if(!B){const H=ol(A)||(()=>new A);c({provide:A,useFactory:H,deps:Ir},A),c({provide:E0,useValue:A,multi:!0},A),c({provide:mc,useValue:()=>ds(A),multi:!0},A)}const k=g.providers;if(null!=k&&!B){const H=a;Fv(k,K=>{c(K,H)})}}}return A!==a&&void 0!==a.providers}function Fv(a,c){for(let d of a)Er(d)&&(d=d.\u0275providers),Array.isArray(d)?Fv(d,c):c(d)}const J2=It({provide:String,useValue:It});function Ef(a){return null!==a&&"object"==typeof a&&J2 in a}function Zc(a){return"function"==typeof a}const F0=new En(""),Sf={},Yx={};let wA;function Tf(){return void 0===wA&&(wA=new mA),wA}class ll{}class Jc extends ll{get destroyed(){return this._destroyed}constructor(c,d,h,A){super(),this.parent=d,this.source=h,this.scopes=A,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,Rv(c,x=>this.processProvider(x)),this.records.set(zx,eh(void 0,this)),A.has("environment")&&this.records.set(ll,eh(void 0,this));const g=this.records.get(F0);null!=g&&"string"==typeof g.value&&this.scopes.add(g.value),this.injectorDefTypes=new Set(this.get(E0,Ir,Ei.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const c=L(null);try{for(const h of this._ngOnDestroyHooks)h.ngOnDestroy();const d=this._onDestroyHooks;this._onDestroyHooks=[];for(const h of d)h()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),L(c)}}onDestroy(c){return this.assertNotDestroyed(),this._onDestroyHooks.push(c),()=>this.removeOnDestroy(c)}runInContext(c){this.assertNotDestroyed();const d=pc(this),h=Rs(void 0);try{return c()}finally{pc(d),Rs(h)}}get(c,d=Wu,h=Ei.Default){if(this.assertNotDestroyed(),c.hasOwnProperty(ga))return c[ga](this);h=y0(h);const g=pc(this),x=Rs(void 0);try{if(!(h&Ei.SkipSelf)){let k=this.records.get(c);if(void 0===k){const H=function iT(a){return"function"==typeof a||"object"==typeof a&&a instanceof En}(c)&&Ke(c);k=H&&this.injectableDefInScope(H)?eh(Bv(c),Sf):null,this.records.set(c,k)}if(null!=k)return this.hydrate(c,k)}return(h&Ei.Self?Tf():this.parent).get(c,d=h&Ei.Optional&&d===Wu?null:d)}catch(B){if("NullInjectorError"===B.name){if((B[Xu]=B[Xu]||[]).unshift(St(c)),g)throw B;return function Vx(a,c,d,h){const A=a[Xu];throw c[wf]&&A.unshift(c[wf]),a.message=function bv(a,c,d,h=null){a=a&&"\n"===a.charAt(0)&&"\u0275"==a.charAt(1)?a.slice(2):a;let A=St(c);if(Array.isArray(c))A=c.map(St).join(" -> ");else if("object"==typeof c){let g=[];for(let x in c)if(c.hasOwnProperty(x)){let B=c[x];g.push(x+":"+("string"==typeof B?JSON.stringify(B):St(B)))}A=`{${g.join(", ")}}`}return`${d}${h?"("+h+")":""}[${A}]: ${a.replace(v0,"\n ")}`}("\n"+a.message,A,d,h),a.ngTokenPath=A,a[Xu]=null,a}(B,c,"R3InjectorError",this.source)}throw B}finally{Rs(x),pc(g)}}resolveInjectorInitializers(){const c=L(null),d=pc(this),h=Rs(void 0);try{const g=this.get(mc,Ir,Ei.Self);for(const x of g)x()}finally{pc(d),Rs(h),L(c)}}toString(){const c=[],d=this.records;for(const h of d.keys())c.push(St(h));return`R3Injector[${c.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Zt(205,!1)}processProvider(c){let d=Zc(c=Xt(c))?c:Xt(c&&c.provide);const h=function kv(a){return Ef(a)?eh(void 0,a.useValue):eh(Zx(a),Sf)}(c);if(!Zc(c)&&!0===c.multi){let A=this.records.get(d);A||(A=eh(void 0,Sf,!0),A.factory=()=>va(A.multi),this.records.set(d,A)),d=c,A.multi.push(c)}this.records.set(d,h)}hydrate(c,d){const h=L(null);try{return d.value===Sf&&(d.value=Yx,d.value=d.factory()),"object"==typeof d.value&&d.value&&function nT(a){return null!==a&&"object"==typeof a&&"function"==typeof a.ngOnDestroy}(d.value)&&this._ngOnDestroyHooks.add(d.value),d.value}finally{L(h)}}injectableDefInScope(c){if(!c.providedIn)return!1;const d=Xt(c.providedIn);return"string"==typeof d?"any"===d||this.scopes.has(d):this.injectorDefTypes.has(d)}removeOnDestroy(c){const d=this._onDestroyHooks.indexOf(c);-1!==d&&this._onDestroyHooks.splice(d,1)}}function Bv(a){const c=Ke(a),d=null!==c?c.factory:ol(a);if(null!==d)return d;if(a instanceof En)throw new Zt(204,!1);if(a instanceof Function)return function eT(a){if(a.length>0)throw new Zt(204,!1);const d=function ei(a){return a&&(a[bi]||a[mo])||null}(a);return null!==d?()=>d.factory(a):()=>new a}(a);throw new Zt(204,!1)}function Zx(a,c,d){let h;if(Zc(a)){const A=Xt(a);return ol(A)||Bv(A)}if(Ef(a))h=()=>Xt(a.useValue);else if(function I0(a){return!(!a||!a.useFactory)}(a))h=()=>a.useFactory(...va(a.deps||[]));else if(function Kx(a){return!(!a||!a.useExisting)}(a))h=()=>ds(Xt(a.useExisting));else{const A=Xt(a&&(a.useClass||a.provide));if(!function tT(a){return!!a.deps}(a))return ol(A)||Bv(A);h=()=>new A(...va(a.deps))}return h}function eh(a,c,d=!1){return{factory:a,value:c,multi:d?[]:void 0}}function Rv(a,c){for(const d of a)Array.isArray(d)?Rv(d,c):d&&Er(d)?Rv(d.\u0275providers,c):c(d)}function D0(a,c){a instanceof Jc&&a.assertNotDestroyed();const h=pc(a),A=Rs(void 0);try{return c()}finally{pc(h),Rs(A)}}function If(){return void 0!==yf()||null!=function Ku(){return Ud}()}function Ff(a){if(!If())throw new Zt(-203,!1)}const ro=0,Jt=1,wi=2,$o=3,cl=4,ws=5,$s=6,th=7,oo=8,Vo=9,Va=10,Oi=11,jd=12,nC=13,$d=14,_o=15,vc=16,qd=17,dl=18,Bl=19,Ov=20,td=21,CA=22,Ha=23,ui=25,MA=1,kl=7,nh=9,Ho=10;var R0=function(a){return a[a.None=0]="None",a[a.HasTransplantedViews=2]="HasTransplantedViews",a}(R0||{});function hs(a){return Array.isArray(a)&&"object"==typeof a[MA]}function Os(a){return Array.isArray(a)&&!0===a[MA]}function P0(a){return!!(4&a.flags)}function ih(a){return a.componentOffset>-1}function O0(a){return!(1&~a.flags)}function Rl(a){return!!a.template}function SA(a){return!!(512&a[wi])}class sT{constructor(c,d,h){this.previousValue=c,this.currentValue=d,this.firstChange=h}isFirstChange(){return this.firstChange}}function H0(a,c,d,h){null!==c?c.applyValueToInputSignal(c,h):a[d]=h}function Cn(){return Xd}function Xd(a){return a.type.prototype.ngOnChanges&&(a.setInput=Ai),Xr}function Xr(){const a=Lv(this),c=a?.current;if(c){const d=a.previous;if(d===Dl)a.previous=c;else for(let h in c)d[h]=c[h];a.current=null,this.ngOnChanges(c)}}function Ai(a,c,d,h,A){const g=this.declaredInputs[h],x=Lv(a)||function IA(a,c){return a[un]=c}(a,{previous:Dl,current:null}),B=x.current||(x.current={}),k=x.previous,H=k[g];B[g]=new sT(H&&H.currentValue,d,k===Dl),H0(a,c,A,d)}Cn.ngInherit=!0;const un="__ngSimpleChanges__";function Lv(a){return a[un]||null}const Pl=function(a,c,d){},Of="svg";function ar(a){for(;Array.isArray(a);)a=a[ro];return a}function Nf(a,c){return ar(c[a])}function sa(a,c){return ar(c[a.index])}function Fr(a,c){return a.data[c]}function sr(a,c){return a[c]}function Ws(a,c){const d=c[a];return hs(d)?d:d[ro]}function z0(a){return!(128&~a[wi])}function Qa(a,c){return null==c?null:a[c]}function Uv(a){a[qd]=0}function Vv(a){1024&a[wi]||(a[wi]|=1024,z0(a)&&j0(a))}function G0(a){return!!(9216&a[wi]||a[Ha]?.dirty)}function Hv(a){a[Va].changeDetectionScheduler?.notify(8),64&a[wi]&&(a[wi]|=1024),G0(a)&&j0(a)}function j0(a){a[Va].changeDetectionScheduler?.notify(0);let c=yc(a);for(;null!==c&&!(8192&c[wi])&&(c[wi]|=8192,z0(c));)c=yc(c)}function DA(a,c){if(!(256&~a[wi]))throw new Zt(911,!1);null===a[td]&&(a[td]=[]),a[td].push(c)}function yc(a){const c=a[$o];return Os(c)?c[$o]:c}const Ni={lFrame:oh(null),bindingsEnabled:!0,skipHydrationRootTNode:null};let $0=!1;function kA(){return Ni.bindingsEnabled}function nd(){return null!==Ni.skipHydrationRootTNode}function Ot(){return Ni.lFrame.lView}function or(){return Ni.lFrame.tView}function Y0(a){return Ni.lFrame.contextLView=a,a[oo]}function RA(a){return Ni.lFrame.contextLView=null,a}function jr(){let a=jv();for(;null!==a&&64===a.type;)a=a.parent;return a}function jv(){return Ni.lFrame.currentTNode}function Mo(a,c){const d=Ni.lFrame;d.currentTNode=a,d.isParent=c}function eo(){return Ni.lFrame.isParent}function OA(){Ni.lFrame.isParent=!1}function $v(){return $0}function e_(a){$0=a}function Ns(){const a=Ni.lFrame;let c=a.bindingRootIndex;return-1===c&&(c=a.bindingRootIndex=a.tView.bindingStartIndex),c}function Ll(){return Ni.lFrame.bindingIndex}function ul(){return Ni.lFrame.bindingIndex++}function Pr(a){const c=Ni.lFrame,d=c.bindingIndex;return c.bindingIndex=c.bindingIndex+a,d}function Vf(a,c){const d=Ni.lFrame;d.bindingIndex=d.bindingRootIndex=a,LA(c)}function LA(a){Ni.lFrame.currentDirectiveIndex=a}function Hf(){return Ni.lFrame.currentQueryIndex}function Ul(a){Ni.lFrame.currentQueryIndex=a}function t_(a){const c=a[Jt];return 2===c.type?c.declTNode:1===c.type?a[ws]:null}function n_(a,c,d){if(d&Ei.SkipSelf){let A=c,g=a;for(;!(A=A.parent,null!==A||d&Ei.Host||(A=t_(g),null===A||(g=g[$d],10&A.type))););if(null===A)return!1;c=A,a=g}const h=Ni.lFrame=VA();return h.currentTNode=c,h.lView=a,!0}function Qf(a){const c=VA(),d=a[Jt];Ni.lFrame=c,c.currentTNode=d.firstChild,c.lView=a,c.tView=d,c.contextLView=a,c.bindingIndex=d.bindingStartIndex,c.inI18n=!1}function VA(){const a=Ni.lFrame,c=null===a?null:a.child;return null===c?oh(a):c}function oh(a){const c={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:a,child:null,inI18n:!1};return null!==a&&(a.child=c),c}function Wv(){const a=Ni.lFrame;return Ni.lFrame=a.parent,a.currentTNode=null,a.lView=null,a}const hl=Wv;function HA(){const a=Wv();a.isParent=!0,a.tView=null,a.selectedIndex=-1,a.contextLView=null,a.elementDepthCount=0,a.currentDirectiveIndex=-1,a.currentNamespace=null,a.bindingRootIndex=-1,a.bindingIndex=-1,a.currentQueryIndex=0}function $n(){return Ni.lFrame.selectedIndex}function id(a){Ni.lFrame.selectedIndex=a}function Rr(){const a=Ni.lFrame;return Fr(a.tView,a.selectedIndex)}function Kv(){Ni.lFrame.currentNamespace=Of}function Zv(){!function aT(){Ni.lFrame.currentNamespace=null}()}let zf=!0;function sh(){return zf}function fl(a){zf=a}function zA(a,c){for(let d=c.directiveStart,h=c.directiveEnd;d=h)break}else c[k]<0&&(a[qd]+=65536),(B>14>16&&(3&a[wi])===c&&(a[wi]+=16384,Gf(B,g)):Gf(B,g)}const jf=-1;class GA{constructor(c,d,h){this.factory=c,this.resolving=!1,this.canSeeViewProviders=d,this.injectImpl=h}}const qf={};class Vl{constructor(c,d){this.injector=c,this.parentInjector=d}get(c,d,h){h=y0(h);const A=this.injector.get(c,qf,h);return A!==qf||d===qf?A:this.parentInjector.get(c,d,h)}}function Wf(a){return a!==jf}function od(a){return 32767&a}function Zd(a,c){let d=function jA(a){return a>>16}(a),h=c;for(;d>0;)h=h[$d],d--;return h}let qA=!0;function sd(a){const c=qA;return qA=a,c}const XA=255,KA=5;let YA=0;const za={};function Xf(a,c){const d=xc(a,c);if(-1!==d)return d;const h=c[Jt];h.firstCreatePass&&(a.injectorIndex=c.length,Jd(h.data,a),Jd(c,null),Jd(h.blueprint,null));const A=ad(a,c),g=a.injectorIndex;if(Wf(A)){const x=od(A),B=Zd(A,c),k=B[Jt].data;for(let H=0;H<8;H++)c[g+H]=B[x+H]|k[x+H]}return c[g+8]=A,g}function Jd(a,c){a.push(0,0,0,0,0,0,0,0,c)}function xc(a,c){return-1===a.injectorIndex||a.parent&&a.parent.injectorIndex===a.injectorIndex||null===c[a.injectorIndex+8]?-1:a.injectorIndex}function ad(a,c){if(a.parent&&-1!==a.parent.injectorIndex)return a.parent.injectorIndex;let d=0,h=null,A=c;for(;null!==A;){if(h=oy(A),null===h)return jf;if(d++,A=A[$d],-1!==h.injectorIndex)return h.injectorIndex|d<<16}return jf}function bo(a,c,d){!function i_(a,c,d){let h;"string"==typeof d?h=d.charCodeAt(0)||0:d.hasOwnProperty(ra)&&(h=d[ra]),null==h&&(h=d[ra]=YA++);const A=h&XA;c.data[a+(A>>KA)]|=1<=0?c&XA:pC:c}(d);if("function"==typeof g){if(!n_(c,a,h))return h&Ei.Host?eu(A,0,h):Hl(c,d,h,A);try{let x;if(x=g(h),null!=x||h&Ei.Optional)return x;Qn()}finally{hl()}}else if("number"==typeof g){let x=null,B=xc(a,c),k=jf,H=h&Ei.Host?c[_o][ws]:null;for((-1===B||h&Ei.SkipSelf)&&(k=-1===B?ad(a,c):c[B+8],k!==jf&&Cc(h,!1)?(x=c[Jt],B=od(k),c=Zd(k,c)):B=-1);-1!==B;){const K=c[Jt];if(ZA(g,B,K.data)){const fe=pl(B,c,d,x,h,H);if(fe!==za)return fe}k=c[B+8],k!==jf&&Cc(h,c[Jt].data[B+8]===H)&&ZA(g,B,c)?(x=K,B=od(k),c=Zd(k,c)):B=-1}}return A}function pl(a,c,d,h,A,g){const x=c[Jt],B=x.data[a+8],K=lh(B,x,d,null==h?ih(B)&&qA:h!=x&&!!(3&B.type),A&Ei.Host&&g===B);return null!==K?ld(c,x,K,B):za}function lh(a,c,d,h,A){const g=a.providerIndexes,x=c.data,B=1048575&g,k=a.directiveStart,K=g>>20,Re=A?B+K:a.directiveEnd;for(let Ge=h?B:B+K;Ge=k&&st.type===d)return Ge}if(A){const Ge=x[k];if(Ge&&Rl(Ge)&&Ge.type===d)return k}return null}function ld(a,c,d,h){let A=a[d];const g=c.data;if(function ty(a){return a instanceof GA}(A)){const x=A;x.resolving&&function _a(a,c){throw c&&c.join(" > "),new Zt(-200,a)}(function Ji(a){return"function"==typeof a?a.name||a.toString():"object"==typeof a&&null!=a&&"function"==typeof a.type?a.type.name||a.type.toString():vi(a)}(g[d]));const B=sd(x.canSeeViewProviders);x.resolving=!0;const H=x.injectImpl?Rs(x.injectImpl):null;n_(a,h,Ei.Default);try{A=a[d]=x.factory(void 0,g,a,h),c.firstCreatePass&&d>=h.directiveStart&&function Kd(a,c,d){const{ngOnChanges:h,ngOnInit:A,ngDoCheck:g}=c.type.prototype;if(h){const x=Xd(c);(d.preOrderHooks??=[]).push(a,x),(d.preOrderCheckHooks??=[]).push(a,x)}A&&(d.preOrderHooks??=[]).push(0-a,A),g&&((d.preOrderHooks??=[]).push(a,g),(d.preOrderCheckHooks??=[]).push(a,g))}(d,g[d],c)}finally{null!==H&&Rs(H),sd(B),x.resolving=!1,hl()}}return A}function ZA(a,c,d){return!!(d[c+(a>>KA)]&1<{const c=a.prototype.constructor,d=c[No]||Yt(c),h=Object.prototype;let A=Object.getPrototypeOf(a.prototype).constructor;for(;A&&A!==h;){const g=A[No]||Yt(A);if(g&&g!==d)return g;A=Object.getPrototypeOf(A)}return g=>new g})}function Yt(a){return kn(a)?()=>{const c=Yt(Xt(a));return c&&c()}:ol(a)}function oy(a){const c=a[Jt],d=c.type;return 2===d?c.declTNode:1===d?a[ws]:null}function dd(a){return function Sa(a,c){if("class"===c)return a.classes;if("style"===c)return a.styles;const d=a.attrs;if(d){const h=d.length;let A=0;for(;Ads(zx)})}static{this.__NG_ELEMENT_ID__=-1}}new En("").__NG_ELEMENT_ID__=a=>{const c=jr();if(null===c)throw new Zt(204,!1);if(2&c.type)return c.value;if(a&Ei.Optional)return null;throw new Zt(204,!1)};function uh(a){return a.ngOriginalError}const Ta=!0;let hh=(()=>{class a{static{this.__NG_ELEMENT_ID__=Eo}static{this.__NG_ENV_ID__=d=>d}}return a})();class Kr extends hh{constructor(c){super(),this._lView=c}onDestroy(c){return DA(this._lView,c),()=>function Uf(a,c){if(null===a[td])return;const d=a[td].indexOf(c);-1!==d&&a[td].splice(d,1)}(this._lView,c)}}function Eo(){return new Kr(Ot())}let zl=(()=>{class a{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new oi.t(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const d=this.taskId++;return this.pendingTasks.add(d),d}remove(d){this.pendingTasks.delete(d),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static{this.\u0275prov=Mn({token:a,providedIn:"root",factory:()=>new a})}}return a})();const Gl=class im extends Yi.B{constructor(c=!1){super(),this.destroyRef=void 0,this.pendingTasks=void 0,this.__isAsync=c,If()&&(this.destroyRef=Pn(hh,{optional:!0})??void 0,this.pendingTasks=Pn(zl,{optional:!0})??void 0)}emit(c){const d=L(null);try{super.next(c)}finally{L(d)}}subscribe(c,d,h){let A=c,g=d||(()=>null),x=h;if(c&&"object"==typeof c){const k=c;A=k.next?.bind(k),g=k.error?.bind(k),x=k.complete?.bind(k)}this.__isAsync&&(g=this.wrapInTimeout(g),A&&(A=this.wrapInTimeout(A)),x&&(x=this.wrapInTimeout(x)));const B=super.subscribe({next:A,error:g,complete:x});return c instanceof fr.yU&&c.add(B),B}wrapInTimeout(c){return d=>{const h=this.pendingTasks?.add();setTimeout(()=>{c(d),void 0!==h&&this.pendingTasks?.remove(h)})}}};function ud(...a){}function uy(a){let c,d;function h(){a=ud;try{void 0!==d&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(d),void 0!==c&&clearTimeout(c)}catch{}}return c=setTimeout(()=>{a(),h()}),"function"==typeof requestAnimationFrame&&(d=requestAnimationFrame(()=>{a(),h()})),()=>h()}function hy(a){return queueMicrotask(()=>a()),()=>{a=ud}}const Yf="isAngularZone",Zf=Yf+"_ID";let c_=0;class so{constructor(c){this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Gl(!1),this.onMicrotaskEmpty=new Gl(!1),this.onStable=new Gl(!1),this.onError=new Gl(!1);const{enableLongStackTrace:d=!1,shouldCoalesceEventChangeDetection:h=!1,shouldCoalesceRunChangeDetection:A=!1,scheduleInRootZone:g=Ta}=c;if(typeof Zone>"u")throw new Zt(908,!1);Zone.assertZonePatched();const x=this;x._nesting=0,x._outer=x._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(x._inner=x._inner.fork(new Zone.TaskTrackingZoneSpec)),d&&Zone.longStackTraceZoneSpec&&(x._inner=x._inner.fork(Zone.longStackTraceZoneSpec)),x.shouldCoalesceEventChangeDetection=!A&&h,x.shouldCoalesceRunChangeDetection=A,x.callbackScheduled=!1,x.scheduleInRootZone=g,function _C(a){const c=()=>{!function py(a){function c(){uy(()=>{a.callbackScheduled=!1,fh(a),a.isCheckStableRunning=!0,Jf(a),a.isCheckStableRunning=!1})}a.isCheckStableRunning||a.callbackScheduled||(a.callbackScheduled=!0,a.scheduleInRootZone?Zone.root.run(()=>{c()}):a._outer.run(()=>{c()}),fh(a))}(a)},d=c_++;a._inner=a._inner.fork({name:"angular",properties:{[Yf]:!0,[Zf]:d,[Zf+d]:!0},onInvokeTask:(h,A,g,x,B,k)=>{if(function om(a){return gy(a,"__ignore_ng_zone__")}(k))return h.invokeTask(g,x,B,k);try{return Ay(a),h.invokeTask(g,x,B,k)}finally{(a.shouldCoalesceEventChangeDetection&&"eventTask"===x.type||a.shouldCoalesceRunChangeDetection)&&c(),my(a)}},onInvoke:(h,A,g,x,B,k,H)=>{try{return Ay(a),h.invoke(g,x,B,k,H)}finally{a.shouldCoalesceRunChangeDetection&&!a.callbackScheduled&&!function Ga(a){return gy(a,"__scheduler_tick__")}(k)&&c(),my(a)}},onHasTask:(h,A,g,x)=>{h.hasTask(g,x),A===g&&("microTask"==x.change?(a._hasPendingMicrotasks=x.microTask,fh(a),Jf(a)):"macroTask"==x.change&&(a.hasPendingMacrotasks=x.macroTask))},onHandleError:(h,A,g,x)=>(h.handleError(g,x),a.runOutsideAngular(()=>a.onError.emit(x)),!1)})}(x)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get(Yf)}static assertInAngularZone(){if(!so.isInAngularZone())throw new Zt(909,!1)}static assertNotInAngularZone(){if(so.isInAngularZone())throw new Zt(909,!1)}run(c,d,h){return this._inner.run(c,d,h)}runTask(c,d,h,A){const g=this._inner,x=g.scheduleEventTask("NgZoneEvent: "+A,c,fy,ud,ud);try{return g.runTask(x,d,h)}finally{g.cancelTask(x)}}runGuarded(c,d,h){return this._inner.runGuarded(c,d,h)}runOutsideAngular(c){return this._outer.run(c)}}const fy={};function Jf(a){if(0==a._nesting&&!a.hasPendingMicrotasks&&!a.isStable)try{a._nesting++,a.onMicrotaskEmpty.emit(null)}finally{if(a._nesting--,!a.hasPendingMicrotasks)try{a.runOutsideAngular(()=>a.onStable.emit(null))}finally{a.isStable=!0}}}function fh(a){a.hasPendingMicrotasks=!!(a._hasPendingMicrotasks||(a.shouldCoalesceEventChangeDetection||a.shouldCoalesceRunChangeDetection)&&!0===a.callbackScheduled)}function Ay(a){a._nesting++,a.isStable&&(a.isStable=!1,a.onUnstable.emit(null))}function my(a){a._nesting--,Jf(a)}class rm{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Gl,this.onMicrotaskEmpty=new Gl,this.onStable=new Gl,this.onError=new Gl}run(c,d,h){return c.apply(d,h)}runGuarded(c,d,h){return c.apply(d,h)}runOutsideAngular(c){return c()}runTask(c,d,h,A){return c.apply(d,h)}}function gy(a,c){return!(!Array.isArray(a)||1!==a.length)&&!0===a[0]?.data?.[c]}class Mc{constructor(){this._console=console}handleError(c){const d=this._findOriginalError(c);this._console.error("ERROR",c),d&&this._console.error("ORIGINAL ERROR",d)}_findOriginalError(c){let d=c&&uh(c);for(;d&&uh(d);)d=uh(d);return d||null}}const bC=new En("",{providedIn:"root",factory:()=>{const a=Pn(so),c=Pn(Mc);return d=>a.runOutsideAngular(()=>c.handleError(d))}});function dT(){return vn(jr(),Ot())}function vn(a,c){return new Fi(sa(a,c))}let Fi=(()=>{class a{constructor(d){this.nativeElement=d}static{this.__NG_ELEMENT_ID__=dT}}return a})();function Ec(a){return a instanceof Fi?a.nativeElement:a}function u_(){return this._results[Symbol.iterator]()}class hd{get changes(){return this._changes??=new Gl}constructor(c=!1){this._emitDistinctChangesOnly=c,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 d=hd.prototype;d[Symbol.iterator]||(d[Symbol.iterator]=u_)}get(c){return this._results[c]}map(c){return this._results.map(c)}filter(c){return this._results.filter(c)}find(c){return this._results.find(c)}reduce(c,d){return this._results.reduce(c,d)}forEach(c){this._results.forEach(c)}some(c){return this._results.some(c)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(c,d){this.dirty=!1;const h=function ya(a){return a.flat(Number.POSITIVE_INFINITY)}(c);(this._changesDetected=!function Zu(a,c,d){if(a.length!==c.length)return!1;for(let h=0;hh_}),h_="ng",uT=new En(""),vy=new En("",{providedIn:"platform",factory:()=>"unknown"}),MV=new En(""),$P=new En("",{providedIn:"root",factory:()=>Ah().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let XP=()=>null;function My(a,c,d=!1){return XP(a,c,d)}const t4=new En("",{providedIn:"root",factory:()=>!1});let SC,IC;function mh(a){return function TC(){if(void 0===SC&&(SC=null,Zi.trustedTypes))try{SC=Zi.trustedTypes.createPolicy("angular",{createHTML:a=>a,createScript:a=>a,createScriptURL:a=>a})}catch{}return SC}()?.createHTML(a)||a}function s4(a){return function bT(){if(void 0===IC&&(IC=null,Zi.trustedTypes))try{IC=Zi.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:a=>a,createScript:a=>a,createScriptURL:a=>a})}catch{}return IC}()?.createHTML(a)||a}class c4{constructor(c){this.changingThisBreaksApplicationSecurity=c}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Ti})`}}function gh(a){return a instanceof c4?a.changingThisBreaksApplicationSecurity:a}function Sy(a,c){const d=function BV(a){return a instanceof c4&&a.getTypeName()||null}(a);if(null!=d&&d!==c){if("ResourceURL"===d&&"URL"===c)return!0;throw new Error(`Required a safe ${c}, got a ${d} (see ${Ti})`)}return d===c}class g_{constructor(c){this.inertDocumentHelper=c}getInertBodyElement(c){c=""+c;try{const d=(new window.DOMParser).parseFromString(mh(c),"text/html").body;return null===d?this.inertDocumentHelper.getInertBodyElement(c):(d.firstChild?.remove(),d)}catch{return null}}}class d4{constructor(c){this.defaultDoc=c,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(c){const d=this.inertDocument.createElement("template");return d.innerHTML=mh(c),d}}const kV=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function DC(a){return(a=String(a)).match(kV)?a:"unsafe:"+a}function _h(a){const c={};for(const d of a.split(","))c[d]=!0;return c}function Ty(...a){const c={};for(const d of a)for(const h in d)d.hasOwnProperty(h)&&(c[h]=!0);return c}const u4=_h("area,br,col,hr,img,wbr"),__=_h("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),h4=_h("rp,rt"),bh=Ty(u4,Ty(__,_h("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")),Ty(h4,_h("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")),Ty(h4,__)),yT=_h("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),p4=Ty(yT,_h("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"),_h("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")),PV=_h("script,style,template");class A4{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(c){let d=c.firstChild,h=!0,A=[];for(;d;)if(d.nodeType===Node.ELEMENT_NODE?h=this.startElement(d):d.nodeType===Node.TEXT_NODE?this.chars(d.nodeValue):this.sanitizedSomething=!0,h&&d.firstChild)A.push(d),d=m4(d);else for(;d;){d.nodeType===Node.ELEMENT_NODE&&this.endElement(d);let g=sp(d);if(g){d=g;break}d=A.pop()}return this.buf.join("")}startElement(c){const d=wT(c).toLowerCase();if(!bh.hasOwnProperty(d))return this.sanitizedSomething=!0,!PV.hasOwnProperty(d);this.buf.push("<"),this.buf.push(d);const h=c.attributes;for(let A=0;A"),!0}endElement(c){const d=wT(c).toLowerCase();bh.hasOwnProperty(d)&&!u4.hasOwnProperty(d)&&(this.buf.push(""))}chars(c){this.buf.push(mm(c))}}function sp(a){const c=a.nextSibling;if(c&&a!==c.previousSibling)throw xT(c);return c}function m4(a){const c=a.firstChild;if(c&&function OV(a,c){return(a.compareDocumentPosition(c)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(a,c))throw xT(c);return c}function wT(a){const c=a.nodeName;return"string"==typeof c?c:"FORM"}function xT(a){return new Error(`Failed to sanitize html because the element is clobbered: ${a.outerHTML}`)}const NV=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,LV=/([^\#-~ |!])/g;function mm(a){return a.replace(/&/g,"&").replace(NV,function(c){return"&#"+(1024*(c.charCodeAt(0)-55296)+(c.charCodeAt(1)-56320)+65536)+";"}).replace(LV,function(c){return"&#"+c.charCodeAt(0)+";"}).replace(//g,">")}let md;function BC(a){return"content"in a&&function _4(a){return a.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===a.nodeName}(a)?a.content:null}var gm=function(a){return a[a.NONE=0]="NONE",a[a.HTML=1]="HTML",a[a.STYLE=2]="STYLE",a[a.SCRIPT=3]="SCRIPT",a[a.URL=4]="URL",a[a.RESOURCE_URL=5]="RESOURCE_URL",a}(gm||{});function _m(a){const c=Iy();return c?s4(c.sanitize(gm.HTML,a)||""):Sy(a,"HTML")?s4(gh(a)):function g4(a,c){let d=null;try{md=md||function Am(a){const c=new d4(a);return function FC(){try{return!!(new window.DOMParser).parseFromString(mh(""),"text/html")}catch{return!1}}()?new g_(c):c}(a);let h=c?String(c):"";d=md.getInertBodyElement(h);let A=5,g=h;do{if(0===A)throw new Error("Failed to sanitize html because the input is unstable");A--,h=g,g=d.innerHTML,d=md.getInertBodyElement(h)}while(h!==g);return mh((new A4).sanitizeChildren(BC(d)||d))}finally{if(d){const h=BC(d)||d;for(;h.firstChild;)h.firstChild.remove()}}}(Ah(),vi(a))}function ap(a){const c=Iy();return c?c.sanitize(gm.URL,a)||"":Sy(a,"URL")?gh(a):DC(vi(a))}function Iy(){const a=Ot();return a&&a[Va].sanitizer}const zV=/^>|^->||--!>|)/g,jV="\u200b$1\u200b";function M4(a){return a.ownerDocument.defaultView}function E4(a){return a.ownerDocument}function Kl(a){return"browser"===(a??Pn(ps)).get(vy)}var PC=function(a){return a[a.Important=1]="Important",a[a.DashCase=2]="DashCase",a}(PC||{});let ET;function ST(a,c){return ET(a,c)}function w_(a,c,d,h,A){if(null!=h){let g,x=!1;Os(h)?g=h:hs(h)&&(x=!0,h=h[ro]);const B=ar(h);0===a&&null!==d?null==A?R4(c,d,B):vm(c,d,B,A||null,!0):1===a&&null!==d?vm(c,d,B,A||null,!0):2===a?function Dy(a,c,d){a.removeChild(null,c,d)}(c,B,x):3===a&&c.destroyNode(B),null!=g&&function cH(a,c,d,h,A){const g=d[kl];g!==ar(d)&&w_(c,a,h,g,A);for(let B=Ho;Bc.replace(GV,jV))}(c))}function OC(a,c,d){return a.createElement(c,d)}function D4(a,c){c[Va].changeDetectionScheduler?.notify(9),UC(a,c,c[Oi],2,null,null)}function B4(a,c){const d=a[nh],h=c[$o];(hs(h)||c[_o]!==h[$o][_o])&&(a[wi]|=R0.HasTransplantedViews),null===d?a[nh]=[c]:d.push(c)}function FT(a,c){const d=a[nh],h=d.indexOf(c);d.splice(h,1)}function Fy(a,c){if(a.length<=Ho)return;const d=Ho+c,h=a[d];if(h){const A=h[vc];null!==A&&A!==a&&FT(A,h),c>0&&(a[d-1][cl]=h[cl]);const g=Cf(a,Ho+c);!function tH(a,c){D4(a,c),c[ro]=null,c[ws]=null}(h[Jt],h);const x=g[dl];null!==x&&x.detachView(g[Jt]),h[$o]=null,h[cl]=null,h[wi]&=-129}return h}function NC(a,c){if(!(256&c[wi])){const d=c[Oi];d.destroyNode&&UC(a,c,d,3,null,null),function iH(a){let c=a[jd];if(!c)return DT(a[Jt],a);for(;c;){let d=null;if(hs(c))d=c[jd];else{const h=c[Ho];h&&(d=h)}if(!d){for(;c&&!c[cl]&&c!==a;)hs(c)&&DT(c[Jt],c),c=c[$o];null===c&&(c=a),hs(c)&&DT(c[Jt],c),d=c&&c[cl]}c=d}}(c)}}function DT(a,c){if(256&c[wi])return;const d=L(null);try{c[wi]&=-129,c[wi]|=256,c[Ha]&&Je(c[Ha]),function sH(a,c){let d;if(null!=a&&null!=(d=a.destroyHooks))for(let h=0;h=0?h[x]():h[-x].unsubscribe(),g+=2}else d[g].call(h[d[g+1]]);null!==h&&(c[th]=null);const A=c[td];if(null!==A){c[td]=null;for(let g=0;g-1){const{encapsulation:g}=a.data[h.directiveStart+A];if(g===gc.None||g===gc.Emulated)return null}return sa(h,d)}}(a,c.parent,d)}function vm(a,c,d,h,A){a.insertBefore(c,d,h,A)}function R4(a,c,d){a.appendChild(c,d)}function P4(a,c,d,h,A){null!==h?vm(a,c,d,h,A):R4(a,c,d)}function kT(a,c){return a.parentNode(c)}function O4(a,c,d){return L4(a,c,d)}let RT,L4=function N4(a,c,d){return 40&a.type?sa(a,d):null};function LC(a,c,d,h){const A=BT(a,h,c),g=c[Oi],B=O4(h.parent||c[ws],h,c);if(null!=A)if(Array.isArray(d))for(let k=0;kui&&$4(a,c,ui,!1),Pl(x?2:0,A),d(h,A)}finally{id(g),Pl(x?3:1,A)}}function zC(a,c,d){if(P0(c)){const h=L(null);try{const g=c.directiveEnd;for(let x=c.directiveStart;xnull;function x_(a,c,d,h,A){for(let g in c){if(!c.hasOwnProperty(g))continue;const x=c[g];if(void 0===x)continue;h??={};let B,k=Wc.None;Array.isArray(x)?(B=x[0],k=x[1]):B=x;let H=g;if(null!==A){if(!A.hasOwnProperty(g))continue;H=A[g]}0===a?$C(h,d,H,B,k):$C(h,d,H,B)}return h}function $C(a,c,d,h,A){let g;a.hasOwnProperty(d)?(g=a[d]).push(c,h):g=a[d]=[c,h],void 0!==A&&g.push(A)}function As(a,c,d,h,A,g,x,B){const k=sa(c,d);let K,H=c.inputs;!B&&null!=H&&(K=H[h])?(I_(a,d,K,h,A),ih(c)&&function UT(a,c){const d=Ws(c,a);16&d[wi]||(d[wi]|=64)}(d,c.index)):3&c.type&&(h=function J4(a){return"class"===a?"className":"for"===a?"htmlFor":"formaction"===a?"formAction":"innerHtml"===a?"innerHTML":"readonly"===a?"readOnly":"tabindex"===a?"tabIndex":a}(h),A=null!=x?x(A,c.value||"",h):A,g.setProperty(k,h,A))}function HT(a,c,d,h){if(kA()){const A=null===h?null:{"":-1},g=function iO(a,c){const d=a.directiveRegistry;let h=null,A=null;if(d)for(let g=0;g0;){const d=a[--c];if("number"==typeof d&&d<0)return d}return 0})(x)!=B&&x.push(B),x.push(d,h,g)}}(a,c,h,cp(a,d,A.hostVars,nr),A)}function su(a,c,d,h,A,g){const x=sa(a,c);!function C_(a,c,d,h,A,g,x){if(null==g)a.removeAttribute(c,A,d);else{const B=null==x?vi(g):x(g,h||"",A);a.setAttribute(c,A,B,d)}}(c[Oi],x,g,a.value,d,h,A)}function M_(a,c,d,h,A,g){const x=g[c];if(null!==x)for(let B=0;B0&&(d[A-1][cl]=c),h{j0(a.lView)},consumerOnSignalRead(){this.lView[Ha]=this}},cO={...z,consumerIsAlwaysLive:!0,consumerMarkedDirty:a=>{let c=yc(a.lView);for(;c&&!KT(c[Jt]);)c=yc(c);c&&Vv(c)},consumerOnSignalRead(){this.lView[Ha]=this}};function KT(a){return 2!==a.type}const dO=100;function Ly(a,c=!0,d=0){const h=a[Va],A=h.rendererFactory;A.begin?.();try{!function uO(a,c){const d=$v();try{e_(!0),Uy(a,c);let h=0;for(;G0(a);){if(h===dO)throw new Zt(103,!1);h++,Uy(a,1)}}finally{e_(d)}}(a,d)}catch(x){throw c&&dp(a,x),x}finally{A.end?.(),h.inlineEffectRunner?.flush()}}function ZT(a,c,d,h){const A=c[wi];if(!(256&~A))return;c[Va].inlineEffectRunner?.flush(),Qf(c);let B=!0,k=null,H=null;KT(a)?(H=function aO(a){return a[Ha]??function gH(a){const c=XT.pop()??Object.create(YC);return c.lView=a,c}(a)}(c),k=Be(H)):null===Y()?(B=!1,H=function lO(a){const c=a[Ha]??Object.create(cO);return c.lView=a,c}(c),k=Be(H)):c[Ha]&&(Je(c[Ha]),c[Ha]=null);try{Uv(c),function NA(a){return Ni.lFrame.bindingIndex=a}(a.bindingStartIndex),null!==d&&QC(a,c,d,2,h);const K=!(3&~A);if(K){const Ge=a.preOrderCheckHooks;null!==Ge&&bn(c,Ge,null)}else{const Ge=a.preOrderHooks;null!==Ge&&Un(c,Ge,0,null),Jv(c,0)}if(function hO(a){for(let c=Vn(a);null!==c;c=mr(c)){if(!(c[wi]&R0.HasTransplantedViews))continue;const d=c[nh];for(let h=0;h-1&&(Fy(c,h),Cf(d,h))}this._attachedToViewContainer=!1}NC(this._lView[Jt],this._lView)}onDestroy(c){DA(this._lView,c)}markForCheck(){Vy(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[wi]&=-129}reattach(){Hv(this._lView),this._lView[wi]|=128}detectChanges(){this._lView[wi]|=1024,Ly(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new Zt(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;const c=SA(this._lView),d=this._lView[vc];null!==d&&!c&&FT(d,this._lView),D4(this._lView[Jt],this._lView)}attachToAppRef(c){if(this._attachedToViewContainer)throw new Zt(902,!1);this._appRef=c;const d=SA(this._lView),h=this._lView[vc];null!==h&&!d&&B4(h,this._lView),Hv(this._lView)}}let Qy=(()=>{class a{static{this.__NG_ELEMENT_ID__=yH}}return a})();const bH=Qy,vH=class extends bH{constructor(c,d,h){super(),this._declarationLView=c,this._declarationTContainer=d,this.elementRef=h}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(c,d){return this.createEmbeddedViewImpl(c,d)}createEmbeddedViewImpl(c,d,h){const A=up(this._declarationLView,this._declarationTContainer,c,{embeddedViewInjector:d,dehydratedView:h});return new Hy(A)}};function yH(){return Em(jr(),Ot())}function Em(a,c){return 4&a.type?new vH(c,a,vn(a,c)):null}let FO=()=>null;function Rm(a,c){return FO(a,c)}class du{}const qy=new En("",{providedIn:"root",factory:()=>!1}),DO=new En(""),dM=new En("");class BO{}class wI{}class RO{resolveComponentFactory(c){throw function HH(a){const c=Error(`No component factory found for ${St(a)}.`);return c.ngComponent=a,c}(c)}}class Wy{static{this.NULL=new RO}}class xI{}let zH=(()=>{class a{constructor(){this.destroyNode=null}static{this.__NG_ELEMENT_ID__=()=>function GH(){const a=Ot(),d=Ws(jr().index,a);return(hs(d)?d:a)[Oi]}()}}return a})(),CI=(()=>{class a{static{this.\u0275prov=Mn({token:a,providedIn:"root",factory:()=>null})}}return a})();function O_(a,c,d){let h=d?a.styles:null,A=d?a.classes:null,g=0;if(null!==c)for(let x=0;x0&&z4(a,d,g.join(" "))}}(Re,gr,st,h),void 0!==d&&function WH(a,c,d){const h=a.projection=[];for(let A=0;A{class a{static{this.__NG_ELEMENT_ID__=gd}}return a})();function gd(){return fM(jr(),Ot())}const UO=Xy,DI=class extends UO{constructor(c,d,h){super(),this._lContainer=c,this._hostTNode=d,this._hostLView=h}get element(){return vn(this._hostTNode,this._hostLView)}get injector(){return new Vi(this._hostTNode,this._hostLView)}get parentInjector(){const c=ad(this._hostTNode,this._hostLView);if(Wf(c)){const d=Zd(c,this._hostLView),h=od(c);return new Vi(d[Jt].data[h+8],d)}return new Vi(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(c){const d=VO(this._lContainer);return null!==d&&d[c]||null}get length(){return this._lContainer.length-Ho}createEmbeddedView(c,d,h){let A,g;"number"==typeof h?A=h:null!=h&&(A=h.index,g=h.injector);const x=Rm(this._lContainer,c.ssrId),B=c.createEmbeddedViewImpl(d||{},g,x);return this.insertImpl(B,A,lu(this._hostTNode,x)),B}createComponent(c,d,h,A,g){const x=c&&!function ed(a){return"function"==typeof a}(c);let B;if(x)B=d;else{const st=d||{};B=st.index,h=st.injector,A=st.projectableNodes,g=st.environmentInjector||st.ngModuleRef}const k=x?c:new gl($i(c)),H=h||this.parentInjector;if(!g&&null==k.ngModule){const it=(x?H:this.parentInjector).get(ll,null);it&&(g=it)}const K=$i(k.componentType??{}),fe=Rm(this._lContainer,K?.id??null),Ge=k.create(H,A,fe?.firstChild??null,g);return this.insertImpl(Ge.hostView,B,lu(this._hostTNode,fe)),Ge}insert(c,d){return this.insertImpl(c,d,!0)}insertImpl(c,d,h){const A=c._lView;if(function Lf(a){return Os(a[$o])}(A)){const B=this.indexOf(c);if(-1!==B)this.detach(B);else{const k=A[$o],H=new DI(k,k[ws],k[$o]);H.detach(H.indexOf(c))}}const g=this._adjustIndex(d),x=this._lContainer;return Cm(x,A,g,h),c.attachToViewContainerRef(),Qx(Ky(x),g,c),c}move(c,d){return this.insert(c,d)}indexOf(c){const d=VO(this._lContainer);return null!==d?d.indexOf(c):-1}remove(c){const d=this._adjustIndex(c,-1),h=Fy(this._lContainer,d);h&&(Cf(Ky(this._lContainer),d),NC(h[Jt],h))}detach(c){const d=this._adjustIndex(c,-1),h=Fy(this._lContainer,d);return h&&null!=Cf(Ky(this._lContainer),d)?new Hy(h):null}_adjustIndex(c,d=0){return c??this.length+d}};function VO(a){return a[8]}function Ky(a){return a[8]||(a[8]=[])}function fM(a,c){let d;const h=c[a.index];return Os(h)?d=h:(d=E_(h,c,null,a),c[a.index]=d,S_(c,d)),Yy(d,c,a,h),new DI(d,a,c)}let Yy=function BI(a,c,d,h){if(a[kl])return;let A;A=8&d.type?ar(h):function pM(a,c){const d=a[Oi],h=d.createComment(""),A=sa(c,a);return vm(d,kT(d,A),h,function aH(a,c){return a.nextSibling(c)}(d,A),!1),h}(c,d),a[kl]=A},Zy=()=>!1;class AM{constructor(c){this.queryList=c,this.matches=null}clone(){return new AM(this.queryList)}setDirty(){this.queryList.setDirty()}}class RI{constructor(c=[]){this.queries=c}createEmbeddedView(c){const d=c.queries;if(null!==d){const h=null!==c.contentQueries?c.contentQueries[0]:d.length,A=[];for(let g=0;gc.trim())}(c):c}}class PI{constructor(c=[]){this.queries=c}elementStart(c,d){for(let h=0;h0)h.push(x[B/2]);else{const H=g[B+1],K=c[-k];for(let fe=Ho;fe(G(c),c.value);return d[U]=c,d}(a),h=d[U];return c?.equal&&(h.equal=c.equal),d.set=A=>Di(h,A),d.update=A=>function ii(a,c){me()||Ut(),Di(a,c(a.value))}(h,A),d.asReadonly=KO.bind(d),d}function KO(){const a=this[U];if(void 0===a.readonlyFn){const c=()=>this();c[U]=a,a.readonlyFn=c}return a.readonlyFn}function HI(a){return VI(a)&&"function"==typeof a.set}function uu(a,c){let d;const h=ve(()=>{d._dirtyCounter();const A=function YO(a,c){const d=a._lView,h=a._queryIndex;if(void 0===d||void 0===h||4&d[wi])return c?void 0:Ir;const A=mM(d,h),g=qO(d,h);return A.reset(g,Ec),c?A.first:A._changesDetected||void 0===a._flatValue?a._flatValue=A.toArray():a._flatValue}(d,a);if(c&&void 0===A)throw new Zt(-951,!1);return A});return d=h[U],d._dirtyCounter=XO(0),d._flatValue=void 0,h}function L_(a,c){return function QI(){return uu(!0,!1)}()}const eN=(L_.required=function JO(a,c){return function zI(){return uu(!0,!0)}()},L_);function eF(a){let c=function bM(a){return Object.getPrototypeOf(a.prototype).constructor}(a.type),d=!0;const h=[a];for(;c;){let A;if(Rl(a))A=c.\u0275cmp||c.\u0275dir;else{if(c.\u0275cmp)throw new Zt(903,!1);A=c.\u0275dir}if(A){if(d){h.push(A);const x=a;x.inputs=e1(a.inputs),x.inputTransforms=e1(a.inputTransforms),x.declaredInputs=e1(a.declaredInputs),x.outputs=e1(a.outputs);const B=A.hostBindings;B&&dN(a,B);const k=A.viewQuery,H=A.contentQueries;if(k&&tF(a,k),H&&nF(a,H),h9(a,A),ot(a.outputs,A.outputs),Rl(A)&&A.data.animation){const K=a.data;K.animation=(K.animation||[]).concat(A.data.animation)}}const g=A.features;if(g)for(let x=0;x=0;h--){const A=a[h];A.hostVars=c+=A.hostVars,A.hostAttrs=_A(A.hostAttrs,d=_A(d,A.hostAttrs))}}(h)}function h9(a,c){for(const d in c.inputs){if(!c.inputs.hasOwnProperty(d)||a.inputs.hasOwnProperty(d))continue;const h=c.inputs[d];if(void 0!==h&&(a.inputs[d]=h,a.declaredInputs[d]=c.declaredInputs[d],null!==c.inputTransforms)){const A=Array.isArray(h)?h[0]:h;if(!c.inputTransforms.hasOwnProperty(A))continue;a.inputTransforms??={},a.inputTransforms[A]=c.inputTransforms[A]}}}function e1(a){return a===Dl?{}:a===Ir?[]:a}function tF(a,c){const d=a.viewQuery;a.viewQuery=d?(h,A)=>{c(h,A),d(h,A)}:c}function nF(a,c){const d=a.contentQueries;a.contentQueries=d?(h,A,g)=>{c(h,A,g),d(h,A,g)}:c}function dN(a,c){const d=a.hostBindings;a.hostBindings=d?(h,A)=>{c(h,A),d(h,A)}:c}function Po(a){const c=d=>{const h=(Array.isArray(a)?a:a()).map(A=>"function"==typeof A?{directive:Xt(A),inputs:Dl,outputs:Dl}:{directive:Xt(A.directive),inputs:H_(A.inputs),outputs:H_(A.outputs)});null===d.hostDirectives?(d.findHostDirectiveDefs=V_,d.hostDirectives=h):d.hostDirectives.unshift(...h)};return c.ngInherit=!0,c}function V_(a,c,d){if(null!==a.hostDirectives)for(const h of a.hostDirectives){const A=Uo(h.directive);iF(A.declaredInputs,h.inputs),V_(A,c,d),d.set(A,h),c.push(A)}}function H_(a){if(void 0===a||0===a.length)return Dl;const c={};for(let d=0;dd()),this.destroyCbs=null}onDestroy(c){this.destroyCbs.push(c)}}class yM extends pp{constructor(c){super(),this.componentFactoryResolver=new Nm(this),this.instance=null;const d=new Jc([...c.providers,{provide:pp,useValue:this},{provide:Wy,useValue:this.componentFactoryResolver}],c.parent||Tf(),c.debugName,new Set(["environment"]));this.injector=d,c.runEnvironmentInitializers&&d.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(c){this.injector.onDestroy(c)}}function r1(a){return!!s1(a)&&(Array.isArray(a)||!(a instanceof Map)&&Symbol.iterator in a)}function s1(a){return null!==a&&("function"==typeof a||"object"==typeof a)}function Bc(a,c,d){return a[c]=d}function es(a,c,d){return!Object.is(a[c],d)&&(a[c]=d,!0)}function xh(a,c,d,h){const A=es(a,c,d);return es(a,c+1,h)||A}function ec(a,c,d,h,A,g){const x=xh(a,c,d,h);return xh(a,c+2,A,g)||x}function _p(a,c,d,h,A,g,x,B,k,H){const K=d+ui,fe=c.firstCreatePass?function wM(a,c,d,h,A,g,x,B,k){const H=c.consts,K=lp(c,a,4,x||null,B||null);HT(c,d,K,Qa(H,k)),zA(c,K);const fe=K.tView=NT(2,K,h,A,g,c.directiveRegistry,c.pipeRegistry,null,c.schemas,H,null);return null!==c.queries&&(c.queries.template(c,K),fe.queries=c.queries.embeddedTView(K)),K}(K,c,a,h,A,g,x,B,k):c.data[K];Mo(fe,!1);const Re=lF(c,a,fe,d);sh()&&LC(c,a,Re,fe),ge(Re,a);const Ge=E_(Re,a,Re,fe);return a[K]=Ge,S_(a,Ge),function N_(a,c,d){return Zy(a,c,d)}(Ge,fe,a),O0(fe)&&GC(c,a,fe),null!=k&&xm(a,fe,H),fe}function pu(a,c,d,h,A,g,x,B){const k=Ot(),H=or();return _p(k,H,a,c,d,h,A,Qa(H.consts,g),x,B),pu}let lF=function cF(a,c,d,h){return fl(!0),c[Oi].createComment("")};function fF(a,c){if(null!==Y())throw new Zt(-602,!1)}var Rc=function(a){return a[a.EarlyRead=0]="EarlyRead",a[a.Write=1]="Write",a[a.MixedReadWrite=2]="MixedReadWrite",a[a.Read=3]="Read",a}(Rc||{});let pF=(()=>{class a{constructor(){this.impl=null}execute(){this.impl?.execute()}static{this.\u0275prov=Mn({token:a,providedIn:"root",factory:()=>new a})}}return a})();class z_{constructor(){this.ngZone=Pn(so),this.scheduler=Pn(du),this.errorHandler=Pn(Mc,{optional:!0}),this.sequences=new Set,this.deferredRegistrations=new Set,this.executing=!1}static{this.PHASES=[Rc.EarlyRead,Rc.Write,Rc.MixedReadWrite,Rc.Read]}execute(){this.executing=!0;for(const c of z_.PHASES)for(const d of this.sequences)if(!d.erroredOrDestroyed&&d.hooks[c])try{d.pipelinedValue=this.ngZone.runOutsideAngular(()=>d.hooks[c](d.pipelinedValue))}catch(h){d.erroredOrDestroyed=!0,this.errorHandler?.handleError(h)}this.executing=!1;for(const c of this.sequences)c.afterRun(),c.once&&(this.sequences.delete(c),c.destroy());for(const c of this.deferredRegistrations)this.sequences.add(c);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear()}register(c){this.executing?this.deferredRegistrations.add(c):(this.sequences.add(c),this.scheduler.notify(6))}unregister(c){this.executing&&this.sequences.has(c)?(c.erroredOrDestroyed=!0,c.pipelinedValue=void 0,c.once=!0):(this.sequences.delete(c),this.deferredRegistrations.delete(c))}static{this.\u0275prov=Mn({token:z_,providedIn:"root",factory:()=>new z_})}}class AF{constructor(c,d,h,A){this.impl=c,this.hooks=d,this.once=h,this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.unregisterOnDestroy=A?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.()}}function CM(a,c){!c?.injector&&Ff();const d=c?.injector??Pn(ps);return Kl(d)?(Fa("NgAfterRender"),mF(a,d,c,!1)):G_}function h1(a,c){!c?.injector&&Ff();const d=c?.injector??Pn(ps);return Kl(d)?(Fa("NgAfterNextRender"),mF(a,d,c,!0)):G_}function mF(a,c,d,h){const A=c.get(pF);A.impl??=c.get(z_);const g=d?.phase??Rc.MixedReadWrite,x=!0!==d?.manualCleanup?c.get(hh):null,B=new AF(A.impl,function gN(a,c){if(a instanceof Function){const d=[void 0,void 0,void 0,void 0];return d[c]=a,d}return[a.earlyRead,a.write,a.mixedReadWrite,a.read]}(a,g),h,x);return A.impl.register(B),B}const G_={destroy(){}};function v1(a,c,d,h){const A=Ot();return es(A,ul(),c)&&(or(),su(Rr(),A,a,c,d,h)),v1}function $m(a,c,d,h){return es(a,ul(),d)?c+vi(d)+h:nr}function qm(a,c,d,h,A,g){const B=xh(a,Ll(),d,A);return Pr(2),B?c+vi(d)+h+vi(A)+g:nr}function tg(a,c){return a<<17|c<<2}function Dh(a){return a>>17&32767}function vd(a){return 2|a}function wp(a){return(131068&a)>>2}function zM(a,c){return-131069&a|c<<2}function y1(a){return 1|a}function w1(a,c,d,h){const A=a[d+1],g=null===c;let x=h?Dh(A):wp(A),B=!1;for(;0!==x&&(!1===B||g);){const H=a[x+1];IN(a[x],c)&&(B=!0,a[x+1]=h?y1(H):vd(H)),x=h?Dh(H):wp(H)}B&&(a[d+1]=h?vd(A):y1(A))}function IN(a,c){return null===a||null==c||(Array.isArray(a)?a[1]:a)===c||!(!Array.isArray(a)||"string"!=typeof c)&&Mf(a,c)>=0}const Es={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function X_(a){return a.substring(Es.key,Es.keyEnd)}function FN(a){return a.substring(Es.value,Es.valueEnd)}function RF(a,c){const d=Es.textEnd;return d===c?-1:(c=Es.keyEnd=function kN(a,c,d){for(;c32;)c++;return c}(a,Es.key=c,d),ng(a,c,d))}function K_(a,c){const d=Es.textEnd;let h=Es.key=ng(a,c,d);return d===h?-1:(h=Es.keyEnd=function g9(a,c,d){let h;for(;c=65&&(-33&h)<=90||h>=48&&h<=57);)c++;return c}(a,h,d),h=RN(a,h,d),h=Es.value=ng(a,h,d),h=Es.valueEnd=function GM(a,c,d){let h=-1,A=-1,g=-1,x=c,B=x;for(;x32&&(B=x),g=A,A=h,h=-33&k}return B}(a,h,d),RN(a,h,d))}function PF(a){Es.key=0,Es.keyEnd=0,Es.value=0,Es.valueEnd=0,Es.textEnd=a.length}function ng(a,c,d){for(;c=0;d=K_(c,d))kh(a,X_(c),FN(c))}function xp(a){vl(NF,nc,a,!0)}function nc(a,c){for(let d=function DN(a){return PF(a),RF(a,ng(a,0,Es.textEnd))}(c);d>=0;d=RF(c,d))wa(a,X_(c),!0)}function bl(a,c,d,h){const A=Ot(),g=or(),x=Pr(2);g.firstUpdatePass&&C1(g,a,x,h),c!==nr&&es(A,x,c)&&LF(g,g.data[$n()],A,A[Oi],a,A[x+1]=function yl(a,c){return null==a||""===a||("string"==typeof c?a+=c:"object"==typeof a&&(a=St(gh(a)))),a}(c,d),h,x)}function vl(a,c,d,h){const A=or(),g=Pr(2);A.firstUpdatePass&&C1(A,null,g,h);const x=Ot();if(d!==nr&&es(x,g,d)){const B=A.data[$n()];if(Wa(B,h)&&!x1(A,g)){let k=h?B.classesWithoutHost:B.stylesWithoutHost;null!==k&&(d=an(k,d||"")),$M(A,B,x,d,h)}else!function Rh(a,c,d,h,A,g,x,B){A===nr&&(A=Ir);let k=0,H=0,K=0=a.expandoStartIndex}function C1(a,c,d,h){const A=a.data;if(null===A[d+1]){const g=A[$n()],x=x1(a,d);Wa(g,h)&&null===c&&!x&&(c=!1),c=function Cp(a,c,d,h){const A=function UA(a){const c=Ni.lFrame.currentDirectiveIndex;return-1===c?null:a[c]}(a);let g=h?c.residualClasses:c.residualStyles;if(null===A)0===(h?c.classBindings:c.styleBindings)&&(d=xd(d=bu(null,a,c,d,h),c.attrs,h),g=null);else{const x=c.directiveStylingLast;if(-1===x||a[x]!==A)if(d=bu(A,a,c,d,h),null===g){let k=function Y_(a,c,d){const h=d?c.classBindings:c.styleBindings;if(0!==wp(h))return a[Dh(h)]}(a,c,h);void 0!==k&&Array.isArray(k)&&(k=bu(null,a,c,k[1],h),k=xd(k,c.attrs,h),function Da(a,c,d,h){a[Dh(d?c.classBindings:c.styleBindings)]=h}(a,c,h,k))}else g=function ig(a,c,d){let h;const A=c.directiveEnd;for(let g=1+c.directiveStylingLast;g0)&&(H=!0)):K=d,A)if(0!==k){const Re=Dh(a[B+1]);a[h+1]=tg(Re,B),0!==Re&&(a[Re+1]=zM(a[Re+1],h)),a[B+1]=function EN(a,c){return 131071&a|c<<17}(a[B+1],h)}else a[h+1]=tg(B,0),0!==B&&(a[B+1]=zM(a[B+1],h)),B=h;else a[h+1]=tg(k,0),0===B?B=h:a[k+1]=zM(a[k+1],h),k=h;H&&(a[h+1]=vd(a[h+1])),w1(a,K,h,!0),w1(a,K,h,!1),function TN(a,c,d,h,A){const g=A?a.residualClasses:a.residualStyles;null!=g&&"string"==typeof c&&Mf(g,c)>=0&&(d[h+1]=y1(d[h+1]))}(c,K,a,h,g),x=tg(B,k),g?c.classBindings=x:c.styleBindings=x}(A,g,c,d,x,h)}}function bu(a,c,d,h,A){let g=null;const x=d.directiveEnd;let B=d.directiveStylingLast;for(-1===B?B=d.directiveStart:B++;B0;){const k=a[A],H=Array.isArray(k),K=H?k[1]:k,fe=null===K;let Re=d[A+1];Re===nr&&(Re=fe?Ir:void 0);let Ge=fe?M0(Re,h):K===h?Re:void 0;if(H&&!Pc(Ge)&&(Ge=M0(k,h)),Pc(Ge)&&(B=Ge,x))return B;const st=a[A+1];A=x?Dh(st):wp(st)}if(null!==c){let k=g?c.residualClasses:c.residualStyles;null!=k&&(B=M0(k,h))}return B}function Pc(a){return void 0!==a}function Wa(a,c){return!!(a.flags&(c?8:16))}function Or(a,c,d){vl(wa,nc,$m(Ot(),a,c,d),!0)}function rg(a,c,d,h,A){vl(wa,nc,qm(Ot(),a,c,d,h,A),!0)}function HF(){return Ot()[_o][oo]}class Cd{destroy(c){}updateValue(c,d){}swap(c,d){const h=Math.min(c,d),A=Math.max(c,d),g=this.detach(A);if(A-h>1){const x=this.detach(h);this.attach(h,g),this.attach(A,x)}else this.attach(h,g)}move(c,d){this.attach(d,this.detach(c))}}function Mp(a,c,d,h,A){return a===d&&Object.is(c,h)?1:Object.is(A(a,c),A(d,h))?-1:0}function Ep(a,c,d,h){return!(void 0===c||!c.has(h)||(a.attach(d,c.get(h)),c.delete(h),0))}function XM(a,c,d,h,A){if(Ep(a,c,h,d(h,A)))a.updateValue(h,A);else{const g=a.create(h,A);a.attach(h,g)}}function KM(a,c,d,h){const A=new Set;for(let g=c;g<=d;g++)A.add(h(g,a.at(g)));return A}class QF{constructor(){this.kvMap=new Map,this._vMap=void 0}has(c){return this.kvMap.has(c)}delete(c){if(!this.has(c))return!1;const d=this.kvMap.get(c);return void 0!==this._vMap&&this._vMap.has(d)?(this.kvMap.set(c,this._vMap.get(d)),this._vMap.delete(d)):this.kvMap.delete(c),!0}get(c){return this.kvMap.get(c)}set(c,d){if(this.kvMap.has(c)){let h=this.kvMap.get(c);void 0===this._vMap&&(this._vMap=new Map);const A=this._vMap;for(;A.has(h);)h=A.get(h);A.set(h,d)}else this.kvMap.set(c,d)}forEach(c){for(let[d,h]of this.kvMap)if(c(h,d),void 0!==this._vMap){const A=this._vMap;for(;A.has(h);)h=A.get(h),c(h,d)}}}function YM(a,c){Fa("NgControlFlow");const d=Ot(),h=ul(),A=d[h]!==nr?d[h]:-1,g=-1!==A?M1(d,ui+A):void 0;if(es(d,h,a)){const B=L(null);try{if(void 0!==g&&Ny(g,0),-1!==a){const k=ui+a,H=M1(d,k),K=ZM(d[Jt],k),fe=Rm(H,K.tView.ssrId);Cm(H,up(d,K,c,{dehydratedView:fe}),0,lu(K,fe))}}finally{L(B)}}else if(void 0!==g){const B=WT(g,0);void 0!==B&&(B[oo]=c)}}class VN{constructor(c,d,h){this.lContainer=c,this.$implicit=d,this.$index=h}get $count(){return this.lContainer.length-Ho}}function zF(a){return a}function GF(a,c){return c}class HN{constructor(c,d,h){this.hasEmptyBlock=c,this.trackByFn=d,this.liveCollection=h}}function jF(a,c,d,h,A,g,x,B,k,H,K,fe,Re){Fa("NgControlFlow");const Ge=Ot(),st=or(),it=void 0!==k,ln=Ot(),rn=B?x.bind(ln[_o][oo]):x,Lt=new HN(it,rn);ln[ui+a]=Lt,_p(Ge,st,a+1,c,d,h,A,Qa(st.consts,g)),it&&_p(Ge,st,a+2,k,H,K,fe,Qa(st.consts,Re))}class QN extends Cd{constructor(c,d,h){super(),this.lContainer=c,this.hostLView=d,this.templateTNode=h,this.operationsCounter=void 0,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-Ho}at(c){return this.getLView(c)[oo].$implicit}attach(c,d){const h=d[$s];this.needsIndexUpdate||=c!==this.length,Cm(this.lContainer,d,c,lu(this.templateTNode,h))}detach(c){return this.needsIndexUpdate||=c!==this.length-1,function zN(a,c){return Fy(a,c)}(this.lContainer,c)}create(c,d){const h=Rm(this.lContainer,this.templateTNode.tView.ssrId),A=up(this.hostLView,this.templateTNode,new VN(this.lContainer,d,c),{dehydratedView:h});return this.operationsCounter?.recordCreate(),A}destroy(c){NC(c[Jt],c),this.operationsCounter?.recordDestroy()}updateValue(c,d){this.getLView(c)[oo].$implicit=d}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let c=0;c{a.destroy(k)})}(k,a,g.trackByFn),k.updateIndexes(),g.hasEmptyBlock){const H=ul(),K=0===k.length;if(es(h,H,K)){const fe=d+2,Re=M1(h,fe);if(K){const Ge=ZM(A,fe),st=Rm(Re,Ge.tView.ssrId);Cm(Re,up(h,Ge,void 0,{dehydratedView:st}),0,lu(Ge,st))}else Ny(Re,0)}}}finally{L(c)}}function M1(a,c){return a[c]}function ZM(a,c){return Fr(a,c)}function E1(a,c,d,h){const A=Ot(),g=or(),x=ui+a,B=A[Oi],k=g.firstCreatePass?function Z_(a,c,d,h,A,g){const x=c.consts,k=lp(c,a,2,h,Qa(x,A));return HT(c,d,k,Qa(x,g)),null!==k.attrs&&O_(k,k.attrs,!1),null!==k.mergedAttrs&&O_(k,k.mergedAttrs,!0),null!==c.queries&&c.queries.elementStart(c,k),k}(x,g,A,c,d,h):g.data[x],H=J_(g,A,k,B,c,a);A[x]=H;const K=O0(k);return Mo(k,!0),G4(B,H,k),!function gp(a){return!(32&~a.flags)}(k)&&sh()&&LC(g,A,H,k),0===function lC(){return Ni.lFrame.elementDepthCount}()&&ge(H,A),function W0(){Ni.lFrame.elementDepthCount++}(),K&&(GC(g,A,k),zC(g,k,A)),null!==h&&xm(A,k),E1}function S1(){let a=jr();eo()?OA():(a=a.parent,Mo(a,!1));const c=a;(function Qv(a){return Ni.skipHydrationRootTNode===a})(c)&&function Gv(){Ni.skipHydrationRootTNode=null}(),function Nl(){Ni.lFrame.elementDepthCount--}();const d=or();return d.firstCreatePass&&(zA(d,a),P0(a)&&d.queries.elementEnd(a)),null!=c.classesWithoutHost&&function hC(a){return!!(8&a.flags)}(c)&&$M(d,c,Ot(),c.classesWithoutHost,!0),null!=c.stylesWithoutHost&&function ny(a){return!!(16&a.flags)}(c)&&$M(d,c,Ot(),c.stylesWithoutHost,!1),S1}function JM(a,c,d,h){return E1(a,c,d,h),S1(),JM}let J_=(a,c,d,h,A,g)=>(fl(!0),OC(h,A,function QA(){return Ni.lFrame.currentNamespace}()));function T1(a,c,d){const h=Ot(),A=or(),g=a+ui,x=A.firstCreatePass?function jN(a,c,d,h,A){const g=c.consts,x=Qa(g,h),B=lp(c,a,8,"ng-container",x);return null!==x&&O_(B,x,!0),HT(c,d,B,Qa(g,A)),null!==c.queries&&c.queries.elementStart(c,B),B}(g,A,h,c,d):A.data[g];Mo(x,!0);const B=ag(A,h,x,a);return h[g]=B,sh()&&LC(A,h,B,x),ge(B,h),O0(x)&&(GC(A,h,x),zC(A,x,h)),null!=d&&xm(h,x),T1}function I1(){let a=jr();const c=or();return eo()?OA():(a=a.parent,Mo(a,!1)),c.firstCreatePass&&(zA(c,a),P0(a)&&c.queries.elementEnd(a)),I1}function eE(a,c,d){return T1(a,c,d),I1(),eE}let ag=(a,c,d,h)=>(fl(!0),IT(c[Oi],""));function tE(){return Ot()}function nE(a,c,d){const h=Ot();return es(h,ul(),c)&&As(or(),Rr(),h,a,c,h[Oi],d,!0),nE}const Sp=void 0;var F1=["en",[["a","p"],["AM","PM"],Sp],[["AM","PM"],Sp,Sp],[["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"]],Sp,[["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"]],Sp,[["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}",Sp,"{1} 'at' {0}",Sp],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function qN(a){const d=Math.floor(Math.abs(a)),h=a.toString().replace(/^[^.]*\.?/,"").length;return 1===d&&0===h?1:5}];let lg={};function iE(a){const c=function WN(a){return a.toLowerCase().replace(/_/g,"-")}(a);let d=D1(c);if(d)return d;const h=c.split("-")[0];if(d=D1(h),d)return d;if("en"===h)return F1;throw new Zt(701,!1)}function cg(a){return iE(a)[dg.PluralCase]}function D1(a){return a in lg||(lg[a]=Zi.ng&&Zi.ng.common&&Zi.ng.common.locales&&Zi.ng.common.locales[a]),lg[a]}var dg=function(a){return a[a.LocaleId=0]="LocaleId",a[a.DayPeriodsFormat=1]="DayPeriodsFormat",a[a.DayPeriodsStandalone=2]="DayPeriodsStandalone",a[a.DaysFormat=3]="DaysFormat",a[a.DaysStandalone=4]="DaysStandalone",a[a.MonthsFormat=5]="MonthsFormat",a[a.MonthsStandalone=6]="MonthsStandalone",a[a.Eras=7]="Eras",a[a.FirstDayOfWeek=8]="FirstDayOfWeek",a[a.WeekendRange=9]="WeekendRange",a[a.DateFormat=10]="DateFormat",a[a.TimeFormat=11]="TimeFormat",a[a.DateTimeFormat=12]="DateTimeFormat",a[a.NumberSymbols=13]="NumberSymbols",a[a.NumberFormats=14]="NumberFormats",a[a.CurrencyCode=15]="CurrencyCode",a[a.CurrencySymbol=16]="CurrencySymbol",a[a.CurrencyName=17]="CurrencyName",a[a.Currencies=18]="Currencies",a[a.Directionality=19]="Directionality",a[a.PluralCase=20]="PluralCase",a[a.ExtraData=21]="ExtraData",a}(dg||{});const B1="en-US";let KF=B1,AE=(a,c,d)=>{};function L1(a,c,d,h){const A=Ot(),g=or(),x=jr();return gE(g,A,A[Oi],x,a,c,h),L1}function gE(a,c,d,h,A,g,x){const B=O0(h),H=a.firstCreatePass&&oO(a),K=c[oo],fe=T_(c);let Re=!0;if(3&h.type||x){const it=sa(h,c),ln=x?x(it):it,rn=fe.length,Lt=x?Gi=>x(ar(Gi[h.index])):h.index;let Bi=null;if(!x&&B&&(Bi=function mE(a,c,d,h){const A=a.cleanup;if(null!=A)for(let g=0;gk?B[k]:null}"string"==typeof x&&(g+=2)}return null}(a,c,A,h.index)),null!==Bi)(Bi.__ngLastListenerFn__||Bi).__ngNextListenerFn__=g,Bi.__ngLastListenerFn__=g,Re=!1;else{g=CD(h,c,K,g),AE(it,A,g);const Gi=d.listen(ln,A,g);fe.push(g,Gi),H&&H.push(A,Lt,rn,rn+1)}}else g=CD(h,c,K,g);const Ge=h.outputs;let st;if(Re&&null!==Ge&&(st=Ge[A])){const it=st.length;if(it)for(let ln=0;ln-1?Ws(a.index,c):c,5);let B=_E(c,d,h,g),k=A.__ngNextListenerFn__;for(;k;)B=_E(c,d,k,g)&&B,k=k.__ngNextListenerFn__;return B}}function MD(a=1){return function Xv(a){return(Ni.lFrame.contextLView=function aC(a,c){for(;a>0;)c=c[$d],a--;return c}(a,Ni.lFrame.contextLView))[oo]}(a)}function sL(a,c){let d=null;const h=function Cv(a){const c=a.attrs;if(null!=c){const d=c.indexOf(5);if(!(1&d))return c[d+1]}return null}(a);for(let A=0;Ad._dirtyCounter.update(h=>h+1))}(c,jO(a,d,h,A))}function ND(a=1){Ul(Hf()+a)}function LD(a){return sr(function Z0(){return Ni.lFrame.contextLView}(),ui+a)}function WD(a,c=""){const d=Ot(),h=or(),A=a+ui,g=h.firstCreatePass?lp(h,A,1,c,null):h.data[A],x=XD(h,d,g,c,a);d[A]=x,sh()&&LC(h,d,x,g),Mo(g,!1)}let XD=(a,c,d,h,A)=>(fl(!0),function TT(a,c){return a.createText(c)}(c[Oi],h));function xE(a){return z1("",a,""),xE}function z1(a,c,d){const h=Ot(),A=$m(h,a,c,d);return A!==nr&&au(h,$n(),A),z1}function sb(a,c,d,h,A){const g=Ot(),x=qm(g,a,c,d,h,A);return x!==nr&&au(g,$n(),x),sb}function YD(a,c,d,h,A,g,x,B,k){const H=Ot(),K=function Xm(a,c,d,h,A,g,x,B,k,H){const fe=ec(a,Ll(),d,A,x,k);return Pr(4),fe?c+vi(d)+h+vi(A)+g+vi(x)+B+vi(k)+H:nr}(H,a,c,d,h,A,g,x,B,k);return K!==nr&&au(H,$n(),K),YD}function ab(a,c,d){HI(c)&&(c=c());const h=Ot();return es(h,ul(),c)&&As(or(),Rr(),h,a,c,h[Oi],d,!1),ab}function gg(a,c){const d=HI(a);return d&&a.set(c),d}function j1(a,c){const d=Ot(),h=or(),A=jr();return gE(h,d,d[Oi],A,a,c),j1}function Ss(a,c,d,h,A){if(a=Xt(a),Array.isArray(a))for(let g=0;g>20;if(Zc(a)||!a.multi){const Ge=new GA(H,A,wm),st=Fp(k,c,A?K:K+Re,fe);-1===st?(bo(Xf(B,x),g,k),Do(g,a,c.length),c.push(k),B.directiveStart++,B.directiveEnd++,A&&(B.providerIndexes+=1048576),d.push(Ge),x.push(Ge)):(d[st]=Ge,x[st]=Ge)}else{const Ge=Fp(k,c,K+Re,fe),st=Fp(k,c,K,K+Re),ln=st>=0&&d[st];if(A&&!ln||!A&&!(Ge>=0&&d[Ge])){bo(Xf(B,x),g,k);const rn=function gL(a,c,d,h,A){const g=new GA(a,d,wm);return g.multi=[],g.index=c,g.componentProviders=0,yo(g,A,h&&!d),g}(A?yu:tB,d.length,A,h,H);!A&&ln&&(d[st].providerFactory=rn),Do(g,a,c.length,0),c.push(k),B.directiveStart++,B.directiveEnd++,A&&(B.providerIndexes+=1048576),d.push(rn),x.push(rn)}else Do(g,a,Ge>-1?Ge:st,yo(d[A?st:Ge],H,!A&&h));!A&&h&&ln&&d[st].componentProviders++}}}function Do(a,c,d,h){const A=Zc(c),g=function Dv(a){return!!a.useClass}(c);if(A||g){const k=(g?Xt(c.useClass):c).prototype.ngOnDestroy;if(k){const H=a.destroyHooks||(a.destroyHooks=[]);if(!A&&c.multi){const K=H.indexOf(d);-1===K?H.push(d,[h,k]):H[K+1].push(h,k)}else H.push(d,k)}}}function yo(a,c,d){return d&&a.componentProviders++,a.multi.push(c)-1}function Fp(a,c,d,h){for(let A=d;A{d.providersResolver=(h,A)=>function SE(a,c,d){const h=or();if(h.firstCreatePass){const A=Rl(a);Ss(d,h.data,h.blueprint,A,!0),Ss(c,h.data,h.blueprint,A,!1)}}(h,A?A(a):a,c)}}let iB=(()=>{class a{constructor(d){this._injector=d,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(d){if(!d.standalone)return null;if(!this.cachedInjectors.has(d)){const h=Iv(0,d.type),A=h.length>0?function sF(a,c,d=null){return new yM({providers:a,parent:c,debugName:d,runEnvironmentInitializers:!0}).injector}([h],this._injector,`Standalone[${d.type.name}]`):null;this.cachedInjectors.set(d,A)}return this.cachedInjectors.get(d)}ngOnDestroy(){try{for(const d of this.cachedInjectors.values())null!==d&&d.destroy()}finally{this.cachedInjectors.clear()}}static{this.\u0275prov=Mn({token:a,providedIn:"environment",factory:()=>new a(ds(ll))})}}return a})();function _g(a){Fa("NgStandalone"),a.getStandaloneInjector=c=>c.get(iB).getOrCreateStandaloneInjector(a)}function cb(a,c,d){const h=Ns()+a,A=Ot();return A[h]===nr?Bc(A,h,d?c.call(d):c()):function mp(a,c){return a[c]}(A,h)}function IE(a,c,d,h){return wu(Ot(),Ns(),a,c,d,h)}function FE(a,c,d,h,A){return oB(Ot(),Ns(),a,c,d,h,A)}function da(a,c){const d=a[c];return d===nr?void 0:d}function wu(a,c,d,h,A,g){const x=c+d;return es(a,x,A)?Bc(a,x+1,g?h.call(g,A):h(A)):da(a,x+1)}function oB(a,c,d,h,A,g,x){const B=c+d;return xh(a,B,A,g)?Bc(a,B+2,x?h.call(x,A,g):h(A,g)):da(a,B+2)}function ML(a,c){const d=or();let h;const A=a+ui;d.firstCreatePass?(h=function aB(a,c){if(c)for(let d=c.length-1;d>=0;d--){const h=c[d];if(a===h.name)return h}}(c,d.pipeRegistry),d.data[A]=h,h.onDestroy&&(d.destroyHooks??=[]).push(A,h.onDestroy)):h=d.data[A];const g=h.factory||(h.factory=ol(h.type)),B=Rs(wm);try{const k=sd(!1),H=g();return sd(k),function Q1(a,c,d,h){d>=a.data.length&&(a.data[d]=null,a.blueprint[d]=null),c[d]=h}(d,Ot(),A,H),H}finally{Rs(B)}}function xu(a,c,d){const h=a+ui,A=Ot(),g=sr(A,h);return vg(A,h)?wu(A,Ns(),c,g.transform,d,g):g.transform(d)}function ua(a,c,d,h){const A=a+ui,g=Ot(),x=sr(g,A);return vg(g,A)?oB(g,Ns(),c,x.transform,d,h,x):x.transform(d,h)}function Td(a,c,d,h,A,g){const x=a+ui,B=Ot(),k=sr(B,x);return vg(B,x)?function sB(a,c,d,h,A,g,x,B,k){const H=c+d;return ec(a,H,A,g,x,B)?Bc(a,H+4,k?h.call(k,A,g,x,B):h(A,g,x,B)):da(a,H+4)}(B,Ns(),c,k.transform,d,h,A,g,k):k.transform(d,h,A,g)}function vg(a,c){return a[Jt].data[c].pure}function PE(a,c){return Em(a,c)}class ub{constructor(c){this.full=c;const d=c.split(".");this.major=d[0],this.minor=d[1],this.patch=d.slice(2).join(".")}}let QL=(()=>{class a{log(d){console.log(d)}warn(d){console.warn(d)}static{this.\u0275fac=function(h){return new(h||a)}}static{this.\u0275prov=Mn({token:a,factory:a.\u0275fac,providedIn:"platform"})}}return a})();const aw=new En(""),lw=new En("");let Ab,XE=(()=>{class a{constructor(d,h,A){this._ngZone=d,this.registry=h,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,Ab||(function KE(a){Ab=a}(A),A.addToWindow(h)),this._watchAngularEvents(),d.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:()=>{so.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let d=this._callbacks.pop();clearTimeout(d.timeoutId),d.doneCb()}});else{let d=this.getPendingTasks();this._callbacks=this._callbacks.filter(h=>!h.updateCb||!h.updateCb(d)||(clearTimeout(h.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(d=>({source:d.source,creationLocation:d.creationLocation,data:d.data})):[]}addCallback(d,h,A){let g=-1;h&&h>0&&(g=setTimeout(()=>{this._callbacks=this._callbacks.filter(x=>x.timeoutId!==g),d()},h)),this._callbacks.push({doneCb:d,timeoutId:g,updateCb:A})}whenStable(d,h,A){if(A&&!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(d,h,A),this._runCallbacksIfReady()}registerApplication(d){this.registry.registerApplication(d,this)}unregisterApplication(d){this.registry.unregisterApplication(d)}findProviders(d,h,A){return[]}static{this.\u0275fac=function(h){return new(h||a)(ds(so),ds(cw),ds(lw))}}static{this.\u0275prov=Mn({token:a,factory:a.\u0275fac})}}return a})(),cw=(()=>{class a{constructor(){this._applications=new Map}registerApplication(d,h){this._applications.set(d,h)}unregisterApplication(d){this._applications.delete(d)}unregisterAllApplications(){this._applications.clear()}getTestability(d){return this._applications.get(d)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(d,h=!0){return Ab?.findTestabilityInTree(this,d,h)??null}static{this.\u0275fac=function(h){return new(h||a)}}static{this.\u0275prov=Mn({token:a,factory:a.\u0275fac,providedIn:"platform"})}}return a})();function mb(a){return!!a&&"function"==typeof a.then}function dw(a){return!!a&&"function"==typeof a.subscribe}const uw=new En("");let hw=(()=>{class a{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((d,h)=>{this.resolve=d,this.reject=h}),this.appInits=Pn(uw,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const d=[];for(const A of this.appInits){const g=A();if(mb(g))d.push(g);else if(dw(g)){const x=new Promise((B,k)=>{g.subscribe({complete:B,error:k})});d.push(x)}}const h=()=>{this.done=!0,this.resolve()};Promise.all(d).then(()=>{h()}).catch(A=>{this.reject(A)}),0===d.length&&h(),this.initialized=!0}static{this.\u0275fac=function(h){return new(h||a)}}static{this.\u0275prov=Mn({token:a,factory:a.\u0275fac,providedIn:"root"})}}return a})();const gb=new En("");let ic=(()=>{class a{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=Pn(bC),this.afterRenderManager=Pn(pF),this.zonelessEnabled=Pn(qy),this.dirtyFlags=0,this.deferredDirtyFlags=0,this.externalTestViews=new Set,this.beforeRender=new Yi.B,this.afterTick=new Yi.B,this.componentTypes=[],this.components=[],this.isStable=Pn(zl).hasPendingTasks.pipe((0,Hr.T)(d=>!d)),this._injector=Pn(ll)}get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}whenStable(){let d;return new Promise(h=>{d=this.isStable.subscribe({next:A=>{A&&h()}})}).finally(()=>{d.unsubscribe()})}get injector(){return this._injector}bootstrap(d,h){const A=d instanceof wI;if(!this._injector.get(hw).done)throw!A&&function Kc(a){const c=$i(a)||Uo(a)||Ko(a);return null!==c&&c.standalone}(d),new Zt(405,!1);let x;x=A?d:this._injector.get(Wy).resolveComponentFactory(d),this.componentTypes.push(x.componentType);const B=function YE(a){return a.isBoundToModule}(x)?void 0:this._injector.get(pp),H=x.create(ps.NULL,[],h||x.selector,B),K=H.location.nativeElement,fe=H.injector.get(aw,null);return fe?.registerApplication(K),H.onDestroy(()=>{this.detachView(H.hostView),Sg(this.components,H),fe?.unregisterApplication(K)}),this._loadComponent(H),H}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){if(this._runningTick)throw new Zt(101,!1);const d=L(null);try{this._runningTick=!0,this.synchronize()}catch(h){this.internalErrorHandler(h)}finally{this._runningTick=!1,L(d),this.afterTick.next()}}synchronize(){let d=null;this._injector.destroyed||(d=this._injector.get(xI,null,{optional:!0})),this.dirtyFlags|=this.deferredDirtyFlags,this.deferredDirtyFlags=0;let h=0;for(;0!==this.dirtyFlags&&h++<10;)this.synchronizeOnce(d)}synchronizeOnce(d){if(this.dirtyFlags|=this.deferredDirtyFlags,this.deferredDirtyFlags=0,7&this.dirtyFlags){const h=!!(1&this.dirtyFlags);this.dirtyFlags&=-8,this.dirtyFlags|=8,this.beforeRender.next(h);for(let{_lView:A,notifyErrorHandler:g}of this._views)eS(A,g,h,this.zonelessEnabled);if(this.dirtyFlags&=-5,this.syncDirtyFlagsWithViews(),7&this.dirtyFlags)return}else d?.begin?.(),d?.end?.();8&this.dirtyFlags&&(this.dirtyFlags&=-9,this.afterRenderManager.execute()),this.syncDirtyFlagsWithViews()}syncDirtyFlagsWithViews(){this.allViews.some(({_lView:d})=>G0(d))?this.dirtyFlags|=2:this.dirtyFlags&=-8}attachView(d){const h=d;this._views.push(h),h.attachToAppRef(this)}detachView(d){const h=d;Sg(this._views,h),h.detachFromAppRef()}_loadComponent(d){this.attachView(d.hostView),this.tick(),this.components.push(d);const h=this._injector.get(gb,[]);[...this._bootstrapListeners,...h].forEach(A=>A(d))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(d=>d()),this._views.slice().forEach(d=>d.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(d){return this._destroyListeners.push(d),()=>Sg(this._destroyListeners,d)}destroy(){if(this._destroyed)throw new Zt(406,!1);const d=this._injector;d.destroy&&!d.destroyed&&d.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static{this.\u0275fac=function(h){return new(h||a)}}static{this.\u0275prov=Mn({token:a,factory:a.\u0275fac,providedIn:"root"})}}return a})();function Sg(a,c){const d=a.indexOf(c);d>-1&&a.splice(d,1)}function eS(a,c,d,h){(d||G0(a))&&Ly(a,c,d&&!h?0:1)}let nS=(()=>{class a{constructor(){this.zone=Pn(so),this.changeDetectionScheduler=Pn(du),this.applicationRef=Pn(ic)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static{this.\u0275fac=function(h){return new(h||a)}}static{this.\u0275prov=Mn({token:a,factory:a.\u0275fac,providedIn:"root"})}}return a})();function Hh({ngZoneFactory:a,ignoreChangesOutsideZone:c,scheduleInRootZone:d}){return a??=()=>new so({...vb(),scheduleInRootZone:d}),[{provide:so,useFactory:a},{provide:mc,multi:!0,useFactory:()=>{const h=Pn(nS,{optional:!0});return()=>h.initialize()}},{provide:mc,multi:!0,useFactory:()=>{const h=Pn(TB);return()=>{h.initialize()}}},!0===c?{provide:DO,useValue:!0}:[],{provide:dM,useValue:d??Ta}]}function vb(a){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:a?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:a?.runCoalescing??!1}}let TB=(()=>{class a{constructor(){this.subscription=new fr.yU,this.initialized=!1,this.zone=Pn(so),this.pendingTasks=Pn(zl)}initialize(){if(this.initialized)return;this.initialized=!0;let d=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(d=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{so.assertNotInAngularZone(),queueMicrotask(()=>{null!==d&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(d),d=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{so.assertInAngularZone(),d??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static{this.\u0275fac=function(h){return new(h||a)}}static{this.\u0275prov=Mn({token:a,factory:a.\u0275fac,providedIn:"root"})}}return a})(),yb=(()=>{class a{constructor(){this.appRef=Pn(ic),this.taskService=Pn(zl),this.ngZone=Pn(so),this.zonelessEnabled=Pn(qy),this.disableScheduling=Pn(DO,{optional:!0})??!1,this.zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run,this.schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}],this.subscriptions=new fr.yU,this.angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Zf):null,this.scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(Pn(dM,{optional:!0})??!1),this.cancelScheduledCallback=null,this.useMicrotaskScheduler=!1,this.runningTick=!1,this.pendingRenderTaskId=null,this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof rm||!this.zoneIsDefined)}notify(d){if(!this.zonelessEnabled&&5===d)return;switch(d){case 0:this.appRef.dirtyFlags|=2;break;case 3:case 2:case 4:case 5:case 1:this.appRef.dirtyFlags|=4;break;case 7:this.appRef.deferredDirtyFlags|=8;break;default:this.appRef.dirtyFlags|=8}if(!this.shouldScheduleTick())return;const h=this.useMicrotaskScheduler?hy:uy;this.pendingRenderTaskId=this.taskService.add(),this.cancelScheduledCallback=this.scheduleInRootZone?Zone.root.run(()=>h(()=>this.tick())):this.ngZone.runOutsideAngular(()=>h(()=>this.tick()))}shouldScheduleTick(){return!(this.disableScheduling||null!==this.pendingRenderTaskId||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Zf+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;!this.zonelessEnabled&&7&this.appRef.dirtyFlags&&(this.appRef.dirtyFlags|=1);const d=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(h){throw this.taskService.remove(d),h}finally{this.cleanup()}this.useMicrotaskScheduler=!0,hy(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(d)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,null!==this.pendingRenderTaskId){const d=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(d)}}static{this.\u0275fac=function(h){return new(h||a)}}static{this.\u0275prov=Mn({token:a,factory:a.\u0275fac,providedIn:"root"})}}return a})();const Iu=new En("",{providedIn:"root",factory:()=>Pn(Iu,Ei.Optional|Ei.SkipSelf)||function V9(){return typeof $localize<"u"&&$localize.locale||B1}()}),$L=new En("",{providedIn:"root",factory:()=>"USD"}),Pp=new En("");function sS(a){return!a.moduleRef}let Np=null;function ZL(){return!1}let BB=(()=>{class a{static{this.__NG_ELEMENT_ID__=e5}}return a})();function e5(a){return function _w(a,c,d){if(ih(a)&&!d){const h=Ws(a.index,c);return new Hy(h,h)}return 175&a.type?new Hy(c[_o],c):null}(jr(),Ot(),!(16&~a))}class PB{constructor(){}supports(c){return r1(c)}create(c){return new n5(c)}}const Cb=(a,c)=>c;class n5{constructor(c){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=c||Cb}forEachItem(c){let d;for(d=this._itHead;null!==d;d=d._next)c(d)}forEachOperation(c){let d=this._itHead,h=this._removalsHead,A=0,g=null;for(;d||h;){const x=!h||d&&d.currentIndex{x=this._trackByFn(A,B),null!==d&&Object.is(d.trackById,x)?(h&&(d=this._verifyReinsertion(d,B,x,A)),Object.is(d.item,B)||this._addIdentityChange(d,B)):(d=this._mismatch(d,B,x,A),h=!0),d=d._next,A++}),this.length=A;return this._truncate(d),this.collection=c,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let c;for(c=this._previousItHead=this._itHead;null!==c;c=c._next)c._nextPrevious=c._next;for(c=this._additionsHead;null!==c;c=c._nextAdded)c.previousIndex=c.currentIndex;for(this._additionsHead=this._additionsTail=null,c=this._movesHead;null!==c;c=c._nextMoved)c.previousIndex=c.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(c,d,h,A){let g;return null===c?g=this._itTail:(g=c._prev,this._remove(c)),null!==(c=null===this._unlinkedRecords?null:this._unlinkedRecords.get(h,null))?(Object.is(c.item,d)||this._addIdentityChange(c,d),this._reinsertAfter(c,g,A)):null!==(c=null===this._linkedRecords?null:this._linkedRecords.get(h,A))?(Object.is(c.item,d)||this._addIdentityChange(c,d),this._moveAfter(c,g,A)):c=this._addAfter(new i5(d,h),g,A),c}_verifyReinsertion(c,d,h,A){let g=null===this._unlinkedRecords?null:this._unlinkedRecords.get(h,null);return null!==g?c=this._reinsertAfter(g,c._prev,A):c.currentIndex!=A&&(c.currentIndex=A,this._addToMoves(c,A)),c}_truncate(c){for(;null!==c;){const d=c._next;this._addToRemovals(this._unlink(c)),c=d}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(c,d,h){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(c);const A=c._prevRemoved,g=c._nextRemoved;return null===A?this._removalsHead=g:A._nextRemoved=g,null===g?this._removalsTail=A:g._prevRemoved=A,this._insertAfter(c,d,h),this._addToMoves(c,h),c}_moveAfter(c,d,h){return this._unlink(c),this._insertAfter(c,d,h),this._addToMoves(c,h),c}_addAfter(c,d,h){return this._insertAfter(c,d,h),this._additionsTail=null===this._additionsTail?this._additionsHead=c:this._additionsTail._nextAdded=c,c}_insertAfter(c,d,h){const A=null===d?this._itHead:d._next;return c._next=A,c._prev=d,null===A?this._itTail=c:A._prev=c,null===d?this._itHead=c:d._next=c,null===this._linkedRecords&&(this._linkedRecords=new OB),this._linkedRecords.put(c),c.currentIndex=h,c}_remove(c){return this._addToRemovals(this._unlink(c))}_unlink(c){null!==this._linkedRecords&&this._linkedRecords.remove(c);const d=c._prev,h=c._next;return null===d?this._itHead=h:d._next=h,null===h?this._itTail=d:h._prev=d,c}_addToMoves(c,d){return c.previousIndex===d||(this._movesTail=null===this._movesTail?this._movesHead=c:this._movesTail._nextMoved=c),c}_addToRemovals(c){return null===this._unlinkedRecords&&(this._unlinkedRecords=new OB),this._unlinkedRecords.put(c),c.currentIndex=null,c._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=c,c._prevRemoved=null):(c._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=c),c}_addIdentityChange(c,d){return c.item=d,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=c:this._identityChangesTail._nextIdentityChange=c,c}}class i5{constructor(c,d){this.item=c,this.trackById=d,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class r5{constructor(){this._head=null,this._tail=null}add(c){null===this._head?(this._head=this._tail=c,c._nextDup=null,c._prevDup=null):(this._tail._nextDup=c,c._prevDup=this._tail,c._nextDup=null,this._tail=c)}get(c,d){let h;for(h=this._head;null!==h;h=h._nextDup)if((null===d||d<=h.currentIndex)&&Object.is(h.trackById,c))return h;return null}remove(c){const d=c._prevDup,h=c._nextDup;return null===d?this._head=h:d._nextDup=h,null===h?this._tail=d:h._prevDup=d,null===this._head}}class OB{constructor(){this.map=new Map}put(c){const d=c.trackById;let h=this.map.get(d);h||(h=new r5,this.map.set(d,h)),h.add(c)}get(c,d){const A=this.map.get(c);return A?A.get(c,d):null}remove(c){const d=c.trackById;return this.map.get(d).remove(c)&&this.map.delete(d),c}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function NB(a,c,d){const h=a.previousIndex;if(null===h)return h;let A=0;return d&&h{if(d&&d.key===A)this._maybeAddToChanges(d,h),this._appendAfter=d,d=d._next;else{const g=this._getOrCreateRecordForKey(A,h);d=this._insertBeforeOrAppend(d,g)}}),d){d._prev&&(d._prev._next=null),this._removalsHead=d;for(let h=d;null!==h;h=h._nextRemoved)h===this._mapHead&&(this._mapHead=null),this._records.delete(h.key),h._nextRemoved=h._next,h.previousValue=h.currentValue,h.currentValue=null,h._prev=null,h._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(c,d){if(c){const h=c._prev;return d._next=c,d._prev=h,c._prev=d,h&&(h._next=d),c===this._mapHead&&(this._mapHead=d),this._appendAfter=c,c}return this._appendAfter?(this._appendAfter._next=d,d._prev=this._appendAfter):this._mapHead=d,this._appendAfter=d,null}_getOrCreateRecordForKey(c,d){if(this._records.has(c)){const A=this._records.get(c);this._maybeAddToChanges(A,d);const g=A._prev,x=A._next;return g&&(g._next=x),x&&(x._prev=g),A._next=null,A._prev=null,A}const h=new s5(c);return this._records.set(c,h),h.currentValue=d,this._addToAdditions(h),h}_reset(){if(this.isDirty){let c;for(this._previousMapHead=this._mapHead,c=this._previousMapHead;null!==c;c=c._next)c._nextPrevious=c._next;for(c=this._changesHead;null!==c;c=c._nextChanged)c.previousValue=c.currentValue;for(c=this._additionsHead;null!=c;c=c._nextAdded)c.previousValue=c.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(c,d){Object.is(d,c.currentValue)||(c.previousValue=c.currentValue,c.currentValue=d,this._addToChanges(c))}_addToAdditions(c){null===this._additionsHead?this._additionsHead=this._additionsTail=c:(this._additionsTail._nextAdded=c,this._additionsTail=c)}_addToChanges(c){null===this._changesHead?this._changesHead=this._changesTail=c:(this._changesTail._nextChanged=c,this._changesTail=c)}_forEach(c,d){c instanceof Map?c.forEach(d):Object.keys(c).forEach(h=>d(c[h],h))}}class s5{constructor(c){this.key=c,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 UB(){return new cS([new PB])}let cS=(()=>{class a{static{this.\u0275prov=Mn({token:a,providedIn:"root",factory:UB})}constructor(d){this.factories=d}static create(d,h){if(null!=h){const A=h.factories.slice();d=d.concat(A)}return new a(d)}static extend(d){return{provide:a,useFactory:h=>a.create(d,h||UB()),deps:[[a,new w0,new xf]]}}find(d){const h=this.factories.find(A=>A.supports(d));if(null!=h)return h;throw new Zt(901,!1)}}return a})();function VB(){return new dS([new LB])}let dS=(()=>{class a{static{this.\u0275prov=Mn({token:a,providedIn:"root",factory:VB})}constructor(d){this.factories=d}static create(d,h){if(h){const A=h.factories.slice();d=d.concat(A)}return new a(d)}static extend(d){return{provide:a,useFactory:h=>a.create(d,h||VB()),deps:[[a,new w0,new xf]]}}find(d){const h=this.factories.find(A=>A.supports(d));if(h)return h;throw new Zt(901,!1)}}return a})();function fS(a){try{const{rootComponent:c,appProviders:d,platformProviders:h}=a,A=function G9(a=[]){if(Np)return Np;const c=function XL(a=[],c){return ps.create({name:c,providers:[{provide:F0,useValue:"platform"},{provide:Pp,useValue:new Set([()=>Np=null])},...a]})}(a);return Np=c,function fw(){!function Pt(a){xt=a}(()=>{throw new Zt(600,!1)})}(),function KL(a){a.get(uT,null)?.forEach(d=>d())}(c),c}(h),g=[Hh({}),{provide:du,useExisting:yb},...d||[]];return function Op(a){const c=sS(a)?a.r3Injector:a.moduleRef.injector,d=c.get(so);return d.run(()=>{sS(a)?a.r3Injector.resolveInjectorInitializers():a.moduleRef.resolveInjectorInitializers();const h=c.get(Mc,null);let A;if(d.runOutsideAngular(()=>{A=d.onError.subscribe({next:g=>{h.handleError(g)}})}),sS(a)){const g=()=>c.destroy(),x=a.platformInjector.get(Pp);x.add(g),c.onDestroy(()=>{A.unsubscribe(),x.delete(g)})}else{const g=()=>a.moduleRef.destroy(),x=a.platformInjector.get(Pp);x.add(g),a.moduleRef.onDestroy(()=>{Sg(a.allPlatformModules,a.moduleRef),A.unsubscribe(),x.delete(g)})}return function JE(a,c,d){try{const h=d();return mb(h)?h.catch(A=>{throw c.runOutsideAngular(()=>a.handleError(A)),A}):h}catch(h){throw c.runOutsideAngular(()=>a.handleError(h)),h}}(h,d,()=>{const g=c.get(hw);return g.runInitializers(),g.donePromise.then(()=>{if(function ug(a){"string"==typeof a&&(KF=a.toLowerCase().replace(/_/g,"-"))}(c.get(Iu,B1)||B1),sS(a)){const B=c.get(ic);return void 0!==a.rootComponent&&B.bootstrap(a.rootComponent),B}return function H9(a,c){const d=a.injector.get(ic);if(a._bootstrapComponents.length>0)a._bootstrapComponents.forEach(h=>d.bootstrap(h));else{if(!a.instance.ngDoBootstrap)throw new Zt(-403,!1);a.instance.ngDoBootstrap(d)}c.push(a)}(a.moduleRef,a.allPlatformModules),a.moduleRef})})})}({r3Injector:new yM({providers:g,parent:A,debugName:"",runEnvironmentInitializers:!1}).injector,platformInjector:A,rootComponent:c})}catch(c){return Promise.reject(c)}}function ko(a){return"boolean"==typeof a?a:null!=a&&"false"!==a}function Lc(a,c=NaN){return isNaN(parseFloat(a))||isNaN(Number(a))?c:Number(a)}function ik(a,c){Fa("NgSignals");const d=ve(a);return c?.equal&&(d[U].equal=c.equal),d}function Wh(a){const c=L(null);try{return a()}finally{L(c)}}const Tw=new En("",{providedIn:"root",factory:()=>Pn(vS)});let vS=(()=>{class a{static{this.\u0275prov=Mn({token:a,providedIn:"root",factory:()=>new _n})}}return a})();class _n{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=Pn(zl),this.taskId=null}scheduleEffect(c){if(this.enqueue(c),null===this.taskId){const d=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(d),this.taskId=null})}}enqueue(c){const d=c.creationZone;this.queues.has(d)||this.queues.set(d,new Set);const h=this.queues.get(d);h.has(c)||(this.queuedEffectCount++,h.add(c))}flush(){for(;this.queuedEffectCount>0;)for(const[c,d]of this.queues)null===c?this.flushQueue(d):c.run(()=>this.flushQueue(d))}flushQueue(c){for(const d of c)c.delete(d),this.queuedEffectCount--,d.run()}}class pa{constructor(c,d,h,A,g,x){this.scheduler=c,this.effectFn=d,this.creationZone=h,this.injector=g,this.watcher=function qt(a,c,d){const h=Object.create(Wt);d&&(h.consumerAllowSignalWrites=!0),h.fn=a,h.schedule=c;const A=k=>{h.cleanupFn=k};return h.ref={notify:()=>we(h),run:()=>{if(null===h.fn)return;if(function V(){return y}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(h.dirty=!1,h.hasRun&&!Ne(h))return;h.hasRun=!0;const k=Be(h);try{h.cleanupFn(),h.cleanupFn=cn,h.fn(A)}finally{Ie(h,k)}},cleanup:()=>h.cleanupFn(),destroy:()=>function x(k){(function g(k){return null===k.fn&&null===k.schedule})(k)||(Je(k),k.cleanupFn(),k.fn=null,k.schedule=null,k.cleanupFn=cn)}(h),[U]:h},h.ref}(B=>this.runEffect(B),()=>this.schedule(),x),this.unregisterOnDestroy=A?.onDestroy(()=>this.destroy())}runEffect(c){try{this.effectFn(c)}catch(d){this.injector.get(Mc,null,{optional:!0})?.handleError(d)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}function rk(a,c){Fa("NgSignals"),!c?.injector&&Ff();const d=c?.injector??Pn(ps),h=!0!==c?.manualCleanup?d.get(hh):null,A=new pa(d.get(Tw),a,typeof Zone>"u"?null:Zone.current,h,d,c?.allowSignalWrites??!1),g=d.get(BB,null,{optional:!0});return g&&8&g._lView[wi]?(g._lView[CA]??=[]).push(A.watcher.notify):A.watcher.notify(),A}},3420:nt=>{"use strict";nt.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:nt=>{"use strict";nt.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}')}},nt=>{nt(nt.s=2809)}]); \ No newline at end of file diff --git a/stg/visualization/package.json b/stg/visualization/package.json index bc0788c3df..d3c9c3e1e9 100644 --- a/stg/visualization/package.json +++ b/stg/visualization/package.json @@ -10,7 +10,7 @@ "url": "https://github.com/MaibornWolff/codecharta.git" }, "name": "codecharta-visualization", - "version": "1.131.2", + "version": "1.131.3", "engines": { "node": ">=20" },