@igo2/geo 17.0.0-next.5 → 17.0.0-next.6

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 (109) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +3 -3
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +5 -5
  3. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +3 -3
  4. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +3 -3
  5. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
  6. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  7. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +1 -1
  8. package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  9. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
  10. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
  11. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  12. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
  13. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  14. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +3 -3
  15. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +3 -3
  16. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +3 -3
  17. package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
  18. package/esm2022/lib/directions/shared/directions.utils.mjs +21 -21
  19. package/esm2022/lib/download/download-button/download-button.component.mjs +3 -3
  20. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +7 -4
  21. package/esm2022/lib/draw/draw/draw.component.mjs +4 -4
  22. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +3 -3
  23. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +3 -3
  24. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +3 -3
  25. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +3 -3
  26. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +7 -7
  27. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +3 -3
  28. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +3 -3
  29. package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  30. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +3 -3
  31. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +3 -3
  32. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +3 -3
  33. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +7 -7
  34. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +3 -3
  35. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +1 -1
  36. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +3 -3
  37. package/esm2022/lib/geometry/shared/controls/draw.mjs +1 -1
  38. package/esm2022/lib/geometry/shared/controls/slice.mjs +1 -1
  39. package/esm2022/lib/import-export/export-button/export-button.component.mjs +3 -3
  40. package/esm2022/lib/import-export/import-export/import-export.component.mjs +1 -1
  41. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +3 -3
  42. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +3 -3
  43. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +5 -4
  44. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +3 -3
  45. package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  46. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +1 -1
  47. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +3 -3
  48. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +3 -3
  49. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +7 -7
  50. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +3 -3
  51. package/esm2022/lib/map/menu-button/menu-button.component.mjs +3 -3
  52. package/esm2022/lib/map/offline-button/offline-button.component.mjs +3 -3
  53. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +3 -3
  54. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +6 -6
  55. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +3 -3
  56. package/esm2022/lib/measure/measurer/measurer.component.mjs +3 -3
  57. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +3 -3
  58. package/esm2022/lib/query/shared/query.directive.mjs +1 -1
  59. package/esm2022/lib/query/shared/query.interfaces.mjs +1 -1
  60. package/esm2022/lib/search/search-bar/search-bar.component.mjs +3 -3
  61. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +5 -5
  62. package/esm2022/lib/search/search-results/search-results-item.component.mjs +3 -3
  63. package/esm2022/lib/search/search-selector/search-selector.component.mjs +3 -3
  64. package/esm2022/lib/search/search-settings/search-settings.component.mjs +3 -3
  65. package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
  66. package/esm2022/lib/search/shared/search.utils.mjs +2 -2
  67. package/esm2022/lib/search/shared/sources/cadastre.mjs +2 -2
  68. package/esm2022/lib/search/shared/sources/coordinates.mjs +2 -2
  69. package/esm2022/lib/search/shared/sources/icherche-icons.mjs +32 -0
  70. package/esm2022/lib/search/shared/sources/icherche.mjs +8 -3
  71. package/esm2022/lib/search/shared/sources/nominatim.mjs +2 -2
  72. package/esm2022/lib/search/shared/sources/storedqueries.mjs +3 -3
  73. package/esm2022/lib/search/shared/sources/workspace.mjs +2 -2
  74. package/esm2022/lib/style/shared/vector/conversion.utils.mjs +1 -1
  75. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +3 -3
  76. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +3 -3
  77. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +3 -3
  78. package/esm2022/lib/toast/toast.component.mjs +3 -3
  79. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +3 -3
  80. package/esm2022/lib/workspace/shared/workspace.utils.mjs +2 -2
  81. package/fesm2022/igo2-geo.mjs +188 -150
  82. package/fesm2022/igo2-geo.mjs.map +1 -1
  83. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
  84. package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +2 -3
  85. package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +2 -3
  86. package/lib/datasource/shared/datasources/datasource.d.ts +1 -2
  87. package/lib/datasource/shared/datasources/feature-datasource.d.ts +2 -3
  88. package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +2 -3
  89. package/lib/datasource/shared/datasources/websocket-datasource.d.ts +1 -2
  90. package/lib/datasource/shared/datasources/wfs-datasource.d.ts +2 -3
  91. package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +1 -2
  92. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -2
  93. package/lib/directions/shared/directions.interface.d.ts +2 -9
  94. package/lib/draw/draw/draw-shorcuts.component.d.ts +2 -0
  95. package/lib/filter/shared/ogc-filter.interface.d.ts +1 -2
  96. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -2
  97. package/lib/geometry/shared/controls/draw.d.ts +4 -4
  98. package/lib/geometry/shared/controls/slice.d.ts +4 -4
  99. package/lib/layer/layer-list/layer-list.component.d.ts +2 -0
  100. package/lib/layer/shared/layers/vector-layer.d.ts +3 -4
  101. package/lib/layer/shared/layers/vector-layer.interface.d.ts +1 -2
  102. package/lib/query/shared/query.interfaces.d.ts +1 -2
  103. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  104. package/lib/search/shared/search.interfaces.d.ts +12 -10
  105. package/lib/search/shared/sources/icherche-icons.d.ts +7 -0
  106. package/lib/style/shared/vector/conversion.utils.d.ts +2 -3
  107. package/lib/workspace/shared/edition-workspace.service.d.ts +2 -1
  108. package/package.json +6 -6
  109. package/style/style.css +2 -1
@@ -178,7 +178,7 @@ export class DirectionsInputsComponent {
178
178
  this.onMapClickEventKeys = [];
179
179
  }
180
180
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DirectionsInputsComponent, deps: [{ token: i1.LanguageService }], target: i0.ɵɵFactoryTarget.Component });
181
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: DirectionsInputsComponent, isStandalone: true, selector: "igo-directions-inputs", inputs: { stopsStore: "stopsStore", stopsFeatureStore: "stopsFeatureStore", projection: "projection", coordRoundedDecimals: "coordRoundedDecimals", debounce: "debounce", length: "length" }, outputs: { stopInputHasFocus: "stopInputHasFocus" }, ngImport: i0, template: "<div cdkDropList class=\"stops-list\" (cdkDropListDropped)=\"drop($event)\">\n <div\n touchleave\n (touchenter)=\"onStopEnter(stop)\"\n (touchleave)=\"onStopLeave()\"\n (mouseover)=\"onStopEnter(stop)\"\n (mouseleave)=\"onStopLeave()\"\n (cdkDragStarted)=\"stopIsDragged = true\"\n (cdkDragEnded)=\"stopIsDragged = false\"\n cdkDragLockAxis=\"y\"\n class=\"stop-box\"\n *ngFor=\"let stop of stopsStore.view.all$() | async; let i = index\"\n cdkDrag\n >\n <div [ngClass]=\"getNgClass(stop)\">\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{ getPlaceholder(stop) }}</mat-label>\n <input\n id=\"{{ stop.id }}\"\n type=\"text\"\n [placeholder]=\"getPlaceholder(stop)\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"stop.text\"\n aria-label=\"Number\"\n matInput\n (focus)=\"onInputFocus(stop)\"\n [(ngModel)]=\"stop.text\"\n (keyup)=\"setStopText($event, stop)\"\n (keydown.enter)=\"$event.preventDefault()\"\n [matAutocomplete]=\"auto\"\n />\n <button\n *ngIf=\"\n (stop.text || stop.coordinates) &&\n stopWithHover &&\n stop.id === stopWithHover.id\n \"\n mat-icon-button\n matSuffix\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.directionsForm.clearStop' | translate\"\n color=\"warn\"\n aria-label=\"Clear\"\n (click)=\"clearStop(stop)\"\n >\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n\n <mat-autocomplete\n [displayWith]=\"getOptionText\"\n #auto=\"matAutocomplete\"\n (optionSelected)=\"chooseProposal($event, stop)\"\n >\n <mat-optgroup\n *ngFor=\"let source of stop.searchProposals\"\n [label]=\"source.source.title\"\n [disabled]=\"source.source.enabled === false\"\n >\n <mat-option\n *ngFor=\"let result of source.results\"\n [value]=\"result\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"result.meta ? result.meta.title : ''\"\n >\n {{ result.meta ? result.meta.title : '' }}\n </mat-option>\n </mat-optgroup>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n\n <div\n *ngIf=\"!stopIsDragged && stopWithHover && stop.id === stopWithHover.id\"\n class=\"igo-form-button-group\"\n >\n <button\n class=\"swipe-vertical\"\n cdkDragHandle\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.directionsForm.moveStop' | translate\"\n color=\"primary\"\n >\n <mat-icon svgIcon=\"gesture-swipe-vertical\"></mat-icon>\n </button>\n\n <button\n *ngIf=\"(stopsStore.count$ | async) > 2\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.directionsForm.removeStop' | translate\"\n color=\"warn\"\n (click)=\"removeStop(stop)\"\n >\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n </div>\n </div>\n</div>\n", styles: [":host .igo-input-container{display:flex;width:100%}:host .igo-input-container mat-form-field{flex:1}:host .igo-form-button-group{display:flex;align-items:center;padding-left:12px}:host .stops-list{max-width:100%;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden;padding:20px 10px}:host .swipe-vertical{cursor:move}:host .stop-box{color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff}:host .stop-box:not(:last-child){margin-bottom:16px}:host .cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}:host .cdk-drag-placeholder{opacity:0}:host .cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}:host .stops-list.cdk-drop-list-dragging .stop-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i6.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] });
181
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: DirectionsInputsComponent, isStandalone: true, selector: "igo-directions-inputs", inputs: { stopsStore: "stopsStore", stopsFeatureStore: "stopsFeatureStore", projection: "projection", coordRoundedDecimals: "coordRoundedDecimals", debounce: "debounce", length: "length" }, outputs: { stopInputHasFocus: "stopInputHasFocus" }, ngImport: i0, template: "<div cdkDropList class=\"stops-list\" (cdkDropListDropped)=\"drop($event)\">\n <div\n touchleave\n (touchenter)=\"onStopEnter(stop)\"\n (touchleave)=\"onStopLeave()\"\n (mouseover)=\"onStopEnter(stop)\"\n (mouseleave)=\"onStopLeave()\"\n (cdkDragStarted)=\"stopIsDragged = true\"\n (cdkDragEnded)=\"stopIsDragged = false\"\n cdkDragLockAxis=\"y\"\n class=\"stop-box\"\n *ngFor=\"let stop of stopsStore.view.all$() | async; let i = index\"\n cdkDrag\n >\n <div [ngClass]=\"getNgClass(stop)\">\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{ getPlaceholder(stop) }}</mat-label>\n <input\n id=\"{{ stop.id }}\"\n type=\"text\"\n [placeholder]=\"getPlaceholder(stop)\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"stop.text\"\n aria-label=\"Number\"\n matInput\n (focus)=\"onInputFocus(stop)\"\n [(ngModel)]=\"stop.text\"\n (keyup)=\"setStopText($event, stop)\"\n (keydown.enter)=\"$event.preventDefault()\"\n [matAutocomplete]=\"auto\"\n />\n <button\n *ngIf=\"\n (stop.text || stop.coordinates) &&\n stopWithHover &&\n stop.id === stopWithHover.id\n \"\n mat-icon-button\n matSuffix\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.directionsForm.clearStop' | translate\"\n color=\"warn\"\n aria-label=\"Clear\"\n (click)=\"clearStop(stop)\"\n >\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-autocomplete\n [displayWith]=\"getOptionText\"\n #auto=\"matAutocomplete\"\n (optionSelected)=\"chooseProposal($event, stop)\"\n >\n <mat-optgroup\n *ngFor=\"let source of stop.searchProposals\"\n [label]=\"source.source.title\"\n [disabled]=\"source.source.enabled === false\"\n >\n <mat-option\n *ngFor=\"let result of source.results\"\n [value]=\"result\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"result.meta ? result.meta.title : ''\"\n >\n {{ result.meta ? result.meta.title : '' }}\n </mat-option>\n </mat-optgroup>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n\n <div\n *ngIf=\"!stopIsDragged && stopWithHover && stop.id === stopWithHover.id\"\n class=\"igo-form-button-group\"\n >\n <button\n class=\"swipe-vertical\"\n cdkDragHandle\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.directionsForm.moveStop' | translate\"\n color=\"primary\"\n >\n <mat-icon>drag_indicator</mat-icon>\n </button>\n\n <button\n *ngIf=\"(stopsStore.count$ | async) > 2\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.directionsForm.removeStop' | translate\"\n color=\"warn\"\n (click)=\"removeStop(stop)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n</div>\n", styles: [":host .igo-input-container{display:flex;width:100%}:host .igo-input-container mat-form-field{flex:1}:host .igo-form-button-group{display:flex;align-items:center;padding-left:12px}:host .stops-list{max-width:100%;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden;padding:20px 10px}:host .swipe-vertical{cursor:move}:host .stop-box{color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff}:host .stop-box:not(:last-child){margin-bottom:16px}:host .cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}:host .cdk-drag-placeholder{opacity:0}:host .cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}:host .stops-list.cdk-drop-list-dragging .stop-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.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"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i6.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] });
182
182
  }
183
183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DirectionsInputsComponent, decorators: [{
184
184
  type: Component,
@@ -199,7 +199,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
199
199
  CdkDragHandle,
200
200
  AsyncPipe,
201
201
  TranslateModule
202
- ], template: "<div cdkDropList class=\"stops-list\" (cdkDropListDropped)=\"drop($event)\">\n <div\n touchleave\n (touchenter)=\"onStopEnter(stop)\"\n (touchleave)=\"onStopLeave()\"\n (mouseover)=\"onStopEnter(stop)\"\n (mouseleave)=\"onStopLeave()\"\n (cdkDragStarted)=\"stopIsDragged = true\"\n (cdkDragEnded)=\"stopIsDragged = false\"\n cdkDragLockAxis=\"y\"\n class=\"stop-box\"\n *ngFor=\"let stop of stopsStore.view.all$() | async; let i = index\"\n cdkDrag\n >\n <div [ngClass]=\"getNgClass(stop)\">\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{ getPlaceholder(stop) }}</mat-label>\n <input\n id=\"{{ stop.id }}\"\n type=\"text\"\n [placeholder]=\"getPlaceholder(stop)\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"stop.text\"\n aria-label=\"Number\"\n matInput\n (focus)=\"onInputFocus(stop)\"\n [(ngModel)]=\"stop.text\"\n (keyup)=\"setStopText($event, stop)\"\n (keydown.enter)=\"$event.preventDefault()\"\n [matAutocomplete]=\"auto\"\n />\n <button\n *ngIf=\"\n (stop.text || stop.coordinates) &&\n stopWithHover &&\n stop.id === stopWithHover.id\n \"\n mat-icon-button\n matSuffix\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.directionsForm.clearStop' | translate\"\n color=\"warn\"\n aria-label=\"Clear\"\n (click)=\"clearStop(stop)\"\n >\n <mat-icon svgIcon=\"close\"></mat-icon>\n </button>\n\n <mat-autocomplete\n [displayWith]=\"getOptionText\"\n #auto=\"matAutocomplete\"\n (optionSelected)=\"chooseProposal($event, stop)\"\n >\n <mat-optgroup\n *ngFor=\"let source of stop.searchProposals\"\n [label]=\"source.source.title\"\n [disabled]=\"source.source.enabled === false\"\n >\n <mat-option\n *ngFor=\"let result of source.results\"\n [value]=\"result\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"result.meta ? result.meta.title : ''\"\n >\n {{ result.meta ? result.meta.title : '' }}\n </mat-option>\n </mat-optgroup>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n\n <div\n *ngIf=\"!stopIsDragged && stopWithHover && stop.id === stopWithHover.id\"\n class=\"igo-form-button-group\"\n >\n <button\n class=\"swipe-vertical\"\n cdkDragHandle\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.directionsForm.moveStop' | translate\"\n color=\"primary\"\n >\n <mat-icon svgIcon=\"gesture-swipe-vertical\"></mat-icon>\n </button>\n\n <button\n *ngIf=\"(stopsStore.count$ | async) > 2\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.directionsForm.removeStop' | translate\"\n color=\"warn\"\n (click)=\"removeStop(stop)\"\n >\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n </div>\n </div>\n</div>\n", styles: [":host .igo-input-container{display:flex;width:100%}:host .igo-input-container mat-form-field{flex:1}:host .igo-form-button-group{display:flex;align-items:center;padding-left:12px}:host .stops-list{max-width:100%;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden;padding:20px 10px}:host .swipe-vertical{cursor:move}:host .stop-box{color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff}:host .stop-box:not(:last-child){margin-bottom:16px}:host .cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}:host .cdk-drag-placeholder{opacity:0}:host .cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}:host .stops-list.cdk-drop-list-dragging .stop-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
202
+ ], template: "<div cdkDropList class=\"stops-list\" (cdkDropListDropped)=\"drop($event)\">\n <div\n touchleave\n (touchenter)=\"onStopEnter(stop)\"\n (touchleave)=\"onStopLeave()\"\n (mouseover)=\"onStopEnter(stop)\"\n (mouseleave)=\"onStopLeave()\"\n (cdkDragStarted)=\"stopIsDragged = true\"\n (cdkDragEnded)=\"stopIsDragged = false\"\n cdkDragLockAxis=\"y\"\n class=\"stop-box\"\n *ngFor=\"let stop of stopsStore.view.all$() | async; let i = index\"\n cdkDrag\n >\n <div [ngClass]=\"getNgClass(stop)\">\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{ getPlaceholder(stop) }}</mat-label>\n <input\n id=\"{{ stop.id }}\"\n type=\"text\"\n [placeholder]=\"getPlaceholder(stop)\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"stop.text\"\n aria-label=\"Number\"\n matInput\n (focus)=\"onInputFocus(stop)\"\n [(ngModel)]=\"stop.text\"\n (keyup)=\"setStopText($event, stop)\"\n (keydown.enter)=\"$event.preventDefault()\"\n [matAutocomplete]=\"auto\"\n />\n <button\n *ngIf=\"\n (stop.text || stop.coordinates) &&\n stopWithHover &&\n stop.id === stopWithHover.id\n \"\n mat-icon-button\n matSuffix\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.directionsForm.clearStop' | translate\"\n color=\"warn\"\n aria-label=\"Clear\"\n (click)=\"clearStop(stop)\"\n >\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-autocomplete\n [displayWith]=\"getOptionText\"\n #auto=\"matAutocomplete\"\n (optionSelected)=\"chooseProposal($event, stop)\"\n >\n <mat-optgroup\n *ngFor=\"let source of stop.searchProposals\"\n [label]=\"source.source.title\"\n [disabled]=\"source.source.enabled === false\"\n >\n <mat-option\n *ngFor=\"let result of source.results\"\n [value]=\"result\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"result.meta ? result.meta.title : ''\"\n >\n {{ result.meta ? result.meta.title : '' }}\n </mat-option>\n </mat-optgroup>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n\n <div\n *ngIf=\"!stopIsDragged && stopWithHover && stop.id === stopWithHover.id\"\n class=\"igo-form-button-group\"\n >\n <button\n class=\"swipe-vertical\"\n cdkDragHandle\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.directionsForm.moveStop' | translate\"\n color=\"primary\"\n >\n <mat-icon>drag_indicator</mat-icon>\n </button>\n\n <button\n *ngIf=\"(stopsStore.count$ | async) > 2\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.directionsForm.removeStop' | translate\"\n color=\"warn\"\n (click)=\"removeStop(stop)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n</div>\n", styles: [":host .igo-input-container{display:flex;width:100%}:host .igo-input-container mat-form-field{flex:1}:host .igo-form-button-group{display:flex;align-items:center;padding-left:12px}:host .stops-list{max-width:100%;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden;padding:20px 10px}:host .swipe-vertical{cursor:move}:host .stop-box{color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff}:host .stop-box:not(:last-child){margin-bottom:16px}:host .cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}:host .cdk-drag-placeholder{opacity:0}:host .cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}:host .stops-list.cdk-drop-list-dragging .stop-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
203
203
  }], ctorParameters: () => [{ type: i1.LanguageService }], propDecorators: { stopsStore: [{
204
204
  type: Input
205
205
  }], stopsFeatureStore: [{
@@ -215,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
215
215
  }], stopInputHasFocus: [{
216
216
  type: Output
217
217
  }] } });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1pbnB1dHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLWlucHV0cy9kaXJlY3Rpb25zLWlucHV0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtaW5wdXRzL2RpcmVjdGlvbnMtaW5wdXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBRVAsYUFBYSxFQUNiLFdBQVcsRUFDWCxlQUFlLEVBQ2hCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFFTCxxQkFBcUIsRUFDdEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFhLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGVBQWUsRUFB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UzsrQkFDRSx1QkFBdUIsY0FHckIsSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsS0FBSzt3QkFDTCxPQUFPO3dCQUNQLE9BQU87d0JBQ1Asa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gscUJBQXFCO3dCQUNyQixnQkFBZ0I7d0JBQ2hCLElBQUk7d0JBQ0osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixTQUFTO3dCQUNULGVBQWU7cUJBQ2hCO29GQU9RLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVJLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENka0RyYWcsXG4gIENka0RyYWdEcm9wLFxuICBDZGtEcmFnSGFuZGxlLFxuICBDZGtEcm9wTGlzdCxcbiAgbW92ZUl0ZW1JbkFycmF5XG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBNYXRBdXRvY29tcGxldGUsXG4gIE1hdEF1dG9jb21wbGV0ZU1vZHVsZVxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE9wdGlvbiwgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2xhbmd1YWdlJztcblxuaW1wb3J0ICogYXMgb2xPYnNlcnZhYmxlIGZyb20gJ29sL09ic2VydmFibGUnO1xuaW1wb3J0ICogYXMgb2xQcm9qIGZyb20gJ29sL3Byb2onO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCBwb2ludE9uRmVhdHVyZSBmcm9tICdAdHVyZi9wb2ludC1vbi1mZWF0dXJlJztcblxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyByb3VuZENvb3JkVG8gfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XG5pbXBvcnQgeyBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZSB9IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmVudW0nO1xuaW1wb3J0IHsgU3RvcCB9IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBjb21wdXRlUmVsYXRpdmVQb3NpdGlvbixcbiAgcmVtb3ZlU3RvcEZyb21TdG9yZSxcbiAgdXBkYXRlU3RvcmVTb3J0aW5nXG59IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLnV0aWxzJztcbmltcG9ydCB7IFN0b3BzRmVhdHVyZVN0b3JlLCBTdG9wc1N0b3JlIH0gZnJvbSAnLi4vc2hhcmVkL3N0b3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLWRpcmVjdGlvbnMtaW5wdXRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpcmVjdGlvbnMtaW5wdXRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGlyZWN0aW9ucy1pbnB1dHMuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENka0Ryb3BMaXN0LFxuICAgIE5nRm9yLFxuICAgIENka0RyYWcsXG4gICAgTmdDbGFzcyxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTmdJZixcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgQ2RrRHJhZ0hhbmRsZSxcbiAgICBBc3luY1BpcGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGlyZWN0aW9uc0lucHV0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW52YWxpZEtleXMgPSBbJ0NvbnRyb2wnLCAnU2hpZnQnLCAnQWx0J107XG4gIHByaXZhdGUgb25NYXBDbGlja0V2ZW50S2V5cyA9IFtdO1xuICBwdWJsaWMgc3RvcFdpdGhIb3ZlcjogU3RvcDtcbiAgcHVibGljIHN0b3BJc0RyYWdnZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc3RvcHNTdG9yZTogU3RvcHNTdG9yZTtcbiAgQElucHV0KCkgc3RvcHNGZWF0dXJlU3RvcmU6IFN0b3BzRmVhdHVyZVN0b3JlO1xuICBASW5wdXQoKSBwcm9qZWN0aW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNvb3JkUm91bmRlZERlY2ltYWxzOiBudW1iZXIgPSA2O1xuXG4gIEBJbnB1dCgpIGRlYm91bmNlOiBudW1iZXIgPSAyMDA7XG4gIEBJbnB1dCgpIGxlbmd0aDogbnVtYmVyID0gMjtcblxuICBAT3V0cHV0KCkgc3RvcElucHV0SGFzRm9jdXM6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UpIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bmxpc3Rlbk1hcFNpbmdsZUNsaWNrKCk7XG4gIH1cbiAgb25TdG9wRW50ZXIoc3RvcDogU3RvcCkge1xuICAgIHRoaXMuc3RvcFdpdGhIb3ZlciA9IHN0b3A7XG4gIH1cbiAgb25TdG9wTGVhdmUoKSB7XG4gICAgdGhpcy5zdG9wV2l0aEhvdmVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0T3B0aW9uVGV4dChvcHRpb24pIHtcbiAgICBpZiAob3B0aW9uIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICByZXR1cm4gb3B0aW9uPy5tZXRhID8gb3B0aW9uLm1ldGEudGl0bGUgOiAnJztcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbjtcbiAgfVxuXG4gIGNob29zZVByb3Bvc2FsKFxuICAgIGV2ZW50OiB7IHNvdXJjZTogTWF0QXV0b2NvbXBsZXRlOyBvcHRpb246IE1hdE9wdGlvbiB9LFxuICAgIHN0b3A6IFN0b3BcbiAgKSB7XG4gICAgY29uc3QgcmVzdWx0OiBGZWF0dXJlID0gZXZlbnQub3B0aW9uLnZhbHVlO1xuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIGxldCBnZW9tQ29vcmQ7XG4gICAgICBjb25zdCBnZW9tID0gcmVzdWx0Lmdlb21ldHJ5O1xuICAgICAgaWYgKGdlb20udHlwZSA9PT0gJ1BvaW50Jykge1xuICAgICAgICBnZW9tQ29vcmQgPSBnZW9tLmNvb3JkaW5hdGVzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcG9pbnQgPSBwb2ludE9uRmVhdHVyZShyZXN1bHQuZ2VvbWV0cnkpO1xuICAgICAgICBnZW9tQ29vcmQgPSBbXG4gICAgICAgICAgcG9pbnQuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF0sXG4gICAgICAgICAgcG9pbnQuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMV1cbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICAgIGlmIChnZW9tQ29vcmQpIHtcbiAgICAgICAgc3RvcC5jb29yZGluYXRlcyA9IGdlb21Db29yZDtcbiAgICAgICAgc3RvcC50ZXh0ID0gcmVzdWx0Lm1ldGEudGl0bGU7XG4gICAgICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGUoc3RvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0U3RvcFRleHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHN0b3A6IFN0b3ApIHtcbiAgICB0aGlzLnVubGlzdGVuTWFwU2luZ2xlQ2xpY2soKTtcbiAgICBjb25zdCB0ZXJtID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICBpZiAodGVybS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuY2xlYXJTdG9wKHN0b3ApO1xuICAgIH0gZWxzZSBpZiAodGhpcy52YWxpZGF0ZVRlcm0odGVybSkpIHtcbiAgICAgIHN0b3AudGV4dCA9IHRlcm07XG4gICAgICB0aGlzLnN0b3BzU3RvcmUudXBkYXRlKHN0b3ApO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlVGVybSh0ZXJtOiBzdHJpbmcpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmtleUlzVmFsaWQodGVybSkgJiZcbiAgICAgICh0ZXJtLmxlbmd0aCA+PSB0aGlzLmxlbmd0aCB8fCB0ZXJtLmxlbmd0aCA9PT0gMClcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGtleUlzVmFsaWQoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkS2V5cy5maW5kKCh2YWx1ZSkgPT4gdmFsdWUgPT09IGtleSkgPT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldE5nQ2xhc3Moc3RvcDogU3RvcCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnN0b3BXaXRoSG92ZXIpIHtcbiAgICAgIHJldHVybiAnaWdvLWlucHV0LWNvbnRhaW5lcic7XG4gICAgfSBlbHNlIGlmIChzdG9wLmlkID09PSB0aGlzLnN0b3BXaXRoSG92ZXIuaWQpIHtcbiAgICAgIHJldHVybiAnaWdvLWlucHV0LWNvbnRhaW5lciByZWR1Y2UnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2lnby1pbnB1dC1jb250YWluZXInO1xuICAgIH1cbiAgfVxuXG4gIGdldFBsYWNlaG9sZGVyKHN0b3A6IFN0b3ApOiBzdHJpbmcge1xuICAgIGxldCBleHRyYSA9ICcnO1xuICAgIGlmIChzdG9wLnJlbGF0aXZlUG9zaXRpb24pIHtcbiAgICAgIGlmIChcbiAgICAgICAgc3RvcC5yZWxhdGl2ZVBvc2l0aW9uID09PSBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZS5JbnRlcm1lZGlhdGVcbiAgICAgICkge1xuICAgICAgICBleHRyYSA9ICcgIycgKyBzdG9wLnBvc2l0aW9uO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uJyArIHN0b3AucmVsYXRpdmVQb3NpdGlvblxuICAgICAgICApICsgZXh0cmFcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICByZW1vdmVTdG9wKHN0b3A6IFN0b3ApIHtcbiAgICByZW1vdmVTdG9wRnJvbVN0b3JlKHRoaXMuc3RvcHNTdG9yZSwgc3RvcCk7XG4gIH1cblxuICBjbGVhclN0b3Aoc3RvcDogU3RvcCkge1xuICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGUoe1xuICAgICAgaWQ6IHN0b3AuaWQsXG4gICAgICByZWxhdGl2ZVBvc2l0aW9uOiBzdG9wLnJlbGF0aXZlUG9zaXRpb24sXG4gICAgICBwb3NpdGlvbjogc3RvcC5wb3NpdGlvblxuICAgIH0pO1xuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XG4gICAgdGhpcy5tb3ZlU3RvcHMoZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgbW92ZVN0b3BzKGZyb21JbmRleCwgdG9JbmRleCkge1xuICAgIGlmIChmcm9tSW5kZXggIT09IHRvSW5kZXgpIHtcbiAgICAgIGNvbnN0IHN0b3BzID0gWy4uLnRoaXMuc3RvcHNTdG9yZS52aWV3LmFsbCgpXTtcbiAgICAgIG1vdmVJdGVtSW5BcnJheShzdG9wcywgZnJvbUluZGV4LCB0b0luZGV4KTtcbiAgICAgIHN0b3BzLm1hcCgoc3RvcCwgaSkgPT4ge1xuICAgICAgICBzdG9wLnJlbGF0aXZlUG9zaXRpb24gPSBjb21wdXRlUmVsYXRpdmVQb3NpdGlvbihpLCBzdG9wcy5sZW5ndGgpO1xuICAgICAgICBzdG9wLnBvc2l0aW9uID0gaTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zdG9wc1N0b3JlLnVwZGF0ZU1hbnkoc3RvcHMpO1xuICAgICAgdXBkYXRlU3RvcmVTb3J0aW5nKHRoaXMuc3RvcHNTdG9yZSk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dEZvY3VzKHN0b3A6IFN0b3ApIHtcbiAgICBpZiAoIXN0b3AudGV4dCB8fCBzdG9wLnRleHQ/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy51bmxpc3Rlbk1hcFNpbmdsZUNsaWNrKCk7XG4gICAgICB0aGlzLnN0b3BJbnB1dEhhc0ZvY3VzLmVtaXQodHJ1ZSk7XG4gICAgICB0aGlzLmxpc3Rlbk1hcFNpbmdsZUNsaWNrKHN0b3ApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuTWFwU2luZ2xlQ2xpY2soc3RvcDogU3RvcCkge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLm9sLm9uY2UoXG4gICAgICAnc2luZ2xlY2xpY2snLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGNsaWNrQ29vcmRpbmF0ZXMgPSBvbFByb2oudHJhbnNmb3JtKFxuICAgICAgICAgIGV2ZW50LmNvb3JkaW5hdGUsXG4gICAgICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAucHJvamVjdGlvbixcbiAgICAgICAgICB0aGlzLnByb2plY3Rpb25cbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgcm91bmRlZENvb3JkID0gcm91bmRDb29yZFRvKFxuICAgICAgICAgIGNsaWNrQ29vcmRpbmF0ZXMgYXMgW251bWJlciwgbnVtYmVyXSxcbiAgICAgICAgICB0aGlzLmNvb3JkUm91bmRlZERlY2ltYWxzXG4gICAgICAgICk7XG4gICAgICAgIHN0b3AudGV4dCA9IHJvdW5kZWRDb29yZC5qb2luKCcsJyk7XG4gICAgICAgIHN0b3AuY29vcmRpbmF0ZXMgPSByb3VuZGVkQ29vcmQ7XG4gICAgICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGUoc3RvcCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3RvcElucHV0SGFzRm9jdXMuZW1pdChmYWxzZSk7XG4gICAgICAgIH0sIDUwMCk7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLm9uTWFwQ2xpY2tFdmVudEtleXMucHVzaChrZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSB1bmxpc3Rlbk1hcFNpbmdsZUNsaWNrKCkge1xuICAgIHRoaXMub25NYXBDbGlja0V2ZW50S2V5cy5tYXAoKGtleSkgPT4ge1xuICAgICAgb2xPYnNlcnZhYmxlLnVuQnlLZXkoa2V5KTtcbiAgICB9KTtcbiAgICB0aGlzLm9uTWFwQ2xpY2tFdmVudEtleXMgPSBbXTtcbiAgfVxufVxuIiwiPGRpdiBjZGtEcm9wTGlzdCBjbGFzcz1cInN0b3BzLWxpc3RcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxuICA8ZGl2XG4gICAgdG91Y2hsZWF2ZVxuICAgICh0b3VjaGVudGVyKT1cIm9uU3RvcEVudGVyKHN0b3ApXCJcbiAgICAodG91Y2hsZWF2ZSk9XCJvblN0b3BMZWF2ZSgpXCJcbiAgICAobW91c2VvdmVyKT1cIm9uU3RvcEVudGVyKHN0b3ApXCJcbiAgICAobW91c2VsZWF2ZSk9XCJvblN0b3BMZWF2ZSgpXCJcbiAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwic3RvcElzRHJhZ2dlZCA9IHRydWVcIlxuICAgIChjZGtEcmFnRW5kZWQpPVwic3RvcElzRHJhZ2dlZCA9IGZhbHNlXCJcbiAgICBjZGtEcmFnTG9ja0F4aXM9XCJ5XCJcbiAgICBjbGFzcz1cInN0b3AtYm94XCJcbiAgICAqbmdGb3I9XCJsZXQgc3RvcCBvZiBzdG9wc1N0b3JlLnZpZXcuYWxsJCgpIHwgYXN5bmM7IGxldCBpID0gaW5kZXhcIlxuICAgIGNka0RyYWdcbiAgPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwiZ2V0TmdDbGFzcyhzdG9wKVwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgPG1hdC1sYWJlbD57eyBnZXRQbGFjZWhvbGRlcihzdG9wKSB9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBpZD1cInt7IHN0b3AuaWQgfX1cIlxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZ2V0UGxhY2Vob2xkZXIoc3RvcClcIlxuICAgICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICAgIFttYXRUb29sdGlwXT1cInN0b3AudGV4dFwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIk51bWJlclwiXG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKHN0b3ApXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInN0b3AudGV4dFwiXG4gICAgICAgICAgKGtleXVwKT1cInNldFN0b3BUZXh0KCRldmVudCwgc3RvcClcIlxuICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAvPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIChzdG9wLnRleHQgfHwgc3RvcC5jb29yZGluYXRlcykgJiZcbiAgICAgICAgICAgIHN0b3BXaXRoSG92ZXIgJiZcbiAgICAgICAgICAgIHN0b3AuaWQgPT09IHN0b3BXaXRoSG92ZXIuaWRcbiAgICAgICAgICBcIlxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLmNsZWFyU3RvcCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJTdG9wKHN0b3ApXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiY2xvc2VcIj48L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZVxuICAgICAgICAgIFtkaXNwbGF5V2l0aF09XCJnZXRPcHRpb25UZXh0XCJcbiAgICAgICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cImNob29zZVByb3Bvc2FsKCRldmVudCwgc3RvcClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1vcHRncm91cFxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNvdXJjZSBvZiBzdG9wLnNlYXJjaFByb3Bvc2Fsc1wiXG4gICAgICAgICAgICBbbGFiZWxdPVwic291cmNlLnNvdXJjZS50aXRsZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwic291cmNlLnNvdXJjZS5lbmFibGVkID09PSBmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJlc3VsdCBvZiBzb3VyY2UucmVzdWx0c1wiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJyZXN1bHRcIlxuICAgICAgICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwicmVzdWx0Lm1ldGEgPyByZXN1bHQubWV0YS50aXRsZSA6ICcnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgcmVzdWx0Lm1ldGEgPyByZXN1bHQubWV0YS50aXRsZSA6ICcnIH19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgPC9tYXQtb3B0Z3JvdXA+XG4gICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIiFzdG9wSXNEcmFnZ2VkICYmIHN0b3BXaXRoSG92ZXIgJiYgc3RvcC5pZCA9PT0gc3RvcFdpdGhIb3Zlci5pZFwiXG4gICAgICBjbGFzcz1cImlnby1mb3JtLWJ1dHRvbi1ncm91cFwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInN3aXBlLXZlcnRpY2FsXCJcbiAgICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLm1vdmVTdG9wJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2VzdHVyZS1zd2lwZS12ZXJ0aWNhbFwiPjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cIihzdG9wc1N0b3JlLmNvdW50JCB8IGFzeW5jKSA+IDJcIlxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnJlbW92ZVN0b3AnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgY29sb3I9XCJ3YXJuXCJcbiAgICAgICAgKGNsaWNrKT1cInJlbW92ZVN0b3Aoc3RvcClcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImRlbGV0ZVwiPjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1pbnB1dHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLWlucHV0cy9kaXJlY3Rpb25zLWlucHV0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtaW5wdXRzL2RpcmVjdGlvbnMtaW5wdXRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBRVAsYUFBYSxFQUNiLFdBQVcsRUFDWCxlQUFlLEVBQ2hCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFFTCxxQkFBcUIsRUFDdEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFhLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGVBQWUsRUFB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UzsrQkFDRSx1QkFBdUIsY0FHckIsSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsS0FBSzt3QkFDTCxPQUFPO3dCQUNQLE9BQU87d0JBQ1Asa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gscUJBQXFCO3dCQUNyQixnQkFBZ0I7d0JBQ2hCLElBQUk7d0JBQ0osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixTQUFTO3dCQUNULGVBQWU7cUJBQ2hCO29GQU9RLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVJLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENka0RyYWcsXG4gIENka0RyYWdEcm9wLFxuICBDZGtEcmFnSGFuZGxlLFxuICBDZGtEcm9wTGlzdCxcbiAgbW92ZUl0ZW1JbkFycmF5XG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBNYXRBdXRvY29tcGxldGUsXG4gIE1hdEF1dG9jb21wbGV0ZU1vZHVsZVxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE9wdGlvbiwgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2xhbmd1YWdlJztcblxuaW1wb3J0ICogYXMgb2xPYnNlcnZhYmxlIGZyb20gJ29sL09ic2VydmFibGUnO1xuaW1wb3J0ICogYXMgb2xQcm9qIGZyb20gJ29sL3Byb2onO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCBwb2ludE9uRmVhdHVyZSBmcm9tICdAdHVyZi9wb2ludC1vbi1mZWF0dXJlJztcblxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyByb3VuZENvb3JkVG8gfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XG5pbXBvcnQgeyBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZSB9IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmVudW0nO1xuaW1wb3J0IHsgU3RvcCB9IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBjb21wdXRlUmVsYXRpdmVQb3NpdGlvbixcbiAgcmVtb3ZlU3RvcEZyb21TdG9yZSxcbiAgdXBkYXRlU3RvcmVTb3J0aW5nXG59IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLnV0aWxzJztcbmltcG9ydCB7IFN0b3BzRmVhdHVyZVN0b3JlLCBTdG9wc1N0b3JlIH0gZnJvbSAnLi4vc2hhcmVkL3N0b3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLWRpcmVjdGlvbnMtaW5wdXRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpcmVjdGlvbnMtaW5wdXRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGlyZWN0aW9ucy1pbnB1dHMuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENka0Ryb3BMaXN0LFxuICAgIE5nRm9yLFxuICAgIENka0RyYWcsXG4gICAgTmdDbGFzcyxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTmdJZixcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgQ2RrRHJhZ0hhbmRsZSxcbiAgICBBc3luY1BpcGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGlyZWN0aW9uc0lucHV0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW52YWxpZEtleXMgPSBbJ0NvbnRyb2wnLCAnU2hpZnQnLCAnQWx0J107XG4gIHByaXZhdGUgb25NYXBDbGlja0V2ZW50S2V5cyA9IFtdO1xuICBwdWJsaWMgc3RvcFdpdGhIb3ZlcjogU3RvcDtcbiAgcHVibGljIHN0b3BJc0RyYWdnZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc3RvcHNTdG9yZTogU3RvcHNTdG9yZTtcbiAgQElucHV0KCkgc3RvcHNGZWF0dXJlU3RvcmU6IFN0b3BzRmVhdHVyZVN0b3JlO1xuICBASW5wdXQoKSBwcm9qZWN0aW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNvb3JkUm91bmRlZERlY2ltYWxzOiBudW1iZXIgPSA2O1xuXG4gIEBJbnB1dCgpIGRlYm91bmNlOiBudW1iZXIgPSAyMDA7XG4gIEBJbnB1dCgpIGxlbmd0aDogbnVtYmVyID0gMjtcblxuICBAT3V0cHV0KCkgc3RvcElucHV0SGFzRm9jdXM6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UpIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bmxpc3Rlbk1hcFNpbmdsZUNsaWNrKCk7XG4gIH1cbiAgb25TdG9wRW50ZXIoc3RvcDogU3RvcCkge1xuICAgIHRoaXMuc3RvcFdpdGhIb3ZlciA9IHN0b3A7XG4gIH1cbiAgb25TdG9wTGVhdmUoKSB7XG4gICAgdGhpcy5zdG9wV2l0aEhvdmVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0T3B0aW9uVGV4dChvcHRpb24pIHtcbiAgICBpZiAob3B0aW9uIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICByZXR1cm4gb3B0aW9uPy5tZXRhID8gb3B0aW9uLm1ldGEudGl0bGUgOiAnJztcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbjtcbiAgfVxuXG4gIGNob29zZVByb3Bvc2FsKFxuICAgIGV2ZW50OiB7IHNvdXJjZTogTWF0QXV0b2NvbXBsZXRlOyBvcHRpb246IE1hdE9wdGlvbiB9LFxuICAgIHN0b3A6IFN0b3BcbiAgKSB7XG4gICAgY29uc3QgcmVzdWx0OiBGZWF0dXJlID0gZXZlbnQub3B0aW9uLnZhbHVlO1xuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIGxldCBnZW9tQ29vcmQ7XG4gICAgICBjb25zdCBnZW9tID0gcmVzdWx0Lmdlb21ldHJ5O1xuICAgICAgaWYgKGdlb20udHlwZSA9PT0gJ1BvaW50Jykge1xuICAgICAgICBnZW9tQ29vcmQgPSBnZW9tLmNvb3JkaW5hdGVzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcG9pbnQgPSBwb2ludE9uRmVhdHVyZShyZXN1bHQuZ2VvbWV0cnkpO1xuICAgICAgICBnZW9tQ29vcmQgPSBbXG4gICAgICAgICAgcG9pbnQuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF0sXG4gICAgICAgICAgcG9pbnQuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMV1cbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICAgIGlmIChnZW9tQ29vcmQpIHtcbiAgICAgICAgc3RvcC5jb29yZGluYXRlcyA9IGdlb21Db29yZDtcbiAgICAgICAgc3RvcC50ZXh0ID0gcmVzdWx0Lm1ldGEudGl0bGU7XG4gICAgICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGUoc3RvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0U3RvcFRleHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHN0b3A6IFN0b3ApIHtcbiAgICB0aGlzLnVubGlzdGVuTWFwU2luZ2xlQ2xpY2soKTtcbiAgICBjb25zdCB0ZXJtID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICBpZiAodGVybS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuY2xlYXJTdG9wKHN0b3ApO1xuICAgIH0gZWxzZSBpZiAodGhpcy52YWxpZGF0ZVRlcm0odGVybSkpIHtcbiAgICAgIHN0b3AudGV4dCA9IHRlcm07XG4gICAgICB0aGlzLnN0b3BzU3RvcmUudXBkYXRlKHN0b3ApO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlVGVybSh0ZXJtOiBzdHJpbmcpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmtleUlzVmFsaWQodGVybSkgJiZcbiAgICAgICh0ZXJtLmxlbmd0aCA+PSB0aGlzLmxlbmd0aCB8fCB0ZXJtLmxlbmd0aCA9PT0gMClcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGtleUlzVmFsaWQoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkS2V5cy5maW5kKCh2YWx1ZSkgPT4gdmFsdWUgPT09IGtleSkgPT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldE5nQ2xhc3Moc3RvcDogU3RvcCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnN0b3BXaXRoSG92ZXIpIHtcbiAgICAgIHJldHVybiAnaWdvLWlucHV0LWNvbnRhaW5lcic7XG4gICAgfSBlbHNlIGlmIChzdG9wLmlkID09PSB0aGlzLnN0b3BXaXRoSG92ZXIuaWQpIHtcbiAgICAgIHJldHVybiAnaWdvLWlucHV0LWNvbnRhaW5lciByZWR1Y2UnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2lnby1pbnB1dC1jb250YWluZXInO1xuICAgIH1cbiAgfVxuXG4gIGdldFBsYWNlaG9sZGVyKHN0b3A6IFN0b3ApOiBzdHJpbmcge1xuICAgIGxldCBleHRyYSA9ICcnO1xuICAgIGlmIChzdG9wLnJlbGF0aXZlUG9zaXRpb24pIHtcbiAgICAgIGlmIChcbiAgICAgICAgc3RvcC5yZWxhdGl2ZVBvc2l0aW9uID09PSBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZS5JbnRlcm1lZGlhdGVcbiAgICAgICkge1xuICAgICAgICBleHRyYSA9ICcgIycgKyBzdG9wLnBvc2l0aW9uO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uJyArIHN0b3AucmVsYXRpdmVQb3NpdGlvblxuICAgICAgICApICsgZXh0cmFcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICByZW1vdmVTdG9wKHN0b3A6IFN0b3ApIHtcbiAgICByZW1vdmVTdG9wRnJvbVN0b3JlKHRoaXMuc3RvcHNTdG9yZSwgc3RvcCk7XG4gIH1cblxuICBjbGVhclN0b3Aoc3RvcDogU3RvcCkge1xuICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGUoe1xuICAgICAgaWQ6IHN0b3AuaWQsXG4gICAgICByZWxhdGl2ZVBvc2l0aW9uOiBzdG9wLnJlbGF0aXZlUG9zaXRpb24sXG4gICAgICBwb3NpdGlvbjogc3RvcC5wb3NpdGlvblxuICAgIH0pO1xuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XG4gICAgdGhpcy5tb3ZlU3RvcHMoZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgbW92ZVN0b3BzKGZyb21JbmRleCwgdG9JbmRleCkge1xuICAgIGlmIChmcm9tSW5kZXggIT09IHRvSW5kZXgpIHtcbiAgICAgIGNvbnN0IHN0b3BzID0gWy4uLnRoaXMuc3RvcHNTdG9yZS52aWV3LmFsbCgpXTtcbiAgICAgIG1vdmVJdGVtSW5BcnJheShzdG9wcywgZnJvbUluZGV4LCB0b0luZGV4KTtcbiAgICAgIHN0b3BzLm1hcCgoc3RvcCwgaSkgPT4ge1xuICAgICAgICBzdG9wLnJlbGF0aXZlUG9zaXRpb24gPSBjb21wdXRlUmVsYXRpdmVQb3NpdGlvbihpLCBzdG9wcy5sZW5ndGgpO1xuICAgICAgICBzdG9wLnBvc2l0aW9uID0gaTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zdG9wc1N0b3JlLnVwZGF0ZU1hbnkoc3RvcHMpO1xuICAgICAgdXBkYXRlU3RvcmVTb3J0aW5nKHRoaXMuc3RvcHNTdG9yZSk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dEZvY3VzKHN0b3A6IFN0b3ApIHtcbiAgICBpZiAoIXN0b3AudGV4dCB8fCBzdG9wLnRleHQ/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy51bmxpc3Rlbk1hcFNpbmdsZUNsaWNrKCk7XG4gICAgICB0aGlzLnN0b3BJbnB1dEhhc0ZvY3VzLmVtaXQodHJ1ZSk7XG4gICAgICB0aGlzLmxpc3Rlbk1hcFNpbmdsZUNsaWNrKHN0b3ApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuTWFwU2luZ2xlQ2xpY2soc3RvcDogU3RvcCkge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLm9sLm9uY2UoXG4gICAgICAnc2luZ2xlY2xpY2snLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGNsaWNrQ29vcmRpbmF0ZXMgPSBvbFByb2oudHJhbnNmb3JtKFxuICAgICAgICAgIGV2ZW50LmNvb3JkaW5hdGUsXG4gICAgICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAucHJvamVjdGlvbixcbiAgICAgICAgICB0aGlzLnByb2plY3Rpb25cbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgcm91bmRlZENvb3JkID0gcm91bmRDb29yZFRvKFxuICAgICAgICAgIGNsaWNrQ29vcmRpbmF0ZXMgYXMgW251bWJlciwgbnVtYmVyXSxcbiAgICAgICAgICB0aGlzLmNvb3JkUm91bmRlZERlY2ltYWxzXG4gICAgICAgICk7XG4gICAgICAgIHN0b3AudGV4dCA9IHJvdW5kZWRDb29yZC5qb2luKCcsJyk7XG4gICAgICAgIHN0b3AuY29vcmRpbmF0ZXMgPSByb3VuZGVkQ29vcmQ7XG4gICAgICAgIHRoaXMuc3RvcHNTdG9yZS51cGRhdGUoc3RvcCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3RvcElucHV0SGFzRm9jdXMuZW1pdChmYWxzZSk7XG4gICAgICAgIH0sIDUwMCk7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLm9uTWFwQ2xpY2tFdmVudEtleXMucHVzaChrZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSB1bmxpc3Rlbk1hcFNpbmdsZUNsaWNrKCkge1xuICAgIHRoaXMub25NYXBDbGlja0V2ZW50S2V5cy5tYXAoKGtleSkgPT4ge1xuICAgICAgb2xPYnNlcnZhYmxlLnVuQnlLZXkoa2V5KTtcbiAgICB9KTtcbiAgICB0aGlzLm9uTWFwQ2xpY2tFdmVudEtleXMgPSBbXTtcbiAgfVxufVxuIiwiPGRpdiBjZGtEcm9wTGlzdCBjbGFzcz1cInN0b3BzLWxpc3RcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxuICA8ZGl2XG4gICAgdG91Y2hsZWF2ZVxuICAgICh0b3VjaGVudGVyKT1cIm9uU3RvcEVudGVyKHN0b3ApXCJcbiAgICAodG91Y2hsZWF2ZSk9XCJvblN0b3BMZWF2ZSgpXCJcbiAgICAobW91c2VvdmVyKT1cIm9uU3RvcEVudGVyKHN0b3ApXCJcbiAgICAobW91c2VsZWF2ZSk9XCJvblN0b3BMZWF2ZSgpXCJcbiAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwic3RvcElzRHJhZ2dlZCA9IHRydWVcIlxuICAgIChjZGtEcmFnRW5kZWQpPVwic3RvcElzRHJhZ2dlZCA9IGZhbHNlXCJcbiAgICBjZGtEcmFnTG9ja0F4aXM9XCJ5XCJcbiAgICBjbGFzcz1cInN0b3AtYm94XCJcbiAgICAqbmdGb3I9XCJsZXQgc3RvcCBvZiBzdG9wc1N0b3JlLnZpZXcuYWxsJCgpIHwgYXN5bmM7IGxldCBpID0gaW5kZXhcIlxuICAgIGNka0RyYWdcbiAgPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwiZ2V0TmdDbGFzcyhzdG9wKVwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgPG1hdC1sYWJlbD57eyBnZXRQbGFjZWhvbGRlcihzdG9wKSB9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBpZD1cInt7IHN0b3AuaWQgfX1cIlxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZ2V0UGxhY2Vob2xkZXIoc3RvcClcIlxuICAgICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICAgIFttYXRUb29sdGlwXT1cInN0b3AudGV4dFwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIk51bWJlclwiXG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKHN0b3ApXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInN0b3AudGV4dFwiXG4gICAgICAgICAgKGtleXVwKT1cInNldFN0b3BUZXh0KCRldmVudCwgc3RvcClcIlxuICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAvPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIChzdG9wLnRleHQgfHwgc3RvcC5jb29yZGluYXRlcykgJiZcbiAgICAgICAgICAgIHN0b3BXaXRoSG92ZXIgJiZcbiAgICAgICAgICAgIHN0b3AuaWQgPT09IHN0b3BXaXRoSG92ZXIuaWRcbiAgICAgICAgICBcIlxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLmNsZWFyU3RvcCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJTdG9wKHN0b3ApXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlXG4gICAgICAgICAgW2Rpc3BsYXlXaXRoXT1cImdldE9wdGlvblRleHRcIlxuICAgICAgICAgICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiY2hvb3NlUHJvcG9zYWwoJGV2ZW50LCBzdG9wKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LW9wdGdyb3VwXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgc291cmNlIG9mIHN0b3Auc2VhcmNoUHJvcG9zYWxzXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJzb3VyY2Uuc291cmNlLnRpdGxlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzb3VyY2Uuc291cmNlLmVuYWJsZWQgPT09IGZhbHNlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmVzdWx0IG9mIHNvdXJjZS5yZXN1bHRzXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInJlc3VsdFwiXG4gICAgICAgICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJyZXN1bHQubWV0YSA/IHJlc3VsdC5tZXRhLnRpdGxlIDogJydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyByZXN1bHQubWV0YSA/IHJlc3VsdC5tZXRhLnRpdGxlIDogJycgfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8L21hdC1vcHRncm91cD5cbiAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiIXN0b3BJc0RyYWdnZWQgJiYgc3RvcFdpdGhIb3ZlciAmJiBzdG9wLmlkID09PSBzdG9wV2l0aEhvdmVyLmlkXCJcbiAgICAgIGNsYXNzPVwiaWdvLWZvcm0tYnV0dG9uLWdyb3VwXCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic3dpcGUtdmVydGljYWxcIlxuICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0ubW92ZVN0b3AnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uPmRyYWdfaW5kaWNhdG9yPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiKHN0b3BzU3RvcmUuY291bnQkIHwgYXN5bmMpID4gMlwiXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0ucmVtb3ZlU3RvcCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBjb2xvcj1cIndhcm5cIlxuICAgICAgICAoY2xpY2spPVwicmVtb3ZlU3RvcChzdG9wKVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -118,7 +118,7 @@ export class DirectionsResultsComponent {
118
118
  }
119
119
  }
120
120
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DirectionsResultsComponent, deps: [{ token: i1.LanguageService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
121
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: DirectionsResultsComponent, isStandalone: true, selector: "igo-directions-results", inputs: { routesFeatureStore: "routesFeatureStore", stepFeatureStore: "stepFeatureStore" }, ngImport: i0, template: "<div class=\"igo-input-container\" *ngIf=\"directions && activeDirection\">\n <mat-form-field *ngIf=\"directions && directions.length > 1\">\n <mat-label>{{\n 'igo.geo.directionsForm.drivingOptions' | translate\n }}</mat-label>\n <mat-select\n placeholder=\"{{ 'igo.geo.directionsForm.drivingOptions' | translate }}\"\n (selectionChange)=\"changeRoute()\"\n [(ngModel)]=\"activeDirection\"\n >\n <mat-option\n *ngFor=\"let direction of directions; let cnt = index\"\n [value]=\"direction\"\n >\n Option {{ cnt + 1 }} : {{ formatDistance(direction.distance) }} ({{\n formatDuration(direction.duration)\n }})\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-divider *ngIf=\"directions && directions.length === 0\"></mat-divider>\n\n <mat-list (mouseleave)=\"onStepsListBlur()\">\n <h2 mat-header class=\"igo-route-title\">{{ activeDirection.title }}</h2>\n <span class=\"mat-caption\">\n {{ formatDistance(activeDirection.distance) }},\n {{ formatDuration(activeDirection.duration) }}\n </span>\n <mat-list-item\n class=\"igo-steps\"\n (mouseenter)=\"showSegment(step)\"\n (click)=\"showSegment(step, true)\"\n *ngFor=\"let step of activeDirection.steps; let cnt = index\"\n igoListItem\n >\n <mat-icon\n [ngClass]=\"formatStep(step, cnt).cssClass\"\n matListItemIcon\n svgIcon=\"{{ formatStep(step, cnt).image }}\"\n >\n </mat-icon>\n\n <span class=\"igo-step-text\">\n {{ cnt + 1 }}. {{ formatStep(step, cnt).instruction }}\n </span>\n <span matListItemMeta>\n {{ formatDistance(step.distance) }}\n </span>\n </mat-list-item>\n\n <mat-divider></mat-divider>\n </mat-list>\n</div>\n", styles: [".igo-input-container{width:100%;padding:20px 10px;box-sizing:border-box}.igo-input-container mat-form-field{width:70%}.igo-route-title{font-weight:700}.igo-steps{cursor:pointer;padding:35px 0}.igo-steps .igo-step-text{overflow-wrap:break-word;word-wrap:break-word;white-space:pre-wrap}.mat-mdc-list-item{word-wrap:break-word!important;white-space:pre-wrap!important}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-45{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.rotate-250{-webkit-transform:rotate(250deg);-moz-transform:rotate(250deg);-ms-transform:rotate(250deg);-o-transform:rotate(250deg);transform:rotate(250deg)}.rotate-290{-webkit-transform:rotate(290deg);-moz-transform:rotate(290deg);-ms-transform:rotate(290deg);-o-transform:rotate(290deg);transform:rotate(290deg)}.icon-flipped{-o-transform:scaleY(-1);-moz-transform:scaleY(-1);-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i6.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i7.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i7.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i7.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i7.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] });
121
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: DirectionsResultsComponent, isStandalone: true, selector: "igo-directions-results", inputs: { routesFeatureStore: "routesFeatureStore", stepFeatureStore: "stepFeatureStore" }, ngImport: i0, template: "<div class=\"igo-input-container\" *ngIf=\"directions && activeDirection\">\n <mat-form-field *ngIf=\"directions && directions.length > 1\">\n <mat-label>{{\n 'igo.geo.directionsForm.drivingOptions' | translate\n }}</mat-label>\n <mat-select\n placeholder=\"{{ 'igo.geo.directionsForm.drivingOptions' | translate }}\"\n (selectionChange)=\"changeRoute()\"\n [(ngModel)]=\"activeDirection\"\n >\n <mat-option\n *ngFor=\"let direction of directions; let cnt = index\"\n [value]=\"direction\"\n >\n Option {{ cnt + 1 }} : {{ formatDistance(direction.distance) }} ({{\n formatDuration(direction.duration)\n }})\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-divider *ngIf=\"directions && directions.length === 0\"></mat-divider>\n\n <mat-list (mouseleave)=\"onStepsListBlur()\">\n <h2 mat-header class=\"igo-route-title\">{{ activeDirection.title }}</h2>\n <span class=\"mat-caption\">\n {{ formatDistance(activeDirection.distance) }},\n {{ formatDuration(activeDirection.duration) }}\n </span>\n <mat-list-item\n class=\"igo-steps\"\n (mouseenter)=\"showSegment(step)\"\n (click)=\"showSegment(step, true)\"\n *ngFor=\"let step of activeDirection.steps; let cnt = index\"\n igoListItem\n >\n <mat-icon [ngClass]=\"formatStep(step, cnt).cssClass\" matListItemIcon\n >{{ formatStep(step, cnt).image }}\n </mat-icon>\n\n <span class=\"igo-step-text\">\n {{ cnt + 1 }}. {{ formatStep(step, cnt).instruction }}\n </span>\n <span matListItemMeta>\n {{ formatDistance(step.distance) }}\n </span>\n </mat-list-item>\n\n <mat-divider></mat-divider>\n </mat-list>\n</div>\n", styles: [".igo-input-container{width:100%;padding:20px 10px;box-sizing:border-box}.igo-input-container mat-form-field{width:70%}.igo-route-title{font-weight:700}.igo-steps{cursor:pointer;padding:35px 0}.igo-steps .igo-step-text{overflow-wrap:break-word;word-wrap:break-word;white-space:pre-wrap}.mat-mdc-list-item{word-wrap:break-word!important;white-space:pre-wrap!important}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-45{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.rotate-250{-webkit-transform:rotate(250deg);-moz-transform:rotate(250deg);-ms-transform:rotate(250deg);-o-transform:rotate(250deg);transform:rotate(250deg)}.rotate-290{-webkit-transform:rotate(290deg);-moz-transform:rotate(290deg);-ms-transform:rotate(290deg);-o-transform:rotate(290deg);transform:rotate(290deg)}.icon-flipped{-o-transform:scaleY(-1);-moz-transform:scaleY(-1);-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i6.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i7.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i7.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i7.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i7.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] });
122
122
  }
123
123
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DirectionsResultsComponent, decorators: [{
124
124
  type: Component,
@@ -134,10 +134,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
134
134
  MatIconModule,
135
135
  NgClass,
136
136
  TranslateModule
137
- ], template: "<div class=\"igo-input-container\" *ngIf=\"directions && activeDirection\">\n <mat-form-field *ngIf=\"directions && directions.length > 1\">\n <mat-label>{{\n 'igo.geo.directionsForm.drivingOptions' | translate\n }}</mat-label>\n <mat-select\n placeholder=\"{{ 'igo.geo.directionsForm.drivingOptions' | translate }}\"\n (selectionChange)=\"changeRoute()\"\n [(ngModel)]=\"activeDirection\"\n >\n <mat-option\n *ngFor=\"let direction of directions; let cnt = index\"\n [value]=\"direction\"\n >\n Option {{ cnt + 1 }} : {{ formatDistance(direction.distance) }} ({{\n formatDuration(direction.duration)\n }})\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-divider *ngIf=\"directions && directions.length === 0\"></mat-divider>\n\n <mat-list (mouseleave)=\"onStepsListBlur()\">\n <h2 mat-header class=\"igo-route-title\">{{ activeDirection.title }}</h2>\n <span class=\"mat-caption\">\n {{ formatDistance(activeDirection.distance) }},\n {{ formatDuration(activeDirection.duration) }}\n </span>\n <mat-list-item\n class=\"igo-steps\"\n (mouseenter)=\"showSegment(step)\"\n (click)=\"showSegment(step, true)\"\n *ngFor=\"let step of activeDirection.steps; let cnt = index\"\n igoListItem\n >\n <mat-icon\n [ngClass]=\"formatStep(step, cnt).cssClass\"\n matListItemIcon\n svgIcon=\"{{ formatStep(step, cnt).image }}\"\n >\n </mat-icon>\n\n <span class=\"igo-step-text\">\n {{ cnt + 1 }}. {{ formatStep(step, cnt).instruction }}\n </span>\n <span matListItemMeta>\n {{ formatDistance(step.distance) }}\n </span>\n </mat-list-item>\n\n <mat-divider></mat-divider>\n </mat-list>\n</div>\n", styles: [".igo-input-container{width:100%;padding:20px 10px;box-sizing:border-box}.igo-input-container mat-form-field{width:70%}.igo-route-title{font-weight:700}.igo-steps{cursor:pointer;padding:35px 0}.igo-steps .igo-step-text{overflow-wrap:break-word;word-wrap:break-word;white-space:pre-wrap}.mat-mdc-list-item{word-wrap:break-word!important;white-space:pre-wrap!important}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-45{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.rotate-250{-webkit-transform:rotate(250deg);-moz-transform:rotate(250deg);-ms-transform:rotate(250deg);-o-transform:rotate(250deg);transform:rotate(250deg)}.rotate-290{-webkit-transform:rotate(290deg);-moz-transform:rotate(290deg);-ms-transform:rotate(290deg);-o-transform:rotate(290deg);transform:rotate(290deg)}.icon-flipped{-o-transform:scaleY(-1);-moz-transform:scaleY(-1);-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}\n"] }]
137
+ ], template: "<div class=\"igo-input-container\" *ngIf=\"directions && activeDirection\">\n <mat-form-field *ngIf=\"directions && directions.length > 1\">\n <mat-label>{{\n 'igo.geo.directionsForm.drivingOptions' | translate\n }}</mat-label>\n <mat-select\n placeholder=\"{{ 'igo.geo.directionsForm.drivingOptions' | translate }}\"\n (selectionChange)=\"changeRoute()\"\n [(ngModel)]=\"activeDirection\"\n >\n <mat-option\n *ngFor=\"let direction of directions; let cnt = index\"\n [value]=\"direction\"\n >\n Option {{ cnt + 1 }} : {{ formatDistance(direction.distance) }} ({{\n formatDuration(direction.duration)\n }})\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-divider *ngIf=\"directions && directions.length === 0\"></mat-divider>\n\n <mat-list (mouseleave)=\"onStepsListBlur()\">\n <h2 mat-header class=\"igo-route-title\">{{ activeDirection.title }}</h2>\n <span class=\"mat-caption\">\n {{ formatDistance(activeDirection.distance) }},\n {{ formatDuration(activeDirection.duration) }}\n </span>\n <mat-list-item\n class=\"igo-steps\"\n (mouseenter)=\"showSegment(step)\"\n (click)=\"showSegment(step, true)\"\n *ngFor=\"let step of activeDirection.steps; let cnt = index\"\n igoListItem\n >\n <mat-icon [ngClass]=\"formatStep(step, cnt).cssClass\" matListItemIcon\n >{{ formatStep(step, cnt).image }}\n </mat-icon>\n\n <span class=\"igo-step-text\">\n {{ cnt + 1 }}. {{ formatStep(step, cnt).instruction }}\n </span>\n <span matListItemMeta>\n {{ formatDistance(step.distance) }}\n </span>\n </mat-list-item>\n\n <mat-divider></mat-divider>\n </mat-list>\n</div>\n", styles: [".igo-input-container{width:100%;padding:20px 10px;box-sizing:border-box}.igo-input-container mat-form-field{width:70%}.igo-route-title{font-weight:700}.igo-steps{cursor:pointer;padding:35px 0}.igo-steps .igo-step-text{overflow-wrap:break-word;word-wrap:break-word;white-space:pre-wrap}.mat-mdc-list-item{word-wrap:break-word!important;white-space:pre-wrap!important}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-45{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.rotate-250{-webkit-transform:rotate(250deg);-moz-transform:rotate(250deg);-ms-transform:rotate(250deg);-o-transform:rotate(250deg);transform:rotate(250deg)}.rotate-290{-webkit-transform:rotate(290deg);-moz-transform:rotate(290deg);-ms-transform:rotate(290deg);-o-transform:rotate(290deg);transform:rotate(290deg)}.icon-flipped{-o-transform:scaleY(-1);-moz-transform:scaleY(-1);-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}\n"] }]
138
138
  }], ctorParameters: () => [{ type: i1.LanguageService }, { type: i0.ChangeDetectorRef }], propDecorators: { routesFeatureStore: [{
139
139
  type: Input
140
140
  }], stepFeatureStore: [{
141
141
  type: Input
142
142
  }] } });
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1yZXN1bHRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy1yZXN1bHRzL2RpcmVjdGlvbnMtcmVzdWx0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtcmVzdWx0cy9kaXJlY3Rpb25zLXJlc3VsdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLFNBQVMsTUFBTSxtQkFBbUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLFNBQVMsQ0FBQztBQUVsQyxPQUFPLEVB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QUFJLDRGQUNKLGtCQUFrQiwwU0FDbEIsZUFBZSxtckJBQ2YsV0FBVywrVkFDWCxLQUFLLGtIQUNMLGVBQWUsOEJBQ2YsZ0JBQWdCLGtJQUNoQixhQUFhLHViQUNiLGFBQWEsb0xBQ2IsT0FBTyxtRkFDUCxlQUFlOzsyRkFHTiwwQkFBMEI7a0JBbkJ0QyxTQUFTOytCQUNFLHdCQUF3QixjQUd0QixJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxLQUFLO3dCQUNMLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsT0FBTzt3QkFDUCxlQUFlO3FCQUNoQjtvSEFRUSxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcblxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5cbmltcG9ydCBvbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XG5pbXBvcnQgT2xHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcbmltcG9ydCAqIGFzIG9sR2VvbSBmcm9tICdvbC9nZW9tJztcblxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRkVBVFVSRSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuZW51bXMnO1xuaW1wb3J0IHsgRmVhdHVyZUdlb21ldHJ5IH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IERpcmVjdGlvblR5cGUgfSBmcm9tICcuLi9zaGFyZWQvZGlyZWN0aW9ucy5lbnVtJztcbmltcG9ydCB7XG4gIERpcmVjdGlvbixcbiAgRmVhdHVyZVdpdGhTdGVwLFxuICBJZ29TdGVwXG59IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBmb3JtYXREaXN0YW5jZSxcbiAgZm9ybWF0RHVyYXRpb24sXG4gIGZvcm1hdEluc3RydWN0aW9uXG59IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLnV0aWxzJztcbmltcG9ydCB7IFJvdXRlc0ZlYXR1cmVTdG9yZSwgU3RlcEZlYXR1cmVTdG9yZSB9IGZyb20gJy4uL3NoYXJlZC9zdG9yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1kaXJlY3Rpb25zLXJlc3VsdHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGlyZWN0aW9ucy1yZXN1bHRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGlyZWN0aW9ucy1yZXN1bHRzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTmdGb3IsXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE5nQ2xhc3MsXG4gICAgVHJhbnNsYXRlTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGlyZWN0aW9uc1Jlc3VsdHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBhY3RpdmVEaXJlY3Rpb246IERpcmVjdGlvbjtcbiAgcHVibGljIGRpcmVjdGlvbnM6IERpcmVjdGlvbltdO1xuXG4gIHByaXZhdGUgZW50aXRpZXMkJDogU3Vic2NyaXB0aW9uO1xuXG4gIEBJbnB1dCgpIHJvdXRlc0ZlYXR1cmVTdG9yZTogUm91dGVzRmVhdHVyZVN0b3JlO1xuICBASW5wdXQoKSBzdGVwRmVhdHVyZVN0b3JlOiBTdGVwRmVhdHVyZVN0b3JlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZW50aXRpZXMkJCA9IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmVudGl0aWVzJFxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpXG4gICAgICAuc3Vic2NyaWJlKChlbnRpdGllcykgPT4ge1xuICAgICAgICBjb25zdCBhY3RpdmVGZWF0dXJlV2l0aERpcmVjdGlvbiA9IGVudGl0aWVzLmZpbmQoXG4gICAgICAgICAgKGVudGl0eSkgPT4gZW50aXR5LnByb3BlcnRpZXMuYWN0aXZlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGlyZWN0aW9ucyA9IGVudGl0aWVzLm1hcCgoZW50aXR5KSA9PiBlbnRpdHkucHJvcGVydGllcy5kaXJlY3Rpb24pO1xuICAgICAgICBpZiAoYWN0aXZlRmVhdHVyZVdpdGhEaXJlY3Rpb24pIHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZURpcmVjdGlvbiA9XG4gICAgICAgICAgICBhY3RpdmVGZWF0dXJlV2l0aERpcmVjdGlvbi5wcm9wZXJ0aWVzLmRpcmVjdGlvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZURpcmVjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5lbnRpdGllcyQkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBjaGFuZ2VSb3V0ZSgpIHtcbiAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5lbnRpdGllcyQudmFsdWUubWFwKFxuICAgICAgKGVudGl0eSkgPT4gKGVudGl0eS5wcm9wZXJ0aWVzLmFjdGl2ZSA9ICFlbnRpdHkucHJvcGVydGllcy5hY3RpdmUpXG4gICAgKTtcbiAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5vbFxuICAgICAgLmdldFNvdXJjZSgpXG4gICAgICAuZ2V0RmVhdHVyZXMoKVxuICAgICAgLm1hcCgoZmVhdHVyZSkgPT4gZmVhdHVyZS5zZXQoJ2FjdGl2ZScsICFmZWF0dXJlLmdldCgnYWN0aXZlJykpKTtcbiAgfVxuXG4gIGZvcm1hdERpc3RhbmNlKGRpc3RhbmNlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtYXREaXN0YW5jZShkaXN0YW5jZSk7XG4gIH1cblxuICBmb3JtYXREdXJhdGlvbihkdXJhdGlvbjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZm9ybWF0RHVyYXRpb24oZHVyYXRpb24pO1xuICB9XG5cbiAgZm9ybWF0U3RlcChzdGVwLCBjbnQpIHtcbiAgICByZXR1cm4gZm9ybWF0SW5zdHJ1Y3Rpb24oXG4gICAgICBzdGVwLm1hbmV1dmVyLnR5cGUsXG4gICAgICBzdGVwLm1hbmV1dmVyLm1vZGlmaWVyLFxuICAgICAgc3RlcC5uYW1lLFxuICAgICAgc3RlcC5tYW5ldXZlci5iZWFyaW5nX2FmdGVyLFxuICAgICAgY250LFxuICAgICAgc3RlcC5tYW5ldXZlci5leGl0LFxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UsXG4gICAgICBjbnQgPT09IHRoaXMuYWN0aXZlRGlyZWN0aW9uLnN0ZXBzLmxlbmd0aCAtIDFcbiAgICApO1xuICB9XG5cbiAgb25TdGVwc0xpc3RCbHVyKCkge1xuICAgIHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5jbGVhcigpO1xuICB9XG5cbiAgc2hvd1NlZ21lbnQoc3RlcDogSWdvU3RlcCwgem9vbVRvRXh0ZW50ID0gZmFsc2UpIHtcbiAgICB0aGlzLnNob3dSb3V0ZVNlZ21lbnRHZW9tZXRyeShzdGVwLCB6b29tVG9FeHRlbnQpO1xuICB9XG5cbiAgc2hvd1JvdXRlU2VnbWVudEdlb21ldHJ5KHN0ZXA6IElnb1N0ZXAsIHpvb21Ub0V4dGVudCA9IGZhbHNlKSB7XG4gICAgY29uc3QgY29vcmRpbmF0ZXMgPSBzdGVwLmdlb21ldHJ5LmNvb3JkaW5hdGVzO1xuICAgIGNvbnN0IHZlcnRleElkID0gJ3ZlcnRleCc7XG4gICAgY29uc3QgZ2VvbWV0cnk0MzI2ID0gbmV3IG9sR2VvbS5MaW5lU3RyaW5nKGNvb3JkaW5hdGVzKTtcbiAgICBjb25zdCBnZW9tZXRyeU1hcFByb2plY3Rpb24gPSBnZW9tZXRyeTQzMjYudHJhbnNmb3JtKFxuICAgICAgJ0VQU0c6NDMyNicsXG4gICAgICB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb25cbiAgICApO1xuICAgIGNvbnN0IHJvdXRlU2VnbWVudENvb3JkaW5hdGVzID0gKFxuICAgICAgZ2VvbWV0cnlNYXBQcm9qZWN0aW9uIGFzIGFueVxuICAgICkuZ2V0Q29vcmRpbmF0ZXMoKTtcbiAgICBjb25zdCBsYXN0UG9pbnQgPSByb3V0ZVNlZ21lbnRDb29yZGluYXRlc1swXTtcblxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IG9sR2VvbS5Qb2ludChsYXN0UG9pbnQpO1xuICAgIGNvbnN0IGZlYXR1cmUgPSBuZXcgb2xGZWF0dXJlKHsgZ2VvbWV0cnkgfSk7XG5cbiAgICBjb25zdCBnZW9qc29uR2VvbSA9IG5ldyBPbEdlb0pTT04oKS53cml0ZUdlb21ldHJ5T2JqZWN0KGdlb21ldHJ5LCB7XG4gICAgICBmZWF0dXJlUHJvamVjdGlvbjogdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uLFxuICAgICAgZGF0YVByb2plY3Rpb246IHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5sYXllci5tYXAucHJvamVjdGlvblxuICAgIH0pIGFzIEZlYXR1cmVHZW9tZXRyeTtcblxuICAgIGNvbnN0IHByZXZpb3VzVmVydGV4ID0gdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmdldCh2ZXJ0ZXhJZCk7XG4gICAgY29uc3QgcHJldmlvdXNWZXJ0ZXhSZXZpc2lvbiA9IHByZXZpb3VzVmVydGV4XG4gICAgICA/IHByZXZpb3VzVmVydGV4Lm1ldGEucmV2aXNpb25cbiAgICAgIDogMDtcblxuICAgIGNvbnN0IHN0ZXBGZWF0dXJlOiBGZWF0dXJlV2l0aFN0ZXAgPSB7XG4gICAgICB0eXBlOiBGRUFUVVJFLFxuICAgICAgZ2VvbWV0cnk6IGdlb2pzb25HZW9tLFxuICAgICAgcHJvamVjdGlvbjogdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBpZDogdmVydGV4SWQsXG4gICAgICAgIHN0ZXAsXG4gICAgICAgIHR5cGU6IERpcmVjdGlvblR5cGUuVmVydGV4XG4gICAgICB9LFxuICAgICAgbWV0YToge1xuICAgICAgICBpZDogdmVydGV4SWQsXG4gICAgICAgIHJldmlzaW9uOiBwcmV2aW91c1ZlcnRleFJldmlzaW9uICsgMVxuICAgICAgfSxcbiAgICAgIG9sOiBmZWF0dXJlXG4gICAgfTtcbiAgICB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUudXBkYXRlKHN0ZXBGZWF0dXJlKTtcbiAgICBpZiAoem9vbVRvRXh0ZW50KSB7XG4gICAgICB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnpvb21Ub0V4dGVudChcbiAgICAgICAgZmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldEV4dGVudCgpIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIiAqbmdJZj1cImRpcmVjdGlvbnMgJiYgYWN0aXZlRGlyZWN0aW9uXCI+XG4gIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImRpcmVjdGlvbnMgJiYgZGlyZWN0aW9ucy5sZW5ndGggPiAxXCI+XG4gICAgPG1hdC1sYWJlbD57e1xuICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZHJpdmluZ09wdGlvbnMnIHwgdHJhbnNsYXRlXG4gICAgfX08L21hdC1sYWJlbD5cbiAgICA8bWF0LXNlbGVjdFxuICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5kcml2aW5nT3B0aW9ucycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VSb3V0ZSgpXCJcbiAgICAgIFsobmdNb2RlbCldPVwiYWN0aXZlRGlyZWN0aW9uXCJcbiAgICA+XG4gICAgICA8bWF0LW9wdGlvblxuICAgICAgICAqbmdGb3I9XCJsZXQgZGlyZWN0aW9uIG9mIGRpcmVjdGlvbnM7IGxldCBjbnQgPSBpbmRleFwiXG4gICAgICAgIFt2YWx1ZV09XCJkaXJlY3Rpb25cIlxuICAgICAgPlxuICAgICAgICBPcHRpb24ge3sgY250ICsgMSB9fSA6IHt7IGZvcm1hdERpc3RhbmNlKGRpcmVjdGlvbi5kaXN0YW5jZSkgfX0gKHt7XG4gICAgICAgICAgZm9ybWF0RHVyYXRpb24oZGlyZWN0aW9uLmR1cmF0aW9uKVxuICAgICAgICB9fSlcbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICA8L21hdC1zZWxlY3Q+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPG1hdC1kaXZpZGVyICpuZ0lmPVwiZGlyZWN0aW9ucyAmJiBkaXJlY3Rpb25zLmxlbmd0aCA9PT0gMFwiPjwvbWF0LWRpdmlkZXI+XG5cbiAgPG1hdC1saXN0IChtb3VzZWxlYXZlKT1cIm9uU3RlcHNMaXN0Qmx1cigpXCI+XG4gICAgPGgyIG1hdC1oZWFkZXIgY2xhc3M9XCJpZ28tcm91dGUtdGl0bGVcIj57eyBhY3RpdmVEaXJlY3Rpb24udGl0bGUgfX08L2gyPlxuICAgIDxzcGFuIGNsYXNzPVwibWF0LWNhcHRpb25cIj5cbiAgICAgIHt7IGZvcm1hdERpc3RhbmNlKGFjdGl2ZURpcmVjdGlvbi5kaXN0YW5jZSkgfX0sXG4gICAgICB7eyBmb3JtYXREdXJhdGlvbihhY3RpdmVEaXJlY3Rpb24uZHVyYXRpb24pIH19XG4gICAgPC9zcGFuPlxuICAgIDxtYXQtbGlzdC1pdGVtXG4gICAgICBjbGFzcz1cImlnby1zdGVwc1wiXG4gICAgICAobW91c2VlbnRlcik9XCJzaG93U2VnbWVudChzdGVwKVwiXG4gICAgICAoY2xpY2spPVwic2hvd1NlZ21lbnQoc3RlcCwgdHJ1ZSlcIlxuICAgICAgKm5nRm9yPVwibGV0IHN0ZXAgb2YgYWN0aXZlRGlyZWN0aW9uLnN0ZXBzOyBsZXQgY250ID0gaW5kZXhcIlxuICAgICAgaWdvTGlzdEl0ZW1cbiAgICA+XG4gICAgICA8bWF0LWljb25cbiAgICAgICAgW25nQ2xhc3NdPVwiZm9ybWF0U3RlcChzdGVwLCBjbnQpLmNzc0NsYXNzXCJcbiAgICAgICAgbWF0TGlzdEl0ZW1JY29uXG4gICAgICAgIHN2Z0ljb249XCJ7eyBmb3JtYXRTdGVwKHN0ZXAsIGNudCkuaW1hZ2UgfX1cIlxuICAgICAgPlxuICAgICAgPC9tYXQtaWNvbj5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJpZ28tc3RlcC10ZXh0XCI+XG4gICAgICAgIHt7IGNudCArIDEgfX0uIHt7IGZvcm1hdFN0ZXAoc3RlcCwgY250KS5pbnN0cnVjdGlvbiB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gbWF0TGlzdEl0ZW1NZXRhPlxuICAgICAgICB7eyBmb3JtYXREaXN0YW5jZShzdGVwLmRpc3RhbmNlKSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvbWF0LWxpc3QtaXRlbT5cblxuICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICA8L21hdC1saXN0PlxuPC9kaXY+XG4iXX0=
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1yZXN1bHRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy1yZXN1bHRzL2RpcmVjdGlvbnMtcmVzdWx0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtcmVzdWx0cy9kaXJlY3Rpb25zLXJlc3VsdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLFNBQVMsTUFBTSxtQkFBbUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLFNBQVMsQ0FBQztBQUVsQyxPQUFPLEVB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QUFJLDRGQUNKLGtCQUFrQiwwU0FDbEIsZUFBZSxtckJBQ2YsV0FBVywrVkFDWCxLQUFLLGtIQUNMLGVBQWUsOEJBQ2YsZ0JBQWdCLGtJQUNoQixhQUFhLHViQUNiLGFBQWEsb0xBQ2IsT0FBTyxtRkFDUCxlQUFlOzsyRkFHTiwwQkFBMEI7a0JBbkJ0QyxTQUFTOytCQUNFLHdCQUF3QixjQUd0QixJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxLQUFLO3dCQUNMLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsT0FBTzt3QkFDUCxlQUFlO3FCQUNoQjtvSEFRUSxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcblxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5cbmltcG9ydCBvbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XG5pbXBvcnQgT2xHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcbmltcG9ydCAqIGFzIG9sR2VvbSBmcm9tICdvbC9nZW9tJztcblxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRkVBVFVSRSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuZW51bXMnO1xuaW1wb3J0IHsgRmVhdHVyZUdlb21ldHJ5IH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IERpcmVjdGlvblR5cGUgfSBmcm9tICcuLi9zaGFyZWQvZGlyZWN0aW9ucy5lbnVtJztcbmltcG9ydCB7XG4gIERpcmVjdGlvbixcbiAgRmVhdHVyZVdpdGhTdGVwLFxuICBJZ29TdGVwXG59IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBmb3JtYXREaXN0YW5jZSxcbiAgZm9ybWF0RHVyYXRpb24sXG4gIGZvcm1hdEluc3RydWN0aW9uXG59IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLnV0aWxzJztcbmltcG9ydCB7IFJvdXRlc0ZlYXR1cmVTdG9yZSwgU3RlcEZlYXR1cmVTdG9yZSB9IGZyb20gJy4uL3NoYXJlZC9zdG9yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1kaXJlY3Rpb25zLXJlc3VsdHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGlyZWN0aW9ucy1yZXN1bHRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGlyZWN0aW9ucy1yZXN1bHRzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTmdGb3IsXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE5nQ2xhc3MsXG4gICAgVHJhbnNsYXRlTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGlyZWN0aW9uc1Jlc3VsdHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBhY3RpdmVEaXJlY3Rpb246IERpcmVjdGlvbjtcbiAgcHVibGljIGRpcmVjdGlvbnM6IERpcmVjdGlvbltdO1xuXG4gIHByaXZhdGUgZW50aXRpZXMkJDogU3Vic2NyaXB0aW9uO1xuXG4gIEBJbnB1dCgpIHJvdXRlc0ZlYXR1cmVTdG9yZTogUm91dGVzRmVhdHVyZVN0b3JlO1xuICBASW5wdXQoKSBzdGVwRmVhdHVyZVN0b3JlOiBTdGVwRmVhdHVyZVN0b3JlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZW50aXRpZXMkJCA9IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmVudGl0aWVzJFxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpXG4gICAgICAuc3Vic2NyaWJlKChlbnRpdGllcykgPT4ge1xuICAgICAgICBjb25zdCBhY3RpdmVGZWF0dXJlV2l0aERpcmVjdGlvbiA9IGVudGl0aWVzLmZpbmQoXG4gICAgICAgICAgKGVudGl0eSkgPT4gZW50aXR5LnByb3BlcnRpZXMuYWN0aXZlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGlyZWN0aW9ucyA9IGVudGl0aWVzLm1hcCgoZW50aXR5KSA9PiBlbnRpdHkucHJvcGVydGllcy5kaXJlY3Rpb24pO1xuICAgICAgICBpZiAoYWN0aXZlRmVhdHVyZVdpdGhEaXJlY3Rpb24pIHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZURpcmVjdGlvbiA9XG4gICAgICAgICAgICBhY3RpdmVGZWF0dXJlV2l0aERpcmVjdGlvbi5wcm9wZXJ0aWVzLmRpcmVjdGlvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZURpcmVjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5lbnRpdGllcyQkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBjaGFuZ2VSb3V0ZSgpIHtcbiAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5lbnRpdGllcyQudmFsdWUubWFwKFxuICAgICAgKGVudGl0eSkgPT4gKGVudGl0eS5wcm9wZXJ0aWVzLmFjdGl2ZSA9ICFlbnRpdHkucHJvcGVydGllcy5hY3RpdmUpXG4gICAgKTtcbiAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5vbFxuICAgICAgLmdldFNvdXJjZSgpXG4gICAgICAuZ2V0RmVhdHVyZXMoKVxuICAgICAgLm1hcCgoZmVhdHVyZSkgPT4gZmVhdHVyZS5zZXQoJ2FjdGl2ZScsICFmZWF0dXJlLmdldCgnYWN0aXZlJykpKTtcbiAgfVxuXG4gIGZvcm1hdERpc3RhbmNlKGRpc3RhbmNlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtYXREaXN0YW5jZShkaXN0YW5jZSk7XG4gIH1cblxuICBmb3JtYXREdXJhdGlvbihkdXJhdGlvbjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZm9ybWF0RHVyYXRpb24oZHVyYXRpb24pO1xuICB9XG5cbiAgZm9ybWF0U3RlcChzdGVwLCBjbnQpIHtcbiAgICByZXR1cm4gZm9ybWF0SW5zdHJ1Y3Rpb24oXG4gICAgICBzdGVwLm1hbmV1dmVyLnR5cGUsXG4gICAgICBzdGVwLm1hbmV1dmVyLm1vZGlmaWVyLFxuICAgICAgc3RlcC5uYW1lLFxuICAgICAgc3RlcC5tYW5ldXZlci5iZWFyaW5nX2FmdGVyLFxuICAgICAgY250LFxuICAgICAgc3RlcC5tYW5ldXZlci5leGl0LFxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UsXG4gICAgICBjbnQgPT09IHRoaXMuYWN0aXZlRGlyZWN0aW9uLnN0ZXBzLmxlbmd0aCAtIDFcbiAgICApO1xuICB9XG5cbiAgb25TdGVwc0xpc3RCbHVyKCkge1xuICAgIHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5jbGVhcigpO1xuICB9XG5cbiAgc2hvd1NlZ21lbnQoc3RlcDogSWdvU3RlcCwgem9vbVRvRXh0ZW50ID0gZmFsc2UpIHtcbiAgICB0aGlzLnNob3dSb3V0ZVNlZ21lbnRHZW9tZXRyeShzdGVwLCB6b29tVG9FeHRlbnQpO1xuICB9XG5cbiAgc2hvd1JvdXRlU2VnbWVudEdlb21ldHJ5KHN0ZXA6IElnb1N0ZXAsIHpvb21Ub0V4dGVudCA9IGZhbHNlKSB7XG4gICAgY29uc3QgY29vcmRpbmF0ZXMgPSBzdGVwLmdlb21ldHJ5LmNvb3JkaW5hdGVzO1xuICAgIGNvbnN0IHZlcnRleElkID0gJ3ZlcnRleCc7XG4gICAgY29uc3QgZ2VvbWV0cnk0MzI2ID0gbmV3IG9sR2VvbS5MaW5lU3RyaW5nKGNvb3JkaW5hdGVzKTtcbiAgICBjb25zdCBnZW9tZXRyeU1hcFByb2plY3Rpb24gPSBnZW9tZXRyeTQzMjYudHJhbnNmb3JtKFxuICAgICAgJ0VQU0c6NDMyNicsXG4gICAgICB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb25cbiAgICApO1xuICAgIGNvbnN0IHJvdXRlU2VnbWVudENvb3JkaW5hdGVzID0gKFxuICAgICAgZ2VvbWV0cnlNYXBQcm9qZWN0aW9uIGFzIGFueVxuICAgICkuZ2V0Q29vcmRpbmF0ZXMoKTtcbiAgICBjb25zdCBsYXN0UG9pbnQgPSByb3V0ZVNlZ21lbnRDb29yZGluYXRlc1swXTtcblxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IG9sR2VvbS5Qb2ludChsYXN0UG9pbnQpO1xuICAgIGNvbnN0IGZlYXR1cmUgPSBuZXcgb2xGZWF0dXJlKHsgZ2VvbWV0cnkgfSk7XG5cbiAgICBjb25zdCBnZW9qc29uR2VvbSA9IG5ldyBPbEdlb0pTT04oKS53cml0ZUdlb21ldHJ5T2JqZWN0KGdlb21ldHJ5LCB7XG4gICAgICBmZWF0dXJlUHJvamVjdGlvbjogdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uLFxuICAgICAgZGF0YVByb2plY3Rpb246IHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5sYXllci5tYXAucHJvamVjdGlvblxuICAgIH0pIGFzIEZlYXR1cmVHZW9tZXRyeTtcblxuICAgIGNvbnN0IHByZXZpb3VzVmVydGV4ID0gdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmdldCh2ZXJ0ZXhJZCk7XG4gICAgY29uc3QgcHJldmlvdXNWZXJ0ZXhSZXZpc2lvbiA9IHByZXZpb3VzVmVydGV4XG4gICAgICA/IHByZXZpb3VzVmVydGV4Lm1ldGEucmV2aXNpb25cbiAgICAgIDogMDtcblxuICAgIGNvbnN0IHN0ZXBGZWF0dXJlOiBGZWF0dXJlV2l0aFN0ZXAgPSB7XG4gICAgICB0eXBlOiBGRUFUVVJFLFxuICAgICAgZ2VvbWV0cnk6IGdlb2pzb25HZW9tLFxuICAgICAgcHJvamVjdGlvbjogdGhpcy5zdGVwRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBpZDogdmVydGV4SWQsXG4gICAgICAgIHN0ZXAsXG4gICAgICAgIHR5cGU6IERpcmVjdGlvblR5cGUuVmVydGV4XG4gICAgICB9LFxuICAgICAgbWV0YToge1xuICAgICAgICBpZDogdmVydGV4SWQsXG4gICAgICAgIHJldmlzaW9uOiBwcmV2aW91c1ZlcnRleFJldmlzaW9uICsgMVxuICAgICAgfSxcbiAgICAgIG9sOiBmZWF0dXJlXG4gICAgfTtcbiAgICB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUudXBkYXRlKHN0ZXBGZWF0dXJlKTtcbiAgICBpZiAoem9vbVRvRXh0ZW50KSB7XG4gICAgICB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnpvb21Ub0V4dGVudChcbiAgICAgICAgZmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldEV4dGVudCgpIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIiAqbmdJZj1cImRpcmVjdGlvbnMgJiYgYWN0aXZlRGlyZWN0aW9uXCI+XG4gIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImRpcmVjdGlvbnMgJiYgZGlyZWN0aW9ucy5sZW5ndGggPiAxXCI+XG4gICAgPG1hdC1sYWJlbD57e1xuICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZHJpdmluZ09wdGlvbnMnIHwgdHJhbnNsYXRlXG4gICAgfX08L21hdC1sYWJlbD5cbiAgICA8bWF0LXNlbGVjdFxuICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5kcml2aW5nT3B0aW9ucycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VSb3V0ZSgpXCJcbiAgICAgIFsobmdNb2RlbCldPVwiYWN0aXZlRGlyZWN0aW9uXCJcbiAgICA+XG4gICAgICA8bWF0LW9wdGlvblxuICAgICAgICAqbmdGb3I9XCJsZXQgZGlyZWN0aW9uIG9mIGRpcmVjdGlvbnM7IGxldCBjbnQgPSBpbmRleFwiXG4gICAgICAgIFt2YWx1ZV09XCJkaXJlY3Rpb25cIlxuICAgICAgPlxuICAgICAgICBPcHRpb24ge3sgY250ICsgMSB9fSA6IHt7IGZvcm1hdERpc3RhbmNlKGRpcmVjdGlvbi5kaXN0YW5jZSkgfX0gKHt7XG4gICAgICAgICAgZm9ybWF0RHVyYXRpb24oZGlyZWN0aW9uLmR1cmF0aW9uKVxuICAgICAgICB9fSlcbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICA8L21hdC1zZWxlY3Q+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPG1hdC1kaXZpZGVyICpuZ0lmPVwiZGlyZWN0aW9ucyAmJiBkaXJlY3Rpb25zLmxlbmd0aCA9PT0gMFwiPjwvbWF0LWRpdmlkZXI+XG5cbiAgPG1hdC1saXN0IChtb3VzZWxlYXZlKT1cIm9uU3RlcHNMaXN0Qmx1cigpXCI+XG4gICAgPGgyIG1hdC1oZWFkZXIgY2xhc3M9XCJpZ28tcm91dGUtdGl0bGVcIj57eyBhY3RpdmVEaXJlY3Rpb24udGl0bGUgfX08L2gyPlxuICAgIDxzcGFuIGNsYXNzPVwibWF0LWNhcHRpb25cIj5cbiAgICAgIHt7IGZvcm1hdERpc3RhbmNlKGFjdGl2ZURpcmVjdGlvbi5kaXN0YW5jZSkgfX0sXG4gICAgICB7eyBmb3JtYXREdXJhdGlvbihhY3RpdmVEaXJlY3Rpb24uZHVyYXRpb24pIH19XG4gICAgPC9zcGFuPlxuICAgIDxtYXQtbGlzdC1pdGVtXG4gICAgICBjbGFzcz1cImlnby1zdGVwc1wiXG4gICAgICAobW91c2VlbnRlcik9XCJzaG93U2VnbWVudChzdGVwKVwiXG4gICAgICAoY2xpY2spPVwic2hvd1NlZ21lbnQoc3RlcCwgdHJ1ZSlcIlxuICAgICAgKm5nRm9yPVwibGV0IHN0ZXAgb2YgYWN0aXZlRGlyZWN0aW9uLnN0ZXBzOyBsZXQgY250ID0gaW5kZXhcIlxuICAgICAgaWdvTGlzdEl0ZW1cbiAgICA+XG4gICAgICA8bWF0LWljb24gW25nQ2xhc3NdPVwiZm9ybWF0U3RlcChzdGVwLCBjbnQpLmNzc0NsYXNzXCIgbWF0TGlzdEl0ZW1JY29uXG4gICAgICAgID57eyBmb3JtYXRTdGVwKHN0ZXAsIGNudCkuaW1hZ2UgfX1cbiAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaWdvLXN0ZXAtdGV4dFwiPlxuICAgICAgICB7eyBjbnQgKyAxIH19LiB7eyBmb3JtYXRTdGVwKHN0ZXAsIGNudCkuaW5zdHJ1Y3Rpb24gfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIG1hdExpc3RJdGVtTWV0YT5cbiAgICAgICAge3sgZm9ybWF0RGlzdGFuY2Uoc3RlcC5kaXN0YW5jZSkgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L21hdC1saXN0LWl0ZW0+XG5cbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgPC9tYXQtbGlzdD5cbjwvZGl2PlxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VvSnNvbkdlb21ldHJ5VHlwZXMgfSBmcm9tICdnZW9qc29uJztcblxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTZWFyY2hTb3VyY2UgfSBmcm9tICcuLi8uLi9zZWFyY2gvc2hhcmVkL3NvdXJjZXMvc291cmNlJztcbmltcG9ydCB7XG4gIERpcmVjdGlvblJlbGF0aXZlUG9zaXRpb25UeXBlLFxuICBEaXJlY3Rpb25UeXBlLFxuICBEaXJlY3Rpb25zRm9ybWF0LFxuICBQcm9wb3NhbFR5cGUsXG4gIFNvdXJjZURpcmVjdGlvbnNUeXBlXG59IGZyb20gJy4vZGlyZWN0aW9ucy5lbnVtJztcblxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3Rpb25PcHRpb25zIHtcbiAgb3ZlcnZpZXc/OiBib29sZWFuO1xuICBzdGVwcz86IGJvb2xlYW47XG4gIGdlb21ldHJpZXM/OiBzdHJpbmc7XG4gIGFsdGVybmF0aXZlcz86IGJvb2xlYW47XG4gIGNvbnRpbnVlX3N0cmFpZ2h0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlV2l0aFN0b3AgZXh0ZW5kcyBGZWF0dXJlPEZlYXR1cmVXaXRoU3RvcFByb3BlcnRpZXM+IHt9XG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVXaXRoRGlyZWN0aW9uXG4gIGV4dGVuZHMgRmVhdHVyZTxGZWF0dXJlV2l0aERpcmVjdGlvblByb3BlcnRpZXM+IHt9XG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVXaXRoU3RlcCBleHRlbmRzIEZlYXR1cmU8RmVhdHVyZVdpdGhTdGVwUHJvcGVydGllcz4ge31cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlV2l0aFN0ZXBQcm9wZXJ0aWVzIHtcbiAgaWQ6IHN0cmluZztcbiAgc3RlcDogSWdvU3RlcDtcbiAgdHlwZTogRGlyZWN0aW9uVHlwZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZVdpdGhEaXJlY3Rpb25Qcm9wZXJ0aWVzIHtcbiAgaWQ6IHN0cmluZztcbiAgZGlyZWN0aW9uOiBEaXJlY3Rpb247XG4gIHR5cGU6IERpcmVjdGlvblR5cGU7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZVdpdGhTdG9wUHJvcGVydGllcyB7XG4gIGlkOiBzdHJpbmc7XG4gIHN0b3A6IFN0b3A7XG4gIHR5cGU6IERpcmVjdGlvblR5cGU7XG4gIHN0b3BUZXh0OiBzdHJpbmc7XG4gIHN0b3BDb2xvcjogc3RyaW5nO1xuICBzdG9wT3BhY2l0eTogMTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdG9wIHtcbiAgaWQ6IHN0cmluZztcbiAgdGV4dD86IHN0cmluZztcbiAgc2VhcmNoUHJvcG9zYWxzPzogU291cmNlUHJvcG9zYWxbXTtcbiAgY29vcmRpbmF0ZXM/OiBbbnVtYmVyLCBudW1iZXJdO1xuICBwb3NpdGlvbjogbnVtYmVyO1xuICByZWxhdGl2ZVBvc2l0aW9uOiBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZTtcbiAgc3RvcFBvaW50Pzogc3RyaW5nO1xuICBzdG9wUHJvcG9zYWxzPzogW107XG4gIGRpcmVjdGlvbnNUZXh0Pzogc3RyaW5nO1xuICBzdG9wQ29vcmRpbmF0ZXM/OiBbbnVtYmVyLCBudW1iZXJdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZVByb3Bvc2FsIHtcbiAgdHlwZTogUHJvcG9zYWxUeXBlO1xuICBzb3VyY2U6IFNlYXJjaFNvdXJjZTtcbiAgcmVzdWx0czogeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdO1xuICBtZXRhOiB7XG4gICAgZGF0YVR5cGU6IHN0cmluZztcbiAgICBpZDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgdGl0bGVIdG1sPzogc3RyaW5nO1xuICAgIGljb246IHN0cmluZztcbiAgICBzY29yZT86IG51bWJlcjtcbiAgICBuZXh0UGFnZT86IGJvb2xlYW47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgc291cmNlOiBzdHJpbmc7XG4gIHNvdXJjZVR5cGU/OiBTb3VyY2VEaXJlY3Rpb25zVHlwZTtcbiAgb3JkZXI/OiBudW1iZXI7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBmb3JtYXQ/OiBEaXJlY3Rpb25zRm9ybWF0O1xuICBpY29uPzogc3RyaW5nO1xuICBwcm9qZWN0aW9uPzogc3RyaW5nO1xuICB3YXlwb2ludHM/OiBhbnk7XG4gIGRpc3RhbmNlPzogbnVtYmVyO1xuICBkdXJhdGlvbj86IG51bWJlcjtcbiAgZ2VvbWV0cnk/OiBEaXJlY3Rpb25zR2VvbWV0cnk7XG4gIGxlZ3M/OiBPc3JtTGVnW107XG4gIHN0ZXBzPzogSWdvU3RlcFtdO1xuICB3ZWlnaHQ/OiBudW1iZXI7XG4gIHdlaWdodF9uYW1lPzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3Rpb25zR2VvbWV0cnkge1xuICB0eXBlOiBHZW9Kc29uR2VvbWV0cnlUeXBlcztcbiAgY29vcmRpbmF0ZXM6IFthbnldO1xufVxuZXhwb3J0IGludGVyZmFjZSBPc3JtTGVnIHtcbiAgZGlzdGFuY2U/OiBudW1iZXI7XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuICBzdGVwcz86IE9zcm1TdGVwW107XG4gIHN1bW1hcnk6IHN0cmluZztcbiAgd2VpZ2h0PzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBJZ29TdGVwIHtcbiAgLy8gUkVGRVIgVE8gVEhJUyBJTlRFUkZBQ0UgRk9SIFZBUklPVVMgU09VUkNFXG4gIGRpc3RhbmNlPzogbnVtYmVyO1xuICBkcml2aW5nX3NpZGU/OiBzdHJpbmc7XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuICBnZW9tZXRyeT86IERpcmVjdGlvbnNHZW9tZXRyeTtcbiAgaW50ZXJzZWN0aW9ucz86IE9zcm1JbnRlcnNlY3Rpb25bXTtcbiAgbWFuZXV2ZXI/OiBPc3JtTWFuZXV2ZXI7XG4gIG1vZGU/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIE9zcm1TdGVwIHtcbiAgZGlzdGFuY2U/OiBudW1iZXI7XG4gIGRyaXZpbmdfc2lkZT86IHN0cmluZztcbiAgZHVyYXRpb24/OiBudW1iZXI7XG4gIGdlb21ldHJ5PzogRGlyZWN0aW9uc0dlb21ldHJ5O1xuICBpbnRlcnNlY3Rpb25zPzogT3NybUludGVyc2VjdGlvbltdO1xuICBtYW5ldXZlcj86IE9zcm1NYW5ldXZlcjtcbiAgbW9kZT86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgT3NybUludGVyc2VjdGlvbiB7XG4gIGJlYXJpbmc/OiBbYW55XTtcbiAgZW50cnk/OiBbYm9vbGVhbl07XG4gIGxvY2F0aW9uPzogW251bWJlciwgbnVtYmVyXTtcbiAgb3V0PzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBPc3JtTWFuZXV2ZXIge1xuICBiZWFyaW5nX2FmdGVyPzogbnVtYmVyO1xuICBiZWFyaW5nX2JlZm9yZT86IG51bWJlcjtcbiAgbG9jYXRpb24/OiBbbnVtYmVyLCBudW1iZXJdO1xuICBtb2RpZmllcj86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VvSnNvbkdlb21ldHJ5VHlwZXMgfSBmcm9tICdnZW9qc29uJztcblxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTZWFyY2hNZXRhIH0gZnJvbSAnLi4vLi4vc2VhcmNoJztcbmltcG9ydCB7IFNlYXJjaFNvdXJjZSB9IGZyb20gJy4uLy4uL3NlYXJjaC9zaGFyZWQvc291cmNlcy9zb3VyY2UnO1xuaW1wb3J0IHtcbiAgRGlyZWN0aW9uUmVsYXRpdmVQb3NpdGlvblR5cGUsXG4gIERpcmVjdGlvblR5cGUsXG4gIERpcmVjdGlvbnNGb3JtYXQsXG4gIFByb3Bvc2FsVHlwZSxcbiAgU291cmNlRGlyZWN0aW9uc1R5cGVcbn0gZnJvbSAnLi9kaXJlY3Rpb25zLmVudW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdGlvbk9wdGlvbnMge1xuICBvdmVydmlldz86IGJvb2xlYW47XG4gIHN0ZXBzPzogYm9vbGVhbjtcbiAgZ2VvbWV0cmllcz86IHN0cmluZztcbiAgYWx0ZXJuYXRpdmVzPzogYm9vbGVhbjtcbiAgY29udGludWVfc3RyYWlnaHQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVXaXRoU3RvcCBleHRlbmRzIEZlYXR1cmU8RmVhdHVyZVdpdGhTdG9wUHJvcGVydGllcz4ge31cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZVdpdGhEaXJlY3Rpb25cbiAgZXh0ZW5kcyBGZWF0dXJlPEZlYXR1cmVXaXRoRGlyZWN0aW9uUHJvcGVydGllcz4ge31cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZVdpdGhTdGVwIGV4dGVuZHMgRmVhdHVyZTxGZWF0dXJlV2l0aFN0ZXBQcm9wZXJ0aWVzPiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVXaXRoU3RlcFByb3BlcnRpZXMge1xuICBpZDogc3RyaW5nO1xuICBzdGVwOiBJZ29TdGVwO1xuICB0eXBlOiBEaXJlY3Rpb25UeXBlO1xufVxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlV2l0aERpcmVjdGlvblByb3BlcnRpZXMge1xuICBpZDogc3RyaW5nO1xuICBkaXJlY3Rpb246IERpcmVjdGlvbjtcbiAgdHlwZTogRGlyZWN0aW9uVHlwZTtcbiAgYWN0aXZlOiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlV2l0aFN0b3BQcm9wZXJ0aWVzIHtcbiAgaWQ6IHN0cmluZztcbiAgc3RvcDogU3RvcDtcbiAgdHlwZTogRGlyZWN0aW9uVHlwZTtcbiAgc3RvcFRleHQ6IHN0cmluZztcbiAgc3RvcENvbG9yOiBzdHJpbmc7XG4gIHN0b3BPcGFjaXR5OiAxO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0b3Age1xuICBpZDogc3RyaW5nO1xuICB0ZXh0Pzogc3RyaW5nO1xuICBzZWFyY2hQcm9wb3NhbHM/OiBTb3VyY2VQcm9wb3NhbFtdO1xuICBjb29yZGluYXRlcz86IFtudW1iZXIsIG51bWJlcl07XG4gIHBvc2l0aW9uOiBudW1iZXI7XG4gIHJlbGF0aXZlUG9zaXRpb246IERpcmVjdGlvblJlbGF0aXZlUG9zaXRpb25UeXBlO1xuICBzdG9wUG9pbnQ/OiBzdHJpbmc7XG4gIHN0b3BQcm9wb3NhbHM/OiBbXTtcbiAgZGlyZWN0aW9uc1RleHQ/OiBzdHJpbmc7XG4gIHN0b3BDb29yZGluYXRlcz86IFtudW1iZXIsIG51bWJlcl07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlUHJvcG9zYWwge1xuICB0eXBlOiBQcm9wb3NhbFR5cGU7XG4gIHNvdXJjZTogU2VhcmNoU291cmNlO1xuICByZXN1bHRzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9W107XG4gIG1ldGE6IFNlYXJjaE1ldGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgc291cmNlOiBzdHJpbmc7XG4gIHNvdXJjZVR5cGU/OiBTb3VyY2VEaXJlY3Rpb25zVHlwZTtcbiAgb3JkZXI/OiBudW1iZXI7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBmb3JtYXQ/OiBEaXJlY3Rpb25zRm9ybWF0O1xuICBpY29uPzogc3RyaW5nO1xuICBwcm9qZWN0aW9uPzogc3RyaW5nO1xuICB3YXlwb2ludHM/OiBhbnk7XG4gIGRpc3RhbmNlPzogbnVtYmVyO1xuICBkdXJhdGlvbj86IG51bWJlcjtcbiAgZ2VvbWV0cnk/OiBEaXJlY3Rpb25zR2VvbWV0cnk7XG4gIGxlZ3M/OiBPc3JtTGVnW107XG4gIHN0ZXBzPzogSWdvU3RlcFtdO1xuICB3ZWlnaHQ/OiBudW1iZXI7XG4gIHdlaWdodF9uYW1lPzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3Rpb25zR2VvbWV0cnkge1xuICB0eXBlOiBHZW9Kc29uR2VvbWV0cnlUeXBlcztcbiAgY29vcmRpbmF0ZXM6IFthbnldO1xufVxuZXhwb3J0IGludGVyZmFjZSBPc3JtTGVnIHtcbiAgZGlzdGFuY2U/OiBudW1iZXI7XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuICBzdGVwcz86IE9zcm1TdGVwW107XG4gIHN1bW1hcnk6IHN0cmluZztcbiAgd2VpZ2h0PzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBJZ29TdGVwIHtcbiAgLy8gUkVGRVIgVE8gVEhJUyBJTlRFUkZBQ0UgRk9SIFZBUklPVVMgU09VUkNFXG4gIGRpc3RhbmNlPzogbnVtYmVyO1xuICBkcml2aW5nX3NpZGU/OiBzdHJpbmc7XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuICBnZW9tZXRyeT86IERpcmVjdGlvbnNHZW9tZXRyeTtcbiAgaW50ZXJzZWN0aW9ucz86IE9zcm1JbnRlcnNlY3Rpb25bXTtcbiAgbWFuZXV2ZXI/OiBPc3JtTWFuZXV2ZXI7XG4gIG1vZGU/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIE9zcm1TdGVwIHtcbiAgZGlzdGFuY2U/OiBudW1iZXI7XG4gIGRyaXZpbmdfc2lkZT86IHN0cmluZztcbiAgZHVyYXRpb24/OiBudW1iZXI7XG4gIGdlb21ldHJ5PzogRGlyZWN0aW9uc0dlb21ldHJ5O1xuICBpbnRlcnNlY3Rpb25zPzogT3NybUludGVyc2VjdGlvbltdO1xuICBtYW5ldXZlcj86IE9zcm1NYW5ldXZlcjtcbiAgbW9kZT86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgT3NybUludGVyc2VjdGlvbiB7XG4gIGJlYXJpbmc/OiBbYW55XTtcbiAgZW50cnk/OiBbYm9vbGVhbl07XG4gIGxvY2F0aW9uPzogW251bWJlciwgbnVtYmVyXTtcbiAgb3V0PzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBPc3JtTWFuZXV2ZXIge1xuICBiZWFyaW5nX2FmdGVyPzogbnVtYmVyO1xuICBiZWFyaW5nX2JlZm9yZT86IG51bWJlcjtcbiAgbG9jYXRpb24/OiBbbnVtYmVyLCBudW1iZXJdO1xuICBtb2RpZmllcj86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbn1cbiJdfQ==