diff --git a/client/out/extension.js b/client/out/extension.js
index 8f85c287da71113d7da48612dc5832001ce900e2..ce0594edb8b25fb021ab227d693a13dac1ace5d9 100644
--- a/client/out/extension.js
+++ b/client/out/extension.js
@@ -11,6 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
 Object.defineProperty(exports, "__esModule", { value: true });
 exports.deactivate = exports.activate = void 0;
 const languageserver = require("./languageserver");
+const psi = require("./psi/psiViewer");
 let luadoc = require('../3rd/vscode-lua-doc/extension.js');
 function activate(context) {
     languageserver.activate(context);
@@ -29,6 +30,7 @@ function activate(context) {
     luaDocContext.OpenCommand = 'extension.lua.doc';
     luaDocContext.extensionPath = context.extensionPath + '/client/3rd/vscode-lua-doc';
     luadoc.activate(luaDocContext);
+    psi.activate(context);
     return {
         reportAPIDoc(params) {
             return __awaiter(this, void 0, void 0, function* () {
diff --git a/client/out/languageserver.js b/client/out/languageserver.js
index 15fc87451ccbc59b8de50f9def690f8811bec0f1..71300aa1bdea8e3573cbebf450631225eedc999f 100644
--- a/client/out/languageserver.js
+++ b/client/out/languageserver.js
@@ -9,14 +9,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
     });
 };
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.reportAPIDoc = exports.deactivate = exports.activate = void 0;
+exports.reportAPIDoc = exports.deactivate = exports.activate = exports.defaultClient = void 0;
 const path = require("path");
 const os = require("os");
 const fs = require("fs");
 const vscode = require("vscode");
 const vscode_1 = require("vscode");
 const node_1 = require("vscode-languageclient/node");
-let defaultClient;
 function registerCustomCommands(context) {
     context.subscriptions.push(vscode_1.commands.registerCommand('lua.config', (changes) => {
         let propMap = new Map();
@@ -150,11 +149,11 @@ function activate(context) {
             return;
         }
         // Untitled files go to a default client.
-        if (!defaultClient) {
-            defaultClient = new LuaClient(context, [
+        if (!exports.defaultClient) {
+            exports.defaultClient = new LuaClient(context, [
                 { language: 'lua' }
             ]);
-            defaultClient.start();
+            exports.defaultClient.start();
             return;
         }
     }
@@ -164,9 +163,9 @@ function activate(context) {
 exports.activate = activate;
 function deactivate() {
     return __awaiter(this, void 0, void 0, function* () {
-        if (defaultClient) {
-            defaultClient.stop();
-            defaultClient = null;
+        if (exports.defaultClient) {
+            exports.defaultClient.stop();
+            exports.defaultClient = null;
         }
         return undefined;
     });
@@ -174,10 +173,10 @@ function deactivate() {
 exports.deactivate = deactivate;
 function reportAPIDoc(params) {
     return __awaiter(this, void 0, void 0, function* () {
-        if (!defaultClient) {
+        if (!exports.defaultClient) {
             return;
         }
-        defaultClient.client.sendNotification('$/api/report', params);
+        exports.defaultClient.client.sendNotification('$/api/report', params);
     });
 }
 exports.reportAPIDoc = reportAPIDoc;
diff --git a/client/out/psi/psiViewer.js b/client/out/psi/psiViewer.js
new file mode 100644
index 0000000000000000000000000000000000000000..f527dc60f39932a764d929c68ad0952889a7a0a6
--- /dev/null
+++ b/client/out/psi/psiViewer.js
@@ -0,0 +1,147 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.activate = void 0;
+const fs = require("fs");
+const path = require("path");
+const vscode = require("vscode");
+const languageserver_1 = require("../languageserver");
+const LANGUAGE_ID = "lua";
+/**
+ * Manages webview panels
+ */
+class PsiViewer {
+    constructor(context, column) {
+        this.context = context;
+        this.disposables = [];
+        this.extensionPath = context.extensionPath;
+        this.builtAppFolder = PsiViewer.distDirectory;
+        // Create and show a new webview panel
+        this.panel = vscode.window.createWebviewPanel(PsiViewer.viewType, PsiViewer.title, column, {
+            // Enable javascript in the webview
+            enableScripts: true,
+            // And restrict the webview to only loading content from our extension's `media` directory.
+            localResourceRoots: [vscode.Uri.file(path.join(this.extensionPath, this.builtAppFolder))]
+        });
+        // Set the webview's initial html content
+        this.panel.webview.html = this._getHtmlForWebview();
+        // Listen for when the panel is disposed
+        // This happens when the user closes the panel or when the panel is closed programatically
+        this.panel.onDidDispose(() => this.dispose(), null, this.disposables);
+    }
+    static createOrShow(context) {
+        // const column = vscode.window.activeTextEditor ? vscode.window.activeTextEditor.viewColumn : undefined;
+        // If we already have a panel, show it.
+        // Otherwise, create angular panel.
+        if (PsiViewer.currentPanel) {
+            PsiViewer.currentPanel.panel.reveal(vscode.ViewColumn.Two);
+        }
+        else {
+            PsiViewer.currentPanel = new PsiViewer(context, vscode.ViewColumn.Two);
+            PsiViewer.currentPanel.active(context);
+        }
+        return PsiViewer.currentPanel;
+    }
+    dispose() {
+        PsiViewer.currentPanel = undefined;
+        // Clean up our resources
+        this.panel.dispose();
+        while (this.disposables.length) {
+            const x = this.disposables.pop();
+            if (x) {
+                x.dispose();
+            }
+        }
+    }
+    post(message) {
+        this.panel.webview.postMessage(message);
+    }
+    /**
+     * Returns html of the start page (index.html)
+     */
+    _getHtmlForWebview() {
+        // path to dist folder
+        const appDistPath = path.join(this.extensionPath, PsiViewer.distDirectory);
+        const appDistPathUri = vscode.Uri.file(appDistPath);
+        // path as uri
+        const baseUri = this.panel.webview.asWebviewUri(appDistPathUri);
+        // get path to index.html file from dist folder
+        const indexPath = path.join(appDistPath, 'index.html');
+        // read index file from file system
+        let indexHtml = fs.readFileSync(indexPath, { encoding: 'utf8' });
+        // update the base URI tag
+        indexHtml = indexHtml.replace('<base href="/">', `<base href="${String(baseUri)}/">`);
+        return indexHtml;
+    }
+    active(context) {
+        context.subscriptions.push(vscode.workspace.onDidChangeTextDocument(PsiViewer.onDidChangeTextDocument, null, context.subscriptions));
+        context.subscriptions.push(vscode.window.onDidChangeActiveTextEditor(PsiViewer.onDidChangeActiveTextEditor, null, context.subscriptions));
+        context.subscriptions.push(vscode.window.onDidChangeTextEditorSelection(PsiViewer.onDidChangeSelection, null, context.subscriptions));
+    }
+    requestPsi(editor) {
+        if (this.timeoutToReqAnn) {
+            clearTimeout(this.timeoutToReqAnn);
+        }
+        this.timeoutToReqAnn = setTimeout(() => {
+            this.requestPsiImpl(editor);
+        }, 150);
+    }
+    requestPsiImpl(editor) {
+        const client = languageserver_1.defaultClient.client;
+        let params = { uri: editor.document.uri.toString() };
+        client === null || client === void 0 ? void 0 : client.sendRequest("$/psi/view", params).then(result => {
+            if (result) {
+                this.post({
+                    type: "psi",
+                    value: [result.data]
+                });
+            }
+        });
+    }
+    requestPsiSelect(position, uri) {
+        const client = languageserver_1.defaultClient.client;
+        let params = { uri: uri.toString(), position };
+        client === null || client === void 0 ? void 0 : client.sendRequest("$/psi/select", params).then(result => {
+            if (result) {
+                this.post({
+                    type: "psi_select",
+                    value: result.data
+                });
+            }
+        });
+    }
+    static onDidChangeTextDocument(event) {
+        const activeEditor = vscode.window.activeTextEditor;
+        const viewer = PsiViewer.currentPanel;
+        if (activeEditor
+            && activeEditor.document === event.document
+            && activeEditor.document.languageId === LANGUAGE_ID) {
+            viewer.requestPsi(activeEditor);
+        }
+    }
+    static onDidChangeActiveTextEditor(editor) {
+        const viewer = PsiViewer.currentPanel;
+        if (editor
+            && editor.document.languageId === LANGUAGE_ID) {
+            viewer.requestPsi(editor);
+        }
+    }
+    static onDidChangeSelection(e) {
+        if (e.kind == vscode.TextEditorSelectionChangeKind.Mouse
+            || e.kind == vscode.TextEditorSelectionChangeKind.Keyboard) {
+            const viewer = PsiViewer.currentPanel;
+            if (viewer) {
+                viewer.requestPsiSelect(e.selections[0].start, e.textEditor.document.uri);
+            }
+        }
+    }
+}
+PsiViewer.viewType = 'LuaPsiView';
+PsiViewer.title = "LuaPsiView";
+PsiViewer.distDirectory = "client/web/dist";
+function activate(context) {
+    context.subscriptions.push(vscode.commands.registerCommand('lua.psi.view', () => {
+        PsiViewer.createOrShow(context);
+    }));
+}
+exports.activate = activate;
+//# sourceMappingURL=psiViewer.js.map
\ No newline at end of file
diff --git a/client/out/psi/psiViewer.js.map b/client/out/psi/psiViewer.js.map
new file mode 100644
index 0000000000000000000000000000000000000000..d359a07c5959b75b907d53503470fa1e5df35840
--- /dev/null
+++ b/client/out/psi/psiViewer.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"psiViewer.js","sourceRoot":"","sources":["../../src/psi/psiViewer.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6BAA6B;AAC7B,iCAAiC;AACjC,sDAAkD;AAElD,MAAM,WAAW,GAAW,KAAK,CAAC;AAClC;;GAEG;AACH,MAAM,SAAS;IA8BX,YAA4B,OAAgC,EAAE,MAAyB;QAA3D,YAAO,GAAP,OAAO,CAAyB;QAjBpD,gBAAW,GAAwB,EAAE,CAAC;QAkB1C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,aAAa,CAAC;QAE9C,sCAAsC;QACtC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE;YACvF,mCAAmC;YACnC,aAAa,EAAE,IAAI;YAEnB,2FAA2F;YAC3F,kBAAkB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;SAC5F,CAAC,CAAC;QAEH,yCAAyC;QACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEpD,wCAAwC;QACxC,0FAA0F;QAC1F,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1E,CAAC;IAjCM,MAAM,CAAC,YAAY,CAAC,OAAgC;QACvD,yGAAyG;QAEzG,uCAAuC;QACvC,mCAAmC;QACnC,IAAI,SAAS,CAAC,YAAY,EAAE;YACxB,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9D;aAAM;YACH,SAAS,CAAC,YAAY,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACvE,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC1C;QACD,OAAO,SAAS,CAAC,YAAY,CAAC;IAClC,CAAC;IAuBM,OAAO;QACV,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC;QAEnC,yBAAyB;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAErB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,EAAE;gBACH,CAAC,CAAC,OAAO,EAAE,CAAC;aACf;SACJ;IACL,CAAC;IAEM,IAAI,CAAC,OAAY;QACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACK,kBAAkB;QACtB,sBAAsB;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;QAC3E,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEpD,cAAc;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QAEhE,+CAA+C;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAEvD,mCAAmC;QACnC,IAAI,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAEjE,0BAA0B;QAC1B,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,eAAe,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEtF,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,MAAM,CAAC,OAAgC;QAC3C,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,uBAAuB,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QACrI,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,SAAS,CAAC,2BAA2B,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1I,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,8BAA8B,CAAC,SAAS,CAAC,oBAAoB,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;IAC1I,CAAC;IAEO,UAAU,CAAC,MAAyB;QACxC,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACtC;QACD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,EAAE,GAAG,CAAC,CAAC;IACZ,CAAC;IAEO,cAAc,CAAC,MAAyB;QAC5C,MAAM,MAAM,GAAG,8BAAa,CAAC,MAAM,CAAC;QACpC,IAAI,MAAM,GAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC1D,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAgB,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YACnE,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,IAAI,CAAC;oBACN,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;iBACvB,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,gBAAgB,CAAC,QAAyB,EAAE,GAAe;QAC/D,MAAM,MAAM,GAAG,8BAAa,CAAC,MAAM,CAAC;QACpC,IAAI,MAAM,GAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC;QACpD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAgB,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YACrE,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,IAAI,CAAC;oBACN,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,MAAM,CAAC,IAAI;iBACrB,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,MAAM,CAAC,uBAAuB,CAAC,KAAqC;QACxE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACpD,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC;QACtC,IAAI,YAAY;eACT,YAAY,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;eACxC,YAAY,CAAC,QAAQ,CAAC,UAAU,KAAK,WAAW,EAAE;YACrD,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;SACnC;IACL,CAAC;IAEO,MAAM,CAAC,2BAA2B,CAAC,MAAqC;QAC5E,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC;QACtC,IAAI,MAAM;eACH,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK,WAAW,EAAE;YAC/C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SAC7B;IACL,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,CAAwC;QACxE,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,6BAA6B,CAAC,KAAK;eACjD,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,6BAA6B,CAAC,QAAQ,EAAE;YAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC;YACtC,IAAI,MAAM,EAAE;gBACR,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;aAC5E;SACJ;IACL,CAAC;;AAzJuB,kBAAQ,GAAG,YAAY,CAAC;AACxB,eAAK,GAAG,YAAY,CAAC;AACrB,uBAAa,GAAG,iBAAiB,CAAC;AA2J9D,SAAgB,QAAQ,CAAC,OAAgC;IACrD,OAAO,CAAC,aAAa,CAAC,IAAI,CACtB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,cAAc,EAAE,GAAG,EAAE;QACjD,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CACL,CAAC;AACN,CAAC;AAND,4BAMC"}
\ No newline at end of file
diff --git a/client/src/extension.ts b/client/src/extension.ts
index c5309616c7c9877d9beefb58592100acb5e74975..49d1cd9e52cef1055950c32acc862d6876d9a35f 100644
--- a/client/src/extension.ts
+++ b/client/src/extension.ts
@@ -1,5 +1,6 @@
 import * as vscode from 'vscode'
 import * as languageserver from './languageserver';
+import * as psi from './psi/psiViewer';
 
 let luadoc = require('../3rd/vscode-lua-doc/extension.js')
 
@@ -23,6 +24,7 @@ export function activate(context: vscode.ExtensionContext) {
     luaDocContext.extensionPath = context.extensionPath + '/client/3rd/vscode-lua-doc'
 
     luadoc.activate(luaDocContext);
+    psi.activate(context);
 
     return {
         async reportAPIDoc(params: any) {
diff --git a/client/src/languageserver.ts b/client/src/languageserver.ts
index cf31da004c55977edbcfd492249ac6658bcdeaf4..27cfd2d86e036fdd7f288b655bd8631395bbf1d4 100644
--- a/client/src/languageserver.ts
+++ b/client/src/languageserver.ts
@@ -18,7 +18,7 @@ import {
     DocumentSelector,
 } from 'vscode-languageclient/node';
 
-let defaultClient: LuaClient;
+export let defaultClient: LuaClient;
 
 function registerCustomCommands(context: ExtensionContext) {
     context.subscriptions.push(Commands.registerCommand('lua.config', (changes) => {
diff --git a/client/src/psi/psiViewer.ts b/client/src/psi/psiViewer.ts
new file mode 100644
index 0000000000000000000000000000000000000000..15fa98fac5fbabd14e6c07fc0eda86f661ceb240
--- /dev/null
+++ b/client/src/psi/psiViewer.ts
@@ -0,0 +1,179 @@
+import * as fs from 'fs';
+import * as path from 'path';
+import * as vscode from 'vscode';
+import { defaultClient } from '../languageserver';
+
+const LANGUAGE_ID: string = "lua";
+/**
+ * Manages webview panels
+ */
+class PsiViewer {
+    /**
+     * Track the currently panel. Only allow a single panel to exist at a time.
+     */
+    public static currentPanel: PsiViewer | undefined;
+
+    private static readonly viewType = 'LuaPsiView';
+    private static readonly title = "LuaPsiView";
+    private static readonly distDirectory = "client/web/dist";
+
+    private readonly panel: vscode.WebviewPanel;
+    private readonly extensionPath: string;
+    private readonly builtAppFolder: string;
+    private disposables: vscode.Disposable[] = [];
+    private timeoutToReqAnn?: NodeJS.Timer;
+
+    public static createOrShow(context: vscode.ExtensionContext) {
+        // const column = vscode.window.activeTextEditor ? vscode.window.activeTextEditor.viewColumn : undefined;
+
+        // If we already have a panel, show it.
+        // Otherwise, create angular panel.
+        if (PsiViewer.currentPanel) {
+            PsiViewer.currentPanel.panel.reveal(vscode.ViewColumn.Two);
+        } else {
+            PsiViewer.currentPanel = new PsiViewer(context, vscode.ViewColumn.Two);
+            PsiViewer.currentPanel.active(context);
+        }
+        return PsiViewer.currentPanel;
+    }
+
+    private constructor(private context: vscode.ExtensionContext, column: vscode.ViewColumn) {
+        this.extensionPath = context.extensionPath;
+        this.builtAppFolder = PsiViewer.distDirectory;
+
+        // Create and show a new webview panel
+        this.panel = vscode.window.createWebviewPanel(PsiViewer.viewType, PsiViewer.title, column, {
+            // Enable javascript in the webview
+            enableScripts: true,
+
+            // And restrict the webview to only loading content from our extension's `media` directory.
+            localResourceRoots: [vscode.Uri.file(path.join(this.extensionPath, this.builtAppFolder))]
+        });
+
+        // Set the webview's initial html content
+        this.panel.webview.html = this._getHtmlForWebview();
+
+        // Listen for when the panel is disposed
+        // This happens when the user closes the panel or when the panel is closed programatically
+        this.panel.onDidDispose(() => this.dispose(), null, this.disposables);
+    }
+
+    public dispose() {
+        PsiViewer.currentPanel = undefined;
+
+        // Clean up our resources
+        this.panel.dispose();
+
+        while (this.disposables.length) {
+            const x = this.disposables.pop();
+            if (x) {
+                x.dispose();
+            }
+        }
+    }
+
+    public post(message: any) {
+        this.panel.webview.postMessage(message);
+    }
+
+    /**
+     * Returns html of the start page (index.html)
+     */
+    private _getHtmlForWebview() {
+        // path to dist folder
+        const appDistPath = path.join(this.extensionPath, PsiViewer.distDirectory);
+        const appDistPathUri = vscode.Uri.file(appDistPath);
+
+        // path as uri
+        const baseUri = this.panel.webview.asWebviewUri(appDistPathUri);
+
+        // get path to index.html file from dist folder
+        const indexPath = path.join(appDistPath, 'index.html');
+
+        // read index file from file system
+        let indexHtml = fs.readFileSync(indexPath, { encoding: 'utf8' });
+
+        // update the base URI tag
+        indexHtml = indexHtml.replace('<base href="/">', `<base href="${String(baseUri)}/">`);
+
+        return indexHtml;
+    }
+
+    private active(context: vscode.ExtensionContext) {
+        context.subscriptions.push(vscode.workspace.onDidChangeTextDocument(PsiViewer.onDidChangeTextDocument, null, context.subscriptions));
+        context.subscriptions.push(vscode.window.onDidChangeActiveTextEditor(PsiViewer.onDidChangeActiveTextEditor, null, context.subscriptions));
+        context.subscriptions.push(vscode.window.onDidChangeTextEditorSelection(PsiViewer.onDidChangeSelection, null, context.subscriptions));
+    }
+
+    private requestPsi(editor: vscode.TextEditor) {
+        if (this.timeoutToReqAnn) {
+            clearTimeout(this.timeoutToReqAnn);
+        }
+        this.timeoutToReqAnn = setTimeout(() => {
+            this.requestPsiImpl(editor);
+        }, 150);
+    }
+
+    private requestPsiImpl(editor: vscode.TextEditor) {
+        const client = defaultClient.client;
+        let params: any = { uri: editor.document.uri.toString() };
+        client?.sendRequest<{ data: any }>("$/psi/view", params).then(result => {
+            if (result) {
+                this.post({
+                    type: "psi",
+                    value: [result.data]
+                });
+            }
+        });
+    }
+
+    private requestPsiSelect(position: vscode.Position, uri: vscode.Uri) {
+        const client = defaultClient.client;
+        let params: any = { uri: uri.toString(), position };
+        client?.sendRequest<{ data: any }>("$/psi/select", params).then(result => {
+            if (result) {
+                this.post({
+                    type: "psi_select",
+                    value: result.data
+                });
+            }
+        });
+    }
+
+    private static onDidChangeTextDocument(event: vscode.TextDocumentChangeEvent) {
+        const activeEditor = vscode.window.activeTextEditor;
+        const viewer = PsiViewer.currentPanel;
+        if (activeEditor
+            && activeEditor.document === event.document
+            && activeEditor.document.languageId === LANGUAGE_ID) {
+            viewer.requestPsi(activeEditor);
+        }
+    }
+
+    private static onDidChangeActiveTextEditor(editor: vscode.TextEditor | undefined) {
+        const viewer = PsiViewer.currentPanel;
+        if (editor
+            && editor.document.languageId === LANGUAGE_ID) {
+            viewer.requestPsi(editor);
+        }
+    }
+
+    private static onDidChangeSelection(e: vscode.TextEditorSelectionChangeEvent) {
+        if (e.kind == vscode.TextEditorSelectionChangeKind.Mouse
+            || e.kind == vscode.TextEditorSelectionChangeKind.Keyboard) {
+            const viewer = PsiViewer.currentPanel;
+            if (viewer) {
+                viewer.requestPsiSelect(e.selections[0].start, e.textEditor.document.uri)
+            }
+        }
+    }
+}
+
+
+export function activate(context: vscode.ExtensionContext) {
+    context.subscriptions.push(
+        vscode.commands.registerCommand('lua.psi.view', () => {
+            PsiViewer.createOrShow(context);
+        })
+    );
+}
\ No newline at end of file
diff --git a/client/web/dist/3rdpartylicenses.txt b/client/web/dist/3rdpartylicenses.txt
new file mode 100644
index 0000000000000000000000000000000000000000..050c1be9eeed4076c8e4a01112196c8275502ca9
--- /dev/null
+++ b/client/web/dist/3rdpartylicenses.txt
@@ -0,0 +1,309 @@
+@angular/animations
+MIT
+
+@angular/cdk
+MIT
+The MIT License
+
+Copyright (c) 2022 Google LLC.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+@angular/common
+MIT
+
+@angular/core
+MIT
+
+@angular/material
+MIT
+The MIT License
+
+Copyright (c) 2022 Google LLC.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+@angular/platform-browser
+MIT
+
+@angular/router
+MIT
+
+rxjs
+Apache-2.0
+                               Apache License
+                         Version 2.0, January 2004
+                      http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+    "License" shall mean the terms and conditions for use, reproduction,
+    and distribution as defined by Sections 1 through 9 of this document.
+
+    "Licensor" shall mean the copyright owner or entity authorized by
+    the copyright owner that is granting the License.
+
+    "Legal Entity" shall mean the union of the acting entity and all
+    other entities that control, are controlled by, or are under common
+    control with that entity. For the purposes of this definition,
+    "control" means (i) the power, direct or indirect, to cause the
+    direction or management of such entity, whether by contract or
+    otherwise, or (ii) ownership of fifty percent (50%) or more of the
+    outstanding shares, or (iii) beneficial ownership of such entity.
+
+    "You" (or "Your") shall mean an individual or Legal Entity
+    exercising permissions granted by this License.
+
+    "Source" form shall mean the preferred form for making modifications,
+    including but not limited to software source code, documentation
+    source, and configuration files.
+
+    "Object" form shall mean any form resulting from mechanical
+    transformation or translation of a Source form, including but
+    not limited to compiled object code, generated documentation,
+    and conversions to other media types.
+
+    "Work" shall mean the work of authorship, whether in Source or
+    Object form, made available under the License, as indicated by a
+    copyright notice that is included in or attached to the work
+    (an example is provided in the Appendix below).
+
+    "Derivative Works" shall mean any work, whether in Source or Object
+    form, that is based on (or derived from) the Work and for which the
+    editorial revisions, annotations, elaborations, or other modifications
+    represent, as a whole, an original work of authorship. For the purposes
+    of this License, Derivative Works shall not include works that remain
+    separable from, or merely link (or bind by name) to the interfaces of,
+    the Work and Derivative Works thereof.
+
+    "Contribution" shall mean any work of authorship, including
+    the original version of the Work and any modifications or additions
+    to that Work or Derivative Works thereof, that is intentionally
+    submitted to Licensor for inclusion in the Work by the copyright owner
+    or by an individual or Legal Entity authorized to submit on behalf of
+    the copyright owner. For the purposes of this definition, "submitted"
+    means any form of electronic, verbal, or written communication sent
+    to the Licensor or its representatives, including but not limited to
+    communication on electronic mailing lists, source code control systems,
+    and issue tracking systems that are managed by, or on behalf of, the
+    Licensor for the purpose of discussing and improving the Work, but
+    excluding communication that is conspicuously marked or otherwise
+    designated in writing by the copyright owner as "Not a Contribution."
+
+    "Contributor" shall mean Licensor and any individual or Legal Entity
+    on behalf of whom a Contribution has been received by Licensor and
+    subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+    this License, each Contributor hereby grants to You a perpetual,
+    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+    copyright license to reproduce, prepare Derivative Works of,
+    publicly display, publicly perform, sublicense, and distribute the
+    Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+    this License, each Contributor hereby grants to You a perpetual,
+    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+    (except as stated in this section) patent license to make, have made,
+    use, offer to sell, sell, import, and otherwise transfer the Work,
+    where such license applies only to those patent claims licensable
+    by such Contributor that are necessarily infringed by their
+    Contribution(s) alone or by combination of their Contribution(s)
+    with the Work to which such Contribution(s) was submitted. If You
+    institute patent litigation against any entity (including a
+    cross-claim or counterclaim in a lawsuit) alleging that the Work
+    or a Contribution incorporated within the Work constitutes direct
+    or contributory patent infringement, then any patent licenses
+    granted to You under this License for that Work shall terminate
+    as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+    Work or Derivative Works thereof in any medium, with or without
+    modifications, and in Source or Object form, provided that You
+    meet the following conditions:
+
+    (a) You must give any other recipients of the Work or
+        Derivative Works a copy of this License; and
+
+    (b) You must cause any modified files to carry prominent notices
+        stating that You changed the files; and
+
+    (c) You must retain, in the Source form of any Derivative Works
+        that You distribute, all copyright, patent, trademark, and
+        attribution notices from the Source form of the Work,
+        excluding those notices that do not pertain to any part of
+        the Derivative Works; and
+
+    (d) If the Work includes a "NOTICE" text file as part of its
+        distribution, then any Derivative Works that You distribute must
+        include a readable copy of the attribution notices contained
+        within such NOTICE file, excluding those notices that do not
+        pertain to any part of the Derivative Works, in at least one
+        of the following places: within a NOTICE text file distributed
+        as part of the Derivative Works; within the Source form or
+        documentation, if provided along with the Derivative Works; or,
+        within a display generated by the Derivative Works, if and
+        wherever such third-party notices normally appear. The contents
+        of the NOTICE file are for informational purposes only and
+        do not modify the License. You may add Your own attribution
+        notices within Derivative Works that You distribute, alongside
+        or as an addendum to the NOTICE text from the Work, provided
+        that such additional attribution notices cannot be construed
+        as modifying the License.
+
+    You may add Your own copyright statement to Your modifications and
+    may provide additional or different license terms and conditions
+    for use, reproduction, or distribution of Your modifications, or
+    for any such Derivative Works as a whole, provided Your use,
+    reproduction, and distribution of the Work otherwise complies with
+    the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+    any Contribution intentionally submitted for inclusion in the Work
+    by You to the Licensor shall be under the terms and conditions of
+    this License, without any additional terms or conditions.
+    Notwithstanding the above, nothing herein shall supersede or modify
+    the terms of any separate license agreement you may have executed
+    with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+    names, trademarks, service marks, or product names of the Licensor,
+    except as required for reasonable and customary use in describing the
+    origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+    agreed to in writing, Licensor provides the Work (and each
+    Contributor provides its Contributions) on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+    implied, including, without limitation, any warranties or conditions
+    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+    PARTICULAR PURPOSE. You are solely responsible for determining the
+    appropriateness of using or redistributing the Work and assume any
+    risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+    whether in tort (including negligence), contract, or otherwise,
+    unless required by applicable law (such as deliberate and grossly
+    negligent acts) or agreed to in writing, shall any Contributor be
+    liable to You for damages, including any direct, indirect, special,
+    incidental, or consequential damages of any character arising as a
+    result of this License or out of the use or inability to use the
+    Work (including but not limited to damages for loss of goodwill,
+    work stoppage, computer failure or malfunction, or any and all
+    other commercial damages or losses), even if such Contributor
+    has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+    the Work or Derivative Works thereof, You may choose to offer,
+    and charge a fee for, acceptance of support, warranty, indemnity,
+    or other liability obligations and/or rights consistent with this
+    License. However, in accepting such obligations, You may act only
+    on Your own behalf and on Your sole responsibility, not on behalf
+    of any other Contributor, and only if You agree to indemnify,
+    defend, and hold each Contributor harmless for any liability
+    incurred by, or claims asserted against, such Contributor by reason
+    of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+    To apply the Apache License to your work, attach the following
+    boilerplate notice, with the fields enclosed by brackets "[]"
+    replaced with your own identifying information. (Don't include
+    the brackets!)  The text should be enclosed in the appropriate
+    comment syntax for the file format. We also recommend that a
+    file or class name and description of purpose be included on the
+    same "printed page" as the copyright notice for easier
+    identification within third-party archives.
+
+ Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ 
+
+
+tslib
+0BSD
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+zone.js
+MIT
+The MIT License
+
+Copyright (c) 2010-2022 Google LLC. https://angular.io/license
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/client/web/dist/assets/fonts/mat-icon-font.woff2 b/client/web/dist/assets/fonts/mat-icon-font.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..4dd26eeb45d90f51a1c3e7ec5654522499a03cd7
Binary files /dev/null and b/client/web/dist/assets/fonts/mat-icon-font.woff2 differ
diff --git a/client/web/dist/assets/scss/mat-icon.scss b/client/web/dist/assets/scss/mat-icon.scss
new file mode 100644
index 0000000000000000000000000000000000000000..61c3ad8c72f8a7d55cad55b0d0c2bd99fe9decf6
--- /dev/null
+++ b/client/web/dist/assets/scss/mat-icon.scss
@@ -0,0 +1,22 @@
+/* fallback */
+@font-face {
+  font-family: 'Material Icons';
+  font-style: normal;
+  font-weight: 400;
+  src: url('../fonts/mat-icon-font.woff2') format('woff2');
+}
+
+.material-icons {
+  font-family: 'Material Icons';
+  font-weight: normal;
+  font-style: normal;
+  font-size: 24px;
+  line-height: 1;
+  letter-spacing: normal;
+  text-transform: none;
+  display: inline-block;
+  white-space: nowrap;
+  word-wrap: normal;
+  direction: ltr;
+  -webkit-font-smoothing: antialiased;
+}
diff --git a/client/web/dist/favicon.ico b/client/web/dist/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..997406ad22c29aae95893fb3d666c30258a09537
Binary files /dev/null and b/client/web/dist/favicon.ico differ
diff --git a/client/web/dist/index.html b/client/web/dist/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..ad21037c24c1dc8a6f273d9ac0aa02755e211688
--- /dev/null
+++ b/client/web/dist/index.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html><html lang="en"><head>
+  <meta charset="utf-8">
+  <title>PsiViewer</title>
+  <base href="/">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+<style>.mat-typography{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-typography{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}html,body{height:100%}body{margin:0;font-family:Roboto,Helvetica Neue,sans-serif}</style><link rel="stylesheet" href="styles.4321c6214ef1a9a7.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.4321c6214ef1a9a7.css"></noscript></head>
+<body class="mat-typography">
+  <app-root></app-root>
+<script src="runtime.16fa3418f03cd751.js" type="module"></script><script src="polyfills.fdaa14aa9967abe5.js" type="module"></script><script src="main.0ac5708dde926afc.js" type="module"></script>
+
+</body></html>
\ No newline at end of file
diff --git a/client/web/dist/main.0ac5708dde926afc.js b/client/web/dist/main.0ac5708dde926afc.js
new file mode 100644
index 0000000000000000000000000000000000000000..5755156b10fe6ba40f5ed236502075da7cd3159f
--- /dev/null
+++ b/client/web/dist/main.0ac5708dde926afc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkPsiViewer=self.webpackChunkPsiViewer||[]).push([[179],{541:()=>{function te(n){return"function"==typeof n}function qi(n){const t=n(r=>{Error.call(r),r.stack=(new Error).stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}const yo=qi(n=>function(t){n(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((r,i)=>`${i+1}) ${r.toString()}`).join("\n  ")}`:"",this.name="UnsubscriptionError",this.errors=t});function Wi(n,e){if(n){const t=n.indexOf(e);0<=t&&n.splice(t,1)}}class ot{constructor(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._teardowns=null}unsubscribe(){let e;if(!this.closed){this.closed=!0;const{_parentage:t}=this;if(t)if(this._parentage=null,Array.isArray(t))for(const s of t)s.remove(this);else t.remove(this);const{initialTeardown:r}=this;if(te(r))try{r()}catch(s){e=s instanceof yo?s.errors:[s]}const{_teardowns:i}=this;if(i){this._teardowns=null;for(const s of i)try{Xf(s)}catch(o){e=null!=e?e:[],o instanceof yo?e=[...e,...o.errors]:e.push(o)}}if(e)throw new yo(e)}}add(e){var t;if(e&&e!==this)if(this.closed)Xf(e);else{if(e instanceof ot){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._teardowns=null!==(t=this._teardowns)&&void 0!==t?t:[]).push(e)}}_hasParent(e){const{_parentage:t}=this;return t===e||Array.isArray(t)&&t.includes(e)}_addParent(e){const{_parentage:t}=this;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e}_removeParent(e){const{_parentage:t}=this;t===e?this._parentage=null:Array.isArray(t)&&Wi(t,e)}remove(e){const{_teardowns:t}=this;t&&Wi(t,e),e instanceof ot&&e._removeParent(this)}}ot.EMPTY=(()=>{const n=new ot;return n.closed=!0,n})();const Zf=ot.EMPTY;function Yf(n){return n instanceof ot||n&&"closed"in n&&te(n.remove)&&te(n.add)&&te(n.unsubscribe)}function Xf(n){te(n)?n():n.unsubscribe()}const ar={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},_o={setTimeout(...n){const{delegate:e}=_o;return((null==e?void 0:e.setTimeout)||setTimeout)(...n)},clearTimeout(n){const{delegate:e}=_o;return((null==e?void 0:e.clearTimeout)||clearTimeout)(n)},delegate:void 0};function Jf(n){_o.setTimeout(()=>{const{onUnhandledError:e}=ar;if(!e)throw n;e(n)})}function Gi(){}const RE=kl("C",void 0,void 0);function kl(n,e,t){return{kind:n,value:e,error:t}}let lr=null;function vo(n){if(ar.useDeprecatedSynchronousErrorHandling){const e=!lr;if(e&&(lr={errorThrown:!1,error:null}),n(),e){const{errorThrown:t,error:r}=lr;if(lr=null,t)throw r}}else n()}class Pl extends ot{constructor(e){super(),this.isStopped=!1,e?(this.destination=e,Yf(e)&&e.add(this)):this.destination=PE}static create(e,t,r){return new Ll(e,t,r)}next(e){this.isStopped?jl(function FE(n){return kl("N",n,void 0)}(e),this):this._next(e)}error(e){this.isStopped?jl(function OE(n){return kl("E",void 0,n)}(e),this):(this.isStopped=!0,this._error(e))}complete(){this.isStopped?jl(RE,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(e){this.destination.next(e)}_error(e){try{this.destination.error(e)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}class Ll extends Pl{constructor(e,t,r){let i;if(super(),te(e))i=e;else if(e){let s;({next:i,error:t,complete:r}=e),this&&ar.useDeprecatedNextContext?(s=Object.create(e),s.unsubscribe=()=>this.unsubscribe()):s=e,i=null==i?void 0:i.bind(s),t=null==t?void 0:t.bind(s),r=null==r?void 0:r.bind(s)}this.destination={next:i?Bl(i):Gi,error:Bl(null!=t?t:eh),complete:r?Bl(r):Gi}}}function Bl(n,e){return(...t)=>{try{n(...t)}catch(r){ar.useDeprecatedSynchronousErrorHandling?function kE(n){ar.useDeprecatedSynchronousErrorHandling&&lr&&(lr.errorThrown=!0,lr.error=n)}(r):Jf(r)}}}function eh(n){throw n}function jl(n,e){const{onStoppedNotification:t}=ar;t&&_o.setTimeout(()=>t(n,e))}const PE={closed:!0,next:Gi,error:eh,complete:Gi},Vl="function"==typeof Symbol&&Symbol.observable||"@@observable";function Ln(n){return n}let ae=(()=>{class n{constructor(t){t&&(this._subscribe=t)}lift(t){const r=new n;return r.source=this,r.operator=t,r}subscribe(t,r,i){const s=function BE(n){return n&&n instanceof Pl||function LE(n){return n&&te(n.next)&&te(n.error)&&te(n.complete)}(n)&&Yf(n)}(t)?t:new Ll(t,r,i);return vo(()=>{const{operator:o,source:a}=this;s.add(o?o.call(s,a):a?this._subscribe(s):this._trySubscribe(s))}),s}_trySubscribe(t){try{return this._subscribe(t)}catch(r){t.error(r)}}forEach(t,r){return new(r=nh(r))((i,s)=>{let o;o=this.subscribe(a=>{try{t(a)}catch(l){s(l),null==o||o.unsubscribe()}},s,i)})}_subscribe(t){var r;return null===(r=this.source)||void 0===r?void 0:r.subscribe(t)}[Vl](){return this}pipe(...t){return function th(n){return 0===n.length?Ln:1===n.length?n[0]:function(t){return n.reduce((r,i)=>i(r),t)}}(t)(this)}toPromise(t){return new(t=nh(t))((r,i)=>{let s;this.subscribe(o=>s=o,o=>i(o),()=>r(s))})}}return n.create=e=>new n(e),n})();function nh(n){var e;return null!==(e=null!=n?n:ar.Promise)&&void 0!==e?e:Promise}const jE=qi(n=>function(){n(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Le=(()=>{class n extends ae{constructor(){super(),this.closed=!1,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){const r=new rh(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new jE}next(t){vo(()=>{if(this._throwIfClosed(),!this.isStopped){const r=this.observers.slice();for(const i of r)i.next(t)}})}error(t){vo(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;const{observers:r}=this;for(;r.length;)r.shift().error(t)}})}complete(){vo(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:t}=this;for(;t.length;)t.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=null}get observed(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){const{hasError:r,isStopped:i,observers:s}=this;return r||i?Zf:(s.push(t),new ot(()=>Wi(s,t)))}_checkFinalizedStatuses(t){const{hasError:r,thrownError:i,isStopped:s}=this;r?t.error(i):s&&t.complete()}asObservable(){const t=new ae;return t.source=this,t}}return n.create=(e,t)=>new rh(e,t),n})();class rh extends Le{constructor(e,t){super(),this.destination=e,this.source=t}next(e){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===r||r.call(t,e)}error(e){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===r||r.call(t,e)}complete(){var e,t;null===(t=null===(e=this.destination)||void 0===e?void 0:e.complete)||void 0===t||t.call(e)}_subscribe(e){var t,r;return null!==(r=null===(t=this.source)||void 0===t?void 0:t.subscribe(e))&&void 0!==r?r:Zf}}function ih(n){return te(null==n?void 0:n.lift)}function Te(n){return e=>{if(ih(e))return e.lift(function(t){try{return n(t,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}class De extends Pl{constructor(e,t,r,i,s){super(e),this.onFinalize=s,this._next=t?function(o){try{t(o)}catch(a){e.error(a)}}:super._next,this._error=i?function(o){try{i(o)}catch(a){e.error(a)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(o){e.error(o)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var e;const{closed:t}=this;super.unsubscribe(),!t&&(null===(e=this.onFinalize)||void 0===e||e.call(this))}}function G(n,e){return Te((t,r)=>{let i=0;t.subscribe(new De(r,s=>{r.next(n.call(e,s,i++))}))})}function ur(n){return this instanceof ur?(this.v=n,this):new ur(n)}function UE(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i,r=t.apply(n,e||[]),s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(f){r[f]&&(i[f]=function(h){return new Promise(function(p,g){s.push([f,h,p,g])>1||a(f,h)})})}function a(f,h){try{!function l(f){f.value instanceof ur?Promise.resolve(f.value.v).then(u,c):d(s[0][2],f)}(r[f](h))}catch(p){d(s[0][3],p)}}function u(f){a("next",f)}function c(f){a("throw",f)}function d(f,h){f(h),s.shift(),s.length&&a(s[0][0],s[0][1])}}function $E(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,e=n[Symbol.asyncIterator];return e?e.call(n):(n=function ah(n){var e="function"==typeof Symbol&&Symbol.iterator,t=e&&n[e],r=0;if(t)return t.call(n);if(n&&"number"==typeof n.length)return{next:function(){return n&&r>=n.length&&(n=void 0),{value:n&&n[r++],done:!n}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}(n),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(s){t[s]=n[s]&&function(o){return new Promise(function(a,l){!function i(s,o,a,l){Promise.resolve(l).then(function(u){s({value:u,done:a})},o)}(a,l,(o=n[s](o)).done,o.value)})}}}const lh=n=>n&&"number"==typeof n.length&&"function"!=typeof n;function uh(n){return te(null==n?void 0:n.then)}function ch(n){return te(n[Vl])}function dh(n){return Symbol.asyncIterator&&te(null==n?void 0:n[Symbol.asyncIterator])}function fh(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 hh=function qE(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function ph(n){return te(null==n?void 0:n[hh])}function gh(n){return UE(this,arguments,function*(){const t=n.getReader();try{for(;;){const{value:r,done:i}=yield ur(t.read());if(i)return yield ur(void 0);yield yield ur(r)}}finally{t.releaseLock()}})}function mh(n){return te(null==n?void 0:n.getReader)}function Pt(n){if(n instanceof ae)return n;if(null!=n){if(ch(n))return function WE(n){return new ae(e=>{const t=n[Vl]();if(te(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(n);if(lh(n))return function GE(n){return new ae(e=>{for(let t=0;t<n.length&&!e.closed;t++)e.next(n[t]);e.complete()})}(n);if(uh(n))return function KE(n){return new ae(e=>{n.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,Jf)})}(n);if(dh(n))return yh(n);if(ph(n))return function QE(n){return new ae(e=>{for(const t of n)if(e.next(t),e.closed)return;e.complete()})}(n);if(mh(n))return function ZE(n){return yh(gh(n))}(n)}throw fh(n)}function yh(n){return new ae(e=>{(function YE(n,e){var t,r,i,s;return function VE(n,e,t,r){return new(t||(t=Promise))(function(s,o){function a(c){try{u(r.next(c))}catch(d){o(d)}}function l(c){try{u(r.throw(c))}catch(d){o(d)}}function u(c){c.done?s(c.value):function i(s){return s instanceof t?s:new t(function(o){o(s)})}(c.value).then(a,l)}u((r=r.apply(n,e||[])).next())})}(this,void 0,void 0,function*(){try{for(t=$E(n);!(r=yield t.next()).done;)if(e.next(r.value),e.closed)return}catch(o){i={error:o}}finally{try{r&&!r.done&&(s=t.return)&&(yield s.call(t))}finally{if(i)throw i.error}}e.complete()})})(n,e).catch(t=>e.error(t))})}function mn(n,e,t,r=0,i=!1){const s=e.schedule(function(){t(),i?n.add(this.schedule(null,r)):this.unsubscribe()},r);if(n.add(s),!i)return s}function xe(n,e,t=1/0){return te(e)?xe((r,i)=>G((s,o)=>e(r,s,i,o))(Pt(n(r,i))),t):("number"==typeof e&&(t=e),Te((r,i)=>function XE(n,e,t,r,i,s,o,a){const l=[];let u=0,c=0,d=!1;const f=()=>{d&&!l.length&&!u&&e.complete()},h=g=>u<r?p(g):l.push(g),p=g=>{s&&e.next(g),u++;let y=!1;Pt(t(g,c++)).subscribe(new De(e,_=>{null==i||i(_),s?h(_):e.next(_)},()=>{y=!0},void 0,()=>{if(y)try{for(u--;l.length&&u<r;){const _=l.shift();o?mn(e,o,()=>p(_)):p(_)}f()}catch(_){e.error(_)}}))};return n.subscribe(new De(e,h,()=>{d=!0,f()})),()=>{null==a||a()}}(r,i,n,t)))}function Ki(n=1/0){return xe(Ln,n)}const yn=new ae(n=>n.complete());function Ul(n){return n[n.length-1]}function _h(n){return te(Ul(n))?n.pop():void 0}function Qi(n){return function eC(n){return n&&te(n.schedule)}(Ul(n))?n.pop():void 0}function vh(n,e=0){return Te((t,r)=>{t.subscribe(new De(r,i=>mn(r,n,()=>r.next(i),e),()=>mn(r,n,()=>r.complete(),e),i=>mn(r,n,()=>r.error(i),e)))})}function bh(n,e=0){return Te((t,r)=>{r.add(n.schedule(()=>t.subscribe(r),e))})}function Dh(n,e){if(!n)throw new Error("Iterable cannot be null");return new ae(t=>{mn(t,e,()=>{const r=n[Symbol.asyncIterator]();mn(t,e,()=>{r.next().then(i=>{i.done?t.complete():t.next(i.value)})},0,!0)})})}function Fe(n,e){return e?function aC(n,e){if(null!=n){if(ch(n))return function nC(n,e){return Pt(n).pipe(bh(e),vh(e))}(n,e);if(lh(n))return function iC(n,e){return new ae(t=>{let r=0;return e.schedule(function(){r===n.length?t.complete():(t.next(n[r++]),t.closed||this.schedule())})})}(n,e);if(uh(n))return function rC(n,e){return Pt(n).pipe(bh(e),vh(e))}(n,e);if(dh(n))return Dh(n,e);if(ph(n))return function sC(n,e){return new ae(t=>{let r;return mn(t,e,()=>{r=n[hh](),mn(t,e,()=>{let i,s;try{({value:i,done:s}=r.next())}catch(o){return void t.error(o)}s?t.complete():t.next(i)},0,!0)}),()=>te(null==r?void 0:r.return)&&r.return()})}(n,e);if(mh(n))return function oC(n,e){return Dh(gh(n),e)}(n,e)}throw fh(n)}(n,e):Pt(n)}function Eh(...n){const e=Qi(n),t=function tC(n,e){return"number"==typeof Ul(n)?n.pop():e}(n,1/0),r=n;return r.length?1===r.length?Pt(r[0]):Ki(t)(Fe(r,e)):yn}function Br(n){return n<=0?()=>yn:Te((e,t)=>{let r=0;e.subscribe(new De(t,i=>{++r<=n&&(t.next(i),n<=r&&t.complete())}))})}function Ch(n={}){const{connector:e=(()=>new Le),resetOnError:t=!0,resetOnComplete:r=!0,resetOnRefCountZero:i=!0}=n;return s=>{let o=null,a=null,l=null,u=0,c=!1,d=!1;const f=()=>{null==a||a.unsubscribe(),a=null},h=()=>{f(),o=l=null,c=d=!1},p=()=>{const g=o;h(),null==g||g.unsubscribe()};return Te((g,y)=>{u++,!d&&!c&&f();const _=l=null!=l?l:e();y.add(()=>{u--,0===u&&!d&&!c&&(a=$l(p,i))}),_.subscribe(y),o||(o=new Ll({next:m=>_.next(m),error:m=>{d=!0,f(),a=$l(h,t,m),_.error(m)},complete:()=>{c=!0,f(),a=$l(h,r),_.complete()}}),Fe(g).subscribe(o))})(s)}}function $l(n,e,...t){return!0===e?(n(),null):!1===e?null:e(...t).pipe(Br(1)).subscribe(()=>n())}function re(n){for(let e in n)if(n[e]===re)return e;throw Error("Could not find renamed property on target object.")}function zl(n,e){for(const t in e)e.hasOwnProperty(t)&&!n.hasOwnProperty(t)&&(n[t]=e[t])}function J(n){if("string"==typeof n)return n;if(Array.isArray(n))return"["+n.map(J).join(", ")+"]";if(null==n)return""+n;if(n.overriddenName)return`${n.overriddenName}`;if(n.name)return`${n.name}`;const e=n.toString();if(null==e)return""+e;const t=e.indexOf("\n");return-1===t?e:e.substring(0,t)}function ql(n,e){return null==n||""===n?null===e?"":e:null==e||""===e?n:n+" "+e}const lC=re({__forward_ref__:re});function Wl(n){return n.__forward_ref__=Wl,n.toString=function(){return J(this())},n}function V(n){return wh(n)?n():n}function wh(n){return"function"==typeof n&&n.hasOwnProperty(lC)&&n.__forward_ref__===Wl}class Y extends Error{constructor(e,t){super(function Gl(n,e){return`NG0${Math.abs(n)}${e?": "+e:""}`}(e,t)),this.code=e}}function P(n){return"string"==typeof n?n:null==n?"":String(n)}function We(n){return"function"==typeof n?n.name||n.toString():"object"==typeof n&&null!=n&&"function"==typeof n.type?n.type.name||n.type.toString():P(n)}function bo(n,e){const t=e?` in ${e}`:"";throw new Y(-201,`No provider for ${We(n)} found${t}`)}function lt(n,e){null==n&&function le(n,e,t,r){throw new Error(`ASSERTION ERROR: ${n}`+(null==r?"":` [Expected=> ${t} ${r} ${e} <=Actual]`))}(e,n,null,"!=")}function F(n){return{token:n.token,providedIn:n.providedIn||null,factory:n.factory,value:void 0}}function Be(n){return{providers:n.providers||[],imports:n.imports||[]}}function Kl(n){return Th(n,Do)||Th(n,Sh)}function Th(n,e){return n.hasOwnProperty(e)?n[e]:null}function Mh(n){return n&&(n.hasOwnProperty(Ql)||n.hasOwnProperty(gC))?n[Ql]:null}const Do=re({\u0275prov:re}),Ql=re({\u0275inj:re}),Sh=re({ngInjectableDef:re}),gC=re({ngInjectorDef:re});var B=(()=>((B=B||{})[B.Default=0]="Default",B[B.Host=1]="Host",B[B.Self=2]="Self",B[B.SkipSelf=4]="SkipSelf",B[B.Optional=8]="Optional",B))();let Zl;function Bn(n){const e=Zl;return Zl=n,e}function Ih(n,e,t){const r=Kl(n);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:t&B.Optional?null:void 0!==e?e:void bo(J(n),"Injector")}function jn(n){return{toString:n}.toString()}var Lt=(()=>((Lt=Lt||{})[Lt.OnPush=0]="OnPush",Lt[Lt.Default=1]="Default",Lt))(),Bt=(()=>{return(n=Bt||(Bt={}))[n.Emulated=0]="Emulated",n[n.None=2]="None",n[n.ShadowDom=3]="ShadowDom",Bt;var n})();const yC="undefined"!=typeof globalThis&&globalThis,_C="undefined"!=typeof window&&window,vC="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,ne=yC||"undefined"!=typeof global&&global||_C||vC,jr={},ie=[],Eo=re({\u0275cmp:re}),Yl=re({\u0275dir:re}),Xl=re({\u0275pipe:re}),Ah=re({\u0275mod:re}),vn=re({\u0275fac:re}),Zi=re({__NG_ELEMENT_ID__:re});let bC=0;function Vn(n){return jn(()=>{const t={},r={type:n.type,providersResolver:null,decls:n.decls,vars:n.vars,factory:null,template:n.template||null,consts:n.consts||null,ngContentSelectors:n.ngContentSelectors,hostBindings:n.hostBindings||null,hostVars:n.hostVars||0,hostAttrs:n.hostAttrs||null,contentQueries:n.contentQueries||null,declaredInputs:t,inputs:null,outputs:null,exportAs:n.exportAs||null,onPush:n.changeDetection===Lt.OnPush,directiveDefs:null,pipeDefs:null,selectors:n.selectors||ie,viewQuery:n.viewQuery||null,features:n.features||null,data:n.data||{},encapsulation:n.encapsulation||Bt.Emulated,id:"c",styles:n.styles||ie,_:null,setInput:null,schemas:n.schemas||null,tView:null},i=n.directives,s=n.features,o=n.pipes;return r.id+=bC++,r.inputs=Oh(n.inputs,t),r.outputs=Oh(n.outputs),s&&s.forEach(a=>a(r)),r.directiveDefs=i?()=>("function"==typeof i?i():i).map(xh):null,r.pipeDefs=o?()=>("function"==typeof o?o():o).map(Nh):null,r})}function xh(n){return je(n)||function Hn(n){return n[Yl]||null}(n)}function Nh(n){return function cr(n){return n[Xl]||null}(n)}const Rh={};function Ge(n){return jn(()=>{const e={type:n.type,bootstrap:n.bootstrap||ie,declarations:n.declarations||ie,imports:n.imports||ie,exports:n.exports||ie,transitiveCompileScopes:null,schemas:n.schemas||null,id:n.id||null};return null!=n.id&&(Rh[n.id]=n.type),e})}function Oh(n,e){if(null==n)return jr;const t={};for(const r in n)if(n.hasOwnProperty(r)){let i=n[r],s=i;Array.isArray(i)&&(s=i[1],i=i[0]),t[i]=r,e&&(e[i]=s)}return t}const ee=Vn;function je(n){return n[Eo]||null}function wt(n,e){const t=n[Ah]||null;if(!t&&!0===e)throw new Error(`Type ${J(n)} does not have '\u0275mod' property.`);return t}const H=11;function Xt(n){return Array.isArray(n)&&"object"==typeof n[1]}function Vt(n){return Array.isArray(n)&&!0===n[1]}function tu(n){return 0!=(8&n.flags)}function Mo(n){return 2==(2&n.flags)}function So(n){return 1==(1&n.flags)}function Ht(n){return null!==n.template}function MC(n){return 0!=(512&n[2])}function pr(n,e){return n.hasOwnProperty(vn)?n[vn]:null}class AC{constructor(e,t,r){this.previousValue=e,this.currentValue=t,this.firstChange=r}isFirstChange(){return this.firstChange}}function kh(n){return n.type.prototype.ngOnChanges&&(n.setInput=NC),xC}function xC(){const n=Lh(this),e=null==n?void 0:n.current;if(e){const t=n.previous;if(t===jr)n.previous=e;else for(let r in e)t[r]=e[r];n.current=null,this.ngOnChanges(e)}}function NC(n,e,t,r){const i=Lh(n)||function RC(n,e){return n[Ph]=e}(n,{previous:jr,current:null}),s=i.current||(i.current={}),o=i.previous,a=this.declaredInputs[t],l=o[a];s[a]=new AC(l&&l.currentValue,e,o===jr),n[r]=e}const Ph="__ngSimpleChanges__";function Lh(n){return n[Ph]||null}let iu;function me(n){return!!n.listen}const Vh={createRenderer:(n,e)=>function su(){return void 0!==iu?iu:"undefined"!=typeof document?document:void 0}()};function Ee(n){for(;Array.isArray(n);)n=n[0];return n}function Io(n,e){return Ee(e[n])}function St(n,e){return Ee(e[n.index])}function ou(n,e){return n.data[e]}function ct(n,e){const t=e[n];return Xt(t)?t:t[0]}function Hh(n){return 4==(4&n[2])}function au(n){return 128==(128&n[2])}function Un(n,e){return null==e?null:n[e]}function Uh(n){n[18]=0}function lu(n,e){n[5]+=e;let t=n,r=n[3];for(;null!==r&&(1===e&&1===t[5]||-1===e&&0===t[5]);)r[5]+=e,t=r,r=r[3]}const k={lFrame:Zh(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function $h(){return k.bindingsEnabled}function v(){return k.lFrame.lView}function K(){return k.lFrame.tView}function Me(){let n=zh();for(;null!==n&&64===n.type;)n=n.parent;return n}function zh(){return k.lFrame.currentTNode}function Jt(n,e){const t=k.lFrame;t.currentTNode=n,t.isParent=e}function uu(){return k.lFrame.isParent}function cu(){k.lFrame.isParent=!1}function Ao(){return k.isInCheckNoChangesMode}function xo(n){k.isInCheckNoChangesMode=n}function qr(){return k.lFrame.bindingIndex++}function GC(n,e){const t=k.lFrame;t.bindingIndex=t.bindingRootIndex=n,du(e)}function du(n){k.lFrame.currentDirectiveIndex=n}function Gh(){return k.lFrame.currentQueryIndex}function hu(n){k.lFrame.currentQueryIndex=n}function QC(n){const e=n[1];return 2===e.type?e.declTNode:1===e.type?n[6]:null}function Kh(n,e,t){if(t&B.SkipSelf){let i=e,s=n;for(;!(i=i.parent,null!==i||t&B.Host||(i=QC(s),null===i||(s=s[15],10&i.type))););if(null===i)return!1;e=i,n=s}const r=k.lFrame=Qh();return r.currentTNode=e,r.lView=n,!0}function No(n){const e=Qh(),t=n[1];k.lFrame=e,e.currentTNode=t.firstChild,e.lView=n,e.tView=t,e.contextLView=n,e.bindingIndex=t.bindingStartIndex,e.inI18n=!1}function Qh(){const n=k.lFrame,e=null===n?null:n.child;return null===e?Zh(n):e}function Zh(n){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:n,child:null,inI18n:!1};return null!==n&&(n.child=e),e}function Yh(){const n=k.lFrame;return k.lFrame=n.parent,n.currentTNode=null,n.lView=null,n}const Xh=Yh;function Ro(){const n=Yh();n.isParent=!0,n.tView=null,n.selectedIndex=-1,n.contextLView=null,n.elementDepthCount=0,n.currentDirectiveIndex=-1,n.currentNamespace=null,n.bindingRootIndex=-1,n.bindingIndex=-1,n.currentQueryIndex=0}function Qe(){return k.lFrame.selectedIndex}function $n(n){k.lFrame.selectedIndex=n}function ye(){const n=k.lFrame;return ou(n.tView,n.selectedIndex)}function Oo(n,e){for(let t=e.directiveStart,r=e.directiveEnd;t<r;t++){const s=n.data[t].type.prototype,{ngAfterContentInit:o,ngAfterContentChecked:a,ngAfterViewInit:l,ngAfterViewChecked:u,ngOnDestroy:c}=s;o&&(n.contentHooks||(n.contentHooks=[])).push(-t,o),a&&((n.contentHooks||(n.contentHooks=[])).push(t,a),(n.contentCheckHooks||(n.contentCheckHooks=[])).push(t,a)),l&&(n.viewHooks||(n.viewHooks=[])).push(-t,l),u&&((n.viewHooks||(n.viewHooks=[])).push(t,u),(n.viewCheckHooks||(n.viewCheckHooks=[])).push(t,u)),null!=c&&(n.destroyHooks||(n.destroyHooks=[])).push(t,c)}}function Fo(n,e,t){Jh(n,e,3,t)}function ko(n,e,t,r){(3&n[2])===t&&Jh(n,e,t,r)}function pu(n,e){let t=n[2];(3&t)===e&&(t&=2047,t+=1,n[2]=t)}function Jh(n,e,t,r){const s=null!=r?r:-1,o=e.length-1;let a=0;for(let l=void 0!==r?65535&n[18]:0;l<o;l++)if("number"==typeof e[l+1]){if(a=e[l],null!=r&&a>=r)break}else e[l]<0&&(n[18]+=65536),(a<s||-1==s)&&(iw(n,t,e,l),n[18]=(4294901760&n[18])+l+2),l++}function iw(n,e,t,r){const i=t[r]<0,s=t[r+1],a=n[i?-t[r]:t[r]];if(i){if(n[2]>>11<n[18]>>16&&(3&n[2])===e){n[2]+=2048;try{s.call(a)}finally{}}}else try{s.call(a)}finally{}}class ts{constructor(e,t,r){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=r}}function Po(n,e,t){const r=me(n);let i=0;for(;i<t.length;){const s=t[i];if("number"==typeof s){if(0!==s)break;i++;const o=t[i++],a=t[i++],l=t[i++];r?n.setAttribute(e,a,l,o):e.setAttributeNS(o,a,l)}else{const o=s,a=t[++i];mu(o)?r&&n.setProperty(e,o,a):r?n.setAttribute(e,o,a):e.setAttribute(o,a),i++}}return i}function ep(n){return 3===n||4===n||6===n}function mu(n){return 64===n.charCodeAt(0)}function Lo(n,e){if(null!==e&&0!==e.length)if(null===n||0===n.length)n=e.slice();else{let t=-1;for(let r=0;r<e.length;r++){const i=e[r];"number"==typeof i?t=i:0===t||tp(n,t,i,null,-1===t||2===t?e[++r]:null)}}return n}function tp(n,e,t,r,i){let s=0,o=n.length;if(-1===e)o=-1;else for(;s<n.length;){const a=n[s++];if("number"==typeof a){if(a===e){o=-1;break}if(a>e){o=s-1;break}}}for(;s<n.length;){const a=n[s];if("number"==typeof a)break;if(a===t){if(null===r)return void(null!==i&&(n[s+1]=i));if(r===n[s+1])return void(n[s+2]=i)}s++,null!==r&&s++,null!==i&&s++}-1!==o&&(n.splice(o,0,e),s=o+1),n.splice(s++,0,t),null!==r&&n.splice(s++,0,r),null!==i&&n.splice(s++,0,i)}function np(n){return-1!==n}function Wr(n){return 32767&n}function Gr(n,e){let t=function uw(n){return n>>16}(n),r=e;for(;t>0;)r=r[15],t--;return r}let yu=!0;function Bo(n){const e=yu;return yu=n,e}let cw=0;function rs(n,e){const t=vu(n,e);if(-1!==t)return t;const r=e[1];r.firstCreatePass&&(n.injectorIndex=e.length,_u(r.data,n),_u(e,null),_u(r.blueprint,null));const i=jo(n,e),s=n.injectorIndex;if(np(i)){const o=Wr(i),a=Gr(i,e),l=a[1].data;for(let u=0;u<8;u++)e[s+u]=a[o+u]|l[o+u]}return e[s+8]=i,s}function _u(n,e){n.push(0,0,0,0,0,0,0,0,e)}function vu(n,e){return-1===n.injectorIndex||n.parent&&n.parent.injectorIndex===n.injectorIndex||null===e[n.injectorIndex+8]?-1:n.injectorIndex}function jo(n,e){if(n.parent&&-1!==n.parent.injectorIndex)return n.parent.injectorIndex;let t=0,r=null,i=e;for(;null!==i;){const s=i[1],o=s.type;if(r=2===o?s.declTNode:1===o?i[6]:null,null===r)return-1;if(t++,i=i[15],-1!==r.injectorIndex)return r.injectorIndex|t<<16}return-1}function Vo(n,e,t){!function dw(n,e,t){let r;"string"==typeof t?r=t.charCodeAt(0)||0:t.hasOwnProperty(Zi)&&(r=t[Zi]),null==r&&(r=t[Zi]=cw++);const i=255&r;e.data[n+(i>>5)]|=1<<i}(n,e,t)}function sp(n,e,t){if(t&B.Optional)return n;bo(e,"NodeInjector")}function op(n,e,t,r){if(t&B.Optional&&void 0===r&&(r=null),0==(t&(B.Self|B.Host))){const i=n[9],s=Bn(void 0);try{return i?i.get(e,r,t&B.Optional):Ih(e,r,t&B.Optional)}finally{Bn(s)}}return sp(r,e,t)}function ap(n,e,t,r=B.Default,i){if(null!==n){const s=function gw(n){if("string"==typeof n)return n.charCodeAt(0)||0;const e=n.hasOwnProperty(Zi)?n[Zi]:void 0;return"number"==typeof e?e>=0?255&e:hw:e}(t);if("function"==typeof s){if(!Kh(e,n,r))return r&B.Host?sp(i,t,r):op(e,t,r,i);try{const o=s(r);if(null!=o||r&B.Optional)return o;bo(t)}finally{Xh()}}else if("number"==typeof s){let o=null,a=vu(n,e),l=-1,u=r&B.Host?e[16][6]:null;for((-1===a||r&B.SkipSelf)&&(l=-1===a?jo(n,e):e[a+8],-1!==l&&cp(r,!1)?(o=e[1],a=Wr(l),e=Gr(l,e)):a=-1);-1!==a;){const c=e[1];if(up(s,a,c.data)){const d=pw(a,e,t,o,r,u);if(d!==lp)return d}l=e[a+8],-1!==l&&cp(r,e[1].data[a+8]===u)&&up(s,a,e)?(o=c,a=Wr(l),e=Gr(l,e)):a=-1}}}return op(e,t,r,i)}const lp={};function hw(){return new Kr(Me(),v())}function pw(n,e,t,r,i,s){const o=e[1],a=o.data[n+8],c=Ho(a,o,t,null==r?Mo(a)&&yu:r!=o&&0!=(3&a.type),i&B.Host&&s===a);return null!==c?is(e,o,c,a):lp}function Ho(n,e,t,r,i){const s=n.providerIndexes,o=e.data,a=1048575&s,l=n.directiveStart,c=s>>20,f=i?a+c:n.directiveEnd;for(let h=r?a:a+c;h<f;h++){const p=o[h];if(h<l&&t===p||h>=l&&p.type===t)return h}if(i){const h=o[l];if(h&&Ht(h)&&h.type===t)return l}return null}function is(n,e,t,r){let i=n[t];const s=e.data;if(function sw(n){return n instanceof ts}(i)){const o=i;o.resolving&&function uC(n,e){const t=e?`. Dependency path: ${e.join(" > ")} > ${n}`:"";throw new Y(-200,`Circular dependency in DI detected for ${n}${t}`)}(We(s[t]));const a=Bo(o.canSeeViewProviders);o.resolving=!0;const l=o.injectImpl?Bn(o.injectImpl):null;Kh(n,r,B.Default);try{i=n[t]=o.factory(void 0,s,n,r),e.firstCreatePass&&t>=r.directiveStart&&function rw(n,e,t){const{ngOnChanges:r,ngOnInit:i,ngDoCheck:s}=e.type.prototype;if(r){const o=kh(e);(t.preOrderHooks||(t.preOrderHooks=[])).push(n,o),(t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n,o)}i&&(t.preOrderHooks||(t.preOrderHooks=[])).push(0-n,i),s&&((t.preOrderHooks||(t.preOrderHooks=[])).push(n,s),(t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n,s))}(t,s[t],e)}finally{null!==l&&Bn(l),Bo(a),o.resolving=!1,Xh()}}return i}function up(n,e,t){return!!(t[e+(n>>5)]&1<<n)}function cp(n,e){return!(n&B.Self||n&B.Host&&e)}class Kr{constructor(e,t){this._tNode=e,this._lView=t}get(e,t,r){return ap(this._tNode,this._lView,e,r,t)}}function ss(n){return jn(()=>{const e=n.prototype.constructor,t=e[vn]||bu(e),r=Object.prototype;let i=Object.getPrototypeOf(n.prototype).constructor;for(;i&&i!==r;){const s=i[vn]||bu(i);if(s&&s!==t)return s;i=Object.getPrototypeOf(i)}return s=>new s})}function bu(n){return wh(n)?()=>{const e=bu(V(n));return e&&e()}:pr(n)}function qn(n){return function fw(n,e){if("class"===e)return n.classes;if("style"===e)return n.styles;const t=n.attrs;if(t){const r=t.length;let i=0;for(;i<r;){const s=t[i];if(ep(s))break;if(0===s)i+=2;else if("number"==typeof s)for(i++;i<r&&"string"==typeof t[i];)i++;else{if(s===e)return t[i+1];i+=2}}}return null}(Me(),n)}const Zr="__parameters__";function Xr(n,e,t){return jn(()=>{const r=function Du(n){return function(...t){if(n){const r=n(...t);for(const i in r)this[i]=r[i]}}}(e);function i(...s){if(this instanceof i)return r.apply(this,s),this;const o=new i(...s);return a.annotation=o,a;function a(l,u,c){const d=l.hasOwnProperty(Zr)?l[Zr]:Object.defineProperty(l,Zr,{value:[]})[Zr];for(;d.length<=c;)d.push(null);return(d[c]=d[c]||[]).push(o),l}}return t&&(i.prototype=Object.create(t.prototype)),i.prototype.ngMetadataName=n,i.annotationCls=i,i})}class I{constructor(e,t){this._desc=e,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\u0275prov=F({token:this,providedIn:t.providedIn||"root",factory:t.factory}))}toString(){return`InjectionToken ${this._desc}`}}const yw=new I("AnalyzeForEntryComponents");function It(n,e){void 0===e&&(e=n);for(let t=0;t<n.length;t++){let r=n[t];Array.isArray(r)?(e===n&&(e=n.slice(0,t)),It(r,e)):e!==n&&e.push(r)}return e}function en(n,e){n.forEach(t=>Array.isArray(t)?en(t,e):e(t))}function fp(n,e,t){e>=n.length?n.push(t):n.splice(e,0,t)}function Uo(n,e){return e>=n.length-1?n.pop():n.splice(e,1)[0]}function ls(n,e){const t=[];for(let r=0;r<n;r++)t.push(e);return t}function dt(n,e,t){let r=Jr(n,e);return r>=0?n[1|r]=t:(r=~r,function bw(n,e,t,r){let i=n.length;if(i==e)n.push(t,r);else if(1===i)n.push(r,n[0]),n[0]=t;else{for(i--,n.push(n[i-1],n[i]);i>e;)n[i]=n[i-2],i--;n[e]=t,n[e+1]=r}}(n,r,e,t)),r}function Cu(n,e){const t=Jr(n,e);if(t>=0)return n[1|t]}function Jr(n,e){return function gp(n,e,t){let r=0,i=n.length>>t;for(;i!==r;){const s=r+(i-r>>1),o=n[s<<t];if(e===o)return s<<t;o>e?i=s:r=s+1}return~(i<<t)}(n,e,1)}const us={},Tu="__NG_DI_FLAG__",zo="ngTempTokenPath",Sw=/\n/gm,yp="__source",Aw=re({provide:String,useValue:re});let cs;function _p(n){const e=cs;return cs=n,e}function xw(n,e=B.Default){if(void 0===cs)throw new Y(203,"");return null===cs?Ih(n,void 0,e):cs.get(n,e&B.Optional?null:void 0,e)}function E(n,e=B.Default){return(function mC(){return Zl}()||xw)(V(n),e)}const Mu=E;function Su(n){const e=[];for(let t=0;t<n.length;t++){const r=V(n[t]);if(Array.isArray(r)){if(0===r.length)throw new Y(900,"");let i,s=B.Default;for(let o=0;o<r.length;o++){const a=r[o],l=Nw(a);"number"==typeof l?-1===l?i=a.token:s|=l:i=a}e.push(E(i,s))}else e.push(E(r))}return e}function ds(n,e){return n[Tu]=e,n.prototype[Tu]=e,n}function Nw(n){return n[Tu]}const fs=ds(Xr("Inject",n=>({token:n})),-1),ft=ds(Xr("Optional"),8),mr=ds(Xr("SkipSelf"),4);let Wo;function ti(n){var e;return(null===(e=function Au(){if(void 0===Wo&&(Wo=null,ne.trustedTypes))try{Wo=ne.trustedTypes.createPolicy("angular",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch(n){}return Wo}())||void 0===e?void 0:e.createHTML(n))||n}class yr{constructor(e){this.changingThisBreaksApplicationSecurity=e}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)`}}class zw extends yr{getTypeName(){return"HTML"}}class qw extends yr{getTypeName(){return"Style"}}class Ww extends yr{getTypeName(){return"Script"}}class Gw extends yr{getTypeName(){return"URL"}}class Kw extends yr{getTypeName(){return"ResourceURL"}}function ht(n){return n instanceof yr?n.changingThisBreaksApplicationSecurity:n}function tn(n,e){const t=Sp(n);if(null!=t&&t!==e){if("ResourceURL"===t&&"URL"===e)return!0;throw new Error(`Required a safe ${e}, got a ${t} (see https://g.co/ng/security#xss)`)}return t===e}function Sp(n){return n instanceof yr&&n.getTypeName()||null}class e0{constructor(e){this.inertDocumentHelper=e}getInertBodyElement(e){e="<body><remove></remove>"+e;try{const t=(new window.DOMParser).parseFromString(ti(e),"text/html").body;return null===t?this.inertDocumentHelper.getInertBodyElement(e):(t.removeChild(t.firstChild),t)}catch(t){return null}}}class t0{constructor(e){if(this.defaultDoc=e,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const t=this.inertDocument.createElement("html");this.inertDocument.appendChild(t);const r=this.inertDocument.createElement("body");t.appendChild(r)}}getInertBodyElement(e){const t=this.inertDocument.createElement("template");if("content"in t)return t.innerHTML=ti(e),t;const r=this.inertDocument.createElement("body");return r.innerHTML=ti(e),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(r),r}stripCustomNsAttrs(e){const t=e.attributes;for(let i=t.length-1;0<i;i--){const o=t.item(i).name;("xmlns:ns1"===o||0===o.indexOf("ns1:"))&&e.removeAttribute(o)}let r=e.firstChild;for(;r;)r.nodeType===Node.ELEMENT_NODE&&this.stripCustomNsAttrs(r),r=r.nextSibling}}const r0=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi,s0=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i;function ps(n){return(n=String(n)).match(r0)||n.match(s0)?n:"unsafe:"+n}function nn(n){const e={};for(const t of n.split(","))e[t]=!0;return e}function gs(...n){const e={};for(const t of n)for(const r in t)t.hasOwnProperty(r)&&(e[r]=!0);return e}const xp=nn("area,br,col,hr,img,wbr"),Np=nn("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),Rp=nn("rp,rt"),Nu=gs(xp,gs(Np,nn("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")),gs(Rp,nn("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")),gs(Rp,Np)),Ru=nn("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),Ou=nn("srcset"),Op=gs(Ru,Ou,nn("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,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),nn("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")),o0=nn("script,style,template");class a0{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(e){let t=e.firstChild,r=!0;for(;t;)if(t.nodeType===Node.ELEMENT_NODE?r=this.startElement(t):t.nodeType===Node.TEXT_NODE?this.chars(t.nodeValue):this.sanitizedSomething=!0,r&&t.firstChild)t=t.firstChild;else for(;t;){t.nodeType===Node.ELEMENT_NODE&&this.endElement(t);let i=this.checkClobberedElement(t,t.nextSibling);if(i){t=i;break}t=this.checkClobberedElement(t,t.parentNode)}return this.buf.join("")}startElement(e){const t=e.nodeName.toLowerCase();if(!Nu.hasOwnProperty(t))return this.sanitizedSomething=!0,!o0.hasOwnProperty(t);this.buf.push("<"),this.buf.push(t);const r=e.attributes;for(let i=0;i<r.length;i++){const s=r.item(i),o=s.name,a=o.toLowerCase();if(!Op.hasOwnProperty(a)){this.sanitizedSomething=!0;continue}let l=s.value;Ru[a]&&(l=ps(l)),Ou[a]&&(n=l,l=(n=String(n)).split(",").map(e=>ps(e.trim())).join(", ")),this.buf.push(" ",o,'="',Fp(l),'"')}var n;return this.buf.push(">"),!0}endElement(e){const t=e.nodeName.toLowerCase();Nu.hasOwnProperty(t)&&!xp.hasOwnProperty(t)&&(this.buf.push("</"),this.buf.push(t),this.buf.push(">"))}chars(e){this.buf.push(Fp(e))}checkClobberedElement(e,t){if(t&&(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${e.outerHTML}`);return t}}const l0=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,u0=/([^\#-~ |!])/g;function Fp(n){return n.replace(/&/g,"&amp;").replace(l0,function(e){return"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";"}).replace(u0,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}let Ko;function kp(n,e){let t=null;try{Ko=Ko||function Ip(n){const e=new t0(n);return function n0(){try{return!!(new window.DOMParser).parseFromString(ti(""),"text/html")}catch(n){return!1}}()?new e0(e):e}(n);let r=e?String(e):"";t=Ko.getInertBodyElement(r);let i=5,s=r;do{if(0===i)throw new Error("Failed to sanitize html because the input is unstable");i--,r=s,s=t.innerHTML,t=Ko.getInertBodyElement(r)}while(r!==s);return ti((new a0).sanitizeChildren(Fu(t)||t))}finally{if(t){const r=Fu(t)||t;for(;r.firstChild;)r.removeChild(r.firstChild)}}}function Fu(n){return"content"in n&&function c0(n){return n.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===n.nodeName}(n)?n.content:null}var X=(()=>((X=X||{})[X.NONE=0]="NONE",X[X.HTML=1]="HTML",X[X.STYLE=2]="STYLE",X[X.SCRIPT=3]="SCRIPT",X[X.URL=4]="URL",X[X.RESOURCE_URL=5]="RESOURCE_URL",X))();const Bp="__ngContext__";function He(n,e){n[Bp]=e}function Lu(n){const e=function ys(n){return n[Bp]||null}(n);return e?Array.isArray(e)?e:e.lView:null}function ju(n){return n.ngOriginalError}function S0(n,...e){n.error(...e)}class En{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e),r=function M0(n){return n&&n.ngErrorLogger||S0}(e);r(this._console,"ERROR",e),t&&r(this._console,"ORIGINAL ERROR",t)}_findOriginalError(e){let t=e&&ju(e);for(;t&&ju(t);)t=ju(t);return t||null}}const $p=(()=>("undefined"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ne))();function rn(n){return n instanceof Function?n():n}var pt=(()=>((pt=pt||{})[pt.Important=1]="Important",pt[pt.DashCase=2]="DashCase",pt))();function Hu(n,e){return undefined(n,e)}function _s(n){const e=n[3];return Vt(e)?e[3]:e}function Uu(n){return Kp(n[13])}function $u(n){return Kp(n[4])}function Kp(n){for(;null!==n&&!Vt(n);)n=n[4];return n}function ri(n,e,t,r,i){if(null!=r){let s,o=!1;Vt(r)?s=r:Xt(r)&&(o=!0,r=r[0]);const a=Ee(r);0===n&&null!==t?null==i?eg(e,t,a):_r(e,t,a,i||null,!0):1===n&&null!==t?_r(e,t,a,i||null,!0):2===n?function ag(n,e,t){const r=Qo(n,e);r&&function Z0(n,e,t,r){me(n)?n.removeChild(e,t,r):e.removeChild(t)}(n,r,e,t)}(e,a,o):3===n&&e.destroyNode(a),null!=s&&function J0(n,e,t,r,i){const s=t[7];s!==Ee(t)&&ri(e,n,r,s,i);for(let a=10;a<t.length;a++){const l=t[a];vs(l[1],l,n,e,r,s)}}(e,n,s,t,i)}}function qu(n,e,t){return me(n)?n.createElement(e,t):null===t?n.createElement(e):n.createElementNS(t,e)}function Zp(n,e){const t=n[9],r=t.indexOf(e),i=e[3];1024&e[2]&&(e[2]&=-1025,lu(i,-1)),t.splice(r,1)}function Wu(n,e){if(n.length<=10)return;const t=10+e,r=n[t];if(r){const i=r[17];null!==i&&i!==n&&Zp(i,r),e>0&&(n[t-1][4]=r[4]);const s=Uo(n,10+e);!function U0(n,e){vs(n,e,e[H],2,null,null),e[0]=null,e[6]=null}(r[1],r);const o=s[19];null!==o&&o.detachView(s[1]),r[3]=null,r[4]=null,r[2]&=-129}return r}function Yp(n,e){if(!(256&e[2])){const t=e[H];me(t)&&t.destroyNode&&vs(n,e,t,3,null,null),function q0(n){let e=n[13];if(!e)return Gu(n[1],n);for(;e;){let t=null;if(Xt(e))t=e[13];else{const r=e[10];r&&(t=r)}if(!t){for(;e&&!e[4]&&e!==n;)Xt(e)&&Gu(e[1],e),e=e[3];null===e&&(e=n),Xt(e)&&Gu(e[1],e),t=e&&e[4]}e=t}}(e)}}function Gu(n,e){if(!(256&e[2])){e[2]&=-129,e[2]|=256,function Q0(n,e){let t;if(null!=n&&null!=(t=n.destroyHooks))for(let r=0;r<t.length;r+=2){const i=e[t[r]];if(!(i instanceof ts)){const s=t[r+1];if(Array.isArray(s))for(let o=0;o<s.length;o+=2){const a=i[s[o]],l=s[o+1];try{l.call(a)}finally{}}else try{s.call(i)}finally{}}}}(n,e),function K0(n,e){const t=n.cleanup,r=e[7];let i=-1;if(null!==t)for(let s=0;s<t.length-1;s+=2)if("string"==typeof t[s]){const o=t[s+1],a="function"==typeof o?o(e):Ee(e[o]),l=r[i=t[s+2]],u=t[s+3];"boolean"==typeof u?a.removeEventListener(t[s],l,u):u>=0?r[i=u]():r[i=-u].unsubscribe(),s+=2}else{const o=r[i=t[s+1]];t[s].call(o)}if(null!==r){for(let s=i+1;s<r.length;s++)r[s]();e[7]=null}}(n,e),1===e[1].type&&me(e[H])&&e[H].destroy();const t=e[17];if(null!==t&&Vt(e[3])){t!==e[3]&&Zp(t,e);const r=e[19];null!==r&&r.detachView(n)}}}function Xp(n,e,t){return function Jp(n,e,t){let r=e;for(;null!==r&&40&r.type;)r=(e=r).parent;if(null===r)return t[0];if(2&r.flags){const i=n.data[r.directiveStart].encapsulation;if(i===Bt.None||i===Bt.Emulated)return null}return St(r,t)}(n,e.parent,t)}function _r(n,e,t,r,i){me(n)?n.insertBefore(e,t,r,i):e.insertBefore(t,r,i)}function eg(n,e,t){me(n)?n.appendChild(e,t):e.appendChild(t)}function tg(n,e,t,r,i){null!==r?_r(n,e,t,r,i):eg(n,e,t)}function Qo(n,e){return me(n)?n.parentNode(e):e.parentNode}function ng(n,e,t){return ig(n,e,t)}let ig=function rg(n,e,t){return 40&n.type?St(n,t):null};function Zo(n,e,t,r){const i=Xp(n,r,e),s=e[H],a=ng(r.parent||e[6],r,e);if(null!=i)if(Array.isArray(t))for(let l=0;l<t.length;l++)tg(s,i,t[l],a,!1);else tg(s,i,t,a,!1)}function Yo(n,e){if(null!==e){const t=e.type;if(3&t)return St(e,n);if(4&t)return Qu(-1,n[e.index]);if(8&t){const r=e.child;if(null!==r)return Yo(n,r);{const i=n[e.index];return Vt(i)?Qu(-1,i):Ee(i)}}if(32&t)return Hu(e,n)()||Ee(n[e.index]);{const r=og(n,e);return null!==r?Array.isArray(r)?r[0]:Yo(_s(n[16]),r):Yo(n,e.next)}}return null}function og(n,e){return null!==e?n[16][6].projection[e.projection]:null}function Qu(n,e){const t=10+n+1;if(t<e.length){const r=e[t],i=r[1].firstChild;if(null!==i)return Yo(r,i)}return e[7]}function Zu(n,e,t,r,i,s,o){for(;null!=t;){const a=r[t.index],l=t.type;if(o&&0===e&&(a&&He(Ee(a),r),t.flags|=4),64!=(64&t.flags))if(8&l)Zu(n,e,t.child,r,i,s,!1),ri(e,n,i,a,s);else if(32&l){const u=Hu(t,r);let c;for(;c=u();)ri(e,n,i,c,s);ri(e,n,i,a,s)}else 16&l?lg(n,e,r,t,i,s):ri(e,n,i,a,s);t=o?t.projectionNext:t.next}}function vs(n,e,t,r,i,s){Zu(t,r,n.firstChild,e,i,s,!1)}function lg(n,e,t,r,i,s){const o=t[16],l=o[6].projection[r.projection];if(Array.isArray(l))for(let u=0;u<l.length;u++)ri(e,n,i,l[u],s);else Zu(n,e,l,o[3],i,s,!0)}function ug(n,e,t){me(n)?n.setAttribute(e,"style",t):e.style.cssText=t}function Yu(n,e,t){me(n)?""===t?n.removeAttribute(e,"class"):n.setAttribute(e,"class",t):e.className=t}function cg(n,e,t){let r=n.length;for(;;){const i=n.indexOf(e,t);if(-1===i)return i;if(0===i||n.charCodeAt(i-1)<=32){const s=e.length;if(i+s===r||n.charCodeAt(i+s)<=32)return i}t=i+1}}const dg="ng-template";function tT(n,e,t){let r=0;for(;r<n.length;){let i=n[r++];if(t&&"class"===i){if(i=n[r],-1!==cg(i.toLowerCase(),e,0))return!0}else if(1===i){for(;r<n.length&&"string"==typeof(i=n[r++]);)if(i.toLowerCase()===e)return!0;return!1}}return!1}function fg(n){return 4===n.type&&n.value!==dg}function nT(n,e,t){return e===(4!==n.type||t?n.value:dg)}function rT(n,e,t){let r=4;const i=n.attrs||[],s=function oT(n){for(let e=0;e<n.length;e++)if(ep(n[e]))return e;return n.length}(i);let o=!1;for(let a=0;a<e.length;a++){const l=e[a];if("number"!=typeof l){if(!o)if(4&r){if(r=2|1&r,""!==l&&!nT(n,l,t)||""===l&&1===e.length){if(Ut(r))return!1;o=!0}}else{const u=8&r?l:e[++a];if(8&r&&null!==n.attrs){if(!tT(n.attrs,u,t)){if(Ut(r))return!1;o=!0}continue}const d=iT(8&r?"class":l,i,fg(n),t);if(-1===d){if(Ut(r))return!1;o=!0;continue}if(""!==u){let f;f=d>s?"":i[d+1].toLowerCase();const h=8&r?f:null;if(h&&-1!==cg(h,u,0)||2&r&&u!==f){if(Ut(r))return!1;o=!0}}}}else{if(!o&&!Ut(r)&&!Ut(l))return!1;if(o&&Ut(l))continue;o=!1,r=l|1&r}}return Ut(r)||o}function Ut(n){return 0==(1&n)}function iT(n,e,t,r){if(null===e)return-1;let i=0;if(r||!t){let s=!1;for(;i<e.length;){const o=e[i];if(o===n)return i;if(3===o||6===o)s=!0;else{if(1===o||2===o){let a=e[++i];for(;"string"==typeof a;)a=e[++i];continue}if(4===o)break;if(0===o){i+=4;continue}}i+=s?1:2}return-1}return function aT(n,e){let t=n.indexOf(4);if(t>-1)for(t++;t<n.length;){const r=n[t];if("number"==typeof r)return-1;if(r===e)return t;t++}return-1}(e,n)}function hg(n,e,t=!1){for(let r=0;r<e.length;r++)if(rT(n,e[r],t))return!0;return!1}function lT(n,e){e:for(let t=0;t<e.length;t++){const r=e[t];if(n.length===r.length){for(let i=0;i<n.length;i++)if(n[i]!==r[i])continue e;return!0}}return!1}function pg(n,e){return n?":not("+e.trim()+")":e}function uT(n){let e=n[0],t=1,r=2,i="",s=!1;for(;t<n.length;){let o=n[t];if("string"==typeof o)if(2&r){const a=n[++t];i+="["+o+(a.length>0?'="'+a+'"':"")+"]"}else 8&r?i+="."+o:4&r&&(i+=" "+o);else""!==i&&!Ut(o)&&(e+=pg(s,i),i=""),r=o,s=s||!Ut(r);t++}return""!==i&&(e+=pg(s,i)),e}const L={};function At(n){gg(K(),v(),Qe()+n,Ao())}function gg(n,e,t,r){if(!r)if(3==(3&e[2])){const s=n.preOrderCheckHooks;null!==s&&Fo(e,s,t)}else{const s=n.preOrderHooks;null!==s&&ko(e,s,0,t)}$n(t)}function Xo(n,e){return n<<17|e<<2}function $t(n){return n>>17&32767}function Xu(n){return 2|n}function Cn(n){return(131068&n)>>2}function Ju(n,e){return-131069&n|e<<2}function ec(n){return 1|n}function Mg(n,e){const t=n.contentQueries;if(null!==t)for(let r=0;r<t.length;r+=2){const i=t[r],s=t[r+1];if(-1!==s){const o=n.data[s];hu(i),o.contentQueries(2,e[s],s)}}}function bs(n,e,t,r,i,s,o,a,l,u){const c=e.blueprint.slice();return c[0]=i,c[2]=140|r,Uh(c),c[3]=c[15]=n,c[8]=t,c[10]=o||n&&n[10],c[H]=a||n&&n[H],c[12]=l||n&&n[12]||null,c[9]=u||n&&n[9]||null,c[6]=s,c[16]=2==e.type?n[16]:c,c}function ii(n,e,t,r,i){let s=n.data[e];if(null===s)s=function uc(n,e,t,r,i){const s=zh(),o=uu(),l=n.data[e]=function ST(n,e,t,r,i,s){return{type:t,index:r,insertBeforeIndex:null,injectorIndex:e?e.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:i,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,o?s:s&&s.parent,t,e,r,i);return null===n.firstChild&&(n.firstChild=l),null!==s&&(o?null==s.child&&null!==l.parent&&(s.child=l):null===s.next&&(s.next=l)),l}(n,e,t,r,i),function WC(){return k.lFrame.inI18n}()&&(s.flags|=64);else if(64&s.type){s.type=t,s.value=r,s.attrs=i;const o=function es(){const n=k.lFrame,e=n.currentTNode;return n.isParent?e:e.parent}();s.injectorIndex=null===o?-1:o.injectorIndex}return Jt(s,!0),s}function si(n,e,t,r){if(0===t)return-1;const i=e.length;for(let s=0;s<t;s++)e.push(r),n.blueprint.push(r),n.data.push(null);return i}function Ds(n,e,t){No(e);try{const r=n.viewQuery;null!==r&&_c(1,r,t);const i=n.template;null!==i&&Sg(n,e,i,1,t),n.firstCreatePass&&(n.firstCreatePass=!1),n.staticContentQueries&&Mg(n,e),n.staticViewQueries&&_c(2,n.viewQuery,t);const s=n.components;null!==s&&function wT(n,e){for(let t=0;t<e.length;t++)qT(n,e[t])}(e,s)}catch(r){throw n.firstCreatePass&&(n.incompleteFirstPass=!0,n.firstCreatePass=!1),r}finally{e[2]&=-5,Ro()}}function oi(n,e,t,r){const i=e[2];if(256==(256&i))return;No(e);const s=Ao();try{Uh(e),function qh(n){return k.lFrame.bindingIndex=n}(n.bindingStartIndex),null!==t&&Sg(n,e,t,2,r);const o=3==(3&i);if(!s)if(o){const u=n.preOrderCheckHooks;null!==u&&Fo(e,u,null)}else{const u=n.preOrderHooks;null!==u&&ko(e,u,0,null),pu(e,0)}if(function $T(n){for(let e=Uu(n);null!==e;e=$u(e)){if(!e[2])continue;const t=e[9];for(let r=0;r<t.length;r++){const i=t[r],s=i[3];0==(1024&i[2])&&lu(s,1),i[2]|=1024}}}(e),function UT(n){for(let e=Uu(n);null!==e;e=$u(e))for(let t=10;t<e.length;t++){const r=e[t],i=r[1];au(r)&&oi(i,r,i.template,r[8])}}(e),null!==n.contentQueries&&Mg(n,e),!s)if(o){const u=n.contentCheckHooks;null!==u&&Fo(e,u)}else{const u=n.contentHooks;null!==u&&ko(e,u,1),pu(e,1)}!function ET(n,e){const t=n.hostBindingOpCodes;if(null!==t)try{for(let r=0;r<t.length;r++){const i=t[r];if(i<0)$n(~i);else{const s=i,o=t[++r],a=t[++r];GC(o,s),a(2,e[s])}}}finally{$n(-1)}}(n,e);const a=n.components;null!==a&&function CT(n,e){for(let t=0;t<e.length;t++)zT(n,e[t])}(e,a);const l=n.viewQuery;if(null!==l&&_c(2,l,r),!s)if(o){const u=n.viewCheckHooks;null!==u&&Fo(e,u)}else{const u=n.viewHooks;null!==u&&ko(e,u,2),pu(e,2)}!0===n.firstUpdatePass&&(n.firstUpdatePass=!1),s||(e[2]&=-73),1024&e[2]&&(e[2]&=-1025,lu(e[3],-1))}finally{Ro()}}function TT(n,e,t,r){const i=e[10],s=!Ao(),o=Hh(e);try{s&&!o&&i.begin&&i.begin(),o&&Ds(n,e,r),oi(n,e,t,r)}finally{s&&!o&&i.end&&i.end()}}function Sg(n,e,t,r,i){const s=Qe(),o=2&r;try{$n(-1),o&&e.length>20&&gg(n,e,20,Ao()),t(r,i)}finally{$n(s)}}function Ig(n,e,t){if(tu(e)){const i=e.directiveEnd;for(let s=e.directiveStart;s<i;s++){const o=n.data[s];o.contentQueries&&o.contentQueries(1,t[s],s)}}}function cc(n,e,t){!$h()||(function FT(n,e,t,r){const i=t.directiveStart,s=t.directiveEnd;n.firstCreatePass||rs(t,e),He(r,e);const o=t.initialInputs;for(let a=i;a<s;a++){const l=n.data[a],u=Ht(l);u&&jT(e,t,l);const c=is(e,n,a,t);He(c,e),null!==o&&VT(0,a-i,c,l,0,o),u&&(ct(t.index,e)[8]=c)}}(n,e,t,St(t,e)),128==(128&t.flags)&&function kT(n,e,t){const r=t.directiveStart,i=t.directiveEnd,o=t.index,a=function KC(){return k.lFrame.currentDirectiveIndex}();try{$n(o);for(let l=r;l<i;l++){const u=n.data[l],c=e[l];du(l),(null!==u.hostBindings||0!==u.hostVars||null!==u.hostAttrs)&&Pg(u,c)}}finally{$n(-1),du(a)}}(n,e,t))}function dc(n,e,t=St){const r=e.localNames;if(null!==r){let i=e.index+1;for(let s=0;s<r.length;s+=2){const o=r[s+1],a=-1===o?t(e,n):n[o];n[i++]=a}}}function Ag(n){const e=n.tView;return null===e||e.incompleteFirstPass?n.tView=ta(1,null,n.template,n.decls,n.vars,n.directiveDefs,n.pipeDefs,n.viewQuery,n.schemas,n.consts):e}function ta(n,e,t,r,i,s,o,a,l,u){const c=20+r,d=c+i,f=function MT(n,e){const t=[];for(let r=0;r<e;r++)t.push(r<n?null:L);return t}(c,d),h="function"==typeof u?u():u;return f[1]={type:n,blueprint:f,template:t,queries:null,viewQuery:a,declTNode:e,data:f.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:d,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:"function"==typeof s?s():s,pipeRegistry:"function"==typeof o?o():o,firstChild:null,schemas:l,consts:h,incompleteFirstPass:!1}}function Rg(n,e,t,r){const i=Ug(e);null===t?i.push(r):(i.push(t),n.firstCreatePass&&$g(n).push(r,i.length-1))}function Og(n,e,t){for(let r in n)if(n.hasOwnProperty(r)){const i=n[r];(t=null===t?{}:t).hasOwnProperty(r)?t[r].push(e,i):t[r]=[e,i]}return t}function fc(n,e,t,r){let i=!1;if($h()){const s=function PT(n,e,t){const r=n.directiveRegistry;let i=null;if(r)for(let s=0;s<r.length;s++){const o=r[s];hg(t,o.selectors,!1)&&(i||(i=[]),Vo(rs(t,e),n,o.type),Ht(o)?(Lg(n,t),i.unshift(o)):i.push(o))}return i}(n,e,t),o=null===r?null:{"":-1};if(null!==s){i=!0,Bg(t,n.data.length,s.length);for(let c=0;c<s.length;c++){const d=s[c];d.providersResolver&&d.providersResolver(d)}let a=!1,l=!1,u=si(n,e,s.length,null);for(let c=0;c<s.length;c++){const d=s[c];t.mergedAttrs=Lo(t.mergedAttrs,d.hostAttrs),jg(n,t,e,u,d),BT(u,d,o),null!==d.contentQueries&&(t.flags|=8),(null!==d.hostBindings||null!==d.hostAttrs||0!==d.hostVars)&&(t.flags|=128);const f=d.type.prototype;!a&&(f.ngOnChanges||f.ngOnInit||f.ngDoCheck)&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t.index),a=!0),!l&&(f.ngOnChanges||f.ngDoCheck)&&((n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t.index),l=!0),u++}!function IT(n,e){const r=e.directiveEnd,i=n.data,s=e.attrs,o=[];let a=null,l=null;for(let u=e.directiveStart;u<r;u++){const c=i[u],d=c.inputs,f=null===s||fg(e)?null:HT(d,s);o.push(f),a=Og(d,u,a),l=Og(c.outputs,u,l)}null!==a&&(a.hasOwnProperty("class")&&(e.flags|=16),a.hasOwnProperty("style")&&(e.flags|=32)),e.initialInputs=o,e.inputs=a,e.outputs=l}(n,t)}o&&function LT(n,e,t){if(e){const r=n.localNames=[];for(let i=0;i<e.length;i+=2){const s=t[e[i+1]];if(null==s)throw new Y(-301,`Export of name '${e[i+1]}' not found!`);r.push(e[i],s)}}}(t,r,o)}return t.mergedAttrs=Lo(t.mergedAttrs,t.attrs),i}function kg(n,e,t,r,i,s){const o=s.hostBindings;if(o){let a=n.hostBindingOpCodes;null===a&&(a=n.hostBindingOpCodes=[]);const l=~e.index;(function OT(n){let e=n.length;for(;e>0;){const t=n[--e];if("number"==typeof t&&t<0)return t}return 0})(a)!=l&&a.push(l),a.push(r,i,o)}}function Pg(n,e){null!==n.hostBindings&&n.hostBindings(1,e)}function Lg(n,e){e.flags|=2,(n.components||(n.components=[])).push(e.index)}function BT(n,e,t){if(t){if(e.exportAs)for(let r=0;r<e.exportAs.length;r++)t[e.exportAs[r]]=n;Ht(e)&&(t[""]=n)}}function Bg(n,e,t){n.flags|=1,n.directiveStart=e,n.directiveEnd=e+t,n.providerIndexes=e}function jg(n,e,t,r,i){n.data[r]=i;const s=i.factory||(i.factory=pr(i.type)),o=new ts(s,Ht(i),null);n.blueprint[r]=o,t[r]=o,kg(n,e,0,r,si(n,t,i.hostVars,L),i)}function jT(n,e,t){const r=St(e,n),i=Ag(t),s=n[10],o=na(n,bs(n,i,null,t.onPush?64:16,r,e,s,s.createRenderer(r,t),null,null));n[e.index]=o}function sn(n,e,t,r,i,s){const o=St(n,e);!function hc(n,e,t,r,i,s,o){if(null==s)me(n)?n.removeAttribute(e,i,t):e.removeAttribute(i);else{const a=null==o?P(s):o(s,r||"",i);me(n)?n.setAttribute(e,i,a,t):t?e.setAttributeNS(t,i,a):e.setAttribute(i,a)}}(e[H],o,s,n.value,t,r,i)}function VT(n,e,t,r,i,s){const o=s[e];if(null!==o){const a=r.setInput;for(let l=0;l<o.length;){const u=o[l++],c=o[l++],d=o[l++];null!==a?r.setInput(t,d,u,c):t[c]=d}}}function HT(n,e){let t=null,r=0;for(;r<e.length;){const i=e[r];if(0!==i)if(5!==i){if("number"==typeof i)break;n.hasOwnProperty(i)&&(null===t&&(t=[]),t.push(i,n[i],e[r+1])),r+=2}else r+=2;else r+=4}return t}function Vg(n,e,t,r){return new Array(n,!0,!1,e,null,0,r,t,null,null)}function zT(n,e){const t=ct(e,n);if(au(t)){const r=t[1];80&t[2]?oi(r,t,r.template,t[8]):t[5]>0&&pc(t)}}function pc(n){for(let r=Uu(n);null!==r;r=$u(r))for(let i=10;i<r.length;i++){const s=r[i];if(1024&s[2]){const o=s[1];oi(o,s,o.template,s[8])}else s[5]>0&&pc(s)}const t=n[1].components;if(null!==t)for(let r=0;r<t.length;r++){const i=ct(t[r],n);au(i)&&i[5]>0&&pc(i)}}function qT(n,e){const t=ct(e,n),r=t[1];(function WT(n,e){for(let t=e.length;t<n.blueprint.length;t++)e.push(n.blueprint[t])})(r,t),Ds(r,t,t[8])}function na(n,e){return n[13]?n[14][4]=e:n[13]=e,n[14]=e,e}function gc(n){for(;n;){n[2]|=64;const e=_s(n);if(MC(n)&&!e)return n;n=e}return null}function yc(n,e,t){const r=e[10];r.begin&&r.begin();try{oi(n,e,n.template,t)}catch(i){throw qg(e,i),i}finally{r.end&&r.end()}}function Hg(n){!function mc(n){for(let e=0;e<n.components.length;e++){const t=n.components[e],r=Lu(t),i=r[1];TT(i,r,i.template,t)}}(n[8])}function _c(n,e,t){hu(0),e(n,t)}const ZT=(()=>Promise.resolve(null))();function Ug(n){return n[7]||(n[7]=[])}function $g(n){return n.cleanup||(n.cleanup=[])}function qg(n,e){const t=n[9],r=t?t.get(En,null):null;r&&r.handleError(e)}function Wg(n,e,t,r,i){for(let s=0;s<t.length;){const o=t[s++],a=t[s++],l=e[o],u=n.data[o];null!==u.setInput?u.setInput(l,i,r,a):l[a]=i}}function wn(n,e,t){const r=Io(e,n);!function Qp(n,e,t){me(n)?n.setValue(e,t):e.textContent=t}(n[H],r,t)}function ra(n,e,t){let r=t?n.styles:null,i=t?n.classes:null,s=0;if(null!==e)for(let o=0;o<e.length;o++){const a=e[o];"number"==typeof a?s=a:1==s?i=ql(i,a):2==s&&(r=ql(r,a+": "+e[++o]+";"))}t?n.styles=r:n.stylesWithoutHost=r,t?n.classes=i:n.classesWithoutHost=i}const vc=new I("INJECTOR",-1);class Gg{get(e,t=us){if(t===us){const r=new Error(`NullInjectorError: No provider for ${J(e)}!`);throw r.name="NullInjectorError",r}return t}}const bc=new I("Set Injector scope."),Es={},JT={};let Dc;function Kg(){return void 0===Dc&&(Dc=new Gg),Dc}function Qg(n,e=null,t=null,r){const i=Zg(n,e,t,r);return i._resolveInjectorDefTypes(),i}function Zg(n,e=null,t=null,r){return new eM(n,t,e||Kg(),r)}class eM{constructor(e,t,r,i=null){this.parent=r,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const s=[];t&&en(t,a=>this.processProvider(a,e,t)),en([e],a=>this.processInjectorType(a,[],s)),this.records.set(vc,ai(void 0,this));const o=this.records.get(bc);this.scope=null!=o?o.value:null,this.source=i||("object"==typeof e?null:J(e))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(e=>e.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(e,t=us,r=B.Default){this.assertNotDestroyed();const i=_p(this),s=Bn(void 0);try{if(!(r&B.SkipSelf)){let a=this.records.get(e);if(void 0===a){const l=function lM(n){return"function"==typeof n||"object"==typeof n&&n instanceof I}(e)&&Kl(e);a=l&&this.injectableDefInScope(l)?ai(Ec(e),Es):null,this.records.set(e,a)}if(null!=a)return this.hydrate(e,a)}return(r&B.Self?Kg():this.parent).get(e,t=r&B.Optional&&t===us?null:t)}catch(o){if("NullInjectorError"===o.name){if((o[zo]=o[zo]||[]).unshift(J(e)),i)throw o;return function Rw(n,e,t,r){const i=n[zo];throw e[yp]&&i.unshift(e[yp]),n.message=function Ow(n,e,t,r=null){n=n&&"\n"===n.charAt(0)&&"\u0275"==n.charAt(1)?n.substr(2):n;let i=J(e);if(Array.isArray(e))i=e.map(J).join(" -> ");else if("object"==typeof e){let s=[];for(let o in e)if(e.hasOwnProperty(o)){let a=e[o];s.push(o+":"+("string"==typeof a?JSON.stringify(a):J(a)))}i=`{${s.join(", ")}}`}return`${t}${r?"("+r+")":""}[${i}]: ${n.replace(Sw,"\n  ")}`}("\n"+n.message,i,t,r),n.ngTokenPath=i,n[zo]=null,n}(o,e,"R3InjectorError",this.source)}throw o}finally{Bn(s),_p(i)}}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(e=>this.get(e))}toString(){const e=[];return this.records.forEach((r,i)=>e.push(J(i))),`R3Injector[${e.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Y(205,"")}processInjectorType(e,t,r){if(!(e=V(e)))return!1;let i=Mh(e);const s=null==i&&e.ngModule||void 0,o=void 0===s?e:s,a=-1!==r.indexOf(o);if(void 0!==s&&(i=Mh(s)),null==i)return!1;if(null!=i.imports&&!a){let c;r.push(o);try{en(i.imports,d=>{this.processInjectorType(d,t,r)&&(void 0===c&&(c=[]),c.push(d))})}finally{}if(void 0!==c)for(let d=0;d<c.length;d++){const{ngModule:f,providers:h}=c[d];en(h,p=>this.processProvider(p,f,h||ie))}}this.injectorDefTypes.add(o);const l=pr(o)||(()=>new o);this.records.set(o,ai(l,Es));const u=i.providers;if(null!=u&&!a){const c=e;en(u,d=>this.processProvider(d,c,u))}return void 0!==s&&void 0!==e.providers}processProvider(e,t,r){let i=li(e=V(e))?e:V(e&&e.provide);const s=function nM(n,e,t){return Xg(n)?ai(void 0,n.useValue):ai(Yg(n),Es)}(e);if(li(e)||!0!==e.multi)this.records.get(i);else{let o=this.records.get(i);o||(o=ai(void 0,Es,!0),o.factory=()=>Su(o.multi),this.records.set(i,o)),i=e,o.multi.push(e)}this.records.set(i,s)}hydrate(e,t){return t.value===Es&&(t.value=JT,t.value=t.factory()),"object"==typeof t.value&&t.value&&function aM(n){return null!==n&&"object"==typeof n&&"function"==typeof n.ngOnDestroy}(t.value)&&this.onDestroy.add(t.value),t.value}injectableDefInScope(e){if(!e.providedIn)return!1;const t=V(e.providedIn);return"string"==typeof t?"any"===t||t===this.scope:this.injectorDefTypes.has(t)}}function Ec(n){const e=Kl(n),t=null!==e?e.factory:pr(n);if(null!==t)return t;if(n instanceof I)throw new Y(204,"");if(n instanceof Function)return function tM(n){const e=n.length;if(e>0)throw ls(e,"?"),new Y(204,"");const t=function hC(n){const e=n&&(n[Do]||n[Sh]);if(e){const t=function pC(n){if(n.hasOwnProperty("name"))return n.name;const e=(""+n).match(/^function\s*([^\s(]+)/);return null===e?"":e[1]}(n);return console.warn(`DEPRECATED: DI is instantiating a token "${t}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${t}" class.`),e}return null}(n);return null!==t?()=>t.factory(n):()=>new n}(n);throw new Y(204,"")}function Yg(n,e,t){let r;if(li(n)){const i=V(n);return pr(i)||Ec(i)}if(Xg(n))r=()=>V(n.useValue);else if(function iM(n){return!(!n||!n.useFactory)}(n))r=()=>n.useFactory(...Su(n.deps||[]));else if(function rM(n){return!(!n||!n.useExisting)}(n))r=()=>E(V(n.useExisting));else{const i=V(n&&(n.useClass||n.provide));if(!function oM(n){return!!n.deps}(n))return pr(i)||Ec(i);r=()=>new i(...Su(n.deps))}return r}function ai(n,e,t=!1){return{factory:n,value:e,multi:t?[]:void 0}}function Xg(n){return null!==n&&"object"==typeof n&&Aw in n}function li(n){return"function"==typeof n}let Ue=(()=>{class n{static create(t,r){var i;if(Array.isArray(t))return Qg({name:""},r,t,"");{const s=null!==(i=t.name)&&void 0!==i?i:"";return Qg({name:s},t.parent,t.providers,s)}}}return n.THROW_IF_NOT_FOUND=us,n.NULL=new Gg,n.\u0275prov=F({token:n,providedIn:"any",factory:()=>E(vc)}),n.__NG_ELEMENT_ID__=-1,n})();function mM(n,e){Oo(Lu(n)[1],Me())}function qt(n){let e=function cm(n){return Object.getPrototypeOf(n.prototype).constructor}(n.type),t=!0;const r=[n];for(;e;){let i;if(Ht(n))i=e.\u0275cmp||e.\u0275dir;else{if(e.\u0275cmp)throw new Y(903,"");i=e.\u0275dir}if(i){if(t){r.push(i);const o=n;o.inputs=Tc(n.inputs),o.declaredInputs=Tc(n.declaredInputs),o.outputs=Tc(n.outputs);const a=i.hostBindings;a&&bM(n,a);const l=i.viewQuery,u=i.contentQueries;if(l&&_M(n,l),u&&vM(n,u),zl(n.inputs,i.inputs),zl(n.declaredInputs,i.declaredInputs),zl(n.outputs,i.outputs),Ht(i)&&i.data.animation){const c=n.data;c.animation=(c.animation||[]).concat(i.data.animation)}}const s=i.features;if(s)for(let o=0;o<s.length;o++){const a=s[o];a&&a.ngInherit&&a(n),a===qt&&(t=!1)}}e=Object.getPrototypeOf(e)}!function yM(n){let e=0,t=null;for(let r=n.length-1;r>=0;r--){const i=n[r];i.hostVars=e+=i.hostVars,i.hostAttrs=Lo(i.hostAttrs,t=Lo(t,i.hostAttrs))}}(r)}function Tc(n){return n===jr?{}:n===ie?[]:n}function _M(n,e){const t=n.viewQuery;n.viewQuery=t?(r,i)=>{e(r,i),t(r,i)}:e}function vM(n,e){const t=n.contentQueries;n.contentQueries=t?(r,i,s)=>{e(r,i,s),t(r,i,s)}:e}function bM(n,e){const t=n.hostBindings;n.hostBindings=t?(r,i)=>{e(r,i),t(r,i)}:e}let ia=null;function ui(){if(!ia){const n=ne.Symbol;if(n&&n.iterator)ia=n.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;t<e.length;++t){const r=e[t];"entries"!==r&&"size"!==r&&Map.prototype[r]===Map.prototype.entries&&(ia=r)}}}return ia}function Cs(n){return!!Mc(n)&&(Array.isArray(n)||!(n instanceof Map)&&ui()in n)}function Mc(n){return null!==n&&("function"==typeof n||"object"==typeof n)}function $e(n,e,t){return!Object.is(n[e],t)&&(n[e]=t,!0)}function br(n,e,t,r){const i=v();return $e(i,qr(),e)&&(K(),sn(ye(),i,n,e,t,r)),br}function Ts(n,e,t,r,i,s,o,a){const l=v(),u=K(),c=n+20,d=u.firstCreatePass?function SM(n,e,t,r,i,s,o,a,l){const u=e.consts,c=ii(e,n,4,o||null,Un(u,a));fc(e,t,c,Un(u,l)),Oo(e,c);const d=c.tViews=ta(2,c,r,i,s,e.directiveRegistry,e.pipeRegistry,null,e.schemas,u);return null!==e.queries&&(e.queries.template(e,c),d.queries=e.queries.embeddedTView(c)),c}(c,u,l,e,t,r,i,s,o):u.data[c];Jt(d,!1);const f=l[H].createComment("");Zo(u,l,f,d),He(f,l),na(l,l[c]=Vg(f,l,f,d)),So(d)&&cc(u,l,d),null!=o&&dc(l,d,a)}function b(n,e=B.Default){const t=v();return null===t?E(n,e):ap(Me(),t,V(n),e)}function Nc(){throw new Error("invalid")}function an(n,e,t){const r=v();return $e(r,qr(),e)&&function gt(n,e,t,r,i,s,o,a){const l=St(e,t);let c,u=e.inputs;!a&&null!=u&&(c=u[r])?(Wg(n,t,c,r,i),Mo(e)&&function xT(n,e){const t=ct(e,n);16&t[2]||(t[2]|=64)}(t,e.index)):3&e.type&&(r=function AT(n){return"class"===n?"className":"for"===n?"htmlFor":"formaction"===n?"formAction":"innerHtml"===n?"innerHTML":"readonly"===n?"readOnly":"tabindex"===n?"tabIndex":n}(r),i=null!=o?o(i,e.value||"",r):i,me(s)?s.setProperty(l,r,i):mu(r)||(l.setProperty?l.setProperty(r,i):l[r]=i))}(K(),ye(),r,n,e,r[H],t,!1),an}function Rc(n,e,t,r,i){const o=i?"class":"style";Wg(n,t,e.inputs[o],o,r)}function Ye(n,e,t,r){const i=v(),s=K(),o=20+n,a=i[H],l=i[o]=qu(a,e,function nw(){return k.lFrame.currentNamespace}()),u=s.firstCreatePass?function QM(n,e,t,r,i,s,o){const a=e.consts,u=ii(e,n,2,i,Un(a,s));return fc(e,t,u,Un(a,o)),null!==u.attrs&&ra(u,u.attrs,!1),null!==u.mergedAttrs&&ra(u,u.mergedAttrs,!0),null!==e.queries&&e.queries.elementStart(e,u),u}(o,s,i,0,e,t,r):s.data[o];Jt(u,!0);const c=u.mergedAttrs;null!==c&&Po(a,l,c);const d=u.classes;null!==d&&Yu(a,l,d);const f=u.styles;null!==f&&ug(a,l,f),64!=(64&u.flags)&&Zo(s,i,l,u),0===function jC(){return k.lFrame.elementDepthCount}()&&He(l,i),function VC(){k.lFrame.elementDepthCount++}(),So(u)&&(cc(s,i,u),Ig(s,u,i)),null!==r&&dc(i,u)}function Xe(){let n=Me();uu()?cu():(n=n.parent,Jt(n,!1));const e=n;!function HC(){k.lFrame.elementDepthCount--}();const t=K();t.firstCreatePass&&(Oo(t,n),tu(n)&&t.queries.elementEnd(n)),null!=e.classesWithoutHost&&function aw(n){return 0!=(16&n.flags)}(e)&&Rc(t,e,v(),e.classesWithoutHost,!0),null!=e.stylesWithoutHost&&function lw(n){return 0!=(32&n.flags)}(e)&&Rc(t,e,v(),e.stylesWithoutHost,!1)}function aa(n,e,t,r){Ye(n,e,t,r),Xe()}function la(n,e,t){(function xm(n,e,t){const r=v(),i=K(),s=n+20,o=i.firstCreatePass?function ZM(n,e,t,r,i){const s=e.consts,o=Un(s,r),a=ii(e,n,8,"ng-container",o);return null!==o&&ra(a,o,!0),fc(e,t,a,Un(s,i)),null!==e.queries&&e.queries.elementStart(e,a),a}(s,i,r,e,t):i.data[s];Jt(o,!0);const a=r[s]=r[H].createComment("");Zo(i,r,a,o),He(a,r),So(o)&&(cc(i,r,o),Ig(i,o,r)),null!=t&&dc(r,o)})(n,e,t),function Nm(){let n=Me();const e=K();uu()?cu():(n=n.parent,Jt(n,!1)),e.firstCreatePass&&(Oo(e,n),tu(n)&&e.queries.elementEnd(n))}()}function ua(n){return!!n&&"function"==typeof n.then}const Om=function Rm(n){return!!n&&"function"==typeof n.subscribe};function Ms(n,e,t,r){const i=v(),s=K(),o=Me();return function km(n,e,t,r,i,s,o,a){const l=So(r),c=n.firstCreatePass&&$g(n),d=e[8],f=Ug(e);let h=!0;if(3&r.type||a){const y=St(r,e),_=a?a(y):y,m=f.length,D=a?T=>a(Ee(T[r.index])):r.index;if(me(t)){let T=null;if(!a&&l&&(T=function XM(n,e,t,r){const i=n.cleanup;if(null!=i)for(let s=0;s<i.length-1;s+=2){const o=i[s];if(o===t&&i[s+1]===r){const a=e[7],l=i[s+2];return a.length>l?a[l]:null}"string"==typeof o&&(s+=2)}return null}(n,e,i,r.index)),null!==T)(T.__ngLastListenerFn__||T).__ngNextListenerFn__=s,T.__ngLastListenerFn__=s,h=!1;else{s=Oc(r,e,d,s,!1);const j=t.listen(_,i,s);f.push(s,j),c&&c.push(i,D,m,m+1)}}else s=Oc(r,e,d,s,!0),_.addEventListener(i,s,o),f.push(s),c&&c.push(i,D,m,o)}else s=Oc(r,e,d,s,!1);const p=r.outputs;let g;if(h&&null!==p&&(g=p[i])){const y=g.length;if(y)for(let _=0;_<y;_+=2){const fe=e[g[_]][g[_+1]].subscribe(s),pe=f.length;f.push(s,fe),c&&c.push(i,r.index,pe,-(pe+1))}}}(s,i,i[H],o,n,e,!!t,r),Ms}function Pm(n,e,t,r){try{return!1!==t(r)}catch(i){return qg(n,i),!1}}function Oc(n,e,t,r,i){return function s(o){if(o===Function)return r;const a=2&n.flags?ct(n.index,e):e;0==(32&e[2])&&gc(a);let l=Pm(e,0,r,o),u=s.__ngNextListenerFn__;for(;u;)l=Pm(e,0,u,o)&&l,u=u.__ngNextListenerFn__;return i&&!1===l&&(o.preventDefault(),o.returnValue=!1),l}}function Ss(n=1){return function ZC(n){return(k.lFrame.contextLView=function YC(n,e){for(;n>0;)e=e[15],n--;return e}(n,k.lFrame.contextLView))[8]}(n)}function JM(n,e){let t=null;const r=function sT(n){const e=n.attrs;if(null!=e){const t=e.indexOf(5);if(0==(1&t))return e[t+1]}return null}(n);for(let i=0;i<e.length;i++){const s=e[i];if("*"!==s){if(null===r?hg(n,s,!0):lT(r,s))return i}else t=i}return t}function Fc(n){const e=v()[16][6];if(!e.projection){const r=e.projection=ls(n?n.length:1,null),i=r.slice();let s=e.child;for(;null!==s;){const o=n?JM(s,n):0;null!==o&&(i[o]?i[o].projectionNext=s:r[o]=s,i[o]=s),s=s.next}}}function kc(n,e=0,t){const r=v(),i=K(),s=ii(i,20+n,16,null,t||null);null===s.projection&&(s.projection=e),cu(),64!=(64&s.flags)&&function X0(n,e,t){lg(e[H],0,e,t,Xp(n,t,e),ng(t.parent||e[6],t,e))}(i,r,s)}function Wm(n,e,t,r,i){const s=n[t+1],o=null===e;let a=r?$t(s):Cn(s),l=!1;for(;0!==a&&(!1===l||o);){const c=n[a+1];nS(n[a],e)&&(l=!0,n[a+1]=r?ec(c):Xu(c)),a=r?$t(c):Cn(c)}l&&(n[t+1]=r?Xu(s):ec(s))}function nS(n,e){return null===n||null==e||(Array.isArray(n)?n[1]:n)===e||!(!Array.isArray(n)||"string"!=typeof e)&&Jr(n,e)>=0}function Dr(n,e){return function Wt(n,e,t,r){const i=v(),s=K(),o=function Dn(n){const e=k.lFrame,t=e.bindingIndex;return e.bindingIndex=e.bindingIndex+n,t}(2);s.firstUpdatePass&&function ty(n,e,t,r){const i=n.data;if(null===i[t+1]){const s=i[Qe()],o=function ey(n,e){return e>=n.expandoStartIndex}(n,t);(function sy(n,e){return 0!=(n.flags&(e?16:32))})(s,r)&&null===e&&!o&&(e=!1),e=function dS(n,e,t,r){const i=function fu(n){const e=k.lFrame.currentDirectiveIndex;return-1===e?null:n[e]}(n);let s=r?e.residualClasses:e.residualStyles;if(null===i)0===(r?e.classBindings:e.styleBindings)&&(t=Is(t=Lc(null,n,e,t,r),e.attrs,r),s=null);else{const o=e.directiveStylingLast;if(-1===o||n[o]!==i)if(t=Lc(i,n,e,t,r),null===s){let l=function fS(n,e,t){const r=t?e.classBindings:e.styleBindings;if(0!==Cn(r))return n[$t(r)]}(n,e,r);void 0!==l&&Array.isArray(l)&&(l=Lc(null,n,e,l[1],r),l=Is(l,e.attrs,r),function hS(n,e,t,r){n[$t(t?e.classBindings:e.styleBindings)]=r}(n,e,r,l))}else s=function pS(n,e,t){let r;const i=e.directiveEnd;for(let s=1+e.directiveStylingLast;s<i;s++)r=Is(r,n[s].hostAttrs,t);return Is(r,e.attrs,t)}(n,e,r)}return void 0!==s&&(r?e.residualClasses=s:e.residualStyles=s),t}(i,s,e,r),function eS(n,e,t,r,i,s){let o=s?e.classBindings:e.styleBindings,a=$t(o),l=Cn(o);n[r]=t;let c,u=!1;if(Array.isArray(t)){const d=t;c=d[1],(null===c||Jr(d,c)>0)&&(u=!0)}else c=t;if(i)if(0!==l){const f=$t(n[a+1]);n[r+1]=Xo(f,a),0!==f&&(n[f+1]=Ju(n[f+1],r)),n[a+1]=function fT(n,e){return 131071&n|e<<17}(n[a+1],r)}else n[r+1]=Xo(a,0),0!==a&&(n[a+1]=Ju(n[a+1],r)),a=r;else n[r+1]=Xo(l,0),0===a?a=r:n[l+1]=Ju(n[l+1],r),l=r;u&&(n[r+1]=Xu(n[r+1])),Wm(n,c,r,!0),Wm(n,c,r,!1),function tS(n,e,t,r,i){const s=i?n.residualClasses:n.residualStyles;null!=s&&"string"==typeof e&&Jr(s,e)>=0&&(t[r+1]=ec(t[r+1]))}(e,c,n,r,s),o=Xo(a,l),s?e.classBindings=o:e.styleBindings=o}(i,s,e,t,o,r)}}(s,n,o,r),e!==L&&$e(i,o,e)&&function ry(n,e,t,r,i,s,o,a){if(!(3&e.type))return;const l=n.data,u=l[a+1];ca(function _g(n){return 1==(1&n)}(u)?iy(l,e,t,i,Cn(u),o):void 0)||(ca(s)||function yg(n){return 2==(2&n)}(u)&&(s=iy(l,null,t,i,a,o)),function eT(n,e,t,r,i){const s=me(n);if(e)i?s?n.addClass(t,r):t.classList.add(r):s?n.removeClass(t,r):t.classList.remove(r);else{let o=-1===r.indexOf("-")?void 0:pt.DashCase;if(null==i)s?n.removeStyle(t,r,o):t.style.removeProperty(r);else{const a="string"==typeof i&&i.endsWith("!important");a&&(i=i.slice(0,-10),o|=pt.Important),s?n.setStyle(t,r,i,o):t.style.setProperty(r,i,a?"important":"")}}}(r,o,Io(Qe(),t),i,s))}(s,s.data[Qe()],i,i[H],n,i[o+1]=function yS(n,e){return null==n||("string"==typeof e?n+=e:"object"==typeof n&&(n=J(ht(n)))),n}(e,t),r,o)}(n,e,null,!0),Dr}function Lc(n,e,t,r,i){let s=null;const o=t.directiveEnd;let a=t.directiveStylingLast;for(-1===a?a=t.directiveStart:a++;a<o&&(s=e[a],r=Is(r,s.hostAttrs,i),s!==n);)a++;return null!==n&&(t.directiveStylingLast=a),r}function Is(n,e,t){const r=t?1:2;let i=-1;if(null!==e)for(let s=0;s<e.length;s++){const o=e[s];"number"==typeof o?i=o:i===r&&(Array.isArray(n)||(n=void 0===n?[]:["",n]),dt(n,o,!!t||e[++s]))}return void 0===n?null:n}function iy(n,e,t,r,i,s){const o=null===e;let a;for(;i>0;){const l=n[i],u=Array.isArray(l),c=u?l[1]:l,d=null===c;let f=t[i+1];f===L&&(f=d?ie:void 0);let h=d?Cu(f,r):c===r?f:void 0;if(u&&!ca(h)&&(h=Cu(l,r)),ca(h)&&(a=h,o))return a;const p=n[i+1];i=o?$t(p):Cn(p)}if(null!==e){let l=s?e.residualClasses:e.residualStyles;null!=l&&(a=Cu(l,r))}return a}function ca(n){return void 0!==n}function As(n,e=""){const t=v(),r=K(),i=n+20,s=r.firstCreatePass?ii(r,i,1,e,null):r.data[i],o=t[i]=function zu(n,e){return me(n)?n.createText(e):n.createTextNode(e)}(t[H],e);Zo(r,t,o,s),Jt(s,!1)}function xs(n){return da("",n,""),xs}function da(n,e,t){const r=v(),i=function di(n,e,t,r){return $e(n,qr(),t)?e+P(t)+r:L}(r,n,e,t);return i!==L&&wn(r,Qe(),i),da}const Er=void 0;var LS=["en",[["a","p"],["AM","PM"],Er],[["AM","PM"],Er,Er],[["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"]],Er,[["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"]],Er,[["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}",Er,"{1} 'at' {0}",Er],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function PS(n){const t=Math.floor(Math.abs(n)),r=n.toString().replace(/^[^.]*\.?/,"").length;return 1===t&&0===r?1:5}];let Di={};function My(n){return n in Di||(Di[n]=ne.ng&&ne.ng.common&&ne.ng.common.locales&&ne.ng.common.locales[n]),Di[n]}var w=(()=>((w=w||{})[w.LocaleId=0]="LocaleId",w[w.DayPeriodsFormat=1]="DayPeriodsFormat",w[w.DayPeriodsStandalone=2]="DayPeriodsStandalone",w[w.DaysFormat=3]="DaysFormat",w[w.DaysStandalone=4]="DaysStandalone",w[w.MonthsFormat=5]="MonthsFormat",w[w.MonthsStandalone=6]="MonthsStandalone",w[w.Eras=7]="Eras",w[w.FirstDayOfWeek=8]="FirstDayOfWeek",w[w.WeekendRange=9]="WeekendRange",w[w.DateFormat=10]="DateFormat",w[w.TimeFormat=11]="TimeFormat",w[w.DateTimeFormat=12]="DateTimeFormat",w[w.NumberSymbols=13]="NumberSymbols",w[w.NumberFormats=14]="NumberFormats",w[w.CurrencyCode=15]="CurrencyCode",w[w.CurrencySymbol=16]="CurrencySymbol",w[w.CurrencyName=17]="CurrencyName",w[w.Currencies=18]="Currencies",w[w.Directionality=19]="Directionality",w[w.PluralCase=20]="PluralCase",w[w.ExtraData=21]="ExtraData",w))();const fa="en-US";let Sy=fa;function Vc(n,e,t,r,i){if(n=V(n),Array.isArray(n))for(let s=0;s<n.length;s++)Vc(n[s],e,t,r,i);else{const s=K(),o=v();let a=li(n)?n:V(n.provide),l=Yg(n);const u=Me(),c=1048575&u.providerIndexes,d=u.directiveStart,f=u.providerIndexes>>20;if(li(n)||!n.multi){const h=new ts(l,i,b),p=Uc(a,e,i?c:c+f,d);-1===p?(Vo(rs(u,o),s,a),Hc(s,n,e.length),e.push(a),u.directiveStart++,u.directiveEnd++,i&&(u.providerIndexes+=1048576),t.push(h),o.push(h)):(t[p]=h,o[p]=h)}else{const h=Uc(a,e,c+f,d),p=Uc(a,e,c,c+f),g=h>=0&&t[h],y=p>=0&&t[p];if(i&&!y||!i&&!g){Vo(rs(u,o),s,a);const _=function PI(n,e,t,r,i){const s=new ts(n,t,b);return s.multi=[],s.index=e,s.componentProviders=0,Yy(s,i,r&&!t),s}(i?kI:FI,t.length,i,r,l);!i&&y&&(t[p].providerFactory=_),Hc(s,n,e.length,0),e.push(a),u.directiveStart++,u.directiveEnd++,i&&(u.providerIndexes+=1048576),t.push(_),o.push(_)}else Hc(s,n,h>-1?h:p,Yy(t[i?p:h],l,!i&&r));!i&&r&&y&&t[p].componentProviders++}}}function Hc(n,e,t,r){const i=li(e),s=function sM(n){return!!n.useClass}(e);if(i||s){const l=(s?V(e.useClass):e).prototype.ngOnDestroy;if(l){const u=n.destroyHooks||(n.destroyHooks=[]);if(!i&&e.multi){const c=u.indexOf(t);-1===c?u.push(t,[r,l]):u[c+1].push(r,l)}else u.push(t,l)}}}function Yy(n,e,t){return t&&n.componentProviders++,n.multi.push(e)-1}function Uc(n,e,t,r){for(let i=t;i<r;i++)if(e[i]===n)return i;return-1}function FI(n,e,t,r){return $c(this.multi,[])}function kI(n,e,t,r){const i=this.multi;let s;if(this.providerFactory){const o=this.providerFactory.componentProviders,a=is(t,t[1],this.providerFactory.index,r);s=a.slice(0,o),$c(i,s);for(let l=o;l<a.length;l++)s.push(a[l])}else s=[],$c(i,s);return s}function $c(n,e){for(let t=0;t<n.length;t++)e.push((0,n[t])());return e}function Tn(n,e=[]){return t=>{t.providersResolver=(r,i)=>function OI(n,e,t){const r=K();if(r.firstCreatePass){const i=Ht(n);Vc(t,r.data,r.blueprint,i,!0),Vc(e,r.data,r.blueprint,i,!1)}}(r,i?i(n):n,e)}}class Xy{}class jI{resolveComponentFactory(e){throw function BI(n){const e=Error(`No component factory found for ${J(n)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=n,e}(e)}}let Ci=(()=>{class n{}return n.NULL=new jI,n})();function VI(){return wi(Me(),v())}function wi(n,e){return new Re(St(n,e))}let Re=(()=>{class n{constructor(t){this.nativeElement=t}}return n.__NG_ELEMENT_ID__=VI,n})();function HI(n){return n instanceof Re?n.nativeElement:n}class ks{}let Ps=(()=>{class n{}return n.__NG_ELEMENT_ID__=()=>function $I(){const n=v(),t=ct(Me().index,n);return function UI(n){return n[H]}(Xt(t)?t:n)}(),n})(),zI=(()=>{class n{}return n.\u0275prov=F({token:n,providedIn:"root",factory:()=>null}),n})();class Ti{constructor(e){this.full=e,this.major=e.split(".")[0],this.minor=e.split(".")[1],this.patch=e.split(".").slice(2).join(".")}}const qI=new Ti("13.1.3"),zc={};function ya(n,e,t,r,i=!1){for(;null!==t;){const s=e[t.index];if(null!==s&&r.push(Ee(s)),Vt(s))for(let a=10;a<s.length;a++){const l=s[a],u=l[1].firstChild;null!==u&&ya(l[1],l,u,r)}const o=t.type;if(8&o)ya(n,e,t.child,r);else if(32&o){const a=Hu(t,e);let l;for(;l=a();)r.push(l)}else if(16&o){const a=og(e,t);if(Array.isArray(a))r.push(...a);else{const l=_s(e[16]);ya(l[1],l,a,r,!0)}}t=i?t.projectionNext:t.next}return r}class Ls{constructor(e,t){this._lView=e,this._cdRefInjectingView=t,this._appRef=null,this._attachedToViewContainer=!1}get rootNodes(){const e=this._lView,t=e[1];return ya(t,e,t.firstChild,[])}get context(){return this._lView[8]}set context(e){this._lView[8]=e}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._attachedToViewContainer){const e=this._lView[3];if(Vt(e)){const t=e[8],r=t?t.indexOf(this):-1;r>-1&&(Wu(e,r),Uo(t,r))}this._attachedToViewContainer=!1}Yp(this._lView[1],this._lView)}onDestroy(e){Rg(this._lView[1],this._lView,null,e)}markForCheck(){gc(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){yc(this._lView[1],this._lView,this.context)}checkNoChanges(){!function KT(n,e,t){xo(!0);try{yc(n,e,t)}finally{xo(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(){if(this._appRef)throw new Y(902,"");this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function z0(n,e){vs(n,e,e[H],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(e){if(this._attachedToViewContainer)throw new Y(902,"");this._appRef=e}}class WI extends Ls{constructor(e){super(e),this._view=e}detectChanges(){Hg(this._view)}checkNoChanges(){!function QT(n){xo(!0);try{Hg(n)}finally{xo(!1)}}(this._view)}get context(){return null}}class e_ extends Ci{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=je(e);return new qc(t,this.ngModule)}}function t_(n){const e=[];for(let t in n)n.hasOwnProperty(t)&&e.push({propName:n[t],templateName:t});return e}const KI=new I("SCHEDULER_TOKEN",{providedIn:"root",factory:()=>$p});class qc extends Xy{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=function cT(n){return n.map(uT).join(",")}(e.selectors),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return t_(this.componentDef.inputs)}get outputs(){return t_(this.componentDef.outputs)}create(e,t,r,i){const s=(i=i||this.ngModule)?function QI(n,e){return{get:(t,r,i)=>{const s=n.get(t,zc,i);return s!==zc||r===zc?s:e.get(t,r,i)}}}(e,i.injector):e,o=s.get(ks,Vh),a=s.get(zI,null),l=o.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||"div",c=r?function Ng(n,e,t){if(me(n))return n.selectRootElement(e,t===Bt.ShadowDom);let r="string"==typeof e?n.querySelector(e):e;return r.textContent="",r}(l,r,this.componentDef.encapsulation):qu(o.createRenderer(null,this.componentDef),u,function GI(n){const e=n.toLowerCase();return"svg"===e?"http://www.w3.org/2000/svg":"math"===e?"http://www.w3.org/1998/MathML/":null}(u)),d=this.componentDef.onPush?576:528,f=function um(n,e){return{components:[],scheduler:n||$p,clean:ZT,playerHandler:e||null,flags:0}}(),h=ta(0,null,null,1,0,null,null,null,null,null),p=bs(null,h,f,d,null,null,o,l,a,s);let g,y;No(p);try{const _=function am(n,e,t,r,i,s){const o=t[1];t[20]=n;const l=ii(o,20,2,"#host",null),u=l.mergedAttrs=e.hostAttrs;null!==u&&(ra(l,u,!0),null!==n&&(Po(i,n,u),null!==l.classes&&Yu(i,n,l.classes),null!==l.styles&&ug(i,n,l.styles)));const c=r.createRenderer(n,e),d=bs(t,Ag(e),null,e.onPush?64:16,t[20],l,r,c,s||null,null);return o.firstCreatePass&&(Vo(rs(l,t),o,e.type),Lg(o,l),Bg(l,t.length,1)),na(t,d),t[20]=d}(c,this.componentDef,p,o,l);if(c)if(r)Po(l,c,["ng-version",qI.full]);else{const{attrs:m,classes:D}=function dT(n){const e=[],t=[];let r=1,i=2;for(;r<n.length;){let s=n[r];if("string"==typeof s)2===i?""!==s&&e.push(s,n[++r]):8===i&&t.push(s);else{if(!Ut(i))break;i=s}r++}return{attrs:e,classes:t}}(this.componentDef.selectors[0]);m&&Po(l,c,m),D&&D.length>0&&Yu(l,c,D.join(" "))}if(y=ou(h,20),void 0!==t){const m=y.projection=[];for(let D=0;D<this.ngContentSelectors.length;D++){const T=t[D];m.push(null!=T?Array.from(T):null)}}g=function lm(n,e,t,r,i){const s=t[1],o=function RT(n,e,t){const r=Me();n.firstCreatePass&&(t.providersResolver&&t.providersResolver(t),jg(n,r,e,si(n,e,1,null),t));const i=is(e,n,r.directiveStart,r);He(i,e);const s=St(r,e);return s&&He(s,e),i}(s,t,e);if(r.components.push(o),n[8]=o,i&&i.forEach(l=>l(o,e)),e.contentQueries){const l=Me();e.contentQueries(1,o,l.directiveStart)}const a=Me();return!s.firstCreatePass||null===e.hostBindings&&null===e.hostAttrs||($n(a.index),kg(t[1],a,0,a.directiveStart,a.directiveEnd,e),Pg(e,o)),o}(_,this.componentDef,p,f,[mM]),Ds(h,p,null)}finally{Ro()}return new YI(this.componentType,g,wi(y,p),p,y)}}class YI extends class LI{}{constructor(e,t,r,i,s){super(),this.location=r,this._rootLView=i,this._tNode=s,this.instance=t,this.hostView=this.changeDetectorRef=new WI(i),this.componentType=e}get injector(){return new Kr(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(e){this.hostView.onDestroy(e)}}class Mn{}class n_{}const Mi=new Map;class s_ extends Mn{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new e_(this);const r=wt(e);this._bootstrapComponents=rn(r.bootstrap),this._r3Injector=Zg(e,t,[{provide:Mn,useValue:this},{provide:Ci,useValue:this.componentFactoryResolver}],J(e)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(e)}get(e,t=Ue.THROW_IF_NOT_FOUND,r=B.Default){return e===Ue||e===Mn||e===vc?this:this._r3Injector.get(e,t,r)}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Wc extends n_{constructor(e){super(),this.moduleType=e,null!==wt(e)&&function JI(n){const e=new Set;!function t(r){const i=wt(r,!0),s=i.id;null!==s&&(function r_(n,e,t){if(e&&e!==t)throw new Error(`Duplicate module registered for ${n} - ${J(e)} vs ${J(e.name)}`)}(s,Mi.get(s),r),Mi.set(s,r));const o=rn(i.imports);for(const a of o)e.has(a)||(e.add(a),t(a))}(n)}(e)}create(e){return new s_(this.moduleType,e)}}function Gc(n){return e=>{setTimeout(n,void 0,e)}}const ze=class yA extends Le{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,r){var i,s,o;let a=e,l=t||(()=>null),u=r;if(e&&"object"==typeof e){const d=e;a=null===(i=d.next)||void 0===i?void 0:i.bind(d),l=null===(s=d.error)||void 0===s?void 0:s.bind(d),u=null===(o=d.complete)||void 0===o?void 0:o.bind(d)}this.__isAsync&&(l=Gc(l),a&&(a=Gc(a)),u&&(u=Gc(u)));const c=super.subscribe({next:a,error:l,complete:u});return e instanceof ot&&e.add(c),c}};function _A(){return this._results[ui()]()}class Kc{constructor(e=!1){this._emitDistinctChangesOnly=e,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const t=ui(),r=Kc.prototype;r[t]||(r[t]=_A)}get changes(){return this._changes||(this._changes=new ze)}get(e){return this._results[e]}map(e){return this._results.map(e)}filter(e){return this._results.filter(e)}find(e){return this._results.find(e)}reduce(e,t){return this._results.reduce(e,t)}forEach(e){this._results.forEach(e)}some(e){return this._results.some(e)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(e,t){const r=this;r.dirty=!1;const i=It(e);(this._changesDetected=!function _w(n,e,t){if(n.length!==e.length)return!1;for(let r=0;r<n.length;r++){let i=n[r],s=e[r];if(t&&(i=t(i),s=t(s)),s!==i)return!1}return!0}(r._results,i,t))&&(r._results=i,r.length=i.length,r.last=i[this.length-1],r.first=i[0])}notifyOnChanges(){this._changes&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.emit(this)}setDirty(){this.dirty=!0}destroy(){this.changes.complete(),this.changes.unsubscribe()}}Symbol;let cn=(()=>{class n{}return n.__NG_ELEMENT_ID__=DA,n})();const vA=cn,bA=class extends vA{constructor(e,t,r){super(),this._declarationLView=e,this._declarationTContainer=t,this.elementRef=r}createEmbeddedView(e){const t=this._declarationTContainer.tViews,r=bs(this._declarationLView,t,e,16,null,t.declTNode,null,null,null,null);r[17]=this._declarationLView[this._declarationTContainer.index];const s=this._declarationLView[19];return null!==s&&(r[19]=s.createEmbeddedView(t)),Ds(t,r,e),new Ls(r)}};function DA(){return _a(Me(),v())}function _a(n,e){return 4&n.type?new bA(e,n,wi(n,e)):null}let mt=(()=>{class n{}return n.__NG_ELEMENT_ID__=EA,n})();function EA(){return h_(Me(),v())}const CA=mt,d_=class extends CA{constructor(e,t,r){super(),this._lContainer=e,this._hostTNode=t,this._hostLView=r}get element(){return wi(this._hostTNode,this._hostLView)}get injector(){return new Kr(this._hostTNode,this._hostLView)}get parentInjector(){const e=jo(this._hostTNode,this._hostLView);if(np(e)){const t=Gr(e,this._hostLView),r=Wr(e);return new Kr(t[1].data[r+8],t)}return new Kr(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(e){const t=f_(this._lContainer);return null!==t&&t[e]||null}get length(){return this._lContainer.length-10}createEmbeddedView(e,t,r){const i=e.createEmbeddedView(t||{});return this.insert(i,r),i}createComponent(e,t,r,i,s){const o=e&&!function as(n){return"function"==typeof n}(e);let a;if(o)a=t;else{const d=t||{};a=d.index,r=d.injector,i=d.projectableNodes,s=d.ngModuleRef}const l=o?e:new qc(je(e)),u=r||this.parentInjector;if(!s&&null==l.ngModule&&u){const d=u.get(Mn,null);d&&(s=d)}const c=l.create(u,i,void 0,s);return this.insert(c.hostView,a),c}insert(e,t){const r=e._lView,i=r[1];if(function BC(n){return Vt(n[3])}(r)){const c=this.indexOf(e);if(-1!==c)this.detach(c);else{const d=r[3],f=new d_(d,d[6],d[3]);f.detach(f.indexOf(e))}}const s=this._adjustIndex(t),o=this._lContainer;!function W0(n,e,t,r){const i=10+r,s=t.length;r>0&&(t[i-1][4]=e),r<s-10?(e[4]=t[i],fp(t,10+r,e)):(t.push(e),e[4]=null),e[3]=t;const o=e[17];null!==o&&t!==o&&function G0(n,e){const t=n[9];e[16]!==e[3][3][16]&&(n[2]=!0),null===t?n[9]=[e]:t.push(e)}(o,e);const a=e[19];null!==a&&a.insertView(n),e[2]|=128}(i,r,o,s);const a=Qu(s,o),l=r[H],u=Qo(l,o[7]);return null!==u&&function $0(n,e,t,r,i,s){r[0]=i,r[6]=e,vs(n,r,t,1,i,s)}(i,o[6],l,r,u,a),e.attachToViewContainerRef(),fp(Qc(o),s,e),e}move(e,t){return this.insert(e,t)}indexOf(e){const t=f_(this._lContainer);return null!==t?t.indexOf(e):-1}remove(e){const t=this._adjustIndex(e,-1),r=Wu(this._lContainer,t);r&&(Uo(Qc(this._lContainer),t),Yp(r[1],r))}detach(e){const t=this._adjustIndex(e,-1),r=Wu(this._lContainer,t);return r&&null!=Uo(Qc(this._lContainer),t)?new Ls(r):null}_adjustIndex(e,t=0){return null==e?this.length+t:e}};function f_(n){return n[8]}function Qc(n){return n[8]||(n[8]=[])}function h_(n,e){let t;const r=e[n.index];if(Vt(r))t=r;else{let i;if(8&n.type)i=Ee(r);else{const s=e[H];i=s.createComment("");const o=St(n,e);_r(s,Qo(s,o),i,function Y0(n,e){return me(n)?n.nextSibling(e):e.nextSibling}(s,o),!1)}e[n.index]=t=Vg(r,e,i,n),na(e,t)}return new d_(t,n,e)}class Zc{constructor(e){this.queryList=e,this.matches=null}clone(){return new Zc(this.queryList)}setDirty(){this.queryList.setDirty()}}class Yc{constructor(e=[]){this.queries=e}createEmbeddedView(e){const t=e.queries;if(null!==t){const r=null!==e.contentQueries?e.contentQueries[0]:t.length,i=[];for(let s=0;s<r;s++){const o=t.getByIndex(s);i.push(this.queries[o.indexInDeclarationView].clone())}return new Yc(i)}return null}insertView(e){this.dirtyQueriesWithMatches(e)}detachView(e){this.dirtyQueriesWithMatches(e)}dirtyQueriesWithMatches(e){for(let t=0;t<this.queries.length;t++)null!==__(e,t).matches&&this.queries[t].setDirty()}}class p_{constructor(e,t,r=null){this.predicate=e,this.flags=t,this.read=r}}class Xc{constructor(e=[]){this.queries=e}elementStart(e,t){for(let r=0;r<this.queries.length;r++)this.queries[r].elementStart(e,t)}elementEnd(e){for(let t=0;t<this.queries.length;t++)this.queries[t].elementEnd(e)}embeddedTView(e){let t=null;for(let r=0;r<this.length;r++){const i=null!==t?t.length:0,s=this.getByIndex(r).embeddedTView(e,i);s&&(s.indexInDeclarationView=r,null!==t?t.push(s):t=[s])}return null!==t?new Xc(t):null}template(e,t){for(let r=0;r<this.queries.length;r++)this.queries[r].template(e,t)}getByIndex(e){return this.queries[e]}get length(){return this.queries.length}track(e){this.queries.push(e)}}class Jc{constructor(e,t=-1){this.metadata=e,this.matches=null,this.indexInDeclarationView=-1,this.crossesNgTemplate=!1,this._appliesToNextNode=!0,this._declarationNodeIndex=t}elementStart(e,t){this.isApplyingToNode(t)&&this.matchTNode(e,t)}elementEnd(e){this._declarationNodeIndex===e.index&&(this._appliesToNextNode=!1)}template(e,t){this.elementStart(e,t)}embeddedTView(e,t){return this.isApplyingToNode(e)?(this.crossesNgTemplate=!0,this.addMatch(-e.index,t),new Jc(this.metadata)):null}isApplyingToNode(e){if(this._appliesToNextNode&&1!=(1&this.metadata.flags)){const t=this._declarationNodeIndex;let r=e.parent;for(;null!==r&&8&r.type&&r.index!==t;)r=r.parent;return t===(null!==r?r.index:-1)}return this._appliesToNextNode}matchTNode(e,t){const r=this.metadata.predicate;if(Array.isArray(r))for(let i=0;i<r.length;i++){const s=r[i];this.matchTNodeWithReadOption(e,t,MA(t,s)),this.matchTNodeWithReadOption(e,t,Ho(t,e,s,!1,!1))}else r===cn?4&t.type&&this.matchTNodeWithReadOption(e,t,-1):this.matchTNodeWithReadOption(e,t,Ho(t,e,r,!1,!1))}matchTNodeWithReadOption(e,t,r){if(null!==r){const i=this.metadata.read;if(null!==i)if(i===Re||i===mt||i===cn&&4&t.type)this.addMatch(t.index,-2);else{const s=Ho(t,e,i,!1,!1);null!==s&&this.addMatch(t.index,s)}else this.addMatch(t.index,r)}}addMatch(e,t){null===this.matches?this.matches=[e,t]:this.matches.push(e,t)}}function MA(n,e){const t=n.localNames;if(null!==t)for(let r=0;r<t.length;r+=2)if(t[r]===e)return t[r+1];return null}function IA(n,e,t,r){return-1===t?function SA(n,e){return 11&n.type?wi(n,e):4&n.type?_a(n,e):null}(e,n):-2===t?function AA(n,e,t){return t===Re?wi(e,n):t===cn?_a(e,n):t===mt?h_(e,n):void 0}(n,e,r):is(n,n[1],t,e)}function g_(n,e,t,r){const i=e[19].queries[r];if(null===i.matches){const s=n.data,o=t.matches,a=[];for(let l=0;l<o.length;l+=2){const u=o[l];a.push(u<0?null:IA(e,s[u],o[l+1],t.metadata.read))}i.matches=a}return i.matches}function ed(n,e,t,r){const i=n.queries.getByIndex(t),s=i.matches;if(null!==s){const o=g_(n,e,i,t);for(let a=0;a<s.length;a+=2){const l=s[a];if(l>0)r.push(o[a/2]);else{const u=s[a+1],c=e[-l];for(let d=10;d<c.length;d++){const f=c[d];f[17]===f[3]&&ed(f[1],f,u,r)}if(null!==c[9]){const d=c[9];for(let f=0;f<d.length;f++){const h=d[f];ed(h[1],h,u,r)}}}}}return r}function Kn(n){const e=v(),t=K(),r=Gh();hu(r+1);const i=__(t,r);if(n.dirty&&Hh(e)===(2==(2&i.metadata.flags))){if(null===i.matches)n.reset([]);else{const s=i.crossesNgTemplate?ed(t,e,r,[]):g_(t,e,i,r);n.reset(s,HI),n.notifyOnChanges()}return!0}return!1}function va(n,e,t){const r=K();r.firstCreatePass&&(y_(r,new p_(n,e,t),-1),2==(2&e)&&(r.staticViewQueries=!0)),m_(r,v(),e)}function Vs(n,e,t,r){const i=K();if(i.firstCreatePass){const s=Me();y_(i,new p_(e,t,r),s.index),function NA(n,e){const t=n.contentQueries||(n.contentQueries=[]);e!==(t.length?t[t.length-1]:-1)&&t.push(n.queries.length-1,e)}(i,n),2==(2&t)&&(i.staticContentQueries=!0)}m_(i,v(),t)}function Qn(){return function xA(n,e){return n[19].queries[e].queryList}(v(),Gh())}function m_(n,e,t){const r=new Kc(4==(4&t));Rg(n,e,r,r.destroy),null===e[19]&&(e[19]=new Yc),e[19].queries.push(new Zc(r))}function y_(n,e,t){null===n.queries&&(n.queries=new Xc),n.queries.track(new Jc(e,t))}function __(n,e){return n.queries.getByIndex(e)}function Ea(...n){}const Ca=new I("Application Initializer");let Ii=(()=>{class n{constructor(t){this.appInits=t,this.resolve=Ea,this.reject=Ea,this.initialized=!1,this.done=!1,this.donePromise=new Promise((r,i)=>{this.resolve=r,this.reject=i})}runInitializers(){if(this.initialized)return;const t=[],r=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let i=0;i<this.appInits.length;i++){const s=this.appInits[i]();if(ua(s))t.push(s);else if(Om(s)){const o=new Promise((a,l)=>{s.subscribe({complete:a,error:l})});t.push(o)}}Promise.all(t).then(()=>{r()}).catch(i=>{this.reject(i)}),0===t.length&&r(),this.initialized=!0}}return n.\u0275fac=function(t){return new(t||n)(E(Ca,8))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();const Us=new I("AppId"),ZA={provide:Us,useFactory:function QA(){return`${od()}${od()}${od()}`},deps:[]};function od(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const k_=new I("Platform Initializer"),wa=new I("Platform ID"),P_=new I("appBootstrapListener");let L_=(()=>{class n{log(t){console.log(t)}warn(t){console.warn(t)}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();const Sn=new I("LocaleId"),B_=new I("DefaultCurrencyCode");class YA{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}let Ta=(()=>{class n{compileModuleSync(t){return new Wc(t)}compileModuleAsync(t){return Promise.resolve(this.compileModuleSync(t))}compileModuleAndAllComponentsSync(t){const r=this.compileModuleSync(t),s=rn(wt(t).declarations).reduce((o,a)=>{const l=je(a);return l&&o.push(new qc(l)),o},[]);return new YA(r,s)}compileModuleAndAllComponentsAsync(t){return Promise.resolve(this.compileModuleAndAllComponentsSync(t))}clearCache(){}clearCacheFor(t){}getModuleId(t){}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();const JA=(()=>Promise.resolve(0))();function ad(n){"undefined"==typeof Zone?JA.then(()=>{n&&n.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",n)}class ce{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new ze(!1),this.onMicrotaskEmpty=new ze(!1),this.onStable=new ze(!1),this.onError=new ze(!1),"undefined"==typeof Zone)throw new Error("In this configuration Angular requires Zone.js");Zone.assertZonePatched();const i=this;i._nesting=0,i._outer=i._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(i._inner=i._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(i._inner=i._inner.fork(Zone.longStackTraceZoneSpec)),i.shouldCoalesceEventChangeDetection=!r&&t,i.shouldCoalesceRunChangeDetection=r,i.lastRequestAnimationFrameId=-1,i.nativeRequestAnimationFrame=function ex(){let n=ne.requestAnimationFrame,e=ne.cancelAnimationFrame;if("undefined"!=typeof Zone&&n&&e){const t=n[Zone.__symbol__("OriginalDelegate")];t&&(n=t);const r=e[Zone.__symbol__("OriginalDelegate")];r&&(e=r)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function rx(n){const e=()=>{!function nx(n){n.isCheckStableRunning||-1!==n.lastRequestAnimationFrameId||(n.lastRequestAnimationFrameId=n.nativeRequestAnimationFrame.call(ne,()=>{n.fakeTopEventTask||(n.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{n.lastRequestAnimationFrameId=-1,ud(n),n.isCheckStableRunning=!0,ld(n),n.isCheckStableRunning=!1},void 0,()=>{},()=>{})),n.fakeTopEventTask.invoke()}),ud(n))}(n)};n._inner=n._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(t,r,i,s,o,a)=>{try{return j_(n),t.invokeTask(i,s,o,a)}finally{(n.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||n.shouldCoalesceRunChangeDetection)&&e(),V_(n)}},onInvoke:(t,r,i,s,o,a,l)=>{try{return j_(n),t.invoke(i,s,o,a,l)}finally{n.shouldCoalesceRunChangeDetection&&e(),V_(n)}},onHasTask:(t,r,i,s)=>{t.hasTask(i,s),r===i&&("microTask"==s.change?(n._hasPendingMicrotasks=s.microTask,ud(n),ld(n)):"macroTask"==s.change&&(n.hasPendingMacrotasks=s.macroTask))},onHandleError:(t,r,i,s)=>(t.handleError(i,s),n.runOutsideAngular(()=>n.onError.emit(s)),!1)})}(i)}static isInAngularZone(){return!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!ce.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(ce.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")}run(e,t,r){return this._inner.run(e,t,r)}runTask(e,t,r,i){const s=this._inner,o=s.scheduleEventTask("NgZoneEvent: "+i,e,tx,Ea,Ea);try{return s.runTask(o,t,r)}finally{s.cancelTask(o)}}runGuarded(e,t,r){return this._inner.runGuarded(e,t,r)}runOutsideAngular(e){return this._outer.run(e)}}const tx={};function ld(n){if(0==n._nesting&&!n.hasPendingMicrotasks&&!n.isStable)try{n._nesting++,n.onMicrotaskEmpty.emit(null)}finally{if(n._nesting--,!n.hasPendingMicrotasks)try{n.runOutsideAngular(()=>n.onStable.emit(null))}finally{n.isStable=!0}}}function ud(n){n.hasPendingMicrotasks=!!(n._hasPendingMicrotasks||(n.shouldCoalesceEventChangeDetection||n.shouldCoalesceRunChangeDetection)&&-1!==n.lastRequestAnimationFrameId)}function j_(n){n._nesting++,n.isStable&&(n.isStable=!1,n.onUnstable.emit(null))}function V_(n){n._nesting--,ld(n)}class ix{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new ze,this.onMicrotaskEmpty=new ze,this.onStable=new ze,this.onError=new ze}run(e,t,r){return e.apply(t,r)}runGuarded(e,t,r){return e.apply(t,r)}runOutsideAngular(e){return e()}runTask(e,t,r,i){return e.apply(t,r)}}let cd=(()=>{class n{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone="undefined"==typeof Zone?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ce.assertNotInAngularZone(),ad(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())ad(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(t)||(clearTimeout(r.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,r,i){let s=-1;r&&r>0&&(s=setTimeout(()=>{this._callbacks=this._callbacks.filter(o=>o.timeoutId!==s),t(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:t,timeoutId:s,updateCb:i})}whenStable(t,r,i){if(i&&!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(t,r,i),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,r,i){return[]}}return n.\u0275fac=function(t){return new(t||n)(E(ce))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})(),H_=(()=>{class n{constructor(){this._applications=new Map,dd.addToWindow(this)}registerApplication(t,r){this._applications.set(t,r)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,r=!0){return dd.findTestabilityInTree(this,t,r)}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();class sx{addToWindow(e){}findTestabilityInTree(e,t,r){return null}}let Kt,dd=new sx;const U_=new I("AllowMultipleToken");class $_{constructor(e,t){this.name=e,this.token=t}}function z_(n,e,t=[]){const r=`Platform: ${e}`,i=new I(r);return(s=[])=>{let o=q_();if(!o||o.injector.get(U_,!1))if(n)n(t.concat(s).concat({provide:i,useValue:!0}));else{const a=t.concat(s).concat({provide:i,useValue:!0},{provide:bc,useValue:"platform"});!function ux(n){if(Kt&&!Kt.destroyed&&!Kt.injector.get(U_,!1))throw new Y(400,"");Kt=n.get(W_);const e=n.get(k_,null);e&&e.forEach(t=>t())}(Ue.create({providers:a,name:r}))}return function cx(n){const e=q_();if(!e)throw new Y(401,"");return e}()}}function q_(){return Kt&&!Kt.destroyed?Kt:null}let W_=(()=>{class n{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,r){const a=function dx(n,e){let t;return t="noop"===n?new ix:("zone.js"===n?void 0:n)||new ce({enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!!(null==e?void 0:e.ngZoneEventCoalescing),shouldCoalesceRunChangeDetection:!!(null==e?void 0:e.ngZoneRunCoalescing)}),t}(r?r.ngZone:void 0,{ngZoneEventCoalescing:r&&r.ngZoneEventCoalescing||!1,ngZoneRunCoalescing:r&&r.ngZoneRunCoalescing||!1}),l=[{provide:ce,useValue:a}];return a.run(()=>{const u=Ue.create({providers:l,parent:this.injector,name:t.moduleType.name}),c=t.create(u),d=c.injector.get(En,null);if(!d)throw new Y(402,"");return a.runOutsideAngular(()=>{const f=a.onError.subscribe({next:h=>{d.handleError(h)}});c.onDestroy(()=>{fd(this._modules,c),f.unsubscribe()})}),function fx(n,e,t){try{const r=t();return ua(r)?r.catch(i=>{throw e.runOutsideAngular(()=>n.handleError(i)),i}):r}catch(r){throw e.runOutsideAngular(()=>n.handleError(r)),r}}(d,a,()=>{const f=c.injector.get(Ii);return f.runInitializers(),f.donePromise.then(()=>(function US(n){lt(n,"Expected localeId to be defined"),"string"==typeof n&&(Sy=n.toLowerCase().replace(/_/g,"-"))}(c.injector.get(Sn,fa)||fa),this._moduleDoBootstrap(c),c))})})}bootstrapModule(t,r=[]){const i=G_({},r);return function ax(n,e,t){const r=new Wc(t);return Promise.resolve(r)}(0,0,t).then(s=>this.bootstrapModuleFactory(s,i))}_moduleDoBootstrap(t){const r=t.injector.get($s);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(i=>r.bootstrap(i));else{if(!t.instance.ngDoBootstrap)throw new Y(403,"");t.instance.ngDoBootstrap(r)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Y(404,"");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}return n.\u0275fac=function(t){return new(t||n)(E(Ue))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();function G_(n,e){return Array.isArray(e)?e.reduce(G_,n):Object.assign(Object.assign({},n),e)}let $s=(()=>{class n{constructor(t,r,i,s,o){this._zone=t,this._injector=r,this._exceptionHandler=i,this._componentFactoryResolver=s,this._initStatus=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const a=new ae(u=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{u.next(this._stable),u.complete()})}),l=new ae(u=>{let c;this._zone.runOutsideAngular(()=>{c=this._zone.onStable.subscribe(()=>{ce.assertNotInAngularZone(),ad(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,u.next(!0))})})});const d=this._zone.onUnstable.subscribe(()=>{ce.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{u.next(!1)}))});return()=>{c.unsubscribe(),d.unsubscribe()}});this.isStable=Eh(a,l.pipe(Ch()))}bootstrap(t,r){if(!this._initStatus.done)throw new Y(405,"");let i;i=t instanceof Xy?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(i.componentType);const s=function lx(n){return n.isBoundToModule}(i)?void 0:this._injector.get(Mn),a=i.create(Ue.NULL,[],r||i.selector,s),l=a.location.nativeElement,u=a.injector.get(cd,null),c=u&&a.injector.get(H_);return u&&c&&c.registerApplication(l,u),a.onDestroy(()=>{this.detachView(a.hostView),fd(this.components,a),c&&c.unregisterApplication(l)}),this._loadComponent(a),a}tick(){if(this._runningTick)throw new Y(101,"");try{this._runningTick=!0;for(let t of this._views)t.detectChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const r=t;this._views.push(r),r.attachToAppRef(this)}detachView(t){const r=t;fd(this._views,r),r.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(P_,[]).concat(this._bootstrapListeners).forEach(i=>i(t))}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}get viewCount(){return this._views.length}}return n.\u0275fac=function(t){return new(t||n)(E(ce),E(Ue),E(En),E(Ci),E(Ii))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();function fd(n,e){const t=n.indexOf(e);t>-1&&n.splice(t,1)}let Q_=!0,Ma=(()=>{class n{}return n.__NG_ELEMENT_ID__=gx,n})();function gx(n){return function mx(n,e,t){if(Mo(n)&&!t){const r=ct(n.index,e);return new Ls(r,r)}return 47&n.type?new Ls(e[16],e):null}(Me(),v(),16==(16&n))}class nv{constructor(){}supports(e){return Cs(e)}create(e){return new Ex(e)}}const Dx=(n,e)=>e;class Ex{constructor(e){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=e||Dx}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,r=this._removalsHead,i=0,s=null;for(;t||r;){const o=!r||t&&t.currentIndex<iv(r,i,s)?t:r,a=iv(o,i,s),l=o.currentIndex;if(o===r)i--,r=r._nextRemoved;else if(t=t._next,null==o.previousIndex)i++;else{s||(s=[]);const u=a-i,c=l-i;if(u!=c){for(let f=0;f<u;f++){const h=f<s.length?s[f]:s[f]=0,p=h+f;c<=p&&p<u&&(s[f]=h+1)}s[o.previousIndex]=c-u}}a!==l&&e(o,a,l)}}forEachPreviousItem(e){let t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachMovedItem(e){let t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}forEachIdentityChange(e){let t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)}diff(e){if(null==e&&(e=[]),!Cs(e))throw new Y(900,"");return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let i,s,o,t=this._itHead,r=!1;if(Array.isArray(e)){this.length=e.length;for(let a=0;a<this.length;a++)s=e[a],o=this._trackByFn(a,s),null!==t&&Object.is(t.trackById,o)?(r&&(t=this._verifyReinsertion(t,s,o,a)),Object.is(t.item,s)||this._addIdentityChange(t,s)):(t=this._mismatch(t,s,o,a),r=!0),t=t._next}else i=0,function MM(n,e){if(Array.isArray(n))for(let t=0;t<n.length;t++)e(n[t]);else{const t=n[ui()]();let r;for(;!(r=t.next()).done;)e(r.value)}}(e,a=>{o=this._trackByFn(i,a),null!==t&&Object.is(t.trackById,o)?(r&&(t=this._verifyReinsertion(t,a,o,i)),Object.is(t.item,a)||this._addIdentityChange(t,a)):(t=this._mismatch(t,a,o,i),r=!0),t=t._next,i++}),this.length=i;return this._truncate(t),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=e._nextMoved)e.previousIndex=e.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,r,i){let s;return null===e?s=this._itTail:(s=e._prev,this._remove(e)),null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,s,i)):null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(r,i))?(Object.is(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,s,i)):e=this._addAfter(new Cx(t,r),s,i),e}_verifyReinsertion(e,t,r,i){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null);return null!==s?e=this._reinsertAfter(s,e._prev,i):e.currentIndex!=i&&(e.currentIndex=i,this._addToMoves(e,i)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}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(e,t,r){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const i=e._prevRemoved,s=e._nextRemoved;return null===i?this._removalsHead=s:i._nextRemoved=s,null===s?this._removalsTail=i:s._prevRemoved=i,this._insertAfter(e,t,r),this._addToMoves(e,r),e}_moveAfter(e,t,r){return this._unlink(e),this._insertAfter(e,t,r),this._addToMoves(e,r),e}_addAfter(e,t,r){return this._insertAfter(e,t,r),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,r){const i=null===t?this._itHead:t._next;return e._next=i,e._prev=t,null===i?this._itTail=e:i._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new rv),this._linkedRecords.put(e),e.currentIndex=r,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,r=e._next;return null===t?this._itHead=r:t._next=r,null===r?this._itTail=t:r._prev=t,e}_addToMoves(e,t){return e.previousIndex===t||(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e),e}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new rv),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class Cx{constructor(e,t){this.item=e,this.trackById=t,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 wx{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===t||t<=r.currentIndex)&&Object.is(r.trackById,e))return r;return null}remove(e){const t=e._prevDup,r=e._nextDup;return null===t?this._head=r:t._nextDup=r,null===r?this._tail=t:r._prevDup=t,null===this._head}}class rv{constructor(){this.map=new Map}put(e){const t=e.trackById;let r=this.map.get(t);r||(r=new wx,this.map.set(t,r)),r.add(e)}get(e,t){const i=this.map.get(e);return i?i.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function iv(n,e,t){const r=n.previousIndex;if(null===r)return r;let i=0;return t&&r<t.length&&(i=t[r]),r+e+i}class sv{constructor(){}supports(e){return e instanceof Map||Mc(e)}create(){return new Tx}}class Tx{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(e){let t;for(t=this._mapHead;null!==t;t=t._next)e(t)}forEachPreviousItem(e){let t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)}forEachChangedItem(e){let t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)}forEachAddedItem(e){let t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)}forEachRemovedItem(e){let t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)}diff(e){if(e){if(!(e instanceof Map||Mc(e)))throw new Y(900,"")}else e=new Map;return this.check(e)?this:null}onDestroy(){}check(e){this._reset();let t=this._mapHead;if(this._appendAfter=null,this._forEach(e,(r,i)=>{if(t&&t.key===i)this._maybeAddToChanges(t,r),this._appendAfter=t,t=t._next;else{const s=this._getOrCreateRecordForKey(i,r);t=this._insertBeforeOrAppend(t,s)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let r=t;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const r=e._prev;return t._next=e,t._prev=r,e._prev=t,r&&(r._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const i=this._records.get(e);this._maybeAddToChanges(i,t);const s=i._prev,o=i._next;return s&&(s._next=o),o&&(o._prev=s),i._next=null,i._prev=null,i}const r=new Mx(e);return this._records.set(e,r),r.currentValue=t,this._addToAdditions(r),r}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Object.is(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(r=>t(e[r],r))}}class Mx{constructor(e){this.key=e,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 ov(){return new Zn([new nv])}let Zn=(()=>{class n{constructor(t){this.factories=t}static create(t,r){if(null!=r){const i=r.factories.slice();t=t.concat(i)}return new n(t)}static extend(t){return{provide:n,useFactory:r=>n.create(t,r||ov()),deps:[[n,new mr,new ft]]}}find(t){const r=this.factories.find(i=>i.supports(t));if(null!=r)return r;throw new Y(901,"")}}return n.\u0275prov=F({token:n,providedIn:"root",factory:ov}),n})();function av(){return new Ai([new sv])}let Ai=(()=>{class n{constructor(t){this.factories=t}static create(t,r){if(r){const i=r.factories.slice();t=t.concat(i)}return new n(t)}static extend(t){return{provide:n,useFactory:r=>n.create(t,r||av()),deps:[[n,new mr,new ft]]}}find(t){const r=this.factories.find(s=>s.supports(t));if(r)return r;throw new Y(901,"")}}return n.\u0275prov=F({token:n,providedIn:"root",factory:av}),n})();const Sx=[new sv],Ax=new Zn([new nv]),xx=new Ai(Sx),Nx=z_(null,"core",[{provide:wa,useValue:"unknown"},{provide:W_,deps:[Ue]},{provide:H_,deps:[]},{provide:L_,deps:[]}]),Px=[{provide:$s,useClass:$s,deps:[ce,Ue,En,Ci,Ii]},{provide:KI,deps:[ce],useFactory:function Lx(n){let e=[];return n.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}},{provide:Ii,useClass:Ii,deps:[[new ft,Ca]]},{provide:Ta,useClass:Ta,deps:[]},ZA,{provide:Zn,useFactory:function Rx(){return Ax},deps:[]},{provide:Ai,useFactory:function Ox(){return xx},deps:[]},{provide:Sn,useFactory:function Fx(n){return n||function kx(){return"undefined"!=typeof $localize&&$localize.locale||fa}()},deps:[[new fs(Sn),new ft,new mr]]},{provide:B_,useValue:"USD"}];let Bx=(()=>{class n{constructor(t){}}return n.\u0275fac=function(t){return new(t||n)(E($s))},n.\u0275mod=Ge({type:n}),n.\u0275inj=Be({providers:Px}),n})(),Ia=null;function Yn(){return Ia}const de=new I("DocumentToken");let wr=(()=>{class n{historyGo(t){throw new Error("Not implemented")}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=F({token:n,factory:function(){return function Ux(){return E(lv)}()},providedIn:"platform"}),n})();const $x=new I("Location Initialized");let lv=(()=>{class n extends wr{constructor(t){super(),this._doc=t,this._init()}_init(){this.location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Yn().getBaseHref(this._doc)}onPopState(t){const r=Yn().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",t,!1),()=>r.removeEventListener("popstate",t)}onHashChange(t){const r=Yn().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",t,!1),()=>r.removeEventListener("hashchange",t)}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(t){this.location.pathname=t}pushState(t,r,i){uv()?this._history.pushState(t,r,i):this.location.hash=i}replaceState(t,r,i){uv()?this._history.replaceState(t,r,i):this.location.hash=i}forward(){this._history.forward()}back(){this._history.back()}historyGo(t=0){this._history.go(t)}getState(){return this._history.state}}return n.\u0275fac=function(t){return new(t||n)(E(de))},n.\u0275prov=F({token:n,factory:function(){return function zx(){return new lv(E(de))}()},providedIn:"platform"}),n})();function uv(){return!!window.history.pushState}function yd(n,e){if(0==n.length)return e;if(0==e.length)return n;let t=0;return n.endsWith("/")&&t++,e.startsWith("/")&&t++,2==t?n+e.substring(1):1==t?n+e:n+"/"+e}function cv(n){const e=n.match(/#|\?|$/),t=e&&e.index||n.length;return n.slice(0,t-("/"===n[t-1]?1:0))+n.slice(t)}function In(n){return n&&"?"!==n[0]?"?"+n:n}let xi=(()=>{class n{historyGo(t){throw new Error("Not implemented")}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=F({token:n,factory:function(){return function qx(n){const e=E(de).location;return new dv(E(wr),e&&e.origin||"")}()},providedIn:"root"}),n})();const _d=new I("appBaseHref");let dv=(()=>{class n extends xi{constructor(t,r){if(super(),this._platformLocation=t,this._removeListenerFns=[],null==r&&(r=this._platformLocation.getBaseHrefFromDOM()),null==r)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");this._baseHref=r}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return yd(this._baseHref,t)}path(t=!1){const r=this._platformLocation.pathname+In(this._platformLocation.search),i=this._platformLocation.hash;return i&&t?`${r}${i}`:r}pushState(t,r,i,s){const o=this.prepareExternalUrl(i+In(s));this._platformLocation.pushState(t,r,o)}replaceState(t,r,i,s){const o=this.prepareExternalUrl(i+In(s));this._platformLocation.replaceState(t,r,o)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}historyGo(t=0){var r,i;null===(i=(r=this._platformLocation).historyGo)||void 0===i||i.call(r,t)}}return n.\u0275fac=function(t){return new(t||n)(E(wr),E(_d,8))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})(),Wx=(()=>{class n extends xi{constructor(t,r){super(),this._platformLocation=t,this._baseHref="",this._removeListenerFns=[],null!=r&&(this._baseHref=r)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}path(t=!1){let r=this._platformLocation.hash;return null==r&&(r="#"),r.length>0?r.substring(1):r}prepareExternalUrl(t){const r=yd(this._baseHref,t);return r.length>0?"#"+r:r}pushState(t,r,i,s){let o=this.prepareExternalUrl(i+In(s));0==o.length&&(o=this._platformLocation.pathname),this._platformLocation.pushState(t,r,o)}replaceState(t,r,i,s){let o=this.prepareExternalUrl(i+In(s));0==o.length&&(o=this._platformLocation.pathname),this._platformLocation.replaceState(t,r,o)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}historyGo(t=0){var r,i;null===(i=(r=this._platformLocation).historyGo)||void 0===i||i.call(r,t)}}return n.\u0275fac=function(t){return new(t||n)(E(wr),E(_d,8))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})(),vd=(()=>{class n{constructor(t,r){this._subject=new ze,this._urlChangeListeners=[],this._platformStrategy=t;const i=this._platformStrategy.getBaseHref();this._platformLocation=r,this._baseHref=cv(fv(i)),this._platformStrategy.onPopState(s=>{this._subject.emit({url:this.path(!0),pop:!0,state:s.state,type:s.type})})}path(t=!1){return this.normalize(this._platformStrategy.path(t))}getState(){return this._platformLocation.getState()}isCurrentPathEqualTo(t,r=""){return this.path()==this.normalize(t+In(r))}normalize(t){return n.stripTrailingSlash(function Kx(n,e){return n&&e.startsWith(n)?e.substring(n.length):e}(this._baseHref,fv(t)))}prepareExternalUrl(t){return t&&"/"!==t[0]&&(t="/"+t),this._platformStrategy.prepareExternalUrl(t)}go(t,r="",i=null){this._platformStrategy.pushState(i,"",t,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+In(r)),i)}replaceState(t,r="",i=null){this._platformStrategy.replaceState(i,"",t,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+In(r)),i)}forward(){this._platformStrategy.forward()}back(){this._platformStrategy.back()}historyGo(t=0){var r,i;null===(i=(r=this._platformStrategy).historyGo)||void 0===i||i.call(r,t)}onUrlChange(t){this._urlChangeListeners.push(t),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(r=>{this._notifyUrlChangeListeners(r.url,r.state)}))}_notifyUrlChangeListeners(t="",r){this._urlChangeListeners.forEach(i=>i(t,r))}subscribe(t,r,i){return this._subject.subscribe({next:t,error:r,complete:i})}}return n.normalizeQueryParams=In,n.joinWithSlash=yd,n.stripTrailingSlash=cv,n.\u0275fac=function(t){return new(t||n)(E(xi),E(wr))},n.\u0275prov=F({token:n,factory:function(){return function Gx(){return new vd(E(xi),E(wr))}()},providedIn:"root"}),n})();function fv(n){return n.replace(/\/index.html$/,"")}var Ce=(()=>((Ce=Ce||{})[Ce.Zero=0]="Zero",Ce[Ce.One=1]="One",Ce[Ce.Two=2]="Two",Ce[Ce.Few=3]="Few",Ce[Ce.Many=4]="Many",Ce[Ce.Other=5]="Other",Ce))();const tN=function Ty(n){return function Je(n){const e=function BS(n){return n.toLowerCase().replace(/_/g,"-")}(n);let t=My(e);if(t)return t;const r=e.split("-")[0];if(t=My(r),t)return t;if("en"===r)return LS;throw new Error(`Missing locale data for the locale "${n}".`)}(n)[w.PluralCase]};class Ba{}let xN=(()=>{class n extends Ba{constructor(t){super(),this.locale=t}getPluralCategory(t,r){switch(tN(r||this.locale)(t)){case Ce.Zero:return"zero";case Ce.One:return"one";case Ce.Two:return"two";case Ce.Few:return"few";case Ce.Many:return"many";default:return"other"}}}return n.\u0275fac=function(t){return new(t||n)(E(Sn))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();class Id{constructor(e,t){this._viewContainerRef=e,this._templateRef=t,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(e){e&&!this._created?this.create():!e&&this._created&&this.destroy()}}let ja=(()=>{class n{constructor(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(t){this._ngSwitch=t,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(t){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(t)}_matchCase(t){const r=t==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||r,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),r}_updateDefaultCases(t){if(this._defaultViews&&t!==this._defaultUsed){this._defaultUsed=t;for(let r=0;r<this._defaultViews.length;r++)this._defaultViews[r].enforceState(t)}}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275dir=ee({type:n,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"}}),n})(),Cv=(()=>{class n{constructor(t,r,i){this.ngSwitch=i,i._addCase(),this._view=new Id(t,r)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}return n.\u0275fac=function(t){return new(t||n)(b(mt),b(cn),b(ja,9))},n.\u0275dir=ee({type:n,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"}}),n})(),uR=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=Ge({type:n}),n.\u0275inj=Be({providers:[{provide:Ba,useClass:xN}]}),n})();const Mv="browser";let pR=(()=>{class n{}return n.\u0275prov=F({token:n,providedIn:"root",factory:()=>new gR(E(de),window)}),n})();class gR{constructor(e,t){this.document=e,this.window=t,this.offset=()=>[0,0]}setOffset(e){this.offset=Array.isArray(e)?()=>e:e}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(e){this.supportsScrolling()&&this.window.scrollTo(e[0],e[1])}scrollToAnchor(e){if(!this.supportsScrolling())return;const t=function mR(n,e){const t=n.getElementById(e)||n.getElementsByName(e)[0];if(t)return t;if("function"==typeof n.createTreeWalker&&n.body&&(n.body.createShadowRoot||n.body.attachShadow)){const r=n.createTreeWalker(n.body,NodeFilter.SHOW_ELEMENT);let i=r.currentNode;for(;i;){const s=i.shadowRoot;if(s){const o=s.getElementById(e)||s.querySelector(`[name="${e}"]`);if(o)return o}i=r.nextNode()}}return null}(this.document,e);t&&(this.scrollToElement(t),this.attemptFocus(t))}setHistoryScrollRestoration(e){if(this.supportScrollRestoration()){const t=this.window.history;t&&t.scrollRestoration&&(t.scrollRestoration=e)}}scrollToElement(e){const t=e.getBoundingClientRect(),r=t.left+this.window.pageXOffset,i=t.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo(r-s[0],i-s[1])}attemptFocus(e){return e.focus(),this.document.activeElement===e}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const e=Sv(this.window.history)||Sv(Object.getPrototypeOf(this.window.history));return!(!e||!e.writable&&!e.set)}catch(e){return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch(e){return!1}}}function Sv(n){return Object.getOwnPropertyDescriptor(n,"scrollRestoration")}class Nd extends class _R extends class Hx{}{constructor(){super(...arguments),this.supportsDOMEvents=!0}}{static makeCurrent(){!function Vx(n){Ia||(Ia=n)}(new Nd)}onAndCancel(e,t,r){return e.addEventListener(t,r,!1),()=>{e.removeEventListener(t,r,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){e.parentNode&&e.parentNode.removeChild(e)}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return"window"===t?window:"document"===t?e:"body"===t?e.body:null}getBaseHref(e){const t=function vR(){return Ws=Ws||document.querySelector("base"),Ws?Ws.getAttribute("href"):null}();return null==t?null:function bR(n){Va=Va||document.createElement("a"),Va.setAttribute("href",n);const e=Va.pathname;return"/"===e.charAt(0)?e:`/${e}`}(t)}resetBaseElement(){Ws=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return function NN(n,e){e=encodeURIComponent(e);for(const t of n.split(";")){const r=t.indexOf("="),[i,s]=-1==r?[t,""]:[t.slice(0,r),t.slice(r+1)];if(i.trim()===e)return decodeURIComponent(s)}return null}(document.cookie,e)}}let Va,Ws=null;const Iv=new I("TRANSITION_ID"),ER=[{provide:Ca,useFactory:function DR(n,e,t){return()=>{t.get(Ii).donePromise.then(()=>{const r=Yn(),i=e.querySelectorAll(`style[ng-transition="${n}"]`);for(let s=0;s<i.length;s++)r.remove(i[s])})}},deps:[Iv,de,Ue],multi:!0}];class Rd{static init(){!function ox(n){dd=n}(new Rd)}addToWindow(e){ne.getAngularTestability=(r,i=!0)=>{const s=e.findTestabilityInTree(r,i);if(null==s)throw new Error("Could not find testability for element.");return s},ne.getAllAngularTestabilities=()=>e.getAllTestabilities(),ne.getAllAngularRootElements=()=>e.getAllRootElements(),ne.frameworkStabilizers||(ne.frameworkStabilizers=[]),ne.frameworkStabilizers.push(r=>{const i=ne.getAllAngularTestabilities();let s=i.length,o=!1;const a=function(l){o=o||l,s--,0==s&&r(o)};i.forEach(function(l){l.whenStable(a)})})}findTestabilityInTree(e,t,r){if(null==t)return null;const i=e.getTestability(t);return null!=i?i:r?Yn().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null}}let CR=(()=>{class n{build(){return new XMLHttpRequest}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();const Ha=new I("EventManagerPlugins");let Ua=(()=>{class n{constructor(t,r){this._zone=r,this._eventNameToPlugin=new Map,t.forEach(i=>i.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,r,i){return this._findPluginFor(r).addEventListener(t,r,i)}addGlobalEventListener(t,r,i){return this._findPluginFor(r).addGlobalEventListener(t,r,i)}getZone(){return this._zone}_findPluginFor(t){const r=this._eventNameToPlugin.get(t);if(r)return r;const i=this._plugins;for(let s=0;s<i.length;s++){const o=i[s];if(o.supports(t))return this._eventNameToPlugin.set(t,o),o}throw new Error(`No event manager plugin found for event ${t}`)}}return n.\u0275fac=function(t){return new(t||n)(E(Ha),E(ce))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();class Av{constructor(e){this._doc=e}addGlobalEventListener(e,t,r){const i=Yn().getGlobalEventTarget(this._doc,e);if(!i)throw new Error(`Unsupported event target ${i} for event ${t}`);return this.addEventListener(i,t,r)}}let xv=(()=>{class n{constructor(){this._stylesSet=new Set}addStyles(t){const r=new Set;t.forEach(i=>{this._stylesSet.has(i)||(this._stylesSet.add(i),r.add(i))}),this.onStylesAdded(r)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})(),Gs=(()=>{class n extends xv{constructor(t){super(),this._doc=t,this._hostNodes=new Map,this._hostNodes.set(t.head,[])}_addStylesToHost(t,r,i){t.forEach(s=>{const o=this._doc.createElement("style");o.textContent=s,i.push(r.appendChild(o))})}addHost(t){const r=[];this._addStylesToHost(this._stylesSet,t,r),this._hostNodes.set(t,r)}removeHost(t){const r=this._hostNodes.get(t);r&&r.forEach(Nv),this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach((r,i)=>{this._addStylesToHost(t,i,r)})}ngOnDestroy(){this._hostNodes.forEach(t=>t.forEach(Nv))}}return n.\u0275fac=function(t){return new(t||n)(E(de))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();function Nv(n){Yn().remove(n)}const Od={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/"},Fd=/%COMP%/g;function $a(n,e,t){for(let r=0;r<e.length;r++){let i=e[r];Array.isArray(i)?$a(n,i,t):(i=i.replace(Fd,n),t.push(i))}return t}function Fv(n){return e=>{if("__ngUnwrap__"===e)return n;!1===n(e)&&(e.preventDefault(),e.returnValue=!1)}}let za=(()=>{class n{constructor(t,r,i){this.eventManager=t,this.sharedStylesHost=r,this.appId=i,this.rendererByCompId=new Map,this.defaultRenderer=new kd(t)}createRenderer(t,r){if(!t||!r)return this.defaultRenderer;switch(r.encapsulation){case Bt.Emulated:{let i=this.rendererByCompId.get(r.id);return i||(i=new AR(this.eventManager,this.sharedStylesHost,r,this.appId),this.rendererByCompId.set(r.id,i)),i.applyToHost(t),i}case 1:case Bt.ShadowDom:return new xR(this.eventManager,this.sharedStylesHost,t,r);default:if(!this.rendererByCompId.has(r.id)){const i=$a(r.id,r.styles,[]);this.sharedStylesHost.addStyles(i),this.rendererByCompId.set(r.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return n.\u0275fac=function(t){return new(t||n)(E(Ua),E(Gs),E(Us))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();class kd{constructor(e){this.eventManager=e,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(e,t){return t?document.createElementNS(Od[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){e.appendChild(t)}insertBefore(e,t,r){e&&e.insertBefore(t,r)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let r="string"==typeof e?document.querySelector(e):e;if(!r)throw new Error(`The selector "${e}" did not match any elements`);return t||(r.textContent=""),r}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,r,i){if(i){t=i+":"+t;const s=Od[i];s?e.setAttributeNS(s,t,r):e.setAttribute(t,r)}else e.setAttribute(t,r)}removeAttribute(e,t,r){if(r){const i=Od[r];i?e.removeAttributeNS(i,t):e.removeAttribute(`${r}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,r,i){i&(pt.DashCase|pt.Important)?e.style.setProperty(t,r,i&pt.Important?"important":""):e.style[t]=r}removeStyle(e,t,r){r&pt.DashCase?e.style.removeProperty(t):e.style[t]=""}setProperty(e,t,r){e[t]=r}setValue(e,t){e.nodeValue=t}listen(e,t,r){return"string"==typeof e?this.eventManager.addGlobalEventListener(e,t,Fv(r)):this.eventManager.addEventListener(e,t,Fv(r))}}class AR extends kd{constructor(e,t,r,i){super(e),this.component=r;const s=$a(i+"-"+r.id,r.styles,[]);t.addStyles(s),this.contentAttr=function MR(n){return"_ngcontent-%COMP%".replace(Fd,n)}(i+"-"+r.id),this.hostAttr=function SR(n){return"_nghost-%COMP%".replace(Fd,n)}(i+"-"+r.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,"")}createElement(e,t){const r=super.createElement(e,t);return super.setAttribute(r,this.contentAttr,""),r}}class xR extends kd{constructor(e,t,r,i){super(e),this.sharedStylesHost=t,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=$a(i.id,i.styles,[]);for(let o=0;o<s.length;o++){const a=document.createElement("style");a.textContent=s[o],this.shadowRoot.appendChild(a)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,r){return super.insertBefore(this.nodeOrShadowRoot(e),t,r)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}}let NR=(()=>{class n extends Av{constructor(t){super(t)}supports(t){return!0}addEventListener(t,r,i){return t.addEventListener(r,i,!1),()=>this.removeEventListener(t,r,i)}removeEventListener(t,r,i){return t.removeEventListener(r,i)}}return n.\u0275fac=function(t){return new(t||n)(E(de))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();const Pv=["alt","control","meta","shift"],OR={"\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"},Lv={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\x90":"NumLock"},FR={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey};let kR=(()=>{class n extends Av{constructor(t){super(t)}supports(t){return null!=n.parseEventName(t)}addEventListener(t,r,i){const s=n.parseEventName(r),o=n.eventCallback(s.fullKey,i,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Yn().onAndCancel(t,s.domEventName,o))}static parseEventName(t){const r=t.toLowerCase().split("."),i=r.shift();if(0===r.length||"keydown"!==i&&"keyup"!==i)return null;const s=n._normalizeKey(r.pop());let o="";if(Pv.forEach(l=>{const u=r.indexOf(l);u>-1&&(r.splice(u,1),o+=l+".")}),o+=s,0!=r.length||0===s.length)return null;const a={};return a.domEventName=i,a.fullKey=o,a}static getEventFullKey(t){let r="",i=function PR(n){let e=n.key;if(null==e){if(e=n.keyIdentifier,null==e)return"Unidentified";e.startsWith("U+")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===n.location&&Lv.hasOwnProperty(e)&&(e=Lv[e]))}return OR[e]||e}(t);return i=i.toLowerCase()," "===i?i="space":"."===i&&(i="dot"),Pv.forEach(s=>{s!=i&&FR[s](t)&&(r+=s+".")}),r+=i,r}static eventCallback(t,r,i){return s=>{n.getEventFullKey(s)===t&&i.runGuarded(()=>r(s))}}static _normalizeKey(t){return"esc"===t?"escape":t}}return n.\u0275fac=function(t){return new(t||n)(E(de))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();const VR=z_(Nx,"browser",[{provide:wa,useValue:Mv},{provide:k_,useValue:function LR(){Nd.makeCurrent(),Rd.init()},multi:!0},{provide:de,useFactory:function jR(){return function FC(n){iu=n}(document),document},deps:[]}]),HR=[{provide:bc,useValue:"root"},{provide:En,useFactory:function BR(){return new En},deps:[]},{provide:Ha,useClass:NR,multi:!0,deps:[de,ce,wa]},{provide:Ha,useClass:kR,multi:!0,deps:[de]},{provide:za,useClass:za,deps:[Ua,Gs,Us]},{provide:ks,useExisting:za},{provide:xv,useExisting:Gs},{provide:Gs,useClass:Gs,deps:[de]},{provide:cd,useClass:cd,deps:[ce]},{provide:Ua,useClass:Ua,deps:[Ha,ce]},{provide:class yR{},useClass:CR,deps:[]}];let Bv=(()=>{class n{constructor(t){if(t)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}static withServerTransition(t){return{ngModule:n,providers:[{provide:Us,useValue:t.appId},{provide:Iv,useExisting:Us},ER]}}}return n.\u0275fac=function(t){return new(t||n)(E(n,12))},n.\u0275mod=Ge({type:n}),n.\u0275inj=Be({providers:HR,imports:[uR,Bx]}),n})();"undefined"!=typeof window&&window;let Ld=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=F({token:n,factory:function(t){let r=null;return r=t?new(t||n):E(Hv),r},providedIn:"root"}),n})(),Hv=(()=>{class n extends Ld{constructor(t){super(),this._doc=t}sanitize(t,r){if(null==r)return null;switch(t){case X.NONE:return r;case X.HTML:return tn(r,"HTML")?ht(r):kp(this._doc,String(r)).toString();case X.STYLE:return tn(r,"Style")?ht(r):r;case X.SCRIPT:if(tn(r,"Script"))return ht(r);throw new Error("unsafe value used in a script context");case X.URL:return Sp(r),tn(r,"URL")?ht(r):ps(String(r));case X.RESOURCE_URL:if(tn(r,"ResourceURL"))return ht(r);throw new Error("unsafe value used in a resource URL context (see https://g.co/ng/security#xss)");default:throw new Error(`Unexpected SecurityContext ${t} (see https://g.co/ng/security#xss)`)}}bypassSecurityTrustHtml(t){return function Qw(n){return new zw(n)}(t)}bypassSecurityTrustStyle(t){return function Zw(n){return new qw(n)}(t)}bypassSecurityTrustScript(t){return function Yw(n){return new Ww(n)}(t)}bypassSecurityTrustUrl(t){return function Xw(n){return new Gw(n)}(t)}bypassSecurityTrustResourceUrl(t){return function Jw(n){return new Kw(n)}(t)}}return n.\u0275fac=function(t){return new(t||n)(E(de))},n.\u0275prov=F({token:n,factory:function(t){let r=null;return r=t?new t:function YR(n){return new Hv(n.get(de))}(E(Ue)),r},providedIn:"root"}),n})();function O(...n){return Fe(n,Qi(n))}class st extends Le{constructor(e){super(),this._value=e}get value(){return this.getValue()}_subscribe(e){const t=super._subscribe(e);return!t.closed&&e.next(this._value),t}getValue(){const{hasError:e,thrownError:t,_value:r}=this;if(e)throw t;return this._throwIfClosed(),r}next(e){super.next(this._value=e)}}const{isArray:XR}=Array,{getPrototypeOf:JR,prototype:eO,keys:tO}=Object;function Uv(n){if(1===n.length){const e=n[0];if(XR(e))return{args:e,keys:null};if(function nO(n){return n&&"object"==typeof n&&JR(n)===eO}(e)){const t=tO(e);return{args:t.map(r=>e[r]),keys:t}}}return{args:n,keys:null}}const{isArray:rO}=Array;function $v(n){return G(e=>function iO(n,e){return rO(e)?n(...e):n(e)}(n,e))}function zv(n,e){return n.reduce((t,r,i)=>(t[r]=e[i],t),{})}function qv(n,e,t){n?mn(t,n,e):e()}const qa=qi(n=>function(){n(this),this.name="EmptyError",this.message="no elements in sequence"});function Bd(...n){return function aO(){return Ki(1)}()(Fe(n,Qi(n)))}function Wv(n){return new ae(e=>{Pt(n()).subscribe(e)})}function Gv(){return Te((n,e)=>{let t=null;n._refCount++;const r=new De(e,void 0,void 0,void 0,()=>{if(!n||n._refCount<=0||0<--n._refCount)return void(t=null);const i=n._connection,s=t;t=null,i&&(!s||i===s)&&i.unsubscribe(),e.unsubscribe()});n.subscribe(r),r.closed||(t=n.connect())})}class lO extends ae{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._subject=null,this._refCount=0,this._connection=null,ih(e)&&(this.lift=e.lift)}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return(!e||e.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:e}=this;this._subject=this._connection=null,null==e||e.unsubscribe()}connect(){let e=this._connection;if(!e){e=this._connection=new ot;const t=this.getSubject();e.add(this.source.subscribe(new De(t,void 0,()=>{this._teardown(),t.complete()},r=>{this._teardown(),t.error(r)},()=>this._teardown()))),e.closed&&(this._connection=null,e=ot.EMPTY)}return e}refCount(){return Gv()(this)}}function Tr(n,e){return Te((t,r)=>{let i=null,s=0,o=!1;const a=()=>o&&!i&&r.complete();t.subscribe(new De(r,l=>{null==i||i.unsubscribe();let u=0;const c=s++;Pt(n(l,c)).subscribe(i=new De(r,d=>r.next(e?e(l,d,c,u++):d),()=>{i=null,a()}))},()=>{o=!0,a()}))})}function cO(n,e,t,r,i){return(s,o)=>{let a=t,l=e,u=0;s.subscribe(new De(o,c=>{const d=u++;l=a?n(l,c,d):(a=!0,c),r&&o.next(l)},i&&(()=>{a&&o.next(l),o.complete()})))}}function Kv(n,e){return Te(cO(n,e,arguments.length>=2,!0))}function xn(n,e){return Te((t,r)=>{let i=0;t.subscribe(new De(r,s=>n.call(e,s,i++)&&r.next(s)))})}function Nn(n){return Te((e,t)=>{let s,r=null,i=!1;r=e.subscribe(new De(t,void 0,void 0,o=>{s=Pt(n(o,Nn(n)(e))),r?(r.unsubscribe(),r=null,s.subscribe(t)):i=!0})),i&&(r.unsubscribe(),r=null,s.subscribe(t))})}function Ni(n,e){return te(e)?xe(n,e,1):xe(n,1)}function jd(n){return n<=0?()=>yn:Te((e,t)=>{let r=[];e.subscribe(new De(t,i=>{r.push(i),n<r.length&&r.shift()},()=>{for(const i of r)t.next(i);t.complete()},void 0,()=>{r=null}))})}function Qv(n=dO){return Te((e,t)=>{let r=!1;e.subscribe(new De(t,i=>{r=!0,t.next(i)},()=>r?t.complete():t.error(n())))})}function dO(){return new qa}function Zv(n){return Te((e,t)=>{let r=!1;e.subscribe(new De(t,i=>{r=!0,t.next(i)},()=>{r||t.next(n),t.complete()}))})}function Ri(n,e){const t=arguments.length>=2;return r=>r.pipe(n?xn((i,s)=>n(i,s,r)):Ln,Br(1),t?Zv(e):Qv(()=>new qa))}function qe(n,e,t){const r=te(n)||e||t?{next:n,error:e,complete:t}:n;return r?Te((i,s)=>{var o;null===(o=r.subscribe)||void 0===o||o.call(r);let a=!0;i.subscribe(new De(s,l=>{var u;null===(u=r.next)||void 0===u||u.call(r,l),s.next(l)},()=>{var l;a=!1,null===(l=r.complete)||void 0===l||l.call(r),s.complete()},l=>{var u;a=!1,null===(u=r.error)||void 0===u||u.call(r,l),s.error(l)},()=>{var l,u;a&&(null===(l=r.unsubscribe)||void 0===l||l.call(r)),null===(u=r.finalize)||void 0===u||u.call(r)}))}):Ln}function Yv(n){return Te((e,t)=>{try{e.subscribe(t)}finally{t.add(n)}})}class Rn{constructor(e,t){this.id=e,this.url=t}}class Vd extends Rn{constructor(e,t,r="imperative",i=null){super(e,t),this.navigationTrigger=r,this.restoredState=i}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Ks extends Rn{constructor(e,t,r){super(e,t),this.urlAfterRedirects=r}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class Xv extends Rn{constructor(e,t,r){super(e,t),this.reason=r}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class hO extends Rn{constructor(e,t,r){super(e,t),this.error=r}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class pO extends Rn{constructor(e,t,r,i){super(e,t),this.urlAfterRedirects=r,this.state=i}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class gO extends Rn{constructor(e,t,r,i){super(e,t),this.urlAfterRedirects=r,this.state=i}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class mO extends Rn{constructor(e,t,r,i,s){super(e,t),this.urlAfterRedirects=r,this.state=i,this.shouldActivate=s}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class yO extends Rn{constructor(e,t,r,i){super(e,t),this.urlAfterRedirects=r,this.state=i}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class _O extends Rn{constructor(e,t,r,i){super(e,t),this.urlAfterRedirects=r,this.state=i}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Jv{constructor(e){this.route=e}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class eb{constructor(e){this.route=e}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class vO{constructor(e){this.snapshot=e}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class bO{constructor(e){this.snapshot=e}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class DO{constructor(e){this.snapshot=e}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class EO{constructor(e){this.snapshot=e}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class tb{constructor(e,t,r){this.routerEvent=e,this.position=t,this.anchor=r}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}const z="primary";class CO{constructor(e){this.params=e||{}}has(e){return Object.prototype.hasOwnProperty.call(this.params,e)}get(e){if(this.has(e)){const t=this.params[e];return Array.isArray(t)?t[0]:t}return null}getAll(e){if(this.has(e)){const t=this.params[e];return Array.isArray(t)?t:[t]}return[]}get keys(){return Object.keys(this.params)}}function Oi(n){return new CO(n)}const nb="ngNavigationCancelingError";function Hd(n){const e=Error("NavigationCancelingError: "+n);return e[nb]=!0,e}function TO(n,e,t){const r=t.path.split("/");if(r.length>n.length||"full"===t.pathMatch&&(e.hasChildren()||r.length<n.length))return null;const i={};for(let s=0;s<r.length;s++){const o=r[s],a=n[s];if(o.startsWith(":"))i[o.substring(1)]=a;else if(o!==a.path)return null}return{consumed:n.slice(0,r.length),posParams:i}}function dn(n,e){const t=n?Object.keys(n):void 0,r=e?Object.keys(e):void 0;if(!t||!r||t.length!=r.length)return!1;let i;for(let s=0;s<t.length;s++)if(i=t[s],!rb(n[i],e[i]))return!1;return!0}function rb(n,e){if(Array.isArray(n)&&Array.isArray(e)){if(n.length!==e.length)return!1;const t=[...n].sort(),r=[...e].sort();return t.every((i,s)=>r[s]===i)}return n===e}function ib(n){return Array.prototype.concat.apply([],n)}function sb(n){return n.length>0?n[n.length-1]:null}function ke(n,e){for(const t in n)n.hasOwnProperty(t)&&e(n[t],t)}function fn(n){return Om(n)?n:ua(n)?Fe(Promise.resolve(n)):O(n)}const IO={exact:function lb(n,e,t){if(!Sr(n.segments,e.segments)||!Wa(n.segments,e.segments,t)||n.numberOfChildren!==e.numberOfChildren)return!1;for(const r in e.children)if(!n.children[r]||!lb(n.children[r],e.children[r],t))return!1;return!0},subset:ub},ob={exact:function AO(n,e){return dn(n,e)},subset:function xO(n,e){return Object.keys(e).length<=Object.keys(n).length&&Object.keys(e).every(t=>rb(n[t],e[t]))},ignored:()=>!0};function ab(n,e,t){return IO[t.paths](n.root,e.root,t.matrixParams)&&ob[t.queryParams](n.queryParams,e.queryParams)&&!("exact"===t.fragment&&n.fragment!==e.fragment)}function ub(n,e,t){return cb(n,e,e.segments,t)}function cb(n,e,t,r){if(n.segments.length>t.length){const i=n.segments.slice(0,t.length);return!(!Sr(i,t)||e.hasChildren()||!Wa(i,t,r))}if(n.segments.length===t.length){if(!Sr(n.segments,t)||!Wa(n.segments,t,r))return!1;for(const i in e.children)if(!n.children[i]||!ub(n.children[i],e.children[i],r))return!1;return!0}{const i=t.slice(0,n.segments.length),s=t.slice(n.segments.length);return!!(Sr(n.segments,i)&&Wa(n.segments,i,r)&&n.children[z])&&cb(n.children[z],e,s,r)}}function Wa(n,e,t){return e.every((r,i)=>ob[t](n[i].parameters,r.parameters))}class Mr{constructor(e,t,r){this.root=e,this.queryParams=t,this.fragment=r}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Oi(this.queryParams)),this._queryParamMap}toString(){return OO.serialize(this)}}class W{constructor(e,t){this.segments=e,this.children=t,this.parent=null,ke(t,(r,i)=>r.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return Ga(this)}}class Qs{constructor(e,t){this.path=e,this.parameters=t}get parameterMap(){return this._parameterMap||(this._parameterMap=Oi(this.parameters)),this._parameterMap}toString(){return gb(this)}}function Sr(n,e){return n.length===e.length&&n.every((t,r)=>t.path===e[r].path)}class db{}class fb{parse(e){const t=new UO(e);return new Mr(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())}serialize(e){const t=`/${Zs(e.root,!0)}`,r=function PO(n){const e=Object.keys(n).map(t=>{const r=n[t];return Array.isArray(r)?r.map(i=>`${Ka(t)}=${Ka(i)}`).join("&"):`${Ka(t)}=${Ka(r)}`}).filter(t=>!!t);return e.length?`?${e.join("&")}`:""}(e.queryParams);return`${t}${r}${"string"==typeof e.fragment?`#${function FO(n){return encodeURI(n)}(e.fragment)}`:""}`}}const OO=new fb;function Ga(n){return n.segments.map(e=>gb(e)).join("/")}function Zs(n,e){if(!n.hasChildren())return Ga(n);if(e){const t=n.children[z]?Zs(n.children[z],!1):"",r=[];return ke(n.children,(i,s)=>{s!==z&&r.push(`${s}:${Zs(i,!1)}`)}),r.length>0?`${t}(${r.join("//")})`:t}{const t=function RO(n,e){let t=[];return ke(n.children,(r,i)=>{i===z&&(t=t.concat(e(r,i)))}),ke(n.children,(r,i)=>{i!==z&&(t=t.concat(e(r,i)))}),t}(n,(r,i)=>i===z?[Zs(n.children[z],!1)]:[`${i}:${Zs(r,!1)}`]);return 1===Object.keys(n.children).length&&null!=n.children[z]?`${Ga(n)}/${t[0]}`:`${Ga(n)}/(${t.join("//")})`}}function hb(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Ka(n){return hb(n).replace(/%3B/gi,";")}function Ud(n){return hb(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Qa(n){return decodeURIComponent(n)}function pb(n){return Qa(n.replace(/\+/g,"%20"))}function gb(n){return`${Ud(n.path)}${function kO(n){return Object.keys(n).map(e=>`;${Ud(e)}=${Ud(n[e])}`).join("")}(n.parameters)}`}const LO=/^[^\/()?;=#]+/;function Za(n){const e=n.match(LO);return e?e[0]:""}const BO=/^[^=?&#]+/,VO=/^[^&#]+/;class UO{constructor(e){this.url=e,this.remaining=e}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new W([],{}):new W([],this.parseChildren())}parseQueryParams(){const e={};if(this.consumeOptional("?"))do{this.parseQueryParam(e)}while(this.consumeOptional("&"));return e}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let t={};this.peekStartsWith("/(")&&(this.capture("/"),t=this.parseParens(!0));let r={};return this.peekStartsWith("(")&&(r=this.parseParens(!1)),(e.length>0||Object.keys(t).length>0)&&(r[z]=new W(e,t)),r}parseSegment(){const e=Za(this.remaining);if(""===e&&this.peekStartsWith(";"))throw new Error(`Empty path url segment cannot have parameters: '${this.remaining}'.`);return this.capture(e),new Qs(Qa(e),this.parseMatrixParams())}parseMatrixParams(){const e={};for(;this.consumeOptional(";");)this.parseParam(e);return e}parseParam(e){const t=Za(this.remaining);if(!t)return;this.capture(t);let r="";if(this.consumeOptional("=")){const i=Za(this.remaining);i&&(r=i,this.capture(r))}e[Qa(t)]=Qa(r)}parseQueryParam(e){const t=function jO(n){const e=n.match(BO);return e?e[0]:""}(this.remaining);if(!t)return;this.capture(t);let r="";if(this.consumeOptional("=")){const o=function HO(n){const e=n.match(VO);return e?e[0]:""}(this.remaining);o&&(r=o,this.capture(r))}const i=pb(t),s=pb(r);if(e.hasOwnProperty(i)){let o=e[i];Array.isArray(o)||(o=[o],e[i]=o),o.push(s)}else e[i]=s}parseParens(e){const t={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const r=Za(this.remaining),i=this.remaining[r.length];if("/"!==i&&")"!==i&&";"!==i)throw new Error(`Cannot parse url '${this.url}'`);let s;r.indexOf(":")>-1?(s=r.substr(0,r.indexOf(":")),this.capture(s),this.capture(":")):e&&(s=z);const o=this.parseChildren();t[s]=1===Object.keys(o).length?o[z]:new W([],o),this.consumeOptional("//")}return t}peekStartsWith(e){return this.remaining.startsWith(e)}consumeOptional(e){return!!this.peekStartsWith(e)&&(this.remaining=this.remaining.substring(e.length),!0)}capture(e){if(!this.consumeOptional(e))throw new Error(`Expected "${e}".`)}}class mb{constructor(e){this._root=e}get root(){return this._root.value}parent(e){const t=this.pathFromRoot(e);return t.length>1?t[t.length-2]:null}children(e){const t=$d(e,this._root);return t?t.children.map(r=>r.value):[]}firstChild(e){const t=$d(e,this._root);return t&&t.children.length>0?t.children[0].value:null}siblings(e){const t=zd(e,this._root);return t.length<2?[]:t[t.length-2].children.map(i=>i.value).filter(i=>i!==e)}pathFromRoot(e){return zd(e,this._root).map(t=>t.value)}}function $d(n,e){if(n===e.value)return e;for(const t of e.children){const r=$d(n,t);if(r)return r}return null}function zd(n,e){if(n===e.value)return[e];for(const t of e.children){const r=zd(n,t);if(r.length)return r.unshift(e),r}return[]}class On{constructor(e,t){this.value=e,this.children=t}toString(){return`TreeNode(${this.value})`}}function Fi(n){const e={};return n&&n.children.forEach(t=>e[t.value.outlet]=t),e}class yb extends mb{constructor(e,t){super(e),this.snapshot=t,qd(this,e)}toString(){return this.snapshot.toString()}}function _b(n,e){const t=function $O(n,e){const o=new Ya([],{},{},"",{},z,e,null,n.root,-1,{});return new bb("",new On(o,[]))}(n,e),r=new st([new Qs("",{})]),i=new st({}),s=new st({}),o=new st({}),a=new st(""),l=new ki(r,i,o,a,s,z,e,t.root);return l.snapshot=t.root,new yb(new On(l,[]),t)}class ki{constructor(e,t,r,i,s,o,a,l){this.url=e,this.params=t,this.queryParams=r,this.fragment=i,this.data=s,this.outlet=o,this.component=a,this._futureSnapshot=l}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe(G(e=>Oi(e)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(G(e=>Oi(e)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function vb(n,e="emptyOnly"){const t=n.pathFromRoot;let r=0;if("always"!==e)for(r=t.length-1;r>=1;){const i=t[r],s=t[r-1];if(i.routeConfig&&""===i.routeConfig.path)r--;else{if(s.component)break;r--}}return function zO(n){return n.reduce((e,t)=>({params:Object.assign(Object.assign({},e.params),t.params),data:Object.assign(Object.assign({},e.data),t.data),resolve:Object.assign(Object.assign({},e.resolve),t._resolvedData)}),{params:{},data:{},resolve:{}})}(t.slice(r))}class Ya{constructor(e,t,r,i,s,o,a,l,u,c,d){this.url=e,this.params=t,this.queryParams=r,this.fragment=i,this.data=s,this.outlet=o,this.component=a,this.routeConfig=l,this._urlSegment=u,this._lastPathIndex=c,this._resolve=d}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=Oi(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Oi(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(r=>r.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class bb extends mb{constructor(e,t){super(t),this.url=e,qd(this,t)}toString(){return Db(this._root)}}function qd(n,e){e.value._routerState=n,e.children.forEach(t=>qd(n,t))}function Db(n){const e=n.children.length>0?` { ${n.children.map(Db).join(", ")} } `:"";return`${n.value}${e}`}function Wd(n){if(n.snapshot){const e=n.snapshot,t=n._futureSnapshot;n.snapshot=t,dn(e.queryParams,t.queryParams)||n.queryParams.next(t.queryParams),e.fragment!==t.fragment&&n.fragment.next(t.fragment),dn(e.params,t.params)||n.params.next(t.params),function MO(n,e){if(n.length!==e.length)return!1;for(let t=0;t<n.length;++t)if(!dn(n[t],e[t]))return!1;return!0}(e.url,t.url)||n.url.next(t.url),dn(e.data,t.data)||n.data.next(t.data)}else n.snapshot=n._futureSnapshot,n.data.next(n._futureSnapshot.data)}function Gd(n,e){const t=dn(n.params,e.params)&&function NO(n,e){return Sr(n,e)&&n.every((t,r)=>dn(t.parameters,e[r].parameters))}(n.url,e.url);return t&&!(!n.parent!=!e.parent)&&(!n.parent||Gd(n.parent,e.parent))}function Ys(n,e,t){if(t&&n.shouldReuseRoute(e.value,t.value.snapshot)){const r=t.value;r._futureSnapshot=e.value;const i=function WO(n,e,t){return e.children.map(r=>{for(const i of t.children)if(n.shouldReuseRoute(r.value,i.value.snapshot))return Ys(n,r,i);return Ys(n,r)})}(n,e,t);return new On(r,i)}{if(n.shouldAttach(e.value)){const s=n.retrieve(e.value);if(null!==s){const o=s.route;return o.value._futureSnapshot=e.value,o.children=e.children.map(a=>Ys(n,a)),o}}const r=function GO(n){return new ki(new st(n.url),new st(n.params),new st(n.queryParams),new st(n.fragment),new st(n.data),n.outlet,n.component,n)}(e.value),i=e.children.map(s=>Ys(n,s));return new On(r,i)}}function Xa(n){return"object"==typeof n&&null!=n&&!n.outlets&&!n.segmentPath}function Xs(n){return"object"==typeof n&&null!=n&&n.outlets}function Kd(n,e,t,r,i){let s={};return r&&ke(r,(o,a)=>{s[a]=Array.isArray(o)?o.map(l=>`${l}`):`${o}`}),new Mr(t.root===n?e:Eb(t.root,n,e),s,i)}function Eb(n,e,t){const r={};return ke(n.children,(i,s)=>{r[s]=i===e?t:Eb(i,e,t)}),new W(n.segments,r)}class Cb{constructor(e,t,r){if(this.isAbsolute=e,this.numberOfDoubleDots=t,this.commands=r,e&&r.length>0&&Xa(r[0]))throw new Error("Root segment cannot have matrix parameters");const i=r.find(Xs);if(i&&i!==sb(r))throw new Error("{outlets:{}} has to be the last command")}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class Qd{constructor(e,t,r){this.segmentGroup=e,this.processChildren=t,this.index=r}}function wb(n,e,t){if(n||(n=new W([],{})),0===n.segments.length&&n.hasChildren())return Ja(n,e,t);const r=function JO(n,e,t){let r=0,i=e;const s={match:!1,pathIndex:0,commandIndex:0};for(;i<n.segments.length;){if(r>=t.length)return s;const o=n.segments[i],a=t[r];if(Xs(a))break;const l=`${a}`,u=r<t.length-1?t[r+1]:null;if(i>0&&void 0===l)break;if(l&&u&&"object"==typeof u&&void 0===u.outlets){if(!Mb(l,u,o))return s;r+=2}else{if(!Mb(l,{},o))return s;r++}i++}return{match:!0,pathIndex:i,commandIndex:r}}(n,e,t),i=t.slice(r.commandIndex);if(r.match&&r.pathIndex<n.segments.length){const s=new W(n.segments.slice(0,r.pathIndex),{});return s.children[z]=new W(n.segments.slice(r.pathIndex),n.children),Ja(s,0,i)}return r.match&&0===i.length?new W(n.segments,{}):r.match&&!n.hasChildren()?Zd(n,e,t):r.match?Ja(n,0,i):Zd(n,e,t)}function Ja(n,e,t){if(0===t.length)return new W(n.segments,{});{const r=function XO(n){return Xs(n[0])?n[0].outlets:{[z]:n}}(t),i={};return ke(r,(s,o)=>{"string"==typeof s&&(s=[s]),null!==s&&(i[o]=wb(n.children[o],e,s))}),ke(n.children,(s,o)=>{void 0===r[o]&&(i[o]=s)}),new W(n.segments,i)}}function Zd(n,e,t){const r=n.segments.slice(0,e);let i=0;for(;i<t.length;){const s=t[i];if(Xs(s)){const l=eF(s.outlets);return new W(r,l)}if(0===i&&Xa(t[0])){r.push(new Qs(n.segments[e].path,Tb(t[0]))),i++;continue}const o=Xs(s)?s.outlets[z]:`${s}`,a=i<t.length-1?t[i+1]:null;o&&a&&Xa(a)?(r.push(new Qs(o,Tb(a))),i+=2):(r.push(new Qs(o,{})),i++)}return new W(r,{})}function eF(n){const e={};return ke(n,(t,r)=>{"string"==typeof t&&(t=[t]),null!==t&&(e[r]=Zd(new W([],{}),0,t))}),e}function Tb(n){const e={};return ke(n,(t,r)=>e[r]=`${t}`),e}function Mb(n,e,t){return n==t.path&&dn(e,t.parameters)}class nF{constructor(e,t,r,i){this.routeReuseStrategy=e,this.futureState=t,this.currState=r,this.forwardEvent=i}activate(e){const t=this.futureState._root,r=this.currState?this.currState._root:null;this.deactivateChildRoutes(t,r,e),Wd(this.futureState.root),this.activateChildRoutes(t,r,e)}deactivateChildRoutes(e,t,r){const i=Fi(t);e.children.forEach(s=>{const o=s.value.outlet;this.deactivateRoutes(s,i[o],r),delete i[o]}),ke(i,(s,o)=>{this.deactivateRouteAndItsChildren(s,r)})}deactivateRoutes(e,t,r){const i=e.value,s=t?t.value:null;if(i===s)if(i.component){const o=r.getContext(i.outlet);o&&this.deactivateChildRoutes(e,t,o.children)}else this.deactivateChildRoutes(e,t,r);else s&&this.deactivateRouteAndItsChildren(t,r)}deactivateRouteAndItsChildren(e,t){e.value.component&&this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,t):this.deactivateRouteAndOutlet(e,t)}detachAndStoreRouteSubtree(e,t){const r=t.getContext(e.value.outlet),i=r&&e.value.component?r.children:t,s=Fi(e);for(const o of Object.keys(s))this.deactivateRouteAndItsChildren(s[o],i);if(r&&r.outlet){const o=r.outlet.detach(),a=r.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:o,route:e,contexts:a})}}deactivateRouteAndOutlet(e,t){const r=t.getContext(e.value.outlet),i=r&&e.value.component?r.children:t,s=Fi(e);for(const o of Object.keys(s))this.deactivateRouteAndItsChildren(s[o],i);r&&r.outlet&&(r.outlet.deactivate(),r.children.onOutletDeactivated(),r.attachRef=null,r.resolver=null,r.route=null)}activateChildRoutes(e,t,r){const i=Fi(t);e.children.forEach(s=>{this.activateRoutes(s,i[s.value.outlet],r),this.forwardEvent(new EO(s.value.snapshot))}),e.children.length&&this.forwardEvent(new bO(e.value.snapshot))}activateRoutes(e,t,r){const i=e.value,s=t?t.value:null;if(Wd(i),i===s)if(i.component){const o=r.getOrCreateContext(i.outlet);this.activateChildRoutes(e,t,o.children)}else this.activateChildRoutes(e,t,r);else if(i.component){const o=r.getOrCreateContext(i.outlet);if(this.routeReuseStrategy.shouldAttach(i.snapshot)){const a=this.routeReuseStrategy.retrieve(i.snapshot);this.routeReuseStrategy.store(i.snapshot,null),o.children.onOutletReAttached(a.contexts),o.attachRef=a.componentRef,o.route=a.route.value,o.outlet&&o.outlet.attach(a.componentRef,a.route.value),Wd(a.route.value),this.activateChildRoutes(e,null,o.children)}else{const a=function rF(n){for(let e=n.parent;e;e=e.parent){const t=e.routeConfig;if(t&&t._loadedConfig)return t._loadedConfig;if(t&&t.component)return null}return null}(i.snapshot),l=a?a.module.componentFactoryResolver:null;o.attachRef=null,o.route=i,o.resolver=l,o.outlet&&o.outlet.activateWith(i,l),this.activateChildRoutes(e,null,o.children)}}else this.activateChildRoutes(e,null,r)}}class Yd{constructor(e,t){this.routes=e,this.module=t}}function Jn(n){return"function"==typeof n}function Ir(n){return n instanceof Mr}const Js=Symbol("INITIAL_VALUE");function eo(){return Tr(n=>function sO(...n){const e=Qi(n),t=_h(n),{args:r,keys:i}=Uv(n);if(0===r.length)return Fe([],e);const s=new ae(function oO(n,e,t=Ln){return r=>{qv(e,()=>{const{length:i}=n,s=new Array(i);let o=i,a=i;for(let l=0;l<i;l++)qv(e,()=>{const u=Fe(n[l],e);let c=!1;u.subscribe(new De(r,d=>{s[l]=d,c||(c=!0,a--),a||r.next(t(s.slice()))},()=>{--o||r.complete()}))},r)},r)}}(r,e,i?o=>zv(i,o):Ln));return t?s.pipe($v(t)):s}(n.map(e=>e.pipe(Br(1),function uO(...n){const e=Qi(n);return Te((t,r)=>{(e?Bd(n,t,e):Bd(n,t)).subscribe(r)})}(Js)))).pipe(Kv((e,t)=>{let r=!1;return t.reduce((i,s,o)=>i!==Js?i:(s===Js&&(r=!0),r||!1!==s&&o!==t.length-1&&!Ir(s)?i:s),e)},Js),xn(e=>e!==Js),G(e=>Ir(e)?e:!0===e),Br(1)))}class uF{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.children=new to,this.attachRef=null}}class to{constructor(){this.contexts=new Map}onChildOutletCreated(e,t){const r=this.getOrCreateContext(e);r.outlet=t,this.contexts.set(e,r)}onChildOutletDestroyed(e){const t=this.getContext(e);t&&(t.outlet=null,t.attachRef=null)}onOutletDeactivated(){const e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let t=this.getContext(e);return t||(t=new uF,this.contexts.set(e,t)),t}getContext(e){return this.contexts.get(e)||null}}let Sb=(()=>{class n{constructor(t,r,i,s,o){this.parentContexts=t,this.location=r,this.resolver=i,this.changeDetector=o,this.activated=null,this._activatedRoute=null,this.activateEvents=new ze,this.deactivateEvents=new ze,this.attachEvents=new ze,this.detachEvents=new ze,this.name=s||z,t.onChildOutletCreated(this.name,this)}ngOnDestroy(){this.parentContexts.onChildOutletDestroyed(this.name)}ngOnInit(){if(!this.activated){const t=this.parentContexts.getContext(this.name);t&&t.route&&(t.attachRef?this.attach(t.attachRef,t.route):this.activateWith(t.route,t.resolver||null))}}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Error("Outlet is not activated");return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Error("Outlet is not activated");return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Error("Outlet is not activated");this.location.detach();const t=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(t.instance),t}attach(t,r){this.activated=t,this._activatedRoute=r,this.location.insert(t.hostView),this.attachEvents.emit(t.instance)}deactivate(){if(this.activated){const t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}}activateWith(t,r){if(this.isActivated)throw new Error("Cannot activate an already activated outlet");this._activatedRoute=t;const o=(r=r||this.resolver).resolveComponentFactory(t._futureSnapshot.routeConfig.component),a=this.parentContexts.getOrCreateContext(this.name).children,l=new cF(t,a,this.location.injector);this.activated=this.location.createComponent(o,this.location.length,l),this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return n.\u0275fac=function(t){return new(t||n)(b(to),b(mt),b(Ci),qn("name"),b(Ma))},n.\u0275dir=ee({type:n,selectors:[["router-outlet"]],outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"]}),n})();class cF{constructor(e,t,r){this.route=e,this.childContexts=t,this.parent=r}get(e,t){return e===ki?this.route:e===to?this.childContexts:this.parent.get(e,t)}}let Ib=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275cmp=Vn({type:n,selectors:[["ng-component"]],decls:1,vars:0,template:function(t,r){1&t&&aa(0,"router-outlet")},directives:[Sb],encapsulation:2}),n})();function Ab(n,e=""){for(let t=0;t<n.length;t++){const r=n[t];dF(r,fF(e,r))}}function dF(n,e){n.children&&Ab(n.children,e)}function fF(n,e){return e?n||e.path?n&&!e.path?`${n}/`:!n&&e.path?e.path:`${n}/${e.path}`:"":n}function Xd(n){const e=n.children&&n.children.map(Xd),t=e?Object.assign(Object.assign({},n),{children:e}):Object.assign({},n);return!t.component&&(e||t.loadChildren)&&t.outlet&&t.outlet!==z&&(t.component=Ib),t}function Ot(n){return n.outlet||z}function xb(n,e){const t=n.filter(r=>Ot(r)===e);return t.push(...n.filter(r=>Ot(r)!==e)),t}const Nb={matched:!1,consumedSegments:[],lastChild:0,parameters:{},positionalParamSegments:{}};function el(n,e,t){var r;if(""===e.path)return"full"===e.pathMatch&&(n.hasChildren()||t.length>0)?Object.assign({},Nb):{matched:!0,consumedSegments:[],lastChild:0,parameters:{},positionalParamSegments:{}};const s=(e.matcher||TO)(t,n,e);if(!s)return Object.assign({},Nb);const o={};ke(s.posParams,(l,u)=>{o[u]=l.path});const a=s.consumed.length>0?Object.assign(Object.assign({},o),s.consumed[s.consumed.length-1].parameters):o;return{matched:!0,consumedSegments:s.consumed,lastChild:s.consumed.length,parameters:a,positionalParamSegments:null!==(r=s.posParams)&&void 0!==r?r:{}}}function tl(n,e,t,r,i="corrected"){if(t.length>0&&function gF(n,e,t){return t.some(r=>nl(n,e,r)&&Ot(r)!==z)}(n,t,r)){const o=new W(e,function pF(n,e,t,r){const i={};i[z]=r,r._sourceSegment=n,r._segmentIndexShift=e.length;for(const s of t)if(""===s.path&&Ot(s)!==z){const o=new W([],{});o._sourceSegment=n,o._segmentIndexShift=e.length,i[Ot(s)]=o}return i}(n,e,r,new W(t,n.children)));return o._sourceSegment=n,o._segmentIndexShift=e.length,{segmentGroup:o,slicedSegments:[]}}if(0===t.length&&function mF(n,e,t){return t.some(r=>nl(n,e,r))}(n,t,r)){const o=new W(n.segments,function hF(n,e,t,r,i,s){const o={};for(const a of r)if(nl(n,t,a)&&!i[Ot(a)]){const l=new W([],{});l._sourceSegment=n,l._segmentIndexShift="legacy"===s?n.segments.length:e.length,o[Ot(a)]=l}return Object.assign(Object.assign({},i),o)}(n,e,t,r,n.children,i));return o._sourceSegment=n,o._segmentIndexShift=e.length,{segmentGroup:o,slicedSegments:t}}const s=new W(n.segments,n.children);return s._sourceSegment=n,s._segmentIndexShift=e.length,{segmentGroup:s,slicedSegments:t}}function nl(n,e,t){return(!(n.hasChildren()||e.length>0)||"full"!==t.pathMatch)&&""===t.path}function Rb(n,e,t,r){return!!(Ot(n)===r||r!==z&&nl(e,t,n))&&("**"===n.path||el(e,n,t).matched)}function Ob(n,e,t){return 0===e.length&&!n.children[t]}class no{constructor(e){this.segmentGroup=e||null}}class Fb{constructor(e){this.urlTree=e}}function rl(n){return new ae(e=>e.error(new no(n)))}function kb(n){return new ae(e=>e.error(new Fb(n)))}function yF(n){return new ae(e=>e.error(new Error(`Only absolute redirects can have named outlets. redirectTo: '${n}'`)))}class bF{constructor(e,t,r,i,s){this.configLoader=t,this.urlSerializer=r,this.urlTree=i,this.config=s,this.allowRedirects=!0,this.ngModule=e.get(Mn)}apply(){const e=tl(this.urlTree.root,[],[],this.config).segmentGroup,t=new W(e.segments,e.children);return this.expandSegmentGroup(this.ngModule,this.config,t,z).pipe(G(s=>this.createUrlTree(Jd(s),this.urlTree.queryParams,this.urlTree.fragment))).pipe(Nn(s=>{if(s instanceof Fb)return this.allowRedirects=!1,this.match(s.urlTree);throw s instanceof no?this.noMatchError(s):s}))}match(e){return this.expandSegmentGroup(this.ngModule,this.config,e.root,z).pipe(G(i=>this.createUrlTree(Jd(i),e.queryParams,e.fragment))).pipe(Nn(i=>{throw i instanceof no?this.noMatchError(i):i}))}noMatchError(e){return new Error(`Cannot match any routes. URL Segment: '${e.segmentGroup}'`)}createUrlTree(e,t,r){const i=e.segments.length>0?new W([],{[z]:e}):e;return new Mr(i,t,r)}expandSegmentGroup(e,t,r,i){return 0===r.segments.length&&r.hasChildren()?this.expandChildren(e,t,r).pipe(G(s=>new W([],s))):this.expandSegment(e,r,t,r.segments,i,!0)}expandChildren(e,t,r){const i=[];for(const s of Object.keys(r.children))"primary"===s?i.unshift(s):i.push(s);return Fe(i).pipe(Ni(s=>{const o=r.children[s],a=xb(t,s);return this.expandSegmentGroup(e,a,o,s).pipe(G(l=>({segment:l,outlet:s})))}),Kv((s,o)=>(s[o.outlet]=o.segment,s),{}),function fO(n,e){const t=arguments.length>=2;return r=>r.pipe(n?xn((i,s)=>n(i,s,r)):Ln,jd(1),t?Zv(e):Qv(()=>new qa))}())}expandSegment(e,t,r,i,s,o){return Fe(r).pipe(Ni(a=>this.expandSegmentAgainstRoute(e,t,r,a,i,s,o).pipe(Nn(u=>{if(u instanceof no)return O(null);throw u}))),Ri(a=>!!a),Nn((a,l)=>{if(a instanceof qa||"EmptyError"===a.name){if(Ob(t,i,s))return O(new W([],{}));throw new no(t)}throw a}))}expandSegmentAgainstRoute(e,t,r,i,s,o,a){return Rb(i,t,s,o)?void 0===i.redirectTo?this.matchSegmentAgainstRoute(e,t,i,s,o):a&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(e,t,r,i,s,o):rl(t):rl(t)}expandSegmentAgainstRouteUsingRedirect(e,t,r,i,s,o){return"**"===i.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(e,r,i,o):this.expandRegularSegmentAgainstRouteUsingRedirect(e,t,r,i,s,o)}expandWildCardWithParamsAgainstRouteUsingRedirect(e,t,r,i){const s=this.applyRedirectCommands([],r.redirectTo,{});return r.redirectTo.startsWith("/")?kb(s):this.lineralizeSegments(r,s).pipe(xe(o=>{const a=new W(o,{});return this.expandSegment(e,a,t,o,i,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(e,t,r,i,s,o){const{matched:a,consumedSegments:l,lastChild:u,positionalParamSegments:c}=el(t,i,s);if(!a)return rl(t);const d=this.applyRedirectCommands(l,i.redirectTo,c);return i.redirectTo.startsWith("/")?kb(d):this.lineralizeSegments(i,d).pipe(xe(f=>this.expandSegment(e,t,r,f.concat(s.slice(u)),o,!1)))}matchSegmentAgainstRoute(e,t,r,i,s){if("**"===r.path)return r.loadChildren?(r._loadedConfig?O(r._loadedConfig):this.configLoader.load(e.injector,r)).pipe(G(f=>(r._loadedConfig=f,new W(i,{})))):O(new W(i,{}));const{matched:o,consumedSegments:a,lastChild:l}=el(t,r,i);if(!o)return rl(t);const u=i.slice(l);return this.getChildConfig(e,r,i).pipe(xe(d=>{const f=d.module,h=d.routes,{segmentGroup:p,slicedSegments:g}=tl(t,a,u,h),y=new W(p.segments,p.children);if(0===g.length&&y.hasChildren())return this.expandChildren(f,h,y).pipe(G(T=>new W(a,T)));if(0===h.length&&0===g.length)return O(new W(a,{}));const _=Ot(r)===s;return this.expandSegment(f,y,h,g,_?z:s,!0).pipe(G(D=>new W(a.concat(D.segments),D.children)))}))}getChildConfig(e,t,r){return t.children?O(new Yd(t.children,e)):t.loadChildren?void 0!==t._loadedConfig?O(t._loadedConfig):this.runCanLoadGuards(e.injector,t,r).pipe(xe(i=>i?this.configLoader.load(e.injector,t).pipe(G(s=>(t._loadedConfig=s,s))):function _F(n){return new ae(e=>e.error(Hd(`Cannot load children because the guard of the route "path: '${n.path}'" returned false`)))}(t))):O(new Yd([],e))}runCanLoadGuards(e,t,r){const i=t.canLoad;return i&&0!==i.length?O(i.map(o=>{const a=e.get(o);let l;if(function sF(n){return n&&Jn(n.canLoad)}(a))l=a.canLoad(t,r);else{if(!Jn(a))throw new Error("Invalid CanLoad guard");l=a(t,r)}return fn(l)})).pipe(eo(),qe(o=>{if(!Ir(o))return;const a=Hd(`Redirecting to "${this.urlSerializer.serialize(o)}"`);throw a.url=o,a}),G(o=>!0===o)):O(!0)}lineralizeSegments(e,t){let r=[],i=t.root;for(;;){if(r=r.concat(i.segments),0===i.numberOfChildren)return O(r);if(i.numberOfChildren>1||!i.children[z])return yF(e.redirectTo);i=i.children[z]}}applyRedirectCommands(e,t,r){return this.applyRedirectCreatreUrlTree(t,this.urlSerializer.parse(t),e,r)}applyRedirectCreatreUrlTree(e,t,r,i){const s=this.createSegmentGroup(e,t.root,r,i);return new Mr(s,this.createQueryParams(t.queryParams,this.urlTree.queryParams),t.fragment)}createQueryParams(e,t){const r={};return ke(e,(i,s)=>{if("string"==typeof i&&i.startsWith(":")){const a=i.substring(1);r[s]=t[a]}else r[s]=i}),r}createSegmentGroup(e,t,r,i){const s=this.createSegments(e,t.segments,r,i);let o={};return ke(t.children,(a,l)=>{o[l]=this.createSegmentGroup(e,a,r,i)}),new W(s,o)}createSegments(e,t,r,i){return t.map(s=>s.path.startsWith(":")?this.findPosParam(e,s,i):this.findOrReturn(s,r))}findPosParam(e,t,r){const i=r[t.path.substring(1)];if(!i)throw new Error(`Cannot redirect to '${e}'. Cannot find '${t.path}'.`);return i}findOrReturn(e,t){let r=0;for(const i of t){if(i.path===e.path)return t.splice(r),i;r++}return e}}function Jd(n){const e={};for(const r of Object.keys(n.children)){const s=Jd(n.children[r]);(s.segments.length>0||s.hasChildren())&&(e[r]=s)}return function DF(n){if(1===n.numberOfChildren&&n.children[z]){const e=n.children[z];return new W(n.segments.concat(e.segments),e.children)}return n}(new W(n.segments,e))}class Pb{constructor(e){this.path=e,this.route=this.path[this.path.length-1]}}class il{constructor(e,t){this.component=e,this.route=t}}function CF(n,e,t){const r=n._root;return ro(r,e?e._root:null,t,[r.value])}function sl(n,e,t){const r=function TF(n){if(!n)return null;for(let e=n.parent;e;e=e.parent){const t=e.routeConfig;if(t&&t._loadedConfig)return t._loadedConfig}return null}(e);return(r?r.module.injector:t).get(n)}function ro(n,e,t,r,i={canDeactivateChecks:[],canActivateChecks:[]}){const s=Fi(e);return n.children.forEach(o=>{(function MF(n,e,t,r,i={canDeactivateChecks:[],canActivateChecks:[]}){const s=n.value,o=e?e.value:null,a=t?t.getContext(n.value.outlet):null;if(o&&s.routeConfig===o.routeConfig){const l=function SF(n,e,t){if("function"==typeof t)return t(n,e);switch(t){case"pathParamsChange":return!Sr(n.url,e.url);case"pathParamsOrQueryParamsChange":return!Sr(n.url,e.url)||!dn(n.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Gd(n,e)||!dn(n.queryParams,e.queryParams);default:return!Gd(n,e)}}(o,s,s.routeConfig.runGuardsAndResolvers);l?i.canActivateChecks.push(new Pb(r)):(s.data=o.data,s._resolvedData=o._resolvedData),ro(n,e,s.component?a?a.children:null:t,r,i),l&&a&&a.outlet&&a.outlet.isActivated&&i.canDeactivateChecks.push(new il(a.outlet.component,o))}else o&&io(e,a,i),i.canActivateChecks.push(new Pb(r)),ro(n,null,s.component?a?a.children:null:t,r,i)})(o,s[o.value.outlet],t,r.concat([o.value]),i),delete s[o.value.outlet]}),ke(s,(o,a)=>io(o,t.getContext(a),i)),i}function io(n,e,t){const r=Fi(n),i=n.value;ke(r,(s,o)=>{io(s,i.component?e?e.children.getContext(o):null:e,t)}),t.canDeactivateChecks.push(new il(i.component&&e&&e.outlet&&e.outlet.isActivated?e.outlet.component:null,i))}class PF{}function Lb(n){return new ae(e=>e.error(n))}class BF{constructor(e,t,r,i,s,o){this.rootComponentType=e,this.config=t,this.urlTree=r,this.url=i,this.paramsInheritanceStrategy=s,this.relativeLinkResolution=o}recognize(){const e=tl(this.urlTree.root,[],[],this.config.filter(o=>void 0===o.redirectTo),this.relativeLinkResolution).segmentGroup,t=this.processSegmentGroup(this.config,e,z);if(null===t)return null;const r=new Ya([],Object.freeze({}),Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,{},z,this.rootComponentType,null,this.urlTree.root,-1,{}),i=new On(r,t),s=new bb(this.url,i);return this.inheritParamsAndData(s._root),s}inheritParamsAndData(e){const t=e.value,r=vb(t,this.paramsInheritanceStrategy);t.params=Object.freeze(r.params),t.data=Object.freeze(r.data),e.children.forEach(i=>this.inheritParamsAndData(i))}processSegmentGroup(e,t,r){return 0===t.segments.length&&t.hasChildren()?this.processChildren(e,t):this.processSegment(e,t,t.segments,r)}processChildren(e,t){const r=[];for(const s of Object.keys(t.children)){const o=t.children[s],a=xb(e,s),l=this.processSegmentGroup(a,o,s);if(null===l)return null;r.push(...l)}const i=Bb(r);return function jF(n){n.sort((e,t)=>e.value.outlet===z?-1:t.value.outlet===z?1:e.value.outlet.localeCompare(t.value.outlet))}(i),i}processSegment(e,t,r,i){for(const s of e){const o=this.processSegmentAgainstRoute(s,t,r,i);if(null!==o)return o}return Ob(t,r,i)?[]:null}processSegmentAgainstRoute(e,t,r,i){if(e.redirectTo||!Rb(e,t,r,i))return null;let s,o=[],a=[];if("**"===e.path){const h=r.length>0?sb(r).parameters:{};s=new Ya(r,h,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,Hb(e),Ot(e),e.component,e,jb(t),Vb(t)+r.length,Ub(e))}else{const h=el(t,e,r);if(!h.matched)return null;o=h.consumedSegments,a=r.slice(h.lastChild),s=new Ya(o,h.parameters,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,Hb(e),Ot(e),e.component,e,jb(t),Vb(t)+o.length,Ub(e))}const l=function VF(n){return n.children?n.children:n.loadChildren?n._loadedConfig.routes:[]}(e),{segmentGroup:u,slicedSegments:c}=tl(t,o,a,l.filter(h=>void 0===h.redirectTo),this.relativeLinkResolution);if(0===c.length&&u.hasChildren()){const h=this.processChildren(l,u);return null===h?null:[new On(s,h)]}if(0===l.length&&0===c.length)return[new On(s,[])];const d=Ot(e)===i,f=this.processSegment(l,u,c,d?z:i);return null===f?null:[new On(s,f)]}}function HF(n){const e=n.value.routeConfig;return e&&""===e.path&&void 0===e.redirectTo}function Bb(n){const e=[],t=new Set;for(const r of n){if(!HF(r)){e.push(r);continue}const i=e.find(s=>r.value.routeConfig===s.value.routeConfig);void 0!==i?(i.children.push(...r.children),t.add(i)):e.push(r)}for(const r of t){const i=Bb(r.children);e.push(new On(r.value,i))}return e.filter(r=>!t.has(r))}function jb(n){let e=n;for(;e._sourceSegment;)e=e._sourceSegment;return e}function Vb(n){let e=n,t=e._segmentIndexShift?e._segmentIndexShift:0;for(;e._sourceSegment;)e=e._sourceSegment,t+=e._segmentIndexShift?e._segmentIndexShift:0;return t-1}function Hb(n){return n.data||{}}function Ub(n){return n.resolve||{}}function ef(n){return Tr(e=>{const t=n(e);return t?Fe(t).pipe(G(()=>e)):O(e)})}class QF extends class KF{shouldDetach(e){return!1}store(e,t){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,t){return e.routeConfig===t.routeConfig}}{}const tf=new I("ROUTES");class $b{constructor(e,t,r,i){this.injector=e,this.compiler=t,this.onLoadStartListener=r,this.onLoadEndListener=i}load(e,t){if(t._loader$)return t._loader$;this.onLoadStartListener&&this.onLoadStartListener(t);const i=this.loadModuleFactory(t.loadChildren).pipe(G(s=>{this.onLoadEndListener&&this.onLoadEndListener(t);const o=s.create(e);return new Yd(ib(o.injector.get(tf,void 0,B.Self|B.Optional)).map(Xd),o)}),Nn(s=>{throw t._loader$=void 0,s}));return t._loader$=new lO(i,()=>new Le).pipe(Gv()),t._loader$}loadModuleFactory(e){return fn(e()).pipe(xe(t=>t instanceof n_?O(t):Fe(this.compiler.compileModuleAsync(t))))}}class YF{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,t){return e}}function XF(n){throw n}function JF(n,e,t){return e.parse("/")}function zb(n,e){return O(null)}const ek={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},tk={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let yt=(()=>{class n{constructor(t,r,i,s,o,a,l){this.rootComponentType=t,this.urlSerializer=r,this.rootContexts=i,this.location=s,this.config=l,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.disposed=!1,this.navigationId=0,this.currentPageId=0,this.isNgZoneEnabled=!1,this.events=new Le,this.errorHandler=XF,this.malformedUriErrorHandler=JF,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:zb,afterPreactivation:zb},this.urlHandlingStrategy=new YF,this.routeReuseStrategy=new QF,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="corrected",this.canceledNavigationResolution="replace",this.ngModule=o.get(Mn),this.console=o.get(L_);const d=o.get(ce);this.isNgZoneEnabled=d instanceof ce&&ce.isInAngularZone(),this.resetConfig(l),this.currentUrlTree=function SO(){return new Mr(new W([],{}),{},null)}(),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new $b(o,a,f=>this.triggerEvent(new Jv(f)),f=>this.triggerEvent(new eb(f))),this.routerState=_b(this.currentUrlTree,this.rootComponentType),this.transitions=new st({id:0,targetPageId:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}get browserPageId(){var t;return null===(t=this.location.getState())||void 0===t?void 0:t.\u0275routerPageId}setupNavigations(t){const r=this.events;return t.pipe(xn(i=>0!==i.id),G(i=>Object.assign(Object.assign({},i),{extractedUrl:this.urlHandlingStrategy.extract(i.rawUrl)})),Tr(i=>{let s=!1,o=!1;return O(i).pipe(qe(a=>{this.currentNavigation={id:a.id,initialUrl:a.currentRawUrl,extractedUrl:a.extractedUrl,trigger:a.source,extras:a.extras,previousNavigation:this.lastSuccessfulNavigation?Object.assign(Object.assign({},this.lastSuccessfulNavigation),{previousNavigation:null}):null}}),Tr(a=>{const l=this.browserUrlTree.toString(),u=!this.navigated||a.extractedUrl.toString()!==l||l!==this.currentUrlTree.toString();if(("reload"===this.onSameUrlNavigation||u)&&this.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return ol(a.source)&&(this.browserUrlTree=a.extractedUrl),O(a).pipe(Tr(d=>{const f=this.transitions.getValue();return r.next(new Vd(d.id,this.serializeUrl(d.extractedUrl),d.source,d.restoredState)),f!==this.transitions.getValue()?yn:Promise.resolve(d)}),function EF(n,e,t,r){return Tr(i=>function vF(n,e,t,r,i){return new bF(n,e,t,r,i).apply()}(n,e,t,i.extractedUrl,r).pipe(G(s=>Object.assign(Object.assign({},i),{urlAfterRedirects:s}))))}(this.ngModule.injector,this.configLoader,this.urlSerializer,this.config),qe(d=>{this.currentNavigation=Object.assign(Object.assign({},this.currentNavigation),{finalUrl:d.urlAfterRedirects})}),function UF(n,e,t,r,i){return xe(s=>function LF(n,e,t,r,i="emptyOnly",s="legacy"){try{const o=new BF(n,e,t,r,i,s).recognize();return null===o?Lb(new PF):O(o)}catch(o){return Lb(o)}}(n,e,s.urlAfterRedirects,t(s.urlAfterRedirects),r,i).pipe(G(o=>Object.assign(Object.assign({},s),{targetSnapshot:o}))))}(this.rootComponentType,this.config,d=>this.serializeUrl(d),this.paramsInheritanceStrategy,this.relativeLinkResolution),qe(d=>{if("eager"===this.urlUpdateStrategy){if(!d.extras.skipLocationChange){const h=this.urlHandlingStrategy.merge(d.urlAfterRedirects,d.rawUrl);this.setBrowserUrl(h,d)}this.browserUrlTree=d.urlAfterRedirects}const f=new pO(d.id,this.serializeUrl(d.extractedUrl),this.serializeUrl(d.urlAfterRedirects),d.targetSnapshot);r.next(f)}));if(u&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)){const{id:f,extractedUrl:h,source:p,restoredState:g,extras:y}=a,_=new Vd(f,this.serializeUrl(h),p,g);r.next(_);const m=_b(h,this.rootComponentType).snapshot;return O(Object.assign(Object.assign({},a),{targetSnapshot:m,urlAfterRedirects:h,extras:Object.assign(Object.assign({},y),{skipLocationChange:!1,replaceUrl:!1})}))}return this.rawUrlTree=a.rawUrl,a.resolve(null),yn}),ef(a=>{const{targetSnapshot:l,id:u,extractedUrl:c,rawUrl:d,extras:{skipLocationChange:f,replaceUrl:h}}=a;return this.hooks.beforePreactivation(l,{navigationId:u,appliedUrlTree:c,rawUrlTree:d,skipLocationChange:!!f,replaceUrl:!!h})}),qe(a=>{const l=new gO(a.id,this.serializeUrl(a.extractedUrl),this.serializeUrl(a.urlAfterRedirects),a.targetSnapshot);this.triggerEvent(l)}),G(a=>Object.assign(Object.assign({},a),{guards:CF(a.targetSnapshot,a.currentSnapshot,this.rootContexts)})),function IF(n,e){return xe(t=>{const{targetSnapshot:r,currentSnapshot:i,guards:{canActivateChecks:s,canDeactivateChecks:o}}=t;return 0===o.length&&0===s.length?O(Object.assign(Object.assign({},t),{guardsResult:!0})):function AF(n,e,t,r){return Fe(n).pipe(xe(i=>function kF(n,e,t,r,i){const s=e&&e.routeConfig?e.routeConfig.canDeactivate:null;return s&&0!==s.length?O(s.map(a=>{const l=sl(a,e,i);let u;if(function lF(n){return n&&Jn(n.canDeactivate)}(l))u=fn(l.canDeactivate(n,e,t,r));else{if(!Jn(l))throw new Error("Invalid CanDeactivate guard");u=fn(l(n,e,t,r))}return u.pipe(Ri())})).pipe(eo()):O(!0)}(i.component,i.route,t,e,r)),Ri(i=>!0!==i,!0))}(o,r,i,n).pipe(xe(a=>a&&function iF(n){return"boolean"==typeof n}(a)?function xF(n,e,t,r){return Fe(e).pipe(Ni(i=>Bd(function RF(n,e){return null!==n&&e&&e(new vO(n)),O(!0)}(i.route.parent,r),function NF(n,e){return null!==n&&e&&e(new DO(n)),O(!0)}(i.route,r),function FF(n,e,t){const r=e[e.length-1],s=e.slice(0,e.length-1).reverse().map(o=>function wF(n){const e=n.routeConfig?n.routeConfig.canActivateChild:null;return e&&0!==e.length?{node:n,guards:e}:null}(o)).filter(o=>null!==o).map(o=>Wv(()=>O(o.guards.map(l=>{const u=sl(l,o.node,t);let c;if(function aF(n){return n&&Jn(n.canActivateChild)}(u))c=fn(u.canActivateChild(r,n));else{if(!Jn(u))throw new Error("Invalid CanActivateChild guard");c=fn(u(r,n))}return c.pipe(Ri())})).pipe(eo())));return O(s).pipe(eo())}(n,i.path,t),function OF(n,e,t){const r=e.routeConfig?e.routeConfig.canActivate:null;if(!r||0===r.length)return O(!0);const i=r.map(s=>Wv(()=>{const o=sl(s,e,t);let a;if(function oF(n){return n&&Jn(n.canActivate)}(o))a=fn(o.canActivate(e,n));else{if(!Jn(o))throw new Error("Invalid CanActivate guard");a=fn(o(e,n))}return a.pipe(Ri())}));return O(i).pipe(eo())}(n,i.route,t))),Ri(i=>!0!==i,!0))}(r,s,n,e):O(a)),G(a=>Object.assign(Object.assign({},t),{guardsResult:a})))})}(this.ngModule.injector,a=>this.triggerEvent(a)),qe(a=>{if(Ir(a.guardsResult)){const u=Hd(`Redirecting to "${this.serializeUrl(a.guardsResult)}"`);throw u.url=a.guardsResult,u}const l=new mO(a.id,this.serializeUrl(a.extractedUrl),this.serializeUrl(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);this.triggerEvent(l)}),xn(a=>!!a.guardsResult||(this.restoreHistory(a),this.cancelNavigationTransition(a,""),!1)),ef(a=>{if(a.guards.canActivateChecks.length)return O(a).pipe(qe(l=>{const u=new yO(l.id,this.serializeUrl(l.extractedUrl),this.serializeUrl(l.urlAfterRedirects),l.targetSnapshot);this.triggerEvent(u)}),Tr(l=>{let u=!1;return O(l).pipe(function $F(n,e){return xe(t=>{const{targetSnapshot:r,guards:{canActivateChecks:i}}=t;if(!i.length)return O(t);let s=0;return Fe(i).pipe(Ni(o=>function zF(n,e,t,r){return function qF(n,e,t,r){const i=Object.keys(n);if(0===i.length)return O({});const s={};return Fe(i).pipe(xe(o=>function WF(n,e,t,r){const i=sl(n,e,r);return fn(i.resolve?i.resolve(e,t):i(e,t))}(n[o],e,t,r).pipe(qe(a=>{s[o]=a}))),jd(1),xe(()=>Object.keys(s).length===i.length?O(s):yn))}(n._resolve,n,e,r).pipe(G(s=>(n._resolvedData=s,n.data=Object.assign(Object.assign({},n.data),vb(n,t).resolve),null)))}(o.route,r,n,e)),qe(()=>s++),jd(1),xe(o=>s===i.length?O(t):yn))})}(this.paramsInheritanceStrategy,this.ngModule.injector),qe({next:()=>u=!0,complete:()=>{u||(this.restoreHistory(l),this.cancelNavigationTransition(l,"At least one route resolver didn't emit any value."))}}))}),qe(l=>{const u=new _O(l.id,this.serializeUrl(l.extractedUrl),this.serializeUrl(l.urlAfterRedirects),l.targetSnapshot);this.triggerEvent(u)}))}),ef(a=>{const{targetSnapshot:l,id:u,extractedUrl:c,rawUrl:d,extras:{skipLocationChange:f,replaceUrl:h}}=a;return this.hooks.afterPreactivation(l,{navigationId:u,appliedUrlTree:c,rawUrlTree:d,skipLocationChange:!!f,replaceUrl:!!h})}),G(a=>{const l=function qO(n,e,t){const r=Ys(n,e._root,t?t._root:void 0);return new yb(r,e)}(this.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);return Object.assign(Object.assign({},a),{targetRouterState:l})}),qe(a=>{this.currentUrlTree=a.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(a.urlAfterRedirects,a.rawUrl),this.routerState=a.targetRouterState,"deferred"===this.urlUpdateStrategy&&(a.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,a),this.browserUrlTree=a.urlAfterRedirects)}),((n,e,t)=>G(r=>(new nF(e,r.targetRouterState,r.currentRouterState,t).activate(n),r)))(this.rootContexts,this.routeReuseStrategy,a=>this.triggerEvent(a)),qe({next(){s=!0},complete(){s=!0}}),Yv(()=>{var a;s||o||this.cancelNavigationTransition(i,`Navigation ID ${i.id} is not equal to the current navigation id ${this.navigationId}`),(null===(a=this.currentNavigation)||void 0===a?void 0:a.id)===i.id&&(this.currentNavigation=null)}),Nn(a=>{if(o=!0,function wO(n){return n&&n[nb]}(a)){const l=Ir(a.url);l||(this.navigated=!0,this.restoreHistory(i,!0));const u=new Xv(i.id,this.serializeUrl(i.extractedUrl),a.message);r.next(u),l?setTimeout(()=>{const c=this.urlHandlingStrategy.merge(a.url,this.rawUrlTree),d={skipLocationChange:i.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||ol(i.source)};this.scheduleNavigation(c,"imperative",null,d,{resolve:i.resolve,reject:i.reject,promise:i.promise})},0):i.resolve(!1)}else{this.restoreHistory(i,!0);const l=new hO(i.id,this.serializeUrl(i.extractedUrl),a);r.next(l);try{i.resolve(this.errorHandler(a))}catch(u){i.reject(u)}}return yn}))}))}resetRootComponentType(t){this.rootComponentType=t,this.routerState.root.component=this.rootComponentType}setTransition(t){this.transitions.next(Object.assign(Object.assign({},this.transitions.value),t))}initialNavigation(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(t=>{const r="popstate"===t.type?"popstate":"hashchange";"popstate"===r&&setTimeout(()=>{var i;const s={replaceUrl:!0},o=(null===(i=t.state)||void 0===i?void 0:i.navigationId)?t.state:null;if(o){const l=Object.assign({},o);delete l.navigationId,delete l.\u0275routerPageId,0!==Object.keys(l).length&&(s.state=l)}const a=this.parseUrl(t.url);this.scheduleNavigation(a,r,o,s)},0)}))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.currentNavigation}triggerEvent(t){this.events.next(t)}resetConfig(t){Ab(t),this.config=t.map(Xd),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.transitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(t,r={}){const{relativeTo:i,queryParams:s,fragment:o,queryParamsHandling:a,preserveFragment:l}=r,u=i||this.routerState.root,c=l?this.currentUrlTree.fragment:o;let d=null;switch(a){case"merge":d=Object.assign(Object.assign({},this.currentUrlTree.queryParams),s);break;case"preserve":d=this.currentUrlTree.queryParams;break;default:d=s||null}return null!==d&&(d=this.removeEmptyProps(d)),function KO(n,e,t,r,i){if(0===t.length)return Kd(e.root,e.root,e,r,i);const s=function QO(n){if("string"==typeof n[0]&&1===n.length&&"/"===n[0])return new Cb(!0,0,n);let e=0,t=!1;const r=n.reduce((i,s,o)=>{if("object"==typeof s&&null!=s){if(s.outlets){const a={};return ke(s.outlets,(l,u)=>{a[u]="string"==typeof l?l.split("/"):l}),[...i,{outlets:a}]}if(s.segmentPath)return[...i,s.segmentPath]}return"string"!=typeof s?[...i,s]:0===o?(s.split("/").forEach((a,l)=>{0==l&&"."===a||(0==l&&""===a?t=!0:".."===a?e++:""!=a&&i.push(a))}),i):[...i,s]},[]);return new Cb(t,e,r)}(t);if(s.toRoot())return Kd(e.root,new W([],{}),e,r,i);const o=function ZO(n,e,t){if(n.isAbsolute)return new Qd(e.root,!0,0);if(-1===t.snapshot._lastPathIndex){const s=t.snapshot._urlSegment;return new Qd(s,s===e.root,0)}const r=Xa(n.commands[0])?0:1;return function YO(n,e,t){let r=n,i=e,s=t;for(;s>i;){if(s-=i,r=r.parent,!r)throw new Error("Invalid number of '../'");i=r.segments.length}return new Qd(r,!1,i-s)}(t.snapshot._urlSegment,t.snapshot._lastPathIndex+r,n.numberOfDoubleDots)}(s,e,n),a=o.processChildren?Ja(o.segmentGroup,o.index,s.commands):wb(o.segmentGroup,o.index,s.commands);return Kd(o.segmentGroup,a,e,r,i)}(u,this.currentUrlTree,t,d,null!=c?c:null)}navigateByUrl(t,r={skipLocationChange:!1}){const i=Ir(t)?t:this.parseUrl(t),s=this.urlHandlingStrategy.merge(i,this.rawUrlTree);return this.scheduleNavigation(s,"imperative",null,r)}navigate(t,r={skipLocationChange:!1}){return function nk(n){for(let e=0;e<n.length;e++){const t=n[e];if(null==t)throw new Error(`The requested path contains ${t} segment at index ${e}`)}}(t),this.navigateByUrl(this.createUrlTree(t,r),r)}serializeUrl(t){return this.urlSerializer.serialize(t)}parseUrl(t){let r;try{r=this.urlSerializer.parse(t)}catch(i){r=this.malformedUriErrorHandler(i,this.urlSerializer,t)}return r}isActive(t,r){let i;if(i=!0===r?Object.assign({},ek):!1===r?Object.assign({},tk):r,Ir(t))return ab(this.currentUrlTree,t,i);const s=this.parseUrl(t);return ab(this.currentUrlTree,s,i)}removeEmptyProps(t){return Object.keys(t).reduce((r,i)=>{const s=t[i];return null!=s&&(r[i]=s),r},{})}processNavigations(){this.navigations.subscribe(t=>{this.navigated=!0,this.lastSuccessfulId=t.id,this.currentPageId=t.targetPageId,this.events.next(new Ks(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(this.currentUrlTree))),this.lastSuccessfulNavigation=this.currentNavigation,t.resolve(!0)},t=>{this.console.warn(`Unhandled Navigation Error: ${t}`)})}scheduleNavigation(t,r,i,s,o){var a,l,u;if(this.disposed)return Promise.resolve(!1);const c=this.transitions.value,d=ol(r)&&c&&!ol(c.source),f=c.rawUrl.toString()===t.toString(),h=c.id===(null===(a=this.currentNavigation)||void 0===a?void 0:a.id);if(d&&f&&h)return Promise.resolve(!0);let g,y,_;o?(g=o.resolve,y=o.reject,_=o.promise):_=new Promise((T,j)=>{g=T,y=j});const m=++this.navigationId;let D;return"computed"===this.canceledNavigationResolution?(0===this.currentPageId&&(i=this.location.getState()),D=i&&i.\u0275routerPageId?i.\u0275routerPageId:s.replaceUrl||s.skipLocationChange?null!==(l=this.browserPageId)&&void 0!==l?l:0:(null!==(u=this.browserPageId)&&void 0!==u?u:0)+1):D=0,this.setTransition({id:m,targetPageId:D,source:r,restoredState:i,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:t,extras:s,resolve:g,reject:y,promise:_,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),_.catch(T=>Promise.reject(T))}setBrowserUrl(t,r){const i=this.urlSerializer.serialize(t),s=Object.assign(Object.assign({},r.extras.state),this.generateNgRouterState(r.id,r.targetPageId));this.location.isCurrentPathEqualTo(i)||r.extras.replaceUrl?this.location.replaceState(i,"",s):this.location.go(i,"",s)}restoreHistory(t,r=!1){var i,s;if("computed"===this.canceledNavigationResolution){const o=this.currentPageId-t.targetPageId;"popstate"!==t.source&&"eager"!==this.urlUpdateStrategy&&this.currentUrlTree!==(null===(i=this.currentNavigation)||void 0===i?void 0:i.finalUrl)||0===o?this.currentUrlTree===(null===(s=this.currentNavigation)||void 0===s?void 0:s.finalUrl)&&0===o&&(this.resetState(t),this.browserUrlTree=t.currentUrlTree,this.resetUrlToCurrentUrlTree()):this.location.historyGo(o)}else"replace"===this.canceledNavigationResolution&&(r&&this.resetState(t),this.resetUrlToCurrentUrlTree())}resetState(t){this.routerState=t.currentRouterState,this.currentUrlTree=t.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,t.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}cancelNavigationTransition(t,r){const i=new Xv(t.id,this.serializeUrl(t.extractedUrl),r);this.triggerEvent(i),t.resolve(!1)}generateNgRouterState(t,r){return"computed"===this.canceledNavigationResolution?{navigationId:t,\u0275routerPageId:r}:{navigationId:t}}}return n.\u0275fac=function(t){Nc()},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();function ol(n){return"imperative"!==n}class qb{}class Wb{preload(e,t){return O(null)}}let Gb=(()=>{class n{constructor(t,r,i,s){this.router=t,this.injector=i,this.preloadingStrategy=s,this.loader=new $b(i,r,l=>t.triggerEvent(new Jv(l)),l=>t.triggerEvent(new eb(l)))}setUpPreloading(){this.subscription=this.router.events.pipe(xn(t=>t instanceof Ks),Ni(()=>this.preload())).subscribe(()=>{})}preload(){const t=this.injector.get(Mn);return this.processRoutes(t,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(t,r){const i=[];for(const s of r)if(s.loadChildren&&!s.canLoad&&s._loadedConfig){const o=s._loadedConfig;i.push(this.processRoutes(o.module,o.routes))}else s.loadChildren&&!s.canLoad?i.push(this.preloadConfig(t,s)):s.children&&i.push(this.processRoutes(t,s.children));return Fe(i).pipe(Ki(),G(s=>{}))}preloadConfig(t,r){return this.preloadingStrategy.preload(r,()=>(r._loadedConfig?O(r._loadedConfig):this.loader.load(t.injector,r)).pipe(xe(s=>(r._loadedConfig=s,this.processRoutes(s.module,s.routes)))))}}return n.\u0275fac=function(t){return new(t||n)(E(yt),E(Ta),E(Ue),E(qb))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})(),sf=(()=>{class n{constructor(t,r,i={}){this.router=t,this.viewportScroller=r,this.options=i,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},i.scrollPositionRestoration=i.scrollPositionRestoration||"disabled",i.anchorScrolling=i.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.router.events.subscribe(t=>{t instanceof Vd?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=t.navigationTrigger,this.restoredId=t.restoredState?t.restoredState.navigationId:0):t instanceof Ks&&(this.lastId=t.id,this.scheduleScrollEvent(t,this.router.parseUrl(t.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.router.events.subscribe(t=>{t instanceof tb&&(t.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(t.position):t.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(t.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(t,r){this.router.triggerEvent(new tb(t,"popstate"===this.lastSource?this.store[this.restoredId]:null,r))}ngOnDestroy(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}return n.\u0275fac=function(t){Nc()},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();const Ar=new I("ROUTER_CONFIGURATION"),Kb=new I("ROUTER_FORROOT_GUARD"),ok=[vd,{provide:db,useClass:fb},{provide:yt,useFactory:function dk(n,e,t,r,i,s,o={},a,l){const u=new yt(null,n,e,t,r,i,ib(s));return a&&(u.urlHandlingStrategy=a),l&&(u.routeReuseStrategy=l),function fk(n,e){n.errorHandler&&(e.errorHandler=n.errorHandler),n.malformedUriErrorHandler&&(e.malformedUriErrorHandler=n.malformedUriErrorHandler),n.onSameUrlNavigation&&(e.onSameUrlNavigation=n.onSameUrlNavigation),n.paramsInheritanceStrategy&&(e.paramsInheritanceStrategy=n.paramsInheritanceStrategy),n.relativeLinkResolution&&(e.relativeLinkResolution=n.relativeLinkResolution),n.urlUpdateStrategy&&(e.urlUpdateStrategy=n.urlUpdateStrategy),n.canceledNavigationResolution&&(e.canceledNavigationResolution=n.canceledNavigationResolution)}(o,u),o.enableTracing&&u.events.subscribe(c=>{var d,f;null===(d=console.group)||void 0===d||d.call(console,`Router Event: ${c.constructor.name}`),console.log(c.toString()),console.log(c),null===(f=console.groupEnd)||void 0===f||f.call(console)}),u},deps:[db,to,vd,Ue,Ta,tf,Ar,[class ZF{},new ft],[class GF{},new ft]]},to,{provide:ki,useFactory:function hk(n){return n.routerState.root},deps:[yt]},Gb,Wb,class sk{preload(e,t){return t().pipe(Nn(()=>O(null)))}},{provide:Ar,useValue:{enableTracing:!1}}];function ak(){return new $_("Router",yt)}let Qb=(()=>{class n{constructor(t,r){}static forRoot(t,r){return{ngModule:n,providers:[ok,Zb(t),{provide:Kb,useFactory:ck,deps:[[yt,new ft,new mr]]},{provide:Ar,useValue:r||{}},{provide:xi,useFactory:uk,deps:[wr,[new fs(_d),new ft],Ar]},{provide:sf,useFactory:lk,deps:[yt,pR,Ar]},{provide:qb,useExisting:r&&r.preloadingStrategy?r.preloadingStrategy:Wb},{provide:$_,multi:!0,useFactory:ak},[af,{provide:Ca,multi:!0,useFactory:pk,deps:[af]},{provide:Yb,useFactory:gk,deps:[af]},{provide:P_,multi:!0,useExisting:Yb}]]}}static forChild(t){return{ngModule:n,providers:[Zb(t)]}}}return n.\u0275fac=function(t){return new(t||n)(E(Kb,8),E(yt,8))},n.\u0275mod=Ge({type:n}),n.\u0275inj=Be({}),n})();function lk(n,e,t){return t.scrollOffset&&e.setOffset(t.scrollOffset),new sf(n,e,t)}function uk(n,e,t={}){return t.useHash?new Wx(n,e):new dv(n,e)}function ck(n){return"guarded"}function Zb(n){return[{provide:yw,multi:!0,useValue:n},{provide:tf,multi:!0,useValue:n}]}let af=(()=>{class n{constructor(t){this.injector=t,this.initNavigation=!1,this.destroyed=!1,this.resultOfPreactivationDone=new Le}appInitializer(){return this.injector.get($x,Promise.resolve(null)).then(()=>{if(this.destroyed)return Promise.resolve(!0);let r=null;const i=new Promise(a=>r=a),s=this.injector.get(yt),o=this.injector.get(Ar);return"disabled"===o.initialNavigation?(s.setUpLocationChangeListener(),r(!0)):"enabled"===o.initialNavigation||"enabledBlocking"===o.initialNavigation?(s.hooks.afterPreactivation=()=>this.initNavigation?O(null):(this.initNavigation=!0,r(!0),this.resultOfPreactivationDone),s.initialNavigation()):r(!0),i})}bootstrapListener(t){const r=this.injector.get(Ar),i=this.injector.get(Gb),s=this.injector.get(sf),o=this.injector.get(yt),a=this.injector.get($s);t===a.components[0]&&(("enabledNonBlocking"===r.initialNavigation||void 0===r.initialNavigation)&&o.initialNavigation(),i.setUpPreloading(),s.init(),o.resetRootComponentType(a.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())}ngOnDestroy(){this.destroyed=!0}}return n.\u0275fac=function(t){return new(t||n)(E(Ue))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();function pk(n){return n.appInitializer.bind(n)}function gk(n){return n.bootstrapListener.bind(n)}const Yb=new I("Router Initializer"),yk=[];let _k=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=Ge({type:n}),n.\u0275inj=Be({imports:[[Qb.forRoot(yk)],Qb]}),n})();class Dk{constructor(e=!1,t,r=!0){this._multiple=e,this._emitChanges=r,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new Le,t&&t.length&&(e?t.forEach(i=>this._markSelected(i)):this._markSelected(t[0]),this._selectedToEmit.length=0)}get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}select(...e){this._verifyValueAssignment(e),e.forEach(t=>this._markSelected(t)),this._emitChangeEvent()}deselect(...e){this._verifyValueAssignment(e),e.forEach(t=>this._unmarkSelected(t)),this._emitChangeEvent()}toggle(e){this.isSelected(e)?this.deselect(e):this.select(e)}clear(){this._unmarkAll(),this._emitChangeEvent()}isSelected(e){return this._selection.has(e)}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(e){this._multiple&&this.selected&&this._selected.sort(e)}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(e){this.isSelected(e)||(this._multiple||this._unmarkAll(),this._selection.add(e),this._emitChanges&&this._selectedToEmit.push(e))}_unmarkSelected(e){this.isSelected(e)&&(this._selection.delete(e),this._emitChanges&&this._deselectedToEmit.push(e))}_unmarkAll(){this.isEmpty()||this._selection.forEach(e=>this._unmarkSelected(e))}_verifyValueAssignment(e){}}function lf(n){return!!n&&(n instanceof ae||te(n.lift)&&te(n.subscribe))}function so(n){return Te((e,t)=>{Pt(n).subscribe(new De(t,()=>t.complete(),Gi)),!t.closed&&e.subscribe(t)})}function oo(n){return null!=n&&"false"!=`${n}`}function al(n,e=0){return function Ek(n){return!isNaN(parseFloat(n))&&!isNaN(Number(n))}(n)?Number(n):e}function ao(n){return n instanceof Re?n.nativeElement:n}let Xb=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=Ge({type:n}),n.\u0275inj=Be({}),n})();class Ak extends class Ik{constructor(){this.expansionModel=new Dk(!0)}toggle(e){this.expansionModel.toggle(this._trackByValue(e))}expand(e){this.expansionModel.select(this._trackByValue(e))}collapse(e){this.expansionModel.deselect(this._trackByValue(e))}isExpanded(e){return this.expansionModel.isSelected(this._trackByValue(e))}toggleDescendants(e){this.expansionModel.isSelected(this._trackByValue(e))?this.collapseDescendants(e):this.expandDescendants(e)}collapseAll(){this.expansionModel.clear()}expandDescendants(e){let t=[e];t.push(...this.getDescendants(e)),this.expansionModel.select(...t.map(r=>this._trackByValue(r)))}collapseDescendants(e){let t=[e];t.push(...this.getDescendants(e)),this.expansionModel.deselect(...t.map(r=>this._trackByValue(r)))}_trackByValue(e){return this.trackBy?this.trackBy(e):e}}{constructor(e,t){super(),this.getChildren=e,this.options=t,this.options&&(this.trackBy=this.options.trackBy)}expandAll(){this.expansionModel.clear();const e=this.dataNodes.reduce((t,r)=>[...t,...this.getDescendants(r),r],[]);this.expansionModel.select(...e.map(t=>this._trackByValue(t)))}getDescendants(e){const t=[];return this._getDescendants(t,e),t.splice(1)}_getDescendants(e,t){e.push(t);const r=this.getChildren(t);Array.isArray(r)?r.forEach(i=>this._getDescendants(e,i)):lf(r)&&r.pipe(Br(1),xn(Boolean)).subscribe(i=>{for(const s of i)this._getDescendants(e,s)})}}const ll=new I("CDK_TREE_NODE_OUTLET_NODE");let lo=(()=>{class n{constructor(t,r){this.viewContainer=t,this._node=r}}return n.\u0275fac=function(t){return new(t||n)(b(mt),b(ll,8))},n.\u0275dir=ee({type:n,selectors:[["","cdkTreeNodeOutlet",""]]}),n})();class xk{constructor(e){this.$implicit=e}}let ul=(()=>{class n{constructor(t){this.template=t}}return n.\u0275fac=function(t){return new(t||n)(b(cn))},n.\u0275dir=ee({type:n,selectors:[["","cdkTreeNodeDef",""]],inputs:{when:["cdkTreeNodeDefWhen","when"]}}),n})(),Fn=(()=>{class n{constructor(t,r){this._differs=t,this._changeDetectorRef=r,this._onDestroy=new Le,this._levels=new Map,this.viewChange=new st({start:0,end:Number.MAX_VALUE})}get dataSource(){return this._dataSource}set dataSource(t){this._dataSource!==t&&this._switchDataSource(t)}ngOnInit(){this._dataDiffer=this._differs.find([]).create(this.trackBy)}ngOnDestroy(){this._nodeOutlet.viewContainer.clear(),this.viewChange.complete(),this._onDestroy.next(),this._onDestroy.complete(),this._dataSource&&"function"==typeof this._dataSource.disconnect&&this.dataSource.disconnect(this),this._dataSubscription&&(this._dataSubscription.unsubscribe(),this._dataSubscription=null)}ngAfterContentChecked(){const t=this._nodeDefs.filter(r=>!r.when);this._defaultNodeDef=t[0],this.dataSource&&this._nodeDefs&&!this._dataSubscription&&this._observeRenderChanges()}_switchDataSource(t){this._dataSource&&"function"==typeof this._dataSource.disconnect&&this.dataSource.disconnect(this),this._dataSubscription&&(this._dataSubscription.unsubscribe(),this._dataSubscription=null),t||this._nodeOutlet.viewContainer.clear(),this._dataSource=t,this._nodeDefs&&this._observeRenderChanges()}_observeRenderChanges(){let t;!function bk(n){return n&&"function"==typeof n.connect}(this._dataSource)?lf(this._dataSource)?t=this._dataSource:Array.isArray(this._dataSource)&&(t=O(this._dataSource)):t=this._dataSource.connect(this),t&&(this._dataSubscription=t.pipe(so(this._onDestroy)).subscribe(r=>this.renderNodeChanges(r)))}renderNodeChanges(t,r=this._dataDiffer,i=this._nodeOutlet.viewContainer,s){const o=r.diff(t);!o||(o.forEachOperation((a,l,u)=>{if(null==a.previousIndex)this.insertNode(t[u],u,i,s);else if(null==u)i.remove(l),this._levels.delete(a.item);else{const c=i.get(l);i.move(c,u)}}),this._changeDetectorRef.detectChanges())}_getNodeDef(t,r){return 1===this._nodeDefs.length?this._nodeDefs.first:this._nodeDefs.find(s=>s.when&&s.when(r,t))||this._defaultNodeDef}insertNode(t,r,i,s){const o=this._getNodeDef(t,r),a=new xk(t);a.level=this.treeControl.getLevel?this.treeControl.getLevel(t):void 0!==s&&this._levels.has(s)?this._levels.get(s)+1:0,this._levels.set(t,a.level),(i||this._nodeOutlet.viewContainer).createEmbeddedView(o.template,a,r),hn.mostRecentTreeNode&&(hn.mostRecentTreeNode.data=t)}}return n.\u0275fac=function(t){return new(t||n)(b(Zn),b(Ma))},n.\u0275cmp=Vn({type:n,selectors:[["cdk-tree"]],contentQueries:function(t,r,i){if(1&t&&Vs(i,ul,5),2&t){let s;Kn(s=Qn())&&(r._nodeDefs=s)}},viewQuery:function(t,r){if(1&t&&va(lo,7),2&t){let i;Kn(i=Qn())&&(r._nodeOutlet=i.first)}},hostAttrs:["role","tree",1,"cdk-tree"],inputs:{dataSource:"dataSource",treeControl:"treeControl",trackBy:"trackBy"},exportAs:["cdkTree"],decls:1,vars:0,consts:[["cdkTreeNodeOutlet",""]],template:function(t,r){1&t&&la(0,0)},directives:[lo],encapsulation:2}),n})(),hn=(()=>{class n{constructor(t,r){this._elementRef=t,this._tree=r,this._destroyed=new Le,this._dataChanges=new Le,n.mostRecentTreeNode=this,this.role="treeitem"}get role(){return"treeitem"}set role(t){this._elementRef.nativeElement.setAttribute("role",t)}get data(){return this._data}set data(t){t!==this._data&&(this._data=t,this._setRoleFromData(),this._dataChanges.next())}get isExpanded(){return this._tree.treeControl.isExpanded(this._data)}get level(){return this._tree.treeControl.getLevel?this._tree.treeControl.getLevel(this._data):this._parentNodeAriaLevel}ngOnInit(){this._parentNodeAriaLevel=function Nk(n){let e=n.parentElement;for(;e&&!Rk(e);)e=e.parentElement;return e?e.classList.contains("cdk-nested-tree-node")?al(e.getAttribute("aria-level")):0:-1}(this._elementRef.nativeElement),this._elementRef.nativeElement.setAttribute("aria-level",`${this.level+1}`)}ngOnDestroy(){n.mostRecentTreeNode===this&&(n.mostRecentTreeNode=null),this._dataChanges.complete(),this._destroyed.next(),this._destroyed.complete()}focus(){this._elementRef.nativeElement.focus()}_setRoleFromData(){this.role="treeitem"}}return n.mostRecentTreeNode=null,n.\u0275fac=function(t){return new(t||n)(b(Re),b(Fn))},n.\u0275dir=ee({type:n,selectors:[["cdk-tree-node"]],hostAttrs:[1,"cdk-tree-node"],hostVars:1,hostBindings:function(t,r){2&t&&br("aria-expanded",r.isExpanded)},inputs:{role:"role"},exportAs:["cdkTreeNode"]}),n})();function Rk(n){const e=n.classList;return!(!(null==e?void 0:e.contains("cdk-nested-tree-node"))&&!(null==e?void 0:e.contains("cdk-tree")))}let ff,uf=(()=>{class n extends hn{constructor(t,r,i){super(t,r),this._differs=i}ngAfterContentInit(){this._dataDiffer=this._differs.find([]).create(this._tree.trackBy);const t=this._tree.treeControl.getChildren(this.data);Array.isArray(t)?this.updateChildrenNodes(t):lf(t)&&t.pipe(so(this._destroyed)).subscribe(r=>this.updateChildrenNodes(r)),this.nodeOutlet.changes.pipe(so(this._destroyed)).subscribe(()=>this.updateChildrenNodes())}ngOnInit(){super.ngOnInit()}ngOnDestroy(){this._clear(),super.ngOnDestroy()}updateChildrenNodes(t){const r=this._getNodeOutlet();t&&(this._children=t),r&&this._children?this._tree.renderNodeChanges(this._children,this._dataDiffer,r.viewContainer,this._data):this._dataDiffer.diff([])}_clear(){const t=this._getNodeOutlet();t&&(t.viewContainer.clear(),this._dataDiffer.diff([]))}_getNodeOutlet(){const t=this.nodeOutlet;return t&&t.find(r=>!r._node||r._node===this)}}return n.\u0275fac=function(t){return new(t||n)(b(Re),b(Fn),b(Zn))},n.\u0275dir=ee({type:n,selectors:[["cdk-nested-tree-node"]],contentQueries:function(t,r,i){if(1&t&&Vs(i,lo,5),2&t){let s;Kn(s=Qn())&&(r.nodeOutlet=s)}},hostAttrs:[1,"cdk-nested-tree-node"],inputs:{role:"role",disabled:"disabled",tabIndex:"tabIndex"},exportAs:["cdkNestedTreeNode"],features:[Tn([{provide:hn,useExisting:n},{provide:ll,useExisting:n}]),qt]}),n})(),df=(()=>{class n{constructor(t,r){this._tree=t,this._treeNode=r,this._recursive=!1}get recursive(){return this._recursive}set recursive(t){this._recursive=oo(t)}_toggle(t){this.recursive?this._tree.treeControl.toggleDescendants(this._treeNode.data):this._tree.treeControl.toggle(this._treeNode.data),t.stopPropagation()}}return n.\u0275fac=function(t){return new(t||n)(b(Fn),b(hn))},n.\u0275dir=ee({type:n,selectors:[["","cdkTreeNodeToggle",""]],hostBindings:function(t,r){1&t&&Ms("click",function(s){return r._toggle(s)})},inputs:{recursive:["cdkTreeNodeToggleRecursive","recursive"]}}),n})(),Jb=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=Ge({type:n}),n.\u0275inj=Be({}),n})();try{ff="undefined"!=typeof Intl&&Intl.v8BreakIterator}catch(n){ff=!1}let uo,pf,cl=(()=>{class n{constructor(t){this._platformId=t,this.isBrowser=this._platformId?function hR(n){return n===Mv}(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&&!ff)&&"undefined"!=typeof CSS&&!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}}return n.\u0275fac=function(t){return new(t||n)(E(wa))},n.\u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function hf(n){return function Fk(){if(null==uo&&"undefined"!=typeof window)try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>uo=!0}))}finally{uo=uo||!1}return uo}()?n:!!n.capture}function co(n){return n.composedPath?n.composedPath()[0]:n.target}function qk(n,e){return n===e}function sD(n){return 0===n.buttons||0===n.offsetX&&0===n.offsetY}function oD(n){const e=n.touches&&n.touches[0]||n.changedTouches&&n.changedTouches[0];return!(!e||-1!==e.identifier||null!=e.radiusX&&1!==e.radiusX||null!=e.radiusY&&1!==e.radiusY)}const Jk=new I("cdk-input-modality-detector-options"),eP={ignoreKeys:[18,17,224,91,16]},Bi=hf({passive:!0,capture:!0});let tP=(()=>{class n{constructor(t,r,i,s){this._platform=t,this._mostRecentTarget=null,this._modality=new st(null),this._lastTouchMs=0,this._onKeydown=o=>{var a,l;(null===(l=null===(a=this._options)||void 0===a?void 0:a.ignoreKeys)||void 0===l?void 0:l.some(u=>u===o.keyCode))||(this._modality.next("keyboard"),this._mostRecentTarget=co(o))},this._onMousedown=o=>{Date.now()-this._lastTouchMs<650||(this._modality.next(sD(o)?"keyboard":"mouse"),this._mostRecentTarget=co(o))},this._onTouchstart=o=>{oD(o)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=co(o))},this._options=Object.assign(Object.assign({},eP),s),this.modalityDetected=this._modality.pipe(function $k(n){return xn((e,t)=>n<=t)}(1)),this.modalityChanged=this.modalityDetected.pipe(function zk(n,e=Ln){return n=null!=n?n:qk,Te((t,r)=>{let i,s=!0;t.subscribe(new De(r,o=>{const a=e(o);(s||!n(i,a))&&(s=!1,i=a,r.next(o))}))})}()),t.isBrowser&&r.runOutsideAngular(()=>{i.addEventListener("keydown",this._onKeydown,Bi),i.addEventListener("mousedown",this._onMousedown,Bi),i.addEventListener("touchstart",this._onTouchstart,Bi)})}get mostRecentModality(){return this._modality.value}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,Bi),document.removeEventListener("mousedown",this._onMousedown,Bi),document.removeEventListener("touchstart",this._onTouchstart,Bi))}}return n.\u0275fac=function(t){return new(t||n)(E(cl),E(ce),E(de),E(Jk,8))},n.\u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const rP=new I("cdk-focus-monitor-default-options"),fl=hf({passive:!0,capture:!0});let iP=(()=>{class n{constructor(t,r,i,s,o){this._ngZone=t,this._platform=r,this._inputModalityDetector=i,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 Le,this._rootNodeFocusAndBlurListener=a=>{const l=co(a),u="focus"===a.type?this._onFocus:this._onBlur;for(let c=l;c;c=c.parentElement)u.call(this,a,c)},this._document=s,this._detectionMode=(null==o?void 0:o.detectionMode)||0}monitor(t,r=!1){const i=ao(t);if(!this._platform.isBrowser||1!==i.nodeType)return O(null);const s=function Pk(n){if(function kk(){if(null==pf){const n="undefined"!=typeof document?document.head:null;pf=!(!n||!n.createShadowRoot&&!n.attachShadow)}return pf}()){const e=n.getRootNode?n.getRootNode():null;if("undefined"!=typeof ShadowRoot&&ShadowRoot&&e instanceof ShadowRoot)return e}return null}(i)||this._getDocument(),o=this._elementInfo.get(i);if(o)return r&&(o.checkChildren=!0),o.subject;const a={checkChildren:r,subject:new Le,rootNode:s};return this._elementInfo.set(i,a),this._registerGlobalListeners(a),a.subject}stopMonitoring(t){const r=ao(t),i=this._elementInfo.get(r);i&&(i.subject.complete(),this._setClasses(r),this._elementInfo.delete(r),this._removeGlobalListeners(i))}focusVia(t,r,i){const s=ao(t);s===this._getDocument().activeElement?this._getClosestElementsInfo(s).forEach(([a,l])=>this._originChanged(a,r,l)):(this._setOrigin(r),"function"==typeof s.focus&&s.focus(i))}ngOnDestroy(){this._elementInfo.forEach((t,r)=>this.stopMonitoring(r))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(t){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(t)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:"program"}_shouldBeAttributedToTouch(t){return 1===this._detectionMode||!!(null==t?void 0:t.contains(this._inputModalityDetector._mostRecentTarget))}_setClasses(t,r){t.classList.toggle("cdk-focused",!!r),t.classList.toggle("cdk-touch-focused","touch"===r),t.classList.toggle("cdk-keyboard-focused","keyboard"===r),t.classList.toggle("cdk-mouse-focused","mouse"===r),t.classList.toggle("cdk-program-focused","program"===r)}_setOrigin(t,r=!1){this._ngZone.runOutsideAngular(()=>{this._origin=t,this._originFromTouchInteraction="touch"===t&&r,0===this._detectionMode&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(t,r){const i=this._elementInfo.get(r),s=co(t);!i||!i.checkChildren&&r!==s||this._originChanged(r,this._getFocusOrigin(s),i)}_onBlur(t,r){const i=this._elementInfo.get(r);!i||i.checkChildren&&t.relatedTarget instanceof Node&&r.contains(t.relatedTarget)||(this._setClasses(r),this._emitOrigin(i.subject,null))}_emitOrigin(t,r){this._ngZone.run(()=>t.next(r))}_registerGlobalListeners(t){if(!this._platform.isBrowser)return;const r=t.rootNode,i=this._rootNodeFocusListenerCount.get(r)||0;i||this._ngZone.runOutsideAngular(()=>{r.addEventListener("focus",this._rootNodeFocusAndBlurListener,fl),r.addEventListener("blur",this._rootNodeFocusAndBlurListener,fl)}),this._rootNodeFocusListenerCount.set(r,i+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(so(this._stopInputModalityDetector)).subscribe(s=>{this._setOrigin(s,!0)}))}_removeGlobalListeners(t){const r=t.rootNode;if(this._rootNodeFocusListenerCount.has(r)){const i=this._rootNodeFocusListenerCount.get(r);i>1?this._rootNodeFocusListenerCount.set(r,i-1):(r.removeEventListener("focus",this._rootNodeFocusAndBlurListener,fl),r.removeEventListener("blur",this._rootNodeFocusAndBlurListener,fl),this._rootNodeFocusListenerCount.delete(r))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(t,r,i){this._setClasses(t,r),this._emitOrigin(i.subject,r),this._lastFocusOrigin=r}_getClosestElementsInfo(t){const r=[];return this._elementInfo.forEach((i,s)=>{(s===t||i.checkChildren&&s.contains(t))&&r.push([s,i])}),r}}return n.\u0275fac=function(t){return new(t||n)(E(ce),E(cl),E(tP),E(de,8),E(rP,8))},n.\u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const lD="cdk-high-contrast-black-on-white",uD="cdk-high-contrast-white-on-black",gf="cdk-high-contrast-active";let sP=(()=>{class n{constructor(t,r){this._platform=t,this._document=r}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const t=this._document.createElement("div");t.style.backgroundColor="rgb(1,2,3)",t.style.position="absolute",this._document.body.appendChild(t);const r=this._document.defaultView||window,i=r&&r.getComputedStyle?r.getComputedStyle(t):null,s=(i&&i.backgroundColor||"").replace(/ /g,"");switch(t.remove(),s){case"rgb(0,0,0)":return 2;case"rgb(255,255,255)":return 1}return 0}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const t=this._document.body.classList;t.remove(gf),t.remove(lD),t.remove(uD),this._hasCheckedHighContrastMode=!0;const r=this.getHighContrastMode();1===r?(t.add(gf),t.add(lD)):2===r&&(t.add(gf),t.add(uD))}}}return n.\u0275fac=function(t){return new(t||n)(E(cl),E(de))},n.\u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();class cD{}const kn="*";function dD(n,e=null){return{type:2,steps:n,options:e}}function fD(n){return{type:6,styles:n,offset:null}}function hD(n){Promise.resolve(null).then(n)}class ji{constructor(e=0,t=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=e+t}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}onStart(e){this._onStartFns.push(e)}onDone(e){this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){hD(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(e=>e()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this._started=!1}setPosition(e){this._position=this.totalTime?e*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(e){const t="start"==e?this._onStartFns:this._onDoneFns;t.forEach(r=>r()),t.length=0}}class pD{constructor(e){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=e;let t=0,r=0,i=0;const s=this.players.length;0==s?hD(()=>this._onFinish()):this.players.forEach(o=>{o.onDone(()=>{++t==s&&this._onFinish()}),o.onDestroy(()=>{++r==s&&this._onDestroy()}),o.onStart(()=>{++i==s&&this._onStart()})}),this.totalTime=this.players.reduce((o,a)=>Math.max(o,a.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this.players.forEach(e=>e.init())}onStart(e){this._onStartFns.push(e)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(e=>e()),this._onStartFns=[])}onDone(e){this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(e=>e.play())}pause(){this.players.forEach(e=>e.pause())}restart(){this.players.forEach(e=>e.restart())}finish(){this._onFinish(),this.players.forEach(e=>e.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(e=>e.destroy()),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this.players.forEach(e=>e.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(e){const t=e*this.totalTime;this.players.forEach(r=>{const i=r.totalTime?Math.min(1,t/r.totalTime):1;r.setPosition(i)})}getPosition(){const e=this.players.reduce((t,r)=>null===t||r.totalTime>t.totalTime?r:t,null);return null!=e?e.getPosition():0}beforeDestroy(){this.players.forEach(e=>{e.beforeDestroy&&e.beforeDestroy()})}triggerCallback(e){const t="start"==e?this._onStartFns:this._onDoneFns;t.forEach(r=>r()),t.length=0}}function gD(){return"undefined"!=typeof window&&void 0!==window.document}function yf(){return"undefined"!=typeof process&&"[object process]"==={}.toString.call(process)}function er(n){switch(n.length){case 0:return new ji;case 1:return n[0];default:return new pD(n)}}function mD(n,e,t,r,i={},s={}){const o=[],a=[];let l=-1,u=null;if(r.forEach(c=>{const d=c.offset,f=d==l,h=f&&u||{};Object.keys(c).forEach(p=>{let g=p,y=c[p];if("offset"!==p)switch(g=e.normalizePropertyName(g,o),y){case"!":y=i[p];break;case kn:y=s[p];break;default:y=e.normalizeStyleValue(p,g,y,o)}h[g]=y}),f||a.push(h),u=h,l=d}),o.length){const c="\n - ";throw new Error(`Unable to animate due to the following errors:${c}${o.join(c)}`)}return a}function _f(n,e,t,r){switch(e){case"start":n.onStart(()=>r(t&&vf(t,"start",n)));break;case"done":n.onDone(()=>r(t&&vf(t,"done",n)));break;case"destroy":n.onDestroy(()=>r(t&&vf(t,"destroy",n)))}}function vf(n,e,t){const r=t.totalTime,s=bf(n.element,n.triggerName,n.fromState,n.toState,e||n.phaseName,null==r?n.totalTime:r,!!t.disabled),o=n._data;return null!=o&&(s._data=o),s}function bf(n,e,t,r,i="",s=0,o){return{element:n,triggerName:e,fromState:t,toState:r,phaseName:i,totalTime:s,disabled:!!o}}function _t(n,e,t){let r;return n instanceof Map?(r=n.get(e),r||n.set(e,r=t)):(r=n[e],r||(r=n[e]=t)),r}function yD(n){const e=n.indexOf(":");return[n.substring(1,e),n.substr(e+1)]}let Df=(n,e)=>!1,_D=(n,e,t)=>[];(yf()||"undefined"!=typeof Element)&&(Df=gD()?(n,e)=>{for(;e&&e!==document.documentElement;){if(e===n)return!0;e=e.parentNode||e.host}return!1}:(n,e)=>n.contains(e),_D=(n,e,t)=>{if(t)return Array.from(n.querySelectorAll(e));const r=n.querySelector(e);return r?[r]:[]});let Nr=null,vD=!1;function Ef(n){Nr||(Nr=function lP(){return"undefined"!=typeof document?document.body:null}()||{},vD=!!Nr.style&&"WebkitAppearance"in Nr.style);let e=!0;return Nr.style&&!function aP(n){return"ebkit"==n.substring(1,6)}(n)&&(e=n in Nr.style,!e&&vD&&(e="Webkit"+n.charAt(0).toUpperCase()+n.substr(1)in Nr.style)),e}const Cf=Df,wf=_D;function bD(n){const e={};return Object.keys(n).forEach(t=>{const r=t.replace(/([a-z])([A-Z])/g,"$1-$2");e[r]=n[t]}),e}let DD=(()=>{class n{validateStyleProperty(t){return Ef(t)}matchesElement(t,r){return!1}containsElement(t,r){return Cf(t,r)}query(t,r,i){return wf(t,r,i)}computeStyle(t,r,i){return i||""}animate(t,r,i,s,o,a=[],l){return new ji(i,s)}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})(),Tf=(()=>{class n{}return n.NOOP=new DD,n})();const Mf="ng-enter",hl="ng-leave",pl="ng-trigger",gl=".ng-trigger",CD="ng-animating",Sf=".ng-animating";function Rr(n){if("number"==typeof n)return n;const e=n.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:If(parseFloat(e[1]),e[2])}function If(n,e){return"s"===e?1e3*n:n}function ml(n,e,t){return n.hasOwnProperty("duration")?n:function dP(n,e,t){let i,s=0,o="";if("string"==typeof n){const a=n.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===a)return e.push(`The provided timing value "${n}" is invalid.`),{duration:0,delay:0,easing:""};i=If(parseFloat(a[1]),a[2]);const l=a[3];null!=l&&(s=If(parseFloat(l),a[4]));const u=a[5];u&&(o=u)}else i=n;if(!t){let a=!1,l=e.length;i<0&&(e.push("Duration values below 0 are not allowed for this animation step."),a=!0),s<0&&(e.push("Delay values below 0 are not allowed for this animation step."),a=!0),a&&e.splice(l,0,`The provided timing value "${n}" is invalid.`)}return{duration:i,delay:s,easing:o}}(n,e,t)}function Vi(n,e={}){return Object.keys(n).forEach(t=>{e[t]=n[t]}),e}function tr(n,e,t={}){if(e)for(let r in n)t[r]=n[r];else Vi(n,t);return t}function TD(n,e,t){return t?e+":"+t+";":""}function MD(n){let e="";for(let t=0;t<n.style.length;t++){const r=n.style.item(t);e+=TD(0,r,n.style.getPropertyValue(r))}for(const t in n.style)n.style.hasOwnProperty(t)&&!t.startsWith("_")&&(e+=TD(0,pP(t),n.style[t]));n.setAttribute("style",e)}function pn(n,e,t){n.style&&(Object.keys(e).forEach(r=>{const i=xf(r);t&&!t.hasOwnProperty(r)&&(t[r]=n.style[i]),n.style[i]=e[r]}),yf()&&MD(n))}function Or(n,e){n.style&&(Object.keys(e).forEach(t=>{const r=xf(t);n.style[r]=""}),yf()&&MD(n))}function fo(n){return Array.isArray(n)?1==n.length?n[0]:dD(n):n}const Af=new RegExp("{{\\s*(.+?)\\s*}}","g");function SD(n){let e=[];if("string"==typeof n){let t;for(;t=Af.exec(n);)e.push(t[1]);Af.lastIndex=0}return e}function yl(n,e,t){const r=n.toString(),i=r.replace(Af,(s,o)=>{let a=e[o];return e.hasOwnProperty(o)||(t.push(`Please provide a value for the animation param ${o}`),a=""),a.toString()});return i==r?n:i}function _l(n){const e=[];let t=n.next();for(;!t.done;)e.push(t.value),t=n.next();return e}const hP=/-+([a-z0-9])/g;function xf(n){return n.replace(hP,(...e)=>e[1].toUpperCase())}function pP(n){return n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function ID(n,e){return 0===n||0===e}function AD(n,e,t){const r=Object.keys(t);if(r.length&&e.length){let s=e[0],o=[];if(r.forEach(a=>{s.hasOwnProperty(a)||o.push(a),s[a]=t[a]}),o.length)for(var i=1;i<e.length;i++){let a=e[i];o.forEach(function(l){a[l]=Nf(n,l)})}}return e}function vt(n,e,t){switch(e.type){case 7:return n.visitTrigger(e,t);case 0:return n.visitState(e,t);case 1:return n.visitTransition(e,t);case 2:return n.visitSequence(e,t);case 3:return n.visitGroup(e,t);case 4:return n.visitAnimate(e,t);case 5:return n.visitKeyframes(e,t);case 6:return n.visitStyle(e,t);case 8:return n.visitReference(e,t);case 9:return n.visitAnimateChild(e,t);case 10:return n.visitAnimateRef(e,t);case 11:return n.visitQuery(e,t);case 12:return n.visitStagger(e,t);default:throw new Error(`Unable to resolve animation metadata node #${e.type}`)}}function Nf(n,e){return window.getComputedStyle(n)[e]}function gP(n,e){const t=[];return"string"==typeof n?n.split(/\s*,\s*/).forEach(r=>function mP(n,e,t){if(":"==n[0]){const l=function yP(n,e){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(t,r)=>parseFloat(r)>parseFloat(t);case":decrement":return(t,r)=>parseFloat(r)<parseFloat(t);default:return e.push(`The transition alias value "${n}" is not supported`),"* => *"}}(n,t);if("function"==typeof l)return void e.push(l);n=l}const r=n.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(null==r||r.length<4)return t.push(`The provided transition expression "${n}" is not supported`),e;const i=r[1],s=r[2],o=r[3];e.push(xD(i,o));"<"==s[0]&&!("*"==i&&"*"==o)&&e.push(xD(o,i))}(r,t,e)):t.push(n),t}const bl=new Set(["true","1"]),Dl=new Set(["false","0"]);function xD(n,e){const t=bl.has(n)||Dl.has(n),r=bl.has(e)||Dl.has(e);return(i,s)=>{let o="*"==n||n==i,a="*"==e||e==s;return!o&&t&&"boolean"==typeof i&&(o=i?bl.has(n):Dl.has(n)),!a&&r&&"boolean"==typeof s&&(a=s?bl.has(e):Dl.has(e)),o&&a}}const _P=new RegExp("s*:selfs*,?","g");function Rf(n,e,t){return new vP(n).build(e,t)}class vP{constructor(e){this._driver=e}build(e,t){const r=new EP(t);return this._resetContextStyleTimingState(r),vt(this,fo(e),r)}_resetContextStyleTimingState(e){e.currentQuerySelector="",e.collectedStyles={},e.collectedStyles[""]={},e.currentTime=0}visitTrigger(e,t){let r=t.queryCount=0,i=t.depCount=0;const s=[],o=[];return"@"==e.name.charAt(0)&&t.errors.push("animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))"),e.definitions.forEach(a=>{if(this._resetContextStyleTimingState(t),0==a.type){const l=a,u=l.name;u.toString().split(/\s*,\s*/).forEach(c=>{l.name=c,s.push(this.visitState(l,t))}),l.name=u}else if(1==a.type){const l=this.visitTransition(a,t);r+=l.queryCount,i+=l.depCount,o.push(l)}else t.errors.push("only state() and transition() definitions can sit inside of a trigger()")}),{type:7,name:e.name,states:s,transitions:o,queryCount:r,depCount:i,options:null}}visitState(e,t){const r=this.visitStyle(e.styles,t),i=e.options&&e.options.params||null;if(r.containsDynamicStyles){const s=new Set,o=i||{};if(r.styles.forEach(a=>{if(El(a)){const l=a;Object.keys(l).forEach(u=>{SD(l[u]).forEach(c=>{o.hasOwnProperty(c)||s.add(c)})})}}),s.size){const a=_l(s.values());t.errors.push(`state("${e.name}", ...) must define default values for all the following style substitutions: ${a.join(", ")}`)}}return{type:0,name:e.name,style:r,options:i?{params:i}:null}}visitTransition(e,t){t.queryCount=0,t.depCount=0;const r=vt(this,fo(e.animation),t);return{type:1,matchers:gP(e.expr,t.errors),animation:r,queryCount:t.queryCount,depCount:t.depCount,options:Fr(e.options)}}visitSequence(e,t){return{type:2,steps:e.steps.map(r=>vt(this,r,t)),options:Fr(e.options)}}visitGroup(e,t){const r=t.currentTime;let i=0;const s=e.steps.map(o=>{t.currentTime=r;const a=vt(this,o,t);return i=Math.max(i,t.currentTime),a});return t.currentTime=i,{type:3,steps:s,options:Fr(e.options)}}visitAnimate(e,t){const r=function wP(n,e){let t=null;if(n.hasOwnProperty("duration"))t=n;else if("number"==typeof n)return Of(ml(n,e).duration,0,"");const r=n;if(r.split(/\s+/).some(s=>"{"==s.charAt(0)&&"{"==s.charAt(1))){const s=Of(0,0,"");return s.dynamic=!0,s.strValue=r,s}return t=t||ml(r,e),Of(t.duration,t.delay,t.easing)}(e.timings,t.errors);t.currentAnimateTimings=r;let i,s=e.styles?e.styles:fD({});if(5==s.type)i=this.visitKeyframes(s,t);else{let o=e.styles,a=!1;if(!o){a=!0;const u={};r.easing&&(u.easing=r.easing),o=fD(u)}t.currentTime+=r.duration+r.delay;const l=this.visitStyle(o,t);l.isEmptyStep=a,i=l}return t.currentAnimateTimings=null,{type:4,timings:r,style:i,options:null}}visitStyle(e,t){const r=this._makeStyleAst(e,t);return this._validateStyleAst(r,t),r}_makeStyleAst(e,t){const r=[];Array.isArray(e.styles)?e.styles.forEach(o=>{"string"==typeof o?o==kn?r.push(o):t.errors.push(`The provided style string value ${o} is not allowed.`):r.push(o)}):r.push(e.styles);let i=!1,s=null;return r.forEach(o=>{if(El(o)){const a=o,l=a.easing;if(l&&(s=l,delete a.easing),!i)for(let u in a)if(a[u].toString().indexOf("{{")>=0){i=!0;break}}}),{type:6,styles:r,easing:s,offset:e.offset,containsDynamicStyles:i,options:null}}_validateStyleAst(e,t){const r=t.currentAnimateTimings;let i=t.currentTime,s=t.currentTime;r&&s>0&&(s-=r.duration+r.delay),e.styles.forEach(o=>{"string"!=typeof o&&Object.keys(o).forEach(a=>{if(!this._driver.validateStyleProperty(a))return void t.errors.push(`The provided animation property "${a}" is not a supported CSS property for animations`);const l=t.collectedStyles[t.currentQuerySelector],u=l[a];let c=!0;u&&(s!=i&&s>=u.startTime&&i<=u.endTime&&(t.errors.push(`The CSS property "${a}" that exists between the times of "${u.startTime}ms" and "${u.endTime}ms" is also being animated in a parallel animation between the times of "${s}ms" and "${i}ms"`),c=!1),s=u.startTime),c&&(l[a]={startTime:s,endTime:i}),t.options&&function fP(n,e,t){const r=e.params||{},i=SD(n);i.length&&i.forEach(s=>{r.hasOwnProperty(s)||t.push(`Unable to resolve the local animation param ${s} in the given list of values`)})}(o[a],t.options,t.errors)})})}visitKeyframes(e,t){const r={type:5,styles:[],options:null};if(!t.currentAnimateTimings)return t.errors.push("keyframes() must be placed inside of a call to animate()"),r;let s=0;const o=[];let a=!1,l=!1,u=0;const c=e.steps.map(_=>{const m=this._makeStyleAst(_,t);let D=null!=m.offset?m.offset:function CP(n){if("string"==typeof n)return null;let e=null;if(Array.isArray(n))n.forEach(t=>{if(El(t)&&t.hasOwnProperty("offset")){const r=t;e=parseFloat(r.offset),delete r.offset}});else if(El(n)&&n.hasOwnProperty("offset")){const t=n;e=parseFloat(t.offset),delete t.offset}return e}(m.styles),T=0;return null!=D&&(s++,T=m.offset=D),l=l||T<0||T>1,a=a||T<u,u=T,o.push(T),m});l&&t.errors.push("Please ensure that all keyframe offsets are between 0 and 1"),a&&t.errors.push("Please ensure that all keyframe offsets are in order");const d=e.steps.length;let f=0;s>0&&s<d?t.errors.push("Not all style() steps within the declared keyframes() contain offsets"):0==s&&(f=1/(d-1));const h=d-1,p=t.currentTime,g=t.currentAnimateTimings,y=g.duration;return c.forEach((_,m)=>{const D=f>0?m==h?1:f*m:o[m],T=D*y;t.currentTime=p+g.delay+T,g.duration=T,this._validateStyleAst(_,t),_.offset=D,r.styles.push(_)}),r}visitReference(e,t){return{type:8,animation:vt(this,fo(e.animation),t),options:Fr(e.options)}}visitAnimateChild(e,t){return t.depCount++,{type:9,options:Fr(e.options)}}visitAnimateRef(e,t){return{type:10,animation:this.visitReference(e.animation,t),options:Fr(e.options)}}visitQuery(e,t){const r=t.currentQuerySelector,i=e.options||{};t.queryCount++,t.currentQuery=e;const[s,o]=function bP(n){const e=!!n.split(/\s*,\s*/).find(t=>":self"==t);return e&&(n=n.replace(_P,"")),n=n.replace(/@\*/g,gl).replace(/@\w+/g,t=>gl+"-"+t.substr(1)).replace(/:animating/g,Sf),[n,e]}(e.selector);t.currentQuerySelector=r.length?r+" "+s:s,_t(t.collectedStyles,t.currentQuerySelector,{});const a=vt(this,fo(e.animation),t);return t.currentQuery=null,t.currentQuerySelector=r,{type:11,selector:s,limit:i.limit||0,optional:!!i.optional,includeSelf:o,animation:a,originalSelector:e.selector,options:Fr(e.options)}}visitStagger(e,t){t.currentQuery||t.errors.push("stagger() can only be used inside of query()");const r="full"===e.timings?{duration:0,delay:0,easing:"full"}:ml(e.timings,t.errors,!0);return{type:12,animation:vt(this,fo(e.animation),t),timings:r,options:null}}}class EP{constructor(e){this.errors=e,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null}}function El(n){return!Array.isArray(n)&&"object"==typeof n}function Fr(n){return n?(n=Vi(n)).params&&(n.params=function DP(n){return n?Vi(n):null}(n.params)):n={},n}function Of(n,e,t){return{duration:n,delay:e,easing:t}}function Ff(n,e,t,r,i,s,o=null,a=!1){return{type:1,element:n,keyframes:e,preStyleProps:t,postStyleProps:r,duration:i,delay:s,totalTime:i+s,easing:o,subTimeline:a}}class Cl{constructor(){this._map=new Map}get(e){return this._map.get(e)||[]}append(e,t){let r=this._map.get(e);r||this._map.set(e,r=[]),r.push(...t)}has(e){return this._map.has(e)}clear(){this._map.clear()}}const SP=new RegExp(":enter","g"),AP=new RegExp(":leave","g");function kf(n,e,t,r,i,s={},o={},a,l,u=[]){return(new xP).buildKeyframes(n,e,t,r,i,s,o,a,l,u)}class xP{buildKeyframes(e,t,r,i,s,o,a,l,u,c=[]){u=u||new Cl;const d=new Pf(e,t,u,i,s,c,[]);d.options=l,d.currentTimeline.setStyles([o],null,d.errors,l),vt(this,r,d);const f=d.timelines.filter(h=>h.containsAnimation());if(Object.keys(a).length){let h;for(let p=f.length-1;p>=0;p--){const g=f[p];if(g.element===t){h=g;break}}h&&!h.allowOnlyTimelineStyles()&&h.setStyles([a],null,d.errors,l)}return f.length?f.map(h=>h.buildKeyframes()):[Ff(t,[],[],[],0,0,"",!1)]}visitTrigger(e,t){}visitState(e,t){}visitTransition(e,t){}visitAnimateChild(e,t){const r=t.subInstructions.get(t.element);if(r){const i=t.createSubContext(e.options),s=t.currentTimeline.currentTime,o=this._visitSubInstructions(r,i,i.options);s!=o&&t.transformIntoNewTimeline(o)}t.previousNode=e}visitAnimateRef(e,t){const r=t.createSubContext(e.options);r.transformIntoNewTimeline(),this.visitReference(e.animation,r),t.transformIntoNewTimeline(r.currentTimeline.currentTime),t.previousNode=e}_visitSubInstructions(e,t,r){let s=t.currentTimeline.currentTime;const o=null!=r.duration?Rr(r.duration):null,a=null!=r.delay?Rr(r.delay):null;return 0!==o&&e.forEach(l=>{const u=t.appendInstructionToTimeline(l,o,a);s=Math.max(s,u.duration+u.delay)}),s}visitReference(e,t){t.updateOptions(e.options,!0),vt(this,e.animation,t),t.previousNode=e}visitSequence(e,t){const r=t.subContextCount;let i=t;const s=e.options;if(s&&(s.params||s.delay)&&(i=t.createSubContext(s),i.transformIntoNewTimeline(),null!=s.delay)){6==i.previousNode.type&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=wl);const o=Rr(s.delay);i.delayNextStep(o)}e.steps.length&&(e.steps.forEach(o=>vt(this,o,i)),i.currentTimeline.applyStylesToKeyframe(),i.subContextCount>r&&i.transformIntoNewTimeline()),t.previousNode=e}visitGroup(e,t){const r=[];let i=t.currentTimeline.currentTime;const s=e.options&&e.options.delay?Rr(e.options.delay):0;e.steps.forEach(o=>{const a=t.createSubContext(e.options);s&&a.delayNextStep(s),vt(this,o,a),i=Math.max(i,a.currentTimeline.currentTime),r.push(a.currentTimeline)}),r.forEach(o=>t.currentTimeline.mergeTimelineCollectedStyles(o)),t.transformIntoNewTimeline(i),t.previousNode=e}_visitTiming(e,t){if(e.dynamic){const r=e.strValue;return ml(t.params?yl(r,t.params,t.errors):r,t.errors)}return{duration:e.duration,delay:e.delay,easing:e.easing}}visitAnimate(e,t){const r=t.currentAnimateTimings=this._visitTiming(e.timings,t),i=t.currentTimeline;r.delay&&(t.incrementTime(r.delay),i.snapshotCurrentStyles());const s=e.style;5==s.type?this.visitKeyframes(s,t):(t.incrementTime(r.duration),this.visitStyle(s,t),i.applyStylesToKeyframe()),t.currentAnimateTimings=null,t.previousNode=e}visitStyle(e,t){const r=t.currentTimeline,i=t.currentAnimateTimings;!i&&r.getCurrentStyleProperties().length&&r.forwardFrame();const s=i&&i.easing||e.easing;e.isEmptyStep?r.applyEmptyStep(s):r.setStyles(e.styles,s,t.errors,t.options),t.previousNode=e}visitKeyframes(e,t){const r=t.currentAnimateTimings,i=t.currentTimeline.duration,s=r.duration,a=t.createSubContext().currentTimeline;a.easing=r.easing,e.styles.forEach(l=>{a.forwardTime((l.offset||0)*s),a.setStyles(l.styles,l.easing,t.errors,t.options),a.applyStylesToKeyframe()}),t.currentTimeline.mergeTimelineCollectedStyles(a),t.transformIntoNewTimeline(i+s),t.previousNode=e}visitQuery(e,t){const r=t.currentTimeline.currentTime,i=e.options||{},s=i.delay?Rr(i.delay):0;s&&(6===t.previousNode.type||0==r&&t.currentTimeline.getCurrentStyleProperties().length)&&(t.currentTimeline.snapshotCurrentStyles(),t.previousNode=wl);let o=r;const a=t.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!i.optional,t.errors);t.currentQueryTotal=a.length;let l=null;a.forEach((u,c)=>{t.currentQueryIndex=c;const d=t.createSubContext(e.options,u);s&&d.delayNextStep(s),u===t.element&&(l=d.currentTimeline),vt(this,e.animation,d),d.currentTimeline.applyStylesToKeyframe(),o=Math.max(o,d.currentTimeline.currentTime)}),t.currentQueryIndex=0,t.currentQueryTotal=0,t.transformIntoNewTimeline(o),l&&(t.currentTimeline.mergeTimelineCollectedStyles(l),t.currentTimeline.snapshotCurrentStyles()),t.previousNode=e}visitStagger(e,t){const r=t.parentContext,i=t.currentTimeline,s=e.timings,o=Math.abs(s.duration),a=o*(t.currentQueryTotal-1);let l=o*t.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":l=a-l;break;case"full":l=r.currentStaggerTime}const c=t.currentTimeline;l&&c.delayNextStep(l);const d=c.currentTime;vt(this,e.animation,t),t.previousNode=e,r.currentStaggerTime=i.currentTime-d+(i.startTime-r.currentTimeline.startTime)}}const wl={};class Pf{constructor(e,t,r,i,s,o,a,l){this._driver=e,this.element=t,this.subInstructions=r,this._enterClassName=i,this._leaveClassName=s,this.errors=o,this.timelines=a,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=wl,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=l||new Tl(this._driver,t,0),a.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(e,t){if(!e)return;const r=e;let i=this.options;null!=r.duration&&(i.duration=Rr(r.duration)),null!=r.delay&&(i.delay=Rr(r.delay));const s=r.params;if(s){let o=i.params;o||(o=this.options.params={}),Object.keys(s).forEach(a=>{(!t||!o.hasOwnProperty(a))&&(o[a]=yl(s[a],o,this.errors))})}}_copyOptions(){const e={};if(this.options){const t=this.options.params;if(t){const r=e.params={};Object.keys(t).forEach(i=>{r[i]=t[i]})}}return e}createSubContext(e=null,t,r){const i=t||this.element,s=new Pf(this._driver,i,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(i,r||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(e),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(e){return this.previousNode=wl,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(e,t,r){const i={duration:null!=t?t:e.duration,delay:this.currentTimeline.currentTime+(null!=r?r:0)+e.delay,easing:""},s=new NP(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,i,e.stretchStartingKeyframe);return this.timelines.push(s),i}incrementTime(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}delayNextStep(e){e>0&&this.currentTimeline.delayNextStep(e)}invokeQuery(e,t,r,i,s,o){let a=[];if(i&&a.push(this.element),e.length>0){e=(e=e.replace(SP,"."+this._enterClassName)).replace(AP,"."+this._leaveClassName);let u=this._driver.query(this.element,e,1!=r);0!==r&&(u=r<0?u.slice(u.length+r,u.length):u.slice(0,r)),a.push(...u)}return!s&&0==a.length&&o.push(`\`query("${t}")\` returned zero elements. (Use \`query("${t}", { optional: true })\` if you wish to allow this.)`),a}}class Tl{constructor(e,t,r,i){this._driver=e,this.element=t,this.startTime=r,this._elementTimelineStylesLookup=i,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(t),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(t,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}}getCurrentStyleProperties(){return Object.keys(this._currentKeyframe)}get currentTime(){return this.startTime+this.duration}delayNextStep(e){const t=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||t?(this.forwardTime(this.currentTime+e),t&&this.snapshotCurrentStyles()):this.startTime+=e}fork(e,t){return this.applyStylesToKeyframe(),new Tl(this._driver,e,t||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}_updateStyle(e,t){this._localTimelineStyles[e]=t,this._globalTimelineStyles[e]=t,this._styleSummary[e]={time:this.currentTime,value:t}}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(e){e&&(this._previousKeyframe.easing=e),Object.keys(this._globalTimelineStyles).forEach(t=>{this._backFill[t]=this._globalTimelineStyles[t]||kn,this._currentKeyframe[t]=kn}),this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(e,t,r,i){t&&(this._previousKeyframe.easing=t);const s=i&&i.params||{},o=function RP(n,e){const t={};let r;return n.forEach(i=>{"*"===i?(r=r||Object.keys(e),r.forEach(s=>{t[s]=kn})):tr(i,!1,t)}),t}(e,this._globalTimelineStyles);Object.keys(o).forEach(a=>{const l=yl(o[a],s,r);this._pendingStyles[a]=l,this._localTimelineStyles.hasOwnProperty(a)||(this._backFill[a]=this._globalTimelineStyles.hasOwnProperty(a)?this._globalTimelineStyles[a]:kn),this._updateStyle(a,l)})}applyStylesToKeyframe(){const e=this._pendingStyles,t=Object.keys(e);0!=t.length&&(this._pendingStyles={},t.forEach(r=>{this._currentKeyframe[r]=e[r]}),Object.keys(this._localTimelineStyles).forEach(r=>{this._currentKeyframe.hasOwnProperty(r)||(this._currentKeyframe[r]=this._localTimelineStyles[r])}))}snapshotCurrentStyles(){Object.keys(this._localTimelineStyles).forEach(e=>{const t=this._localTimelineStyles[e];this._pendingStyles[e]=t,this._updateStyle(e,t)})}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const e=[];for(let t in this._currentKeyframe)e.push(t);return e}mergeTimelineCollectedStyles(e){Object.keys(e._styleSummary).forEach(t=>{const r=this._styleSummary[t],i=e._styleSummary[t];(!r||i.time>r.time)&&this._updateStyle(t,i.value)})}buildKeyframes(){this.applyStylesToKeyframe();const e=new Set,t=new Set,r=1===this._keyframes.size&&0===this.duration;let i=[];this._keyframes.forEach((a,l)=>{const u=tr(a,!0);Object.keys(u).forEach(c=>{const d=u[c];"!"==d?e.add(c):d==kn&&t.add(c)}),r||(u.offset=l/this.duration),i.push(u)});const s=e.size?_l(e.values()):[],o=t.size?_l(t.values()):[];if(r){const a=i[0],l=Vi(a);a.offset=0,l.offset=1,i=[a,l]}return Ff(this.element,i,s,o,this.duration,this.startTime,this.easing,!1)}}class NP extends Tl{constructor(e,t,r,i,s,o,a=!1){super(e,t,o.delay),this.keyframes=r,this.preStyleProps=i,this.postStyleProps=s,this._stretchStartingKeyframe=a,this.timings={duration:o.duration,delay:o.delay,easing:o.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let e=this.keyframes,{delay:t,duration:r,easing:i}=this.timings;if(this._stretchStartingKeyframe&&t){const s=[],o=r+t,a=t/o,l=tr(e[0],!1);l.offset=0,s.push(l);const u=tr(e[0],!1);u.offset=OD(a),s.push(u);const c=e.length-1;for(let d=1;d<=c;d++){let f=tr(e[d],!1);f.offset=OD((t+f.offset*r)/o),s.push(f)}r=o,t=0,i="",e=s}return Ff(this.element,e,this.preStyleProps,this.postStyleProps,r,t,i,!0)}}function OD(n,e=3){const t=Math.pow(10,e-1);return Math.round(n*t)/t}class Lf{}class OP extends Lf{normalizePropertyName(e,t){return xf(e)}normalizeStyleValue(e,t,r,i){let s="";const o=r.toString().trim();if(FP[t]&&0!==r&&"0"!==r)if("number"==typeof r)s="px";else{const a=r.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&i.push(`Please provide a CSS unit value for ${e}:${r}`)}return o+s}}const FP=(()=>function kP(n){const e={};return n.forEach(t=>e[t]=!0),e}("width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective".split(",")))();function FD(n,e,t,r,i,s,o,a,l,u,c,d,f){return{type:0,element:n,triggerName:e,isRemovalTransition:i,fromState:t,fromStyles:s,toState:r,toStyles:o,timelines:a,queriedElements:l,preStyleProps:u,postStyleProps:c,totalTime:d,errors:f}}const Bf={};class kD{constructor(e,t,r){this._triggerName=e,this.ast=t,this._stateStyles=r}match(e,t,r,i){return function PP(n,e,t,r,i){return n.some(s=>s(e,t,r,i))}(this.ast.matchers,e,t,r,i)}buildStyles(e,t,r){const i=this._stateStyles["*"],s=this._stateStyles[e],o=i?i.buildStyles(t,r):{};return s?s.buildStyles(t,r):o}build(e,t,r,i,s,o,a,l,u,c){const d=[],f=this.ast.options&&this.ast.options.params||Bf,p=this.buildStyles(r,a&&a.params||Bf,d),g=l&&l.params||Bf,y=this.buildStyles(i,g,d),_=new Set,m=new Map,D=new Map,T="void"===i,j={params:Object.assign(Object.assign({},f),g)},fe=c?[]:kf(e,t,this.ast.animation,s,o,p,y,j,u,d);let pe=0;if(fe.forEach(Dt=>{pe=Math.max(Dt.duration+Dt.delay,pe)}),d.length)return FD(t,this._triggerName,r,i,T,p,y,[],[],m,D,pe,d);fe.forEach(Dt=>{const Et=Dt.element,Ui=_t(m,Et,{});Dt.preStyleProps.forEach(Yt=>Ui[Yt]=!0);const Pn=_t(D,Et,{});Dt.postStyleProps.forEach(Yt=>Pn[Yt]=!0),Et!==t&&_.add(Et)});const bt=_l(_.values());return FD(t,this._triggerName,r,i,T,p,y,fe,bt,m,D,pe)}}class LP{constructor(e,t,r){this.styles=e,this.defaultParams=t,this.normalizer=r}buildStyles(e,t){const r={},i=Vi(this.defaultParams);return Object.keys(e).forEach(s=>{const o=e[s];null!=o&&(i[s]=o)}),this.styles.styles.forEach(s=>{if("string"!=typeof s){const o=s;Object.keys(o).forEach(a=>{let l=o[a];l.length>1&&(l=yl(l,i,t));const u=this.normalizer.normalizePropertyName(a,t);l=this.normalizer.normalizeStyleValue(a,u,l,t),r[u]=l})}}),r}}class jP{constructor(e,t,r){this.name=e,this.ast=t,this._normalizer=r,this.transitionFactories=[],this.states={},t.states.forEach(i=>{this.states[i.name]=new LP(i.style,i.options&&i.options.params||{},r)}),PD(this.states,"true","1"),PD(this.states,"false","0"),t.transitions.forEach(i=>{this.transitionFactories.push(new kD(e,i,this.states))}),this.fallbackTransition=function VP(n,e,t){return new kD(n,{type:1,animation:{type:2,steps:[],options:null},matchers:[(o,a)=>!0],options:null,queryCount:0,depCount:0},e)}(e,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(e,t,r,i){return this.transitionFactories.find(o=>o.match(e,t,r,i))||null}matchStyles(e,t,r){return this.fallbackTransition.buildStyles(e,t,r)}}function PD(n,e,t){n.hasOwnProperty(e)?n.hasOwnProperty(t)||(n[t]=n[e]):n.hasOwnProperty(t)&&(n[e]=n[t])}const HP=new Cl;class UP{constructor(e,t,r){this.bodyNode=e,this._driver=t,this._normalizer=r,this._animations={},this._playersById={},this.players=[]}register(e,t){const r=[],i=Rf(this._driver,t,r);if(r.length)throw new Error(`Unable to build the animation due to the following errors: ${r.join("\n")}`);this._animations[e]=i}_buildPlayer(e,t,r){const i=e.element,s=mD(0,this._normalizer,0,e.keyframes,t,r);return this._driver.animate(i,s,e.duration,e.delay,e.easing,[],!0)}create(e,t,r={}){const i=[],s=this._animations[e];let o;const a=new Map;if(s?(o=kf(this._driver,t,s,Mf,hl,{},{},r,HP,i),o.forEach(c=>{const d=_t(a,c.element,{});c.postStyleProps.forEach(f=>d[f]=null)})):(i.push("The requested animation doesn't exist or has already been destroyed"),o=[]),i.length)throw new Error(`Unable to create the animation due to the following errors: ${i.join("\n")}`);a.forEach((c,d)=>{Object.keys(c).forEach(f=>{c[f]=this._driver.computeStyle(d,f,kn)})});const u=er(o.map(c=>{const d=a.get(c.element);return this._buildPlayer(c,{},d)}));return this._playersById[e]=u,u.onDestroy(()=>this.destroy(e)),this.players.push(u),u}destroy(e){const t=this._getPlayer(e);t.destroy(),delete this._playersById[e];const r=this.players.indexOf(t);r>=0&&this.players.splice(r,1)}_getPlayer(e){const t=this._playersById[e];if(!t)throw new Error(`Unable to find the timeline player referenced by ${e}`);return t}listen(e,t,r,i){const s=bf(t,"","","");return _f(this._getPlayer(e),r,s,i),()=>{}}command(e,t,r,i){if("register"==r)return void this.register(e,i[0]);if("create"==r)return void this.create(e,t,i[0]||{});const s=this._getPlayer(e);switch(r){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(i[0]));break;case"destroy":this.destroy(e)}}}const LD="ng-animate-queued",jf="ng-animate-disabled",GP=[],BD={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},KP={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Ft="__ng_removed";class Vf{constructor(e,t=""){this.namespaceId=t;const r=e&&e.hasOwnProperty("value");if(this.value=function XP(n){return null!=n?n:null}(r?e.value:e),r){const s=Vi(e);delete s.value,this.options=s}else this.options={};this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(e){const t=e.params;if(t){const r=this.options.params;Object.keys(t).forEach(i=>{null==r[i]&&(r[i]=t[i])})}}}const ho="void",Hf=new Vf(ho);class QP{constructor(e,t,r){this.id=e,this.hostElement=t,this._engine=r,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+e,kt(t,this._hostClassName)}listen(e,t,r,i){if(!this._triggers.hasOwnProperty(t))throw new Error(`Unable to listen on the animation trigger event "${r}" because the animation trigger "${t}" doesn't exist!`);if(null==r||0==r.length)throw new Error(`Unable to listen on the animation trigger "${t}" because the provided event is undefined!`);if(!function JP(n){return"start"==n||"done"==n}(r))throw new Error(`The provided animation trigger event "${r}" for the animation trigger "${t}" is not supported!`);const s=_t(this._elementListeners,e,[]),o={name:t,phase:r,callback:i};s.push(o);const a=_t(this._engine.statesByElement,e,{});return a.hasOwnProperty(t)||(kt(e,pl),kt(e,pl+"-"+t),a[t]=Hf),()=>{this._engine.afterFlush(()=>{const l=s.indexOf(o);l>=0&&s.splice(l,1),this._triggers[t]||delete a[t]})}}register(e,t){return!this._triggers[e]&&(this._triggers[e]=t,!0)}_getTrigger(e){const t=this._triggers[e];if(!t)throw new Error(`The provided animation trigger "${e}" has not been registered!`);return t}trigger(e,t,r,i=!0){const s=this._getTrigger(t),o=new Uf(this.id,t,e);let a=this._engine.statesByElement.get(e);a||(kt(e,pl),kt(e,pl+"-"+t),this._engine.statesByElement.set(e,a={}));let l=a[t];const u=new Vf(r,this.id);if(!(r&&r.hasOwnProperty("value"))&&l&&u.absorbOptions(l.options),a[t]=u,l||(l=Hf),u.value!==ho&&l.value===u.value){if(!function n1(n,e){const t=Object.keys(n),r=Object.keys(e);if(t.length!=r.length)return!1;for(let i=0;i<t.length;i++){const s=t[i];if(!e.hasOwnProperty(s)||n[s]!==e[s])return!1}return!0}(l.params,u.params)){const g=[],y=s.matchStyles(l.value,l.params,g),_=s.matchStyles(u.value,u.params,g);g.length?this._engine.reportError(g):this._engine.afterFlush(()=>{Or(e,y),pn(e,_)})}return}const f=_t(this._engine.playersByElement,e,[]);f.forEach(g=>{g.namespaceId==this.id&&g.triggerName==t&&g.queued&&g.destroy()});let h=s.matchTransition(l.value,u.value,e,u.params),p=!1;if(!h){if(!i)return;h=s.fallbackTransition,p=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:t,transition:h,fromState:l,toState:u,player:o,isFallbackTransition:p}),p||(kt(e,LD),o.onStart(()=>{Hi(e,LD)})),o.onDone(()=>{let g=this.players.indexOf(o);g>=0&&this.players.splice(g,1);const y=this._engine.playersByElement.get(e);if(y){let _=y.indexOf(o);_>=0&&y.splice(_,1)}}),this.players.push(o),f.push(o),o}deregister(e){delete this._triggers[e],this._engine.statesByElement.forEach((t,r)=>{delete t[e]}),this._elementListeners.forEach((t,r)=>{this._elementListeners.set(r,t.filter(i=>i.name!=e))})}clearElementCache(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);const t=this._engine.playersByElement.get(e);t&&(t.forEach(r=>r.destroy()),this._engine.playersByElement.delete(e))}_signalRemovalForInnerTriggers(e,t){const r=this._engine.driver.query(e,gl,!0);r.forEach(i=>{if(i[Ft])return;const s=this._engine.fetchNamespacesByElement(i);s.size?s.forEach(o=>o.triggerLeaveAnimation(i,t,!1,!0)):this.clearElementCache(i)}),this._engine.afterFlushAnimationsDone(()=>r.forEach(i=>this.clearElementCache(i)))}triggerLeaveAnimation(e,t,r,i){const s=this._engine.statesByElement.get(e),o=new Map;if(s){const a=[];if(Object.keys(s).forEach(l=>{if(o.set(l,s[l].value),this._triggers[l]){const u=this.trigger(e,l,ho,i);u&&a.push(u)}}),a.length)return this._engine.markElementAsRemoved(this.id,e,!0,t,o),r&&er(a).onDone(()=>this._engine.processLeaveNode(e)),!0}return!1}prepareLeaveAnimationListeners(e){const t=this._elementListeners.get(e),r=this._engine.statesByElement.get(e);if(t&&r){const i=new Set;t.forEach(s=>{const o=s.name;if(i.has(o))return;i.add(o);const l=this._triggers[o].fallbackTransition,u=r[o]||Hf,c=new Vf(ho),d=new Uf(this.id,o,e);this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:o,transition:l,fromState:u,toState:c,player:d,isFallbackTransition:!0})})}}removeNode(e,t){const r=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,t),this.triggerLeaveAnimation(e,t,!0))return;let i=!1;if(r.totalAnimations){const s=r.players.length?r.playersByQueriedElement.get(e):[];if(s&&s.length)i=!0;else{let o=e;for(;o=o.parentNode;)if(r.statesByElement.get(o)){i=!0;break}}}if(this.prepareLeaveAnimationListeners(e),i)r.markElementAsRemoved(this.id,e,!1,t);else{const s=e[Ft];(!s||s===BD)&&(r.afterFlush(()=>this.clearElementCache(e)),r.destroyInnerAnimations(e),r._onRemovalComplete(e,t))}}insertNode(e,t){kt(e,this._hostClassName)}drainQueuedTransitions(e){const t=[];return this._queue.forEach(r=>{const i=r.player;if(i.destroyed)return;const s=r.element,o=this._elementListeners.get(s);o&&o.forEach(a=>{if(a.name==r.triggerName){const l=bf(s,r.triggerName,r.fromState.value,r.toState.value);l._data=e,_f(r.player,a.phase,l,a.callback)}}),i.markedForDestroy?this._engine.afterFlush(()=>{i.destroy()}):t.push(r)}),this._queue=[],t.sort((r,i)=>{const s=r.transition.ast.depCount,o=i.transition.ast.depCount;return 0==s||0==o?s-o:this._engine.driver.containsElement(r.element,i.element)?1:-1})}destroy(e){this.players.forEach(t=>t.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,e)}elementContainsData(e){let t=!1;return this._elementListeners.has(e)&&(t=!0),t=!!this._queue.find(r=>r.element===e)||t,t}}class ZP{constructor(e,t,r){this.bodyNode=e,this.driver=t,this._normalizer=r,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(i,s)=>{}}_onRemovalComplete(e,t){this.onRemovalComplete(e,t)}get queuedPlayers(){const e=[];return this._namespaceList.forEach(t=>{t.players.forEach(r=>{r.queued&&e.push(r)})}),e}createNamespace(e,t){const r=new QP(e,t,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,t)?this._balanceNamespaceList(r,t):(this.newHostElements.set(t,r),this.collectEnterElement(t)),this._namespaceLookup[e]=r}_balanceNamespaceList(e,t){const r=this._namespaceList.length-1;if(r>=0){let i=!1;for(let s=r;s>=0;s--)if(this.driver.containsElement(this._namespaceList[s].hostElement,t)){this._namespaceList.splice(s+1,0,e),i=!0;break}i||this._namespaceList.splice(0,0,e)}else this._namespaceList.push(e);return this.namespacesByHostElement.set(t,e),e}register(e,t){let r=this._namespaceLookup[e];return r||(r=this.createNamespace(e,t)),r}registerTrigger(e,t,r){let i=this._namespaceLookup[e];i&&i.register(t,r)&&this.totalAnimations++}destroy(e,t){if(!e)return;const r=this._fetchNamespace(e);this.afterFlush(()=>{this.namespacesByHostElement.delete(r.hostElement),delete this._namespaceLookup[e];const i=this._namespaceList.indexOf(r);i>=0&&this._namespaceList.splice(i,1)}),this.afterFlushAnimationsDone(()=>r.destroy(t))}_fetchNamespace(e){return this._namespaceLookup[e]}fetchNamespacesByElement(e){const t=new Set,r=this.statesByElement.get(e);if(r){const i=Object.keys(r);for(let s=0;s<i.length;s++){const o=r[i[s]].namespaceId;if(o){const a=this._fetchNamespace(o);a&&t.add(a)}}}return t}trigger(e,t,r,i){if(Ml(t)){const s=this._fetchNamespace(e);if(s)return s.trigger(t,r,i),!0}return!1}insertNode(e,t,r,i){if(!Ml(t))return;const s=t[Ft];if(s&&s.setForRemoval){s.setForRemoval=!1,s.setForMove=!0;const o=this.collectedLeaveElements.indexOf(t);o>=0&&this.collectedLeaveElements.splice(o,1)}if(e){const o=this._fetchNamespace(e);o&&o.insertNode(t,r)}i&&this.collectEnterElement(t)}collectEnterElement(e){this.collectedEnterElements.push(e)}markElementAsDisabled(e,t){t?this.disabledNodes.has(e)||(this.disabledNodes.add(e),kt(e,jf)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),Hi(e,jf))}removeNode(e,t,r,i){if(Ml(t)){const s=e?this._fetchNamespace(e):null;if(s?s.removeNode(t,i):this.markElementAsRemoved(e,t,!1,i),r){const o=this.namespacesByHostElement.get(t);o&&o.id!==e&&o.removeNode(t,i)}}else this._onRemovalComplete(t,i)}markElementAsRemoved(e,t,r,i,s){this.collectedLeaveElements.push(t),t[Ft]={namespaceId:e,setForRemoval:i,hasAnimation:r,removedBeforeQueried:!1,previousTriggersValues:s}}listen(e,t,r,i,s){return Ml(t)?this._fetchNamespace(e).listen(t,r,i,s):()=>{}}_buildInstruction(e,t,r,i,s){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,r,i,e.fromState.options,e.toState.options,t,s)}destroyInnerAnimations(e){let t=this.driver.query(e,gl,!0);t.forEach(r=>this.destroyActiveAnimationsForElement(r)),0!=this.playersByQueriedElement.size&&(t=this.driver.query(e,Sf,!0),t.forEach(r=>this.finishActiveQueriedAnimationOnElement(r)))}destroyActiveAnimationsForElement(e){const t=this.playersByElement.get(e);t&&t.forEach(r=>{r.queued?r.markedForDestroy=!0:r.destroy()})}finishActiveQueriedAnimationOnElement(e){const t=this.playersByQueriedElement.get(e);t&&t.forEach(r=>r.finish())}whenRenderingDone(){return new Promise(e=>{if(this.players.length)return er(this.players).onDone(()=>e());e()})}processLeaveNode(e){var t;const r=e[Ft];if(r&&r.setForRemoval){if(e[Ft]=BD,r.namespaceId){this.destroyInnerAnimations(e);const i=this._fetchNamespace(r.namespaceId);i&&i.clearElementCache(e)}this._onRemovalComplete(e,r.setForRemoval)}(null===(t=e.classList)||void 0===t?void 0:t.contains(jf))&&this.markElementAsDisabled(e,!1),this.driver.query(e,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(e=-1){let t=[];if(this.newHostElements.size&&(this.newHostElements.forEach((r,i)=>this._balanceNamespaceList(r,i)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let r=0;r<this.collectedEnterElements.length;r++)kt(this.collectedEnterElements[r],"ng-star-inserted");if(this._namespaceList.length&&(this.totalQueuedPlayers||this.collectedLeaveElements.length)){const r=[];try{t=this._flushAnimations(r,e)}finally{for(let i=0;i<r.length;i++)r[i]()}}else for(let r=0;r<this.collectedLeaveElements.length;r++)this.processLeaveNode(this.collectedLeaveElements[r]);if(this.totalQueuedPlayers=0,this.collectedEnterElements.length=0,this.collectedLeaveElements.length=0,this._flushFns.forEach(r=>r()),this._flushFns=[],this._whenQuietFns.length){const r=this._whenQuietFns;this._whenQuietFns=[],t.length?er(t).onDone(()=>{r.forEach(i=>i())}):r.forEach(i=>i())}}reportError(e){throw new Error(`Unable to process animations due to the following failed trigger transitions\n ${e.join("\n")}`)}_flushAnimations(e,t){const r=new Cl,i=[],s=new Map,o=[],a=new Map,l=new Map,u=new Map,c=new Set;this.disabledNodes.forEach(M=>{c.add(M);const S=this.driver.query(M,".ng-animate-queued",!0);for(let N=0;N<S.length;N++)c.add(S[N])});const d=this.bodyNode,f=Array.from(this.statesByElement.keys()),h=HD(f,this.collectedEnterElements),p=new Map;let g=0;h.forEach((M,S)=>{const N=Mf+g++;p.set(S,N),M.forEach(Q=>kt(Q,N))});const y=[],_=new Set,m=new Set;for(let M=0;M<this.collectedLeaveElements.length;M++){const S=this.collectedLeaveElements[M],N=S[Ft];N&&N.setForRemoval&&(y.push(S),_.add(S),N.hasAnimation?this.driver.query(S,".ng-star-inserted",!0).forEach(Q=>_.add(Q)):m.add(S))}const D=new Map,T=HD(f,Array.from(_));T.forEach((M,S)=>{const N=hl+g++;D.set(S,N),M.forEach(Q=>kt(Q,N))}),e.push(()=>{h.forEach((M,S)=>{const N=p.get(S);M.forEach(Q=>Hi(Q,N))}),T.forEach((M,S)=>{const N=D.get(S);M.forEach(Q=>Hi(Q,N))}),y.forEach(M=>{this.processLeaveNode(M)})});const j=[],fe=[];for(let M=this._namespaceList.length-1;M>=0;M--)this._namespaceList[M].drainQueuedTransitions(t).forEach(N=>{const Q=N.player,Oe=N.element;if(j.push(Q),this.collectedEnterElements.length){const tt=Oe[Ft];if(tt&&tt.setForMove){if(tt.previousTriggersValues&&tt.previousTriggersValues.has(N.triggerName)){const Pr=tt.previousTriggersValues.get(N.triggerName),or=this.statesByElement.get(N.element);or&&or[N.triggerName]&&(or[N.triggerName].value=Pr)}return void Q.destroy()}}const gn=!d||!this.driver.containsElement(d,Oe),Ct=D.get(Oe),sr=p.get(Oe),ge=this._buildInstruction(N,r,sr,Ct,gn);if(ge.errors&&ge.errors.length)return void fe.push(ge);if(gn)return Q.onStart(()=>Or(Oe,ge.fromStyles)),Q.onDestroy(()=>pn(Oe,ge.toStyles)),void i.push(Q);if(N.isFallbackTransition)return Q.onStart(()=>Or(Oe,ge.fromStyles)),Q.onDestroy(()=>pn(Oe,ge.toStyles)),void i.push(Q);const NE=[];ge.timelines.forEach(tt=>{tt.stretchStartingKeyframe=!0,this.disabledNodes.has(tt.element)||NE.push(tt)}),ge.timelines=NE,r.append(Oe,ge.timelines),o.push({instruction:ge,player:Q,element:Oe}),ge.queriedElements.forEach(tt=>_t(a,tt,[]).push(Q)),ge.preStyleProps.forEach((tt,Pr)=>{const or=Object.keys(tt);if(or.length){let Lr=l.get(Pr);Lr||l.set(Pr,Lr=new Set),or.forEach(Qf=>Lr.add(Qf))}}),ge.postStyleProps.forEach((tt,Pr)=>{const or=Object.keys(tt);let Lr=u.get(Pr);Lr||u.set(Pr,Lr=new Set),or.forEach(Qf=>Lr.add(Qf))})});if(fe.length){const M=[];fe.forEach(S=>{M.push(`@${S.triggerName} has failed due to:\n`),S.errors.forEach(N=>M.push(`- ${N}\n`))}),j.forEach(S=>S.destroy()),this.reportError(M)}const pe=new Map,bt=new Map;o.forEach(M=>{const S=M.element;r.has(S)&&(bt.set(S,S),this._beforeAnimationBuild(M.player.namespaceId,M.instruction,pe))}),i.forEach(M=>{const S=M.element;this._getPreviousPlayers(S,!1,M.namespaceId,M.triggerName,null).forEach(Q=>{_t(pe,S,[]).push(Q),Q.destroy()})});const Dt=y.filter(M=>$D(M,l,u)),Et=new Map;VD(Et,this.driver,m,u,kn).forEach(M=>{$D(M,l,u)&&Dt.push(M)});const Pn=new Map;h.forEach((M,S)=>{VD(Pn,this.driver,new Set(M),l,"!")}),Dt.forEach(M=>{const S=Et.get(M),N=Pn.get(M);Et.set(M,Object.assign(Object.assign({},S),N))});const Yt=[],$i=[],zi={};o.forEach(M=>{const{element:S,player:N,instruction:Q}=M;if(r.has(S)){if(c.has(S))return N.onDestroy(()=>pn(S,Q.toStyles)),N.disabled=!0,N.overrideTotalTime(Q.totalTime),void i.push(N);let Oe=zi;if(bt.size>1){let Ct=S;const sr=[];for(;Ct=Ct.parentNode;){const ge=bt.get(Ct);if(ge){Oe=ge;break}sr.push(Ct)}sr.forEach(ge=>bt.set(ge,Oe))}const gn=this._buildAnimation(N.namespaceId,Q,pe,s,Pn,Et);if(N.setRealPlayer(gn),Oe===zi)Yt.push(N);else{const Ct=this.playersByElement.get(Oe);Ct&&Ct.length&&(N.parentPlayer=er(Ct)),i.push(N)}}else Or(S,Q.fromStyles),N.onDestroy(()=>pn(S,Q.toStyles)),$i.push(N),c.has(S)&&i.push(N)}),$i.forEach(M=>{const S=s.get(M.element);if(S&&S.length){const N=er(S);M.setRealPlayer(N)}}),i.forEach(M=>{M.parentPlayer?M.syncPlayerEvents(M.parentPlayer):M.destroy()});for(let M=0;M<y.length;M++){const S=y[M],N=S[Ft];if(Hi(S,hl),N&&N.hasAnimation)continue;let Q=[];if(a.size){let gn=a.get(S);gn&&gn.length&&Q.push(...gn);let Ct=this.driver.query(S,Sf,!0);for(let sr=0;sr<Ct.length;sr++){let ge=a.get(Ct[sr]);ge&&ge.length&&Q.push(...ge)}}const Oe=Q.filter(gn=>!gn.destroyed);Oe.length?e1(this,S,Oe):this.processLeaveNode(S)}return y.length=0,Yt.forEach(M=>{this.players.push(M),M.onDone(()=>{M.destroy();const S=this.players.indexOf(M);this.players.splice(S,1)}),M.play()}),Yt}elementContainsData(e,t){let r=!1;const i=t[Ft];return i&&i.setForRemoval&&(r=!0),this.playersByElement.has(t)&&(r=!0),this.playersByQueriedElement.has(t)&&(r=!0),this.statesByElement.has(t)&&(r=!0),this._fetchNamespace(e).elementContainsData(t)||r}afterFlush(e){this._flushFns.push(e)}afterFlushAnimationsDone(e){this._whenQuietFns.push(e)}_getPreviousPlayers(e,t,r,i,s){let o=[];if(t){const a=this.playersByQueriedElement.get(e);a&&(o=a)}else{const a=this.playersByElement.get(e);if(a){const l=!s||s==ho;a.forEach(u=>{u.queued||!l&&u.triggerName!=i||o.push(u)})}}return(r||i)&&(o=o.filter(a=>!(r&&r!=a.namespaceId||i&&i!=a.triggerName))),o}_beforeAnimationBuild(e,t,r){const s=t.element,o=t.isRemovalTransition?void 0:e,a=t.isRemovalTransition?void 0:t.triggerName;for(const l of t.timelines){const u=l.element,c=u!==s,d=_t(r,u,[]);this._getPreviousPlayers(u,c,o,a,t.toState).forEach(h=>{const p=h.getRealPlayer();p.beforeDestroy&&p.beforeDestroy(),h.destroy(),d.push(h)})}Or(s,t.fromStyles)}_buildAnimation(e,t,r,i,s,o){const a=t.triggerName,l=t.element,u=[],c=new Set,d=new Set,f=t.timelines.map(p=>{const g=p.element;c.add(g);const y=g[Ft];if(y&&y.removedBeforeQueried)return new ji(p.duration,p.delay);const _=g!==l,m=function t1(n){const e=[];return UD(n,e),e}((r.get(g)||GP).map(pe=>pe.getRealPlayer())).filter(pe=>!!pe.element&&pe.element===g),D=s.get(g),T=o.get(g),j=mD(0,this._normalizer,0,p.keyframes,D,T),fe=this._buildPlayer(p,j,m);if(p.subTimeline&&i&&d.add(g),_){const pe=new Uf(e,a,g);pe.setRealPlayer(fe),u.push(pe)}return fe});u.forEach(p=>{_t(this.playersByQueriedElement,p.element,[]).push(p),p.onDone(()=>function YP(n,e,t){let r;if(n instanceof Map){if(r=n.get(e),r){if(r.length){const i=r.indexOf(t);r.splice(i,1)}0==r.length&&n.delete(e)}}else if(r=n[e],r){if(r.length){const i=r.indexOf(t);r.splice(i,1)}0==r.length&&delete n[e]}return r}(this.playersByQueriedElement,p.element,p))}),c.forEach(p=>kt(p,CD));const h=er(f);return h.onDestroy(()=>{c.forEach(p=>Hi(p,CD)),pn(l,t.toStyles)}),d.forEach(p=>{_t(i,p,[]).push(h)}),h}_buildPlayer(e,t,r){return t.length>0?this.driver.animate(e.element,t,e.duration,e.delay,e.easing,r):new ji(e.duration,e.delay)}}class Uf{constructor(e,t,r){this.namespaceId=e,this.triggerName=t,this.element=r,this._player=new ji,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(e){this._containsRealPlayer||(this._player=e,Object.keys(this._queuedCallbacks).forEach(t=>{this._queuedCallbacks[t].forEach(r=>_f(e,t,void 0,r))}),this._queuedCallbacks={},this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(e){this.totalTime=e}syncPlayerEvents(e){const t=this._player;t.triggerCallback&&e.onStart(()=>t.triggerCallback("start")),e.onDone(()=>this.finish()),e.onDestroy(()=>this.destroy())}_queueEvent(e,t){_t(this._queuedCallbacks,e,[]).push(t)}onDone(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}onStart(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}onDestroy(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(e){this.queued||this._player.setPosition(e)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(e){const t=this._player;t.triggerCallback&&t.triggerCallback(e)}}function Ml(n){return n&&1===n.nodeType}function jD(n,e){const t=n.style.display;return n.style.display=null!=e?e:"none",t}function VD(n,e,t,r,i){const s=[];t.forEach(l=>s.push(jD(l)));const o=[];r.forEach((l,u)=>{const c={};l.forEach(d=>{const f=c[d]=e.computeStyle(u,d,i);(!f||0==f.length)&&(u[Ft]=KP,o.push(u))}),n.set(u,c)});let a=0;return t.forEach(l=>jD(l,s[a++])),o}function HD(n,e){const t=new Map;if(n.forEach(a=>t.set(a,[])),0==e.length)return t;const i=new Set(e),s=new Map;function o(a){if(!a)return 1;let l=s.get(a);if(l)return l;const u=a.parentNode;return l=t.has(u)?u:i.has(u)?1:o(u),s.set(a,l),l}return e.forEach(a=>{const l=o(a);1!==l&&t.get(l).push(a)}),t}function kt(n,e){var t;null===(t=n.classList)||void 0===t||t.add(e)}function Hi(n,e){var t;null===(t=n.classList)||void 0===t||t.remove(e)}function e1(n,e,t){er(t).onDone(()=>n.processLeaveNode(e))}function UD(n,e){for(let t=0;t<n.length;t++){const r=n[t];r instanceof pD?UD(r.players,e):e.push(r)}}function $D(n,e,t){const r=t.get(n);if(!r)return!1;let i=e.get(n);return i?r.forEach(s=>i.add(s)):e.set(n,r),t.delete(n),!0}class Sl{constructor(e,t,r){this.bodyNode=e,this._driver=t,this._normalizer=r,this._triggerCache={},this.onRemovalComplete=(i,s)=>{},this._transitionEngine=new ZP(e,t,r),this._timelineEngine=new UP(e,t,r),this._transitionEngine.onRemovalComplete=(i,s)=>this.onRemovalComplete(i,s)}registerTrigger(e,t,r,i,s){const o=e+"-"+i;let a=this._triggerCache[o];if(!a){const l=[],u=Rf(this._driver,s,l);if(l.length)throw new Error(`The animation trigger "${i}" has failed to build due to the following errors:\n - ${l.join("\n - ")}`);a=function BP(n,e,t){return new jP(n,e,t)}(i,u,this._normalizer),this._triggerCache[o]=a}this._transitionEngine.registerTrigger(t,i,a)}register(e,t){this._transitionEngine.register(e,t)}destroy(e,t){this._transitionEngine.destroy(e,t)}onInsert(e,t,r,i){this._transitionEngine.insertNode(e,t,r,i)}onRemove(e,t,r,i){this._transitionEngine.removeNode(e,t,i||!1,r)}disableAnimations(e,t){this._transitionEngine.markElementAsDisabled(e,t)}process(e,t,r,i){if("@"==r.charAt(0)){const[s,o]=yD(r);this._timelineEngine.command(s,t,o,i)}else this._transitionEngine.trigger(e,t,r,i)}listen(e,t,r,i,s){if("@"==r.charAt(0)){const[o,a]=yD(r);return this._timelineEngine.listen(o,t,a,s)}return this._transitionEngine.listen(e,t,r,i,s)}flush(e=-1){this._transitionEngine.flush(e)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}function zD(n,e){let t=null,r=null;return Array.isArray(e)&&e.length?(t=$f(e[0]),e.length>1&&(r=$f(e[e.length-1]))):e&&(t=$f(e)),t||r?new r1(n,t,r):null}let r1=(()=>{class n{constructor(t,r,i){this._element=t,this._startStyles=r,this._endStyles=i,this._state=0;let s=n.initialStylesByElement.get(t);s||n.initialStylesByElement.set(t,s={}),this._initialStyles=s}start(){this._state<1&&(this._startStyles&&pn(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(pn(this._element,this._initialStyles),this._endStyles&&(pn(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(n.initialStylesByElement.delete(this._element),this._startStyles&&(Or(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Or(this._element,this._endStyles),this._endStyles=null),pn(this._element,this._initialStyles),this._state=3)}}return n.initialStylesByElement=new WeakMap,n})();function $f(n){let e=null;const t=Object.keys(n);for(let r=0;r<t.length;r++){const i=t[r];s1(i)&&(e=e||{},e[i]=n[i])}return e}function s1(n){return"display"===n||"position"===n}const qD="animation",WD="animationend";class l1{constructor(e,t,r,i,s,o,a){this._element=e,this._name=t,this._duration=r,this._delay=i,this._easing=s,this._fillMode=o,this._onDoneFn=a,this._finished=!1,this._destroyed=!1,this._startTime=0,this._position=0,this._eventFn=l=>this._handleCallback(l)}apply(){(function u1(n,e){const t=qf(n,"").trim();let r=0;t.length&&(r=function d1(n,e){let t=0;for(let r=0;r<n.length;r++)n.charAt(r)===e&&t++;return t}(t,",")+1,e=`${t}, ${e}`),Il(n,"",e)})(this._element,`${this._duration}ms ${this._easing} ${this._delay}ms 1 normal ${this._fillMode} ${this._name}`),QD(this._element,this._eventFn,!1),this._startTime=Date.now()}pause(){GD(this._element,this._name,"paused")}resume(){GD(this._element,this._name,"running")}setPosition(e){const t=KD(this._element,this._name);this._position=e*this._duration,Il(this._element,"Delay",`-${this._position}ms`,t)}getPosition(){return this._position}_handleCallback(e){const t=e._ngTestManualTimestamp||Date.now(),r=1e3*parseFloat(e.elapsedTime.toFixed(3));e.animationName==this._name&&Math.max(t-this._startTime,0)>=this._delay&&r>=this._duration&&this.finish()}finish(){this._finished||(this._finished=!0,this._onDoneFn(),QD(this._element,this._eventFn,!0))}destroy(){this._destroyed||(this._destroyed=!0,this.finish(),function c1(n,e){const r=qf(n,"").split(","),i=zf(r,e);i>=0&&(r.splice(i,1),Il(n,"",r.join(",")))}(this._element,this._name))}}function GD(n,e,t){Il(n,"PlayState",t,KD(n,e))}function KD(n,e){const t=qf(n,"");return t.indexOf(",")>0?zf(t.split(","),e):zf([t],e)}function zf(n,e){for(let t=0;t<n.length;t++)if(n[t].indexOf(e)>=0)return t;return-1}function QD(n,e,t){t?n.removeEventListener(WD,e):n.addEventListener(WD,e)}function Il(n,e,t,r){const i=qD+e;if(null!=r){const s=n.style[i];if(s.length){const o=s.split(",");o[r]=t,t=o.join(",")}}n.style[i]=t}function qf(n,e){return n.style[qD+e]||""}class ZD{constructor(e,t,r,i,s,o,a,l){this.element=e,this.keyframes=t,this.animationName=r,this._duration=i,this._delay=s,this._finalStyles=a,this._specialStyles=l,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this.currentSnapshot={},this._state=0,this.easing=o||"linear",this.totalTime=i+s,this._buildStyler()}onStart(e){this._onStartFns.push(e)}onDone(e){this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}destroy(){this.init(),!(this._state>=4)&&(this._state=4,this._styler.destroy(),this._flushStartFns(),this._flushDoneFns(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}_flushDoneFns(){this._onDoneFns.forEach(e=>e()),this._onDoneFns=[]}_flushStartFns(){this._onStartFns.forEach(e=>e()),this._onStartFns=[]}finish(){this.init(),!(this._state>=3)&&(this._state=3,this._styler.finish(),this._flushStartFns(),this._specialStyles&&this._specialStyles.finish(),this._flushDoneFns())}setPosition(e){this._styler.setPosition(e)}getPosition(){return this._styler.getPosition()}hasStarted(){return this._state>=2}init(){this._state>=1||(this._state=1,this._styler.apply(),this._delay&&this._styler.pause())}play(){this.init(),this.hasStarted()||(this._flushStartFns(),this._state=2,this._specialStyles&&this._specialStyles.start()),this._styler.resume()}pause(){this.init(),this._styler.pause()}restart(){this.reset(),this.play()}reset(){this._state=0,this._styler.destroy(),this._buildStyler(),this._styler.apply()}_buildStyler(){this._styler=new l1(this.element,this.animationName,this._duration,this._delay,this.easing,"forwards",()=>this.finish())}triggerCallback(e){const t="start"==e?this._onStartFns:this._onDoneFns;t.forEach(r=>r()),t.length=0}beforeDestroy(){this.init();const e={};if(this.hasStarted()){const t=this._state>=3;Object.keys(this._finalStyles).forEach(r=>{"offset"!=r&&(e[r]=t?this._finalStyles[r]:Nf(this.element,r))})}this.currentSnapshot=e}}class p1 extends ji{constructor(e,t){super(),this.element=e,this._startingStyles={},this.__initialized=!1,this._styles=bD(t)}init(){this.__initialized||!this._startingStyles||(this.__initialized=!0,Object.keys(this._styles).forEach(e=>{this._startingStyles[e]=this.element.style[e]}),super.init())}play(){!this._startingStyles||(this.init(),Object.keys(this._styles).forEach(e=>this.element.style.setProperty(e,this._styles[e])),super.play())}destroy(){!this._startingStyles||(Object.keys(this._startingStyles).forEach(e=>{const t=this._startingStyles[e];t?this.element.style.setProperty(e,t):this.element.style.removeProperty(e)}),this._startingStyles=null,super.destroy())}}class XD{constructor(){this._count=0}validateStyleProperty(e){return Ef(e)}matchesElement(e,t){return!1}containsElement(e,t){return Cf(e,t)}query(e,t,r){return wf(e,t,r)}computeStyle(e,t,r){return window.getComputedStyle(e)[t]}buildKeyframeElement(e,t,r){r=r.map(a=>bD(a));let i=`@keyframes ${t} {\n`,s="";r.forEach(a=>{s=" ";const l=parseFloat(a.offset);i+=`${s}${100*l}% {\n`,s+=" ",Object.keys(a).forEach(u=>{const c=a[u];switch(u){case"offset":return;case"easing":return void(c&&(i+=`${s}animation-timing-function: ${c};\n`));default:return void(i+=`${s}${u}: ${c};\n`)}}),i+=`${s}}\n`}),i+="}\n";const o=document.createElement("style");return o.textContent=i,o}animate(e,t,r,i,s,o=[],a){const l=o.filter(y=>y instanceof ZD),u={};ID(r,i)&&l.forEach(y=>{let _=y.currentSnapshot;Object.keys(_).forEach(m=>u[m]=_[m])});const c=function y1(n){let e={};return n&&(Array.isArray(n)?n:[n]).forEach(r=>{Object.keys(r).forEach(i=>{"offset"==i||"easing"==i||(e[i]=r[i])})}),e}(t=AD(e,t,u));if(0==r)return new p1(e,c);const d="gen_css_kf_"+this._count++,f=this.buildKeyframeElement(e,d,t);(function m1(n){var e;const t=null===(e=n.getRootNode)||void 0===e?void 0:e.call(n);return"undefined"!=typeof ShadowRoot&&t instanceof ShadowRoot?t:document.head})(e).appendChild(f);const p=zD(e,t),g=new ZD(e,t,d,r,i,s,c,p);return g.onDestroy(()=>function _1(n){n.parentNode.removeChild(n)}(f)),g}}class eE{constructor(e,t,r,i){this.element=e,this.keyframes=t,this.options=r,this._specialStyles=i,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.time=0,this.parentPlayer=null,this.currentSnapshot={},this._duration=r.duration,this._delay=r.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const e=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,e,this.options),this._finalKeyframe=e.length?e[e.length-1]:{},this.domPlayer.addEventListener("finish",()=>this._onFinish())}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_triggerWebAnimation(e,t,r){return e.animate(t,r)}onStart(e){this._onStartFns.push(e)}onDone(e){this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(e=>e()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}setPosition(e){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=e*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const e={};if(this.hasStarted()){const t=this._finalKeyframe;Object.keys(t).forEach(r=>{"offset"!=r&&(e[r]=this._finished?t[r]:Nf(this.element,r))})}this.currentSnapshot=e}triggerCallback(e){const t="start"==e?this._onStartFns:this._onDoneFns;t.forEach(r=>r()),t.length=0}}class v1{constructor(){this._isNativeImpl=/\{\s*\[native\s+code\]\s*\}/.test(tE().toString()),this._cssKeyframesDriver=new XD}validateStyleProperty(e){return Ef(e)}matchesElement(e,t){return!1}containsElement(e,t){return Cf(e,t)}query(e,t,r){return wf(e,t,r)}computeStyle(e,t,r){return window.getComputedStyle(e)[t]}overrideWebAnimationsSupport(e){this._isNativeImpl=e}animate(e,t,r,i,s,o=[],a){if(!a&&!this._isNativeImpl)return this._cssKeyframesDriver.animate(e,t,r,i,s,o);const c={duration:r,delay:i,fill:0==i?"both":"forwards"};s&&(c.easing=s);const d={},f=o.filter(p=>p instanceof eE);ID(r,i)&&f.forEach(p=>{let g=p.currentSnapshot;Object.keys(g).forEach(y=>d[y]=g[y])});const h=zD(e,t=AD(e,t=t.map(p=>tr(p,!1)),d));return new eE(e,t,c,h)}}function tE(){return gD()&&Element.prototype.animate||{}}let D1=(()=>{class n extends cD{constructor(t,r){super(),this._nextAnimationId=0,this._renderer=t.createRenderer(r.body,{id:"0",encapsulation:Bt.None,styles:[],data:{animation:[]}})}build(t){const r=this._nextAnimationId.toString();this._nextAnimationId++;const i=Array.isArray(t)?dD(t):t;return nE(this._renderer,null,r,"register",[i]),new E1(r,this._renderer)}}return n.\u0275fac=function(t){return new(t||n)(E(ks),E(de))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();class E1 extends class oP{}{constructor(e,t){super(),this._id=e,this._renderer=t}create(e,t){return new C1(this._id,e,t||{},this._renderer)}}class C1{constructor(e,t,r,i){this.id=e,this.element=t,this._renderer=i,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",r)}_listen(e,t){return this._renderer.listen(this.element,`@@${this.id}:${e}`,t)}_command(e,...t){return nE(this._renderer,this.element,this.id,e,t)}onDone(e){this._listen("done",e)}onStart(e){this._listen("start",e)}onDestroy(e){this._listen("destroy",e)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(e){this._command("setPosition",e)}getPosition(){var e,t;return null!==(t=null===(e=this._renderer.engine.players[+this.id])||void 0===e?void 0:e.getPosition())&&void 0!==t?t:0}}function nE(n,e,t,r,i){return n.setProperty(e,`@@${t}:${r}`,i)}const rE="@.disabled";let w1=(()=>{class n{constructor(t,r,i){this.delegate=t,this.engine=r,this._zone=i,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),r.onRemovalComplete=(s,o)=>{const a=null==o?void 0:o.parentNode(s);a&&o.removeChild(a,s)}}createRenderer(t,r){const s=this.delegate.createRenderer(t,r);if(!(t&&r&&r.data&&r.data.animation)){let c=this._rendererCache.get(s);return c||(c=new iE("",s,this.engine),this._rendererCache.set(s,c)),c}const o=r.id,a=r.id+"-"+this._currentId;this._currentId++,this.engine.register(a,t);const l=c=>{Array.isArray(c)?c.forEach(l):this.engine.registerTrigger(o,a,t,c.name,c)};return r.data.animation.forEach(l),new T1(this,a,s,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(t,r,i){t>=0&&t<this._microtaskId?this._zone.run(()=>r(i)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(s=>{const[o,a]=s;o(a)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([r,i]))}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}return n.\u0275fac=function(t){return new(t||n)(E(ks),E(Sl),E(ce))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();class iE{constructor(e,t,r){this.namespaceId=e,this.delegate=t,this.engine=r,this.destroyNode=this.delegate.destroyNode?i=>t.destroyNode(i):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy()}createElement(e,t){return this.delegate.createElement(e,t)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}appendChild(e,t){this.delegate.appendChild(e,t),this.engine.onInsert(this.namespaceId,t,e,!1)}insertBefore(e,t,r,i=!0){this.delegate.insertBefore(e,t,r),this.engine.onInsert(this.namespaceId,t,e,i)}removeChild(e,t,r){this.engine.onRemove(this.namespaceId,t,this.delegate,r)}selectRootElement(e,t){return this.delegate.selectRootElement(e,t)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,t,r,i){this.delegate.setAttribute(e,t,r,i)}removeAttribute(e,t,r){this.delegate.removeAttribute(e,t,r)}addClass(e,t){this.delegate.addClass(e,t)}removeClass(e,t){this.delegate.removeClass(e,t)}setStyle(e,t,r,i){this.delegate.setStyle(e,t,r,i)}removeStyle(e,t,r){this.delegate.removeStyle(e,t,r)}setProperty(e,t,r){"@"==t.charAt(0)&&t==rE?this.disableAnimations(e,!!r):this.delegate.setProperty(e,t,r)}setValue(e,t){this.delegate.setValue(e,t)}listen(e,t,r){return this.delegate.listen(e,t,r)}disableAnimations(e,t){this.engine.disableAnimations(e,t)}}class T1 extends iE{constructor(e,t,r,i){super(t,r,i),this.factory=e,this.namespaceId=t}setProperty(e,t,r){"@"==t.charAt(0)?"."==t.charAt(1)&&t==rE?this.disableAnimations(e,r=void 0===r||!!r):this.engine.process(this.namespaceId,e,t.substr(1),r):this.delegate.setProperty(e,t,r)}listen(e,t,r){if("@"==t.charAt(0)){const i=function M1(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}(e);let s=t.substr(1),o="";return"@"!=s.charAt(0)&&([s,o]=function S1(n){const e=n.indexOf(".");return[n.substring(0,e),n.substr(e+1)]}(s)),this.engine.listen(this.namespaceId,i,s,o,a=>{this.factory.scheduleListenerCallback(a._data||-1,r,a)})}return this.delegate.listen(e,t,r)}}let I1=(()=>{class n extends Sl{constructor(t,r,i){super(t.body,r,i)}ngOnDestroy(){this.flush()}}return n.\u0275fac=function(t){return new(t||n)(E(de),E(Tf),E(Lf))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();const xl=new I("AnimationModuleType"),sE=[{provide:cD,useClass:D1},{provide:Lf,useFactory:function x1(){return new OP}},{provide:Sl,useClass:I1},{provide:ks,useFactory:function N1(n,e,t){return new w1(n,e,t)},deps:[za,Sl,ce]}],oE=[{provide:Tf,useFactory:function A1(){return function b1(){return"function"==typeof tE()}()?new v1:new XD}},{provide:xl,useValue:"BrowserAnimations"},...sE],R1=[{provide:Tf,useClass:DD},{provide:xl,useValue:"NoopAnimations"},...sE];let O1=(()=>{class n{static withConfig(t){return{ngModule:n,providers:t.disableAnimations?R1:oE}}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=Ge({type:n}),n.\u0275inj=Be({providers:oE,imports:[Bv]}),n})();const k1=new I("mat-sanity-checks",{providedIn:"root",factory:function F1(){return!0}});let nr=(()=>{class n{constructor(t,r,i){this._sanityChecks=r,this._document=i,this._hasDoneGlobalChecks=!1,t._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(t){return!function Lk(){return"undefined"!=typeof __karma__&&!!__karma__||"undefined"!=typeof jasmine&&!!jasmine||"undefined"!=typeof jest&&!!jest||"undefined"!=typeof Mocha&&!!Mocha}()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[t])}}return n.\u0275fac=function(t){return new(t||n)(E(sP),E(k1,8),E(de))},n.\u0275mod=Ge({type:n}),n.\u0275inj=Be({imports:[[Xb],Xb]}),n})();function lE(n){return class extends n{constructor(...e){super(...e),this._disabled=!1}get disabled(){return this._disabled}set disabled(e){this._disabled=oo(e)}}}function uE(n,e){return class extends n{constructor(...t){super(...t),this.defaultColor=e,this.color=e}get color(){return this._color}set color(t){const r=t||this.defaultColor;r!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove(`mat-${this._color}`),r&&this._elementRef.nativeElement.classList.add(`mat-${r}`),this._color=r)}}}function P1(n){return class extends n{constructor(...e){super(...e),this._disableRipple=!1}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=oo(e)}}}function L1(n,e=0){return class extends n{constructor(...t){super(...t),this._tabIndex=e,this.defaultTabIndex=e}get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(t){this._tabIndex=null!=t?al(t):this.defaultTabIndex}}}class j1{constructor(e,t,r){this._renderer=e,this.element=t,this.config=r,this.state=3}fadeOut(){this._renderer.fadeOutRipple(this)}}const cE={enterDuration:225,exitDuration:150},Wf=hf({passive:!0}),dE=["mousedown","touchstart"],fE=["mouseup","mouseleave","touchend","touchcancel"];class H1{constructor(e,t,r,i){this._target=e,this._ngZone=t,this._isPointerDown=!1,this._activeRipples=new Set,this._pointerUpEventsRegistered=!1,i.isBrowser&&(this._containerElement=ao(r))}fadeInRipple(e,t,r={}){const i=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),s=Object.assign(Object.assign({},cE),r.animation);r.centered&&(e=i.left+i.width/2,t=i.top+i.height/2);const o=r.radius||function $1(n,e,t){const r=Math.max(Math.abs(n-t.left),Math.abs(n-t.right)),i=Math.max(Math.abs(e-t.top),Math.abs(e-t.bottom));return Math.sqrt(r*r+i*i)}(e,t,i),a=e-i.left,l=t-i.top,u=s.enterDuration,c=document.createElement("div");c.classList.add("mat-ripple-element"),c.style.left=a-o+"px",c.style.top=l-o+"px",c.style.height=2*o+"px",c.style.width=2*o+"px",null!=r.color&&(c.style.backgroundColor=r.color),c.style.transitionDuration=`${u}ms`,this._containerElement.appendChild(c),function U1(n){window.getComputedStyle(n).getPropertyValue("opacity")}(c),c.style.transform="scale(1)";const d=new j1(this,c,r);return d.state=0,this._activeRipples.add(d),r.persistent||(this._mostRecentTransientRipple=d),this._runTimeoutOutsideZone(()=>{const f=d===this._mostRecentTransientRipple;d.state=1,!r.persistent&&(!f||!this._isPointerDown)&&d.fadeOut()},u),d}fadeOutRipple(e){const t=this._activeRipples.delete(e);if(e===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),this._activeRipples.size||(this._containerRect=null),!t)return;const r=e.element,i=Object.assign(Object.assign({},cE),e.config.animation);r.style.transitionDuration=`${i.exitDuration}ms`,r.style.opacity="0",e.state=2,this._runTimeoutOutsideZone(()=>{e.state=3,r.remove()},i.exitDuration)}fadeOutAll(){this._activeRipples.forEach(e=>e.fadeOut())}fadeOutAllNonPersistent(){this._activeRipples.forEach(e=>{e.config.persistent||e.fadeOut()})}setupTriggerEvents(e){const t=ao(e);!t||t===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=t,this._registerEvents(dE))}handleEvent(e){"mousedown"===e.type?this._onMousedown(e):"touchstart"===e.type?this._onTouchStart(e):this._onPointerUp(),this._pointerUpEventsRegistered||(this._registerEvents(fE),this._pointerUpEventsRegistered=!0)}_onMousedown(e){const t=sD(e),r=this._lastTouchStartEvent&&Date.now()<this._lastTouchStartEvent+800;!this._target.rippleDisabled&&!t&&!r&&(this._isPointerDown=!0,this.fadeInRipple(e.clientX,e.clientY,this._target.rippleConfig))}_onTouchStart(e){if(!this._target.rippleDisabled&&!oD(e)){this._lastTouchStartEvent=Date.now(),this._isPointerDown=!0;const t=e.changedTouches;for(let r=0;r<t.length;r++)this.fadeInRipple(t[r].clientX,t[r].clientY,this._target.rippleConfig)}}_onPointerUp(){!this._isPointerDown||(this._isPointerDown=!1,this._activeRipples.forEach(e=>{!e.config.persistent&&(1===e.state||e.config.terminateOnPointerUp&&0===e.state)&&e.fadeOut()}))}_runTimeoutOutsideZone(e,t=0){this._ngZone.runOutsideAngular(()=>setTimeout(e,t))}_registerEvents(e){this._ngZone.runOutsideAngular(()=>{e.forEach(t=>{this._triggerElement.addEventListener(t,this,Wf)})})}_removeTriggerEvents(){this._triggerElement&&(dE.forEach(e=>{this._triggerElement.removeEventListener(e,this,Wf)}),this._pointerUpEventsRegistered&&fE.forEach(e=>{this._triggerElement.removeEventListener(e,this,Wf)}))}}const z1=new I("mat-ripple-global-options");let hE=(()=>{class n{constructor(t,r,i,s,o){this._elementRef=t,this._animationMode=o,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=s||{},this._rippleRenderer=new H1(this,r,t,i)}get disabled(){return this._disabled}set disabled(t){t&&this.fadeOutAllNonPersistent(),this._disabled=t,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(t){this._trigger=t,this._setupTriggerEventsIfEnabled()}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:Object.assign(Object.assign(Object.assign({},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(t,r=0,i){return"number"==typeof t?this._rippleRenderer.fadeInRipple(t,r,Object.assign(Object.assign({},this.rippleConfig),i)):this._rippleRenderer.fadeInRipple(0,0,Object.assign(Object.assign({},this.rippleConfig),t))}}return n.\u0275fac=function(t){return new(t||n)(b(Re),b(ce),b(cl),b(z1,8),b(xl,8))},n.\u0275dir=ee({type:n,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(t,r){2&t&&Dr("mat-ripple-unbounded",r.unbounded)},inputs:{color:["matRippleColor","color"],unbounded:["matRippleUnbounded","unbounded"],centered:["matRippleCentered","centered"],radius:["matRippleRadius","radius"],animation:["matRippleAnimation","animation"],disabled:["matRippleDisabled","disabled"],trigger:["matRippleTrigger","trigger"]},exportAs:["matRipple"]}),n})(),q1=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=Ge({type:n}),n.\u0275inj=Be({imports:[[nr],nr]}),n})();const W1=L1(lE(hn));let pE=(()=>{class n extends W1{constructor(t,r,i){super(t,r),this.tabIndex=Number(i)||0}ngOnInit(){super.ngOnInit()}ngOnDestroy(){super.ngOnDestroy()}}return n.\u0275fac=function(t){return new(t||n)(b(Re),b(Fn),qn("tabindex"))},n.\u0275dir=ee({type:n,selectors:[["mat-tree-node"]],hostAttrs:[1,"mat-tree-node"],inputs:{role:"role",disabled:"disabled",tabIndex:"tabIndex"},exportAs:["matTreeNode"],features:[Tn([{provide:hn,useExisting:n}]),qt]}),n})(),gE=(()=>{class n extends ul{}return n.\u0275fac=function(){let e;return function(r){return(e||(e=ss(n)))(r||n)}}(),n.\u0275dir=ee({type:n,selectors:[["","matTreeNodeDef",""]],inputs:{when:["matTreeNodeDefWhen","when"],data:["matTreeNode","data"]},features:[Tn([{provide:ul,useExisting:n}]),qt]}),n})(),mE=(()=>{class n extends uf{constructor(t,r,i,s){super(t,r,i),this._disabled=!1,this.tabIndex=Number(s)||0}get disabled(){return this._disabled}set disabled(t){this._disabled=oo(t)}get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(t){this._tabIndex=null!=t?t:0}ngOnInit(){super.ngOnInit()}ngAfterContentInit(){super.ngAfterContentInit()}ngOnDestroy(){super.ngOnDestroy()}}return n.\u0275fac=function(t){return new(t||n)(b(Re),b(Fn),b(Zn),qn("tabindex"))},n.\u0275dir=ee({type:n,selectors:[["mat-nested-tree-node"]],hostAttrs:[1,"mat-nested-tree-node"],inputs:{role:"role",disabled:"disabled",tabIndex:"tabIndex",node:["matNestedTreeNode","node"]},exportAs:["matNestedTreeNode"],features:[Tn([{provide:uf,useExisting:n},{provide:hn,useExisting:n},{provide:ll,useExisting:n}]),qt]}),n})(),Nl=(()=>{class n{constructor(t,r){this.viewContainer=t,this._node=r}}return n.\u0275fac=function(t){return new(t||n)(b(mt),b(ll,8))},n.\u0275dir=ee({type:n,selectors:[["","matTreeNodeOutlet",""]],features:[Tn([{provide:lo,useExisting:n}])]}),n})(),yE=(()=>{class n extends Fn{}return n.\u0275fac=function(){let e;return function(r){return(e||(e=ss(n)))(r||n)}}(),n.\u0275cmp=Vn({type:n,selectors:[["mat-tree"]],viewQuery:function(t,r){if(1&t&&va(Nl,7),2&t){let i;Kn(i=Qn())&&(r._nodeOutlet=i.first)}},hostAttrs:["role","tree",1,"mat-tree"],exportAs:["matTree"],features:[Tn([{provide:Fn,useExisting:n}]),qt],decls:1,vars:0,consts:[["matTreeNodeOutlet",""]],template:function(t,r){1&t&&la(0,0)},directives:[Nl],styles:[".mat-tree{display:block}.mat-tree-node{display:flex;align-items:center;flex:1;word-wrap:break-word}.mat-nested-tree-node{border-bottom-width:0}\n"],encapsulation:2}),n})(),_E=(()=>{class n extends df{}return n.\u0275fac=function(){let e;return function(r){return(e||(e=ss(n)))(r||n)}}(),n.\u0275dir=ee({type:n,selectors:[["","matTreeNodeToggle",""]],inputs:{recursive:["matTreeNodeToggleRecursive","recursive"]},features:[Tn([{provide:df,useExisting:n}]),qt]}),n})(),K1=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=Ge({type:n}),n.\u0275inj=Be({imports:[[Jb,nr],nr]}),n})();class Q1 extends class vk{}{constructor(){super(...arguments),this._data=new st([])}get data(){return this._data.value}set data(e){this._data.next(e)}connect(e){return Eh(e.viewChange,this._data).pipe(G(()=>this.data))}disconnect(){}}let Z1=(()=>{class n{constructor(){this.handles=new Map,this.vscodeInit()}get isVscode(){return void 0!==this.vscode}addListener(t,r){this.handles.set(t,r)}postMessage(t,r){var i;null===(i=this.vscode)||void 0===i||i.postMessage({type:t,message:r})}vscodeInit(){window.addEventListener("message",t=>{const r=t.data;if(this.handles.has(r.type)){const i=this.handles.get(r.type);i&&i(r.value)}})}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Y1=["mat-button",""],X1=["*"],eL=["mat-button","mat-flat-button","mat-icon-button","mat-raised-button","mat-stroked-button","mat-mini-fab","mat-fab"],tL=uE(lE(P1(class{constructor(n){this._elementRef=n}})));let nL=(()=>{class n extends tL{constructor(t,r,i){super(t),this._focusMonitor=r,this._animationMode=i,this.isRoundButton=this._hasHostAttributes("mat-fab","mat-mini-fab"),this.isIconButton=this._hasHostAttributes("mat-icon-button");for(const s of eL)this._hasHostAttributes(s)&&this._getHostElement().classList.add(s);t.nativeElement.classList.add("mat-button-base"),this.isRoundButton&&(this.color="accent")}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}focus(t,r){t?this._focusMonitor.focusVia(this._getHostElement(),t,r):this._getHostElement().focus(r)}_getHostElement(){return this._elementRef.nativeElement}_isRippleDisabled(){return this.disableRipple||this.disabled}_hasHostAttributes(...t){return t.some(r=>this._getHostElement().hasAttribute(r))}}return n.\u0275fac=function(t){return new(t||n)(b(Re),b(iP),b(xl,8))},n.\u0275cmp=Vn({type:n,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-icon-button",""],["button","mat-fab",""],["button","mat-mini-fab",""],["button","mat-stroked-button",""],["button","mat-flat-button",""]],viewQuery:function(t,r){if(1&t&&va(hE,5),2&t){let i;Kn(i=Qn())&&(r.ripple=i.first)}},hostAttrs:[1,"mat-focus-indicator"],hostVars:5,hostBindings:function(t,r){2&t&&(br("disabled",r.disabled||null),Dr("_mat-animation-noopable","NoopAnimations"===r._animationMode)("mat-button-disabled",r.disabled))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[qt],attrs:Y1,ngContentSelectors:X1,decls:4,vars:5,consts:[[1,"mat-button-wrapper"],["matRipple","",1,"mat-button-ripple",3,"matRippleDisabled","matRippleCentered","matRippleTrigger"],[1,"mat-button-focus-overlay"]],template:function(t,r){1&t&&(Fc(),Ye(0,"span",0),kc(1),Xe(),aa(2,"span",1),aa(3,"span",2)),2&t&&(At(2),Dr("mat-button-ripple-round",r.isRoundButton||r.isIconButton),an("matRippleDisabled",r._isRippleDisabled())("matRippleCentered",r.isIconButton)("matRippleTrigger",r._getHostElement()))},directives:[hE],styles:[".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}._mat-animation-noopable.mat-raised-button{transition:none;animation:none}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-fab{transition:none;animation:none}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-mini-fab{transition:none;animation:none}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.cdk-high-contrast-active .mat-button-base.cdk-keyboard-focused,.cdk-high-contrast-active .mat-button-base.cdk-program-focused{outline:solid 3px}\n"],encapsulation:2,changeDetection:0}),n})(),rL=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=Ge({type:n}),n.\u0275inj=Be({imports:[[q1,nr],nr]}),n})();class oL{}class rr{constructor(e){this.normalizedNames=new Map,this.lazyUpdate=null,e?this.lazyInit="string"==typeof e?()=>{this.headers=new Map,e.split("\n").forEach(t=>{const r=t.indexOf(":");if(r>0){const i=t.slice(0,r),s=i.toLowerCase(),o=t.slice(r+1).trim();this.maybeSetNormalizedName(i,s),this.headers.has(s)?this.headers.get(s).push(o):this.headers.set(s,[o])}})}:()=>{this.headers=new Map,Object.keys(e).forEach(t=>{let r=e[t];const i=t.toLowerCase();"string"==typeof r&&(r=[r]),r.length>0&&(this.headers.set(i,r),this.maybeSetNormalizedName(t,i))})}:this.headers=new Map}has(e){return this.init(),this.headers.has(e.toLowerCase())}get(e){this.init();const t=this.headers.get(e.toLowerCase());return t&&t.length>0?t[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(e){return this.init(),this.headers.get(e.toLowerCase())||null}append(e,t){return this.clone({name:e,value:t,op:"a"})}set(e,t){return this.clone({name:e,value:t,op:"s"})}delete(e,t){return this.clone({name:e,value:t,op:"d"})}maybeSetNormalizedName(e,t){this.normalizedNames.has(t)||this.normalizedNames.set(t,e)}init(){this.lazyInit&&(this.lazyInit instanceof rr?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(e=>this.applyUpdate(e)),this.lazyUpdate=null))}copyFrom(e){e.init(),Array.from(e.headers.keys()).forEach(t=>{this.headers.set(t,e.headers.get(t)),this.normalizedNames.set(t,e.normalizedNames.get(t))})}clone(e){const t=new rr;return t.lazyInit=this.lazyInit&&this.lazyInit instanceof rr?this.lazyInit:this,t.lazyUpdate=(this.lazyUpdate||[]).concat([e]),t}applyUpdate(e){const t=e.name.toLowerCase();switch(e.op){case"a":case"s":let r=e.value;if("string"==typeof r&&(r=[r]),0===r.length)return;this.maybeSetNormalizedName(e.name,t);const i=("a"===e.op?this.headers.get(t):void 0)||[];i.push(...r),this.headers.set(t,i);break;case"d":const s=e.value;if(s){let o=this.headers.get(t);if(!o)return;o=o.filter(a=>-1===s.indexOf(a)),0===o.length?(this.headers.delete(t),this.normalizedNames.delete(t)):this.headers.set(t,o)}else this.headers.delete(t),this.normalizedNames.delete(t)}}forEach(e){this.init(),Array.from(this.normalizedNames.keys()).forEach(t=>e(this.normalizedNames.get(t),this.headers.get(t)))}}class aL{encodeKey(e){return vE(e)}encodeValue(e){return vE(e)}decodeKey(e){return decodeURIComponent(e)}decodeValue(e){return decodeURIComponent(e)}}const uL=/%(\d[a-f0-9])/gi,cL={40:"@","3A":":",24:"$","2C":",","3B":";","2B":"+","3D":"=","3F":"?","2F":"/"};function vE(n){return encodeURIComponent(n).replace(uL,(e,t)=>{var r;return null!==(r=cL[t])&&void 0!==r?r:e})}function bE(n){return`${n}`}class ir{constructor(e={}){if(this.updates=null,this.cloneFrom=null,this.encoder=e.encoder||new aL,e.fromString){if(e.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function lL(n,e){const t=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(i=>{const s=i.indexOf("="),[o,a]=-1==s?[e.decodeKey(i),""]:[e.decodeKey(i.slice(0,s)),e.decodeValue(i.slice(s+1))],l=t.get(o)||[];l.push(a),t.set(o,l)}),t}(e.fromString,this.encoder)}else e.fromObject?(this.map=new Map,Object.keys(e.fromObject).forEach(t=>{const r=e.fromObject[t];this.map.set(t,Array.isArray(r)?r:[r])})):this.map=null}has(e){return this.init(),this.map.has(e)}get(e){this.init();const t=this.map.get(e);return t?t[0]:null}getAll(e){return this.init(),this.map.get(e)||null}keys(){return this.init(),Array.from(this.map.keys())}append(e,t){return this.clone({param:e,value:t,op:"a"})}appendAll(e){const t=[];return Object.keys(e).forEach(r=>{const i=e[r];Array.isArray(i)?i.forEach(s=>{t.push({param:r,value:s,op:"a"})}):t.push({param:r,value:i,op:"a"})}),this.clone(t)}set(e,t){return this.clone({param:e,value:t,op:"s"})}delete(e,t){return this.clone({param:e,value:t,op:"d"})}toString(){return this.init(),this.keys().map(e=>{const t=this.encoder.encodeKey(e);return this.map.get(e).map(r=>t+"="+this.encoder.encodeValue(r)).join("&")}).filter(e=>""!==e).join("&")}clone(e){const t=new ir({encoder:this.encoder});return t.cloneFrom=this.cloneFrom||this,t.updates=(this.updates||[]).concat(e),t}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(e=>this.map.set(e,this.cloneFrom.map.get(e))),this.updates.forEach(e=>{switch(e.op){case"a":case"s":const t=("a"===e.op?this.map.get(e.param):void 0)||[];t.push(bE(e.value)),this.map.set(e.param,t);break;case"d":if(void 0===e.value){this.map.delete(e.param);break}{let r=this.map.get(e.param)||[];const i=r.indexOf(bE(e.value));-1!==i&&r.splice(i,1),r.length>0?this.map.set(e.param,r):this.map.delete(e.param)}}}),this.cloneFrom=this.updates=null)}}class dL{constructor(){this.map=new Map}set(e,t){return this.map.set(e,t),this}get(e){return this.map.has(e)||this.map.set(e,e.defaultValue()),this.map.get(e)}delete(e){return this.map.delete(e),this}has(e){return this.map.has(e)}keys(){return this.map.keys()}}function DE(n){return"undefined"!=typeof ArrayBuffer&&n instanceof ArrayBuffer}function EE(n){return"undefined"!=typeof Blob&&n instanceof Blob}function CE(n){return"undefined"!=typeof FormData&&n instanceof FormData}class go{constructor(e,t,r,i){let s;if(this.url=t,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=e.toUpperCase(),function fL(n){switch(n){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||i?(this.body=void 0!==r?r:null,s=i):s=r,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.headers||(this.headers=new rr),this.context||(this.context=new dL),this.params){const o=this.params.toString();if(0===o.length)this.urlWithParams=t;else{const a=t.indexOf("?");this.urlWithParams=t+(-1===a?"?":a<t.length-1?"&":"")+o}}else this.params=new ir,this.urlWithParams=t}serializeBody(){return null===this.body?null:DE(this.body)||EE(this.body)||CE(this.body)||function hL(n){return"undefined"!=typeof URLSearchParams&&n instanceof URLSearchParams}(this.body)||"string"==typeof this.body?this.body:this.body instanceof ir?this.body.toString():"object"==typeof this.body||"boolean"==typeof this.body||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()}detectContentTypeHeader(){return null===this.body||CE(this.body)?null:EE(this.body)?this.body.type||null:DE(this.body)?null:"string"==typeof this.body?"text/plain":this.body instanceof ir?"application/x-www-form-urlencoded;charset=UTF-8":"object"==typeof this.body||"number"==typeof this.body||"boolean"==typeof this.body?"application/json":null}clone(e={}){var t;const r=e.method||this.method,i=e.url||this.url,s=e.responseType||this.responseType,o=void 0!==e.body?e.body:this.body,a=void 0!==e.withCredentials?e.withCredentials:this.withCredentials,l=void 0!==e.reportProgress?e.reportProgress:this.reportProgress;let u=e.headers||this.headers,c=e.params||this.params;const d=null!==(t=e.context)&&void 0!==t?t:this.context;return void 0!==e.setHeaders&&(u=Object.keys(e.setHeaders).reduce((f,h)=>f.set(h,e.setHeaders[h]),u)),e.setParams&&(c=Object.keys(e.setParams).reduce((f,h)=>f.set(h,e.setParams[h]),c)),new go(r,i,o,{params:c,headers:u,context:d,reportProgress:l,responseType:s,withCredentials:a})}}var Pe=(()=>((Pe=Pe||{})[Pe.Sent=0]="Sent",Pe[Pe.UploadProgress=1]="UploadProgress",Pe[Pe.ResponseHeader=2]="ResponseHeader",Pe[Pe.DownloadProgress=3]="DownloadProgress",Pe[Pe.Response=4]="Response",Pe[Pe.User=5]="User",Pe))();class Gf extends class pL{constructor(e,t=200,r="OK"){this.headers=e.headers||new rr,this.status=void 0!==e.status?e.status:t,this.statusText=e.statusText||r,this.url=e.url||null,this.ok=this.status>=200&&this.status<300}}{constructor(e={}){super(e),this.type=Pe.Response,this.body=void 0!==e.body?e.body:null}clone(e={}){return new Gf({body:void 0!==e.body?e.body:this.body,headers:e.headers||this.headers,status:void 0!==e.status?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}}function Kf(n,e){return{body:e,headers:n.headers,context:n.context,observe:n.observe,params:n.params,reportProgress:n.reportProgress,responseType:n.responseType,withCredentials:n.withCredentials}}let TE=(()=>{class n{constructor(t){this.handler=t}request(t,r,i={}){let s;if(t instanceof go)s=t;else{let l,u;l=i.headers instanceof rr?i.headers:new rr(i.headers),i.params&&(u=i.params instanceof ir?i.params:new ir({fromObject:i.params})),s=new go(t,r,void 0!==i.body?i.body:null,{headers:l,context:i.context,params:u,reportProgress:i.reportProgress,responseType:i.responseType||"json",withCredentials:i.withCredentials})}const o=O(s).pipe(Ni(l=>this.handler.handle(l)));if(t instanceof go||"events"===i.observe)return o;const a=o.pipe(xn(l=>l instanceof Gf));switch(i.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return a.pipe(G(l=>{if(null!==l.body&&!(l.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return l.body}));case"blob":return a.pipe(G(l=>{if(null!==l.body&&!(l.body instanceof Blob))throw new Error("Response is not a Blob.");return l.body}));case"text":return a.pipe(G(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new Error("Response is not a string.");return l.body}));default:return a.pipe(G(l=>l.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${i.observe}}`)}}delete(t,r={}){return this.request("DELETE",t,r)}get(t,r={}){return this.request("GET",t,r)}head(t,r={}){return this.request("HEAD",t,r)}jsonp(t,r){return this.request("JSONP",t,{params:(new ir).append(r,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(t,r={}){return this.request("OPTIONS",t,r)}patch(t,r,i={}){return this.request("PATCH",t,Kf(i,r))}post(t,r,i={}){return this.request("POST",t,Kf(i,r))}put(t,r,i={}){return this.request("PUT",t,Kf(i,r))}}return n.\u0275fac=function(t){return new(t||n)(E(oL))},n.\u0275prov=F({token:n,factory:n.\u0275fac}),n})();const mL=["*"];let Rl;function mo(n){var e;return(null===(e=function yL(){if(void 0===Rl&&(Rl=null,"undefined"!=typeof window)){const n=window;void 0!==n.trustedTypes&&(Rl=n.trustedTypes.createPolicy("angular#components",{createHTML:e=>e}))}return Rl}())||void 0===e?void 0:e.createHTML(n))||n}function ME(n){return Error(`Unable to find icon with the name "${n}"`)}function SE(n){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${n}".`)}function IE(n){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${n}".`)}class kr{constructor(e,t,r){this.url=e,this.svgText=t,this.options=r}}let Ol=(()=>{class n{constructor(t,r,i,s){this._httpClient=t,this._sanitizer=r,this._errorHandler=s,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass="material-icons",this._document=i}addSvgIcon(t,r,i){return this.addSvgIconInNamespace("",t,r,i)}addSvgIconLiteral(t,r,i){return this.addSvgIconLiteralInNamespace("",t,r,i)}addSvgIconInNamespace(t,r,i,s){return this._addSvgIconConfig(t,r,new kr(i,null,s))}addSvgIconResolver(t){return this._resolvers.push(t),this}addSvgIconLiteralInNamespace(t,r,i,s){const o=this._sanitizer.sanitize(X.HTML,i);if(!o)throw IE(i);const a=mo(o);return this._addSvgIconConfig(t,r,new kr("",a,s))}addSvgIconSet(t,r){return this.addSvgIconSetInNamespace("",t,r)}addSvgIconSetLiteral(t,r){return this.addSvgIconSetLiteralInNamespace("",t,r)}addSvgIconSetInNamespace(t,r,i){return this._addSvgIconSetConfig(t,new kr(r,null,i))}addSvgIconSetLiteralInNamespace(t,r,i){const s=this._sanitizer.sanitize(X.HTML,r);if(!s)throw IE(r);const o=mo(s);return this._addSvgIconSetConfig(t,new kr("",o,i))}registerFontClassAlias(t,r=t){return this._fontCssClassesByAlias.set(t,r),this}classNameForFontAlias(t){return this._fontCssClassesByAlias.get(t)||t}setDefaultFontSetClass(t){return this._defaultFontSetClass=t,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(t){const r=this._sanitizer.sanitize(X.RESOURCE_URL,t);if(!r)throw SE(t);const i=this._cachedIconsByUrl.get(r);return i?O(Fl(i)):this._loadSvgIconFromConfig(new kr(t,null)).pipe(qe(s=>this._cachedIconsByUrl.set(r,s)),G(s=>Fl(s)))}getNamedSvgIcon(t,r=""){const i=AE(r,t);let s=this._svgIconConfigs.get(i);if(s)return this._getSvgFromConfig(s);if(s=this._getIconConfigFromResolvers(r,t),s)return this._svgIconConfigs.set(i,s),this._getSvgFromConfig(s);const o=this._iconSetConfigs.get(r);return o?this._getSvgFromIconSetConfigs(t,o):function iL(n,e){const t=te(n)?n:()=>n,r=i=>i.error(t());return new ae(e?i=>e.schedule(r,0,i):r)}(ME(i))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(t){return t.svgText?O(Fl(this._svgElementFromConfig(t))):this._loadSvgIconFromConfig(t).pipe(G(r=>Fl(r)))}_getSvgFromIconSetConfigs(t,r){const i=this._extractIconWithNameFromAnySet(t,r);return i?O(i):function sL(...n){const e=_h(n),{args:t,keys:r}=Uv(n),i=new ae(s=>{const{length:o}=t;if(!o)return void s.complete();const a=new Array(o);let l=o,u=o;for(let c=0;c<o;c++){let d=!1;Pt(t[c]).subscribe(new De(s,f=>{d||(d=!0,u--),a[c]=f},()=>l--,void 0,()=>{(!l||!d)&&(u||s.next(r?zv(r,a):a),s.complete())}))}});return e?i.pipe($v(e)):i}(r.filter(o=>!o.svgText).map(o=>this._loadSvgIconSetFromConfig(o).pipe(Nn(a=>{const u=`Loading icon set URL: ${this._sanitizer.sanitize(X.RESOURCE_URL,o.url)} failed: ${a.message}`;return this._errorHandler.handleError(new Error(u)),O(null)})))).pipe(G(()=>{const o=this._extractIconWithNameFromAnySet(t,r);if(!o)throw ME(t);return o}))}_extractIconWithNameFromAnySet(t,r){for(let i=r.length-1;i>=0;i--){const s=r[i];if(s.svgText&&s.svgText.toString().indexOf(t)>-1){const o=this._svgElementFromConfig(s),a=this._extractSvgIconFromSet(o,t,s.options);if(a)return a}}return null}_loadSvgIconFromConfig(t){return this._fetchIcon(t).pipe(qe(r=>t.svgText=r),G(()=>this._svgElementFromConfig(t)))}_loadSvgIconSetFromConfig(t){return t.svgText?O(null):this._fetchIcon(t).pipe(qe(r=>t.svgText=r))}_extractSvgIconFromSet(t,r,i){const s=t.querySelector(`[id="${r}"]`);if(!s)return null;const o=s.cloneNode(!0);if(o.removeAttribute("id"),"svg"===o.nodeName.toLowerCase())return this._setSvgAttributes(o,i);if("symbol"===o.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(o),i);const a=this._svgElementFromString(mo("<svg></svg>"));return a.appendChild(o),this._setSvgAttributes(a,i)}_svgElementFromString(t){const r=this._document.createElement("DIV");r.innerHTML=t;const i=r.querySelector("svg");if(!i)throw Error("<svg> tag not found");return i}_toSvgElement(t){const r=this._svgElementFromString(mo("<svg></svg>")),i=t.attributes;for(let s=0;s<i.length;s++){const{name:o,value:a}=i[s];"id"!==o&&r.setAttribute(o,a)}for(let s=0;s<t.childNodes.length;s++)t.childNodes[s].nodeType===this._document.ELEMENT_NODE&&r.appendChild(t.childNodes[s].cloneNode(!0));return r}_setSvgAttributes(t,r){return t.setAttribute("fit",""),t.setAttribute("height","100%"),t.setAttribute("width","100%"),t.setAttribute("preserveAspectRatio","xMidYMid meet"),t.setAttribute("focusable","false"),r&&r.viewBox&&t.setAttribute("viewBox",r.viewBox),t}_fetchIcon(t){var r;const{url:i,options:s}=t,o=null!==(r=null==s?void 0:s.withCredentials)&&void 0!==r&&r;if(!this._httpClient)throw function _L(){return Error("Could not find HttpClient provider for use with Angular Material icons. Please include the HttpClientModule from @angular/common/http in your app imports.")}();if(null==i)throw Error(`Cannot fetch icon from URL "${i}".`);const a=this._sanitizer.sanitize(X.RESOURCE_URL,i);if(!a)throw SE(i);const l=this._inProgressUrlFetches.get(a);if(l)return l;const u=this._httpClient.get(a,{responseType:"text",withCredentials:o}).pipe(G(c=>mo(c)),Yv(()=>this._inProgressUrlFetches.delete(a)),Ch());return this._inProgressUrlFetches.set(a,u),u}_addSvgIconConfig(t,r,i){return this._svgIconConfigs.set(AE(t,r),i),this}_addSvgIconSetConfig(t,r){const i=this._iconSetConfigs.get(t);return i?i.push(r):this._iconSetConfigs.set(t,[r]),this}_svgElementFromConfig(t){if(!t.svgElement){const r=this._svgElementFromString(t.svgText);this._setSvgAttributes(r,t.options),t.svgElement=r}return t.svgElement}_getIconConfigFromResolvers(t,r){for(let i=0;i<this._resolvers.length;i++){const s=this._resolvers[i](r,t);if(s)return bL(s)?new kr(s.url,null,s.options):new kr(s,null)}}}return n.\u0275fac=function(t){return new(t||n)(E(TE,8),E(Ld),E(de,8),E(En))},n.\u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function Fl(n){return n.cloneNode(!0)}function AE(n,e){return n+":"+e}function bL(n){return!(!n.url||!n.options)}const DL=uE(class{constructor(n){this._elementRef=n}}),EL=new I("mat-icon-location",{providedIn:"root",factory:function CL(){const n=Mu(de),e=n?n.location:null;return{getPathname:()=>e?e.pathname+e.search:""}}}),xE=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],wL=xE.map(n=>`[${n}]`).join(", "),TL=/^url\(['"]?#(.*?)['"]?\)$/;let ML=(()=>{class n extends DL{constructor(t,r,i,s,o){super(t),this._iconRegistry=r,this._location=s,this._errorHandler=o,this._inline=!1,this._currentIconFetch=ot.EMPTY,i||t.nativeElement.setAttribute("aria-hidden","true")}get inline(){return this._inline}set inline(t){this._inline=oo(t)}get svgIcon(){return this._svgIcon}set svgIcon(t){t!==this._svgIcon&&(t?this._updateSvgIcon(t):this._svgIcon&&this._clearSvgElement(),this._svgIcon=t)}get fontSet(){return this._fontSet}set fontSet(t){const r=this._cleanupFontValue(t);r!==this._fontSet&&(this._fontSet=r,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(t){const r=this._cleanupFontValue(t);r!==this._fontIcon&&(this._fontIcon=r,this._updateFontIconClasses())}_splitIconName(t){if(!t)return["",""];const r=t.split(":");switch(r.length){case 1:return["",r[0]];case 2:return r;default:throw Error(`Invalid icon name: "${t}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const t=this._elementsWithExternalReferences;if(t&&t.size){const r=this._location.getPathname();r!==this._previousPath&&(this._previousPath=r,this._prependPathToReferences(r))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(t){this._clearSvgElement();const r=this._location.getPathname();this._previousPath=r,this._cacheChildrenWithExternalReferences(t),this._prependPathToReferences(r),this._elementRef.nativeElement.appendChild(t)}_clearSvgElement(){const t=this._elementRef.nativeElement;let r=t.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();r--;){const i=t.childNodes[r];(1!==i.nodeType||"svg"===i.nodeName.toLowerCase())&&i.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const t=this._elementRef.nativeElement,r=this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet):this._iconRegistry.getDefaultFontSetClass();r!=this._previousFontSetClass&&(this._previousFontSetClass&&t.classList.remove(this._previousFontSetClass),r&&t.classList.add(r),this._previousFontSetClass=r),this.fontIcon!=this._previousFontIconClass&&(this._previousFontIconClass&&t.classList.remove(this._previousFontIconClass),this.fontIcon&&t.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(t){return"string"==typeof t?t.trim().split(" ")[0]:t}_prependPathToReferences(t){const r=this._elementsWithExternalReferences;r&&r.forEach((i,s)=>{i.forEach(o=>{s.setAttribute(o.name,`url('${t}#${o.value}')`)})})}_cacheChildrenWithExternalReferences(t){const r=t.querySelectorAll(wL),i=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let s=0;s<r.length;s++)xE.forEach(o=>{const a=r[s],l=a.getAttribute(o),u=l?l.match(TL):null;if(u){let c=i.get(a);c||(c=[],i.set(a,c)),c.push({name:o,value:u[1]})}})}_updateSvgIcon(t){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),t){const[r,i]=this._splitIconName(t);r&&(this._svgNamespace=r),i&&(this._svgName=i),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(i,r).pipe(Br(1)).subscribe(s=>this._setSvgElement(s),s=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${r}:${i}! ${s.message}`))})}}}return n.\u0275fac=function(t){return new(t||n)(b(Re),b(Ol),qn("aria-hidden"),b(EL),b(En))},n.\u0275cmp=Vn({type:n,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:7,hostBindings:function(t,r){2&t&&(br("data-mat-icon-type",r._usingFontIcon()?"font":"svg")("data-mat-icon-name",r._svgName||r.fontIcon)("data-mat-icon-namespace",r._svgNamespace||r.fontSet),Dr("mat-icon-inline",r.inline)("mat-icon-no-color","primary"!==r.color&&"accent"!==r.color&&"warn"!==r.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[qt],ngContentSelectors:mL,decls:1,vars:0,template:function(t,r){1&t&&(Fc(),kc(0))},styles:[".mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}\n"],encapsulation:2,changeDetection:0}),n})(),SL=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=Ge({type:n}),n.\u0275inj=Be({imports:[[nr],nr]}),n})();function IL(n,e){if(1&n&&(Ye(0,"div"),Ye(1,"mark"),As(2),Xe(),Xe()),2&n){const t=Ss().$implicit;At(2),xs(t.name)}}function AL(n,e){if(1&n&&(Ye(0,"div"),As(1),Xe()),2&n){const t=Ss().$implicit;At(1),xs(t.name)}}function xL(n,e){if(1&n&&(Ye(0,"mat-tree-node",3),Ye(1,"div",4),Ts(2,IL,3,1,"div",5),Ts(3,AL,2,1,"div",5),Xe(),Xe()),2&n){const t=e.$implicit,r=Ss();an("id",t.id),At(1),an("ngSwitch",r.selectId===t.id),At(1),an("ngSwitchCase",!0),At(1),an("ngSwitchCase",!1)}}function NL(n,e){if(1&n&&(Ye(0,"mat-nested-tree-node",6),Ye(1,"div",7),Ye(2,"button",8),Ye(3,"mat-icon",9),As(4),Xe(),Xe(),Ye(5,"div"),As(6),Xe(),Xe(),Ye(7,"div",10),la(8,11),Xe(),Xe()),2&n){const t=e.$implicit,r=Ss();an("id",t.id),At(2),br("aria-label","Toggle "),At(2),da(" ",r.treeControl.isExpanded(t)?"expand_more":"chevron_right"," "),At(2),xs(t.name),At(1),Dr("example-tree-invisible",!r.treeControl.isExpanded(t))}}let RL=(()=>{class n{constructor(t,r,i){this.vscodeService=t,this.elementRef=r,this.renderer=i,this.title="PsiViewer",this.treeControl=new Ak(s=>s.children),this.dataSource=new Q1,this.selectPosition=void 0,this.idGenerator=0,this.hasChild=(s,o)=>!!o.children&&o.children.length>0}ngOnInit(){this.dataSource.data=[],this.vscodeService.addListener("psi",t=>{this.idGenerator=0,this.makeId(t),this.dataSource.data=t,this.select()}),this.vscodeService.addListener("psi_select",t=>{this.select(t)})}makeId(t){for(const r of t)r.id=`lua${this.idGenerator}`,this.idGenerator++,r.children&&this.makeId(r.children)}select(t){void 0!==t&&(this.selectPosition=t);const r=this.dataSource.data;r[0]&&this.extendPoint(r[0])}extendPoint(t){const r=this.selectPosition,i=t.attr;if(void 0!==i&&void 0!==r&&i.range.start<=r&&i.range.end>=r)if(this.treeControl.expand(t),t.children)for(const s of t.children)this.extendPoint(s);else this.selectId=t.id,setTimeout(()=>this.highlight(t),500)}highlight(t){const r=this.elementRef.nativeElement.querySelector(`#${t.id}`);r&&r.scrollIntoView({behavior:"smooth"})}}return n.\u0275fac=function(t){return new(t||n)(b(Z1),b(Re),b(Ps))},n.\u0275cmp=Vn({type:n,selectors:[["app-root"]],decls:3,vars:3,consts:[[1,"example-tree",3,"dataSource","treeControl"],["matTreeNodeToggle","",3,"id",4,"matTreeNodeDef"],[3,"id",4,"matTreeNodeDef","matTreeNodeDefWhen"],["matTreeNodeToggle","",3,"id"],[3,"ngSwitch"],[4,"ngSwitchCase"],[3,"id"],[1,"mat-tree-node"],["mat-icon-button","","matTreeNodeToggle",""],[1,"mat-icon-rtl-mirror"],["role","group"],["matTreeNodeOutlet",""]],template:function(t,r){1&t&&(Ye(0,"mat-tree",0),Ts(1,xL,4,4,"mat-tree-node",1),Ts(2,NL,9,6,"mat-nested-tree-node",2),Xe()),2&t&&(an("dataSource",r.dataSource)("treeControl",r.treeControl),At(2),an("matTreeNodeDefWhen",r.hasChild))},directives:[yE,gE,pE,_E,ja,Cv,mE,nL,ML,Nl],styles:[".example-tree-invisible[_ngcontent-%COMP%]{display:none}.example-tree[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%], .example-tree[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{margin-top:0;margin-bottom:0;list-style-type:none}.example-tree[_ngcontent-%COMP%]   .mat-nested-tree-node[_ngcontent-%COMP%]   div[role=group][_ngcontent-%COMP%]{padding-left:20px}.example-tree[_ngcontent-%COMP%]   div[role=group][_ngcontent-%COMP%] > .mat-tree-node[_ngcontent-%COMP%]{padding-left:20px}"]}),n})(),OL=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=Ge({type:n,bootstrap:[RL]}),n.\u0275inj=Be({providers:[],imports:[[Bv,_k,O1,K1,SL,rL,Jb]]}),n})();(function px(){Q_=!1})(),VR().bootstrapModule(OL).catch(n=>console.error(n))}},te=>{te(te.s=541)}]);
\ No newline at end of file
diff --git a/client/web/dist/mat-icon-font.d36bf6bfd46ff3bb.woff2 b/client/web/dist/mat-icon-font.d36bf6bfd46ff3bb.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..4dd26eeb45d90f51a1c3e7ec5654522499a03cd7
Binary files /dev/null and b/client/web/dist/mat-icon-font.d36bf6bfd46ff3bb.woff2 differ
diff --git a/client/web/dist/polyfills.fdaa14aa9967abe5.js b/client/web/dist/polyfills.fdaa14aa9967abe5.js
new file mode 100644
index 0000000000000000000000000000000000000000..3f70b46a1f9e2b1380614d684697330c34148181
--- /dev/null
+++ b/client/web/dist/polyfills.fdaa14aa9967abe5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkPsiViewer=self.webpackChunkPsiViewer||[]).push([[429],{435:(ie,Ee,de)=>{de(583)},583:()=>{!function(e){const n=e.performance;function i(M){n&&n.mark&&n.mark(M)}function o(M,E){n&&n.measure&&n.measure(M,E)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function a(M){return c+M}const y=!0===e[a("forceDuplicateZoneCheck")];if(e.Zone){if(y||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let d=(()=>{class M{constructor(t,r){this._parent=t,this._name=r?r.name||"unnamed":"<root>",this._properties=r&&r.properties||{},this._zoneDelegate=new v(this,this._parent&&this._parent._zoneDelegate,r)}static assertZonePatched(){if(e.Promise!==oe.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 t=M.current;for(;t.parent;)t=t.parent;return t}static get current(){return U.zone}static get currentTask(){return re}static __load_patch(t,r,k=!1){if(oe.hasOwnProperty(t)){if(!k&&y)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const C="Zone:"+t;i(C),oe[t]=r(e,M,z),o(C,C)}}get parent(){return this._parent}get name(){return this._name}get(t){const r=this.getZoneWith(t);if(r)return r._properties[t]}getZoneWith(t){let r=this;for(;r;){if(r._properties.hasOwnProperty(t))return r;r=r._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,r){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const k=this._zoneDelegate.intercept(this,t,r),C=this;return function(){return C.runGuarded(k,this,arguments,r)}}run(t,r,k,C){U={parent:U,zone:this};try{return this._zoneDelegate.invoke(this,t,r,k,C)}finally{U=U.parent}}runGuarded(t,r=null,k,C){U={parent:U,zone:this};try{try{return this._zoneDelegate.invoke(this,t,r,k,C)}catch($){if(this._zoneDelegate.handleError(this,$))throw $}}finally{U=U.parent}}runTask(t,r,k){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||K).name+"; Execution: "+this.name+")");if(t.state===x&&(t.type===Q||t.type===w))return;const C=t.state!=p;C&&t._transitionTo(p,j),t.runCount++;const $=re;re=t,U={parent:U,zone:this};try{t.type==w&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,r,k)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==x&&t.state!==h&&(t.type==Q||t.data&&t.data.isPeriodic?C&&t._transitionTo(j,p):(t.runCount=0,this._updateTaskCount(t,-1),C&&t._transitionTo(x,p,x))),U=U.parent,re=$}}scheduleTask(t){if(t.zone&&t.zone!==this){let k=this;for(;k;){if(k===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);k=k.parent}}t._transitionTo(X,x);const r=[];t._zoneDelegates=r,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(k){throw t._transitionTo(h,X,x),this._zoneDelegate.handleError(this,k),k}return t._zoneDelegates===r&&this._updateTaskCount(t,1),t.state==X&&t._transitionTo(j,X),t}scheduleMicroTask(t,r,k,C){return this.scheduleTask(new m(I,t,r,k,C,void 0))}scheduleMacroTask(t,r,k,C,$){return this.scheduleTask(new m(w,t,r,k,C,$))}scheduleEventTask(t,r,k,C,$){return this.scheduleTask(new m(Q,t,r,k,C,$))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||K).name+"; Execution: "+this.name+")");t._transitionTo(V,j,p);try{this._zoneDelegate.cancelTask(this,t)}catch(r){throw t._transitionTo(h,V),this._zoneDelegate.handleError(this,r),r}return this._updateTaskCount(t,-1),t._transitionTo(x,V),t.runCount=0,t}_updateTaskCount(t,r){const k=t._zoneDelegates;-1==r&&(t._zoneDelegates=null);for(let C=0;C<k.length;C++)k[C]._updateTaskCount(t.type,r)}}return M.__symbol__=a,M})();const P={name:"",onHasTask:(M,E,t,r)=>M.hasTask(t,r),onScheduleTask:(M,E,t,r)=>M.scheduleTask(t,r),onInvokeTask:(M,E,t,r,k,C)=>M.invokeTask(t,r,k,C),onCancelTask:(M,E,t,r)=>M.cancelTask(t,r)};class v{constructor(E,t,r){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=E,this._parentDelegate=t,this._forkZS=r&&(r&&r.onFork?r:t._forkZS),this._forkDlgt=r&&(r.onFork?t:t._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:t._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:t._interceptZS),this._interceptDlgt=r&&(r.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:t._invokeZS),this._invokeDlgt=r&&(r.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:t._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:t._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:t._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:t._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const k=r&&r.onHasTask;(k||t&&t._hasTaskZS)&&(this._hasTaskZS=k?r:P,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=E,r.onScheduleTask||(this._scheduleTaskZS=P,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=P,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=P,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(E,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,E,t):new d(E,t)}intercept(E,t,r){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,E,t,r):t}invoke(E,t,r,k,C){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,E,t,r,k,C):t.apply(r,k)}handleError(E,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,E,t)}scheduleTask(E,t){let r=t;if(this._scheduleTaskZS)this._hasTaskZS&&r._zoneDelegates.push(this._hasTaskDlgtOwner),r=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,E,t),r||(r=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=I)throw new Error("Task is missing scheduleFn.");R(t)}return r}invokeTask(E,t,r,k){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,E,t,r,k):t.callback.apply(r,k)}cancelTask(E,t){let r;if(this._cancelTaskZS)r=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,E,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");r=t.cancelFn(t)}return r}hasTask(E,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,E,t)}catch(r){this.handleError(E,r)}}_updateTaskCount(E,t){const r=this._taskCounts,k=r[E],C=r[E]=k+t;if(C<0)throw new Error("More tasks executed then were scheduled.");0!=k&&0!=C||this.hasTask(this.zone,{microTask:r.microTask>0,macroTask:r.macroTask>0,eventTask:r.eventTask>0,change:E})}}class m{constructor(E,t,r,k,C,$){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=E,this.source=t,this.data=k,this.scheduleFn=C,this.cancelFn=$,!r)throw new Error("callback is not defined");this.callback=r;const l=this;this.invoke=E===Q&&k&&k.useG?m.invokeTask:function(){return m.invokeTask.call(e,l,this,arguments)}}static invokeTask(E,t,r){E||(E=this),ee++;try{return E.runCount++,E.zone.runTask(E,t,r)}finally{1==ee&&_(),ee--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(x,X)}_transitionTo(E,t,r){if(this._state!==t&&this._state!==r)throw new Error(`${this.type} '${this.source}': can not transition to '${E}', expecting state '${t}'${r?" or '"+r+"'":""}, was '${this._state}'.`);this._state=E,E==x&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?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 L=a("setTimeout"),Z=a("Promise"),N=a("then");let J,B=[],H=!1;function q(M){if(J||e[Z]&&(J=e[Z].resolve(0)),J){let E=J[N];E||(E=J.then),E.call(J,M)}else e[L](M,0)}function R(M){0===ee&&0===B.length&&q(_),M&&B.push(M)}function _(){if(!H){for(H=!0;B.length;){const M=B;B=[];for(let E=0;E<M.length;E++){const t=M[E];try{t.zone.runTask(t,null,null)}catch(r){z.onUnhandledError(r)}}}z.microtaskDrainDone(),H=!1}}const K={name:"NO ZONE"},x="notScheduled",X="scheduling",j="scheduled",p="running",V="canceling",h="unknown",I="microTask",w="macroTask",Q="eventTask",oe={},z={symbol:a,currentZoneFrame:()=>U,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:R,showUncaughtError:()=>!d[a("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:q};let U={parent:null,zone:new d(null,null)},re=null,ee=0;function W(){}o("Zone","Zone"),e.Zone=d}("undefined"!=typeof window&&window||"undefined"!=typeof self&&self||global);const ie=Object.getOwnPropertyDescriptor,Ee=Object.defineProperty,de=Object.getPrototypeOf,ge=Object.create,Ge=Array.prototype.slice,Oe="addEventListener",Se="removeEventListener",Ze=Zone.__symbol__(Oe),Ne=Zone.__symbol__(Se),ce="true",ae="false",ke=Zone.__symbol__("");function Ie(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,o,c){return Zone.current.scheduleMacroTask(e,n,i,o,c)}const A=Zone.__symbol__,Pe="undefined"!=typeof window,Te=Pe?window:void 0,Y=Pe&&Te||"object"==typeof self&&self||global;function Le(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Ie(e[i],n+"_"+i));return e}function Fe(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&void 0===e.set)}const Be="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,we=!("nw"in Y)&&void 0!==Y.process&&"[object process]"==={}.toString.call(Y.process),je=!we&&!Be&&!(!Pe||!Te.HTMLElement),Ue=void 0!==Y.process&&"[object process]"==={}.toString.call(Y.process)&&!Be&&!(!Pe||!Te.HTMLElement),Re={},We=function(e){if(!(e=e||Y.event))return;let n=Re[e.type];n||(n=Re[e.type]=A("ON_PROPERTY"+e.type));const i=this||e.target||Y,o=i[n];let c;if(je&&i===Te&&"error"===e.type){const a=e;c=o&&o.call(this,a.message,a.filename,a.lineno,a.colno,a.error),!0===c&&e.preventDefault()}else c=o&&o.apply(this,arguments),null!=c&&!c&&e.preventDefault();return c};function qe(e,n,i){let o=ie(e,n);if(!o&&i&&ie(i,n)&&(o={enumerable:!0,configurable:!0}),!o||!o.configurable)return;const c=A("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete o.writable,delete o.value;const a=o.get,y=o.set,d=n.slice(2);let P=Re[d];P||(P=Re[d]=A("ON_PROPERTY"+d)),o.set=function(v){let m=this;!m&&e===Y&&(m=Y),m&&("function"==typeof m[P]&&m.removeEventListener(d,We),y&&y.call(m,null),m[P]=v,"function"==typeof v&&m.addEventListener(d,We,!1))},o.get=function(){let v=this;if(!v&&e===Y&&(v=Y),!v)return null;const m=v[P];if(m)return m;if(a){let L=a.call(this);if(L)return o.set.call(this,L),"function"==typeof v.removeAttribute&&v.removeAttribute(n),L}return null},Ee(e,n,o),e[c]=!0}function Xe(e,n,i){if(n)for(let o=0;o<n.length;o++)qe(e,"on"+n[o],i);else{const o=[];for(const c in e)"on"==c.slice(0,2)&&o.push(c);for(let c=0;c<o.length;c++)qe(e,o[c],i)}}const ne=A("originalInstance");function ve(e){const n=Y[e];if(!n)return;Y[A(e)]=n,Y[e]=function(){const c=Le(arguments,e);switch(c.length){case 0:this[ne]=new n;break;case 1:this[ne]=new n(c[0]);break;case 2:this[ne]=new n(c[0],c[1]);break;case 3:this[ne]=new n(c[0],c[1],c[2]);break;case 4:this[ne]=new n(c[0],c[1],c[2],c[3]);break;default:throw new Error("Arg list too long.")}},ue(Y[e],n);const i=new n(function(){});let o;for(o in i)"XMLHttpRequest"===e&&"responseBlob"===o||function(c){"function"==typeof i[c]?Y[e].prototype[c]=function(){return this[ne][c].apply(this[ne],arguments)}:Ee(Y[e].prototype,c,{set:function(a){"function"==typeof a?(this[ne][c]=Ie(a,e+"."+c),ue(this[ne][c],a)):this[ne][c]=a},get:function(){return this[ne][c]}})}(o);for(o in n)"prototype"!==o&&n.hasOwnProperty(o)&&(Y[e][o]=n[o])}function le(e,n,i){let o=e;for(;o&&!o.hasOwnProperty(n);)o=de(o);!o&&e[n]&&(o=e);const c=A(n);let a=null;if(o&&(!(a=o[c])||!o.hasOwnProperty(c))&&(a=o[c]=o[n],Fe(o&&ie(o,n)))){const d=i(a,c,n);o[n]=function(){return d(this,arguments)},ue(o[n],a)}return a}function lt(e,n,i){let o=null;function c(a){const y=a.data;return y.args[y.cbIdx]=function(){a.invoke.apply(this,arguments)},o.apply(y.target,y.args),a}o=le(e,n,a=>function(y,d){const P=i(y,d);return P.cbIdx>=0&&"function"==typeof d[P.cbIdx]?Me(P.name,d[P.cbIdx],P,c):a.apply(y,d)})}function ue(e,n){e[A("OriginalDelegate")]=n}let ze=!1,Ae=!1;function ft(){if(ze)return Ae;ze=!0;try{const e=Te.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(Ae=!0)}catch(e){}return Ae}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const o=Object.getOwnPropertyDescriptor,c=Object.defineProperty,y=i.symbol,d=[],P=!0===e[y("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],v=y("Promise"),m=y("then");i.onUnhandledError=l=>{if(i.showUncaughtError()){const u=l&&l.rejection;u?console.error("Unhandled Promise rejection:",u instanceof Error?u.message:u,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",u,u instanceof Error?u.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;d.length;){const l=d.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(u){N(u)}}};const Z=y("unhandledPromiseRejectionHandler");function N(l){i.onUnhandledError(l);try{const u=n[Z];"function"==typeof u&&u.call(this,l)}catch(u){}}function B(l){return l&&l.then}function H(l){return l}function J(l){return t.reject(l)}const q=y("state"),R=y("value"),_=y("finally"),K=y("parentPromiseValue"),x=y("parentPromiseState"),j=null,p=!0,V=!1;function I(l,u){return s=>{try{z(l,u,s)}catch(f){z(l,!1,f)}}}const w=function(){let l=!1;return function(s){return function(){l||(l=!0,s.apply(null,arguments))}}},oe=y("currentTaskTrace");function z(l,u,s){const f=w();if(l===s)throw new TypeError("Promise resolved with itself");if(l[q]===j){let g=null;try{("object"==typeof s||"function"==typeof s)&&(g=s&&s.then)}catch(b){return f(()=>{z(l,!1,b)})(),l}if(u!==V&&s instanceof t&&s.hasOwnProperty(q)&&s.hasOwnProperty(R)&&s[q]!==j)re(s),z(l,s[q],s[R]);else if(u!==V&&"function"==typeof g)try{g.call(s,f(I(l,u)),f(I(l,!1)))}catch(b){f(()=>{z(l,!1,b)})()}else{l[q]=u;const b=l[R];if(l[R]=s,l[_]===_&&u===p&&(l[q]=l[x],l[R]=l[K]),u===V&&s instanceof Error){const T=n.currentTask&&n.currentTask.data&&n.currentTask.data.__creationTrace__;T&&c(s,oe,{configurable:!0,enumerable:!1,writable:!0,value:T})}for(let T=0;T<b.length;)ee(l,b[T++],b[T++],b[T++],b[T++]);if(0==b.length&&u==V){l[q]=0;let T=s;try{throw new Error("Uncaught (in promise): "+function a(l){return l&&l.toString===Object.prototype.toString?(l.constructor&&l.constructor.name||"")+": "+JSON.stringify(l):l?l.toString():Object.prototype.toString.call(l)}(s)+(s&&s.stack?"\n"+s.stack:""))}catch(D){T=D}P&&(T.throwOriginal=!0),T.rejection=s,T.promise=l,T.zone=n.current,T.task=n.currentTask,d.push(T),i.scheduleMicroTask()}}}return l}const U=y("rejectionHandledHandler");function re(l){if(0===l[q]){try{const u=n[U];u&&"function"==typeof u&&u.call(this,{rejection:l[R],promise:l})}catch(u){}l[q]=V;for(let u=0;u<d.length;u++)l===d[u].promise&&d.splice(u,1)}}function ee(l,u,s,f,g){re(l);const b=l[q],T=b?"function"==typeof f?f:H:"function"==typeof g?g:J;u.scheduleMicroTask("Promise.then",()=>{try{const D=l[R],O=!!s&&_===s[_];O&&(s[K]=D,s[x]=b);const S=u.run(T,void 0,O&&T!==J&&T!==H?[]:[D]);z(s,!0,S)}catch(D){z(s,!1,D)}},s)}const M=function(){},E=e.AggregateError;class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(u){return z(new this(null),p,u)}static reject(u){return z(new this(null),V,u)}static any(u){if(!u||"function"!=typeof u[Symbol.iterator])return Promise.reject(new E([],"All promises were rejected"));const s=[];let f=0;try{for(let T of u)f++,s.push(t.resolve(T))}catch(T){return Promise.reject(new E([],"All promises were rejected"))}if(0===f)return Promise.reject(new E([],"All promises were rejected"));let g=!1;const b=[];return new t((T,D)=>{for(let O=0;O<s.length;O++)s[O].then(S=>{g||(g=!0,T(S))},S=>{b.push(S),f--,0===f&&(g=!0,D(new E(b,"All promises were rejected")))})})}static race(u){let s,f,g=new this((D,O)=>{s=D,f=O});function b(D){s(D)}function T(D){f(D)}for(let D of u)B(D)||(D=this.resolve(D)),D.then(b,T);return g}static all(u){return t.allWithCallback(u)}static allSettled(u){return(this&&this.prototype instanceof t?this:t).allWithCallback(u,{thenCallback:f=>({status:"fulfilled",value:f}),errorCallback:f=>({status:"rejected",reason:f})})}static allWithCallback(u,s){let f,g,b=new this((S,G)=>{f=S,g=G}),T=2,D=0;const O=[];for(let S of u){B(S)||(S=this.resolve(S));const G=D;try{S.then(F=>{O[G]=s?s.thenCallback(F):F,T--,0===T&&f(O)},F=>{s?(O[G]=s.errorCallback(F),T--,0===T&&f(O)):g(F)})}catch(F){g(F)}T++,D++}return T-=2,0===T&&f(O),b}constructor(u){const s=this;if(!(s instanceof t))throw new Error("Must be an instanceof Promise.");s[q]=j,s[R]=[];try{const f=w();u&&u(f(I(s,p)),f(I(s,V)))}catch(f){z(s,!1,f)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(u,s){var f;let g=null===(f=this.constructor)||void 0===f?void 0:f[Symbol.species];(!g||"function"!=typeof g)&&(g=this.constructor||t);const b=new g(M),T=n.current;return this[q]==j?this[R].push(T,b,u,s):ee(this,T,b,u,s),b}catch(u){return this.then(null,u)}finally(u){var s;let f=null===(s=this.constructor)||void 0===s?void 0:s[Symbol.species];(!f||"function"!=typeof f)&&(f=t);const g=new f(M);g[_]=_;const b=n.current;return this[q]==j?this[R].push(b,g,u,u):ee(this,b,g,u,u),g}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const r=e[v]=e.Promise;e.Promise=t;const k=y("thenPatched");function C(l){const u=l.prototype,s=o(u,"then");if(s&&(!1===s.writable||!s.configurable))return;const f=u.then;u[m]=f,l.prototype.then=function(g,b){return new t((D,O)=>{f.call(this,D,O)}).then(g,b)},l[k]=!0}return i.patchThen=C,r&&(C(r),le(e,"fetch",l=>function $(l){return function(u,s){let f=l.apply(u,s);if(f instanceof t)return f;let g=f.constructor;return g[k]||C(g),f}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=d,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=A("OriginalDelegate"),o=A("Promise"),c=A("Error"),a=function(){if("function"==typeof this){const v=this[i];if(v)return"function"==typeof v?n.call(v):Object.prototype.toString.call(v);if(this===Promise){const m=e[o];if(m)return n.call(m)}if(this===Error){const m=e[c];if(m)return n.call(m)}}return n.call(this)};a[i]=n,Function.prototype.toString=a;const y=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":y.call(this)}});let ye=!1;if("undefined"!=typeof window)try{const e=Object.defineProperty({},"passive",{get:function(){ye=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch(e){ye=!1}const ht={useG:!0},te={},Ye={},$e=new RegExp("^"+ke+"(\\w+)(true|false)$"),Ke=A("propagationStopped");function Je(e,n){const i=(n?n(e):e)+ae,o=(n?n(e):e)+ce,c=ke+i,a=ke+o;te[e]={},te[e][ae]=c,te[e][ce]=a}function dt(e,n,i,o){const c=o&&o.add||Oe,a=o&&o.rm||Se,y=o&&o.listeners||"eventListeners",d=o&&o.rmAll||"removeAllListeners",P=A(c),v="."+c+":",Z=function(R,_,K){if(R.isRemoved)return;const x=R.callback;let X;"object"==typeof x&&x.handleEvent&&(R.callback=p=>x.handleEvent(p),R.originalDelegate=x);try{R.invoke(R,_,[K])}catch(p){X=p}const j=R.options;return j&&"object"==typeof j&&j.once&&_[a].call(_,K.type,R.originalDelegate?R.originalDelegate:R.callback,j),X};function N(R,_,K){if(!(_=_||e.event))return;const x=R||_.target||e,X=x[te[_.type][K?ce:ae]];if(X){const j=[];if(1===X.length){const p=Z(X[0],x,_);p&&j.push(p)}else{const p=X.slice();for(let V=0;V<p.length&&(!_||!0!==_[Ke]);V++){const h=Z(p[V],x,_);h&&j.push(h)}}if(1===j.length)throw j[0];for(let p=0;p<j.length;p++){const V=j[p];n.nativeScheduleMicroTask(()=>{throw V})}}}const B=function(R){return N(this,R,!1)},H=function(R){return N(this,R,!0)};function J(R,_){if(!R)return!1;let K=!0;_&&void 0!==_.useG&&(K=_.useG);const x=_&&_.vh;let X=!0;_&&void 0!==_.chkDup&&(X=_.chkDup);let j=!1;_&&void 0!==_.rt&&(j=_.rt);let p=R;for(;p&&!p.hasOwnProperty(c);)p=de(p);if(!p&&R[c]&&(p=R),!p||p[P])return!1;const V=_&&_.eventNameToString,h={},I=p[P]=p[c],w=p[A(a)]=p[a],Q=p[A(y)]=p[y],oe=p[A(d)]=p[d];let z;function U(s,f){return!ye&&"object"==typeof s&&s?!!s.capture:ye&&f?"boolean"==typeof s?{capture:s,passive:!0}:s?"object"==typeof s&&!1!==s.passive?Object.assign(Object.assign({},s),{passive:!0}):s:{passive:!0}:s}_&&_.prepend&&(z=p[A(_.prepend)]=p[_.prepend]);const t=K?function(s){if(!h.isExisting)return I.call(h.target,h.eventName,h.capture?H:B,h.options)}:function(s){return I.call(h.target,h.eventName,s.invoke,h.options)},r=K?function(s){if(!s.isRemoved){const f=te[s.eventName];let g;f&&(g=f[s.capture?ce:ae]);const b=g&&s.target[g];if(b)for(let T=0;T<b.length;T++)if(b[T]===s){b.splice(T,1),s.isRemoved=!0,0===b.length&&(s.allRemoved=!0,s.target[g]=null);break}}if(s.allRemoved)return w.call(s.target,s.eventName,s.capture?H:B,s.options)}:function(s){return w.call(s.target,s.eventName,s.invoke,s.options)},C=_&&_.diff?_.diff:function(s,f){const g=typeof f;return"function"===g&&s.callback===f||"object"===g&&s.originalDelegate===f},$=Zone[A("UNPATCHED_EVENTS")],l=e[A("PASSIVE_EVENTS")],u=function(s,f,g,b,T=!1,D=!1){return function(){const O=this||e;let S=arguments[0];_&&_.transferEventName&&(S=_.transferEventName(S));let G=arguments[1];if(!G)return s.apply(this,arguments);if(we&&"uncaughtException"===S)return s.apply(this,arguments);let F=!1;if("function"!=typeof G){if(!G.handleEvent)return s.apply(this,arguments);F=!0}if(x&&!x(s,G,O,arguments))return;const fe=ye&&!!l&&-1!==l.indexOf(S),se=U(arguments[2],fe);if($)for(let _e=0;_e<$.length;_e++)if(S===$[_e])return fe?s.call(O,S,G,se):s.apply(this,arguments);const xe=!!se&&("boolean"==typeof se||se.capture),nt=!(!se||"object"!=typeof se)&&se.once,gt=Zone.current;let Ve=te[S];Ve||(Je(S,V),Ve=te[S]);const rt=Ve[xe?ce:ae];let De,me=O[rt],ot=!1;if(me){if(ot=!0,X)for(let _e=0;_e<me.length;_e++)if(C(me[_e],G))return}else me=O[rt]=[];const st=O.constructor.name,it=Ye[st];it&&(De=it[S]),De||(De=st+f+(V?V(S):S)),h.options=se,nt&&(h.options.once=!1),h.target=O,h.capture=xe,h.eventName=S,h.isExisting=ot;const be=K?ht:void 0;be&&(be.taskData=h);const he=gt.scheduleEventTask(De,G,be,g,b);return h.target=null,be&&(be.taskData=null),nt&&(se.once=!0),!ye&&"boolean"==typeof he.options||(he.options=se),he.target=O,he.capture=xe,he.eventName=S,F&&(he.originalDelegate=G),D?me.unshift(he):me.push(he),T?O:void 0}};return p[c]=u(I,v,t,r,j),z&&(p.prependListener=u(z,".prependListener:",function(s){return z.call(h.target,h.eventName,s.invoke,h.options)},r,j,!0)),p[a]=function(){const s=this||e;let f=arguments[0];_&&_.transferEventName&&(f=_.transferEventName(f));const g=arguments[2],b=!!g&&("boolean"==typeof g||g.capture),T=arguments[1];if(!T)return w.apply(this,arguments);if(x&&!x(w,T,s,arguments))return;const D=te[f];let O;D&&(O=D[b?ce:ae]);const S=O&&s[O];if(S)for(let G=0;G<S.length;G++){const F=S[G];if(C(F,T))return S.splice(G,1),F.isRemoved=!0,0===S.length&&(F.allRemoved=!0,s[O]=null,"string"==typeof f)&&(s[ke+"ON_PROPERTY"+f]=null),F.zone.cancelTask(F),j?s:void 0}return w.apply(this,arguments)},p[y]=function(){const s=this||e;let f=arguments[0];_&&_.transferEventName&&(f=_.transferEventName(f));const g=[],b=Qe(s,V?V(f):f);for(let T=0;T<b.length;T++){const D=b[T];g.push(D.originalDelegate?D.originalDelegate:D.callback)}return g},p[d]=function(){const s=this||e;let f=arguments[0];if(f){_&&_.transferEventName&&(f=_.transferEventName(f));const g=te[f];if(g){const D=s[g[ae]],O=s[g[ce]];if(D){const S=D.slice();for(let G=0;G<S.length;G++){const F=S[G];this[a].call(this,f,F.originalDelegate?F.originalDelegate:F.callback,F.options)}}if(O){const S=O.slice();for(let G=0;G<S.length;G++){const F=S[G];this[a].call(this,f,F.originalDelegate?F.originalDelegate:F.callback,F.options)}}}}else{const g=Object.keys(s);for(let b=0;b<g.length;b++){const D=$e.exec(g[b]);let O=D&&D[1];O&&"removeListener"!==O&&this[d].call(this,O)}this[d].call(this,"removeListener")}if(j)return this},ue(p[c],I),ue(p[a],w),oe&&ue(p[d],oe),Q&&ue(p[y],Q),!0}let q=[];for(let R=0;R<i.length;R++)q[R]=J(i[R],o);return q}function Qe(e,n){if(!n){const a=[];for(let y in e){const d=$e.exec(y);let P=d&&d[1];if(P&&(!n||P===n)){const v=e[y];if(v)for(let m=0;m<v.length;m++)a.push(v[m])}}return a}let i=te[n];i||(Je(n),i=te[n]);const o=e[i[ae]],c=e[i[ce]];return o?c?o.concat(c):o.slice():c?c.slice():[]}function _t(e,n){const i=e.Event;i&&i.prototype&&n.patchMethod(i.prototype,"stopImmediatePropagation",o=>function(c,a){c[Ke]=!0,o&&o.apply(c,a)})}function Et(e,n,i,o,c){const a=Zone.__symbol__(o);if(n[a])return;const y=n[a]=n[o];n[o]=function(d,P,v){return P&&P.prototype&&c.forEach(function(m){const L=`${i}.${o}::`+m,Z=P.prototype;try{if(Z.hasOwnProperty(m)){const N=e.ObjectGetOwnPropertyDescriptor(Z,m);N&&N.value?(N.value=e.wrapWithCurrentZone(N.value,L),e._redefineProperty(P.prototype,m,N)):Z[m]&&(Z[m]=e.wrapWithCurrentZone(Z[m],L))}else Z[m]&&(Z[m]=e.wrapWithCurrentZone(Z[m],L))}catch(N){}}),y.call(n,d,P,v)},e.attachOriginToPatched(n[o],y)}function et(e,n,i){if(!i||0===i.length)return n;const o=i.filter(a=>a.target===e);if(!o||0===o.length)return n;const c=o[0].ignoreProperties;return n.filter(a=>-1===c.indexOf(a))}function tt(e,n,i,o){e&&Xe(e,et(e,n,i),o)}function He(e){return Object.getOwnPropertyNames(e).filter(n=>n.startsWith("on")&&n.length>2).map(n=>n.substring(2))}Zone.__load_patch("util",(e,n,i)=>{const o=He(e);i.patchOnProperties=Xe,i.patchMethod=le,i.bindArguments=Le,i.patchMacroTask=lt;const c=n.__symbol__("BLACK_LISTED_EVENTS"),a=n.__symbol__("UNPATCHED_EVENTS");e[a]&&(e[c]=e[a]),e[c]&&(n[c]=n[a]=e[c]),i.patchEventPrototype=_t,i.patchEventTarget=dt,i.isIEOrEdge=ft,i.ObjectDefineProperty=Ee,i.ObjectGetOwnPropertyDescriptor=ie,i.ObjectCreate=ge,i.ArraySlice=Ge,i.patchClass=ve,i.wrapWithCurrentZone=Ie,i.filterProperties=et,i.attachOriginToPatched=ue,i._redefineProperty=Object.defineProperty,i.patchCallbacks=Et,i.getGlobalObjects=()=>({globalSources:Ye,zoneSymbolEventNames:te,eventNames:o,isBrowser:je,isMix:Ue,isNode:we,TRUE_STR:ce,FALSE_STR:ae,ZONE_SYMBOL_PREFIX:ke,ADD_EVENT_LISTENER_STR:Oe,REMOVE_EVENT_LISTENER_STR:Se})});const Ce=A("zoneTask");function pe(e,n,i,o){let c=null,a=null;i+=o;const y={};function d(v){const m=v.data;return m.args[0]=function(){return v.invoke.apply(this,arguments)},m.handleId=c.apply(e,m.args),v}function P(v){return a.call(e,v.data.handleId)}c=le(e,n+=o,v=>function(m,L){if("function"==typeof L[0]){const Z={isPeriodic:"Interval"===o,delay:"Timeout"===o||"Interval"===o?L[1]||0:void 0,args:L},N=L[0];L[0]=function(){try{return N.apply(this,arguments)}finally{Z.isPeriodic||("number"==typeof Z.handleId?delete y[Z.handleId]:Z.handleId&&(Z.handleId[Ce]=null))}};const B=Me(n,L[0],Z,d,P);if(!B)return B;const H=B.data.handleId;return"number"==typeof H?y[H]=B:H&&(H[Ce]=B),H&&H.ref&&H.unref&&"function"==typeof H.ref&&"function"==typeof H.unref&&(B.ref=H.ref.bind(H),B.unref=H.unref.bind(H)),"number"==typeof H||H?H:B}return v.apply(e,L)}),a=le(e,i,v=>function(m,L){const Z=L[0];let N;"number"==typeof Z?N=y[Z]:(N=Z&&Z[Ce],N||(N=Z)),N&&"string"==typeof N.type?"notScheduled"!==N.state&&(N.cancelFn&&N.data.isPeriodic||0===N.runCount)&&("number"==typeof Z?delete y[Z]:Z&&(Z[Ce]=null),N.zone.cancelTask(N)):v.apply(e,L)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{i.patchMethod(e,"queueMicrotask",o=>function(c,a){n.current.scheduleMicroTask("queueMicrotask",a[0])})}),Zone.__load_patch("timers",e=>{const n="set",i="clear";pe(e,n,i,"Timeout"),pe(e,n,i,"Interval"),pe(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{pe(e,"request","cancel","AnimationFrame"),pe(e,"mozRequest","mozCancel","AnimationFrame"),pe(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let o=0;o<i.length;o++)le(e,i[o],(a,y,d)=>function(P,v){return n.current.run(a,e,v,d)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function mt(e,n){n.patchEventPrototype(e,n)})(e,i),function pt(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:o,TRUE_STR:c,FALSE_STR:a,ZONE_SYMBOL_PREFIX:y}=n.getGlobalObjects();for(let P=0;P<i.length;P++){const v=i[P],Z=y+(v+a),N=y+(v+c);o[v]={},o[v][a]=Z,o[v][c]=N}const d=e.EventTarget;d&&d.prototype&&n.patchEventTarget(e,n,[d&&d.prototype])}(e,i);const o=e.XMLHttpRequestEventTarget;o&&o.prototype&&i.patchEventTarget(e,i,[o.prototype])}),Zone.__load_patch("MutationObserver",(e,n,i)=>{ve("MutationObserver"),ve("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ve("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ve("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function Tt(e,n){if(we&&!Ue||Zone[e.symbol("patchEvents")])return;const i=n.__Zone_ignore_on_properties;let o=[];if(je){const c=window;o=o.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const a=function ut(){try{const e=Te.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch(e){}return!1}()?[{target:c,ignoreProperties:["error"]}]:[];tt(c,He(c),i&&i.concat(a),de(c))}o=o.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let c=0;c<o.length;c++){const a=n[o[c]];a&&a.prototype&&tt(a.prototype,He(a.prototype),i)}}(i,e)}),Zone.__load_patch("customElements",(e,n,i)=>{!function yt(e,n){const{isBrowser:i,isMix:o}=n.getGlobalObjects();(i||o)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function P(v){const m=v.XMLHttpRequest;if(!m)return;const L=m.prototype;let N=L[Ze],B=L[Ne];if(!N){const h=v.XMLHttpRequestEventTarget;if(h){const I=h.prototype;N=I[Ze],B=I[Ne]}}const H="readystatechange",J="scheduled";function q(h){const I=h.data,w=I.target;w[a]=!1,w[d]=!1;const Q=w[c];N||(N=w[Ze],B=w[Ne]),Q&&B.call(w,H,Q);const oe=w[c]=()=>{if(w.readyState===w.DONE)if(!I.aborted&&w[a]&&h.state===J){const U=w[n.__symbol__("loadfalse")];if(0!==w.status&&U&&U.length>0){const re=h.invoke;h.invoke=function(){const ee=w[n.__symbol__("loadfalse")];for(let W=0;W<ee.length;W++)ee[W]===h&&ee.splice(W,1);!I.aborted&&h.state===J&&re.call(h)},U.push(h)}else h.invoke()}else!I.aborted&&!1===w[a]&&(w[d]=!0)};return N.call(w,H,oe),w[i]||(w[i]=h),p.apply(w,I.args),w[a]=!0,h}function R(){}function _(h){const I=h.data;return I.aborted=!0,V.apply(I.target,I.args)}const K=le(L,"open",()=>function(h,I){return h[o]=0==I[2],h[y]=I[1],K.apply(h,I)}),X=A("fetchTaskAborting"),j=A("fetchTaskScheduling"),p=le(L,"send",()=>function(h,I){if(!0===n.current[j]||h[o])return p.apply(h,I);{const w={target:h,url:h[y],isPeriodic:!1,args:I,aborted:!1},Q=Me("XMLHttpRequest.send",R,w,q,_);h&&!0===h[d]&&!w.aborted&&Q.state===J&&Q.invoke()}}),V=le(L,"abort",()=>function(h,I){const w=function Z(h){return h[i]}(h);if(w&&"string"==typeof w.type){if(null==w.cancelFn||w.data&&w.data.aborted)return;w.zone.cancelTask(w)}else if(!0===n.current[X])return V.apply(h,I)})}(e);const i=A("xhrTask"),o=A("xhrSync"),c=A("xhrListener"),a=A("xhrScheduled"),y=A("xhrURL"),d=A("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function at(e,n){const i=e.constructor.name;for(let o=0;o<n.length;o++){const c=n[o],a=e[c];if(a){if(!Fe(ie(e,c)))continue;e[c]=(d=>{const P=function(){return d.apply(this,Le(arguments,i+"."+c))};return ue(P,d),P})(a)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(o){return function(c){Qe(e,o).forEach(y=>{const d=e.PromiseRejectionEvent;if(d){const P=new d(o,{promise:c.promise,reason:c.rejection});y.invoke(P)}})}}e.PromiseRejectionEvent&&(n[A("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[A("rejectionHandledHandler")]=i("rejectionhandled"))})}},ie=>{ie(ie.s=435)}]);
\ No newline at end of file
diff --git a/client/web/dist/runtime.16fa3418f03cd751.js b/client/web/dist/runtime.16fa3418f03cd751.js
new file mode 100644
index 0000000000000000000000000000000000000000..74c856415fa92dd5e5776ca05ab5486e7a7c9e06
--- /dev/null
+++ b/client/web/dist/runtime.16fa3418f03cd751.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,i={},_={};function n(e){var a=_[e];if(void 0!==a)return a.exports;var r=_[e]={exports:{}};return i[e](r,r.exports,n),r.exports}n.m=i,e=[],n.O=(a,r,u,l)=>{if(!r){var s=1/0;for(f=0;f<e.length;f++){for(var[r,u,l]=e[f],o=!0,t=0;t<r.length;t++)(!1&l||s>=l)&&Object.keys(n.O).every(h=>n.O[h](r[t]))?r.splice(t--,1):(o=!1,l<s&&(s=l));if(o){e.splice(f--,1);var c=u();void 0!==c&&(a=c)}}return a}l=l||0;for(var f=e.length;f>0&&e[f-1][2]>l;f--)e[f]=e[f-1];e[f]=[r,u,l]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a}),a},n.d=(e,a)=>{for(var r in a)n.o(a,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),(()=>{var e={666:0};n.O.j=u=>0===e[u];var a=(u,l)=>{var t,c,[f,s,o]=l,v=0;if(f.some(d=>0!==e[d])){for(t in s)n.o(s,t)&&(n.m[t]=s[t]);if(o)var b=o(n)}for(u&&u(l);v<f.length;v++)n.o(e,c=f[v])&&e[c]&&e[c][0](),e[f[v]]=0;return n.O(b)},r=self.webpackChunkPsiViewer=self.webpackChunkPsiViewer||[];r.forEach(a.bind(null,0)),r.push=a.bind(null,r.push.bind(r))})()})();
\ No newline at end of file
diff --git a/client/web/dist/styles.4321c6214ef1a9a7.css b/client/web/dist/styles.4321c6214ef1a9a7.css
new file mode 100644
index 0000000000000000000000000000000000000000..09c84a31c60428d6cf967ff3101d97336bcf787c
--- /dev/null
+++ b/client/web/dist/styles.4321c6214ef1a9a7.css
@@ -0,0 +1 @@
+.mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto,Helvetica Neue,sans-serif}.mat-badge-small .mat-badge-content{font-size:9px}.mat-badge-large .mat-badge-content{font-size:24px}.mat-h1,.mat-headline,.mat-typography .mat-h1,.mat-typography .mat-headline,.mat-typography h1{font:400 24px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-title,.mat-typography .mat-h2,.mat-typography .mat-title,.mat-typography h2{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3,.mat-subheading-2,.mat-typography .mat-h3,.mat-typography .mat-subheading-2,.mat-typography h3{font:400 16px/28px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4,.mat-subheading-1,.mat-typography .mat-h4,.mat-typography .mat-subheading-1,.mat-typography h4{font:400 15px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.mat-body-strong,.mat-body-2,.mat-typography .mat-body-strong,.mat-typography .mat-body-2{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-body,.mat-body-1,.mat-typography .mat-body,.mat-typography .mat-body-1,.mat-typography{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-body p,.mat-body-1 p,.mat-typography .mat-body p,.mat-typography .mat-body-1 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-display-4,.mat-typography .mat-display-4{font:300 112px/112px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.05em;margin:0 0 56px}.mat-display-3,.mat-typography .mat-display-3{font:400 56px/56px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.02em;margin:0 0 64px}.mat-display-2,.mat-typography .mat-display-2{font:400 45px/48px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.005em;margin:0 0 64px}.mat-display-1,.mat-typography .mat-display-1{font:400 34px/40px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-button,.mat-raised-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button,.mat-fab,.mat-mini-fab{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-button-toggle,.mat-card{font-family:Roboto,Helvetica Neue,sans-serif}.mat-card-title{font-size:24px;font-weight:500}.mat-card-header .mat-card-title{font-size:20px}.mat-card-subtitle,.mat-card-content{font-size:14px}.mat-checkbox{font-family:Roboto,Helvetica Neue,sans-serif}.mat-checkbox-layout .mat-checkbox-label{line-height:24px}.mat-chip{font-size:14px;font-weight:500}.mat-chip .mat-chip-trailing-icon.mat-icon,.mat-chip .mat-chip-remove.mat-icon{font-size:18px}.mat-table{font-family:Roboto,Helvetica Neue,sans-serif}.mat-header-cell{font-size:12px;font-weight:500}.mat-cell,.mat-footer-cell{font-size:14px}.mat-calendar{font-family:Roboto,Helvetica Neue,sans-serif}.mat-calendar-body{font-size:13px}.mat-calendar-body-label,.mat-calendar-period-button{font-size:14px;font-weight:500}.mat-calendar-table-header th{font-size:11px;font-weight:400}.mat-dialog-title{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-expansion-panel-header{font-family:Roboto,Helvetica Neue,sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-form-field{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-form-field-wrapper{padding-bottom:1.34375em}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{font-size:150%;line-height:1.125}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{height:1.125em;line-height:1.125}.mat-form-field-infix{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34375em) scale(.75);width:133.3333333333%}.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34374em) scale(.75);width:133.3333433333%}.mat-form-field-label-wrapper{top:-.84375em;padding-top:.84375em}.mat-form-field-label{top:1.34375em}.mat-form-field-underline{bottom:1.34375em}.mat-form-field-subscript-wrapper{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy .mat-form-field-wrapper{padding-bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-infix{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);width:133.3333533333%}.mat-form-field-appearance-legacy .mat-form-field-label{top:1.28125em}.mat-form-field-appearance-legacy .mat-form-field-underline{bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28122em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28121em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.2812em) scale(.75)}}.mat-form-field-appearance-fill .mat-form-field-infix{padding:.25em 0 .75em}.mat-form-field-appearance-fill .mat-form-field-label{top:1.09375em;margin-top:-.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59375em) scale(.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59374em) scale(.75);width:133.3333433333%}.mat-form-field-appearance-outline .mat-form-field-infix{padding:1em 0}.mat-form-field-appearance-outline .mat-form-field-label{top:1.84375em;margin-top:-.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59375em) scale(.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59374em) scale(.75);width:133.3333433333%}.mat-grid-tile-header,.mat-grid-tile-footer{font-size:14px}.mat-grid-tile-header .mat-line,.mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header .mat-line:nth-child(n+2),.mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:12px}input.mat-input-element{margin-top:-.0625em}.mat-menu-item{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px}.mat-radio-button,.mat-select{font-family:Roboto,Helvetica Neue,sans-serif}.mat-select-trigger{height:1.125em}.mat-slide-toggle-content{font-family:Roboto,Helvetica Neue,sans-serif}.mat-slider-thumb-label-text{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical,.mat-stepper-horizontal{font-family:Roboto,Helvetica Neue,sans-serif}.mat-step-label{font-size:14px;font-weight:400}.mat-step-sub-label-error{font-weight:400}.mat-step-label-error{font-size:14px}.mat-step-label-selected{font-size:14px;font-weight:500}.mat-tab-group{font-family:Roboto,Helvetica Neue,sans-serif}.mat-tab-label,.mat-tab-link{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0}.mat-tooltip{font-family:Roboto,Helvetica Neue,sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item,.mat-list-option{font-family:Roboto,Helvetica Neue,sans-serif}.mat-list-base .mat-list-item{font-size:16px}.mat-list-base .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-list-option{font-size:16px}.mat-list-base .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense] .mat-list-item{font-size:12px}.mat-list-base[dense] .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-list-option{font-size:12px}.mat-list-base[dense] .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:500}.mat-option{font-family:Roboto,Helvetica Neue,sans-serif;font-size:16px}.mat-optgroup-label{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-simple-snackbar{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px}.mat-simple-snackbar-action{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree{font-family:Roboto,Helvetica Neue,sans-serif}.mat-tree-node,.mat-nested-tree-node{font-weight:400;font-size:14px}.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale(0)}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{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] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{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{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator,.mat-mdc-focus-indicator{position:relative}.mat-ripple-element{background-color:#0000001a}.mat-option{color:#000000de}.mat-option:hover:not(.mat-option-disabled),.mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.mat-option.mat-active{background:rgba(0,0,0,.04);color:#000000de}.mat-option.mat-option-disabled{color:#00000061}.mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#3f51b5}.mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#ff4081}.mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#f44336}.mat-optgroup-label{color:#0000008a}.mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.mat-pseudo-checkbox{color:#0000008a}.mat-pseudo-checkbox:after{color:#fafafa}.mat-pseudo-checkbox-disabled{color:#b0b0b0}.mat-primary .mat-pseudo-checkbox-checked,.mat-primary .mat-pseudo-checkbox-indeterminate{background:#3f51b5}.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-indeterminate,.mat-accent .mat-pseudo-checkbox-checked,.mat-accent .mat-pseudo-checkbox-indeterminate{background:#ff4081}.mat-warn .mat-pseudo-checkbox-checked,.mat-warn .mat-pseudo-checkbox-indeterminate{background:#f44336}.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.mat-app-background{background-color:#fafafa;color:#000000de}.mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.mat-autocomplete-panel{background:#fff;color:#000000de}.mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#fff}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000000de}.mat-badge{position:relative}.mat-badge.mat-badge{overflow:visible}.mat-badge-hidden .mat-badge-content{display:none}.mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.ng-animate-disabled .mat-badge-content,.mat-badge-content._mat-animation-noopable{transition:none}.mat-badge-content.mat-badge-active{transform:none}.mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.mat-badge-content{color:#fff;background:#3f51b5}.cdk-high-contrast-active .mat-badge-content{outline:solid 1px;border-radius:0}.mat-badge-accent .mat-badge-content{background:#ff4081;color:#fff}.mat-badge-warn .mat-badge-content{color:#fff;background:#f44336}.mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#fff;color:#000000de}.mat-button,.mat-icon-button,.mat-stroked-button{color:inherit;background:transparent}.mat-button.mat-primary,.mat-icon-button.mat-primary,.mat-stroked-button.mat-primary{color:#3f51b5}.mat-button.mat-accent,.mat-icon-button.mat-accent,.mat-stroked-button.mat-accent{color:#ff4081}.mat-button.mat-warn,.mat-icon-button.mat-warn,.mat-stroked-button.mat-warn{color:#f44336}.mat-button.mat-primary.mat-button-disabled,.mat-button.mat-accent.mat-button-disabled,.mat-button.mat-warn.mat-button-disabled,.mat-button.mat-button-disabled.mat-button-disabled,.mat-icon-button.mat-primary.mat-button-disabled,.mat-icon-button.mat-accent.mat-button-disabled,.mat-icon-button.mat-warn.mat-button-disabled,.mat-icon-button.mat-button-disabled.mat-button-disabled,.mat-stroked-button.mat-primary.mat-button-disabled,.mat-stroked-button.mat-accent.mat-button-disabled,.mat-stroked-button.mat-warn.mat-button-disabled,.mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#00000042}.mat-button.mat-primary .mat-button-focus-overlay,.mat-icon-button.mat-primary .mat-button-focus-overlay,.mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#3f51b5}.mat-button.mat-accent .mat-button-focus-overlay,.mat-icon-button.mat-accent .mat-button-focus-overlay,.mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#ff4081}.mat-button.mat-warn .mat-button-focus-overlay,.mat-icon-button.mat-warn .mat-button-focus-overlay,.mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#f44336}.mat-button.mat-button-disabled .mat-button-focus-overlay,.mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.mat-button .mat-ripple-element,.mat-icon-button .mat-ripple-element,.mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.mat-button-focus-overlay{background:#000}.mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.mat-flat-button,.mat-raised-button,.mat-fab,.mat-mini-fab{color:#000000de;background-color:#fff}.mat-flat-button.mat-primary,.mat-raised-button.mat-primary,.mat-fab.mat-primary,.mat-mini-fab.mat-primary,.mat-flat-button.mat-accent,.mat-raised-button.mat-accent,.mat-fab.mat-accent,.mat-mini-fab.mat-accent,.mat-flat-button.mat-warn,.mat-raised-button.mat-warn,.mat-fab.mat-warn,.mat-mini-fab.mat-warn{color:#fff}.mat-flat-button.mat-primary.mat-button-disabled,.mat-flat-button.mat-accent.mat-button-disabled,.mat-flat-button.mat-warn.mat-button-disabled,.mat-flat-button.mat-button-disabled.mat-button-disabled,.mat-raised-button.mat-primary.mat-button-disabled,.mat-raised-button.mat-accent.mat-button-disabled,.mat-raised-button.mat-warn.mat-button-disabled,.mat-raised-button.mat-button-disabled.mat-button-disabled,.mat-fab.mat-primary.mat-button-disabled,.mat-fab.mat-accent.mat-button-disabled,.mat-fab.mat-warn.mat-button-disabled,.mat-fab.mat-button-disabled.mat-button-disabled,.mat-mini-fab.mat-primary.mat-button-disabled,.mat-mini-fab.mat-accent.mat-button-disabled,.mat-mini-fab.mat-warn.mat-button-disabled,.mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#00000042}.mat-flat-button.mat-primary,.mat-raised-button.mat-primary,.mat-fab.mat-primary,.mat-mini-fab.mat-primary{background-color:#3f51b5}.mat-flat-button.mat-accent,.mat-raised-button.mat-accent,.mat-fab.mat-accent,.mat-mini-fab.mat-accent{background-color:#ff4081}.mat-flat-button.mat-warn,.mat-raised-button.mat-warn,.mat-fab.mat-warn,.mat-mini-fab.mat-warn{background-color:#f44336}.mat-flat-button.mat-primary.mat-button-disabled,.mat-flat-button.mat-accent.mat-button-disabled,.mat-flat-button.mat-warn.mat-button-disabled,.mat-flat-button.mat-button-disabled.mat-button-disabled,.mat-raised-button.mat-primary.mat-button-disabled,.mat-raised-button.mat-accent.mat-button-disabled,.mat-raised-button.mat-warn.mat-button-disabled,.mat-raised-button.mat-button-disabled.mat-button-disabled,.mat-fab.mat-primary.mat-button-disabled,.mat-fab.mat-accent.mat-button-disabled,.mat-fab.mat-warn.mat-button-disabled,.mat-fab.mat-button-disabled.mat-button-disabled,.mat-mini-fab.mat-primary.mat-button-disabled,.mat-mini-fab.mat-accent.mat-button-disabled,.mat-mini-fab.mat-warn.mat-button-disabled,.mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#0000001f}.mat-flat-button.mat-primary .mat-ripple-element,.mat-raised-button.mat-primary .mat-ripple-element,.mat-fab.mat-primary .mat-ripple-element,.mat-mini-fab.mat-primary .mat-ripple-element,.mat-flat-button.mat-accent .mat-ripple-element,.mat-raised-button.mat-accent .mat-ripple-element,.mat-fab.mat-accent .mat-ripple-element,.mat-mini-fab.mat-accent .mat-ripple-element,.mat-flat-button.mat-warn .mat-ripple-element,.mat-raised-button.mat-warn .mat-ripple-element,.mat-fab.mat-warn .mat-ripple-element,.mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.mat-stroked-button:not([class*=mat-elevation-z]),.mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-fab:not([class*=mat-elevation-z]),.mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.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}.mat-button-toggle{color:#00000061}.mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.mat-button-toggle-appearance-standard{color:#000000de;background:#fff}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px #e0e0e0}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px #e0e0e0}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px #e0e0e0}.mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.mat-button-toggle-disabled{color:#00000042;background-color:#eee}.mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#fff}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:solid 1px #e0e0e0}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px}.mat-card{background:#fff;color:#000000de}.mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-card-subtitle{color:#0000008a}.mat-checkbox-frame{border-color:#0000008a}.mat-checkbox-checkmark{fill:#fafafa}.mat-checkbox-checkmark-path{stroke:#fafafa!important}.mat-checkbox-mixedmark{background-color:#fafafa}.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#3f51b5}.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#ff4081}.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#f44336}.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.mat-checkbox-disabled .mat-checkbox-label{color:#00000061}.mat-checkbox .mat-ripple-element{background-color:#000}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#3f51b5}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#ff4081}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#f44336}.mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.mat-chip.mat-standard-chip:after{background:#000}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#3f51b5;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#f44336;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#ff4081;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#ffffff1a}.mat-table{background:#fff}.mat-table thead,.mat-table tbody,.mat-table tfoot,mat-header-row,mat-row,mat-footer-row,[mat-header-row],[mat-row],[mat-footer-row],.mat-table-sticky{background:inherit}mat-row,mat-header-row,mat-footer-row,th.mat-header-cell,td.mat-cell,td.mat-footer-cell{border-bottom-color:#0000001f}.mat-header-cell{color:#0000008a}.mat-cell,.mat-footer-cell{color:#000000de}.mat-calendar-arrow{fill:#0000008a}.mat-datepicker-toggle,.mat-datepicker-content .mat-calendar-next-button,.mat-datepicker-content .mat-calendar-previous-button{color:#0000008a}.mat-calendar-table-header-divider:after{background:rgba(0,0,0,.12)}.mat-calendar-table-header,.mat-calendar-body-label{color:#0000008a}.mat-calendar-body-cell-content,.mat-date-range-input-separator{color:#000000de;border-color:transparent}.mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:#00000061}.mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.mat-calendar-body-in-preview{color:#0000003d}.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.mat-calendar-body-in-range:before{background:rgba(63,81,181,.2)}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.mat-calendar-body-comparison-bridge-start:before,[dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(63,81,181,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-calendar-body-comparison-bridge-end:before,[dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(63,81,181,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.mat-calendar-body-selected{background-color:#3f51b5;color:#fff}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#3f51b566}.mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#3f51b54d}@media (hover: hover){.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#3f51b54d}}.mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#fff;color:#000000de}.mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(255,64,129,.2)}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(255,64,129,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(255,64,129,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#ff4081;color:#fff}.mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff408166}.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff40814d}@media (hover: hover){.mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff40814d}}.mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(244,67,54,.2)}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(244,67,54,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(244,67,54,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#f44336;color:#fff}.mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#f4433666}.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#f443364d}@media (hover: hover){.mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#f443364d}}.mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-datepicker-toggle-active{color:#3f51b5}.mat-datepicker-toggle-active.mat-accent{color:#ff4081}.mat-datepicker-toggle-active.mat-warn{color:#f44336}.mat-date-range-input-inner[disabled]{color:#00000061}.mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#fff;color:#000000de}.mat-divider{border-top-color:#0000001f}.mat-divider-vertical{border-right-color:#0000001f}.mat-expansion-panel{background:#fff;color:#000000de}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mat-action-row{border-top-color:#0000001f}.mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#fff}}.mat-expansion-panel-header-title{color:#000000de}.mat-expansion-panel-header-description,.mat-expansion-indicator:after{color:#0000008a}.mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.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{height:48px}.mat-expansion-panel-header.mat-expanded{height:64px}.mat-form-field-label,.mat-hint{color:#0009}.mat-form-field.mat-focused .mat-form-field-label{color:#3f51b5}.mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#ff4081}.mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#f44336}.mat-focused .mat-form-field-required-marker{color:#ff4081}.mat-form-field-ripple{background-color:#000000de}.mat-form-field.mat-focused .mat-form-field-ripple{background-color:#3f51b5}.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#ff4081}.mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#f44336}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#3f51b5}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#ff4081}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#f44336}.mat-form-field.mat-form-field-invalid .mat-form-field-label,.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#f44336}.mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#f44336}.mat-error{color:#f44336}.mat-form-field-appearance-legacy .mat-form-field-label,.mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#3f51b5}.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#ff4081}.mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#f44336}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.mat-icon.mat-primary{color:#3f51b5}.mat-icon.mat-accent{color:#ff4081}.mat-icon.mat-warn{color:#f44336}.mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.mat-input-element:disabled,.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after{color:#00000061}.mat-input-element{caret-color:#3f51b5}.mat-input-element::placeholder{color:#0000006b}.mat-input-element::-moz-placeholder{color:#0000006b}.mat-input-element::-webkit-input-placeholder{color:#0000006b}.mat-input-element:-ms-input-placeholder{color:#0000006b}.mat-form-field.mat-accent .mat-input-element{caret-color:#ff4081}.mat-form-field.mat-warn .mat-input-element,.mat-form-field-invalid .mat-input-element{caret-color:#f44336}.mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#f44336}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{color:#000000de}.mat-list-base .mat-subheader{color:#0000008a}.mat-list-base .mat-list-item-disabled{background-color:#eee;color:#00000061}.mat-list-option:hover,.mat-list-option:focus,.mat-nav-list .mat-list-item:hover,.mat-nav-list .mat-list-item:focus,.mat-action-list .mat-list-item:hover,.mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.mat-list-single-selected-option,.mat-list-single-selected-option:hover,.mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.mat-menu-panel{background:#fff}.mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.mat-menu-item{background:transparent;color:#000000de}.mat-menu-item[disabled],.mat-menu-item[disabled] .mat-menu-submenu-icon,.mat-menu-item[disabled] .mat-icon-no-color{color:#00000061}.mat-menu-item .mat-icon-no-color,.mat-menu-submenu-icon{color:#0000008a}.mat-menu-item:hover:not([disabled]),.mat-menu-item.cdk-program-focused:not([disabled]),.mat-menu-item.cdk-keyboard-focused:not([disabled]),.mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.mat-paginator{background:#fff}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{color:#0000008a}.mat-paginator-decrement,.mat-paginator-increment{border-top:2px solid rgba(0,0,0,.54);border-right:2px solid rgba(0,0,0,.54)}.mat-paginator-first,.mat-paginator-last{border-top:2px solid rgba(0,0,0,.54)}.mat-icon-button[disabled] .mat-paginator-decrement,.mat-icon-button[disabled] .mat-paginator-increment,.mat-icon-button[disabled] .mat-paginator-first,.mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.mat-paginator-container{min-height:56px}.mat-progress-bar-background{fill:#cbd0e9}.mat-progress-bar-buffer{background-color:#cbd0e9}.mat-progress-bar-fill:after{background-color:#3f51b5}.mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#fbccdc}.mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#fbccdc}.mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#ff4081}.mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#f9ccc9}.mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#f9ccc9}.mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#f44336}.mat-progress-spinner circle,.mat-spinner circle{stroke:#3f51b5}.mat-progress-spinner.mat-accent circle,.mat-spinner.mat-accent circle{stroke:#ff4081}.mat-progress-spinner.mat-warn circle,.mat-spinner.mat-warn circle{stroke:#f44336}.mat-radio-outer-circle{border-color:#0000008a}.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#3f51b5}.mat-radio-button.mat-primary .mat-radio-inner-circle,.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#3f51b5}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#ff4081}.mat-radio-button.mat-accent .mat-radio-inner-circle,.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#ff4081}.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#f44336}.mat-radio-button.mat-warn .mat-radio-inner-circle,.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#f44336}.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle{background-color:#00000061}.mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.mat-radio-button .mat-ripple-element{background-color:#000}.mat-select-value{color:#000000de}.mat-select-placeholder{color:#0000006b}.mat-select-disabled .mat-select-value{color:#00000061}.mat-select-arrow{color:#0000008a}.mat-select-panel{background:#fff}.mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#3f51b5}.mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#ff4081}.mat-form-field.mat-focused.mat-warn .mat-select-arrow,.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#f44336}.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.mat-drawer-container{background-color:#fafafa;color:#000000de}.mat-drawer{background-color:#fff;color:#000000de}.mat-drawer.mat-drawer-push{background-color:#fff}.mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.mat-drawer-side{border-right:solid 1px rgba(0,0,0,.12)}.mat-drawer-side.mat-drawer-end,[dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(0,0,0,.12);border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#ff4081}.mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#ff40818a}.mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#ff4081}.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#3f51b5}.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#3f51b58a}.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#3f51b5}.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#f44336}.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#f443368a}.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#f44336}.mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#fafafa}.mat-slide-toggle-bar{background-color:#00000061}.mat-slider-track-background{background-color:#00000042}.mat-slider.mat-primary .mat-slider-track-fill,.mat-slider.mat-primary .mat-slider-thumb,.mat-slider.mat-primary .mat-slider-thumb-label{background-color:#3f51b5}.mat-slider.mat-primary .mat-slider-thumb-label-text{color:#fff}.mat-slider.mat-primary .mat-slider-focus-ring{background-color:#3f51b533}.mat-slider.mat-accent .mat-slider-track-fill,.mat-slider.mat-accent .mat-slider-thumb,.mat-slider.mat-accent .mat-slider-thumb-label{background-color:#ff4081}.mat-slider.mat-accent .mat-slider-thumb-label-text{color:#fff}.mat-slider.mat-accent .mat-slider-focus-ring{background-color:#ff408133}.mat-slider.mat-warn .mat-slider-track-fill,.mat-slider.mat-warn .mat-slider-thumb,.mat-slider.mat-warn .mat-slider-thumb-label{background-color:#f44336}.mat-slider.mat-warn .mat-slider-thumb-label-text{color:#fff}.mat-slider.mat-warn .mat-slider-focus-ring{background-color:#f4433633}.mat-slider:hover .mat-slider-track-background,.mat-slider.cdk-focused .mat-slider-track-background{background-color:#00000061}.mat-slider.mat-slider-disabled .mat-slider-track-background,.mat-slider.mat-slider-disabled .mat-slider-track-fill,.mat-slider.mat-slider-disabled .mat-slider-thumb,.mat-slider.mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.mat-step-header .mat-step-icon-selected,.mat-step-header .mat-step-icon-state-done,.mat-step-header .mat-step-icon-state-edit{background-color:#3f51b5;color:#fff}.mat-step-header.mat-accent .mat-step-icon{color:#fff}.mat-step-header.mat-accent .mat-step-icon-selected,.mat-step-header.mat-accent .mat-step-icon-state-done,.mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#ff4081;color:#fff}.mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#c5cae94d}.mat-tab-group.mat-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#3f51b5}.mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#ff80ab4d}.mat-tab-group.mat-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#ff4081}.mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#c5cae94d}.mat-tab-group.mat-background-primary>.mat-tab-header,.mat-tab-group.mat-background-primary>.mat-tab-link-container,.mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#3f51b5}.mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#ff80ab4d}.mat-tab-group.mat-background-accent>.mat-tab-header,.mat-tab-group.mat-background-accent>.mat-tab-link-container,.mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#ff4081}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.mat-toolbar.mat-primary{background:#3f51b5;color:#fff}.mat-toolbar.mat-accent{background:#ff4081;color:#fff}.mat-simple-snackbar-action{color:#ff4081}.mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto,Helvetica Neue,sans-serif}.mat-badge-small .mat-badge-content{font-size:9px}.mat-badge-large .mat-badge-content{font-size:24px}.mat-h1,.mat-headline,.mat-typography .mat-h1,.mat-typography .mat-headline,.mat-typography h1{font:400 24px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-title,.mat-typography .mat-h2,.mat-typography .mat-title,.mat-typography h2{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3,.mat-subheading-2,.mat-typography .mat-h3,.mat-typography .mat-subheading-2,.mat-typography h3{font:400 16px/28px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4,.mat-subheading-1,.mat-typography .mat-h4,.mat-typography .mat-subheading-1,.mat-typography h4{font:400 15px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.mat-body-strong,.mat-body-2,.mat-typography .mat-body-strong,.mat-typography .mat-body-2{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-body,.mat-body-1,.mat-typography .mat-body,.mat-typography .mat-body-1,.mat-typography{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-body p,.mat-body-1 p,.mat-typography .mat-body p,.mat-typography .mat-body-1 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-display-4,.mat-typography .mat-display-4{font:300 112px/112px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.05em;margin:0 0 56px}.mat-display-3,.mat-typography .mat-display-3{font:400 56px/56px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.02em;margin:0 0 64px}.mat-display-2,.mat-typography .mat-display-2{font:400 45px/48px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.005em;margin:0 0 64px}.mat-display-1,.mat-typography .mat-display-1{font:400 34px/40px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-button,.mat-raised-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button,.mat-fab,.mat-mini-fab{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-button-toggle,.mat-card{font-family:Roboto,Helvetica Neue,sans-serif}.mat-card-title{font-size:24px;font-weight:500}.mat-card-header .mat-card-title{font-size:20px}.mat-card-subtitle,.mat-card-content{font-size:14px}.mat-checkbox{font-family:Roboto,Helvetica Neue,sans-serif}.mat-checkbox-layout .mat-checkbox-label{line-height:24px}.mat-chip{font-size:14px;font-weight:500}.mat-chip .mat-chip-trailing-icon.mat-icon,.mat-chip .mat-chip-remove.mat-icon{font-size:18px}.mat-table{font-family:Roboto,Helvetica Neue,sans-serif}.mat-header-cell{font-size:12px;font-weight:500}.mat-cell,.mat-footer-cell{font-size:14px}.mat-calendar{font-family:Roboto,Helvetica Neue,sans-serif}.mat-calendar-body{font-size:13px}.mat-calendar-body-label,.mat-calendar-period-button{font-size:14px;font-weight:500}.mat-calendar-table-header th{font-size:11px;font-weight:400}.mat-dialog-title{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-expansion-panel-header{font-family:Roboto,Helvetica Neue,sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-form-field{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-form-field-wrapper{padding-bottom:1.34375em}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{font-size:150%;line-height:1.125}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{height:1.125em;line-height:1.125}.mat-form-field-infix{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34375em) scale(.75);width:133.3333333333%}.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34374em) scale(.75);width:133.3333433333%}.mat-form-field-label-wrapper{top:-.84375em;padding-top:.84375em}.mat-form-field-label{top:1.34375em}.mat-form-field-underline{bottom:1.34375em}.mat-form-field-subscript-wrapper{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy .mat-form-field-wrapper{padding-bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-infix{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);width:133.3333533333%}.mat-form-field-appearance-legacy .mat-form-field-label{top:1.28125em}.mat-form-field-appearance-legacy .mat-form-field-underline{bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28122em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28121em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.2812em) scale(.75)}}.mat-form-field-appearance-fill .mat-form-field-infix{padding:.25em 0 .75em}.mat-form-field-appearance-fill .mat-form-field-label{top:1.09375em;margin-top:-.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59375em) scale(.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59374em) scale(.75);width:133.3333433333%}.mat-form-field-appearance-outline .mat-form-field-infix{padding:1em 0}.mat-form-field-appearance-outline .mat-form-field-label{top:1.84375em;margin-top:-.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59375em) scale(.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59374em) scale(.75);width:133.3333433333%}.mat-grid-tile-header,.mat-grid-tile-footer{font-size:14px}.mat-grid-tile-header .mat-line,.mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header .mat-line:nth-child(n+2),.mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:12px}input.mat-input-element{margin-top:-.0625em}.mat-menu-item{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px}.mat-radio-button,.mat-select{font-family:Roboto,Helvetica Neue,sans-serif}.mat-select-trigger{height:1.125em}.mat-slide-toggle-content{font-family:Roboto,Helvetica Neue,sans-serif}.mat-slider-thumb-label-text{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical,.mat-stepper-horizontal{font-family:Roboto,Helvetica Neue,sans-serif}.mat-step-label{font-size:14px;font-weight:400}.mat-step-sub-label-error{font-weight:400}.mat-step-label-error{font-size:14px}.mat-step-label-selected{font-size:14px;font-weight:500}.mat-tab-group{font-family:Roboto,Helvetica Neue,sans-serif}.mat-tab-label,.mat-tab-link{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0}.mat-tooltip{font-family:Roboto,Helvetica Neue,sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item,.mat-list-option{font-family:Roboto,Helvetica Neue,sans-serif}.mat-list-base .mat-list-item{font-size:16px}.mat-list-base .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-list-option{font-size:16px}.mat-list-base .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense] .mat-list-item{font-size:12px}.mat-list-base[dense] .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-list-option{font-size:12px}.mat-list-base[dense] .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:500}.mat-option{font-family:Roboto,Helvetica Neue,sans-serif;font-size:16px}.mat-optgroup-label{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-simple-snackbar{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px}.mat-simple-snackbar-action{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree{font-family:Roboto,Helvetica Neue,sans-serif}.mat-tree-node,.mat-nested-tree-node{font-weight:400;font-size:14px}.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale(0)}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{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] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{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{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator,.mat-mdc-focus-indicator{position:relative}.mat-ripple-element{background-color:#0000001a}.mat-option{color:#000000de}.mat-option:hover:not(.mat-option-disabled),.mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.mat-option.mat-active{background:rgba(0,0,0,.04);color:#000000de}.mat-option.mat-option-disabled{color:#00000061}.mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#673ab7}.mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#ffd740}.mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#f44336}.mat-optgroup-label{color:#0000008a}.mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.mat-pseudo-checkbox{color:#0000008a}.mat-pseudo-checkbox:after{color:#fafafa}.mat-pseudo-checkbox-disabled{color:#b0b0b0}.mat-primary .mat-pseudo-checkbox-checked,.mat-primary .mat-pseudo-checkbox-indeterminate{background:#673ab7}.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-indeterminate,.mat-accent .mat-pseudo-checkbox-checked,.mat-accent .mat-pseudo-checkbox-indeterminate{background:#ffd740}.mat-warn .mat-pseudo-checkbox-checked,.mat-warn .mat-pseudo-checkbox-indeterminate{background:#f44336}.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.mat-app-background{background-color:#fafafa;color:#000000de}.mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.mat-autocomplete-panel{background:#fff;color:#000000de}.mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#fff}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#000000de}.mat-badge{position:relative}.mat-badge.mat-badge{overflow:visible}.mat-badge-hidden .mat-badge-content{display:none}.mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.ng-animate-disabled .mat-badge-content,.mat-badge-content._mat-animation-noopable{transition:none}.mat-badge-content.mat-badge-active{transform:none}.mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.mat-badge-content{color:#fff;background:#673ab7}.cdk-high-contrast-active .mat-badge-content{outline:solid 1px;border-radius:0}.mat-badge-accent .mat-badge-content{background:#ffd740;color:#000000de}.mat-badge-warn .mat-badge-content{color:#fff;background:#f44336}.mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#fff;color:#000000de}.mat-button,.mat-icon-button,.mat-stroked-button{color:inherit;background:transparent}.mat-button.mat-primary,.mat-icon-button.mat-primary,.mat-stroked-button.mat-primary{color:#673ab7}.mat-button.mat-accent,.mat-icon-button.mat-accent,.mat-stroked-button.mat-accent{color:#ffd740}.mat-button.mat-warn,.mat-icon-button.mat-warn,.mat-stroked-button.mat-warn{color:#f44336}.mat-button.mat-primary.mat-button-disabled,.mat-button.mat-accent.mat-button-disabled,.mat-button.mat-warn.mat-button-disabled,.mat-button.mat-button-disabled.mat-button-disabled,.mat-icon-button.mat-primary.mat-button-disabled,.mat-icon-button.mat-accent.mat-button-disabled,.mat-icon-button.mat-warn.mat-button-disabled,.mat-icon-button.mat-button-disabled.mat-button-disabled,.mat-stroked-button.mat-primary.mat-button-disabled,.mat-stroked-button.mat-accent.mat-button-disabled,.mat-stroked-button.mat-warn.mat-button-disabled,.mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#00000042}.mat-button.mat-primary .mat-button-focus-overlay,.mat-icon-button.mat-primary .mat-button-focus-overlay,.mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#673ab7}.mat-button.mat-accent .mat-button-focus-overlay,.mat-icon-button.mat-accent .mat-button-focus-overlay,.mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#ffd740}.mat-button.mat-warn .mat-button-focus-overlay,.mat-icon-button.mat-warn .mat-button-focus-overlay,.mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#f44336}.mat-button.mat-button-disabled .mat-button-focus-overlay,.mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.mat-button .mat-ripple-element,.mat-icon-button .mat-ripple-element,.mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.mat-button-focus-overlay{background:#000}.mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.mat-flat-button,.mat-raised-button,.mat-fab,.mat-mini-fab{color:#000000de;background-color:#fff}.mat-flat-button.mat-primary,.mat-raised-button.mat-primary,.mat-fab.mat-primary,.mat-mini-fab.mat-primary{color:#fff}.mat-flat-button.mat-accent,.mat-raised-button.mat-accent,.mat-fab.mat-accent,.mat-mini-fab.mat-accent{color:#000000de}.mat-flat-button.mat-warn,.mat-raised-button.mat-warn,.mat-fab.mat-warn,.mat-mini-fab.mat-warn{color:#fff}.mat-flat-button.mat-primary.mat-button-disabled,.mat-flat-button.mat-accent.mat-button-disabled,.mat-flat-button.mat-warn.mat-button-disabled,.mat-flat-button.mat-button-disabled.mat-button-disabled,.mat-raised-button.mat-primary.mat-button-disabled,.mat-raised-button.mat-accent.mat-button-disabled,.mat-raised-button.mat-warn.mat-button-disabled,.mat-raised-button.mat-button-disabled.mat-button-disabled,.mat-fab.mat-primary.mat-button-disabled,.mat-fab.mat-accent.mat-button-disabled,.mat-fab.mat-warn.mat-button-disabled,.mat-fab.mat-button-disabled.mat-button-disabled,.mat-mini-fab.mat-primary.mat-button-disabled,.mat-mini-fab.mat-accent.mat-button-disabled,.mat-mini-fab.mat-warn.mat-button-disabled,.mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#00000042}.mat-flat-button.mat-primary,.mat-raised-button.mat-primary,.mat-fab.mat-primary,.mat-mini-fab.mat-primary{background-color:#673ab7}.mat-flat-button.mat-accent,.mat-raised-button.mat-accent,.mat-fab.mat-accent,.mat-mini-fab.mat-accent{background-color:#ffd740}.mat-flat-button.mat-warn,.mat-raised-button.mat-warn,.mat-fab.mat-warn,.mat-mini-fab.mat-warn{background-color:#f44336}.mat-flat-button.mat-primary.mat-button-disabled,.mat-flat-button.mat-accent.mat-button-disabled,.mat-flat-button.mat-warn.mat-button-disabled,.mat-flat-button.mat-button-disabled.mat-button-disabled,.mat-raised-button.mat-primary.mat-button-disabled,.mat-raised-button.mat-accent.mat-button-disabled,.mat-raised-button.mat-warn.mat-button-disabled,.mat-raised-button.mat-button-disabled.mat-button-disabled,.mat-fab.mat-primary.mat-button-disabled,.mat-fab.mat-accent.mat-button-disabled,.mat-fab.mat-warn.mat-button-disabled,.mat-fab.mat-button-disabled.mat-button-disabled,.mat-mini-fab.mat-primary.mat-button-disabled,.mat-mini-fab.mat-accent.mat-button-disabled,.mat-mini-fab.mat-warn.mat-button-disabled,.mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#0000001f}.mat-flat-button.mat-primary .mat-ripple-element,.mat-raised-button.mat-primary .mat-ripple-element,.mat-fab.mat-primary .mat-ripple-element,.mat-mini-fab.mat-primary .mat-ripple-element{background-color:#ffffff1a}.mat-flat-button.mat-accent .mat-ripple-element,.mat-raised-button.mat-accent .mat-ripple-element,.mat-fab.mat-accent .mat-ripple-element,.mat-mini-fab.mat-accent .mat-ripple-element{background-color:#0000001a}.mat-flat-button.mat-warn .mat-ripple-element,.mat-raised-button.mat-warn .mat-ripple-element,.mat-fab.mat-warn .mat-ripple-element,.mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.mat-stroked-button:not([class*=mat-elevation-z]),.mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-fab:not([class*=mat-elevation-z]),.mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.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}.mat-button-toggle{color:#00000061}.mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.mat-button-toggle-appearance-standard{color:#000000de;background:#fff}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px #e0e0e0}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px #e0e0e0}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px #e0e0e0}.mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.mat-button-toggle-disabled{color:#00000042;background-color:#eee}.mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#fff}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:solid 1px #e0e0e0}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px}.mat-card{background:#fff;color:#000000de}.mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-card-subtitle{color:#0000008a}.mat-checkbox-frame{border-color:#0000008a}.mat-checkbox-checkmark{fill:#fafafa}.mat-checkbox-checkmark-path{stroke:#fafafa!important}.mat-checkbox-mixedmark{background-color:#fafafa}.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#673ab7}.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#ffd740}.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.mat-checkbox-checked.mat-warn .mat-checkbox-background{background-color:#f44336}.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.mat-checkbox-disabled .mat-checkbox-label{color:#00000061}.mat-checkbox .mat-ripple-element{background-color:#000}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#673ab7}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#ffd740}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#f44336}.mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.mat-chip.mat-standard-chip:after{background:#000}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#673ab7;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#f44336;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#ffd740;color:#000000de}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#000000de;opacity:.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#0000001a}.mat-table{background:#fff}.mat-table thead,.mat-table tbody,.mat-table tfoot,mat-header-row,mat-row,mat-footer-row,[mat-header-row],[mat-row],[mat-footer-row],.mat-table-sticky{background:inherit}mat-row,mat-header-row,mat-footer-row,th.mat-header-cell,td.mat-cell,td.mat-footer-cell{border-bottom-color:#0000001f}.mat-header-cell{color:#0000008a}.mat-cell,.mat-footer-cell{color:#000000de}.mat-calendar-arrow{fill:#0000008a}.mat-datepicker-toggle,.mat-datepicker-content .mat-calendar-next-button,.mat-datepicker-content .mat-calendar-previous-button{color:#0000008a}.mat-calendar-table-header-divider:after{background:rgba(0,0,0,.12)}.mat-calendar-table-header,.mat-calendar-body-label{color:#0000008a}.mat-calendar-body-cell-content,.mat-date-range-input-separator{color:#000000de;border-color:transparent}.mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:#00000061}.mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.mat-calendar-body-in-preview{color:#0000003d}.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.mat-calendar-body-in-range:before{background:rgba(103,58,183,.2)}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.mat-calendar-body-comparison-bridge-start:before,[dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(103,58,183,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-calendar-body-comparison-bridge-end:before,[dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(103,58,183,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.mat-calendar-body-selected{background-color:#673ab7;color:#fff}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#673ab766}.mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#673ab74d}@media (hover: hover){.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#673ab74d}}.mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#fff;color:#000000de}.mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(255,215,64,.2)}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(255,215,64,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(255,215,64,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#ffd740;color:#000000de}.mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ffd74066}.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #000000de}.mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ffd7404d}@media (hover: hover){.mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ffd7404d}}.mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(244,67,54,.2)}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(244,67,54,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(244,67,54,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#f44336;color:#fff}.mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#f4433666}.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#f443364d}@media (hover: hover){.mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#f443364d}}.mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-datepicker-toggle-active{color:#673ab7}.mat-datepicker-toggle-active.mat-accent{color:#ffd740}.mat-datepicker-toggle-active.mat-warn{color:#f44336}.mat-date-range-input-inner[disabled]{color:#00000061}.mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#fff;color:#000000de}.mat-divider{border-top-color:#0000001f}.mat-divider-vertical{border-right-color:#0000001f}.mat-expansion-panel{background:#fff;color:#000000de}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mat-action-row{border-top-color:#0000001f}.mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#fff}}.mat-expansion-panel-header-title{color:#000000de}.mat-expansion-panel-header-description,.mat-expansion-indicator:after{color:#0000008a}.mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.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{height:48px}.mat-expansion-panel-header.mat-expanded{height:64px}.mat-form-field-label,.mat-hint{color:#0009}.mat-form-field.mat-focused .mat-form-field-label{color:#673ab7}.mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#ffd740}.mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#f44336}.mat-focused .mat-form-field-required-marker{color:#ffd740}.mat-form-field-ripple{background-color:#000000de}.mat-form-field.mat-focused .mat-form-field-ripple{background-color:#673ab7}.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#ffd740}.mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#f44336}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#673ab7}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#ffd740}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#f44336}.mat-form-field.mat-form-field-invalid .mat-form-field-label,.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#f44336}.mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#f44336}.mat-error{color:#f44336}.mat-form-field-appearance-legacy .mat-form-field-label,.mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#673ab7}.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#ffd740}.mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#f44336}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.mat-icon.mat-primary{color:#673ab7}.mat-icon.mat-accent{color:#ffd740}.mat-icon.mat-warn{color:#f44336}.mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.mat-input-element:disabled,.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after{color:#00000061}.mat-input-element{caret-color:#673ab7}.mat-input-element::placeholder{color:#0000006b}.mat-input-element::-moz-placeholder{color:#0000006b}.mat-input-element::-webkit-input-placeholder{color:#0000006b}.mat-input-element:-ms-input-placeholder{color:#0000006b}.mat-form-field.mat-accent .mat-input-element{caret-color:#ffd740}.mat-form-field.mat-warn .mat-input-element,.mat-form-field-invalid .mat-input-element{caret-color:#f44336}.mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#f44336}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{color:#000000de}.mat-list-base .mat-subheader{color:#0000008a}.mat-list-base .mat-list-item-disabled{background-color:#eee;color:#00000061}.mat-list-option:hover,.mat-list-option:focus,.mat-nav-list .mat-list-item:hover,.mat-nav-list .mat-list-item:focus,.mat-action-list .mat-list-item:hover,.mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.mat-list-single-selected-option,.mat-list-single-selected-option:hover,.mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.mat-menu-panel{background:#fff}.mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.mat-menu-item{background:transparent;color:#000000de}.mat-menu-item[disabled],.mat-menu-item[disabled] .mat-menu-submenu-icon,.mat-menu-item[disabled] .mat-icon-no-color{color:#00000061}.mat-menu-item .mat-icon-no-color,.mat-menu-submenu-icon{color:#0000008a}.mat-menu-item:hover:not([disabled]),.mat-menu-item.cdk-program-focused:not([disabled]),.mat-menu-item.cdk-keyboard-focused:not([disabled]),.mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.mat-paginator{background:#fff}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{color:#0000008a}.mat-paginator-decrement,.mat-paginator-increment{border-top:2px solid rgba(0,0,0,.54);border-right:2px solid rgba(0,0,0,.54)}.mat-paginator-first,.mat-paginator-last{border-top:2px solid rgba(0,0,0,.54)}.mat-icon-button[disabled] .mat-paginator-decrement,.mat-icon-button[disabled] .mat-paginator-increment,.mat-icon-button[disabled] .mat-paginator-first,.mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.mat-paginator-container{min-height:56px}.mat-progress-bar-background{fill:#d5cae9}.mat-progress-bar-buffer{background-color:#d5cae9}.mat-progress-bar-fill:after{background-color:#673ab7}.mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#fbf1cc}.mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#fbf1cc}.mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#ffd740}.mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#f9ccc9}.mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#f9ccc9}.mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#f44336}.mat-progress-spinner circle,.mat-spinner circle{stroke:#673ab7}.mat-progress-spinner.mat-accent circle,.mat-spinner.mat-accent circle{stroke:#ffd740}.mat-progress-spinner.mat-warn circle,.mat-spinner.mat-warn circle{stroke:#f44336}.mat-radio-outer-circle{border-color:#0000008a}.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#673ab7}.mat-radio-button.mat-primary .mat-radio-inner-circle,.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#673ab7}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#ffd740}.mat-radio-button.mat-accent .mat-radio-inner-circle,.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#ffd740}.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#f44336}.mat-radio-button.mat-warn .mat-radio-inner-circle,.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#f44336}.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle{background-color:#00000061}.mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.mat-radio-button .mat-ripple-element{background-color:#000}.mat-select-value{color:#000000de}.mat-select-placeholder{color:#0000006b}.mat-select-disabled .mat-select-value{color:#00000061}.mat-select-arrow{color:#0000008a}.mat-select-panel{background:#fff}.mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#673ab7}.mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#ffd740}.mat-form-field.mat-focused.mat-warn .mat-select-arrow,.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#f44336}.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.mat-drawer-container{background-color:#fafafa;color:#000000de}.mat-drawer{background-color:#fff;color:#000000de}.mat-drawer.mat-drawer-push{background-color:#fff}.mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.mat-drawer-side{border-right:solid 1px rgba(0,0,0,.12)}.mat-drawer-side.mat-drawer-end,[dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(0,0,0,.12);border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#ffd740}.mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#ffd7408a}.mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#ffd740}.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#673ab7}.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#673ab78a}.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#673ab7}.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#f44336}.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#f443368a}.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#f44336}.mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#fafafa}.mat-slide-toggle-bar{background-color:#00000061}.mat-slider-track-background{background-color:#00000042}.mat-slider.mat-primary .mat-slider-track-fill,.mat-slider.mat-primary .mat-slider-thumb,.mat-slider.mat-primary .mat-slider-thumb-label{background-color:#673ab7}.mat-slider.mat-primary .mat-slider-thumb-label-text{color:#fff}.mat-slider.mat-primary .mat-slider-focus-ring{background-color:#673ab733}.mat-slider.mat-accent .mat-slider-track-fill,.mat-slider.mat-accent .mat-slider-thumb,.mat-slider.mat-accent .mat-slider-thumb-label{background-color:#ffd740}.mat-slider.mat-accent .mat-slider-thumb-label-text{color:#000000de}.mat-slider.mat-accent .mat-slider-focus-ring{background-color:#ffd74033}.mat-slider.mat-warn .mat-slider-track-fill,.mat-slider.mat-warn .mat-slider-thumb,.mat-slider.mat-warn .mat-slider-thumb-label{background-color:#f44336}.mat-slider.mat-warn .mat-slider-thumb-label-text{color:#fff}.mat-slider.mat-warn .mat-slider-focus-ring{background-color:#f4433633}.mat-slider:hover .mat-slider-track-background,.mat-slider.cdk-focused .mat-slider-track-background{background-color:#00000061}.mat-slider.mat-slider-disabled .mat-slider-track-background,.mat-slider.mat-slider-disabled .mat-slider-track-fill,.mat-slider.mat-slider-disabled .mat-slider-thumb,.mat-slider.mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.mat-slider.mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.mat-slider.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.mat-slider.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.mat-slider.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.mat-slider.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.mat-slider.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:transparent}.mat-slider.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.mat-slider.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#00000061}.mat-slider.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.mat-slider.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused,.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.mat-step-header:hover{background:none}}.mat-step-header .mat-step-label,.mat-step-header .mat-step-optional{color:#0000008a}.mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.mat-step-header .mat-step-icon-selected,.mat-step-header .mat-step-icon-state-done,.mat-step-header .mat-step-icon-state-edit{background-color:#673ab7;color:#fff}.mat-step-header.mat-accent .mat-step-icon{color:#000000de}.mat-step-header.mat-accent .mat-step-icon-selected,.mat-step-header.mat-accent .mat-step-icon-state-done,.mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#ffd740;color:#000000de}.mat-step-header.mat-warn .mat-step-icon{color:#fff}.mat-step-header.mat-warn .mat-step-icon-selected,.mat-step-header.mat-warn .mat-step-icon-state-done,.mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#f44336;color:#fff}.mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#f44336}.mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.mat-step-header .mat-step-label.mat-step-label-error{color:#f44336}.mat-stepper-horizontal,.mat-stepper-vertical{background-color:#fff}.mat-stepper-vertical-line:before{border-left-color:#0000001f}.mat-horizontal-stepper-header:before,.mat-horizontal-stepper-header:after,.mat-stepper-horizontal-line{border-top-color:#0000001f}.mat-horizontal-stepper-header{height:72px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header,.mat-vertical-stepper-header{padding:24px}.mat-stepper-vertical-line:before{top:-16px;bottom:-16px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:after,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:before{top:36px}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{top:36px}.mat-sort-header-arrow{color:#757575}.mat-tab-nav-bar,.mat-tab-header{border-bottom:1px solid rgba(0,0,0,.12)}.mat-tab-group-inverted-header .mat-tab-nav-bar,.mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(0,0,0,.12);border-bottom:none}.mat-tab-label,.mat-tab-link{color:#000000de}.mat-tab-label.mat-tab-disabled,.mat-tab-link.mat-tab-disabled{color:#00000061}.mat-tab-header-pagination-chevron{border-color:#000000de}.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.mat-tab-group[class*=mat-background-]>.mat-tab-header,.mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#d1c4e94d}.mat-tab-group.mat-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#673ab7}.mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#ffe57f4d}.mat-tab-group.mat-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#ffd740}.mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#000000de}.mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#ffcdd24d}.mat-tab-group.mat-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#f44336}.mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#d1c4e94d}.mat-tab-group.mat-background-primary>.mat-tab-header,.mat-tab-group.mat-background-primary>.mat-tab-link-container,.mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#673ab7}.mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#ffe57f4d}.mat-tab-group.mat-background-accent>.mat-tab-header,.mat-tab-group.mat-background-accent>.mat-tab-link-container,.mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#ffd740}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#000000de}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#0006}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#000000de}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#000;opacity:.4}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#000;opacity:.12}.mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#ffcdd24d}.mat-tab-group.mat-background-warn>.mat-tab-header,.mat-tab-group.mat-background-warn>.mat-tab-link-container,.mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#f44336}.mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.mat-toolbar{background:#f5f5f5;color:#000000de}.mat-toolbar.mat-primary{background:#673ab7;color:#fff}.mat-toolbar.mat-accent{background:#ffd740;color:#000000de}.mat-toolbar.mat-warn{background:#f44336;color:#fff}.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-multiple-rows{min-height:64px}.mat-toolbar-row,.mat-toolbar-single-row{height:64px}@media (max-width: 599px){.mat-toolbar-multiple-rows{min-height:56px}.mat-toolbar-row,.mat-toolbar-single-row{height:56px}}.mat-tooltip{background:rgba(97,97,97,.9)}.mat-tree{background:#fff}.mat-tree-node,.mat-nested-tree-node{color:#000000de}.mat-tree-node{min-height:48px}.mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.mat-simple-snackbar-action{color:#ffd740}html,body{height:100%}body{margin:0;font-family:Roboto,Helvetica Neue,sans-serif}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(mat-icon-font.d36bf6bfd46ff3bb.woff2) format("woff2")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased}
diff --git a/package.json b/package.json
index e7134c03bc9a335100912388d570fd3554ff11ab..80ae1617b118dfadf1ed17a285a7f29666793562 100644
--- a/package.json
+++ b/package.json
@@ -26,6 +26,21 @@
 		"Snippets"
 	],
 	"contributes": {
+		"commands": [
+			{
+				"command": "lua.psi.view",
+				"title": "Lua Psi Viewer"
+			}
+		],
+		"menus": {
+			"editor/context": [
+				{
+					"when": "resourceLangId == lua",
+					"command": "lua.psi.view",
+					"group": "z_commands"
+				}
+			]
+		},
 		"configuration": {
 			"properties": {
 				"Lua.completion.autoRequire": {
diff --git a/package/package.lua b/package/package.lua
index 89716a629657ccc64f23f70a42b7b8b7ddaa6c72..8e8d9673b253f189de41b31d9a948098c3d4c1c8 100644
--- a/package/package.lua
+++ b/package/package.lua
@@ -33,6 +33,21 @@ return {
     },
     main = "./client/out/extension",
     contributes = {
+        commands = {
+            {
+                command = "lua.psi.view",
+                title = "Lua Psi Viewer"
+            }
+        },
+        menus = {
+            ["editor/context"] = {
+                {
+                    when = "resourceLangId == lua",
+                    command = "lua.psi.view",
+                    group = "z_commands"
+                }
+            }
+        },
         configuration = {
             type = "object",
             title = "Lua",
diff --git a/publish.lua b/publish.lua
index afbad958344ffc9f9718379a681ff46a869e3803..4a736f96170688153d2fe6b08973dc466074a01d 100644
--- a/publish.lua
+++ b/publish.lua
@@ -136,6 +136,7 @@ local count = copyFiles(ROOT , out) {
                 ['extension.js']    = true,
             },
         },
+        ['web']               = true
     },
     ['server'] = {
         ['bin']               = true,