@alfresco/aca-content 4.4.0-7758921706 → 4.4.0-7798419994

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.
@@ -25,7 +25,7 @@ import { Component, Input, ViewEncapsulation } from '@angular/core';
25
25
  import { UntypedFormGroup, UntypedFormControl, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
26
26
  import { QueriesApi, SiteEntry } from '@alfresco/js-api';
27
27
  import { Store } from '@ngrx/store';
28
- import { SnackbarActionTypes, UpdateLibraryAction } from '@alfresco/aca-shared/store';
28
+ import { SnackbarActionTypes, UpdateLibraryAction, isAdmin } from '@alfresco/aca-shared/store';
29
29
  import { debounceTime, filter, mergeMap, takeUntil } from 'rxjs/operators';
30
30
  import { AlfrescoApiService } from '@alfresco/adf-core';
31
31
  import { from, Subject } from 'rxjs';
@@ -78,6 +78,7 @@ export class LibraryMetadataFormComponent {
78
78
  });
79
79
  this.matcher = new InstantErrorStateMatcher();
80
80
  this.canUpdateLibrary = false;
81
+ this.isAdmin = false;
81
82
  this.onDestroy$ = new Subject();
82
83
  }
83
84
  get queriesApi() {
@@ -129,7 +130,13 @@ export class LibraryMetadataFormComponent {
129
130
  this.libraryTitleExists = false;
130
131
  }
131
132
  });
132
- this.canUpdateLibrary = this.node?.entry?.role === 'SiteManager';
133
+ this.store
134
+ .select(isAdmin)
135
+ .pipe(takeUntil(this.onDestroy$))
136
+ .subscribe((value) => {
137
+ this.isAdmin = value;
138
+ });
139
+ this.canUpdateLibrary = this.node?.entry?.role === 'SiteManager' || this.isAdmin;
133
140
  this.handleUpdatingEvent(SnackbarActionTypes.Info, 'LIBRARY.SUCCESS.LIBRARY_UPDATED', () => Object.assign(this.node.entry, this.form.value));
134
141
  this.handleUpdatingEvent(SnackbarActionTypes.Error, 'LIBRARY.ERRORS.LIBRARY_UPDATE_ERROR', () => this.form.markAsDirty());
135
142
  }
@@ -139,7 +146,7 @@ export class LibraryMetadataFormComponent {
139
146
  }
140
147
  ngOnChanges() {
141
148
  this.updateForm(this.node);
142
- this.canUpdateLibrary = this.node?.entry?.role === 'SiteManager';
149
+ this.canUpdateLibrary = this.node?.entry?.role === 'SiteManager' || this.isAdmin;
143
150
  }
144
151
  update() {
145
152
  if (this.canUpdateLibrary && this.form.valid) {
@@ -196,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
196
203
  }], ctorParameters: function () { return [{ type: i1.AlfrescoApiService }, { type: i2.Store }, { type: i3.Actions }]; }, propDecorators: { node: [{
197
204
  type: Input
198
205
  }] } });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS1tZXRhZGF0YS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9pbmZvLWRyYXdlci9saWJyYXJ5LW1ldGFkYXRhLXRhYi9saWJyYXJ5LW1ldGFkYXRhLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9jb21wb25lbnRzL2luZm8tZHJhd2VyL2xpYnJhcnktbWV0YWRhdGEtdGFiL2xpYnJhcnktbWV0YWRhdGEtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFnQyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixVQUFVLEVBR1YsV0FBVyxFQUNYLG1CQUFtQixFQUdwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBR0wsbUJBQW1CLEVBR25CLG1CQUFtQixFQUNwQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQWMsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVB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a0JBcEJ4QyxTQUFTO2lDQUNJLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxVQUFVO3dCQUNWLGVBQWU7cUJBQ2hCLFlBQ1MsMkJBQTJCLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJO21KQWdCckMsSUFBSTtzQkFESCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBVbnR5cGVkRm9ybUdyb3VwLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIFZhbGlkYXRvcnMsXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgTmdGb3JtLFxuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgRm9ybUNvbnRyb2wsXG4gIFZhbGlkYXRpb25FcnJvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUXVlcmllc0FwaSwgU2l0ZUVudHJ5LCBTaXRlUGFnaW5nIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIEFwcFN0b3JlLFxuICBTbmFja2JhckFjdGlvbixcbiAgU25hY2tiYXJBY3Rpb25UeXBlcyxcbiAgU25hY2tiYXJFcnJvckFjdGlvbixcbiAgU25hY2tiYXJJbmZvQWN0aW9uLFxuICBVcGRhdGVMaWJyYXJ5QWN0aW9uXG59IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBtZXJnZU1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWxmcmVzY29BcGlTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyLCBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBBY3Rpb25zLCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcblxuZXhwb3J0IGNsYXNzIEluc3RhbnRFcnJvclN0YXRlTWF0Y2hlciBpbXBsZW1lbnRzIEVycm9yU3RhdGVNYXRjaGVyIHtcbiAgaXNFcnJvclN0YXRlKGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCB8IG51bGwsIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc1N1Ym1pdHRlZCA9IGZvcm0/LnN1Ym1pdHRlZDtcbiAgICByZXR1cm4gISEoY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbD8uZGlydHkgfHwgY29udHJvbD8udG91Y2hlZCB8fCBpc1N1Ym1pdHRlZCkpO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdENhcmRNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgQTExeU1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGVcbiAgXSxcbiAgc2VsZWN0b3I6ICdhcHAtbGlicmFyeS1tZXRhZGF0YS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpYnJhcnktbWV0YWRhdGEtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpYnJhcnktbWV0YWRhdGEtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIExpYnJhcnlNZXRhZGF0YUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfcXVlcmllc0FwaTogUXVlcmllc0FwaTtcbiAgcHJpdmF0ZSBfdGl0bGVFcnJvclRyYW5zbGF0aW9uS2V5OiBzdHJpbmc7XG5cbiAgZ2V0IHF1ZXJpZXNBcGkoKTogUXVlcmllc0FwaSB7XG4gICAgdGhpcy5fcXVlcmllc0FwaSA9IHRoaXMuX3F1ZXJpZXNBcGkgPz8gbmV3IFF1ZXJpZXNBcGkodGhpcy5hbGZyZXNjb0FwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJpZXNBcGk7XG4gIH1cblxuICBnZXQgdGl0bGVFcnJvclRyYW5zbGF0aW9uS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RpdGxlRXJyb3JUcmFuc2xhdGlvbktleTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIG5vZGU6IFNpdGVFbnRyeTtcblxuICBsaWJyYXJ5VGl0bGVFeGlzdHMgPSBmYWxzZTtcblxuICBsaWJyYXJ5VHlwZSA9IFtcbiAgICB7IHZhbHVlOiAnUFVCTElDJywgbGFiZWw6ICdMSUJSQVJZLlZJU0lCSUxJVFkuUFVCTElDJyB9LFxuICAgIHsgdmFsdWU6ICdQUklWQVRFJywgbGFiZWw6ICdMSUJSQVJZLlZJU0lCSUxJVFkuUFJJVkFURScgfSxcbiAgICB7IHZhbHVlOiAnTU9ERVJBVEVEJywgbGFiZWw6ICdMSUJSQVJZLlZJU0lCSUxJVFkuTU9ERVJBVEVEJyB9XG4gIF07XG5cbiAgZm9ybTogVW50eXBlZEZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBpZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWUgfSksXG4gICAgdGl0bGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woeyB2YWx1ZTogJycgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NiksIHRoaXMudmFsaWRhdGVFbXB0eU5hbWVdKSxcbiAgICBkZXNjcmlwdGlvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiAnJyB9LCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTEyKV0pLFxuICAgIHZpc2liaWxpdHk6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy5saWJyYXJ5VHlwZVswXS52YWx1ZSlcbiAgfSk7XG5cbiAgbWF0Y2hlciA9IG5ldyBJbnN0YW50RXJyb3JTdGF0ZU1hdGNoZXIoKTtcbiAgY2FuVXBkYXRlTGlicmFyeSA9IGZhbHNlO1xuXG4gIG9uRGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWxmcmVzY29BcGlTZXJ2aWNlOiBBbGZyZXNjb0FwaVNlcnZpY2UsIHByb3RlY3RlZCBzdG9yZTogU3RvcmU8QXBwU3RvcmU+LCBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zKSB7fVxuXG4gIHRvZ2dsZUVkaXQoKSB7XG4gICAgaWYgKHRoaXMuZm9ybS5lbmFibGVkKSB7XG4gICAgICB0aGlzLmZvcm0uZGlzYWJsZSh7XG4gICAgICAgIGVtaXRFdmVudDogZmFsc2VcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm0uZW5hYmxlKHtcbiAgICAgICAgZW1pdEV2ZW50OiBmYWxzZVxuICAgICAgfSk7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuaWQuZGlzYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLnVwZGF0ZUZvcm0odGhpcy5ub2RlKTtcbiAgICB0aGlzLnRvZ2dsZUVkaXQoKTtcbiAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudG9nZ2xlRWRpdCgpO1xuICAgIHRoaXMudXBkYXRlRm9ybSh0aGlzLm5vZGUpO1xuICAgIHRoaXMuZm9ybS5jb250cm9scy50aXRsZS5zdGF0dXNDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+XG4gICAgICAgICAgKHRoaXMuX3RpdGxlRXJyb3JUcmFuc2xhdGlvbktleSA9IHRoaXMuZm9ybS5jb250cm9scy50aXRsZS5lcnJvcnM/LmVtcHR5XG4gICAgICAgICAgICA/ICdMSUJSQVJZLkVSUk9SUy5PTkxZX1NQQUNFUydcbiAgICAgICAgICAgIDogJ0xJQlJBUlkuRVJST1JTLlRJVExFX1RPT19MT05HX09SX01JU1NJTkcnKVxuICAgICAgKTtcbiAgICB0aGlzLmZvcm0uY29udHJvbHNbJ3RpdGxlJ10udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICAgIG1lcmdlTWFwKCh0aXRsZSkgPT4gdGhpcy5maW5kTGlicmFyeUJ5VGl0bGUodGl0bGUpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICBjb25zdCB7IGVudHJpZXMgfSA9IHJlc3VsdC5saXN0O1xuXG4gICAgICAgIGlmIChlbnRyaWVzLmxlbmd0aCkge1xuICAgICAgICAgIGlmICh0aGlzLmZvcm0uY29udHJvbHMudGl0bGUudmFsdWUgPT09IHRoaXMubm9kZS5lbnRyeS50aXRsZSkge1xuICAgICAgICAgICAgdGhpcy5saWJyYXJ5VGl0bGVFeGlzdHMgPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5saWJyYXJ5VGl0bGVFeGlzdHMgPSB0aGlzLmZvcm0uY29udHJvbHMudGl0bGUudmFsdWUgPT09IGVudHJpZXNbMF0uZW50cnkudGl0bGU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubGlicmFyeVRpdGxlRXhpc3RzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMuY2FuVXBkYXRlTGlicmFyeSA9IHRoaXMubm9kZT8uZW50cnk/LnJvbGUgPT09ICdTaXRlTWFuYWdlcic7XG4gICAgdGhpcy5oYW5kbGVVcGRhdGluZ0V2ZW50PFNuYWNrYmFySW5mb0FjdGlvbj4oU25hY2tiYXJBY3Rpb25UeXBlcy5JbmZvLCAnTElCUkFSWS5TVUNDRVNTLkxJQlJBUllfVVBEQVRFRCcsICgpID0+XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMubm9kZS5lbnRyeSwgdGhpcy5mb3JtLnZhbHVlKVxuICAgICk7XG4gICAgdGhpcy5oYW5kbGVVcGRhdGluZ0V2ZW50PFNuYWNrYmFyRXJyb3JBY3Rpb24+KFNuYWNrYmFyQWN0aW9uVHlwZXMuRXJyb3IsICdMSUJSQVJZLkVSUk9SUy5MSUJSQVJZX1VQREFURV9FUlJPUicsICgpID0+IHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KHRydWUpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy51cGRhdGVGb3JtKHRoaXMubm9kZSk7XG4gICAgdGhpcy5jYW5VcGRhdGVMaWJyYXJ5ID0gdGhpcy5ub2RlPy5lbnRyeT8ucm9sZSA9PT0gJ1NpdGVNYW5hZ2VyJztcbiAgfVxuXG4gIHVwZGF0ZSgpIHtcbiAgICBpZiAodGhpcy5jYW5VcGRhdGVMaWJyYXJ5ICYmIHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBuZXcgVXBkYXRlTGlicmFyeUFjdGlvbih7XG4gICAgICAgICAgLi4udGhpcy5mb3JtLnZhbHVlLFxuICAgICAgICAgIHRpdGxlOiB0aGlzLmZvcm0udmFsdWUudGl0bGUudHJpbSgpXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRm9ybShub2RlOiBTaXRlRW50cnkpIHtcbiAgICBjb25zdCB7IGVudHJ5IH0gPSBub2RlO1xuXG4gICAgdGhpcy5mb3JtLnNldFZhbHVlKHtcbiAgICAgIGlkOiBlbnRyeS5pZCxcbiAgICAgIHRpdGxlOiBlbnRyeS50aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBlbnRyeS5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIHZpc2liaWxpdHk6IGVudHJ5LnZpc2liaWxpdHlcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZExpYnJhcnlCeVRpdGxlKGxpYnJhcnlUaXRsZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxTaXRlUGFnaW5nIHwgeyBsaXN0OiB7IGVudHJpZXM6IGFueVtdIH0gfT4ge1xuICAgIHJldHVybiBmcm9tKFxuICAgICAgdGhpcy5xdWVyaWVzQXBpXG4gICAgICAgIC5maW5kU2l0ZXMobGlicmFyeVRpdGxlLnRyaW0oKSwge1xuICAgICAgICAgIG1heEl0ZW1zOiAxLFxuICAgICAgICAgIGZpZWxkczogWyd0aXRsZSddXG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoKSA9PiAoeyBsaXN0OiB7IGVudHJpZXM6IFtdIH0gfSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVXBkYXRpbmdFdmVudDxUIGV4dGVuZHMgU25hY2tiYXJBY3Rpb24+KGFjdGlvblR5cGU6IFNuYWNrYmFyQWN0aW9uVHlwZXMsIHBheWxvYWQ6IHN0cmluZywgaGFuZGxlOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5hY3Rpb25zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG9mVHlwZTxUPihhY3Rpb25UeXBlKSxcbiAgICAgICAgZmlsdGVyKChhY3Rpb24pID0+IGFjdGlvbi5wYXlsb2FkID09PSBwYXlsb2FkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoaGFuZGxlKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVFbXB0eU5hbWUoY29udHJvbDogRm9ybUNvbnRyb2w8c3RyaW5nPik6IFZhbGlkYXRpb25FcnJvcnMge1xuICAgIHJldHVybiBjb250cm9sLnZhbHVlLmxlbmd0aCAmJiAhY29udHJvbC52YWx1ZS50cmltKCkgPyB7IGVtcHR5OiB0cnVlIH0gOiBudWxsO1xuICB9XG59XG4iLCI8bWF0LWNhcmQgKm5nSWY9XCJub2RlXCI+XG4gIDxtYXQtY2FyZC1jb250ZW50PlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhdXRvXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwibGlicmFyeS1uYW1lLXByb3BlcnRpZXMtd3JhcHBlclwiIGNsYXNzPVwiYXBwLWxpYnJhcnktbWV0YWRhdGEtZm9ybS1maWVsZFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJmb3JtLmVuYWJsZWRcIlxuICAgICAgICAgIFtjZGtUcmFwRm9jdXNdPVwiZm9ybS5lbmFibGVkXCJcbiAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ0xJQlJBUlkuRElBTE9HLkZPUk0uTkFNRScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCJcbiAgICAgICAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwibWF0Y2hlclwiXG4gICAgICAgIC8+XG4gICAgICAgIDxtYXQtaGludCAqbmdJZj1cImxpYnJhcnlUaXRsZUV4aXN0c1wiPnt7ICdMSUJSQVJZLkhJTlRTLlNJVEVfVElUTEVfRVhJU1RTJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWhpbnQ+XG4gICAgICAgIDxtYXQtZXJyb3I+XG4gICAgICAgICAge3sgdGl0bGVFcnJvclRyYW5zbGF0aW9uS2V5IHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhdXRvXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwibGlicmFyeS1pZC1wcm9wZXJ0aWVzLXdyYXBwZXJcIiBjbGFzcz1cImFwcC1saWJyYXJ5LW1ldGFkYXRhLWZvcm0tZmllbGRcIj5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwie3sgJ0xJQlJBUlkuRElBTE9HLkZPUk0uU0lURV9JRCcgfCB0cmFuc2xhdGUgfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJpZFwiIC8+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImF1dG9cIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJsaWJyYXJ5LXZpc2liaWxpdHktcHJvcGVydGllcy13cmFwcGVyXCIgY2xhc3M9XCJhcHAtbGlicmFyeS1tZXRhZGF0YS1mb3JtLWZpZWxkXCI+XG4gICAgICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwie3sgJ0xJQlJBUlkuRElBTE9HLkZPUk0uVklTSUJJTElUWScgfCB0cmFuc2xhdGUgfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJ2aXNpYmlsaXR5XCI+XG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInR5cGUudmFsdWVcIiAqbmdGb3I9XCJsZXQgdHlwZSBvZiBsaWJyYXJ5VHlwZVwiPlxuICAgICAgICAgICAge3sgdHlwZS5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0TGFiZWw9XCJhdXRvXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwibGlicmFyeS1kZXNjcmlwdGlvbi1wcm9wZXJ0aWVzLXdyYXBwZXJcIiBjbGFzcz1cImFwcC1saWJyYXJ5LW1ldGFkYXRhLWZvcm0tZmllbGRcIj5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdMSUJSQVJZLkRJQUxPRy5GT1JNLkRFU0NSSVBUSU9OJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgcm93cz1cIjNcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwibWF0Y2hlclwiXG4gICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICA8bWF0LWVycm9yPlxuICAgICAgICAgIHt7ICdMSUJSQVJZLkVSUk9SUy5ERVNDUklQVElPTl9UT09fTE9ORycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZm9ybT5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuXG4gIDxtYXQtY2FyZC1hY3Rpb25zIGFsaWduPVwiZW5kXCIgKm5nSWY9XCJjYW5VcGRhdGVMaWJyYXJ5XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0uZW5hYmxlZFwiPlxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJjYW5jZWwoKVwiPlxuICAgICAgICB7eyAnTElCUkFSWS5ESUFMT0cuQ0FOQ0VMJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZCB8fCBmb3JtLnByaXN0aW5lXCIgKGNsaWNrKT1cInVwZGF0ZSgpXCI+XG4gICAgICAgIHt7ICdMSUJSQVJZLkRJQUxPRy5VUERBVEUnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInRvZ2dsZUVkaXQoKVwiICpuZ0lmPVwiZm9ybS5kaXNhYmxlZFwiPlxuICAgICAge3sgJ0xJQlJBUlkuRElBTE9HLkVESVQnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gIDwvbWF0LWNhcmQtYWN0aW9ucz5cbjwvbWF0LWNhcmQ+XG4iXX0=
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS1tZXRhZGF0YS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L3NyYy9saWIvY29tcG9uZW50cy9pbmZvLWRyYXdlci9saWJyYXJ5LW1ldGFkYXRhLXRhYi9saWJyYXJ5LW1ldGFkYXRhLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9jb21wb25lbnRzL2luZm8tZHJhd2VyL2xpYnJhcnktbWV0YWRhdGEtdGFiL2xpYnJhcnktbWV0YWRhdGEtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFnQyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixVQUFVLEVBR1YsV0FBVyxFQUNYLG1CQUFtQixFQUdwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBR0wsbUJBQW1CLEVBR25CLG1CQUFtQixFQUNuQixPQUFPLEVBQ1IsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFjLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFD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RSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2hGLENBQUM7O3lIQTdKVSw0QkFBNEI7NkdBQTVCLDRCQUE0QixvSUN4RnpDLHNxRkE0REEsaUlEV0ksWUFBWSwrUEFDWixhQUFhLHVXQUNiLGVBQWUsMkZBQ2Ysa0JBQWtCLCtYQUNsQixXQUFXLHczQkFDWCxtQkFBbUIsK1VBQ25CLGVBQWUsMFFBQ2YsZUFBZSw4QkFDZixjQUFjLDJXQUNkLFVBQVUsMExBQ1YsZUFBZTsyRkFPTiw0QkFBNEI7a0JBcEJ4QyxTQUFTO2lDQUNJLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxVQUFVO3dCQUNWLGVBQWU7cUJBQ2hCLFlBQ1MsMkJBQTJCLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJO21KQWdCckMsSUFBSTtzQkFESCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBVbnR5cGVkRm9ybUdyb3VwLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIFZhbGlkYXRvcnMsXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgTmdGb3JtLFxuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgRm9ybUNvbnRyb2wsXG4gIFZhbGlkYXRpb25FcnJvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUXVlcmllc0FwaSwgU2l0ZUVudHJ5LCBTaXRlUGFnaW5nIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIEFwcFN0b3JlLFxuICBTbmFja2JhckFjdGlvbixcbiAgU25hY2tiYXJBY3Rpb25UeXBlcyxcbiAgU25hY2tiYXJFcnJvckFjdGlvbixcbiAgU25hY2tiYXJJbmZvQWN0aW9uLFxuICBVcGRhdGVMaWJyYXJ5QWN0aW9uLFxuICBpc0FkbWluXG59IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBtZXJnZU1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWxmcmVzY29BcGlTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyLCBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBBY3Rpb25zLCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcblxuZXhwb3J0IGNsYXNzIEluc3RhbnRFcnJvclN0YXRlTWF0Y2hlciBpbXBsZW1lbnRzIEVycm9yU3RhdGVNYXRjaGVyIHtcbiAgaXNFcnJvclN0YXRlKGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCB8IG51bGwsIGZvcm06IEZvcm1Hcm91cERpcmVjdGl2ZSB8IE5nRm9ybSB8IG51bGwpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc1N1Ym1pdHRlZCA9IGZvcm0/LnN1Ym1pdHRlZDtcbiAgICByZXR1cm4gISEoY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbD8uZGlydHkgfHwgY29udHJvbD8udG91Y2hlZCB8fCBpc1N1Ym1pdHRlZCkpO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdENhcmRNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgQTExeU1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGVcbiAgXSxcbiAgc2VsZWN0b3I6ICdhcHAtbGlicmFyeS1tZXRhZGF0YS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpYnJhcnktbWV0YWRhdGEtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpYnJhcnktbWV0YWRhdGEtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIExpYnJhcnlNZXRhZGF0YUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfcXVlcmllc0FwaTogUXVlcmllc0FwaTtcbiAgcHJpdmF0ZSBfdGl0bGVFcnJvclRyYW5zbGF0aW9uS2V5OiBzdHJpbmc7XG5cbiAgZ2V0IHF1ZXJpZXNBcGkoKTogUXVlcmllc0FwaSB7XG4gICAgdGhpcy5fcXVlcmllc0FwaSA9IHRoaXMuX3F1ZXJpZXNBcGkgPz8gbmV3IFF1ZXJpZXNBcGkodGhpcy5hbGZyZXNjb0FwaVNlcnZpY2UuZ2V0SW5zdGFuY2UoKSk7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJpZXNBcGk7XG4gIH1cblxuICBnZXQgdGl0bGVFcnJvclRyYW5zbGF0aW9uS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RpdGxlRXJyb3JUcmFuc2xhdGlvbktleTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIG5vZGU6IFNpdGVFbnRyeTtcblxuICBsaWJyYXJ5VGl0bGVFeGlzdHMgPSBmYWxzZTtcblxuICBsaWJyYXJ5VHlwZSA9IFtcbiAgICB7IHZhbHVlOiAnUFVCTElDJywgbGFiZWw6ICdMSUJSQVJZLlZJU0lCSUxJVFkuUFVCTElDJyB9LFxuICAgIHsgdmFsdWU6ICdQUklWQVRFJywgbGFiZWw6ICdMSUJSQVJZLlZJU0lCSUxJVFkuUFJJVkFURScgfSxcbiAgICB7IHZhbHVlOiAnTU9ERVJBVEVEJywgbGFiZWw6ICdMSUJSQVJZLlZJU0lCSUxJVFkuTU9ERVJBVEVEJyB9XG4gIF07XG5cbiAgZm9ybTogVW50eXBlZEZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBpZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWUgfSksXG4gICAgdGl0bGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woeyB2YWx1ZTogJycgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NiksIHRoaXMudmFsaWRhdGVFbXB0eU5hbWVdKSxcbiAgICBkZXNjcmlwdGlvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiAnJyB9LCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTEyKV0pLFxuICAgIHZpc2liaWxpdHk6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodGhpcy5saWJyYXJ5VHlwZVswXS52YWx1ZSlcbiAgfSk7XG5cbiAgbWF0Y2hlciA9IG5ldyBJbnN0YW50RXJyb3JTdGF0ZU1hdGNoZXIoKTtcbiAgY2FuVXBkYXRlTGlicmFyeSA9IGZhbHNlO1xuICBpc0FkbWluID0gZmFsc2U7XG5cbiAgb25EZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbGZyZXNjb0FwaVNlcnZpY2U6IEFsZnJlc2NvQXBpU2VydmljZSwgcHJvdGVjdGVkIHN0b3JlOiBTdG9yZTxBcHBTdG9yZT4sIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMpIHt9XG5cbiAgdG9nZ2xlRWRpdCgpIHtcbiAgICBpZiAodGhpcy5mb3JtLmVuYWJsZWQpIHtcbiAgICAgIHRoaXMuZm9ybS5kaXNhYmxlKHtcbiAgICAgICAgZW1pdEV2ZW50OiBmYWxzZVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybS5lbmFibGUoe1xuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5pZC5kaXNhYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMudXBkYXRlRm9ybSh0aGlzLm5vZGUpO1xuICAgIHRoaXMudG9nZ2xlRWRpdCgpO1xuICAgIHRoaXMuZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy50b2dnbGVFZGl0KCk7XG4gICAgdGhpcy51cGRhdGVGb3JtKHRoaXMubm9kZSk7XG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLnRpdGxlLnN0YXR1c0NoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICAodGhpcy5fdGl0bGVFcnJvclRyYW5zbGF0aW9uS2V5ID0gdGhpcy5mb3JtLmNvbnRyb2xzLnRpdGxlLmVycm9ycz8uZW1wdHlcbiAgICAgICAgICAgID8gJ0xJQlJBUlkuRVJST1JTLk9OTFlfU1BBQ0VTJ1xuICAgICAgICAgICAgOiAnTElCUkFSWS5FUlJPUlMuVElUTEVfVE9PX0xPTkdfT1JfTUlTU0lORycpXG4gICAgICApO1xuICAgIHRoaXMuZm9ybS5jb250cm9sc1sndGl0bGUnXS52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgICAgbWVyZ2VNYXAoKHRpdGxlKSA9PiB0aGlzLmZpbmRMaWJyYXJ5QnlUaXRsZSh0aXRsZSkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgZW50cmllcyB9ID0gcmVzdWx0Lmxpc3Q7XG5cbiAgICAgICAgaWYgKGVudHJpZXMubGVuZ3RoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZm9ybS5jb250cm9scy50aXRsZS52YWx1ZSA9PT0gdGhpcy5ub2RlLmVudHJ5LnRpdGxlKSB7XG4gICAgICAgICAgICB0aGlzLmxpYnJhcnlUaXRsZUV4aXN0cyA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxpYnJhcnlUaXRsZUV4aXN0cyA9IHRoaXMuZm9ybS5jb250cm9scy50aXRsZS52YWx1ZSA9PT0gZW50cmllc1swXS5lbnRyeS50aXRsZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5saWJyYXJ5VGl0bGVFeGlzdHMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChpc0FkbWluKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLmlzQWRtaW4gPSB2YWx1ZTtcbiAgICAgIH0pO1xuICAgIHRoaXMuY2FuVXBkYXRlTGlicmFyeSA9IHRoaXMubm9kZT8uZW50cnk/LnJvbGUgPT09ICdTaXRlTWFuYWdlcicgfHwgdGhpcy5pc0FkbWluO1xuICAgIHRoaXMuaGFuZGxlVXBkYXRpbmdFdmVudDxTbmFja2JhckluZm9BY3Rpb24+KFNuYWNrYmFyQWN0aW9uVHlwZXMuSW5mbywgJ0xJQlJBUlkuU1VDQ0VTUy5MSUJSQVJZX1VQREFURUQnLCAoKSA9PlxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm5vZGUuZW50cnksIHRoaXMuZm9ybS52YWx1ZSlcbiAgICApO1xuICAgIHRoaXMuaGFuZGxlVXBkYXRpbmdFdmVudDxTbmFja2JhckVycm9yQWN0aW9uPihTbmFja2JhckFjdGlvblR5cGVzLkVycm9yLCAnTElCUkFSWS5FUlJPUlMuTElCUkFSWV9VUERBVEVfRVJST1InLCAoKSA9PiB0aGlzLmZvcm0ubWFya0FzRGlydHkoKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMudXBkYXRlRm9ybSh0aGlzLm5vZGUpO1xuICAgIHRoaXMuY2FuVXBkYXRlTGlicmFyeSA9IHRoaXMubm9kZT8uZW50cnk/LnJvbGUgPT09ICdTaXRlTWFuYWdlcicgfHwgdGhpcy5pc0FkbWluO1xuICB9XG5cbiAgdXBkYXRlKCkge1xuICAgIGlmICh0aGlzLmNhblVwZGF0ZUxpYnJhcnkgJiYgdGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIG5ldyBVcGRhdGVMaWJyYXJ5QWN0aW9uKHtcbiAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWUsXG4gICAgICAgICAgdGl0bGU6IHRoaXMuZm9ybS52YWx1ZS50aXRsZS50cmltKClcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGb3JtKG5vZGU6IFNpdGVFbnRyeSkge1xuICAgIGNvbnN0IHsgZW50cnkgfSA9IG5vZGU7XG5cbiAgICB0aGlzLmZvcm0uc2V0VmFsdWUoe1xuICAgICAgaWQ6IGVudHJ5LmlkLFxuICAgICAgdGl0bGU6IGVudHJ5LnRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IGVudHJ5LmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgdmlzaWJpbGl0eTogZW50cnkudmlzaWJpbGl0eVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTGlicmFyeUJ5VGl0bGUobGlicmFyeVRpdGxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNpdGVQYWdpbmcgfCB7IGxpc3Q6IHsgZW50cmllczogYW55W10gfSB9PiB7XG4gICAgcmV0dXJuIGZyb20oXG4gICAgICB0aGlzLnF1ZXJpZXNBcGlcbiAgICAgICAgLmZpbmRTaXRlcyhsaWJyYXJ5VGl0bGUudHJpbSgpLCB7XG4gICAgICAgICAgbWF4SXRlbXM6IDEsXG4gICAgICAgICAgZmllbGRzOiBbJ3RpdGxlJ11cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKCgpID0+ICh7IGxpc3Q6IHsgZW50cmllczogW10gfSB9KSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVVcGRhdGluZ0V2ZW50PFQgZXh0ZW5kcyBTbmFja2JhckFjdGlvbj4oYWN0aW9uVHlwZTogU25hY2tiYXJBY3Rpb25UeXBlcywgcGF5bG9hZDogc3RyaW5nLCBoYW5kbGU6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgb2ZUeXBlPFQ+KGFjdGlvblR5cGUpLFxuICAgICAgICBmaWx0ZXIoKGFjdGlvbikgPT4gYWN0aW9uLnBheWxvYWQgPT09IHBheWxvYWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShoYW5kbGUpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUVtcHR5TmFtZShjb250cm9sOiBGb3JtQ29udHJvbDxzdHJpbmc+KTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgcmV0dXJuIGNvbnRyb2wudmFsdWUubGVuZ3RoICYmICFjb250cm9sLnZhbHVlLnRyaW0oKSA/IHsgZW1wdHk6IHRydWUgfSA6IG51bGw7XG4gIH1cbn1cbiIsIjxtYXQtY2FyZCAqbmdJZj1cIm5vZGVcIj5cbiAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImF1dG9cIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJsaWJyYXJ5LW5hbWUtcHJvcGVydGllcy13cmFwcGVyXCIgY2xhc3M9XCJhcHAtbGlicmFyeS1tZXRhZGF0YS1mb3JtLWZpZWxkXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgW2Nka1RyYXBGb2N1c0F1dG9DYXB0dXJlXT1cImZvcm0uZW5hYmxlZFwiXG4gICAgICAgICAgW2Nka1RyYXBGb2N1c109XCJmb3JtLmVuYWJsZWRcIlxuICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnTElCUkFSWS5ESUFMT0cuRk9STS5OQU1FJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIlxuICAgICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJtYXRjaGVyXCJcbiAgICAgICAgLz5cbiAgICAgICAgPG1hdC1oaW50ICpuZ0lmPVwibGlicmFyeVRpdGxlRXhpc3RzXCI+e3sgJ0xJQlJBUlkuSElOVFMuU0lURV9USVRMRV9FWElTVFMnIHwgdHJhbnNsYXRlIH19PC9tYXQtaGludD5cbiAgICAgICAgPG1hdC1lcnJvcj5cbiAgICAgICAgICB7eyB0aXRsZUVycm9yVHJhbnNsYXRpb25LZXkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImF1dG9cIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJsaWJyYXJ5LWlkLXByb3BlcnRpZXMtd3JhcHBlclwiIGNsYXNzPVwiYXBwLWxpYnJhcnktbWV0YWRhdGEtZm9ybS1maWVsZFwiPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJ7eyAnTElCUkFSWS5ESUFMT0cuRk9STS5TSVRFX0lEJyB8IHRyYW5zbGF0ZSB9fVwiIGZvcm1Db250cm9sTmFtZT1cImlkXCIgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYXV0b1wiIGRhdGEtYXV0b21hdGlvbi1pZD1cImxpYnJhcnktdmlzaWJpbGl0eS1wcm9wZXJ0aWVzLXdyYXBwZXJcIiBjbGFzcz1cImFwcC1saWJyYXJ5LW1ldGFkYXRhLWZvcm0tZmllbGRcIj5cbiAgICAgICAgPG1hdC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJ7eyAnTElCUkFSWS5ESUFMT0cuRk9STS5WSVNJQklMSVRZJyB8IHRyYW5zbGF0ZSB9fVwiIGZvcm1Db250cm9sTmFtZT1cInZpc2liaWxpdHlcIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidHlwZS52YWx1ZVwiICpuZ0Zvcj1cImxldCB0eXBlIG9mIGxpYnJhcnlUeXBlXCI+XG4gICAgICAgICAgICB7eyB0eXBlLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cImF1dG9cIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJsaWJyYXJ5LWRlc2NyaXB0aW9uLXByb3BlcnRpZXMtd3JhcHBlclwiIGNsYXNzPVwiYXBwLWxpYnJhcnktbWV0YWRhdGEtZm9ybS1maWVsZFwiPlxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ0xJQlJBUlkuRElBTE9HLkZPUk0uREVTQ1JJUFRJT04nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICByb3dzPVwiM1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJtYXRjaGVyXCJcbiAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgIDxtYXQtZXJyb3I+XG4gICAgICAgICAge3sgJ0xJQlJBUlkuRVJST1JTLkRFU0NSSVBUSU9OX1RPT19MT05HJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9mb3JtPlxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG5cbiAgPG1hdC1jYXJkLWFjdGlvbnMgYWxpZ249XCJlbmRcIiAqbmdJZj1cImNhblVwZGF0ZUxpYnJhcnlcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybS5lbmFibGVkXCI+XG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cImNhbmNlbCgpXCI+XG4gICAgICAgIHt7ICdMSUJSQVJZLkRJQUxPRy5DQU5DRUwnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkIHx8IGZvcm0ucHJpc3RpbmVcIiAoY2xpY2spPVwidXBkYXRlKClcIj5cbiAgICAgICAge3sgJ0xJQlJBUlkuRElBTE9HLlVQREFURScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwidG9nZ2xlRWRpdCgpXCIgKm5nSWY9XCJmb3JtLmRpc2FibGVkXCI+XG4gICAgICB7eyAnTElCUkFSWS5ESUFMT0cuRURJVCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuPC9tYXQtY2FyZD5cbiJdfQ==
@@ -4662,6 +4662,7 @@ class LibraryMetadataFormComponent {
4662
4662
  });
4663
4663
  this.matcher = new InstantErrorStateMatcher();
4664
4664
  this.canUpdateLibrary = false;
4665
+ this.isAdmin = false;
4665
4666
  this.onDestroy$ = new Subject();
4666
4667
  }
4667
4668
  get queriesApi() {
@@ -4718,7 +4719,13 @@ class LibraryMetadataFormComponent {
4718
4719
  this.libraryTitleExists = false;
4719
4720
  }
4720
4721
  });
4721
- this.canUpdateLibrary = ((_b = (_a = this.node) === null || _a === void 0 ? void 0 : _a.entry) === null || _b === void 0 ? void 0 : _b.role) === 'SiteManager';
4722
+ this.store
4723
+ .select(isAdmin)
4724
+ .pipe(takeUntil(this.onDestroy$))
4725
+ .subscribe((value) => {
4726
+ this.isAdmin = value;
4727
+ });
4728
+ this.canUpdateLibrary = ((_b = (_a = this.node) === null || _a === void 0 ? void 0 : _a.entry) === null || _b === void 0 ? void 0 : _b.role) === 'SiteManager' || this.isAdmin;
4722
4729
  this.handleUpdatingEvent(SnackbarActionTypes.Info, 'LIBRARY.SUCCESS.LIBRARY_UPDATED', () => Object.assign(this.node.entry, this.form.value));
4723
4730
  this.handleUpdatingEvent(SnackbarActionTypes.Error, 'LIBRARY.ERRORS.LIBRARY_UPDATE_ERROR', () => this.form.markAsDirty());
4724
4731
  }
@@ -4729,7 +4736,7 @@ class LibraryMetadataFormComponent {
4729
4736
  ngOnChanges() {
4730
4737
  var _a, _b;
4731
4738
  this.updateForm(this.node);
4732
- this.canUpdateLibrary = ((_b = (_a = this.node) === null || _a === void 0 ? void 0 : _a.entry) === null || _b === void 0 ? void 0 : _b.role) === 'SiteManager';
4739
+ this.canUpdateLibrary = ((_b = (_a = this.node) === null || _a === void 0 ? void 0 : _a.entry) === null || _b === void 0 ? void 0 : _b.role) === 'SiteManager' || this.isAdmin;
4733
4740
  }
4734
4741
  update() {
4735
4742
  if (this.canUpdateLibrary && this.form.valid) {