@igo2/geo 16.0.0-rc.2 → 16.0.0-rc.3

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 (117) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +2 -2
  2. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +2 -2
  3. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +2 -2
  4. package/esm2022/lib/datasource/shared/datasources/data.service.mjs +1 -1
  5. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
  6. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +1 -1
  7. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +1 -1
  8. package/esm2022/lib/datasource/shared/options/options.service.mjs +1 -1
  9. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +2 -2
  10. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +2 -2
  11. package/esm2022/lib/directions/directions-sources/directions-source.mjs +1 -1
  12. package/esm2022/lib/download/download-button/download-button.component.mjs +2 -2
  13. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +2 -2
  14. package/esm2022/lib/draw/draw/draw-popup.component.mjs +2 -2
  15. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +2 -2
  16. package/esm2022/lib/draw/shared/draw.enum.mjs +1 -1
  17. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +2 -2
  18. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +2 -2
  19. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +2 -2
  20. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +2 -2
  21. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +2 -2
  22. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +2 -2
  23. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +3 -3
  24. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +2 -2
  25. package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +1 -1
  26. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +1 -1
  27. package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +1 -1
  28. package/esm2022/lib/filter/shared/time-filter.enum.mjs +1 -1
  29. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +2 -2
  30. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +2 -2
  31. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +2 -2
  32. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +2 -2
  33. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +2 -2
  34. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +2 -2
  35. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +2 -2
  36. package/esm2022/lib/geometry/shared/geometry.errors.mjs +1 -1
  37. package/esm2022/lib/import-export/export-button/export-button.component.mjs +2 -2
  38. package/esm2022/lib/import-export/import-export/import-export.component.mjs +2 -2
  39. package/esm2022/lib/import-export/shared/export.type.mjs +1 -1
  40. package/esm2022/lib/import-export/shared/import.errors.mjs +1 -1
  41. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +2 -2
  42. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +2 -2
  43. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +2 -2
  44. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +2 -2
  45. package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +1 -1
  46. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +1 -1
  47. package/esm2022/lib/layer/shared/clusterParam.mjs +1 -1
  48. package/esm2022/lib/layer/shared/layers/legend.interface.mjs +1 -1
  49. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +2 -2
  50. package/esm2022/lib/layer/utils/layer.utils.mjs +1 -1
  51. package/esm2022/lib/layer/utils/outputLegend.mjs +1 -1
  52. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +2 -2
  53. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +2 -2
  54. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +2 -2
  55. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +5 -5
  56. package/esm2022/lib/map/index.mjs +1 -1
  57. package/esm2022/lib/map/info-section/info-section.component.mjs +2 -2
  58. package/esm2022/lib/map/map-center/map-center.component.mjs +2 -2
  59. package/esm2022/lib/map/menu-button/menu-button.component.mjs +2 -2
  60. package/esm2022/lib/map/offline-button/offline-button.component.mjs +2 -2
  61. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +2 -2
  62. package/esm2022/lib/map/shared/map.interface.mjs +1 -1
  63. package/esm2022/lib/map/shared/projection.utils.mjs +1 -1
  64. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +2 -2
  65. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +2 -2
  66. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +2 -2
  67. package/esm2022/lib/measure/measure.module.mjs +1 -1
  68. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +2 -2
  69. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +2 -2
  70. package/esm2022/lib/measure/shared/measure.enum.mjs +1 -1
  71. package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
  72. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +2 -2
  73. package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +1 -1
  74. package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  75. package/esm2022/lib/offline/layerDB/index.mjs +1 -1
  76. package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +1 -1
  77. package/esm2022/lib/overlay/shared/overlay.enum.mjs +1 -1
  78. package/esm2022/lib/overlay/shared/overlay.utils.mjs +1 -1
  79. package/esm2022/lib/print/print/print.component.mjs +2 -2
  80. package/esm2022/lib/print/print-form/print-form.component.mjs +2 -2
  81. package/esm2022/lib/print/shared/geopdf.mjs +1 -1
  82. package/esm2022/lib/query/shared/query.utils.mjs +1 -1
  83. package/esm2022/lib/search/search-bar/search-bar.component.mjs +2 -2
  84. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +2 -2
  85. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +2 -2
  86. package/esm2022/lib/search/search-results/search-results-item.component.mjs +2 -2
  87. package/esm2022/lib/search/search-results/search-results.component.mjs +2 -2
  88. package/esm2022/lib/search/search-selector/search-selector.component.mjs +2 -2
  89. package/esm2022/lib/search/search-settings/search-settings.component.mjs +2 -2
  90. package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
  91. package/esm2022/lib/search/shared/sources/source.interfaces.mjs +1 -1
  92. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  93. package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +1 -1
  94. package/esm2022/lib/style/shared/font.enum.mjs +1 -1
  95. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +2 -2
  96. package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +1 -1
  97. package/esm2022/lib/toast/toast.component.mjs +2 -2
  98. package/esm2022/lib/utils/googleLinks.mjs +1 -1
  99. package/esm2022/lib/utils/osmLinks.mjs +1 -1
  100. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +1 -1
  101. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +2 -2
  102. package/esm2022/lib/workspace/confirmation-popup/index.mjs +1 -1
  103. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +2 -2
  104. package/fesm2022/igo2-geo.mjs +63 -63
  105. package/fesm2022/igo2-geo.mjs.map +1 -1
  106. package/lib/directions/directions.theming.scss +6 -6
  107. package/lib/draw/draw.theming.scss +32 -32
  108. package/lib/feature/feature-details/feature-details.theming.scss +16 -16
  109. package/lib/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +18 -18
  110. package/lib/filter/time-filter-form/time-filter-form.theming.scss +5 -5
  111. package/lib/map/map-browser/map-browser.theming.scss +46 -46
  112. package/lib/map/zoom-button/zoom-button.theming.scss +32 -32
  113. package/lib/search/search-bar/search-bar.theming.scss +36 -36
  114. package/lib/search/search.theming.scss +5 -5
  115. package/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +14 -14
  116. package/lib/workspace/workspace.theming.scss +6 -6
  117. package/package.json +4 -4
@@ -737,7 +737,7 @@ export class TimeFilterFormComponent {
737
737
  }
738
738
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimeFilterFormComponent, [{
739
739
  type: Component,
740
- args: [{ selector: 'igo-time-filter-form', template: "<div *ngIf=\"style === 'calendar' && type !== 'year'\">\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\n <mat-form-field>\n <mat-datetimepicker-toggle\n class=\"time-filter-mat-datetimepicker-toggle\"\n [for]=\"datetimePicker\"\n matSuffix\n ></mat-datetimepicker-toggle>\n <mat-datetimepicker\n #datetimePicker\n type=\"{{ type }}\"\n openOnFocus=\"true\"\n timeInterval=\"5\"\n ></mat-datetimepicker>\n <input\n matInput\n autocomplete=\"false\"\n placeholder=\"{{ 'igo.geo.timeFilter.date' | translate }}\"\n [matDatetimepicker]=\"datetimePicker\"\n [(ngModel)]=\"date\"\n [min]=\"min\"\n [max]=\"max\"\n readonly=\"readonly\"\n (dateChange)=\"handleDateChange($event)\"\n />\n </mat-form-field>\n </div>\n\n <div *ngIf=\"isRange\">\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-datetimepicker-toggle\n class=\"time-filter-mat-datetimepicker-toggle\"\n [for]=\"minDatetimePicker\"\n matSuffix\n ></mat-datetimepicker-toggle>\n <mat-datetimepicker\n #minDatetimePicker\n type=\"{{ type }}\"\n openOnFocus=\"true\"\n timeInterval=\"5\"\n ></mat-datetimepicker>\n <input\n matInput\n autocomplete=\"false\"\n placeholder=\"{{ 'igo.geo.timeFilter.startDate' | translate }}\"\n [matDatetimepicker]=\"minDatetimePicker\"\n [(ngModel)]=\"startDate\"\n [min]=\"min\"\n [max]=\"getRangeMaxDate()\"\n readonly=\"readonly\"\n (input)=\"(startDate)\"\n (dateChange)=\"handleDateChange($event)\"\n />\n </mat-form-field>\n </div>\n\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-datetimepicker-toggle\n class=\"time-filter-mat-datetimepicker-toggle\"\n [for]=\"maxDatetimePicker\"\n matSuffix\n ></mat-datetimepicker-toggle>\n <mat-datetimepicker\n #maxDatetimePicker\n type=\"{{ type }}\"\n openOnFocus=\"true\"\n timeInterval=\"5\"\n ></mat-datetimepicker>\n <input\n matInput\n autocomplete=\"false\"\n placeholder=\"{{ 'igo.geo.timeFilter.endDate' | translate }}\"\n [matDatetimepicker]=\"maxDatetimePicker\"\n [(ngModel)]=\"endDate\"\n [min]=\"getRangeMinDate()\"\n [max]=\"max\"\n readonly=\"readonly\"\n (dateChange)=\"handleDateChange($event)\"\n />\n </mat-form-field>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"style === 'calendar' && type === 'year'\">\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\n <mat-form-field>\n <mat-select\n placeholder=\"{{ 'igo.geo.timeFilter.date' | translate }}\"\n [(ngModel)]=\"year\"\n (selectionChange)=\"handleYearChange($event)\"\n >\n <mat-option [value]=\"year\" *ngFor=\"let year of listYears\">{{\n year\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div *ngIf=\"isRange\">\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-select\n placeholder=\"{{ 'igo.geo.timeFilter.startDate' | translate }}\"\n [(ngModel)]=\"startYear\"\n (selectionChange)=\"handleYearChange($event)\"\n >\n <mat-option\n [value]=\"startYear\"\n *ngFor=\"let startYear of startListYears\"\n >{{ startYear }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-col igo-col-100\">\n <mat-form-field>\n <mat-select\n placeholder=\"{{ 'igo.geo.timeFilter.endDate' | translate }}\"\n [(ngModel)]=\"endYear\"\n (selectionChange)=\"handleYearChange($event)\"\n >\n <mat-option [value]=\"endYear\" *ngFor=\"let endYear of endListYears\">{{\n endYear\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n</div>\n\n<br />\n<div\n *ngIf=\"!isRange && style === 'slider' && type === 'year'\"\n class=\"igo-col igo-col-100 igo-col-100-m mat-typography\"\n>\n <span>{{ startYear }}</span>\n <!-- TODO: The 'tickInterval' property no longer exists -->\n <mat-slider\n id=\"time-slider\"\n step=\"{{ step }}\"\n [min]=\"startYear\"\n [max]=\"endYear\"\n [color]=\"color\"\n thumbLabel\n [disabled]=\"!options.enabled || !layer.visible\"\n #ngSlider\n ><input\n matSliderThumb\n [value]=\"handleSliderValue()\"\n (input)=\"\n handleSliderYearChange({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n #ngSliderThumb=\"matSliderThumb\"\n (change)=\"\n handleSliderYearChange({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n />\n </mat-slider>\n <span>{{ endYear }}</span>\n <p *ngIf=\"options.enabled\" class=\"date-below\">{{ year }}</p>\n <div #actions class=\"igo-layer-actions-container\">\n <mat-slide-toggle\n (change)=\"toggleFilterState()\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\"\n [color]=\"color\"\n [checked]=\"options.enabled\"\n [disabled]=\"!layer.visible\"\n >\n </mat-slide-toggle>\n <button\n [disabled]=\"!options.enabled || !layer.visible\"\n mat-icon-button\n color=\"primary\"\n (click)=\"playYear($event)\"\n >\n <mat-icon svgIcon=\"{{ playIcon }}\"></mat-icon>\n </button>\n <button\n [disabled]=\"!options.enabled || !layer.visible\"\n mat-icon-button\n color=\"primary\"\n (click)=\"resetFilter($event)\"\n >\n <mat-icon svgIcon=\"{{ resetIcon }}\"></mat-icon>\n </button>\n </div>\n</div>\n\n<div\n *ngIf=\"style === 'slider' && type !== 'year'\"\n class=\"igo-col igo-col-100 igo-col-100-m\"\n>\n <!-- TODO: The 'tickInterval' property no longer exists -->\n <mat-slider\n id=\"time-slider\"\n step=\"{{ step }}\"\n [min]=\"dateToNumber(min)\"\n [max]=\"dateToNumber(max)\"\n thumbLabel\n (selectionChange)=\"handleSliderDateChange($event)\"\n #ngSlider\n ><input\n matSliderThumb\n [value]=\"handleSliderValue()\"\n (input)=\"\n handleSliderDateChange({\n source: ngSliderThumb,\n parent: ngSlider,\n value: ngSliderThumb.value\n })\n \"\n #ngSliderThumb=\"matSliderThumb\"\n />\n </mat-slider>\n <p class=\"date-below\">{{ handleSliderTooltip() }}</p>\n <button mat-icon-button color=\"primary\" (click)=\"playFilter($event)\">\n <mat-icon svgIcon=\"{{ playIcon }}\"></mat-icon>\n </button>\n</div>\n", styles: [":host .igo-layer-filters-container{padding-left:5px}:host #time-slider{width:70%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){:host #time-slider{width:60%}}:host .date-below{margin:0}:host .igo-layer-actions-container{display:flex;align-items:center;justify-content:center}\n"] }]
740
+ args: [{ selector: 'igo-time-filter-form', template: "<div *ngIf=\"style === 'calendar' && type !== 'year'\">\r\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\r\n <mat-form-field>\r\n <mat-datetimepicker-toggle\r\n class=\"time-filter-mat-datetimepicker-toggle\"\r\n [for]=\"datetimePicker\"\r\n matSuffix\r\n ></mat-datetimepicker-toggle>\r\n <mat-datetimepicker\r\n #datetimePicker\r\n type=\"{{ type }}\"\r\n openOnFocus=\"true\"\r\n timeInterval=\"5\"\r\n ></mat-datetimepicker>\r\n <input\r\n matInput\r\n autocomplete=\"false\"\r\n placeholder=\"{{ 'igo.geo.timeFilter.date' | translate }}\"\r\n [matDatetimepicker]=\"datetimePicker\"\r\n [(ngModel)]=\"date\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n readonly=\"readonly\"\r\n (dateChange)=\"handleDateChange($event)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div *ngIf=\"isRange\">\r\n <div class=\"igo-col igo-col-100\">\r\n <mat-form-field>\r\n <mat-datetimepicker-toggle\r\n class=\"time-filter-mat-datetimepicker-toggle\"\r\n [for]=\"minDatetimePicker\"\r\n matSuffix\r\n ></mat-datetimepicker-toggle>\r\n <mat-datetimepicker\r\n #minDatetimePicker\r\n type=\"{{ type }}\"\r\n openOnFocus=\"true\"\r\n timeInterval=\"5\"\r\n ></mat-datetimepicker>\r\n <input\r\n matInput\r\n autocomplete=\"false\"\r\n placeholder=\"{{ 'igo.geo.timeFilter.startDate' | translate }}\"\r\n [matDatetimepicker]=\"minDatetimePicker\"\r\n [(ngModel)]=\"startDate\"\r\n [min]=\"min\"\r\n [max]=\"getRangeMaxDate()\"\r\n readonly=\"readonly\"\r\n (input)=\"(startDate)\"\r\n (dateChange)=\"handleDateChange($event)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-col igo-col-100\">\r\n <mat-form-field>\r\n <mat-datetimepicker-toggle\r\n class=\"time-filter-mat-datetimepicker-toggle\"\r\n [for]=\"maxDatetimePicker\"\r\n matSuffix\r\n ></mat-datetimepicker-toggle>\r\n <mat-datetimepicker\r\n #maxDatetimePicker\r\n type=\"{{ type }}\"\r\n openOnFocus=\"true\"\r\n timeInterval=\"5\"\r\n ></mat-datetimepicker>\r\n <input\r\n matInput\r\n autocomplete=\"false\"\r\n placeholder=\"{{ 'igo.geo.timeFilter.endDate' | translate }}\"\r\n [matDatetimepicker]=\"maxDatetimePicker\"\r\n [(ngModel)]=\"endDate\"\r\n [min]=\"getRangeMinDate()\"\r\n [max]=\"max\"\r\n readonly=\"readonly\"\r\n (dateChange)=\"handleDateChange($event)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"style === 'calendar' && type === 'year'\">\r\n <div *ngIf=\"!isRange\" class=\"igo-col igo-col-100 igo-col-100-m\">\r\n <mat-form-field>\r\n <mat-select\r\n placeholder=\"{{ 'igo.geo.timeFilter.date' | translate }}\"\r\n [(ngModel)]=\"year\"\r\n (selectionChange)=\"handleYearChange($event)\"\r\n >\r\n <mat-option [value]=\"year\" *ngFor=\"let year of listYears\">{{\r\n year\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div *ngIf=\"isRange\">\r\n <div class=\"igo-col igo-col-100\">\r\n <mat-form-field>\r\n <mat-select\r\n placeholder=\"{{ 'igo.geo.timeFilter.startDate' | translate }}\"\r\n [(ngModel)]=\"startYear\"\r\n (selectionChange)=\"handleYearChange($event)\"\r\n >\r\n <mat-option\r\n [value]=\"startYear\"\r\n *ngFor=\"let startYear of startListYears\"\r\n >{{ startYear }}</mat-option\r\n >\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-col igo-col-100\">\r\n <mat-form-field>\r\n <mat-select\r\n placeholder=\"{{ 'igo.geo.timeFilter.endDate' | translate }}\"\r\n [(ngModel)]=\"endYear\"\r\n (selectionChange)=\"handleYearChange($event)\"\r\n >\r\n <mat-option [value]=\"endYear\" *ngFor=\"let endYear of endListYears\">{{\r\n endYear\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<br />\r\n<div\r\n *ngIf=\"!isRange && style === 'slider' && type === 'year'\"\r\n class=\"igo-col igo-col-100 igo-col-100-m mat-typography\"\r\n>\r\n <span>{{ startYear }}</span>\r\n <!-- TODO: The 'tickInterval' property no longer exists -->\r\n <mat-slider\r\n id=\"time-slider\"\r\n step=\"{{ step }}\"\r\n [min]=\"startYear\"\r\n [max]=\"endYear\"\r\n [color]=\"color\"\r\n thumbLabel\r\n [disabled]=\"!options.enabled || !layer.visible\"\r\n #ngSlider\r\n ><input\r\n matSliderThumb\r\n [value]=\"handleSliderValue()\"\r\n (input)=\"\r\n handleSliderYearChange({\r\n source: ngSliderThumb,\r\n parent: ngSlider,\r\n value: ngSliderThumb.value\r\n })\r\n \"\r\n #ngSliderThumb=\"matSliderThumb\"\r\n (change)=\"\r\n handleSliderYearChange({\r\n source: ngSliderThumb,\r\n parent: ngSlider,\r\n value: ngSliderThumb.value\r\n })\r\n \"\r\n />\r\n </mat-slider>\r\n <span>{{ endYear }}</span>\r\n <p *ngIf=\"options.enabled\" class=\"date-below\">{{ year }}</p>\r\n <div #actions class=\"igo-layer-actions-container\">\r\n <mat-slide-toggle\r\n (change)=\"toggleFilterState()\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.filter.toggleFilterState' | translate\"\r\n [color]=\"color\"\r\n [checked]=\"options.enabled\"\r\n [disabled]=\"!layer.visible\"\r\n >\r\n </mat-slide-toggle>\r\n <button\r\n [disabled]=\"!options.enabled || !layer.visible\"\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"playYear($event)\"\r\n >\r\n <mat-icon svgIcon=\"{{ playIcon }}\"></mat-icon>\r\n </button>\r\n <button\r\n [disabled]=\"!options.enabled || !layer.visible\"\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"resetFilter($event)\"\r\n >\r\n <mat-icon svgIcon=\"{{ resetIcon }}\"></mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div\r\n *ngIf=\"style === 'slider' && type !== 'year'\"\r\n class=\"igo-col igo-col-100 igo-col-100-m\"\r\n>\r\n <!-- TODO: The 'tickInterval' property no longer exists -->\r\n <mat-slider\r\n id=\"time-slider\"\r\n step=\"{{ step }}\"\r\n [min]=\"dateToNumber(min)\"\r\n [max]=\"dateToNumber(max)\"\r\n thumbLabel\r\n (selectionChange)=\"handleSliderDateChange($event)\"\r\n #ngSlider\r\n ><input\r\n matSliderThumb\r\n [value]=\"handleSliderValue()\"\r\n (input)=\"\r\n handleSliderDateChange({\r\n source: ngSliderThumb,\r\n parent: ngSlider,\r\n value: ngSliderThumb.value\r\n })\r\n \"\r\n #ngSliderThumb=\"matSliderThumb\"\r\n />\r\n </mat-slider>\r\n <p class=\"date-below\">{{ handleSliderTooltip() }}</p>\r\n <button mat-icon-button color=\"primary\" (click)=\"playFilter($event)\">\r\n <mat-icon svgIcon=\"{{ playIcon }}\"></mat-icon>\r\n </button>\r\n</div>\r\n", styles: [":host .igo-layer-filters-container{padding-left:5px}:host #time-slider{width:70%}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){:host #time-slider{width:60%}}:host .date-below{margin:0}:host .igo-layer-actions-container{display:flex;align-items:center;justify-content:center}\n"] }]
741
741
  }], function () { return [{ type: i1.DateAdapter }]; }, { layer: [{
742
742
  type: Input
743
743
  }], options: [{
@@ -752,4 +752,4 @@ export class TimeFilterFormComponent {
752
752
  type: ViewChild,
753
753
  args: [MatSlider]
754
754
  }] }); })();
755
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvdGltZS1maWx0ZXItZm9ybS90aW1lLWZpbHRlci1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1mb3JtL3RpbWUtZmlsdGVyLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUlyRCxPQUFPLEVBQUUsT0FBTyxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNmM0UsOEJBQWdFLHFCQUFBO0lBRTVELCtDQUk2QiwrQkFBQTtJQU83QixnQ0FVRTtJQUxBLHdPQUFrQiw2S0FJSixlQUFBLCtCQUF3QixDQUFBLElBSnBCOztJQUxwQixpQkFVRSxFQUFBLEVBQUE7Ozs7SUFuQkEsZUFBc0I7SUFBdEIseUJBQXNCO0lBS3RCLGVBQWlCO0lBQWpCLDZDQUFpQjtJQU9qQixlQUF5RDtJQUF6RCx3RkFBeUQ7SUFDekQsdUNBQW9DLHdCQUFBLG1CQUFBLG1CQUFBOzs7O0lBVTFDLDJCQUFxQixhQUFBLHFCQUFBO0lBR2YsK0NBSTZCLCtCQUFBO0lBTzdCLGlD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LDBFQWlFTTtZQUVOLHdFQThCTTs7WUF4T0Esc0VBQTZDO1lBc0Y3QyxlQUE2QztZQUE3QyxzRUFBNkM7WUFrRGhELGVBQXVEO1lBQXZELG9GQUF1RDtZQW1FdkQsZUFBMkM7WUFBM0Msb0VBQTJDOzs7dUZEbkxqQyx1QkFBdUI7Y0FMbkMsU0FBUzsyQkFDRSxzQkFBc0I7OERBS3ZCLEtBQUs7a0JBQWIsS0FBSztZQUVHLE9BQU87a0JBQWYsS0FBSztZQWdCRixZQUFZO2tCQURmLEtBQUs7WUF1QkksTUFBTTtrQkFBZixNQUFNO1lBRVAsVUFBVTtrQkFEVCxNQUFNO1lBRWUsUUFBUTtrQkFBN0IsU0FBUzttQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNsaWRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlcic7XHJcblxyXG5pbXBvcnQgb2xTb3VyY2VJbWFnZVdNUyBmcm9tICdvbC9zb3VyY2UvSW1hZ2VXTVMnO1xyXG5cclxuaW1wb3J0IHsgZGVmYXVsdCBhcyBtb21lbnQgfSBmcm9tICdtb21lbnQnO1xyXG5cclxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyJztcclxuaW1wb3J0IHsgVGltZUZpbHRlclN0eWxlLCBUaW1lRmlsdGVyVHlwZSB9IGZyb20gJy4uL3NoYXJlZC90aW1lLWZpbHRlci5lbnVtJztcclxuaW1wb3J0IHsgVGltZUZpbHRlck9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvdGltZS1maWx0ZXIuaW50ZXJmYWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXRpbWUtZmlsdGVyLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLWZpbHRlci1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90aW1lLWZpbHRlci1mb3JtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRpbWVGaWx0ZXJGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBsYXllcjogTGF5ZXI7XHJcblxyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFRpbWVGaWx0ZXJPcHRpb25zO1xyXG5cclxuICBwdWJsaWMgY29sb3IgPSAncHJpbWFyeSc7XHJcbiAgcHVibGljIGRhdGU6IERhdGU7XHJcbiAgcHVibGljIHN0YXJ0RGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgZW5kRGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgeWVhcjogYW55O1xyXG4gIHB1YmxpYyBzdGFydFllYXI6IGFueTtcclxuICBwdWJsaWMgZW5kWWVhcjogYW55O1xyXG4gIHB1YmxpYyBpbml0U3RhcnRZZWFyOiBhbnk7XHJcbiAgcHVibGljIGluaXRFbmRZZWFyOiBhbnk7XHJcbiAgcHVibGljIGxpc3RZZWFyczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gIHB1YmxpYyBzdGFydExpc3RZZWFyczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gIHB1YmxpYyBlbmRMaXN0WWVhcnM6IEFycmF5PHN0cmluZz4gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgY3VycmVudFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICBpZiAodGhpcy50eXBlICE9PSBUaW1lRmlsdGVyVHlwZS5ZRUFSKSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVBcnJheSA9IHZhbHVlLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgaWYgKHZhbHVlQXJyYXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gbmV3IERhdGUodmFsdWVBcnJheVswXSk7XHJcbiAgICAgICAgICBjb25zdCBlbmREYXRlID0gbmV3IERhdGUodmFsdWVBcnJheVsxXSk7XHJcbiAgICAgICAgICBpZiAoIWlzTmFOKHN0YXJ0RGF0ZS52YWx1ZU9mKCkpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlID0gc3RhcnREYXRlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCFpc05hTihlbmREYXRlLnZhbHVlT2YoKSkpIHtcclxuICAgICAgICAgICAgdGhpcy5lbmREYXRlID0gZW5kRGF0ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbnRlcnZhbDogYW55O1xyXG4gIHB1YmxpYyBwbGF5SWNvbiA9ICdwbGF5LWNpcmNsZSc7XHJcbiAgcHVibGljIHJlc2V0SWNvbiA9ICdyZXBsYXknO1xyXG5cclxuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZSB8IFtEYXRlLCBEYXRlXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgeWVhckNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZyB8IFtzdHJpbmcsIHN0cmluZ10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBWaWV3Q2hpbGQoTWF0U2xpZGVyKSBteVNsaWRlcjtcclxuXHJcbiAgZ2V0IHR5cGUoKTogVGltZUZpbHRlclR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy50eXBlID09PSB1bmRlZmluZWRcclxuICAgICAgPyBUaW1lRmlsdGVyVHlwZS5EQVRFXHJcbiAgICAgIDogdGhpcy5vcHRpb25zLnR5cGU7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNSYW5nZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucmFuZ2UgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICB0aGlzLm9wdGlvbnMuc3R5bGUgPT09IFRpbWVGaWx0ZXJTdHlsZS5TTElERVJcclxuICAgICAgPyBmYWxzZVxyXG4gICAgICA6IHRoaXMub3B0aW9ucy5yYW5nZTtcclxuICB9XHJcblxyXG4gIGdldCBzdHlsZSgpOiBUaW1lRmlsdGVyU3R5bGUge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5zdHlsZSA9PT0gdW5kZWZpbmVkXHJcbiAgICAgID8gVGltZUZpbHRlclN0eWxlLlNMSURFUlxyXG4gICAgICA6IHRoaXMub3B0aW9ucy5zdHlsZTtcclxuICB9XHJcblxyXG4gIGdldCBzdGVwKCk6IG51bWJlciB7XHJcbiAgICBsZXQgc3RlcCA9IDEwODAwMDAwO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5zdGVwID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcclxuICAgICAgICBjYXNlIFRpbWVGaWx0ZXJUeXBlLkRBVEU6XHJcbiAgICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5EQVRFVElNRTpcclxuICAgICAgICAgIHN0ZXAgPSAxMDgwMDAwMDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgVGltZUZpbHRlclR5cGUuVElNRTpcclxuICAgICAgICAgIHN0ZXAgPSAzNjAwMDAwO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5ZRUFSOlxyXG4gICAgICAgICAgc3RlcCA9IDMxNTM2MDAwMDAwO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHN0ZXAgPSAxMDgwMDAwMDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3RlcCA9IHRoaXMuZ2V0U3RlcERlZmluaXRpb24odGhpcy5vcHRpb25zLnN0ZXApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzdGVwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRpbWVJbnRlcnZhbCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy50aW1lSW50ZXJ2YWwgPT09IHVuZGVmaW5lZFxyXG4gICAgICA/IDIwMDBcclxuICAgICAgOiB0aGlzLm9wdGlvbnMudGltZUludGVydmFsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1pbigpOiBEYXRlIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMubWluKSB7XHJcbiAgICAgIGNvbnN0IG1pbiA9IG5ldyBEYXRlKHRoaXMub3B0aW9ucy5taW4pO1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUobWluLmdldFRpbWUoKSArIG1pbi5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBtYXgoKTogRGF0ZSB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLm1heCkge1xyXG4gICAgICBjb25zdCBtYXggPSBuZXcgRGF0ZSh0aGlzLm9wdGlvbnMubWF4KTtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKG1heC5nZXRUaW1lKCkgKyBtYXguZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgaXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnJhbmdlID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IHRoaXMub3B0aW9ucy5yYW5nZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPERhdGU+KSB7XHJcbiAgICB0aGlzLmRhdGVBZGFwdGVyLnNldExvY2FsZSgnZnInKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuc3RhcnREYXRlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBuZXcgRGF0ZSh0aGlzLm1pbik7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5lbmREYXRlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5lbmREYXRlID0gbmV3IERhdGUodGhpcy5tYXgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc3RhcnRZZWFyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zdGFydFllYXIgPSBuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZSkuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgdGhpcy5pbml0U3RhcnRZZWFyID0gdGhpcy5zdGFydFllYXI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5lbmRZZWFyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5lbmRZZWFyID0gbmV3IERhdGUodGhpcy5lbmREYXRlKS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICB0aGlzLmluaXRFbmRZZWFyID0gdGhpcy5lbmRZZWFyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5pc1JhbmdlKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YXJ0WWVhcjsgaSA8PSB0aGlzLmVuZFllYXIgKyAxOyBpKyspIHtcclxuICAgICAgICB0aGlzLmxpc3RZZWFycy5wdXNoKGkpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFydFllYXI7IGkgPCB0aGlzLmVuZFllYXI7IGkrKykge1xyXG4gICAgICAgIHRoaXMuc3RhcnRMaXN0WWVhcnMucHVzaChpKTtcclxuICAgICAgfVxyXG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFydFllYXIgKyAxOyBpIDw9IHRoaXMuZW5kWWVhcjsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5lbmRMaXN0WWVhcnMucHVzaChpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5vcHRpb25zLmVuYWJsZWQgPVxyXG4gICAgICB0aGlzLm9wdGlvbnMuZW5hYmxlZCA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHRoaXMub3B0aW9ucy5lbmFibGVkO1xyXG4gICAgdGhpcy5jaGVja0ZpbHRlclZhbHVlKCk7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLmVuYWJsZWQpIHtcclxuICAgICAgaWYgKCF0aGlzLmlzUmFuZ2UgJiYgdGhpcy5zdHlsZSA9PT0gJ3NsaWRlcicgJiYgdGhpcy50eXBlID09PSAneWVhcicpIHtcclxuICAgICAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdCh0aGlzLnllYXIpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0b3JlQ3VycmVudEZpbHRlclZhbHVlKCk7XHJcbiAgICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KHVuZGVmaW5lZCk7IC8vIFRPRE86IEZJWCBUSElTIGZvciBBTEwgT1RIRVIgVFlQRVMgU1RZTEVTIE9SIFJBTkdFLlxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RvcmVDdXJyZW50RmlsdGVyVmFsdWUoKSB7XHJcbiAgICAvLyBUT0RPOiBGSVggVEhJUyBmb3IgQUxMIE9USEVSIFRZUEVTIFNUWUxFUyBPUiBSQU5HRS5cclxuICAgIGlmIChcclxuICAgICAgIXRoaXMuaXNSYW5nZSAmJlxyXG4gICAgICB0aGlzLnN0eWxlID09PSBUaW1lRmlsdGVyU3R5bGUuU0xJREVSICYmXHJcbiAgICAgIHRoaXMudHlwZSA9PT0gVGltZUZpbHRlclR5cGUuWUVBUlxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucy52YWx1ZSA9IHRoaXMueWVhci50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tGaWx0ZXJWYWx1ZSgpIHtcclxuICAgIGNvbnN0IG9sU291cmNlID0gdGhpcy5sYXllci5kYXRhU291cmNlLm9sIGFzIG9sU291cmNlSW1hZ2VXTVM7XHJcbiAgICBjb25zdCB0aW1lRnJvbVdtcyA9IG9sU291cmNlLmdldFBhcmFtcygpLlRJTUU7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLmlzUmFuZ2UgJiZcclxuICAgICAgdGhpcy5zdHlsZSA9PT0gVGltZUZpbHRlclN0eWxlLlNMSURFUiAmJlxyXG4gICAgICB0aGlzLnR5cGUgPT09IFRpbWVGaWx0ZXJUeXBlLllFQVJcclxuICAgICkge1xyXG4gICAgICBpZiAodGltZUZyb21XbXMpIHtcclxuICAgICAgICB0aGlzLnllYXIgPSBuZXcgRGF0ZSh0aW1lRnJvbVdtcy50b1N0cmluZygpKS5nZXRGdWxsWWVhcigpICsgMTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMudmFsdWUpIHtcclxuICAgICAgICB0aGlzLnllYXIgPSBuZXcgRGF0ZSh0aGlzLm9wdGlvbnMudmFsdWUudG9TdHJpbmcoKSkuZ2V0RnVsbFllYXIoKSArIDE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy55ZWFyID0gbmV3IERhdGUodGhpcy5taW4pLmdldEZ1bGxZZWFyKCkgKyAxO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICB0aGlzLmlzUmFuZ2UgJiZcclxuICAgICAgdGhpcy5zdHlsZSA9PT0gVGltZUZpbHRlclN0eWxlLkNBTEVOREFSICYmXHJcbiAgICAgIHRoaXMudHlwZSA9PT0gVGltZUZpbHRlclR5cGUuWUVBUlxyXG4gICAgKSB7XHJcbiAgICAgIGlmICh0aW1lRnJvbVdtcykge1xyXG4gICAgICAgIHRoaXMuc3RhcnRZZWFyID0gcGFyc2VJbnQodGltZUZyb21XbXMuc3Vic3RyKDAsIDQpLCAxMCk7XHJcbiAgICAgICAgdGhpcy5lbmRZZWFyID0gcGFyc2VJbnQodGltZUZyb21XbXMuc3Vic3RyKDUsIDQpLCAxMCk7XHJcbiAgICAgICAgY29uc3QgbmV3U3RhcnRMaXN0WWVhcnM6IGFueVtdID0gW107XHJcbiAgICAgICAgY29uc3QgbmV3RW5kTGlzdFllYXJzOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLmluaXRTdGFydFllYXI7IGkgPCB0aGlzLmVuZFllYXI7IGkrKykge1xyXG4gICAgICAgICAgbmV3U3RhcnRMaXN0WWVhcnMucHVzaChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhcnRZZWFyICsgMTsgaSA8PSB0aGlzLmluaXRFbmRZZWFyOyBpKyspIHtcclxuICAgICAgICAgIG5ld0VuZExpc3RZZWFycy5wdXNoKGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN0YXJ0TGlzdFllYXJzID0gbmV3U3RhcnRMaXN0WWVhcnM7XHJcbiAgICAgICAgdGhpcy5lbmRMaXN0WWVhcnMgPSBuZXdFbmRMaXN0WWVhcnM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIFRPRE86IEZJWCBUSElTIGZvciBBTEwgT1RIRVIgVFlQRVMgU1RZTEVTIE9SIFJBTkdFLlxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRGF0ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNldHVwRGF0ZU91dHB1dCgpO1xyXG4gICAgdGhpcy5hcHBseVR5cGVDaGFuZ2UoKTtcclxuXHJcbiAgICAvLyBPbmx5IGlmIGlzIHJhbmdlLCB1c2UgMiBkYXRlcyB0byBtYWtlIHRoZSByYW5nZVxyXG4gICAgaWYgKHRoaXMuaXNSYW5nZSkge1xyXG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KFt0aGlzLnN0YXJ0RGF0ZSwgdGhpcy5lbmREYXRlXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuc3RhcnREYXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVllYXJDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuaXNSYW5nZSkge1xyXG4gICAgICB0aGlzLmVuZExpc3RZZWFycyA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFydFllYXIgKyAxOyBpIDw9IHRoaXMuaW5pdEVuZFllYXI7IGkrKykge1xyXG4gICAgICAgIHRoaXMuZW5kTGlzdFllYXJzLnB1c2goaSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zdGFydExpc3RZZWFycyA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5pbml0U3RhcnRZZWFyICsgMTsgaSA8IHRoaXMuZW5kWWVhcjsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5zdGFydExpc3RZZWFycy5wdXNoKGkpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KFt0aGlzLnN0YXJ0WWVhciwgdGhpcy5lbmRZZWFyXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdCh0aGlzLnllYXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlTGlzdFllYXJDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5oYW5kbGVZZWFyQ2hhbmdlKFt0aGlzLnN0YXJ0WWVhciwgdGhpcy5lbmRZZWFyXSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVMaXN0WWVhclN0YXJ0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQoW3RoaXMuc3RhcnREYXRlLCB0aGlzLmVuZERhdGVdKTtcclxuICB9XHJcblxyXG4gIGRhdGVUb051bWJlcihkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgIGxldCBuZXdEYXRlO1xyXG4gICAgaWYgKGRhdGUpIHtcclxuICAgICAgbmV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3RGF0ZSA9IG5ldyBEYXRlKHRoaXMubWluKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV3RGF0ZS5nZXRUaW1lKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTbGlkZXJUaHVtYkxhYmVsKGxhYmVsOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHRodW1iTGFiZWwgPSB0aGlzLmZpbmRUaHVtYkxhYmVsKFxyXG4gICAgICB0aGlzLm15U2xpZGVyLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlc1xyXG4gICAgKTtcclxuICAgIGlmICh0aHVtYkxhYmVsKSB7XHJcbiAgICAgIHRodW1iTGFiZWwudGV4dENvbnRlbnQgPSBsYWJlbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbmRUaHVtYkxhYmVsKHRlc3Q6IGFueVtdKTogYW55IHtcclxuICAgIGxldCB0aHVtYkxhYmVsO1xyXG5cclxuICAgIHRlc3QuZm9yRWFjaCgodmFsdWUpID0+IHtcclxuICAgICAgaWYgKHZhbHVlLmNsYXNzTmFtZSA9PT0gJ21hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCcpIHtcclxuICAgICAgICB0aHVtYkxhYmVsID0gdmFsdWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh2YWx1ZS5jaGlsZHJlbi5sZW5ndGggPiAwICYmICF0aHVtYkxhYmVsKSB7XHJcbiAgICAgICAgdGh1bWJMYWJlbCA9IHRoaXMuZmluZFRodW1iTGFiZWwodmFsdWUuY2hpbGROb2Rlcyk7XHJcbiAgICAgIH1cclxuICAgIH0sIHRoaXMpO1xyXG4gICAgcmV0dXJuIHRodW1iTGFiZWw7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVGaWx0ZXJTdGF0ZSgpIHtcclxuICAgIHRoaXMub3B0aW9ucy5lbmFibGVkID0gIXRoaXMub3B0aW9ucy5lbmFibGVkO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuZW5hYmxlZCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIXRoaXMuaXNSYW5nZSAmJlxyXG4gICAgICAgIFRpbWVGaWx0ZXJTdHlsZS5TTElERVIgJiZcclxuICAgICAgICB0aGlzLnR5cGUgPT09IFRpbWVGaWx0ZXJUeXBlLllFQVJcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQodGhpcy55ZWFyKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zdG9wRmlsdGVyKCk7XHJcbiAgICAgIHRoaXMuc3RvcmVDdXJyZW50RmlsdGVyVmFsdWUoKTtcclxuICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh1bmRlZmluZWQpOyAvLyBUT0RPOiBGSVggVEhJUyBmb3IgQUxMIE9USEVSIFRZUEVTIFNUWUxFUyBPUiBSQU5HRS5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0RmlsdGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZGF0ZSA9IG5ldyBEYXRlKHRoaXMubWluKTtcclxuICAgIHRoaXMueWVhciA9IHRoaXMuZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy5pc1JhbmdlICYmXHJcbiAgICAgIFRpbWVGaWx0ZXJTdHlsZS5TTElERVIgJiZcclxuICAgICAgdGhpcy50eXBlID09PSBUaW1lRmlsdGVyVHlwZS5ZRUFSXHJcbiAgICApIHtcclxuICAgICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQodGhpcy55ZWFyKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0dXBEYXRlT3V0cHV0KCk7XHJcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQodW5kZWZpbmVkKTsgLy8gVE9ETzogRklYIFRISVMgZm9yIEFMTCBPVEhFUiBUWVBFUyBTVFlMRVMgT1IgUkFOR0UuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwbGF5RmlsdGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmludGVydmFsKSB7XHJcbiAgICAgIHRoaXMuc3RvcEZpbHRlcigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wbGF5SWNvbiA9ICdwYXVzZS1jaXJjbGUnO1xyXG4gICAgICB0aGlzLmludGVydmFsID0gc2V0SW50ZXJ2YWwoXHJcbiAgICAgICAgKHRoYXQpID0+IHtcclxuICAgICAgICAgIGxldCBuZXdNaW5EYXRlTnVtYmVyO1xyXG4gICAgICAgICAgY29uc3QgbWF4RGF0ZU51bWJlciA9IG5ldyBEYXRlKHRoYXQubWF4KTtcclxuXHJcbiAgICAgICAgICBuZXdNaW5EYXRlTnVtYmVyID1cclxuICAgICAgICAgICAgdGhhdC5kYXRlID09PSB1bmRlZmluZWQgPyB0aGF0Lm1pbi5nZXRUaW1lKCkgOiB0aGF0LmRhdGUuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgbmV3TWluRGF0ZU51bWJlciArPSB0aGF0Lm15U2xpZGVyLnN0ZXA7XHJcbiAgICAgICAgICB0aGF0LmRhdGUgPSBuZXcgRGF0ZShuZXdNaW5EYXRlTnVtYmVyKTtcclxuXHJcbiAgICAgICAgICBpZiAobmV3TWluRGF0ZU51bWJlciA+IG1heERhdGVOdW1iZXIuZ2V0VGltZSgpKSB7XHJcbiAgICAgICAgICAgIHRoYXQuc3RvcEZpbHRlcigpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoYXQuaGFuZGxlRGF0ZUNoYW5nZSh7IHZhbHVlOiB0aGF0LmRhdGUsIGRhdGU6IHRoYXQuZGF0ZSB9KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHRoaXMudGltZUludGVydmFsLFxyXG4gICAgICAgIHRoaXNcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBsYXlZZWFyKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy55ZWFyICsgdGhpcy5teVNsaWRlci5zdGVwID5cclxuICAgICAgdGhpcy5tYXguZ2V0RnVsbFllYXIoKSArIHRoaXMubXlTbGlkZXIuc3RlcFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuc3RvcEZpbHRlcigpO1xyXG4gICAgICB0aGlzLnJlc2V0RmlsdGVyKGV2ZW50KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmludGVydmFsKSB7XHJcbiAgICAgIHRoaXMuc3RvcEZpbHRlcigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wbGF5SWNvbiA9ICdwYXVzZS1jaXJjbGUnO1xyXG4gICAgICB0aGlzLmludGVydmFsID0gc2V0SW50ZXJ2YWwoXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMueWVhciArIHRoaXMubXlTbGlkZXIuc3RlcCA+IHRoaXMubWF4LmdldEZ1bGxZZWFyKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9wRmlsdGVyKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnllYXIgPSB0aGlzLnllYXIgKyB0aGlzLm15U2xpZGVyLnN0ZXA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdCh0aGlzLnllYXIpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdGhpcy50aW1lSW50ZXJ2YWwsXHJcbiAgICAgICAgdGhpc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RvcEZpbHRlcigpIHtcclxuICAgIGlmICh0aGlzLmludGVydmFsKSB7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmludGVydmFsID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5wbGF5SWNvbiA9ICdwbGF5LWNpcmNsZSc7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTbGlkZXJEYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZGF0ZSA9IG5ldyBEYXRlKGV2ZW50LnZhbHVlKTtcclxuICAgIHRoaXMuc2V0U2xpZGVyVGh1bWJMYWJlbCh0aGlzLmhhbmRsZVNsaWRlclRvb2x0aXAoKSk7XHJcbiAgICB0aGlzLmhhbmRsZURhdGVDaGFuZ2UoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2xpZGVyWWVhckNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnllYXIgPSBldmVudC52YWx1ZTtcclxuICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KHRoaXMueWVhcik7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTbGlkZXJWYWx1ZSgpOiBudW1iZXIge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5jdXJyZW50ID09PSB0cnVlIHx8ICF0aGlzLm1pbikge1xyXG4gICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIHRoaXMuZGF0ZSA9IHRoaXMuZ2V0Um91bmRlZERhdGUoY3VycmVudERhdGUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVGltZUZpbHRlclR5cGUuWUVBUikge1xyXG4gICAgICByZXR1cm4gdGhpcy55ZWFyO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0ZSA9PT0gdW5kZWZpbmVkID8gdGhpcy5taW4uZ2V0VGltZSgpIDogdGhpcy5kYXRlLmdldFRpbWUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVNsaWRlclRvb2x0aXAoKSB7XHJcbiAgICBsZXQgbGFiZWw6IHN0cmluZztcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xyXG4gICAgICBjYXNlIFRpbWVGaWx0ZXJUeXBlLkRBVEU6XHJcbiAgICAgICAgbGFiZWwgPVxyXG4gICAgICAgICAgdGhpcy5kYXRlID09PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgPyB0aGlzLm1pbi50b0RhdGVTdHJpbmcoKVxyXG4gICAgICAgICAgICA6IHRoaXMuZGF0ZS50b0RhdGVTdHJpbmcoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5USU1FOlxyXG4gICAgICAgIGxhYmVsID1cclxuICAgICAgICAgIHRoaXMuZGF0ZSA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgID8gdGhpcy5taW4udG9UaW1lU3RyaW5nKClcclxuICAgICAgICAgICAgOiB0aGlzLmRhdGUudG9UaW1lU3RyaW5nKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIC8vIGRhdGV0aW1lXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgbGFiZWwgPVxyXG4gICAgICAgICAgdGhpcy5kYXRlID09PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgPyB0aGlzLm1pbi50b1VUQ1N0cmluZygpXHJcbiAgICAgICAgICAgIDogdGhpcy5kYXRlLnRvVVRDU3RyaW5nKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgc2V0dXBEYXRlT3V0cHV0KCkge1xyXG4gICAgaWYgKHRoaXMuc3R5bGUgPT09IFRpbWVGaWx0ZXJTdHlsZS5TTElERVIpIHtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBuZXcgRGF0ZSh0aGlzLmRhdGUpO1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZS5zZXRTZWNvbmRzKC0odGhpcy5zdGVwIC8gMTAwMCkpO1xyXG4gICAgICB0aGlzLmVuZERhdGUgPSBuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZSk7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZS5zZXRTZWNvbmRzKHRoaXMuc3RlcCAvIDEwMDApO1xyXG4gICAgfSBlbHNlIGlmICghdGhpcy5pc1JhbmdlICYmICEhdGhpcy5kYXRlKSB7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IG5ldyBEYXRlKHRoaXMuZGF0ZSk7XHJcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gbmV3IERhdGUodGhpcy5kYXRlKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5pc1JhbmdlICYmICghIXRoaXMuZGF0ZSB8fCAhdGhpcy5kYXRlKSkge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9XHJcbiAgICAgICAgdGhpcy5zdGFydERhdGUgPT09IHVuZGVmaW5lZCA/IG5ldyBEYXRlKHRoaXMubWluKSA6IHRoaXMuc3RhcnREYXRlO1xyXG4gICAgICB0aGlzLmVuZERhdGUgPVxyXG4gICAgICAgIHRoaXMuZW5kRGF0ZSA9PT0gdW5kZWZpbmVkID8gbmV3IERhdGUodGhpcy5tYXgpIDogdGhpcy5lbmREYXRlO1xyXG4gICAgfSBlbHNlIGlmICghdGhpcy5kYXRlKSB7XHJcbiAgICAgIHRoaXMuc3RhcnREYXRlID1cclxuICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9PT0gdW5kZWZpbmVkID8gbmV3IERhdGUodGhpcy5taW4pIDogdGhpcy5zdGFydERhdGU7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZSA9XHJcbiAgICAgICAgdGhpcy5lbmREYXRlID09PSB1bmRlZmluZWQgPyBuZXcgRGF0ZSh0aGlzLm1heCkgOiB0aGlzLmVuZERhdGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhcHBseVR5cGVDaGFuZ2UoKSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xyXG4gICAgICBjYXNlIFRpbWVGaWx0ZXJUeXBlLkRBVEU6XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhcnREYXRlICE9PSB1bmRlZmluZWQgfHwgdGhpcy5lbmREYXRlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldEhvdXJzKDApO1xyXG4gICAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0TWludXRlcygwKTtcclxuICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldFNlY29uZHMoMCk7XHJcbiAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0SG91cnMoMjMpO1xyXG4gICAgICAgICAgdGhpcy5lbmREYXRlLnNldE1pbnV0ZXMoNTkpO1xyXG4gICAgICAgICAgdGhpcy5lbmREYXRlLnNldFNlY29uZHMoNTkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5USU1FOlxyXG4gICAgICAgIGlmICh0aGlzLnN0eWxlID09PSBUaW1lRmlsdGVyU3R5bGUuQ0FMRU5EQVIpIHtcclxuICAgICAgICAgIGlmICh0aGlzLnN0YXJ0RGF0ZS5nZXREYXkoKSAhPT0gdGhpcy5taW4uZ2V0RGF5KCkpIHtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRIb3VyID0gdGhpcy5zdGFydERhdGUuZ2V0SG91cnMoKTtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRNaW51dGUgPSB0aGlzLnN0YXJ0RGF0ZS5nZXRNaW51dGVzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlID0gdGhpcy5taW47XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldEhvdXJzKHNlbGVjdGVkSG91cik7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldE1pbnV0ZXMoc2VsZWN0ZWRNaW51dGUpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh0aGlzLmVuZERhdGUuZ2V0RGF5KCkgIT09IHRoaXMubWluLmdldERheSgpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSG91ciA9IHRoaXMuZW5kRGF0ZS5nZXRIb3VycygpO1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE1pbnV0ZSA9IHRoaXMuZW5kRGF0ZS5nZXRNaW51dGVzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZW5kRGF0ZSA9IHRoaXMubWluO1xyXG4gICAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0SG91cnMoc2VsZWN0ZWRIb3VyKTtcclxuICAgICAgICAgICAgdGhpcy5lbmREYXRlLnNldE1pbnV0ZXMoc2VsZWN0ZWRNaW51dGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzUmFuZ2UgJiYgdGhpcy5zdGVwID4gNjAgKiA2MCAqIDEwMDApIHtcclxuICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldE1pbnV0ZXMoMCk7XHJcbiAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZS5zZXRTZWNvbmRzKDApO1xyXG4gICAgICAgICAgdGhpcy5lbmREYXRlLnNldE1pbnV0ZXMoNTkpO1xyXG4gICAgICAgICAgdGhpcy5lbmREYXRlLnNldFNlY29uZHMoNTkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgLy8gZGF0ZXRpbWVcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgLy8gZG8gbm90aGluZ1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UmFuZ2VNaW5EYXRlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhcnREYXRlID09PSB1bmRlZmluZWQgPyB0aGlzLm1pbiA6IHRoaXMuc3RhcnREYXRlO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmFuZ2VNYXhEYXRlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5kRGF0ZSA9PT0gdW5kZWZpbmVkID8gdGhpcy5tYXggOiB0aGlzLmVuZERhdGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSb3VuZCBkYXRlIGF0IGEgY2VydGFpbiB0aW1lLCAxMCBtaW51dGVzIGJ5IERlZmF1bHRcclxuICAgKiBAcGFyYW0gZGF0ZSAtIERhdGUgdG8gUm91bmRcclxuICAgKiBAcGFyYW0gYXRNaW51dGUgLSByb3VuZCB0byBjbG9zZXN0ICdhdE1pbnV0ZScgbWludXRlLCByb3VuZGVkIDEwIGJ5IGRlZmF1bHRcclxuICAgKiBAcmV0dXJuIHRoZSByb3VuZGVkIGRhdGVcclxuICAgKi9cclxuICBnZXRSb3VuZGVkRGF0ZShkYXRlLCBhdE1pbnV0ZSA9IDEwKSB7XHJcbiAgICBjb25zdCBjb2VmZiA9IDEwMDAgKiA2MCAqIGF0TWludXRlO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKE1hdGgucm91bmQoZGF0ZS5nZXRUaW1lKCkgLyBjb2VmZikgKiBjb2VmZik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIHN0ZXAgKHBlcmlvZCkgZGVmaW5pdGlvbiBmcm9tIHRoZSBsYXllciBkaW1lbnNpb24gdGFnXHJcbiAgICogQHBhcmFtIHN0ZXAgVGhlIHN0ZXAgYXMgSVNPIDg2MDEgZXhhbXBsZTogUFQxME0gZm9yIDEwIE1pbnV0ZXNcclxuICAgKiBAcmV0dXJuIHRoZSBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHNcclxuICAgKi9cclxuICBnZXRTdGVwRGVmaW5pdGlvbihzdGVwKSB7XHJcbiAgICByZXR1cm4gbW9tZW50LmR1cmF0aW9uKHN0ZXApLmFzTWlsbGlzZWNvbmRzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJzdHlsZSA9PT0gJ2NhbGVuZGFyJyAmJiB0eXBlICE9PSAneWVhcidcIj5cbiAgPGRpdiAqbmdJZj1cIiFpc1JhbmdlXCIgY2xhc3M9XCJpZ28tY29sIGlnby1jb2wtMTAwIGlnby1jb2wtMTAwLW1cIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZVxuICAgICAgICBjbGFzcz1cInRpbWUtZmlsdGVyLW1hdC1kYXRldGltZXBpY2tlci10b2dnbGVcIlxuICAgICAgICBbZm9yXT1cImRhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgbWF0U3VmZml4XG4gICAgICA+PC9tYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlPlxuICAgICAgPG1hdC1kYXRldGltZXBpY2tlclxuICAgICAgICAjZGF0ZXRpbWVQaWNrZXJcbiAgICAgICAgdHlwZT1cInt7IHR5cGUgfX1cIlxuICAgICAgICBvcGVuT25Gb2N1cz1cInRydWVcIlxuICAgICAgICB0aW1lSW50ZXJ2YWw9XCI1XCJcbiAgICAgID48L21hdC1kYXRldGltZXBpY2tlcj5cbiAgICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBhdXRvY29tcGxldGU9XCJmYWxzZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5kYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIFttYXREYXRldGltZXBpY2tlcl09XCJkYXRldGltZVBpY2tlclwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiZGF0ZVwiXG4gICAgICAgIFttaW5dPVwibWluXCJcbiAgICAgICAgW21heF09XCJtYXhcIlxuICAgICAgICByZWFkb25seT1cInJlYWRvbmx5XCJcbiAgICAgICAgKGRhdGVDaGFuZ2UpPVwiaGFuZGxlRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cImlzUmFuZ2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWNvbCBpZ28tY29sLTEwMFwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZVxuICAgICAgICAgIGNsYXNzPVwidGltZS1maWx0ZXItbWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZVwiXG4gICAgICAgICAgW2Zvcl09XCJtaW5EYXRldGltZVBpY2tlclwiXG4gICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgID48L21hdC1kYXRldGltZXBpY2tlci10b2dnbGU+XG4gICAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXJcbiAgICAgICAgICAjbWluRGF0ZXRpbWVQaWNrZXJcbiAgICAgICAgICB0eXBlPVwie3sgdHlwZSB9fVwiXG4gICAgICAgICAgb3Blbk9uRm9jdXM9XCJ0cnVlXCJcbiAgICAgICAgICB0aW1lSW50ZXJ2YWw9XCI1XCJcbiAgICAgICAgPjwvbWF0LWRhdGV0aW1lcGlja2VyPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgIGF1dG9jb21wbGV0ZT1cImZhbHNlXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnRpbWVGaWx0ZXIuc3RhcnREYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgW21hdERhdGV0aW1lcGlja2VyXT1cIm1pbkRhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInN0YXJ0RGF0ZVwiXG4gICAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICAgIFttYXhdPVwiZ2V0UmFuZ2VNYXhEYXRlKClcIlxuICAgICAgICAgIHJlYWRvbmx5PVwicmVhZG9ubHlcIlxuICAgICAgICAgIChpbnB1dCk9XCIoc3RhcnREYXRlKVwiXG4gICAgICAgICAgKGRhdGVDaGFuZ2UpPVwiaGFuZGxlRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWNvbCBpZ28tY29sLTEwMFwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZVxuICAgICAgICAgIGNsYXNzPVwidGltZS1maWx0ZXItbWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZVwiXG4gICAgICAgICAgW2Zvcl09XCJtYXhEYXRldGltZVBpY2tlclwiXG4gICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgID48L21hdC1kYXRldGltZXBpY2tlci10b2dnbGU+XG4gICAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXJcbiAgICAgICAgICAjbWF4RGF0ZXRpbWVQaWNrZXJcbiAgICAgICAgICB0eXBlPVwie3sgdHlwZSB9fVwiXG4gICAgICAgICAgb3Blbk9uRm9jdXM9XCJ0cnVlXCJcbiAgICAgICAgICB0aW1lSW50ZXJ2YWw9XCI1XCJcbiAgICAgICAgPjwvbWF0LWRhdGV0aW1lcGlja2VyPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgIGF1dG9jb21wbGV0ZT1cImZhbHNlXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnRpbWVGaWx0ZXIuZW5kRGF0ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIFttYXREYXRldGltZXBpY2tlcl09XCJtYXhEYXRldGltZVBpY2tlclwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJlbmREYXRlXCJcbiAgICAgICAgICBbbWluXT1cImdldFJhbmdlTWluRGF0ZSgpXCJcbiAgICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgICAgcmVhZG9ubHk9XCJyZWFkb25seVwiXG4gICAgICAgICAgKGRhdGVDaGFuZ2UpPVwiaGFuZGxlRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJzdHlsZSA9PT0gJ2NhbGVuZGFyJyAmJiB0eXBlID09PSAneWVhcidcIj5cbiAgPGRpdiAqbmdJZj1cIiFpc1JhbmdlXCIgY2xhc3M9XCJpZ28tY29sIGlnby1jb2wtMTAwIGlnby1jb2wtMTAwLW1cIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LXNlbGVjdFxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnRpbWVGaWx0ZXIuZGF0ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInllYXJcIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImhhbmRsZVllYXJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ5ZWFyXCIgKm5nRm9yPVwibGV0IHllYXIgb2YgbGlzdFllYXJzXCI+e3tcbiAgICAgICAgICB5ZWFyXG4gICAgICAgIH19PC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJpc1JhbmdlXCI+XG4gICAgPGRpdiBjbGFzcz1cImlnby1jb2wgaWdvLWNvbC0xMDBcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnRpbWVGaWx0ZXIuc3RhcnREYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzdGFydFllYXJcIlxuICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiaGFuZGxlWWVhckNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICBbdmFsdWVdPVwic3RhcnRZZWFyXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdGFydFllYXIgb2Ygc3RhcnRMaXN0WWVhcnNcIlxuICAgICAgICAgICAgPnt7IHN0YXJ0WWVhciB9fTwvbWF0LW9wdGlvblxuICAgICAgICAgID5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJpZ28tY29sIGlnby1jb2wtMTAwXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby50aW1lRmlsdGVyLmVuZERhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImVuZFllYXJcIlxuICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiaGFuZGxlWWVhckNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJlbmRZZWFyXCIgKm5nRm9yPVwibGV0IGVuZFllYXIgb2YgZW5kTGlzdFllYXJzXCI+e3tcbiAgICAgICAgICAgIGVuZFllYXJcbiAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGJyIC8+XG48ZGl2XG4gICpuZ0lmPVwiIWlzUmFuZ2UgJiYgc3R5bGUgPT09ICdzbGlkZXInICYmIHR5cGUgPT09ICd5ZWFyJ1wiXG4gIGNsYXNzPVwiaWdvLWNvbCBpZ28tY29sLTEwMCBpZ28tY29sLTEwMC1tIG1hdC10eXBvZ3JhcGh5XCJcbj5cbiAgPHNwYW4+e3sgc3RhcnRZZWFyIH19PC9zcGFuPlxuICA8IS0tIFRPRE86IFRoZSAndGlja0ludGVydmFsJyBwcm9wZXJ0eSBubyBsb25nZXIgZXhpc3RzIC0tPlxuICA8bWF0LXNsaWRlclxuICAgIGlkPVwidGltZS1zbGlkZXJcIlxuICAgIHN0ZXA9XCJ7eyBzdGVwIH19XCJcbiAgICBbbWluXT1cInN0YXJ0WWVhclwiXG4gICAgW21heF09XCJlbmRZZWFyXCJcbiAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgIHRodW1iTGFiZWxcbiAgICBbZGlzYWJsZWRdPVwiIW9wdGlvbnMuZW5hYmxlZCB8fCAhbGF5ZXIudmlzaWJsZVwiXG4gICAgI25nU2xpZGVyXG4gICAgPjxpbnB1dFxuICAgICAgbWF0U2xpZGVyVGh1bWJcbiAgICAgIFt2YWx1ZV09XCJoYW5kbGVTbGlkZXJWYWx1ZSgpXCJcbiAgICAgIChpbnB1dCk9XCJcbiAgICAgICAgaGFuZGxlU2xpZGVyWWVhckNoYW5nZSh7XG4gICAgICAgICAgc291cmNlOiBuZ1NsaWRlclRodW1iLFxuICAgICAgICAgIHBhcmVudDogbmdTbGlkZXIsXG4gICAgICAgICAgdmFsdWU6IG5nU2xpZGVyVGh1bWIudmFsdWVcbiAgICAgICAgfSlcbiAgICAgIFwiXG4gICAgICAjbmdTbGlkZXJUaHVtYj1cIm1hdFNsaWRlclRodW1iXCJcbiAgICAgIChjaGFuZ2UpPVwiXG4gICAgICAgIGhhbmRsZVNsaWRlclllYXJDaGFuZ2Uoe1xuICAgICAgICAgIHNvdXJjZTogbmdTbGlkZXJUaHVtYixcbiAgICAgICAgICBwYXJlbnQ6IG5nU2xpZGVyLFxuICAgICAgICAgIHZhbHVlOiBuZ1NsaWRlclRodW1iLnZhbHVlXG4gICAgICAgIH0pXG4gICAgICBcIlxuICAgIC8+XG4gIDwvbWF0LXNsaWRlcj5cbiAgPHNwYW4+e3sgZW5kWWVhciB9fTwvc3Bhbj5cbiAgPHAgKm5nSWY9XCJvcHRpb25zLmVuYWJsZWRcIiBjbGFzcz1cImRhdGUtYmVsb3dcIj57eyB5ZWFyIH19PC9wPlxuICA8ZGl2ICNhY3Rpb25zIGNsYXNzPVwiaWdvLWxheWVyLWFjdGlvbnMtY29udGFpbmVyXCI+XG4gICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgIChjaGFuZ2UpPVwidG9nZ2xlRmlsdGVyU3RhdGUoKVwiXG4gICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5maWx0ZXIudG9nZ2xlRmlsdGVyU3RhdGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICBbY2hlY2tlZF09XCJvcHRpb25zLmVuYWJsZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFsYXllci52aXNpYmxlXCJcbiAgICA+XG4gICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgIDxidXR0b25cbiAgICAgIFtkaXNhYmxlZF09XCIhb3B0aW9ucy5lbmFibGVkIHx8ICFsYXllci52aXNpYmxlXCJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgIChjbGljayk9XCJwbGF5WWVhcigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cInt7IHBsYXlJY29uIH19XCI+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBbZGlzYWJsZWRdPVwiIW9wdGlvbnMuZW5hYmxlZCB8fCAhbGF5ZXIudmlzaWJsZVwiXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAoY2xpY2spPVwicmVzZXRGaWx0ZXIoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJ7eyByZXNldEljb24gfX1cIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2XG4gICpuZ0lmPVwic3R5bGUgPT09ICdzbGlkZXInICYmIHR5cGUgIT09ICd5ZWFyJ1wiXG4gIGNsYXNzPVwiaWdvLWNvbCBpZ28tY29sLTEwMCBpZ28tY29sLTEwMC1tXCJcbj5cbiAgPCEtLSBUT0RPOiBUaGUgJ3RpY2tJbnRlcnZhbCcgcHJvcGVydHkgbm8gbG9uZ2VyIGV4aXN0cyAtLT5cbiAgPG1hdC1zbGlkZXJcbiAgICBpZD1cInRpbWUtc2xpZGVyXCJcbiAgICBzdGVwPVwie3sgc3RlcCB9fVwiXG4gICAgW21pbl09XCJkYXRlVG9OdW1iZXIobWluKVwiXG4gICAgW21heF09XCJkYXRlVG9OdW1iZXIobWF4KVwiXG4gICAgdGh1bWJMYWJlbFxuICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiaGFuZGxlU2xpZGVyRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAjbmdTbGlkZXJcbiAgICA+PGlucHV0XG4gICAgICBtYXRTbGlkZXJUaHVtYlxuICAgICAgW3ZhbHVlXT1cImhhbmRsZVNsaWRlclZhbHVlKClcIlxuICAgICAgKGlucHV0KT1cIlxuICAgICAgICBoYW5kbGVTbGlkZXJEYXRlQ2hhbmdlKHtcbiAgICAgICAgICBzb3VyY2U6IG5nU2xpZGVyVGh1bWIsXG4gICAgICAgICAgcGFyZW50OiBuZ1NsaWRlcixcbiAgICAgICAgICB2YWx1ZTogbmdTbGlkZXJUaHVtYi52YWx1ZVxuICAgICAgICB9KVxuICAgICAgXCJcbiAgICAgICNuZ1NsaWRlclRodW1iPVwibWF0U2xpZGVyVGh1bWJcIlxuICAgIC8+XG4gIDwvbWF0LXNsaWRlcj5cbiAgPHAgY2xhc3M9XCJkYXRlLWJlbG93XCI+e3sgaGFuZGxlU2xpZGVyVG9vbHRpcCgpIH19PC9wPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwicGxheUZpbHRlcigkZXZlbnQpXCI+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJ7eyBwbGF5SWNvbiB9fVwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
755
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvdGltZS1maWx0ZXItZm9ybS90aW1lLWZpbHRlci1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1mb3JtL3RpbWUtZmlsdGVyLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUlyRCxPQUFPLEVBQUUsT0FBTyxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUUzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNmM0UsOEJBQWdFLHFCQUFBO0lBRTVELCtDQUk2QiwrQkFBQTtJQU83QixnQ0FVRTtJQUxBLHdPQUFrQiw2S0FJSixlQUFBLCtCQUF3QixDQUFBLElBSnBCOztJQUxwQixpQkFVRSxFQUFBLEVBQUE7Ozs7SUFuQkEsZUFBc0I7SUFBdEIseUJBQXNCO0lBS3RCLGVBQWlCO0lBQWpCLDZDQUFpQjtJQU9qQixlQUF5RDtJQUF6RCx3RkFBeUQ7SUFDekQsdUNBQW9DLHdCQUFBLG1CQUFBLG1CQUFBOzs7O0lBVTFDLDJCQUFxQixhQUFBLHFCQUFBO0lBR2YsK0NBSTZCLCtCQUFBO0lBTzdCLGlD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QWlFTTtZQUVOLHdFQThCTTs7WUF4T0Esc0VBQTZDO1lBc0Y3QyxlQUE2QztZQUE3QyxzRUFBNkM7WUFrRGhELGVBQXVEO1lBQXZELG9GQUF1RDtZQW1FdkQsZUFBMkM7WUFBM0Msb0VBQTJDOzs7dUZEbkxqQyx1QkFBdUI7Y0FMbkMsU0FBUzsyQkFDRSxzQkFBc0I7OERBS3ZCLEtBQUs7a0JBQWIsS0FBSztZQUVHLE9BQU87a0JBQWYsS0FBSztZQWdCRixZQUFZO2tCQURmLEtBQUs7WUF1QkksTUFBTTtrQkFBZixNQUFNO1lBRVAsVUFBVTtrQkFEVCxNQUFNO1lBRWUsUUFBUTtrQkFBN0IsU0FBUzttQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNsaWRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlcic7XHJcblxyXG5pbXBvcnQgb2xTb3VyY2VJbWFnZVdNUyBmcm9tICdvbC9zb3VyY2UvSW1hZ2VXTVMnO1xyXG5cclxuaW1wb3J0IHsgZGVmYXVsdCBhcyBtb21lbnQgfSBmcm9tICdtb21lbnQnO1xyXG5cclxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyJztcclxuaW1wb3J0IHsgVGltZUZpbHRlclN0eWxlLCBUaW1lRmlsdGVyVHlwZSB9IGZyb20gJy4uL3NoYXJlZC90aW1lLWZpbHRlci5lbnVtJztcclxuaW1wb3J0IHsgVGltZUZpbHRlck9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvdGltZS1maWx0ZXIuaW50ZXJmYWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXRpbWUtZmlsdGVyLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLWZpbHRlci1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90aW1lLWZpbHRlci1mb3JtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRpbWVGaWx0ZXJGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBsYXllcjogTGF5ZXI7XHJcblxyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFRpbWVGaWx0ZXJPcHRpb25zO1xyXG5cclxuICBwdWJsaWMgY29sb3IgPSAncHJpbWFyeSc7XHJcbiAgcHVibGljIGRhdGU6IERhdGU7XHJcbiAgcHVibGljIHN0YXJ0RGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgZW5kRGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgeWVhcjogYW55O1xyXG4gIHB1YmxpYyBzdGFydFllYXI6IGFueTtcclxuICBwdWJsaWMgZW5kWWVhcjogYW55O1xyXG4gIHB1YmxpYyBpbml0U3RhcnRZZWFyOiBhbnk7XHJcbiAgcHVibGljIGluaXRFbmRZZWFyOiBhbnk7XHJcbiAgcHVibGljIGxpc3RZZWFyczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gIHB1YmxpYyBzdGFydExpc3RZZWFyczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gIHB1YmxpYyBlbmRMaXN0WWVhcnM6IEFycmF5PHN0cmluZz4gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgY3VycmVudFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICBpZiAodGhpcy50eXBlICE9PSBUaW1lRmlsdGVyVHlwZS5ZRUFSKSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVBcnJheSA9IHZhbHVlLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgaWYgKHZhbHVlQXJyYXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gbmV3IERhdGUodmFsdWVBcnJheVswXSk7XHJcbiAgICAgICAgICBjb25zdCBlbmREYXRlID0gbmV3IERhdGUodmFsdWVBcnJheVsxXSk7XHJcbiAgICAgICAgICBpZiAoIWlzTmFOKHN0YXJ0RGF0ZS52YWx1ZU9mKCkpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlID0gc3RhcnREYXRlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCFpc05hTihlbmREYXRlLnZhbHVlT2YoKSkpIHtcclxuICAgICAgICAgICAgdGhpcy5lbmREYXRlID0gZW5kRGF0ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbnRlcnZhbDogYW55O1xyXG4gIHB1YmxpYyBwbGF5SWNvbiA9ICdwbGF5LWNpcmNsZSc7XHJcbiAgcHVibGljIHJlc2V0SWNvbiA9ICdyZXBsYXknO1xyXG5cclxuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZSB8IFtEYXRlLCBEYXRlXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgeWVhckNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZyB8IFtzdHJpbmcsIHN0cmluZ10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBWaWV3Q2hpbGQoTWF0U2xpZGVyKSBteVNsaWRlcjtcclxuXHJcbiAgZ2V0IHR5cGUoKTogVGltZUZpbHRlclR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy50eXBlID09PSB1bmRlZmluZWRcclxuICAgICAgPyBUaW1lRmlsdGVyVHlwZS5EQVRFXHJcbiAgICAgIDogdGhpcy5vcHRpb25zLnR5cGU7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNSYW5nZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucmFuZ2UgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICB0aGlzLm9wdGlvbnMuc3R5bGUgPT09IFRpbWVGaWx0ZXJTdHlsZS5TTElERVJcclxuICAgICAgPyBmYWxzZVxyXG4gICAgICA6IHRoaXMub3B0aW9ucy5yYW5nZTtcclxuICB9XHJcblxyXG4gIGdldCBzdHlsZSgpOiBUaW1lRmlsdGVyU3R5bGUge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5zdHlsZSA9PT0gdW5kZWZpbmVkXHJcbiAgICAgID8gVGltZUZpbHRlclN0eWxlLlNMSURFUlxyXG4gICAgICA6IHRoaXMub3B0aW9ucy5zdHlsZTtcclxuICB9XHJcblxyXG4gIGdldCBzdGVwKCk6IG51bWJlciB7XHJcbiAgICBsZXQgc3RlcCA9IDEwODAwMDAwO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5zdGVwID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcclxuICAgICAgICBjYXNlIFRpbWVGaWx0ZXJUeXBlLkRBVEU6XHJcbiAgICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5EQVRFVElNRTpcclxuICAgICAgICAgIHN0ZXAgPSAxMDgwMDAwMDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgVGltZUZpbHRlclR5cGUuVElNRTpcclxuICAgICAgICAgIHN0ZXAgPSAzNjAwMDAwO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5ZRUFSOlxyXG4gICAgICAgICAgc3RlcCA9IDMxNTM2MDAwMDAwO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHN0ZXAgPSAxMDgwMDAwMDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3RlcCA9IHRoaXMuZ2V0U3RlcERlZmluaXRpb24odGhpcy5vcHRpb25zLnN0ZXApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzdGVwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRpbWVJbnRlcnZhbCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy50aW1lSW50ZXJ2YWwgPT09IHVuZGVmaW5lZFxyXG4gICAgICA/IDIwMDBcclxuICAgICAgOiB0aGlzLm9wdGlvbnMudGltZUludGVydmFsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1pbigpOiBEYXRlIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMubWluKSB7XHJcbiAgICAgIGNvbnN0IG1pbiA9IG5ldyBEYXRlKHRoaXMub3B0aW9ucy5taW4pO1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUobWluLmdldFRpbWUoKSArIG1pbi5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBtYXgoKTogRGF0ZSB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLm1heCkge1xyXG4gICAgICBjb25zdCBtYXggPSBuZXcgRGF0ZSh0aGlzLm9wdGlvbnMubWF4KTtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKG1heC5nZXRUaW1lKCkgKyBtYXguZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgaXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnJhbmdlID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IHRoaXMub3B0aW9ucy5yYW5nZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPERhdGU+KSB7XHJcbiAgICB0aGlzLmRhdGVBZGFwdGVyLnNldExvY2FsZSgnZnInKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuc3RhcnREYXRlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBuZXcgRGF0ZSh0aGlzLm1pbik7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5lbmREYXRlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5lbmREYXRlID0gbmV3IERhdGUodGhpcy5tYXgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc3RhcnRZZWFyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zdGFydFllYXIgPSBuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZSkuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgdGhpcy5pbml0U3RhcnRZZWFyID0gdGhpcy5zdGFydFllYXI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5lbmRZZWFyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5lbmRZZWFyID0gbmV3IERhdGUodGhpcy5lbmREYXRlKS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICB0aGlzLmluaXRFbmRZZWFyID0gdGhpcy5lbmRZZWFyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5pc1JhbmdlKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSB0aGlzLnN0YXJ0WWVhcjsgaSA8PSB0aGlzLmVuZFllYXIgKyAxOyBpKyspIHtcclxuICAgICAgICB0aGlzLmxpc3RZZWFycy5wdXNoKGkpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFydFllYXI7IGkgPCB0aGlzLmVuZFllYXI7IGkrKykge1xyXG4gICAgICAgIHRoaXMuc3RhcnRMaXN0WWVhcnMucHVzaChpKTtcclxuICAgICAgfVxyXG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFydFllYXIgKyAxOyBpIDw9IHRoaXMuZW5kWWVhcjsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5lbmRMaXN0WWVhcnMucHVzaChpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5vcHRpb25zLmVuYWJsZWQgPVxyXG4gICAgICB0aGlzLm9wdGlvbnMuZW5hYmxlZCA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHRoaXMub3B0aW9ucy5lbmFibGVkO1xyXG4gICAgdGhpcy5jaGVja0ZpbHRlclZhbHVlKCk7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLmVuYWJsZWQpIHtcclxuICAgICAgaWYgKCF0aGlzLmlzUmFuZ2UgJiYgdGhpcy5zdHlsZSA9PT0gJ3NsaWRlcicgJiYgdGhpcy50eXBlID09PSAneWVhcicpIHtcclxuICAgICAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdCh0aGlzLnllYXIpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0b3JlQ3VycmVudEZpbHRlclZhbHVlKCk7XHJcbiAgICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KHVuZGVmaW5lZCk7IC8vIFRPRE86IEZJWCBUSElTIGZvciBBTEwgT1RIRVIgVFlQRVMgU1RZTEVTIE9SIFJBTkdFLlxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RvcmVDdXJyZW50RmlsdGVyVmFsdWUoKSB7XHJcbiAgICAvLyBUT0RPOiBGSVggVEhJUyBmb3IgQUxMIE9USEVSIFRZUEVTIFNUWUxFUyBPUiBSQU5HRS5cclxuICAgIGlmIChcclxuICAgICAgIXRoaXMuaXNSYW5nZSAmJlxyXG4gICAgICB0aGlzLnN0eWxlID09PSBUaW1lRmlsdGVyU3R5bGUuU0xJREVSICYmXHJcbiAgICAgIHRoaXMudHlwZSA9PT0gVGltZUZpbHRlclR5cGUuWUVBUlxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucy52YWx1ZSA9IHRoaXMueWVhci50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tGaWx0ZXJWYWx1ZSgpIHtcclxuICAgIGNvbnN0IG9sU291cmNlID0gdGhpcy5sYXllci5kYXRhU291cmNlLm9sIGFzIG9sU291cmNlSW1hZ2VXTVM7XHJcbiAgICBjb25zdCB0aW1lRnJvbVdtcyA9IG9sU291cmNlLmdldFBhcmFtcygpLlRJTUU7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLmlzUmFuZ2UgJiZcclxuICAgICAgdGhpcy5zdHlsZSA9PT0gVGltZUZpbHRlclN0eWxlLlNMSURFUiAmJlxyXG4gICAgICB0aGlzLnR5cGUgPT09IFRpbWVGaWx0ZXJUeXBlLllFQVJcclxuICAgICkge1xyXG4gICAgICBpZiAodGltZUZyb21XbXMpIHtcclxuICAgICAgICB0aGlzLnllYXIgPSBuZXcgRGF0ZSh0aW1lRnJvbVdtcy50b1N0cmluZygpKS5nZXRGdWxsWWVhcigpICsgMTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMudmFsdWUpIHtcclxuICAgICAgICB0aGlzLnllYXIgPSBuZXcgRGF0ZSh0aGlzLm9wdGlvbnMudmFsdWUudG9TdHJpbmcoKSkuZ2V0RnVsbFllYXIoKSArIDE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy55ZWFyID0gbmV3IERhdGUodGhpcy5taW4pLmdldEZ1bGxZZWFyKCkgKyAxO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICB0aGlzLmlzUmFuZ2UgJiZcclxuICAgICAgdGhpcy5zdHlsZSA9PT0gVGltZUZpbHRlclN0eWxlLkNBTEVOREFSICYmXHJcbiAgICAgIHRoaXMudHlwZSA9PT0gVGltZUZpbHRlclR5cGUuWUVBUlxyXG4gICAgKSB7XHJcbiAgICAgIGlmICh0aW1lRnJvbVdtcykge1xyXG4gICAgICAgIHRoaXMuc3RhcnRZZWFyID0gcGFyc2VJbnQodGltZUZyb21XbXMuc3Vic3RyKDAsIDQpLCAxMCk7XHJcbiAgICAgICAgdGhpcy5lbmRZZWFyID0gcGFyc2VJbnQodGltZUZyb21XbXMuc3Vic3RyKDUsIDQpLCAxMCk7XHJcbiAgICAgICAgY29uc3QgbmV3U3RhcnRMaXN0WWVhcnM6IGFueVtdID0gW107XHJcbiAgICAgICAgY29uc3QgbmV3RW5kTGlzdFllYXJzOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLmluaXRTdGFydFllYXI7IGkgPCB0aGlzLmVuZFllYXI7IGkrKykge1xyXG4gICAgICAgICAgbmV3U3RhcnRMaXN0WWVhcnMucHVzaChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc3RhcnRZZWFyICsgMTsgaSA8PSB0aGlzLmluaXRFbmRZZWFyOyBpKyspIHtcclxuICAgICAgICAgIG5ld0VuZExpc3RZZWFycy5wdXNoKGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN0YXJ0TGlzdFllYXJzID0gbmV3U3RhcnRMaXN0WWVhcnM7XHJcbiAgICAgICAgdGhpcy5lbmRMaXN0WWVhcnMgPSBuZXdFbmRMaXN0WWVhcnM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIFRPRE86IEZJWCBUSElTIGZvciBBTEwgT1RIRVIgVFlQRVMgU1RZTEVTIE9SIFJBTkdFLlxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRGF0ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNldHVwRGF0ZU91dHB1dCgpO1xyXG4gICAgdGhpcy5hcHBseVR5cGVDaGFuZ2UoKTtcclxuXHJcbiAgICAvLyBPbmx5IGlmIGlzIHJhbmdlLCB1c2UgMiBkYXRlcyB0byBtYWtlIHRoZSByYW5nZVxyXG4gICAgaWYgKHRoaXMuaXNSYW5nZSkge1xyXG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KFt0aGlzLnN0YXJ0RGF0ZSwgdGhpcy5lbmREYXRlXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuc3RhcnREYXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVllYXJDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuaXNSYW5nZSkge1xyXG4gICAgICB0aGlzLmVuZExpc3RZZWFycyA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5zdGFydFllYXIgKyAxOyBpIDw9IHRoaXMuaW5pdEVuZFllYXI7IGkrKykge1xyXG4gICAgICAgIHRoaXMuZW5kTGlzdFllYXJzLnB1c2goaSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zdGFydExpc3RZZWFycyA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5pbml0U3RhcnRZZWFyICsgMTsgaSA8IHRoaXMuZW5kWWVhcjsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5zdGFydExpc3RZZWFycy5wdXNoKGkpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KFt0aGlzLnN0YXJ0WWVhciwgdGhpcy5lbmRZZWFyXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdCh0aGlzLnllYXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlTGlzdFllYXJDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5oYW5kbGVZZWFyQ2hhbmdlKFt0aGlzLnN0YXJ0WWVhciwgdGhpcy5lbmRZZWFyXSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVMaXN0WWVhclN0YXJ0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQoW3RoaXMuc3RhcnREYXRlLCB0aGlzLmVuZERhdGVdKTtcclxuICB9XHJcblxyXG4gIGRhdGVUb051bWJlcihkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgIGxldCBuZXdEYXRlO1xyXG4gICAgaWYgKGRhdGUpIHtcclxuICAgICAgbmV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3RGF0ZSA9IG5ldyBEYXRlKHRoaXMubWluKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV3RGF0ZS5nZXRUaW1lKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTbGlkZXJUaHVtYkxhYmVsKGxhYmVsOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHRodW1iTGFiZWwgPSB0aGlzLmZpbmRUaHVtYkxhYmVsKFxyXG4gICAgICB0aGlzLm15U2xpZGVyLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlc1xyXG4gICAgKTtcclxuICAgIGlmICh0aHVtYkxhYmVsKSB7XHJcbiAgICAgIHRodW1iTGFiZWwudGV4dENvbnRlbnQgPSBsYWJlbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbmRUaHVtYkxhYmVsKHRlc3Q6IGFueVtdKTogYW55IHtcclxuICAgIGxldCB0aHVtYkxhYmVsO1xyXG5cclxuICAgIHRlc3QuZm9yRWFjaCgodmFsdWUpID0+IHtcclxuICAgICAgaWYgKHZhbHVlLmNsYXNzTmFtZSA9PT0gJ21hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCcpIHtcclxuICAgICAgICB0aHVtYkxhYmVsID0gdmFsdWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh2YWx1ZS5jaGlsZHJlbi5sZW5ndGggPiAwICYmICF0aHVtYkxhYmVsKSB7XHJcbiAgICAgICAgdGh1bWJMYWJlbCA9IHRoaXMuZmluZFRodW1iTGFiZWwodmFsdWUuY2hpbGROb2Rlcyk7XHJcbiAgICAgIH1cclxuICAgIH0sIHRoaXMpO1xyXG4gICAgcmV0dXJuIHRodW1iTGFiZWw7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVGaWx0ZXJTdGF0ZSgpIHtcclxuICAgIHRoaXMub3B0aW9ucy5lbmFibGVkID0gIXRoaXMub3B0aW9ucy5lbmFibGVkO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuZW5hYmxlZCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIXRoaXMuaXNSYW5nZSAmJlxyXG4gICAgICAgIFRpbWVGaWx0ZXJTdHlsZS5TTElERVIgJiZcclxuICAgICAgICB0aGlzLnR5cGUgPT09IFRpbWVGaWx0ZXJUeXBlLllFQVJcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQodGhpcy55ZWFyKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zdG9wRmlsdGVyKCk7XHJcbiAgICAgIHRoaXMuc3RvcmVDdXJyZW50RmlsdGVyVmFsdWUoKTtcclxuICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh1bmRlZmluZWQpOyAvLyBUT0RPOiBGSVggVEhJUyBmb3IgQUxMIE9USEVSIFRZUEVTIFNUWUxFUyBPUiBSQU5HRS5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0RmlsdGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZGF0ZSA9IG5ldyBEYXRlKHRoaXMubWluKTtcclxuICAgIHRoaXMueWVhciA9IHRoaXMuZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy5pc1JhbmdlICYmXHJcbiAgICAgIFRpbWVGaWx0ZXJTdHlsZS5TTElERVIgJiZcclxuICAgICAgdGhpcy50eXBlID09PSBUaW1lRmlsdGVyVHlwZS5ZRUFSXHJcbiAgICApIHtcclxuICAgICAgdGhpcy55ZWFyQ2hhbmdlLmVtaXQodGhpcy55ZWFyKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0dXBEYXRlT3V0cHV0KCk7XHJcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQodW5kZWZpbmVkKTsgLy8gVE9ETzogRklYIFRISVMgZm9yIEFMTCBPVEhFUiBUWVBFUyBTVFlMRVMgT1IgUkFOR0UuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwbGF5RmlsdGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmludGVydmFsKSB7XHJcbiAgICAgIHRoaXMuc3RvcEZpbHRlcigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wbGF5SWNvbiA9ICdwYXVzZS1jaXJjbGUnO1xyXG4gICAgICB0aGlzLmludGVydmFsID0gc2V0SW50ZXJ2YWwoXHJcbiAgICAgICAgKHRoYXQpID0+IHtcclxuICAgICAgICAgIGxldCBuZXdNaW5EYXRlTnVtYmVyO1xyXG4gICAgICAgICAgY29uc3QgbWF4RGF0ZU51bWJlciA9IG5ldyBEYXRlKHRoYXQubWF4KTtcclxuXHJcbiAgICAgICAgICBuZXdNaW5EYXRlTnVtYmVyID1cclxuICAgICAgICAgICAgdGhhdC5kYXRlID09PSB1bmRlZmluZWQgPyB0aGF0Lm1pbi5nZXRUaW1lKCkgOiB0aGF0LmRhdGUuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgbmV3TWluRGF0ZU51bWJlciArPSB0aGF0Lm15U2xpZGVyLnN0ZXA7XHJcbiAgICAgICAgICB0aGF0LmRhdGUgPSBuZXcgRGF0ZShuZXdNaW5EYXRlTnVtYmVyKTtcclxuXHJcbiAgICAgICAgICBpZiAobmV3TWluRGF0ZU51bWJlciA+IG1heERhdGVOdW1iZXIuZ2V0VGltZSgpKSB7XHJcbiAgICAgICAgICAgIHRoYXQuc3RvcEZpbHRlcigpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoYXQuaGFuZGxlRGF0ZUNoYW5nZSh7IHZhbHVlOiB0aGF0LmRhdGUsIGRhdGU6IHRoYXQuZGF0ZSB9KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHRoaXMudGltZUludGVydmFsLFxyXG4gICAgICAgIHRoaXNcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBsYXlZZWFyKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy55ZWFyICsgdGhpcy5teVNsaWRlci5zdGVwID5cclxuICAgICAgdGhpcy5tYXguZ2V0RnVsbFllYXIoKSArIHRoaXMubXlTbGlkZXIuc3RlcFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuc3RvcEZpbHRlcigpO1xyXG4gICAgICB0aGlzLnJlc2V0RmlsdGVyKGV2ZW50KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmludGVydmFsKSB7XHJcbiAgICAgIHRoaXMuc3RvcEZpbHRlcigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wbGF5SWNvbiA9ICdwYXVzZS1jaXJjbGUnO1xyXG4gICAgICB0aGlzLmludGVydmFsID0gc2V0SW50ZXJ2YWwoXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMueWVhciArIHRoaXMubXlTbGlkZXIuc3RlcCA+IHRoaXMubWF4LmdldEZ1bGxZZWFyKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9wRmlsdGVyKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnllYXIgPSB0aGlzLnllYXIgKyB0aGlzLm15U2xpZGVyLnN0ZXA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdCh0aGlzLnllYXIpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdGhpcy50aW1lSW50ZXJ2YWwsXHJcbiAgICAgICAgdGhpc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RvcEZpbHRlcigpIHtcclxuICAgIGlmICh0aGlzLmludGVydmFsKSB7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmludGVydmFsID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5wbGF5SWNvbiA9ICdwbGF5LWNpcmNsZSc7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTbGlkZXJEYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZGF0ZSA9IG5ldyBEYXRlKGV2ZW50LnZhbHVlKTtcclxuICAgIHRoaXMuc2V0U2xpZGVyVGh1bWJMYWJlbCh0aGlzLmhhbmRsZVNsaWRlclRvb2x0aXAoKSk7XHJcbiAgICB0aGlzLmhhbmRsZURhdGVDaGFuZ2UoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2xpZGVyWWVhckNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnllYXIgPSBldmVudC52YWx1ZTtcclxuICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KHRoaXMueWVhcik7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTbGlkZXJWYWx1ZSgpOiBudW1iZXIge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5jdXJyZW50ID09PSB0cnVlIHx8ICF0aGlzLm1pbikge1xyXG4gICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIHRoaXMuZGF0ZSA9IHRoaXMuZ2V0Um91bmRlZERhdGUoY3VycmVudERhdGUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVGltZUZpbHRlclR5cGUuWUVBUikge1xyXG4gICAgICByZXR1cm4gdGhpcy55ZWFyO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0ZSA9PT0gdW5kZWZpbmVkID8gdGhpcy5taW4uZ2V0VGltZSgpIDogdGhpcy5kYXRlLmdldFRpbWUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVNsaWRlclRvb2x0aXAoKSB7XHJcbiAgICBsZXQgbGFiZWw6IHN0cmluZztcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xyXG4gICAgICBjYXNlIFRpbWVGaWx0ZXJUeXBlLkRBVEU6XHJcbiAgICAgICAgbGFiZWwgPVxyXG4gICAgICAgICAgdGhpcy5kYXRlID09PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgPyB0aGlzLm1pbi50b0RhdGVTdHJpbmcoKVxyXG4gICAgICAgICAgICA6IHRoaXMuZGF0ZS50b0RhdGVTdHJpbmcoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5USU1FOlxyXG4gICAgICAgIGxhYmVsID1cclxuICAgICAgICAgIHRoaXMuZGF0ZSA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgID8gdGhpcy5taW4udG9UaW1lU3RyaW5nKClcclxuICAgICAgICAgICAgOiB0aGlzLmRhdGUudG9UaW1lU3RyaW5nKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIC8vIGRhdGV0aW1lXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgbGFiZWwgPVxyXG4gICAgICAgICAgdGhpcy5kYXRlID09PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgPyB0aGlzLm1pbi50b1VUQ1N0cmluZygpXHJcbiAgICAgICAgICAgIDogdGhpcy5kYXRlLnRvVVRDU3RyaW5nKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgc2V0dXBEYXRlT3V0cHV0KCkge1xyXG4gICAgaWYgKHRoaXMuc3R5bGUgPT09IFRpbWVGaWx0ZXJTdHlsZS5TTElERVIpIHtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBuZXcgRGF0ZSh0aGlzLmRhdGUpO1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZS5zZXRTZWNvbmRzKC0odGhpcy5zdGVwIC8gMTAwMCkpO1xyXG4gICAgICB0aGlzLmVuZERhdGUgPSBuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZSk7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZS5zZXRTZWNvbmRzKHRoaXMuc3RlcCAvIDEwMDApO1xyXG4gICAgfSBlbHNlIGlmICghdGhpcy5pc1JhbmdlICYmICEhdGhpcy5kYXRlKSB7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IG5ldyBEYXRlKHRoaXMuZGF0ZSk7XHJcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gbmV3IERhdGUodGhpcy5kYXRlKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5pc1JhbmdlICYmICghIXRoaXMuZGF0ZSB8fCAhdGhpcy5kYXRlKSkge1xyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9XHJcbiAgICAgICAgdGhpcy5zdGFydERhdGUgPT09IHVuZGVmaW5lZCA/IG5ldyBEYXRlKHRoaXMubWluKSA6IHRoaXMuc3RhcnREYXRlO1xyXG4gICAgICB0aGlzLmVuZERhdGUgPVxyXG4gICAgICAgIHRoaXMuZW5kRGF0ZSA9PT0gdW5kZWZpbmVkID8gbmV3IERhdGUodGhpcy5tYXgpIDogdGhpcy5lbmREYXRlO1xyXG4gICAgfSBlbHNlIGlmICghdGhpcy5kYXRlKSB7XHJcbiAgICAgIHRoaXMuc3RhcnREYXRlID1cclxuICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9PT0gdW5kZWZpbmVkID8gbmV3IERhdGUodGhpcy5taW4pIDogdGhpcy5zdGFydERhdGU7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZSA9XHJcbiAgICAgICAgdGhpcy5lbmREYXRlID09PSB1bmRlZmluZWQgPyBuZXcgRGF0ZSh0aGlzLm1heCkgOiB0aGlzLmVuZERhdGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhcHBseVR5cGVDaGFuZ2UoKSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xyXG4gICAgICBjYXNlIFRpbWVGaWx0ZXJUeXBlLkRBVEU6XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhcnREYXRlICE9PSB1bmRlZmluZWQgfHwgdGhpcy5lbmREYXRlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldEhvdXJzKDApO1xyXG4gICAgICAgICAgdGhpcy5zdGFydERhdGUuc2V0TWludXRlcygwKTtcclxuICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldFNlY29uZHMoMCk7XHJcbiAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0SG91cnMoMjMpO1xyXG4gICAgICAgICAgdGhpcy5lbmREYXRlLnNldE1pbnV0ZXMoNTkpO1xyXG4gICAgICAgICAgdGhpcy5lbmREYXRlLnNldFNlY29uZHMoNTkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBUaW1lRmlsdGVyVHlwZS5USU1FOlxyXG4gICAgICAgIGlmICh0aGlzLnN0eWxlID09PSBUaW1lRmlsdGVyU3R5bGUuQ0FMRU5EQVIpIHtcclxuICAgICAgICAgIGlmICh0aGlzLnN0YXJ0RGF0ZS5nZXREYXkoKSAhPT0gdGhpcy5taW4uZ2V0RGF5KCkpIHtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRIb3VyID0gdGhpcy5zdGFydERhdGUuZ2V0SG91cnMoKTtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRNaW51dGUgPSB0aGlzLnN0YXJ0RGF0ZS5nZXRNaW51dGVzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlID0gdGhpcy5taW47XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldEhvdXJzKHNlbGVjdGVkSG91cik7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldE1pbnV0ZXMoc2VsZWN0ZWRNaW51dGUpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh0aGlzLmVuZERhdGUuZ2V0RGF5KCkgIT09IHRoaXMubWluLmdldERheSgpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSG91ciA9IHRoaXMuZW5kRGF0ZS5nZXRIb3VycygpO1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE1pbnV0ZSA9IHRoaXMuZW5kRGF0ZS5nZXRNaW51dGVzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZW5kRGF0ZSA9IHRoaXMubWluO1xyXG4gICAgICAgICAgICB0aGlzLmVuZERhdGUuc2V0SG91cnMoc2VsZWN0ZWRIb3VyKTtcclxuICAgICAgICAgICAgdGhpcy5lbmREYXRlLnNldE1pbnV0ZXMoc2VsZWN0ZWRNaW51dGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzUmFuZ2UgJiYgdGhpcy5zdGVwID4gNjAgKiA2MCAqIDEwMDApIHtcclxuICAgICAgICAgIHRoaXMuc3RhcnREYXRlLnNldE1pbnV0ZXMoMCk7XHJcbiAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZS5zZXRTZWNvbmRzKDApO1xyXG4gICAgICAgICAgdGhpcy5lbmREYXRlLnNldE1pbnV0ZXMoNTkpO1xyXG4gICAgICAgICAgdGhpcy5lbmREYXRlLnNldFNlY29uZHMoNTkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgLy8gZGF0ZXRpbWVcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgLy8gZG8gbm90aGluZ1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UmFuZ2VNaW5EYXRlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhcnREYXRlID09PSB1bmRlZmluZWQgPyB0aGlzLm1pbiA6IHRoaXMuc3RhcnREYXRlO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmFuZ2VNYXhEYXRlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5kRGF0ZSA9PT0gdW5kZWZpbmVkID8gdGhpcy5tYXggOiB0aGlzLmVuZERhdGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSb3VuZCBkYXRlIGF0IGEgY2VydGFpbiB0aW1lLCAxMCBtaW51dGVzIGJ5IERlZmF1bHRcclxuICAgKiBAcGFyYW0gZGF0ZSAtIERhdGUgdG8gUm91bmRcclxuICAgKiBAcGFyYW0gYXRNaW51dGUgLSByb3VuZCB0byBjbG9zZXN0ICdhdE1pbnV0ZScgbWludXRlLCByb3VuZGVkIDEwIGJ5IGRlZmF1bHRcclxuICAgKiBAcmV0dXJuIHRoZSByb3VuZGVkIGRhdGVcclxuICAgKi9cclxuICBnZXRSb3VuZGVkRGF0ZShkYXRlLCBhdE1pbnV0ZSA9IDEwKSB7XHJcbiAgICBjb25zdCBjb2VmZiA9IDEwMDAgKiA2MCAqIGF0TWludXRlO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKE1hdGgucm91bmQoZGF0ZS5nZXRUaW1lKCkgLyBjb2VmZikgKiBjb2VmZik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIHN0ZXAgKHBlcmlvZCkgZGVmaW5pdGlvbiBmcm9tIHRoZSBsYXllciBkaW1lbnNpb24gdGFnXHJcbiAgICogQHBhcmFtIHN0ZXAgVGhlIHN0ZXAgYXMgSVNPIDg2MDEgZXhhbXBsZTogUFQxME0gZm9yIDEwIE1pbnV0ZXNcclxuICAgKiBAcmV0dXJuIHRoZSBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHNcclxuICAgKi9cclxuICBnZXRTdGVwRGVmaW5pdGlvbihzdGVwKSB7XHJcbiAgICByZXR1cm4gbW9tZW50LmR1cmF0aW9uKHN0ZXApLmFzTWlsbGlzZWNvbmRzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJzdHlsZSA9PT0gJ2NhbGVuZGFyJyAmJiB0eXBlICE9PSAneWVhcidcIj5cclxuICA8ZGl2ICpuZ0lmPVwiIWlzUmFuZ2VcIiBjbGFzcz1cImlnby1jb2wgaWdvLWNvbC0xMDAgaWdvLWNvbC0xMDAtbVwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZVxyXG4gICAgICAgIGNsYXNzPVwidGltZS1maWx0ZXItbWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZVwiXHJcbiAgICAgICAgW2Zvcl09XCJkYXRldGltZVBpY2tlclwiXHJcbiAgICAgICAgbWF0U3VmZml4XHJcbiAgICAgID48L21hdC1kYXRldGltZXBpY2tlci10b2dnbGU+XHJcbiAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXJcclxuICAgICAgICAjZGF0ZXRpbWVQaWNrZXJcclxuICAgICAgICB0eXBlPVwie3sgdHlwZSB9fVwiXHJcbiAgICAgICAgb3Blbk9uRm9jdXM9XCJ0cnVlXCJcclxuICAgICAgICB0aW1lSW50ZXJ2YWw9XCI1XCJcclxuICAgICAgPjwvbWF0LWRhdGV0aW1lcGlja2VyPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cImZhbHNlXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnRpbWVGaWx0ZXIuZGF0ZScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgIFttYXREYXRldGltZXBpY2tlcl09XCJkYXRldGltZVBpY2tlclwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRlXCJcclxuICAgICAgICBbbWluXT1cIm1pblwiXHJcbiAgICAgICAgW21heF09XCJtYXhcIlxyXG4gICAgICAgIHJlYWRvbmx5PVwicmVhZG9ubHlcIlxyXG4gICAgICAgIChkYXRlQ2hhbmdlKT1cImhhbmRsZURhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIC8+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwiaXNSYW5nZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlnby1jb2wgaWdvLWNvbC0xMDBcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlXHJcbiAgICAgICAgICBjbGFzcz1cInRpbWUtZmlsdGVyLW1hdC1kYXRldGltZXBpY2tlci10b2dnbGVcIlxyXG4gICAgICAgICAgW2Zvcl09XCJtaW5EYXRldGltZVBpY2tlclwiXHJcbiAgICAgICAgICBtYXRTdWZmaXhcclxuICAgICAgICA+PC9tYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXJcclxuICAgICAgICAgICNtaW5EYXRldGltZVBpY2tlclxyXG4gICAgICAgICAgdHlwZT1cInt7IHR5cGUgfX1cIlxyXG4gICAgICAgICAgb3Blbk9uRm9jdXM9XCJ0cnVlXCJcclxuICAgICAgICAgIHRpbWVJbnRlcnZhbD1cIjVcIlxyXG4gICAgICAgID48L21hdC1kYXRldGltZXBpY2tlcj5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBhdXRvY29tcGxldGU9XCJmYWxzZVwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnRpbWVGaWx0ZXIuc3RhcnREYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICBbbWF0RGF0ZXRpbWVwaWNrZXJdPVwibWluRGF0ZXRpbWVQaWNrZXJcIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzdGFydERhdGVcIlxyXG4gICAgICAgICAgW21pbl09XCJtaW5cIlxyXG4gICAgICAgICAgW21heF09XCJnZXRSYW5nZU1heERhdGUoKVwiXHJcbiAgICAgICAgICByZWFkb25seT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgIChpbnB1dCk9XCIoc3RhcnREYXRlKVwiXHJcbiAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJoYW5kbGVEYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWNvbCBpZ28tY29sLTEwMFwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1kYXRldGltZXBpY2tlci10b2dnbGVcclxuICAgICAgICAgIGNsYXNzPVwidGltZS1maWx0ZXItbWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZVwiXHJcbiAgICAgICAgICBbZm9yXT1cIm1heERhdGV0aW1lUGlja2VyXCJcclxuICAgICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgID48L21hdC1kYXRldGltZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1kYXRldGltZXBpY2tlclxyXG4gICAgICAgICAgI21heERhdGV0aW1lUGlja2VyXHJcbiAgICAgICAgICB0eXBlPVwie3sgdHlwZSB9fVwiXHJcbiAgICAgICAgICBvcGVuT25Gb2N1cz1cInRydWVcIlxyXG4gICAgICAgICAgdGltZUludGVydmFsPVwiNVwiXHJcbiAgICAgICAgPjwvbWF0LWRhdGV0aW1lcGlja2VyPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIGF1dG9jb21wbGV0ZT1cImZhbHNlXCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8udGltZUZpbHRlci5lbmREYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICBbbWF0RGF0ZXRpbWVwaWNrZXJdPVwibWF4RGF0ZXRpbWVQaWNrZXJcIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJlbmREYXRlXCJcclxuICAgICAgICAgIFttaW5dPVwiZ2V0UmFuZ2VNaW5EYXRlKClcIlxyXG4gICAgICAgICAgW21heF09XCJtYXhcIlxyXG4gICAgICAgICAgcmVhZG9ubHk9XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJoYW5kbGVEYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwic3R5bGUgPT09ICdjYWxlbmRhcicgJiYgdHlwZSA9PT0gJ3llYXInXCI+XHJcbiAgPGRpdiAqbmdJZj1cIiFpc1JhbmdlXCIgY2xhc3M9XCJpZ28tY29sIGlnby1jb2wtMTAwIGlnby1jb2wtMTAwLW1cIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnRpbWVGaWx0ZXIuZGF0ZScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwieWVhclwiXHJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJoYW5kbGVZZWFyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInllYXJcIiAqbmdGb3I9XCJsZXQgeWVhciBvZiBsaXN0WWVhcnNcIj57e1xyXG4gICAgICAgICAgeWVhclxyXG4gICAgICAgIH19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwiaXNSYW5nZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlnby1jb2wgaWdvLWNvbC0xMDBcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnRpbWVGaWx0ZXIuc3RhcnREYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInN0YXJ0WWVhclwiXHJcbiAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImhhbmRsZVllYXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICAgW3ZhbHVlXT1cInN0YXJ0WWVhclwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdGFydFllYXIgb2Ygc3RhcnRMaXN0WWVhcnNcIlxyXG4gICAgICAgICAgICA+e3sgc3RhcnRZZWFyIH19PC9tYXQtb3B0aW9uXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImlnby1jb2wgaWdvLWNvbC0xMDBcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnRpbWVGaWx0ZXIuZW5kRGF0ZScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJlbmRZZWFyXCJcclxuICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiaGFuZGxlWWVhckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiZW5kWWVhclwiICpuZ0Zvcj1cImxldCBlbmRZZWFyIG9mIGVuZExpc3RZZWFyc1wiPnt7XHJcbiAgICAgICAgICAgIGVuZFllYXJcclxuICAgICAgICAgIH19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxiciAvPlxyXG48ZGl2XHJcbiAgKm5nSWY9XCIhaXNSYW5nZSAmJiBzdHlsZSA9PT0gJ3NsaWRlcicgJiYgdHlwZSA9PT0gJ3llYXInXCJcclxuICBjbGFzcz1cImlnby1jb2wgaWdvLWNvbC0xMDAgaWdvLWNvbC0xMDAtbSBtYXQtdHlwb2dyYXBoeVwiXHJcbj5cclxuICA8c3Bhbj57eyBzdGFydFllYXIgfX08L3NwYW4+XHJcbiAgPCEtLSBUT0RPOiBUaGUgJ3RpY2tJbnRlcnZhbCcgcHJvcGVydHkgbm8gbG9uZ2VyIGV4aXN0cyAtLT5cclxuICA8bWF0LXNsaWRlclxyXG4gICAgaWQ9XCJ0aW1lLXNsaWRlclwiXHJcbiAgICBzdGVwPVwie3sgc3RlcCB9fVwiXHJcbiAgICBbbWluXT1cInN0YXJ0WWVhclwiXHJcbiAgICBbbWF4XT1cImVuZFllYXJcIlxyXG4gICAgW2NvbG9yXT1cImNvbG9yXCJcclxuICAgIHRodW1iTGFiZWxcclxuICAgIFtkaXNhYmxlZF09XCIhb3B0aW9ucy5lbmFibGVkIHx8ICFsYXllci52aXNpYmxlXCJcclxuICAgICNuZ1NsaWRlclxyXG4gICAgPjxpbnB1dFxyXG4gICAgICBtYXRTbGlkZXJUaHVtYlxyXG4gICAgICBbdmFsdWVdPVwiaGFuZGxlU2xpZGVyVmFsdWUoKVwiXHJcbiAgICAgIChpbnB1dCk9XCJcclxuICAgICAgICBoYW5kbGVTbGlkZXJZZWFyQ2hhbmdlKHtcclxuICAgICAgICAgIHNvdXJjZTogbmdTbGlkZXJUaHVtYixcclxuICAgICAgICAgIHBhcmVudDogbmdTbGlkZXIsXHJcbiAgICAgICAgICB2YWx1ZTogbmdTbGlkZXJUaHVtYi52YWx1ZVxyXG4gICAgICAgIH0pXHJcbiAgICAgIFwiXHJcbiAgICAgICNuZ1NsaWRlclRodW1iPVwibWF0U2xpZGVyVGh1bWJcIlxyXG4gICAgICAoY2hhbmdlKT1cIlxyXG4gICAgICAgIGhhbmRsZVNsaWRlclllYXJDaGFuZ2Uoe1xyXG4gICAgICAgICAgc291cmNlOiBuZ1NsaWRlclRodW1iLFxyXG4gICAgICAgICAgcGFyZW50OiBuZ1NsaWRlcixcclxuICAgICAgICAgIHZhbHVlOiBuZ1NsaWRlclRodW1iLnZhbHVlXHJcbiAgICAgICAgfSlcclxuICAgICAgXCJcclxuICAgIC8+XHJcbiAgPC9tYXQtc2xpZGVyPlxyXG4gIDxzcGFuPnt7IGVuZFllYXIgfX08L3NwYW4+XHJcbiAgPHAgKm5nSWY9XCJvcHRpb25zLmVuYWJsZWRcIiBjbGFzcz1cImRhdGUtYmVsb3dcIj57eyB5ZWFyIH19PC9wPlxyXG4gIDxkaXYgI2FjdGlvbnMgY2xhc3M9XCJpZ28tbGF5ZXItYWN0aW9ucy1jb250YWluZXJcIj5cclxuICAgIDxtYXQtc2xpZGUtdG9nZ2xlXHJcbiAgICAgIChjaGFuZ2UpPVwidG9nZ2xlRmlsdGVyU3RhdGUoKVwiXHJcbiAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXHJcbiAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5maWx0ZXIudG9nZ2xlRmlsdGVyU3RhdGUnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgW2NvbG9yXT1cImNvbG9yXCJcclxuICAgICAgW2NoZWNrZWRdPVwib3B0aW9ucy5lbmFibGVkXCJcclxuICAgICAgW2Rpc2FibGVkXT1cIiFsYXllci52aXNpYmxlXCJcclxuICAgID5cclxuICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgIDxidXR0b25cclxuICAgICAgW2Rpc2FibGVkXT1cIiFvcHRpb25zLmVuYWJsZWQgfHwgIWxheWVyLnZpc2libGVcIlxyXG4gICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgKGNsaWNrKT1cInBsYXlZZWFyKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cInt7IHBsYXlJY29uIH19XCI+PC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBbZGlzYWJsZWRdPVwiIW9wdGlvbnMuZW5hYmxlZCB8fCAhbGF5ZXIudmlzaWJsZVwiXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAoY2xpY2spPVwicmVzZXRGaWx0ZXIoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwie3sgcmVzZXRJY29uIH19XCI+PC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXZcclxuICAqbmdJZj1cInN0eWxlID09PSAnc2xpZGVyJyAmJiB0eXBlICE9PSAneWVhcidcIlxyXG4gIGNsYXNzPVwiaWdvLWNvbCBpZ28tY29sLTEwMCBpZ28tY29sLTEwMC1tXCJcclxuPlxyXG4gIDwhLS0gVE9ETzogVGhlICd0aWNrSW50ZXJ2YWwnIHByb3BlcnR5IG5vIGxvbmdlciBleGlzdHMgLS0+XHJcbiAgPG1hdC1zbGlkZXJcclxuICAgIGlkPVwidGltZS1zbGlkZXJcIlxyXG4gICAgc3RlcD1cInt7IHN0ZXAgfX1cIlxyXG4gICAgW21pbl09XCJkYXRlVG9OdW1iZXIobWluKVwiXHJcbiAgICBbbWF4XT1cImRhdGVUb051bWJlcihtYXgpXCJcclxuICAgIHRodW1iTGFiZWxcclxuICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiaGFuZGxlU2xpZGVyRGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICNuZ1NsaWRlclxyXG4gICAgPjxpbnB1dFxyXG4gICAgICBtYXRTbGlkZXJUaHVtYlxyXG4gICAgICBbdmFsdWVdPVwiaGFuZGxlU2xpZGVyVmFsdWUoKVwiXHJcbiAgICAgIChpbnB1dCk9XCJcclxuICAgICAgICBoYW5kbGVTbGlkZXJEYXRlQ2hhbmdlKHtcclxuICAgICAgICAgIHNvdXJjZTogbmdTbGlkZXJUaHVtYixcclxuICAgICAgICAgIHBhcmVudDogbmdTbGlkZXIsXHJcbiAgICAgICAgICB2YWx1ZTogbmdTbGlkZXJUaHVtYi52YWx1ZVxyXG4gICAgICAgIH0pXHJcbiAgICAgIFwiXHJcbiAgICAgICNuZ1NsaWRlclRodW1iPVwibWF0U2xpZGVyVGh1bWJcIlxyXG4gICAgLz5cclxuICA8L21hdC1zbGlkZXI+XHJcbiAgPHAgY2xhc3M9XCJkYXRlLWJlbG93XCI+e3sgaGFuZGxlU2xpZGVyVG9vbHRpcCgpIH19PC9wPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJwbGF5RmlsdGVyKCRldmVudClcIj5cclxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwie3sgcGxheUljb24gfX1cIj48L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG48L2Rpdj5cclxuIl19
@@ -115,10 +115,10 @@ export class TimeFilterItemComponent {
115
115
  }
116
116
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimeFilterItemComponent, [{
117
117
  type: Component,
118
- args: [{ selector: 'igo-time-filter-item', template: "<mat-list-item *ngIf=\"header\">\n <mat-icon\n class=\"igo-chevron\"\n matListItemIcon\n igoCollapse\n [target]=\"filters\"\n [collapsed]=\"filtersCollapsed\"\n (click)=\"toggleFiltersCollapsed()\"\n svgIcon=\"chevron-up\"\n >\n </mat-icon>\n\n <span\n matListItemTitle\n (click)=\"toggleLegendOnClick()\"\n [ngStyle]=\"{ cursor: filtersCollapsed ? 'default' : 'pointer' }\"\n >{{ layer.title }}</span\n >\n\n <button\n *ngIf=\"header\"\n mat-icon-button\n matListItemMeta\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n layer.visible\n ? ('igo.geo.layer.hideLayer' | translate)\n : ('igo.geo.layer.showLayer' | translate)\n \"\n (click)=\"layer.visible = !layer.visible\"\n >\n <mat-icon\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\n [svgIcon]=\"layer.visible ? 'eye' : 'eye-off'\"\n >\n </mat-icon>\n </button>\n</mat-list-item>\n\n<div #filters class=\"igo-datasource-filters-container\">\n <div #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend *ngIf=\"showLegend$ | async\" [layer]=\"layer\">\n </igo-layer-legend>\n </div>\n <igo-time-filter-form\n [layer]=\"layer\"\n [options]=\"datasource.options.timeFilter\"\n [currentValue]=\"datasource.options.params.TIME\"\n (change)=\"handleDateChange($event)\"\n (yearChange)=\"handleYearChange($event)\"\n >\n </igo-time-filter-form>\n</div>\n", styles: [":host{overflow:hidden}:host .igo-datasource-filters-container{text-align:center;width:100%;display:inline-block;padding-top:5px}:host .igo-layer-legend-container{padding-left:1.125em;width:calc(100% - 18px)}\n"] }]
118
+ args: [{ selector: 'igo-time-filter-item', template: "<mat-list-item *ngIf=\"header\">\r\n <mat-icon\r\n class=\"igo-chevron\"\r\n matListItemIcon\r\n igoCollapse\r\n [target]=\"filters\"\r\n [collapsed]=\"filtersCollapsed\"\r\n (click)=\"toggleFiltersCollapsed()\"\r\n svgIcon=\"chevron-up\"\r\n >\r\n </mat-icon>\r\n\r\n <span\r\n matListItemTitle\r\n (click)=\"toggleLegendOnClick()\"\r\n [ngStyle]=\"{ cursor: filtersCollapsed ? 'default' : 'pointer' }\"\r\n >{{ layer.title }}</span\r\n >\r\n\r\n <button\r\n *ngIf=\"header\"\r\n mat-icon-button\r\n matListItemMeta\r\n [color]=\"layer.visible ? 'primary' : 'default'\"\r\n collapsibleButton\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"\r\n layer.visible\r\n ? ('igo.geo.layer.hideLayer' | translate)\r\n : ('igo.geo.layer.showLayer' | translate)\r\n \"\r\n (click)=\"layer.visible = !layer.visible\"\r\n >\r\n <mat-icon\r\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\r\n [svgIcon]=\"layer.visible ? 'eye' : 'eye-off'\"\r\n >\r\n </mat-icon>\r\n </button>\r\n</mat-list-item>\r\n\r\n<div #filters class=\"igo-datasource-filters-container\">\r\n <div #legend class=\"igo-layer-legend-container\">\r\n <igo-layer-legend *ngIf=\"showLegend$ | async\" [layer]=\"layer\">\r\n </igo-layer-legend>\r\n </div>\r\n <igo-time-filter-form\r\n [layer]=\"layer\"\r\n [options]=\"datasource.options.timeFilter\"\r\n [currentValue]=\"datasource.options.params.TIME\"\r\n (change)=\"handleDateChange($event)\"\r\n (yearChange)=\"handleYearChange($event)\"\r\n >\r\n </igo-time-filter-form>\r\n</div>\r\n", styles: [":host{overflow:hidden}:host .igo-datasource-filters-container{text-align:center;width:100%;display:inline-block;padding-top:5px}:host .igo-layer-legend-container{padding-left:1.125em;width:calc(100% - 18px)}\n"] }]
119
119
  }], function () { return [{ type: i1.TimeFilterService }]; }, { header: [{
120
120
  type: Input
121
121
  }], layer: [{
122
122
  type: Input
123
123
  }] }); })();
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvdGltZS1maWx0ZXItaXRlbS90aW1lLWZpbHRlci1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1pdGVtL3RpbWUtZmlsdGVyLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBR3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0lDYWhFLGtDQWNDO0lBREMsd0xBQVMsNERBQThCLElBQUM7OztJQUV4QywrQkFJVzs7SUFDYixpQkFBUzs7O0lBaEJQLG9FQUErQyx3SUFBQTtJQVk3QyxlQUFnRTtJQUFoRSxnSEFBZ0UscURBQUE7Ozs7O0lBbkN0RSxxQ0FBOEIsa0JBQUE7SUFPMUIsZ0xBQVMsZUFBQSwrQkFBd0IsQ0FBQSxJQUFDO0lBR3BDLGlCQUFXO0lBRVgsK0JBSUc7SUFGRCw0S0FBUyxlQUFBLDRCQUFxQixDQUFBLElBQUM7SUFFOUIsWUFBaUI7SUFBQSxpQkFDbkI7SUFFRCwrRkFvQlM7SUFDWCxpQkFBZ0I7Ozs7SUFuQ1osZUFBa0I7SUFBbEIsNEJBQWtCLHNDQUFBO0lBVWxCLGVBQWdFO0lBQWhFLHFHQUFnRTtJQUMvRCxlQUFpQjtJQUFqQix3Q0FBaUI7SUFJakIsZUFBWTtJQUFaLG9DQUFZOzs7SUF3QmIsdUNBQ21COzs7SUFEMkIsb0NBQWU7O0FEL0JqRSxNQUFNLE9BQU8sdUJBQXVCO0lBZWQ7SUFkYixLQUFLLEdBQUcsU0FBUyxDQUFDO0lBQ3pCLFdBQVcsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkUsa0JBQWtCLEdBQTZCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pFLFlBQVksQ0FBZTtJQUVuQyxnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFFekIsTUFBTSxHQUFZLElBQUksQ0FBQztJQUV2QixLQUFLLENBQVE7SUFFdEIsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQXNDLENBQUM7SUFDM0QsQ0FBQztJQUNELFlBQW9CLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBQUcsQ0FBQztJQUU1RCxRQUFRO1FBQ04sTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztRQUM5RCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzdDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUErQjtRQUM5QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQXlCO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sWUFBWSxDQUFDLFNBQWtCO1FBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0M7SUFDSCxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqRCxDQUFDO2lGQXJEVSx1QkFBdUI7NkRBQXZCLHVCQUF1QjtZQ2JwQyw0RkF3Q2dCO1lBRWhCLGlDQUF1RCxnQkFBQTtZQUVuRCxrR0FDbUI7O1lBQ3JCLGlCQUFNO1lBQ04sK0NBTUM7WUFGQywwSEFBVSw0QkFBd0IsSUFBQyxxSEFDckIsNEJBQXdCLElBREg7WUFHckMsaUJBQXVCLEVBQUE7O1lBdERULGlDQUFZO1lBNENMLGVBQXlCO1lBQXpCLDREQUF5QjtZQUk1QyxlQUFlO1lBQWYsaUNBQWUsOENBQUEsb0RBQUE7Ozt1RkRuQ04sdUJBQXVCO2NBTG5DLFNBQVM7MkJBQ0Usc0JBQXNCO29FQVl2QixNQUFNO2tCQUFkLEtBQUs7WUFFRyxLQUFLO2tCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC90aW1lLWZpbHRlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXRpbWUtZmlsdGVyLWl0ZW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLWZpbHRlci1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90aW1lLWZpbHRlci1pdGVtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRpbWVGaWx0ZXJJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBjb2xvciA9ICdwcmltYXJ5JztcclxuICBzaG93TGVnZW5kJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XHJcbiAgaW5SZXNvbHV0aW9uUmFuZ2UkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xyXG4gIHByaXZhdGUgcmVzb2x1dGlvbiQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGZpbHRlcnNDb2xsYXBzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgaGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgbGF5ZXI6IExheWVyO1xyXG5cclxuICBnZXQgZGF0YXNvdXJjZSgpOiBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2Uge1xyXG4gICAgcmV0dXJuIHRoaXMubGF5ZXIuZGF0YVNvdXJjZSBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2U7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGltZUZpbHRlclNlcnZpY2U6IFRpbWVGaWx0ZXJTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJlc29sdXRpb24kID0gdGhpcy5sYXllci5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiQ7XHJcbiAgICB0aGlzLnJlc29sdXRpb24kJCA9IHJlc29sdXRpb24kLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLm5leHQodGhpcy5sYXllci5pc0luUmVzb2x1dGlvbnNSYW5nZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXNvbHV0aW9uJCQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVllYXJDaGFuZ2UoeWVhcjogc3RyaW5nIHwgW3N0cmluZywgc3RyaW5nXSkge1xyXG4gICAgdGhpcy50aW1lRmlsdGVyU2VydmljZS5maWx0ZXJCeVllYXIodGhpcy5kYXRhc291cmNlLCB5ZWFyKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZURhdGVDaGFuZ2UoZGF0ZTogRGF0ZSB8IFtEYXRlLCBEYXRlXSkge1xyXG4gICAgdGhpcy50aW1lRmlsdGVyU2VydmljZS5maWx0ZXJCeURhdGUodGhpcy5kYXRhc291cmNlLCBkYXRlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlTGVnZW5kKGNvbGxhcHNlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5sYXllci5sZWdlbmRDb2xsYXBzZWQgPSBjb2xsYXBzZWQ7XHJcbiAgICB0aGlzLnNob3dMZWdlbmQkLm5leHQoIWNvbGxhcHNlZCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVMZWdlbmRPbkNsaWNrKCkge1xyXG4gICAgaWYgKCF0aGlzLmZpbHRlcnNDb2xsYXBzZWQpIHtcclxuICAgICAgdGhpcy50b2dnbGVMZWdlbmQodGhpcy5zaG93TGVnZW5kJC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSgpIHtcclxuICAgIHRoaXMubGF5ZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVGaWx0ZXJzQ29sbGFwc2VkKCkge1xyXG4gICAgdGhpcy5maWx0ZXJzQ29sbGFwc2VkID0gIXRoaXMuZmlsdGVyc0NvbGxhcHNlZDtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1saXN0LWl0ZW0gKm5nSWY9XCJoZWFkZXJcIj5cbiAgPG1hdC1pY29uXG4gICAgY2xhc3M9XCJpZ28tY2hldnJvblwiXG4gICAgbWF0TGlzdEl0ZW1JY29uXG4gICAgaWdvQ29sbGFwc2VcbiAgICBbdGFyZ2V0XT1cImZpbHRlcnNcIlxuICAgIFtjb2xsYXBzZWRdPVwiZmlsdGVyc0NvbGxhcHNlZFwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZUZpbHRlcnNDb2xsYXBzZWQoKVwiXG4gICAgc3ZnSWNvbj1cImNoZXZyb24tdXBcIlxuICA+XG4gIDwvbWF0LWljb24+XG5cbiAgPHNwYW5cbiAgICBtYXRMaXN0SXRlbVRpdGxlXG4gICAgKGNsaWNrKT1cInRvZ2dsZUxlZ2VuZE9uQ2xpY2soKVwiXG4gICAgW25nU3R5bGVdPVwieyBjdXJzb3I6IGZpbHRlcnNDb2xsYXBzZWQgPyAnZGVmYXVsdCcgOiAncG9pbnRlcicgfVwiXG4gICAgPnt7IGxheWVyLnRpdGxlIH19PC9zcGFuXG4gID5cblxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJoZWFkZXJcIlxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIG1hdExpc3RJdGVtTWV0YVxuICAgIFtjb2xvcl09XCJsYXllci52aXNpYmxlID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcbiAgICBjb2xsYXBzaWJsZUJ1dHRvblxuICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgW21hdFRvb2x0aXBdPVwiXG4gICAgICBsYXllci52aXNpYmxlXG4gICAgICAgID8gKCdpZ28uZ2VvLmxheWVyLmhpZGVMYXllcicgfCB0cmFuc2xhdGUpXG4gICAgICAgIDogKCdpZ28uZ2VvLmxheWVyLnNob3dMYXllcicgfCB0cmFuc2xhdGUpXG4gICAgXCJcbiAgICAoY2xpY2spPVwibGF5ZXIudmlzaWJsZSA9ICFsYXllci52aXNpYmxlXCJcbiAgPlxuICAgIDxtYXQtaWNvblxuICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogKGluUmVzb2x1dGlvblJhbmdlJCB8IGFzeW5jKSA9PT0gZmFsc2UgfVwiXG4gICAgICBbc3ZnSWNvbl09XCJsYXllci52aXNpYmxlID8gJ2V5ZScgOiAnZXllLW9mZidcIlxuICAgID5cbiAgICA8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvbWF0LWxpc3QtaXRlbT5cblxuPGRpdiAjZmlsdGVycyBjbGFzcz1cImlnby1kYXRhc291cmNlLWZpbHRlcnMtY29udGFpbmVyXCI+XG4gIDxkaXYgI2xlZ2VuZCBjbGFzcz1cImlnby1sYXllci1sZWdlbmQtY29udGFpbmVyXCI+XG4gICAgPGlnby1sYXllci1sZWdlbmQgKm5nSWY9XCJzaG93TGVnZW5kJCB8IGFzeW5jXCIgW2xheWVyXT1cImxheWVyXCI+XG4gICAgPC9pZ28tbGF5ZXItbGVnZW5kPlxuICA8L2Rpdj5cbiAgPGlnby10aW1lLWZpbHRlci1mb3JtXG4gICAgW2xheWVyXT1cImxheWVyXCJcbiAgICBbb3B0aW9uc109XCJkYXRhc291cmNlLm9wdGlvbnMudGltZUZpbHRlclwiXG4gICAgW2N1cnJlbnRWYWx1ZV09XCJkYXRhc291cmNlLm9wdGlvbnMucGFyYW1zLlRJTUVcIlxuICAgIChjaGFuZ2UpPVwiaGFuZGxlRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAoeWVhckNoYW5nZSk9XCJoYW5kbGVZZWFyQ2hhbmdlKCRldmVudClcIlxuICA+XG4gIDwvaWdvLXRpbWUtZmlsdGVyLWZvcm0+XG48L2Rpdj5cbiJdfQ==
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvdGltZS1maWx0ZXItaXRlbS90aW1lLWZpbHRlci1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1pdGVtL3RpbWUtZmlsdGVyLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBR3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0lDYWhFLGtDQWNDO0lBREMsd0xBQVMsNERBQThCLElBQUM7OztJQUV4QywrQkFJVzs7SUFDYixpQkFBUzs7O0lBaEJQLG9FQUErQyx3SUFBQTtJQVk3QyxlQUFnRTtJQUFoRSxnSEFBZ0UscURBQUE7Ozs7O0lBbkN0RSxxQ0FBOEIsa0JBQUE7SUFPMUIsZ0xBQVMsZUFBQSwrQkFBd0IsQ0FBQSxJQUFDO0lBR3BDLGlCQUFXO0lBRVgsK0JBSUc7SUFGRCw0S0FBUyxlQUFBLDRCQUFxQixDQUFBLElBQUM7SUFFOUIsWUFBaUI7SUFBQSxpQkFDbkI7SUFFRCwrRkFvQlM7SUFDWCxpQkFBZ0I7Ozs7SUFuQ1osZUFBa0I7SUFBbEIsNEJBQWtCLHNDQUFBO0lBVWxCLGVBQWdFO0lBQWhFLHFHQUFnRTtJQUMvRCxlQUFpQjtJQUFqQix3Q0FBaUI7SUFJakIsZUFBWTtJQUFaLG9DQUFZOzs7SUF3QmIsdUNBQ21COzs7SUFEMkIsb0NBQWU7O0FEL0JqRSxNQUFNLE9BQU8sdUJBQXVCO0lBZWQ7SUFkYixLQUFLLEdBQUcsU0FBUyxDQUFDO0lBQ3pCLFdBQVcsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkUsa0JBQWtCLEdBQTZCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pFLFlBQVksQ0FBZTtJQUVuQyxnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFFekIsTUFBTSxHQUFZLElBQUksQ0FBQztJQUV2QixLQUFLLENBQVE7SUFFdEIsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQXNDLENBQUM7SUFDM0QsQ0FBQztJQUNELFlBQW9CLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBQUcsQ0FBQztJQUU1RCxRQUFRO1FBQ04sTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztRQUM5RCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzdDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUErQjtRQUM5QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQXlCO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sWUFBWSxDQUFDLFNBQWtCO1FBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0M7SUFDSCxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqRCxDQUFDO2lGQXJEVSx1QkFBdUI7NkRBQXZCLHVCQUF1QjtZQ2JwQyw0RkF3Q2dCO1lBRWhCLGlDQUF1RCxnQkFBQTtZQUVuRCxrR0FDbUI7O1lBQ3JCLGlCQUFNO1lBQ04sK0NBTUM7WUFGQywwSEFBVSw0QkFBd0IsSUFBQyxxSEFDckIsNEJBQXdCLElBREg7WUFHckMsaUJBQXVCLEVBQUE7O1lBdERULGlDQUFZO1lBNENMLGVBQXlCO1lBQXpCLDREQUF5QjtZQUk1QyxlQUFlO1lBQWYsaUNBQWUsOENBQUEsb0RBQUE7Ozt1RkRuQ04sdUJBQXVCO2NBTG5DLFNBQVM7MkJBQ0Usc0JBQXNCO29FQVl2QixNQUFNO2tCQUFkLEtBQUs7WUFFRyxLQUFLO2tCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC90aW1lLWZpbHRlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXRpbWUtZmlsdGVyLWl0ZW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLWZpbHRlci1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90aW1lLWZpbHRlci1pdGVtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRpbWVGaWx0ZXJJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBjb2xvciA9ICdwcmltYXJ5JztcclxuICBzaG93TGVnZW5kJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XHJcbiAgaW5SZXNvbHV0aW9uUmFuZ2UkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xyXG4gIHByaXZhdGUgcmVzb2x1dGlvbiQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGZpbHRlcnNDb2xsYXBzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgaGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgbGF5ZXI6IExheWVyO1xyXG5cclxuICBnZXQgZGF0YXNvdXJjZSgpOiBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2Uge1xyXG4gICAgcmV0dXJuIHRoaXMubGF5ZXIuZGF0YVNvdXJjZSBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2U7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGltZUZpbHRlclNlcnZpY2U6IFRpbWVGaWx0ZXJTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJlc29sdXRpb24kID0gdGhpcy5sYXllci5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiQ7XHJcbiAgICB0aGlzLnJlc29sdXRpb24kJCA9IHJlc29sdXRpb24kLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLm5leHQodGhpcy5sYXllci5pc0luUmVzb2x1dGlvbnNSYW5nZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXNvbHV0aW9uJCQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVllYXJDaGFuZ2UoeWVhcjogc3RyaW5nIHwgW3N0cmluZywgc3RyaW5nXSkge1xyXG4gICAgdGhpcy50aW1lRmlsdGVyU2VydmljZS5maWx0ZXJCeVllYXIodGhpcy5kYXRhc291cmNlLCB5ZWFyKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZURhdGVDaGFuZ2UoZGF0ZTogRGF0ZSB8IFtEYXRlLCBEYXRlXSkge1xyXG4gICAgdGhpcy50aW1lRmlsdGVyU2VydmljZS5maWx0ZXJCeURhdGUodGhpcy5kYXRhc291cmNlLCBkYXRlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlTGVnZW5kKGNvbGxhcHNlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5sYXllci5sZWdlbmRDb2xsYXBzZWQgPSBjb2xsYXBzZWQ7XHJcbiAgICB0aGlzLnNob3dMZWdlbmQkLm5leHQoIWNvbGxhcHNlZCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVMZWdlbmRPbkNsaWNrKCkge1xyXG4gICAgaWYgKCF0aGlzLmZpbHRlcnNDb2xsYXBzZWQpIHtcclxuICAgICAgdGhpcy50b2dnbGVMZWdlbmQodGhpcy5zaG93TGVnZW5kJC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSgpIHtcclxuICAgIHRoaXMubGF5ZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVGaWx0ZXJzQ29sbGFwc2VkKCkge1xyXG4gICAgdGhpcy5maWx0ZXJzQ29sbGFwc2VkID0gIXRoaXMuZmlsdGVyc0NvbGxhcHNlZDtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1saXN0LWl0ZW0gKm5nSWY9XCJoZWFkZXJcIj5cclxuICA8bWF0LWljb25cclxuICAgIGNsYXNzPVwiaWdvLWNoZXZyb25cIlxyXG4gICAgbWF0TGlzdEl0ZW1JY29uXHJcbiAgICBpZ29Db2xsYXBzZVxyXG4gICAgW3RhcmdldF09XCJmaWx0ZXJzXCJcclxuICAgIFtjb2xsYXBzZWRdPVwiZmlsdGVyc0NvbGxhcHNlZFwiXHJcbiAgICAoY2xpY2spPVwidG9nZ2xlRmlsdGVyc0NvbGxhcHNlZCgpXCJcclxuICAgIHN2Z0ljb249XCJjaGV2cm9uLXVwXCJcclxuICA+XHJcbiAgPC9tYXQtaWNvbj5cclxuXHJcbiAgPHNwYW5cclxuICAgIG1hdExpc3RJdGVtVGl0bGVcclxuICAgIChjbGljayk9XCJ0b2dnbGVMZWdlbmRPbkNsaWNrKClcIlxyXG4gICAgW25nU3R5bGVdPVwieyBjdXJzb3I6IGZpbHRlcnNDb2xsYXBzZWQgPyAnZGVmYXVsdCcgOiAncG9pbnRlcicgfVwiXHJcbiAgICA+e3sgbGF5ZXIudGl0bGUgfX08L3NwYW5cclxuICA+XHJcblxyXG4gIDxidXR0b25cclxuICAgICpuZ0lmPVwiaGVhZGVyXCJcclxuICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgbWF0TGlzdEl0ZW1NZXRhXHJcbiAgICBbY29sb3JdPVwibGF5ZXIudmlzaWJsZSA/ICdwcmltYXJ5JyA6ICdkZWZhdWx0J1wiXHJcbiAgICBjb2xsYXBzaWJsZUJ1dHRvblxyXG4gICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgW21hdFRvb2x0aXBdPVwiXHJcbiAgICAgIGxheWVyLnZpc2libGVcclxuICAgICAgICA/ICgnaWdvLmdlby5sYXllci5oaWRlTGF5ZXInIHwgdHJhbnNsYXRlKVxyXG4gICAgICAgIDogKCdpZ28uZ2VvLmxheWVyLnNob3dMYXllcicgfCB0cmFuc2xhdGUpXHJcbiAgICBcIlxyXG4gICAgKGNsaWNrKT1cImxheWVyLnZpc2libGUgPSAhbGF5ZXIudmlzaWJsZVwiXHJcbiAgPlxyXG4gICAgPG1hdC1pY29uXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IChpblJlc29sdXRpb25SYW5nZSQgfCBhc3luYykgPT09IGZhbHNlIH1cIlxyXG4gICAgICBbc3ZnSWNvbl09XCJsYXllci52aXNpYmxlID8gJ2V5ZScgOiAnZXllLW9mZidcIlxyXG4gICAgPlxyXG4gICAgPC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuPC9tYXQtbGlzdC1pdGVtPlxyXG5cclxuPGRpdiAjZmlsdGVycyBjbGFzcz1cImlnby1kYXRhc291cmNlLWZpbHRlcnMtY29udGFpbmVyXCI+XHJcbiAgPGRpdiAjbGVnZW5kIGNsYXNzPVwiaWdvLWxheWVyLWxlZ2VuZC1jb250YWluZXJcIj5cclxuICAgIDxpZ28tbGF5ZXItbGVnZW5kICpuZ0lmPVwic2hvd0xlZ2VuZCQgfCBhc3luY1wiIFtsYXllcl09XCJsYXllclwiPlxyXG4gICAgPC9pZ28tbGF5ZXItbGVnZW5kPlxyXG4gIDwvZGl2PlxyXG4gIDxpZ28tdGltZS1maWx0ZXItZm9ybVxyXG4gICAgW2xheWVyXT1cImxheWVyXCJcclxuICAgIFtvcHRpb25zXT1cImRhdGFzb3VyY2Uub3B0aW9ucy50aW1lRmlsdGVyXCJcclxuICAgIFtjdXJyZW50VmFsdWVdPVwiZGF0YXNvdXJjZS5vcHRpb25zLnBhcmFtcy5USU1FXCJcclxuICAgIChjaGFuZ2UpPVwiaGFuZGxlRGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICh5ZWFyQ2hhbmdlKT1cImhhbmRsZVllYXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgPlxyXG4gIDwvaWdvLXRpbWUtZmlsdGVyLWZvcm0+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -33,8 +33,8 @@ export class TimeFilterListComponent {
33
33
  }
34
34
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimeFilterListComponent, [{
35
35
  type: Component,
36
- args: [{ selector: 'igo-time-filter-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-list [navigation]=\"false\" [selection]=\"false\">\n <ng-template\n ngFor\n let-layer\n [ngForOf]=\"layers | filterableDataSource: 'time'\"\n >\n <igo-time-filter-item\n [header]=\"true\"\n igoListItem\n [layer]=\"layer\"\n ></igo-time-filter-item>\n </ng-template>\n</igo-list>\n" }]
36
+ args: [{ selector: 'igo-time-filter-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-list [navigation]=\"false\" [selection]=\"false\">\r\n <ng-template\r\n ngFor\r\n let-layer\r\n [ngForOf]=\"layers | filterableDataSource: 'time'\"\r\n >\r\n <igo-time-filter-item\r\n [header]=\"true\"\r\n igoListItem\r\n [layer]=\"layer\"\r\n ></igo-time-filter-item>\r\n </ng-template>\r\n</igo-list>\r\n" }]
37
37
  }], function () { return [{ type: i0.ChangeDetectorRef }]; }, { layers: [{
38
38
  type: Input
39
39
  }] }); })();
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvdGltZS1maWx0ZXItbGlzdC90aW1lLWZpbHRlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1saXN0L3RpbWUtZmlsdGVyLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQzs7O0lDQ25CLDBDQUl3Qjs7O0lBSHRCLDZCQUFlLG1CQUFBOztBRE9yQixNQUFNLE9BQU8sdUJBQXVCO0lBV2Q7SUFWcEIsSUFDSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUNPLE9BQU8sR0FBWSxFQUFFLENBQUM7SUFFOUIsWUFBb0IsS0FBd0I7UUFBeEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7SUFBRyxDQUFDO2lGQVhyQyx1QkFBdUI7NkRBQXZCLHVCQUF1QjtZQ2RwQyxtQ0FBbUQ7WUFDakQsd0ZBVWM7O1lBQ2hCLGlCQUFXOztZQVpELGtDQUFvQixvQkFBQTtZQUkxQixlQUFpRDtZQUFqRCxrRUFBaUQ7Ozt1RkRVeEMsdUJBQXVCO2NBTG5DLFNBQVM7MkJBQ0Usc0JBQXNCLG1CQUVmLHVCQUF1QixDQUFDLE1BQU07b0VBSTNDLE1BQU07a0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tdGltZS1maWx0ZXItbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtZmlsdGVyLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaW1lRmlsdGVyTGlzdENvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBnZXQgbGF5ZXJzKCk6IExheWVyW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xheWVycztcclxuICB9XHJcbiAgc2V0IGxheWVycyh2YWx1ZTogTGF5ZXJbXSkge1xyXG4gICAgdGhpcy5fbGF5ZXJzID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbGF5ZXJzOiBMYXllcltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG59XHJcbiIsIjxpZ28tbGlzdCBbbmF2aWdhdGlvbl09XCJmYWxzZVwiIFtzZWxlY3Rpb25dPVwiZmFsc2VcIj5cbiAgPG5nLXRlbXBsYXRlXG4gICAgbmdGb3JcbiAgICBsZXQtbGF5ZXJcbiAgICBbbmdGb3JPZl09XCJsYXllcnMgfCBmaWx0ZXJhYmxlRGF0YVNvdXJjZTogJ3RpbWUnXCJcbiAgPlxuICAgIDxpZ28tdGltZS1maWx0ZXItaXRlbVxuICAgICAgW2hlYWRlcl09XCJ0cnVlXCJcbiAgICAgIGlnb0xpc3RJdGVtXG4gICAgICBbbGF5ZXJdPVwibGF5ZXJcIlxuICAgID48L2lnby10aW1lLWZpbHRlci1pdGVtPlxuICA8L25nLXRlbXBsYXRlPlxuPC9pZ28tbGlzdD5cbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1maWx0ZXItbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvdGltZS1maWx0ZXItbGlzdC90aW1lLWZpbHRlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci90aW1lLWZpbHRlci1saXN0L3RpbWUtZmlsdGVyLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQzs7O0lDQ25CLDBDQUl3Qjs7O0lBSHRCLDZCQUFlLG1CQUFBOztBRE9yQixNQUFNLE9BQU8sdUJBQXVCO0lBV2Q7SUFWcEIsSUFDSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUNPLE9BQU8sR0FBWSxFQUFFLENBQUM7SUFFOUIsWUFBb0IsS0FBd0I7UUFBeEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7SUFBRyxDQUFDO2lGQVhyQyx1QkFBdUI7NkRBQXZCLHVCQUF1QjtZQ2RwQyxtQ0FBbUQ7WUFDakQsd0ZBVWM7O1lBQ2hCLGlCQUFXOztZQVpELGtDQUFvQixvQkFBQTtZQUkxQixlQUFpRDtZQUFqRCxrRUFBaUQ7Ozt1RkRVeEMsdUJBQXVCO2NBTG5DLFNBQVM7MkJBQ0Usc0JBQXNCLG1CQUVmLHVCQUF1QixDQUFDLE1BQU07b0VBSTNDLE1BQU07a0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tdGltZS1maWx0ZXItbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtZmlsdGVyLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaW1lRmlsdGVyTGlzdENvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBnZXQgbGF5ZXJzKCk6IExheWVyW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xheWVycztcclxuICB9XHJcbiAgc2V0IGxheWVycyh2YWx1ZTogTGF5ZXJbXSkge1xyXG4gICAgdGhpcy5fbGF5ZXJzID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbGF5ZXJzOiBMYXllcltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG59XHJcbiIsIjxpZ28tbGlzdCBbbmF2aWdhdGlvbl09XCJmYWxzZVwiIFtzZWxlY3Rpb25dPVwiZmFsc2VcIj5cclxuICA8bmctdGVtcGxhdGVcclxuICAgIG5nRm9yXHJcbiAgICBsZXQtbGF5ZXJcclxuICAgIFtuZ0Zvck9mXT1cImxheWVycyB8IGZpbHRlcmFibGVEYXRhU291cmNlOiAndGltZSdcIlxyXG4gID5cclxuICAgIDxpZ28tdGltZS1maWx0ZXItaXRlbVxyXG4gICAgICBbaGVhZGVyXT1cInRydWVcIlxyXG4gICAgICBpZ29MaXN0SXRlbVxyXG4gICAgICBbbGF5ZXJdPVwibGF5ZXJcIlxyXG4gICAgPjwvaWdvLXRpbWUtZmlsdGVyLWl0ZW0+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9pZ28tbGlzdD5cclxuIl19