ngx-bimplus-components 0.0.165 → 0.0.166
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/assets/images/default/bimplus_Components_Info_white.svg +1 -0
- package/esm2022/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.mjs +11 -3
- package/esm2022/lib/components/bimplus-object-navigator/object-filter-result/object-filter-result.component.mjs +28 -4
- package/esm2022/lib/components/bimplus-overlay-message/bimplus-overlay-message.component.mjs +42 -0
- package/esm2022/lib/components/links-to-documents/links-to-documents.component.mjs +4 -4
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ngx-bimplus-components.mjs +79 -8
- package/fesm2022/ngx-bimplus-components.mjs.map +1 -1
- package/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.d.ts +1 -0
- package/lib/components/bimplus-object-navigator/object-filter-result/object-filter-result.component.d.ts +7 -1
- package/lib/components/bimplus-overlay-message/bimplus-overlay-message.component.d.ts +15 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, Input, Output, signal, ViewChild } from '@angular/core';
|
|
2
2
|
import { BimplusFlatTreeComponent } from '../../bimplus-flat-tree/bimplus-flat-tree.component';
|
|
3
|
+
import { BimplusOverlayMessageComponent } from '../../bimplus-overlay-message/bimplus-overlay-message.component';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export class ObjectFilterResultComponent {
|
|
5
6
|
constructor() {
|
|
6
7
|
// #region public fields
|
|
7
8
|
this.treeComponent = null;
|
|
9
|
+
this.isFilterResultInvalid = signal(false);
|
|
10
|
+
this.filterResultInvalidTitle = "";
|
|
11
|
+
this.filterResultInvalidText = "";
|
|
8
12
|
this.nodeSelectionChanged = new EventEmitter();
|
|
9
13
|
this.nodeDoubleClicked = new EventEmitter();
|
|
10
14
|
this.nodeMouseEntered = new EventEmitter();
|
|
@@ -25,6 +29,16 @@ export class ObjectFilterResultComponent {
|
|
|
25
29
|
this._selectedObjects = selectedObjects;
|
|
26
30
|
this._syncSelectedObjects();
|
|
27
31
|
}
|
|
32
|
+
/** TODO remove @Input once signal inputs release from developer preview. */
|
|
33
|
+
/* eslint-disable @angular-eslint/no-input-rename */
|
|
34
|
+
set isFilterResultInvalidValue(value) {
|
|
35
|
+
this.isFilterResultInvalid.set(value);
|
|
36
|
+
}
|
|
37
|
+
// User has clicked on close button of overlay message
|
|
38
|
+
// Set the invalid filter back to false to remove overlay message
|
|
39
|
+
setFilterResultValid() {
|
|
40
|
+
this.isFilterResultInvalid.set(false);
|
|
41
|
+
}
|
|
28
42
|
get treeData() {
|
|
29
43
|
return this._treeData;
|
|
30
44
|
}
|
|
@@ -141,11 +155,14 @@ export class ObjectFilterResultComponent {
|
|
|
141
155
|
this.treeComponent?.expand_node(node.id);
|
|
142
156
|
}
|
|
143
157
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ObjectFilterResultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
144
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: ObjectFilterResultComponent, isStandalone: true, selector: "lib-object-filter-result", inputs: { filterResult: "filterResult", selectedObjects: "selectedObjects" }, outputs: { nodeSelectionChanged: "nodeSelectionChanged", nodeDoubleClicked: "nodeDoubleClicked", nodeMouseEntered: "nodeMouseEntered", nodeMouseLeft: "nodeMouseLeft" }, viewQueries: [{ propertyName: "treeComponent", first: true, predicate: BimplusFlatTreeComponent, descendants: true }], ngImport: i0, template: "<lib-bimplus-flat-tree\r\n paddingIndent=\"1.4rem\"\r\n [treeData]=\"treeData\"\r\n enableParentHighlighting=\"false\"\r\n oneLevelMultiSelect=\"false\"\r\n multiSelect=\"true\"\r\n dataTestPrefix=\"object-filter-result-tree-\"\r\n (selectedNodes)=\"handleSelectedNodes($event)\"\r\n [customNodeTemplate]=\"objFilterResultNode\"\r\n>\r\n</lib-bimplus-
|
|
158
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: ObjectFilterResultComponent, isStandalone: true, selector: "lib-object-filter-result", inputs: { filterResult: "filterResult", selectedObjects: "selectedObjects", isFilterResultInvalidValue: ["isFilterResultInvalid", "isFilterResultInvalidValue"], filterResultInvalidTitle: "filterResultInvalidTitle", filterResultInvalidText: "filterResultInvalidText" }, outputs: { nodeSelectionChanged: "nodeSelectionChanged", nodeDoubleClicked: "nodeDoubleClicked", nodeMouseEntered: "nodeMouseEntered", nodeMouseLeft: "nodeMouseLeft" }, viewQueries: [{ propertyName: "treeComponent", first: true, predicate: BimplusFlatTreeComponent, descendants: true }], ngImport: i0, template: "<lib-bimplus-flat-tree\r\n paddingIndent=\"1.4rem\"\r\n [treeData]=\"treeData\"\r\n enableParentHighlighting=\"false\"\r\n oneLevelMultiSelect=\"false\"\r\n multiSelect=\"true\"\r\n dataTestPrefix=\"object-filter-result-tree-\"\r\n (selectedNodes)=\"handleSelectedNodes($event)\"\r\n [customNodeTemplate]=\"objFilterResultNode\"\r\n></lib-bimplus-flat-tree>\r\n\r\n@if(isFilterResultInvalid()){\r\n<div class=\"message-overlay\">\r\n <lib-bimplus-overlay-message\r\n [title]=\"filterResultInvalidTitle\"\r\n [message]=\"filterResultInvalidText\"\r\n (close)=\"setFilterResultValid()\"\r\n >\r\n </lib-bimplus-overlay-message>\r\n</div>\r\n}\r\n\r\n<ng-template #objFilterResultNode let-node=\"node\">\r\n @switch (node.nodeType) { @case (\"rootNode\") {\r\n <div class=\"object-navigator-filter-result-root-node noselect\">\r\n {{ node.name }} ( {{ getNodeObjectCounter(node.id) }} )\r\n </div>\r\n } @case (\"structureNode\") {\r\n <div class=\"noselect\">\r\n {{ node.name }} ( {{ getNodeObjectCounter(node.id) }} )\r\n </div>\r\n } @case (\"objectNode\") {\r\n <span class=\"noselect\">\r\n <div\r\n class=\"noselect\"\r\n (dblclick)=\"dblClickedObjectNode(node)\"\r\n (mouseenter)=\"mouseEnterObjectNode(node)\"\r\n (mouseleave)=\"mouseLeaveObjectNode(node)\"\r\n >\r\n {{ node.name }}\r\n </div>\r\n </span>\r\n } }\r\n</ng-template>\r\n", styles: [".noselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}lib-bimplus-flat-tree{--flat-tree-node-indent: 0;--flat-tree-folder-font-weight: 400;--flat-tree-selected-node-font-weight: 700;--flat-tree-background-color: var(--bimplus-object-filter-result-background-color, var(--flat-tree-container-background-color-enabled))}.object-navigator-filter-result-root-node{display:inline-block;text-transform:uppercase;line-height:2.4rem;font-weight:700;font-size:.9375em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:100%}.message-overlay{position:absolute;top:0;left:0;min-width:100%;min-height:100%;z-index:4}\n"], dependencies: [{ kind: "component", type: BimplusFlatTreeComponent, selector: "lib-bimplus-flat-tree", inputs: ["treeDataStringified", "treeTitle", "paddingIndent", "multiSelect", "oneLevelMultiSelect", "showFoldersIcons", "showObjectsIcons", "enableSelect", "enableParentHighlighting", "enableDragAndDrop", "dataTestPrefix", "contextMenus", "hasCheckBox1", "hasCheckBox2", "treeData", "customNodeTemplate"], outputs: ["selectedNodes", "checked1Nodes", "checked2Nodes"] }, { kind: "component", type: BimplusOverlayMessageComponent, selector: "lib-bimplus-overlay-message", inputs: ["title", "message"], outputs: ["close"] }] }); }
|
|
145
159
|
}
|
|
146
160
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ObjectFilterResultComponent, decorators: [{
|
|
147
161
|
type: Component,
|
|
148
|
-
args: [{ selector: 'lib-object-filter-result', standalone: true, imports: [
|
|
162
|
+
args: [{ selector: 'lib-object-filter-result', standalone: true, imports: [
|
|
163
|
+
BimplusFlatTreeComponent,
|
|
164
|
+
BimplusOverlayMessageComponent,
|
|
165
|
+
], template: "<lib-bimplus-flat-tree\r\n paddingIndent=\"1.4rem\"\r\n [treeData]=\"treeData\"\r\n enableParentHighlighting=\"false\"\r\n oneLevelMultiSelect=\"false\"\r\n multiSelect=\"true\"\r\n dataTestPrefix=\"object-filter-result-tree-\"\r\n (selectedNodes)=\"handleSelectedNodes($event)\"\r\n [customNodeTemplate]=\"objFilterResultNode\"\r\n></lib-bimplus-flat-tree>\r\n\r\n@if(isFilterResultInvalid()){\r\n<div class=\"message-overlay\">\r\n <lib-bimplus-overlay-message\r\n [title]=\"filterResultInvalidTitle\"\r\n [message]=\"filterResultInvalidText\"\r\n (close)=\"setFilterResultValid()\"\r\n >\r\n </lib-bimplus-overlay-message>\r\n</div>\r\n}\r\n\r\n<ng-template #objFilterResultNode let-node=\"node\">\r\n @switch (node.nodeType) { @case (\"rootNode\") {\r\n <div class=\"object-navigator-filter-result-root-node noselect\">\r\n {{ node.name }} ( {{ getNodeObjectCounter(node.id) }} )\r\n </div>\r\n } @case (\"structureNode\") {\r\n <div class=\"noselect\">\r\n {{ node.name }} ( {{ getNodeObjectCounter(node.id) }} )\r\n </div>\r\n } @case (\"objectNode\") {\r\n <span class=\"noselect\">\r\n <div\r\n class=\"noselect\"\r\n (dblclick)=\"dblClickedObjectNode(node)\"\r\n (mouseenter)=\"mouseEnterObjectNode(node)\"\r\n (mouseleave)=\"mouseLeaveObjectNode(node)\"\r\n >\r\n {{ node.name }}\r\n </div>\r\n </span>\r\n } }\r\n</ng-template>\r\n", styles: [".noselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}lib-bimplus-flat-tree{--flat-tree-node-indent: 0;--flat-tree-folder-font-weight: 400;--flat-tree-selected-node-font-weight: 700;--flat-tree-background-color: var(--bimplus-object-filter-result-background-color, var(--flat-tree-container-background-color-enabled))}.object-navigator-filter-result-root-node{display:inline-block;text-transform:uppercase;line-height:2.4rem;font-weight:700;font-size:.9375em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:100%}.message-overlay{position:absolute;top:0;left:0;min-width:100%;min-height:100%;z-index:4}\n"] }]
|
|
149
166
|
}], propDecorators: { treeComponent: [{
|
|
150
167
|
type: ViewChild,
|
|
151
168
|
args: [BimplusFlatTreeComponent]
|
|
@@ -153,6 +170,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
153
170
|
type: Input
|
|
154
171
|
}], selectedObjects: [{
|
|
155
172
|
type: Input
|
|
173
|
+
}], isFilterResultInvalidValue: [{
|
|
174
|
+
type: Input,
|
|
175
|
+
args: [{ alias: 'isFilterResultInvalid' }]
|
|
176
|
+
}], filterResultInvalidTitle: [{
|
|
177
|
+
type: Input
|
|
178
|
+
}], filterResultInvalidText: [{
|
|
179
|
+
type: Input
|
|
156
180
|
}], nodeSelectionChanged: [{
|
|
157
181
|
type: Output
|
|
158
182
|
}], nodeDoubleClicked: [{
|
|
@@ -162,4 +186,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
162
186
|
}], nodeMouseLeft: [{
|
|
163
187
|
type: Output
|
|
164
188
|
}] } });
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZpbHRlci1yZXN1bHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yL29iamVjdC1maWx0ZXItcmVzdWx0L29iamVjdC1maWx0ZXItcmVzdWx0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci9vYmplY3QtZmlsdGVyLXJlc3VsdC9vYmplY3QtZmlsdGVyLXJlc3VsdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scURBQXFELENBQUM7O0FBYy9GLE1BQU0sT0FBTywyQkFBMkI7SUFQeEM7UUFTRSx3QkFBd0I7UUFDYSxrQkFBYSxHQUFvQyxJQUFJLENBQUM7UUFrQmpGLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFDcEQsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMvQyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzlDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQXlDckQsNEJBQTRCO1FBRTVCLHlCQUF5QjtRQUNqQixrQkFBYSxHQUFnRCxJQUFJLENBQUM7UUFDbEUsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQUMzQixxQkFBZ0IsR0FBb0IsRUFBRSxDQUFDO1FBQ3ZDLDBCQUFxQixHQUF5QixFQUFFLENB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LENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQzsrR0E3S1UsMkJBQTJCO21HQUEzQiwyQkFBMkIsMFhBRzNCLHdCQUF3QixnRENsQnJDLG9uQ0E2QkEsNHFCRGxCWSx3QkFBd0I7OzRGQUl2QiwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0UsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLHdCQUF3QixDQUFDOzhCQU9FLGFBQWE7c0JBQWpELFNBQVM7dUJBQUMsd0JBQXdCO2dCQUcvQixZQUFZO3NCQURmLEtBQUs7Z0JBT0YsZUFBZTtzQkFEbEIsS0FBSztnQkFVSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCaW1wbHVzRmxhdFRyZWVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iaW1wbHVzLWZsYXQtdHJlZS9iaW1wbHVzLWZsYXQtdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGbGF0Tm9kZSwgVHJlZU5vZGUgfSBmcm9tICcuLi8uLi9iaW1wbHVzLWZsYXQtdHJlZS9iaW1wbHVzLWZsYXQtdHJlZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgKiBhcyBXZWJTZGsgZnJvbSAnYmltcGx1cy13ZWJzZGsnO1xyXG5cclxudHlwZSBUcmVlTm9kZXNMb29rdXAgPSBSZWNvcmQ8c3RyaW5nLCBUcmVlTm9kZT47XHJcbnR5cGUgVHJlZU5vZGVPYmplY3RDb3VudHMgPSBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItb2JqZWN0LWZpbHRlci1yZXN1bHQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0JpbXBsdXNGbGF0VHJlZUNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1maWx0ZXItcmVzdWx0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vb2JqZWN0LWZpbHRlci1yZXN1bHQuY29tcG9uZW50Lmxlc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RGaWx0ZXJSZXN1bHRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgLy8gI3JlZ2lvbiBwdWJsaWMgZmllbGRzXHJcbiAgQFZpZXdDaGlsZChCaW1wbHVzRmxhdFRyZWVDb21wb25lbnQpIHRyZWVDb21wb25lbnQ6IEJpbXBsdXNGbGF0VHJlZUNvbXBvbmVudCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBmaWx0ZXJSZXN1bHQocmVzOiBXZWJTZGsuT2JqZWN0RmlsdGVyU3RydWN0dXJlUmVzcG9uc2UgfCBudWxsKSB7XHJcbiAgICB0aGlzLl9maWx0ZXJSZXN1bHQgPSByZXM7XHJcbiAgICB0aGlzLl91cGRhdGVUcmVlRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgc2VsZWN0ZWRPYmplY3RzKHNlbGVjdGVkT2JqZWN0czogc3RyaW5nW10pIHtcclxuICAgIHRoaXMuX3NlbGVjdGVkT2JqZWN0cyA9IHNlbGVjdGVkT2JqZWN0cztcclxuICAgIHRoaXMuX3N5bmNTZWxlY3RlZE9iamVjdHMoKTtcclxuICB9XHJcblxyXG4gIGdldCB0cmVlRGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLl90cmVlRGF0YTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBub2RlU2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XHJcbiAgQE91dHB1dCgpIG5vZGVEb3VibGVDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG5vZGVNb3VzZUVudGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgbm9kZU1vdXNlTGVmdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIC8vICNlbmRyZWdpb24gcHVibGljIGZpZWxkc1xyXG5cclxuICAvLyAjcmVnaW9uIHB1YmxpYyBtZXRob2RzXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3RyZWVEYXRhICYmIHRoaXMuX3RyZWVEYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5fZXhwYW5kVG9PYmplY3RMZXZlbCh0aGlzLl90cmVlRGF0YVswXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZWxlY3RlZE5vZGVzKG5vZGVzOiBGbGF0Tm9kZVtdKSB7XHJcbiAgICB0aGlzLm5vZGVTZWxlY3Rpb25DaGFuZ2VkLmVtaXQobm9kZXMubWFwKHggPT4geC5pZCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Tm9kZU9iamVjdENvdW50ZXIoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyZWVOb2RlT2JqZWN0Q291bnRzW2lkXTtcclxuICB9XHJcblxyXG4gIGRibENsaWNrZWRPYmplY3ROb2RlKG5vZGU6IFRyZWVOb2RlKSB7XHJcbiAgICB0aGlzLm5vZGVEb3VibGVDbGlja2VkLmVtaXQobm9kZS5pZCk7XHJcbiAgfVxyXG5cclxuICBtb3VzZUVudGVyT2JqZWN0Tm9kZShub2RlOiBUcmVlTm9kZSkge1xyXG4gICAgdGhpcy5ub2RlTW91c2VFbnRlcmVkLmVtaXQobm9kZS5pZCk7XHJcbiAgfVxyXG5cclxuICBtb3VzZUxlYXZlT2JqZWN0Tm9kZShub2RlOiBUcmVlTm9kZSkge1xyXG4gICAgdGhpcy5ub2RlTW91c2VMZWZ0LmVtaXQobm9kZS5pZCk7XHJcbiAgfVxyXG5cclxuICBleHBhbmRUb09iamVjdExldmVsKCkge1xyXG4gICAgaWYgKHRoaXMudHJlZURhdGEubGVuZ3RoID09PSAwKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fZXhwYW5kVG9PYmplY3RMZXZlbCh0aGlzLl90cmVlRGF0YVswXSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckZpbHRlclJlc3VsdCgpIHtcclxuICAgIHRoaXMuX2ZpbHRlclJlc3VsdCA9IG51bGw7XHJcbiAgICB0aGlzLl90cmVlRGF0YSA9IFtdO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uIHB1YmxpYyBtZXRob2RzXHJcblxyXG4gIC8vICNyZWdpb24gcHJpdmF0ZSBmaWVsZHNcclxuICBwcml2YXRlIF9maWx0ZXJSZXN1bHQ6IFdlYlNkay5PYmplY3RGaWx0ZXJTdHJ1Y3R1cmVSZXNwb25zZSB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgX3RyZWVEYXRhOiBUcmVlTm9kZVtdID0gW107XHJcbiAgcHJpdmF0ZSBfdHJlZU5vZGVzTG9va3VwOiBUcmVlTm9kZXNMb29rdXAgPSB7fTtcclxuICBwcml2YXRlIF90cmVlTm9kZU9iamVjdENvdW50czogVHJlZU5vZGVPYmplY3RDb3VudHMgPSB7fTtcclxuICBwcml2YXRlIF9zZWxlY3RlZE9iamVjdHM6IHN0cmluZ1tdID0gW107XHJcbiAgLy8gI2VuZHJlZ2lvbiBwcml2YXRlIGZpZWxkc1xyXG5cclxuICAvLyAjcmVnaW9uIHByaXZhdGUgbWV0aG9kc1xyXG4gIHByaXZhdGUgX3N5bmNTZWxlY3RlZE9iamVjdHMoKSB7XHJcblxyXG4gICAgY29uc3Qgbm9kZXM6IFRyZWVOb2RlW10gPSBbXVxyXG5cclxuICAgIGZvciAoY29uc3QgaWQgb2YgdGhpcy5fc2VsZWN0ZWRPYmplY3RzKSB7XHJcbiAgICAgIGNvbnN0IHRyZWVOb2RlID0gdGhpcy5fdHJlZU5vZGVzTG9va3VwW2lkXTtcclxuICAgICAgaWYgKHRyZWVOb2RlKSB7XHJcbiAgICAgICAgbm9kZXMucHVzaCh0cmVlTm9kZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnJlc2V0X3NlbGVjdGlvbigpO1xyXG5cclxuICAgIGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xyXG4gICAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnNlbGVjdF9ub2RlKG5vZGUuaWQpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZU9iamVjdENvdW50ZXJzKCkge1xyXG4gICAgdGhpcy5fdHJlZU5vZGVPYmplY3RDb3VudHMgPSB7fTtcclxuICAgIHRoaXMuX2NvdW50T2JqZWN0cyh0aGlzLnRyZWVEYXRhWzBdKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvdW50T2JqZWN0cyhub2RlOiBUcmVlTm9kZSkge1xyXG4gICAgaWYgKG5vZGUubm9kZVR5cGUgJiYgbm9kZS5ub2RlVHlwZSA9PT0gXCJvYmplY3ROb2RlXCIpXHJcbiAgICAgIHJldHVybiAxO1xyXG5cclxuICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICBpZiAoIW5vZGUuY2hpbGRyZW4pXHJcbiAgICAgIHJldHVybiAwO1xyXG5cclxuICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbikge1xyXG4gICAgICBpZiAoIWNoaWxkKVxyXG4gICAgICAgIGNvbnRpbnVlO1xyXG5cclxuICAgICAgY291bnQgKz0gdGhpcy5fY291bnRPYmplY3RzKGNoaWxkKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl90cmVlTm9kZU9iamVjdENvdW50c1tub2RlLmlkXSA9IGNvdW50O1xyXG4gICAgcmV0dXJuIGNvdW50O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlVHJlZURhdGEoKSB7XHJcbiAgICBpZiAoIXRoaXMuX2ZpbHRlclJlc3VsdCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fdHJlZU5vZGVzTG9va3VwID0ge307XHJcbiAgICB0aGlzLl90cmVlRGF0YSA9IFt0aGlzLl9jb252ZXJ0RmlsdGVyUmVzdWx0VG9UcmVlTm9kZSh0aGlzLl9maWx0ZXJSZXN1bHQuc3RydWN0dXJlLCB0aGlzLl90cmVlTm9kZXNMb29rdXApXTtcclxuICAgIHRoaXMuX3VwZGF0ZU9iamVjdENvdW50ZXJzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jb252ZXJ0RmlsdGVyUmVzdWx0VG9UcmVlTm9kZShub2RlOiBXZWJTZGsuU3RydWN0dXJlTm9kZSwgbm9kZXNMb29rdXA6IFRyZWVOb2Rlc0xvb2t1cCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCk6IFRyZWVOb2RlIHtcclxuXHJcbiAgICBjb25zdCB0cmVlTm9kZTogVHJlZU5vZGUgPSB7XHJcbiAgICAgIG5hbWU6IG5vZGUubmFtZSxcclxuICAgICAgaWQ6IG5vZGUuaWQsXHJcbiAgICAgIHBhcmVudDogbm9kZS5wYXJlbnRcclxuICAgIH07XHJcblxyXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcclxuICAgICAgdHJlZU5vZGUuY2hpbGRyZW4gPSBbXTtcclxuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBub2RlLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgY29uc3QgY2hpbGRUcmVlTm9kZSA9IHRoaXMuX2NvbnZlcnRGaWx0ZXJSZXN1bHRUb1RyZWVOb2RlKGNoaWxkLCBub2Rlc0xvb2t1cCk7XHJcbiAgICAgICAgdHJlZU5vZGUuY2hpbGRyZW4ucHVzaChjaGlsZFRyZWVOb2RlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghdHJlZU5vZGUucGFyZW50KSB7XHJcbiAgICAgIHRyZWVOb2RlLm5vZGVUeXBlID0gXCJyb290Tm9kZVwiO1xyXG4gICAgfSBlbHNlIGlmIChub2RlLnR5cGUgPT09IFwiU3RydWN0dXJlXCIpIHtcclxuICAgICAgdHJlZU5vZGUubm9kZVR5cGUgPSBcInN0cnVjdHVyZU5vZGVcIjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRyZWVOb2RlLm5vZGVUeXBlID0gXCJvYmplY3ROb2RlXCJcclxuICAgIH1cclxuXHJcbiAgICBpZiAobm9kZXNMb29rdXApIHtcclxuICAgICAgbm9kZXNMb29rdXBbdHJlZU5vZGUuaWRdID0gdHJlZU5vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRyZWVOb2RlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZXhwYW5kVG9PYmplY3RMZXZlbChub2RlOiBUcmVlTm9kZSkge1xyXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcclxuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBub2RlLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKGNoaWxkLm5vZGVUeXBlICYmIGNoaWxkLm5vZGVUeXBlID09PSBcIm9iamVjdE5vZGVcIikge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9leHBhbmRUb09iamVjdExldmVsKGNoaWxkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50cmVlQ29tcG9uZW50Py5leHBhbmRfbm9kZShub2RlLmlkKTtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBwcml2YXRlIG1ldGhvZHNcclxuXHJcbn1cclxuIiwiPGxpYi1iaW1wbHVzLWZsYXQtdHJlZVxyXG4gIHBhZGRpbmdJbmRlbnQ9XCIxLjRyZW1cIlxyXG4gIFt0cmVlRGF0YV09XCJ0cmVlRGF0YVwiXHJcbiAgZW5hYmxlUGFyZW50SGlnaGxpZ2h0aW5nPVwiZmFsc2VcIlxyXG4gIG9uZUxldmVsTXVsdGlTZWxlY3Q9XCJmYWxzZVwiXHJcbiAgbXVsdGlTZWxlY3Q9XCJ0cnVlXCJcclxuICBkYXRhVGVzdFByZWZpeD1cIm9iamVjdC1maWx0ZXItcmVzdWx0LXRyZWUtXCJcclxuICAoc2VsZWN0ZWROb2Rlcyk9XCJoYW5kbGVTZWxlY3RlZE5vZGVzKCRldmVudClcIlxyXG4gIFtjdXN0b21Ob2RlVGVtcGxhdGVdPVwib2JqRmlsdGVyUmVzdWx0Tm9kZVwiXHJcbj5cclxuPC9saWItYmltcGx1cy1mbGF0LXRyZWU+XHJcblxyXG48bmctdGVtcGxhdGUgI29iakZpbHRlclJlc3VsdE5vZGUgbGV0LW5vZGU9J25vZGUnPlxyXG4gIEBzd2l0Y2ggKG5vZGUubm9kZVR5cGUpIHtcclxuICAgIEBjYXNlIChcInJvb3ROb2RlXCIpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cIm9iamVjdC1uYXZpZ2F0b3ItZmlsdGVyLXJlc3VsdC1yb290LW5vZGUgbm9zZWxlY3RcIj4ge3tub2RlLm5hbWV9fSAmbmJzcDsmIzQwOyB7e2dldE5vZGVPYmplY3RDb3VudGVyKG5vZGUuaWQpfX0gJiM0MTs8L2Rpdj5cclxuICAgIH1cclxuICAgIEBjYXNlIChcInN0cnVjdHVyZU5vZGVcIikge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwibm9zZWxlY3RcIj4ge3tub2RlLm5hbWV9fSAmbmJzcDsmIzQwOyB7e2dldE5vZGVPYmplY3RDb3VudGVyKG5vZGUuaWQpfX0gJiM0MTs8L2Rpdj5cclxuICAgIH1cclxuICAgIEBjYXNlIChcIm9iamVjdE5vZGVcIikge1xyXG4gICAgICA8c3BhbiBjbGFzcz1cIm5vc2VsZWN0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5vc2VsZWN0XCIgKGRibGNsaWNrKT1cImRibENsaWNrZWRPYmplY3ROb2RlKG5vZGUpXCIgKG1vdXNlZW50ZXIpPVwibW91c2VFbnRlck9iamVjdE5vZGUobm9kZSlcIiAgKG1vdXNlbGVhdmUpPVwibW91c2VMZWF2ZU9iamVjdE5vZGUobm9kZSlcIj5cclxuICAgICAgICAgIHt7bm9kZS5uYW1lfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9zcGFuPiAgICAgICAgICBcclxuICAgIH1cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZpbHRlci1yZXN1bHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yL29iamVjdC1maWx0ZXItcmVzdWx0L29iamVjdC1maWx0ZXItcmVzdWx0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci9vYmplY3QtZmlsdGVyLXJlc3VsdC9vYmplY3QtZmlsdGVyLXJlc3VsdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRS9GLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDOztBQWdCakgsTUFBTSxPQUFPLDJCQUEyQjtJQVZ4QztRQVlFLHdCQUF3QjtRQUNhLGtCQUFhLEdBQW9DLElBQUksQ0FBQztRQW9CeEUsMEJBQXFCLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBUXpELDZCQUF3QixHQUFXLEVBQUUsQ0FBQztRQUN0Qyw0QkFBdUIsR0FBVyxFQUFFLENBQUM7UUFNcEMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUNwRCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQy9DLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDOUMsa0JBQWEsR0FBRyxJ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IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIHNpZ25hbCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJpbXBsdXNGbGF0VHJlZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2JpbXBsdXMtZmxhdC10cmVlL2JpbXBsdXMtZmxhdC10cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZsYXROb2RlLCBUcmVlTm9kZSB9IGZyb20gJy4uLy4uL2JpbXBsdXMtZmxhdC10cmVlL2JpbXBsdXMtZmxhdC10cmVlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEJpbXBsdXNPdmVybGF5TWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2JpbXBsdXMtb3ZlcmxheS1tZXNzYWdlL2JpbXBsdXMtb3ZlcmxheS1tZXNzYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIFdlYlNkayBmcm9tICdiaW1wbHVzLXdlYnNkayc7XHJcblxyXG50eXBlIFRyZWVOb2Rlc0xvb2t1cCA9IFJlY29yZDxzdHJpbmcsIFRyZWVOb2RlPjtcclxudHlwZSBUcmVlTm9kZU9iamVjdENvdW50cyA9IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1vYmplY3QtZmlsdGVyLXJlc3VsdCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBCaW1wbHVzRmxhdFRyZWVDb21wb25lbnQsXHJcbiAgICBCaW1wbHVzT3ZlcmxheU1lc3NhZ2VDb21wb25lbnQsXHJcbl0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1maWx0ZXItcmVzdWx0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vb2JqZWN0LWZpbHRlci1yZXN1bHQuY29tcG9uZW50Lmxlc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RGaWx0ZXJSZXN1bHRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgLy8gI3JlZ2lvbiBwdWJsaWMgZmllbGRzXHJcbiAgQFZpZXdDaGlsZChCaW1wbHVzRmxhdFRyZWVDb21wb25lbnQpIHRyZWVDb21wb25lbnQ6IEJpbXBsdXNGbGF0VHJlZUNvbXBvbmVudCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBmaWx0ZXJSZXN1bHQocmVzOiBXZWJTZGsuT2JqZWN0RmlsdGVyU3RydWN0dXJlUmVzcG9uc2UgfCBudWxsKSB7XHJcbiAgICB0aGlzLl9maWx0ZXJSZXN1bHQgPSByZXM7XHJcbiAgICB0aGlzLl91cGRhdGVUcmVlRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgc2VsZWN0ZWRPYmplY3RzKHNlbGVjdGVkT2JqZWN0czogc3RyaW5nW10pIHtcclxuICAgIHRoaXMuX3NlbGVjdGVkT2JqZWN0cyA9IHNlbGVjdGVkT2JqZWN0cztcclxuICAgIHRoaXMuX3N5bmNTZWxlY3RlZE9iamVjdHMoKTtcclxuICB9XHJcblxyXG4gIC8qKiBUT0RPIHJlbW92ZSBASW5wdXQgb25jZSBzaWduYWwgaW5wdXRzIHJlbGVhc2UgZnJvbSBkZXZlbG9wZXIgcHJldmlldy4gKi9cclxuICAvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lICovXHJcbiAgQElucHV0KHsgYWxpYXM6ICdpc0ZpbHRlclJlc3VsdEludmFsaWQnIH0pXHJcbiAgc2V0IGlzRmlsdGVyUmVzdWx0SW52YWxpZFZhbHVlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmlzRmlsdGVyUmVzdWx0SW52YWxpZC5zZXQodmFsdWUpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNGaWx0ZXJSZXN1bHRJbnZhbGlkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgLy8gVXNlciBoYXMgY2xpY2tlZCBvbiBjbG9zZSBidXR0b24gb2Ygb3ZlcmxheSBtZXNzYWdlXHJcbiAgLy8gU2V0IHRoZSBpbnZhbGlkIGZpbHRlciBiYWNrIHRvIGZhbHNlIHRvIHJlbW92ZSBvdmVybGF5IG1lc3NhZ2VcclxuICBwdWJsaWMgc2V0RmlsdGVyUmVzdWx0VmFsaWQoKSB7XHJcbiAgICB0aGlzLmlzRmlsdGVyUmVzdWx0SW52YWxpZC5zZXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgZmlsdGVyUmVzdWx0SW52YWxpZFRpdGxlOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIGZpbHRlclJlc3VsdEludmFsaWRUZXh0OiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBnZXQgdHJlZURhdGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHJlZURhdGE7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgbm9kZVNlbGVjdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xyXG4gIEBPdXRwdXQoKSBub2RlRG91YmxlQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBub2RlTW91c2VFbnRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG5vZGVNb3VzZUxlZnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAvLyAjZW5kcmVnaW9uIHB1YmxpYyBmaWVsZHNcclxuXHJcbiAgLy8gI3JlZ2lvbiBwdWJsaWMgbWV0aG9kc1xyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl90cmVlRGF0YSAmJiB0aGlzLl90cmVlRGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuX2V4cGFuZFRvT2JqZWN0TGV2ZWwodGhpcy5fdHJlZURhdGFbMF0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2VsZWN0ZWROb2Rlcyhub2RlczogRmxhdE5vZGVbXSkge1xyXG4gICAgdGhpcy5ub2RlU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KG5vZGVzLm1hcCh4ID0+IHguaWQpKTtcclxuICB9XHJcblxyXG4gIGdldE5vZGVPYmplY3RDb3VudGVyKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLl90cmVlTm9kZU9iamVjdENvdW50c1tpZF07XHJcbiAgfVxyXG5cclxuICBkYmxDbGlja2VkT2JqZWN0Tm9kZShub2RlOiBUcmVlTm9kZSkge1xyXG4gICAgdGhpcy5ub2RlRG91YmxlQ2xpY2tlZC5lbWl0KG5vZGUuaWQpO1xyXG4gIH1cclxuXHJcbiAgbW91c2VFbnRlck9iamVjdE5vZGUobm9kZTogVHJlZU5vZGUpIHtcclxuICAgIHRoaXMubm9kZU1vdXNlRW50ZXJlZC5lbWl0KG5vZGUuaWQpO1xyXG4gIH1cclxuXHJcbiAgbW91c2VMZWF2ZU9iamVjdE5vZGUobm9kZTogVHJlZU5vZGUpIHtcclxuICAgIHRoaXMubm9kZU1vdXNlTGVmdC5lbWl0KG5vZGUuaWQpO1xyXG4gIH1cclxuXHJcbiAgZXhwYW5kVG9PYmplY3RMZXZlbCgpIHtcclxuICAgIGlmICh0aGlzLnRyZWVEYXRhLmxlbmd0aCA9PT0gMClcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuX2V4cGFuZFRvT2JqZWN0TGV2ZWwodGhpcy5fdHJlZURhdGFbMF0pO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJGaWx0ZXJSZXN1bHQoKSB7XHJcbiAgICB0aGlzLl9maWx0ZXJSZXN1bHQgPSBudWxsO1xyXG4gICAgdGhpcy5fdHJlZURhdGEgPSBbXTtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBwdWJsaWMgbWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIHByaXZhdGUgZmllbGRzXHJcbiAgcHJpdmF0ZSBfZmlsdGVyUmVzdWx0OiBXZWJTZGsuT2JqZWN0RmlsdGVyU3RydWN0dXJlUmVzcG9uc2UgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIF90cmVlRGF0YTogVHJlZU5vZGVbXSA9IFtdO1xyXG4gIHByaXZhdGUgX3RyZWVOb2Rlc0xvb2t1cDogVHJlZU5vZGVzTG9va3VwID0ge307XHJcbiAgcHJpdmF0ZSBfdHJlZU5vZGVPYmplY3RDb3VudHM6IFRyZWVOb2RlT2JqZWN0Q291bnRzID0ge307XHJcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRPYmplY3RzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIC8vICNlbmRyZWdpb24gcHJpdmF0ZSBmaWVsZHNcclxuXHJcbiAgLy8gI3JlZ2lvbiBwcml2YXRlIG1ldGhvZHNcclxuICBwcml2YXRlIF9zeW5jU2VsZWN0ZWRPYmplY3RzKCkge1xyXG5cclxuICAgIGNvbnN0IG5vZGVzOiBUcmVlTm9kZVtdID0gW11cclxuXHJcbiAgICBmb3IgKGNvbnN0IGlkIG9mIHRoaXMuX3NlbGVjdGVkT2JqZWN0cykge1xyXG4gICAgICBjb25zdCB0cmVlTm9kZSA9IHRoaXMuX3RyZWVOb2Rlc0xvb2t1cFtpZF07XHJcbiAgICAgIGlmICh0cmVlTm9kZSkge1xyXG4gICAgICAgIG5vZGVzLnB1c2godHJlZU5vZGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50cmVlQ29tcG9uZW50Py5yZXNldF9zZWxlY3Rpb24oKTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcclxuICAgICAgdGhpcy50cmVlQ29tcG9uZW50Py5zZWxlY3Rfbm9kZShub2RlLmlkKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVPYmplY3RDb3VudGVycygpIHtcclxuICAgIHRoaXMuX3RyZWVOb2RlT2JqZWN0Q291bnRzID0ge307XHJcbiAgICB0aGlzLl9jb3VudE9iamVjdHModGhpcy50cmVlRGF0YVswXSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jb3VudE9iamVjdHMobm9kZTogVHJlZU5vZGUpIHtcclxuICAgIGlmIChub2RlLm5vZGVUeXBlICYmIG5vZGUubm9kZVR5cGUgPT09IFwib2JqZWN0Tm9kZVwiKVxyXG4gICAgICByZXR1cm4gMTtcclxuXHJcbiAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgaWYgKCFub2RlLmNoaWxkcmVuKVxyXG4gICAgICByZXR1cm4gMDtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHtcclxuICAgICAgaWYgKCFjaGlsZClcclxuICAgICAgICBjb250aW51ZTtcclxuXHJcbiAgICAgIGNvdW50ICs9IHRoaXMuX2NvdW50T2JqZWN0cyhjaGlsZCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fdHJlZU5vZGVPYmplY3RDb3VudHNbbm9kZS5pZF0gPSBjb3VudDtcclxuICAgIHJldHVybiBjb3VudDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZVRyZWVEYXRhKCkge1xyXG4gICAgaWYgKCF0aGlzLl9maWx0ZXJSZXN1bHQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3RyZWVOb2Rlc0xvb2t1cCA9IHt9O1xyXG4gICAgdGhpcy5fdHJlZURhdGEgPSBbdGhpcy5fY29udmVydEZpbHRlclJlc3VsdFRvVHJlZU5vZGUodGhpcy5fZmlsdGVyUmVzdWx0LnN0cnVjdHVyZSwgdGhpcy5fdHJlZU5vZGVzTG9va3VwKV07XHJcbiAgICB0aGlzLl91cGRhdGVPYmplY3RDb3VudGVycygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY29udmVydEZpbHRlclJlc3VsdFRvVHJlZU5vZGUobm9kZTogV2ViU2RrLlN0cnVjdHVyZU5vZGUsIG5vZGVzTG9va3VwOiBUcmVlTm9kZXNMb29rdXAgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQpOiBUcmVlTm9kZSB7XHJcblxyXG4gICAgY29uc3QgdHJlZU5vZGU6IFRyZWVOb2RlID0ge1xyXG4gICAgICBuYW1lOiBub2RlLm5hbWUsXHJcbiAgICAgIGlkOiBub2RlLmlkLFxyXG4gICAgICBwYXJlbnQ6IG5vZGUucGFyZW50XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XHJcbiAgICAgIHRyZWVOb2RlLmNoaWxkcmVuID0gW107XHJcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbikge1xyXG4gICAgICAgIGNvbnN0IGNoaWxkVHJlZU5vZGUgPSB0aGlzLl9jb252ZXJ0RmlsdGVyUmVzdWx0VG9UcmVlTm9kZShjaGlsZCwgbm9kZXNMb29rdXApO1xyXG4gICAgICAgIHRyZWVOb2RlLmNoaWxkcmVuLnB1c2goY2hpbGRUcmVlTm9kZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRyZWVOb2RlLnBhcmVudCkge1xyXG4gICAgICB0cmVlTm9kZS5ub2RlVHlwZSA9IFwicm9vdE5vZGVcIjtcclxuICAgIH0gZWxzZSBpZiAobm9kZS50eXBlID09PSBcIlN0cnVjdHVyZVwiKSB7XHJcbiAgICAgIHRyZWVOb2RlLm5vZGVUeXBlID0gXCJzdHJ1Y3R1cmVOb2RlXCI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0cmVlTm9kZS5ub2RlVHlwZSA9IFwib2JqZWN0Tm9kZVwiXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG5vZGVzTG9va3VwKSB7XHJcbiAgICAgIG5vZGVzTG9va3VwW3RyZWVOb2RlLmlkXSA9IHRyZWVOb2RlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cmVlTm9kZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2V4cGFuZFRvT2JqZWN0TGV2ZWwobm9kZTogVHJlZU5vZGUpIHtcclxuICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XHJcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbikge1xyXG4gICAgICAgIGlmIChjaGlsZC5ub2RlVHlwZSAmJiBjaGlsZC5ub2RlVHlwZSA9PT0gXCJvYmplY3ROb2RlXCIpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5fZXhwYW5kVG9PYmplY3RMZXZlbChjaGlsZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudHJlZUNvbXBvbmVudD8uZXhwYW5kX25vZGUobm9kZS5pZCk7XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gcHJpdmF0ZSBtZXRob2RzXHJcblxyXG59XHJcbiIsIjxsaWItYmltcGx1cy1mbGF0LXRyZWVcclxuICBwYWRkaW5nSW5kZW50PVwiMS40cmVtXCJcclxuICBbdHJlZURhdGFdPVwidHJlZURhdGFcIlxyXG4gIGVuYWJsZVBhcmVudEhpZ2hsaWdodGluZz1cImZhbHNlXCJcclxuICBvbmVMZXZlbE11bHRpU2VsZWN0PVwiZmFsc2VcIlxyXG4gIG11bHRpU2VsZWN0PVwidHJ1ZVwiXHJcbiAgZGF0YVRlc3RQcmVmaXg9XCJvYmplY3QtZmlsdGVyLXJlc3VsdC10cmVlLVwiXHJcbiAgKHNlbGVjdGVkTm9kZXMpPVwiaGFuZGxlU2VsZWN0ZWROb2RlcygkZXZlbnQpXCJcclxuICBbY3VzdG9tTm9kZVRlbXBsYXRlXT1cIm9iakZpbHRlclJlc3VsdE5vZGVcIlxyXG4+PC9saWItYmltcGx1cy1mbGF0LXRyZWU+XHJcblxyXG5AaWYoaXNGaWx0ZXJSZXN1bHRJbnZhbGlkKCkpe1xyXG48ZGl2IGNsYXNzPVwibWVzc2FnZS1vdmVybGF5XCI+XHJcbiAgPGxpYi1iaW1wbHVzLW92ZXJsYXktbWVzc2FnZVxyXG4gICAgW3RpdGxlXT1cImZpbHRlclJlc3VsdEludmFsaWRUaXRsZVwiXHJcbiAgICBbbWVzc2FnZV09XCJmaWx0ZXJSZXN1bHRJbnZhbGlkVGV4dFwiXHJcbiAgICAoY2xvc2UpPVwic2V0RmlsdGVyUmVzdWx0VmFsaWQoKVwiXHJcbiAgPlxyXG4gIDwvbGliLWJpbXBsdXMtb3ZlcmxheS1tZXNzYWdlPlxyXG48L2Rpdj5cclxufVxyXG5cclxuPG5nLXRlbXBsYXRlICNvYmpGaWx0ZXJSZXN1bHROb2RlIGxldC1ub2RlPVwibm9kZVwiPlxyXG4gIEBzd2l0Y2ggKG5vZGUubm9kZVR5cGUpIHsgQGNhc2UgKFwicm9vdE5vZGVcIikge1xyXG4gIDxkaXYgY2xhc3M9XCJvYmplY3QtbmF2aWdhdG9yLWZpbHRlci1yZXN1bHQtcm9vdC1ub2RlIG5vc2VsZWN0XCI+XHJcbiAgICB7eyBub2RlLm5hbWUgfX0gJm5ic3A7JiM0MDsge3sgZ2V0Tm9kZU9iamVjdENvdW50ZXIobm9kZS5pZCkgfX0gJiM0MTtcclxuICA8L2Rpdj5cclxuICB9IEBjYXNlIChcInN0cnVjdHVyZU5vZGVcIikge1xyXG4gIDxkaXYgY2xhc3M9XCJub3NlbGVjdFwiPlxyXG4gICAge3sgbm9kZS5uYW1lIH19ICZuYnNwOyYjNDA7IHt7IGdldE5vZGVPYmplY3RDb3VudGVyKG5vZGUuaWQpIH19ICYjNDE7XHJcbiAgPC9kaXY+XHJcbiAgfSBAY2FzZSAoXCJvYmplY3ROb2RlXCIpIHtcclxuICA8c3BhbiBjbGFzcz1cIm5vc2VsZWN0XCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwibm9zZWxlY3RcIlxyXG4gICAgICAoZGJsY2xpY2spPVwiZGJsQ2xpY2tlZE9iamVjdE5vZGUobm9kZSlcIlxyXG4gICAgICAobW91c2VlbnRlcik9XCJtb3VzZUVudGVyT2JqZWN0Tm9kZShub2RlKVwiXHJcbiAgICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlTGVhdmVPYmplY3ROb2RlKG5vZGUpXCJcclxuICAgID5cclxuICAgICAge3sgbm9kZS5uYW1lIH19XHJcbiAgICA8L2Rpdj5cclxuICA8L3NwYW4+XHJcbiAgfSB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, signal } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class BimplusOverlayMessageComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.title = signal("");
|
|
6
|
+
this.message = signal("");
|
|
7
|
+
this.close = new EventEmitter();
|
|
8
|
+
}
|
|
9
|
+
/** TODO remove @Input once signal inputs release from developer preview. */
|
|
10
|
+
/* eslint-disable @angular-eslint/no-input-rename */
|
|
11
|
+
set titleValue(value) {
|
|
12
|
+
this.title.set(value);
|
|
13
|
+
}
|
|
14
|
+
/** TODO remove @Input once signal inputs release from developer preview. */
|
|
15
|
+
set messageValue(value) {
|
|
16
|
+
this.message.set(value);
|
|
17
|
+
}
|
|
18
|
+
closeButton() {
|
|
19
|
+
this.close.emit();
|
|
20
|
+
// (document.activeElement as HTMLElement)?.blur(); // Remove focus of active element
|
|
21
|
+
}
|
|
22
|
+
closeKeypressed(event) {
|
|
23
|
+
if (event.key === 'Escape' || event.key === 'Esc') {
|
|
24
|
+
this.close.emit();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusOverlayMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BimplusOverlayMessageComponent, isStandalone: true, selector: "lib-bimplus-overlay-message", inputs: { titleValue: ["title", "titleValue"], messageValue: ["message", "messageValue"] }, outputs: { close: "close" }, ngImport: i0, template: "<div class=\"bimplus-overlay-message\">\r\n <div class=\"overlay-dialog-container\">\r\n <div class=\"header\">\r\n\r\n <div class=\"icon\"></div>\r\n\r\n @if (title(); as title) {\r\n <div class=\"title-text\">\r\n {{ title }}\r\n </div>\r\n }\r\n\r\n <button class=\"close-button\" (click)=\"closeButton()\" tabindex=\"0\"\r\n (keydown)=\"closeKeypressed($event)\">\r\n </button>\r\n\r\n </div>\r\n\r\n <div class=\"content\">\r\n @if (message(); as message) {\r\n <div class=\"text\" [innerHTML]=\"message\">\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".bimplus-overlay-message{color:var(--loading-spinner-text-color-enabled);position:absolute;min-width:100%;min-height:100%;background-color:var(--loading-spinner-background-color-enabled);display:flex;justify-content:center;align-items:center}.bimplus-overlay-message>.overlay-dialog-container{width:calc(100% - 1.6rem);margin:0 auto;display:inline-flex;flex-direction:column;box-shadow:0 .4rem .8rem 0 var(--card-box-shadow-color),0 .6rem 2rem 0 var(--card-box-shadow-color);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.bimplus-overlay-message>.overlay-dialog-container .header{background-color:var(--color-help-popup-title-background);height:3.2rem;display:inline-flex;align-items:center}.bimplus-overlay-message>.overlay-dialog-container .header .icon{width:1.8rem;height:1.8rem;background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M9 0C4 0 0 4 0 9s4 9 9 9 9-4 9-9-4-9-9-9zM8 4h2v2H8V4zm3 10H7v-1h1V8H7V7h3v6h1v1z\" fill=\"%23fff\"/></svg>') no-repeat center center;padding:0 1.6rem}.bimplus-overlay-message>.overlay-dialog-container .header .title-text{color:var(--main-menu-text-default);font:700 1.3832rem Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;text-transform:capitalize;margin-bottom:.2rem}.bimplus-overlay-message>.overlay-dialog-container .header .close-button{width:3.2rem;height:3.2rem;background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M5 11.8703L6.12984 13.0001L9.00025 10.1296L11.8701 12.9995L13 11.8697L10.1301 8.99973L13.0001 6.12965L11.8702 4.99976L9.00023 7.86985L6.13101 5.00058L5.00116 6.13047L7.87039 8.99975L5 11.8703Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A') no-repeat center center;background-size:2.2rem;cursor:pointer;margin:0 0 0 auto;padding-right:1.6rem;border:none}.bimplus-overlay-message>.overlay-dialog-container .content{background-color:var(--main-menu-text-default);display:flex;flex-direction:column;flex-grow:1}.bimplus-overlay-message>.overlay-dialog-container .content .text{color:var(--color-help-popup-title-background);font:400 1.28rem Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;padding:.8rem 1.6rem;flex:1;display:flex;flex-direction:column}\n"] }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusOverlayMessageComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{ selector: 'lib-bimplus-overlay-message', standalone: true, template: "<div class=\"bimplus-overlay-message\">\r\n <div class=\"overlay-dialog-container\">\r\n <div class=\"header\">\r\n\r\n <div class=\"icon\"></div>\r\n\r\n @if (title(); as title) {\r\n <div class=\"title-text\">\r\n {{ title }}\r\n </div>\r\n }\r\n\r\n <button class=\"close-button\" (click)=\"closeButton()\" tabindex=\"0\"\r\n (keydown)=\"closeKeypressed($event)\">\r\n </button>\r\n\r\n </div>\r\n\r\n <div class=\"content\">\r\n @if (message(); as message) {\r\n <div class=\"text\" [innerHTML]=\"message\">\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".bimplus-overlay-message{color:var(--loading-spinner-text-color-enabled);position:absolute;min-width:100%;min-height:100%;background-color:var(--loading-spinner-background-color-enabled);display:flex;justify-content:center;align-items:center}.bimplus-overlay-message>.overlay-dialog-container{width:calc(100% - 1.6rem);margin:0 auto;display:inline-flex;flex-direction:column;box-shadow:0 .4rem .8rem 0 var(--card-box-shadow-color),0 .6rem 2rem 0 var(--card-box-shadow-color);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.bimplus-overlay-message>.overlay-dialog-container .header{background-color:var(--color-help-popup-title-background);height:3.2rem;display:inline-flex;align-items:center}.bimplus-overlay-message>.overlay-dialog-container .header .icon{width:1.8rem;height:1.8rem;background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M9 0C4 0 0 4 0 9s4 9 9 9 9-4 9-9-4-9-9-9zM8 4h2v2H8V4zm3 10H7v-1h1V8H7V7h3v6h1v1z\" fill=\"%23fff\"/></svg>') no-repeat center center;padding:0 1.6rem}.bimplus-overlay-message>.overlay-dialog-container .header .title-text{color:var(--main-menu-text-default);font:700 1.3832rem Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;text-transform:capitalize;margin-bottom:.2rem}.bimplus-overlay-message>.overlay-dialog-container .header .close-button{width:3.2rem;height:3.2rem;background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M5 11.8703L6.12984 13.0001L9.00025 10.1296L11.8701 12.9995L13 11.8697L10.1301 8.99973L13.0001 6.12965L11.8702 4.99976L9.00023 7.86985L6.13101 5.00058L5.00116 6.13047L7.87039 8.99975L5 11.8703Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A') no-repeat center center;background-size:2.2rem;cursor:pointer;margin:0 0 0 auto;padding-right:1.6rem;border:none}.bimplus-overlay-message>.overlay-dialog-container .content{background-color:var(--main-menu-text-default);display:flex;flex-direction:column;flex-grow:1}.bimplus-overlay-message>.overlay-dialog-container .content .text{color:var(--color-help-popup-title-background);font:400 1.28rem Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;padding:.8rem 1.6rem;flex:1;display:flex;flex-direction:column}\n"] }]
|
|
33
|
+
}], propDecorators: { titleValue: [{
|
|
34
|
+
type: Input,
|
|
35
|
+
args: [{ alias: 'title' }]
|
|
36
|
+
}], messageValue: [{
|
|
37
|
+
type: Input,
|
|
38
|
+
args: [{ alias: 'message' }]
|
|
39
|
+
}], close: [{
|
|
40
|
+
type: Output
|
|
41
|
+
}] } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1vdmVybGF5LW1lc3NhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1vdmVybGF5LW1lc3NhZ2UvYmltcGx1cy1vdmVybGF5LW1lc3NhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1vdmVybGF5LW1lc3NhZ2UvYmltcGx1cy1vdmVybGF5LW1lc3NhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUS9FLE1BQU0sT0FBTyw4QkFBOEI7SUFOM0M7UUFhcUIsVUFBSyxHQUFHLE1BQU0sQ0FBUyxFQUFFLENBQUMsQ0FBQztRQU0zQixZQUFPLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXRDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBYTVDO0lBMUJDLDRFQUE0RTtJQUM1RSxvREFBb0Q7SUFDcEQsSUFBK0IsVUFBVSxDQUFDLEtBQWE7UUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUdELDRFQUE0RTtJQUM1RSxJQUFpQyxZQUFZLENBQUMsS0FBYTtRQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBS0QsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIscUZBQXFGO0lBQ3ZGLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBb0I7UUFDbEMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7K0dBMUJVLDhCQUE4QjttR0FBOUIsOEJBQThCLGdOQ1IzQyw2b0JBMEJBOzs0RkRsQmEsOEJBQThCO2tCQU4xQyxTQUFTOytCQUNFLDZCQUE2QixjQUMzQixJQUFJOzhCQVFlLFVBQVU7c0JBQXhDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQU1RLFlBQVk7c0JBQTVDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQUtqQixLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1iaW1wbHVzLW92ZXJsYXktbWVzc2FnZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmltcGx1cy1vdmVybGF5LW1lc3NhZ2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9iaW1wbHVzLW92ZXJsYXktbWVzc2FnZS5jb21wb25lbnQubGVzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEJpbXBsdXNPdmVybGF5TWVzc2FnZUNvbXBvbmVudCB7XHJcblxyXG4gIC8qKiBUT0RPIHJlbW92ZSBASW5wdXQgb25jZSBzaWduYWwgaW5wdXRzIHJlbGVhc2UgZnJvbSBkZXZlbG9wZXIgcHJldmlldy4gKi9cclxuICAvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lICovXHJcbiAgQElucHV0KHsgYWxpYXM6ICd0aXRsZScgfSkgc2V0IHRpdGxlVmFsdWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy50aXRsZS5zZXQodmFsdWUpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGl0bGUgPSBzaWduYWw8c3RyaW5nPihcIlwiKTtcclxuXHJcbiAgLyoqIFRPRE8gcmVtb3ZlIEBJbnB1dCBvbmNlIHNpZ25hbCBpbnB1dHMgcmVsZWFzZSBmcm9tIGRldmVsb3BlciBwcmV2aWV3LiAqL1xyXG4gIEBJbnB1dCh7IGFsaWFzOiAnbWVzc2FnZScgfSkgc2V0IG1lc3NhZ2VWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm1lc3NhZ2Uuc2V0KHZhbHVlKTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1lc3NhZ2UgPSBzaWduYWw8c3RyaW5nPihcIlwiKTtcclxuXHJcbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBjbG9zZUJ1dHRvbigpIHtcclxuICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xyXG4gICAgLy8gKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpPy5ibHVyKCk7IC8vIFJlbW92ZSBmb2N1cyBvZiBhY3RpdmUgZWxlbWVudFxyXG4gIH1cclxuXHJcbiAgY2xvc2VLZXlwcmVzc2VkKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJyB8fCBldmVudC5rZXkgPT09ICdFc2MnKSB7XHJcbiAgICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImJpbXBsdXMtb3ZlcmxheS1tZXNzYWdlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIm92ZXJsYXktZGlhbG9nLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImljb25cIj48L2Rpdj5cclxuXHJcbiAgICAgIEBpZiAodGl0bGUoKTsgYXMgdGl0bGUpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXRleHRcIj5cclxuICAgICAgICB7eyB0aXRsZSB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiIChjbGljayk9XCJjbG9zZUJ1dHRvbigpXCIgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgICAoa2V5ZG93bik9XCJjbG9zZUtleXByZXNzZWQoJGV2ZW50KVwiPlxyXG4gICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgICBAaWYgKG1lc3NhZ2UoKTsgYXMgbWVzc2FnZSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgW2lubmVySFRNTF09XCJtZXNzYWdlXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -332,15 +332,15 @@ export class LinksToDocumentsComponent extends BimplusLocalizedWidgetComponent {
|
|
|
332
332
|
}
|
|
333
333
|
}
|
|
334
334
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: LinksToDocumentsComponent, deps: [{ token: i1.TranslateService }, { token: i2.DialogService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i3.DecoratorsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
335
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: LinksToDocumentsComponent, isStandalone: true, selector: "lib-links-to-documents", inputs: { api: "api", canCreateAttachmentLink: "canCreateAttachmentLink", listOnly: ["listOnly", "listOnly", booleanAttribute], showEmptyMessage: ["showEmptyMessage", "showEmptyMessage", booleanAttribute], hideAttachmentSize: ["hideAttachmentSize", "hideAttachmentSize", booleanAttribute], inputBaseUrl: "inputBaseUrl", attachments: "attachments", canDeleteAttachmentLink: "canDeleteAttachmentLink", project: "project", wormholeSelector: "wormholeSelector", env: "env", rootObjectId: "rootObjectId" }, outputs: { attachmentsChange: "attachmentsChange", attachmentsLinkChange: "attachmentsLinkChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"links-to-documents\">\r\n @if (canCreateAttachmentLink && !listOnly) {\r\n <lib-bimplus-buttons-row\r\n [items]=\"buttonRowItems\"\r\n (buttonClicked)=\"buttonClicked($event)\"\r\n />\r\n }\r\n @if (wormholeSelector === 'localEmbeddedModalId'){\r\n <div class='embedded-modal-container'>\r\n <iframe id={{wormholeSelector}} [title]=\"\"></iframe>\r\n </div> \r\n }\r\n @if (!_attachments?.length && showEmptyMessage) {\r\n <div \r\n data-test=\"no-attachment-links\"\r\n class=\"bim-attachment-not-found\"\r\n > {{ '_No_attachmentlinks_found' | translate }}\r\n </div>\r\n } @else {\r\n <div class=\"scrollable-content-container\">\r\n <lib-bimplus-scrollable-container>\r\n @for (attachment of _attachments; track attachment; let i = $index) {\r\n <div class=\"attachment-row\">\r\n @if (canDeleteAttachmentLink) {\r\n <span class=\"bim-attachment-delete-button\" (click)=\"deleteAttachmentLink(attachment,$event)\" (keydown)=\"deleteAttachmentLink(attachment,$event)\">\r\n <div\r\n title=\"{{ '_Delete_attachmentlink' | translate }}\"\r\n >\r\n ✕︎\r\n </div>\r\n </span>\r\n }\r\n <a class=\"bim-attachmentlink-item\" href={{attachment.link}} target='_blank' rel='noopener noreferrer'>\r\n <div class=\"bim-attachment-name\" title={{attachment.fileName}}>\r\n {{attachment.name ? attachment.name : attachment.fileName}}\r\n </div>\r\n @if (!hideAttachmentSize) {\r\n <div class=\"bim-attachment-size\" title={{attachment.name}}>\r\n ({{attachment.size}} kB)\r\n </div>\r\n }\r\n </a>\r\n </div>\r\n }\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".text-selected{color:var(--text-highlight-text-color-enabled)}.ui-icon22px{width:2.2rem;height:2.2rem;display:inline-block;float:right;border-radius:.4rem;background-position:center center;background-repeat:no-repeat;cursor:pointer}.ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat}.touch-ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat;width:3.2rem;height:3.2rem}.ui-icon-sidemenu-important{width:2.4rem!important;height:2.4rem!important;background-size:1.8rem 1.8rem!important;background-position:center center;background-repeat:no-repeat}lib-bimplus-scrollable-container{--scrollable-container-paddin-right: 0}lib-bimplus-buttons-row{flex:0;--button-row-margin-top: 0;--button-row-margin-right: .8rem;--button-row-margin-bottom: 1.4rem;--button-row-margin-left: 0}.attachment-row{margin:var(--attachment-row-margin, 0 .8rem);border-bottom:var(--attachment-row-border-bottom, solid .1rem var(--details-controls-attachment-item-border-color))}.links-to-documents{display:flex;flex:1;flex-direction:column}.links-to-documents .scrollable-content-container{position:relative;flex:1}.links-to-documents .scrollable-content-container lib-bimplus-scrollable-container{position:absolute;top:0;bottom:0;width:100%}.bim-attachment-delete-button{color:var(--bim-attachment-delete-button, var(--details-controls-attachment-delete-button-text-color));font-weight:var(--bim-attachment-delete-button-font-weight, normal);float:right;margin-left:auto;cursor:pointer;margin-top:.2rem}.bim-attachment-delete-button:hover{color:var(--ui-text-1-color)}.bim-attachment-delete-button div{width:3.2rem;text-align:center}a.bim-attachmentlink-item,a.bim-attachmentlink-item:hover,a.bim-attachmentlink-item:visited{color:var(--dark-gray-color)}.bim-attachment-item,.bim-attachmentlink-item{display:flex;cursor:pointer;line-height:2.5rem;padding-left:var(--bim-attachmentlink-item-left-padding, 3.6rem);background-size:var(--bim-attachment-item-background-size, auto);background-repeat:no-repeat;background-position:var(--bim-attachment-item-background-position, .8rem center);background-image:var(--bim-attachment-item-background-image, url(data:image/png;base64,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));text-decoration:none!important}.bim-attachment-item .bim-attachment-name,.bim-attachmentlink-item .bim-attachment-name{padding-left:var(--bim-attachment-name-padding, 0 0 0 1rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bim-attachment-item .bim-attachment-extension,.bim-attachmentlink-item .bim-attachment-extension{white-space:nowrap}.bim-attachment-item .bim-attachment-size,.bim-attachmentlink-item .bim-attachment-size{padding-left:.5rem;white-space:nowrap;margin-right:.4rem}.bim-attachment-not-found{padding:2.5rem .5rem;color:var(--details-controls-details-not-found-text-color);text-align:center}.embedded-modal-container{display:none;box-sizing:content-box;position:fixed;inset:0;background-color:var(--portal-modal-background-color-overlay);padding:6% 9%}.embedded-modal-container iframe{width:100%;height:100%;outline:0;border:0;-webkit-box-shadow:0 0 .5rem var(--embedded-modal-shadow-color),0 0 .5rem var(--embedded-modal-shadow-color);-moz-box-shadow:0 0 .5rem var(--embedded-modal-shadow-color),0 0 .5rem var(--embedded-modal-shadow-color);box-shadow:0 0 .5rem var(--embedded-modal-shadow-color),0 0 .5rem var(--embedded-modal-shadow-color)}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: BimplusScrollableContainerComponent, selector: "lib-bimplus-scrollable-container" }, { kind: "component", type: BimplusButtonsRowComponent, selector: "lib-bimplus-buttons-row", inputs: ["items", "isMultiple", "canUpdateObject"], outputs: ["fileChanged", "buttonClicked"] }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
335
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: LinksToDocumentsComponent, isStandalone: true, selector: "lib-links-to-documents", inputs: { api: "api", canCreateAttachmentLink: "canCreateAttachmentLink", listOnly: ["listOnly", "listOnly", booleanAttribute], showEmptyMessage: ["showEmptyMessage", "showEmptyMessage", booleanAttribute], hideAttachmentSize: ["hideAttachmentSize", "hideAttachmentSize", booleanAttribute], inputBaseUrl: "inputBaseUrl", attachments: "attachments", canDeleteAttachmentLink: "canDeleteAttachmentLink", project: "project", wormholeSelector: "wormholeSelector", env: "env", rootObjectId: "rootObjectId" }, outputs: { attachmentsChange: "attachmentsChange", attachmentsLinkChange: "attachmentsLinkChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"links-to-documents\">\r\n @if (canCreateAttachmentLink && !listOnly) {\r\n <lib-bimplus-buttons-row\r\n [items]=\"buttonRowItems\"\r\n (buttonClicked)=\"buttonClicked($event)\"\r\n />\r\n }\r\n @if (wormholeSelector === 'localEmbeddedModalId'){\r\n <div class='embedded-modal-container'>\r\n <iframe id={{wormholeSelector}} [title]=\"\"></iframe>\r\n </div> \r\n }\r\n @if (!_attachments.length && showEmptyMessage) {\r\n <div \r\n data-test=\"no-attachment-links\"\r\n class=\"bim-attachment-not-found\"\r\n > {{ '_No_attachmentlinks_found' | translate }}\r\n </div>\r\n } @else {\r\n <div class=\"scrollable-content-container\">\r\n <lib-bimplus-scrollable-container>\r\n @for (attachment of _attachments; track attachment; let i = $index) {\r\n <div class=\"attachment-row\">\r\n @if (canDeleteAttachmentLink) {\r\n <span class=\"bim-attachment-delete-button\" (click)=\"deleteAttachmentLink(attachment,$event)\" (keydown)=\"deleteAttachmentLink(attachment,$event)\">\r\n <div\r\n title=\"{{ '_Delete_attachmentlink' | translate }}\"\r\n >\r\n ✕︎\r\n </div>\r\n </span>\r\n }\r\n <a class=\"bim-attachmentlink-item\" href={{attachment.link}} target='_blank' rel='noopener noreferrer'>\r\n <div class=\"bim-attachment-name\" title={{attachment.fileName}}>\r\n {{attachment.name ? attachment.name : attachment.fileName}}\r\n </div>\r\n @if (!hideAttachmentSize) {\r\n <div class=\"bim-attachment-size\" title={{attachment.name}}>\r\n ({{attachment.size}} kB)\r\n </div>\r\n }\r\n </a>\r\n </div>\r\n }\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".text-selected{color:var(--text-highlight-text-color-enabled)}.ui-icon22px{width:2.2rem;height:2.2rem;display:inline-block;float:right;border-radius:.4rem;background-position:center center;background-repeat:no-repeat;cursor:pointer}.ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat}.touch-ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat;width:3.2rem;height:3.2rem}.ui-icon-sidemenu-important{width:2.4rem!important;height:2.4rem!important;background-size:1.8rem 1.8rem!important;background-position:center center;background-repeat:no-repeat}lib-bimplus-scrollable-container{--scrollable-container-paddin-right: 0}lib-bimplus-buttons-row{flex:0;--button-row-margin-top: 0;--button-row-margin-right: .8rem;--button-row-margin-bottom: 1.4rem;--button-row-margin-left: 0}.attachment-row{margin:var(--attachment-row-margin, 0 .8rem);border-bottom:var(--attachment-row-border-bottom, solid .1rem var(--details-controls-attachment-item-border-color))}.links-to-documents{display:flex;flex:1;flex-direction:column}.links-to-documents .scrollable-content-container{position:relative;flex:1}.links-to-documents .scrollable-content-container lib-bimplus-scrollable-container{position:absolute;top:0;bottom:0;width:100%}.bim-attachment-delete-button{color:var(--bim-attachment-delete-button, var(--details-controls-attachment-delete-button-text-color));font-weight:var(--bim-attachment-delete-button-font-weight, normal);float:right;margin-left:auto;cursor:pointer;margin-top:.2rem}.bim-attachment-delete-button:hover{color:var(--ui-text-1-color)}.bim-attachment-delete-button div{width:3.2rem;text-align:center}a.bim-attachmentlink-item,a.bim-attachmentlink-item:hover,a.bim-attachmentlink-item:visited{color:var(--dark-gray-color)}.bim-attachment-item,.bim-attachmentlink-item{display:flex;cursor:pointer;line-height:2.5rem;padding-left:var(--bim-attachmentlink-item-left-padding, 3.6rem);background-size:var(--bim-attachment-item-background-size, auto);background-repeat:no-repeat;background-position:var(--bim-attachment-item-background-position, .8rem center);background-image:var(--bim-attachment-item-background-image, url(data:image/png;base64,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));text-decoration:none!important}.bim-attachment-item .bim-attachment-name,.bim-attachmentlink-item .bim-attachment-name{padding-left:var(--bim-attachment-name-padding, 0 0 0 1rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bim-attachment-item .bim-attachment-extension,.bim-attachmentlink-item .bim-attachment-extension{white-space:nowrap}.bim-attachment-item .bim-attachment-size,.bim-attachmentlink-item .bim-attachment-size{padding-left:.5rem;white-space:nowrap;margin-right:.4rem}.bim-attachment-not-found{padding:2.5rem .5rem;color:var(--details-controls-details-not-found-text-color);text-align:center}.embedded-modal-container{display:none;box-sizing:content-box;position:fixed;inset:0;background-color:var(--portal-modal-background-color-overlay);padding:6% 9%}.embedded-modal-container iframe{width:100%;height:100%;outline:0;border:0;-webkit-box-shadow:0 0 .5rem var(--embedded-modal-shadow-color),0 0 .5rem var(--embedded-modal-shadow-color);-moz-box-shadow:0 0 .5rem var(--embedded-modal-shadow-color),0 0 .5rem var(--embedded-modal-shadow-color);box-shadow:0 0 .5rem var(--embedded-modal-shadow-color),0 0 .5rem var(--embedded-modal-shadow-color)}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: BimplusScrollableContainerComponent, selector: "lib-bimplus-scrollable-container" }, { kind: "component", type: BimplusButtonsRowComponent, selector: "lib-bimplus-buttons-row", inputs: ["items", "isMultiple", "canUpdateObject"], outputs: ["fileChanged", "buttonClicked"] }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
336
336
|
}
|
|
337
337
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: LinksToDocumentsComponent, decorators: [{
|
|
338
338
|
type: Component,
|
|
339
339
|
args: [{ selector: 'lib-links-to-documents', standalone: true, imports: [
|
|
340
340
|
TranslateModule,
|
|
341
341
|
BimplusScrollableContainerComponent,
|
|
342
|
-
BimplusButtonsRowComponent
|
|
343
|
-
], encapsulation: ViewEncapsulation.ShadowDom, template: "<div class=\"links-to-documents\">\r\n @if (canCreateAttachmentLink && !listOnly) {\r\n <lib-bimplus-buttons-row\r\n [items]=\"buttonRowItems\"\r\n (buttonClicked)=\"buttonClicked($event)\"\r\n />\r\n }\r\n @if (wormholeSelector === 'localEmbeddedModalId'){\r\n <div class='embedded-modal-container'>\r\n <iframe id={{wormholeSelector}} [title]=\"\"></iframe>\r\n </div> \r\n }\r\n @if (!_attachments
|
|
342
|
+
BimplusButtonsRowComponent,
|
|
343
|
+
], encapsulation: ViewEncapsulation.ShadowDom, template: "<div class=\"links-to-documents\">\r\n @if (canCreateAttachmentLink && !listOnly) {\r\n <lib-bimplus-buttons-row\r\n [items]=\"buttonRowItems\"\r\n (buttonClicked)=\"buttonClicked($event)\"\r\n />\r\n }\r\n @if (wormholeSelector === 'localEmbeddedModalId'){\r\n <div class='embedded-modal-container'>\r\n <iframe id={{wormholeSelector}} [title]=\"\"></iframe>\r\n </div> \r\n }\r\n @if (!_attachments.length && showEmptyMessage) {\r\n <div \r\n data-test=\"no-attachment-links\"\r\n class=\"bim-attachment-not-found\"\r\n > {{ '_No_attachmentlinks_found' | translate }}\r\n </div>\r\n } @else {\r\n <div class=\"scrollable-content-container\">\r\n <lib-bimplus-scrollable-container>\r\n @for (attachment of _attachments; track attachment; let i = $index) {\r\n <div class=\"attachment-row\">\r\n @if (canDeleteAttachmentLink) {\r\n <span class=\"bim-attachment-delete-button\" (click)=\"deleteAttachmentLink(attachment,$event)\" (keydown)=\"deleteAttachmentLink(attachment,$event)\">\r\n <div\r\n title=\"{{ '_Delete_attachmentlink' | translate }}\"\r\n >\r\n ✕︎\r\n </div>\r\n </span>\r\n }\r\n <a class=\"bim-attachmentlink-item\" href={{attachment.link}} target='_blank' rel='noopener noreferrer'>\r\n <div class=\"bim-attachment-name\" title={{attachment.fileName}}>\r\n {{attachment.name ? attachment.name : attachment.fileName}}\r\n </div>\r\n @if (!hideAttachmentSize) {\r\n <div class=\"bim-attachment-size\" title={{attachment.name}}>\r\n ({{attachment.size}} kB)\r\n </div>\r\n }\r\n </a>\r\n </div>\r\n }\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".text-selected{color:var(--text-highlight-text-color-enabled)}.ui-icon22px{width:2.2rem;height:2.2rem;display:inline-block;float:right;border-radius:.4rem;background-position:center center;background-repeat:no-repeat;cursor:pointer}.ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat}.touch-ui-icon-sidemenu{width:2.4rem;height:2.4rem;background-size:1.8rem 1.8rem;background-position:center center;background-repeat:no-repeat;width:3.2rem;height:3.2rem}.ui-icon-sidemenu-important{width:2.4rem!important;height:2.4rem!important;background-size:1.8rem 1.8rem!important;background-position:center center;background-repeat:no-repeat}lib-bimplus-scrollable-container{--scrollable-container-paddin-right: 0}lib-bimplus-buttons-row{flex:0;--button-row-margin-top: 0;--button-row-margin-right: .8rem;--button-row-margin-bottom: 1.4rem;--button-row-margin-left: 0}.attachment-row{margin:var(--attachment-row-margin, 0 .8rem);border-bottom:var(--attachment-row-border-bottom, solid .1rem var(--details-controls-attachment-item-border-color))}.links-to-documents{display:flex;flex:1;flex-direction:column}.links-to-documents .scrollable-content-container{position:relative;flex:1}.links-to-documents .scrollable-content-container lib-bimplus-scrollable-container{position:absolute;top:0;bottom:0;width:100%}.bim-attachment-delete-button{color:var(--bim-attachment-delete-button, var(--details-controls-attachment-delete-button-text-color));font-weight:var(--bim-attachment-delete-button-font-weight, normal);float:right;margin-left:auto;cursor:pointer;margin-top:.2rem}.bim-attachment-delete-button:hover{color:var(--ui-text-1-color)}.bim-attachment-delete-button div{width:3.2rem;text-align:center}a.bim-attachmentlink-item,a.bim-attachmentlink-item:hover,a.bim-attachmentlink-item:visited{color:var(--dark-gray-color)}.bim-attachment-item,.bim-attachmentlink-item{display:flex;cursor:pointer;line-height:2.5rem;padding-left:var(--bim-attachmentlink-item-left-padding, 3.6rem);background-size:var(--bim-attachment-item-background-size, auto);background-repeat:no-repeat;background-position:var(--bim-attachment-item-background-position, .8rem center);background-image:var(--bim-attachment-item-background-image, url(data:image/png;base64,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));text-decoration:none!important}.bim-attachment-item .bim-attachment-name,.bim-attachmentlink-item .bim-attachment-name{padding-left:var(--bim-attachment-name-padding, 0 0 0 1rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bim-attachment-item .bim-attachment-extension,.bim-attachmentlink-item .bim-attachment-extension{white-space:nowrap}.bim-attachment-item .bim-attachment-size,.bim-attachmentlink-item .bim-attachment-size{padding-left:.5rem;white-space:nowrap;margin-right:.4rem}.bim-attachment-not-found{padding:2.5rem .5rem;color:var(--details-controls-details-not-found-text-color);text-align:center}.embedded-modal-container{display:none;box-sizing:content-box;position:fixed;inset:0;background-color:var(--portal-modal-background-color-overlay);padding:6% 9%}.embedded-modal-container iframe{width:100%;height:100%;outline:0;border:0;-webkit-box-shadow:0 0 .5rem var(--embedded-modal-shadow-color),0 0 .5rem var(--embedded-modal-shadow-color);-moz-box-shadow:0 0 .5rem var(--embedded-modal-shadow-color),0 0 .5rem var(--embedded-modal-shadow-color);box-shadow:0 0 .5rem var(--embedded-modal-shadow-color),0 0 .5rem var(--embedded-modal-shadow-color)}\n"] }]
|
|
344
344
|
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.DialogService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i3.DecoratorsService }], propDecorators: { api: [{
|
|
345
345
|
type: Input,
|
|
346
346
|
args: [{ required: true }]
|
|
@@ -374,4 +374,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
374
374
|
}], rootObjectId: [{
|
|
375
375
|
type: Input
|
|
376
376
|
}] } });
|
|
377
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua3MtdG8tZG9jdW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2xpbmtzLXRvLWRvY3VtZW50cy9saW5rcy10by1kb2N1bWVudHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbGlua3MtdG8tZG9jdW1lbnRzL2xpbmtzLXRvLWRvY3VtZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUcsU0FBUyxFQUFJLGlCQUFpQixFQUFJLEtBQUssRUFBOEMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNqSCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFBRyxJQUFJLEVBQUksZUFBZSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdFQUF3RSxDQUFBO0FBRTVILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBRWxHLE9BQU8sRUFDTCxvQ0FBb0MsRUFDckMsTUFBTSw0RUFBNEUsQ0FBQztBQUVwRixPQUFPLEtBQUssU0FBUyxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUcvQyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxNQUFNLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxnQkFBMEIsRUFBRSxRQUFnQixFQUFFLEdBQWUsRUFBRSxFQUFFO0lBQ25HLHVEQUF1RDtJQUN2RCxNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDcEYsQ0FBQztJQUVGLHFFQUFxRTtJQUNyRSxPQUFPLFFBQVEsQ0FBQyxZQUFZLENBQUM7U0FDNUIsSUFBSTtJQUNILDZFQUE2RTtJQUM3RSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUNoRSxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBY0QsTUFBTSxPQUFPLHlCQUEwQixTQUFRLCtCQUErQjtJQUU1RSxZQUFZLGdCQUFtQyxFQUNuQixhQUE0QixFQUM1QixRQUFtQixFQUNuQixFQUFjLEVBQ2QsVUFBNEI7UUFFdEQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFMRyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQU9oRCxrQkFBYSxHQUFZLEVBQUUsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixrQkFBYSxHQUFZLElBQUksQ0FBQztRQUM1QixnRUFBZ0U7UUFDbEUsZUFBVSxHQUFVLEtBQUssQ0FBQztRQUdqQiw0QkFBdUIsR0FBWSxJQUFJLENBQUM7UUFDakQsMEVBQTBFO1FBQ2xDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDekQsbUZBQW1GO1FBQzNDLHFCQUFnQixHQUFZLElBQUksQ0FBQztRQUN6RSx1RUFBdUU7UUFDL0IsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRTFELGlCQUFZLEdBQVUsRUFBRSxDQUFDLENBQUMsa0NBQWtDO1FBRXJFLGlCQUFZLEdBQTRCLEVBQUUsQ0FBQztRQW1CakMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUNqRCwwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUM3RCw0QkFBdUIsR0FBVyxJQUFJLENBQUM7UUFDdkMsWUFBTyxHQUFvQyxJQUFJLENBQUM7UUFDaEQscUJBQWdCLEdBQXVCLHNCQUFzQixDQUFDLENBQUUsb0dBQW9HO1FBQ3BLLFFBQUcsR0FBWSxLQUFLLENBQUM7UUFlYixzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBVSxFQUFFLENBQUMsQ0FBQztRQUN0RSxxQkFBZ0IsR0FBWSxDQUFDLENBQUM7UUFDOUIsbUJBQWMsR0FBZ0M7WUFDNUM7Z0JBQ0UsRUFBRSxFQUFFLGVBQWU7Z0JBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztnQkFDckQsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO2dCQUN2RCxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCO2dCQUN2QyxXQUFXLEVBQUUsU0FBUzthQUN6QjtTQUNGLENBQUM7UUFzRUYsc0JBQWlCLEdBQW9CLElBQUksQ0FBQztRQUMxQyxhQUFRLEdBQVcsS0FBSyxDQUFDO1FBQ3pCLDJCQUFzQixHQUFVLGdCQUFnQixDQUFDO1FBOUkvQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO0lBRTVELENBQUM7SUFxQkQsSUFDSSxXQUFXLENBQUMsS0FBOEI7UUFDNUMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0UsQ0FBQztJQUNILENBQUM7SUFVRCxJQUNJLFlBQVksQ0FBQyxFQUFxQjtRQUNwQyxJQUFHLENBQUMsRUFBRSxFQUFDLENBQUM7WUFDTixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBY0QsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQztnQkFDL0IsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7b0JBQ1gsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMxQyxDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFBQSxDQUFDO0lBRUYsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRCwrREFBK0Q7SUFDdkQsb0JBQW9CLENBQUMsSUFBUTtRQUNqQyxNQUFNLEVBQUUsR0FBaUI7WUFDdkIsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ3BCLEdBQUcsRUFBQyxFQUFFO1lBQ04sU0FBUyxFQUFFLEVBQUU7WUFDYixTQUFTLEVBQUUsRUFBRTtZQUNiLElBQUksRUFBRSxnQkFBZ0I7WUFDdEIsaUJBQWlCLEVBQUMsRUFBRTtTQUNyQixDQUFDO1FBQ0osT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRU8sdUJBQXVCLENBQUMsR0FBYyxFQUFFLEtBQW9DO1FBQ2xGLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xILGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsSUFBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFO2dCQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDbkUsSUFBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFO2dCQUFHLE9BQU8sQ0FBQyxDQUFDO1lBQ25FLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRU8sOEJBQThCLENBQUMsUUFBaUI7UUFFdEQsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsQ0FBQztZQUNyRCxJQUFJLEVBQUUsQ0FBQyxhQUFhLEVBQUUsRUFBRTtnQkFDdEIsSUFBRyxhQUFhLEVBQUMsQ0FBQztvQkFDaEIscUdBQXFHO29CQUNyRyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsYUFBYSxFQUFFLE1BQU0sQ0FBQztvQkFDOUMsSUFBRyxJQUFJLENBQUMsR0FBRyxFQUFDLENBQUM7d0JBQ1gsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsYUFBYSxDQUFDLENBQUM7d0JBQ3BFLElBQUcsTUFBTSxFQUFDLENBQUM7NEJBQ1QsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7d0JBQzdCLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxRQUFpQjtRQUNwRCxJQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBQyxDQUFDO1lBQ1osT0FBTztRQUNULENBQUM7UUFFRCxJQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDYixPQUFPO1FBQ1QsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQU1ELDhCQUE4QjtJQUM5QixrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsSUFBSTtRQUM5QixJQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFDLENBQUM7WUFDekIsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQSxDQUFDO1lBQ3ZFLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTztRQUNULENBQUM7UUFDRCxJQUFHLElBQUksQ0FBQyxhQUFhLEVBQUMsQ0FBQztZQUNyQixJQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUMsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBQyxTQUFTLEVBQUMsTUFBTSxDQUFBLENBQUMsQ0FBQSxPQUFPLENBQUEsQ0FBQyxDQUFBLE1BQU0sQ0FBQyxDQUFBO1lBQy9FLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUMsU0FBUyxFQUFDLE1BQU0sQ0FBQSxDQUFDLENBQUEsT0FBTyxDQUFBLENBQUMsQ0FBQSxNQUFNLENBQUMsQ0FBQTtRQUMvRSxDQUFDO1FBRUQsNERBQTREO1FBQzVELElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO0lBQ3pCLENBQUM7SUFHRCwrQkFBK0I7UUFDN0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBYyxFQUFFLEdBQVk7UUFDbkMsZ0RBQWdEO1FBQ2hELE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFFLENBQUM7UUFDMUYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBRyxJQUFJLENBQUMsVUFBVSxFQUFDLENBQUM7WUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMzQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFDLENBQUM7WUFDckIsZ0VBQWdFO1lBQ2hFLCtEQUErRDtZQUMvRCxNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUNwRSxDQUFDO1lBRUYsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDOUIsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBQ2hCLCtCQUErQjtvQkFDOUIsT0FBbUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTt3QkFDckQsSUFBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDOzRCQUMvRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDL0IsQ0FBQztvQkFDSCxDQUFDLENBQUMsQ0FBQztvQkFDSCxNQUFNLE1BQU0sR0FBbUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNoRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQyxDQUFDO2dCQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUMsRUFBRSxDQUFDO2dCQUN2QixDQUFDO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsT0FBTztRQUNULENBQUM7UUFFRCwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUM7YUFDNUQsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQzlDLEdBQUcsRUFDSCxrQkFBa0IsQ0FDbkIsQ0FBQyxDQUFDLHFDQUFxQztnQkFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtZQUMvQyxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDMUIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxvQkFBb0IsQ0FBQyxHQUFlO1FBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxzQkFBc0IsQ0FBQztRQUN0RSxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQWUsRUFBTyxFQUFFO1lBQ3pDLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUM3RCxNQUFNLGNBQWMsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDN0MsSUFBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLCtCQUErQixFQUFFLENBQUM7Z0JBQ3ZDLElBQUksY0FBYyxFQUFFLENBQUM7b0JBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQTtRQUVELElBQUksT0FBTyxTQUFTLEtBQUssVUFBVSxJQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNuRSxPQUFPO1FBQ1QsQ0FBQztRQUVELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDL0QsSUFBSSxZQUFZLEdBQTBCLEVBQUUsQ0FBQztZQUM3QyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxjQUFjLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ2xCLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO29CQUNyQyxPQUFPO2dCQUNULENBQUM7WUFDSCxDQUFDO1lBQ0QsTUFBTSxTQUFTLEdBQUksSUFBSSxTQUFTLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDN0UsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQ3hCLGtGQUFrRjtZQUNsRixNQUFNLE9BQU8sR0FBcUIsRUFBRSxDQUFDO1lBQ3JDLHVEQUF1RDtZQUN2RCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pCLDZDQUE2QztnQkFDN0MsSUFBSSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUM1RSwrSUFBK0k7Z0JBQy9JLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2xFLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUM7WUFDckcsQ0FBQztZQUVELCtFQUErRTtZQUMvRSxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDO1lBQzlDLElBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFDLENBQUM7Z0JBQ3hCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDOUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7b0JBQ3ZCLE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCxpQkFBaUIsQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLENBQUM7Z0JBRW5ELElBQUcsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDO29CQUNmLElBQUcsSUFBSSxDQUFDLGFBQWEsRUFBQyxDQUFDO3dCQUNyQixpQkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ25HLENBQUM7eUJBQUksQ0FBQzt3QkFDSixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDbEUsQ0FBQztnQkFDSCxDQUFDO2dCQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRVQsQ0FBQztJQUVELHFCQUFxQixDQUFDLEdBQWMsRUFBRSxFQUFTLEVBQUMsTUFBWTtRQUMxRCxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDNUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQztRQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMvRCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQzVELENBQUMsU0FBUyxDQUFDO1lBQ1YsSUFBSSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsRUFBRTtnQkFDM0IsSUFBRyxJQUFJLENBQUMsR0FBRyxFQUFDLENBQUM7b0JBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUUsa0NBQWtDO29CQUNsSCwrQkFBK0I7b0JBQy9CLE1BQU0sTUFBTSxHQUFtQixJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ2pHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFDLENBQUM7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNoRSxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG9CQUFvQixDQUFDLFVBQWdDLEVBQUMsTUFBWTtRQUNoRSxJQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBQyxDQUFDO1lBQ1osT0FBTztRQUNULENBQUM7UUFDRCxJQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sR0FBRyxHQUFJLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsb0NBQW9DLEVBQUU7WUFDNUQsT0FBTyxFQUFFO2dCQUNQLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixlQUFlLEVBQUUsRUFBRTtnQkFDbkIsbUJBQW1CLEVBQUUsS0FBSztnQkFDMUIsd0JBQXdCLEVBQUUsSUFBSTtnQkFDOUIsU0FBUyxFQUFFLElBQUk7YUFDaEIsRUFBRSxJQUFJLEVBQUU7Z0JBQ1AsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUM7Z0JBQzlELE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLDZDQUE2QyxDQUFDO2dCQUNyRiwyQkFBMkIsRUFBRSxTQUFTO2dCQUN0QyxjQUFjLEVBQUUsR0FBRyxFQUFFO29CQUNuQixJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxFQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3ZELENBQUM7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxhQUFhLENBQUMsTUFBK0I7UUFDM0MsSUFBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsQ0FBQztZQUNaLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxHQUFHLEdBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUN0QixJQUFHLE1BQU0sQ0FBQyxFQUFFLElBQUksZUFBZSxFQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDOytHQXJXVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qix1S0FzQmhCLGdCQUFnQiw4REFFaEIsZ0JBQWdCLG9FQUVoQixnQkFBZ0IsMldDdkV0QywrNkRBZ0RBLG9vUERYSyxlQUFlLDRGQUNmLG1DQUFtQyw2RUFDbkMsMEJBQTBCOzs0RkFNbEIseUJBQXlCO2tCQVpyQyxTQUFTOytCQUNFLHdCQUF3QixjQUN0QixJQUFJLFdBQ1A7d0JBQ04sZUFBZTt3QkFDZixtQ0FBbUM7d0JBQ25DLDBCQUEwQjtxQkFDNUIsaUJBR2MsaUJBQWlCLENBQUMsU0FBUztrTUFxQmYsR0FBRztzQkFBN0IsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFFa0MsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFRSxnQkFBZ0I7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRUUsa0JBQWtCO3NCQUF6RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUU3QixZQUFZO3NCQUFwQixLQUFLO2dCQUtGLFdBQVc7c0JBRGQsS0FBSztnQkFpQkksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFDRSx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBR0YsWUFBWTtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgIENvbXBvbmVudCAgLCBWaWV3RW5jYXBzdWxhdGlvbiAgLCBJbnB1dCAgLCBPbkluaXQsIFJlbmRlcmVyMiwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBib29sZWFuQXR0cmlidXRlLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0L2JpbXBsdXMtbG9jYWxpemVkLXdpZGdldC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0ICogYXMgV2ViU2RrIGZyb20gJ2JpbXBsdXMtd2Vic2RrJztcclxuaW1wb3J0IHsgIGZyb20gICwgQmVoYXZpb3JTdWJqZWN0LCBzd2l0Y2hNYXAsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNvbmNhdE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQmltcGx1c1Njcm9sbGFibGVDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLXNjcm9sbGFibGUtY29udGFpbmVyL2JpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXIuY29tcG9uZW50J1xyXG5pbXBvcnQgeyBQcm9qZWN0TmF2aWdhdG9yUHJvamVjdCB9IGZyb20gJy4uL3Byb2plY3QtbW9kZWxzL3Byb2plY3QtbW9kZWxzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEJpbXBsdXNCdXR0b25zUm93Q29tcG9uZW50IH0gZnJvbSBcIi4uL2JpbXBsdXMtYnV0dG9ucy1yb3cvYmltcGx1cy1idXR0b25zLXJvdy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQmltcGx1c0J1dHRvbkNsaWNrRXZlbnQsIEJpbXBsdXNCdXR0b25Sb3dJdGVtIH0gZnJvbSAnLi4vYmltcGx1cy1idXR0b25zLXJvdy9iaW1wbHVzLWJ1dHRvbnMtcm93LmludGVyZmFjZSc7XHJcbmltcG9ydCB7XHJcbiAgQmltcGx1c092ZXJsYXlEaWFsb2dDb25maXJtQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL2JpbXBsdXMtb3ZlcmxheS1kaWFsb2ctY29uZmlybS9iaW1wbHVzLW92ZXJsYXktZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSBcIi4uL2JpbXBsdXMtZ2VuZXJhbC1vdmVybGF5LWRpYWxvZy9iaW1wbHVzLWdlbmVyYWwtb3ZlcmxheS1kaWFsb2cuc2VydmljZVwiO1xyXG5pbXBvcnQgKiBhcyBXZWJDbGllbnQgZnJvbSAnYmltcGx1cy13ZWJjbGllbnQnO1xyXG5pbXBvcnQge25ld0F0dGFjaEluZm99IGZyb20gJy4uL2JpbXBsdXMtb2JqZWN0LWNvbW1lbnRzLWxpc3QvYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0RlY29yYXRvcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGVjb3JhdG9ycy5zZXJ2aWNlJztcclxuZXhwb3J0IGNvbnN0IEVNQkVEREVEX01PREFMX0RJQUxPR0VfVFlQRV9GSUxFID0gJ2ZpbGUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IHBvc3RBdHRhY2htZW50TGlua3MgPSAobmV3QXR0YWNobWVudElEczogc3RyaW5nW10sIG9iamVjdElkOiBzdHJpbmcsIGFwaTogV2ViU2RrLkFwaSkgPT4ge1xyXG4gIC8vIENyZWF0ZSBhbiBhcnJheSBvZiBvYnNlcnZhYmxlcyBmb3IgZWFjaCBwb3N0IHJlcXVlc3RcclxuICBjb25zdCBwb3N0UmVxdWVzdHMgPSBuZXdBdHRhY2htZW50SURzLm1hcCgoaWQpID0+ICAgICAgICAgICAgXHJcbiAgICBmcm9tKGFwaS5vYmplY3RzLnBvc3RBdHRhY2htZW50TGluayhvYmplY3RJZCwgSlNPTi5zdHJpbmdpZnkoeyBhdHRhY2htZW50SWQ6IGlkfSkpKSAgICAgIFxyXG4gICk7XHJcblxyXG4gIC8vIFVzZSBmb3JrSm9pbiB0byB3YWl0IGZvciBhbGwgcG9zdCByZXF1ZXN0cyB0byBjb21wbGV0ZSBpbiBwYXJhbGxlbFxyXG4gIHJldHVybiBmb3JrSm9pbihwb3N0UmVxdWVzdHMpXHJcbiAgLnBpcGUoXHJcbiAgICAvLyBBZnRlciBhbGwgcG9zdHMgYXJlIGNvbXBsZXRlLCBzd2l0Y2ggdG8gdGhlIG5leHQgY2FsbCB0byBnZXQgdXBkYXRlZCBsaW5rc1xyXG4gICAgY29uY2F0TWFwKCgpID0+IGZyb20oYXBpLm9iamVjdHMuZ2V0QXR0YWNobWVudExpbmtzKG9iamVjdElkKSkpXHJcbiAgKVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1saW5rcy10by1kb2N1bWVudHMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgICBCaW1wbHVzU2Nyb2xsYWJsZUNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgICBCaW1wbHVzQnV0dG9uc1Jvd0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmtzLXRvLWRvY3VtZW50cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGlua3MtdG8tZG9jdW1lbnRzLmNvbXBvbmVudC5sZXNzJ10sICBcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb21cclxufSlcclxuZXhwb3J0IGNsYXNzIExpbmtzVG9Eb2N1bWVudHNDb21wb25lbnQgZXh0ZW5kcyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBjb25zdHJ1Y3Rvcih0cmFuc2xhdGVTZXJ2aWNlOiAgVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRlY29yYXRvcnM6RGVjb3JhdG9yc1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKHRyYW5zbGF0ZVNlcnZpY2UpXHJcbiAgICB0aGlzLnNoYWRvd1Jvb3RFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnNoYWRvd1Jvb3Q7XHJcblxyXG4gIH1cclxuICBwcml2YXRlIHJlYWRvbmx5IHNoYWRvd1Jvb3RFbGVtZW50OiBIVE1MRWxlbWVudDtcclxuICBwcml2YXRlIF9yb290T2JqZWN0SWQgOiBzdHJpbmcgPSBcIlwiO1xyXG4gIGlzRGVzdHJveWVkID0gZmFsc2U7XHJcbiAgbG9jYWxXb3JtSG9sZTpib29sZWFuICA9IHRydWU7XHJcbiAgICAvL1doZW4gaXMgdHJ1ZSB0aGVuIGl0IG1lYW5zIHRoZSBjcmVhdGlvbiBvZiBsaW5rIGlzIGluIHByb2dyZXNzXHJcbiAgaW5Qcm9ncmVzczpib29sZWFuPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgYXBpITogV2ViU2RrLkFwaSB8IG51bGw7XHJcbiAgQElucHV0KCkgY2FuQ3JlYXRlQXR0YWNobWVudExpbms6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKiBJbnB1dCBBdHRyaWJ1dGUgdG8gc3BlY2lmeSBpZiBzaG91bGQgc2hvdyBvbmx5IGxpc3Qgb2YgYXR0YWNobWVudHMuICovXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGxpc3RPbmx5ID0gZmFsc2U7XHJcbiAgLyoqIElucHV0IEF0dHJpYnV0ZSB0byBzcGVjaWZ5IGlmIHNob3VsZCBzaG93IG1lc3NhZ2Ugd2hlbiBubyBhdHRhY2htZW50cyBmb3VuZC4gKi9cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0VtcHR5TWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqIElucHV0IEF0dHJpYnV0ZSB0byB0ZWxsIGlmIHNob3cvaGlkZSBhdHRhY2hlbXQgc2l6ZSBpbmZvcm1hdGlvbi4gKi9cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGlkZUF0dGFjaG1lbnRTaXplID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGlucHV0QmFzZVVybDogc3RyaW5nID0nJzsgLy8gYmFzZSB1cmwgZm9yIHRoZSBlbWJlZGRlZCBtb2RhbFxyXG4gIFxyXG4gIF9hdHRhY2htZW50czogV2ViU2RrLkF0dGFjaG1lbnRMaW5rW10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgYXR0YWNobWVudHModmFsdWU6IFdlYlNkay5BdHRhY2htZW50TGlua1tdKSB7XHJcbiAgICB0aGlzLl9hdHRhY2htZW50cyA9IHZhbHVlO1xyXG4gICAgdGhpcy5vbkF0dGFjaG1lbnRzQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYXR0YWNobWVudHMoKTogV2ViU2RrLkF0dGFjaG1lbnRMaW5rW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F0dGFjaG1lbnRzO1xyXG4gIH1cclxuXHJcbiAgb25BdHRhY2htZW50c0NoYW5nZSgpIHtcclxuICAgIGlmKHRoaXMuYXBpICYmIHRoaXMucm9vdE9iamVjdElkKXtcclxuICAgICAgdGhpcy5fYXR0YWNobWVudHMgPSB0aGlzLmRlY29yYXRlQXR0YWNobWVudExpbmtzKHRoaXMuYXBpLHRoaXMuX2F0dGFjaG1lbnRzKTsgICAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgQE91dHB1dCgpIGF0dGFjaG1lbnRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcclxuICBAT3V0cHV0KCkgYXR0YWNobWVudHNMaW5rQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxuZXdBdHRhY2hJbmZvW10+KCk7XHJcbiAgQElucHV0KCkgY2FuRGVsZXRlQXR0YWNobWVudExpbms6Ym9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgcHJvamVjdCA6IFByb2plY3ROYXZpZ2F0b3JQcm9qZWN0IHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgd29ybWhvbGVTZWxlY3RvciA6IHN0cmluZyB8IHVuZGVmaW5lZD0gXCJsb2NhbEVtYmVkZGVkTW9kYWxJZFwiOyAgLy8gY2FsbGluZyBhcHBsaWNhdGlvbiBjYW4gcHJvdmlkZSBhIHBsYWNlIHdoZXJlIHRoZSBpZnJhbWUgZm9yIGRvY3VtZW50cyBzZWxlY3Rpb24gd2lsbCBiZSByZW5kZXJlZFxyXG4gIEBJbnB1dCgpIGVudiA6IHN0cmluZyA9ICdkZXYnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCByb290T2JqZWN0SWQoaWQgOiBzdHJpbmd8dW5kZWZpbmVkKXtcclxuICAgIGlmKCFpZCl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX2N1cnJlbnRPYmplY3RJZCQubmV4dChpZCk7XHJcbiAgICB0aGlzLl9yb290T2JqZWN0SWQgPSBpZDtcclxuICB9XHJcblxyXG4gIGdldCByb290T2JqZWN0SWQoKSA6IHN0cmluZ3tcclxuICAgIHJldHVybiB0aGlzLl9yb290T2JqZWN0SWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9jdXJyZW50T2JqZWN0SWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+IChcIlwiKTtcclxuICBfYXR0YWNobWVudENvdW50IDogbnVtYmVyID0gMDtcclxuICBidXR0b25Sb3dJdGVtczogQXJyYXk8QmltcGx1c0J1dHRvblJvd0l0ZW0+ID0gW1xyXG4gICAge1xyXG4gICAgICBpZDogXCJhZGQtZG9jdW1lbnRzXCJcclxuICAgICAgLCB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ19BZGRfZG9jdW1lbnQnKVxyXG4gICAgICAsIHRvb2x0aXA6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQWRkX2RvY3VtZW50JylcclxuICAgICAgLCBkaXNhYmxlZDogIXRoaXMuY2FuQ3JlYXRlQXR0YWNobWVudExpbmtcclxuICAgICAgLCBidXR0b25TdHlsZTogJ3ByaW1hcnknXHJcbiAgICB9XHJcbiAgXTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMubGlzdE9ubHkpIHtcclxuICAgICAgdGhpcy5fY3VycmVudE9iamVjdElkJC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChpZCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fY3JlYXRlQXR0YWNobWVudExpbmtTdHJ1Y3R1cmUoaWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRGVzdHJveWVkID0gdHJ1ZTtcclxuICB9XHJcbiAgXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgcHJpdmF0ZSBkZWNvcmF0ZUF0dGFjaG1lbnRJZChpdGVtOmFueSl7XHJcbiAgICAgIGNvbnN0IGl0Om5ld0F0dGFjaEluZm8gPSB7XHJcbiAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgIG5hbWVTaG9ydDogaXRlbS5uYW1lLFxyXG4gICAgICAgIHVybDonJyxcclxuICAgICAgICBpY29uQ2xhc3M6ICcnLFxyXG4gICAgICAgIGljb25UaXRsZTogJycsXHJcbiAgICAgICAgdHlwZTogJ0F0dGFjaG1lbnRMaW5rJyxcclxuICAgICAgICBkZWxldGVCdXR0b25UaXRsZTonJyAgICAgICAgXHJcbiAgICAgIH07ICAgICBcclxuICAgIHJldHVybiBpdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVjb3JhdGVBdHRhY2htZW50TGlua3MoYXBpOldlYlNkay5BcGksIGxpbmtzOldlYlNkay5BdHRhY2htZW50TGlua3NSZXNwb25zZSk6V2ViU2RrLkF0dGFjaG1lbnRMaW5rW117XHJcbiAgICBjb25zdCBkZWNvcmF0ZWRMaW5rcyA9IGxpbmtzLm1hcCgobGluaykgPT4gdGhpcy5kZWNvcmF0b3JzLmRlY29yYXRlTGluayhhcGksbGluayxbdGhpcy5fY3VycmVudE9iamVjdElkJC52YWx1ZV0pKTtcclxuICAgIGRlY29yYXRlZExpbmtzLnNvcnQoKGEsYikgPT4ge1xyXG4gICAgICBpZihhLmZpbGVOYW1lLnRvTG93ZXJDYXNlKCkgPCBiLmZpbGVOYW1lLnRvTG93ZXJDYXNlKCkgKSByZXR1cm4gLTE7XHJcbiAgICAgIGlmKGEuZmlsZU5hbWUudG9Mb3dlckNhc2UoKSAgPiBiLmZpbGVOYW1lLnRvTG93ZXJDYXNlKCkgKSByZXR1cm4gMTtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkZWNvcmF0ZWRMaW5rcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZUF0dGFjaG1lbnRMaW5rU3RydWN0dXJlKG9iamVjdElkIDogc3RyaW5nKXtcclxuXHJcbiAgICB0aGlzLl9sb2FkQXR0YWNobWVudExpbmtTdHJ1Y3R1cmUob2JqZWN0SWQpPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0IDooc3RydWN0dXJlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmKHN0cnVjdHVyZURhdGEpe1xyXG4gICAgICAgICAgLy90aGlzLl9hdHRhY2htZW50TGlua1N0cnVjdHVyZSA9IF9hdHRhY2htZW50TGluayBTdHJ1Y3R1cmVCdWlsZGVyLmNyZWF0ZUZyb21SZXNwb25zZShzdHJ1Y3R1cmVEYXRhKTtcclxuICAgICAgICAgIHRoaXMuX2F0dGFjaG1lbnRDb3VudCA9IHN0cnVjdHVyZURhdGE/Lmxlbmd0aDtcclxuICAgICAgICAgIGlmKHRoaXMuYXBpKXtcclxuICAgICAgICAgICAgY29uc3QgcmV0dmFsID0gdGhpcy5kZWNvcmF0ZUF0dGFjaG1lbnRMaW5rcyh0aGlzLmFwaSxzdHJ1Y3R1cmVEYXRhKTtcclxuICAgICAgICAgICAgaWYocmV0dmFsKXtcclxuICAgICAgICAgICAgICB0aGlzLl9hdHRhY2htZW50cyA9IHJldHZhbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWRBdHRhY2htZW50TGlua1N0cnVjdHVyZShvYmplY3RJZCA6IHN0cmluZyl7XHJcbiAgICBpZighdGhpcy5hcGkpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIW9iamVjdElkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHJldHVybiBmcm9tKHRoaXMuYXBpLm9iamVjdHMuZ2V0QXR0YWNobWVudExpbmtzKG9iamVjdElkKSk7XHJcbiAgfVxyXG5cclxuICBkb2N1bWVudFNlbGVjdGlvbiA6c3RyaW5nW10gfCBudWxsID0gbnVsbDtcclxuICBpc09wZW5lZDpib29sZWFuID0gZmFsc2U7XHJcbiAgZW1iZWRkZWRNb2RhbENvbnRhaW5lcjpzdHJpbmcgPSAnZW1iZWRkZWQtbW9kYWwnO1xyXG5cclxuICAvLyBzaG93IG9yIGhpZGUgZW1iZWRkZWQgbW9kYWxcclxuICBzZXRNb2RhbFZpc2liaWxpdHkob3BlbmVkID0gdHJ1ZSkge1xyXG4gICAgaWYoIXRoaXMud29ybWhvbGVTZWxlY3Rvcil7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGVsZW1lbnQgPSAgdGhpcy5sb2NhbFdvcm1Ib2xlID8gdGhpcy5zaGFkb3dSb290RWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiI1wiICsgdGhpcy53b3JtaG9sZVNlbGVjdG9yKTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMud29ybWhvbGVTZWxlY3Rvcik7XHJcbiAgICBpZiAoIWVsZW1lbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5sb2NhbFdvcm1Ib2xlKXtcclxuICAgICAgaWYoZWxlbWVudC5wYXJlbnRFbGVtZW50KXtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnQucGFyZW50RWxlbWVudCwnZGlzcGxheScsb3BlbmVkPydibG9jayc6J25vbmUnKVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnQucGFyZW50RWxlbWVudCwnZGlzcGxheScsb3BlbmVkPydibG9jayc6J25vbmUnKVxyXG4gICAgfVxyXG5cclxuICAgIC8vL2NvbnRhaW5lckVsLmZhZGVJbihcImZhc3RcIikgOiBjb250YWluZXJFbC5mYWRlT3V0KFwiZmFzdFwiKTtcclxuICAgIHRoaXMuaXNPcGVuZWQgPSBvcGVuZWQ7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xvc2VFbWJlZGRlZE1vZGFsRmlsZVNlbGVjdGlvbigpIHtcclxuICAgIHRoaXMuc2V0TW9kYWxWaXNpYmlsaXR5KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIF9hZGRMaW5rKGFwaTpXZWJTZGsuQXBpLCBpZHM6c3RyaW5nW10pIHtcclxuICAgIC8vIGZpbHRlciBvdXQgYWxyZWFkeSBleGlzdGluZyBhdHRhY2htZW50IGxpbmtzIFxyXG4gICAgY29uc3QgbmV3QXR0YWNobWVudElEcyA9IGlkcy5maWx0ZXIoIGl0ZW0gPT4gIXRoaXMuYXR0YWNobWVudHMuZmluZChuID0+IG4uaWQgPT09IGl0ZW0pICk7XHJcbiAgICBpZiggIW5ld0F0dGFjaG1lbnRJRHMubGVuZ3RoICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmKHRoaXMuaW5Qcm9ncmVzcyl7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdpbiBwcm9ncmVzcycpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIXRoaXMucm9vdE9iamVjdElkKXtcclxuICAgICAgLy8gd2UgZG9uJ3Qga25vdyB0byB3aGljaCBvYmplY3Qgd2Ugd2FudCB0byBhdHRhY2ggdGhlIGRvY3VtZW50c1xyXG4gICAgICAvLyBzbyB3ZSB3aWxsIGRlbGl2ZXIganVzdCBpbmZvcm1hdGlvbiBhYm91dCBzZWxlY3RlZCBkb2N1bWVudHNcclxuICAgICAgY29uc3QgZ2V0UmVxdWVzdHMgPSBuZXdBdHRhY2htZW50SURzLm1hcCgoaWQpID0+ICAgICAgICAgICAgXHJcbiAgICAgICAgZnJvbShhcGkub2JqZWN0cy5nZXQoaWQsMCx1bmRlZmluZWQsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQpKVxyXG4gICAgICApO1xyXG4gICAgXHJcbiAgICAgIGZvcmtKb2luKGdldFJlcXVlc3RzKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXN1bHRzKSA9PiB7XHJcbiAgICAgICAgICAvLyBQcm9jZXNzIHRoZSBhcnJheSBvZiByZXN1bHRzXHJcbiAgICAgICAgICAocmVzdWx0cyBhcyBXZWJTZGsuQXR0YWNobWVudExpbmtbXSk/LmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgaWYoaXRlbT8uaWQgJiYgIXRoaXMuYXR0YWNobWVudHMuZmluZChhdHRhY2htZW50ID0+IGF0dGFjaG1lbnQ/LmlkID09PSBpdGVtLmlkKSl7XHJcbiAgICAgICAgICAgICAgdGhpcy5fYXR0YWNobWVudHMucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjb25zdCByZXR2YWw6bmV3QXR0YWNoSW5mb1tdID0gdGhpcy5fYXR0YWNobWVudHMubWFwKChpdGVtKSA9PiB0aGlzLmRlY29yYXRlQXR0YWNobWVudElkKGl0ZW0pKTsgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICB0aGlzLmF0dGFjaG1lbnRzTGlua0NoYW5nZS5lbWl0KHJldHZhbCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igb2NjdXJyZWQgZHVyaW5nIHJlcXVlc3RzOicsIGVycik7XHJcbiAgICAgICAgICB0aGlzLl9hdHRhY2htZW50cz1bXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gd2Uga25vdyB0byB3aGljaCBvYmplY3Qgd2Ugd2FudCB0byBhdHRhY2ggdGhlIGRvY3VtZW50c1xyXG4gICAgdGhpcy5pblByb2dyZXNzID0gdHJ1ZTtcclxuICAgIHBvc3RBdHRhY2htZW50TGlua3MobmV3QXR0YWNobWVudElEcywgdGhpcy5yb290T2JqZWN0SWQsIGFwaSlcclxuICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAodXBkYXRlZEF0dGFjaG1lbnRzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fYXR0YWNobWVudHMgPSB0aGlzLmRlY29yYXRlQXR0YWNobWVudExpbmtzKFxyXG4gICAgICAgICAgYXBpLFxyXG4gICAgICAgICAgdXBkYXRlZEF0dGFjaG1lbnRzXHJcbiAgICAgICAgKTsgLy8gVXBkYXRlIGF0dGFjaG1lbnRzIGluIGNvbXBvbmVudCAgIFxyXG4gICAgICAgIHRoaXMuaW5Qcm9ncmVzcyA9IGZhbHNlOyAgXHJcbiAgICAgICAgdGhpcy5hdHRhY2htZW50c0NoYW5nZS5lbWl0KG5ld0F0dGFjaG1lbnRJRHMpICAgXHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGFkZCBvciByZWxvYWQgYXR0YWNobWVudHM6JywgZXJyKTtcclxuICAgICAgICB0aGlzLmluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY3JlYXRlQXR0YWNobWVudExpbmsoYXBpOiBXZWJTZGsuQXBpKXtcclxuICAgIGNvbnNvbGUubG9nKCdjcmVhdGVBdHRhY2htZW50TGluaycpXHJcbiAgICB0aGlzLmxvY2FsV29ybUhvbGUgPSB0aGlzLndvcm1ob2xlU2VsZWN0b3IgPT09IFwibG9jYWxFbWJlZGRlZE1vZGFsSWRcIjtcclxuICAgIGNvbnN0IGNhbGxiYWNrRiA9IChkb2NJRHM6c3RyaW5nW10pOnZvaWQgPT4ge1xyXG4gICAgICBjb25zdCBpZHMgPSAodHlwZW9mIGRvY0lEcyA9PT0gJ3N0cmluZycpID8gW2RvY0lEc10gOiBkb2NJRHM7XHJcbiAgICAgIGNvbnN0IGZvdW5kRG9jdW1lbnRzID0gaWRzICYmIGlkcy5sZW5ndGggPiAwO1xyXG4gICAgICBpZighdGhpcy5pc0Rlc3Ryb3llZCl7XHJcbiAgICAgICAgdGhpcy5jbG9zZUVtYmVkZGVkTW9kYWxGaWxlU2VsZWN0aW9uKCk7XHJcbiAgICAgICAgaWYgKGZvdW5kRG9jdW1lbnRzKSB7XHJcbiAgICAgICAgICB0aGlzLl9hZGRMaW5rKGFwaSxpZHMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2YgY2FsbGJhY2tGICE9PSBcImZ1bmN0aW9uXCIgIHx8ICF0aGlzLnByb2plY3QgfHwgIXRoaXMuYXBpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgaXNMb2NhbGhvc3QgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcyhcImxvY2FsaG9zdFwiKTtcclxuICAgICAgbGV0IGFjY2Vzc190b2tlbiA6c3RyaW5nfG51bGwgfHVuZGVmaW5lZD0gJyc7XHJcbiAgICAgIGFjY2Vzc190b2tlbiA9IHRoaXMuYXBpPy5nZXRBY2Nlc3NUb2tlbigpO1xyXG4gICAgICBpZiAoIWFjY2Vzc190b2tlbikge1xyXG4gICAgICAgIGFjY2Vzc190b2tlbiA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYWNjZXNzX3Rva2VuJyk7XHJcbiAgICAgICAgaWYgKCFhY2Nlc3NfdG9rZW4gLyomJiBpc0xvY2FsaG9zdCovKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG5ld0NsaWVudCA9ICBuZXcgV2ViQ2xpZW50LkV4dGVybmFsQ2xpZW50KCdCSW1wbHVzTkdYQ29tcG9uZW50Q2xpZW50Jyk7XHJcbiAgICAgIG5ld0NsaWVudD8uaW5pdGlhbGl6ZSgpO1xyXG4gICAgICAvLyBNYWtlIGVtYmVkZGVkIHdpbmRvd3MgcG9pbnRpbmcgdG8gdGhlIGN1cnJlbnQgZmVhdHVyZSBicmFuY2ggd2l0aCBiYXNlVXJsIHNldHVwXHJcbiAgICAgIGNvbnN0IG9wdGlvbnM6e2Jhc2VVcmw/OnN0cmluZ30gPSB7fTtcclxuICAgICAgLy8gSW4gY2FzZSBvZiBsb2NhbGhvc3Qgb21taXQgZXhwbGljaXQgc2V0dXAgb2YgYmFzZVVybFxyXG4gICAgICBpZiAoIWlzTG9jYWxob3N0KSB7XHJcbiAgICAgICAgLy8gUmVtb3ZlICcvdmlld2VyLycgZnJvbSB0aGUgZW5kIG9mIHBhdGhuYW1lXHJcbiAgICAgICAgbGV0IGZpbHRlcmVkUGF0aG5hbWUgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgvXFwvdmlld2VyXFwvJC8sICcvJyk7XHJcbiAgICAgICAgLy8gUmVtb3ZlICcvY29ubmV4aXMvJyBmcm9tIHRoZSBlbmQgb2YgcGF0aG5hbWUgaWYgd2UgdXNlIHRlbXBvcmFyeSB1cmwgZm9yIGNvbm5leGlzIGxpa2UgIGh0dHBzOi8vcG9ydGFsLWRldi5iaW1wbHVzLm5ldC9jb25uZXhpcy8/ZW1iZWRkZWQuLi5cclxuICAgICAgICBmaWx0ZXJlZFBhdGhuYW1lID0gZmlsdGVyZWRQYXRobmFtZS5yZXBsYWNlKC9cXC9jb25uZXhpc1xcLyQvLCAnLycpO1xyXG4gICAgICAgIG9wdGlvbnMuYmFzZVVybCA9IHRoaXMuaW5wdXRCYXNlVXJsID8gdGhpcy5pbnB1dEJhc2VVcmw6IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyBmaWx0ZXJlZFBhdGhuYW1lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLy9jb25zdCBlbnY6c3RyaW5nPVwiZGV2XCI7ICAvLy8hISEgdG8tZG8gaW50cm9kdWNlIGVudiB2YXJpYWJsZSBpbnRvIGNvbXBvbmVudHNcclxuICAgICAgY29uc3QgY2xpZW50TW9kdWxlID0gV2ViQ2xpZW50LkJpbUZpbGVzU2VsZWN0O1xyXG4gICAgICBpZih0aGlzLndvcm1ob2xlU2VsZWN0b3Ipe1xyXG4gICAgICAgIGNvbnN0IGRvY3VtZW50U2VsZWN0aW9uID0gbmV3IGNsaWVudE1vZHVsZSh0aGlzLndvcm1ob2xlU2VsZWN0b3IsIGFjY2Vzc190b2tlbiwgbmV3Q2xpZW50LCB0aGlzLmVudiwgb3B0aW9ucyk7XHJcbiAgICAgICAgaWYgKCFkb2N1bWVudFNlbGVjdGlvbikge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBkb2N1bWVudFNlbGVjdGlvbi5vbkF0dGFjaG1lbnRTZWxlY3RlZCA9IGNhbGxiYWNrRjtcclxuXHJcbiAgICAgICAgaWYodGhpcy5wcm9qZWN0KXtcclxuICAgICAgICAgIGlmKHRoaXMubG9jYWxXb3JtSG9sZSl7XHJcbiAgICAgICAgICAgIGRvY3VtZW50U2VsZWN0aW9uLmxvYWRTaGFkb3dSb290KHRoaXMuc2hhZG93Um9vdEVsZW1lbnQsdGhpcy5wcm9qZWN0LnRlYW1TbHVnICwgdGhpcy5wcm9qZWN0LmlkKTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBkb2N1bWVudFNlbGVjdGlvbi5sb2FkKHRoaXMucHJvamVjdC50ZWFtU2x1ZyAsIHRoaXMucHJvamVjdC5pZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0TW9kYWxWaXNpYmlsaXR5KHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9LDIwMCk7XHJcblxyXG4gIH1cclxuXHJcbiAgX2RlbGV0ZUF0dGFjaG1lbnRMaW5rKGFwaTpXZWJTZGsuQXBpICxpZDpzdHJpbmcsJGV2ZW50OkV2ZW50KXtcclxuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgY29uc3Qgb2JqZWN0cyA9IGFwaS5vYmplY3RzO1xyXG4gICAgY29uc3Qgb2JqZWN0SWQgPSB0aGlzLl9jdXJyZW50T2JqZWN0SWQkLnZhbHVlO1xyXG4gICAgZnJvbShhcGkub2JqZWN0cy5kZWxldGVBdHRhY2htZW50TGluayh0aGlzLnJvb3RPYmplY3RJZCxpZCkpLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiBmcm9tKG9iamVjdHMuZ2V0QXR0YWNobWVudExpbmtzKG9iamVjdElkKSkpXHJcbiAgICApLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6ICh1cGRhdGVkQXR0YWNobWVudHMpID0+IHtcclxuICAgICAgICBpZih0aGlzLmFwaSl7XHJcbiAgICAgICAgICB0aGlzLl9hdHRhY2htZW50cyA9IHRoaXMuZGVjb3JhdGVBdHRhY2htZW50TGlua3ModGhpcy5hcGksdXBkYXRlZEF0dGFjaG1lbnRzKTsgIC8vIFVwZGF0ZSBhdHRhY2htZW50cyBpbiBjb21wb25lbnRcclxuICAgICAgICAgIC8vIFByb2Nlc3MgdGhlIGFycmF5IG9mIHJlc3VsdHNcclxuICAgICAgICAgIGNvbnN0IHJldHZhbDpuZXdBdHRhY2hJbmZvW10gPSB0aGlzLl9hdHRhY2htZW50cz8ubWFwKChpdGVtKSA9PiB0aGlzLmRlY29yYXRlQXR0YWNobWVudElkKGl0ZW0pKTtcclxuICAgICAgICAgIHRoaXMuYXR0YWNobWVudHNMaW5rQ2hhbmdlLmVtaXQocmV0dmFsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGRlbGV0ZSBvciByZWxvYWQgYXR0YWNobWVudHM6JywgZXJyKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVBdHRhY2htZW50TGluayhhdHRhY2htZW50OldlYlNkay5BdHRhY2htZW50TGluaywkZXZlbnQ6RXZlbnQpe1xyXG4gICAgaWYoIXRoaXMuYXBpKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYoIWF0dGFjaG1lbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXBpICA9IHRoaXMuYXBpO1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oQmltcGx1c092ZXJsYXlEaWFsb2dDb25maXJtQ29tcG9uZW50LCB7XHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICBwb3NpdGlvbjogJ21pZGRsZScsXHJcbiAgICAgICAgcG9zaXRpb25PcHRpb25zOiB7fSxcclxuICAgICAgICBvdmVybGF5Q2xpY2tFbmFibGVkOiBmYWxzZSxcclxuICAgICAgICBvdmVybGF5VmlzaWJpbGl0eUVuYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgZHJhZ2dhYmxlOiB0cnVlXHJcbiAgICAgIH0sIGRhdGE6IHtcclxuICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ19EZWxldGVfYXR0YWNobWVudGxpbmsnKSxcclxuICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0F0dGFjaG1lbnRsaW5rX2RlbGV0ZV9jb25maXJtYXRpb25fbWVzc2FnZScpLFxyXG4gICAgICAgIGFjY2VwdEJ1dHRvbkxvY2FsaXplZFN0cmluZzogXCJfRGVsZXRlXCIsXHJcbiAgICAgICAgYWNjZXB0Q2FsbGJhY2s6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX2RlbGV0ZUF0dGFjaG1lbnRMaW5rKGFwaSxhdHRhY2htZW50LmlkLCRldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBidXR0b25DbGlja2VkKCRldmVudDogQmltcGx1c0J1dHRvbkNsaWNrRXZlbnQpe1xyXG4gICAgaWYoIXRoaXMuYXBpKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXBpICA9IHRoaXMuYXBpO1xyXG4gICAgaWYoJGV2ZW50LmlkID09IFwiYWRkLWRvY3VtZW50c1wiKXtcclxuICAgICAgdGhpcy5jcmVhdGVBdHRhY2htZW50TGluayhhcGkpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibGlua3MtdG8tZG9jdW1lbnRzXCI+XHJcbiAgQGlmIChjYW5DcmVhdGVBdHRhY2htZW50TGluayAmJiAhbGlzdE9ubHkpIHtcclxuICAgIDxsaWItYmltcGx1cy1idXR0b25zLXJvd1xyXG4gICAgW2l0ZW1zXT1cImJ1dHRvblJvd0l0ZW1zXCJcclxuICAgIChidXR0b25DbGlja2VkKT1cImJ1dHRvbkNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAvPlxyXG4gIH1cclxuICBAaWYgKHdvcm1ob2xlU2VsZWN0b3IgPT09ICdsb2NhbEVtYmVkZGVkTW9kYWxJZCcpe1xyXG4gICAgPGRpdiBjbGFzcz0nZW1iZWRkZWQtbW9kYWwtY29udGFpbmVyJz5cclxuICAgICAgPGlmcmFtZSBpZD17e3dvcm1ob2xlU2VsZWN0b3J9fSBbdGl0bGVdPVwiXCI+PC9pZnJhbWU+XHJcbiAgICA8L2Rpdj4gIFxyXG4gIH1cclxuICBAaWYgKCFfYXR0YWNobWVudHM/Lmxlbmd0aCAmJiBzaG93RW1wdHlNZXNzYWdlKSB7XHJcbiAgICA8ZGl2IFxyXG4gICAgICBkYXRhLXRlc3Q9XCJuby1hdHRhY2htZW50LWxpbmtzXCJcclxuICAgICAgY2xhc3M9XCJiaW0tYXR0YWNobWVudC1ub3QtZm91bmRcIlxyXG4gICAgICA+IHt7ICdfTm9fYXR0YWNobWVudGxpbmtzX2ZvdW5kJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9kaXY+XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsYWJsZS1jb250ZW50LWNvbnRhaW5lclwiPlxyXG4gICAgICA8bGliLWJpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXI+XHJcbiAgICAgICAgQGZvciAoYXR0YWNobWVudCBvZiBfYXR0YWNobWVudHM7IHRyYWNrIGF0dGFjaG1lbnQ7IGxldCAgaSA9ICRpbmRleCkge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnQtcm93XCI+XHJcbiAgICAgICAgICAgIEBpZiAoY2FuRGVsZXRlQXR0YWNobWVudExpbmspIHtcclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJpbS1hdHRhY2htZW50LWRlbGV0ZS1idXR0b25cIiAoY2xpY2spPVwiZGVsZXRlQXR0YWNobWVudExpbmsoYXR0YWNobWVudCwkZXZlbnQpXCIgKGtleWRvd24pPVwiZGVsZXRlQXR0YWNobWVudExpbmsoYXR0YWNobWVudCwkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ19EZWxldGVfYXR0YWNobWVudGxpbmsnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgJiMxMDAwNTsmI3hGRTBFO1xyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwiYmltLWF0dGFjaG1lbnRsaW5rLWl0ZW1cIiBocmVmPXt7YXR0YWNobWVudC5saW5rfX0gdGFyZ2V0PSdfYmxhbmsnIHJlbD0nbm9vcGVuZXIgbm9yZWZlcnJlcic+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJpbS1hdHRhY2htZW50LW5hbWVcIiB0aXRsZT17e2F0dGFjaG1lbnQuZmlsZU5hbWV9fT5cclxuICAgICAgICAgICAgICAgIHt7YXR0YWNobWVudC5uYW1lID8gYXR0YWNobWVudC5uYW1lIDogYXR0YWNobWVudC5maWxlTmFtZX19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgQGlmICghaGlkZUF0dGFjaG1lbnRTaXplKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmltLWF0dGFjaG1lbnQtc2l6ZVwiIHRpdGxlPXt7YXR0YWNobWVudC5uYW1lfX0+XHJcbiAgICAgICAgICAgICAgICAgICh7e2F0dGFjaG1lbnQuc2l6ZX19IGtCKVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvbGliLWJpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
|
|
377
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua3MtdG8tZG9jdW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2xpbmtzLXRvLWRvY3VtZW50cy9saW5rcy10by1kb2N1bWVudHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbGlua3MtdG8tZG9jdW1lbnRzL2xpbmtzLXRvLWRvY3VtZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUcsU0FBUyxFQUFJLGlCQUFpQixFQUFJLEtBQUssRUFBOEMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNqSCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFBRyxJQUFJLEVBQUksZUFBZSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdFQUF3RSxDQUFBO0FBRTVILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBRWxHLE9BQU8sRUFDTCxvQ0FBb0MsRUFDckMsTUFBTSw0RUFBNEUsQ0FBQztBQUVwRixPQUFPLEtBQUssU0FBUyxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUcvQyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxNQUFNLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdB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Z0IsMldDdkV0Qyw4NkRBZ0RBLG9vUERYSyxlQUFlLDRGQUNmLG1DQUFtQyw2RUFDbkMsMEJBQTBCOzs0RkFNbEIseUJBQXlCO2tCQVpyQyxTQUFTOytCQUNFLHdCQUF3QixjQUN0QixJQUFJLFdBQ1A7d0JBQ04sZUFBZTt3QkFDZixtQ0FBbUM7d0JBQ25DLDBCQUEwQjtxQkFDNUIsaUJBR2MsaUJBQWlCLENBQUMsU0FBUztrTUFxQmYsR0FBRztzQkFBN0IsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFFa0MsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFRSxnQkFBZ0I7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRUUsa0JBQWtCO3NCQUF6RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUU3QixZQUFZO3NCQUFwQixLQUFLO2dCQUtGLFdBQVc7c0JBRGQsS0FBSztnQkFpQkksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFDRSx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBR0YsWUFBWTtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgIENvbXBvbmVudCAgLCBWaWV3RW5jYXBzdWxhdGlvbiAgLCBJbnB1dCAgLCBPbkluaXQsIFJlbmRlcmVyMiwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBib29sZWFuQXR0cmlidXRlLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0L2JpbXBsdXMtbG9jYWxpemVkLXdpZGdldC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0ICogYXMgV2ViU2RrIGZyb20gJ2JpbXBsdXMtd2Vic2RrJztcclxuaW1wb3J0IHsgIGZyb20gICwgQmVoYXZpb3JTdWJqZWN0LCBzd2l0Y2hNYXAsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNvbmNhdE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQmltcGx1c1Njcm9sbGFibGVDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLXNjcm9sbGFibGUtY29udGFpbmVyL2JpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXIuY29tcG9uZW50J1xyXG5pbXBvcnQgeyBQcm9qZWN0TmF2aWdhdG9yUHJvamVjdCB9IGZyb20gJy4uL3Byb2plY3QtbW9kZWxzL3Byb2plY3QtbW9kZWxzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEJpbXBsdXNCdXR0b25zUm93Q29tcG9uZW50IH0gZnJvbSBcIi4uL2JpbXBsdXMtYnV0dG9ucy1yb3cvYmltcGx1cy1idXR0b25zLXJvdy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQmltcGx1c0J1dHRvbkNsaWNrRXZlbnQsIEJpbXBsdXNCdXR0b25Sb3dJdGVtIH0gZnJvbSAnLi4vYmltcGx1cy1idXR0b25zLXJvdy9iaW1wbHVzLWJ1dHRvbnMtcm93LmludGVyZmFjZSc7XHJcbmltcG9ydCB7XHJcbiAgQmltcGx1c092ZXJsYXlEaWFsb2dDb25maXJtQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL2JpbXBsdXMtb3ZlcmxheS1kaWFsb2ctY29uZmlybS9iaW1wbHVzLW92ZXJsYXktZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSBcIi4uL2JpbXBsdXMtZ2VuZXJhbC1vdmVybGF5LWRpYWxvZy9iaW1wbHVzLWdlbmVyYWwtb3ZlcmxheS1kaWFsb2cuc2VydmljZVwiO1xyXG5pbXBvcnQgKiBhcyBXZWJDbGllbnQgZnJvbSAnYmltcGx1cy13ZWJjbGllbnQnO1xyXG5pbXBvcnQge25ld0F0dGFjaEluZm99IGZyb20gJy4uL2JpbXBsdXMtb2JqZWN0LWNvbW1lbnRzLWxpc3QvYmltcGx1cy1vYmplY3QtY29tbWVudHMtbGlzdC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0RlY29yYXRvcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGVjb3JhdG9ycy5zZXJ2aWNlJztcclxuZXhwb3J0IGNvbnN0IEVNQkVEREVEX01PREFMX0RJQUxPR0VfVFlQRV9GSUxFID0gJ2ZpbGUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IHBvc3RBdHRhY2htZW50TGlua3MgPSAobmV3QXR0YWNobWVudElEczogc3RyaW5nW10sIG9iamVjdElkOiBzdHJpbmcsIGFwaTogV2ViU2RrLkFwaSkgPT4ge1xyXG4gIC8vIENyZWF0ZSBhbiBhcnJheSBvZiBvYnNlcnZhYmxlcyBmb3IgZWFjaCBwb3N0IHJlcXVlc3RcclxuICBjb25zdCBwb3N0UmVxdWVzdHMgPSBuZXdBdHRhY2htZW50SURzLm1hcCgoaWQpID0+ICAgICAgICAgICAgXHJcbiAgICBmcm9tKGFwaS5vYmplY3RzLnBvc3RBdHRhY2htZW50TGluayhvYmplY3RJZCwgSlNPTi5zdHJpbmdpZnkoeyBhdHRhY2htZW50SWQ6IGlkfSkpKSAgICAgIFxyXG4gICk7XHJcblxyXG4gIC8vIFVzZSBmb3JrSm9pbiB0byB3YWl0IGZvciBhbGwgcG9zdCByZXF1ZXN0cyB0byBjb21wbGV0ZSBpbiBwYXJhbGxlbFxyXG4gIHJldHVybiBmb3JrSm9pbihwb3N0UmVxdWVzdHMpXHJcbiAgLnBpcGUoXHJcbiAgICAvLyBBZnRlciBhbGwgcG9zdHMgYXJlIGNvbXBsZXRlLCBzd2l0Y2ggdG8gdGhlIG5leHQgY2FsbCB0byBnZXQgdXBkYXRlZCBsaW5rc1xyXG4gICAgY29uY2F0TWFwKCgpID0+IGZyb20oYXBpLm9iamVjdHMuZ2V0QXR0YWNobWVudExpbmtzKG9iamVjdElkKSkpXHJcbiAgKVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1saW5rcy10by1kb2N1bWVudHMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgICBCaW1wbHVzU2Nyb2xsYWJsZUNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgICBCaW1wbHVzQnV0dG9uc1Jvd0NvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saW5rcy10by1kb2N1bWVudHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xpbmtzLXRvLWRvY3VtZW50cy5jb21wb25lbnQubGVzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGlua3NUb0RvY3VtZW50c0NvbXBvbmVudCBleHRlbmRzIEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHRyYW5zbGF0ZVNlcnZpY2U6ICBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZixcclxuICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGVjb3JhdG9yczpEZWNvcmF0b3JzU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIodHJhbnNsYXRlU2VydmljZSlcclxuICAgIHRoaXMuc2hhZG93Um9vdEVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc2hhZG93Um9vdDtcclxuXHJcbiAgfVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgc2hhZG93Um9vdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG4gIHByaXZhdGUgX3Jvb3RPYmplY3RJZCA6IHN0cmluZyA9IFwiXCI7XHJcbiAgaXNEZXN0cm95ZWQgPSBmYWxzZTtcclxuICBsb2NhbFdvcm1Ib2xlOmJvb2xlYW4gID0gdHJ1ZTtcclxuICAgIC8vV2hlbiBpcyB0cnVlIHRoZW4gaXQgbWVhbnMgdGhlIGNyZWF0aW9uIG9mIGxpbmsgaXMgaW4gcHJvZ3Jlc3NcclxuICBpblByb2dyZXNzOmJvb2xlYW49IGZhbHNlO1xyXG5cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBhcGkhOiBXZWJTZGsuQXBpIHwgbnVsbDtcclxuICBASW5wdXQoKSBjYW5DcmVhdGVBdHRhY2htZW50TGluazogYm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqIElucHV0IEF0dHJpYnV0ZSB0byBzcGVjaWZ5IGlmIHNob3VsZCBzaG93IG9ubHkgbGlzdCBvZiBhdHRhY2htZW50cy4gKi9cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgbGlzdE9ubHkgPSBmYWxzZTtcclxuICAvKiogSW5wdXQgQXR0cmlidXRlIHRvIHNwZWNpZnkgaWYgc2hvdWxkIHNob3cgbWVzc2FnZSB3aGVuIG5vIGF0dGFjaG1lbnRzIGZvdW5kLiAqL1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93RW1wdHlNZXNzYWdlOiBib29sZWFuID0gdHJ1ZTtcclxuICAvKiogSW5wdXQgQXR0cmlidXRlIHRvIHRlbGwgaWYgc2hvdy9oaWRlIGF0dGFjaGVtdCBzaXplIGluZm9ybWF0aW9uLiAqL1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoaWRlQXR0YWNobWVudFNpemUgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgaW5wdXRCYXNlVXJsOiBzdHJpbmcgPScnOyAvLyBiYXNlIHVybCBmb3IgdGhlIGVtYmVkZGVkIG1vZGFsXHJcbiAgXHJcbiAgX2F0dGFjaG1lbnRzOiBXZWJTZGsuQXR0YWNobWVudExpbmtbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBhdHRhY2htZW50cyh2YWx1ZTogV2ViU2RrLkF0dGFjaG1lbnRMaW5rW10pIHtcclxuICAgIHRoaXMuX2F0dGFjaG1lbnRzID0gdmFsdWU7XHJcbiAgICB0aGlzLm9uQXR0YWNobWVudHNDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIGdldCBhdHRhY2htZW50cygpOiBXZWJTZGsuQXR0YWNobWVudExpbmtbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXR0YWNobWVudHM7XHJcbiAgfVxyXG5cclxuICBvbkF0dGFjaG1lbnRzQ2hhbmdlKCkge1xyXG4gICAgaWYodGhpcy5hcGkgJiYgdGhpcy5yb290T2JqZWN0SWQpe1xyXG4gICAgICB0aGlzLl9hdHRhY2htZW50cyA9IHRoaXMuZGVjb3JhdGVBdHRhY2htZW50TGlua3ModGhpcy5hcGksdGhpcy5fYXR0YWNobWVudHMpOyAgICBcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBAT3V0cHV0KCkgYXR0YWNobWVudHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xyXG4gIEBPdXRwdXQoKSBhdHRhY2htZW50c0xpbmtDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG5ld0F0dGFjaEluZm9bXT4oKTtcclxuICBASW5wdXQoKSBjYW5EZWxldGVBdHRhY2htZW50TGluazpib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBwcm9qZWN0IDogUHJvamVjdE5hdmlnYXRvclByb2plY3QgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSB3b3JtaG9sZVNlbGVjdG9yIDogc3RyaW5nIHwgdW5kZWZpbmVkPSBcImxvY2FsRW1iZWRkZWRNb2RhbElkXCI7ICAvLyBjYWxsaW5nIGFwcGxpY2F0aW9uIGNhbiBwcm92aWRlIGEgcGxhY2Ugd2hlcmUgdGhlIGlmcmFtZSBmb3IgZG9jdW1lbnRzIHNlbGVjdGlvbiB3aWxsIGJlIHJlbmRlcmVkXHJcbiAgQElucHV0KCkgZW52IDogc3RyaW5nID0gJ2Rldic7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHJvb3RPYmplY3RJZChpZCA6IHN0cmluZ3x1bmRlZmluZWQpe1xyXG4gICAgaWYoIWlkKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fY3VycmVudE9iamVjdElkJC5uZXh0KGlkKTtcclxuICAgIHRoaXMuX3Jvb3RPYmplY3RJZCA9IGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJvb3RPYmplY3RJZCgpIDogc3RyaW5ne1xyXG4gICAgcmV0dXJuIHRoaXMuX3Jvb3RPYmplY3RJZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1cnJlbnRPYmplY3RJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gKFwiXCIpO1xyXG4gIF9hdHRhY2htZW50Q291bnQgOiBudW1iZXIgPSAwO1xyXG4gIGJ1dHRvblJvd0l0ZW1zOiBBcnJheTxCaW1wbHVzQnV0dG9uUm93SXRlbT4gPSBbXHJcbiAgICB7XHJcbiAgICAgIGlkOiBcImFkZC1kb2N1bWVudHNcIlxyXG4gICAgICAsIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0FkZF9kb2N1bWVudCcpXHJcbiAgICAgICwgdG9vbHRpcDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ19BZGRfZG9jdW1lbnQnKVxyXG4gICAgICAsIGRpc2FibGVkOiAhdGhpcy5jYW5DcmVhdGVBdHRhY2htZW50TGlua1xyXG4gICAgICAsIGJ1dHRvblN0eWxlOiAncHJpbWFyeSdcclxuICAgIH1cclxuICBdO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5saXN0T25seSkge1xyXG4gICAgICB0aGlzLl9jdXJyZW50T2JqZWN0SWQkLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKGlkKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9jcmVhdGVBdHRhY2htZW50TGlua1N0cnVjdHVyZShpZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNEZXN0cm95ZWQgPSB0cnVlO1xyXG4gIH1cclxuICBcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBwcml2YXRlIGRlY29yYXRlQXR0YWNobWVudElkKGl0ZW06YW55KXtcclxuICAgICAgY29uc3QgaXQ6bmV3QXR0YWNoSW5mbyA9IHtcclxuICAgICAgICBpZDogaXRlbS5pZCxcclxuICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgbmFtZVNob3J0OiBpdGVtLm5hbWUsXHJcbiAgICAgICAgdXJsOicnLFxyXG4gICAgICAgIGljb25DbGFzczogJycsXHJcbiAgICAgICAgaWNvblRpdGxlOiAnJyxcclxuICAgICAgICB0eXBlOiAnQXR0YWNobWVudExpbmsnLFxyXG4gICAgICAgIGRlbGV0ZUJ1dHRvblRpdGxlOicnICAgICAgICBcclxuICAgICAgfTsgICAgIFxyXG4gICAgcmV0dXJuIGl0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkZWNvcmF0ZUF0dGFjaG1lbnRMaW5rcyhhcGk6V2ViU2RrLkFwaSwgbGlua3M6V2ViU2RrLkF0dGFjaG1lbnRMaW5rc1Jlc3BvbnNlKTpXZWJTZGsuQXR0YWNobWVudExpbmtbXXtcclxuICAgIGNvbnN0IGRlY29yYXRlZExpbmtzID0gbGlua3MubWFwKChsaW5rKSA9PiB0aGlzLmRlY29yYXRvcnMuZGVjb3JhdGVMaW5rKGFwaSxsaW5rLFt0aGlzLl9jdXJyZW50T2JqZWN0SWQkLnZhbHVlXSkpO1xyXG4gICAgZGVjb3JhdGVkTGlua3Muc29ydCgoYSxiKSA9PiB7XHJcbiAgICAgIGlmKGEuZmlsZU5hbWUudG9Mb3dlckNhc2UoKSA8IGIuZmlsZU5hbWUudG9Mb3dlckNhc2UoKSApIHJldHVybiAtMTtcclxuICAgICAgaWYoYS5maWxlTmFtZS50b0xvd2VyQ2FzZSgpICA+IGIuZmlsZU5hbWUudG9Mb3dlckNhc2UoKSApIHJldHVybiAxO1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGRlY29yYXRlZExpbmtzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlQXR0YWNobWVudExpbmtTdHJ1Y3R1cmUob2JqZWN0SWQgOiBzdHJpbmcpe1xyXG5cclxuICAgIHRoaXMuX2xvYWRBdHRhY2htZW50TGlua1N0cnVjdHVyZShvYmplY3RJZCk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQgOihzdHJ1Y3R1cmVEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYoc3RydWN0dXJlRGF0YSl7XHJcbiAgICAgICAgICAvL3RoaXMuX2F0dGFjaG1lbnRMaW5rU3RydWN0dXJlID0gX2F0dGFjaG1lbnRMaW5rIFN0cnVjdHVyZUJ1aWxkZXIuY3JlYXRlRnJvbVJlc3BvbnNlKHN0cnVjdHVyZURhdGEpO1xyXG4gICAgICAgICAgdGhpcy5fYXR0YWNobWVudENvdW50ID0gc3RydWN0dXJlRGF0YT8ubGVuZ3RoO1xyXG4gICAgICAgICAgaWYodGhpcy5hcGkpe1xyXG4gICAgICAgICAgICBjb25zdCByZXR2YWwgPSB0aGlzLmRlY29yYXRlQXR0YWNobWVudExpbmtzKHRoaXMuYXBpLHN0cnVjdHVyZURhdGEpO1xyXG4gICAgICAgICAgICBpZihyZXR2YWwpe1xyXG4gICAgICAgICAgICAgIHRoaXMuX2F0dGFjaG1lbnRzID0gcmV0dmFsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbG9hZEF0dGFjaG1lbnRMaW5rU3RydWN0dXJlKG9iamVjdElkIDogc3RyaW5nKXtcclxuICAgIGlmKCF0aGlzLmFwaSl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZighb2JqZWN0SWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZyb20odGhpcy5hcGkub2JqZWN0cy5nZXRBdHRhY2htZW50TGlua3Mob2JqZWN0SWQpKTtcclxuICB9XHJcblxyXG4gIGRvY3VtZW50U2VsZWN0aW9uIDpzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xyXG4gIGlzT3BlbmVkOmJvb2xlYW4gPSBmYWxzZTtcclxuICBlbWJlZGRlZE1vZGFsQ29udGFpbmVyOnN0cmluZyA9ICdlbWJlZGRlZC1tb2RhbCc7XHJcblxyXG4gIC8vIHNob3cgb3IgaGlkZSBlbWJlZGRlZCBtb2RhbFxyXG4gIHNldE1vZGFsVmlzaWJpbGl0eShvcGVuZWQgPSB0cnVlKSB7XHJcbiAgICBpZighdGhpcy53b3JtaG9sZVNlbGVjdG9yKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZWxlbWVudCA9ICB0aGlzLmxvY2FsV29ybUhvbGUgPyB0aGlzLnNoYWRvd1Jvb3RFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjXCIgKyB0aGlzLndvcm1ob2xlU2VsZWN0b3IpOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy53b3JtaG9sZVNlbGVjdG9yKTtcclxuICAgIGlmICghZWxlbWVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmxvY2FsV29ybUhvbGUpe1xyXG4gICAgICBpZihlbGVtZW50LnBhcmVudEVsZW1lbnQpe1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudC5wYXJlbnRFbGVtZW50LCdkaXNwbGF5JyxvcGVuZWQ/J2Jsb2NrJzonbm9uZScpXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudC5wYXJlbnRFbGVtZW50LCdkaXNwbGF5JyxvcGVuZWQ/J2Jsb2NrJzonbm9uZScpXHJcbiAgICB9XHJcblxyXG4gICAgLy8vY29udGFpbmVyRWwuZmFkZUluKFwiZmFzdFwiKSA6IGNvbnRhaW5lckVsLmZhZGVPdXQoXCJmYXN0XCIpO1xyXG4gICAgdGhpcy5pc09wZW5lZCA9IG9wZW5lZDtcclxuICB9XHJcblxyXG5cclxuICBjbG9zZUVtYmVkZGVkTW9kYWxGaWxlU2VsZWN0aW9uKCkge1xyXG4gICAgdGhpcy5zZXRNb2RhbFZpc2liaWxpdHkoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgX2FkZExpbmsoYXBpOldlYlNkay5BcGksIGlkczpzdHJpbmdbXSkge1xyXG4gICAgLy8gZmlsdGVyIG91dCBhbHJlYWR5IGV4aXN0aW5nIGF0dGFjaG1lbnQgbGlua3MgXHJcbiAgICBjb25zdCBuZXdBdHRhY2htZW50SURzID0gaWRzLmZpbHRlciggaXRlbSA9PiAhdGhpcy5hdHRhY2htZW50cy5maW5kKG4gPT4gbi5pZCA9PT0gaXRlbSkgKTtcclxuICAgIGlmKCAhbmV3QXR0YWNobWVudElEcy5sZW5ndGggKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5pblByb2dyZXNzKXtcclxuICAgICAgY29uc29sZS5sb2coJ2luIHByb2dyZXNzJyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZighdGhpcy5yb290T2JqZWN0SWQpe1xyXG4gICAgICAvLyB3ZSBkb24ndCBrbm93IHRvIHdoaWNoIG9iamVjdCB3ZSB3YW50IHRvIGF0dGFjaCB0aGUgZG9jdW1lbnRzXHJcbiAgICAgIC8vIHNvIHdlIHdpbGwgZGVsaXZlciBqdXN0IGluZm9ybWF0aW9uIGFib3V0IHNlbGVjdGVkIGRvY3VtZW50c1xyXG4gICAgICBjb25zdCBnZXRSZXF1ZXN0cyA9IG5ld0F0dGFjaG1lbnRJRHMubWFwKChpZCkgPT4gICAgICAgICAgICBcclxuICAgICAgICBmcm9tKGFwaS5vYmplY3RzLmdldChpZCwwLHVuZGVmaW5lZCx1bmRlZmluZWQsdW5kZWZpbmVkLHVuZGVmaW5lZCkpXHJcbiAgICAgICk7XHJcbiAgICBcclxuICAgICAgZm9ya0pvaW4oZ2V0UmVxdWVzdHMpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3VsdHMpID0+IHtcclxuICAgICAgICAgIC8vIFByb2Nlc3MgdGhlIGFycmF5IG9mIHJlc3VsdHNcclxuICAgICAgICAgIChyZXN1bHRzIGFzIFdlYlNkay5BdHRhY2htZW50TGlua1tdKT8uZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBpZihpdGVtPy5pZCAmJiAhdGhpcy5hdHRhY2htZW50cy5maW5kKGF0dGFjaG1lbnQgPT4gYXR0YWNobWVudD8uaWQgPT09IGl0ZW0uaWQpKXtcclxuICAgICAgICAgICAgICB0aGlzLl9hdHRhY2htZW50cy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGNvbnN0IHJldHZhbDpuZXdBdHRhY2hJbmZvW10gPSB0aGlzLl9hdHRhY2htZW50cy5tYXAoKGl0ZW0pID0+IHRoaXMuZGVjb3JhdGVBdHRhY2htZW50SWQoaXRlbSkpOyAgICAgICAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMuYXR0YWNobWVudHNMaW5rQ2hhbmdlLmVtaXQocmV0dmFsKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBvY2N1cnJlZCBkdXJpbmcgcmVxdWVzdHM6JywgZXJyKTtcclxuICAgICAgICAgIHRoaXMuX2F0dGFjaG1lbnRzPVtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyB3ZSBrbm93IHRvIHdoaWNoIG9iamVjdCB3ZSB3YW50IHRvIGF0dGFjaCB0aGUgZG9jdW1lbnRzXHJcbiAgICB0aGlzLmluUHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgcG9zdEF0dGFjaG1lbnRMaW5rcyhuZXdBdHRhY2htZW50SURzLCB0aGlzLnJvb3RPYmplY3RJZCwgYXBpKVxyXG4gICAgLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6ICh1cGRhdGVkQXR0YWNobWVudHMpID0+IHtcclxuICAgICAgICB0aGlzLl9hdHRhY2htZW50cyA9IHRoaXMuZGVjb3JhdGVBdHRhY2htZW50TGlua3MoXHJcbiAgICAgICAgICBhcGksXHJcbiAgICAgICAgICB1cGRhdGVkQXR0YWNobWVudHNcclxuICAgICAgICApOyAvLyBVcGRhdGUgYXR0YWNobWVudHMgaW4gY29tcG9uZW50ICAgXHJcbiAgICAgICAgdGhpcy5pblByb2dyZXNzID0gZmFsc2U7ICBcclxuICAgICAgICB0aGlzLmF0dGFjaG1lbnRzQ2hhbmdlLmVtaXQobmV3QXR0YWNobWVudElEcykgICBcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gYWRkIG9yIHJlbG9hZCBhdHRhY2htZW50czonLCBlcnIpO1xyXG4gICAgICAgIHRoaXMuaW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBjcmVhdGVBdHRhY2htZW50TGluayhhcGk6IFdlYlNkay5BcGkpe1xyXG4gICAgY29uc29sZS5sb2coJ2NyZWF0ZUF0dGFjaG1lbnRMaW5rJylcclxuICAgIHRoaXMubG9jYWxXb3JtSG9sZSA9IHRoaXMud29ybWhvbGVTZWxlY3RvciA9PT0gXCJsb2NhbEVtYmVkZGVkTW9kYWxJZFwiO1xyXG4gICAgY29uc3QgY2FsbGJhY2tGID0gKGRvY0lEczpzdHJpbmdbXSk6dm9pZCA9PiB7XHJcbiAgICAgIGNvbnN0IGlkcyA9ICh0eXBlb2YgZG9jSURzID09PSAnc3RyaW5nJykgPyBbZG9jSURzXSA6IGRvY0lEcztcclxuICAgICAgY29uc3QgZm91bmREb2N1bWVudHMgPSBpZHMgJiYgaWRzLmxlbmd0aCA+IDA7XHJcbiAgICAgIGlmKCF0aGlzLmlzRGVzdHJveWVkKXtcclxuICAgICAgICB0aGlzLmNsb3NlRW1iZWRkZWRNb2RhbEZpbGVTZWxlY3Rpb24oKTtcclxuICAgICAgICBpZiAoZm91bmREb2N1bWVudHMpIHtcclxuICAgICAgICAgIHRoaXMuX2FkZExpbmsoYXBpLGlkcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZiBjYWxsYmFja0YgIT09IFwiZnVuY3Rpb25cIiAgfHwgIXRoaXMucHJvamVjdCB8fCAhdGhpcy5hcGkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBpc0xvY2FsaG9zdCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKFwibG9jYWxob3N0XCIpO1xyXG4gICAgICBsZXQgYWNjZXNzX3Rva2VuIDpzdHJpbmd8bnVsbCB8dW5kZWZpbmVkPSAnJztcclxuICAgICAgYWNjZXNzX3Rva2VuID0gdGhpcy5hcGk/LmdldEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgIGlmICghYWNjZXNzX3Rva2VuKSB7XHJcbiAgICAgICAgYWNjZXNzX3Rva2VuID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKCdhY2Nlc3NfdG9rZW4nKTtcclxuICAgICAgICBpZiAoIWFjY2Vzc190b2tlbiAvKiYmIGlzTG9jYWxob3N0Ki8pIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgbmV3Q2xpZW50ID0gIG5ldyBXZWJDbGllbnQuRXh0ZXJuYWxDbGllbnQoJ0JJbXBsdXNOR1hDb21wb25lbnRDbGllbnQnKTtcclxuICAgICAgbmV3Q2xpZW50Py5pbml0aWFsaXplKCk7XHJcbiAgICAgIC8vIE1ha2UgZW1iZWRkZWQgd2luZG93cyBwb2ludGluZyB0byB0aGUgY3VycmVudCBmZWF0dXJlIGJyYW5jaCB3aXRoIGJhc2VVcmwgc2V0dXBcclxuICAgICAgY29uc3Qgb3B0aW9uczp7YmFzZVVybD86c3RyaW5nfSA9IHt9O1xyXG4gICAgICAvLyBJbiBjYXNlIG9mIGxvY2FsaG9zdCBvbW1pdCBleHBsaWNpdCBzZXR1cCBvZiBiYXNlVXJsXHJcbiAgICAgIGlmICghaXNMb2NhbGhvc3QpIHtcclxuICAgICAgICAvLyBSZW1vdmUgJy92aWV3ZXIvJyBmcm9tIHRoZSBlbmQgb2YgcGF0aG5hbWVcclxuICAgICAgICBsZXQgZmlsdGVyZWRQYXRobmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKC9cXC92aWV3ZXJcXC8kLywgJy8nKTtcclxuICAgICAgICAvLyBSZW1vdmUgJy9jb25uZXhpcy8nIGZyb20gdGhlIGVuZCBvZiBwYXRobmFtZSBpZiB3ZSB1c2UgdGVtcG9yYXJ5IHVybCBmb3IgY29ubmV4aXMgbGlrZSAgaHR0cHM6Ly9wb3J0YWwtZGV2LmJpbXBsdXMubmV0L2Nvbm5leGlzLz9lbWJlZGRlZC4uLlxyXG4gICAgICAgIGZpbHRlcmVkUGF0aG5hbWUgPSBmaWx0ZXJlZFBhdGhuYW1lLnJlcGxhY2UoL1xcL2Nvbm5leGlzXFwvJC8sICcvJyk7XHJcbiAgICAgICAgb3B0aW9ucy5iYXNlVXJsID0gdGhpcy5pbnB1dEJhc2VVcmwgPyB0aGlzLmlucHV0QmFzZVVybDogd2luZG93LmxvY2F0aW9uLm9yaWdpbiArIGZpbHRlcmVkUGF0aG5hbWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vL2NvbnN0IGVudjpzdHJpbmc9XCJkZXZcIjsgIC8vLyEhISB0by1kbyBpbnRyb2R1Y2UgZW52IHZhcmlhYmxlIGludG8gY29tcG9uZW50c1xyXG4gICAgICBjb25zdCBjbGllbnRNb2R1bGUgPSBXZWJDbGllbnQuQmltRmlsZXNTZWxlY3Q7XHJcbiAgICAgIGlmKHRoaXMud29ybWhvbGVTZWxlY3Rvcil7XHJcbiAgICAgICAgY29uc3QgZG9jdW1lbnRTZWxlY3Rpb24gPSBuZXcgY2xpZW50TW9kdWxlKHRoaXMud29ybWhvbGVTZWxlY3RvciwgYWNjZXNzX3Rva2VuLCBuZXdDbGllbnQsIHRoaXMuZW52LCBvcHRpb25zKTtcclxuICAgICAgICBpZiAoIWRvY3VtZW50U2VsZWN0aW9uKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRvY3VtZW50U2VsZWN0aW9uLm9uQXR0YWNobWVudFNlbGVjdGVkID0gY2FsbGJhY2tGO1xyXG5cclxuICAgICAgICBpZih0aGlzLnByb2plY3Qpe1xyXG4gICAgICAgICAgaWYodGhpcy5sb2NhbFdvcm1Ib2xlKXtcclxuICAgICAgICAgICAgZG9jdW1lbnRTZWxlY3Rpb24ubG9hZFNoYWRvd1Jvb3QodGhpcy5zaGFkb3dSb290RWxlbWVudCx0aGlzLnByb2plY3QudGVhbVNsdWcgLCB0aGlzLnByb2plY3QuaWQpO1xyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIGRvY3VtZW50U2VsZWN0aW9uLmxvYWQodGhpcy5wcm9qZWN0LnRlYW1TbHVnICwgdGhpcy5wcm9qZWN0LmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXRNb2RhbFZpc2liaWxpdHkodHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0sMjAwKTtcclxuXHJcbiAgfVxyXG5cclxuICBfZGVsZXRlQXR0YWNobWVudExpbmsoYXBpOldlYlNkay5BcGkgLGlkOnN0cmluZywkZXZlbnQ6RXZlbnQpe1xyXG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCBvYmplY3RzID0gYXBpLm9iamVjdHM7XHJcbiAgICBjb25zdCBvYmplY3RJZCA9IHRoaXMuX2N1cnJlbnRPYmplY3RJZCQudmFsdWU7XHJcbiAgICBmcm9tKGFwaS5vYmplY3RzLmRlbGV0ZUF0dGFjaG1lbnRMaW5rKHRoaXMucm9vdE9iamVjdElkLGlkKSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKCgpID0+IGZyb20ob2JqZWN0cy5nZXRBdHRhY2htZW50TGlua3Mob2JqZWN0SWQpKSlcclxuICAgICkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHVwZGF0ZWRBdHRhY2htZW50cykgPT4ge1xyXG4gICAgICAgIGlmKHRoaXMuYXBpKXtcclxuICAgICAgICAgIHRoaXMuX2F0dGFjaG1lbnRzID0gdGhpcy5kZWNvcmF0ZUF0dGFjaG1lbnRMaW5rcyh0aGlzLmFwaSx1cGRhdGVkQXR0YWNobWVudHMpOyAgLy8gVXBkYXRlIGF0dGFjaG1lbnRzIGluIGNvbXBvbmVudFxyXG4gICAgICAgICAgLy8gUHJvY2VzcyB0aGUgYXJyYXkgb2YgcmVzdWx0c1xyXG4gICAgICAgICAgY29uc3QgcmV0dmFsOm5ld0F0dGFjaEluZm9bXSA9IHRoaXMuX2F0dGFjaG1lbnRzPy5tYXAoKGl0ZW0pID0+IHRoaXMuZGVjb3JhdGVBdHRhY2htZW50SWQoaXRlbSkpO1xyXG4gICAgICAgICAgdGhpcy5hdHRhY2htZW50c0xpbmtDaGFuZ2UuZW1pdChyZXR2YWwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gZGVsZXRlIG9yIHJlbG9hZCBhdHRhY2htZW50czonLCBlcnIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUF0dGFjaG1lbnRMaW5rKGF0dGFjaG1lbnQ6V2ViU2RrLkF0dGFjaG1lbnRMaW5rLCRldmVudDpFdmVudCl7XHJcbiAgICBpZighdGhpcy5hcGkpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZighYXR0YWNobWVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBhcGkgID0gdGhpcy5hcGk7XHJcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihCaW1wbHVzT3ZlcmxheURpYWxvZ0NvbmZpcm1Db21wb25lbnQsIHtcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIHBvc2l0aW9uOiAnbWlkZGxlJyxcclxuICAgICAgICBwb3NpdGlvbk9wdGlvbnM6IHt9LFxyXG4gICAgICAgIG92ZXJsYXlDbGlja0VuYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIG92ZXJsYXlWaXNpYmlsaXR5RW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICBkcmFnZ2FibGU6IHRydWVcclxuICAgICAgfSwgZGF0YToge1xyXG4gICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0RlbGV0ZV9hdHRhY2htZW50bGluaycpLFxyXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQXR0YWNobWVudGxpbmtfZGVsZXRlX2NvbmZpcm1hdGlvbl9tZXNzYWdlJyksXHJcbiAgICAgICAgYWNjZXB0QnV0dG9uTG9jYWxpemVkU3RyaW5nOiBcIl9EZWxldGVcIixcclxuICAgICAgICBhY2NlcHRDYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fZGVsZXRlQXR0YWNobWVudExpbmsoYXBpLGF0dGFjaG1lbnQuaWQsJGV2ZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIGJ1dHRvbkNsaWNrZWQoJGV2ZW50OiBCaW1wbHVzQnV0dG9uQ2xpY2tFdmVudCl7XHJcbiAgICBpZighdGhpcy5hcGkpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBhcGkgID0gdGhpcy5hcGk7XHJcbiAgICBpZigkZXZlbnQuaWQgPT0gXCJhZGQtZG9jdW1lbnRzXCIpe1xyXG4gICAgICB0aGlzLmNyZWF0ZUF0dGFjaG1lbnRMaW5rKGFwaSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsaW5rcy10by1kb2N1bWVudHNcIj5cclxuICBAaWYgKGNhbkNyZWF0ZUF0dGFjaG1lbnRMaW5rICYmICFsaXN0T25seSkge1xyXG4gICAgPGxpYi1iaW1wbHVzLWJ1dHRvbnMtcm93XHJcbiAgICBbaXRlbXNdPVwiYnV0dG9uUm93SXRlbXNcIlxyXG4gICAgKGJ1dHRvbkNsaWNrZWQpPVwiYnV0dG9uQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAgIC8+XHJcbiAgfVxyXG4gIEBpZiAod29ybWhvbGVTZWxlY3RvciA9PT0gJ2xvY2FsRW1iZWRkZWRNb2RhbElkJyl7XHJcbiAgICA8ZGl2IGNsYXNzPSdlbWJlZGRlZC1tb2RhbC1jb250YWluZXInPlxyXG4gICAgICA8aWZyYW1lIGlkPXt7d29ybWhvbGVTZWxlY3Rvcn19IFt0aXRsZV09XCJcIj48L2lmcmFtZT5cclxuICAgIDwvZGl2PiAgXHJcbiAgfVxyXG4gIEBpZiAoIV9hdHRhY2htZW50cy5sZW5ndGggJiYgc2hvd0VtcHR5TWVzc2FnZSkge1xyXG4gICAgPGRpdiBcclxuICAgICAgZGF0YS10ZXN0PVwibm8tYXR0YWNobWVudC1saW5rc1wiXHJcbiAgICAgIGNsYXNzPVwiYmltLWF0dGFjaG1lbnQtbm90LWZvdW5kXCJcclxuICAgICAgPiB7eyAnX05vX2F0dGFjaG1lbnRsaW5rc19mb3VuZCcgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvZGl2PlxyXG4gIH0gQGVsc2Uge1xyXG4gICAgPGRpdiBjbGFzcz1cInNjcm9sbGFibGUtY29udGVudC1jb250YWluZXJcIj5cclxuICAgICAgPGxpYi1iaW1wbHVzLXNjcm9sbGFibGUtY29udGFpbmVyPlxyXG4gICAgICAgIEBmb3IgKGF0dGFjaG1lbnQgb2YgX2F0dGFjaG1lbnRzOyB0cmFjayBhdHRhY2htZW50OyBsZXQgIGkgPSAkaW5kZXgpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50LXJvd1wiPlxyXG4gICAgICAgICAgICBAaWYgKGNhbkRlbGV0ZUF0dGFjaG1lbnRMaW5rKSB7XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiaW0tYXR0YWNobWVudC1kZWxldGUtYnV0dG9uXCIgKGNsaWNrKT1cImRlbGV0ZUF0dGFjaG1lbnRMaW5rKGF0dGFjaG1lbnQsJGV2ZW50KVwiIChrZXlkb3duKT1cImRlbGV0ZUF0dGFjaG1lbnRMaW5rKGF0dGFjaG1lbnQsJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdfRGVsZXRlX2F0dGFjaG1lbnRsaW5rJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICYjMTAwMDU7JiN4RkUwRTtcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cImJpbS1hdHRhY2htZW50bGluay1pdGVtXCIgaHJlZj17e2F0dGFjaG1lbnQubGlua319IHRhcmdldD0nX2JsYW5rJyByZWw9J25vb3BlbmVyIG5vcmVmZXJyZXInPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiaW0tYXR0YWNobWVudC1uYW1lXCIgdGl0bGU9e3thdHRhY2htZW50LmZpbGVOYW1lfX0+XHJcbiAgICAgICAgICAgICAgICB7e2F0dGFjaG1lbnQubmFtZSA/IGF0dGFjaG1lbnQubmFtZSA6IGF0dGFjaG1lbnQuZmlsZU5hbWV9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIEBpZiAoIWhpZGVBdHRhY2htZW50U2l6ZSkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJpbS1hdHRhY2htZW50LXNpemVcIiB0aXRsZT17e2F0dGFjaG1lbnQubmFtZX19PlxyXG4gICAgICAgICAgICAgICAgICAoe3thdHRhY2htZW50LnNpemV9fSBrQilcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2xpYi1iaW1wbHVzLXNjcm9sbGFibGUtY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|