@eo-sdk/client 9.4.0 → 9.6.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.
Files changed (81) hide show
  1. package/app/eo-client/recyclebin-state/recyclebin-state.component.d.ts +44 -0
  2. package/app/eo-framework/actions/action.module.d.ts +3 -1
  3. package/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.d.ts +30 -0
  4. package/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing-action.d.ts +22 -0
  5. package/app/eo-framework/actions/actions/signature-action/signature/signature.component.d.ts +4 -2
  6. package/app/eo-framework/app-shell/app-bar/app-process/app-process.component.d.ts +1 -0
  7. package/app/eo-framework/object-details/object-details.component.d.ts +2 -0
  8. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +17 -11
  9. package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts +75 -0
  10. package/app/eo-framework/split/split/split.component.d.ts +1 -1
  11. package/app/eo-framework/split/split-area/split-area.component.d.ts +1 -0
  12. package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts +1 -0
  13. package/assets/_default/config/main.json +1 -1
  14. package/assets/_default/i18n/de.json +50 -12
  15. package/assets/_default/i18n/en.json +42 -4
  16. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +81 -14
  17. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
  18. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -2
  19. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
  20. package/bundles/eo-sdk-client.umd.js +705 -84
  21. package/bundles/eo-sdk-client.umd.js.map +1 -1
  22. package/bundles/eo-sdk-client.umd.min.js +1 -1
  23. package/bundles/eo-sdk-client.umd.min.js.map +1 -1
  24. package/eo-sdk-client.d.ts +14 -10
  25. package/eo-sdk-client.metadata.json +1 -1
  26. package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
  27. package/esm2015/app/eo-client/eo-client-routing.module.js +3 -1
  28. package/esm2015/app/eo-client/eo-client.module.js +4 -2
  29. package/esm2015/app/eo-client/favorite-state/favorite-state.component.js +3 -3
  30. package/esm2015/app/eo-client/inbox-state/inbox-state/inbox-state.component.js +7 -5
  31. package/esm2015/app/eo-client/notifications-state/notifications-state.component.js +3 -3
  32. package/esm2015/app/eo-client/object-state/object-state-service/object-state.service.js +2 -2
  33. package/esm2015/app/eo-client/prepare-state/prepare-state/prepare-state.component.js +3 -3
  34. package/esm2015/app/eo-client/recyclebin-state/recyclebin-state.component.js +141 -0
  35. package/esm2015/app/eo-framework/actions/action.module.js +9 -3
  36. package/esm2015/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.js +80 -0
  37. package/esm2015/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing-action.js +42 -0
  38. package/esm2015/app/eo-framework/actions/actions/delete-action/delete/delete.component.js +5 -2
  39. package/esm2015/app/eo-framework/actions/actions/signature-action/signature/signature.component.js +19 -10
  40. package/esm2015/app/eo-framework/actions/actions/signature-action/signature-action.component.js +10 -4
  41. package/esm2015/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.js +6 -4
  42. package/esm2015/app/eo-framework/app-shell/app-bar/app-process/app-process.component.js +8 -2
  43. package/esm2015/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.js +2 -2
  44. package/esm2015/app/eo-framework/form-elements/id-reference/id-reference.component.js +3 -3
  45. package/esm2015/app/eo-framework/frame/frame.component.js +9 -1
  46. package/esm2015/app/eo-framework/grid/extensions/filter/text/text-filter.component.js +3 -3
  47. package/esm2015/app/eo-framework/media/media.component.js +3 -3
  48. package/esm2015/app/eo-framework/object-details/object-details.component.js +14 -5
  49. package/esm2015/app/eo-framework/object-details/object-details.module.js +4 -2
  50. package/esm2015/app/eo-framework/object-details/object-history/object-history.component.js +3 -3
  51. package/esm2015/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.js +41 -23
  52. package/esm2015/app/eo-framework/prepare-details/prepare-details.component.js +11 -2
  53. package/esm2015/app/eo-framework/recyclebin-details/recyclebin-details.component.js +260 -0
  54. package/esm2015/app/eo-framework/split/split/split.component.js +6 -6
  55. package/esm2015/app/eo-framework/split/split-area/split-area.component.js +5 -1
  56. package/esm2015/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.js +2 -2
  57. package/esm2015/app/eo-framework/ui/eo-dialog/eo-dialog.component.js +4 -2
  58. package/esm2015/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.js +2 -2
  59. package/esm2015/app/eo-framework/ui/signature-tab/signature-tab.component.js +3 -3
  60. package/esm2015/eo-sdk-client.js +15 -11
  61. package/esm2015/projects/eo-sdk/core/lib/config/translate-json-loader.js +23 -2
  62. package/esm2015/projects/eo-sdk/core/lib/model/dms-object-history.model.js +2 -1
  63. package/esm2015/projects/eo-sdk/core/lib/service/backend/backend.service.js +3 -3
  64. package/esm2015/projects/eo-sdk/core/lib/service/config/config.service.js +2 -2
  65. package/esm2015/projects/eo-sdk/core/lib/service/dms/dms.service.js +20 -6
  66. package/esm2015/projects/eo-sdk/core/lib/service/events/events.js +2 -1
  67. package/esm2015/projects/eo-sdk/core/lib/service/signing/signing.service.js +15 -2
  68. package/esm2015/projects/eo-sdk/core/lib/service/user/user.service.js +17 -1
  69. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +76 -10
  70. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
  71. package/fesm2015/eo-sdk-client.js +647 -75
  72. package/fesm2015/eo-sdk-client.js.map +1 -1
  73. package/package.json +2 -2
  74. package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
  75. package/projects/eo-sdk/core/lib/model/dms-object-history.model.d.ts +4 -0
  76. package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts +1 -1
  77. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +13 -3
  78. package/projects/eo-sdk/core/lib/service/events/events.d.ts +1 -0
  79. package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts +8 -0
  80. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +11 -0
  81. package/projects/eo-sdk/core/package.json +1 -1
@@ -472,7 +472,7 @@ export class StoredQueryDetailsComponent extends UnsubscribeOnDestroy {
472
472
  StoredQueryDetailsComponent.decorators = [
473
473
  { type: Component, args: [{
474
474
  selector: 'eo-stored-query-details',
475
- template: "<ng-container *ngIf=\"storedQuery\">\n <div class=\"eo-head\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\"\n [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"\n [iconTitle]=\"('eo.view.navigation.storedqueries' | translate)\">\n </eo-icon>\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{storedQuery.name}}</h2>\n <h3 class=\"eo-header-subtitle\" translate>eo.search.title.storedqueries</h3>\n </div>\n </header>\n </div>\n\n <div class=\"eo-body\">\n\n <div class=\"form\">\n\n <ng-template #queryForm>\n <eo-stored-query [query]=\"storedQuery\" [formOnly]=\"true\" #storedQueryForm\n (onQueryLoaded)=\"onStoredQueryLoaded()\"\n (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\n </ng-template>\n\n <form class=\"edit-form\" [formGroup]=\"editForm.form\" *ngIf=\"editForm.form; else queryForm\">\n\n <div class=\"context dark\">\n\n <!-- title and fulltext term fields -->\n <eo-form-input class=\"title\">\n <input type=\"text\" name=\"storedQueryTitle\" maxlength=\"64\" onfocus=\"this.select()\" [formControlName]=\"'storedQueryTitle'\"/>\n </eo-form-input>\n \n <eo-query-scope-select [selection]=\"queryScope\" (select)=\"setQueryScope($event)\"></eo-query-scope-select>\n <div class=\"form-field\">\n <eo-form-element [skipToggle]=\"true\" [element]=\"editForm.fulltextFormControl\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"editForm.fulltextFormControl\"\n (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n\n <!-- context type form controls -->\n <h3>{{storedQuery.contextFolderTypes[0]?.label}}</h3>\n <div class=\"form-field\" *ngFor=\"let ctxElement of editForm.contextControls; trackBy: trackByQName\">\n <eo-form-element [element]=\"ctxElement\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"ctxElement\" (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n </div>\n\n <!-- object type form controls -->\n <div class=\"form-fields\" [ngClass]=\"{empty: !editForm.controls?.length}\">\n <div class=\"form-field\" *ngFor=\"let element of editForm.controls; trackBy: trackByQName\">\n <eo-form-element [element]=\"element\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"element\" (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n </div>\n </form>\n </div>\n\n <aside class=\"aside\" *ngIf=\"!isNewQuery\">\n\n <!-- favorite and share -->\n <div class=\"meta-actions\">\n\n <ng-container *ngIf=\"isOwnQuery; else sharedWithMe\">\n <eo-icon class=\"button btn-share\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\" *ngIf=\"enableSharing\"\n [ngClass]=\"{active: storedQuery.shared || storedQuery.roles.length, editing: editingShare}\"\n (click)=\"toggleShareEdit()\"\n [iconTitle]=\"iconTitles.share\"></eo-icon>\n\n <eo-icon class=\"button btn-fav\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\n [ngClass]=\"{active: storedQuery.favorite}\"\n (click)=\"toggleFavoriteState()\"\n [iconTitle]=\"iconTitles.favor\"></eo-icon>\n </ng-container>\n\n <ng-template #sharedWithMe>\n <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\" [iconTitle]=\"iconTitles.shared\"></eo-icon>\n <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\" [iconTitle]=\"iconTitles.favored\"></eo-icon>\n </ng-template>\n\n </div>\n\n <!-- roles that share this query -->\n <div class=\"meta-roles\" [ngClass]=\"{dark: editingShare, empty: !storedQuery.roles?.length}\">\n\n <div class=\"label\" translate>eo.storedquery.share.sharedwith</div>\n <div class=\"form-field\" *ngIf=\"rolesPicker?.codesystem?.entries\">\n <eo-codesystem [pickerTitle]=\"rolesPicker.title\"\n [codesystem]=\"rolesPicker.codesystem\"\n [multiselect]=\"true\"\n [readonly]=\"!editingShare\"\n [inputStyleClass]=\"'stored-query__share'\"\n [(ngModel)]=\"rolesPicker.value\"></eo-codesystem>\n </div>\n\n <div class=\"share-actions\" *ngIf=\"editingShare\">\n <button class=\"secondary\" (click)=\"cancelShare()\" translate>eo.storedquery.share.cancel</button>\n <button class=\"primary\" (click)=\"share()\" translate>eo.storedquery.share.ok</button>\n </div>\n </div>\n\n <!-- queries meta info like baseparam settings -->\n <div class=\"meta-data\" *ngIf=\"restrictions?.length\">\n <div class=\"restriction\" *ngFor=\"let restriction of restrictions; trackBy: trackByIndex\">\n <div class=\"label\">{{restriction.label}}</div>\n <div class=\"items\">\n <div *ngFor=\"let item of restriction.items; trackBy: trackByIndex\">{{item}}</div>\n </div>\n </div>\n </div>\n\n </aside>\n\n </div>\n\n <div class=\"actions\">\n <ng-container *ngIf=\"!editForm.form; else actionEdit\">\n <button class=\"secondary btn-delete\" (click)=\"delete()\" [disabled]=\"!isOwnQuery\" translate>eo.storedquery.action.delete</button>\n <button class=\"secondary btn-open\" (click)=\"setQueryToAppSearch()\" [disabled]=\"!isOwnQuery\" translate>eo.storedquery.load</button>\n <button class=\"primary grey btn-edit\" (click)=\"edit()\" [disabled]=\"!isOwnQuery\" translate>eo.storedquery.action.edit</button>\n <button class=\"primary btn-search\" [disabled]=\"storedQuery.state?.isEmpty\" (click)=\"executeQuery()\" translate>eo.storedquery.run</button>\n </ng-container>\n\n <ng-template #actionEdit>\n <!-- action while editing the query form -->\n <button class=\"secondary btn-cancel\" (click)=\"cancelEdit()\" translate>eo.storedquery.action.cancel</button>\n <button class=\"primary btn-save\" (click)=\"updateStoredQuery()\" [disabled]=\"editForm.form.invalid\" translate>eo.storedquery.action.save</button>\n </ng-template>\n </div>\n\n</ng-container>\n",
475
+ template: "<ng-container *ngIf=\"storedQuery\">\n <div class=\"eo-head\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\"\n [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"\n [iconTitle]=\"('eo.view.navigation.storedqueries' | translate)\">\n </eo-icon>\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{storedQuery.name}}</h2>\n <h3 class=\"eo-header-subtitle\" translate>eo.search.title.storedqueries</h3>\n </div>\n </header>\n </div>\n\n <div class=\"eo-body\">\n\n <div class=\"form\">\n\n <ng-template #queryForm>\n <eo-stored-query [query]=\"storedQuery\" [formOnly]=\"true\" #storedQueryForm\n (onQueryLoaded)=\"onStoredQueryLoaded()\"\n (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\n </ng-template>\n\n <form class=\"edit-form\" [formGroup]=\"editForm.form\" *ngIf=\"editForm.form; else queryForm\">\n\n <div class=\"context dark\">\n\n <!-- title and fulltext term fields -->\n <eo-form-input class=\"title\">\n <input type=\"text\" name=\"storedQueryTitle\" maxlength=\"64\" onfocus=\"this.select()\" [formControlName]=\"'storedQueryTitle'\"/>\n </eo-form-input>\n\n <eo-query-scope-select [selection]=\"queryScope\" (select)=\"setQueryScope($event)\"></eo-query-scope-select>\n <div class=\"form-field\">\n <eo-form-element [skipToggle]=\"true\" [element]=\"editForm.fulltextFormControl\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"editForm.fulltextFormControl\"\n (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n\n <!-- context type form controls -->\n <h3>{{storedQuery.contextFolderTypes[0]?.label}}</h3>\n <div class=\"form-field\" *ngFor=\"let ctxElement of editForm.contextControls; trackBy: trackByQName\">\n <eo-form-element [element]=\"ctxElement\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"ctxElement\" (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n </div>\n\n <!-- object type form controls -->\n <div class=\"form-fields\" [ngClass]=\"{empty: !editForm.controls?.length}\">\n <div class=\"form-field\" *ngFor=\"let element of editForm.controls; trackBy: trackByQName\">\n <eo-form-element [element]=\"element\" [situation]=\"'SEARCH'\"></eo-form-element>\n <eo-dynamic-property-switch [parentFormControl]=\"element\" (onPropertyChanged)=\"parameterChanged($event)\"></eo-dynamic-property-switch>\n </div>\n </div>\n </form>\n </div>\n\n <aside class=\"aside\" *ngIf=\"!isNewQuery\">\n\n <!-- favorite and share -->\n <div class=\"meta-actions\">\n\n <ng-container *ngIf=\"isOwnQuery; else sharedWithMe\">\n <eo-icon class=\"button btn-share\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\" *ngIf=\"enableSharing\"\n [ngClass]=\"{active: storedQuery.shared || storedQuery.roles.length, editing: editingShare}\"\n (click)=\"toggleShareEdit()\"\n [iconTitle]=\"iconTitles.share\"></eo-icon>\n\n <eo-icon class=\"button btn-fav\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\n [ngClass]=\"{active: storedQuery.favorite}\"\n (click)=\"toggleFavoriteState()\"\n [iconTitle]=\"iconTitles.favor\"></eo-icon>\n </ng-container>\n\n <ng-template #sharedWithMe>\n <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_share.svg'\" [iconTitle]=\"iconTitles.shared\"></eo-icon>\n <eo-icon class=\"sharedWithMe\" [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\" [iconTitle]=\"iconTitles.favored\"></eo-icon>\n </ng-template>\n\n </div>\n\n <!-- roles that share this query -->\n <div class=\"meta-roles\" [ngClass]=\"{dark: editingShare, empty: !storedQuery.roles?.length}\">\n\n <div class=\"label\" translate>eo.storedquery.share.sharedwith</div>\n <div class=\"form-field\" *ngIf=\"rolesPicker?.codesystem?.entries\">\n <eo-codesystem [pickerTitle]=\"rolesPicker.title\"\n [codesystem]=\"rolesPicker.codesystem\"\n [multiselect]=\"true\"\n [readonly]=\"!editingShare\"\n [inputStyleClass]=\"'stored-query__share'\"\n [(ngModel)]=\"rolesPicker.value\"></eo-codesystem>\n </div>\n\n <div class=\"share-actions\" *ngIf=\"editingShare\">\n <button class=\"secondary\" (click)=\"cancelShare()\" translate>eo.storedquery.share.cancel</button>\n <button class=\"primary\" (click)=\"share()\" translate>eo.storedquery.share.ok</button>\n </div>\n </div>\n\n <!-- queries meta info like baseparam settings -->\n <div class=\"meta-data\" *ngIf=\"restrictions?.length\">\n <div class=\"restriction\" *ngFor=\"let restriction of restrictions; trackBy: trackByIndex\">\n <div class=\"label\">{{restriction.label}}</div>\n <div class=\"items\">\n <div *ngFor=\"let item of restriction.items; trackBy: trackByIndex\">{{item}}</div>\n </div>\n </div>\n </div>\n\n </aside>\n\n </div>\n\n <div class=\"actions\">\n <ng-container *ngIf=\"!editForm.form; else actionEdit\">\n <button class=\"secondary btn-delete\" (click)=\"delete()\" [disabled]=\"!isOwnQuery\" translate>eo.storedquery.action.delete</button>\n <button class=\"secondary btn-open\" (click)=\"setQueryToAppSearch()\" translate>eo.storedquery.load</button>\n <button class=\"primary grey btn-edit\" (click)=\"edit()\" [disabled]=\"!isOwnQuery\" translate>eo.storedquery.action.edit</button>\n <button class=\"primary btn-search\" [disabled]=\"storedQuery.state?.isEmpty\" (click)=\"executeQuery()\" translate>eo.storedquery.run</button>\n </ng-container>\n\n <ng-template #actionEdit>\n <!-- action while editing the query form -->\n <button class=\"secondary btn-cancel\" (click)=\"cancelEdit()\" translate>eo.storedquery.action.cancel</button>\n <button class=\"primary btn-save\" (click)=\"updateStoredQuery()\" [disabled]=\"editForm.form.invalid\" translate>eo.storedquery.action.save</button>\n </ng-template>\n </div>\n\n</ng-container>\n",
476
476
  styles: [":host{--stored-query-aside-width:300px;background:var(--panel-background-grey);display:flex;flex:1;flex-direction:column;height:100%;min-height:0;min-width:0;overflow-y:auto}:host .eo-head{background-color:var(--color-white);border-bottom:1px solid var(--panel-header-border-bottom-color)}:host .eo-body{overflow-y:hidden}:host .eo-body .form{overflow-y:auto;padding:var(--app-pane-padding);padding-right:calc(var(--stored-query-aside-width) + var(--app-pane-padding)*2)}:host .eo-body .form eo-stored-query{background-color:var(--color-white);padding:var(--app-pane-padding)}:host .eo-body .aside{background-color:rgba(var(--color-black-rgb),.02);border:1px solid rgba(var(--color-black-rgb),.1);box-sizing:border-box;padding:var(--app-pane-padding);position:absolute;right:var(--app-pane-padding);top:var(--app-pane-padding);width:var(--stored-query-aside-width)}:host .eo-body .aside .meta-actions{display:flex;justify-content:flex-end;margin:0 -2px}:host .eo-body .aside .meta-actions eo-icon{color:var(--text-color-hint);margin:0 2px;padding:4px}:host .eo-body .aside .meta-actions eo-icon.active{color:var(--color-favorite)}:host .eo-body .aside .meta-actions eo-icon.editing{background-color:var(--color-primary-2);border-radius:2px 2px 0 0;color:var(--color-white)}:host .eo-body .aside .meta-actions eo-icon.sharedWithMe{background-color:var(--text-color-hint);border-radius:2px;color:var(--color-white)}:host .eo-body .aside .meta-roles.dark{background-color:var(--color-primary-2);border-radius:2px;color:var(--color-white);margin-bottom:var(--app-pane-padding);padding:calc(var(--app-pane-padding)/2)}:host .eo-body .aside .meta-roles.dark .actions{display:flex}:host .eo-body .aside .meta-roles.dark .label{display:none}:host .eo-body .aside .meta-roles.dark .form-field,:host .eo-body .aside .meta-roles .form-field{background-color:rgba(var(--color-white-rgb),.2)}:host .eo-body .aside .meta-roles .form-field{border:1px solid rgba(var(--color-black-rgb),.1);margin-bottom:calc(var(--app-pane-padding)/2);padding:2px 2px 4px 4px}:host .eo-body .aside .meta-roles .label{color:var(--text-color-caption);font-style:italic;margin-bottom:calc(var(--app-pane-padding)/4)}:host .eo-body .aside .meta-roles .share-actions{display:flex;justify-content:flex-end;margin:0 calc(var(--app-pane-padding)/8*-1)}:host .eo-body .aside .meta-roles .share-actions button{margin:0 calc(var(--app-pane-padding)/8);padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2)}:host .eo-body .aside .meta-roles.empty:not(.dark) .form-field,:host .eo-body .aside .meta-roles.empty:not(.dark) .label{display:none}:host .eo-body .aside .meta-data{border-collapse:collapse;display:table;flex:1 1 40%;margin:0 0 var(--app-pane-padding) 0;order:1}:host .eo-body .aside .meta-data .restriction{display:table-row}:host .eo-body .aside .meta-data .restriction .label{color:var(--text-color-caption);display:table-cell;font-style:italic;padding-right:calc(var(--app-pane-padding)/2)}:host .eo-body .aside .meta-data .restriction .items{border-left:1px solid rgba(var(--color-black-rgb),.1);display:table-cell;padding:0 0 calc(var(--app-pane-padding)/2) calc(var(--app-pane-padding)/2)}:host .actions{background-color:var(--color-white);border-top:1px solid var(--panel-header-border-bottom-color);display:flex;flex-flow:row;justify-content:flex-end;padding:var(--app-pane-padding) calc(var(--app-pane-padding) - 2px)}:host .actions button{margin:0 2px}:host .edit-form{background-color:var(--color-white);max-width:500px}:host .edit-form .context{background-color:var(--color-primary-2);padding:calc(var(--app-pane-padding)/2)}:host .edit-form .context h3{color:var(--color-white);display:flex;font-size:var(--font-subhead);font-weight:var(--font-weight-light);justify-content:flex-end;margin:0;padding:var(--app-pane-padding) 0 calc(var(--app-pane-padding)/2) 0}:host .edit-form .form-fields{padding:calc(var(--app-pane-padding)/2)}:host .edit-form .form-fields.empty{display:none}:host .edit-form .form-field{align-items:center;display:flex;flex-flow:row nowrap}:host .edit-form .form-field eo-form-element{flex:1 1 auto}:host .edit-form .form-field eo-dynamic-property-switch{flex:0 0 auto}:host eo-stored-query{display:block;max-width:500px}:host ::ng-deep eo-form-input.title{display:block;margin-bottom:var(--app-pane-padding)}:host ::ng-deep eo-form-input.title input{font-size:var(--font-title);font-weight:var(--font-weight-light)}"]
477
477
  },] }
478
478
  ];
@@ -493,4 +493,4 @@ StoredQueryDetailsComponent.propDecorators = {
493
493
  query: [{ type: Input }],
494
494
  notifyList: [{ type: Output }]
495
495
  };
496
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkLXF1ZXJ5LWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvc3RvcmVkLXF1ZXJ5L3N0b3JlZC1xdWVyeS1kZXRhaWxzL3N0b3JlZC1xdWVyeS1kZXRhaWxzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFhLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFRLFVBQVUsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUFtQixNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsV0FBVyxFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXZELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9FQUFvRSxDQUFDO0FBQ3pHLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUNoRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFJakYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDeEYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUVMLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsWUFBWSxFQUNaLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUViLFdBQVcsRUFFWCxLQUFLLEVBQ0wsYUFBYSxFQUVkLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFD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LE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQztTQUNuRSxDQUFBO0lBQ0gsQ0FBQztJQUdELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07YUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQzthQUN6QyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ3RCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7O1lBamlCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsaWxOQUFvRDs7YUFFckQ7OztZQWxDeUIsTUFBTTtZQXdCOUIsYUFBYTtZQUhiLFdBQVc7WUFGWCxhQUFhO1lBVFAsZ0JBQWdCO1lBUGhCLHFCQUFxQjtZQVkzQixvQkFBb0I7WUFWZCx1QkFBdUI7WUFOMEMsVUFBVTtZQW1CakYsZ0JBQWdCOzs7OEJBeUJmLFNBQVMsU0FBQyxpQkFBaUI7b0JBa0IzQixLQUFLO3lCQUtMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3Rha2VVbnRpbCwgc3dpdGNoTWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBUeXBlLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkV4dHJhcywgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYmplY3RGb3JtQ29udHJvbFdyYXBwZXJ9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtL29iamVjdC1mb3JtLWNvbnRyb2wtd3JhcHBlcic7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7T2JqZWN0Rm9ybUdyb3VwfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1ncm91cCc7XG5pbXBvcnQge09iamVjdEZvcm1IZWxwZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQge0xvY2FsZURhdGVQaXBlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9waXBlcy9sb2NhbGUtZGF0ZS5waXBlJztcbmltcG9ydCB7T2JqZWN0Rm9ybUNvbnRyb2x9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtL29iamVjdC1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHtFZGl0Rm9ybSwgTm90aWZ5TGlzdCwgUmVzdHJpY3Rpb259IGZyb20gJy4uL3N0b3JlZC1xdWVyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtTdG9yZWRRdWVyeUNvbXBvbmVudH0gZnJvbSAnLi4vc3RvcmVkLXF1ZXJ5L3N0b3JlZC1xdWVyeS5jb21wb25lbnQnO1xuaW1wb3J0IHtTZWxlY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWxlY3Rpb24vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtVbnN1YnNjcmliZU9uRGVzdHJveX0gZnJvbSAnLi4vLi4vdXRpbC91bnN1YnNjcmliZS91bnN1YnNjcmliZS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgSVN0b3JlZFF1ZXJ5UGFyYW0sXG4gIFN0b3JlZFF1ZXJ5LFxuICBTdG9yZWRRdWVyaWVzU2VydmljZSxcbiAgU2VhcmNoRmlsdGVyLFxuICBTZWFyY2hRdWVyeSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgU3lzdGVtU2VydmljZSxcbiAgUmFuZ2VWYWx1ZSxcbiAgVXNlclNlcnZpY2UsXG4gIE9yZ1JvbGUsXG4gIFV0aWxzLFxuICBTZWFyY2hTZXJ2aWNlLFxuICBRdWVyeVNjb3BlXG59IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1V0aWxpdGllc1NlcnZpY2V9IGZyb20gJy4uLy4uL3V0aWwvc2VydmljZXMvdXRpbGl0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHtmb3JrSm9pbiwgb2YsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1zdG9yZWQtcXVlcnktZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdG9yZWQtcXVlcnktZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0b3JlZC1xdWVyeS1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU3RvcmVkUXVlcnlEZXRhaWxzQ29tcG9uZW50IGV4dGVuZHMgVW5zdWJzY3JpYmVPbkRlc3Ryb3kgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHByaXZhdGUgRk9STV9JTlBVVF9USVRMRSA9ICdzdG9yZWRRdWVyeVRpdGxlJztcbiAgcHJpdmF0ZSBGT1JNX0lOUFVUX0ZVTExURVhUID0gJ3N0b3JlZFF1ZXJ5RnVsbHRleHQnO1xuICBwcml2YXRlIEJBU0VfUEFSQU1TX0ZJRUxEUyA9IE9iamVjdC5rZXlzKFNlYXJjaFF1ZXJ5LkJBU0VfUEFSQU1TKS5tYXAoayA9PiBTZWFyY2hRdWVyeS5CQVNFX1BBUkFNU1trXSk7XG4gIHByaXZhdGUgZGF0ZVBpcGU6IExvY2FsZURhdGVQaXBlO1xuICBwcml2YXRlIHBlbmRpbmdUYXNrSWQ6IHN0cmluZztcblxuICBAVmlld0NoaWxkKCdzdG9yZWRRdWVyeUZvcm0nKSBzdG9yZWRRdWVyeUZvcm06IFN0b3JlZFF1ZXJ5Q29tcG9uZW50O1xuXG4gIGljb25UaXRsZXM6IGFueTtcbiAgc3RvcmVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuICBxdWVyeVNjb3BlOiBRdWVyeVNjb3BlO1xuICBlZGl0Rm9ybTogRWRpdEZvcm07XG4gIHJlc3RyaWN0aW9uczogUmVzdHJpY3Rpb25bXTtcbiAgZWRpdGluZ1NoYXJlOiBib29sZWFuO1xuICBpc05ld1F1ZXJ5OiBib29sZWFuO1xuICBpc093blF1ZXJ5OiBib29sZWFuO1xuICBlbmFibGVTaGFyaW5nOiBib29sZWFuO1xuICBzeXN0ZW1Sb2xlczogT3JnUm9sZVtdO1xuICByb2xlc1BpY2tlciA9IHtcbiAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3RvcmVkcXVlcnkucm9sZXMnKSxcbiAgICBjb2Rlc3lzdGVtOiBudWxsLFxuICAgIHZhbHVlOiBudWxsXG4gIH07XG5cbiAgQElucHV0KClcbiAgc2V0IHF1ZXJ5KHE6IFN0b3JlZFF1ZXJ5KSB7XG4gICAgdGhpcy5zZXRRdWVyeShxKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBub3RpZnlMaXN0OiBFdmVudEVtaXR0ZXI8Tm90aWZ5TGlzdD4gPSBuZXcgRXZlbnRFbWl0dGVyPE5vdGlmeUxpc3Q+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzeXN0ZW1TZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlZFF1ZXJpZXNTZXJ2aWNlOiBTdG9yZWRRdWVyaWVzU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1IZWxwZXJTZXJ2aWNlOiBPYmplY3RGb3JtSGVscGVyU2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1SZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5kYXRlUGlwZSA9IG5ldyBMb2NhbGVEYXRlUGlwZSh0cmFuc2xhdGUpO1xuICAgIHRoaXMuZmV0Y2hSb2xlcygpO1xuICB9XG5cbiAgcHVibGljIHNldFF1ZXJ5U2NvcGUoc2NvcGU6IFF1ZXJ5U2NvcGUpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJ5LnNjb3BlID0gc2NvcGU7XG4gICAgdGhpcy5xdWVyeVNjb3BlID0gc2NvcGU7XG4gIH1cblxuICBzZXRRdWVyeShxOiBTdG9yZWRRdWVyeSkge1xuICAgIHRoaXMuZWRpdGluZ1NoYXJlID0gZmFsc2U7XG4gICAgdGhpcy5yZXNldEVkaXRGb3JtKCk7XG4gICAgLy8gZ3JhYiBtZXRhIGluZm9ybWF0aW9uIGFib3V0IHRoZSBxdWVyeVxuICAgIHRoaXMuc3RvcmVkUXVlcnkgPSBxO1xuICAgIGlmIChxIGluc3RhbmNlb2YgU3RvcmVkUXVlcnkpIHtcbiAgICAgIHRoaXMucXVlcnlTY29wZSA9IHEuc2NvcGU7XG4gICAgICBjb25zdCB1c2VyID0gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpO1xuICAgICAgdGhpcy5pc05ld1F1ZXJ5ID0gcS5pc05ldygpO1xuICAgICAgdGhpcy5pc093blF1ZXJ5ID0gdGhpcy5pc05ld1F1ZXJ5IHx8IHEudXNlci50b0xvd2VyQ2FzZSgpID09PSB1c2VyLm5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIHRoaXMucmVzdHJpY3Rpb25zID0gdGhpcy5nZXRSZXN0cmljdGlvbnMoKTtcbiAgICAgIHRoaXMucm9sZXNQaWNrZXIudmFsdWUgPSBxLnJvbGVzO1xuICAgICAgdGhpcy5lbmFibGVTaGFyaW5nID0gdXNlci5oYXNQcml2aWxlZ2UoJ1NIQVJFX1NUT1JFRF9RVUVSSUVTJykgJiYgdGhpcy5pc093blF1ZXJ5ICYmICF0aGlzLmlzTmV3UXVlcnk7XG5cbiAgICAgIGlmIChxLmlzTmV3KCkpIHtcbiAgICAgICAgdGhpcy5zdG9yZWRRdWVyeS5uYW1lID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2VhcmNoLnN0b3JlZHF1ZXJpZXMubmV3LnRpdGxlJyk7XG4gICAgICAgIHRoaXMuZWRpdCgpO1xuICAgICAgICB0aGlzLnN0YXJ0UGVuZGluZygpO1xuICAgICAgICB0aGlzLm5vdGlmeUxpc3QuZW1pdCh7dW5zZWxlY3Q6IHRydWUsIHVwZGF0ZTogZmFsc2V9KTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lbGVtUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW25hbWU9XCJzdG9yZWRRdWVyeVRpdGxlXCJdJykuZm9jdXMoKVxuICAgICAgICB9LDUwMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFBlbmRpbmcoKSB7XG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCB8fCAnICcpKSB7XG4gICAgICB0aGlzLnBlbmRpbmdUYXNrSWQgPSB0aGlzLnBlbmRpbmdDaGFuZ2VzLnN0YXJ0VGFzaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluaXNoUGVuZGluZygpIHtcbiAgICB0aGlzLnBlbmRpbmdDaGFuZ2VzLmZpbmlzaFRhc2sodGhpcy5wZW5kaW5nVGFza0lkKTtcbiAgfVxuXG4gIGVkaXQoKSB7XG4gICAgaWYgKCF0aGlzLmVkaXRGb3JtLmZvcm0pIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNyZWF0ZUVkaXRGb3JtKCk7XG4gICAgICAgIHRoaXMubm90aWZ5TGlzdC5lbWl0KHt1bnNlbGVjdDogZmFsc2UsIHVwZGF0ZTogdHJ1ZX0pO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgb25Gb3JtU3RhdHVzQ2hhbmdlZChmb3JtU3RhdGUpIHtcbiAgICBmb3JtU3RhdGUuZGlydHkgPyB0aGlzLnN0YXJ0UGVuZGluZygpIDogdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gIH1cblxuICB0b2dnbGVTaGFyZUVkaXQoKSB7XG4gICAgdGhpcy5lZGl0aW5nU2hhcmUgPSAhdGhpcy5lZGl0aW5nU2hhcmU7XG4gIH1cblxuICBzaGFyZSgpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJ5LnJvbGVzID0gdGhpcy5yb2xlc1BpY2tlci52YWx1ZTtcbiAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTZXJ2aWNlLnNhdmVTdG9yZWRRdWVyeSh0aGlzLnN0b3JlZFF1ZXJ5KS5zdWJzY3JpYmUoXG4gICAgICBfID0+IHtcbiAgICAgIH0sIFV0aWxzLnRocm93KG51bGwsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNlYXJjaC5zdG9yZWRxdWVyeS5zYXZlLmVycm9yJykpXG4gICAgKTtcbiAgICB0aGlzLmVkaXRpbmdTaGFyZSA9IGZhbHNlO1xuICB9XG5cbiAgY2FuY2VsU2hhcmUoKSB7XG4gICAgdGhpcy5yb2xlc1BpY2tlci52YWx1ZSA9IHRoaXMuc3RvcmVkUXVlcnkucm9sZXM7XG4gICAgdGhpcy5lZGl0aW5nU2hhcmUgPSBmYWxzZTtcbiAgfVxuXG4gIGRlbGV0ZSgpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTZXJ2aWNlXG4gICAgICAucmVtb3ZlU3RvcmVkUXVlcnkodGhpcy5zdG9yZWRRdWVyeS5pZClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnF1ZXJ5ID0gbnVsbDtcbiAgICAgICAgdGhpcy5ub3RpZnlMaXN0LmVtaXQoe3Vuc2VsZWN0OiBmYWxzZSwgdXBkYXRlOiBmYWxzZX0pO1xuICAgICAgfSwgVXRpbHMudGhyb3cobnVsbCwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2VhcmNoLnN0b3JlZHF1ZXJ5LmRlbGV0ZS5lcnJvcicpKSk7XG4gIH1cblxuICB0b2dnbGVGYXZvcml0ZVN0YXRlKCkge1xuICAgIHRoaXMuc3RvcmVkUXVlcnkuZmF2b3JpdGUgPSAhdGhpcy5zdG9yZWRRdWVyeS5mYXZvcml0ZTtcbiAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTZXJ2aWNlXG4gICAgICAuc2F2ZVN0b3JlZFF1ZXJ5KHRoaXMuc3RvcmVkUXVlcnkpXG4gICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgfSwgVXRpbHMudGhyb3cobnVsbCwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2VhcmNoLnN0b3JlZHF1ZXJ5LnNhdmUuZXJyb3InKSkpO1xuICB9XG5cbiAgY2FuY2VsRWRpdCgpIHtcbiAgICB0aGlzLnJlc2V0RWRpdEZvcm0oKTtcbiAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcbiAgICBpZiAodGhpcy5zdG9yZWRRdWVyeS5pc05ldygpKSB7XG4gICAgICB0aGlzLnF1ZXJ5ID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5ub3RpZnlMaXN0LmVtaXQoe3Vuc2VsZWN0OiBmYWxzZSwgdXBkYXRlOiBmYWxzZSwgcGF5bG9hZDogdGhpcy5zdG9yZWRRdWVyeX0pO1xuICB9XG5cbiAgc2V0UXVlcnlUb0FwcFNlYXJjaCgpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJ5Rm9ybS5sb2FkKCk7XG4gIH1cblxuICBleGVjdXRlUXVlcnkoKSB7XG4gICAgdGhpcy5zdG9yZWRRdWVyeUZvcm0uZXhlY3V0ZSgpO1xuICB9XG5cbiAgLy8gU2F2ZSB0aGUgY3VycmVudCBzdG9yZWQgcXVlcnlcbiAgdXBkYXRlU3RvcmVkUXVlcnkoKSB7XG5cbiAgICBjb25zdCBmb3JtRGF0YSA9IHRoaXMuZ2V0Rm9ybURhdGEoKTtcbiAgICB0aGlzLnN0b3JlZFF1ZXJ5LmZpbHRlcnMgPSB0aGlzLnN0b3JlZFF1ZXJ5LmZpbHRlcnMuZmlsdGVyKGYgPT4gfnRoaXMuQkFTRV9QQVJBTVNfRklFTERTLmluZGV4T2YoZi5wcm9wZXJ0eSkpO1xuICAgIE9iamVjdC5rZXlzKGZvcm1EYXRhKVxuICAgICAgLmZvckVhY2goayA9PiB7XG4gICAgICAgIGlmIChrID09PSB0aGlzLkZPUk1fSU5QVVRfVElUTEUpIHtcbiAgICAgICAgICB0aGlzLnN0b3JlZFF1ZXJ5Lm5hbWUgPSBmb3JtRGF0YVtrXTtcbiAgICAgICAgfSBlbHNlIGlmIChrID09PSB0aGlzLkZPUk1fSU5QVVRfRlVMTFRFWFQpIHtcbiAgICAgICAgICB0aGlzLnN0b3JlZFF1ZXJ5LnRlcm0gPSBmb3JtRGF0YVtrXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgZmlsdGVyczogU2VhcmNoRmlsdGVyW10gPSB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0U2VhcmNoRmlsdGVyKHRoaXMuc3RvcmVkUXVlcnkudHlwZXMsIGssIGZvcm1EYXRhW2tdKTtcbiAgICAgICAgICBmaWx0ZXJzLmZvckVhY2goZiA9PiB0aGlzLnN0b3JlZFF1ZXJ5LmFkZEZpbHRlcihmKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZVxuICAgICAgLnNhdmVTdG9yZWRRdWVyeSh0aGlzLnN0b3JlZFF1ZXJ5KVxuICAgICAgLnN1YnNjcmliZSh1cGRhdGVkU3RvcmVkUXVlcnkgPT4ge1xuICAgICAgICB0aGlzLnF1ZXJ5ID0gdXBkYXRlZFN0b3JlZFF1ZXJ5O1xuICAgICAgICB0aGlzLnJlc2V0RWRpdEZvcm0oKTtcbiAgICAgICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgICAgIHRoaXMubm90aWZ5TGlzdC5lbWl0KHt1bnNlbGVjdDogZmFsc2UsIHVwZGF0ZTogZmFsc2UsIHBheWxvYWQ6IHVwZGF0ZWRTdG9yZWRRdWVyeX0pO1xuICAgICAgfSwgVXRpbHMudGhyb3cobnVsbCwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2VhcmNoLnN0b3JlZHF1ZXJ5LnNhdmUuZXJyb3InKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSBmb3JtIGVsZW1lbnRzIHRvIGJlIGEgZHluYW1pYyBwYXJhbWV0ZXIgb3Igbm90XG4gICAqIEBwYXJhbSBldmVudFxuICAgKi9cbiAgcGFyYW1ldGVyQ2hhbmdlZChldmVudDoge2NvbnRyb2w6IHN0cmluZywgdmFsdWU6IGJvb2xlYW59KSB7XG5cbiAgICBsZXQgbSA9IHRoaXMuc3RvcmVkUXVlcnkucGFyYW1ldGVyLmZpbmQocCA9PiBwLnFuYW1lID09PSBldmVudC5jb250cm9sKTtcbiAgICBpZiAobSAmJiAhZXZlbnQudmFsdWUpIHtcbiAgICAgIC8vIHJlbW92ZSBleGlzdGluZyBwYXJhbWV0ZXJcbiAgICAgIHRoaXMuc3RvcmVkUXVlcnkucGFyYW1ldGVyID0gdGhpcy5zdG9yZWRRdWVyeS5wYXJhbWV0ZXIuZmlsdGVyKHAgPT4gcC5xbmFtZSAhPT0gZXZlbnQuY29udHJvbCk7XG4gICAgfSBlbHNlIGlmICghbSAmJiBldmVudC52YWx1ZSkge1xuICAgICAgLy8gYWRkIHBhcmFtZXRlciBlbGVtZW50XG4gICAgICBsZXQgcGFyYW0gPSB0aGlzLmZvcm1GaWVsZFRvUGFyYW1ldGVyKGV2ZW50LmNvbnRyb2wpO1xuICAgICAgaWYgKHBhcmFtKSB7XG4gICAgICAgIHRoaXMuc3RvcmVkUXVlcnkucGFyYW1ldGVyLnB1c2gocGFyYW0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rm9ybURhdGEoKSB7XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0LmtleXModGhpcy5lZGl0Rm9ybS5mb3JtLnZhbHVlKTtcbiAgICBsZXQgZGF0YSA9IHt9O1xuXG5cbiAgICBwcm9wZXJ0aWVzLmZvckVhY2gocHJvcGVydHkgPT4ge1xuXG4gICAgICBjb25zdCBmYzogT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyID0gdGhpcy5lZGl0Rm9ybS5mb3JtLmNvbnRyb2xzW3Byb3BlcnR5XSBhcyBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXI7XG4gICAgICBsZXQgZm9ybUVsZW1lbnQ7XG4gICAgICBpZiAoZmMuY29udHJvbHMgJiYgZmMuY29udHJvbHNbcHJvcGVydHldKSB7XG4gICAgICAgIGNvbnN0IGZlOiBPYmplY3RGb3JtQ29udHJvbCA9IGZjLmNvbnRyb2xzW3Byb3BlcnR5XSBhcyBPYmplY3RGb3JtQ29udHJvbDtcbiAgICAgICAgZm9ybUVsZW1lbnQgPSBmZS5fZW9Gb3JtRWxlbWVudDtcbiAgICAgIH1cbiAgICAgIGlmIChmb3JtRWxlbWVudCAmJiBmb3JtRWxlbWVudC5pc05vdFNldFZhbHVlKSB7XG4gICAgICAgIGRhdGFbcHJvcGVydHldID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgc3dpdGNoIChwcm9wZXJ0eSkge1xuICAgICAgICAgIGNhc2UgdGhpcy5GT1JNX0lOUFVUX1RJVExFOiB7XG4gICAgICAgICAgICBkYXRhW3Byb3BlcnR5XSA9IHRoaXMuZWRpdEZvcm0uZm9ybS52YWx1ZVtwcm9wZXJ0eV0gfHwgJyc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSB0aGlzLkZPUk1fSU5QVVRfRlVMTFRFWFQ6IHtcbiAgICAgICAgICAgIGRhdGFbcHJvcGVydHldID0gdGhpcy5lZGl0Rm9ybS5mb3JtLnZhbHVlW3Byb3BlcnR5XVtTdG9yZWRRdWVyaWVzU2VydmljZS5GVUxMVEVYVF0gfHwgJyc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgY29uc3QgdiA9IHRoaXMuZWRpdEZvcm0uZm9ybS52YWx1ZVtwcm9wZXJ0eV1bcHJvcGVydHldO1xuICAgICAgICAgICAgaWYgKCFVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkodikpIHtcbiAgICAgICAgICAgICAgZGF0YVtwcm9wZXJ0eV0gPSB2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGR5bmFtaWMgc3RvcmVkIHF1ZXJ5IHBhcmFtZXRlciBmb3IgYSBmb3JtIGVsZW1lbnRcbiAgICogQHBhcmFtIHFuYW1lIFRoZSBmb3JtIGVsZW1lbnRzIHFuYW1lXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIGZvcm1GaWVsZFRvUGFyYW1ldGVyKHFuYW1lOiBzdHJpbmcpOiBJU3RvcmVkUXVlcnlQYXJhbSB7XG5cbiAgICB0cnkge1xuICAgICAgbGV0IHBhcmFtOiBJU3RvcmVkUXVlcnlQYXJhbTtcbiAgICAgIC8vIHNwZWNpYWwgaGFuZGxpbmcgZm9yIGZ1bGx0ZXh0IGZpZWxkc1xuICAgICAgaWYgKHFuYW1lID09PSBTdG9yZWRRdWVyaWVzU2VydmljZS5GVUxMVEVYVCkge1xuICAgICAgICBwYXJhbSA9IHtcbiAgICAgICAgICBxbmFtZTogcW5hbWUsXG4gICAgICAgICAgdHlwZTogcW5hbWUsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBmYyA9ICgodGhpcy5lZGl0Rm9ybS5mb3JtLmNvbnRyb2xzW3FuYW1lXSBhcyBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIpLmNvbnRyb2xzW3FuYW1lXSBhcyBPYmplY3RGb3JtQ29udHJvbCk7XG4gICAgICAgIGNvbnN0IGZlID0gZmMuX2VvRm9ybUVsZW1lbnQ7XG4gICAgICAgIHBhcmFtID0ge1xuICAgICAgICAgIHFuYW1lOiBmZS5xbmFtZSxcbiAgICAgICAgICB0eXBlOiBmZS50eXBlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gcGFyYW07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldEVkaXRGb3JtKCkge1xuICAgIHRoaXMuZWRpdEZvcm0gPSB7XG4gICAgICBmb3JtOiBudWxsLFxuICAgICAgZnVsbHRleHRGb3JtQ29udHJvbDogbnVsbCxcbiAgICAgIGNvbnRyb2xzOiBbXSxcbiAgICAgIGNvbnRleHRDb250cm9sczogW11cbiAgICB9O1xuICB9XG5cbiAgb25Gb3JtQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRGb3JtXG4gICAgICAuZm9ybVxuICAgICAgLnZhbHVlQ2hhbmdlc1xuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uRm9ybVN0YXR1c0NoYW5nZWQodGhpcy5lZGl0Rm9ybS5mb3JtKSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUVkaXRGb3JtKCkge1xuXG4gICAgdGhpcy5yZXNldEVkaXRGb3JtKCk7XG4gICAgdGhpcy5zZXR1cEZvcm1Db250cm9scygpLnN1YnNjcmliZShfID0+IHtcblxuICAgICAgbGV0IGZvcm0gPSBuZXcgT2JqZWN0Rm9ybUdyb3VwKHt9KTtcbiAgICAgIGxldCBmY1RpdGxlID0gbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgIGZjVGl0bGUuc2V0VmFsdWUodGhpcy5zdG9yZWRRdWVyeS5uYW1lKTtcblxuICAgICAgbGV0IGZjRnVsbHRleHQgPSB0aGlzLnRvRm9ybUNvbnRyb2wodGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZS5nZXRGdWxsdGV4dEZvcm1FbGVtZW50KFxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdG9yZWRxdWVyeS5zZWFyY2gudGVybScpLFxuICAgICAgICB0aGlzLnN0b3JlZFF1ZXJ5LnRlcm1cbiAgICAgICkpO1xuICAgICAgdGhpcy5lZGl0Rm9ybS5mdWxsdGV4dEZvcm1Db250cm9sID0gZmNGdWxsdGV4dDtcblxuICAgICAgLy8gYWRkIHRpdGxlIGFuZCBmdWxsdGV4dCBmaWVsZFxuICAgICAgZm9ybS5hZGRDb250cm9sKHRoaXMuRk9STV9JTlBVVF9USVRMRSwgZmNUaXRsZSk7XG4gICAgICBmb3JtLmFkZENvbnRyb2wodGhpcy5GT1JNX0lOUFVUX0ZVTExURVhULCBmY0Z1bGx0ZXh0KTtcblxuICAgICAgaWYgKHRoaXMuZWRpdEZvcm0uY29udHJvbHMubGVuZ3RoIHx8IHRoaXMuZWRpdEZvcm0uY29udGV4dENvbnRyb2xzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmVkaXRGb3JtLmNvbnRyb2xzXG4gICAgICAgICAgLmZvckVhY2goKGMpID0+IGZvcm0uYWRkQ29udHJvbChjLl9lb0Zvcm1Db250cm9sV3JhcHBlci5jb250cm9sTmFtZSwgYykpO1xuICAgICAgICB0aGlzLmVkaXRGb3JtLmNvbnRleHRDb250cm9sc1xuICAgICAgICAgIC5mb3JFYWNoKChjKSA9PiBmb3JtLmFkZENvbnRyb2woYy5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWUsIGMpKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5lZGl0Rm9ybS5mb3JtID0gZm9ybTtcbiAgICAgIHRoaXMub25Gb3JtQ2hhbmdlcygpO1xuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHNldHVwRm9ybUNvbnRyb2xzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdGFza3MgPSBbXTtcbiAgICAvLyBzZXR0aW5nIHVwIG9iamVjdCB0eXBlIGZvcm0gb25seSBtYWtlcyBzZW5zZSB3aXRoIG9uZSB0YXJnZXQgdHlwZVxuICAgIGlmICh0aGlzLnN0b3JlZFF1ZXJ5LnR5cGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGFza3MucHVzaCh0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0Rm9ybUVsZW1lbnRzRnJvbUZvcm1Nb2RlbCh0aGlzLnN0b3JlZFF1ZXJ5LnR5cGVzWzBdLnFuYW1lLCAnU0VBUkNIJykucGlwZShcbiAgICAgICAgdGFwKChlbGVtZW50czogYW55W10pID0+IHtcbiAgICAgICAgICBlbGVtZW50cy5mb3JFYWNoKGUgPT4ge1xuICAgICAgICAgICAgLy8gcHJldmVudCB0YWJsZXMgYW5kIGJpbmFyeSB0eXBlcyBmcm9tIGJlaW5nIHJlbmRlcmVkIGluIHRoZSBzdG9yZWQgcXVlcnkgZm9ybVxuICAgICAgICAgICAgaWYgKGUudHlwZSAhPT0gJ0JJTkFSWScpIHtcbiAgICAgICAgICAgICAgaWYgKGUucmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICBlLnJlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGUucmVhZG9ubHkpIHtcbiAgICAgICAgICAgICAgICBlLnJlYWRvbmx5ID0gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgZmMgPSB0aGlzLnRvRm9ybUNvbnRyb2woZSk7XG4gICAgICAgICAgICAgIGlmIChmYykge1xuICAgICAgICAgICAgICAgIHRoaXMuZWRpdEZvcm0uY29udHJvbHMucHVzaChmYyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgKSlcbiAgICB9XG4gICAgLy8gYWRkIGNvbnRleHQgZm9ybSBjb250cm9scyBhcyB3ZWxsXG4gICAgaWYgKHRoaXMuc3RvcmVkUXVlcnkuY29udGV4dEZvbGRlclR5cGVzLmxlbmd0aCkge1xuICAgICAgdGFza3MucHVzaCh0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0Rm9ybUVsZW1lbnRzRnJvbUZvcm1Nb2RlbCh0aGlzLnN0b3JlZFF1ZXJ5LmNvbnRleHRGb2xkZXJUeXBlc1swXS5xbmFtZSwgJ1NFQVJDSCcsIHRydWUpLnBpcGUoXG4gICAgICAgIHRhcCgoZWxlbWVudHM6IGFueVtdKSA9PiB7XG4gICAgICAgICAgZWxlbWVudHMuZm9yRWFjaChlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZjID0gdGhpcy50b0Zvcm1Db250cm9sKGUpO1xuICAgICAgICAgICAgaWYgKGZjKSB7XG4gICAgICAgICAgICAgIHRoaXMuZWRpdEZvcm0uY29udGV4dENvbnRyb2xzLnB1c2goZmMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICApKVxuICAgIH1cblxuICAgIHJldHVybiB0YXNrcy5sZW5ndGggPyBmb3JrSm9pbih0YXNrcykgOiBvZih0YXNrcyk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoUm9sZXMoKSB7XG4gICAgaWYgKCF0aGlzLnN5c3RlbVJvbGVzIHx8IHRoaXMuc3lzdGVtUm9sZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnN5c3RlbVNlcnZpY2VcbiAgICAgICAgLmdldFJvbGVzKClcbiAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHRoaXMuc3lzdGVtUm9sZXMgPSByZXM7XG4gICAgICAgICAgdGhpcy5yb2xlc1BpY2tlci5jb2Rlc3lzdGVtID0ge1xuICAgICAgICAgICAgZW50cmllczogdGhpcy5zeXN0ZW1Sb2xlcy5tYXAocm9sZSA9PiAoe1xuICAgICAgICAgICAgICBpZDogcm9sZS5pZCxcbiAgICAgICAgICAgICAgbGFiZWw6IHJvbGUubmFtZSxcbiAgICAgICAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiByb2xlLm5hbWUsXG4gICAgICAgICAgICAgIGRhdGE6IHJvbGUubmFtZVxuICAgICAgICAgICAgfSkpLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnbGFiZWwnKSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGdldFJlc3RyaWN0aW9ucygpOiBSZXN0cmljdGlvbltdIHtcbiAgICBsZXQgcmVzdHJpY3Rpb25zOiBSZXN0cmljdGlvbltdID0gW107XG5cbiAgICAvLyB0eXBlIHJlc3RyaWN0aW9uXG4gICAgaWYgKHRoaXMuc3RvcmVkUXVlcnkudHlwZXMgJiYgdGhpcy5zdG9yZWRRdWVyeS50eXBlcy5sZW5ndGgpIHtcbiAgICAgIHJlc3RyaWN0aW9ucy5wdXNoKHtcbiAgICAgICAgZmllbGQ6IFNlYXJjaFF1ZXJ5LkJBU0VfUEFSQU1TLlRZUEUsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdG9yZWRxdWVyeS5yZXN0cmljdGlvbi50eXBlJyksXG4gICAgICAgIGl0ZW1zOiB0aGlzLnN0b3JlZFF1ZXJ5LnR5cGVzLm1hcCh0ID0+IHQubGFiZWwpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBhZGQgYmFzZSBwYXJhbXMgcmVzdHJpY3Rpb25zXG4gICAgKHRoaXMuc3RvcmVkUXVlcnkuZmlsdGVycyB8fCBbXSkuZm9yRWFjaChmaWx0ZXIgPT4ge1xuICAgICAgaWYgKGZpbHRlciAmJiB+dGhpcy5CQVNFX1BBUkFNU19GSUVMRFMuaW5kZXhPZihmaWx0ZXIucHJvcGVydHkpKSB7XG5cbiAgICAgICAgY29uc3QgZmllbGQgPSBmaWx0ZXIucHJvcGVydHk7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3RvcmVkcXVlcnkucmVzdHJpY3Rpb24uJyArIGZpZWxkKTtcblxuICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgICAgICAgY2FzZSBTZWFyY2hRdWVyeS5CQVNFX1BBUkFNUy5NSU1FVFlQRUdST1VQOlxuICAgICAgICAgICAgcmVzdHJpY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICBmaWVsZCwgbGFiZWwsIGl0ZW1zOiBBcnJheS5pc0FycmF5KGZpbHRlci5maXJzdFZhbHVlKSA/IGZpbHRlci5maXJzdFZhbHVlIDogW2ZpbHRlci5maXJzdFZhbHVlXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFNlYXJjaFF1ZXJ5LkJBU0VfUEFSQU1TLkZJTEVOQU1FOlxuICAgICAgICAgICAgcmVzdHJpY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICBmaWVsZCwgbGFiZWwsIGl0ZW1zOiBbZmlsdGVyLmZpcnN0VmFsdWVdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU2VhcmNoUXVlcnkuQkFTRV9QQVJBTVMuRklMRVNJWkU6XG4gICAgICAgICAgICByZXN0cmljdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgIGZpZWxkLCBsYWJlbCwgaXRlbXM6IFt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zZWFyY2guYWdnLmZpbGVzaXplLicgKyBmaWx0ZXIuZmlyc3RWYWx1ZSldXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU2VhcmNoUXVlcnkuQkFTRV9QQVJBTVMuQ1JFQVRFRDpcbiAgICAgICAgICBjYXNlIFNlYXJjaFF1ZXJ5LkJBU0VfUEFSQU1TLk1PRElGSUVEOlxuICAgICAgICAgICAgcmVzdHJpY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICBmaWVsZCwgbGFiZWwsIGl0ZW1zOiBbdGhpcy5jcmVhdGVEYXRlUmVzdHJpY3Rpb24oZmlsdGVyKV1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBTZWFyY2hRdWVyeS5CQVNFX1BBUkFNUy5DUkVBVE9SOlxuICAgICAgICAgIGNhc2UgU2VhcmNoUXVlcnkuQkFTRV9QQVJBTVMuTU9ESUZJRVI6XG4gICAgICAgICAgICB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uT2JqZWN0cyhmaWx0ZXIuZmlyc3RWYWx1ZSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZShvcmdVc2VycyA9PiByZXN0cmljdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgZmllbGQsIGxhYmVsLCBpdGVtczogb3JnVXNlcnMubWFwKHUgPT4gdS50aXRsZSlcbiAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3RyaWN0aW9ucztcbiAgfVxuXG4gIGNyZWF0ZURhdGVSZXN0cmljdGlvbihmaWx0ZXI6IFNlYXJjaEZpbHRlcikge1xuICAgIHN3aXRjaCAoZmlsdGVyLm9wZXJhdG9yKSB7XG4gICAgICBjYXNlIFNlYXJjaEZpbHRlci5PUEVSQVRPUi5SQU5HRTpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYGVvLnNlYXJjaC5hZ2cudGltZS4ke2ZpbHRlci5maXJzdFZhbHVlfWApO1xuICAgICAgY2FzZSBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuRVFVQUw6XG4gICAgICAgIHJldHVybiBgPSAke3RoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGZpbHRlci5maXJzdFZhbHVlLCAnZW9TaG9ydERhdGUnKX1gO1xuICAgICAgY2FzZSBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuSU5URVJWQUxfSU5DTFVERV9CT1RIOlxuICAgICAgICByZXR1cm4gYCR7dGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZmlsdGVyLmZpcnN0VmFsdWUsICdlb1Nob3J0RGF0ZScpfSAtICR7dGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZmlsdGVyLnNlY29uZFZhbHVlLCAnZW9TaG9ydERhdGUnKX1gO1xuICAgICAgY2FzZSBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuR1JFQVRFUl9PUl9FUVVBTDpcbiAgICAgICAgcmV0dXJuIGAke3RoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNlYXJjaC5hZ2cudGltZS5zcGFuLnNpbmNlJyl9ICR7dGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZmlsdGVyLmZpcnN0VmFsdWUsICdlb1Nob3J0RGF0ZScpfWA7XG4gICAgICBjYXNlIFNlYXJjaEZpbHRlci5PUEVSQVRPUi5MRVNTX09SX0VRVUFMOlxuICAgICAgICByZXR1cm4gYCR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2VhcmNoLmFnZy50aW1lLnNwYW4udW50aWwnKX0gJHt0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShmaWx0ZXIuZmlyc3RWYWx1ZSwgJ2VvU2hvcnREYXRlJyl9YDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBgKCR7ZmlsdGVyLm9wZXJhdG9yfSkgJHt0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShmaWx0ZXIuZmlyc3RWYWx1ZSwgJ2VvU2hvcnREYXRlJyl9YDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGZvcm0gY29udHJvbCBmcm9tIGEgZ2l2ZW4gZm9ybSBlbGVtZW50XG4gICAqIEBwYXJhbSBmb3JtRWxlbWVudFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJpdmF0ZSB0b0Zvcm1Db250cm9sKGZvcm1FbGVtZW50KTogT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyIHtcblxuICAgIC8vIHRoZSBgbmFtZWAgcHJvcGVydHkgb2Ygc3RvcmVkIHF1ZXJ5IGZvcm0gZWxlbWVudCBoYXMgdG8gYmUgYHFuYW1lYCBvZiBmb3JtIGVsZW1lbnQsXG4gICAgLy8gYmVjYXVzZSB3ZSBtYXkgY29tYmluZSBtdWx0aXBsZSBmb3JtcyAoY29udGV4dCBmb3JtKSBhbmQgaW4gdGhpcyBjYXNlIHRoZXJlIG1heVxuICAgIC8vIGJlIGNvbmZsaWN0cyBpbiBuYW1pbmdzXG4gICAgZm9ybUVsZW1lbnQubmFtZSA9IGZvcm1FbGVtZW50LnFuYW1lO1xuXG4gICAgaWYgKGZvcm1FbGVtZW50LnR5cGUgPT09ICdUQUJMRScpIHtcbiAgICAgIGxldCBmaWx0ZXJzID0gdGhpcy5zdG9yZWRRdWVyeS5nZXRUYWJsZUZpbHRlcnMoZm9ybUVsZW1lbnQucW5hbWUpO1xuICAgICAgaWYgKGZpbHRlcnMgJiYgZmlsdGVycy5sZW5ndGgpIHtcbiAgICAgICAgZm9ybUVsZW1lbnQudmFsdWUgPSB0aGlzLnNlYXJjaFNlcnZpY2UudGFibGVGaWx0ZXJzVG9FbGVtZW50VmFsdWUoZmlsdGVycywgZm9ybUVsZW1lbnQuZWxlbWVudHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybUVsZW1lbnQudmFsdWUgPSBbe31dO1xuICAgICAgICBkZWxldGUgZm9ybUVsZW1lbnQuaXNOb3RTZXRWYWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZ3JhYiB2YWx1ZSBmb3IgdGhlIGNvbnRyb2wgZnJvbSBjb3JyZXNwb25kaW5nIHF1ZXJ5IGZpbHRlcnNcbiAgICAgIGxldCBmaWx0ZXIgPSB0aGlzLnN0b3JlZFF1ZXJ5LmdldEZpbHRlcihmb3JtRWxlbWVudC5xbmFtZSk7XG4gICAgICAvLyB3ZSBtYXkgaGF2ZSBwYXJhbXMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIHF1ZXJpZXMgZmlsdGVycy4gVGhpcyBtYXkgYmUgdGhlXG4gICAgICAvLyBjYXNlIHdoZW4gd2UgbWFyayBmb3JtIGVsZW1lbnRzIGFzIGR5bmFtaWMgZmllbGRzIHdpdGhvdXQgcHJvdmlkaW5nIGEgdmFsdWVcbiAgICAgIGlmIChmaWx0ZXIpIHtcblxuICAgICAgICAvLyBmaWx0ZXIgdG8gaGF2ZSBubyB2YWx1ZVxuICAgICAgICBpZiAoZmlsdGVyLm9wZXJhdG9yID09PSBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuRVFVQUwgJiYgZmlsdGVyLmZpcnN0VmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICBmb3JtRWxlbWVudC5pc05vdFNldFZhbHVlID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZWxldGUgZm9ybUVsZW1lbnQuaXNOb3RTZXRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm1FbGVtZW50LnZhbHVlID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmZpbHRlclRvRWxlbWVudFZhbHVlKFxuICAgICAgICAgIHRoaXMuc3RvcmVkUXVlcnkuZ2V0RmlsdGVyKGZvcm1FbGVtZW50LnFuYW1lKSxcbiAgICAgICAgICBmb3JtRWxlbWVudC50eXBlXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKGZvcm1FbGVtZW50LnFuYW1lICE9PSBTdG9yZWRRdWVyaWVzU2VydmljZS5GVUxMVEVYVCkge1xuICAgICAgICBmb3JtRWxlbWVudC52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgZGVsZXRlIGZvcm1FbGVtZW50LmlzTm90U2V0VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIHN5bmMgd2l0aCBwYXJhbXNcbiAgICBjb25zdCBtYXRjaDogYW55ID0gdGhpcy5zdG9yZWRRdWVyeS5wYXJhbWV0ZXIuZmluZChwYXJhbSA9PiB7XG4gICAgICByZXR1cm4gKHBhcmFtLnFuYW1lID09PSBmb3JtRWxlbWVudC5xbmFtZSkgfHwgKHBhcmFtLnR5cGUgPT09IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLkZVTExURVhUICYmIGZvcm1FbGVtZW50LnFuYW1lID09PSBTdG9yZWRRdWVyaWVzU2VydmljZS5GVUxMVEVYVClcbiAgICB9KTtcbiAgICAvLyBldmVyeSBmaWVsZCB0aGF0IGlzIHBhcnQgb2YgdGhlIHBhcmFtcyBpcyBzdXBwb3NlZCB0byBiZSBkeW5hbWljXG4gICAgZm9ybUVsZW1lbnQuX2R5bmFtaWMgPSAhIW1hdGNoO1xuXG4gICAgLy8gY3JlYXRlIGFjdHVhbCBmb3JtIGNvbnRyb2wgdGhhdCBjb3VsZCBiZSB1c2VkIHdpdGhcbiAgICAvLyBGb3JtRWxlbWVudENvbXBvbmVudCB0byB0aGVuIHJlbmRlciBmb3IgZWxlbWVudHNcbiAgICAvLyB3cmFwcGVyIG1heSBiZSBudWxsIGluIGNhc2Ugb2YgYW4gZXJyb3JcbiAgICByZXR1cm4gdGhpcy5mb3JtSGVscGVyU2VydmljZS5lbGVtZW50VG9Gb3JtQ29udHJvbChmb3JtRWxlbWVudCwgJ1NFQVJDSCcpO1xuICB9XG5cbiAgb25TdG9yZWRRdWVyeUxvYWRlZCgpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ3NlYXJjaCd9fV0pO1xuICB9XG5cbiAgb25TdG9yZWRRdWVyeUV4ZWN1dGUoZXZ0KSB7XG4gICAgY29uc3QgdXJpUGFyYW0gPSBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZXZ0LnF1ZXJ5SnNvbikpO1xuICAgIGNvbnN0IHVyaVBhcmFtUXVlcnk6IE5hdmlnYXRpb25FeHRyYXMgPSB7cXVlcnlQYXJhbXM6IHsncXVlcnknOiB1cmlQYXJhbX19O1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Jlc3VsdCddLCB1cmlQYXJhbVF1ZXJ5KTtcbiAgfVxuXG4gIHNldEljb25UaXRsZXMoKSB7XG4gICAgdGhpcy5pY29uVGl0bGVzID0ge1xuICAgICAgc2hhcmU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN0b3JlZHF1ZXJ5LnNoYXJlLnRpdGxlJyksXG4gICAgICBzaGFyZWQ6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN0b3JlZHF1ZXJ5LnNoYXJlZGZvci50aXRsZScpLFxuICAgICAgZmF2b3I6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN0b3JlZHF1ZXJ5LmZhdm9yLnRpdGxlJyksXG4gICAgICBmYXZvcmVkOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdG9yZWRxdWVyeS5mYXZvcmVkZm9yLnRpdGxlJylcbiAgICB9XG4gIH1cblxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKHEgPT4ge1xuICAgICAgICB0aGlzLnF1ZXJ5ID0gcTtcbiAgICAgIH0pO1xuICAgIHRoaXMuc2V0SWNvblRpdGxlcygpO1xuICB9XG5cbiAgdHJhY2tCeVFOYW1lKGluZGV4LCBpdGVtKSB7XG4gICAgcmV0dXJuIGl0ZW0ucW5hbWU7XG4gIH1cblxuICB0cmFja0J5SW5kZXgoaW5kZXgsIGl0ZW0pIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cbn1cbiJdfQ==
496
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkLXF1ZXJ5LWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvc3RvcmVkLXF1ZXJ5L3N0b3JlZC1xdWVyeS1kZXRhaWxzL3N0b3JlZC1xdWVyeS1kZXRhaWxzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFhLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFRLFVBQVUsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUFtQixNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsV0FBVyxFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXZELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9FQUFvRSxDQUFDO0FBQ3pHLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUNoRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFJakYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDeEYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUVMLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsWUFBWSxFQUNaLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUViLFdBQVcsRUFFWCxLQUFLLEVBQ0wsYUFBYSxFQUVkLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFD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LE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQztTQUNuRSxDQUFBO0lBQ0gsQ0FBQztJQUdELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07YUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQzthQUN6QyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ3RCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7O1lBamlCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsNGlOQUFvRDs7YUFFckQ7OztZQWxDeUIsTUFBTTtZQXdCOUIsYUFBYTtZQUhiLFdBQVc7WUFGWCxhQUFhO1lBVFAsZ0JBQWdCO1lBUGhCLHFCQUFxQjtZQVkzQixvQkFBb0I7WUFWZCx1QkFBdUI7WUFOMEMsVUFBVTtZQW1CakYsZ0JBQWdCOzs7OEJBeUJmLFNBQVMsU0FBQyxpQkFBaUI7b0JBa0IzQixLQUFLO3lCQUtMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3Rha2VVbnRpbCwgc3dpdGNoTWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBUeXBlLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkV4dHJhcywgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYmplY3RGb3JtQ29udHJvbFdyYXBwZXJ9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtL29iamVjdC1mb3JtLWNvbnRyb2wtd3JhcHBlcic7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7T2JqZWN0Rm9ybUdyb3VwfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1ncm91cCc7XG5pbXBvcnQge09iamVjdEZvcm1IZWxwZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQge0xvY2FsZURhdGVQaXBlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9waXBlcy9sb2NhbGUtZGF0ZS5waXBlJztcbmltcG9ydCB7T2JqZWN0Rm9ybUNvbnRyb2x9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtL29iamVjdC1mb3JtL29iamVjdC1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHtFZGl0Rm9ybSwgTm90aWZ5TGlzdCwgUmVzdHJpY3Rpb259IGZyb20gJy4uL3N0b3JlZC1xdWVyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtTdG9yZWRRdWVyeUNvbXBvbmVudH0gZnJvbSAnLi4vc3RvcmVkLXF1ZXJ5L3N0b3JlZC1xdWVyeS5jb21wb25lbnQnO1xuaW1wb3J0IHtTZWxlY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWxlY3Rpb24vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtVbnN1YnNjcmliZU9uRGVzdHJveX0gZnJvbSAnLi4vLi4vdXRpbC91bnN1YnNjcmliZS91bnN1YnNjcmliZS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgSVN0b3JlZFF1ZXJ5UGFyYW0sXG4gIFN0b3JlZFF1ZXJ5LFxuICBTdG9yZWRRdWVyaWVzU2VydmljZSxcbiAgU2VhcmNoRmlsdGVyLFxuICBTZWFyY2hRdWVyeSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgU3lzdGVtU2VydmljZSxcbiAgUmFuZ2VWYWx1ZSxcbiAgVXNlclNlcnZpY2UsXG4gIE9yZ1JvbGUsXG4gIFV0aWxzLFxuICBTZWFyY2hTZXJ2aWNlLFxuICBRdWVyeVNjb3BlXG59IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1V0aWxpdGllc1NlcnZpY2V9IGZyb20gJy4uLy4uL3V0aWwvc2VydmljZXMvdXRpbGl0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHtmb3JrSm9pbiwgb2YsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1zdG9yZWQtcXVlcnktZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdG9yZWQtcXVlcnktZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0b3JlZC1xdWVyeS1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU3RvcmVkUXVlcnlEZXRhaWxzQ29tcG9uZW50IGV4dGVuZHMgVW5zdWJzY3JpYmVPbkRlc3Ryb3kgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHByaXZhdGUgRk9STV9JTlBVVF9USVRMRSA9ICdzdG9yZWRRdWVyeVRpdGxlJztcbiAgcHJpdmF0ZSBGT1JNX0lOUFVUX0ZVTExURVhUID0gJ3N0b3JlZFF1ZXJ5RnVsbHRleHQnO1xuICBwcml2YXRlIEJBU0VfUEFSQU1TX0ZJRUxEUyA9IE9iamVjdC5rZXlzKFNlYXJjaFF1ZXJ5LkJBU0VfUEFSQU1TKS5tYXAoayA9PiBTZWFyY2hRdWVyeS5CQVNFX1BBUkFNU1trXSk7XG4gIHByaXZhdGUgZGF0ZVBpcGU6IExvY2FsZURhdGVQaXBlO1xuICBwcml2YXRlIHBlbmRpbmdUYXNrSWQ6IHN0cmluZztcblxuICBAVmlld0NoaWxkKCdzdG9yZWRRdWVyeUZvcm0nKSBzdG9yZWRRdWVyeUZvcm06IFN0b3JlZFF1ZXJ5Q29tcG9uZW50O1xuXG4gIGljb25UaXRsZXM6IGFueTtcbiAgc3RvcmVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuICBxdWVyeVNjb3BlOiBRdWVyeVNjb3BlO1xuICBlZGl0Rm9ybTogRWRpdEZvcm07XG4gIHJlc3RyaWN0aW9uczogUmVzdHJpY3Rpb25bXTtcbiAgZWRpdGluZ1NoYXJlOiBib29sZWFuO1xuICBpc05ld1F1ZXJ5OiBib29sZWFuO1xuICBpc093blF1ZXJ5OiBib29sZWFuO1xuICBlbmFibGVTaGFyaW5nOiBib29sZWFuO1xuICBzeXN0ZW1Sb2xlczogT3JnUm9sZVtdO1xuICByb2xlc1BpY2tlciA9IHtcbiAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3RvcmVkcXVlcnkucm9sZXMnKSxcbiAgICBjb2Rlc3lzdGVtOiBudWxsLFxuICAgIHZhbHVlOiBudWxsXG4gIH07XG5cbiAgQElucHV0KClcbiAgc2V0IHF1ZXJ5KHE6IFN0b3JlZFF1ZXJ5KSB7XG4gICAgdGhpcy5zZXRRdWVyeShxKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBub3RpZnlMaXN0OiBFdmVudEVtaXR0ZXI8Tm90aWZ5TGlzdD4gPSBuZXcgRXZlbnRFbWl0dGVyPE5vdGlmeUxpc3Q+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzeXN0ZW1TZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlZFF1ZXJpZXNTZXJ2aWNlOiBTdG9yZWRRdWVyaWVzU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1IZWxwZXJTZXJ2aWNlOiBPYmplY3RGb3JtSGVscGVyU2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1SZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5kYXRlUGlwZSA9IG5ldyBMb2NhbGVEYXRlUGlwZSh0cmFuc2xhdGUpO1xuICAgIHRoaXMuZmV0Y2hSb2xlcygpO1xuICB9XG5cbiAgcHVibGljIHNldFF1ZXJ5U2NvcGUoc2NvcGU6IFF1ZXJ5U2NvcGUpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJ5LnNjb3BlID0gc2NvcGU7XG4gICAgdGhpcy5xdWVyeVNjb3BlID0gc2NvcGU7XG4gIH1cblxuICBzZXRRdWVyeShxOiBTdG9yZWRRdWVyeSkge1xuICAgIHRoaXMuZWRpdGluZ1NoYXJlID0gZmFsc2U7XG4gICAgdGhpcy5yZXNldEVkaXRGb3JtKCk7XG4gICAgLy8gZ3JhYiBtZXRhIGluZm9ybWF0aW9uIGFib3V0IHRoZSBxdWVyeVxuICAgIHRoaXMuc3RvcmVkUXVlcnkgPSBxO1xuICAgIGlmIChxIGluc3RhbmNlb2YgU3RvcmVkUXVlcnkpIHtcbiAgICAgIHRoaXMucXVlcnlTY29wZSA9IHEuc2NvcGU7XG4gICAgICBjb25zdCB1c2VyID0gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpO1xuICAgICAgdGhpcy5pc05ld1F1ZXJ5ID0gcS5pc05ldygpO1xuICAgICAgdGhpcy5pc093blF1ZXJ5ID0gdGhpcy5pc05ld1F1ZXJ5IHx8IHEudXNlci50b0xvd2VyQ2FzZSgpID09PSB1c2VyLm5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIHRoaXMucmVzdHJpY3Rpb25zID0gdGhpcy5nZXRSZXN0cmljdGlvbnMoKTtcbiAgICAgIHRoaXMucm9sZXNQaWNrZXIudmFsdWUgPSBxLnJvbGVzO1xuICAgICAgdGhpcy5lbmFibGVTaGFyaW5nID0gdXNlci5oYXNQcml2aWxlZ2UoJ1NIQVJFX1NUT1JFRF9RVUVSSUVTJykgJiYgdGhpcy5pc093blF1ZXJ5ICYmICF0aGlzLmlzTmV3UXVlcnk7XG5cbiAgICAgIGlmIChxLmlzTmV3KCkpIHtcbiAgICAgICAgdGhpcy5zdG9yZWRRdWVyeS5uYW1lID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2VhcmNoLnN0b3JlZHF1ZXJpZXMubmV3LnRpdGxlJyk7XG4gICAgICAgIHRoaXMuZWRpdCgpO1xuICAgICAgICB0aGlzLnN0YXJ0UGVuZGluZygpO1xuICAgICAgICB0aGlzLm5vdGlmeUxpc3QuZW1pdCh7dW5zZWxlY3Q6IHRydWUsIHVwZGF0ZTogZmFsc2V9KTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lbGVtUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW25hbWU9XCJzdG9yZWRRdWVyeVRpdGxlXCJdJykuZm9jdXMoKVxuICAgICAgICB9LDUwMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFBlbmRpbmcoKSB7XG4gICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKHRoaXMucGVuZGluZ1Rhc2tJZCB8fCAnICcpKSB7XG4gICAgICB0aGlzLnBlbmRpbmdUYXNrSWQgPSB0aGlzLnBlbmRpbmdDaGFuZ2VzLnN0YXJ0VGFzaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluaXNoUGVuZGluZygpIHtcbiAgICB0aGlzLnBlbmRpbmdDaGFuZ2VzLmZpbmlzaFRhc2sodGhpcy5wZW5kaW5nVGFza0lkKTtcbiAgfVxuXG4gIGVkaXQoKSB7XG4gICAgaWYgKCF0aGlzLmVkaXRGb3JtLmZvcm0pIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNyZWF0ZUVkaXRGb3JtKCk7XG4gICAgICAgIHRoaXMubm90aWZ5TGlzdC5lbWl0KHt1bnNlbGVjdDogZmFsc2UsIHVwZGF0ZTogdHJ1ZX0pO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgb25Gb3JtU3RhdHVzQ2hhbmdlZChmb3JtU3RhdGUpIHtcbiAgICBmb3JtU3RhdGUuZGlydHkgPyB0aGlzLnN0YXJ0UGVuZGluZygpIDogdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gIH1cblxuICB0b2dnbGVTaGFyZUVkaXQoKSB7XG4gICAgdGhpcy5lZGl0aW5nU2hhcmUgPSAhdGhpcy5lZGl0aW5nU2hhcmU7XG4gIH1cblxuICBzaGFyZSgpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJ5LnJvbGVzID0gdGhpcy5yb2xlc1BpY2tlci52YWx1ZTtcbiAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTZXJ2aWNlLnNhdmVTdG9yZWRRdWVyeSh0aGlzLnN0b3JlZFF1ZXJ5KS5zdWJzY3JpYmUoXG4gICAgICBfID0+IHtcbiAgICAgIH0sIFV0aWxzLnRocm93KG51bGwsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNlYXJjaC5zdG9yZWRxdWVyeS5zYXZlLmVycm9yJykpXG4gICAgKTtcbiAgICB0aGlzLmVkaXRpbmdTaGFyZSA9IGZhbHNlO1xuICB9XG5cbiAgY2FuY2VsU2hhcmUoKSB7XG4gICAgdGhpcy5yb2xlc1BpY2tlci52YWx1ZSA9IHRoaXMuc3RvcmVkUXVlcnkucm9sZXM7XG4gICAgdGhpcy5lZGl0aW5nU2hhcmUgPSBmYWxzZTtcbiAgfVxuXG4gIGRlbGV0ZSgpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTZXJ2aWNlXG4gICAgICAucmVtb3ZlU3RvcmVkUXVlcnkodGhpcy5zdG9yZWRRdWVyeS5pZClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnF1ZXJ5ID0gbnVsbDtcbiAgICAgICAgdGhpcy5ub3RpZnlMaXN0LmVtaXQoe3Vuc2VsZWN0OiBmYWxzZSwgdXBkYXRlOiBmYWxzZX0pO1xuICAgICAgfSwgVXRpbHMudGhyb3cobnVsbCwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2VhcmNoLnN0b3JlZHF1ZXJ5LmRlbGV0ZS5lcnJvcicpKSk7XG4gIH1cblxuICB0b2dnbGVGYXZvcml0ZVN0YXRlKCkge1xuICAgIHRoaXMuc3RvcmVkUXVlcnkuZmF2b3JpdGUgPSAhdGhpcy5zdG9yZWRRdWVyeS5mYXZvcml0ZTtcbiAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTZXJ2aWNlXG4gICAgICAuc2F2ZVN0b3JlZFF1ZXJ5KHRoaXMuc3RvcmVkUXVlcnkpXG4gICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgfSwgVXRpbHMudGhyb3cobnVsbCwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2VhcmNoLnN0b3JlZHF1ZXJ5LnNhdmUuZXJyb3InKSkpO1xuICB9XG5cbiAgY2FuY2VsRWRpdCgpIHtcbiAgICB0aGlzLnJlc2V0RWRpdEZvcm0oKTtcbiAgICB0aGlzLmZpbmlzaFBlbmRpbmcoKTtcbiAgICBpZiAodGhpcy5zdG9yZWRRdWVyeS5pc05ldygpKSB7XG4gICAgICB0aGlzLnF1ZXJ5ID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5ub3RpZnlMaXN0LmVtaXQoe3Vuc2VsZWN0OiBmYWxzZSwgdXBkYXRlOiBmYWxzZSwgcGF5bG9hZDogdGhpcy5zdG9yZWRRdWVyeX0pO1xuICB9XG5cbiAgc2V0UXVlcnlUb0FwcFNlYXJjaCgpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJ5Rm9ybS5sb2FkKCk7XG4gIH1cblxuICBleGVjdXRlUXVlcnkoKSB7XG4gICAgdGhpcy5zdG9yZWRRdWVyeUZvcm0uZXhlY3V0ZSgpO1xuICB9XG5cbiAgLy8gU2F2ZSB0aGUgY3VycmVudCBzdG9yZWQgcXVlcnlcbiAgdXBkYXRlU3RvcmVkUXVlcnkoKSB7XG5cbiAgICBjb25zdCBmb3JtRGF0YSA9IHRoaXMuZ2V0Rm9ybURhdGEoKTtcbiAgICB0aGlzLnN0b3JlZFF1ZXJ5LmZpbHRlcnMgPSB0aGlzLnN0b3JlZFF1ZXJ5LmZpbHRlcnMuZmlsdGVyKGYgPT4gfnRoaXMuQkFTRV9QQVJBTVNfRklFTERTLmluZGV4T2YoZi5wcm9wZXJ0eSkpO1xuICAgIE9iamVjdC5rZXlzKGZvcm1EYXRhKVxuICAgICAgLmZvckVhY2goayA9PiB7XG4gICAgICAgIGlmIChrID09PSB0aGlzLkZPUk1fSU5QVVRfVElUTEUpIHtcbiAgICAgICAgICB0aGlzLnN0b3JlZFF1ZXJ5Lm5hbWUgPSBmb3JtRGF0YVtrXTtcbiAgICAgICAgfSBlbHNlIGlmIChrID09PSB0aGlzLkZPUk1fSU5QVVRfRlVMTFRFWFQpIHtcbiAgICAgICAgICB0aGlzLnN0b3JlZFF1ZXJ5LnRlcm0gPSBmb3JtRGF0YVtrXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgZmlsdGVyczogU2VhcmNoRmlsdGVyW10gPSB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0U2VhcmNoRmlsdGVyKHRoaXMuc3RvcmVkUXVlcnkudHlwZXMsIGssIGZvcm1EYXRhW2tdKTtcbiAgICAgICAgICBmaWx0ZXJzLmZvckVhY2goZiA9PiB0aGlzLnN0b3JlZFF1ZXJ5LmFkZEZpbHRlcihmKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZVxuICAgICAgLnNhdmVTdG9yZWRRdWVyeSh0aGlzLnN0b3JlZFF1ZXJ5KVxuICAgICAgLnN1YnNjcmliZSh1cGRhdGVkU3RvcmVkUXVlcnkgPT4ge1xuICAgICAgICB0aGlzLnF1ZXJ5ID0gdXBkYXRlZFN0b3JlZFF1ZXJ5O1xuICAgICAgICB0aGlzLnJlc2V0RWRpdEZvcm0oKTtcbiAgICAgICAgdGhpcy5maW5pc2hQZW5kaW5nKCk7XG4gICAgICAgIHRoaXMubm90aWZ5TGlzdC5lbWl0KHt1bnNlbGVjdDogZmFsc2UsIHVwZGF0ZTogZmFsc2UsIHBheWxvYWQ6IHVwZGF0ZWRTdG9yZWRRdWVyeX0pO1xuICAgICAgfSwgVXRpbHMudGhyb3cobnVsbCwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2VhcmNoLnN0b3JlZHF1ZXJ5LnNhdmUuZXJyb3InKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSBmb3JtIGVsZW1lbnRzIHRvIGJlIGEgZHluYW1pYyBwYXJhbWV0ZXIgb3Igbm90XG4gICAqIEBwYXJhbSBldmVudFxuICAgKi9cbiAgcGFyYW1ldGVyQ2hhbmdlZChldmVudDoge2NvbnRyb2w6IHN0cmluZywgdmFsdWU6IGJvb2xlYW59KSB7XG5cbiAgICBsZXQgbSA9IHRoaXMuc3RvcmVkUXVlcnkucGFyYW1ldGVyLmZpbmQocCA9PiBwLnFuYW1lID09PSBldmVudC5jb250cm9sKTtcbiAgICBpZiAobSAmJiAhZXZlbnQudmFsdWUpIHtcbiAgICAgIC8vIHJlbW92ZSBleGlzdGluZyBwYXJhbWV0ZXJcbiAgICAgIHRoaXMuc3RvcmVkUXVlcnkucGFyYW1ldGVyID0gdGhpcy5zdG9yZWRRdWVyeS5wYXJhbWV0ZXIuZmlsdGVyKHAgPT4gcC5xbmFtZSAhPT0gZXZlbnQuY29udHJvbCk7XG4gICAgfSBlbHNlIGlmICghbSAmJiBldmVudC52YWx1ZSkge1xuICAgICAgLy8gYWRkIHBhcmFtZXRlciBlbGVtZW50XG4gICAgICBsZXQgcGFyYW0gPSB0aGlzLmZvcm1GaWVsZFRvUGFyYW1ldGVyKGV2ZW50LmNvbnRyb2wpO1xuICAgICAgaWYgKHBhcmFtKSB7XG4gICAgICAgIHRoaXMuc3RvcmVkUXVlcnkucGFyYW1ldGVyLnB1c2gocGFyYW0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rm9ybURhdGEoKSB7XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0LmtleXModGhpcy5lZGl0Rm9ybS5mb3JtLnZhbHVlKTtcbiAgICBsZXQgZGF0YSA9IHt9O1xuXG5cbiAgICBwcm9wZXJ0aWVzLmZvckVhY2gocHJvcGVydHkgPT4ge1xuXG4gICAgICBjb25zdCBmYzogT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyID0gdGhpcy5lZGl0Rm9ybS5mb3JtLmNvbnRyb2xzW3Byb3BlcnR5XSBhcyBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXI7XG4gICAgICBsZXQgZm9ybUVsZW1lbnQ7XG4gICAgICBpZiAoZmMuY29udHJvbHMgJiYgZmMuY29udHJvbHNbcHJvcGVydHldKSB7XG4gICAgICAgIGNvbnN0IGZlOiBPYmplY3RGb3JtQ29udHJvbCA9IGZjLmNvbnRyb2xzW3Byb3BlcnR5XSBhcyBPYmplY3RGb3JtQ29udHJvbDtcbiAgICAgICAgZm9ybUVsZW1lbnQgPSBmZS5fZW9Gb3JtRWxlbWVudDtcbiAgICAgIH1cbiAgICAgIGlmIChmb3JtRWxlbWVudCAmJiBmb3JtRWxlbWVudC5pc05vdFNldFZhbHVlKSB7XG4gICAgICAgIGRhdGFbcHJvcGVydHldID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgc3dpdGNoIChwcm9wZXJ0eSkge1xuICAgICAgICAgIGNhc2UgdGhpcy5GT1JNX0lOUFVUX1RJVExFOiB7XG4gICAgICAgICAgICBkYXRhW3Byb3BlcnR5XSA9IHRoaXMuZWRpdEZvcm0uZm9ybS52YWx1ZVtwcm9wZXJ0eV0gfHwgJyc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSB0aGlzLkZPUk1fSU5QVVRfRlVMTFRFWFQ6IHtcbiAgICAgICAgICAgIGRhdGFbcHJvcGVydHldID0gdGhpcy5lZGl0Rm9ybS5mb3JtLnZhbHVlW3Byb3BlcnR5XVtTdG9yZWRRdWVyaWVzU2VydmljZS5GVUxMVEVYVF0gfHwgJyc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgY29uc3QgdiA9IHRoaXMuZWRpdEZvcm0uZm9ybS52YWx1ZVtwcm9wZXJ0eV1bcHJvcGVydHldO1xuICAgICAgICAgICAgaWYgKCFVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkodikpIHtcbiAgICAgICAgICAgICAgZGF0YVtwcm9wZXJ0eV0gPSB2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGR5bmFtaWMgc3RvcmVkIHF1ZXJ5IHBhcmFtZXRlciBmb3IgYSBmb3JtIGVsZW1lbnRcbiAgICogQHBhcmFtIHFuYW1lIFRoZSBmb3JtIGVsZW1lbnRzIHFuYW1lXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIGZvcm1GaWVsZFRvUGFyYW1ldGVyKHFuYW1lOiBzdHJpbmcpOiBJU3RvcmVkUXVlcnlQYXJhbSB7XG5cbiAgICB0cnkge1xuICAgICAgbGV0IHBhcmFtOiBJU3RvcmVkUXVlcnlQYXJhbTtcbiAgICAgIC8vIHNwZWNpYWwgaGFuZGxpbmcgZm9yIGZ1bGx0ZXh0IGZpZWxkc1xuICAgICAgaWYgKHFuYW1lID09PSBTdG9yZWRRdWVyaWVzU2VydmljZS5GVUxMVEVYVCkge1xuICAgICAgICBwYXJhbSA9IHtcbiAgICAgICAgICBxbmFtZTogcW5hbWUsXG4gICAgICAgICAgdHlwZTogcW5hbWUsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBmYyA9ICgodGhpcy5lZGl0Rm9ybS5mb3JtLmNvbnRyb2xzW3FuYW1lXSBhcyBPYmplY3RGb3JtQ29udHJvbFdyYXBwZXIpLmNvbnRyb2xzW3FuYW1lXSBhcyBPYmplY3RGb3JtQ29udHJvbCk7XG4gICAgICAgIGNvbnN0IGZlID0gZmMuX2VvRm9ybUVsZW1lbnQ7XG4gICAgICAgIHBhcmFtID0ge1xuICAgICAgICAgIHFuYW1lOiBmZS5xbmFtZSxcbiAgICAgICAgICB0eXBlOiBmZS50eXBlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gcGFyYW07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldEVkaXRGb3JtKCkge1xuICAgIHRoaXMuZWRpdEZvcm0gPSB7XG4gICAgICBmb3JtOiBudWxsLFxuICAgICAgZnVsbHRleHRGb3JtQ29udHJvbDogbnVsbCxcbiAgICAgIGNvbnRyb2xzOiBbXSxcbiAgICAgIGNvbnRleHRDb250cm9sczogW11cbiAgICB9O1xuICB9XG5cbiAgb25Gb3JtQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRGb3JtXG4gICAgICAuZm9ybVxuICAgICAgLnZhbHVlQ2hhbmdlc1xuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uRm9ybVN0YXR1c0NoYW5nZWQodGhpcy5lZGl0Rm9ybS5mb3JtKSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUVkaXRGb3JtKCkge1xuXG4gICAgdGhpcy5yZXNldEVkaXRGb3JtKCk7XG4gICAgdGhpcy5zZXR1cEZvcm1Db250cm9scygpLnN1YnNjcmliZShfID0+IHtcblxuICAgICAgbGV0IGZvcm0gPSBuZXcgT2JqZWN0Rm9ybUdyb3VwKHt9KTtcbiAgICAgIGxldCBmY1RpdGxlID0gbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgIGZjVGl0bGUuc2V0VmFsdWUodGhpcy5zdG9yZWRRdWVyeS5uYW1lKTtcblxuICAgICAgbGV0IGZjRnVsbHRleHQgPSB0aGlzLnRvRm9ybUNvbnRyb2wodGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZS5nZXRGdWxsdGV4dEZvcm1FbGVtZW50KFxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdG9yZWRxdWVyeS5zZWFyY2gudGVybScpLFxuICAgICAgICB0aGlzLnN0b3JlZFF1ZXJ5LnRlcm1cbiAgICAgICkpO1xuICAgICAgdGhpcy5lZGl0Rm9ybS5mdWxsdGV4dEZvcm1Db250cm9sID0gZmNGdWxsdGV4dDtcblxuICAgICAgLy8gYWRkIHRpdGxlIGFuZCBmdWxsdGV4dCBmaWVsZFxuICAgICAgZm9ybS5hZGRDb250cm9sKHRoaXMuRk9STV9JTlBVVF9USVRMRSwgZmNUaXRsZSk7XG4gICAgICBmb3JtLmFkZENvbnRyb2wodGhpcy5GT1JNX0lOUFVUX0ZVTExURVhULCBmY0Z1bGx0ZXh0KTtcblxuICAgICAgaWYgKHRoaXMuZWRpdEZvcm0uY29udHJvbHMubGVuZ3RoIHx8IHRoaXMuZWRpdEZvcm0uY29udGV4dENvbnRyb2xzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmVkaXRGb3JtLmNvbnRyb2xzXG4gICAgICAgICAgLmZvckVhY2goKGMpID0+IGZvcm0uYWRkQ29udHJvbChjLl9lb0Zvcm1Db250cm9sV3JhcHBlci5jb250cm9sTmFtZSwgYykpO1xuICAgICAgICB0aGlzLmVkaXRGb3JtLmNvbnRleHRDb250cm9sc1xuICAgICAgICAgIC5mb3JFYWNoKChjKSA9PiBmb3JtLmFkZENvbnRyb2woYy5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWUsIGMpKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5lZGl0Rm9ybS5mb3JtID0gZm9ybTtcbiAgICAgIHRoaXMub25Gb3JtQ2hhbmdlcygpO1xuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHNldHVwRm9ybUNvbnRyb2xzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdGFza3MgPSBbXTtcbiAgICAvLyBzZXR0aW5nIHVwIG9iamVjdCB0eXBlIGZvcm0gb25seSBtYWtlcyBzZW5zZSB3aXRoIG9uZSB0YXJnZXQgdHlwZVxuICAgIGlmICh0aGlzLnN0b3JlZFF1ZXJ5LnR5cGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGFza3MucHVzaCh0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0Rm9ybUVsZW1lbnRzRnJvbUZvcm1Nb2RlbCh0aGlzLnN0b3JlZFF1ZXJ5LnR5cGVzWzBdLnFuYW1lLCAnU0VBUkNIJykucGlwZShcbiAgICAgICAgdGFwKChlbGVtZW50czogYW55W10pID0+IHtcbiAgICAgICAgICBlbGVtZW50cy5mb3JFYWNoKGUgPT4ge1xuICAgICAgICAgICAgLy8gcHJldmVudCB0YWJsZXMgYW5kIGJpbmFyeSB0eXBlcyBmcm9tIGJlaW5nIHJlbmRlcmVkIGluIHRoZSBzdG9yZWQgcXVlcnkgZm9ybVxuICAgICAgICAgICAgaWYgKGUudHlwZSAhPT0gJ0JJTkFSWScpIHtcbiAgICAgICAgICAgICAgaWYgKGUucmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICBlLnJlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGUucmVhZG9ubHkpIHtcbiAgICAgICAgICAgICAgICBlLnJlYWRvbmx5ID0gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgZmMgPSB0aGlzLnRvRm9ybUNvbnRyb2woZSk7XG4gICAgICAgICAgICAgIGlmIChmYykge1xuICAgICAgICAgICAgICAgIHRoaXMuZWRpdEZvcm0uY29udHJvbHMucHVzaChmYyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgKSlcbiAgICB9XG4gICAgLy8gYWRkIGNvbnRleHQgZm9ybSBjb250cm9scyBhcyB3ZWxsXG4gICAgaWYgKHRoaXMuc3RvcmVkUXVlcnkuY29udGV4dEZvbGRlclR5cGVzLmxlbmd0aCkge1xuICAgICAgdGFza3MucHVzaCh0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0Rm9ybUVsZW1lbnRzRnJvbUZvcm1Nb2RlbCh0aGlzLnN0b3JlZFF1ZXJ5LmNvbnRleHRGb2xkZXJUeXBlc1swXS5xbmFtZSwgJ1NFQVJDSCcsIHRydWUpLnBpcGUoXG4gICAgICAgIHRhcCgoZWxlbWVudHM6IGFueVtdKSA9PiB7XG4gICAgICAgICAgZWxlbWVudHMuZm9yRWFjaChlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZjID0gdGhpcy50b0Zvcm1Db250cm9sKGUpO1xuICAgICAgICAgICAgaWYgKGZjKSB7XG4gICAgICAgICAgICAgIHRoaXMuZWRpdEZvcm0uY29udGV4dENvbnRyb2xzLnB1c2goZmMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICApKVxuICAgIH1cblxuICAgIHJldHVybiB0YXNrcy5sZW5ndGggPyBmb3JrSm9pbih0YXNrcykgOiBvZih0YXNrcyk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoUm9sZXMoKSB7XG4gICAgaWYgKCF0aGlzLnN5c3RlbVJvbGVzIHx8IHRoaXMuc3lzdGVtUm9sZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnN5c3RlbVNlcnZpY2VcbiAgICAgICAgLmdldFJvbGVzKClcbiAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHRoaXMuc3lzdGVtUm9sZXMgPSByZXM7XG4gICAgICAgICAgdGhpcy5yb2xlc1BpY2tlci5jb2Rlc3lzdGVtID0ge1xuICAgICAgICAgICAgZW50cmllczogdGhpcy5zeXN0ZW1Sb2xlcy5tYXAocm9sZSA9PiAoe1xuICAgICAgICAgICAgICBpZDogcm9sZS5pZCxcbiAgICAgICAgICAgICAgbGFiZWw6IHJvbGUubmFtZSxcbiAgICAgICAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiByb2xlLm5hbWUsXG4gICAgICAgICAgICAgIGRhdGE6IHJvbGUubmFtZVxuICAgICAgICAgICAgfSkpLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnbGFiZWwnKSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGdldFJlc3RyaWN0aW9ucygpOiBSZXN0cmljdGlvbltdIHtcbiAgICBsZXQgcmVzdHJpY3Rpb25zOiBSZXN0cmljdGlvbltdID0gW107XG5cbiAgICAvLyB0eXBlIHJlc3RyaWN0aW9uXG4gICAgaWYgKHRoaXMuc3RvcmVkUXVlcnkudHlwZXMgJiYgdGhpcy5zdG9yZWRRdWVyeS50eXBlcy5sZW5ndGgpIHtcbiAgICAgIHJlc3RyaWN0aW9ucy5wdXNoKHtcbiAgICAgICAgZmllbGQ6IFNlYXJjaFF1ZXJ5LkJBU0VfUEFSQU1TLlRZUEUsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdG9yZWRxdWVyeS5yZXN0cmljdGlvbi50eXBlJyksXG4gICAgICAgIGl0ZW1zOiB0aGlzLnN0b3JlZFF1ZXJ5LnR5cGVzLm1hcCh0ID0+IHQubGFiZWwpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBhZGQgYmFzZSBwYXJhbXMgcmVzdHJpY3Rpb25zXG4gICAgKHRoaXMuc3RvcmVkUXVlcnkuZmlsdGVycyB8fCBbXSkuZm9yRWFjaChmaWx0ZXIgPT4ge1xuICAgICAgaWYgKGZpbHRlciAmJiB+dGhpcy5CQVNFX1BBUkFNU19GSUVMRFMuaW5kZXhPZihmaWx0ZXIucHJvcGVydHkpKSB7XG5cbiAgICAgICAgY29uc3QgZmllbGQgPSBmaWx0ZXIucHJvcGVydHk7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3RvcmVkcXVlcnkucmVzdHJpY3Rpb24uJyArIGZpZWxkKTtcblxuICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7XG4gICAgICAgICAgY2FzZSBTZWFyY2hRdWVyeS5CQVNFX1BBUkFNUy5NSU1FVFlQRUdST1VQOlxuICAgICAgICAgICAgcmVzdHJpY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICBmaWVsZCwgbGFiZWwsIGl0ZW1zOiBBcnJheS5pc0FycmF5KGZpbHRlci5maXJzdFZhbHVlKSA/IGZpbHRlci5maXJzdFZhbHVlIDogW2ZpbHRlci5maXJzdFZhbHVlXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFNlYXJjaFF1ZXJ5LkJBU0VfUEFSQU1TLkZJTEVOQU1FOlxuICAgICAgICAgICAgcmVzdHJpY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICBmaWVsZCwgbGFiZWwsIGl0ZW1zOiBbZmlsdGVyLmZpcnN0VmFsdWVdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU2VhcmNoUXVlcnkuQkFTRV9QQVJBTVMuRklMRVNJWkU6XG4gICAgICAgICAgICByZXN0cmljdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgIGZpZWxkLCBsYWJlbCwgaXRlbXM6IFt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zZWFyY2guYWdnLmZpbGVzaXplLicgKyBmaWx0ZXIuZmlyc3RWYWx1ZSldXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgU2VhcmNoUXVlcnkuQkFTRV9QQVJBTVMuQ1JFQVRFRDpcbiAgICAgICAgICBjYXNlIFNlYXJjaFF1ZXJ5LkJBU0VfUEFSQU1TLk1PRElGSUVEOlxuICAgICAgICAgICAgcmVzdHJpY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICBmaWVsZCwgbGFiZWwsIGl0ZW1zOiBbdGhpcy5jcmVhdGVEYXRlUmVzdHJpY3Rpb24oZmlsdGVyKV1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBTZWFyY2hRdWVyeS5CQVNFX1BBUkFNUy5DUkVBVE9SOlxuICAgICAgICAgIGNhc2UgU2VhcmNoUXVlcnkuQkFTRV9QQVJBTVMuTU9ESUZJRVI6XG4gICAgICAgICAgICB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uT2JqZWN0cyhmaWx0ZXIuZmlyc3RWYWx1ZSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZShvcmdVc2VycyA9PiByZXN0cmljdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgZmllbGQsIGxhYmVsLCBpdGVtczogb3JnVXNlcnMubWFwKHUgPT4gdS50aXRsZSlcbiAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3RyaWN0aW9ucztcbiAgfVxuXG4gIGNyZWF0ZURhdGVSZXN0cmljdGlvbihmaWx0ZXI6IFNlYXJjaEZpbHRlcikge1xuICAgIHN3aXRjaCAoZmlsdGVyLm9wZXJhdG9yKSB7XG4gICAgICBjYXNlIFNlYXJjaEZpbHRlci5PUEVSQVRPUi5SQU5HRTpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYGVvLnNlYXJjaC5hZ2cudGltZS4ke2ZpbHRlci5maXJzdFZhbHVlfWApO1xuICAgICAgY2FzZSBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuRVFVQUw6XG4gICAgICAgIHJldHVybiBgPSAke3RoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGZpbHRlci5maXJzdFZhbHVlLCAnZW9TaG9ydERhdGUnKX1gO1xuICAgICAgY2FzZSBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuSU5URVJWQUxfSU5DTFVERV9CT1RIOlxuICAgICAgICByZXR1cm4gYCR7dGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZmlsdGVyLmZpcnN0VmFsdWUsICdlb1Nob3J0RGF0ZScpfSAtICR7dGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZmlsdGVyLnNlY29uZFZhbHVlLCAnZW9TaG9ydERhdGUnKX1gO1xuICAgICAgY2FzZSBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuR1JFQVRFUl9PUl9FUVVBTDpcbiAgICAgICAgcmV0dXJuIGAke3RoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNlYXJjaC5hZ2cudGltZS5zcGFuLnNpbmNlJyl9ICR7dGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZmlsdGVyLmZpcnN0VmFsdWUsICdlb1Nob3J0RGF0ZScpfWA7XG4gICAgICBjYXNlIFNlYXJjaEZpbHRlci5PUEVSQVRPUi5MRVNTX09SX0VRVUFMOlxuICAgICAgICByZXR1cm4gYCR7dGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2VhcmNoLmFnZy50aW1lLnNwYW4udW50aWwnKX0gJHt0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShmaWx0ZXIuZmlyc3RWYWx1ZSwgJ2VvU2hvcnREYXRlJyl9YDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBgKCR7ZmlsdGVyLm9wZXJhdG9yfSkgJHt0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShmaWx0ZXIuZmlyc3RWYWx1ZSwgJ2VvU2hvcnREYXRlJyl9YDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGZvcm0gY29udHJvbCBmcm9tIGEgZ2l2ZW4gZm9ybSBlbGVtZW50XG4gICAqIEBwYXJhbSBmb3JtRWxlbWVudFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJpdmF0ZSB0b0Zvcm1Db250cm9sKGZvcm1FbGVtZW50KTogT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyIHtcblxuICAgIC8vIHRoZSBgbmFtZWAgcHJvcGVydHkgb2Ygc3RvcmVkIHF1ZXJ5IGZvcm0gZWxlbWVudCBoYXMgdG8gYmUgYHFuYW1lYCBvZiBmb3JtIGVsZW1lbnQsXG4gICAgLy8gYmVjYXVzZSB3ZSBtYXkgY29tYmluZSBtdWx0aXBsZSBmb3JtcyAoY29udGV4dCBmb3JtKSBhbmQgaW4gdGhpcyBjYXNlIHRoZXJlIG1heVxuICAgIC8vIGJlIGNvbmZsaWN0cyBpbiBuYW1pbmdzXG4gICAgZm9ybUVsZW1lbnQubmFtZSA9IGZvcm1FbGVtZW50LnFuYW1lO1xuXG4gICAgaWYgKGZvcm1FbGVtZW50LnR5cGUgPT09ICdUQUJMRScpIHtcbiAgICAgIGxldCBmaWx0ZXJzID0gdGhpcy5zdG9yZWRRdWVyeS5nZXRUYWJsZUZpbHRlcnMoZm9ybUVsZW1lbnQucW5hbWUpO1xuICAgICAgaWYgKGZpbHRlcnMgJiYgZmlsdGVycy5sZW5ndGgpIHtcbiAgICAgICAgZm9ybUVsZW1lbnQudmFsdWUgPSB0aGlzLnNlYXJjaFNlcnZpY2UudGFibGVGaWx0ZXJzVG9FbGVtZW50VmFsdWUoZmlsdGVycywgZm9ybUVsZW1lbnQuZWxlbWVudHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybUVsZW1lbnQudmFsdWUgPSBbe31dO1xuICAgICAgICBkZWxldGUgZm9ybUVsZW1lbnQuaXNOb3RTZXRWYWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZ3JhYiB2YWx1ZSBmb3IgdGhlIGNvbnRyb2wgZnJvbSBjb3JyZXNwb25kaW5nIHF1ZXJ5IGZpbHRlcnNcbiAgICAgIGxldCBmaWx0ZXIgPSB0aGlzLnN0b3JlZFF1ZXJ5LmdldEZpbHRlcihmb3JtRWxlbWVudC5xbmFtZSk7XG4gICAgICAvLyB3ZSBtYXkgaGF2ZSBwYXJhbXMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIHF1ZXJpZXMgZmlsdGVycy4gVGhpcyBtYXkgYmUgdGhlXG4gICAgICAvLyBjYXNlIHdoZW4gd2UgbWFyayBmb3JtIGVsZW1lbnRzIGFzIGR5bmFtaWMgZmllbGRzIHdpdGhvdXQgcHJvdmlkaW5nIGEgdmFsdWVcbiAgICAgIGlmIChmaWx0ZXIpIHtcblxuICAgICAgICAvLyBmaWx0ZXIgdG8gaGF2ZSBubyB2YWx1ZVxuICAgICAgICBpZiAoZmlsdGVyLm9wZXJhdG9yID09PSBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuRVFVQUwgJiYgZmlsdGVyLmZpcnN0VmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICBmb3JtRWxlbWVudC5pc05vdFNldFZhbHVlID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZWxldGUgZm9ybUVsZW1lbnQuaXNOb3RTZXRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm1FbGVtZW50LnZhbHVlID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmZpbHRlclRvRWxlbWVudFZhbHVlKFxuICAgICAgICAgIHRoaXMuc3RvcmVkUXVlcnkuZ2V0RmlsdGVyKGZvcm1FbGVtZW50LnFuYW1lKSxcbiAgICAgICAgICBmb3JtRWxlbWVudC50eXBlXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKGZvcm1FbGVtZW50LnFuYW1lICE9PSBTdG9yZWRRdWVyaWVzU2VydmljZS5GVUxMVEVYVCkge1xuICAgICAgICBmb3JtRWxlbWVudC52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgZGVsZXRlIGZvcm1FbGVtZW50LmlzTm90U2V0VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIHN5bmMgd2l0aCBwYXJhbXNcbiAgICBjb25zdCBtYXRjaDogYW55ID0gdGhpcy5zdG9yZWRRdWVyeS5wYXJhbWV0ZXIuZmluZChwYXJhbSA9PiB7XG4gICAgICByZXR1cm4gKHBhcmFtLnFuYW1lID09PSBmb3JtRWxlbWVudC5xbmFtZSkgfHwgKHBhcmFtLnR5cGUgPT09IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLkZVTExURVhUICYmIGZvcm1FbGVtZW50LnFuYW1lID09PSBTdG9yZWRRdWVyaWVzU2VydmljZS5GVUxMVEVYVClcbiAgICB9KTtcbiAgICAvLyBldmVyeSBmaWVsZCB0aGF0IGlzIHBhcnQgb2YgdGhlIHBhcmFtcyBpcyBzdXBwb3NlZCB0byBiZSBkeW5hbWljXG4gICAgZm9ybUVsZW1lbnQuX2R5bmFtaWMgPSAhIW1hdGNoO1xuXG4gICAgLy8gY3JlYXRlIGFjdHVhbCBmb3JtIGNvbnRyb2wgdGhhdCBjb3VsZCBiZSB1c2VkIHdpdGhcbiAgICAvLyBGb3JtRWxlbWVudENvbXBvbmVudCB0byB0aGVuIHJlbmRlciBmb3IgZWxlbWVudHNcbiAgICAvLyB3cmFwcGVyIG1heSBiZSBudWxsIGluIGNhc2Ugb2YgYW4gZXJyb3JcbiAgICByZXR1cm4gdGhpcy5mb3JtSGVscGVyU2VydmljZS5lbGVtZW50VG9Gb3JtQ29udHJvbChmb3JtRWxlbWVudCwgJ1NFQVJDSCcpO1xuICB9XG5cbiAgb25TdG9yZWRRdWVyeUxvYWRlZCgpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ3NlYXJjaCd9fV0pO1xuICB9XG5cbiAgb25TdG9yZWRRdWVyeUV4ZWN1dGUoZXZ0KSB7XG4gICAgY29uc3QgdXJpUGFyYW0gPSBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZXZ0LnF1ZXJ5SnNvbikpO1xuICAgIGNvbnN0IHVyaVBhcmFtUXVlcnk6IE5hdmlnYXRpb25FeHRyYXMgPSB7cXVlcnlQYXJhbXM6IHsncXVlcnknOiB1cmlQYXJhbX19O1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Jlc3VsdCddLCB1cmlQYXJhbVF1ZXJ5KTtcbiAgfVxuXG4gIHNldEljb25UaXRsZXMoKSB7XG4gICAgdGhpcy5pY29uVGl0bGVzID0ge1xuICAgICAgc2hhcmU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN0b3JlZHF1ZXJ5LnNoYXJlLnRpdGxlJyksXG4gICAgICBzaGFyZWQ6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN0b3JlZHF1ZXJ5LnNoYXJlZGZvci50aXRsZScpLFxuICAgICAgZmF2b3I6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN0b3JlZHF1ZXJ5LmZhdm9yLnRpdGxlJyksXG4gICAgICBmYXZvcmVkOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdG9yZWRxdWVyeS5mYXZvcmVkZm9yLnRpdGxlJylcbiAgICB9XG4gIH1cblxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKHEgPT4ge1xuICAgICAgICB0aGlzLnF1ZXJ5ID0gcTtcbiAgICAgIH0pO1xuICAgIHRoaXMuc2V0SWNvblRpdGxlcygpO1xuICB9XG5cbiAgdHJhY2tCeVFOYW1lKGluZGV4LCBpdGVtKSB7XG4gICAgcmV0dXJuIGl0ZW0ucW5hbWU7XG4gIH1cblxuICB0cmFja0J5SW5kZXgoaW5kZXgsIGl0ZW0pIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cbn1cbiJdfQ==
@@ -67,7 +67,8 @@ export class EoDialogComponent extends UnsubscribeOnDestroy {
67
67
  scrollStrategy: this.overlay.scrollStrategies.reposition(),
68
68
  positionStrategy: this.getPositionStrategy(),
69
69
  minHeight: this.minHeight,
70
- minWidth: this.minWidth
70
+ minWidth: this.minWidth,
71
+ height: this.height
71
72
  });
72
73
  //Then we create a portal to render a component
73
74
  const portal = new TemplatePortal(this.dialogContent, this.viewContainerRef);
@@ -163,6 +164,7 @@ EoDialogComponent.propDecorators = {
163
164
  dirtyCheck: [{ type: Input }],
164
165
  minWidth: [{ type: Input }],
165
166
  minHeight: [{ type: Input }],
167
+ height: [{ type: Input }],
166
168
  focusOnShow: [{ type: Input }],
167
169
  align: [{ type: Input }],
168
170
  isFormTable: [{ type: Input }],
@@ -175,4 +177,4 @@ EoDialogComponent.propDecorators = {
175
177
  onKeydownHandler: [{ type: HostListener, args: ['document:keydown.escape', ['$event'],] }],
176
178
  onMousedown: [{ type: HostListener, args: ['document:mousedown', ['$event.target'],] }]
177
179
  };
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW8tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3VpL2VvLWRpYWxvZy9lby1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxPQUFPLEVBQWEsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFFLGNBQWMsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBR2pCLGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDaEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFVekcsTUFBTSxPQUFPLGlCQUFrQixTQUFRLG9CQUFvQjtJQThEekQsWUFDVSxZQUEwQixFQUMxQixjQUFxQyxFQUNyQyxRQUFtQixFQUNuQixPQUFnQixFQUNoQixnQkFBa0M7UUFFMUMsS0FBSyxFQUFFLENBQUM7UUFOQSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUExRHBDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsT0FB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RTtJQUNyQyxDQUFDOzs7WUE1S0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQix5aERBQXlDO2dCQUV6QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDdEM7OztZQVptQixZQUFZO1lBR3hCLHFCQUFxQjtZQVYzQixTQUFTO1lBVEgsT0FBTztZQWNiLGdCQUFnQjs7OzJCQWtCZixTQUFTLFNBQUMsZUFBZTs0QkFDekIsU0FBUyxTQUFDLGVBQWU7NkJBVXpCLEtBQUs7b0JBQ0wsS0FBSzt1QkFDTCxLQUFLO3lCQUNMLEtBQUs7eUJBR0wsS0FBSzt1QkFFTCxLQUFLO3dCQUNMLEtBQUs7MEJBQ0wsS0FBSztvQkFDTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSzs4QkFFTCxNQUFNOzRCQUNOLE1BQU07bUJBQ04sTUFBTTttQkFDTixNQUFNO3NCQUVOLEtBQUs7K0JBWUwsWUFBWSxTQUFDLHlCQUF5QixFQUFFLENBQUMsUUFBUSxDQUFDOzBCQVFsRCxZQUFZLFNBQUMsb0JBQW9CLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge092ZXJsYXksIE92ZXJsYXlSZWZ9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7Q2RrUG9ydGFsT3V0bGV0LCBUZW1wbGF0ZVBvcnRhbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgVGVtcGxhdGVSZWYsXG4gIEFmdGVyVmlld0luaXQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VuYWlvRXZlbnQsIEV2ZW50U2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge2ZpbHRlciwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZW8tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW8tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRW9EaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBVbnN1YnNjcmliZU9uRGVzdHJveVxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQFZpZXdDaGlsZChDZGtQb3J0YWxPdXRsZXQpIHBvcnRhbE91dGxldDogQ2RrUG9ydGFsT3V0bGV0O1xuICBAVmlld0NoaWxkKCdkaWFsb2dDb250ZW50JykgZGlhbG9nQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgcmVhZHk6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IGZhbHNlO1xuICBwcml2YXRlIF9sYXN0Rm9jdXNlZDtcbiAgcHJpdmF0ZSBhY3RpdmU6IGJvb2xlYW47XG4gIHByaXZhdGUgaWQgPSBVdGlscy51dWlkKCk7XG4gIHByaXZhdGUgcGFyZW50SWQgPSAnJztcbiAgQElucHV0KCkgaGFzUHJldmlld0ZpbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgc3R5bGVDbGFzcyA9ICcnO1xuXG4gIC8vIGFycmF5IG9mIHBlbmRpbmdUYXNrIElEcyB0byBiZSBjaGVja2VkIGJlZm9yZSB0aGUgZGlhbG9nIGNsb3Nlc1xuICBASW5wdXQoKSBkaXJ0eUNoZWNrOiBzdHJpbmcgfCBzdHJpbmdbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIG1pbldpZHRoOiBudW1iZXIgfCBzdHJpbmcgPSAyMDA7XG4gIEBJbnB1dCgpIG1pbkhlaWdodCA9ICdhdXRvJztcbiAgQElucHV0KCkgZm9jdXNPblNob3cgPSB0cnVlO1xuICBASW5wdXQoKSBhbGlnbjogJ2NlbnRlcicgfCAnc3RhcnQnID0gJ2NlbnRlcic7XG4gIEBJbnB1dCgpIGlzRm9ybVRhYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dQcmV2aWV3ID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIG9uVG9nZ2xlUHJldmlldzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGhpZGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2hvdzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gIH1cblxuICBzZXQgdmlzaWJsZSh2YWwpIHtcbiAgICB0aGlzLl92aXNpYmxlID0gISF2YWw7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy5fdmlzaWJsZSk7XG4gICAgdGhpcy5fdmlzaWJsZSA/IHRoaXMuc2hvdy5lbWl0KHZhbCkgOiB0aGlzLmhpZGUuZW1pdCh2YWwpO1xuICAgIHRoaXMudG9nZ2xlQWN0aXZlKHRoaXMuX3Zpc2libGUpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKVxuICBvbktleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgLy8gY2xvc2UgYWN0aXZlIGRpYWxvZyBvbiBFc2NhcGUgZXZlbnRcbiAgICBpZiAodGhpcy5hY3RpdmUpIHtcbiAgICAgIHRoaXMuY2xvc2VEaWFsb2coKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZWRvd24nLCBbJyRldmVudC50YXJnZXQnXSlcbiAgb25Nb3VzZWRvd24odGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAvLyBjbG9zZSBhY3RpdmUgZGlhbG9nIG9uIGJhY2tncm91bmQvbWFzayBjbGlja1xuICAgIGlmICh0aGlzLmFjdGl2ZSAmJiB0YXJnZXRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygndWktZGlhbG9nLW1hc2snKSkge1xuICAgICAgdGhpcy5jbG9zZURpYWxvZygpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fbGFzdEZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5FT19ESUFMT0dfU1RBQ0tfQ0hBTkdFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSxcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIGV2dCA9PlxuICAgICAgICAgICAgKHRoaXMuYWN0aXZlIHx8IGV2dC5kYXRhLmlkID09PSB0aGlzLnBhcmVudElkKSAmJlxuICAgICAgICAgICAgZXZ0LmRhdGEuaWQgIT09IHRoaXMuaWRcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnBhcmVudElkID0gZXZlbnQuZGF0YS5hY3RpdmUgPyBldmVudC5kYXRhLmlkIDogJyc7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbigpIHtcbiAgICAvLyBXZSBjcmVhdGUgdGhlIG92ZXJsYXlcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpLFxuICAgICAgbWluSGVpZ2h0OiB0aGlzLm1pbkhlaWdodCxcbiAgICAgIG1pbldpZHRoOiB0aGlzLm1pbldpZHRoXG4gICAgfSk7XG4gICAgLy9UaGVuIHdlIGNyZWF0ZSBhIHBvcnRhbCB0byByZW5kZXIgYSBjb21wb25lbnRcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5kaWFsb2dDb250ZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgIC8vIFdlIGFkZCBhIGN1c3RvbSBDU1MgY2xhc3MgdG8gb3VyIG92ZXJsYXlcbiAgICAvLyB0aGlzLm92ZXJsYXlSZWYuYWRkUGFuZWxDbGFzcyhcImV4YW1wbGUtb3ZlcmxheVwiKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgIHRoaXMuY2xvc2VEaWFsb2coKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UG9zaXRpb25TdHJhdGVneSgpIHtcbiAgICBsZXQgcG9zaXRpb25TdHJhdGVneTtcbiAgICBpZiAodGhpcy5hbGlnbiA9PT0gJ2NlbnRlcicpIHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgLmdsb2JhbCgpXG4gICAgICAgIC5jZW50ZXJIb3Jpem9udGFsbHkoKVxuICAgICAgICAuY2VudGVyVmVydGljYWxseSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hbGlnbiA9PT0gJ3N0YXJ0Jykge1xuICAgICAgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAuZ2xvYmFsKClcbiAgICAgICAgLmxlZnQoKVxuICAgICAgICAudG9wKCk7XG4gICAgfVxuICAgIHJldHVybiBwb3NpdGlvblN0cmF0ZWd5O1xuICB9XG5cbiAgdG9nZ2xlQWN0aXZlKGFjdGl2ZTogYm9vbGVhbiwgdHJpZ2dlciA9IHRydWUpIHtcbiAgICB0aGlzLmFjdGl2ZSA9ICEhYWN0aXZlO1xuXG4gICAgaWYgKGFjdGl2ZSAmJiB0aGlzLnJlYWR5ICYmICF0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgICBpZiAodGhpcy5vdmVybGF5UmVmICYmICFhY3RpdmUpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRyaWdnZXIpIHtcbiAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5FT19ESUFMT0dfU1RBQ0tfQ0hBTkdFRCwge1xuICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgYWN0aXZlOiB0aGlzLmFjdGl2ZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VEaWFsb2coKSB7XG4gICAgaWYgKHRoaXMuZGlydHlDaGVjaykge1xuICAgICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmNoZWNrRm9yUGVuZGluZ1Rhc2tzKHRoaXMuZGlydHlDaGVjaykpIHtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVByZXZpZXcoKSB7XG4gICAgdGhpcy5zaG93UHJldmlldyA9ICF0aGlzLnNob3dQcmV2aWV3O1xuICAgIHRoaXMub25Ub2dnbGVQcmV2aWV3LmVtaXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmFjdGl2ZSkge1xuICAgICAgdGhpcy50b2dnbGVBY3RpdmUoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlYWR5ID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5fdmlzaWJsZSkgeyB0aGlzLm9wZW4oKTsgfVxuICB9XG59XG4iXX0=
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW8tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3VpL2VvLWRpYWxvZy9lby1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxPQUFPLEVBQWEsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFFLGNBQWMsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBR2pCLGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDaEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFVekcsTUFBTSxPQUFPLGlCQUFrQixTQUFRLG9CQUFvQjtJQStEekQsWUFDVSxZQUEwQixFQUMxQixjQUFxQyxFQUNyQyxRQUFtQixFQUNuQixPQUFnQixFQUNoQixnQkFBa0M7UUFFMUMsS0FBSyxFQUFFLENBQUM7UUFOQSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUEzRHBDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsT0FBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2IsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFHdkIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUV6QixrRUFBa0U7UUFDekQsZUFBVSxHQUFzQixFQUFFLENBQUM7UUFFbkMsYUFBUSxHQUFvQixHQUFHLENBQUM7UUFDaEMsY0FBUyxHQUFHLE1BQU0sQ0FBQztRQUVuQixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixVQUFLLEdBQXVCLFFBQVEsQ0FBQztRQUNyQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVuQixvQkFBZSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hELGtCQUFhLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEQsU0FBSSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLFNBQUksR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQXNDckQsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBQzNDLElBQUksQ0FBQyxZQUFZO2FBQ2QsRUFBRSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQzthQUN0QyxJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUNuQyxNQUFNLENBQ0osR0FBRyxDQUFDLEVBQUUsQ0FDSixDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM5QyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUMxQixDQUNGO2FBQ0EsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFsREQsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxHQUFHO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUdELGdCQUFnQixDQUFDLEtBQW9CO1FBQ25DLHNDQUFzQztRQUN0QyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBR0QsV0FBVyxDQUFDLGFBQTBCO1FBQ3BDLCtDQUErQztRQUMvQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUNyRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBMEJPLElBQUk7UUFDVix3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUNwQyxXQUFXLEVBQUUsSUFBSTtZQUNqQixjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUU7WUFDMUQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzVDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUMsQ0FBQztRQUNILCtDQUErQztRQUMvQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdFLDJDQUEyQztRQUMzQyxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksZ0JBQWdCLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTztpQkFDNUIsUUFBUSxFQUFFO2lCQUNWLE1BQU0sRUFBRTtpQkFDUixrQkFBa0IsRUFBRTtpQkFDcEIsZ0JBQWdCLEVBQUUsQ0FBQztTQUN2QjthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxPQUFPLEVBQUU7WUFDakMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU87aUJBQzVCLFFBQVEsRUFBRTtpQkFDVixNQUFNLEVBQUU7aUJBQ1IsSUFBSSxFQUFFO2lCQUNOLEdBQUcsRUFBRSxDQUFDO1NBQ1Y7UUFDRCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBZSxFQUFFLE9BQU8sR0FBRyxJQUFJO1FBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUV2QixJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUM1QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDYjtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1NBQzdCO1FBRUQsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsdUJBQXVCLEVBQUU7Z0JBQzVELEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDWCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07YUFDcEIsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQzlELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2FBQ3RCO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQUU7SUFDckMsQ0FBQzs7O1lBOUtGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIseWhEQUF5QztnQkFFekMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7WUFabUIsWUFBWTtZQUd4QixxQkFBcUI7WUFWM0IsU0FBUztZQVRILE9BQU87WUFjYixnQkFBZ0I7OzsyQkFrQmYsU0FBUyxTQUFDLGVBQWU7NEJBQ3pCLFNBQVMsU0FBQyxlQUFlOzZCQVV6QixLQUFLO29CQUNMLEtBQUs7dUJBQ0wsS0FBSzt5QkFDTCxLQUFLO3lCQUdMLEtBQUs7dUJBRUwsS0FBSzt3QkFDTCxLQUFLO3FCQUNMLEtBQUs7MEJBQ0wsS0FBSztvQkFDTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSzs4QkFFTCxNQUFNOzRCQUNOLE1BQU07bUJBQ04sTUFBTTttQkFDTixNQUFNO3NCQUVOLEtBQUs7K0JBWUwsWUFBWSxTQUFDLHlCQUF5QixFQUFFLENBQUMsUUFBUSxDQUFDOzBCQVFsRCxZQUFZLFNBQUMsb0JBQW9CLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge092ZXJsYXksIE92ZXJsYXlSZWZ9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7Q2RrUG9ydGFsT3V0bGV0LCBUZW1wbGF0ZVBvcnRhbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgVGVtcGxhdGVSZWYsXG4gIEFmdGVyVmlld0luaXQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VuYWlvRXZlbnQsIEV2ZW50U2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge2ZpbHRlciwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZW8tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW8tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRW9EaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBVbnN1YnNjcmliZU9uRGVzdHJveVxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQFZpZXdDaGlsZChDZGtQb3J0YWxPdXRsZXQpIHBvcnRhbE91dGxldDogQ2RrUG9ydGFsT3V0bGV0O1xuICBAVmlld0NoaWxkKCdkaWFsb2dDb250ZW50JykgZGlhbG9nQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgcmVhZHk6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IGZhbHNlO1xuICBwcml2YXRlIF9sYXN0Rm9jdXNlZDtcbiAgcHJpdmF0ZSBhY3RpdmU6IGJvb2xlYW47XG4gIHByaXZhdGUgaWQgPSBVdGlscy51dWlkKCk7XG4gIHByaXZhdGUgcGFyZW50SWQgPSAnJztcbiAgQElucHV0KCkgaGFzUHJldmlld0ZpbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgc3R5bGVDbGFzcyA9ICcnO1xuXG4gIC8vIGFycmF5IG9mIHBlbmRpbmdUYXNrIElEcyB0byBiZSBjaGVja2VkIGJlZm9yZSB0aGUgZGlhbG9nIGNsb3Nlc1xuICBASW5wdXQoKSBkaXJ0eUNoZWNrOiBzdHJpbmcgfCBzdHJpbmdbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIG1pbldpZHRoOiBudW1iZXIgfCBzdHJpbmcgPSAyMDA7XG4gIEBJbnB1dCgpIG1pbkhlaWdodCA9ICdhdXRvJztcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZvY3VzT25TaG93ID0gdHJ1ZTtcbiAgQElucHV0KCkgYWxpZ246ICdjZW50ZXInIHwgJ3N0YXJ0JyA9ICdjZW50ZXInO1xuICBASW5wdXQoKSBpc0Zvcm1UYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93UHJldmlldyA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBvblRvZ2dsZVByZXZpZXc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBoaWRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHNob3c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG5cbiAgc2V0IHZpc2libGUodmFsKSB7XG4gICAgdGhpcy5fdmlzaWJsZSA9ICEhdmFsO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuX3Zpc2libGUpO1xuICAgIHRoaXMuX3Zpc2libGUgPyB0aGlzLnNob3cuZW1pdCh2YWwpIDogdGhpcy5oaWRlLmVtaXQodmFsKTtcbiAgICB0aGlzLnRvZ2dsZUFjdGl2ZSh0aGlzLl92aXNpYmxlKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJywgWyckZXZlbnQnXSlcbiAgb25LZXlkb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIC8vIGNsb3NlIGFjdGl2ZSBkaWFsb2cgb24gRXNjYXBlIGV2ZW50XG4gICAgaWYgKHRoaXMuYWN0aXZlKSB7XG4gICAgICB0aGlzLmNsb3NlRGlhbG9nKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2Vkb3duJywgWyckZXZlbnQudGFyZ2V0J10pXG4gIG9uTW91c2Vkb3duKHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgLy8gY2xvc2UgYWN0aXZlIGRpYWxvZyBvbiBiYWNrZ3JvdW5kL21hc2sgY2xpY2tcbiAgICBpZiAodGhpcy5hY3RpdmUgJiYgdGFyZ2V0RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ3VpLWRpYWxvZy1tYXNrJykpIHtcbiAgICAgIHRoaXMuY2xvc2VEaWFsb2coKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX2xhc3RGb2N1c2VkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKEVuYWlvRXZlbnQuRU9fRElBTE9HX1NUQUNLX0NIQU5HRUQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCksXG4gICAgICAgIGZpbHRlcihcbiAgICAgICAgICBldnQgPT5cbiAgICAgICAgICAgICh0aGlzLmFjdGl2ZSB8fCBldnQuZGF0YS5pZCA9PT0gdGhpcy5wYXJlbnRJZCkgJiZcbiAgICAgICAgICAgIGV2dC5kYXRhLmlkICE9PSB0aGlzLmlkXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wYXJlbnRJZCA9IGV2ZW50LmRhdGEuYWN0aXZlID8gZXZlbnQuZGF0YS5pZCA6ICcnO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9wZW4oKSB7XG4gICAgLy8gV2UgY3JlYXRlIHRoZSBvdmVybGF5XG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLmdldFBvc2l0aW9uU3RyYXRlZ3koKSxcbiAgICAgIG1pbkhlaWdodDogdGhpcy5taW5IZWlnaHQsXG4gICAgICBtaW5XaWR0aDogdGhpcy5taW5XaWR0aCxcbiAgICAgIGhlaWdodDogdGhpcy5oZWlnaHRcbiAgICB9KTtcbiAgICAvL1RoZW4gd2UgY3JlYXRlIGEgcG9ydGFsIHRvIHJlbmRlciBhIGNvbXBvbmVudFxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLmRpYWxvZ0NvbnRlbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgLy8gV2UgYWRkIGEgY3VzdG9tIENTUyBjbGFzcyB0byBvdXIgb3ZlcmxheVxuICAgIC8vIHRoaXMub3ZlcmxheVJlZi5hZGRQYW5lbENsYXNzKFwiZXhhbXBsZS1vdmVybGF5XCIpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgdGhpcy5jbG9zZURpYWxvZygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQb3NpdGlvblN0cmF0ZWd5KCkge1xuICAgIGxldCBwb3NpdGlvblN0cmF0ZWd5O1xuICAgIGlmICh0aGlzLmFsaWduID09PSAnY2VudGVyJykge1xuICAgICAgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAuZ2xvYmFsKClcbiAgICAgICAgLmNlbnRlckhvcml6b250YWxseSgpXG4gICAgICAgIC5jZW50ZXJWZXJ0aWNhbGx5KCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFsaWduID09PSAnc3RhcnQnKSB7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgIC5nbG9iYWwoKVxuICAgICAgICAubGVmdCgpXG4gICAgICAgIC50b3AoKTtcbiAgICB9XG4gICAgcmV0dXJuIHBvc2l0aW9uU3RyYXRlZ3k7XG4gIH1cblxuICB0b2dnbGVBY3RpdmUoYWN0aXZlOiBib29sZWFuLCB0cmlnZ2VyID0gdHJ1ZSkge1xuICAgIHRoaXMuYWN0aXZlID0gISFhY3RpdmU7XG5cbiAgICBpZiAoYWN0aXZlICYmIHRoaXMucmVhZHkgJiYgIXRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYgJiYgIWFjdGl2ZSkge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAodHJpZ2dlcikge1xuICAgICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LkVPX0RJQUxPR19TVEFDS19DSEFOR0VELCB7XG4gICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICBhY3RpdmU6IHRoaXMuYWN0aXZlXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjbG9zZURpYWxvZygpIHtcbiAgICBpZiAodGhpcy5kaXJ0eUNoZWNrKSB7XG4gICAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2tGb3JQZW5kaW5nVGFza3ModGhpcy5kaXJ0eUNoZWNrKSkge1xuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlUHJldmlldygpIHtcbiAgICB0aGlzLnNob3dQcmV2aWV3ID0gIXRoaXMuc2hvd1ByZXZpZXc7XG4gICAgdGhpcy5vblRvZ2dsZVByZXZpZXcuZW1pdCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlKSB7XG4gICAgICB0aGlzLnRvZ2dsZUFjdGl2ZShmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVhZHkgPSB0cnVlO1xuICAgIGlmICh0aGlzLl92aXNpYmxlKSB7IHRoaXMub3BlbigpOyB9XG4gIH1cbn1cbiJdfQ==
@@ -88,7 +88,7 @@ export class IndexdataSummaryComponent {
88
88
  }
89
89
  onStorageInfoToggle(info) {
90
90
  if (!this.storageInfos) {
91
- this.dmsService.getDmsObjectByParams({ id: this.item.id, type: this.item.typeName, version: this.item.version, withStorageInfo: true })
91
+ this.dmsService.getDmsObjectByParams({ id: this.item.id, type: this.item.typeName, version: this.item.version, recyclebin: true, withStorageInfo: true })
92
92
  .pipe(catchError(Utils.catchSkip(err => err.status === 404))).subscribe(res => {
93
93
  this.storageInfos = res.storageInfo;
94
94
  this.dataInfoAcc = info;
@@ -125,4 +125,4 @@ IndexdataSummaryComponent.propDecorators = {
125
125
  enableVersions: [{ type: Input }],
126
126
  diff: [{ type: Input }]
127
127
  };
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvaW5kZXhkYXRhLXN1bW1hcnkvaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQXdCLEtBQUssRUFBa0IsV0FBVyxFQUFFLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUNuRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRXhFLE9BQU8sRUFBQyxVQUFVLEVBQU0sTUFBTSxnQkFBZ0IsQ0FBQztBQVUvQyxNQUFNLE9BQU8seUJBQXlCO0lBdUZwQyxZQUFtQixTQUEyQixFQUNyQyxPQUFvQixFQUNuQixVQUFzQixFQUN0QixXQUF3QjtRQUhmLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQ3JDLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWpGbEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBc0JWLG1CQUFjLEdBQUcsSUFBSSxDQUFDO0lBeUQvQixDQUFDO0lBMUVELElBQ0ksU0FBUyxDQUFDLEVBQWE7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENB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QkFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUk7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxpQ0FBaUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzdHLENBQUM7OztZQXhJRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMscXJPQUFpRDtnQkFFakQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7WUFaTyxnQkFBZ0I7WUFDaEIsV0FBVztZQUZnRCxVQUFVO1lBQXZCLFdBQVc7Ozs0QkE0QjlELFNBQVMsU0FBQyxlQUFlOytCQUN6QixTQUFTLFNBQUMsa0JBQWtCO3dCQUU1QixLQUFLO3dCQU9MLEtBQUs7eUJBU0wsS0FBSzs2QkFDTCxLQUFLO21CQUVMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1V0aWxpdGllc1NlcnZpY2V9IGZyb20gJy4vLi4vLi4vdXRpbC9zZXJ2aWNlcy91dGlsaXRpZXMuc2VydmljZSc7XG5pbXBvcnQge0NvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBWaWV3Q2hpbGQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Jhc2VQYXJhbXMsIERtc09iamVjdCwgVXRpbHMsIEJhY2tlbmRTZXJ2aWNlLCBVc2VyU2VydmljZSwgRG1zU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7R3JpZFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2FwaS9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1NpbXBsZUFjY29yZGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vYWNjb3JkaW9uL3NpbXBsZS1hY2NvcmRpb24vc2ltcGxlLWFjY29yZGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtJU3VtbWFyeUVudHJ5RGlmZlZhbHVlfSBmcm9tICcuL2luZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5LmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWluZGV4ZGF0YS1zdW1tYXJ5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2luZGV4ZGF0YS1zdW1tYXJ5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgSW5kZXhkYXRhU3VtbWFyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgaXNVc2VyQWxsb3dlZFRvU2hvd1N0b3JhZ2VTZWN0aW9uOiBib29sZWFuO1xuICBwcml2YXRlIF9pbmRleERhdGE6IEluZGV4RGF0YTtcblxuICBjb3JlVmFsdWVzOiBhbnlbXTtcbiAgZGF0YVZhbHVlczogYW55W107XG4gIHN0b3JhZ2VJbmZvczogYW55W107XG4gIGl0ZW06IERtc09iamVjdDtcbiAgbW9yZUluZm9BY2MgPSBmYWxzZTtcbiAgZGF0YUluZm9BY2MgPSBmYWxzZTtcbiAgZGlmZkFjdGl2ZSA9IGZhbHNlO1xuICBlbXB0eVN0YXRlID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnZGF0YUFjY29yZGlvbicpIGRhdGFBY2NvcmRpb246IFNpbXBsZUFjY29yZGlvbkNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnc3RvcmFnZUFjY29yZGlvbicpIHN0b3JhZ2VBY2NvcmRpb246IFNpbXBsZUFjY29yZGlvbkNvbXBvbmVudDtcblxuICBASW5wdXQoKVxuICBzZXQgaW5kZXhkYXRhKGlkOiBJbmRleERhdGEpIHtcbiAgICB0aGlzLl9pbmRleERhdGEgPSBpZDtcbiAgICB0aGlzLmNvcmVWYWx1ZXMgPSB0aGlzLnByb2Nlc3NJbmRleERhdGEoaWQsIDApLmZpbHRlcih2YWx1ZSA9PiAhdmFsdWUubmFtZS5zdGFydHNXaXRoKCd5dXYnKSk7XG4gICAgdGhpcy5kYXRhVmFsdWVzID0gdGhpcy5wcm9jZXNzSW5kZXhEYXRhKGlkLCAxKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkbXNPYmplY3QoaXRlbTogRG1zT2JqZWN0KSB7XG4gICAgdGhpcy5pdGVtID0gaXRlbTtcbiAgICB0aGlzLnN0b3JhZ2VJbmZvcyA9IG51bGw7XG4gICAgaWYgKHRoaXMuc3RvcmFnZUFjY29yZGlvbikge1xuICAgICAgdGhpcy5zdG9yYWdlQWNjb3JkaW9uLm9wZW4gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBiYXNlcGFyYW1zOiBCYXNlUGFyYW1zO1xuICBASW5wdXQoKSBlbmFibGVWZXJzaW9ucyA9IHRydWU7XG5cbiAgQElucHV0KCkgc2V0IGRpZmYoe2luZGV4ZGF0YSwgaW5kZXhkYXRhMiwgYmFzZXBhcmFtcywgYmFzZXBhcmFtczJ9KSB7XG4gICAgdGhpcy5kaWZmQWN0aXZlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGRpZmZWYWx1ZSA9ICh2YWwxLCB2YWwyKTogSVN1bW1hcnlFbnRyeURpZmZWYWx1ZSA9PiAhKFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eSh2YWwxKSAmJiBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkodmFsMikpICYmIHZhbDEgIT09IHZhbDIgPyB7dmFsMSwgdmFsMn0gOiBudWxsO1xuXG4gICAgaWYgKGJhc2VwYXJhbXMgJiYgYmFzZXBhcmFtczIpIHtcbiAgICAgIHRoaXMuYmFzZXBhcmFtcyA9IHt9IGFzIEJhc2VQYXJhbXM7XG4gICAgICBbJ2NvbnRlbnRGaWxlTmFtZScsICdjb250ZW50RmlsZVNpemUnLCAnbWltZUdyb3VwJ11cbiAgICAgICAgLmZvckVhY2goayA9PiBkaWZmVmFsdWUoYmFzZXBhcmFtc1trXSwgYmFzZXBhcmFtczJba10pICYmICh0aGlzLmJhc2VwYXJhbXNba10gPSBkaWZmVmFsdWUoYmFzZXBhcmFtc1trXSwgYmFzZXBhcmFtczJba10pKSk7XG4gICAgfVxuXG4gICAgaWYgKGluZGV4ZGF0YSAmJiBpbmRleGRhdGEyKSB7XG4gICAgICBjb25zdCBjb3JlVmFsdWVzMiA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpbmRleGRhdGEyLCAwLCB0cnVlKS5yZWR1Y2UoKGFjYywgY3VyKSA9PiAoYWNjW2N1ci5xbmFtZV0gPSBjdXIsIGFjYyksIHt9KTtcbiAgICAgIGNvbnN0IGNvcmVWYWx1ZXMgPSB0aGlzLnByb2Nlc3NJbmRleERhdGEoaW5kZXhkYXRhLCAwLCB0cnVlKVxuICAgICAgICAubWFwKCh7bGFiZWwsIF92YWx1ZSwgcW5hbWUsIHJlZmVyZW5jZX0pID0+ICh7bGFiZWwsIHJlZmVyZW5jZSwgX3ZhbHVlOiBkaWZmVmFsdWUoX3ZhbHVlLCBjb3JlVmFsdWVzMltxbmFtZV0uX3ZhbHVlKX0pKVxuICAgICAgICAuZmlsdGVyKHYgPT4gdi5fdmFsdWUpO1xuXG4gICAgICBjb25zdCBkYXRhVmFsdWVzMiA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpbmRleGRhdGEyLCAxLCB0cnVlKS5yZWR1Y2UoKGFjYywgY3VyKSA9PiAoYWNjW2N1ci5xbmFtZV0gPSBjdXIsIGFjYyksIHt9KTtcbiAgICAgIGNvbnN0IGRhdGFWYWx1ZXMgPSB0aGlzLnByb2Nlc3NJbmRleERhdGEoaW5kZXhkYXRhLCAxLCB0cnVlKVxuICAgICAgICAubWFwKCh7bGFiZWwsIF92YWx1ZSwgcW5hbWUsIHJlZmVyZW5jZX0pID0+ICh7bGFiZWwsIHJlZmVyZW5jZSwgX3ZhbHVlOiBkaWZmVmFsdWUoX3ZhbHVlLCBkYXRhVmFsdWVzMltxbmFtZV0uX3ZhbHVlKX0pKVxuICAgICAgICAuZmlsdGVyKHYgPT4gdi5fdmFsdWUpO1xuXG4gICAgICB0aGlzLmNvcmVWYWx1ZXMgPSBjb3JlVmFsdWVzO1xuICAgICAgdGhpcy5kYXRhVmFsdWVzID0gZGF0YVZhbHVlcztcbiAgICAgIHRoaXMubW9yZUluZm9BY2MgPSAhIWRhdGFWYWx1ZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHRoaXMuZW1wdHlTdGF0ZSA9IFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eSh0aGlzLmNvcmVWYWx1ZXMpICYmIFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eSh0aGlzLmRhdGFWYWx1ZXMpICYmIFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eShPYmplY3Qua2V5cyh0aGlzLmJhc2VwYXJhbXMgfHwge30pKTtcbiAgfVxuXG4gIHN0YXRpYyBjb2xsZWN0KGRhdGE6IHt9LCBlbGVtZW50czogYW55W10gPSBbXSwgY29sbGVjdGlvbjogYW55W10sIGZvcmNlID0gZmFsc2UpIHtcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcbiAgICAgIGlmIChlbC50eXBlICE9PSAnVEFCTEUnKSB7XG4gICAgICAgIGlmIChlbC5lbGVtZW50cykge1xuICAgICAgICAgIGNvbGxlY3Rpb24uY29uY2F0KEluZGV4ZGF0YVN1bW1hcnlDb21wb25lbnQuY29sbGVjdChkYXRhLCBlbC5lbGVtZW50cywgY29sbGVjdGlvbiwgZm9yY2UpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQga2V5ID0gZWwubmFtZTtcbiAgICAgICAgICBpZiAoZm9yY2UgfHwgKGRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSAmJiAoQXJyYXkuaXNBcnJheShkYXRhW2tleV0pID8gZGF0YVtrZXldLmxlbmd0aCA6IHRydWUpKSkge1xuICAgICAgICAgICAgLy8gb25seSBhZGQgYXJyYXlzIHdoZW4gdGhleSBjb250YWluIGFueSB2YWx1ZXNcbiAgICAgICAgICAgIGNvbGxlY3Rpb24ucHVzaChPYmplY3QuYXNzaWduKHt9LCBlbCwge1xuICAgICAgICAgICAgICB2YWx1ZTogZGF0YVtrZXldLFxuICAgICAgICAgICAgICBtZXRhOiBkYXRhW2tleSArICdfbWV0YSddXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH1cblxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIGdyaWRBcGk6IEdyaWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG1zU2VydmljZTogRG1zU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSkge1xuICB9XG5cbiAgb25WYWx1ZUNsaWNrKGV2ZW50OiBhbnksIGl0ZW06IGFueSA9IHt9KSB7XG4gICAgaWYgKGl0ZW0ucmVmZXJlbmNlIHx8IGl0ZW0udmVyc2lvbikge1xuICAgICAgdGhpcy5ncmlkQXBpLm9wZW5Sb3V0ZXJMaW5rKGV2ZW50LCAnZW50cnknKTtcbiAgICB9XG4gIH1cblxuICBnZXRWZXJzaW9uTGluayh2ZXJzaW9uOiBudW1iZXIpIHtcbiAgICBjb25zdCBsaW5rID0gYHZlcnNpb25zLyR7dGhpcy5pdGVtLmlkfT90eXBlPSR7dGhpcy5pdGVtLnR5cGVOYW1lfSZ2ZXJzaW9uPSR7dmVyc2lvbn1gO1xuICAgIHJldHVybiBgPGEgY2xhc3M9XCJsaW5rIHJvdXRlci1saW5rXCIgaHJlZj1cIiR7bGlua31cIiB0YXJnZXQ9XCJfYmxhbmtcIiBvbmNsaWNrPVwicmV0dXJuIGZhbHNlO1wiPiR7dmVyc2lvbn08L2E+YDtcbiAgfVxuXG4gIHByb2Nlc3NJbmRleERhdGEoaWQ6IEluZGV4RGF0YSwgaW5kZXggPSAwLCBmb3JjZSA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIGlkICYmIGlkLmZvcm0gJiYgaWQuZGF0YSA/IHRoaXMuZ3JpZEFwaS5nZXRSZXNvbHZlZERlZnMoSW5kZXhkYXRhU3VtbWFyeUNvbXBvbmVudC5jb2xsZWN0KGlkLmRhdGEsIGlkLmZvcm0uZWxlbWVudHNbaW5kZXhdLmVsZW1lbnRzLCBbXSwgZm9yY2UpKSA6IFtdO1xuICB9XG5cbiAgb25Nb3JlSW5mb1RvZ2dsZShpbmZvOiBib29sZWFuKSB7XG4gICAgdGhpcy5tb3JlSW5mb0FjYyA9IGluZm87XG4gIH1cblxuICBvblN0b3JhZ2VJbmZvVG9nZ2xlKGluZm86IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuc3RvcmFnZUluZm9zKSB7XG4gICAgICB0aGlzLmRtc1NlcnZpY2UuZ2V0RG1zT2JqZWN0QnlQYXJhbXMoe2lkOiB0aGlzLml0ZW0uaWQsIHR5cGU6IHRoaXMuaXRlbS50eXBlTmFtZSwgdmVyc2lvbjogdGhpcy5pdGVtLnZlcnNpb24sIHdpdGhTdG9yYWdlSW5mbzogdHJ1ZX0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoVXRpbHMuY2F0Y2hTa2lwKGVyciA9PiBlcnIuc3RhdHVzID09PSA0MDQpKVxuICAgICAgICApLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIHRoaXMuc3RvcmFnZUluZm9zID0gcmVzLnN0b3JhZ2VJbmZvO1xuICAgICAgICAgIHRoaXMuZGF0YUluZm9BY2MgPSBpbmZvO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB0cmFja0J5SW5kZXgoaW5kZXgsIGl0ZW0pIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmlzVXNlckFsbG93ZWRUb1Nob3dTdG9yYWdlU2VjdGlvbiA9IHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS5oYXNQcml2aWxlZ2UoJ01BTkFHRV9TVE9SQUdFUycpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5kZXhEYXRhIHtcbiAgZm9ybTogYW55O1xuICBkYXRhOiBhbnk7XG59XG4iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvaW5kZXhkYXRhLXN1bW1hcnkvaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQXdCLEtBQUssRUFBa0IsV0FBVyxFQUFFLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUNuRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRXhFLE9BQU8sRUFBQyxVQUFVLEVBQU0sTUFBTSxnQkFBZ0IsQ0FBQztBQVUvQyxNQUFNLE9BQU8seUJBQXlCO0lBdUZwQyxZQUFtQixTQUEyQixFQUNyQyxPQUFvQixFQUNuQixVQUFzQixFQUN0QixXQUF3QjtRQUhmLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQ3JDLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWpGbEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBc0JWLG1CQUFjLEdBQUcsSUFBSSxDQUFDO0lBeUQvQixDQUFDO0lBMUVELElBQ0ksU0FBUyxDQUFDLEVBQWE7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENB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QUFHLENBQUMsV0FBVyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSTtRQUN0QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGlDQUFpQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDN0csQ0FBQzs7O1lBeElGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxxck9BQWlEO2dCQUVqRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7OztZQVpPLGdCQUFnQjtZQUNoQixXQUFXO1lBRmdELFVBQVU7WUFBdkIsV0FBVzs7OzRCQTRCOUQsU0FBUyxTQUFDLGVBQWU7K0JBQ3pCLFNBQVMsU0FBQyxrQkFBa0I7d0JBRTVCLEtBQUs7d0JBT0wsS0FBSzt5QkFTTCxLQUFLOzZCQUNMLEtBQUs7bUJBRUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VXRpbGl0aWVzU2VydmljZX0gZnJvbSAnLi8uLi8uLi91dGlsL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7Q29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQsIFZpZXdDaGlsZCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmFzZVBhcmFtcywgRG1zT2JqZWN0LCBVdGlscywgQmFja2VuZFNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBEbXNTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtHcmlkU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL2dyaWQuc2VydmljZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U2ltcGxlQWNjb3JkaW9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi9hY2NvcmRpb24vc2ltcGxlLWFjY29yZGlvbi9zaW1wbGUtYWNjb3JkaW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge0lTdW1tYXJ5RW50cnlEaWZmVmFsdWV9IGZyb20gJy4vaW5kZXhkYXRhLXN1bW1hcnktZW50cnkuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8taW5kZXhkYXRhLXN1bW1hcnknLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbmRleGRhdGEtc3VtbWFyeS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBJbmRleGRhdGFTdW1tYXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBpc1VzZXJBbGxvd2VkVG9TaG93U3RvcmFnZVNlY3Rpb246IGJvb2xlYW47XG4gIHByaXZhdGUgX2luZGV4RGF0YTogSW5kZXhEYXRhO1xuXG4gIGNvcmVWYWx1ZXM6IGFueVtdO1xuICBkYXRhVmFsdWVzOiBhbnlbXTtcbiAgc3RvcmFnZUluZm9zOiBhbnlbXTtcbiAgaXRlbTogRG1zT2JqZWN0O1xuICBtb3JlSW5mb0FjYyA9IGZhbHNlO1xuICBkYXRhSW5mb0FjYyA9IGZhbHNlO1xuICBkaWZmQWN0aXZlID0gZmFsc2U7XG4gIGVtcHR5U3RhdGUgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdkYXRhQWNjb3JkaW9uJykgZGF0YUFjY29yZGlvbjogU2ltcGxlQWNjb3JkaW9uQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdzdG9yYWdlQWNjb3JkaW9uJykgc3RvcmFnZUFjY29yZGlvbjogU2ltcGxlQWNjb3JkaW9uQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpXG4gIHNldCBpbmRleGRhdGEoaWQ6IEluZGV4RGF0YSkge1xuICAgIHRoaXMuX2luZGV4RGF0YSA9IGlkO1xuICAgIHRoaXMuY29yZVZhbHVlcyA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpZCwgMCkuZmlsdGVyKHZhbHVlID0+ICF2YWx1ZS5uYW1lLnN0YXJ0c1dpdGgoJ3l1dicpKTtcbiAgICB0aGlzLmRhdGFWYWx1ZXMgPSB0aGlzLnByb2Nlc3NJbmRleERhdGEoaWQsIDEpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRtc09iamVjdChpdGVtOiBEbXNPYmplY3QpIHtcbiAgICB0aGlzLml0ZW0gPSBpdGVtO1xuICAgIHRoaXMuc3RvcmFnZUluZm9zID0gbnVsbDtcbiAgICBpZiAodGhpcy5zdG9yYWdlQWNjb3JkaW9uKSB7XG4gICAgICB0aGlzLnN0b3JhZ2VBY2NvcmRpb24ub3BlbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIGJhc2VwYXJhbXM6IEJhc2VQYXJhbXM7XG4gIEBJbnB1dCgpIGVuYWJsZVZlcnNpb25zID0gdHJ1ZTtcblxuICBASW5wdXQoKSBzZXQgZGlmZih7aW5kZXhkYXRhLCBpbmRleGRhdGEyLCBiYXNlcGFyYW1zLCBiYXNlcGFyYW1zMn0pIHtcbiAgICB0aGlzLmRpZmZBY3RpdmUgPSB0cnVlO1xuXG4gICAgY29uc3QgZGlmZlZhbHVlID0gKHZhbDEsIHZhbDIpOiBJU3VtbWFyeUVudHJ5RGlmZlZhbHVlID0+ICEoVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5KHZhbDEpICYmIFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eSh2YWwyKSkgJiYgdmFsMSAhPT0gdmFsMiA/IHt2YWwxLCB2YWwyfSA6IG51bGw7XG5cbiAgICBpZiAoYmFzZXBhcmFtcyAmJiBiYXNlcGFyYW1zMikge1xuICAgICAgdGhpcy5iYXNlcGFyYW1zID0ge30gYXMgQmFzZVBhcmFtcztcbiAgICAgIFsnY29udGVudEZpbGVOYW1lJywgJ2NvbnRlbnRGaWxlU2l6ZScsICdtaW1lR3JvdXAnXVxuICAgICAgICAuZm9yRWFjaChrID0+IGRpZmZWYWx1ZShiYXNlcGFyYW1zW2tdLCBiYXNlcGFyYW1zMltrXSkgJiYgKHRoaXMuYmFzZXBhcmFtc1trXSA9IGRpZmZWYWx1ZShiYXNlcGFyYW1zW2tdLCBiYXNlcGFyYW1zMltrXSkpKTtcbiAgICB9XG5cbiAgICBpZiAoaW5kZXhkYXRhICYmIGluZGV4ZGF0YTIpIHtcbiAgICAgIGNvbnN0IGNvcmVWYWx1ZXMyID0gdGhpcy5wcm9jZXNzSW5kZXhEYXRhKGluZGV4ZGF0YTIsIDAsIHRydWUpLnJlZHVjZSgoYWNjLCBjdXIpID0+IChhY2NbY3VyLnFuYW1lXSA9IGN1ciwgYWNjKSwge30pO1xuICAgICAgY29uc3QgY29yZVZhbHVlcyA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpbmRleGRhdGEsIDAsIHRydWUpXG4gICAgICAgIC5tYXAoKHtsYWJlbCwgX3ZhbHVlLCBxbmFtZSwgcmVmZXJlbmNlfSkgPT4gKHtsYWJlbCwgcmVmZXJlbmNlLCBfdmFsdWU6IGRpZmZWYWx1ZShfdmFsdWUsIGNvcmVWYWx1ZXMyW3FuYW1lXS5fdmFsdWUpfSkpXG4gICAgICAgIC5maWx0ZXIodiA9PiB2Ll92YWx1ZSk7XG5cbiAgICAgIGNvbnN0IGRhdGFWYWx1ZXMyID0gdGhpcy5wcm9jZXNzSW5kZXhEYXRhKGluZGV4ZGF0YTIsIDEsIHRydWUpLnJlZHVjZSgoYWNjLCBjdXIpID0+IChhY2NbY3VyLnFuYW1lXSA9IGN1ciwgYWNjKSwge30pO1xuICAgICAgY29uc3QgZGF0YVZhbHVlcyA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpbmRleGRhdGEsIDEsIHRydWUpXG4gICAgICAgIC5tYXAoKHtsYWJlbCwgX3ZhbHVlLCBxbmFtZSwgcmVmZXJlbmNlfSkgPT4gKHtsYWJlbCwgcmVmZXJlbmNlLCBfdmFsdWU6IGRpZmZWYWx1ZShfdmFsdWUsIGRhdGFWYWx1ZXMyW3FuYW1lXS5fdmFsdWUpfSkpXG4gICAgICAgIC5maWx0ZXIodiA9PiB2Ll92YWx1ZSk7XG5cbiAgICAgIHRoaXMuY29yZVZhbHVlcyA9IGNvcmVWYWx1ZXM7XG4gICAgICB0aGlzLmRhdGFWYWx1ZXMgPSBkYXRhVmFsdWVzO1xuICAgICAgdGhpcy5tb3JlSW5mb0FjYyA9ICEhZGF0YVZhbHVlcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgdGhpcy5lbXB0eVN0YXRlID0gVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5KHRoaXMuY29yZVZhbHVlcykgJiYgVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5KHRoaXMuZGF0YVZhbHVlcykgJiYgVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5KE9iamVjdC5rZXlzKHRoaXMuYmFzZXBhcmFtcyB8fCB7fSkpO1xuICB9XG5cbiAgc3RhdGljIGNvbGxlY3QoZGF0YToge30sIGVsZW1lbnRzOiBhbnlbXSA9IFtdLCBjb2xsZWN0aW9uOiBhbnlbXSwgZm9yY2UgPSBmYWxzZSkge1xuICAgIGVsZW1lbnRzLmZvckVhY2goZWwgPT4ge1xuICAgICAgaWYgKGVsLnR5cGUgIT09ICdUQUJMRScpIHtcbiAgICAgICAgaWYgKGVsLmVsZW1lbnRzKSB7XG4gICAgICAgICAgY29sbGVjdGlvbi5jb25jYXQoSW5kZXhkYXRhU3VtbWFyeUNvbXBvbmVudC5jb2xsZWN0KGRhdGEsIGVsLmVsZW1lbnRzLCBjb2xsZWN0aW9uLCBmb3JjZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCBrZXkgPSBlbC5uYW1lO1xuICAgICAgICAgIGlmIChmb3JjZSB8fCAoZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIChBcnJheS5pc0FycmF5KGRhdGFba2V5XSkgPyBkYXRhW2tleV0ubGVuZ3RoIDogdHJ1ZSkpKSB7XG4gICAgICAgICAgICAvLyBvbmx5IGFkZCBhcnJheXMgd2hlbiB0aGV5IGNvbnRhaW4gYW55IHZhbHVlc1xuICAgICAgICAgICAgY29sbGVjdGlvbi5wdXNoKE9iamVjdC5hc3NpZ24oe30sIGVsLCB7XG4gICAgICAgICAgICAgIHZhbHVlOiBkYXRhW2tleV0sXG4gICAgICAgICAgICAgIG1ldGE6IGRhdGFba2V5ICsgJ19tZXRhJ11cbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgfVxuXG5cbiAgY29uc3RydWN0b3IocHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwdWJsaWMgZ3JpZEFwaTogR3JpZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkbXNTZXJ2aWNlOiBEbXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlKSB7XG4gIH1cblxuICBvblZhbHVlQ2xpY2soZXZlbnQ6IGFueSwgaXRlbTogYW55ID0ge30pIHtcbiAgICBpZiAoaXRlbS5yZWZlcmVuY2UgfHwgaXRlbS52ZXJzaW9uKSB7XG4gICAgICB0aGlzLmdyaWRBcGkub3BlblJvdXRlckxpbmsoZXZlbnQsICdlbnRyeScpO1xuICAgIH1cbiAgfVxuXG4gIGdldFZlcnNpb25MaW5rKHZlcnNpb246IG51bWJlcikge1xuICAgIGNvbnN0IGxpbmsgPSBgdmVyc2lvbnMvJHt0aGlzLml0ZW0uaWR9P3R5cGU9JHt0aGlzLml0ZW0udHlwZU5hbWV9JnZlcnNpb249JHt2ZXJzaW9ufWA7XG4gICAgcmV0dXJuIGA8YSBjbGFzcz1cImxpbmsgcm91dGVyLWxpbmtcIiBocmVmPVwiJHtsaW5rfVwiIHRhcmdldD1cIl9ibGFua1wiIG9uY2xpY2s9XCJyZXR1cm4gZmFsc2U7XCI+JHt2ZXJzaW9ufTwvYT5gO1xuICB9XG5cbiAgcHJvY2Vzc0luZGV4RGF0YShpZDogSW5kZXhEYXRhLCBpbmRleCA9IDAsIGZvcmNlID0gZmFsc2UpIHtcbiAgICByZXR1cm4gaWQgJiYgaWQuZm9ybSAmJiBpZC5kYXRhID8gdGhpcy5ncmlkQXBpLmdldFJlc29sdmVkRGVmcyhJbmRleGRhdGFTdW1tYXJ5Q29tcG9uZW50LmNvbGxlY3QoaWQuZGF0YSwgaWQuZm9ybS5lbGVtZW50c1tpbmRleF0uZWxlbWVudHMsIFtdLCBmb3JjZSkpIDogW107XG4gIH1cblxuICBvbk1vcmVJbmZvVG9nZ2xlKGluZm86IGJvb2xlYW4pIHtcbiAgICB0aGlzLm1vcmVJbmZvQWNjID0gaW5mbztcbiAgfVxuXG4gIG9uU3RvcmFnZUluZm9Ub2dnbGUoaW5mbzogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5zdG9yYWdlSW5mb3MpIHtcbiAgICAgIHRoaXMuZG1zU2VydmljZS5nZXREbXNPYmplY3RCeVBhcmFtcyh7aWQ6IHRoaXMuaXRlbS5pZCwgdHlwZTogdGhpcy5pdGVtLnR5cGVOYW1lLCB2ZXJzaW9uOiB0aGlzLml0ZW0udmVyc2lvbiwgcmVjeWNsZWJpbjogdHJ1ZSwgd2l0aFN0b3JhZ2VJbmZvOiB0cnVlfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcihVdGlscy5jYXRjaFNraXAoZXJyID0+IGVyci5zdGF0dXMgPT09IDQwNCkpXG4gICAgICAgICkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5zdG9yYWdlSW5mb3MgPSByZXMuc3RvcmFnZUluZm87XG4gICAgICAgICAgdGhpcy5kYXRhSW5mb0FjYyA9IGluZm87XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHRyYWNrQnlJbmRleChpbmRleCwgaXRlbSkge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXNVc2VyQWxsb3dlZFRvU2hvd1N0b3JhZ2VTZWN0aW9uID0gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLmhhc1ByaXZpbGVnZSgnTUFOQUdFX1NUT1JBR0VTJyk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRleERhdGEge1xuICBmb3JtOiBhbnk7XG4gIGRhdGE6IGFueTtcbn1cbiJdfQ==
@@ -22,8 +22,8 @@ export class SignatureTabComponent {
22
22
  SignatureTabComponent.decorators = [
23
23
  { type: Component, args: [{
24
24
  selector: 'eo-signature-tab',
25
- template: "<ng-container *ngIf=\"dmsObject.data.yuvsigrequester_meta; else tplNoSignature\">\n\n <section class=\"info\">\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.status'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigstatus_meta\">\n {{dmsObject.data.yuvsigstatus_meta.label}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signedate'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigdate | localeDate: 'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.date'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreqdate | localeDate:'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requester'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigrequester_meta.title\">\n {{dmsObject.data.yuvsigrequester_meta.title}} </div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.subject'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigemailsubject\">{{dmsObject.data.yuvsigemailsubject}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.body'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigemailbody\">{{dmsObject.data.yuvsigemailbody}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigerror\">\n <div class=\"label\">{{'eo.object.signature-tab.label.error'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigerror.length\">{{dmsObject.data.yuvsigerror}}</div>\n </div>\n <div class=\"row\" *ngIf=\"isUserAdmin()\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatform'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigplatform\">{{dmsObject.data.yuvsigplatform}}</div>\n </div>\n <div class=\"row\" *ngIf=\"isUserAdmin()\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatformId'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigplatformid\">{{dmsObject.data.yuvsigplatformid}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signers'|translate}}</div>\n <div class=\"value\">\n <div class=\"signer-container\" *ngFor=\"let s of dmsObject.data.yuvsigners\">\n <span class=\"circle\" [title]=\"'eo.object.signature-tab.order.tooltip' | translate\">{{s.yuvsignerorder}}</span>\n <div class=\"signer\">\n <div class=\"date\" *ngIf=\"s.yuvsignerdate\">{{s.yuvsignerdate | localeDate: 'eoShort'}}</div>\n <div class=\"name\" *ngIf=\"s.yuvsignername\">{{s.yuvsignername}}</div>\n <div class=\"email\" *ngIf=\"s.yuvsigneremail\">{{s.yuvsigneremail}}</div>\n <div class=\"state {{s.yuvsignerstatus}}\"><span *ngIf=\"s.yuvsignerstatus_meta?.label\">{{s.yuvsignerstatus_meta.label}}</span></div>\n <div class=\"reason\" *ngIf=\"s.yuvsignercomment\">{{s.yuvsignercomment}}</div>\n </div>\n\n </div>\n </div>\n </div>\n </section>\n</ng-container>\n<ng-template #tplNoSignature>\n {{'eo.object.signature-tab.no-signatures'|translate}}\n</ng-template>\n",
26
- styles: [":host{display:block;height:100%;overflow-y:auto;padding:var(--app-pane-padding)}:host .row{display:flex;line-height:1.5em;margin:0 calc(var(--app-pane-padding)/-4) 2px}:host .row .label,:host .row .value{margin:calc(var(--app-pane-padding)/4)}:host .row .label{border-radius:2px;color:var(--color-white);flex-basis:30%;flex-shrink:0;margin:0 calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/4);white-space:normal}:host .row .circle,:host .row .label{background-color:var(--color-primary-3);display:inline-block}:host .row .circle{align-self:center;border-radius:50%;color:#fff;height:2em;line-height:1.8em;text-align:center;width:2em}:host .row .signer-container{--signer-border-radius:4px;--signer-icon-color:var(--text-color-hint);--signer-row-gap:calc(var(--app-pane-padding)/2);background-color:var(--panel-background);border-radius:0 var(--signer-border-radius) var(--signer-border-radius) 0;display:flex;margin-bottom:calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/2)}:host .row .signer-container .signer{-moz-column-gap:var(--app-pane-padding);column-gap:var(--app-pane-padding);display:grid;grid-template-areas:\"name name\" \"email email\" \"state date\" \"reason reason\";grid-template-columns:1fr auto;grid-template-rows:auto auto auto auto;margin-left:5px}:host .row .signer-container .signed{--signer-icon-color:var(--color-success)}:host .row .signer-container .cancelled,:host .row .signer-container .expired,:host .row .signer-container .revised{--signer-icon-color:var(--color-warning)}:host .row .signer-container .error{--signer-icon-color:var(--color-error)}:host .row .signer-container .date{-ms-grid-column:3;-ms-grid-row:3;align-self:center;color:var(--text-color-caption);grid-area:date;margin-top:var(--signer-row-gap)}:host .row .signer-container .name{-ms-grid-column:1;-ms-grid-column-span:3;-ms-grid-row:1;font-weight:var(--font-weight-bold);grid-area:name}:host .row .signer-container .email{-ms-grid-column:1;-ms-grid-column-span:3;-ms-grid-row:2;grid-area:email}:host .row .signer-container .state{-ms-grid-column:1;-ms-grid-row:3;grid-area:state;margin-top:var(--signer-row-gap)}:host .row .signer-container .state span{background-color:var(--signer-icon-color);border-radius:4px;color:#fff;display:inline-block;padding:2px 4px 1px}:host .row .signer-container .reason{-ms-grid-column:1;-ms-grid-column-span:3;-ms-grid-row:4;grid-area:reason;margin-top:var(--signer-row-gap)}"]
25
+ template: "<ng-container *ngIf=\"dmsObject.data.yuvsigstatus_meta; else tplNoSignature\">\n\n <section class=\"info\">\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.status'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigstatus_meta\">\n {{dmsObject.data.yuvsigstatus_meta.label}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigerror\">\n <div class=\"label\">{{'eo.object.signature-tab.label.error'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigerror.length\">{{dmsObject.data.yuvsigerror}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signedate'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigdate | localeDate: 'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.date'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreqdate | localeDate:'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requester'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigrequester_meta.title\">\n {{dmsObject.data.yuvsigrequester_meta.title}} </div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.subject'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigemailsubject\">{{dmsObject.data.yuvsigemailsubject}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.body'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigemailbody\">{{dmsObject.data.yuvsigemailbody}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigcanceledby\">\n <div class=\"label\">{{'eo.object.signature-tab.label.canceledby'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigcanceledby}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigreason\">\n <div class=\"label\">{{'eo.object.signature-tab.label.reason'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreason}}</div>\n </div>\n <div class=\"row\" *ngIf=\"isUserAdmin()\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatform'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigplatform\">{{dmsObject.data.yuvsigplatform}}</div>\n </div>\n <div class=\"row\" *ngIf=\"isUserAdmin()\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatformId'|translate}}</div>\n <div class=\"value\" *ngIf=\"dmsObject.data.yuvsigplatformid\">{{dmsObject.data.yuvsigplatformid}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signers'|translate}}</div>\n <div class=\"value\">\n <div class=\"signer-container\" *ngFor=\"let s of dmsObject.data.yuvsigners\">\n <span class=\"circle\" [title]=\"'eo.object.signature-tab.order.tooltip' | translate\">{{s.yuvsignerorder}}</span>\n <div class=\"signer\">\n <div class=\"date\" *ngIf=\"s.yuvsignerdate\">{{s.yuvsignerdate | localeDate: 'eoShort'}}</div>\n <div class=\"name\" *ngIf=\"s.yuvsignername\">{{s.yuvsignername}}</div>\n <div class=\"email\" *ngIf=\"s.yuvsigneremail\">{{s.yuvsigneremail}}</div>\n <div class=\"state {{s.yuvsignerstatus}}\"><span *ngIf=\"s.yuvsignerstatus_meta?.label\">{{s.yuvsignerstatus_meta.label}}</span></div>\n <div class=\"reason\" *ngIf=\"s.yuvsignercomment\">{{s.yuvsignercomment}}</div>\n </div>\n\n </div>\n </div>\n </div>\n </section>\n</ng-container>\n<ng-template #tplNoSignature>\n <div class=\"signature-not-found\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_signature.svg', text:'eo.object.signature-tab.no-signatures'}\"></eo-error-message>\n </div>\n</ng-template>\n",
26
+ styles: [":host{display:block;height:100%;overflow-y:auto;padding:var(--app-pane-padding)}:host .row{display:flex;line-height:1.5em;margin:0 calc(var(--app-pane-padding)/-4) 2px}:host .row .label,:host .row .value{margin:calc(var(--app-pane-padding)/4)}:host .row .label{border-radius:2px;color:var(--color-white);flex-basis:30%;flex-shrink:0;margin:0 calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/4);white-space:normal}:host .row .circle,:host .row .label{background-color:var(--color-primary-3);display:inline-block}:host .row .circle{align-self:center;border-radius:50%;color:#fff;height:2em;line-height:1.8em;text-align:center;width:2em}:host .row .signer-container{--signer-border-radius:4px;--signer-icon-color:var(--text-color-hint);--signer-row-gap:calc(var(--app-pane-padding)/2);background-color:var(--panel-background);border-radius:0 var(--signer-border-radius) var(--signer-border-radius) 0;display:flex;margin-bottom:calc(var(--app-pane-padding)/4);padding:calc(var(--app-pane-padding)/2)}:host .row .signer-container .signer{-moz-column-gap:var(--app-pane-padding);column-gap:var(--app-pane-padding);display:grid;grid-template-areas:\"name name\" \"email email\" \"state date\" \"reason reason\";grid-template-columns:1fr auto;grid-template-rows:auto auto auto auto;margin-left:5px}:host .row .signer-container .signed{--signer-icon-color:var(--color-success)}:host .row .signer-container .cancelled,:host .row .signer-container .expired,:host .row .signer-container .revised{--signer-icon-color:var(--color-warning)}:host .row .signer-container .error{--signer-icon-color:var(--color-error)}:host .row .signer-container .date{-ms-grid-column:3;-ms-grid-row:3;align-self:center;color:var(--text-color-caption);grid-area:date;margin-top:var(--signer-row-gap)}:host .row .signer-container .name{-ms-grid-column:1;-ms-grid-column-span:3;-ms-grid-row:1;font-weight:var(--font-weight-bold);grid-area:name}:host .row .signer-container .email{-ms-grid-column:1;-ms-grid-column-span:3;-ms-grid-row:2;grid-area:email}:host .row .signer-container .state{-ms-grid-column:1;-ms-grid-row:3;grid-area:state;margin-top:var(--signer-row-gap)}:host .row .signer-container .state span{background-color:var(--signer-icon-color);border-radius:4px;color:#fff;display:inline-block;padding:2px 4px 1px}:host .row .signer-container .reason{-ms-grid-column:1;-ms-grid-column-span:3;-ms-grid-row:4;grid-area:reason;margin-top:var(--signer-row-gap)}:host .signature-not-found{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}"]
27
27
  },] }
28
28
  ];
29
29
  SignatureTabComponent.ctorParameters = () => [
@@ -32,4 +32,4 @@ SignatureTabComponent.ctorParameters = () => [
32
32
  SignatureTabComponent.propDecorators = {
33
33
  dmsObject: [{ type: Input }]
34
34
  };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay91aS9zaWduYXR1cmUtdGFiL3NpZ25hdHVyZS10YWIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBb0IsV0FBVyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBTzVELE1BQU0sT0FBTyxxQkFBcUI7SUFnQmhDLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQWZELElBQ0ksU0FBUyxDQUFDLElBQWU7UUFDM0IsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksRUFBRTtZQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQVFELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssbUJBQW1CLENBQUMsQ0FBQztJQUN6RSxDQUFDOzs7WUE3QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLGc1R0FBNkM7O2FBRTlDOzs7WUFOMEIsV0FBVzs7O3dCQVluQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RG1zT2JqZWN0LCBFb1VzZXIsIFVzZXJTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1zaWduYXR1cmUtdGFiJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZ25hdHVyZS10YWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaWduYXR1cmUtdGFiLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2lnbmF0dXJlVGFiQ29tcG9uZW50IHtcblxuICBwcml2YXRlIF9kbXNPYmplY3Q6IERtc09iamVjdDtcbiAgdXNlcjogRW9Vc2VyO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkbXNPYmplY3QoaXRlbTogRG1zT2JqZWN0KSB7XG4gICAgaWYgKHRoaXMuX2Rtc09iamVjdCAhPT0gaXRlbSkge1xuICAgICAgdGhpcy5fZG1zT2JqZWN0ID0gaXRlbTtcbiAgICB9XG4gIH1cblxuICBnZXQgZG1zT2JqZWN0KCk6IERtc09iamVjdCB7XG4gICAgcmV0dXJuIHRoaXMuX2Rtc09iamVjdDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy51c2VyU2VydmljZS51c2VyJC5zdWJzY3JpYmUoKHVzZXIpID0+IHtcbiAgICAgIHRoaXMudXNlciA9IHVzZXI7XG4gICAgfSk7XG4gIH1cblxuICBpc1VzZXJBZG1pbigpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyLnJvbGVzLmZpbmQocm9sZSA9PiByb2xlLm5hbWUgPT09ICdTeXN0ZW0tQWRtaW4tUm9sZScpO1xuICB9XG59XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay91aS9zaWduYXR1cmUtdGFiL3NpZ25hdHVyZS10YWIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBb0IsV0FBVyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBTzVELE1BQU0sT0FBTyxxQkFBcUI7SUFnQmhDLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQWZELElBQ0ksU0FBUyxDQUFDLElBQWU7UUFDM0IsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksRUFBRTtZQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQVFELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssbUJBQW1CLENBQUMsQ0FBQztJQUN6RSxDQUFDOzs7WUE3QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLHErSEFBNkM7O2FBRTlDOzs7WUFOMEIsV0FBVzs7O3dCQVluQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RG1zT2JqZWN0LCBFb1VzZXIsIFVzZXJTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1zaWduYXR1cmUtdGFiJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZ25hdHVyZS10YWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaWduYXR1cmUtdGFiLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2lnbmF0dXJlVGFiQ29tcG9uZW50IHtcblxuICBwcml2YXRlIF9kbXNPYmplY3Q6IERtc09iamVjdDtcbiAgdXNlcjogRW9Vc2VyO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkbXNPYmplY3QoaXRlbTogRG1zT2JqZWN0KSB7XG4gICAgaWYgKHRoaXMuX2Rtc09iamVjdCAhPT0gaXRlbSkge1xuICAgICAgdGhpcy5fZG1zT2JqZWN0ID0gaXRlbTtcbiAgICB9XG4gIH1cblxuICBnZXQgZG1zT2JqZWN0KCk6IERtc09iamVjdCB7XG4gICAgcmV0dXJuIHRoaXMuX2Rtc09iamVjdDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy51c2VyU2VydmljZS51c2VyJC5zdWJzY3JpYmUoKHVzZXIpID0+IHtcbiAgICAgIHRoaXMudXNlciA9IHVzZXI7XG4gICAgfSk7XG4gIH1cblxuICBpc1VzZXJBZG1pbigpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyLnJvbGVzLmZpbmQocm9sZSA9PiByb2xlLm5hbWUgPT09ICdTeXN0ZW0tQWRtaW4tUm9sZScpO1xuICB9XG59XG4iXX0=