@eo-sdk/client 11.14.7 → 11.15.0-rc.1
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/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts.map +1 -1
- package/app/eo-client/object-state/object-state/object-state.component.d.ts +35 -4
- package/app/eo-client/object-state/object-state/object-state.component.d.ts.map +1 -1
- package/app/eo-client/stored-queries-state/stored-queries-state.component.d.ts +1 -0
- package/app/eo-client/stored-queries-state/stored-queries-state.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/id-reference/id-reference.component.d.ts +3 -2
- package/app/eo-framework/form-elements/id-reference/id-reference.component.d.ts.map +1 -1
- package/app/eo-framework/grid/grid.component.d.ts +5 -4
- package/app/eo-framework/grid/grid.component.d.ts.map +1 -1
- package/app/eo-framework/object-details/object-details.component.d.ts +3 -1
- package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
- package/app/eo-framework/object-details/object-links/object-links.component.d.ts +3 -2
- package/app/eo-framework/object-details/object-links/object-links.component.d.ts.map +1 -1
- package/app/eo-framework/result-list/result-list.component.d.ts +7 -0
- package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
- package/app/eo-framework/stored-query/stored-query-type-filter.enum.d.ts +2 -1
- package/app/eo-framework/stored-query/stored-query-type-filter.enum.d.ts.map +1 -1
- package/app/eo-framework/tree/tree.component.interface.d.ts +1 -0
- package/app/eo-framework/tree/tree.component.interface.d.ts.map +1 -1
- package/assets/_default/i18n/de.json +4 -0
- package/assets/_default/i18n/en.json +4 -0
- package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +3 -2
- package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +1 -1
- package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +1 -1
- package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +1 -1
- package/esm2022/app/eo-client/object-state/object-state/object-state.component.mjs +123 -26
- package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +1 -1
- package/esm2022/app/eo-client/process-state/process-state.component.mjs +1 -1
- package/esm2022/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +1 -1
- package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +6 -3
- package/esm2022/app/eo-client/version-state/version-state.component.mjs +1 -1
- package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +4 -4
- package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +11 -5
- package/esm2022/app/eo-framework/grid/grid.component.mjs +20 -9
- package/esm2022/app/eo-framework/object-details/object-details.component.mjs +28 -25
- package/esm2022/app/eo-framework/object-details/object-links/object-links.component.mjs +15 -4
- package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +2 -2
- package/esm2022/app/eo-framework/prepare-details/prepare-details.component.mjs +3 -3
- package/esm2022/app/eo-framework/result-list/result-list.component.mjs +18 -4
- package/esm2022/app/eo-framework/stored-query/stored-query-type-filter.enum.mjs +2 -1
- package/esm2022/app/eo-framework/tree/tree-node/tree-node.component.mjs +4 -3
- package/esm2022/app/eo-framework/tree/tree.component.interface.mjs +1 -1
- package/fesm2022/eo-sdk-client.mjs +201 -54
- package/fesm2022/eo-sdk-client.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -17,10 +17,11 @@ export class ObjectLinksComponent {
|
|
|
17
17
|
this.init(dmsObject);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
constructor(referenceService, cache, systemService) {
|
|
20
|
+
constructor(referenceService, cache, systemService, translate) {
|
|
21
21
|
this.referenceService = referenceService;
|
|
22
22
|
this.cache = cache;
|
|
23
23
|
this.systemService = systemService;
|
|
24
|
+
this.translate = translate;
|
|
24
25
|
this.inReferences = [];
|
|
25
26
|
this.outReferences = [];
|
|
26
27
|
this.superQueryParams = {};
|
|
@@ -52,6 +53,16 @@ export class ObjectLinksComponent {
|
|
|
52
53
|
forkJoin(obs)
|
|
53
54
|
.subscribe((results) => {
|
|
54
55
|
[this.inReferences, this.outReferences] = results;
|
|
56
|
+
if (this.inReferences?.length) {
|
|
57
|
+
this.inReferences[0].title = this.inReferences[0].title.replace('sysobject', this.translate.instant('eo.global.basetype.sysobject'))
|
|
58
|
+
.replace('sysdocument', this.translate.instant('eo.global.basetype.sysdocument'))
|
|
59
|
+
.replace('sysfolder', this.translate.instant('eo.global.basetype.sysfolder'));
|
|
60
|
+
}
|
|
61
|
+
if (this.outReferences?.length) {
|
|
62
|
+
this.outReferences[0].title = this.outReferences[0].title.replace('sysobject', this.translate.instant('eo.global.basetype.sysobject'))
|
|
63
|
+
.replace('sysdocument', this.translate.instant('eo.global.basetype.sysdocument'))
|
|
64
|
+
.replace('sysfolder', this.translate.instant('eo.global.basetype.sysfolder'));
|
|
65
|
+
}
|
|
55
66
|
this.loading = false;
|
|
56
67
|
}, (error) => {
|
|
57
68
|
console.error({ error });
|
|
@@ -166,14 +177,14 @@ export class ObjectLinksComponent {
|
|
|
166
177
|
}
|
|
167
178
|
return `result?query=${encodeURIComponent(JSON.stringify(query))}`;
|
|
168
179
|
}
|
|
169
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ObjectLinksComponent, deps: [{ token: i1.ReferenceService }, { token: i2.AppCacheService }, { token: i2.SystemService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
180
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ObjectLinksComponent, deps: [{ token: i1.ReferenceService }, { token: i2.AppCacheService }, { token: i2.SystemService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
170
181
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ObjectLinksComponent, selector: "eo-object-links", inputs: { dmsObject: "dmsObject" }, ngImport: i0, template: "<div class=\"eo-references\">\n <div class=\"object-not-found\" *ngIf=\"!inReferences?.length && !outReferences?.length; else refContainer\">\n <div>{{'eo.references.object.notfound' | translate}}</div>\n </div>\n\n <ng-template #refContainer>\n <div class=\"form-buttons\">\n <div class=\"gridlabels\">\n <div class=\"gridlabel\" [ngClass]=\"{'active': showInReferences}\" (click)=\"switchListVisibilityTo('in')\"\n title=\"{{'eo.references.to.label' | translate}}\">\n <span>{{'eo.references.to.label' | translate}}</span>\n </div>\n <div class=\"gridlabel\" [ngClass]=\"{'active': showOutReferences}\" (click)=\"switchListVisibilityTo('out')\"\n title=\"{{'eo.references.from.label' | translate}}\">\n <span>{{'eo.references.from.label' | translate}}</span>\n </div>\n </div>\n <a class=\"result-list-link\" [routerLink]=\"'/result'\" [queryParams]=\"superQueryParams\">\n <eo-icon class=\"icon\" [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\" [iconTitle]=\"('eo.references.open.resultlist' | translate)\"></eo-icon>\n </a>\n </div>\n\n <div class=\"eo-references-lists\">\n\n <!-- list of inReferences -->\n <div class=\"resultlist-container\" [ngClass]=\"{'hidden': !showInReferences}\">\n @if (loading) {\n <main class=\"loader-overlay__mask\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </main>\n } @else if (inReferences?.length) {\n <div class=\"referenceList\">\n @for (entry1Layer of inReferences; track entry1Layer) {\n <eo-simple-accordion\n [header]=\"entry1Layer.title\"\n [iconObjectType]=\"getObjectType(entry1Layer.type)\"\n [itemAmount]=\"entry1Layer.count\"\n [resultListLink]=\"getSearchLink(entry1Layer)\">\n @for (entry2Layer of entry1Layer.folder; track entry2Layer) {\n @for (entry3Layer of entry2Layer.folder; track entry3Layer) {\n <div class=\"content\" (click)=\"navigateToReference($event, entry3Layer)\">\n <div class=\"flex-row\">\n <div class=\"title\">\n {{entry3Layer?.title}}\n </div>\n </div>\n <div class=\"description\">\n {{entry3Layer?.description}}\n </div>\n <div class=\"remote-element\">\n {{'eo.references.field.label' | translate}} {{entry2Layer.title}}\n </div>\n </div>\n }\n }\n </eo-simple-accordion>\n }\n </div>\n } @else {\n <div class=\"notfound\">{{'eo.references.object.notfound' | translate}}</div>\n }\n </div>\n\n <!-- list of outReferences -->\n <div class=\"resultlist-container\" [ngClass]=\"{'hidden': !showOutReferences}\">\n @if (loading) {\n <main class=\"loader-overlay__mask\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </main>\n } @else if (outReferences?.length) {\n <div class=\"referenceList\">\n @for (entry1Layer of outReferences; track entry1Layer) {\n <eo-simple-accordion\n [header]=\"entry1Layer.title\"\n [iconObjectType]=\"entry1Layer.objectType\"\n [itemAmount]=\"entry1Layer.folder.length\"\n [resultListLink]=\"getSearchLink(entry1Layer)\">\n @for (entry2Layer of entry1Layer.folder; track entry2Layer) {\n <div class=\"content\" (click)=\"navigateToReference($event, entry2Layer)\">\n <div class=\"flex-row\">\n <div class=\"title\">\n {{entry2Layer?.title}}\n </div>\n </div>\n <div class=\"description\">\n {{entry2Layer?.description}}\n </div>\n <div class=\"remote-element\">\n {{'eo.references.field.label' | translate}} {{entry2Layer.fieldLabel}}\n </div>\n </div>\n }\n </eo-simple-accordion>\n }\n </div>\n } @else {\n <div class=\"notfound\">{{'eo.references.object.notfound' | translate}}</div>\n }\n </div>\n </div>\n </ng-template>\n</div>\n", styles: [".eo-references{background:var(--panel-background);border:1px solid rgba(var(--color-black-rgb),.1);margin:var(--app-pane-padding);height:calc(100% - var(--app-pane-padding) * 2);box-sizing:border-box;display:flex;flex-flow:column}.eo-references .hidden{display:none!important}.eo-references .object-not-found{height:100%;display:flex;justify-content:center;align-items:center}.eo-references .object-not-found div{color:var(--text-color-caption)}.eo-references .form-buttons{width:100%;padding:calc(var(--app-pane-padding) / 2);height:44px;display:flex;justify-content:space-between;background:var(--color-white);box-sizing:border-box}.eo-references .form-buttons .result-list-link{text-decoration:none;color:inherit}.eo-references .form-buttons .result-list-link:hover{color:var(--color-accent)}.eo-references .form-buttons .gridlabels{display:flex;width:60%}.eo-references .form-buttons .gridlabel{border:1px solid var(--list-item-border-color);border-radius:4px;padding:0 calc(var(--app-pane-padding) / 2);display:flex;align-items:center;color:var(--text-color-caption);cursor:pointer;margin-right:calc(var(--app-pane-padding) / 2);transition:all var(--app-default-transition-duration) ease-in-out;overflow:hidden}.eo-references .form-buttons .gridlabel span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.eo-references .form-buttons .gridlabel:hover{color:var(--text-color-body);border-color:#0003}.eo-references .form-buttons .active{color:var(--text-color-body);border-color:#0003;background-color:var(--panel-background-grey)}.eo-references .form-buttons a.button{display:flex;align-items:center;overflow:hidden}.eo-references .form-buttons a.button span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.eo-references .eo-references-lists{flex:1;overflow:hidden;border-top:4px solid rgba(var(--color-black-rgb),.2)}.eo-references .eo-references-lists main{grid-area:main}.eo-references .eo-references-lists main.loader-overlay__mask{display:flex;width:100%;height:100%;flex-flow:column;align-items:center;justify-content:center;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .2s;animation:eoFadeIn .2s}.eo-references .eo-references-lists .resultlist-container{display:flex;flex-flow:column;height:100%;width:100%;overflow:auto}.eo-references .eo-references-lists .resultlist-container .notfound{color:var(--text-color-caption);display:flex;align-items:center;justify-content:center;height:100%}.eo-references .eo-references-lists .ag-result{position:absolute;inset:0}.eo-references .eo-references-lists .grid-wrapper{position:relative;flex:1}.referenceList{display:flex;flex-direction:column;border-radius:2px}.referenceList eo-simple-accordion{margin-top:var(--app-pane-padding);margin-left:calc(var(--app-pane-padding) / 2);margin-right:calc(var(--app-pane-padding) / 2)}.referenceList .content{cursor:pointer;margin-top:var(--app-pane-padding);margin-left:calc(var(--app-pane-padding) / 2);margin-bottom:calc(var(--app-pane-padding) / 2)}.referenceList .content:hover{background-color:var(--main-background-light)}.referenceList .title{padding-left:calc(var(--app-pane-padding) / 2);font-weight:var(--font-weight-bold)}.referenceList .description,.referenceList .remote-element{padding-left:calc(var(--app-pane-padding) / 2)}.referenceList .title,.referenceList .description,.referenceList .icon,.referenceList .remote-element{color:var(--text-color-caption)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i5.RouterLinkDirective, selector: "a[routerLink]" }, { kind: "component", type: i6.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: i7.SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "item", "styles", "headerClass", "iconObjectType", "itemAmount", "resultListLink", "selected"], outputs: ["selectChange"] }, { kind: "directive", type: i8.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
|
|
171
182
|
}
|
|
172
183
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ObjectLinksComponent, decorators: [{
|
|
173
184
|
type: Component,
|
|
174
185
|
args: [{ selector: 'eo-object-links', template: "<div class=\"eo-references\">\n <div class=\"object-not-found\" *ngIf=\"!inReferences?.length && !outReferences?.length; else refContainer\">\n <div>{{'eo.references.object.notfound' | translate}}</div>\n </div>\n\n <ng-template #refContainer>\n <div class=\"form-buttons\">\n <div class=\"gridlabels\">\n <div class=\"gridlabel\" [ngClass]=\"{'active': showInReferences}\" (click)=\"switchListVisibilityTo('in')\"\n title=\"{{'eo.references.to.label' | translate}}\">\n <span>{{'eo.references.to.label' | translate}}</span>\n </div>\n <div class=\"gridlabel\" [ngClass]=\"{'active': showOutReferences}\" (click)=\"switchListVisibilityTo('out')\"\n title=\"{{'eo.references.from.label' | translate}}\">\n <span>{{'eo.references.from.label' | translate}}</span>\n </div>\n </div>\n <a class=\"result-list-link\" [routerLink]=\"'/result'\" [queryParams]=\"superQueryParams\">\n <eo-icon class=\"icon\" [iconSrc]=\"'assets/_default/svg/ic_open_tab.svg'\" [iconTitle]=\"('eo.references.open.resultlist' | translate)\"></eo-icon>\n </a>\n </div>\n\n <div class=\"eo-references-lists\">\n\n <!-- list of inReferences -->\n <div class=\"resultlist-container\" [ngClass]=\"{'hidden': !showInReferences}\">\n @if (loading) {\n <main class=\"loader-overlay__mask\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </main>\n } @else if (inReferences?.length) {\n <div class=\"referenceList\">\n @for (entry1Layer of inReferences; track entry1Layer) {\n <eo-simple-accordion\n [header]=\"entry1Layer.title\"\n [iconObjectType]=\"getObjectType(entry1Layer.type)\"\n [itemAmount]=\"entry1Layer.count\"\n [resultListLink]=\"getSearchLink(entry1Layer)\">\n @for (entry2Layer of entry1Layer.folder; track entry2Layer) {\n @for (entry3Layer of entry2Layer.folder; track entry3Layer) {\n <div class=\"content\" (click)=\"navigateToReference($event, entry3Layer)\">\n <div class=\"flex-row\">\n <div class=\"title\">\n {{entry3Layer?.title}}\n </div>\n </div>\n <div class=\"description\">\n {{entry3Layer?.description}}\n </div>\n <div class=\"remote-element\">\n {{'eo.references.field.label' | translate}} {{entry2Layer.title}}\n </div>\n </div>\n }\n }\n </eo-simple-accordion>\n }\n </div>\n } @else {\n <div class=\"notfound\">{{'eo.references.object.notfound' | translate}}</div>\n }\n </div>\n\n <!-- list of outReferences -->\n <div class=\"resultlist-container\" [ngClass]=\"{'hidden': !showOutReferences}\">\n @if (loading) {\n <main class=\"loader-overlay__mask\">\n <eo-loading-spinner [size]=\"'large'\"></eo-loading-spinner>\n </main>\n } @else if (outReferences?.length) {\n <div class=\"referenceList\">\n @for (entry1Layer of outReferences; track entry1Layer) {\n <eo-simple-accordion\n [header]=\"entry1Layer.title\"\n [iconObjectType]=\"entry1Layer.objectType\"\n [itemAmount]=\"entry1Layer.folder.length\"\n [resultListLink]=\"getSearchLink(entry1Layer)\">\n @for (entry2Layer of entry1Layer.folder; track entry2Layer) {\n <div class=\"content\" (click)=\"navigateToReference($event, entry2Layer)\">\n <div class=\"flex-row\">\n <div class=\"title\">\n {{entry2Layer?.title}}\n </div>\n </div>\n <div class=\"description\">\n {{entry2Layer?.description}}\n </div>\n <div class=\"remote-element\">\n {{'eo.references.field.label' | translate}} {{entry2Layer.fieldLabel}}\n </div>\n </div>\n }\n </eo-simple-accordion>\n }\n </div>\n } @else {\n <div class=\"notfound\">{{'eo.references.object.notfound' | translate}}</div>\n }\n </div>\n </div>\n </ng-template>\n</div>\n", styles: [".eo-references{background:var(--panel-background);border:1px solid rgba(var(--color-black-rgb),.1);margin:var(--app-pane-padding);height:calc(100% - var(--app-pane-padding) * 2);box-sizing:border-box;display:flex;flex-flow:column}.eo-references .hidden{display:none!important}.eo-references .object-not-found{height:100%;display:flex;justify-content:center;align-items:center}.eo-references .object-not-found div{color:var(--text-color-caption)}.eo-references .form-buttons{width:100%;padding:calc(var(--app-pane-padding) / 2);height:44px;display:flex;justify-content:space-between;background:var(--color-white);box-sizing:border-box}.eo-references .form-buttons .result-list-link{text-decoration:none;color:inherit}.eo-references .form-buttons .result-list-link:hover{color:var(--color-accent)}.eo-references .form-buttons .gridlabels{display:flex;width:60%}.eo-references .form-buttons .gridlabel{border:1px solid var(--list-item-border-color);border-radius:4px;padding:0 calc(var(--app-pane-padding) / 2);display:flex;align-items:center;color:var(--text-color-caption);cursor:pointer;margin-right:calc(var(--app-pane-padding) / 2);transition:all var(--app-default-transition-duration) ease-in-out;overflow:hidden}.eo-references .form-buttons .gridlabel span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.eo-references .form-buttons .gridlabel:hover{color:var(--text-color-body);border-color:#0003}.eo-references .form-buttons .active{color:var(--text-color-body);border-color:#0003;background-color:var(--panel-background-grey)}.eo-references .form-buttons a.button{display:flex;align-items:center;overflow:hidden}.eo-references .form-buttons a.button span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.eo-references .eo-references-lists{flex:1;overflow:hidden;border-top:4px solid rgba(var(--color-black-rgb),.2)}.eo-references .eo-references-lists main{grid-area:main}.eo-references .eo-references-lists main.loader-overlay__mask{display:flex;width:100%;height:100%;flex-flow:column;align-items:center;justify-content:center;background:rgba(var(--color-white-rgb),.8);-webkit-animation:eoFadeIn .2s;animation:eoFadeIn .2s}.eo-references .eo-references-lists .resultlist-container{display:flex;flex-flow:column;height:100%;width:100%;overflow:auto}.eo-references .eo-references-lists .resultlist-container .notfound{color:var(--text-color-caption);display:flex;align-items:center;justify-content:center;height:100%}.eo-references .eo-references-lists .ag-result{position:absolute;inset:0}.eo-references .eo-references-lists .grid-wrapper{position:relative;flex:1}.referenceList{display:flex;flex-direction:column;border-radius:2px}.referenceList eo-simple-accordion{margin-top:var(--app-pane-padding);margin-left:calc(var(--app-pane-padding) / 2);margin-right:calc(var(--app-pane-padding) / 2)}.referenceList .content{cursor:pointer;margin-top:var(--app-pane-padding);margin-left:calc(var(--app-pane-padding) / 2);margin-bottom:calc(var(--app-pane-padding) / 2)}.referenceList .content:hover{background-color:var(--main-background-light)}.referenceList .title{padding-left:calc(var(--app-pane-padding) / 2);font-weight:var(--font-weight-bold)}.referenceList .description,.referenceList .remote-element{padding-left:calc(var(--app-pane-padding) / 2)}.referenceList .title,.referenceList .description,.referenceList .icon,.referenceList .remote-element{color:var(--text-color-caption)}\n"] }]
|
|
175
|
-
}], ctorParameters: () => [{ type: i1.ReferenceService }, { type: i2.AppCacheService }, { type: i2.SystemService }], propDecorators: { dmsObject: [{
|
|
186
|
+
}], ctorParameters: () => [{ type: i1.ReferenceService }, { type: i2.AppCacheService }, { type: i2.SystemService }, { type: i2.TranslateService }], propDecorators: { dmsObject: [{
|
|
176
187
|
type: Input,
|
|
177
188
|
args: ['dmsObject']
|
|
178
189
|
}] } });
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWxpbmtzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1kZXRhaWxzL29iamVjdC1saW5rcy9vYmplY3QtbGlua3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvb2JqZWN0LWxpbmtzL29iamVjdC1saW5rcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUcvQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQVE5QixNQUFNLE9BQU8sb0JBQW9CO0lBYS9CLElBQ0ksU0FBUyxDQUFDLFNBQW9CO1FBQ2hDLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBb0IsZ0JBQWtDLEVBQzVDLEtBQXNCLEVBQ3RCLGFBQTRCO1FBRmxCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDNUMsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFwQnRDLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBRW5CLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUV0QixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRTFCLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFhaEIsQ0FBQztJQUVELHNCQUFzQixDQUFDLElB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QUFDO2dCQUMxQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDbEMsS0FBSyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUM7Z0JBQ3ZCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sZ0JBQWdCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ3BFLENBQUM7OEdBL0tVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDJGQ1hqQyx3akpBc0dBOzsyRkQzRmEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGlCQUFpQjsrSUFrQnZCLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UmVmZXJlbmNlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcmVmZXJlbmNlcy9yZWZlcmVuY2Uuc2VydmljZSc7XG5pbXBvcnQge0Rtc09iamVjdCwgQXBwQ2FjaGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtmb3JrSm9pbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1N5c3RlbVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW9iamVjdC1saW5rcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtbGlua3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vYmplY3QtbGlua3MuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RMaW5rc0NvbXBvbmVudCB7XG5cbiAgaXRlbTogRG1zT2JqZWN0O1xuICBpblJlZmVyZW5jZXMgPSBbXTtcbiAgb3V0UmVmZXJlbmNlcyA9IFtdO1xuICBxdWVyaWVzO1xuICBzdXBlclF1ZXJ5UGFyYW1zID0ge307XG5cbiAgc2hvd0luUmVmZXJlbmNlcyA9IHRydWU7XG4gIHNob3dPdXRSZWZlcmVuY2VzID0gZmFsc2U7XG5cbiAgbG9hZGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgnZG1zT2JqZWN0JylcbiAgc2V0IGRtc09iamVjdChkbXNPYmplY3Q6IERtc09iamVjdCkge1xuICAgIGlmIChkbXNPYmplY3QpIHtcbiAgICAgIHRoaXMuaXRlbSA9IGRtc09iamVjdDtcbiAgICAgIHRoaXMuaW5pdChkbXNPYmplY3QpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmZXJlbmNlU2VydmljZTogUmVmZXJlbmNlU2VydmljZSxcbiAgICBwcml2YXRlIGNhY2hlOiBBcHBDYWNoZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzeXN0ZW1TZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlKSB7XG4gIH1cblxuICBzd2l0Y2hMaXN0VmlzaWJpbGl0eVRvKGxpc3Q6ICdpbicgfCAnb3V0Jykge1xuICAgIGlmIChsaXN0ID09PSAnaW4nKSB7XG4gICAgICB0aGlzLnNob3dJblJlZmVyZW5jZXMgPSB0cnVlO1xuICAgICAgdGhpcy5zaG93T3V0UmVmZXJlbmNlcyA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3dJblJlZmVyZW5jZXMgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2hvd091dFJlZmVyZW5jZXMgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmNhY2hlLnNldEl0ZW0oJ3l1di5yZWZlcmVuY2UubGlzdC5zaG93LicgKyB0aGlzLml0ZW0udHlwZU5hbWUsIGxpc3QpO1xuICB9XG5cbiAgZ2V0T2JqZWN0VHlwZShuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGUobmFtZSk7XG4gIH1cblxuICBwcml2YXRlIGluaXQoaXRlbSkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5jYWNoZS5nZXRJdGVtKCd5dXYucmVmZXJlbmNlLmxpc3Quc2hvdy4nICsgaXRlbS50eXBlTmFtZSkuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLnN3aXRjaExpc3RWaXNpYmlsaXR5VG8ocmVzKSk7XG4gICAgY29uc3Qgb2JzID0gW1xuICAgICAgdGhpcy5yZWZlcmVuY2VTZXJ2aWNlLmdldEluUmVmZXJlbmNlcyhpdGVtKSxcbiAgICAgIHRoaXMucmVmZXJlbmNlU2VydmljZS5nZXRPdXRSZWZlcmVuY2VzKGl0ZW0pXG4gICAgXTtcbiAgICBmb3JrSm9pbihvYnMpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHRzOiBhbnlbXVtdKSA9PiB7XG4gICAgICAgIFt0aGlzLmluUmVmZXJlbmNlcywgdGhpcy5vdXRSZWZlcmVuY2VzXSA9IHJlc3VsdHM7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3Ioe2Vycm9yfSk7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnJlZmVyZW5jZVNlcnZpY2VcbiAgICAgIC5nZXRRdWVyaWVzKGl0ZW0pXG4gICAgICAuc3Vic2NyaWJlKHF1ZXJpZXMgPT4ge1xuICAgICAgICB0aGlzLnF1ZXJpZXMgPSBxdWVyaWVzO1xuICAgICAgICBjb25zdCBzdXBlclF1ZXJ5ID0gdGhpcy5jcmVhdGVTdXBlclF1ZXJ5RnJvbVF1ZXJpZXModGhpcy5xdWVyaWVzKTtcbiAgICAgICAgdGhpcy5zdXBlclF1ZXJ5UGFyYW1zID0geydxdWVyeSc6IGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShzdXBlclF1ZXJ5KSksICdzaWxlbnQnOiB0cnVlfTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTdXBlclF1ZXJ5RnJvbVF1ZXJpZXMocXVlcmllcykge1xuICAgIGxldCBzdXBlclF1ZXJ5ID0ge1xuICAgICAgdGVybTogJycsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGV4cGVydG1vZGU6IHRydWVcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcXVlcmllcy5vdXRSZWZlcmVuY2VRdWVyaWVzLmZvckVhY2gocXVlcnkgPT4ge1xuICAgICAgaWYgKHF1ZXJ5LmZpbHRlcnMpIHtcbiAgICAgICAgT2JqZWN0LmtleXMocXVlcnkuZmlsdGVycylcbiAgICAgICAgICAuZm9yRWFjaChmaWx0ZXJOYW1lID0+IHN1cGVyUXVlcnkudGVybSArPSB0aGlzLmNyZWF0ZVN1cGVyUXVlcnlUZXJtUGFydChxdWVyeSwgZmlsdGVyTmFtZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3VwZXJRdWVyeS50ZXJtICs9ICcoJyArIHF1ZXJ5LnRlcm0gKyAnKScgKyAnIE9SICc7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBxdWVyaWVzLmluUmVmZXJlbmNlUXVlcmllcy5mb3JFYWNoKChxdWVyeSkgPT4ge1xuICAgICAgaWYgKHF1ZXJ5LmZpbHRlcnMpIHtcbiAgICAgICAgT2JqZWN0LmtleXMocXVlcnkuZmlsdGVycylcbiAgICAgICAgICAuZm9yRWFjaChmaWx0ZXJOYW1lID0+IHN1cGVyUXVlcnkudGVybSArPSB0aGlzLmNyZWF0ZVN1cGVyUXVlcnlUZXJtUGFydChxdWVyeSwgZmlsdGVyTmFtZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3VwZXJRdWVyeS50ZXJtICs9IHF1ZXJ5LnRlcm07XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBzdXBlclF1ZXJ5LnRlcm0gPSBzdXBlclF1ZXJ5LnRlcm0ucmVwbGFjZShuZXcgUmVnRXhwKCcsJywgJ2cnKSwgJyAnKTsgLy8gcmVwbGFjZSBhbGwgJywnIHdpdGggJyAnXG4gICAgc3VwZXJRdWVyeS50ZXJtID0gc3VwZXJRdWVyeS50ZXJtLnJlcGxhY2UobmV3IFJlZ0V4cCgnIE9SICcgKyAnJCcpLCAnJyk7IC8vIHJlbW92ZSBsYXN0ICcgT1IgJ1xuXG4gICAgcmV0dXJuIHN1cGVyUXVlcnk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVN1cGVyUXVlcnlUZXJtUGFydChxdWVyeSwgZmlsdGVyTmFtZSkge1xuICAgIC8vIHJlc2VydmVkIGNoYXJhY3RlcnMgb2YgZWxhc3RpYyBzZWFyY2hcbiAgICAvLyB0b2RvOiBhZGQgJ3x8J1xuICAgIGNvbnN0IHJlc2VydmVkQ2hhcnMgPSBbJ1xcXFwnLCAnLycsICdcXCsnLCAnLScsICc9JywgJyYmJywgJz4nLCAnPCcsICchJywgJ1xcKCcsICdcXCknLCAnXFx7JywgJ1xcfScsICdcXFsnLCAnXFxdJywgJ1xcXicsICdcIicsICdcXH4nLCAnXFwqJywgJ1xcPycsICc6J107XG5cbiAgICBjb25zdCBmaWx0ZXIgPSBxdWVyeS5maWx0ZXJzW2ZpbHRlck5hbWVdO1xuICAgIGxldCB2YWx1ZSA9ICcnICsgZmlsdGVyLnYxICsgJyc7XG4gICAgcmVzZXJ2ZWRDaGFycy5mb3JFYWNoKGNoYXIgPT4ge1xuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoY2hhcikgPiAtMSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxcXCcgKyBjaGFyLCAnZycpLCAnXFxcXCcgKyBjaGFyKTsgLy8gZXNjYXBlcyBhbGwgcmVzZXJ2ZWQgY2hhcmFjdGVyc1xuICAgICAgfVxuICAgIH0pO1xuICAgIGxldCB0eXBlcyA9IHRoaXMuZ2V0U3ViVHlwZXMocXVlcnkudHlwZXNbMF0pO1xuICAgIHR5cGVzLnB1c2gocXVlcnkudHlwZXNbMF0pO1xuICAgIGxldCBpbmRleE5hbWUgPSB0aGlzLmdldEluZGV4TmFtZUJ5UU5hbWUoZmlsdGVyTmFtZSk7XG4gICAgaWYgKCFpbmRleE5hbWUpIHtcbiAgICAgIGluZGV4TmFtZSA9ICdzdHJfJyArIGZpbHRlck5hbWUucmVwbGFjZSgnLicsICdfJyk7XG4gICAgfVxuICAgIHJldHVybiAnKCcgKyBpbmRleE5hbWUgKyAnOignICsgdmFsdWUgKyAnKSBBTkQga2V5X3R5cGU6KCcgKyB0eXBlcyArICcpKSBPUiAnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmRleE5hbWVCeVFOYW1lKHFuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR5cGVzID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGVzKCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHR5cGVzW2ldLmVsZW1lbnRzLmZpbmQoZWwgPT4gZWwucW5hbWUgPT09IHFuYW1lKTtcbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LmluZGV4bmFtZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldFN1YlR5cGVzKHR5cGVOYW1lKSB7XG4gICAgbGV0IHR5cGVzID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGVzKCk7XG4gICAgbGV0IHN1YlR5cGVzID0gW107XG4gICAgdHlwZXMuZm9yRWFjaChvYmplY3RUeXBlID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvciA9ICEhb2JqZWN0VHlwZS5zdXBlcnR5cGVzLmZpbmQoKHQ6IGFueSkgPT4gdC5uYW1lID09PSB0eXBlTmFtZSk7XG4gICAgICBpZiAodmFsaWRhdG9yKSB7XG4gICAgICAgIHN1YlR5cGVzLnB1c2gob2JqZWN0VHlwZS5xbmFtZSk7XG4gICAgICB9XG4gICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHN1YlR5cGVzO1xuICB9XG5cbiAgbmF2aWdhdGVUb1JlZmVyZW5jZShldmVudCwgZW50cnkpIHtcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgvb2JqZWN0fHJlc3VsdHxmYXZvcml0ZXN8aW5ib3h8cHJvY2Vzc3xub3RpZmljYXRpb25zfHJlY3ljbGViaW4vKVswXSArICdvYmplY3QvJyArIGVudHJ5Py5pZDtcbiAgICB3aW5kb3cub3Blbih1cmwsIChldmVudCAmJiBldmVudD8uY3RybEtleSkgPyAnX2JsYW5rJyA6ICdfc2VsZicpO1xuICB9XG5cbiAgZ2V0U2VhcmNoTGluayhlbnRyeSkge1xuICAgIGNvbnN0IHF1ZXJ5ID0ge1xuICAgICAgZmlsdGVyczoge30sXG4gICAgICB0eXBlczogW3RoaXMuc2hvd0luUmVmZXJlbmNlcyA/IGVudHJ5LnR5cGUgOiBlbnRyeS5vYmplY3RUeXBlPy5xbmFtZV0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGV4cGVydG1vZGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgdGVybTogJydcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd0luUmVmZXJlbmNlcykge1xuICAgICAgZW50cnkuZm9sZGVyLmZvckVhY2goZW50cnkyTGF5ZXIgPT4ge1xuICAgICAgICBxdWVyeS5maWx0ZXJzW2VudHJ5MkxheWVyLnJlZmVyZW5jZWZpZWxkXSA9IHtcbiAgICAgICAgICBvOiAnaW4nLFxuICAgICAgICAgIHYxOiBbdGhpcy5pdGVtLmlkXVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcXVlcnkub3B0aW9ucy5leHBlcnRtb2RlID0gdHJ1ZTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW50cnkuZm9sZGVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHF1ZXJ5LnRlcm0gKz0gJ19pZDonICsgZW50cnkuZm9sZGVyW2ldLmlkO1xuICAgICAgICBpZiAoaSAhPT0gZW50cnkuZm9sZGVyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICBxdWVyeS50ZXJtICs9ICcgfHwgJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBgcmVzdWx0P3F1ZXJ5PSR7ZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHF1ZXJ5KSl9YFxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZW8tcmVmZXJlbmNlc1wiPlxuICA8ZGl2IGNsYXNzPVwib2JqZWN0LW5vdC1mb3VuZFwiICpuZ0lmPVwiIWluUmVmZXJlbmNlcz8ubGVuZ3RoICYmICFvdXRSZWZlcmVuY2VzPy5sZW5ndGg7IGVsc2UgcmVmQ29udGFpbmVyXCI+XG4gICAgPGRpdj57eydlby5yZWZlcmVuY2VzLm9iamVjdC5ub3Rmb3VuZCcgfCB0cmFuc2xhdGV9fTwvZGl2PlxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgI3JlZkNvbnRhaW5lcj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1idXR0b25zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZGxhYmVsc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkbGFiZWxcIiBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IHNob3dJblJlZmVyZW5jZXN9XCIgKGNsaWNrKT1cInN3aXRjaExpc3RWaXNpYmlsaXR5VG8oJ2luJylcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eydlby5yZWZlcmVuY2VzLnRvLmxhYmVsJyB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7J2VvLnJlZmVyZW5jZXMudG8ubGFiZWwnIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWRsYWJlbFwiIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogc2hvd091dFJlZmVyZW5jZXN9XCIgKGNsaWNrKT1cInN3aXRjaExpc3RWaXNpYmlsaXR5VG8oJ291dCcpXCJcbiAgICAgICAgICAgIHRpdGxlPVwie3snZW8ucmVmZXJlbmNlcy5mcm9tLmxhYmVsJyB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7J2VvLnJlZmVyZW5jZXMuZnJvbS5sYWJlbCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGEgY2xhc3M9XCJyZXN1bHQtbGlzdC1saW5rXCIgW3JvdXRlckxpbmtdPVwiJy9yZXN1bHQnXCIgW3F1ZXJ5UGFyYW1zXT1cInN1cGVyUXVlcnlQYXJhbXNcIj5cbiAgICAgICAgPGVvLWljb24gY2xhc3M9XCJpY29uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfb3Blbl90YWIuc3ZnJ1wiIFtpY29uVGl0bGVdPVwiKCdlby5yZWZlcmVuY2VzLm9wZW4ucmVzdWx0bGlzdCcgfCB0cmFuc2xhdGUpXCI+PC9lby1pY29uPlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImVvLXJlZmVyZW5jZXMtbGlzdHNcIj5cblxuICAgICAgPCEtLSBsaXN0IG9mIGluUmVmZXJlbmNlcyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZXN1bHRsaXN0LWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsnaGlkZGVuJzogIXNob3dJblJlZmVyZW5jZXN9XCI+XG4gICAgICAgIEBpZiAobG9hZGluZykge1xuICAgICAgICAgIDxtYWluIGNsYXNzPVwibG9hZGVyLW92ZXJsYXlfX21hc2tcIj5cbiAgICAgICAgICAgIDxlby1sb2FkaW5nLXNwaW5uZXIgW3NpemVdPVwiJ2xhcmdlJ1wiPjwvZW8tbG9hZGluZy1zcGlubmVyPlxuICAgICAgICAgIDwvbWFpbj5cbiAgICAgICAgfSBAZWxzZSBpZiAoaW5SZWZlcmVuY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmZXJlbmNlTGlzdFwiPlxuICAgICAgICAgICAgQGZvciAoZW50cnkxTGF5ZXIgb2YgaW5SZWZlcmVuY2VzOyB0cmFjayBlbnRyeTFMYXllcikge1xuICAgICAgICAgICAgICA8ZW8tc2ltcGxlLWFjY29yZGlvblxuICAgICAgICAgICAgICAgIFtoZWFkZXJdPVwiZW50cnkxTGF5ZXIudGl0bGVcIlxuICAgICAgICAgICAgICAgIFtpY29uT2JqZWN0VHlwZV09XCJnZXRPYmplY3RUeXBlKGVudHJ5MUxheWVyLnR5cGUpXCJcbiAgICAgICAgICAgICAgICBbaXRlbUFtb3VudF09XCJlbnRyeTFMYXllci5jb3VudFwiXG4gICAgICAgICAgICAgICAgW3Jlc3VsdExpc3RMaW5rXT1cImdldFNlYXJjaExpbmsoZW50cnkxTGF5ZXIpXCI+XG4gICAgICAgICAgICAgICAgQGZvciAoZW50cnkyTGF5ZXIgb2YgZW50cnkxTGF5ZXIuZm9sZGVyOyB0cmFjayBlbnRyeTJMYXllcikge1xuICAgICAgICAgICAgICAgICAgQGZvciAoZW50cnkzTGF5ZXIgb2YgZW50cnkyTGF5ZXIuZm9sZGVyOyB0cmFjayBlbnRyeTNMYXllcikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiIChjbGljayk9XCJuYXZpZ2F0ZVRvUmVmZXJlbmNlKCRldmVudCwgZW50cnkzTGF5ZXIpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tlbnRyeTNMYXllcj8udGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2VudHJ5M0xheWVyPy5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbW90ZS1lbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eydlby5yZWZlcmVuY2VzLmZpZWxkLmxhYmVsJyB8IHRyYW5zbGF0ZX19IHt7ZW50cnkyTGF5ZXIudGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZW8tc2ltcGxlLWFjY29yZGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGZvdW5kXCI+e3snZW8ucmVmZXJlbmNlcy5vYmplY3Qubm90Zm91bmQnIHwgdHJhbnNsYXRlfX08L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gbGlzdCBvZiBvdXRSZWZlcmVuY2VzIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInJlc3VsdGxpc3QtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydoaWRkZW4nOiAhc2hvd091dFJlZmVyZW5jZXN9XCI+XG4gICAgICAgIEBpZiAobG9hZGluZykge1xuICAgICAgICAgIDxtYWluIGNsYXNzPVwibG9hZGVyLW92ZXJsYXlfX21hc2tcIj5cbiAgICAgICAgICAgIDxlby1sb2FkaW5nLXNwaW5uZXIgW3NpemVdPVwiJ2xhcmdlJ1wiPjwvZW8tbG9hZGluZy1zcGlubmVyPlxuICAgICAgICAgIDwvbWFpbj5cbiAgICAgICAgfSBAZWxzZSBpZiAob3V0UmVmZXJlbmNlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJlZmVyZW5jZUxpc3RcIj5cbiAgICAgICAgICAgIEBmb3IgKGVudHJ5MUxheWVyIG9mIG91dFJlZmVyZW5jZXM7IHRyYWNrIGVudHJ5MUxheWVyKSB7XG4gICAgICAgICAgICAgIDxlby1zaW1wbGUtYWNjb3JkaW9uXG4gICAgICAgICAgICAgICAgW2hlYWRlcl09XCJlbnRyeTFMYXllci50aXRsZVwiXG4gICAgICAgICAgICAgICAgW2ljb25PYmplY3RUeXBlXT1cImVudHJ5MUxheWVyLm9iamVjdFR5cGVcIlxuICAgICAgICAgICAgICAgIFtpdGVtQW1vdW50XT1cImVudHJ5MUxheWVyLmZvbGRlci5sZW5ndGhcIlxuICAgICAgICAgICAgICAgIFtyZXN1bHRMaXN0TGlua109XCJnZXRTZWFyY2hMaW5rKGVudHJ5MUxheWVyKVwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGVudHJ5MkxheWVyIG9mIGVudHJ5MUxheWVyLmZvbGRlcjsgdHJhY2sgZW50cnkyTGF5ZXIpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgKGNsaWNrKT1cIm5hdmlnYXRlVG9SZWZlcmVuY2UoJGV2ZW50LCBlbnRyeTJMYXllcilcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2VudHJ5MkxheWVyPy50aXRsZX19XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICB7e2VudHJ5MkxheWVyPy5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtb3RlLWVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eydlby5yZWZlcmVuY2VzLmZpZWxkLmxhYmVsJyB8IHRyYW5zbGF0ZX19IHt7ZW50cnkyTGF5ZXIuZmllbGRMYWJlbH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2VvLXNpbXBsZS1hY2NvcmRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3Rmb3VuZFwiPnt7J2VvLnJlZmVyZW5jZXMub2JqZWN0Lm5vdGZvdW5kJyB8IHRyYW5zbGF0ZX19PC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWxpbmtzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1kZXRhaWxzL29iamVjdC1saW5rcy9vYmplY3QtbGlua3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvb2JqZWN0LWxpbmtzL29iamVjdC1saW5rcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUcvQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQVE5QixNQUFNLE9BQU8sb0JBQW9CO0lBYS9CLElBQ0ksU0FBUyxDQUFDLFNBQW9CO1FBQ2hDLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBb0IsZ0JBQWtDLEVBQzVDLEtBQXNCLEVBQ3RCLGFBQTRCLEVBQzVCLFNBQTJCO1FBSGpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDNUMsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFyQnJDLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBRW5CLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUV0QixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRTFCLFlBQU8sR0FBRyxL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Q0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxnQkFBZ0Isa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDcEUsQ0FBQzs4R0ExTFUsb0JBQW9CO2tHQUFwQixvQkFBb0IsMkZDWGpDLHdqSkFzR0E7OzJGRDNGYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCOzhLQWtCdkIsU0FBUztzQkFEWixLQUFLO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSZWZlcmVuY2VTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9yZWZlcmVuY2VzL3JlZmVyZW5jZS5zZXJ2aWNlJztcbmltcG9ydCB7RG1zT2JqZWN0LCBBcHBDYWNoZVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge2ZvcmtKb2lufSBmcm9tICdyeGpzJztcbmltcG9ydCB7U3lzdGVtU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tb2JqZWN0LWxpbmtzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1saW5rcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1saW5rcy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdExpbmtzQ29tcG9uZW50IHtcblxuICBpdGVtOiBEbXNPYmplY3Q7XG4gIGluUmVmZXJlbmNlcyA9IFtdO1xuICBvdXRSZWZlcmVuY2VzID0gW107XG4gIHF1ZXJpZXM7XG4gIHN1cGVyUXVlcnlQYXJhbXMgPSB7fTtcblxuICBzaG93SW5SZWZlcmVuY2VzID0gdHJ1ZTtcbiAgc2hvd091dFJlZmVyZW5jZXMgPSBmYWxzZTtcblxuICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgQElucHV0KCdkbXNPYmplY3QnKVxuICBzZXQgZG1zT2JqZWN0KGRtc09iamVjdDogRG1zT2JqZWN0KSB7XG4gICAgaWYgKGRtc09iamVjdCkge1xuICAgICAgdGhpcy5pdGVtID0gZG1zT2JqZWN0O1xuICAgICAgdGhpcy5pbml0KGRtc09iamVjdCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWZlcmVuY2VTZXJ2aWNlOiBSZWZlcmVuY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2FjaGU6IEFwcENhY2hlU2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgfVxuXG4gIHN3aXRjaExpc3RWaXNpYmlsaXR5VG8obGlzdDogJ2luJyB8ICdvdXQnKSB7XG4gICAgaWYgKGxpc3QgPT09ICdpbicpIHtcbiAgICAgIHRoaXMuc2hvd0luUmVmZXJlbmNlcyA9IHRydWU7XG4gICAgICB0aGlzLnNob3dPdXRSZWZlcmVuY2VzID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvd0luUmVmZXJlbmNlcyA9IGZhbHNlO1xuICAgICAgdGhpcy5zaG93T3V0UmVmZXJlbmNlcyA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuY2FjaGUuc2V0SXRlbSgneXV2LnJlZmVyZW5jZS5saXN0LnNob3cuJyArIHRoaXMuaXRlbS50eXBlTmFtZSwgbGlzdCk7XG4gIH1cblxuICBnZXRPYmplY3RUeXBlKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZShuYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdChpdGVtKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmNhY2hlLmdldEl0ZW0oJ3l1di5yZWZlcmVuY2UubGlzdC5zaG93LicgKyBpdGVtLnR5cGVOYW1lKS5zdWJzY3JpYmUocmVzID0+IHRoaXMuc3dpdGNoTGlzdFZpc2liaWxpdHlUbyhyZXMpKTtcbiAgICBjb25zdCBvYnMgPSBbXG4gICAgICB0aGlzLnJlZmVyZW5jZVNlcnZpY2UuZ2V0SW5SZWZlcmVuY2VzKGl0ZW0pLFxuICAgICAgdGhpcy5yZWZlcmVuY2VTZXJ2aWNlLmdldE91dFJlZmVyZW5jZXMoaXRlbSlcbiAgICBdO1xuICAgIGZvcmtKb2luKG9icylcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueVtdW10pID0+IHtcbiAgICAgICAgW3RoaXMuaW5SZWZlcmVuY2VzLCB0aGlzLm91dFJlZmVyZW5jZXNdID0gcmVzdWx0cztcbiAgICAgICAgaWYgKHRoaXMuaW5SZWZlcmVuY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmluUmVmZXJlbmNlc1swXS50aXRsZSA9IHRoaXMuaW5SZWZlcmVuY2VzWzBdLnRpdGxlLnJlcGxhY2UoJ3N5c29iamVjdCcsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmdsb2JhbC5iYXNldHlwZS5zeXNvYmplY3QnKSlcbiAgICAgICAgICAgIC5yZXBsYWNlKCdzeXNkb2N1bWVudCcsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmdsb2JhbC5iYXNldHlwZS5zeXNkb2N1bWVudCcpKVxuICAgICAgICAgICAgLnJlcGxhY2UoJ3N5c2ZvbGRlcicsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmdsb2JhbC5iYXNldHlwZS5zeXNmb2xkZXInKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3V0UmVmZXJlbmNlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5vdXRSZWZlcmVuY2VzWzBdLnRpdGxlID0gdGhpcy5vdXRSZWZlcmVuY2VzWzBdLnRpdGxlLnJlcGxhY2UoJ3N5c29iamVjdCcsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmdsb2JhbC5iYXNldHlwZS5zeXNvYmplY3QnKSlcbiAgICAgICAgICAgIC5yZXBsYWNlKCdzeXNkb2N1bWVudCcsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmdsb2JhbC5iYXNldHlwZS5zeXNkb2N1bWVudCcpKVxuICAgICAgICAgICAgLnJlcGxhY2UoJ3N5c2ZvbGRlcicsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmdsb2JhbC5iYXNldHlwZS5zeXNmb2xkZXInKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcih7ZXJyb3J9KTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9KTtcblxuICAgIHRoaXMucmVmZXJlbmNlU2VydmljZVxuICAgICAgLmdldFF1ZXJpZXMoaXRlbSlcbiAgICAgIC5zdWJzY3JpYmUocXVlcmllcyA9PiB7XG4gICAgICAgIHRoaXMucXVlcmllcyA9IHF1ZXJpZXM7XG4gICAgICAgIGNvbnN0IHN1cGVyUXVlcnkgPSB0aGlzLmNyZWF0ZVN1cGVyUXVlcnlGcm9tUXVlcmllcyh0aGlzLnF1ZXJpZXMpO1xuICAgICAgICB0aGlzLnN1cGVyUXVlcnlQYXJhbXMgPSB7J3F1ZXJ5JzogZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHN1cGVyUXVlcnkpKSwgJ3NpbGVudCc6IHRydWV9O1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVN1cGVyUXVlcnlGcm9tUXVlcmllcyhxdWVyaWVzKSB7XG4gICAgbGV0IHN1cGVyUXVlcnkgPSB7XG4gICAgICB0ZXJtOiAnJyxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgZXhwZXJ0bW9kZTogdHJ1ZVxuICAgICAgfVxuICAgIH07XG5cbiAgICBxdWVyaWVzLm91dFJlZmVyZW5jZVF1ZXJpZXMuZm9yRWFjaChxdWVyeSA9PiB7XG4gICAgICBpZiAocXVlcnkuZmlsdGVycykge1xuICAgICAgICBPYmplY3Qua2V5cyhxdWVyeS5maWx0ZXJzKVxuICAgICAgICAgIC5mb3JFYWNoKGZpbHRlck5hbWUgPT4gc3VwZXJRdWVyeS50ZXJtICs9IHRoaXMuY3JlYXRlU3VwZXJRdWVyeVRlcm1QYXJ0KHF1ZXJ5LCBmaWx0ZXJOYW1lKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdXBlclF1ZXJ5LnRlcm0gKz0gJygnICsgcXVlcnkudGVybSArICcpJyArICcgT1IgJztcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHF1ZXJpZXMuaW5SZWZlcmVuY2VRdWVyaWVzLmZvckVhY2goKHF1ZXJ5KSA9PiB7XG4gICAgICBpZiAocXVlcnkuZmlsdGVycykge1xuICAgICAgICBPYmplY3Qua2V5cyhxdWVyeS5maWx0ZXJzKVxuICAgICAgICAgIC5mb3JFYWNoKGZpbHRlck5hbWUgPT4gc3VwZXJRdWVyeS50ZXJtICs9IHRoaXMuY3JlYXRlU3VwZXJRdWVyeVRlcm1QYXJ0KHF1ZXJ5LCBmaWx0ZXJOYW1lKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdXBlclF1ZXJ5LnRlcm0gKz0gcXVlcnkudGVybTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHN1cGVyUXVlcnkudGVybSA9IHN1cGVyUXVlcnkudGVybS5yZXBsYWNlKG5ldyBSZWdFeHAoJywnLCAnZycpLCAnICcpOyAvLyByZXBsYWNlIGFsbCAnLCcgd2l0aCAnICdcbiAgICBzdXBlclF1ZXJ5LnRlcm0gPSBzdXBlclF1ZXJ5LnRlcm0ucmVwbGFjZShuZXcgUmVnRXhwKCcgT1IgJyArICckJyksICcnKTsgLy8gcmVtb3ZlIGxhc3QgJyBPUiAnXG5cbiAgICByZXR1cm4gc3VwZXJRdWVyeTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU3VwZXJRdWVyeVRlcm1QYXJ0KHF1ZXJ5LCBmaWx0ZXJOYW1lKSB7XG4gICAgLy8gcmVzZXJ2ZWQgY2hhcmFjdGVycyBvZiBlbGFzdGljIHNlYXJjaFxuICAgIC8vIHRvZG86IGFkZCAnfHwnXG4gICAgY29uc3QgcmVzZXJ2ZWRDaGFycyA9IFsnXFxcXCcsICcvJywgJ1xcKycsICctJywgJz0nLCAnJiYnLCAnPicsICc8JywgJyEnLCAnXFwoJywgJ1xcKScsICdcXHsnLCAnXFx9JywgJ1xcWycsICdcXF0nLCAnXFxeJywgJ1wiJywgJ1xcficsICdcXConLCAnXFw/JywgJzonXTtcblxuICAgIGNvbnN0IGZpbHRlciA9IHF1ZXJ5LmZpbHRlcnNbZmlsdGVyTmFtZV07XG4gICAgbGV0IHZhbHVlID0gJycgKyBmaWx0ZXIudjEgKyAnJztcbiAgICByZXNlcnZlZENoYXJzLmZvckVhY2goY2hhciA9PiB7XG4gICAgICBpZiAodmFsdWUuaW5kZXhPZihjaGFyKSA+IC0xKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKCdcXFxcJyArIGNoYXIsICdnJyksICdcXFxcJyArIGNoYXIpOyAvLyBlc2NhcGVzIGFsbCByZXNlcnZlZCBjaGFyYWN0ZXJzXG4gICAgICB9XG4gICAgfSk7XG4gICAgbGV0IHR5cGVzID0gdGhpcy5nZXRTdWJUeXBlcyhxdWVyeS50eXBlc1swXSk7XG4gICAgdHlwZXMucHVzaChxdWVyeS50eXBlc1swXSk7XG4gICAgbGV0IGluZGV4TmFtZSA9IHRoaXMuZ2V0SW5kZXhOYW1lQnlRTmFtZShmaWx0ZXJOYW1lKTtcbiAgICBpZiAoIWluZGV4TmFtZSkge1xuICAgICAgaW5kZXhOYW1lID0gJ3N0cl8nICsgZmlsdGVyTmFtZS5yZXBsYWNlKCcuJywgJ18nKTtcbiAgICB9XG4gICAgcmV0dXJuICcoJyArIGluZGV4TmFtZSArICc6KCcgKyB2YWx1ZSArICcpIEFORCBrZXlfdHlwZTooJyArIHR5cGVzICsgJykpIE9SICc7XG4gIH1cblxuICBwcml2YXRlIGdldEluZGV4TmFtZUJ5UU5hbWUocW5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdHlwZXMgPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZXMoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdHlwZXNbaV0uZWxlbWVudHMuZmluZChlbCA9PiBlbC5xbmFtZSA9PT0gcW5hbWUpO1xuICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuaW5kZXhuYW1lO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3ViVHlwZXModHlwZU5hbWUpIHtcbiAgICBsZXQgdHlwZXMgPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZXMoKTtcbiAgICBsZXQgc3ViVHlwZXMgPSBbXTtcbiAgICB0eXBlcy5mb3JFYWNoKG9iamVjdFR5cGUgPT4ge1xuICAgICAgY29uc3QgdmFsaWRhdG9yID0gISFvYmplY3RUeXBlLnN1cGVydHlwZXMuZmluZCgodDogYW55KSA9PiB0Lm5hbWUgPT09IHR5cGVOYW1lKTtcbiAgICAgIGlmICh2YWxpZGF0b3IpIHtcbiAgICAgICAgc3ViVHlwZXMucHVzaChvYmplY3RUeXBlLnFuYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgKTtcbiAgICByZXR1cm4gc3ViVHlwZXM7XG4gIH1cblxuICBuYXZpZ2F0ZVRvUmVmZXJlbmNlKGV2ZW50LCBlbnRyeSkge1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KC9vYmplY3R8cmVzdWx0fGZhdm9yaXRlc3xpbmJveHxwcm9jZXNzfG5vdGlmaWNhdGlvbnN8cmVjeWNsZWJpbi8pWzBdICsgJ29iamVjdC8nICsgZW50cnk/LmlkO1xuICAgIHdpbmRvdy5vcGVuKHVybCwgKGV2ZW50ICYmIGV2ZW50Py5jdHJsS2V5KSA/ICdfYmxhbmsnIDogJ19zZWxmJyk7XG4gIH1cblxuICBnZXRTZWFyY2hMaW5rKGVudHJ5KSB7XG4gICAgY29uc3QgcXVlcnkgPSB7XG4gICAgICBmaWx0ZXJzOiB7fSxcbiAgICAgIHR5cGVzOiBbdGhpcy5zaG93SW5SZWZlcmVuY2VzID8gZW50cnkudHlwZSA6IGVudHJ5Lm9iamVjdFR5cGU/LnFuYW1lXSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgZXhwZXJ0bW9kZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICB0ZXJtOiAnJ1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93SW5SZWZlcmVuY2VzKSB7XG4gICAgICBlbnRyeS5mb2xkZXIuZm9yRWFjaChlbnRyeTJMYXllciA9PiB7XG4gICAgICAgIHF1ZXJ5LmZpbHRlcnNbZW50cnkyTGF5ZXIucmVmZXJlbmNlZmllbGRdID0ge1xuICAgICAgICAgIG86ICdpbicsXG4gICAgICAgICAgdjE6IFt0aGlzLml0ZW0uaWRdXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBxdWVyeS5vcHRpb25zLmV4cGVydG1vZGUgPSB0cnVlO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbnRyeS5mb2xkZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcXVlcnkudGVybSArPSAnX2lkOicgKyBlbnRyeS5mb2xkZXJbaV0uaWQ7XG4gICAgICAgIGlmIChpICE9PSBlbnRyeS5mb2xkZXIubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIHF1ZXJ5LnRlcm0gKz0gJyB8fCAnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGByZXN1bHQ/cXVlcnk9JHtlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkocXVlcnkpKX1gXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJlby1yZWZlcmVuY2VzXCI+XG4gIDxkaXYgY2xhc3M9XCJvYmplY3Qtbm90LWZvdW5kXCIgKm5nSWY9XCIhaW5SZWZlcmVuY2VzPy5sZW5ndGggJiYgIW91dFJlZmVyZW5jZXM/Lmxlbmd0aDsgZWxzZSByZWZDb250YWluZXJcIj5cbiAgICA8ZGl2Pnt7J2VvLnJlZmVyZW5jZXMub2JqZWN0Lm5vdGZvdW5kJyB8IHRyYW5zbGF0ZX19PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxuZy10ZW1wbGF0ZSAjcmVmQ29udGFpbmVyPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWJ1dHRvbnNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJncmlkbGFiZWxzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWRsYWJlbFwiIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogc2hvd0luUmVmZXJlbmNlc31cIiAoY2xpY2spPVwic3dpdGNoTGlzdFZpc2liaWxpdHlUbygnaW4nKVwiXG4gICAgICAgICAgICB0aXRsZT1cInt7J2VvLnJlZmVyZW5jZXMudG8ubGFiZWwnIHwgdHJhbnNsYXRlfX1cIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3snZW8ucmVmZXJlbmNlcy50by5sYWJlbCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZGxhYmVsXCIgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBzaG93T3V0UmVmZXJlbmNlc31cIiAoY2xpY2spPVwic3dpdGNoTGlzdFZpc2liaWxpdHlUbygnb3V0JylcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eydlby5yZWZlcmVuY2VzLmZyb20ubGFiZWwnIHwgdHJhbnNsYXRlfX1cIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3snZW8ucmVmZXJlbmNlcy5mcm9tLmxhYmVsJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8YSBjbGFzcz1cInJlc3VsdC1saXN0LWxpbmtcIiBbcm91dGVyTGlua109XCInL3Jlc3VsdCdcIiBbcXVlcnlQYXJhbXNdPVwic3VwZXJRdWVyeVBhcmFtc1wiPlxuICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImljb25cIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19vcGVuX3RhYi5zdmcnXCIgW2ljb25UaXRsZV09XCIoJ2VvLnJlZmVyZW5jZXMub3Blbi5yZXN1bHRsaXN0JyB8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZW8tcmVmZXJlbmNlcy1saXN0c1wiPlxuXG4gICAgICA8IS0tIGxpc3Qgb2YgaW5SZWZlcmVuY2VzIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInJlc3VsdGxpc3QtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydoaWRkZW4nOiAhc2hvd0luUmVmZXJlbmNlc31cIj5cbiAgICAgICAgQGlmIChsb2FkaW5nKSB7XG4gICAgICAgICAgPG1haW4gY2xhc3M9XCJsb2FkZXItb3ZlcmxheV9fbWFza1wiPlxuICAgICAgICAgICAgPGVvLWxvYWRpbmctc3Bpbm5lciBbc2l6ZV09XCInbGFyZ2UnXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG4gICAgICAgICAgPC9tYWluPlxuICAgICAgICB9IEBlbHNlIGlmIChpblJlZmVyZW5jZXM/Lmxlbmd0aCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWZlcmVuY2VMaXN0XCI+XG4gICAgICAgICAgICBAZm9yIChlbnRyeTFMYXllciBvZiBpblJlZmVyZW5jZXM7IHRyYWNrIGVudHJ5MUxheWVyKSB7XG4gICAgICAgICAgICAgIDxlby1zaW1wbGUtYWNjb3JkaW9uXG4gICAgICAgICAgICAgICAgW2hlYWRlcl09XCJlbnRyeTFMYXllci50aXRsZVwiXG4gICAgICAgICAgICAgICAgW2ljb25PYmplY3RUeXBlXT1cImdldE9iamVjdFR5cGUoZW50cnkxTGF5ZXIudHlwZSlcIlxuICAgICAgICAgICAgICAgIFtpdGVtQW1vdW50XT1cImVudHJ5MUxheWVyLmNvdW50XCJcbiAgICAgICAgICAgICAgICBbcmVzdWx0TGlzdExpbmtdPVwiZ2V0U2VhcmNoTGluayhlbnRyeTFMYXllcilcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChlbnRyeTJMYXllciBvZiBlbnRyeTFMYXllci5mb2xkZXI7IHRyYWNrIGVudHJ5MkxheWVyKSB7XG4gICAgICAgICAgICAgICAgICBAZm9yIChlbnRyeTNMYXllciBvZiBlbnRyeTJMYXllci5mb2xkZXI7IHRyYWNrIGVudHJ5M0xheWVyKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgKGNsaWNrKT1cIm5hdmlnYXRlVG9SZWZlcmVuY2UoJGV2ZW50LCBlbnRyeTNMYXllcilcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e2VudHJ5M0xheWVyPy50aXRsZX19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ZW50cnkzTGF5ZXI/LmRlc2NyaXB0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtb3RlLWVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7J2VvLnJlZmVyZW5jZXMuZmllbGQubGFiZWwnIHwgdHJhbnNsYXRlfX0ge3tlbnRyeTJMYXllci50aXRsZX19XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9lby1zaW1wbGUtYWNjb3JkaW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibm90Zm91bmRcIj57eydlby5yZWZlcmVuY2VzLm9iamVjdC5ub3Rmb3VuZCcgfCB0cmFuc2xhdGV9fTwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBsaXN0IG9mIG91dFJlZmVyZW5jZXMgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwicmVzdWx0bGlzdC1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7J2hpZGRlbic6ICFzaG93T3V0UmVmZXJlbmNlc31cIj5cbiAgICAgICAgQGlmIChsb2FkaW5nKSB7XG4gICAgICAgICAgPG1haW4gY2xhc3M9XCJsb2FkZXItb3ZlcmxheV9fbWFza1wiPlxuICAgICAgICAgICAgPGVvLWxvYWRpbmctc3Bpbm5lciBbc2l6ZV09XCInbGFyZ2UnXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG4gICAgICAgICAgPC9tYWluPlxuICAgICAgICB9IEBlbHNlIGlmIChvdXRSZWZlcmVuY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmZXJlbmNlTGlzdFwiPlxuICAgICAgICAgICAgQGZvciAoZW50cnkxTGF5ZXIgb2Ygb3V0UmVmZXJlbmNlczsgdHJhY2sgZW50cnkxTGF5ZXIpIHtcbiAgICAgICAgICAgICAgPGVvLXNpbXBsZS1hY2NvcmRpb25cbiAgICAgICAgICAgICAgICBbaGVhZGVyXT1cImVudHJ5MUxheWVyLnRpdGxlXCJcbiAgICAgICAgICAgICAgICBbaWNvbk9iamVjdFR5cGVdPVwiZW50cnkxTGF5ZXIub2JqZWN0VHlwZVwiXG4gICAgICAgICAgICAgICAgW2l0ZW1BbW91bnRdPVwiZW50cnkxTGF5ZXIuZm9sZGVyLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW3Jlc3VsdExpc3RMaW5rXT1cImdldFNlYXJjaExpbmsoZW50cnkxTGF5ZXIpXCI+XG4gICAgICAgICAgICAgICAgQGZvciAoZW50cnkyTGF5ZXIgb2YgZW50cnkxTGF5ZXIuZm9sZGVyOyB0cmFjayBlbnRyeTJMYXllcikge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIiAoY2xpY2spPVwibmF2aWdhdGVUb1JlZmVyZW5jZSgkZXZlbnQsIGVudHJ5MkxheWVyKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ZW50cnkyTGF5ZXI/LnRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7ZW50cnkyTGF5ZXI/LmRlc2NyaXB0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZW1vdGUtZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7J2VvLnJlZmVyZW5jZXMuZmllbGQubGFiZWwnIHwgdHJhbnNsYXRlfX0ge3tlbnRyeTJMYXllci5maWVsZExhYmVsfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZW8tc2ltcGxlLWFjY29yZGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGZvdW5kXCI+e3snZW8ucmVmZXJlbmNlcy5vYmplY3Qubm90Zm91bmQnIHwgdHJhbnNsYXRlfX08L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|