@lowcodeunit/applications-flow-common 1.37.96-custom-domain-checks → 1.37.99-devops-loading-logic
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/dialogs/custom-domain-dialog/custom-domain-dialog.component.mjs +10 -20
- package/esm2020/lib/elements/dashboard-toolbar/dashboard-toolbar.component.mjs +6 -3
- package/esm2020/lib/elements/project-card/project-card.component.mjs +4 -5
- package/esm2020/lib/elements/projects/controls/tabs/domains/domains.component.mjs +6 -26
- package/fesm2015/lowcodeunit-applications-flow-common.mjs +17 -44
- package/fesm2015/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/fesm2020/lowcodeunit-applications-flow-common.mjs +17 -44
- package/fesm2020/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/lib/dialogs/custom-domain-dialog/custom-domain-dialog.component.d.ts +1 -5
- package/lib/elements/dashboard-toolbar/dashboard-toolbar.component.d.ts +2 -1
- package/lib/elements/projects/controls/tabs/domains/domains.component.d.ts +2 -4
- package/package.json +1 -1
@@ -2,16 +2,14 @@ import { Component, Inject } from '@angular/core';
|
|
2
2
|
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
import * as i1 from "@angular/material/dialog";
|
5
|
-
import * as i2 from "@angular/material/
|
6
|
-
import * as i3 from "@angular/material/
|
7
|
-
import * as i4 from "
|
8
|
-
import * as i5 from "
|
9
|
-
import * as i6 from "@angular/flex-layout/flex";
|
5
|
+
import * as i2 from "@angular/material/button";
|
6
|
+
import * as i3 from "@angular/material/icon";
|
7
|
+
import * as i4 from "../../elements/projects/controls/tabs/domains/domains.component";
|
8
|
+
import * as i5 from "@angular/flex-layout/flex";
|
10
9
|
export class CustomDomainDialogComponent {
|
11
|
-
constructor(dialogRef, data
|
10
|
+
constructor(dialogRef, data) {
|
12
11
|
this.dialogRef = dialogRef;
|
13
12
|
this.data = data;
|
14
|
-
this.snackBar = snackBar;
|
15
13
|
this.DomainData = {
|
16
14
|
Hosts: this.data.hosts,
|
17
15
|
PrimaryHost: this.data.primaryHost,
|
@@ -23,22 +21,14 @@ export class CustomDomainDialogComponent {
|
|
23
21
|
CloseDialog() {
|
24
22
|
this.dialogRef.close();
|
25
23
|
}
|
26
|
-
HandleResultEvent(event) {
|
27
|
-
if (event.Code === 0) {
|
28
|
-
this.snackBar.open('Custom Domain Succesfully Created', 'Dismiss', {
|
29
|
-
duration: 5000,
|
30
|
-
});
|
31
|
-
this.CloseDialog();
|
32
|
-
}
|
33
|
-
}
|
34
24
|
}
|
35
|
-
CustomDomainDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CustomDomainDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }
|
36
|
-
CustomDomainDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: CustomDomainDialogComponent, selector: "lcu-custom-domain-dialog", ngImport: i0, template: "<!-- <div class=\"dialog-header\" fxLayoutAlign=\"end center\">\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div> -->\n\n<!-- NEW BELOW -->\n<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Custom Domain</h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-domains [data]=\"DomainData\"
|
25
|
+
CustomDomainDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CustomDomainDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
26
|
+
CustomDomainDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: CustomDomainDialogComponent, selector: "lcu-custom-domain-dialog", ngImport: i0, template: "<!-- <div class=\"dialog-header\" fxLayoutAlign=\"end center\">\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div> -->\n\n<!-- NEW BELOW -->\n<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Custom Domain</h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-domains [data]=\"DomainData\"> </lcu-domains>\n\n <!-- <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\" >\n {{ ErrorMessage }}\n </mat-error> -->\n</mat-dialog-content>\n\n<!-- <mat-dialog-actions \n class=\"actions-container\" \n div fxLayout=\"row\" \n fxLayoutAlign=\"end center\"\n>\n <button \n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\">\n Cancel\n\n </button>\n\n\n\n <button \n *ngIf=\"!State?.Loading\"\n mat-raised-button \n type=\"submit\" \n fxFlex=\"25%\" \n color=\"primary\" \n (click)=\"SaveCustomDomain()\"\n [disabled]=\"!BuildPipelineFormGroup?.valid || !BuildPipelineFormGroup?.dirty\">\n Save\n </button>\n\n</mat-dialog-actions> -->\n", styles: [""], components: [{ type: i2.MatButton, selector: "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]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.DomainsComponent, selector: "lcu-domains", inputs: ["data"] }], directives: [{ type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] });
|
37
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CustomDomainDialogComponent, decorators: [{
|
38
28
|
type: Component,
|
39
|
-
args: [{ selector: 'lcu-custom-domain-dialog', template: "<!-- <div class=\"dialog-header\" fxLayoutAlign=\"end center\">\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div> -->\n\n<!-- NEW BELOW -->\n<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Custom Domain</h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-domains [data]=\"DomainData\"
|
29
|
+
args: [{ selector: 'lcu-custom-domain-dialog', template: "<!-- <div class=\"dialog-header\" fxLayoutAlign=\"end center\">\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div> -->\n\n<!-- NEW BELOW -->\n<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Custom Domain</h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-domains [data]=\"DomainData\"> </lcu-domains>\n\n <!-- <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\" >\n {{ ErrorMessage }}\n </mat-error> -->\n</mat-dialog-content>\n\n<!-- <mat-dialog-actions \n class=\"actions-container\" \n div fxLayout=\"row\" \n fxLayoutAlign=\"end center\"\n>\n <button \n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\">\n Cancel\n\n </button>\n\n\n\n <button \n *ngIf=\"!State?.Loading\"\n mat-raised-button \n type=\"submit\" \n fxFlex=\"25%\" \n color=\"primary\" \n (click)=\"SaveCustomDomain()\"\n [disabled]=\"!BuildPipelineFormGroup?.valid || !BuildPipelineFormGroup?.dirty\">\n Save\n </button>\n\n</mat-dialog-actions> -->\n", styles: [""] }]
|
40
30
|
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
41
31
|
type: Inject,
|
42
32
|
args: [MAT_DIALOG_DATA]
|
43
|
-
}] }
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
33
|
+
}] }]; } });
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRvbWFpbi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZGlhbG9ncy9jdXN0b20tZG9tYWluLWRpYWxvZy9jdXN0b20tZG9tYWluLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL2N1c3RvbS1kb21haW4tZGlhbG9nL2N1c3RvbS1kb21haW4tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBZXpFLE1BQU0sT0FBTywyQkFBMkI7SUFHcEMsWUFDVyxTQUFvRCxFQUMzQixJQUFrQjtRQUQzQyxjQUFTLEdBQVQsU0FBUyxDQUEyQztRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFjO1FBRWxELElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDZCxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQ3RCLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFDbEMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUMxQixhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO1NBQ3pDLENBQUM7SUFDTixDQUFDO0lBRU0sUUFBUSxLQUFVLENBQUM7SUFFbkIsV0FBVztRQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7d0hBbkJRLDJCQUEyQiw4Q0FLeEIsZUFBZTs0R0FMbEIsMkJBQTJCLGdFQ2hCeEMsKzNDQW1EQTsyRkRuQ2EsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNJLDBCQUEwQjs7MEJBUy9CLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgRWFDSG9zdCwgRWFDUHJvamVjdEFzQ29kZSB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ0REaWFsb2dEYXRhIHtcbiAgICBob3N0czogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNIb3N0IH07XG4gICAgcHJpbWFyeUhvc3Q6IHN0cmluZztcbiAgICBwcm9qZWN0OiBFYUNQcm9qZWN0QXNDb2RlO1xuICAgIHByb2plY3RMb29rdXA6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsY3UtY3VzdG9tLWRvbWFpbi1kaWFsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tZG9tYWluLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tLWRvbWFpbi1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tRG9tYWluRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwdWJsaWMgRG9tYWluRGF0YToge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEN1c3RvbURvbWFpbkRpYWxvZ0NvbXBvbmVudD4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogQ0REaWFsb2dEYXRhXG4gICAgKSB7XG4gICAgICAgIHRoaXMuRG9tYWluRGF0YSA9IHtcbiAgICAgICAgICAgIEhvc3RzOiB0aGlzLmRhdGEuaG9zdHMsXG4gICAgICAgICAgICBQcmltYXJ5SG9zdDogdGhpcy5kYXRhLnByaW1hcnlIb3N0LFxuICAgICAgICAgICAgUHJvamVjdDogdGhpcy5kYXRhLnByb2plY3QsXG4gICAgICAgICAgICBQcm9qZWN0TG9va3VwOiB0aGlzLmRhdGEucHJvamVjdExvb2t1cCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgcHVibGljIENsb3NlRGlhbG9nKCkge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIH1cbn1cbiIsIjwhLS0gPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIiBmeExheW91dEFsaWduPVwiZW5kIGNlbnRlclwiPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJDbG9zZURpYWxvZygpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PiAtLT5cblxuPCEtLSBORVcgQkVMT1cgLS0+XG48ZGl2IGNsYXNzPVwiZGlhbG9nLWhlYWRlclwiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiPlxuICAgIDxoMiBtYXQtZGlhbG9nLXRpdGxlPkN1c3RvbSBEb21haW48L2gyPlxuXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIkNsb3NlRGlhbG9nKClcIj5cbiAgICAgICAgPG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cblxuPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8bGN1LWRvbWFpbnMgW2RhdGFdPVwiRG9tYWluRGF0YVwiPiA8L2xjdS1kb21haW5zPlxuXG4gICAgPCEtLSA8bWF0LWVycm9yICpuZ0lmPVwiRXJyb3JNZXNzYWdlXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiA+XG4gICAgICAgIHt7IEVycm9yTWVzc2FnZSB9fVxuICAgIDwvbWF0LWVycm9yPiAtLT5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48IS0tIDxtYXQtZGlhbG9nLWFjdGlvbnMgXG4gICAgICAgIGNsYXNzPVwiYWN0aW9ucy1jb250YWluZXJcIiBcbiAgICAgICAgZGl2IGZ4TGF5b3V0PVwicm93XCIgXG4gICAgICAgIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCJcbj5cbiAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1idXR0b25cIlxuICAgICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgZnhGbGV4PVwiMjUlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiQ2xvc2VEaWFsb2coKVwiPlxuICAgICAgICAgICAgICAgIENhbmNlbFxuXG4gICAgICAgIDwvYnV0dG9uPlxuXG5cblxuICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICpuZ0lmPVwiIVN0YXRlPy5Mb2FkaW5nXCJcbiAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvbiBcbiAgICAgICAgICB0eXBlPVwic3VibWl0XCIgXG4gICAgICAgICAgZnhGbGV4PVwiMjUlXCIgXG4gICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCIgXG4gICAgICAgICAgKGNsaWNrKT1cIlNhdmVDdXN0b21Eb21haW4oKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFCdWlsZFBpcGVsaW5lRm9ybUdyb3VwPy52YWxpZCB8fCAhQnVpbGRQaXBlbGluZUZvcm1Hcm91cD8uZGlydHlcIj5cbiAgICAgICAgICBTYXZlXG4gICAgICAgIDwvYnV0dG9uPlxuXG48L21hdC1kaWFsb2ctYWN0aW9ucz4gLS0+XG4iXX0=
|
@@ -24,12 +24,15 @@ export class DashboardToolbarComponent {
|
|
24
24
|
}
|
25
25
|
}
|
26
26
|
DashboardToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DashboardToolbarComponent, deps: [{ token: i1.BreakpointObserver }, { token: i2.EaCService }], target: i0.ɵɵFactoryTarget.Component });
|
27
|
-
DashboardToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: DashboardToolbarComponent, selector: "lcu-dashboard-toolbar", inputs: { ProjectLookups: ["project-lookups", "ProjectLookups"] }, ngImport: i0, template: "<mat-toolbar class=\"dashboard-toolbar\">\n <ng-container>\n <a class=\"toolbar-item\" href=\"/dashboard/enterprise\">Overview</a>\n <div class=\"vl\"></div>\n\n <a class=\"toolbar-item\" href=\"/dashboard/projects\">Projects</a>\n <div class=\"vl\"></div>\n\n <a class=\"toolbar-item\" href=\"/dashboard/teams\">Teams</a>\n <div class=\"vl\"></div>\n\n <a\n *ngIf=\"ProjectLookups?.length > 0\"\n class=\"toolbar-item\"\n href=\"/dashboard/devops\"\n >DevOps</a\n >\n <a\n *ngIf=\"ProjectLookups?.length <= 0\"\n matTooltip=\"Add a project to unlock this feature\"\n class=\"toolbar-item disabled\"\n >DevOps</a\n >\n <div class=\"vl\"></div>\n\n <!-- <span>Domains</span> -->\n <a class=\"toolbar-item\" href=\"/dashboard/modifiers\">Mods</a>\n <!-- <span>Manage (krakyn)</span> -->\n </ng-container>\n\n <!-- <ng-container >\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"menu\">\n <mat-icon>more_horiz</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/enterprise\">Overview</a>\n\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/projects\">Projects</a>\n\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/teams\">Teams</a>\n\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/devops\">DevOps</a>\n\n <span>Domains</span>\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/modifiers\">Mods</a>\n <span>Manage (krakyn)</span>\n \n </mat-menu>\n\n </ng-container> -->\n</mat-toolbar>\n", styles: [".dashboard-toolbar{background-color:#fff}.toolbar-item{margin:10px;text-decoration:none;color:#000}.vl{border-left:2px solid black;height:20px}.disabled{color:gray}@media only screen and (max-width: 959px){.dashboard-toolbar{height:45px}.toolbar-item{font-size:12px}.vl{border-left:1px solid black}}\n"], components: [{ type: i3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
27
|
+
DashboardToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: DashboardToolbarComponent, selector: "lcu-dashboard-toolbar", inputs: { ProjectLookups: ["project-lookups", "ProjectLookups"], Loading: ["loading", "Loading"] }, ngImport: i0, template: "<mat-toolbar class=\"dashboard-toolbar\">\n <ng-container>\n <a class=\"toolbar-item\" href=\"/dashboard/enterprise\">Overview</a>\n <div class=\"vl\"></div>\n\n <a class=\"toolbar-item\" href=\"/dashboard/projects\">Projects</a>\n <div class=\"vl\"></div>\n\n <a class=\"toolbar-item\" href=\"/dashboard/teams\">Teams</a>\n <div class=\"vl\"></div>\n\n <a\n *ngIf=\"ProjectLookups?.length > 0 || Loading\"\n class=\"toolbar-item\"\n href=\"/dashboard/devops\"\n >DevOps</a\n >\n <a\n *ngIf=\"ProjectLookups?.length <= 0 && !Loading\"\n matTooltip=\"Add a project to unlock this feature\"\n class=\"toolbar-item disabled\"\n >DevOps</a\n >\n <div class=\"vl\"></div>\n\n <!-- <span>Domains</span> -->\n <a class=\"toolbar-item\" href=\"/dashboard/modifiers\">Mods</a>\n <!-- <span>Manage (krakyn)</span> -->\n </ng-container>\n\n <!-- <ng-container >\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"menu\">\n <mat-icon>more_horiz</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/enterprise\">Overview</a>\n\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/projects\">Projects</a>\n\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/teams\">Teams</a>\n\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/devops\">DevOps</a>\n\n <span>Domains</span>\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/modifiers\">Mods</a>\n <span>Manage (krakyn)</span>\n \n </mat-menu>\n\n </ng-container> -->\n</mat-toolbar>\n", styles: [".dashboard-toolbar{background-color:#fff}.toolbar-item{margin:10px;text-decoration:none;color:#000}.vl{border-left:2px solid black;height:20px}.disabled{color:gray}@media only screen and (max-width: 959px){.dashboard-toolbar{height:45px}.toolbar-item{font-size:12px}.vl{border-left:1px solid black}}\n"], components: [{ type: i3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
28
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DashboardToolbarComponent, decorators: [{
|
29
29
|
type: Component,
|
30
|
-
args: [{ selector: 'lcu-dashboard-toolbar', template: "<mat-toolbar class=\"dashboard-toolbar\">\n <ng-container>\n <a class=\"toolbar-item\" href=\"/dashboard/enterprise\">Overview</a>\n <div class=\"vl\"></div>\n\n <a class=\"toolbar-item\" href=\"/dashboard/projects\">Projects</a>\n <div class=\"vl\"></div>\n\n <a class=\"toolbar-item\" href=\"/dashboard/teams\">Teams</a>\n <div class=\"vl\"></div>\n\n <a\n *ngIf=\"ProjectLookups?.length > 0\"\n class=\"toolbar-item\"\n href=\"/dashboard/devops\"\n >DevOps</a\n >\n <a\n *ngIf=\"ProjectLookups?.length <= 0\"\n matTooltip=\"Add a project to unlock this feature\"\n class=\"toolbar-item disabled\"\n >DevOps</a\n >\n <div class=\"vl\"></div>\n\n <!-- <span>Domains</span> -->\n <a class=\"toolbar-item\" href=\"/dashboard/modifiers\">Mods</a>\n <!-- <span>Manage (krakyn)</span> -->\n </ng-container>\n\n <!-- <ng-container >\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"menu\">\n <mat-icon>more_horiz</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/enterprise\">Overview</a>\n\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/projects\">Projects</a>\n\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/teams\">Teams</a>\n\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/devops\">DevOps</a>\n\n <span>Domains</span>\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/modifiers\">Mods</a>\n <span>Manage (krakyn)</span>\n \n </mat-menu>\n\n </ng-container> -->\n</mat-toolbar>\n", styles: [".dashboard-toolbar{background-color:#fff}.toolbar-item{margin:10px;text-decoration:none;color:#000}.vl{border-left:2px solid black;height:20px}.disabled{color:gray}@media only screen and (max-width: 959px){.dashboard-toolbar{height:45px}.toolbar-item{font-size:12px}.vl{border-left:1px solid black}}\n"] }]
|
30
|
+
args: [{ selector: 'lcu-dashboard-toolbar', template: "<mat-toolbar class=\"dashboard-toolbar\">\n <ng-container>\n <a class=\"toolbar-item\" href=\"/dashboard/enterprise\">Overview</a>\n <div class=\"vl\"></div>\n\n <a class=\"toolbar-item\" href=\"/dashboard/projects\">Projects</a>\n <div class=\"vl\"></div>\n\n <a class=\"toolbar-item\" href=\"/dashboard/teams\">Teams</a>\n <div class=\"vl\"></div>\n\n <a\n *ngIf=\"ProjectLookups?.length > 0 || Loading\"\n class=\"toolbar-item\"\n href=\"/dashboard/devops\"\n >DevOps</a\n >\n <a\n *ngIf=\"ProjectLookups?.length <= 0 && !Loading\"\n matTooltip=\"Add a project to unlock this feature\"\n class=\"toolbar-item disabled\"\n >DevOps</a\n >\n <div class=\"vl\"></div>\n\n <!-- <span>Domains</span> -->\n <a class=\"toolbar-item\" href=\"/dashboard/modifiers\">Mods</a>\n <!-- <span>Manage (krakyn)</span> -->\n </ng-container>\n\n <!-- <ng-container >\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"menu\">\n <mat-icon>more_horiz</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/enterprise\">Overview</a>\n\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/projects\">Projects</a>\n\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/teams\">Teams</a>\n\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/devops\">DevOps</a>\n\n <span>Domains</span>\n <a class=\"toolbar-item\" mat-menu-item href=\"/dashboard/modifiers\">Mods</a>\n <span>Manage (krakyn)</span>\n \n </mat-menu>\n\n </ng-container> -->\n</mat-toolbar>\n", styles: [".dashboard-toolbar{background-color:#fff}.toolbar-item{margin:10px;text-decoration:none;color:#000}.vl{border-left:2px solid black;height:20px}.disabled{color:gray}@media only screen and (max-width: 959px){.dashboard-toolbar{height:45px}.toolbar-item{font-size:12px}.vl{border-left:1px solid black}}\n"] }]
|
31
31
|
}], ctorParameters: function () { return [{ type: i1.BreakpointObserver }, { type: i2.EaCService }]; }, propDecorators: { ProjectLookups: [{
|
32
32
|
type: Input,
|
33
33
|
args: ['project-lookups']
|
34
|
+
}], Loading: [{
|
35
|
+
type: Input,
|
36
|
+
args: ['loading']
|
34
37
|
}] } });
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvZGFzaGJvYXJkLXRvb2xiYXIvZGFzaGJvYXJkLXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvZGFzaGJvYXJkLXRvb2xiYXIvZGFzaGJvYXJkLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFRekQsTUFBTSxPQUFPLHlCQUF5QjtJQWtCbEMsWUFDVyxrQkFBc0MsRUFDbkMsTUFBa0I7UUFEckIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNuQyxXQUFNLEdBQU4sTUFBTSxDQUFZO0lBQzdCLENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxDQUFDLGtCQUFrQjthQUNsQixPQUFPLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2FBQy9CLFNBQVMsQ0FBQyxDQUFDLEtBQXNCLEVBQUUsRUFBRTtZQUNsQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7YUFDMUI7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7YUFDM0I7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7O3NIQWpDUSx5QkFBeUI7MEdBQXpCLHlCQUF5QixpS0NUdEMsbzBEQW1EQTsyRkQxQ2EseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNJLHVCQUF1QjtrSUFNMUIsY0FBYztzQkFEcEIsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBSWpCLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50U3RhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWFDU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VhYy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsY3UtZGFzaGJvYXJkLXRvb2xiYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGFzaGJvYXJkLXRvb2xiYXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCdwcm9qZWN0LWxvb2t1cHMnKVxuICAgIHB1YmxpYyBQcm9qZWN0TG9va3VwczogQXJyYXk8c3RyaW5nPjtcblxuICAgIEBJbnB1dCgnbG9hZGluZycpXG4gICAgcHVibGljIExvYWRpbmc6IGJvb2xlYW47XG5cbiAgICAvLyBwdWJsaWMgZ2V0IFN0YXRlKCk6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmVhY1N2Yy5TdGF0ZTtcbiAgICAvLyB9XG5cbiAgICAvLyBwdWJsaWMgZ2V0IFByb2plY3RMb29rdXBzKCk6IHN0cmluZ1tdIHtcbiAgICAvLyAgICAgLy8gY29uc29sZS5sb2coXCJQSlM6IFwiLE9iamVjdC5rZXlzKHRoaXMuU3RhdGU/LkVhQz8uUHJvamVjdHMgfHwge30pLnJldmVyc2UoKSApXG4gICAgLy8gICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLlN0YXRlPy5FYUM/LlByb2plY3RzIHx8IHt9KS5yZXZlcnNlKCk7XG4gICAgLy8gfVxuXG4gICAgcHVibGljIElzU21TY3JlZW46IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLFxuICAgICAgICBwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyXG4gICAgICAgICAgICAub2JzZXJ2ZShbJyhtYXgtd2lkdGg6IDk1OXB4KSddKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IEJyZWFrcG9pbnRTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5tYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuSXNTbVNjcmVlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Jc1NtU2NyZWVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPG1hdC10b29sYmFyIGNsYXNzPVwiZGFzaGJvYXJkLXRvb2xiYXJcIj5cbiAgICA8bmctY29udGFpbmVyPlxuICAgICAgICA8YSBjbGFzcz1cInRvb2xiYXItaXRlbVwiIGhyZWY9XCIvZGFzaGJvYXJkL2VudGVycHJpc2VcIj5PdmVydmlldzwvYT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZsXCI+PC9kaXY+XG5cbiAgICAgICAgPGEgY2xhc3M9XCJ0b29sYmFyLWl0ZW1cIiBocmVmPVwiL2Rhc2hib2FyZC9wcm9qZWN0c1wiPlByb2plY3RzPC9hPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmxcIj48L2Rpdj5cblxuICAgICAgICA8YSBjbGFzcz1cInRvb2xiYXItaXRlbVwiIGhyZWY9XCIvZGFzaGJvYXJkL3RlYW1zXCI+VGVhbXM8L2E+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2bFwiPjwvZGl2PlxuXG4gICAgICAgIDxhXG4gICAgICAgICAgICAqbmdJZj1cIlByb2plY3RMb29rdXBzPy5sZW5ndGggPiAwIHx8IExvYWRpbmdcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0b29sYmFyLWl0ZW1cIlxuICAgICAgICAgICAgaHJlZj1cIi9kYXNoYm9hcmQvZGV2b3BzXCJcbiAgICAgICAgICAgID5EZXZPcHM8L2FcbiAgICAgICAgPlxuICAgICAgICA8YVxuICAgICAgICAgICAgKm5nSWY9XCJQcm9qZWN0TG9va3Vwcz8ubGVuZ3RoIDw9IDAgJiYgIUxvYWRpbmdcIlxuICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkFkZCBhIHByb2plY3QgdG8gdW5sb2NrIHRoaXMgZmVhdHVyZVwiXG4gICAgICAgICAgICBjbGFzcz1cInRvb2xiYXItaXRlbSBkaXNhYmxlZFwiXG4gICAgICAgICAgICA+RGV2T3BzPC9hXG4gICAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZsXCI+PC9kaXY+XG5cbiAgICAgICAgPCEtLSA8c3Bhbj5Eb21haW5zPC9zcGFuPiAtLT5cbiAgICAgICAgPGEgY2xhc3M9XCJ0b29sYmFyLWl0ZW1cIiBocmVmPVwiL2Rhc2hib2FyZC9tb2RpZmllcnNcIj5Nb2RzPC9hPlxuICAgICAgICA8IS0tIDxzcGFuPk1hbmFnZSAoa3Jha3luKTwvc3Bhbj4gLS0+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIDxuZy1jb250YWluZXIgPlxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGFyaWEtbGFiZWw9XCJtZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb24+bW9yZV9ob3JpejwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gICAgICAgICAgICA8YSBjbGFzcz1cInRvb2xiYXItaXRlbVwiIG1hdC1tZW51LWl0ZW0gaHJlZj1cIi9kYXNoYm9hcmQvZW50ZXJwcmlzZVwiPk92ZXJ2aWV3PC9hPlxuXG4gICAgICAgICAgICA8YSBjbGFzcz1cInRvb2xiYXItaXRlbVwiIG1hdC1tZW51LWl0ZW0gaHJlZj1cIi9kYXNoYm9hcmQvcHJvamVjdHNcIj5Qcm9qZWN0czwvYT5cblxuICAgICAgICAgICAgPGEgY2xhc3M9XCJ0b29sYmFyLWl0ZW1cIiBtYXQtbWVudS1pdGVtIGhyZWY9XCIvZGFzaGJvYXJkL3RlYW1zXCI+VGVhbXM8L2E+XG5cbiAgICAgICAgICAgIDxhIGNsYXNzPVwidG9vbGJhci1pdGVtXCIgbWF0LW1lbnUtaXRlbSBocmVmPVwiL2Rhc2hib2FyZC9kZXZvcHNcIj5EZXZPcHM8L2E+XG5cbiAgICAgICAgICAgIDxzcGFuPkRvbWFpbnM8L3NwYW4+XG4gICAgICAgICAgICA8YSBjbGFzcz1cInRvb2xiYXItaXRlbVwiIG1hdC1tZW51LWl0ZW0gaHJlZj1cIi9kYXNoYm9hcmQvbW9kaWZpZXJzXCI+TW9kczwvYT5cbiAgICAgICAgICAgIDxzcGFuPk1hbmFnZSAoa3Jha3luKTwvc3Bhbj5cbiAgICAgICAgICAgIFxuICAgICAgICA8L21hdC1tZW51PlxuXG4gICAgPC9uZy1jb250YWluZXI+IC0tPlxuPC9tYXQtdG9vbGJhcj5cbiJdfQ==
|
@@ -118,8 +118,7 @@ export class ProjectCardComponent {
|
|
118
118
|
name: tempProj.Project.Name,
|
119
119
|
description: tempProj.Project.Description,
|
120
120
|
lookup: pLookup,
|
121
|
-
url: 'https://
|
122
|
-
tempProj.Hosts[tempProj?.Hosts?.length - 1],
|
121
|
+
url: 'https://' + tempProj.Hosts[tempProj?.Hosts?.length - 1],
|
123
122
|
routerLink: ['/project', pLookup],
|
124
123
|
};
|
125
124
|
let tempRoutes = this.ApplicationRoutes;
|
@@ -129,7 +128,7 @@ export class ProjectCardComponent {
|
|
129
128
|
this.AppRoute = appRoute;
|
130
129
|
let tempRouteNode = {
|
131
130
|
name: this.AppRoute,
|
132
|
-
url: 'https://
|
131
|
+
url: 'https://' +
|
133
132
|
tempProj?.Hosts[tempProj?.Hosts?.length - 1] +
|
134
133
|
this.AppRoute,
|
135
134
|
routerLink: ['/route', this.AppRoute, pLookup],
|
@@ -142,7 +141,7 @@ export class ProjectCardComponent {
|
|
142
141
|
let tempAppNode = {
|
143
142
|
lookup: appLookup,
|
144
143
|
name: tempApp.Application.Name,
|
145
|
-
url: 'https://
|
144
|
+
url: 'https://' +
|
146
145
|
tempProj?.Hosts[tempProj?.Hosts?.length - 1] +
|
147
146
|
this.AppRoute,
|
148
147
|
description: tempApp.Application.Description,
|
@@ -189,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
189
188
|
type: Input,
|
190
189
|
args: ['projects']
|
191
190
|
}] } });
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2VsZW1lbnRzL3Byb2plY3QtY2FyZC9wcm9qZWN0LWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvcHJvamVjdC1jYXJkL3Byb2plY3QtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUNILHFCQUFxQixFQUNyQixnQkFBZ0IsR0FDbkIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBV2hDLE1BQU0sT0FBTyxvQkFBb0I7SUErSTdCLGtDQUFrQztJQUVsQyxZQUNjLE1BQWtCLEVBQ2xCLFNBQTBCO1FBRDFCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUF0SWhDLGdCQUFXLEdBQUcsQ0FBQyxJQUFjLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDcEQsT0FBTztnQkFDSCxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFDdkQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLEtBQUssRUFBRSxLQUFLO2dCQUNaLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDM0IsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2dCQUNiLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO2FBQ2hDLENBQUM7UUFD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QmpDLGtuVUFnUkE7MkZEaFFhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDSSxrQkFBa0I7K0hBTXJCLGdCQUFnQjtzQkFEdEIsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBSW5CLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxTQUFTO2dCQUlULGNBQWM7c0JBRHBCLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUlqQixRQUFRO3NCQURkLEtBQUs7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBNYXRUcmVlRmxhdERhdGFTb3VyY2UsXG4gICAgTWF0VHJlZUZsYXR0ZW5lcixcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XG5pbXBvcnQgeyBFYUNBcHBsaWNhdGlvbkFzQ29kZSwgRWFDUHJvamVjdEFzQ29kZSB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQgeyBGbGF0Tm9kZSwgVHJlZU5vZGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJlZS1ub2RlLm1vZGVsJztcbmltcG9ydCB7IEVhQ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBTb2NpYWxVSVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zb2NpYWwtdWkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGN1LXByb2plY3QtY2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2plY3QtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJvamVjdC1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFByb2plY3RDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoJ2FwcGxpY2F0aW9ucy1iYW5rJylcbiAgICBwdWJsaWMgQXBwbGljYXRpb25zQmFuazogQXJyYXk8RWFDQXBwbGljYXRpb25Bc0NvZGU+O1xuXG4gICAgQElucHV0KCdsb2FkaW5nJylcbiAgICBwdWJsaWMgTG9hZGluZzogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgncHJvamVjdC1sb29rdXBzJylcbiAgICBwdWJsaWMgUHJvamVjdExvb2t1cHM6IEFycmF5PHN0cmluZz47XG5cbiAgICBASW5wdXQoJ3Byb2plY3RzJylcbiAgICBwdWJsaWMgUHJvamVjdHM6IEFycmF5PEVhQ1Byb2plY3RBc0NvZGU+O1xuXG4gICAgcHJpdmF0ZSB0cmFuc2Zvcm1lciA9IChub2RlOiBUcmVlTm9kZSwgbGV2ZWw6IG51bWJlcikgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZXhwYW5kYWJsZTogISFub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCxcbiAgICAgICAgICAgIG5hbWU6IG5vZGUubmFtZSxcbiAgICAgICAgICAgIGxldmVsOiBsZXZlbCxcbiAgICAgICAgICAgIHJvdXRlckxpbms6IG5vZGUucm91dGVyTGluayxcbiAgICAgICAgICAgIHVybDogbm9kZS51cmwsXG4gICAgICAgICAgICBsb29rdXA6IG5vZGUubG9va3VwLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IG5vZGUuZGVzY3JpcHRpb24sXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBnZXQgQXBwbGljYXRpb25zKCk6IHtcbiAgICAgICAgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGU7XG4gICAgfSB7XG4gICAgICAgIGNvbnN0IGFwcHM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfSA9IHt9O1xuXG4gICAgICAgIHRoaXMuUHJvamVjdD8uQXBwbGljYXRpb25Mb29rdXBzPy5mb3JFYWNoKChhcHBMb29rdXA6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgYXBwc1thcHBMb29rdXBdID0gdGhpcy5BcHBsaWNhdGlvbnNCYW5rW2FwcExvb2t1cF07XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYXBwcztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEFwcGxpY2F0aW9uUm91dGVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5Sb3V0ZWRBcHBsaWNhdGlvbnMgfHwge30pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgQ3VycmVudFJvdXRlQXBwbGljYXRpb25Mb29rdXBzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5Sb3V0ZWRBcHBsaWNhdGlvbnNbdGhpcy5BcHBSb3V0ZV0gfHwge30pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgUm91dGVkQXBwbGljYXRpb25zKCk6IHtcbiAgICAgICAgW3JvdXRlOiBzdHJpbmddOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH07XG4gICAgfSB7XG4gICAgICAgIGNvbnN0IGFwcExvb2t1cHMgPSBPYmplY3Qua2V5cyh0aGlzLkFwcGxpY2F0aW9ucyk7XG5cbiAgICAgICAgY29uc3QgYXBwcyA9IGFwcExvb2t1cHMubWFwKFxuICAgICAgICAgICAgKGFwcExvb2t1cCkgPT4gdGhpcy5BcHBsaWNhdGlvbnNbYXBwTG9va3VwXVxuICAgICAgICApO1xuXG4gICAgICAgIGxldCBhcHBSb3V0ZXMgPVxuICAgICAgICAgICAgYXBwcy5tYXAoKGFwcCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiQXBwIGZyb20gcHJvamVjdHM6IFwiLCBhcHApO1xuICAgICAgICAgICAgICAgIHJldHVybiBhcHA/Lkxvb2t1cENvbmZpZz8uUGF0aFJlZ2V4LnJlcGxhY2UoJy4qJywgJycpO1xuICAgICAgICAgICAgfSkgfHwgW107XG5cbiAgICAgICAgYXBwUm91dGVzID0gYXBwUm91dGVzLmZpbHRlcigoYXIpID0+IGFyICE9IG51bGwpO1xuXG4gICAgICAgIGxldCByb3V0ZUJhc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGFwcFJvdXRlcy5mb3JFYWNoKChhcHBSb3V0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXBwUm91dGVQYXJ0cyA9IGFwcFJvdXRlLnNwbGl0KCcvJyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGFwcFJvdXRlQmFzZSA9IGAvJHthcHBSb3V0ZVBhcnRzWzFdfWA7XG5cbiAgICAgICAgICAgIGlmIChyb3V0ZUJhc2VzLmluZGV4T2YoYXBwUm91dGVCYXNlKSA8IDApIHtcbiAgICAgICAgICAgICAgICByb3V0ZUJhc2VzLnB1c2goYXBwUm91dGVCYXNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IHdvcmtpbmdBcHBMb29rdXBzID0gWy4uLihhcHBMb29rdXBzIHx8IFtdKV07XG5cbiAgICAgICAgcm91dGVCYXNlcyA9IHJvdXRlQmFzZXMuc29ydCgoYSwgYikgPT4gYi5sb2NhbGVDb21wYXJlKGEpKTtcblxuICAgICAgICBjb25zdCByb3V0ZVNldCA9XG4gICAgICAgICAgICByb3V0ZUJhc2VzLnJlZHVjZSgocHJldlJvdXRlTWFwLCBjdXJyZW50Um91dGVCYXNlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm91dGVNYXAgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnByZXZSb3V0ZU1hcCxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRBcHBMb29rdXBzID0gd29ya2luZ0FwcExvb2t1cHMuZmlsdGVyKCh3YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2EgPSB0aGlzLkFwcGxpY2F0aW9uc1t3YWxdO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB3YT8uTG9va3VwQ29uZmlnPy5QYXRoUmVnZXguc3RhcnRzV2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSb3V0ZUJhc2VcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJvdXRlTWFwW2N1cnJlbnRSb3V0ZUJhc2VdID1cbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWRBcHBMb29rdXBzLnJlZHVjZSgocHJldkFwcE1hcCwgYXBwTG9va3VwKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhcHBNYXA6IGFueSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcmV2QXBwTWFwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwTWFwW2FwcExvb2t1cF0gPSB0aGlzLkFwcGxpY2F0aW9uc1thcHBMb29rdXBdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXBwTWFwO1xuICAgICAgICAgICAgICAgICAgICB9LCB7fSkgfHwge307XG5cbiAgICAgICAgICAgICAgICB3b3JraW5nQXBwTG9va3VwcyA9IHdvcmtpbmdBcHBMb29rdXBzLmZpbHRlcigod2EpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkQXBwTG9va3Vwcy5pbmRleE9mKHdhKSA8IDA7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcm91dGVNYXA7XG4gICAgICAgICAgICB9LCB7fSkgfHwge307XG5cbiAgICAgICAgbGV0IHJvdXRlU2V0S2V5cyA9IE9iamVjdC5rZXlzKHJvdXRlU2V0KTtcblxuICAgICAgICByb3V0ZVNldEtleXMgPSByb3V0ZVNldEtleXMuc29ydCgoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpKTtcblxuICAgICAgICBjb25zdCByb3V0ZVNldFJlc3VsdCA9IHt9O1xuXG4gICAgICAgIHJvdXRlU2V0S2V5cy5mb3JFYWNoKChyc2spID0+IChyb3V0ZVNldFJlc3VsdFtyc2tdID0gcm91dGVTZXRbcnNrXSkpO1xuXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiQXBwIFJvdXRlczogXCIscm91dGVTZXRSZXN1bHQpXG5cbiAgICAgICAgcmV0dXJuIHJvdXRlU2V0UmVzdWx0O1xuICAgIH1cblxuICAgIHRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxGbGF0Tm9kZT4oXG4gICAgICAgIChub2RlOiBhbnkpID0+IG5vZGUubGV2ZWwsXG4gICAgICAgIChub2RlOiBhbnkpID0+IG5vZGUuZXhwYW5kYWJsZVxuICAgICk7XG5cbiAgICB0cmVlRmxhdHRlbmVyID0gbmV3IE1hdFRyZWVGbGF0dGVuZXIoXG4gICAgICAgIHRoaXMudHJhbnNmb3JtZXIsXG4gICAgICAgIChub2RlKSA9PiBub2RlLmxldmVsLFxuICAgICAgICAobm9kZSkgPT4gbm9kZS5leHBhbmRhYmxlLFxuICAgICAgICAobm9kZSkgPT4gbm9kZS5jaGlsZHJlblxuICAgICk7XG5cbiAgICBwdWJsaWMgRGF0YVNvdXJjZSA9IG5ldyBNYXRUcmVlRmxhdERhdGFTb3VyY2UoXG4gICAgICAgIHRoaXMudHJlZUNvbnRyb2wsXG4gICAgICAgIHRoaXMudHJlZUZsYXR0ZW5lclxuICAgICk7XG5cbiAgICBwdWJsaWMgUHJvamVjdDogRWFDUHJvamVjdEFzQ29kZTtcblxuICAgIHB1YmxpYyBBcHBSb3V0ZTogc3RyaW5nO1xuXG4gICAgLy8gcHVibGljIFJvdXRlZEFwcGxpY2F0aW9uczogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBlYWNTdmM6IEVhQ1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBzb2NpYWxTdmM6IFNvY2lhbFVJU2VydmljZVxuICAgICkge31cblxuICAgIHB1YmxpYyBIYXNDaGlsZCA9IChfOiBudW1iZXIsIG5vZGU6IEZsYXROb2RlKSA9PiBub2RlLmV4cGFuZGFibGU7XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICBpZiAodGhpcy5Qcm9qZWN0cyAmJiB0aGlzLlByb2plY3RMb29rdXBzICYmIHRoaXMuQXBwbGljYXRpb25zKSB7XG4gICAgICAgICAgICBsZXQgdGVtcCA9IHRoaXMuQnVpbGRUcmVlKCk7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcInRvIHN0cmluZzogXCIsIEpTT04uc3RyaW5naWZ5KHRlbXApKVxuXG4gICAgICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodGhpcy5EYXRhU291cmNlLmRhdGEpICE9PSBKU09OLnN0cmluZ2lmeSh0ZW1wKSkge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdJdHMgZGlmZmVyZW50JylcbiAgICAgICAgICAgICAgICB0aGlzLkRhdGFTb3VyY2UuZGF0YSA9IHRlbXA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBlbHNle1xuICAgICAgICAgICAgLy8gICAgIGNvbnNvbGUubG9nKCdpdCBhaW50IGRpZmZlcmVudCcpXG4gICAgICAgICAgICAvLyB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgUm91dGVUb1BhdGgocGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcGF0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgQnVpbGRUcmVlKCk6IEFycmF5PFRyZWVOb2RlPiB7XG4gICAgICAgIGxldCB0ZW1wVHJlZURhdGE6IEFycmF5PFRyZWVOb2RlPiA9IFtdO1xuICAgICAgICB0aGlzLlByb2plY3RMb29rdXBzPy5mb3JFYWNoKChwTG9va3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGxldCB0ZW1wUHJvaiA9IHRoaXMuUHJvamVjdHNbcExvb2t1cF07XG4gICAgICAgICAgICB0aGlzLlByb2plY3QgPSB0ZW1wUHJvajtcbiAgICAgICAgICAgIGxldCB0ZW1wUHJvak5vZGU6IFRyZWVOb2RlID0ge1xuICAgICAgICAgICAgICAgIG5hbWU6IHRlbXBQcm9qLlByb2plY3QuTmFtZSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogdGVtcFByb2ouUHJvamVjdC5EZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBsb29rdXA6IHBMb29rdXAsXG4gICAgICAgICAgICAgICAgdXJsOlxuICAgICAgICAgICAgICAgICAgICAnaHR0cHM6Ly93d3cuJyArXG4gICAgICAgICAgICAgICAgICAgIHRlbXBQcm9qLkhvc3RzW3RlbXBQcm9qPy5Ib3N0cz8ubGVuZ3RoIC0gMV0sXG4gICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvcHJvamVjdCcsIHBMb29rdXBdLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgbGV0IHRlbXBSb3V0ZXMgPSB0aGlzLkFwcGxpY2F0aW9uUm91dGVzO1xuXG4gICAgICAgICAgICBpZiAodGVtcFJvdXRlcykge1xuICAgICAgICAgICAgICAgIGxldCB0ZW1wUHJvakNoaWxkcmVuOiBBcnJheTxUcmVlTm9kZT4gPSBbXTtcbiAgICAgICAgICAgICAgICB0ZW1wUm91dGVzLmZvckVhY2goKGFwcFJvdXRlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5BcHBSb3V0ZSA9IGFwcFJvdXRlO1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wUm91dGVOb2RlOiBUcmVlTm9kZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuQXBwUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vd3d3LicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBQcm9qPy5Ib3N0c1t0ZW1wUHJvaj8uSG9zdHM/Lmxlbmd0aCAtIDFdICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkFwcFJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvcm91dGUnLCB0aGlzLkFwcFJvdXRlLCBwTG9va3VwXSxcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcEFwcHMgPSB0aGlzLkN1cnJlbnRSb3V0ZUFwcGxpY2F0aW9uTG9va3VwcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBBcHBzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcFJvdXRlQ2hpbGRyZW46IEFycmF5PFRyZWVOb2RlPiA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcEFwcHMuZm9yRWFjaCgoYXBwTG9va3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcEFwcCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUm91dGVkQXBwbGljYXRpb25zW3RoaXMuQXBwUm91dGVdW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwTG9va3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXBBcHBOb2RlOiBUcmVlTm9kZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9va3VwOiBhcHBMb29rdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHRlbXBBcHAuQXBwbGljYXRpb24uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vd3d3LicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFByb2o/Lkhvc3RzW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBQcm9qPy5Ib3N0cz8ubGVuZ3RoIC0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkFwcFJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogdGVtcEFwcC5BcHBsaWNhdGlvbi5EZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy9hcHBsaWNhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBMb29rdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkFwcFJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcExvb2t1cCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBSb3V0ZUNoaWxkcmVuLnB1c2godGVtcEFwcE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wUm91dGVOb2RlLmNoaWxkcmVuID0gdGVtcFJvdXRlQ2hpbGRyZW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGVtcFByb2pDaGlsZHJlbi5wdXNoKHRlbXBSb3V0ZU5vZGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRlbXBQcm9qTm9kZS5jaGlsZHJlbiA9IHRlbXBQcm9qQ2hpbGRyZW47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ZW1wVHJlZURhdGEucHVzaCh0ZW1wUHJvak5vZGUpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ1RIRSBUUkVFOiAnLCB0ZW1wVHJlZURhdGEpO1xuICAgICAgICByZXR1cm4gdGVtcFRyZWVEYXRhO1xuXG4gICAgICAgIC8vIHJldHVybiB0ZW1wVHJlZURhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIEhhbmRsZVJvdXRlKHJvdXRlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ3JvdXRlOiAnLCByb3V0ZSk7XG4gICAgfVxufVxuIiwiPCEtLSBUUkVFIC0tPlxuPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiUHJvamVjdExvb2t1cHM/QnVpbGRUcmVlKCk6ZmFsc2VcIj48L25nLWNvbnRhaW5lcj4gLS0+XG48bGN1LXNsb3R0ZWQtY2FyZC1sZ1xuICAgICpuZ0lmPVwiUHJvamVjdExvb2t1cHM/Lmxlbmd0aCA+IDBcIlxuICAgIGNsYXNzPVwiZml0LWNvbnRlbnRcIlxuICAgIFtsb2FkaW5nXT1cIkxvYWRpbmdcIlxuICAgIGNhcmQtdGl0bGU9XCJQcm9qZWN0XCJcbiAgICBpY29uPVwid29ya19vdXRsaW5lXCJcbiAgICBbbWFpbi1zbG90LWRlc2NyaXB0aW9uXT1cIlByb2plY3RMb29rdXBzPy5sZW5ndGggKyAnIHByb2plY3QocykgY29uZmlndXJlZCdcIlxuICAgIChtYWluLWFjdGlvbi1jbGlja2VkKT1cIlJvdXRlVG9QYXRoKCcvZGFzaGJvYXJkL2NyZWF0ZS1wcm9qZWN0JylcIlxuPlxuICAgIDwhLS0gPGRpdj4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkRhdGFTb3VyY2VcIj5cbiAgICAgICAgPG1hdC10cmVlIFtkYXRhU291cmNlXT1cIkRhdGFTb3VyY2VcIiBbdHJlZUNvbnRyb2xdPVwidHJlZUNvbnRyb2xcIj5cbiAgICAgICAgICAgIDxtYXQtdHJlZS1ub2RlICptYXRUcmVlTm9kZURlZj1cImxldCBub2RlXCIgbWF0VHJlZU5vZGVQYWRkaW5nPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwic2xvdC1oZWFkZXItYW5jaG9yXCIgW3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub2RlLm5hbWVcIiBjbGFzcz1cInNsb3QtbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbm9kZS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9kZS5kZXNjcmlwdGlvblwiIGNsYXNzPVwic2xvdC1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbm9kZS5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9ucy1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9uLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJub2RlLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRWRpdCB7eyBub2RlLm5hbWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5lZGl0PC9tYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9uLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJub2RlLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiTGF1bmNoIHt7IG5vZGUubmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPmxhdW5jaDwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24+PC9idXR0b24+IC0tPlxuICAgICAgICAgICAgPC9tYXQtdHJlZS1ub2RlPlxuICAgICAgICAgICAgPG1hdC10cmVlLW5vZGVcbiAgICAgICAgICAgICAgICAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZTsgd2hlbjogSGFzQ2hpbGRcIlxuICAgICAgICAgICAgICAgIG1hdFRyZWVOb2RlUGFkZGluZ1xuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdFRyZWVOb2RlVG9nZ2xlXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1RvZ2dsZSAnICsgbm9kZS5uYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiZXhwYW5kX21vcmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiY2hldnJvbl9yaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwic2xvdC1oZWFkZXItYW5jaG9yXCIgW3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub2RlLm5hbWVcIiBjbGFzcz1cInNsb3QtbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbm9kZS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9kZS5kZXNjcmlwdGlvblwiIGNsYXNzPVwic2xvdC1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbm9kZS5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9ucy1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9uLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJub2RlLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRWRpdCB7eyBub2RlLm5hbWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5lZGl0PC9tYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9uLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJub2RlLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiTGF1bmNoIHt7IG5vZGUubmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPmxhdW5jaDwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tYXQtdHJlZS1ub2RlPlxuICAgICAgICA8L21hdC10cmVlPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSA8ZGl2XG4gICAgICAgIGNsYXNzPVwibWFpbi1zbG90LWNvbnRhaW5lclwiXG4gICAgICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgKm5nRm9yPVwibGV0IHByb2plY3RMb29rdXAgb2YgUHJvamVjdExvb2t1cHNcIlxuICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJzbG90LWNvbnRlbnRcIlxuICAgICAgICAgICAgKm5nSWY9XCJTdGF0ZT8uRWFDPy5Qcm9qZWN0c1twcm9qZWN0TG9va3VwXTsgbGV0IHByb2plY3RcIlxuICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNsb3QtaGVhZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbG90LWhlYWRlclwiIGZ4TGF5b3V0PVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtaGVhZGVyLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9wcm9qZWN0JywgcHJvamVjdExvb2t1cF1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJvamVjdC5Qcm9qZWN0Lk5hbWVcIiBjbGFzcz1cInNsb3QtbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHByb2plY3QuUHJvamVjdC5OYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInByb2plY3QuUHJvamVjdC5EZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBwcm9qZWN0LlByb2plY3QuRGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbnMtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb24tYW5jaG9yXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvcHJvamVjdCcsIHByb2plY3RMb29rdXBdXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRWRpdCB7eyBwcm9qZWN0LlByb2plY3QuTmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+ZWRpdDwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9uLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vJyArIHByb2plY3Q/Lkhvc3RzW3Byb2plY3Q/Lkhvc3RzPy5sZW5ndGggLSAxXVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJMYXVuY2gge3sgcHJvamVjdC5Qcm9qZWN0Lk5hbWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPmxhdW5jaDwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj4gLS0+XG5cbiAgICA8IS0tIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJUb2dnbGVTbGljZXMoJ1Byb2plY3RzJylcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlByb2plY3RMb29rdXBzPy5sZW5ndGggPiA1XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBTbGljZXMuUHJvamVjdHMgPT0gUHJvamVjdExvb2t1cHM/Lmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJTaG93IExlc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJTaG93IE1vcmVcIlxuICAgICAgICAgICAgICAgICAgICB9fVxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xpY2VzLlByb2plY3RzID09IFByb2plY3RMb29rdXBzPy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcImV4cGFuZF9sZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcImV4cGFuZF9tb3JlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxuICAgIDwhLS0gPC9kaXY+IC0tPlxuPC9sY3Utc2xvdHRlZC1jYXJkLWxnPlxuXG48IS0tIE9yaWdpbmFsIC0tPlxuPCEtLSA8bGN1LXNsb3R0ZWQtY2FyZC1sZ1xuICAgICpuZ0lmPVwiUHJvamVjdExvb2t1cHM/Lmxlbmd0aCA+IDBcIlxuICAgIGNsYXNzPVwiZml0LWNvbnRlbnRcIlxuICAgIGNhcmQtdGl0bGU9XCJQcm9qZWN0XCJcbiAgICBpY29uPVwid29ya19vdXRsaW5lXCJcbiAgICBbbG9hZGluZ109XCJMb2FkaW5nXCJcbiAgICBbbWFpbi1zbG90LWRlc2NyaXB0aW9uXT1cIlByb2plY3RMb29rdXBzPy5sZW5ndGggKyAnIHByb2plY3QocykgY29uZmlndXJlZCdcIlxuICAgIChtYWluLWFjdGlvbi1jbGlja2VkKT1cIlJvdXRlVG9QYXRoKCcvZGFzaGJvYXJkL2NyZWF0ZS1wcm9qZWN0JylcIlxuPlxuICAgIDxkaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibWFpbi1zbG90LWNvbnRhaW5lclwiXG4gICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJvamVjdExvb2t1cCBvZiBQcm9qZWN0TG9va3Vwc1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtY29udGVudFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJQcm9qZWN0c1twcm9qZWN0TG9va3VwXTsgbGV0IHByb2plY3RcIlxuICAgICAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbG90LWhlYWRlci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNsb3QtaGVhZGVyXCIgZnhMYXlvdXQ9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWhlYWRlci1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL3Byb2plY3QnLCBwcm9qZWN0TG9va3VwXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb2plY3QuUHJvamVjdC5OYW1lXCIgY2xhc3M9XCJzbG90LW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJvamVjdC5Qcm9qZWN0Lk5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9qZWN0LlByb2plY3QuRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJvamVjdC5Qcm9qZWN0LkRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9ucy1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9uLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9wcm9qZWN0JywgcHJvamVjdExvb2t1cF1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRWRpdCB7eyBwcm9qZWN0LlByb2plY3QuTmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPmVkaXQ8L21hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb24tYW5jaG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwczovLycgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q/Lkhvc3RzW3Byb2plY3Q/Lkhvc3RzPy5sZW5ndGggLSAxXVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJMYXVuY2gge3sgcHJvamVjdC5Qcm9qZWN0Lk5hbWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5sYXVuY2g8L21hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBcbiAgICA8L2Rpdj5cbjwvbGN1LXNsb3R0ZWQtY2FyZC1sZz4gLS0+XG4iXX0=
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2VsZW1lbnRzL3Byb2plY3QtY2FyZC9wcm9qZWN0LWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvcHJvamVjdC1jYXJkL3Byb2plY3QtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUNILHFCQUFxQixFQUNyQixnQkFBZ0IsR0FDbkIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBV2hDLE1BQU0sT0FBTyxvQkFBb0I7SUErSTdCLGtDQUFrQztJQUVsQyxZQUNjLE1BQWtCLEVBQ2xCLFNBQTBCO1FBRDFCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUF0SWhDLGdCQUFXLEdBQUcsQ0FBQyxJQUFjLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDcEQsT0FBTztnQkFDSCxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFDdkQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLEtBQUssRUFBRSxLQUFLO2dCQUNaLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDM0IsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2dCQUNiLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO2FBQ2hDLENBQUM7UUFD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akMsa25VQWdSQTsyRkRoUWEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNJLGtCQUFrQjsrSEFNckIsZ0JBQWdCO3NCQUR0QixLQUFLO3VCQUFDLG1CQUFtQjtnQkFJbkIsT0FBTztzQkFEYixLQUFLO3VCQUFDLFNBQVM7Z0JBSVQsY0FBYztzQkFEcEIsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBSWpCLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIE1hdFRyZWVGbGF0RGF0YVNvdXJjZSxcbiAgICBNYXRUcmVlRmxhdHRlbmVyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcbmltcG9ydCB7IEVhQ0FwcGxpY2F0aW9uQXNDb2RlLCBFYUNQcm9qZWN0QXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IEZsYXROb2RlLCBUcmVlTm9kZSB9IGZyb20gJy4uLy4uL21vZGVscy90cmVlLW5vZGUubW9kZWwnO1xuaW1wb3J0IHsgRWFDU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VhYy5zZXJ2aWNlJztcbmltcG9ydCB7IFNvY2lhbFVJU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NvY2lhbC11aS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsY3UtcHJvamVjdC1jYXJkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvamVjdC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wcm9qZWN0LWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvamVjdENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgnYXBwbGljYXRpb25zLWJhbmsnKVxuICAgIHB1YmxpYyBBcHBsaWNhdGlvbnNCYW5rOiBBcnJheTxFYUNBcHBsaWNhdGlvbkFzQ29kZT47XG5cbiAgICBASW5wdXQoJ2xvYWRpbmcnKVxuICAgIHB1YmxpYyBMb2FkaW5nOiBib29sZWFuO1xuXG4gICAgQElucHV0KCdwcm9qZWN0LWxvb2t1cHMnKVxuICAgIHB1YmxpYyBQcm9qZWN0TG9va3VwczogQXJyYXk8c3RyaW5nPjtcblxuICAgIEBJbnB1dCgncHJvamVjdHMnKVxuICAgIHB1YmxpYyBQcm9qZWN0czogQXJyYXk8RWFDUHJvamVjdEFzQ29kZT47XG5cbiAgICBwcml2YXRlIHRyYW5zZm9ybWVyID0gKG5vZGU6IFRyZWVOb2RlLCBsZXZlbDogbnVtYmVyKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBleHBhbmRhYmxlOiAhIW5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwLFxuICAgICAgICAgICAgbmFtZTogbm9kZS5uYW1lLFxuICAgICAgICAgICAgbGV2ZWw6IGxldmVsLFxuICAgICAgICAgICAgcm91dGVyTGluazogbm9kZS5yb3V0ZXJMaW5rLFxuICAgICAgICAgICAgdXJsOiBub2RlLnVybCxcbiAgICAgICAgICAgIGxvb2t1cDogbm9kZS5sb29rdXAsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogbm9kZS5kZXNjcmlwdGlvbixcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIGdldCBBcHBsaWNhdGlvbnMoKToge1xuICAgICAgICBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZTtcbiAgICB9IHtcbiAgICAgICAgY29uc3QgYXBwczogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9ID0ge307XG5cbiAgICAgICAgdGhpcy5Qcm9qZWN0Py5BcHBsaWNhdGlvbkxvb2t1cHM/LmZvckVhY2goKGFwcExvb2t1cDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBhcHBzW2FwcExvb2t1cF0gPSB0aGlzLkFwcGxpY2F0aW9uc0JhbmtbYXBwTG9va3VwXTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhcHBzO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgQXBwbGljYXRpb25Sb3V0ZXMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLlJvdXRlZEFwcGxpY2F0aW9ucyB8fCB7fSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBDdXJyZW50Um91dGVBcHBsaWNhdGlvbkxvb2t1cHMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLlJvdXRlZEFwcGxpY2F0aW9uc1t0aGlzLkFwcFJvdXRlXSB8fCB7fSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBSb3V0ZWRBcHBsaWNhdGlvbnMoKToge1xuICAgICAgICBbcm91dGU6IHN0cmluZ106IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfTtcbiAgICB9IHtcbiAgICAgICAgY29uc3QgYXBwTG9va3VwcyA9IE9iamVjdC5rZXlzKHRoaXMuQXBwbGljYXRpb25zKTtcblxuICAgICAgICBjb25zdCBhcHBzID0gYXBwTG9va3Vwcy5tYXAoXG4gICAgICAgICAgICAoYXBwTG9va3VwKSA9PiB0aGlzLkFwcGxpY2F0aW9uc1thcHBMb29rdXBdXG4gICAgICAgICk7XG5cbiAgICAgICAgbGV0IGFwcFJvdXRlcyA9XG4gICAgICAgICAgICBhcHBzLm1hcCgoYXBwKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJBcHAgZnJvbSBwcm9qZWN0czogXCIsIGFwcCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwcD8uTG9va3VwQ29uZmlnPy5QYXRoUmVnZXgucmVwbGFjZSgnLionLCAnJyk7XG4gICAgICAgICAgICB9KSB8fCBbXTtcblxuICAgICAgICBhcHBSb3V0ZXMgPSBhcHBSb3V0ZXMuZmlsdGVyKChhcikgPT4gYXIgIT0gbnVsbCk7XG5cbiAgICAgICAgbGV0IHJvdXRlQmFzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgICAgYXBwUm91dGVzLmZvckVhY2goKGFwcFJvdXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhcHBSb3V0ZVBhcnRzID0gYXBwUm91dGUuc3BsaXQoJy8nKTtcblxuICAgICAgICAgICAgY29uc3QgYXBwUm91dGVCYXNlID0gYC8ke2FwcFJvdXRlUGFydHNbMV19YDtcblxuICAgICAgICAgICAgaWYgKHJvdXRlQmFzZXMuaW5kZXhPZihhcHBSb3V0ZUJhc2UpIDwgMCkge1xuICAgICAgICAgICAgICAgIHJvdXRlQmFzZXMucHVzaChhcHBSb3V0ZUJhc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBsZXQgd29ya2luZ0FwcExvb2t1cHMgPSBbLi4uKGFwcExvb2t1cHMgfHwgW10pXTtcblxuICAgICAgICByb3V0ZUJhc2VzID0gcm91dGVCYXNlcy5zb3J0KChhLCBiKSA9PiBiLmxvY2FsZUNvbXBhcmUoYSkpO1xuXG4gICAgICAgIGNvbnN0IHJvdXRlU2V0ID1cbiAgICAgICAgICAgIHJvdXRlQmFzZXMucmVkdWNlKChwcmV2Um91dGVNYXAsIGN1cnJlbnRSb3V0ZUJhc2UpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3V0ZU1hcCA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucHJldlJvdXRlTWFwLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZEFwcExvb2t1cHMgPSB3b3JraW5nQXBwTG9va3Vwcy5maWx0ZXIoKHdhbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3YSA9IHRoaXMuQXBwbGljYXRpb25zW3dhbF07XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdhPy5Mb29rdXBDb25maWc/LlBhdGhSZWdleC5zdGFydHNXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFJvdXRlQmFzZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcm91dGVNYXBbY3VycmVudFJvdXRlQmFzZV0gPVxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZEFwcExvb2t1cHMucmVkdWNlKChwcmV2QXBwTWFwLCBhcHBMb29rdXApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFwcE1hcDogYW55ID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXZBcHBNYXAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBNYXBbYXBwTG9va3VwXSA9IHRoaXMuQXBwbGljYXRpb25zW2FwcExvb2t1cF07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhcHBNYXA7XG4gICAgICAgICAgICAgICAgICAgIH0sIHt9KSB8fCB7fTtcblxuICAgICAgICAgICAgICAgIHdvcmtpbmdBcHBMb29rdXBzID0gd29ya2luZ0FwcExvb2t1cHMuZmlsdGVyKCh3YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWRBcHBMb29rdXBzLmluZGV4T2Yod2EpIDwgMDtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiByb3V0ZU1hcDtcbiAgICAgICAgICAgIH0sIHt9KSB8fCB7fTtcblxuICAgICAgICBsZXQgcm91dGVTZXRLZXlzID0gT2JqZWN0LmtleXMocm91dGVTZXQpO1xuXG4gICAgICAgIHJvdXRlU2V0S2V5cyA9IHJvdXRlU2V0S2V5cy5zb3J0KChhLCBiKSA9PiBhLmxvY2FsZUNvbXBhcmUoYikpO1xuXG4gICAgICAgIGNvbnN0IHJvdXRlU2V0UmVzdWx0ID0ge307XG5cbiAgICAgICAgcm91dGVTZXRLZXlzLmZvckVhY2goKHJzaykgPT4gKHJvdXRlU2V0UmVzdWx0W3Jza10gPSByb3V0ZVNldFtyc2tdKSk7XG5cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJBcHAgUm91dGVzOiBcIixyb3V0ZVNldFJlc3VsdClcblxuICAgICAgICByZXR1cm4gcm91dGVTZXRSZXN1bHQ7XG4gICAgfVxuXG4gICAgdHJlZUNvbnRyb2wgPSBuZXcgRmxhdFRyZWVDb250cm9sPEZsYXROb2RlPihcbiAgICAgICAgKG5vZGU6IGFueSkgPT4gbm9kZS5sZXZlbCxcbiAgICAgICAgKG5vZGU6IGFueSkgPT4gbm9kZS5leHBhbmRhYmxlXG4gICAgKTtcblxuICAgIHRyZWVGbGF0dGVuZXIgPSBuZXcgTWF0VHJlZUZsYXR0ZW5lcihcbiAgICAgICAgdGhpcy50cmFuc2Zvcm1lcixcbiAgICAgICAgKG5vZGUpID0+IG5vZGUubGV2ZWwsXG4gICAgICAgIChub2RlKSA9PiBub2RlLmV4cGFuZGFibGUsXG4gICAgICAgIChub2RlKSA9PiBub2RlLmNoaWxkcmVuXG4gICAgKTtcblxuICAgIHB1YmxpYyBEYXRhU291cmNlID0gbmV3IE1hdFRyZWVGbGF0RGF0YVNvdXJjZShcbiAgICAgICAgdGhpcy50cmVlQ29udHJvbCxcbiAgICAgICAgdGhpcy50cmVlRmxhdHRlbmVyXG4gICAgKTtcblxuICAgIHB1YmxpYyBQcm9qZWN0OiBFYUNQcm9qZWN0QXNDb2RlO1xuXG4gICAgcHVibGljIEFwcFJvdXRlOiBzdHJpbmc7XG5cbiAgICAvLyBwdWJsaWMgUm91dGVkQXBwbGljYXRpb25zOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGVhY1N2YzogRWFDU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIHNvY2lhbFN2YzogU29jaWFsVUlTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgcHVibGljIEhhc0NoaWxkID0gKF86IG51bWJlciwgbm9kZTogRmxhdE5vZGUpID0+IG5vZGUuZXhwYW5kYWJsZTtcblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLlByb2plY3RzICYmIHRoaXMuUHJvamVjdExvb2t1cHMgJiYgdGhpcy5BcHBsaWNhdGlvbnMpIHtcbiAgICAgICAgICAgIGxldCB0ZW1wID0gdGhpcy5CdWlsZFRyZWUoKTtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwidG8gc3RyaW5nOiBcIiwgSlNPTi5zdHJpbmdpZnkodGVtcCkpXG5cbiAgICAgICAgICAgIGlmIChKU09OLnN0cmluZ2lmeSh0aGlzLkRhdGFTb3VyY2UuZGF0YSkgIT09IEpTT04uc3RyaW5naWZ5KHRlbXApKSB7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ0l0cyBkaWZmZXJlbnQnKVxuICAgICAgICAgICAgICAgIHRoaXMuRGF0YVNvdXJjZS5kYXRhID0gdGVtcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGVsc2V7XG4gICAgICAgICAgICAvLyAgICAgY29uc29sZS5sb2coJ2l0IGFpbnQgZGlmZmVyZW50JylcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBSb3V0ZVRvUGF0aChwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBwYXRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBCdWlsZFRyZWUoKTogQXJyYXk8VHJlZU5vZGU+IHtcbiAgICAgICAgbGV0IHRlbXBUcmVlRGF0YTogQXJyYXk8VHJlZU5vZGU+ID0gW107XG4gICAgICAgIHRoaXMuUHJvamVjdExvb2t1cHM/LmZvckVhY2goKHBMb29rdXA6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgbGV0IHRlbXBQcm9qID0gdGhpcy5Qcm9qZWN0c1twTG9va3VwXTtcbiAgICAgICAgICAgIHRoaXMuUHJvamVjdCA9IHRlbXBQcm9qO1xuICAgICAgICAgICAgbGV0IHRlbXBQcm9qTm9kZTogVHJlZU5vZGUgPSB7XG4gICAgICAgICAgICAgICAgbmFtZTogdGVtcFByb2ouUHJvamVjdC5OYW1lLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0ZW1wUHJvai5Qcm9qZWN0LkRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIGxvb2t1cDogcExvb2t1cCxcbiAgICAgICAgICAgICAgICB1cmw6ICdodHRwczovLycgKyB0ZW1wUHJvai5Ib3N0c1t0ZW1wUHJvaj8uSG9zdHM/Lmxlbmd0aCAtIDFdLFxuICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3Byb2plY3QnLCBwTG9va3VwXSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGxldCB0ZW1wUm91dGVzID0gdGhpcy5BcHBsaWNhdGlvblJvdXRlcztcblxuICAgICAgICAgICAgaWYgKHRlbXBSb3V0ZXMpIHtcbiAgICAgICAgICAgICAgICBsZXQgdGVtcFByb2pDaGlsZHJlbjogQXJyYXk8VHJlZU5vZGU+ID0gW107XG4gICAgICAgICAgICAgICAgdGVtcFJvdXRlcy5mb3JFYWNoKChhcHBSb3V0ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQXBwUm91dGUgPSBhcHBSb3V0ZTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcFJvdXRlTm9kZTogVHJlZU5vZGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLkFwcFJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwczovLycgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBQcm9qPy5Ib3N0c1t0ZW1wUHJvaj8uSG9zdHM/Lmxlbmd0aCAtIDFdICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkFwcFJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvcm91dGUnLCB0aGlzLkFwcFJvdXRlLCBwTG9va3VwXSxcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcEFwcHMgPSB0aGlzLkN1cnJlbnRSb3V0ZUFwcGxpY2F0aW9uTG9va3VwcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBBcHBzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcFJvdXRlQ2hpbGRyZW46IEFycmF5PFRyZWVOb2RlPiA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcEFwcHMuZm9yRWFjaCgoYXBwTG9va3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcEFwcCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUm91dGVkQXBwbGljYXRpb25zW3RoaXMuQXBwUm91dGVdW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwTG9va3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXBBcHBOb2RlOiBUcmVlTm9kZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9va3VwOiBhcHBMb29rdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHRlbXBBcHAuQXBwbGljYXRpb24uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wUHJvaj8uSG9zdHNbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFByb2o/Lkhvc3RzPy5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQXBwUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0ZW1wQXBwLkFwcGxpY2F0aW9uLkRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnL2FwcGxpY2F0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcExvb2t1cCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQXBwUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwTG9va3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFJvdXRlQ2hpbGRyZW4ucHVzaCh0ZW1wQXBwTm9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBSb3V0ZU5vZGUuY2hpbGRyZW4gPSB0ZW1wUm91dGVDaGlsZHJlbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0ZW1wUHJvakNoaWxkcmVuLnB1c2godGVtcFJvdXRlTm9kZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGVtcFByb2pOb2RlLmNoaWxkcmVuID0gdGVtcFByb2pDaGlsZHJlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRlbXBUcmVlRGF0YS5wdXNoKHRlbXBQcm9qTm9kZSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnVEhFIFRSRUU6ICcsIHRlbXBUcmVlRGF0YSk7XG4gICAgICAgIHJldHVybiB0ZW1wVHJlZURhdGE7XG5cbiAgICAgICAgLy8gcmV0dXJuIHRlbXBUcmVlRGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgSGFuZGxlUm91dGUocm91dGU6IHN0cmluZykge1xuICAgICAgICBjb25zb2xlLmxvZygncm91dGU6ICcsIHJvdXRlKTtcbiAgICB9XG59XG4iLCI8IS0tIFRSRUUgLS0+XG48IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJQcm9qZWN0TG9va3Vwcz9CdWlsZFRyZWUoKTpmYWxzZVwiPjwvbmctY29udGFpbmVyPiAtLT5cbjxsY3Utc2xvdHRlZC1jYXJkLWxnXG4gICAgKm5nSWY9XCJQcm9qZWN0TG9va3Vwcz8ubGVuZ3RoID4gMFwiXG4gICAgY2xhc3M9XCJmaXQtY29udGVudFwiXG4gICAgW2xvYWRpbmddPVwiTG9hZGluZ1wiXG4gICAgY2FyZC10aXRsZT1cIlByb2plY3RcIlxuICAgIGljb249XCJ3b3JrX291dGxpbmVcIlxuICAgIFttYWluLXNsb3QtZGVzY3JpcHRpb25dPVwiUHJvamVjdExvb2t1cHM/Lmxlbmd0aCArICcgcHJvamVjdChzKSBjb25maWd1cmVkJ1wiXG4gICAgKG1haW4tYWN0aW9uLWNsaWNrZWQpPVwiUm91dGVUb1BhdGgoJy9kYXNoYm9hcmQvY3JlYXRlLXByb2plY3QnKVwiXG4+XG4gICAgPCEtLSA8ZGl2PiAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRGF0YVNvdXJjZVwiPlxuICAgICAgICA8bWF0LXRyZWUgW2RhdGFTb3VyY2VdPVwiRGF0YVNvdXJjZVwiIFt0cmVlQ29udHJvbF09XCJ0cmVlQ29udHJvbFwiPlxuICAgICAgICAgICAgPG1hdC10cmVlLW5vZGUgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGVcIiBtYXRUcmVlTm9kZVBhZGRpbmc+XG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJzbG90LWhlYWRlci1hbmNob3JcIiBbcm91dGVyTGlua109XCJub2RlLnJvdXRlckxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5vZGUubmFtZVwiIGNsYXNzPVwic2xvdC1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub2RlLmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJzbG90LWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBub2RlLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb25zLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb24tYW5jaG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIm5vZGUucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJFZGl0IHt7IG5vZGUubmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPmVkaXQ8L21hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb24tYW5jaG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIm5vZGUudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJMYXVuY2gge3sgbm9kZS5uYW1lIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+bGF1bmNoPC9tYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbj48L2J1dHRvbj4gLS0+XG4gICAgICAgICAgICA8L21hdC10cmVlLW5vZGU+XG4gICAgICAgICAgICA8bWF0LXRyZWUtbm9kZVxuICAgICAgICAgICAgICAgICptYXRUcmVlTm9kZURlZj1cImxldCBub2RlOyB3aGVuOiBIYXNDaGlsZFwiXG4gICAgICAgICAgICAgICAgbWF0VHJlZU5vZGVQYWRkaW5nXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgbWF0VHJlZU5vZGVUb2dnbGVcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInVG9nZ2xlICcgKyBub2RlLm5hbWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJleHBhbmRfbW9yZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJjaGV2cm9uX3JpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJzbG90LWhlYWRlci1hbmNob3JcIiBbcm91dGVyTGlua109XCJub2RlLnJvdXRlckxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5vZGUubmFtZVwiIGNsYXNzPVwic2xvdC1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBub2RlLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub2RlLmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJzbG90LWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBub2RlLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb25zLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb24tYW5jaG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIm5vZGUucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJFZGl0IHt7IG5vZGUubmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPmVkaXQ8L21hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb24tYW5jaG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIm5vZGUudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJMYXVuY2gge3sgbm9kZS5uYW1lIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+bGF1bmNoPC9tYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC10cmVlLW5vZGU+XG4gICAgICAgIDwvbWF0LXRyZWU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIDxkaXZcbiAgICAgICAgY2xhc3M9XCJtYWluLXNsb3QtY29udGFpbmVyXCJcbiAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgcHJvamVjdExvb2t1cCBvZiBQcm9qZWN0TG9va3Vwc1wiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInNsb3QtY29udGVudFwiXG4gICAgICAgICAgICAqbmdJZj1cIlN0YXRlPy5FYUM/LlByb2plY3RzW3Byb2plY3RMb29rdXBdOyBsZXQgcHJvamVjdFwiXG4gICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2xvdC1oZWFkZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNsb3QtaGVhZGVyXCIgZnhMYXlvdXQ9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1oZWFkZXItYW5jaG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL3Byb2plY3QnLCBwcm9qZWN0TG9va3VwXVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcm9qZWN0LlByb2plY3QuTmFtZVwiIGNsYXNzPVwic2xvdC1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJvamVjdC5Qcm9qZWN0Lk5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvamVjdC5Qcm9qZWN0LkRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IHByb2plY3QuUHJvamVjdC5EZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9ucy1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIGNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbi1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9wcm9qZWN0JywgcHJvamVjdExvb2t1cF1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJFZGl0IHt7IHByb2plY3QuUHJvamVjdC5OYW1lIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5lZGl0PC9tYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb24tYW5jaG9yXCJcbiAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAnaHR0cHM6Ly8nICsgcHJvamVjdD8uSG9zdHNbcHJvamVjdD8uSG9zdHM/Lmxlbmd0aCAtIDFdXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkxhdW5jaCB7eyBwcm9qZWN0LlByb2plY3QuTmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+bGF1bmNoPC9tYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PiAtLT5cblxuICAgIDwhLS0gPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlRvZ2dsZVNsaWNlcygnUHJvamVjdHMnKVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiUHJvamVjdExvb2t1cHM/Lmxlbmd0aCA+IDVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIFNsaWNlcy5Qcm9qZWN0cyA9PSBQcm9qZWN0TG9va3Vwcz8ubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIlNob3cgTGVzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlNob3cgTW9yZVwiXG4gICAgICAgICAgICAgICAgICAgIH19XG5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGljZXMuUHJvamVjdHMgPT0gUHJvamVjdExvb2t1cHM/Lmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiZXhwYW5kX2xlc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiZXhwYW5kX21vcmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XG4gICAgPCEtLSA8L2Rpdj4gLS0+XG48L2xjdS1zbG90dGVkLWNhcmQtbGc+XG5cbjwhLS0gT3JpZ2luYWwgLS0+XG48IS0tIDxsY3Utc2xvdHRlZC1jYXJkLWxnXG4gICAgKm5nSWY9XCJQcm9qZWN0TG9va3Vwcz8ubGVuZ3RoID4gMFwiXG4gICAgY2xhc3M9XCJmaXQtY29udGVudFwiXG4gICAgY2FyZC10aXRsZT1cIlByb2plY3RcIlxuICAgIGljb249XCJ3b3JrX291dGxpbmVcIlxuICAgIFtsb2FkaW5nXT1cIkxvYWRpbmdcIlxuICAgIFttYWluLXNsb3QtZGVzY3JpcHRpb25dPVwiUHJvamVjdExvb2t1cHM/Lmxlbmd0aCArICcgcHJvamVjdChzKSBjb25maWd1cmVkJ1wiXG4gICAgKG1haW4tYWN0aW9uLWNsaWNrZWQpPVwiUm91dGVUb1BhdGgoJy9kYXNoYm9hcmQvY3JlYXRlLXByb2plY3QnKVwiXG4+XG4gICAgPGRpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJtYWluLXNsb3QtY29udGFpbmVyXCJcbiAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwcm9qZWN0TG9va3VwIG9mIFByb2plY3RMb29rdXBzXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1jb250ZW50XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlByb2plY3RzW3Byb2plY3RMb29rdXBdOyBsZXQgcHJvamVjdFwiXG4gICAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNsb3QtaGVhZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2xvdC1oZWFkZXJcIiBmeExheW91dD1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtaGVhZGVyLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvcHJvamVjdCcsIHByb2plY3RMb29rdXBdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJvamVjdC5Qcm9qZWN0Lk5hbWVcIiBjbGFzcz1cInNsb3QtbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBwcm9qZWN0LlByb2plY3QuTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInByb2plY3QuUHJvamVjdC5EZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBwcm9qZWN0LlByb2plY3QuRGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb25zLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBjZW50ZXJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb24tYW5jaG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL3Byb2plY3QnLCBwcm9qZWN0TG9va3VwXVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJFZGl0IHt7IHByb2plY3QuUHJvamVjdC5OYW1lIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+ZWRpdDwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbi1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdD8uSG9zdHNbcHJvamVjdD8uSG9zdHM/Lmxlbmd0aCAtIDFdXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkxhdW5jaCB7eyBwcm9qZWN0LlByb2plY3QuTmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPmxhdW5jaDwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIFxuICAgIDwvZGl2PlxuPC9sY3Utc2xvdHRlZC1jYXJkLWxnPiAtLT5cbiJdfQ==
|