@dereekb/dbx-form 1.2.0 → 3.0.0

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 (123) hide show
  1. package/README.md +1 -1
  2. package/esm2020/lib/form/action/form.action.directive.mjs +34 -19
  3. package/esm2020/lib/form/action/form.action.module.mjs +4 -4
  4. package/esm2020/lib/form/action/transition/form.action.transition.module.mjs +4 -4
  5. package/esm2020/lib/form/action/transition/form.action.transition.safety.directive.mjs +9 -9
  6. package/esm2020/lib/form/form.mjs +11 -1
  7. package/esm2020/lib/form/form.module.mjs +4 -4
  8. package/esm2020/lib/form/io/form.changes.directive.mjs +18 -7
  9. package/esm2020/lib/form/io/form.input.directive.mjs +36 -18
  10. package/esm2020/lib/form/io/form.io.module.mjs +4 -4
  11. package/esm2020/lib/form/io/form.loading.directive.mjs +27 -17
  12. package/esm2020/lib/form.module.mjs +4 -4
  13. package/esm2020/lib/formly/config/validation.mjs +3 -3
  14. package/esm2020/lib/formly/field/checklist/checklist.item.field.component.mjs +8 -8
  15. package/esm2020/lib/formly/field/checklist/checklist.item.field.content.default.component.mjs +3 -3
  16. package/esm2020/lib/formly/field/checklist/checklist.item.field.module.mjs +13 -13
  17. package/esm2020/lib/formly/field/component/component.field.component.mjs +8 -21
  18. package/esm2020/lib/formly/field/component/component.field.mjs +3 -5
  19. package/esm2020/lib/formly/field/component/component.field.module.mjs +14 -14
  20. package/esm2020/lib/formly/field/form.field.module.mjs +4 -4
  21. package/esm2020/lib/formly/field/selection/pickable/pickable.chip.field.component.mjs +7 -7
  22. package/esm2020/lib/formly/field/selection/pickable/pickable.field.directive.mjs +8 -6
  23. package/esm2020/lib/formly/field/selection/pickable/pickable.field.mjs +2 -2
  24. package/esm2020/lib/formly/field/selection/pickable/pickable.field.module.mjs +13 -13
  25. package/esm2020/lib/formly/field/selection/pickable/pickable.list.field.component.mjs +28 -21
  26. package/esm2020/lib/formly/field/selection/searchable/searchable.chip.field.component.mjs +4 -4
  27. package/esm2020/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.mjs +16 -16
  28. package/esm2020/lib/formly/field/selection/searchable/searchable.field.directive.mjs +7 -8
  29. package/esm2020/lib/formly/field/selection/searchable/searchable.field.module.mjs +13 -13
  30. package/esm2020/lib/formly/field/selection/searchable/searchable.mjs +1 -1
  31. package/esm2020/lib/formly/field/selection/searchable/searchable.text.field.component.mjs +3 -3
  32. package/esm2020/lib/formly/field/selection/selection.module.mjs +4 -4
  33. package/esm2020/lib/formly/field/texteditor/texteditor.field.component.mjs +4 -5
  34. package/esm2020/lib/formly/field/texteditor/texteditor.field.module.mjs +4 -4
  35. package/esm2020/lib/formly/field/value/array/array.field.component.mjs +7 -7
  36. package/esm2020/lib/formly/field/value/array/array.field.module.mjs +4 -4
  37. package/esm2020/lib/formly/field/value/boolean/boolean.field.module.mjs +4 -4
  38. package/esm2020/lib/formly/field/value/date/date.field.module.mjs +4 -4
  39. package/esm2020/lib/formly/field/value/date/datetime.field.component.mjs +51 -40
  40. package/esm2020/lib/formly/field/value/date/datetime.field.mjs +7 -7
  41. package/esm2020/lib/formly/field/value/enum/enum.field.module.mjs +4 -4
  42. package/esm2020/lib/formly/field/value/phone/phone.field.component.mjs +3 -3
  43. package/esm2020/lib/formly/field/value/phone/phone.field.module.mjs +4 -4
  44. package/esm2020/lib/formly/field/value/text/text.additional.field.mjs +15 -18
  45. package/esm2020/lib/formly/field/value/text/text.address.field.mjs +2 -2
  46. package/esm2020/lib/formly/field/value/text/text.field.mjs +3 -2
  47. package/esm2020/lib/formly/field/value/text/text.field.module.mjs +4 -4
  48. package/esm2020/lib/formly/field/value/value.module.mjs +4 -4
  49. package/esm2020/lib/formly/field/wrapper/autotouch.wrapper.component.mjs +3 -3
  50. package/esm2020/lib/formly/field/wrapper/expandable.wrapper.component.mjs +3 -3
  51. package/esm2020/lib/formly/field/wrapper/expandable.wrapper.delegate.mjs +3 -3
  52. package/esm2020/lib/formly/field/wrapper/flex.wrapper.component.mjs +3 -3
  53. package/esm2020/lib/formly/field/wrapper/form.wrapper.module.mjs +18 -10
  54. package/esm2020/lib/formly/field/wrapper/index.mjs +2 -1
  55. package/esm2020/lib/formly/field/wrapper/info.wrapper.component.mjs +3 -3
  56. package/esm2020/lib/formly/field/wrapper/section.wrapper.component.mjs +3 -3
  57. package/esm2020/lib/formly/field/wrapper/style.wrapper.component.mjs +4 -4
  58. package/esm2020/lib/formly/field/wrapper/subsection.wrapper.component.mjs +3 -3
  59. package/esm2020/lib/formly/field/wrapper/toggle.wrapper.component.mjs +3 -3
  60. package/esm2020/lib/formly/field/wrapper/working.wrapper.component.mjs +45 -0
  61. package/esm2020/lib/formly/field/wrapper/wrapper.mjs +7 -1
  62. package/esm2020/lib/formly/formly.context.directive.mjs +3 -3
  63. package/esm2020/lib/formly/formly.context.mjs +19 -8
  64. package/esm2020/lib/formly/formly.directive.mjs +17 -14
  65. package/esm2020/lib/formly/formly.form.component.mjs +63 -22
  66. package/esm2020/lib/formly/formly.module.mjs +9 -6
  67. package/esm2020/lib/formly/index.mjs +2 -1
  68. package/esm2020/lib/formly/template/available.mjs +16 -0
  69. package/esm2020/lib/formly/template/index.mjs +3 -0
  70. package/esm2020/lib/formly/template/login.mjs +90 -0
  71. package/esm2020/lib/layout/form.layout.module.mjs +4 -4
  72. package/esm2020/lib/layout/form.spacer.component.mjs +3 -3
  73. package/esm2020/lib/validator/available.mjs +32 -0
  74. package/esm2020/lib/validator/field.mjs +31 -0
  75. package/esm2020/lib/validator/index.mjs +3 -1
  76. package/fesm2015/dereekb-dbx-form.mjs +818 -505
  77. package/fesm2015/dereekb-dbx-form.mjs.map +1 -1
  78. package/fesm2020/dereekb-dbx-form.mjs +834 -501
  79. package/fesm2020/dereekb-dbx-form.mjs.map +1 -1
  80. package/lib/form/action/form.action.directive.d.ts +13 -16
  81. package/lib/form/action/transition/form.action.transition.safety.directive.d.ts +3 -3
  82. package/lib/form/form.d.ts +30 -3
  83. package/lib/form/io/form.changes.directive.d.ts +7 -3
  84. package/lib/form/io/form.input.directive.d.ts +19 -7
  85. package/lib/form/io/form.loading.directive.d.ts +8 -2
  86. package/lib/formly/field/checklist/checklist.item.field.component.d.ts +2 -2
  87. package/lib/formly/field/checklist/checklist.item.field.module.d.ts +1 -1
  88. package/lib/formly/field/component/component.field.component.d.ts +8 -21
  89. package/lib/formly/field/component/component.field.d.ts +3 -5
  90. package/lib/formly/field/component/component.field.module.d.ts +1 -1
  91. package/lib/formly/field/selection/pickable/pickable.field.directive.d.ts +8 -3
  92. package/lib/formly/field/selection/pickable/pickable.field.module.d.ts +1 -1
  93. package/lib/formly/field/selection/pickable/pickable.list.field.component.d.ts +8 -6
  94. package/lib/formly/field/selection/searchable/searchable.chip.field.component.d.ts +2 -1
  95. package/lib/formly/field/selection/searchable/searchable.d.ts +3 -3
  96. package/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.d.ts +3 -3
  97. package/lib/formly/field/selection/searchable/searchable.field.directive.d.ts +4 -4
  98. package/lib/formly/field/selection/searchable/searchable.field.module.d.ts +1 -1
  99. package/lib/formly/field/texteditor/_texteditor.scss +0 -2
  100. package/lib/formly/field/value/array/array.field.component.d.ts +2 -2
  101. package/lib/formly/field/value/date/datetime.field.component.d.ts +8 -10
  102. package/lib/formly/field/value/date/datetime.field.d.ts +2 -2
  103. package/lib/formly/field/value/phone/_phone.scss +4 -0
  104. package/lib/formly/field/value/text/text.additional.field.d.ts +1 -1
  105. package/lib/formly/field/value/text/text.field.d.ts +2 -0
  106. package/lib/formly/field/wrapper/form.wrapper.module.d.ts +9 -8
  107. package/lib/formly/field/wrapper/index.d.ts +1 -0
  108. package/lib/formly/field/wrapper/style.wrapper.component.d.ts +3 -3
  109. package/lib/formly/field/wrapper/working.wrapper.component.d.ts +22 -0
  110. package/lib/formly/field/wrapper/wrapper.d.ts +3 -0
  111. package/lib/formly/formly.context.d.ts +9 -6
  112. package/lib/formly/formly.directive.d.ts +2 -0
  113. package/lib/formly/formly.form.component.d.ts +13 -3
  114. package/lib/formly/index.d.ts +1 -0
  115. package/lib/formly/template/available.d.ts +7 -0
  116. package/lib/formly/template/index.d.ts +2 -0
  117. package/lib/formly/template/login.d.ts +59 -0
  118. package/lib/validator/available.d.ts +30 -0
  119. package/lib/validator/field.d.ts +32 -0
  120. package/lib/validator/index.d.ts +2 -0
  121. package/package.json +17 -44
  122. package/lib/formly/field/fields_TODO.scss +0 -4
  123. package/lib/formly/form_TODO.scss +0 -153
@@ -15,18 +15,18 @@ export class DbxPickableChipListFieldComponent extends AbstractDbxPickableItemFi
15
15
  itemClicked(item) {
16
16
  if (!item.disabled && !this.isReadonlyOrDisabled) {
17
17
  if (item.selected) {
18
- this.removeValue(item.value.value);
18
+ this.removeValue(item.itemValue.value);
19
19
  }
20
20
  else {
21
- this.addValue(item.value.value);
21
+ this.addValue(item.itemValue.value);
22
22
  }
23
23
  }
24
24
  }
25
25
  }
26
- DbxPickableChipListFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxPickableChipListFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
27
- DbxPickableChipListFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxPickableChipListFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\" [linear]=\"true\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-list [required]=\"required\" [selectable]=\"!isReadonlyOrDisabled\" #chipList>\n <mat-chip *ngFor=\"let item of items$ | async\" (click)=\"itemClicked(item)\" [selected]=\"item.selected\"\n [disabled]=\"isReadonlyOrDisabled || item.disabled\">\n <span class=\"dbx-chip-label\">{{ item.value.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"item.value.sublabel\">{{ item.value.sublabel }}</span>\n </mat-chip>\n </mat-chip-list>\n <dbx-injected-content [config]=\"footerConfig\"></dbx-injected-content>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput\n [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\">\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n", components: [{ type: i1.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }, { type: i2.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i3.DbxInjectedComponent, selector: "dbx-injected-content, [dbx-injected-content]", inputs: ["config", "template"] }, { type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i5.AsyncPipe } });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxPickableChipListFieldComponent, decorators: [{
26
+ DbxPickableChipListFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableChipListFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
27
+ DbxPickableChipListFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxPickableChipListFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\" [linear]=\"true\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-list [required]=\"required\" [selectable]=\"!isReadonlyOrDisabled\" #chipList>\n <mat-chip *ngFor=\"let item of items$ | async\" (click)=\"itemClicked(item)\" [selected]=\"item.selected\"\n [disabled]=\"isReadonlyOrDisabled || item.disabled\">\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"item.itemValue.sublabel\">{{ item.itemValue.sublabel }}</span>\n </mat-chip>\n </mat-chip-list>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput\n [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\">\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n", components: [{ type: i1.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }, { type: i2.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i3.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i5.AsyncPipe } });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableChipListFieldComponent, decorators: [{
29
29
  type: Component,
30
- args: [{ template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\" [linear]=\"true\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-list [required]=\"required\" [selectable]=\"!isReadonlyOrDisabled\" #chipList>\n <mat-chip *ngFor=\"let item of items$ | async\" (click)=\"itemClicked(item)\" [selected]=\"item.selected\"\n [disabled]=\"isReadonlyOrDisabled || item.disabled\">\n <span class=\"dbx-chip-label\">{{ item.value.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"item.value.sublabel\">{{ item.value.sublabel }}</span>\n </mat-chip>\n </mat-chip-list>\n <dbx-injected-content [config]=\"footerConfig\"></dbx-injected-content>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput\n [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\">\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n" }]
30
+ args: [{ template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\" [linear]=\"true\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-list [required]=\"required\" [selectable]=\"!isReadonlyOrDisabled\" #chipList>\n <mat-chip *ngFor=\"let item of items$ | async\" (click)=\"itemClicked(item)\" [selected]=\"item.selected\"\n [disabled]=\"isReadonlyOrDisabled || item.disabled\">\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"item.itemValue.sublabel\">{{ item.itemValue.sublabel }}</span>\n </mat-chip>\n </mat-chip-list>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput\n [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\">\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n" }]
31
31
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuY2hpcC5maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUuY2hpcC5maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUuY2hpcC5maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQ0FBcUMsRUFBeUIsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7O0FBRTFHOztHQUVHO0FBSUgsTUFBTSxPQUFPLGlDQUFxQyxTQUFRLHFDQUF3QztJQUVoRyxXQUFXLENBQUMsSUFBOEI7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDaEQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2pDO1NBQ0Y7SUFDSCxDQUFDOzs4SEFWVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQywyRUNUOUMsNC9DQStCQTsyRkR0QmEsaUNBQWlDO2tCQUg3QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0RGJ4UGlja2FibGVJdGVtRmllbGREaXJlY3RpdmUsIFBpY2thYmxlSXRlbUZpZWxkSXRlbSB9IGZyb20gXCIuL3BpY2thYmxlLmZpZWxkLmRpcmVjdGl2ZVwiO1xuXG4vKipcbiAqIFVzZWQgZm9yIHBpY2tpbmcgcHJlLXNldCB2YWx1ZXMgdXNpbmcgY2hpcHMgYXMgdGhlIHByZXNlbnRhdGlvbi5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAncGlja2FibGUuY2hpcC5maWVsZC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4UGlja2FibGVDaGlwTGlzdEZpZWxkQ29tcG9uZW50PFQ+IGV4dGVuZHMgQWJzdHJhY3REYnhQaWNrYWJsZUl0ZW1GaWVsZERpcmVjdGl2ZTxUPiB7XG5cbiAgaXRlbUNsaWNrZWQoaXRlbTogUGlja2FibGVJdGVtRmllbGRJdGVtPFQ+KTogdm9pZCB7XG4gICAgaWYgKCFpdGVtLmRpc2FibGVkICYmICF0aGlzLmlzUmVhZG9ubHlPckRpc2FibGVkKSB7XG4gICAgICBpZiAoaXRlbS5zZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbHVlKGl0ZW0udmFsdWUudmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hZGRWYWx1ZShpdGVtLnZhbHVlLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImRieC1waWNrYWJsZS1pdGVtLWZpZWxkXCI+XG4gIDxkYngtbG9hZGluZyBbY29udGV4dF09XCJjb250ZXh0XCIgW2xpbmVhcl09XCJ0cnVlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dGaWx0ZXJJbnB1dFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbHRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBDb250ZW50IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkYngtcGlja2FibGUtaXRlbS1maWVsZC1jaGlwc1wiPlxuICAgICAgPG1hdC1jaGlwLWxpc3QgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW3NlbGVjdGFibGVdPVwiIWlzUmVhZG9ubHlPckRpc2FibGVkXCIgI2NoaXBMaXN0PlxuICAgICAgICA8bWF0LWNoaXAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXMkIHwgYXN5bmNcIiAoY2xpY2spPVwiaXRlbUNsaWNrZWQoaXRlbSlcIiBbc2VsZWN0ZWRdPVwiaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImlzUmVhZG9ubHlPckRpc2FibGVkIHx8IGl0ZW0uZGlzYWJsZWRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImRieC1jaGlwLWxhYmVsXCI+e3sgaXRlbS52YWx1ZS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImRieC1jaGlwLXN1YmxhYmVsXCIgKm5nSWY9XCJpdGVtLnZhbHVlLnN1YmxhYmVsXCI+e3sgaXRlbS52YWx1ZS5zdWJsYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9tYXQtY2hpcD5cbiAgICAgIDwvbWF0LWNoaXAtbGlzdD5cbiAgICAgIDxkYngtaW5qZWN0ZWQtY29udGVudCBbY29uZmlnXT1cImZvb3RlckNvbmZpZ1wiPjwvZGJ4LWluamVjdGVkLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGJ4LWxvYWRpbmc+XG48L2Rpdj5cblxuPCEtLSBGaWx0ZXIgSW5wdXQgLS0+XG48bmctdGVtcGxhdGUgI2ZpbHRlclRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZGJ4LXBpY2thYmxlLWl0ZW0tZmllbGQtZmlsdGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRieC1sYWJlbFwiPnt7IGZpbHRlckxhYmVsIH19PC9kaXY+XG4gICAgPGlucHV0IFtuYW1lXT1cIm5hbWVcIiBhdXRvY29tcGxldGU9XCJ7eyBhdXRvY29tcGxldGUgfX1cIiAjZmlsdGVyTWF0SW5wdXQ9XCJtYXRJbnB1dFwiIG1hdElucHV0XG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbZm9ybUNvbnRyb2xdPVwiaW5wdXRDdHJsXCI+XG4gICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgPGRieC1sb2FkaW5nIFtsaW5lYXJdPVwidHJ1ZVwiIFtjb250ZXh0XT1cImZpbHRlclJlc3VsdHNDb250ZXh0XCI+PC9kYngtbG9hZGluZz5cbiAgICA8IS0tIE5vIGl0ZW1zIGZvdW5kLiAtLT5cbiAgICA8cCAqbmdJZj1cIm5vSXRlbXNBdmFpbGFibGUkIHwgYXN5bmNcIiBjbGFzcz1cImRieC1sYWJlbFwiPk5vIGl0ZW1zIG1hdGNoIHRoaXMgZmlsdGVyLjwvcD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuY2hpcC5maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUuY2hpcC5maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUuY2hpcC5maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQ0FBcUMsRUFBeUIsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7O0FBRTFHOztHQUVHO0FBSUgsTUFBTSxPQUFPLGlDQUFxQyxTQUFRLHFDQUF3QztJQUVoRyxXQUFXLENBQUMsSUFBOEI7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDaEQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDeEM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3JDO1NBQ0Y7SUFDSCxDQUFDOzs4SEFWVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQywyRUNUOUMsMC9DQStCQTsyRkR0QmEsaUNBQWlDO2tCQUg3QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0RGJ4UGlja2FibGVJdGVtRmllbGREaXJlY3RpdmUsIFBpY2thYmxlSXRlbUZpZWxkSXRlbSB9IGZyb20gXCIuL3BpY2thYmxlLmZpZWxkLmRpcmVjdGl2ZVwiO1xuXG4vKipcbiAqIFVzZWQgZm9yIHBpY2tpbmcgcHJlLXNldCB2YWx1ZXMgdXNpbmcgY2hpcHMgYXMgdGhlIHByZXNlbnRhdGlvbi5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAncGlja2FibGUuY2hpcC5maWVsZC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4UGlja2FibGVDaGlwTGlzdEZpZWxkQ29tcG9uZW50PFQ+IGV4dGVuZHMgQWJzdHJhY3REYnhQaWNrYWJsZUl0ZW1GaWVsZERpcmVjdGl2ZTxUPiB7XG5cbiAgaXRlbUNsaWNrZWQoaXRlbTogUGlja2FibGVJdGVtRmllbGRJdGVtPFQ+KTogdm9pZCB7XG4gICAgaWYgKCFpdGVtLmRpc2FibGVkICYmICF0aGlzLmlzUmVhZG9ubHlPckRpc2FibGVkKSB7XG4gICAgICBpZiAoaXRlbS5zZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbHVlKGl0ZW0uaXRlbVZhbHVlLnZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWRkVmFsdWUoaXRlbS5pdGVtVmFsdWUudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZGJ4LXBpY2thYmxlLWl0ZW0tZmllbGRcIj5cbiAgPGRieC1sb2FkaW5nIFtjb250ZXh0XT1cImNvbnRleHRcIiBbbGluZWFyXT1cInRydWVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0ZpbHRlcklucHV0XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIENvbnRlbnQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRieC1waWNrYWJsZS1pdGVtLWZpZWxkLWNoaXBzXCI+XG4gICAgICA8bWF0LWNoaXAtbGlzdCBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbc2VsZWN0YWJsZV09XCIhaXNSZWFkb25seU9yRGlzYWJsZWRcIiAjY2hpcExpc3Q+XG4gICAgICAgIDxtYXQtY2hpcCAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtcyQgfCBhc3luY1wiIChjbGljayk9XCJpdGVtQ2xpY2tlZChpdGVtKVwiIFtzZWxlY3RlZF09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNSZWFkb25seU9yRGlzYWJsZWQgfHwgaXRlbS5kaXNhYmxlZFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGJ4LWNoaXAtbGFiZWxcIj57eyBpdGVtLml0ZW1WYWx1ZS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImRieC1jaGlwLXN1YmxhYmVsXCIgKm5nSWY9XCJpdGVtLml0ZW1WYWx1ZS5zdWJsYWJlbFwiPnt7IGl0ZW0uaXRlbVZhbHVlLnN1YmxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L21hdC1jaGlwPlxuICAgICAgPC9tYXQtY2hpcC1saXN0PlxuICAgICAgPGRieC1pbmplY3Rpb24gW2NvbmZpZ109XCJmb290ZXJDb25maWdcIj48L2RieC1pbmplY3Rpb24+XG4gICAgPC9kaXY+XG4gIDwvZGJ4LWxvYWRpbmc+XG48L2Rpdj5cblxuPCEtLSBGaWx0ZXIgSW5wdXQgLS0+XG48bmctdGVtcGxhdGUgI2ZpbHRlclRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZGJ4LXBpY2thYmxlLWl0ZW0tZmllbGQtZmlsdGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRieC1sYWJlbFwiPnt7IGZpbHRlckxhYmVsIH19PC9kaXY+XG4gICAgPGlucHV0IFtuYW1lXT1cIm5hbWVcIiBhdXRvY29tcGxldGU9XCJ7eyBhdXRvY29tcGxldGUgfX1cIiAjZmlsdGVyTWF0SW5wdXQ9XCJtYXRJbnB1dFwiIG1hdElucHV0XG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbZm9ybUNvbnRyb2xdPVwiaW5wdXRDdHJsXCI+XG4gICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgPGRieC1sb2FkaW5nIFtsaW5lYXJdPVwidHJ1ZVwiIFtjb250ZXh0XT1cImZpbHRlclJlc3VsdHNDb250ZXh0XCI+PC9kYngtbG9hZGluZz5cbiAgICA8IS0tIE5vIGl0ZW1zIGZvdW5kLiAtLT5cbiAgICA8cCAqbmdJZj1cIm5vSXRlbXNBdmFpbGFibGUkIHwgYXN5bmNcIiBjbGFzcz1cImRieC1sYWJlbFwiPk5vIGl0ZW1zIG1hdGNoIHRoaXMgZmlsdGVyLjwvcD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -63,7 +63,7 @@ export class AbstractDbxPickableItemFieldDirective extends FieldType {
63
63
  this.filteredSearchResults$ = this.filteredSearchResultsState$.pipe(map(x => x?.value), filterMaybe(), shareReplay(1));
64
64
  this.items$ = combineLatest([this.filteredSearchResults$, this.values$]).pipe(map(([displayValues, values]) => {
65
65
  const selectedHashValuesSet = new Set(values.map(x => this.hashForValue(x)));
66
- let items = displayValues.map((x) => ({ value: x, selected: selectedHashValuesSet.has(x._hash) }));
66
+ let items = displayValues.map((x) => ({ itemValue: x, selected: selectedHashValuesSet.has(x._hash) }));
67
67
  if (this.sortItems) {
68
68
  items = this.sortItems(items);
69
69
  }
@@ -108,6 +108,9 @@ export class AbstractDbxPickableItemFieldDirective extends FieldType {
108
108
  get autocomplete() {
109
109
  return this.field.templateOptions?.attributes?.['autocomplete'] ?? this.key;
110
110
  }
111
+ get changeSelectionModeToViewOnDisabled() {
112
+ return this.pickableField.changeSelectionModeToViewOnDisabled ?? false;
113
+ }
111
114
  get sortItems() {
112
115
  return this.pickableField.sortItems;
113
116
  }
@@ -196,7 +199,6 @@ export class AbstractDbxPickableItemFieldDirective extends FieldType {
196
199
  }));
197
200
  }
198
201
  ngOnInit() {
199
- super.ngOnInit();
200
202
  this._formControlObs.next(this.formControl);
201
203
  // Focus after finished loading for the first time.
202
204
  this.context.loading$.pipe(delay(10), filter(x => x), first()).subscribe(() => {
@@ -242,12 +244,12 @@ export class AbstractDbxPickableItemFieldDirective extends FieldType {
242
244
  this.formControl.markAsDirty();
243
245
  }
244
246
  }
245
- AbstractDbxPickableItemFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractDbxPickableItemFieldDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
246
- AbstractDbxPickableItemFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: AbstractDbxPickableItemFieldDirective, viewQueries: [{ propertyName: "filterMatInput", first: true, predicate: ["filterMatInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0 });
247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractDbxPickableItemFieldDirective, decorators: [{
247
+ AbstractDbxPickableItemFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxPickableItemFieldDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
248
+ AbstractDbxPickableItemFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: AbstractDbxPickableItemFieldDirective, viewQueries: [{ propertyName: "filterMatInput", first: true, predicate: ["filterMatInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0 });
249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxPickableItemFieldDirective, decorators: [{
248
250
  type: Directive
249
251
  }], propDecorators: { filterMatInput: [{
250
252
  type: ViewChild,
251
253
  args: ['filterMatInput', { static: true }]
252
254
  }] } });
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuZmllbGQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3BpY2thYmxlL3BpY2thYmxlLmZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFnQixhQUFhLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pLLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEwsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFpRnhDOztHQUVHO0FBRUgsTUFBTSxPQUFPLHFDQUF5QyxTQUFRLFNBQW9FO0lBRGxJOztRQU1XLGNBQVMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqQyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUF5QixTQUFT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Q0FBQyxDQUFDO1NBQ2hEO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1NBQzdDO1FBRUQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxpQkFBaUI7SUFDUCxzQkFBc0IsQ0FBQyxNQUFXO1FBQzFDLElBQUksUUFBUSxHQUFZLE1BQU0sQ0FBQztRQUUvQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN0QixRQUFRLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbEQ7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDakMsQ0FBQzs7a0lBM1dVLHFDQUFxQztzSEFBckMscUNBQXFDOzJGQUFyQyxxQ0FBcUM7a0JBRGpELFNBQVM7OEJBSVIsY0FBYztzQkFEYixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERieEluamVjdGVkQ29tcG9uZW50Q29uZmlnIH0gZnJvbSBcIkBkZXJlZWtiL2RieC1jb3JlXCI7XG5pbXBvcnQgeyBiZWdpbkxvYWRpbmcsIExvYWRpbmdTdGF0ZSwgc3VjY2Vzc1Jlc3VsdCwgbWFwTG9hZGluZ1N0YXRlUmVzdWx0cywgZmlsdGVyTWF5YmUsIExpc3RMb2FkaW5nU3RhdGVDb250ZXh0SW5zdGFuY2UsIGlzTGlzdExvYWRpbmdTdGF0ZUVtcHR5IH0gZnJvbSBcIkBkZXJlZWtiL3J4anNcIjtcbmltcG9ydCB7IGNvbnZlcnRNYXliZVRvQXJyYXksIGZpbmRVbmlxdWUsIG1ha2VWYWx1ZXNHcm91cE1hcCwgTWF5YmUgfSBmcm9tIFwiQGRlcmVla2IvdXRpbFwiO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sLCBBYnN0cmFjdENvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcsIEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSBcIkBuZ3gtZm9ybWx5L2NvcmVcIjtcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gXCJAbmd4LWZvcm1seS9tYXRlcmlhbFwiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgZmlsdGVyLCBtYXAsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN3aXRjaE1hcCwgc3RhcnRXaXRoLCBzaGFyZVJlcGxheSwgbWVyZ2VNYXAsIGZpcnN0LCBkZWxheSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5Rm4sIFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZSwgUGlja2FibGVWYWx1ZUZpZWxkRmlsdGVyRm4sIFBpY2thYmxlVmFsdWVGaWVsZEhhc2hGbiwgUGlja2FibGVWYWx1ZUZpZWxkTG9hZFZhbHVlc0ZuLCBQaWNrYWJsZVZhbHVlRmllbGRWYWx1ZSB9IGZyb20gXCIuL3BpY2thYmxlXCI7XG5pbXBvcnQgeyBEYnhWYWx1ZUxpc3RJdGVtIH0gZnJvbSBcIkBkZXJlZWtiL2RieC13ZWJcIjtcbmltcG9ydCB7IGNhbWVsQ2FzZSB9IGZyb20gXCJjaGFuZ2UtY2FzZVwiO1xuXG4vKipcbiAqIFdyYXBzIHRoZSBzZWxlY3RlZCBzdGF0ZSB3aXRoIHRoZSBpdGVtcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaWNrYWJsZUl0ZW1GaWVsZEl0ZW08VD4gZXh0ZW5kcyBEYnhWYWx1ZUxpc3RJdGVtPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPj4geyB9XG5cbmV4cG9ydCB0eXBlIFBpY2thYmxlSXRlbUZpZWxkSXRlbVNvcnRGbjxUPiA9IChpdGVtczogUGlja2FibGVJdGVtRmllbGRJdGVtPFQ+W10pID0+IFBpY2thYmxlSXRlbUZpZWxkSXRlbTxUPltdO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2thYmxlVmFsdWVGaWVsZHNGaWVsZENvbmZpZzxUPiB7XG4gIC8qKlxuICAgKiBMb2FkcyBhbGwgcGlja2FibGUgdmFsdWVzLlxuICAgKi9cbiAgbG9hZFZhbHVlczogUGlja2FibGVWYWx1ZUZpZWxkTG9hZFZhbHVlc0ZuPFQ+O1xuICAvKipcbiAgICogVXNlZCBmb3IgYnVpbGRpbmcgYSBkaXNwbGF5IHZhbHVlIGdpdmVuIHRoZSBpbnB1dC5cbiAgICovXG4gIGRpc3BsYXlGb3JWYWx1ZTogUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheUZuPFQ+O1xuICAvKipcbiAgICogVXNlZCBmb3IgaGFzaGluZyBkaXNwbGF5IHZhbHVlcyBhbmQgb21pdHRpbmcgcmVwZWF0IHZhbHVlcy5cbiAgICpcbiAgICogSWYgaGFzaEZvclZhbHVlIGlzIG5vdCBwcm92aWRlZCwgdGhlIHZhbHVlJ3MgdmFsdWUgd2lsbCBiZSB1c2VkIGFzIGlzLlxuICAgKi9cbiAgaGFzaEZvclZhbHVlPzogUGlja2FibGVWYWx1ZUZpZWxkSGFzaEZuPFQ+O1xuICAvKipcbiAgICogVXNlZCBmb3IgZmlsdGVyaW5nIHZhbHVlcyB2aWEgdGhlIHNlYXJjaCB0ZXh0LlxuICAgKi9cbiAgZmlsdGVyVmFsdWVzPzogUGlja2FibGVWYWx1ZUZpZWxkRmlsdGVyRm48VD47XG4gIC8qKlxuICAgKiBVc2VkIGZvciBzb3J0aW5nIHRoZSBpdGVtcyBiZWZvcmUgdGhleSBhcmUgZGlzcGxheWVkLlxuICAgKiBcbiAgICogU2hvdWxkIG9ubHkgYmUgdXNlZCB0byBzb3J0IHZhbHVlcy5cbiAgICovXG4gIHNvcnRJdGVtcz86IFBpY2thYmxlSXRlbUZpZWxkSXRlbVNvcnRGbjxUPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFsbG93IG11bHRpcGxlIGl0ZW1zIHRvIGJlIHNlbGVjdGVkLlxuICAgKi9cbiAgbXVsdGlTZWxlY3Q/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gc2V0L2dldCB2YWx1ZXMgYXMgYW4gYXJyYXkgb3IgYSBzaW5nbGUgdmFsdWUuIElmIHNldCBmYWxzZSwgbXVsdGlTZWxlY3QgaXMgaWdub3JlZC5cbiAgICovXG4gIGFzQXJyYXlWYWx1ZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzaG93IHRoZSB0ZXh0IGZpbHRlci4gVHJ1ZSBieSBkZWZhdWx0IGlmIGZpbHRlclZhbHVlcyBpcyBwcm92aWRlZC5cbiAgICovXG4gIHNob3dUZXh0RmlsdGVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHNraXAgdGhlIGZpbHRlciBmdW5jdGlvbiB3aGVuIHRoZSBpbnB1dCBpcyBlbXB0eS5cbiAgICogXG4gICAqIFRydWUgYnkgZGVmYXVsdC5cbiAgICovXG4gIHNraXBGaWx0ZXJGbk9uRW1wdHk/OiBib29sZWFuO1xuICAvKipcbiAgICogRmlsdGVyIExhYmVsXG4gICAqL1xuICBmaWx0ZXJMYWJlbD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiB2YWx1ZXMgdGhhdCBjYW4gYmUgcGlja2VkXG4gICAqL1xuICBtYXhQaWNrcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uL2hpbnQgdG8gZGlzcGxheS5cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogRm9vdGVyIERpc3BsYXlcbiAgICovXG4gIGZvb3RlckNvbmZpZz86IERieEluamVjdGVkQ29tcG9uZW50Q29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2thYmxlVmFsdWVGaWVsZHNGb3JtbHlGaWVsZENvbmZpZzxUPiBleHRlbmRzIEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgcGlja2FibGVGaWVsZDogUGlja2FibGVWYWx1ZUZpZWxkc0ZpZWxkQ29uZmlnPFQ+O1xufVxuXG4vKipcbiAqIERpc3BsYXllZCB2YWx1ZSB3aXRoIHRoZSBjb21wdXRlZCBoYXNoLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQsIE0gPSBhbnk+IGV4dGVuZHMgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+IHtcbiAgX2hhc2g6IGFueTtcbn1cblxuLyoqXG4gKiBVc2VkIGZvciBwaWNraW5nIHByZS1zZXQgdmFsdWVzIHVzaW5nIGl0ZW1zIGFzIHRoZSBwcmVzZW50YXRpb24uXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0RGJ4UGlja2FibGVJdGVtRmllbGREaXJlY3RpdmU8VD4gZXh0ZW5kcyBGaWVsZFR5cGU8UGlja2FibGVWYWx1ZUZpZWxkc0Zvcm1seUZpZWxkQ29uZmlnPFQ+ICYgRmllbGRUeXBlQ29uZmlnPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKCdmaWx0ZXJNYXRJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGZpbHRlck1hdElucHV0ITogTWF0SW5wdXQ7XG5cbiAgcmVhZG9ubHkgaW5wdXRDdHJsID0gbmV3IEZvcm1Db250cm9sKCcnKTtcblxuICBwcml2YXRlIF9mb3JtQ29udHJvbE9icyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8QWJzdHJhY3RDb250cm9sPj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZm9ybUNvbnRyb2wkID0gdGhpcy5fZm9ybUNvbnRyb2xPYnMucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICBwcml2YXRlIF9kaXNwbGF5SGFzaE1hcCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPGFueSwgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+Pj4obmV3IE1hcCgpKTtcblxuICByZWFkb25seSBmaWx0ZXJJbnB1dFZhbHVlJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5pbnB1dEN0cmwudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCBhcyBhbnkpKTtcbiAgcmVhZG9ubHkgZmlsdGVySW5wdXRWYWx1ZVN0cmluZyQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZmlsdGVySW5wdXRWYWx1ZSQucGlwZShcbiAgICBkZWJvdW5jZVRpbWUoMjAwKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbG9hZFJlc3VsdHNEaXNwbGF5VmFsdWVzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPltdPj4gPSB0aGlzLmZvcm1Db250cm9sJC5waXBlKFxuICAgIGZpcnN0KCksXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMubG9hZFZhbHVlc0ZuKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoeCkgPT4gdGhpcy5sb2FkRGlzcGxheVZhbHVlc0ZvckZpZWxkVmFsdWVzKHgpKSxcbiAgICAgIHN0YXJ0V2l0aChiZWdpbkxvYWRpbmc8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD5bXT4oKSksXG4gICAgKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBfZm9ybUNvbnRyb2xWYWx1ZTogT2JzZXJ2YWJsZTxUIHwgVFtdPiA9IHRoaXMuZm9ybUNvbnRyb2wkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGNvbnRyb2wgPT4gY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aChjb250cm9sLnZhbHVlKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKSlcbiAgKTtcblxuICByZWFkb25seSBsb2FkUmVzdWx0c0Rpc3BsYXlWYWx1ZXMkOiBPYnNlcnZhYmxlPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10+ID0gdGhpcy5sb2FkUmVzdWx0c0Rpc3BsYXlWYWx1ZXNTdGF0ZSQucGlwZShcbiAgICBtYXAoeCA9PiB4Py52YWx1ZSA/PyBbXSlcbiAgKTtcblxuICAvKipcbiAgICogQ3VycmVudCB2YWx1ZXMgaW4gdGhlIGZvcm0gY29udHJvbC5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlcyQ6IE9ic2VydmFibGU8VFtdPiA9IHRoaXMuX2Zvcm1Db250cm9sVmFsdWUucGlwZShcbiAgICBtYXAoY29udmVydE1heWJlVG9BcnJheSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvKipcbiAgICogQ3VycmVudCB2YWx1ZXMgd2l0aCB0aGVpciBkaXNwbGF5IHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheVZhbHVlc1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD5bXT4+ID1cbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmxvYWRSZXN1bHRzRGlzcGxheVZhbHVlcyQsIHRoaXMudmFsdWVzJF0pLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKFtkaXNwbGF5VmFsdWVzLCBjdXJyZW50VmFsdWVzXSkgPT4ge1xuICAgICAgICBjb25zdCBkaXNwbGF5VmFsdWVzTWFwID0gbWFrZVZhbHVlc0dyb3VwTWFwKGRpc3BsYXlWYWx1ZXMsICh4KSA9PiB0aGlzLmhhc2hGb3JWYWx1ZSh4LnZhbHVlKSk7XG4gICAgICAgIGNvbnN0IHZhbHVlc05vdEluRGlzcGxheU1hcDogVFtdID0gW107XG5cbiAgICAgICAgY3VycmVudFZhbHVlcy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5oYXNoRm9yVmFsdWUoeCk7XG4gICAgICAgICAgbGV0IGRpc3BsYXlWYWx1ZTogTWF5YmU8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD4+ID0gZGlzcGxheVZhbHVlc01hcC5nZXQoa2V5KT8uWzBdO1xuXG4gICAgICAgICAgaWYgKCFkaXNwbGF5VmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlc05vdEluRGlzcGxheU1hcC5wdXNoKHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHZhbHVlc05vdEluRGlzcGxheU1hcC5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkRGlzcGxheVZhbHVlc0ZvclZhbHVlcyh2YWx1ZXNOb3RJbkRpc3BsYXlNYXApLnBpcGUoXG4gICAgICAgICAgICBtYXAoeCA9PiBtYXBMb2FkaW5nU3RhdGVSZXN1bHRzKHgsIHtcbiAgICAgICAgICAgICAgbWFwVmFsdWU6IChsb2FkZWRWYWx1ZXM6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10pID0+IHtcbiAgICAgICAgICAgICAgICBsb2FkZWRWYWx1ZXMuZm9yRWFjaCh4ID0+IHguaXNVbmtub3duID0geC5pc1Vua25vd24gPz8gdHJ1ZSk7IC8vIEFzc2lnbiB1bmtub3duIGZsYWcuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChbLi4uZGlzcGxheVZhbHVlcywgLi4ubG9hZGVkVmFsdWVzXSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHN1Y2Nlc3NSZXN1bHQoZGlzcGxheVZhbHVlcykpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgLyoqXG4gICAqIFJlc3VsdHMgdG8gYmUgZGlzcGxheWVkIGlmIGZpbHRlcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyZWRTZWFyY2hSZXN1bHRzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPltdPj4gPSB0aGlzLmxvYWRSZXN1bHRzRGlzcGxheVZhbHVlcyQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHZhbHVlcykgPT4gdGhpcy5maWx0ZXJJbnB1dFZhbHVlU3RyaW5nJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKHRleHQgPT4gY29tYmluZUxhdGVzdChbdGhpcy5fZmlsdGVyVmFsdWVzKHRleHQsIHZhbHVlcyksIHRoaXMuZGlzcGxheVZhbHVlc1N0YXRlJF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW3ZhbHVlcywgZGlzcGxheVN0YXRlXSkgPT4gbWFwTG9hZGluZ1N0YXRlUmVzdWx0cyhkaXNwbGF5U3RhdGUsIHtcbiAgICAgICAgICBtYXBWYWx1ZTogKGRpc3BsYXlWYWx1ZXM6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlSGFzaFNldCA9IG5ldyBTZXQodmFsdWVzLm1hcCh4ID0+IHRoaXMuaGFzaEZvclZhbHVlKHgpKSk7XG4gICAgICAgICAgICByZXR1cm4gZGlzcGxheVZhbHVlcy5maWx0ZXIoeCA9PiAheC5pc1Vua25vd24gJiYgdmFsdWVIYXNoU2V0Lmhhcyh4Ll9oYXNoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSksXG4gICAgICAgIHN0YXJ0V2l0aChiZWdpbkxvYWRpbmcoKSlcbiAgICAgICkpXG4gICAgKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBmaWx0ZXJlZFNlYXJjaFJlc3VsdHMkOiBPYnNlcnZhYmxlPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10+ID0gdGhpcy5maWx0ZXJlZFNlYXJjaFJlc3VsdHNTdGF0ZSQucGlwZShcbiAgICBtYXAoeCA9PiB4Py52YWx1ZSksXG4gICAgZmlsdGVyTWF5YmUoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGl0ZW1zJDogT2JzZXJ2YWJsZTxQaWNrYWJsZUl0ZW1GaWVsZEl0ZW08VD5bXT4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmZpbHRlcmVkU2VhcmNoUmVzdWx0cyQsIHRoaXMudmFsdWVzJF0pLnBpcGUoXG4gICAgbWFwKChbZGlzcGxheVZhbHVlcywgdmFsdWVzXSkgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRIYXNoVmFsdWVzU2V0ID0gbmV3IFNldCh2YWx1ZXMubWFwKHggPT4gdGhpcy5oYXNoRm9yVmFsdWUoeCkpKTtcbiAgICAgIGxldCBpdGVtczogUGlja2FibGVJdGVtRmllbGRJdGVtPFQ+W10gPSBkaXNwbGF5VmFsdWVzLm1hcCgoeCkgPT4gKHsgdmFsdWU6IHgsIHNlbGVjdGVkOiBzZWxlY3RlZEhhc2hWYWx1ZXNTZXQuaGFzKHguX2hhc2gpIH0pKTtcblxuICAgICAgaWYgKHRoaXMuc29ydEl0ZW1zKSB7XG4gICAgICAgIGl0ZW1zID0gdGhpcy5zb3J0SXRlbXMoaXRlbXMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaXRlbXM7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpdGVtc0xvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPiA9IHRoaXMubG9hZFJlc3VsdHNEaXNwbGF5VmFsdWVzJC5waXBlKFxuICAgIHN3aXRjaE1hcCh4ID0+IHRoaXMuaXRlbXMkLnBpcGUoXG4gICAgICBmaXJzdCgpLFxuICAgICAgbWFwKHggPT4gc3VjY2Vzc1Jlc3VsdCh4KSksXG4gICAgICBzdGFydFdpdGgoYmVnaW5Mb2FkaW5nKCkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApKVxuICApO1xuXG4gIC8qKlxuICAgKiBDb250ZXh0IHVzZWQgZm9yIG1hbmFnaW5nIHRoZSBsb2FkaW5nIG9mIGl0ZW1zLCBvciB3aGVuIHRoZSBjdXJyZW50IHJlc3VsdHMgY2hhbmdlLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dCA9IG5ldyBMaXN0TG9hZGluZ1N0YXRlQ29udGV4dEluc3RhbmNlKHsgb2JzOiB0aGlzLml0ZW1zTG9hZGluZ1N0YXRlJCwgc2hvd0xvYWRpbmdPbk5vVmFsdWU6IGZhbHNlIH0pO1xuXG4gIHJlYWRvbmx5IGZpbHRlckl0ZW1zTG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU+ID0gdGhpcy5pdGVtcyQucGlwZShcbiAgICBtYXAoeCA9PiBzdWNjZXNzUmVzdWx0KHgpKSxcbiAgICBzdGFydFdpdGgoYmVnaW5Mb2FkaW5nKCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLyoqXG4gICAqIENvbnRleHQgdXNlZCBmb3Igc2VhcmNoaW5nL2ZpbHRlcmluZy5cbiAgICovXG4gIHJlYWRvbmx5IGZpbHRlclJlc3VsdHNDb250ZXh0ID0gbmV3IExpc3RMb2FkaW5nU3RhdGVDb250ZXh0SW5zdGFuY2UoeyBvYnM6IHRoaXMuZmlsdGVyZWRTZWFyY2hSZXN1bHRzU3RhdGUkLCBzaG93TG9hZGluZ09uTm9WYWx1ZTogdHJ1ZSB9KTtcblxuICByZWFkb25seSBub0l0ZW1zQXZhaWxhYmxlJCA9IHRoaXMuZmlsdGVySXRlbXNMb2FkaW5nU3RhdGUkLnBpcGUoaXNMaXN0TG9hZGluZ1N0YXRlRW1wdHkoKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG5cbiAgZ2V0IHJlYWRvbmx5KCk6IE1heWJlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC50ZW1wbGF0ZU9wdGlvbnM/LnJlYWRvbmx5O1xuICB9XG5cbiAgZ2V0IGlzUmVhZG9ubHlPckRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQ7XG4gIH1cblxuICBnZXQgcGlja2FibGVGaWVsZCgpOiBQaWNrYWJsZVZhbHVlRmllbGRzRmllbGRDb25maWc8VD4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnBpY2thYmxlRmllbGQ7XG4gIH1cblxuICBnZXQgbXVsdGlTZWxlY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5tdWx0aVNlbGVjdCA/PyB0cnVlO1xuICB9XG5cbiAgZ2V0IGFzQXJyYXlWYWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5waWNrYWJsZUZpZWxkLmFzQXJyYXlWYWx1ZSA/PyB0cnVlO1xuICB9XG5cbiAgZ2V0IGZpbHRlckxhYmVsKCk6IE1heWJlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnBpY2thYmxlRmllbGQuZmlsdGVyTGFiZWw7XG4gIH1cblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLm5hbWUgPz8gKGNhbWVsQ2FzZSh0aGlzLmxhYmVsID8/IHRoaXMua2V5IGFzIHN0cmluZykpO1xuICB9XG5cbiAgZ2V0IGxhYmVsKCk6IE1heWJlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnRlbXBsYXRlT3B0aW9ucz8ubGFiZWw7XG4gIH1cblxuICBnZXQgYXV0b2NvbXBsZXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLmZpZWxkLnRlbXBsYXRlT3B0aW9ucz8uYXR0cmlidXRlcz8uWydhdXRvY29tcGxldGUnXSBhcyBhbnkpID8/IHRoaXMua2V5IGFzIHN0cmluZztcbiAgfVxuXG4gIGdldCBzb3J0SXRlbXMoKTogTWF5YmU8UGlja2FibGVJdGVtRmllbGRJdGVtU29ydEZuPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5zb3J0SXRlbXM7XG4gIH1cblxuICBnZXQgaGFzaEZvclZhbHVlKCk6IFBpY2thYmxlVmFsdWVGaWVsZEhhc2hGbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5oYXNoRm9yVmFsdWUgPz8gKCh4KSA9PiB4IGFzIGFueSk7XG4gIH1cblxuICBnZXQgZGlzcGxheUZvclZhbHVlKCk6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlGbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5kaXNwbGF5Rm9yVmFsdWU7XG4gIH1cblxuICBnZXQgc2hvd0ZpbHRlcklucHV0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMucGlja2FibGVGaWVsZC5maWx0ZXJWYWx1ZXMpO1xuICB9XG5cbiAgZ2V0IGZpbHRlclZhbHVlc0ZuKCk6IFBpY2thYmxlVmFsdWVGaWVsZEZpbHRlckZuPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5waWNrYWJsZUZpZWxkLmZpbHRlclZhbHVlcyA/PyAoKF8sIHgpID0+IG9mKHgubWFwKHkgPT4geS52YWx1ZSkpKTtcbiAgfVxuXG4gIGdldCBza2lwRmlsdGVyRm5PbkVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBpY2thYmxlRmllbGQuc2tpcEZpbHRlckZuT25FbXB0eSA/PyB0cnVlO1xuICB9XG5cbiAgZ2V0IF9maWx0ZXJWYWx1ZXMoKTogUGlja2FibGVWYWx1ZUZpZWxkRmlsdGVyRm48VD4ge1xuICAgIGxldCBmbjogUGlja2FibGVWYWx1ZUZpZWxkRmlsdGVyRm48VD47XG5cbiAgICBpZiAodGhpcy5za2lwRmlsdGVyRm5PbkVtcHR5KSB7XG4gICAgICBmbiA9IChmaWx0ZXJUZXh0OiBNYXliZTxzdHJpbmc+LCB2YWx1ZXM6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPltdKTogT2JzZXJ2YWJsZTxUW10+ID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdDogT2JzZXJ2YWJsZTxUW10+O1xuXG4gICAgICAgIGlmIChmaWx0ZXJUZXh0KSB7XG4gICAgICAgICAgcmVzdWx0ID0gdGhpcy5maWx0ZXJWYWx1ZXNGbihmaWx0ZXJUZXh0LCB2YWx1ZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IG9mKHZhbHVlcy5tYXAoeCA9PiB4LnZhbHVlKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm4gPSB0aGlzLmZpbHRlclZhbHVlc0ZuO1xuICAgIH1cblxuICAgIHJldHVybiBmbjtcbiAgfVxuXG4gIGdldCBzaG93VGV4dEZpbHRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5waWNrYWJsZUZpZWxkLnNob3dUZXh0RmlsdGVyID8/IEJvb2xlYW4odGhpcy5waWNrYWJsZUZpZWxkLmZpbHRlclZhbHVlcyk7XG4gIH1cblxuICBnZXQgbG9hZFZhbHVlc0ZuKCk6IFBpY2thYmxlVmFsdWVGaWVsZExvYWRWYWx1ZXNGbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5sb2FkVmFsdWVzO1xuICB9XG5cbiAgZ2V0IHZhbHVlcygpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLl9nZXRWYWx1ZU9uRm9ybUNvbnRyb2wodGhpcy5mb3JtQ29udHJvbC52YWx1ZSkgPz8gW107XG4gIH1cblxuICBnZXQgZm9vdGVyQ29uZmlnKCk6IE1heWJlPERieEluamVjdGVkQ29tcG9uZW50Q29uZmlnPiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5mb290ZXJDb25maWc7XG4gIH1cblxuICBsb2FkRGlzcGxheVZhbHVlc0ZvclZhbHVlcyh2YWx1ZXM6IFRbXSk6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10+PiB7XG4gICAgcmV0dXJuIHRoaXMubG9hZERpc3BsYXlWYWx1ZXNGb3JGaWVsZFZhbHVlcyh2YWx1ZXMubWFwKCh2YWx1ZSkgPT4gKHsgdmFsdWUgfSkpKTtcbiAgfVxuXG4gIGxvYWREaXNwbGF5VmFsdWVzRm9yRmllbGRWYWx1ZXModmFsdWVzOiBQaWNrYWJsZVZhbHVlRmllbGRWYWx1ZTxUPltdKTogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD5bXT4+IHtcbiAgICByZXR1cm4gdGhpcy5nZXREaXNwbGF5VmFsdWVzRm9yRmllbGRWYWx1ZXModmFsdWVzKS5waXBlKFxuICAgICAgbWFwKChkaXNwbGF5VmFsdWVzOiBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPltdKSA9PiBzdWNjZXNzUmVzdWx0KGRpc3BsYXlWYWx1ZXMpKSxcbiAgICAgIHN0YXJ0V2l0aChiZWdpbkxvYWRpbmcoKSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBnZXREaXNwbGF5VmFsdWVzRm9yRmllbGRWYWx1ZXModmFsdWVzOiBQaWNrYWJsZVZhbHVlRmllbGRWYWx1ZTxUPltdKTogT2JzZXJ2YWJsZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPltdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlIYXNoTWFwLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoZGlzcGxheU1hcCkgPT4ge1xuICAgICAgICBjb25zdCBtYXBwaW5nUmVzdWx0ID0gdmFsdWVzXG4gICAgICAgICAgLm1hcCh4ID0+IFt4LCB0aGlzLmhhc2hGb3JWYWx1ZSh4LnZhbHVlKV0pXG4gICAgICAgICAgLm1hcCgoW3gsIGhhc2hdLCBpKSA9PiBbaSwgaGFzaCwgeCwgZGlzcGxheU1hcC5nZXQoaGFzaCldIGFzIFtudW1iZXIsIGFueSwgUGlja2FibGVWYWx1ZUZpZWxkVmFsdWU8VD4sIFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+XSk7XG5cbiAgICAgICAgY29uc3QgaGFzRGlzcGxheSA9IG1hcHBpbmdSZXN1bHQuZmlsdGVyKHggPT4gQm9vbGVhbih4WzNdKSk7XG4gICAgICAgIGNvbnN0IG5lZWRzRGlzcGxheSA9IG1hcHBpbmdSZXN1bHQuZmlsdGVyKHggPT4gIXhbM10pO1xuXG4gICAgICAgIGlmIChuZWVkc0Rpc3BsYXkubGVuZ3RoID4gMCkge1xuXG4gICAgICAgICAgLy8gR28gZ2V0IHRoZSBkaXNwbGF5IHZhbHVlLlxuICAgICAgICAgIGNvbnN0IGRpc3BsYXlWYWx1ZXNPYnMgPSB0aGlzLmRpc3BsYXlGb3JWYWx1ZShuZWVkc0Rpc3BsYXkubWFwKHggPT4geFsyXSkpO1xuXG4gICAgICAgICAgcmV0dXJuIGRpc3BsYXlWYWx1ZXNPYnMucGlwZShcbiAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICBtYXAoKGRpc3BsYXlSZXN1bHRzKSA9PiB7XG5cbiAgICAgICAgICAgICAgY29uc3QgZGlzcGxheVJlc3VsdHNXaXRoSGFzaDogUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD5bXSA9IGRpc3BsYXlSZXN1bHRzLm1hcCgoeCkgPT4ge1xuICAgICAgICAgICAgICAgICh4IGFzIFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+KS5faGFzaCA9IHRoaXMuaGFzaEZvclZhbHVlKHgudmFsdWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiAoeCBhcyBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPik7XG4gICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgIC8vIENyZWF0ZSBhIG1hcCB0byByZS1qb2luIHZhbHVlcyBsYXRlci5cbiAgICAgICAgICAgICAgY29uc3QgZGlzcGxheVJlc3VsdHNNYXBwaW5nOiBbUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD4sIGFueV1bXSA9IGRpc3BsYXlSZXN1bHRzV2l0aEhhc2gubWFwKHggPT4gW3gsIHguX2hhc2hdKTtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWVJbmRleEhhc2hNYXAgPSBuZXcgTWFwKGRpc3BsYXlSZXN1bHRzTWFwcGluZy5tYXAoKFt4LCBoYXNoXSkgPT4gW2hhc2gsIHhdKSk7XG5cbiAgICAgICAgICAgICAgLy8gVXBkYXRlIGRpc3BsYXlNYXAuIE5vIG5lZWQgdG8gcHVzaCBhbiB1cGRhdGUgbm90aWZpY2F0aW9uLlxuICAgICAgICAgICAgICBkaXNwbGF5UmVzdWx0c01hcHBpbmcuZm9yRWFjaCgoW3gsIGhhc2hdKSA9PiBkaXNwbGF5TWFwLnNldChoYXNoLCB4KSk7XG5cbiAgICAgICAgICAgICAgLy8gWmlwIHZhbHVlcyBiYWNrIHRvZ2V0aGVyLlxuICAgICAgICAgICAgICBjb25zdCBuZXdEaXNwbGF5VmFsdWVzID0gbWFwcGluZ1Jlc3VsdC5tYXAoeCA9PiB4WzNdID8/IHZhbHVlSW5kZXhIYXNoTWFwLmdldCh4WzFdKSk7XG5cbiAgICAgICAgICAgICAgLy8gUmV0dXJuIGRpc3BsYXkgdmFsdWVzLlxuICAgICAgICAgICAgICByZXR1cm4gbmV3RGlzcGxheVZhbHVlcztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgIC8vIElmIGFsbCBkaXNwbGF5IHZhbHVlcyBhcmUgaGFzaGVkIHJldHVybiB0aGF0LlxuICAgICAgICAgIHJldHVybiBvZihoYXNEaXNwbGF5Lm1hcCh4ID0+IHhbM10pKSBhcyBPYnNlcnZhYmxlPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10+O1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuX2Zvcm1Db250cm9sT2JzLm5leHQodGhpcy5mb3JtQ29udHJvbCk7XG5cbiAgICAvLyBGb2N1cyBhZnRlciBmaW5pc2hlZCBsb2FkaW5nIGZvciB0aGUgZmlyc3QgdGltZS5cbiAgICB0aGlzLmNvbnRleHQubG9hZGluZyQucGlwZShcbiAgICAgIGRlbGF5KDEwKSxcbiAgICAgIGZpbHRlcih4ID0+IHgpLFxuICAgICAgZmlyc3QoKSxcbiAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlck1hdElucHV0Py5mb2N1cygpO1xuICAgIH0pXG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX2Rpc3BsYXlIYXNoTWFwLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZm9ybUNvbnRyb2xPYnMuY29tcGxldGUoKTtcbiAgICB0aGlzLmZpbHRlclJlc3VsdHNDb250ZXh0LmRlc3Ryb3koKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfZ2V0VmFsdWVPbkZvcm1Db250cm9sKHZhbHVlT25Gb3JtQ29udHJvbDogYW55KTogVFtdIHtcbiAgICBjb25zdCB2YWx1ZSA9ICh2YWx1ZU9uRm9ybUNvbnRyb2wgIT0gbnVsbCkgPyBbXS5jb25jYXQodmFsdWVPbkZvcm1Db250cm9sKSA6IFtdOyAgLy8gQWx3YXlzIHJldHVybiBhbiBhcnJheS5cbiAgICByZXR1cm4gdmFsdWUgYXMgVFtdO1xuICB9XG5cbiAgYWRkVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICB0aGlzLnNldFZhbHVlcyhbLi4udGhpcy52YWx1ZXMsIHZhbHVlXSk7XG4gIH1cblxuICByZW1vdmVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgIGNvbnN0IGhhc2hUb0ZpbHRlciA9IHRoaXMuaGFzaEZvclZhbHVlKHZhbHVlKTtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnZhbHVlcy5maWx0ZXIoeCA9PiB0aGlzLmhhc2hGb3JWYWx1ZSh4KSAhPT0gaGFzaFRvRmlsdGVyKTtcbiAgICB0aGlzLnNldFZhbHVlcyh2YWx1ZXMpO1xuICB9XG5cbiAgc2V0VmFsdWVzKHZhbHVlczogVFtdKTogdm9pZCB7XG5cbiAgICAvLyBVc2UgdG8gZmlsdGVyIG5vbi11bmlxdWUgdmFsdWVzLlxuICAgIGlmICh0aGlzLmhhc2hGb3JWYWx1ZSkge1xuICAgICAgdmFsdWVzID0gZmluZFVuaXF1ZSh2YWx1ZXMsIHRoaXMuaGFzaEZvclZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubXVsdGlTZWxlY3QpIHtcbiAgICAgIHZhbHVlcyA9IFt2YWx1ZXNbMF1dLmZpbHRlcih4ID0+IHggIT0gbnVsbCk7XG4gICAgfVxuXG4gICAgdGhpcy5fc2V0VmFsdWVPbkZvcm1Db250cm9sKHZhbHVlcyk7XG4gIH1cblxuICAvLyBNQVJLOiBJbnRlcm5hbFxuICBwcm90ZWN0ZWQgX3NldFZhbHVlT25Gb3JtQ29udHJvbCh2YWx1ZXM6IFRbXSk6IHZvaWQge1xuICAgIGxldCBuZXdWYWx1ZTogVCB8IFRbXSA9IHZhbHVlcztcblxuICAgIGlmICghdGhpcy5hc0FycmF5VmFsdWUpIHtcbiAgICAgIG5ld1ZhbHVlID0gW3ZhbHVlc1swXV0uZmlsdGVyKHggPT4geCAhPSBudWxsKVswXTtcbiAgICB9XG5cbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKG5ld1ZhbHVlKTtcbiAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc0RpcnR5KCk7XG4gIH1cblxufVxuIl19
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuZmllbGQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3BpY2thYmxlL3BpY2thYmxlLmZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFnQixhQUFhLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pLLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEwsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFxRnhDOztHQUVHO0FBRUgsTUFBTSxPQUFPLHFDQUF5QyxTQUFRLFNBQW9FO0lBRGxJOztRQU1XLGNBQVMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqQyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUF5QixTQUFT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QUNyQixNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDaEQ7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7U0FDN0M7UUFFRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGlCQUFpQjtJQUNQLHNCQUFzQixDQUFDLE1BQVc7UUFDMUMsSUFBSSxRQUFRLEdBQVksTUFBTSxDQUFDO1FBRS9CLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsRDtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDOztrSUE5V1UscUNBQXFDO3NIQUFyQyxxQ0FBcUM7MkZBQXJDLHFDQUFxQztrQkFEakQsU0FBUzs4QkFJUixjQUFjO3NCQURiLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnIH0gZnJvbSBcIkBkZXJlZWtiL2RieC1jb3JlXCI7XG5pbXBvcnQgeyBiZWdpbkxvYWRpbmcsIExvYWRpbmdTdGF0ZSwgc3VjY2Vzc1Jlc3VsdCwgbWFwTG9hZGluZ1N0YXRlUmVzdWx0cywgZmlsdGVyTWF5YmUsIExpc3RMb2FkaW5nU3RhdGVDb250ZXh0SW5zdGFuY2UsIGlzTGlzdExvYWRpbmdTdGF0ZUVtcHR5IH0gZnJvbSBcIkBkZXJlZWtiL3J4anNcIjtcbmltcG9ydCB7IGNvbnZlcnRNYXliZVRvQXJyYXksIGZpbmRVbmlxdWUsIG1ha2VWYWx1ZXNHcm91cE1hcCwgTWF5YmUgfSBmcm9tIFwiQGRlcmVla2IvdXRpbFwiO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sLCBBYnN0cmFjdENvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcsIEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSBcIkBuZ3gtZm9ybWx5L2NvcmVcIjtcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gXCJAbmd4LWZvcm1seS9tYXRlcmlhbFwiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgZmlsdGVyLCBtYXAsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN3aXRjaE1hcCwgc3RhcnRXaXRoLCBzaGFyZVJlcGxheSwgbWVyZ2VNYXAsIGZpcnN0LCBkZWxheSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5Rm4sIFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZSwgUGlja2FibGVWYWx1ZUZpZWxkRmlsdGVyRm4sIFBpY2thYmxlVmFsdWVGaWVsZEhhc2hGbiwgUGlja2FibGVWYWx1ZUZpZWxkTG9hZFZhbHVlc0ZuLCBQaWNrYWJsZVZhbHVlRmllbGRWYWx1ZSB9IGZyb20gXCIuL3BpY2thYmxlXCI7XG5pbXBvcnQgeyBEYnhWYWx1ZUxpc3RJdGVtIH0gZnJvbSBcIkBkZXJlZWtiL2RieC13ZWJcIjtcbmltcG9ydCB7IGNhbWVsQ2FzZSB9IGZyb20gXCJjaGFuZ2UtY2FzZVwiO1xuXG4vKipcbiAqIFdyYXBzIHRoZSBzZWxlY3RlZCBzdGF0ZSB3aXRoIHRoZSBpdGVtcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaWNrYWJsZUl0ZW1GaWVsZEl0ZW08VD4gZXh0ZW5kcyBEYnhWYWx1ZUxpc3RJdGVtPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPj4geyB9XG5cbmV4cG9ydCB0eXBlIFBpY2thYmxlSXRlbUZpZWxkSXRlbVNvcnRGbjxUPiA9IChpdGVtczogUGlja2FibGVJdGVtRmllbGRJdGVtPFQ+W10pID0+IFBpY2thYmxlSXRlbUZpZWxkSXRlbTxUPltdO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2thYmxlVmFsdWVGaWVsZHNGaWVsZENvbmZpZzxUPiB7XG4gIC8qKlxuICAgKiBMb2FkcyBhbGwgcGlja2FibGUgdmFsdWVzLlxuICAgKi9cbiAgbG9hZFZhbHVlczogUGlja2FibGVWYWx1ZUZpZWxkTG9hZFZhbHVlc0ZuPFQ+O1xuICAvKipcbiAgICogVXNlZCBmb3IgYnVpbGRpbmcgYSBkaXNwbGF5IHZhbHVlIGdpdmVuIHRoZSBpbnB1dC5cbiAgICovXG4gIGRpc3BsYXlGb3JWYWx1ZTogUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheUZuPFQ+O1xuICAvKipcbiAgICogVXNlZCBmb3IgaGFzaGluZyBkaXNwbGF5IHZhbHVlcyBhbmQgb21pdHRpbmcgcmVwZWF0IHZhbHVlcy5cbiAgICpcbiAgICogSWYgaGFzaEZvclZhbHVlIGlzIG5vdCBwcm92aWRlZCwgdGhlIHZhbHVlJ3MgdmFsdWUgd2lsbCBiZSB1c2VkIGFzIGlzLlxuICAgKi9cbiAgaGFzaEZvclZhbHVlPzogUGlja2FibGVWYWx1ZUZpZWxkSGFzaEZuPFQ+O1xuICAvKipcbiAgICogVXNlZCBmb3IgZmlsdGVyaW5nIHZhbHVlcyB2aWEgdGhlIHNlYXJjaCB0ZXh0LlxuICAgKi9cbiAgZmlsdGVyVmFsdWVzPzogUGlja2FibGVWYWx1ZUZpZWxkRmlsdGVyRm48VD47XG4gIC8qKlxuICAgKiBVc2VkIGZvciBzb3J0aW5nIHRoZSBpdGVtcyBiZWZvcmUgdGhleSBhcmUgZGlzcGxheWVkLlxuICAgKiBcbiAgICogU2hvdWxkIG9ubHkgYmUgdXNlZCB0byBzb3J0IHZhbHVlcy5cbiAgICovXG4gIHNvcnRJdGVtcz86IFBpY2thYmxlSXRlbUZpZWxkSXRlbVNvcnRGbjxUPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFsbG93IG11bHRpcGxlIGl0ZW1zIHRvIGJlIHNlbGVjdGVkLlxuICAgKi9cbiAgbXVsdGlTZWxlY3Q/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gc2V0L2dldCB2YWx1ZXMgYXMgYW4gYXJyYXkgb3IgYSBzaW5nbGUgdmFsdWUuIElmIHNldCBmYWxzZSwgbXVsdGlTZWxlY3QgaXMgaWdub3JlZC5cbiAgICovXG4gIGFzQXJyYXlWYWx1ZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzaG93IHRoZSB0ZXh0IGZpbHRlci4gVHJ1ZSBieSBkZWZhdWx0IGlmIGZpbHRlclZhbHVlcyBpcyBwcm92aWRlZC5cbiAgICovXG4gIHNob3dUZXh0RmlsdGVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHNraXAgdGhlIGZpbHRlciBmdW5jdGlvbiB3aGVuIHRoZSBpbnB1dCBpcyBlbXB0eS5cbiAgICogXG4gICAqIFRydWUgYnkgZGVmYXVsdC5cbiAgICovXG4gIHNraXBGaWx0ZXJGbk9uRW1wdHk/OiBib29sZWFuO1xuICAvKipcbiAgICogRmlsdGVyIExhYmVsXG4gICAqL1xuICBmaWx0ZXJMYWJlbD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiB2YWx1ZXMgdGhhdCBjYW4gYmUgcGlja2VkXG4gICAqL1xuICBtYXhQaWNrcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uL2hpbnQgdG8gZGlzcGxheS5cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogRm9vdGVyIERpc3BsYXlcbiAgICovXG4gIGZvb3RlckNvbmZpZz86IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZztcbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHNlbGVjdGlvbiBtb2RlIG9mIHRoZSBsaXN0IHRvIFwidmlld1wiIG1vZGUgb24gZGlzYWJsZWQsIGhpZGluZyB0aGUgc2VsZWN0aW9uIGJveGVzLlxuICAgKi9cbiAgY2hhbmdlU2VsZWN0aW9uTW9kZVRvVmlld09uRGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2thYmxlVmFsdWVGaWVsZHNGb3JtbHlGaWVsZENvbmZpZzxUPiBleHRlbmRzIEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgcGlja2FibGVGaWVsZDogUGlja2FibGVWYWx1ZUZpZWxkc0ZpZWxkQ29uZmlnPFQ+O1xufVxuXG4vKipcbiAqIERpc3BsYXllZCB2YWx1ZSB3aXRoIHRoZSBjb21wdXRlZCBoYXNoLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQsIE0gPSBhbnk+IGV4dGVuZHMgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+IHtcbiAgX2hhc2g6IGFueTtcbn1cblxuLyoqXG4gKiBVc2VkIGZvciBwaWNraW5nIHByZS1zZXQgdmFsdWVzIHVzaW5nIGl0ZW1zIGFzIHRoZSBwcmVzZW50YXRpb24uXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0RGJ4UGlja2FibGVJdGVtRmllbGREaXJlY3RpdmU8VD4gZXh0ZW5kcyBGaWVsZFR5cGU8UGlja2FibGVWYWx1ZUZpZWxkc0Zvcm1seUZpZWxkQ29uZmlnPFQ+ICYgRmllbGRUeXBlQ29uZmlnPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKCdmaWx0ZXJNYXRJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGZpbHRlck1hdElucHV0ITogTWF0SW5wdXQ7XG5cbiAgcmVhZG9ubHkgaW5wdXRDdHJsID0gbmV3IEZvcm1Db250cm9sKCcnKTtcblxuICBwcml2YXRlIF9mb3JtQ29udHJvbE9icyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8QWJzdHJhY3RDb250cm9sPj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZm9ybUNvbnRyb2wkID0gdGhpcy5fZm9ybUNvbnRyb2xPYnMucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICBwcml2YXRlIF9kaXNwbGF5SGFzaE1hcCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPGFueSwgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+Pj4obmV3IE1hcCgpKTtcblxuICByZWFkb25seSBmaWx0ZXJJbnB1dFZhbHVlJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5pbnB1dEN0cmwudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCBhcyBhbnkpKTtcbiAgcmVhZG9ubHkgZmlsdGVySW5wdXRWYWx1ZVN0cmluZyQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZmlsdGVySW5wdXRWYWx1ZSQucGlwZShcbiAgICBkZWJvdW5jZVRpbWUoMjAwKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbG9hZFJlc3VsdHNEaXNwbGF5VmFsdWVzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPltdPj4gPSB0aGlzLmZvcm1Db250cm9sJC5waXBlKFxuICAgIGZpcnN0KCksXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMubG9hZFZhbHVlc0ZuKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoeCkgPT4gdGhpcy5sb2FkRGlzcGxheVZhbHVlc0ZvckZpZWxkVmFsdWVzKHgpKSxcbiAgICAgIHN0YXJ0V2l0aChiZWdpbkxvYWRpbmc8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD5bXT4oKSksXG4gICAgKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBfZm9ybUNvbnRyb2xWYWx1ZTogT2JzZXJ2YWJsZTxUIHwgVFtdPiA9IHRoaXMuZm9ybUNvbnRyb2wkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGNvbnRyb2wgPT4gY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aChjb250cm9sLnZhbHVlKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKSlcbiAgKTtcblxuICByZWFkb25seSBsb2FkUmVzdWx0c0Rpc3BsYXlWYWx1ZXMkOiBPYnNlcnZhYmxlPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10+ID0gdGhpcy5sb2FkUmVzdWx0c0Rpc3BsYXlWYWx1ZXNTdGF0ZSQucGlwZShcbiAgICBtYXAoeCA9PiB4Py52YWx1ZSA/PyBbXSlcbiAgKTtcblxuICAvKipcbiAgICogQ3VycmVudCB2YWx1ZXMgaW4gdGhlIGZvcm0gY29udHJvbC5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlcyQ6IE9ic2VydmFibGU8VFtdPiA9IHRoaXMuX2Zvcm1Db250cm9sVmFsdWUucGlwZShcbiAgICBtYXAoY29udmVydE1heWJlVG9BcnJheSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvKipcbiAgICogQ3VycmVudCB2YWx1ZXMgd2l0aCB0aGVpciBkaXNwbGF5IHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheVZhbHVlc1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD5bXT4+ID1cbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmxvYWRSZXN1bHRzRGlzcGxheVZhbHVlcyQsIHRoaXMudmFsdWVzJF0pLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKFtkaXNwbGF5VmFsdWVzLCBjdXJyZW50VmFsdWVzXSkgPT4ge1xuICAgICAgICBjb25zdCBkaXNwbGF5VmFsdWVzTWFwID0gbWFrZVZhbHVlc0dyb3VwTWFwKGRpc3BsYXlWYWx1ZXMsICh4KSA9PiB0aGlzLmhhc2hGb3JWYWx1ZSh4LnZhbHVlKSk7XG4gICAgICAgIGNvbnN0IHZhbHVlc05vdEluRGlzcGxheU1hcDogVFtdID0gW107XG5cbiAgICAgICAgY3VycmVudFZhbHVlcy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5oYXNoRm9yVmFsdWUoeCk7XG4gICAgICAgICAgbGV0IGRpc3BsYXlWYWx1ZTogTWF5YmU8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD4+ID0gZGlzcGxheVZhbHVlc01hcC5nZXQoa2V5KT8uWzBdO1xuXG4gICAgICAgICAgaWYgKCFkaXNwbGF5VmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlc05vdEluRGlzcGxheU1hcC5wdXNoKHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHZhbHVlc05vdEluRGlzcGxheU1hcC5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkRGlzcGxheVZhbHVlc0ZvclZhbHVlcyh2YWx1ZXNOb3RJbkRpc3BsYXlNYXApLnBpcGUoXG4gICAgICAgICAgICBtYXAoeCA9PiBtYXBMb2FkaW5nU3RhdGVSZXN1bHRzKHgsIHtcbiAgICAgICAgICAgICAgbWFwVmFsdWU6IChsb2FkZWRWYWx1ZXM6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10pID0+IHtcbiAgICAgICAgICAgICAgICBsb2FkZWRWYWx1ZXMuZm9yRWFjaCh4ID0+IHguaXNVbmtub3duID0geC5pc1Vua25vd24gPz8gdHJ1ZSk7IC8vIEFzc2lnbiB1bmtub3duIGZsYWcuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChbLi4uZGlzcGxheVZhbHVlcywgLi4ubG9hZGVkVmFsdWVzXSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHN1Y2Nlc3NSZXN1bHQoZGlzcGxheVZhbHVlcykpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgLyoqXG4gICAqIFJlc3VsdHMgdG8gYmUgZGlzcGxheWVkIGlmIGZpbHRlcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyZWRTZWFyY2hSZXN1bHRzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPltdPj4gPSB0aGlzLmxvYWRSZXN1bHRzRGlzcGxheVZhbHVlcyQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHZhbHVlcykgPT4gdGhpcy5maWx0ZXJJbnB1dFZhbHVlU3RyaW5nJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKHRleHQgPT4gY29tYmluZUxhdGVzdChbdGhpcy5fZmlsdGVyVmFsdWVzKHRleHQsIHZhbHVlcyksIHRoaXMuZGlzcGxheVZhbHVlc1N0YXRlJF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW3ZhbHVlcywgZGlzcGxheVN0YXRlXSkgPT4gbWFwTG9hZGluZ1N0YXRlUmVzdWx0cyhkaXNwbGF5U3RhdGUsIHtcbiAgICAgICAgICBtYXBWYWx1ZTogKGRpc3BsYXlWYWx1ZXM6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlSGFzaFNldCA9IG5ldyBTZXQodmFsdWVzLm1hcCh4ID0+IHRoaXMuaGFzaEZvclZhbHVlKHgpKSk7XG4gICAgICAgICAgICByZXR1cm4gZGlzcGxheVZhbHVlcy5maWx0ZXIoeCA9PiAheC5pc1Vua25vd24gJiYgdmFsdWVIYXNoU2V0Lmhhcyh4Ll9oYXNoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSksXG4gICAgICAgIHN0YXJ0V2l0aChiZWdpbkxvYWRpbmcoKSlcbiAgICAgICkpXG4gICAgKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBmaWx0ZXJlZFNlYXJjaFJlc3VsdHMkOiBPYnNlcnZhYmxlPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10+ID0gdGhpcy5maWx0ZXJlZFNlYXJjaFJlc3VsdHNTdGF0ZSQucGlwZShcbiAgICBtYXAoeCA9PiB4Py52YWx1ZSksXG4gICAgZmlsdGVyTWF5YmUoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGl0ZW1zJDogT2JzZXJ2YWJsZTxQaWNrYWJsZUl0ZW1GaWVsZEl0ZW08VD5bXT4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmZpbHRlcmVkU2VhcmNoUmVzdWx0cyQsIHRoaXMudmFsdWVzJF0pLnBpcGUoXG4gICAgbWFwKChbZGlzcGxheVZhbHVlcywgdmFsdWVzXSkgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRIYXNoVmFsdWVzU2V0ID0gbmV3IFNldCh2YWx1ZXMubWFwKHggPT4gdGhpcy5oYXNoRm9yVmFsdWUoeCkpKTtcbiAgICAgIGxldCBpdGVtczogUGlja2FibGVJdGVtRmllbGRJdGVtPFQ+W10gPSBkaXNwbGF5VmFsdWVzLm1hcCgoeCkgPT4gKHsgaXRlbVZhbHVlOiB4LCBzZWxlY3RlZDogc2VsZWN0ZWRIYXNoVmFsdWVzU2V0Lmhhcyh4Ll9oYXNoKSB9KSk7XG5cbiAgICAgIGlmICh0aGlzLnNvcnRJdGVtcykge1xuICAgICAgICBpdGVtcyA9IHRoaXMuc29ydEl0ZW1zKGl0ZW1zKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaXRlbXNMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZT4gPSB0aGlzLmxvYWRSZXN1bHRzRGlzcGxheVZhbHVlcyQucGlwZShcbiAgICBzd2l0Y2hNYXAoeCA9PiB0aGlzLml0ZW1zJC5waXBlKFxuICAgICAgZmlyc3QoKSxcbiAgICAgIG1hcCh4ID0+IHN1Y2Nlc3NSZXN1bHQoeCkpLFxuICAgICAgc3RhcnRXaXRoKGJlZ2luTG9hZGluZygpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKSlcbiAgKTtcblxuICAvKipcbiAgICogQ29udGV4dCB1c2VkIGZvciBtYW5hZ2luZyB0aGUgbG9hZGluZyBvZiBpdGVtcywgb3Igd2hlbiB0aGUgY3VycmVudCByZXN1bHRzIGNoYW5nZS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQgPSBuZXcgTGlzdExvYWRpbmdTdGF0ZUNvbnRleHRJbnN0YW5jZSh7IG9iczogdGhpcy5pdGVtc0xvYWRpbmdTdGF0ZSQsIHNob3dMb2FkaW5nT25Ob1ZhbHVlOiBmYWxzZSB9KTtcblxuICByZWFkb25seSBmaWx0ZXJJdGVtc0xvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPiA9IHRoaXMuaXRlbXMkLnBpcGUoXG4gICAgbWFwKHggPT4gc3VjY2Vzc1Jlc3VsdCh4KSksXG4gICAgc3RhcnRXaXRoKGJlZ2luTG9hZGluZygpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8qKlxuICAgKiBDb250ZXh0IHVzZWQgZm9yIHNlYXJjaGluZy9maWx0ZXJpbmcuXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXJSZXN1bHRzQ29udGV4dCA9IG5ldyBMaXN0TG9hZGluZ1N0YXRlQ29udGV4dEluc3RhbmNlKHsgb2JzOiB0aGlzLmZpbHRlcmVkU2VhcmNoUmVzdWx0c1N0YXRlJCwgc2hvd0xvYWRpbmdPbk5vVmFsdWU6IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgbm9JdGVtc0F2YWlsYWJsZSQgPSB0aGlzLmZpbHRlckl0ZW1zTG9hZGluZ1N0YXRlJC5waXBlKGlzTGlzdExvYWRpbmdTdGF0ZUVtcHR5KCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuXG4gIGdldCByZWFkb25seSgpOiBNYXliZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQudGVtcGxhdGVPcHRpb25zPy5yZWFkb25seTtcbiAgfVxuXG4gIGdldCBpc1JlYWRvbmx5T3JEaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkO1xuICB9XG5cbiAgZ2V0IHBpY2thYmxlRmllbGQoKTogUGlja2FibGVWYWx1ZUZpZWxkc0ZpZWxkQ29uZmlnPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5waWNrYWJsZUZpZWxkO1xuICB9XG5cbiAgZ2V0IG11bHRpU2VsZWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBpY2thYmxlRmllbGQubXVsdGlTZWxlY3QgPz8gdHJ1ZTtcbiAgfVxuXG4gIGdldCBhc0FycmF5VmFsdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5hc0FycmF5VmFsdWUgPz8gdHJ1ZTtcbiAgfVxuXG4gIGdldCBmaWx0ZXJMYWJlbCgpOiBNYXliZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5waWNrYWJsZUZpZWxkLmZpbHRlckxhYmVsO1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5uYW1lID8/IChjYW1lbENhc2UodGhpcy5sYWJlbCA/PyB0aGlzLmtleSBhcyBzdHJpbmcpKTtcbiAgfVxuXG4gIGdldCBsYWJlbCgpOiBNYXliZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC50ZW1wbGF0ZU9wdGlvbnM/LmxhYmVsO1xuICB9XG5cbiAgZ2V0IGF1dG9jb21wbGV0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5maWVsZC50ZW1wbGF0ZU9wdGlvbnM/LmF0dHJpYnV0ZXM/LlsnYXV0b2NvbXBsZXRlJ10gYXMgYW55KSA/PyB0aGlzLmtleSBhcyBzdHJpbmc7XG4gIH1cblxuICBnZXQgY2hhbmdlU2VsZWN0aW9uTW9kZVRvVmlld09uRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5jaGFuZ2VTZWxlY3Rpb25Nb2RlVG9WaWV3T25EaXNhYmxlZCA/PyBmYWxzZTtcbiAgfVxuXG4gIGdldCBzb3J0SXRlbXMoKTogTWF5YmU8UGlja2FibGVJdGVtRmllbGRJdGVtU29ydEZuPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5zb3J0SXRlbXM7XG4gIH1cblxuICBnZXQgaGFzaEZvclZhbHVlKCk6IFBpY2thYmxlVmFsdWVGaWVsZEhhc2hGbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5oYXNoRm9yVmFsdWUgPz8gKCh4KSA9PiB4IGFzIGFueSk7XG4gIH1cblxuICBnZXQgZGlzcGxheUZvclZhbHVlKCk6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlGbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5kaXNwbGF5Rm9yVmFsdWU7XG4gIH1cblxuICBnZXQgc2hvd0ZpbHRlcklucHV0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMucGlja2FibGVGaWVsZC5maWx0ZXJWYWx1ZXMpO1xuICB9XG5cbiAgZ2V0IGZpbHRlclZhbHVlc0ZuKCk6IFBpY2thYmxlVmFsdWVGaWVsZEZpbHRlckZuPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5waWNrYWJsZUZpZWxkLmZpbHRlclZhbHVlcyA/PyAoKF8sIHgpID0+IG9mKHgubWFwKHkgPT4geS52YWx1ZSkpKTtcbiAgfVxuXG4gIGdldCBza2lwRmlsdGVyRm5PbkVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBpY2thYmxlRmllbGQuc2tpcEZpbHRlckZuT25FbXB0eSA/PyB0cnVlO1xuICB9XG5cbiAgZ2V0IF9maWx0ZXJWYWx1ZXMoKTogUGlja2FibGVWYWx1ZUZpZWxkRmlsdGVyRm48VD4ge1xuICAgIGxldCBmbjogUGlja2FibGVWYWx1ZUZpZWxkRmlsdGVyRm48VD47XG5cbiAgICBpZiAodGhpcy5za2lwRmlsdGVyRm5PbkVtcHR5KSB7XG4gICAgICBmbiA9IChmaWx0ZXJUZXh0OiBNYXliZTxzdHJpbmc+LCB2YWx1ZXM6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPltdKTogT2JzZXJ2YWJsZTxUW10+ID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdDogT2JzZXJ2YWJsZTxUW10+O1xuXG4gICAgICAgIGlmIChmaWx0ZXJUZXh0KSB7XG4gICAgICAgICAgcmVzdWx0ID0gdGhpcy5maWx0ZXJWYWx1ZXNGbihmaWx0ZXJUZXh0LCB2YWx1ZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IG9mKHZhbHVlcy5tYXAoeCA9PiB4LnZhbHVlKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm4gPSB0aGlzLmZpbHRlclZhbHVlc0ZuO1xuICAgIH1cblxuICAgIHJldHVybiBmbjtcbiAgfVxuXG4gIGdldCBzaG93VGV4dEZpbHRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5waWNrYWJsZUZpZWxkLnNob3dUZXh0RmlsdGVyID8/IEJvb2xlYW4odGhpcy5waWNrYWJsZUZpZWxkLmZpbHRlclZhbHVlcyk7XG4gIH1cblxuICBnZXQgbG9hZFZhbHVlc0ZuKCk6IFBpY2thYmxlVmFsdWVGaWVsZExvYWRWYWx1ZXNGbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMucGlja2FibGVGaWVsZC5sb2FkVmFsdWVzO1xuICB9XG5cbiAgZ2V0IHZhbHVlcygpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLl9nZXRWYWx1ZU9uRm9ybUNvbnRyb2wodGhpcy5mb3JtQ29udHJvbC52YWx1ZSkgPz8gW107XG4gIH1cblxuICBnZXQgZm9vdGVyQ29uZmlnKCk6IE1heWJlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZz4ge1xuICAgIHJldHVybiB0aGlzLnBpY2thYmxlRmllbGQuZm9vdGVyQ29uZmlnO1xuICB9XG5cbiAgbG9hZERpc3BsYXlWYWx1ZXNGb3JWYWx1ZXModmFsdWVzOiBUW10pOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPltdPj4ge1xuICAgIHJldHVybiB0aGlzLmxvYWREaXNwbGF5VmFsdWVzRm9yRmllbGRWYWx1ZXModmFsdWVzLm1hcCgodmFsdWUpID0+ICh7IHZhbHVlIH0pKSk7XG4gIH1cblxuICBsb2FkRGlzcGxheVZhbHVlc0ZvckZpZWxkVmFsdWVzKHZhbHVlczogUGlja2FibGVWYWx1ZUZpZWxkVmFsdWU8VD5bXSk6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10+PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGlzcGxheVZhbHVlc0ZvckZpZWxkVmFsdWVzKHZhbHVlcykucGlwZShcbiAgICAgIG1hcCgoZGlzcGxheVZhbHVlczogUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD5bXSkgPT4gc3VjY2Vzc1Jlc3VsdChkaXNwbGF5VmFsdWVzKSksXG4gICAgICBzdGFydFdpdGgoYmVnaW5Mb2FkaW5nKCkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgZ2V0RGlzcGxheVZhbHVlc0ZvckZpZWxkVmFsdWVzKHZhbHVlczogUGlja2FibGVWYWx1ZUZpZWxkVmFsdWU8VD5bXSk6IE9ic2VydmFibGU8UGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD5bXT4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNwbGF5SGFzaE1hcC5waXBlKFxuICAgICAgbWVyZ2VNYXAoKGRpc3BsYXlNYXApID0+IHtcbiAgICAgICAgY29uc3QgbWFwcGluZ1Jlc3VsdCA9IHZhbHVlc1xuICAgICAgICAgIC5tYXAoeCA9PiBbeCwgdGhpcy5oYXNoRm9yVmFsdWUoeC52YWx1ZSldKVxuICAgICAgICAgIC5tYXAoKFt4LCBoYXNoXSwgaSkgPT4gW2ksIGhhc2gsIHgsIGRpc3BsYXlNYXAuZ2V0KGhhc2gpXSBhcyBbbnVtYmVyLCBhbnksIFBpY2thYmxlVmFsdWVGaWVsZFZhbHVlPFQ+LCBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPl0pO1xuXG4gICAgICAgIGNvbnN0IGhhc0Rpc3BsYXkgPSBtYXBwaW5nUmVzdWx0LmZpbHRlcih4ID0+IEJvb2xlYW4oeFszXSkpO1xuICAgICAgICBjb25zdCBuZWVkc0Rpc3BsYXkgPSBtYXBwaW5nUmVzdWx0LmZpbHRlcih4ID0+ICF4WzNdKTtcblxuICAgICAgICBpZiAobmVlZHNEaXNwbGF5Lmxlbmd0aCA+IDApIHtcblxuICAgICAgICAgIC8vIEdvIGdldCB0aGUgZGlzcGxheSB2YWx1ZS5cbiAgICAgICAgICBjb25zdCBkaXNwbGF5VmFsdWVzT2JzID0gdGhpcy5kaXNwbGF5Rm9yVmFsdWUobmVlZHNEaXNwbGF5Lm1hcCh4ID0+IHhbMl0pKTtcblxuICAgICAgICAgIHJldHVybiBkaXNwbGF5VmFsdWVzT2JzLnBpcGUoXG4gICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgbWFwKChkaXNwbGF5UmVzdWx0cykgPT4ge1xuXG4gICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlSZXN1bHRzV2l0aEhhc2g6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+W10gPSBkaXNwbGF5UmVzdWx0cy5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgICAgICAoeCBhcyBQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPikuX2hhc2ggPSB0aGlzLmhhc2hGb3JWYWx1ZSh4LnZhbHVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHggYXMgUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlV2l0aEhhc2g8VD4pO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAvLyBDcmVhdGUgYSBtYXAgdG8gcmUtam9pbiB2YWx1ZXMgbGF0ZXIuXG4gICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlSZXN1bHRzTWFwcGluZzogW1BpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZVdpdGhIYXNoPFQ+LCBhbnldW10gPSBkaXNwbGF5UmVzdWx0c1dpdGhIYXNoLm1hcCh4ID0+IFt4LCB4Ll9oYXNoXSk7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlSW5kZXhIYXNoTWFwID0gbmV3IE1hcChkaXNwbGF5UmVzdWx0c01hcHBpbmcubWFwKChbeCwgaGFzaF0pID0+IFtoYXNoLCB4XSkpO1xuXG4gICAgICAgICAgICAgIC8vIFVwZGF0ZSBkaXNwbGF5TWFwLiBObyBuZWVkIHRvIHB1c2ggYW4gdXBkYXRlIG5vdGlmaWNhdGlvbi5cbiAgICAgICAgICAgICAgZGlzcGxheVJlc3VsdHNNYXBwaW5nLmZvckVhY2goKFt4LCBoYXNoXSkgPT4gZGlzcGxheU1hcC5zZXQoaGFzaCwgeCkpO1xuXG4gICAgICAgICAgICAgIC8vIFppcCB2YWx1ZXMgYmFjayB0b2dldGhlci5cbiAgICAgICAgICAgICAgY29uc3QgbmV3RGlzcGxheVZhbHVlcyA9IG1hcHBpbmdSZXN1bHQubWFwKHggPT4geFszXSA/PyB2YWx1ZUluZGV4SGFzaE1hcC5nZXQoeFsxXSkpO1xuXG4gICAgICAgICAgICAgIC8vIFJldHVybiBkaXNwbGF5IHZhbHVlcy5cbiAgICAgICAgICAgICAgcmV0dXJuIG5ld0Rpc3BsYXlWYWx1ZXM7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAvLyBJZiBhbGwgZGlzcGxheSB2YWx1ZXMgYXJlIGhhc2hlZCByZXR1cm4gdGhhdC5cbiAgICAgICAgICByZXR1cm4gb2YoaGFzRGlzcGxheS5tYXAoeCA9PiB4WzNdKSkgYXMgT2JzZXJ2YWJsZTxQaWNrYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWVXaXRoSGFzaDxUPltdPjtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9ybUNvbnRyb2xPYnMubmV4dCh0aGlzLmZvcm1Db250cm9sKTtcblxuICAgIC8vIEZvY3VzIGFmdGVyIGZpbmlzaGVkIGxvYWRpbmcgZm9yIHRoZSBmaXJzdCB0aW1lLlxuICAgIHRoaXMuY29udGV4dC5sb2FkaW5nJC5waXBlKFxuICAgICAgZGVsYXkoMTApLFxuICAgICAgZmlsdGVyKHggPT4geCksXG4gICAgICBmaXJzdCgpLFxuICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyTWF0SW5wdXQ/LmZvY3VzKCk7XG4gICAgfSlcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5fZGlzcGxheUhhc2hNYXAuY29tcGxldGUoKTtcbiAgICB0aGlzLl9mb3JtQ29udHJvbE9icy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZmlsdGVyUmVzdWx0c0NvbnRleHQuZGVzdHJveSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9nZXRWYWx1ZU9uRm9ybUNvbnRyb2wodmFsdWVPbkZvcm1Db250cm9sOiBhbnkpOiBUW10ge1xuICAgIGNvbnN0IHZhbHVlID0gKHZhbHVlT25Gb3JtQ29udHJvbCAhPSBudWxsKSA/IFtdLmNvbmNhdCh2YWx1ZU9uRm9ybUNvbnRyb2wpIDogW107ICAvLyBBbHdheXMgcmV0dXJuIGFuIGFycmF5LlxuICAgIHJldHVybiB2YWx1ZSBhcyBUW107XG4gIH1cblxuICBhZGRWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VmFsdWVzKFsuLi50aGlzLnZhbHVlcywgdmFsdWVdKTtcbiAgfVxuXG4gIHJlbW92ZVZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgY29uc3QgaGFzaFRvRmlsdGVyID0gdGhpcy5oYXNoRm9yVmFsdWUodmFsdWUpO1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMudmFsdWVzLmZpbHRlcih4ID0+IHRoaXMuaGFzaEZvclZhbHVlKHgpICE9PSBoYXNoVG9GaWx0ZXIpO1xuICAgIHRoaXMuc2V0VmFsdWVzKHZhbHVlcyk7XG4gIH1cblxuICBzZXRWYWx1ZXModmFsdWVzOiBUW10pOiB2b2lkIHtcblxuICAgIC8vIFVzZSB0byBmaWx0ZXIgbm9uLXVuaXF1ZSB2YWx1ZXMuXG4gICAgaWYgKHRoaXMuaGFzaEZvclZhbHVlKSB7XG4gICAgICB2YWx1ZXMgPSBmaW5kVW5pcXVlKHZhbHVlcywgdGhpcy5oYXNoRm9yVmFsdWUpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgdmFsdWVzID0gW3ZhbHVlc1swXV0uZmlsdGVyKHggPT4geCAhPSBudWxsKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zZXRWYWx1ZU9uRm9ybUNvbnRyb2wodmFsdWVzKTtcbiAgfVxuXG4gIC8vIE1BUks6IEludGVybmFsXG4gIHByb3RlY3RlZCBfc2V0VmFsdWVPbkZvcm1Db250cm9sKHZhbHVlczogVFtdKTogdm9pZCB7XG4gICAgbGV0IG5ld1ZhbHVlOiBUIHwgVFtdID0gdmFsdWVzO1xuXG4gICAgaWYgKCF0aGlzLmFzQXJyYXlWYWx1ZSkge1xuICAgICAgbmV3VmFsdWUgPSBbdmFsdWVzWzBdXS5maWx0ZXIoeCA9PiB4ICE9IG51bGwpWzBdO1xuICAgIH1cblxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobmV3VmFsdWUpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG59XG4iXX0=
@@ -12,7 +12,7 @@ export function filterPickableItemFieldValuesByLabel(filterText, values) {
12
12
  return of(filteredValues.map(x => x.value));
13
13
  }
14
14
  export function sortPickableItemsByLabel(chips) {
15
- return chips.sort((a, b) => a.value.label.localeCompare(b.value.label));
15
+ return chips.sort((a, b) => a.itemValue.label.localeCompare(b.itemValue.label));
16
16
  }
17
17
  export function pickableItemChipField(config) {
18
18
  const { key } = config;
@@ -36,4 +36,4 @@ export function pickableItemListField(config) {
36
36
  pickableField: config
37
37
  });
38
38
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUuZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQXNCLFdBQVcsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUs3RixNQUFNLFVBQVUsb0NBQW9DLENBQUksVUFBeUIsRUFBRSxNQUEyQztJQUM1SCxJQUFJLGNBQW1ELENBQUM7SUFFeEQsSUFBSSxVQUFVLEVBQUU7UUFDZCxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNwRCxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMvRjtTQUFNO1FBQ0wsY0FBYyxHQUFHLE1BQU0sQ0FBQztLQUN6QjtJQUVELE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFJLEtBQWlDO0lBQzNFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQztBQUlELE1BQU0sVUFBVSxxQkFBcUIsQ0FBVSxNQUFrQztJQUMvRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLE9BQU8sV0FBVyxDQUFDO1FBQ2pCLEdBQUc7UUFDSCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLEdBQUcsNkJBQTZCLENBQUMsTUFBTSxFQUFFO1lBQ3ZDLFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQUM7UUFDRixhQUFhLEVBQUUsTUFBTTtLQUN0QixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFVLE1BQWtDO0lBQy9FLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDdkIsT0FBTyxXQUFXLENBQUM7UUFDakIsR0FBRztRQUNILElBQUksRUFBRSxtQkFBbUI7UUFDekIsR0FBRyw2QkFBNkIsQ0FBQyxNQUFNLEVBQUU7WUFDdkMsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQztRQUNGLGFBQWEsRUFBRSxNQUFNO0tBQ3RCLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMYWJlbGVkRmllbGRDb25maWcsIGZvcm1seUZpZWxkLCB0ZW1wbGF0ZU9wdGlvbnNGb3JGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2ZpZWxkJztcbmltcG9ydCB7IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZSB9IGZyb20gJy4vcGlja2FibGUnO1xuaW1wb3J0IHsgUGlja2FibGVJdGVtRmllbGRJdGVtLCBQaWNrYWJsZVZhbHVlRmllbGRzRmllbGRDb25maWcsIFBpY2thYmxlVmFsdWVGaWVsZHNGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJy4vcGlja2FibGUuZmllbGQuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFBpY2thYmxlSXRlbUZpZWxkSXRlbSB9O1xuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyUGlja2FibGVJdGVtRmllbGRWYWx1ZXNCeUxhYmVsPFQ+KGZpbHRlclRleHQ6IE1heWJlPHN0cmluZz4sIHZhbHVlczogUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+W10pOiBPYnNlcnZhYmxlPFRbXT4ge1xuICBsZXQgZmlsdGVyZWRWYWx1ZXM6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPltdO1xuXG4gIGlmIChmaWx0ZXJUZXh0KSB7XG4gICAgY29uc3Qgc2VhcmNoU3RyaW5nID0gZmlsdGVyVGV4dC50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIGZpbHRlcmVkVmFsdWVzID0gdmFsdWVzLmZpbHRlcih4ID0+IHgubGFiZWwudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFN0cmluZykgIT09IC0xKTtcbiAgfSBlbHNlIHtcbiAgICBmaWx0ZXJlZFZhbHVlcyA9IHZhbHVlcztcbiAgfVxuXG4gIHJldHVybiBvZihmaWx0ZXJlZFZhbHVlcy5tYXAoeCA9PiB4LnZhbHVlKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0UGlja2FibGVJdGVtc0J5TGFiZWw8VD4oY2hpcHM6IFBpY2thYmxlSXRlbUZpZWxkSXRlbTxUPltdKTogUGlja2FibGVJdGVtRmllbGRJdGVtPFQ+W10ge1xuICByZXR1cm4gY2hpcHMuc29ydCgoYSwgYikgPT4gYS52YWx1ZS5sYWJlbC5sb2NhbGVDb21wYXJlKGIudmFsdWUubGFiZWwpKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrYWJsZUl0ZW1GaWVsZENvbmZpZzxUID0gYW55PiBleHRlbmRzIExhYmVsZWRGaWVsZENvbmZpZywgUGlja2FibGVWYWx1ZUZpZWxkc0ZpZWxkQ29uZmlnPFQ+IHsgfVxuXG5leHBvcnQgZnVuY3Rpb24gcGlja2FibGVJdGVtQ2hpcEZpZWxkPFQgPSBhbnk+KGNvbmZpZzogUGlja2FibGVJdGVtRmllbGRDb25maWc8VD4pOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIGNvbnN0IHsga2V5IH0gPSBjb25maWc7XG4gIHJldHVybiBmb3JtbHlGaWVsZCh7XG4gICAga2V5LFxuICAgIHR5cGU6ICdwaWNrYWJsZWNoaXBmaWVsZCcsXG4gICAgLi4udGVtcGxhdGVPcHRpb25zRm9yRmllbGRDb25maWcoY29uZmlnLCB7XG4gICAgICBhdXRvY29tcGxldGU6IGZhbHNlXG4gICAgfSksXG4gICAgcGlja2FibGVGaWVsZDogY29uZmlnXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGlja2FibGVJdGVtTGlzdEZpZWxkPFQgPSBhbnk+KGNvbmZpZzogUGlja2FibGVJdGVtRmllbGRDb25maWc8VD4pOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIGNvbnN0IHsga2V5IH0gPSBjb25maWc7XG4gIHJldHVybiBmb3JtbHlGaWVsZCh7XG4gICAga2V5LFxuICAgIHR5cGU6ICdwaWNrYWJsZWxpc3RmaWVsZCcsXG4gICAgLi4udGVtcGxhdGVPcHRpb25zRm9yRmllbGRDb25maWcoY29uZmlnLCB7XG4gICAgICBhdXRvY29tcGxldGU6IGZhbHNlXG4gICAgfSksXG4gICAgcGlja2FibGVGaWVsZDogY29uZmlnXG4gIH0pO1xufVxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vcGlja2FibGUvcGlja2FibGUuZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQXNCLFdBQVcsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUs3RixNQUFNLFVBQVUsb0NBQW9DLENBQUksVUFBeUIsRUFBRSxNQUEyQztJQUM1SCxJQUFJLGNBQW1ELENBQUM7SUFFeEQsSUFBSSxVQUFVLEVBQUU7UUFDZCxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNwRCxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMvRjtTQUFNO1FBQ0wsY0FBYyxHQUFHLE1BQU0sQ0FBQztLQUN6QjtJQUVELE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFJLEtBQWlDO0lBQzNFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbEYsQ0FBQztBQUlELE1BQU0sVUFBVSxxQkFBcUIsQ0FBVSxNQUFrQztJQUMvRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLE9BQU8sV0FBVyxDQUFDO1FBQ2pCLEdBQUc7UUFDSCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLEdBQUcsNkJBQTZCLENBQUMsTUFBTSxFQUFFO1lBQ3ZDLFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQUM7UUFDRixhQUFhLEVBQUUsTUFBTTtLQUN0QixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFVLE1BQWtDO0lBQy9FLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDdkIsT0FBTyxXQUFXLENBQUM7UUFDakIsR0FBRztRQUNILElBQUksRUFBRSxtQkFBbUI7UUFDekIsR0FBRyw2QkFBNkIsQ0FBQyxNQUFNLEVBQUU7WUFDdkMsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQztRQUNGLGFBQWEsRUFBRSxNQUFNO0tBQ3RCLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMYWJlbGVkRmllbGRDb25maWcsIGZvcm1seUZpZWxkLCB0ZW1wbGF0ZU9wdGlvbnNGb3JGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2ZpZWxkJztcbmltcG9ydCB7IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZSB9IGZyb20gJy4vcGlja2FibGUnO1xuaW1wb3J0IHsgUGlja2FibGVJdGVtRmllbGRJdGVtLCBQaWNrYWJsZVZhbHVlRmllbGRzRmllbGRDb25maWcsIFBpY2thYmxlVmFsdWVGaWVsZHNGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJy4vcGlja2FibGUuZmllbGQuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFBpY2thYmxlSXRlbUZpZWxkSXRlbSB9O1xuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyUGlja2FibGVJdGVtRmllbGRWYWx1ZXNCeUxhYmVsPFQ+KGZpbHRlclRleHQ6IE1heWJlPHN0cmluZz4sIHZhbHVlczogUGlja2FibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQ+W10pOiBPYnNlcnZhYmxlPFRbXT4ge1xuICBsZXQgZmlsdGVyZWRWYWx1ZXM6IFBpY2thYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxUPltdO1xuXG4gIGlmIChmaWx0ZXJUZXh0KSB7XG4gICAgY29uc3Qgc2VhcmNoU3RyaW5nID0gZmlsdGVyVGV4dC50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIGZpbHRlcmVkVmFsdWVzID0gdmFsdWVzLmZpbHRlcih4ID0+IHgubGFiZWwudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFN0cmluZykgIT09IC0xKTtcbiAgfSBlbHNlIHtcbiAgICBmaWx0ZXJlZFZhbHVlcyA9IHZhbHVlcztcbiAgfVxuXG4gIHJldHVybiBvZihmaWx0ZXJlZFZhbHVlcy5tYXAoeCA9PiB4LnZhbHVlKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0UGlja2FibGVJdGVtc0J5TGFiZWw8VD4oY2hpcHM6IFBpY2thYmxlSXRlbUZpZWxkSXRlbTxUPltdKTogUGlja2FibGVJdGVtRmllbGRJdGVtPFQ+W10ge1xuICByZXR1cm4gY2hpcHMuc29ydCgoYSwgYikgPT4gYS5pdGVtVmFsdWUubGFiZWwubG9jYWxlQ29tcGFyZShiLml0ZW1WYWx1ZS5sYWJlbCkpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2thYmxlSXRlbUZpZWxkQ29uZmlnPFQgPSBhbnk+IGV4dGVuZHMgTGFiZWxlZEZpZWxkQ29uZmlnLCBQaWNrYWJsZVZhbHVlRmllbGRzRmllbGRDb25maWc8VD4geyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBwaWNrYWJsZUl0ZW1DaGlwRmllbGQ8VCA9IGFueT4oY29uZmlnOiBQaWNrYWJsZUl0ZW1GaWVsZENvbmZpZzxUPik6IEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgY29uc3QgeyBrZXkgfSA9IGNvbmZpZztcbiAgcmV0dXJuIGZvcm1seUZpZWxkKHtcbiAgICBrZXksXG4gICAgdHlwZTogJ3BpY2thYmxlY2hpcGZpZWxkJyxcbiAgICAuLi50ZW1wbGF0ZU9wdGlvbnNGb3JGaWVsZENvbmZpZyhjb25maWcsIHtcbiAgICAgIGF1dG9jb21wbGV0ZTogZmFsc2VcbiAgICB9KSxcbiAgICBwaWNrYWJsZUZpZWxkOiBjb25maWdcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwaWNrYWJsZUl0ZW1MaXN0RmllbGQ8VCA9IGFueT4oY29uZmlnOiBQaWNrYWJsZUl0ZW1GaWVsZENvbmZpZzxUPik6IEZvcm1seUZpZWxkQ29uZmlnIHtcbiAgY29uc3QgeyBrZXkgfSA9IGNvbmZpZztcbiAgcmV0dXJuIGZvcm1seUZpZWxkKHtcbiAgICBrZXksXG4gICAgdHlwZTogJ3BpY2thYmxlbGlzdGZpZWxkJyxcbiAgICAuLi50ZW1wbGF0ZU9wdGlvbnNGb3JGaWVsZENvbmZpZyhjb25maWcsIHtcbiAgICAgIGF1dG9jb21wbGV0ZTogZmFsc2VcbiAgICB9KSxcbiAgICBwaWNrYWJsZUZpZWxkOiBjb25maWdcbiAgfSk7XG59XG4iXX0=
@@ -11,14 +11,14 @@ import { FormlyModule } from '@ngx-formly/core';
11
11
  import { MatButtonModule } from '@angular/material/button';
12
12
  import { DbxPickableChipListFieldComponent } from './pickable.chip.field.component';
13
13
  import { DbxPickableListFieldComponent, DbxPickableListFieldItemListComponent, DbxPickableListFieldItemListViewComponent, DbxPickableListFieldItemListViewItemComponent } from './pickable.list.field.component';
14
- import { DbxDatePipeModule, DbxInjectedComponentModule } from '@dereekb/dbx-core';
15
- import { DbxAnchorModule, DbxTextModule, DbxLoadingModule, DbxButtonModule, DbxListLayoutModule } from '@dereekb/dbx-web';
14
+ import { DbxDatePipeModule, DbxInjectionComponentModule } from '@dereekb/dbx-core';
15
+ import { DbxRouterAnchorModule, DbxTextModule, DbxLoadingModule, DbxButtonModule, DbxListLayoutModule } from '@dereekb/dbx-web';
16
16
  import * as i0 from "@angular/core";
17
17
  import * as i1 from "@ngx-formly/core";
18
18
  export class DbxFormFormlyPickableFieldModule {
19
19
  }
20
- DbxFormFormlyPickableFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyPickableFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- DbxFormFormlyPickableFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyPickableFieldModule, declarations: [DbxPickableChipListFieldComponent,
20
+ DbxFormFormlyPickableFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPickableFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
+ DbxFormFormlyPickableFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPickableFieldModule, declarations: [DbxPickableChipListFieldComponent,
22
22
  DbxPickableListFieldComponent,
23
23
  DbxPickableListFieldItemListComponent,
24
24
  DbxPickableListFieldItemListViewComponent,
@@ -34,12 +34,12 @@ DbxFormFormlyPickableFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion:
34
34
  MatAutocompleteModule,
35
35
  MatListModule,
36
36
  DbxDatePipeModule,
37
- DbxAnchorModule,
37
+ DbxRouterAnchorModule,
38
38
  MatChipsModule,
39
39
  MatIconModule,
40
- DbxInjectedComponentModule,
40
+ DbxInjectionComponentModule,
41
41
  DbxListLayoutModule, i1.FormlyModule] });
42
- DbxFormFormlyPickableFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyPickableFieldModule, imports: [[
42
+ DbxFormFormlyPickableFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPickableFieldModule, imports: [[
43
43
  CommonModule,
44
44
  DbxTextModule,
45
45
  DbxLoadingModule,
@@ -52,10 +52,10 @@ DbxFormFormlyPickableFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion:
52
52
  MatAutocompleteModule,
53
53
  MatListModule,
54
54
  DbxDatePipeModule,
55
- DbxAnchorModule,
55
+ DbxRouterAnchorModule,
56
56
  MatChipsModule,
57
57
  MatIconModule,
58
- DbxInjectedComponentModule,
58
+ DbxInjectionComponentModule,
59
59
  DbxListLayoutModule,
60
60
  FormlyModule.forChild({
61
61
  types: [
@@ -64,7 +64,7 @@ DbxFormFormlyPickableFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion:
64
64
  ]
65
65
  })
66
66
  ]] });
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyPickableFieldModule, decorators: [{
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPickableFieldModule, decorators: [{
68
68
  type: NgModule,
69
69
  args: [{
70
70
  imports: [
@@ -80,10 +80,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
80
80
  MatAutocompleteModule,
81
81
  MatListModule,
82
82
  DbxDatePipeModule,
83
- DbxAnchorModule,
83
+ DbxRouterAnchorModule,
84
84
  MatChipsModule,
85
85
  MatIconModule,
86
- DbxInjectedComponentModule,
86
+ DbxInjectionComponentModule,
87
87
  DbxListLayoutModule,
88
88
  FormlyModule.forChild({
89
89
  types: [
@@ -102,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
102
102
  exports: []
103
103
  }]
104
104
  }] });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuZmllbGQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3BpY2thYmxlL3BpY2thYmxlLmZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHFDQUFxQyxFQUFFLHlDQUF5QyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDak4sT0FBTyxFQUFFLGlCQUFpQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQXNDMUgsTUFBTSxPQUFPLGdDQUFnQzs7NkhBQWhDLGdDQUFnQzs4SEFBaEMsZ0NBQWdDLGlCQVJ6QyxpQ0FBaUM7UUFDakMsNkJBQTZCO1FBQzdCLHFDQUFxQztRQUNyQyx5Q0FBeUM7UUFDekMsNkNBQTZDLGFBOUI3QyxZQUFZO1FBQ1osYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsV0FBVztRQUNYLGVBQWU7UUFDZixjQUFjO1FBQ2Qsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQixxQkFBcUI7UUFDckIsYUFBYTtRQUNiLGlCQUFpQjtRQUNqQixlQUFlO1FBQ2YsY0FBYztRQUNkLGFBQWE7UUFDYiwwQkFBMEI7UUFDMUIsbUJBQW1COzhIQWtCVixnQ0FBZ0MsWUFuQ2xDO1lBQ1AsWUFBWTtZQUNaLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLFdBQVc7WUFDWCxlQUFlO1lBQ2YsY0FBYztZQUNkLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIscUJBQXFCO1lBQ3JCLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGNBQWM7WUFDZCxhQUFhO1lBQ2IsMEJBQTBCO1lBQzFCLG1CQUFtQjtZQUNuQixZQUFZLENBQUMsUUFBUSxDQUFDO2dCQUNwQixLQUFLLEVBQUU7b0JBRUwsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLGlDQUFpQyxFQUFFLFFBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFO29CQUNyRyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsNkJBQTZCLEVBQUUsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUU7aUJBQ2xHO2FBQ0YsQ0FBQztTQUNIOzJGQVVVLGdDQUFnQztrQkFwQzVDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLDBCQUEwQjt3QkFDMUIsbUJBQW1CO3dCQUNuQixZQUFZLENBQUMsUUFBUSxDQUFDOzRCQUNwQixLQUFLLEVBQUU7Z0NBRUwsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLGlDQUFpQyxFQUFFLFFBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFO2dDQUNyRyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsNkJBQTZCLEVBQUUsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUU7NkJBQ2xHO3lCQUNGLENBQUM7cUJBQ0g7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLGlDQUFpQzt3QkFDakMsNkJBQTZCO3dCQUM3QixxQ0FBcUM7d0JBQ3JDLHlDQUF5Qzt3QkFDekMsNkNBQTZDO3FCQUM5QztvQkFDRCxPQUFPLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgRGJ4UGlja2FibGVDaGlwTGlzdEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9waWNrYWJsZS5jaGlwLmZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhQaWNrYWJsZUxpc3RGaWVsZENvbXBvbmVudCwgRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdENvbXBvbmVudCwgRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdFZpZXdDb21wb25lbnQsIERieFBpY2thYmxlTGlzdEZpZWxkSXRlbUxpc3RWaWV3SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcGlja2FibGUubGlzdC5maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJ4RGF0ZVBpcGVNb2R1bGUsIERieEluamVjdGVkQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgRGJ4QW5jaG9yTW9kdWxlLCBEYnhUZXh0TW9kdWxlLCBEYnhMb2FkaW5nTW9kdWxlLCBEYnhCdXR0b25Nb2R1bGUsIERieExpc3RMYXlvdXRNb2R1bGUgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEYnhUZXh0TW9kdWxlLFxuICAgIERieExvYWRpbmdNb2R1bGUsXG4gICAgRGJ4QnV0dG9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBEYnhEYXRlUGlwZU1vZHVsZSxcbiAgICBEYnhBbmNob3JNb2R1bGUsXG4gICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBEYnhJbmplY3RlZENvbXBvbmVudE1vZHVsZSxcbiAgICBEYnhMaXN0TGF5b3V0TW9kdWxlLFxuICAgIEZvcm1seU1vZHVsZS5mb3JDaGlsZCh7XG4gICAgICB0eXBlczogW1xuXG4gICAgICAgIHsgbmFtZTogJ3BpY2thYmxlY2hpcGZpZWxkJywgY29tcG9uZW50OiBEYnhQaWNrYWJsZUNoaXBMaXN0RmllbGRDb21wb25lbnQsIHdyYXBwZXJzOiBbJ2Zvcm0tZmllbGQnXSB9LFxuICAgICAgICB7IG5hbWU6ICdwaWNrYWJsZWxpc3RmaWVsZCcsIGNvbXBvbmVudDogRGJ4UGlja2FibGVMaXN0RmllbGRDb21wb25lbnQsIHdyYXBwZXJzOiBbJ2Zvcm0tZmllbGQnXSB9LFxuICAgICAgXVxuICAgIH0pXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIERieFBpY2thYmxlQ2hpcExpc3RGaWVsZENvbXBvbmVudCxcbiAgICBEYnhQaWNrYWJsZUxpc3RGaWVsZENvbXBvbmVudCxcbiAgICBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Q29tcG9uZW50LFxuICAgIERieFBpY2thYmxlTGlzdEZpZWxkSXRlbUxpc3RWaWV3Q29tcG9uZW50LFxuICAgIERieFBpY2thYmxlTGlzdEZpZWxkSXRlbUxpc3RWaWV3SXRlbUNvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtRm9ybWx5UGlja2FibGVGaWVsZE1vZHVsZSB7IH1cbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2FibGUuZmllbGQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3BpY2thYmxlL3BpY2thYmxlLmZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHFDQUFxQyxFQUFFLHlDQUF5QyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDak4sT0FBTyxFQUFFLGlCQUFpQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBc0NoSSxNQUFNLE9BQU8sZ0NBQWdDOzs2SEFBaEMsZ0NBQWdDOzhIQUFoQyxnQ0FBZ0MsaUJBUnpDLGlDQUFpQztRQUNqQyw2QkFBNkI7UUFDN0IscUNBQXFDO1FBQ3JDLHlDQUF5QztRQUN6Qyw2Q0FBNkMsYUE5QjdDLFlBQVk7UUFDWixhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixXQUFXO1FBQ1gsZUFBZTtRQUNmLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQixhQUFhO1FBQ2IsaUJBQWlCO1FBQ2pCLHFCQUFxQjtRQUNyQixjQUFjO1FBQ2QsYUFBYTtRQUNiLDJCQUEyQjtRQUMzQixtQkFBbUI7OEhBa0JWLGdDQUFnQyxZQW5DbEM7WUFDUCxZQUFZO1lBQ1osYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsV0FBVztZQUNYLGVBQWU7WUFDZixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixxQkFBcUI7WUFDckIsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixxQkFBcUI7WUFDckIsY0FBYztZQUNkLGFBQWE7WUFDYiwyQkFBMkI7WUFDM0IsbUJBQW1CO1lBQ25CLFlBQVksQ0FBQyxRQUFRLENBQUM7Z0JBQ3BCLEtBQUssRUFBRTtvQkFFTCxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsaUNBQWlDLEVBQUUsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUU7b0JBQ3JHLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSw2QkFBNkIsRUFBRSxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRTtpQkFDbEc7YUFDRixDQUFDO1NBQ0g7MkZBVVUsZ0NBQWdDO2tCQXBDNUMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLFlBQVksQ0FBQyxRQUFRLENBQUM7NEJBQ3BCLEtBQUssRUFBRTtnQ0FFTCxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsaUNBQWlDLEVBQUUsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0NBQ3JHLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSw2QkFBNkIsRUFBRSxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRTs2QkFDbEc7eUJBQ0YsQ0FBQztxQkFDSDtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osaUNBQWlDO3dCQUNqQyw2QkFBNkI7d0JBQzdCLHFDQUFxQzt3QkFDckMseUNBQXlDO3dCQUN6Qyw2Q0FBNkM7cUJBQzlDO29CQUNELE9BQU8sRUFBRSxFQUFFO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBGb3JtbHlNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBEYnhQaWNrYWJsZUNoaXBMaXN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3BpY2thYmxlLmNoaXAuZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IERieFBpY2thYmxlTGlzdEZpZWxkQ29tcG9uZW50LCBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Q29tcG9uZW50LCBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Vmlld0NvbXBvbmVudCwgRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdFZpZXdJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9waWNrYWJsZS5saXN0LmZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhEYXRlUGlwZU1vZHVsZSwgRGJ4SW5qZWN0aW9uQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgRGJ4Um91dGVyQW5jaG9yTW9kdWxlLCBEYnhUZXh0TW9kdWxlLCBEYnhMb2FkaW5nTW9kdWxlLCBEYnhCdXR0b25Nb2R1bGUsIERieExpc3RMYXlvdXRNb2R1bGUgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEYnhUZXh0TW9kdWxlLFxuICAgIERieExvYWRpbmdNb2R1bGUsXG4gICAgRGJ4QnV0dG9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBEYnhEYXRlUGlwZU1vZHVsZSxcbiAgICBEYnhSb3V0ZXJBbmNob3JNb2R1bGUsXG4gICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBEYnhJbmplY3Rpb25Db21wb25lbnRNb2R1bGUsXG4gICAgRGJ4TGlzdExheW91dE1vZHVsZSxcbiAgICBGb3JtbHlNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgdHlwZXM6IFtcblxuICAgICAgICB7IG5hbWU6ICdwaWNrYWJsZWNoaXBmaWVsZCcsIGNvbXBvbmVudDogRGJ4UGlja2FibGVDaGlwTGlzdEZpZWxkQ29tcG9uZW50LCB3cmFwcGVyczogWydmb3JtLWZpZWxkJ10gfSxcbiAgICAgICAgeyBuYW1lOiAncGlja2FibGVsaXN0ZmllbGQnLCBjb21wb25lbnQ6IERieFBpY2thYmxlTGlzdEZpZWxkQ29tcG9uZW50LCB3cmFwcGVyczogWydmb3JtLWZpZWxkJ10gfSxcbiAgICAgIF1cbiAgICB9KVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEYnhQaWNrYWJsZUNoaXBMaXN0RmllbGRDb21wb25lbnQsXG4gICAgRGJ4UGlja2FibGVMaXN0RmllbGRDb21wb25lbnQsXG4gICAgRGJ4UGlja2FibGVMaXN0RmllbGRJdGVtTGlzdENvbXBvbmVudCxcbiAgICBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Vmlld0NvbXBvbmVudCxcbiAgICBEYnhQaWNrYWJsZUxpc3RGaWVsZEl0ZW1MaXN0Vmlld0l0ZW1Db21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgRGJ4Rm9ybUZvcm1seVBpY2thYmxlRmllbGRNb2R1bGUgeyB9XG4iXX0=