@fundamental-ngx/platform 0.46.2-rc.9 → 0.47.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/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +2 -2
  2. package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +2 -2
  3. package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +2 -2
  4. package/esm2022/approval-flow/approval-flow.component.mjs +3 -3
  5. package/esm2022/dynamic-page/dynamic-page.component.mjs +3 -3
  6. package/esm2022/feed-input/feed-input.component.mjs +3 -3
  7. package/esm2022/form/combobox/combobox/combobox.component.mjs +3 -3
  8. package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +3 -3
  9. package/esm2022/form/combobox/commons/base-combobox.mjs +12 -1
  10. package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +2 -2
  11. package/esm2022/form/form-group/form-group.component.mjs +3 -3
  12. package/esm2022/form/input-group/input-group.component.mjs +3 -3
  13. package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +4 -2
  14. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +22 -25
  15. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +3 -3
  16. package/esm2022/form/multi-input/base-multi-input.mjs +5 -1
  17. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +3 -3
  18. package/esm2022/form/multi-input/multi-input.component.mjs +3 -3
  19. package/esm2022/form/select/select/select.component.mjs +3 -3
  20. package/esm2022/form/step-input/number/number-step-input.component.mjs +3 -3
  21. package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +3 -3
  22. package/esm2022/link/link.component.mjs +3 -3
  23. package/esm2022/list/list.component.mjs +12 -5
  24. package/esm2022/list/object-list-item/object-list-item-row.component.mjs +3 -3
  25. package/esm2022/list/object-list-item/object-list-item.component.mjs +3 -3
  26. package/esm2022/menu/menu-item.component.mjs +3 -3
  27. package/esm2022/menu/menu.component.mjs +3 -3
  28. package/esm2022/message-popover/components/message-view/message-view.component.mjs +3 -3
  29. package/esm2022/message-popover/message-popover.component.mjs +3 -3
  30. package/esm2022/object-attribute/object-attribute.component.mjs +3 -3
  31. package/esm2022/page-footer/page-footer.component.mjs +3 -3
  32. package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +3 -3
  33. package/esm2022/search-field/search-field.component.mjs +3 -3
  34. package/esm2022/split-menu-button/split-menu-button.component.mjs +3 -3
  35. package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +2 -2
  36. package/esm2022/table/table.component.mjs +3 -3
  37. package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +2 -2
  38. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +3 -3
  39. package/esm2022/variant-management/variant-management.component.mjs +3 -3
  40. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +3 -3
  41. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +5 -5
  42. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  43. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +2 -2
  44. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  45. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +2 -2
  46. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  47. package/fesm2022/fundamental-ngx-platform-form.mjs +58 -44
  48. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  49. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +2 -2
  50. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  51. package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
  52. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  53. package/fesm2022/fundamental-ngx-platform-list.mjs +15 -8
  54. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  55. package/fesm2022/fundamental-ngx-platform-menu.mjs +4 -4
  56. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  57. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +4 -4
  58. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  59. package/fesm2022/fundamental-ngx-platform-object-attribute.mjs +2 -2
  60. package/fesm2022/fundamental-ngx-platform-object-attribute.mjs.map +1 -1
  61. package/fesm2022/fundamental-ngx-platform-page-footer.mjs +2 -2
  62. package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
  63. package/fesm2022/fundamental-ngx-platform-search-field.mjs +4 -4
  64. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  65. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +2 -2
  66. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  67. package/fesm2022/fundamental-ngx-platform-table.mjs +3 -3
  68. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  69. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +3 -3
  70. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  71. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +2 -2
  72. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  73. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +2 -2
  74. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  75. package/form/combobox/commons/base-combobox.d.ts +2 -0
  76. package/form/multi-combobox/multi-combobox/multi-combobox.component.d.ts +4 -4
  77. package/fundamental-ngx-platform-v0.47.0-rc.1.tgz +0 -0
  78. package/list/list.component.d.ts +3 -1
  79. package/package.json +4 -4
  80. package/schematics/ng-add/index.js +1 -1
  81. package/fundamental-ngx-platform-v0.46.2-rc.9.tgz +0 -0
@@ -101,7 +101,7 @@ export class ApprovalFlowUserListComponent {
101
101
  }
102
102
  }
103
103
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ApprovalFlowUserListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
104
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ApprovalFlowUserListComponent, isStandalone: true, selector: "fdp-approval-flow-user-list", inputs: { users: "users", selectedUsers: "selectedUsers", isSelectable: "isSelectable" }, outputs: { onUserClick: "onUserClick", onSelectionChange: "onSelectionChange" }, host: { classAttribute: "fdp-approval-flow-user-list" }, viewQueries: [{ propertyName: "list", first: true, predicate: ListComponent, descendants: true }, { propertyName: "listItems", predicate: StandardListItemComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"fdp-approval-flow-user-list__selected-count\" *ngIf=\"_selectedItems.length\">\n <ng-container *ngIf=\"_selectedItems.length === 1; else multipleItems\">\n {{ 'platformApprovalFlow.userListSelectedItemsCountSingular' | fdTranslate }}\n </ng-container>\n\n <ng-template #multipleItems>\n {{ 'platformApprovalFlow.userListSelectedItemsCountPlural' | fdTranslate : { count: _selectedItems.length } }}\n </ng-template>\n</div>\n\n<fdp-list\n [selectionMode]=\"isSelectable ? 'multi' : 'none'\"\n [selection]=\"isSelectable\"\n [navigationIndicator]=\"true\"\n [hasByLine]=\"true\"\n [(ngModel)]=\"_selectedItems\"\n [selectedItems]=\"_selectedItems\"\n (selectedItemChange)=\"_onSelect($event)\"\n>\n <fdp-standard-list-item\n *ngFor=\"let _user of _displayUsers; trackBy: _trackByFn\"\n [attr.id]=\"_idPrefix + _user.id\"\n [avatar]=\"{ image: _user.imgUrl, ariaLabel: _user.name }\"\n [description]=\"_user.description\"\n [ariaLabel]=\"_user.name\"\n [title]=\"_user.name\"\n (click)=\"$event.stopPropagation(); onUserClick.emit(_user)\"\n ></fdp-standard-list-item>\n</fdp-list>\n", styles: [".fdp-approval-flow-user-list{display:block;margin-top:-1rem}.fdp-approval-flow-user-list__selected-count{line-height:2rem;margin:0 -1rem;padding:0 1rem;background:#f2f2f2;background:var(--sapList_HeaderBackground, #f2f2f2)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ListComponent, selector: "fdp-list", inputs: ["selectedItems", "ariaSetsize", "ariaMultiselectable", "loadTitle", "loadingLabel", "delayTime", "itemSize", "loadMore", "loadOnScroll", "role", "listType", "maxHeight", "noBorder", "scrollOffsetPercentage", "selection", "selectionMode", "value", "rowSelection", "dataSource", "navigated", "navigationIndicator", "hasByLine", "hasObject", "unreadIndicator"], outputs: ["selectedItemChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: StandardListItemComponent, selector: "fdp-standard-list-item" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
104
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ApprovalFlowUserListComponent, isStandalone: true, selector: "fdp-approval-flow-user-list", inputs: { users: "users", selectedUsers: "selectedUsers", isSelectable: "isSelectable" }, outputs: { onUserClick: "onUserClick", onSelectionChange: "onSelectionChange" }, host: { classAttribute: "fdp-approval-flow-user-list" }, viewQueries: [{ propertyName: "list", first: true, predicate: ListComponent, descendants: true }, { propertyName: "listItems", predicate: StandardListItemComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"fdp-approval-flow-user-list__selected-count\" *ngIf=\"_selectedItems.length\">\n <ng-container *ngIf=\"_selectedItems.length === 1; else multipleItems\">\n {{ 'platformApprovalFlow.userListSelectedItemsCountSingular' | fdTranslate }}\n </ng-container>\n\n <ng-template #multipleItems>\n {{ 'platformApprovalFlow.userListSelectedItemsCountPlural' | fdTranslate : { count: _selectedItems.length } }}\n </ng-template>\n</div>\n\n<fdp-list\n [selectionMode]=\"isSelectable ? 'multi' : 'none'\"\n [selection]=\"isSelectable\"\n [navigationIndicator]=\"true\"\n [hasByLine]=\"true\"\n [(ngModel)]=\"_selectedItems\"\n [selectedItems]=\"_selectedItems\"\n (selectedItemChange)=\"_onSelect($event)\"\n>\n <fdp-standard-list-item\n *ngFor=\"let _user of _displayUsers; trackBy: _trackByFn\"\n [attr.id]=\"_idPrefix + _user.id\"\n [avatar]=\"{ image: _user.imgUrl, ariaLabel: _user.name }\"\n [description]=\"_user.description\"\n [ariaLabel]=\"_user.name\"\n [title]=\"_user.name\"\n (click)=\"$event.stopPropagation(); onUserClick.emit(_user)\"\n ></fdp-standard-list-item>\n</fdp-list>\n", styles: [".fdp-approval-flow-user-list{display:block;margin-top:-1rem}.fdp-approval-flow-user-list__selected-count{line-height:2rem;margin:0 -1rem;padding:0 1rem;background:#f2f2f2;background:var(--sapList_HeaderBackground, #f2f2f2)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ListComponent, selector: "fdp-list", inputs: ["selectedItems", "ariaSetsize", "ariaMultiselectable", "loadTitle", "loadingLabel", "delayTime", "itemSize", "loadMore", "loadOnScroll", "role", "listType", "maxHeight", "noBorder", "scrollOffsetPercentage", "selection", "selectionMode", "value", "rowSelection", "dataSource", "navigated", "navigationIndicator", "hasByLine", "hasObject", "unreadIndicator", "interceptTabKey"], outputs: ["selectedItemChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: StandardListItemComponent, selector: "fdp-standard-list-item" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
105
105
  }
106
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ApprovalFlowUserListComponent, decorators: [{
107
107
  type: Component,
@@ -129,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
129
129
  type: ViewChildren,
130
130
  args: [StandardListItemComponent]
131
131
  }] } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy11c2VyLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2FwcHJvdmFsLWZsb3cvYXBwcm92YWwtZmxvdy11c2VyLWxpc3QvYXBwcm92YWwtZmxvdy11c2VyLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2FwcHJvdmFsLWZsb3cvYXBwcm92YWwtZmxvdy11c2VyLWxpc3QvYXBwcm92YWwtZmxvdy11c2VyLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFFVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUVILGFBQWEsRUFFYix5QkFBeUIsRUFDNUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFHdkMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUM7QUFDbkMsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBRTFCOzs7R0FHRztBQWFILE1BQU0sT0FBTyw2QkFBNkI7SUE4Q3RDLGNBQWM7SUFDZCxZQUFvQixJQUF1QjtRQUF2QixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQTlDM0MsMEJBQTBCO1FBRTFCLFVB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RSxXQUFXLCtWQUFFLEtBQUssbUhBQUUseUJBQXlCLDhEQUFFLGVBQWU7OzJGQUVwRiw2QkFBNkI7a0JBWnpDLFNBQVM7K0JBQ0ksNkJBQTZCLGlCQUd4QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLEtBQUssRUFBRSw2QkFBNkI7cUJBQ3ZDLGNBQ1csSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLHlCQUF5QixFQUFFLGVBQWUsQ0FBQzt3R0FLOUYsS0FBSztzQkFESixLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7O1FBS04sK0RBQStEO1FBQy9ELFdBQVc7c0JBRlYsTUFBTTs7UUFNUCwrREFBK0Q7UUFDL0QsaUJBQWlCO3NCQUZoQixNQUFNO2dCQU1QLElBQUk7c0JBREgsU0FBUzt1QkFBQyxhQUFhO2dCQUt4QixTQUFTO3NCQURSLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHtcbiAgICBCYXNlTGlzdEl0ZW0sXG4gICAgTGlzdENvbXBvbmVudCxcbiAgICBTZWxlY3Rpb25DaGFuZ2VFdmVudCxcbiAgICBTdGFuZGFyZExpc3RJdGVtQ29tcG9uZW50XG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vbGlzdCc7XG5pbXBvcnQgeyB0cmFja0J5Rm4gfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCB7IEFwcHJvdmFsVXNlciB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5jb25zdCBJVEVNU19SRU5ERVJFRF9BVF9PTkNFID0gMTAwO1xuY29uc3QgSU5URVJWQUxfSU5fTVMgPSAxMDtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogQXBwcm92YWxGbG93VXNlckxpc3QgY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjQwLjBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtYXBwcm92YWwtZmxvdy11c2VyLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1mbG93LXVzZXItbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYXBwcm92YWwtZmxvdy11c2VyLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZHAtYXBwcm92YWwtZmxvdy11c2VyLWxpc3QnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBMaXN0Q29tcG9uZW50LCBGb3Jtc01vZHVsZSwgTmdGb3IsIFN0YW5kYXJkTGlzdEl0ZW1Db21wb25lbnQsIEZkVHJhbnNsYXRlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgQXBwcm92YWxGbG93VXNlckxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgLyoqIEFwcHJvdmFsIGZsb3cgdXNlcnMgKi9cbiAgICBASW5wdXQoKVxuICAgIHVzZXJzOiBBcHByb3ZhbFVzZXJbXSA9IFtdO1xuXG4gICAgLyoqIEFwcHJvdmFsIGZsb3cgc2VsZWN0ZWQgdXNlcnMgKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGVkVXNlcnM6IEFwcHJvdmFsVXNlcltdID0gW107XG5cbiAgICAvKiogV2hldGhlciB0aGUgbGlzdCBpcyBzZWxlY3RhYmxlICovXG4gICAgQElucHV0KClcbiAgICBpc1NlbGVjdGFibGUgPSB0cnVlO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgb24gdXNlciBjbGljayAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIG9uVXNlckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxBcHByb3ZhbFVzZXI+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCBvbiBzZWxlY3Rpb24gY2hhbmdlICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgb25TZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFwcHJvdmFsVXNlcltdPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKExpc3RDb21wb25lbnQpXG4gICAgbGlzdDogTGlzdENvbXBvbmVudDxBcHByb3ZhbFVzZXI+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkcmVuKFN0YW5kYXJkTGlzdEl0ZW1Db21wb25lbnQpXG4gICAgbGlzdEl0ZW1zOiBRdWVyeUxpc3Q8U3RhbmRhcmRMaXN0SXRlbUNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZWxlY3RlZEl0ZW1zOiBCYXNlTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaWRQcmVmaXggPSAnYXBwcm92YWwtbm9kZS11c2VyLSc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF90cmFja0J5Rm4gPSB0cmFja0J5Rm47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kaXNwbGF5VXNlcnM6IEFwcHJvdmFsVXNlcltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ludGVydmFsSUQ/OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRVc2Vycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQXBwcm92ZXJzTmFtZXMgPSB0aGlzLnNlbGVjdGVkVXNlcnMubWFwKChhcHByb3ZlcikgPT4gYXBwcm92ZXIubmFtZSk7XG5cbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMgPSB0aGlzLmxpc3RJdGVtcy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGl0ZW0pID0+ICEhaXRlbS5hdmF0YXI/LmFyaWFMYWJlbCAmJiBzZWxlY3RlZEFwcHJvdmVyc05hbWVzLmluY2x1ZGVzKGl0ZW0uYXZhdGFyLmFyaWFMYWJlbClcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uX3NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3QuX3NlbGVjdEl0ZW0oaXRlbSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy51c2Vycykge1xuICAgICAgICAgICAgdGhpcy5fY29sbGVjdERhdGFQcm9ncmVzc2l2ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2lsbEludGVydmFsKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25TZWxlY3QoZXZlbnQ6IFNlbGVjdGlvbkNoYW5nZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMgPSBldmVudC5zZWxlY3RlZEl0ZW1zO1xuXG4gICAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLl9nZXRVc2Vyc0Zyb21TZWxlY3RlZEl0ZW1zKGV2ZW50LnNlbGVjdGVkSXRlbXMpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFVzZXJzRnJvbVNlbGVjdGVkSXRlbXMoaXRlbXM6IEJhc2VMaXN0SXRlbVtdKTogQXBwcm92YWxVc2VyW10ge1xuICAgICAgICByZXR1cm4gaXRlbXNcbiAgICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IHRoaXMudXNlcnMuZmluZCgodXNlcikgPT4gYCR7dGhpcy5faWRQcmVmaXggKyB1c2VyLmlkfWAgPT09IGl0ZW0uaXRlbUVsLm5hdGl2ZUVsZW1lbnQuaWQpKVxuICAgICAgICAgICAgLmZpbHRlcigodSk6IHUgaXMgQXBwcm92YWxVc2VyID0+ICEhdSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jb2xsZWN0RGF0YVByb2dyZXNzaXZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9raWxsSW50ZXJ2YWwoKTtcbiAgICAgICAgdGhpcy5fZGlzcGxheVVzZXJzID0gW107XG5cbiAgICAgICAgaWYgKCF0aGlzLnVzZXJzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb25UcmFja2VyID0geyBjdXJyZW50SW5kZXg6IDAgfTtcblxuICAgICAgICB0aGlzLl91c2VyQ29sbGVjdG9ySW50ZXJ2YWxGbihjb2xsZWN0aW9uVHJhY2tlcik7XG4gICAgICAgIHRoaXMuX2ludGVydmFsSUQgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoXG4gICAgICAgICAgICB0aGlzLl91c2VyQ29sbGVjdG9ySW50ZXJ2YWxGbi5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgSU5URVJWQUxfSU5fTVMsXG4gICAgICAgICAgICBjb2xsZWN0aW9uVHJhY2tlclxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdXNlckNvbGxlY3RvckludGVydmFsRm4odHJhY2tlcjogeyBjdXJyZW50SW5kZXg6IG51bWJlciB9KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5leHRJbmRleCA9IHRyYWNrZXIuY3VycmVudEluZGV4ICsgSVRFTVNfUkVOREVSRURfQVRfT05DRTtcblxuICAgICAgICBjb25zdCBjb2xsZWN0ZWRVc2VyczogQXBwcm92YWxVc2VyW10gPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gdHJhY2tlci5jdXJyZW50SW5kZXg7IGkgPD0gbmV4dEluZGV4OyBpKyspIHtcbiAgICAgICAgICAgIGlmIChpID49IHRoaXMudXNlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fa2lsbEludGVydmFsKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbGxlY3RlZFVzZXJzLnB1c2godGhpcy51c2Vyc1tpXSk7XG4gICAgICAgIH1cblxuICAgICAgICB0cmFja2VyLmN1cnJlbnRJbmRleCArPSBJVEVNU19SRU5ERVJFRF9BVF9PTkNFO1xuXG4gICAgICAgIHRoaXMuX2Rpc3BsYXlVc2Vycy5wdXNoKC4uLmNvbGxlY3RlZFVzZXJzKTtcbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfa2lsbEludGVydmFsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faW50ZXJ2YWxJRCkge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbElEKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy11c2VyLWxpc3RfX3NlbGVjdGVkLWNvdW50XCIgKm5nSWY9XCJfc2VsZWN0ZWRJdGVtcy5sZW5ndGhcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX3NlbGVjdGVkSXRlbXMubGVuZ3RoID09PSAxOyBlbHNlIG11bHRpcGxlSXRlbXNcIj5cbiAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93LnVzZXJMaXN0U2VsZWN0ZWRJdGVtc0NvdW50U2luZ3VsYXInIHwgZmRUcmFuc2xhdGUgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbXVsdGlwbGVJdGVtcz5cbiAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93LnVzZXJMaXN0U2VsZWN0ZWRJdGVtc0NvdW50UGx1cmFsJyB8IGZkVHJhbnNsYXRlIDogeyBjb3VudDogX3NlbGVjdGVkSXRlbXMubGVuZ3RoIH0gfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjxmZHAtbGlzdFxuICAgIFtzZWxlY3Rpb25Nb2RlXT1cImlzU2VsZWN0YWJsZSA/ICdtdWx0aScgOiAnbm9uZSdcIlxuICAgIFtzZWxlY3Rpb25dPVwiaXNTZWxlY3RhYmxlXCJcbiAgICBbbmF2aWdhdGlvbkluZGljYXRvcl09XCJ0cnVlXCJcbiAgICBbaGFzQnlMaW5lXT1cInRydWVcIlxuICAgIFsobmdNb2RlbCldPVwiX3NlbGVjdGVkSXRlbXNcIlxuICAgIFtzZWxlY3RlZEl0ZW1zXT1cIl9zZWxlY3RlZEl0ZW1zXCJcbiAgICAoc2VsZWN0ZWRJdGVtQ2hhbmdlKT1cIl9vblNlbGVjdCgkZXZlbnQpXCJcbj5cbiAgICA8ZmRwLXN0YW5kYXJkLWxpc3QtaXRlbVxuICAgICAgICAqbmdGb3I9XCJsZXQgX3VzZXIgb2YgX2Rpc3BsYXlVc2VyczsgdHJhY2tCeTogX3RyYWNrQnlGblwiXG4gICAgICAgIFthdHRyLmlkXT1cIl9pZFByZWZpeCArIF91c2VyLmlkXCJcbiAgICAgICAgW2F2YXRhcl09XCJ7IGltYWdlOiBfdXNlci5pbWdVcmwsIGFyaWFMYWJlbDogX3VzZXIubmFtZSB9XCJcbiAgICAgICAgW2Rlc2NyaXB0aW9uXT1cIl91c2VyLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCJfdXNlci5uYW1lXCJcbiAgICAgICAgW3RpdGxlXT1cIl91c2VyLm5hbWVcIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBvblVzZXJDbGljay5lbWl0KF91c2VyKVwiXG4gICAgPjwvZmRwLXN0YW5kYXJkLWxpc3QtaXRlbT5cbjwvZmRwLWxpc3Q+XG4iXX0=
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtZmxvdy11c2VyLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2FwcHJvdmFsLWZsb3cvYXBwcm92YWwtZmxvdy11c2VyLWxpc3QvYXBwcm92YWwtZmxvdy11c2VyLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2FwcHJvdmFsLWZsb3cvYXBwcm92YWwtZmxvdy11c2VyLWxpc3QvYXBwcm92YWwtZmxvdy11c2VyLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFFVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUVILGFBQWEsRUFFYix5QkFBeUIsRUFDNUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFHdkMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUM7QUFDbkMsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBRTFCOzs7R0FHRztBQWFILE1BQU0sT0FBTyw2QkFBNkI7SUE4Q3RDLGNBQWM7SUFDZCxZQUFvQixJQUF1QjtRQUF2QixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQTlDM0MsMEJBQTBCO1FBRTFCLFVB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RSxXQUFXLCtWQUFFLEtBQUssbUhBQUUseUJBQXlCLDhEQUFFLGVBQWU7OzJGQUVwRiw2QkFBNkI7a0JBWnpDLFNBQVM7K0JBQ0ksNkJBQTZCLGlCQUd4QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLEtBQUssRUFBRSw2QkFBNkI7cUJBQ3ZDLGNBQ1csSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLHlCQUF5QixFQUFFLGVBQWUsQ0FBQzt3R0FLOUYsS0FBSztzQkFESixLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7O1FBS04sK0RBQStEO1FBQy9ELFdBQVc7c0JBRlYsTUFBTTs7UUFNUCwrREFBK0Q7UUFDL0QsaUJBQWlCO3NCQUZoQixNQUFNO2dCQU1QLElBQUk7c0JBREgsU0FBUzt1QkFBQyxhQUFhO2dCQUt4QixTQUFTO3NCQURSLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHtcbiAgICBCYXNlTGlzdEl0ZW0sXG4gICAgTGlzdENvbXBvbmVudCxcbiAgICBTZWxlY3Rpb25DaGFuZ2VFdmVudCxcbiAgICBTdGFuZGFyZExpc3RJdGVtQ29tcG9uZW50XG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vbGlzdCc7XG5pbXBvcnQgeyB0cmFja0J5Rm4gfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCB7IEFwcHJvdmFsVXNlciB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5jb25zdCBJVEVNU19SRU5ERVJFRF9BVF9PTkNFID0gMTAwO1xuY29uc3QgSU5URVJWQUxfSU5fTVMgPSAxMDtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogQXBwcm92YWxGbG93VXNlckxpc3QgY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjQwLjBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtYXBwcm92YWwtZmxvdy11c2VyLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1mbG93LXVzZXItbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYXBwcm92YWwtZmxvdy11c2VyLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZHAtYXBwcm92YWwtZmxvdy11c2VyLWxpc3QnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBMaXN0Q29tcG9uZW50LCBGb3Jtc01vZHVsZSwgTmdGb3IsIFN0YW5kYXJkTGlzdEl0ZW1Db21wb25lbnQsIEZkVHJhbnNsYXRlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgQXBwcm92YWxGbG93VXNlckxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgLyoqIEFwcHJvdmFsIGZsb3cgdXNlcnMgKi9cbiAgICBASW5wdXQoKVxuICAgIHVzZXJzOiBBcHByb3ZhbFVzZXJbXSA9IFtdO1xuXG4gICAgLyoqIEFwcHJvdmFsIGZsb3cgc2VsZWN0ZWQgdXNlcnMgKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGVkVXNlcnM6IEFwcHJvdmFsVXNlcltdID0gW107XG5cbiAgICAvKiogV2hldGhlciB0aGUgbGlzdCBpcyBzZWxlY3RhYmxlICovXG4gICAgQElucHV0KClcbiAgICBpc1NlbGVjdGFibGUgPSB0cnVlO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgb24gdXNlciBjbGljayAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIG9uVXNlckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxBcHByb3ZhbFVzZXI+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCBvbiBzZWxlY3Rpb24gY2hhbmdlICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgb25TZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFwcHJvdmFsVXNlcltdPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKExpc3RDb21wb25lbnQpXG4gICAgbGlzdDogTGlzdENvbXBvbmVudDxBcHByb3ZhbFVzZXI+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkcmVuKFN0YW5kYXJkTGlzdEl0ZW1Db21wb25lbnQpXG4gICAgbGlzdEl0ZW1zOiBRdWVyeUxpc3Q8U3RhbmRhcmRMaXN0SXRlbUNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZWxlY3RlZEl0ZW1zOiBCYXNlTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaWRQcmVmaXggPSAnYXBwcm92YWwtbm9kZS11c2VyLSc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF90cmFja0J5Rm4gPSB0cmFja0J5Rm47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kaXNwbGF5VXNlcnM6IEFwcHJvdmFsVXNlcltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ludGVydmFsSUQ/OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRVc2Vycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQXBwcm92ZXJzTmFtZXMgPSB0aGlzLnNlbGVjdGVkVXNlcnMubWFwKChhcHByb3ZlcikgPT4gYXBwcm92ZXIubmFtZSk7XG5cbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMgPSB0aGlzLmxpc3RJdGVtcy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGl0ZW0pID0+ICEhaXRlbS5hdmF0YXI/LmFyaWFMYWJlbCAmJiBzZWxlY3RlZEFwcHJvdmVyc05hbWVzLmluY2x1ZGVzKGl0ZW0uYXZhdGFyLmFyaWFMYWJlbClcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uX3NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3QuX3NlbGVjdEl0ZW0oaXRlbSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy51c2Vycykge1xuICAgICAgICAgICAgdGhpcy5fY29sbGVjdERhdGFQcm9ncmVzc2l2ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2lsbEludGVydmFsKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25TZWxlY3QoZXZlbnQ6IFNlbGVjdGlvbkNoYW5nZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMgPSBldmVudC5zZWxlY3RlZEl0ZW1zO1xuXG4gICAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLl9nZXRVc2Vyc0Zyb21TZWxlY3RlZEl0ZW1zKGV2ZW50LnNlbGVjdGVkSXRlbXMpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFVzZXJzRnJvbVNlbGVjdGVkSXRlbXMoaXRlbXM6IEJhc2VMaXN0SXRlbVtdKTogQXBwcm92YWxVc2VyW10ge1xuICAgICAgICByZXR1cm4gaXRlbXNcbiAgICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IHRoaXMudXNlcnMuZmluZCgodXNlcikgPT4gYCR7dGhpcy5faWRQcmVmaXggKyB1c2VyLmlkfWAgPT09IGl0ZW0uaXRlbUVsLm5hdGl2ZUVsZW1lbnQuaWQpKVxuICAgICAgICAgICAgLmZpbHRlcigodSk6IHUgaXMgQXBwcm92YWxVc2VyID0+ICEhdSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jb2xsZWN0RGF0YVByb2dyZXNzaXZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9raWxsSW50ZXJ2YWwoKTtcbiAgICAgICAgdGhpcy5fZGlzcGxheVVzZXJzID0gW107XG5cbiAgICAgICAgaWYgKCF0aGlzLnVzZXJzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb25UcmFja2VyID0geyBjdXJyZW50SW5kZXg6IDAgfTtcblxuICAgICAgICB0aGlzLl91c2VyQ29sbGVjdG9ySW50ZXJ2YWxGbihjb2xsZWN0aW9uVHJhY2tlcik7XG4gICAgICAgIHRoaXMuX2ludGVydmFsSUQgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoXG4gICAgICAgICAgICB0aGlzLl91c2VyQ29sbGVjdG9ySW50ZXJ2YWxGbi5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgSU5URVJWQUxfSU5fTVMsXG4gICAgICAgICAgICBjb2xsZWN0aW9uVHJhY2tlclxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdXNlckNvbGxlY3RvckludGVydmFsRm4odHJhY2tlcjogeyBjdXJyZW50SW5kZXg6IG51bWJlciB9KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5leHRJbmRleCA9IHRyYWNrZXIuY3VycmVudEluZGV4ICsgSVRFTVNfUkVOREVSRURfQVRfT05DRTtcblxuICAgICAgICBjb25zdCBjb2xsZWN0ZWRVc2VyczogQXBwcm92YWxVc2VyW10gPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gdHJhY2tlci5jdXJyZW50SW5kZXg7IGkgPD0gbmV4dEluZGV4OyBpKyspIHtcbiAgICAgICAgICAgIGlmIChpID49IHRoaXMudXNlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fa2lsbEludGVydmFsKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbGxlY3RlZFVzZXJzLnB1c2godGhpcy51c2Vyc1tpXSk7XG4gICAgICAgIH1cblxuICAgICAgICB0cmFja2VyLmN1cnJlbnRJbmRleCArPSBJVEVNU19SRU5ERVJFRF9BVF9PTkNFO1xuXG4gICAgICAgIHRoaXMuX2Rpc3BsYXlVc2Vycy5wdXNoKC4uLmNvbGxlY3RlZFVzZXJzKTtcbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfa2lsbEludGVydmFsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faW50ZXJ2YWxJRCkge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbElEKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmZHAtYXBwcm92YWwtZmxvdy11c2VyLWxpc3RfX3NlbGVjdGVkLWNvdW50XCIgKm5nSWY9XCJfc2VsZWN0ZWRJdGVtcy5sZW5ndGhcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiX3NlbGVjdGVkSXRlbXMubGVuZ3RoID09PSAxOyBlbHNlIG11bHRpcGxlSXRlbXNcIj5cbiAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93LnVzZXJMaXN0U2VsZWN0ZWRJdGVtc0NvdW50U2luZ3VsYXInIHwgZmRUcmFuc2xhdGUgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbXVsdGlwbGVJdGVtcz5cbiAgICAgICAge3sgJ3BsYXRmb3JtQXBwcm92YWxGbG93LnVzZXJMaXN0U2VsZWN0ZWRJdGVtc0NvdW50UGx1cmFsJyB8IGZkVHJhbnNsYXRlIDogeyBjb3VudDogX3NlbGVjdGVkSXRlbXMubGVuZ3RoIH0gfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjxmZHAtbGlzdFxuICAgIFtzZWxlY3Rpb25Nb2RlXT1cImlzU2VsZWN0YWJsZSA/ICdtdWx0aScgOiAnbm9uZSdcIlxuICAgIFtzZWxlY3Rpb25dPVwiaXNTZWxlY3RhYmxlXCJcbiAgICBbbmF2aWdhdGlvbkluZGljYXRvcl09XCJ0cnVlXCJcbiAgICBbaGFzQnlMaW5lXT1cInRydWVcIlxuICAgIFsobmdNb2RlbCldPVwiX3NlbGVjdGVkSXRlbXNcIlxuICAgIFtzZWxlY3RlZEl0ZW1zXT1cIl9zZWxlY3RlZEl0ZW1zXCJcbiAgICAoc2VsZWN0ZWRJdGVtQ2hhbmdlKT1cIl9vblNlbGVjdCgkZXZlbnQpXCJcbj5cbiAgICA8ZmRwLXN0YW5kYXJkLWxpc3QtaXRlbVxuICAgICAgICAqbmdGb3I9XCJsZXQgX3VzZXIgb2YgX2Rpc3BsYXlVc2VyczsgdHJhY2tCeTogX3RyYWNrQnlGblwiXG4gICAgICAgIFthdHRyLmlkXT1cIl9pZFByZWZpeCArIF91c2VyLmlkXCJcbiAgICAgICAgW2F2YXRhcl09XCJ7IGltYWdlOiBfdXNlci5pbWdVcmwsIGFyaWFMYWJlbDogX3VzZXIubmFtZSB9XCJcbiAgICAgICAgW2Rlc2NyaXB0aW9uXT1cIl91c2VyLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCJfdXNlci5uYW1lXCJcbiAgICAgICAgW3RpdGxlXT1cIl91c2VyLm5hbWVcIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBvblVzZXJDbGljay5lbWl0KF91c2VyKVwiXG4gICAgPjwvZmRwLXN0YW5kYXJkLWxpc3QtaXRlbT5cbjwvZmRwLWxpc3Q+XG4iXX0=