@igo2/geo 16.0.0-rc.8 → 16.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) 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-item.component.mjs +2 -2
  4. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +2 -2
  5. package/esm2022/lib/datasource/shared/datasources/data.service.mjs +1 -1
  6. package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +1 -1
  7. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +1 -1
  8. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
  9. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +1 -1
  10. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +1 -1
  11. package/esm2022/lib/datasource/shared/options/options.service.mjs +1 -1
  12. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +2 -2
  13. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +2 -2
  14. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +2 -2
  15. package/esm2022/lib/directions/directions-sources/directions-source.mjs +1 -1
  16. package/esm2022/lib/download/download-button/download-button.component.mjs +2 -2
  17. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +2 -2
  18. package/esm2022/lib/draw/draw/draw-popup.component.mjs +2 -2
  19. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +2 -2
  20. package/esm2022/lib/draw/draw/draw.component.mjs +2 -2
  21. package/esm2022/lib/draw/shared/draw.enum.mjs +1 -1
  22. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +2 -2
  23. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +2 -2
  24. package/esm2022/lib/feature/shared/feature-store.utils.mjs +1 -1
  25. package/esm2022/lib/feature/shared/index.mjs +1 -1
  26. package/esm2022/lib/feature/shared/strategies/index.mjs +1 -1
  27. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +2 -2
  28. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +2 -2
  29. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +2 -2
  30. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +2 -2
  31. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +2 -2
  32. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +2 -2
  33. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +2 -2
  34. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +2 -2
  35. package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +1 -1
  36. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +1 -1
  37. package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +1 -1
  38. package/esm2022/lib/filter/shared/time-filter.enum.mjs +1 -1
  39. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +2 -2
  40. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +2 -2
  41. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +2 -2
  42. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +2 -2
  43. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +2 -2
  44. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +2 -2
  45. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +2 -2
  46. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +2 -2
  47. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +2 -2
  48. package/esm2022/lib/geometry/shared/geometry.errors.mjs +1 -1
  49. package/esm2022/lib/import-export/export-button/export-button.component.mjs +2 -2
  50. package/esm2022/lib/import-export/import-export/import-export.component.mjs +2 -2
  51. package/esm2022/lib/import-export/shared/export.type.mjs +1 -1
  52. package/esm2022/lib/import-export/shared/import.errors.mjs +1 -1
  53. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +2 -2
  54. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +2 -2
  55. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +2 -2
  56. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +2 -2
  57. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +2 -2
  58. package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +1 -1
  59. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +2 -2
  60. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +1 -1
  61. package/esm2022/lib/layer/shared/clusterParam.mjs +1 -1
  62. package/esm2022/lib/layer/shared/layers/legend.interface.mjs +1 -1
  63. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +2 -2
  64. package/esm2022/lib/layer/utils/layer.utils.mjs +1 -1
  65. package/esm2022/lib/layer/utils/outputLegend.mjs +1 -1
  66. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +2 -2
  67. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +2 -2
  68. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +2 -2
  69. package/esm2022/lib/map/info-section/info-section.component.mjs +2 -2
  70. package/esm2022/lib/map/map-center/map-center.component.mjs +2 -2
  71. package/esm2022/lib/map/menu-button/menu-button.component.mjs +2 -2
  72. package/esm2022/lib/map/offline-button/offline-button.component.mjs +2 -2
  73. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +2 -2
  74. package/esm2022/lib/map/shared/controllers/index.mjs +1 -1
  75. package/esm2022/lib/map/shared/index.mjs +1 -1
  76. package/esm2022/lib/map/shared/map.interface.mjs +1 -1
  77. package/esm2022/lib/map/shared/projection.utils.mjs +1 -1
  78. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +2 -2
  79. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +2 -2
  80. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +2 -2
  81. package/esm2022/lib/measure/measure.module.mjs +1 -1
  82. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +2 -2
  83. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +2 -2
  84. package/esm2022/lib/measure/measurer/measurer.component.mjs +2 -2
  85. package/esm2022/lib/measure/shared/measure.enum.mjs +1 -1
  86. package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
  87. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +2 -2
  88. package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +1 -1
  89. package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  90. package/esm2022/lib/offline/layerDB/index.mjs +1 -1
  91. package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +1 -1
  92. package/esm2022/lib/overlay/shared/overlay.enum.mjs +1 -1
  93. package/esm2022/lib/overlay/shared/overlay.utils.mjs +1 -1
  94. package/esm2022/lib/print/print/print.component.mjs +2 -2
  95. package/esm2022/lib/print/print-form/print-form.component.mjs +2 -2
  96. package/esm2022/lib/print/shared/geopdf.mjs +1 -1
  97. package/esm2022/lib/print/shared/print.service.mjs +4 -2
  98. package/esm2022/lib/query/shared/query.utils.mjs +1 -1
  99. package/esm2022/lib/search/search-bar/search-bar.component.mjs +2 -2
  100. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +2 -2
  101. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +2 -2
  102. package/esm2022/lib/search/search-results/search-results-item.component.mjs +2 -2
  103. package/esm2022/lib/search/search-results/search-results.component.mjs +2 -2
  104. package/esm2022/lib/search/search-selector/search-selector.component.mjs +2 -2
  105. package/esm2022/lib/search/shared/search.enums.mjs +1 -1
  106. package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
  107. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  108. package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +1 -1
  109. package/esm2022/lib/style/index.mjs +1 -1
  110. package/esm2022/lib/style/shared/font.enum.mjs +1 -1
  111. package/esm2022/lib/style/shared/index.mjs +1 -1
  112. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +2 -2
  113. package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +1 -1
  114. package/esm2022/lib/toast/toast.component.mjs +2 -2
  115. package/esm2022/lib/utils/googleLinks.mjs +1 -1
  116. package/esm2022/lib/utils/index.mjs +1 -1
  117. package/esm2022/lib/utils/osmLinks.mjs +1 -1
  118. package/esm2022/lib/utils/propertyTypeDetector/index.mjs +1 -1
  119. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +1 -1
  120. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +2 -2
  121. package/esm2022/lib/workspace/confirmation-popup/index.mjs +1 -1
  122. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +2 -2
  123. package/fesm2022/igo2-geo.mjs +70 -68
  124. package/fesm2022/igo2-geo.mjs.map +1 -1
  125. package/lib/directions/directions-results/directions-results.theming.scss +10 -10
  126. package/lib/directions/directions.theming.scss +6 -6
  127. package/lib/draw/draw.theming.scss +32 -32
  128. package/lib/feature/feature-details/feature-details.theming.scss +16 -16
  129. package/lib/feature/feature.theming.scss +4 -4
  130. package/lib/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +18 -18
  131. package/lib/filter/time-filter-form/time-filter-form.theming.scss +5 -5
  132. package/lib/layer/layer-legend/layer-legend.theming.scss +10 -10
  133. package/lib/map/map-browser/map-browser.theming.scss +46 -46
  134. package/lib/map/map.theming.scss +9 -9
  135. package/lib/map/zoom-button/zoom-button.theming.scss +32 -32
  136. package/lib/measure/measure.theming.scss +5 -5
  137. package/lib/measure/measurer/measurer.theming.scss +26 -26
  138. package/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +14 -14
  139. package/lib/workspace/workspace.theming.scss +6 -6
  140. package/package.json +4 -4
@@ -659,7 +659,7 @@ export class DrawPopupComponent {
659
659
  }
660
660
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawPopupComponent, [{
661
661
  type: Component,
662
- args: [{ selector: 'igo-draw-popup-component', template: "<h2 mat-dialog-title>\n {{ 'igo.geo.draw.popupTitle' | translate }}\n</h2>\n\n<ng-container *ngIf=\"labelFlag !== labelType.Custom\">\n <div mat-dialog-content class=\"geometry-type-toggle\">\n <div class=\"button-toggle-container\">\n <mat-button-toggle-group\n (change)=\"onLabelTypeChange($event.value)\"\n [value]=\"customOrPredefined\"\n >\n <mat-button-toggle [value]=\"labelType.Custom\">\n {{ 'igo.geo.draw.labelType.custom' | translate }}\n </mat-button-toggle>\n <mat-button-toggle [value]=\"labelType.Predefined\">\n {{ 'igo.geo.draw.labelType.predefined' | translate }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n <div>\n <p>\n {{ 'igo.geo.draw.builtInInstructions' | translate }}\n </p>\n <mat-radio-group *ngIf=\"olGeometryType !== 'Polygon'\">\n <mat-radio-button\n *ngFor=\"let option of arrayBuiltInType\"\n [value]=\"option.value\"\n [disabled]=\"optionAvailable(option.value)\"\n (change)=\"onLabelTypeChange($event.value)\"\n [checked]=\"option.checked\"\n >\n {{ getProperLengthLabel(option.value) }}\n </mat-radio-button>\n </mat-radio-group>\n <ng-container *ngIf=\"olGeometryType === 'Polygon'\">\n <mat-checkbox\n *ngFor=\"let option of arrayBuiltInType\"\n class=\"mat-typography\"\n [value]=\"option.value\"\n [disabled]=\"optionAvailable(option.value)\"\n (change)=\"onLabelTypeChange($event.source.value, $event.checked)\"\n [checked]=\"option.checked\"\n >\n {{ getProperLengthLabel(option.value) }}\n </mat-checkbox>\n </ng-container>\n <div *ngIf=\"labelFlag === labelType.Coordinates\" class=\"fields-container\">\n <mat-form-field class=\"readOnly-Input\">\n <mat-label>(Latitude, Longitude)</mat-label>\n <input\n #input\n matInput\n placeholder=\"(Latitude, Longitude)\"\n value=\"{{ currentCoordinates }}\"\n readonly\n />\n </mat-form-field>\n <mat-form-field class=\"unit-field\">\n <mat-select\n [value]=\"coordinatesMeasureUnit\"\n (selectionChange)=\"onChangeCoordinateUnit($event.value)\"\n >\n <mat-option *ngFor=\"let unit of allCoordinatesUnits\" [value]=\"unit\">\n {{ unit }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div\n *ngIf=\"labelFlag === labelType.Length || polygonCheck === 2\"\n class=\"fields-container\"\n >\n <mat-form-field class=\"readOnly-Input\">\n <mat-label>{{ lengthLabelT }}</mat-label>\n <input\n #input\n matInput\n placeholder=\"{{ lengthLabelT }}\"\n value=\"{{ currentLength }}\"\n readonly\n />\n </mat-form-field>\n <mat-form-field class=\"unit-field\">\n <mat-select\n [value]=\"lengthMeasureUnit\"\n (selectionChange)=\"onChangeLengthUnit($event.value)\"\n >\n <mat-option *ngFor=\"let unit of allLengthUnits\" [value]=\"unit\">\n {{ getLengthUnitEnum(unit) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div\n *ngIf=\"labelFlag === labelType.Area || polygonCheck === 2\"\n class=\"fields-container\"\n >\n <mat-form-field class=\"readOnly-Input\">\n <mat-label>{{ 'igo.geo.draw.labelType.Area' | translate }}</mat-label>\n <input\n #input\n matInput\n placeholder=\"{{ 'igo.geo.draw.labelType.Area' | translate }}\"\n value=\"{{ currentArea }}\"\n readonly\n />\n </mat-form-field>\n <mat-form-field class=\"unit-field\">\n <mat-select\n [value]=\"areaMeasureUnit\"\n (selectionChange)=\"onChangeAreaUnit($event.value)\"\n >\n <mat-option *ngFor=\"let unit of allAreaUnits\" [value]=\"unit\">\n {{ getAreaUnitEnum(unit) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div mat-dialog-actions>\n <button mat-raised-button (click)=\"cancelDrawing()\">\n {{ 'igo.geo.draw.cancel' | translate }}\n </button>\n <button mat-raised-button color=\"primary\" (click)=\"confirm()\">\n {{ noLabelButton() }}\n </button>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"labelFlag === labelType.Custom\">\n <div mat-dialog-content class=\"geometry-type-toggle\">\n <div class=\"button-toggle-container\">\n <mat-button-toggle-group\n (change)=\"onLabelTypeChange($event.value)\"\n [value]=\"customOrPredefined\"\n >\n <mat-button-toggle [value]=\"labelType.Custom\">\n {{ 'igo.geo.draw.labelType.custom' | translate }}\n </mat-button-toggle>\n <mat-button-toggle [value]=\"labelType.Predefined\">\n {{ 'igo.geo.draw.labelType.predefined' | translate }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n <p>\n {{ 'igo.geo.draw.dialogInstruction' | translate }}\n </p>\n <mat-form-field class=\"input\">\n <mat-label>{{ 'igo.geo.draw.dialogTitle' | translate }}</mat-label>\n <input\n #input\n matInput\n (select)=\"(true)\"\n (input)=\"getLabelLength($event.target.value)\"\n placeholder=\"{{ 'igo.geo.draw.dialogTitle' | translate }}\"\n value=\"{{ currentLabel }}\"\n cdkFocusInitial\n />\n </mat-form-field>\n </div>\n\n <div mat-dialog-actions>\n <button mat-raised-button (click)=\"cancelDrawing()\">\n {{ 'igo.geo.draw.cancel' | translate }}\n </button>\n <button mat-raised-button color=\"primary\" (click)=\"confirm(input.value)\">\n {{ noLabelButton() }}\n </button>\n </div>\n</ng-container>\n", styles: [":host .mat-mdc-radio-button~.mat-radio-button{margin-left:12px}:host .readOnly-Input{width:200px!important}:host .button-toggle-container{margin-bottom:12px}:host .unit-field{margin-left:12px}:host .unit-field ::ng-deep .mat-mdc-form-field-infix{width:-moz-fit-content;width:fit-content}:host .unit-field ::ng-deep .mat-mdc-select-min-line{padding-right:24px}:host .mat-mdc-form-field{position:sticky!important}:host .coordinatesInputView{top:5em!important}:host .mat-mdc-dialog-actions{display:flex!important;justify-content:flex-end}:host .input{width:auto!important}:host .mat-button-toggle-group,:host .mat-button-toggle{width:100%}:host mat-checkbox{margin-right:10px}:host ::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{display:none}\n"] }]
662
+ args: [{ selector: 'igo-draw-popup-component', template: "<h2 mat-dialog-title>\r\n {{ 'igo.geo.draw.popupTitle' | translate }}\r\n</h2>\r\n\r\n<ng-container *ngIf=\"labelFlag !== labelType.Custom\">\r\n <div mat-dialog-content class=\"geometry-type-toggle\">\r\n <div class=\"button-toggle-container\">\r\n <mat-button-toggle-group\r\n (change)=\"onLabelTypeChange($event.value)\"\r\n [value]=\"customOrPredefined\"\r\n >\r\n <mat-button-toggle [value]=\"labelType.Custom\">\r\n {{ 'igo.geo.draw.labelType.custom' | translate }}\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"labelType.Predefined\">\r\n {{ 'igo.geo.draw.labelType.predefined' | translate }}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n <div>\r\n <p>\r\n {{ 'igo.geo.draw.builtInInstructions' | translate }}\r\n </p>\r\n <mat-radio-group *ngIf=\"olGeometryType !== 'Polygon'\">\r\n <mat-radio-button\r\n *ngFor=\"let option of arrayBuiltInType\"\r\n [value]=\"option.value\"\r\n [disabled]=\"optionAvailable(option.value)\"\r\n (change)=\"onLabelTypeChange($event.value)\"\r\n [checked]=\"option.checked\"\r\n >\r\n {{ getProperLengthLabel(option.value) }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n <ng-container *ngIf=\"olGeometryType === 'Polygon'\">\r\n <mat-checkbox\r\n *ngFor=\"let option of arrayBuiltInType\"\r\n class=\"mat-typography\"\r\n [value]=\"option.value\"\r\n [disabled]=\"optionAvailable(option.value)\"\r\n (change)=\"onLabelTypeChange($event.source.value, $event.checked)\"\r\n [checked]=\"option.checked\"\r\n >\r\n {{ getProperLengthLabel(option.value) }}\r\n </mat-checkbox>\r\n </ng-container>\r\n <div *ngIf=\"labelFlag === labelType.Coordinates\" class=\"fields-container\">\r\n <mat-form-field class=\"readOnly-Input\">\r\n <mat-label>(Latitude, Longitude)</mat-label>\r\n <input\r\n #input\r\n matInput\r\n placeholder=\"(Latitude, Longitude)\"\r\n value=\"{{ currentCoordinates }}\"\r\n readonly\r\n />\r\n </mat-form-field>\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"coordinatesMeasureUnit\"\r\n (selectionChange)=\"onChangeCoordinateUnit($event.value)\"\r\n >\r\n <mat-option *ngFor=\"let unit of allCoordinatesUnits\" [value]=\"unit\">\r\n {{ unit }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div\r\n *ngIf=\"labelFlag === labelType.Length || polygonCheck === 2\"\r\n class=\"fields-container\"\r\n >\r\n <mat-form-field class=\"readOnly-Input\">\r\n <mat-label>{{ lengthLabelT }}</mat-label>\r\n <input\r\n #input\r\n matInput\r\n placeholder=\"{{ lengthLabelT }}\"\r\n value=\"{{ currentLength }}\"\r\n readonly\r\n />\r\n </mat-form-field>\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"lengthMeasureUnit\"\r\n (selectionChange)=\"onChangeLengthUnit($event.value)\"\r\n >\r\n <mat-option *ngFor=\"let unit of allLengthUnits\" [value]=\"unit\">\r\n {{ getLengthUnitEnum(unit) }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div\r\n *ngIf=\"labelFlag === labelType.Area || polygonCheck === 2\"\r\n class=\"fields-container\"\r\n >\r\n <mat-form-field class=\"readOnly-Input\">\r\n <mat-label>{{ 'igo.geo.draw.labelType.Area' | translate }}</mat-label>\r\n <input\r\n #input\r\n matInput\r\n placeholder=\"{{ 'igo.geo.draw.labelType.Area' | translate }}\"\r\n value=\"{{ currentArea }}\"\r\n readonly\r\n />\r\n </mat-form-field>\r\n <mat-form-field class=\"unit-field\">\r\n <mat-select\r\n [value]=\"areaMeasureUnit\"\r\n (selectionChange)=\"onChangeAreaUnit($event.value)\"\r\n >\r\n <mat-option *ngFor=\"let unit of allAreaUnits\" [value]=\"unit\">\r\n {{ getAreaUnitEnum(unit) }}\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 <div mat-dialog-actions>\r\n <button mat-raised-button (click)=\"cancelDrawing()\">\r\n {{ 'igo.geo.draw.cancel' | translate }}\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"confirm()\">\r\n {{ noLabelButton() }}\r\n </button>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"labelFlag === labelType.Custom\">\r\n <div mat-dialog-content class=\"geometry-type-toggle\">\r\n <div class=\"button-toggle-container\">\r\n <mat-button-toggle-group\r\n (change)=\"onLabelTypeChange($event.value)\"\r\n [value]=\"customOrPredefined\"\r\n >\r\n <mat-button-toggle [value]=\"labelType.Custom\">\r\n {{ 'igo.geo.draw.labelType.custom' | translate }}\r\n </mat-button-toggle>\r\n <mat-button-toggle [value]=\"labelType.Predefined\">\r\n {{ 'igo.geo.draw.labelType.predefined' | translate }}\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n <p>\r\n {{ 'igo.geo.draw.dialogInstruction' | translate }}\r\n </p>\r\n <mat-form-field class=\"input\">\r\n <mat-label>{{ 'igo.geo.draw.dialogTitle' | translate }}</mat-label>\r\n <input\r\n #input\r\n matInput\r\n (select)=\"(true)\"\r\n (input)=\"getLabelLength($event.target.value)\"\r\n placeholder=\"{{ 'igo.geo.draw.dialogTitle' | translate }}\"\r\n value=\"{{ currentLabel }}\"\r\n cdkFocusInitial\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div mat-dialog-actions>\r\n <button mat-raised-button (click)=\"cancelDrawing()\">\r\n {{ 'igo.geo.draw.cancel' | translate }}\r\n </button>\r\n <button mat-raised-button color=\"primary\" (click)=\"confirm(input.value)\">\r\n {{ noLabelButton() }}\r\n </button>\r\n </div>\r\n</ng-container>\r\n", styles: [":host .mat-mdc-radio-button~.mat-radio-button{margin-left:12px}:host .readOnly-Input{width:200px!important}:host .button-toggle-container{margin-bottom:12px}:host .unit-field{margin-left:12px}:host .unit-field ::ng-deep .mat-mdc-form-field-infix{width:-moz-fit-content;width:fit-content}:host .unit-field ::ng-deep .mat-mdc-select-min-line{padding-right:24px}:host .mat-mdc-form-field{position:sticky!important}:host .coordinatesInputView{top:5em!important}:host .mat-mdc-dialog-actions{display:flex!important;justify-content:flex-end}:host .input{width:auto!important}:host .mat-button-toggle-group,:host .mat-button-toggle{width:100%}:host mat-checkbox{margin-right:10px}:host ::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{display:none}\n"] }]
663
663
  }], function () { return [{ type: i1.LanguageService }, { type: i2.MatDialogRef }, { type: undefined, decorators: [{
664
664
  type: Inject,
665
665
  args: [MAT_DIALOG_DATA]
@@ -674,4 +674,4 @@ export class DrawPopupComponent {
674
674
  }], areaMeasureUnit: [{
675
675
  type: Input
676
676
  }] }); })();
677
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kcmF3L2RyYXcvZHJhdy1wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kcmF3L2RyYXcvZHJhdy1wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTdDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLE1BQU0sTUFBTSxnQkFBZ0IsQ0FBQztBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXRDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLDJCQUEyQixFQUMzQixpQkFBaUIsRUFDakIsNkJBQTZCLEVBQzlCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUNMLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLGtCQUFrQixFQUNuQixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0Is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QUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQzVDO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxTQUFTLENBQUMsV0FBVyxFQUFFO1lBQzlELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2xFO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ2hFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzdEO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFO1lBQzlELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMzRDthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxD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OzZEQTlCZCxrQkFBa0I7WUNoQy9CLDZCQUFxQjtZQUNuQixZQUNGOztZQUFBLGlCQUFLO1lBRUwsdUZBNkhlO1lBRWYsdUZBd0NlOztZQTFLYixlQUNGO1lBREUsaUZBQ0Y7WUFFZSxlQUFvQztZQUFwQyw2REFBb0M7WUErSHBDLGVBQW9DO1lBQXBDLDZEQUFvQzs7O3VGRG5HdEMsa0JBQWtCO2NBTDlCLFNBQVM7MkJBQ0UsMEJBQTBCOztzQkFrQ2pDLE1BQU07dUJBQUMsZUFBZTt3QkE3QmhCLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxTQUFTO2tCQUFqQixLQUFLO1lBQ0csc0JBQXNCO2tCQUE5QixLQUFLO1lBQ0csaUJBQWlCO2tCQUF6QixLQUFLO1lBQ0csZUFBZTtrQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCBPbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XHJcbmltcG9ydCBDaXJjbGUgZnJvbSAnb2wvZ2VvbS9DaXJjbGUnO1xyXG5pbXBvcnQgeyBmcm9tQ2lyY2xlIH0gZnJvbSAnb2wvZ2VvbS9Qb2x5Z29uJztcclxuaW1wb3J0IHsgdHJhbnNmb3JtIH0gZnJvbSAnb2wvcHJvaic7XHJcbmltcG9ydCB7IGdldExlbmd0aCB9IGZyb20gJ29sL3NwaGVyZSc7XHJcblxyXG5pbXBvcnQgeyBJZ29NYXAsIHJvdW5kQ29vcmRUbyB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQnO1xyXG5pbXBvcnQge1xyXG4gIE1lYXN1cmVBcmVhVW5pdCxcclxuICBNZWFzdXJlQXJlYVVuaXRBYmJyZXZpYXRpb24sXHJcbiAgTWVhc3VyZUxlbmd0aFVuaXQsXHJcbiAgTWVhc3VyZUxlbmd0aFVuaXRBYmJyZXZpYXRpb25cclxufSBmcm9tICcuLi8uLi9tZWFzdXJlL3NoYXJlZC9tZWFzdXJlLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIG1lYXN1cmVPbEdlb21ldHJ5QXJlYSxcclxuICBtZWFzdXJlT2xHZW9tZXRyeUxlbmd0aCxcclxuICBtZXRlcnNUb1VuaXQsXHJcbiAgc3F1YXJlTWV0ZXJzVG9Vbml0XHJcbn0gZnJvbSAnLi4vLi4vbWVhc3VyZS9zaGFyZWQvbWVhc3VyZS51dGlscyc7XHJcbmltcG9ydCB7IENvb3JkaW5hdGVzVW5pdCwgR2VvbWV0cnlUeXBlLCBMYWJlbFR5cGUgfSBmcm9tICcuLi9zaGFyZWQvZHJhdy5lbnVtJztcclxuaW1wb3J0IHsgRER0b0RNUyB9IGZyb20gJy4uL3NoYXJlZC9kcmF3LnV0aWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWRyYXctcG9wdXAtY29tcG9uZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJhdy1wb3B1cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHJhdy1wb3B1cC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmF3UG9wdXBDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGNvbmZpcm1GbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbGFiZWxGbGFnOiBMYWJlbFR5cGUgfCBbTGFiZWxUeXBlLCBMYWJlbFR5cGVdID0gTGFiZWxUeXBlLkN1c3RvbTtcclxuICBASW5wdXQoKSBjb29yZGluYXRlc01lYXN1cmVVbml0OiBDb29yZGluYXRlc1VuaXQ7XHJcbiAgQElucHV0KCkgbGVuZ3RoTWVhc3VyZVVuaXQ6IE1lYXN1cmVMZW5ndGhVbml0O1xyXG4gIEBJbnB1dCgpIGFyZWFNZWFzdXJlVW5pdDogTWVhc3VyZUFyZWFVbml0O1xyXG5cclxuICBwdWJsaWMgZ2VvbWV0cnlUeXBlID0gR2VvbWV0cnlUeXBlO1xyXG4gIHB1YmxpYyBsYWJlbFR5cGUgPSBMYWJlbFR5cGU7XHJcbiAgcHVibGljIGFycmF5QnVpbHRJblR5cGU6IGFueVtdID0gW107XHJcblxyXG4gIHB1YmxpYyBjdXJyZW50TGFiZWw6IHN0cmluZztcclxuICBwdWJsaWMgY3VycmVudENvb3JkaW5hdGVzOiBzdHJpbmc7XHJcbiAgcHVibGljIGN1cnJlbnRBcmVhOiBzdHJpbmc7XHJcbiAgcHVibGljIGN1cnJlbnRMZW5ndGg6IHN0cmluZztcclxuXHJcbiAgcHVibGljIG9sR2VvbWV0cnlUeXBlOiBHZW9tZXRyeVR5cGUgPSB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGxlbmd0aEluTWV0ZXJzOiBzdHJpbmc7XHJcbiAgcHVibGljIGFyZWFJbk1ldGVyc1NxdWFyZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBjb29yZGluYXRlc0luREQ6IHN0cmluZztcclxuICBwdWJsaWMgY3VycmVudENvb3JkaW5hdGVzVW5pdDogc3RyaW5nO1xyXG5cclxuICBwcml2YXRlIGxvbmdsYXRERDogW251bWJlciwgbnVtYmVyXTtcclxuICBwcml2YXRlIGxhYmVsTGVuZ3RoOiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBwb2x5Z29uQ2hlY2sgPSAwOyAvLyBDb3VudCBmb3IgcG9seWdvbiBsYWJlbCB0eXBlcyBjaGVja2JveGVzXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxEcmF3UG9wdXBDb21wb25lbnQ+LFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiB7IG9sR2VvbWV0cnk6IGFueTsgbWFwOiBJZ29NYXAgfVxyXG4gICkge1xyXG4gICAgdGhpcy5jdXJyZW50TGFiZWwgPSB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXQoJ2RyYXcnKTtcclxuICAgIHRoaXMubGFiZWxMZW5ndGggPSB0aGlzLmN1cnJlbnRMYWJlbCA/IHRoaXMuY3VycmVudExhYmVsLmxlbmd0aCA6IDA7XHJcbiAgICBsZXQgb2xHZW9tZXRyeTtcclxuXHJcbiAgICBjb25zdCBwcm9qZWN0aW9uID0gdGhpcy5kYXRhLm1hcC5vbC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpO1xyXG5cclxuICAgIGlmICh0aGlzLmRhdGEub2xHZW9tZXRyeSBpbnN0YW5jZW9mIE9sRmVhdHVyZSkge1xyXG4gICAgICBpZiAodGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0KCdyYWQnKSkge1xyXG4gICAgICAgIGNvbnN0IGxvbmdpdHVkZUxhdGl0dWRlID0gW1xyXG4gICAgICAgICAgdGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0KCdsb25naXR1ZGUnKSxcclxuICAgICAgICAgIHRoaXMuZGF0YS5vbEdlb21ldHJ5LmdldCgnbGF0aXR1ZGUnKVxyXG4gICAgICAgIF07XHJcbiAgICAgICAgdGhpcy5vbEdlb21ldHJ5VHlwZSA9IEdlb21ldHJ5VHlwZS5DaXJjbGU7XHJcbiAgICAgICAgb2xHZW9tZXRyeSA9IG5ldyBDaXJjbGUoXHJcbiAgICAgICAgICBsb25naXR1ZGVMYXRpdHVkZSxcclxuICAgICAgICAgIHRoaXMuZGF0YS5vbEdlb21ldHJ5LmdldCgncmFkJylcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub2xHZW9tZXRyeVR5cGUgPSB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKTtcclxuICAgICAgICBvbEdlb21ldHJ5ID0gdGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0KCdnZW9tZXRyeScpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9sR2VvbWV0cnlUeXBlID0gdGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0VHlwZSgpO1xyXG4gICAgICBvbEdlb21ldHJ5ID0gdGhpcy5kYXRhLm9sR2VvbWV0cnk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuUG9pbnQgfHxcclxuICAgICAgdGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkNpcmNsZVxyXG4gICAgKSB7XHJcbiAgICAgIGlmICh0aGlzLmRhdGEub2xHZW9tZXRyeSBpbnN0YW5jZW9mIE9sRmVhdHVyZSkge1xyXG4gICAgICAgIGxldCBsb25naXR1ZGUgPSB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXQoJ2xvbmdpdHVkZScpO1xyXG4gICAgICAgIGxldCBsYXRpdHVkZSA9IHRoaXMuZGF0YS5vbEdlb21ldHJ5LmdldCgnbGF0aXR1ZGUnKTtcclxuICAgICAgICB0aGlzLmxvbmdsYXRERCA9IHJvdW5kQ29vcmRUbyhbbG9uZ2l0dWRlLCBsYXRpdHVkZV0sIDUpO1xyXG4gICAgICAgIHRoaXMuY29vcmRpbmF0ZXNJbkREID0gJygnICsgbGF0aXR1ZGUgKyAnLCAnICsgbG9uZ2l0dWRlICsgJyknO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBwb2ludDQzMjYgPSB0cmFuc2Zvcm0oXHJcbiAgICAgICAgICB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXRGbGF0Q29vcmRpbmF0ZXMoKSxcclxuICAgICAgICAgIHByb2plY3Rpb24sXHJcbiAgICAgICAgICAnRVBTRzo0MzI2J1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5sb25nbGF0REQgPSByb3VuZENvb3JkVG8oW3BvaW50NDMyNlswXSwgcG9pbnQ0MzI2WzFdXSwgNSk7XHJcbiAgICAgICAgdGhpcy5jb29yZGluYXRlc0luREQgPVxyXG4gICAgICAgICAgJygnICsgdGhpcy5sb25nbGF0RERbMV0gKyAnLCAnICsgdGhpcy5sb25nbGF0RERbMF0gKyAnKSc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jdXJyZW50Q29vcmRpbmF0ZXMgPSB0aGlzLmNvb3JkaW5hdGVzSW5ERDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuTGluZVN0cmluZykge1xyXG4gICAgICB0aGlzLmxlbmd0aEluTWV0ZXJzID0gbWVhc3VyZU9sR2VvbWV0cnlMZW5ndGgoXHJcbiAgICAgICAgb2xHZW9tZXRyeSxcclxuICAgICAgICBwcm9qZWN0aW9uLmdldENvZGUoKVxyXG4gICAgICApLnRvRml4ZWQoMik7XHJcbiAgICAgIHRoaXMuY3VycmVudExlbmd0aCA9IHRoaXMubGVuZ3RoSW5NZXRlcnM7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5Qb2x5Z29uKSB7XHJcbiAgICAgIHRoaXMubGVuZ3RoSW5NZXRlcnMgPSBtZWFzdXJlT2xHZW9tZXRyeUxlbmd0aChcclxuICAgICAgICBvbEdlb21ldHJ5LFxyXG4gICAgICAgIHByb2plY3Rpb24uZ2V0Q29kZSgpXHJcbiAgICAgICkudG9GaXhlZCgyKTtcclxuICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoID0gdGhpcy5sZW5ndGhJbk1ldGVycztcclxuICAgICAgdGhpcy5hcmVhSW5NZXRlcnNTcXVhcmUgPSBtZWFzdXJlT2xHZW9tZXRyeUFyZWEoXHJcbiAgICAgICAgb2xHZW9tZXRyeSxcclxuICAgICAgICBwcm9qZWN0aW9uLmdldENvZGUoKVxyXG4gICAgICApLnRvRml4ZWQoMik7XHJcbiAgICAgIHRoaXMuY3VycmVudEFyZWEgPSB0aGlzLmFyZWFJbk1ldGVyc1NxdWFyZTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkNpcmNsZSkge1xyXG4gICAgICBsZXQgY2lyY3VsYXJQb2x5Z29uID0gZnJvbUNpcmNsZShvbEdlb21ldHJ5LCAxMDAwMCk7XHJcbiAgICAgIGNvbnN0IHJhZGl1cyA9IHRoaXMuZ2V0UmFkaXVzKGNpcmN1bGFyUG9seWdvbik7XHJcbiAgICAgIHRoaXMubGVuZ3RoSW5NZXRlcnMgPSByYWRpdXMudG9GaXhlZCgyKTtcclxuICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoID0gdGhpcy5sZW5ndGhJbk1ldGVycztcclxuICAgICAgdGhpcy5hcmVhSW5NZXRlcnNTcXVhcmUgPSBtZWFzdXJlT2xHZW9tZXRyeUFyZWEoXHJcbiAgICAgICAgY2lyY3VsYXJQb2x5Z29uLFxyXG4gICAgICAgIHByb2plY3Rpb24uZ2V0Q29kZSgpXHJcbiAgICAgICkudG9GaXhlZCgyKTtcclxuICAgICAgdGhpcy5jdXJyZW50QXJlYSA9IHRoaXMuYXJlYUluTWV0ZXJzU3F1YXJlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChkYXRhLm9sR2VvbWV0cnkuZ2V0KCdsYWJlbFR5cGUnKSA9PT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKSB7XHJcbiAgICAgIHRoaXMub25MYWJlbFR5cGVDaGFuZ2UoTGFiZWxUeXBlLlByZWRlZmluZWQpO1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5Db29yZGluYXRlcywgdHJ1ZSk7XHJcbiAgICAgIHRoaXMuY29vcmRpbmF0ZXNNZWFzdXJlVW5pdCA9IGRhdGEub2xHZW9tZXRyeS5nZXQoJ21lYXN1cmVVbml0Jyk7XHJcbiAgICB9IGVsc2UgaWYgKGRhdGEub2xHZW9tZXRyeS5nZXQoJ2xhYmVsVHlwZScpID09PSBMYWJlbFR5cGUuTGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMub25MYWJlbFR5cGVDaGFuZ2UoTGFiZWxUeXBlLlByZWRlZmluZWQpO1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5MZW5ndGgsIHRydWUpO1xyXG4gICAgICB0aGlzLmxlbmd0aE1lYXN1cmVVbml0ID0gZGF0YS5vbEdlb21ldHJ5LmdldCgnbWVhc3VyZVVuaXQnKTtcclxuICAgIH0gZWxzZSBpZiAoZGF0YS5vbEdlb21ldHJ5LmdldCgnbGFiZWxUeXBlJykgPT09IExhYmVsVHlwZS5BcmVhKSB7XHJcbiAgICAgIHRoaXMub25MYWJlbFR5cGVDaGFuZ2UoTGFiZWxUeXBlLlByZWRlZmluZWQpO1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5BcmVhLCB0cnVlKTtcclxuICAgICAgdGhpcy5hcmVhTWVhc3VyZVVuaXQgPSBkYXRhLm9sR2VvbWV0cnkuZ2V0KCdtZWFzdXJlVW5pdCcpO1xyXG4gICAgfSBlbHNlIGlmIChkYXRhLm9sR2VvbWV0cnkuZ2V0KCdsYWJlbFR5cGUnKT8ubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgIHRoaXMub25MYWJlbFR5cGVDaGFuZ2UoTGFiZWxUeXBlLlByZWRlZmluZWQpO1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5MZW5ndGgsIHRydWUpO1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5BcmVhLCB0cnVlKTtcclxuICAgICAgdGhpcy5sZW5ndGhNZWFzdXJlVW5pdCA9IGRhdGEub2xHZW9tZXRyeS5nZXQoJ21lYXN1cmVVbml0JylbMF07XHJcbiAgICAgIHRoaXMuYXJlYU1lYXN1cmVVbml0ID0gZGF0YS5vbEdlb21ldHJ5LmdldCgnbWVhc3VyZVVuaXQnKVsxXTtcclxuICAgIH1cclxuICAgIHRoaXMuYnVpbGRBcnJheVR5cGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhUTUwgSW50ZXJhY3Rpb25zXHJcbiAgICovXHJcblxyXG4gIGNhbmNlbERyYXdpbmcoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgY29uZmlybShpbnB1dD86IHN0cmluZykge1xyXG4gICAgdGhpcy5jb25maXJtRmxhZyA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5sYWJlbEZsYWcgPT09IExhYmVsVHlwZS5QcmVkZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubGFiZWxGbGFnID09PSBMYWJlbFR5cGUuQ3VzdG9tKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICBsYWJlbDogaW5wdXRcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubGFiZWxGbGFnID09PSBMYWJlbFR5cGUuQ29vcmRpbmF0ZXMpIHtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xyXG4gICAgICAgIGxhYmVsOiB0aGlzLmN1cnJlbnRDb29yZGluYXRlcyxcclxuICAgICAgICBtZWFzdXJlVW5pdDogdGhpcy5jb29yZGluYXRlc01lYXN1cmVVbml0XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuUG9seWdvbikge1xyXG4gICAgICBpZiAodGhpcy5wb2x5Z29uQ2hlY2sgPT09IDIpIHtcclxuICAgICAgICB0aGlzLmxhYmVsRmxhZyA9IFtMYWJlbFR5cGUuTGVuZ3RoLCBMYWJlbFR5cGUuQXJlYV07XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xyXG4gICAgICAgICAgbGFiZWw6XHJcbiAgICAgICAgICAgICdQOiAnICtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoICtcclxuICAgICAgICAgICAgJyAnICtcclxuICAgICAgICAgICAgTWVhc3VyZUxlbmd0aFVuaXRBYmJyZXZpYXRpb25bTWVhc3VyZUxlbmd0aFVuaXQuTWV0ZXJzXSArXHJcbiAgICAgICAgICAgICdcXG4nICtcclxuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuQScpICtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50QXJlYSArXHJcbiAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgIE1lYXN1cmVBcmVhVW5pdEFiYnJldmlhdGlvbltNZWFzdXJlQXJlYVVuaXQuU3F1YXJlTWV0ZXJzXSxcclxuICAgICAgICAgIG1lYXN1cmVVbml0OiBbdGhpcy5sZW5ndGhNZWFzdXJlVW5pdCwgdGhpcy5hcmVhTWVhc3VyZVVuaXRdXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sYWJlbEZsYWcgPT09IExhYmVsVHlwZS5MZW5ndGhcclxuICAgICAgICAgID8gdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xyXG4gICAgICAgICAgICAgIGxhYmVsOlxyXG4gICAgICAgICAgICAgICAgJ1A6ICcgK1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoICtcclxuICAgICAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgICAgICBNZWFzdXJlTGVuZ3RoVW5pdEFiYnJldmlhdGlvblt0aGlzLmxlbmd0aE1lYXN1cmVVbml0XSxcclxuICAgICAgICAgICAgICBtZWFzdXJlVW5pdDogdGhpcy5sZW5ndGhNZWFzdXJlVW5pdFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgOiB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XHJcbiAgICAgICAgICAgICAgbGFiZWw6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBcmVhICtcclxuICAgICAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgICAgICBNZWFzdXJlQXJlYVVuaXRBYmJyZXZpYXRpb25bdGhpcy5hcmVhTWVhc3VyZVVuaXRdLFxyXG4gICAgICAgICAgICAgIG1lYXN1cmVVbml0OiB0aGlzLmFyZWFNZWFzdXJlVW5pdFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLkxlbmd0aCkge1xyXG4gICAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkNpcmNsZSkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICAgIGxhYmVsOlxyXG4gICAgICAgICAgICAnUjogJyArXHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExlbmd0aCArXHJcbiAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgIE1lYXN1cmVMZW5ndGhVbml0QWJicmV2aWF0aW9uW3RoaXMubGVuZ3RoTWVhc3VyZVVuaXRdLFxyXG4gICAgICAgICAgbWVhc3VyZVVuaXQ6IHRoaXMubGVuZ3RoTWVhc3VyZVVuaXRcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuTGluZVN0cmluZykge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICAgIGxhYmVsOlxyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMZW5ndGggK1xyXG4gICAgICAgICAgICAnICcgK1xyXG4gICAgICAgICAgICBNZWFzdXJlTGVuZ3RoVW5pdEFiYnJldmlhdGlvblt0aGlzLmxlbmd0aE1lYXN1cmVVbml0XSxcclxuICAgICAgICAgIG1lYXN1cmVVbml0OiB0aGlzLmxlbmd0aE1lYXN1cmVVbml0XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5sYWJlbEZsYWcgPT09IExhYmVsVHlwZS5BcmVhKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICBsYWJlbDpcclxuICAgICAgICAgIHRoaXMuY3VycmVudEFyZWEgK1xyXG4gICAgICAgICAgJyAnICtcclxuICAgICAgICAgIE1lYXN1cmVBcmVhVW5pdEFiYnJldmlhdGlvblt0aGlzLmFyZWFNZWFzdXJlVW5pdF0sXHJcbiAgICAgICAgbWVhc3VyZVVuaXQ6IHRoaXMuYXJlYU1lYXN1cmVVbml0XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25MYWJlbFR5cGVDaGFuZ2UobGFiZWxUeXBlOiBMYWJlbFR5cGUsIGNoZWNrZWQ/OiBib29sZWFuKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGxhYmVsVHlwZSAhPT0gTGFiZWxUeXBlLlByZWRlZmluZWQgJiZcclxuICAgICAgbGFiZWxUeXBlICE9PSBMYWJlbFR5cGUuQ3VzdG9tICYmXHJcbiAgICAgIHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5Qb2x5Z29uXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5hcnJheUJ1aWx0SW5UeXBlLmZpbmQoKHR5cGUpID0+IHR5cGUudmFsdWUgPT09IGxhYmVsVHlwZSlcclxuICAgICAgICA/ICh0aGlzLmFycmF5QnVpbHRJblR5cGUuZmluZChcclxuICAgICAgICAgICAgKHR5cGUpID0+IHR5cGUudmFsdWUgPT09IGxhYmVsVHlwZVxyXG4gICAgICAgICAgKS5jaGVja2VkID0gY2hlY2tlZClcclxuICAgICAgICA6ICh0aGlzLmxhYmVsRmxhZyA9IHVuZGVmaW5lZCk7XHJcbiAgICAgIGNoZWNrZWRcclxuICAgICAgICA/ICh0aGlzLmxhYmVsRmxhZyA9IGxhYmVsVHlwZSlcclxuICAgICAgICA6ICh0aGlzLmxhYmVsRmxhZyA9IHRoaXMuYXJyYXlCdWlsdEluVHlwZS5maW5kKCh0eXBlKSA9PiB0eXBlLmNoZWNrZWQpXHJcbiAgICAgICAgICAgID8udmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sYWJlbEZsYWcgPSBsYWJlbFR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGxhYmVsVHlwZSA9PT0gTGFiZWxUeXBlLlByZWRlZmluZWQpIHtcclxuICAgICAgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5Qb2ludCkge1xyXG4gICAgICAgIHRoaXMubGFiZWxGbGFnID0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzO1xyXG4gICAgICAgIHRoaXMuY3VycmVudENvb3JkaW5hdGVzID0gdGhpcy5jb29yZGluYXRlc0luREQ7XHJcbiAgICAgICAgdGhpcy5jb29yZGluYXRlc01lYXN1cmVVbml0ID0gQ29vcmRpbmF0ZXNVbml0LkRlY2ltYWxEZWdyZWU7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkxpbmVTdHJpbmcpIHtcclxuICAgICAgICB0aGlzLmxhYmVsRmxhZyA9IExhYmVsVHlwZS5MZW5ndGg7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoID0gdGhpcy5sZW5ndGhJbk1ldGVycztcclxuICAgICAgICB0aGlzLmxlbmd0aE1lYXN1cmVVbml0ID0gTWVhc3VyZUxlbmd0aFVuaXQuTWV0ZXJzO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGxhYmVsVHlwZSA9PT0gTGFiZWxUeXBlLkFyZWEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50QXJlYSA9IHRoaXMuYXJlYUluTWV0ZXJzU3F1YXJlO1xyXG4gICAgICB0aGlzLmFyZWFNZWFzdXJlVW5pdCA9IE1lYXN1cmVBcmVhVW5pdC5TcXVhcmVNZXRlcnM7XHJcbiAgICB9IGVsc2UgaWYgKGxhYmVsVHlwZSA9PT0gTGFiZWxUeXBlLkxlbmd0aCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRMZW5ndGggPSB0aGlzLmxlbmd0aEluTWV0ZXJzO1xyXG4gICAgICB0aGlzLmxlbmd0aE1lYXN1cmVVbml0ID0gTWVhc3VyZUxlbmd0aFVuaXQuTWV0ZXJzO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudENvb3JkaW5hdGVzID0gdGhpcy5jb29yZGluYXRlc0luREQ7XHJcbiAgICAgIHRoaXMuY29vcmRpbmF0ZXNNZWFzdXJlVW5pdCA9IENvb3JkaW5hdGVzVW5pdC5EZWNpbWFsRGVncmVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGxhYmVsdHlwZXMgPSBbdGhpcy5sYWJlbFR5cGUuTGVuZ3RoLCB0aGlzLmxhYmVsVHlwZS5BcmVhXTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLlBvbHlnb24gJiZcclxuICAgICAgbGFiZWx0eXBlcy5pbmNsdWRlcyhsYWJlbFR5cGUpXHJcbiAgICApIHtcclxuICAgICAgY2hlY2tlZCA/ICh0aGlzLnBvbHlnb25DaGVjayArPSAxKSA6ICh0aGlzLnBvbHlnb25DaGVjayAtPSAxKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucG9seWdvbkNoZWNrID0gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlTGVuZ3RoVW5pdChsZW5ndGhVbml0OiBNZWFzdXJlTGVuZ3RoVW5pdCkge1xyXG4gICAgdGhpcy5sZW5ndGhNZWFzdXJlVW5pdCA9IGxlbmd0aFVuaXQ7XHJcbiAgICB0aGlzLmN1cnJlbnRMZW5ndGggPSBtZXRlcnNUb1VuaXQoXHJcbiAgICAgIE51bWJlcih0aGlzLmxlbmd0aEluTWV0ZXJzKSxcclxuICAgICAgbGVuZ3RoVW5pdFxyXG4gICAgKS50b0ZpeGVkKDIpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VBcmVhVW5pdChhcmVhVW5pdDogTWVhc3VyZUFyZWFVbml0KSB7XHJcbiAgICB0aGlzLmFyZWFNZWFzdXJlVW5pdCA9IGFyZWFVbml0O1xyXG4gICAgdGhpcy5jdXJyZW50QXJlYSA9IHNxdWFyZU1ldGVyc1RvVW5pdChcclxuICAgICAgTnVtYmVyKHRoaXMuYXJlYUluTWV0ZXJzU3F1YXJlKSxcclxuICAgICAgYXJlYVVuaXRcclxuICAgICkudG9GaXhlZCgyKTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlQ29vcmRpbmF0ZVVuaXQoY29vcmRpbmF0ZXNVbml0OiBDb29yZGluYXRlc1VuaXQpIHtcclxuICAgIHRoaXMuY29vcmRpbmF0ZXNNZWFzdXJlVW5pdCA9IGNvb3JkaW5hdGVzVW5pdDtcclxuICAgIGxldCBjb29yZGluYXRlcyA9IEREdG9ETVModGhpcy5sb25nbGF0REQsIGNvb3JkaW5hdGVzVW5pdCk7XHJcbiAgICB0aGlzLmN1cnJlbnRDb29yZGluYXRlcyA9XHJcbiAgICAgICcoJyArIGNvb3JkaW5hdGVzWzFdICsgJywgJyArIGNvb3JkaW5hdGVzWzBdICsgJyknO1xyXG4gIH1cclxuXHJcbiAgYnVpbGRBcnJheVR5cGUoKSB7XHJcbiAgICBmb3IgKGNvbnN0IGxhYmVsVHlwZSBvZiBPYmplY3QudmFsdWVzKExhYmVsVHlwZSkpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGxhYmVsVHlwZSAhPT0gTGFiZWxUeXBlLkN1c3RvbSAmJlxyXG4gICAgICAgIGxhYmVsVHlwZSAhPT0gTGFiZWxUeXBlLlByZWRlZmluZWRcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5hcnJheUJ1aWx0SW5UeXBlLnB1c2goe1xyXG4gICAgICAgICAgdmFsdWU6IGxhYmVsVHlwZSxcclxuICAgICAgICAgIGNoZWNrZWQ6XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0T3B0aW9ucyhsYWJlbFR5cGUpIHx8XHJcbiAgICAgICAgICAgIHRoaXMubGFiZWxGbGFnID09PSBsYWJlbFR5cGUgfHxcclxuICAgICAgICAgICAgKHRoaXMucG9seWdvbkNoZWNrID09PSAyICYmIGxhYmVsVHlwZSAhPT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBub0xhYmVsQnV0dG9uKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLlByZWRlZmluZWQgfHxcclxuICAgICAgKHRoaXMubGFiZWxGbGFnID09PSBMYWJlbFR5cGUuQ3VzdG9tICYmIHRoaXMubGFiZWxMZW5ndGggPT09IDApXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRyYXcubm9MYWJlbCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAnT0snO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1c3RvbU9yUHJlZGVmaW5lZCgpIHtcclxuICAgIGlmICh0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLkN1c3RvbSkge1xyXG4gICAgICByZXR1cm4gTGFiZWxUeXBlLkN1c3RvbTtcclxuICAgIH1cclxuICAgIHJldHVybiBMYWJlbFR5cGUuUHJlZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIG9wdGlvbkF2YWlsYWJsZShjdXJyZW50T3B0aW9uOiBMYWJlbFR5cGUpIHtcclxuICAgIHN3aXRjaCAodGhpcy5vbEdlb21ldHJ5VHlwZSkge1xyXG4gICAgICBjYXNlIEdlb21ldHJ5VHlwZS5Qb2ludDpcclxuICAgICAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBjYXNlIEdlb21ldHJ5VHlwZS5MaW5lU3RyaW5nOlxyXG4gICAgICAgIGlmIChjdXJyZW50T3B0aW9uID09PSBMYWJlbFR5cGUuTGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBjYXNlIEdlb21ldHJ5VHlwZS5Qb2x5Z29uOlxyXG4gICAgICAgIGlmIChjdXJyZW50T3B0aW9uID09PSBMYWJlbFR5cGUuQ29vcmRpbmF0ZXMpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGFsbExlbmd0aFVuaXRzKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKE1lYXN1cmVMZW5ndGhVbml0KTtcclxuICB9XHJcblxyXG4gIGdldExlbmd0aFVuaXRFbnVtKGxlbmd0aFVuaXQ6IE1lYXN1cmVMZW5ndGhVbml0KSB7XHJcbiAgICByZXR1cm4gTWVhc3VyZUxlbmd0aFVuaXRBYmJyZXZpYXRpb25bbGVuZ3RoVW5pdF07XHJcbiAgfVxyXG5cclxuICBnZXQgYWxsQXJlYVVuaXRzKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKE1lYXN1cmVBcmVhVW5pdCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYWxsQ29vcmRpbmF0ZXNVbml0cygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhDb29yZGluYXRlc1VuaXQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QXJlYVVuaXRFbnVtKGFyZWFVbml0OiBNZWFzdXJlQXJlYVVuaXQpIHtcclxuICAgIHJldHVybiBNZWFzdXJlQXJlYVVuaXRBYmJyZXZpYXRpb25bYXJlYVVuaXRdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRSYWRpdXMob2xHZW9tZXRyeSk6IG51bWJlciB7XHJcbiAgICBjb25zdCBsZW5ndGggPSBnZXRMZW5ndGgob2xHZW9tZXRyeSk7XHJcbiAgICByZXR1cm4gTnVtYmVyKGxlbmd0aCAvICgyICogTWF0aC5QSSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxlbmd0aExhYmVsVCgpIHtcclxuICAgIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuUG9seWdvbikge1xyXG4gICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgJ2lnby5nZW8ubWVhc3VyZS5wZXJpbWV0ZXInXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkNpcmNsZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgJ2lnby5nZW8uc2VhcmNoLmNvb3JkaW5hdGVzLnJhZGl1cydcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuTGVuZ3RoJ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldExhYmVsTGVuZ3RoKGV2ZW50Pykge1xyXG4gICAgdGhpcy5sYWJlbExlbmd0aCA9IGV2ZW50Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHNlbGVjdE9wdGlvbnMob3B0aW9uKSB7XHJcbiAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLlBvaW50KSB7XHJcbiAgICAgIHJldHVybiBvcHRpb24gPT09IExhYmVsVHlwZS5Db29yZGluYXRlcztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkxpbmVTdHJpbmcpIHtcclxuICAgICAgcmV0dXJuIG9wdGlvbiA9PT0gTGFiZWxUeXBlLkxlbmd0aDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFByb3Blckxlbmd0aExhYmVsKG9wdGlvbikge1xyXG4gICAgaWYgKG9wdGlvbiA9PT0gTGFiZWxUeXBlLkxlbmd0aCkge1xyXG4gICAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLlBvbHlnb24pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAnaWdvLmdlby5tZWFzdXJlLnBlcmltZXRlcidcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuQ2lyY2xlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgJ2lnby5nZW8uc2VhcmNoLmNvb3JkaW5hdGVzLnJhZGl1cydcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAnaWdvLmdlby5kcmF3LmxhYmVsVHlwZS5MZW5ndGgnXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLicgKyBvcHRpb25cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxoMiBtYXQtZGlhbG9nLXRpdGxlPlxuICB7eyAnaWdvLmdlby5kcmF3LnBvcHVwVGl0bGUnIHwgdHJhbnNsYXRlIH19XG48L2gyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxGbGFnICE9PSBsYWJlbFR5cGUuQ3VzdG9tXCI+XG4gIDxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiZ2VvbWV0cnktdHlwZS10b2dnbGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXRvZ2dsZS1jb250YWluZXJcIj5cbiAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cFxuICAgICAgICAoY2hhbmdlKT1cIm9uTGFiZWxUeXBlQ2hhbmdlKCRldmVudC52YWx1ZSlcIlxuICAgICAgICBbdmFsdWVdPVwiY3VzdG9tT3JQcmVkZWZpbmVkXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJsYWJlbFR5cGUuQ3VzdG9tXCI+XG4gICAgICAgICAge3sgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuY3VzdG9tJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgW3ZhbHVlXT1cImxhYmVsVHlwZS5QcmVkZWZpbmVkXCI+XG4gICAgICAgICAge3sgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUucHJlZGVmaW5lZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxwPlxuICAgICAgICB7eyAnaWdvLmdlby5kcmF3LmJ1aWx0SW5JbnN0cnVjdGlvbnMnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3A+XG4gICAgICA8bWF0LXJhZGlvLWdyb3VwICpuZ0lmPVwib2xHZW9tZXRyeVR5cGUgIT09ICdQb2x5Z29uJ1wiPlxuICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgYXJyYXlCdWlsdEluVHlwZVwiXG4gICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbkF2YWlsYWJsZShvcHRpb24udmFsdWUpXCJcbiAgICAgICAgICAoY2hhbmdlKT1cIm9uTGFiZWxUeXBlQ2hhbmdlKCRldmVudC52YWx1ZSlcIlxuICAgICAgICAgIFtjaGVja2VkXT1cIm9wdGlvbi5jaGVja2VkXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGdldFByb3Blckxlbmd0aExhYmVsKG9wdGlvbi52YWx1ZSkgfX1cbiAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib2xHZW9tZXRyeVR5cGUgPT09ICdQb2x5Z29uJ1wiPlxuICAgICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBhcnJheUJ1aWx0SW5UeXBlXCJcbiAgICAgICAgICBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCJcbiAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9uQXZhaWxhYmxlKG9wdGlvbi52YWx1ZSlcIlxuICAgICAgICAgIChjaGFuZ2UpPVwib25MYWJlbFR5cGVDaGFuZ2UoJGV2ZW50LnNvdXJjZS52YWx1ZSwgJGV2ZW50LmNoZWNrZWQpXCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJvcHRpb24uY2hlY2tlZFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBnZXRQcm9wZXJMZW5ndGhMYWJlbChvcHRpb24udmFsdWUpIH19XG4gICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8ZGl2ICpuZ0lmPVwibGFiZWxGbGFnID09PSBsYWJlbFR5cGUuQ29vcmRpbmF0ZXNcIiBjbGFzcz1cImZpZWxkcy1jb250YWluZXJcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwicmVhZE9ubHktSW5wdXRcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsPihMYXRpdHVkZSwgTG9uZ2l0dWRlKTwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI2lucHV0XG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIoTGF0aXR1ZGUsIExvbmdpdHVkZSlcIlxuICAgICAgICAgICAgdmFsdWU9XCJ7eyBjdXJyZW50Q29vcmRpbmF0ZXMgfX1cIlxuICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAvPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ1bml0LWZpZWxkXCI+XG4gICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgIFt2YWx1ZV09XCJjb29yZGluYXRlc01lYXN1cmVVbml0XCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGFuZ2VDb29yZGluYXRlVW5pdCgkZXZlbnQudmFsdWUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdW5pdCBvZiBhbGxDb29yZGluYXRlc1VuaXRzXCIgW3ZhbHVlXT1cInVuaXRcIj5cbiAgICAgICAgICAgICAge3sgdW5pdCB9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cImxhYmVsRmxhZyA9PT0gbGFiZWxUeXBlLkxlbmd0aCB8fCBwb2x5Z29uQ2hlY2sgPT09IDJcIlxuICAgICAgICBjbGFzcz1cImZpZWxkcy1jb250YWluZXJcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJyZWFkT25seS1JbnB1dFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+e3sgbGVuZ3RoTGFiZWxUIH19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjaW5wdXRcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7IGxlbmd0aExhYmVsVCB9fVwiXG4gICAgICAgICAgICB2YWx1ZT1cInt7IGN1cnJlbnRMZW5ndGggfX1cIlxuICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAvPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ1bml0LWZpZWxkXCI+XG4gICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgIFt2YWx1ZV09XCJsZW5ndGhNZWFzdXJlVW5pdFwiXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlTGVuZ3RoVW5pdCgkZXZlbnQudmFsdWUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdW5pdCBvZiBhbGxMZW5ndGhVbml0c1wiIFt2YWx1ZV09XCJ1bml0XCI+XG4gICAgICAgICAgICAgIHt7IGdldExlbmd0aFVuaXRFbnVtKHVuaXQpIH19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwibGFiZWxGbGFnID09PSBsYWJlbFR5cGUuQXJlYSB8fCBwb2x5Z29uQ2hlY2sgPT09IDJcIlxuICAgICAgICBjbGFzcz1cImZpZWxkcy1jb250YWluZXJcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJyZWFkT25seS1JbnB1dFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+e3sgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuQXJlYScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICNpbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuQXJlYScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgdmFsdWU9XCJ7eyBjdXJyZW50QXJlYSB9fVwiXG4gICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInVuaXQtZmllbGRcIj5cbiAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgW3ZhbHVlXT1cImFyZWFNZWFzdXJlVW5pdFwiXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlQXJlYVVuaXQoJGV2ZW50LnZhbHVlKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHVuaXQgb2YgYWxsQXJlYVVuaXRzXCIgW3ZhbHVlXT1cInVuaXRcIj5cbiAgICAgICAgICAgICAge3sgZ2V0QXJlYVVuaXRFbnVtKHVuaXQpIH19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImNhbmNlbERyYXdpbmcoKVwiPlxuICAgICAge3sgJ2lnby5nZW8uZHJhdy5jYW5jZWwnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY29uZmlybSgpXCI+XG4gICAgICB7eyBub0xhYmVsQnV0dG9uKCkgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsRmxhZyA9PT0gbGFiZWxUeXBlLkN1c3RvbVwiPlxuICA8ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImdlb21ldHJ5LXR5cGUtdG9nZ2xlXCI+XG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbi10b2dnbGUtY29udGFpbmVyXCI+XG4gICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXBcbiAgICAgICAgKGNoYW5nZSk9XCJvbkxhYmVsVHlwZUNoYW5nZSgkZXZlbnQudmFsdWUpXCJcbiAgICAgICAgW3ZhbHVlXT1cImN1c3RvbU9yUHJlZGVmaW5lZFwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwibGFiZWxUeXBlLkN1c3RvbVwiPlxuICAgICAgICAgIHt7ICdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLmN1c3RvbScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJsYWJlbFR5cGUuUHJlZGVmaW5lZFwiPlxuICAgICAgICAgIHt7ICdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLnByZWRlZmluZWQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuICAgIDwvZGl2PlxuICAgIDxwPlxuICAgICAge3sgJ2lnby5nZW8uZHJhdy5kaWFsb2dJbnN0cnVjdGlvbicgfCB0cmFuc2xhdGUgfX1cbiAgICA8L3A+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiaW5wdXRcIj5cbiAgICAgIDxtYXQtbGFiZWw+e3sgJ2lnby5nZW8uZHJhdy5kaWFsb2dUaXRsZScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgKHNlbGVjdCk9XCIodHJ1ZSlcIlxuICAgICAgICAoaW5wdXQpPVwiZ2V0TGFiZWxMZW5ndGgoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLmRyYXcuZGlhbG9nVGl0bGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgdmFsdWU9XCJ7eyBjdXJyZW50TGFiZWwgfX1cIlxuICAgICAgICBjZGtGb2N1c0luaXRpYWxcbiAgICAgIC8+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsRHJhd2luZygpXCI+XG4gICAgICB7eyAnaWdvLmdlby5kcmF3LmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJjb25maXJtKGlucHV0LnZhbHVlKVwiPlxuICAgICAge3sgbm9MYWJlbEJ1dHRvbigpIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
677
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kcmF3L2RyYXcvZHJhdy1wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kcmF3L2RyYXcvZHJhdy1wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTdDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLE1BQU0sTUFBTSxnQkFBZ0IsQ0FBQztBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXRDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLDJCQUEyQixFQUMzQixpQkFBaUIsRUFDakIsNkJBQTZCLEVBQzlCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUNMLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLGtCQUFrQixFQUNuQixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0Is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QUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQzVDO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxTQUFTLENBQUMsV0FBVyxFQUFFO1lBQzlELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2xFO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ2hFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzdEO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFO1lBQzlELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMzRDthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxD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OzZEQTlCZCxrQkFBa0I7WUNoQy9CLDZCQUFxQjtZQUNuQixZQUNGOztZQUFBLGlCQUFLO1lBRUwsdUZBNkhlO1lBRWYsdUZBd0NlOztZQTFLYixlQUNGO1lBREUsaUZBQ0Y7WUFFZSxlQUFvQztZQUFwQyw2REFBb0M7WUErSHBDLGVBQW9DO1lBQXBDLDZEQUFvQzs7O3VGRG5HdEMsa0JBQWtCO2NBTDlCLFNBQVM7MkJBQ0UsMEJBQTBCOztzQkFrQ2pDLE1BQU07dUJBQUMsZUFBZTt3QkE3QmhCLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxTQUFTO2tCQUFqQixLQUFLO1lBQ0csc0JBQXNCO2tCQUE5QixLQUFLO1lBQ0csaUJBQWlCO2tCQUF6QixLQUFLO1lBQ0csZUFBZTtrQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCBPbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XHJcbmltcG9ydCBDaXJjbGUgZnJvbSAnb2wvZ2VvbS9DaXJjbGUnO1xyXG5pbXBvcnQgeyBmcm9tQ2lyY2xlIH0gZnJvbSAnb2wvZ2VvbS9Qb2x5Z29uJztcclxuaW1wb3J0IHsgdHJhbnNmb3JtIH0gZnJvbSAnb2wvcHJvaic7XHJcbmltcG9ydCB7IGdldExlbmd0aCB9IGZyb20gJ29sL3NwaGVyZSc7XHJcblxyXG5pbXBvcnQgeyBJZ29NYXAsIHJvdW5kQ29vcmRUbyB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQnO1xyXG5pbXBvcnQge1xyXG4gIE1lYXN1cmVBcmVhVW5pdCxcclxuICBNZWFzdXJlQXJlYVVuaXRBYmJyZXZpYXRpb24sXHJcbiAgTWVhc3VyZUxlbmd0aFVuaXQsXHJcbiAgTWVhc3VyZUxlbmd0aFVuaXRBYmJyZXZpYXRpb25cclxufSBmcm9tICcuLi8uLi9tZWFzdXJlL3NoYXJlZC9tZWFzdXJlLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIG1lYXN1cmVPbEdlb21ldHJ5QXJlYSxcclxuICBtZWFzdXJlT2xHZW9tZXRyeUxlbmd0aCxcclxuICBtZXRlcnNUb1VuaXQsXHJcbiAgc3F1YXJlTWV0ZXJzVG9Vbml0XHJcbn0gZnJvbSAnLi4vLi4vbWVhc3VyZS9zaGFyZWQvbWVhc3VyZS51dGlscyc7XHJcbmltcG9ydCB7IENvb3JkaW5hdGVzVW5pdCwgR2VvbWV0cnlUeXBlLCBMYWJlbFR5cGUgfSBmcm9tICcuLi9zaGFyZWQvZHJhdy5lbnVtJztcclxuaW1wb3J0IHsgRER0b0RNUyB9IGZyb20gJy4uL3NoYXJlZC9kcmF3LnV0aWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWRyYXctcG9wdXAtY29tcG9uZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJhdy1wb3B1cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHJhdy1wb3B1cC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmF3UG9wdXBDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGNvbmZpcm1GbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbGFiZWxGbGFnOiBMYWJlbFR5cGUgfCBbTGFiZWxUeXBlLCBMYWJlbFR5cGVdID0gTGFiZWxUeXBlLkN1c3RvbTtcclxuICBASW5wdXQoKSBjb29yZGluYXRlc01lYXN1cmVVbml0OiBDb29yZGluYXRlc1VuaXQ7XHJcbiAgQElucHV0KCkgbGVuZ3RoTWVhc3VyZVVuaXQ6IE1lYXN1cmVMZW5ndGhVbml0O1xyXG4gIEBJbnB1dCgpIGFyZWFNZWFzdXJlVW5pdDogTWVhc3VyZUFyZWFVbml0O1xyXG5cclxuICBwdWJsaWMgZ2VvbWV0cnlUeXBlID0gR2VvbWV0cnlUeXBlO1xyXG4gIHB1YmxpYyBsYWJlbFR5cGUgPSBMYWJlbFR5cGU7XHJcbiAgcHVibGljIGFycmF5QnVpbHRJblR5cGU6IGFueVtdID0gW107XHJcblxyXG4gIHB1YmxpYyBjdXJyZW50TGFiZWw6IHN0cmluZztcclxuICBwdWJsaWMgY3VycmVudENvb3JkaW5hdGVzOiBzdHJpbmc7XHJcbiAgcHVibGljIGN1cnJlbnRBcmVhOiBzdHJpbmc7XHJcbiAgcHVibGljIGN1cnJlbnRMZW5ndGg6IHN0cmluZztcclxuXHJcbiAgcHVibGljIG9sR2VvbWV0cnlUeXBlOiBHZW9tZXRyeVR5cGUgPSB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGxlbmd0aEluTWV0ZXJzOiBzdHJpbmc7XHJcbiAgcHVibGljIGFyZWFJbk1ldGVyc1NxdWFyZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBjb29yZGluYXRlc0luREQ6IHN0cmluZztcclxuICBwdWJsaWMgY3VycmVudENvb3JkaW5hdGVzVW5pdDogc3RyaW5nO1xyXG5cclxuICBwcml2YXRlIGxvbmdsYXRERDogW251bWJlciwgbnVtYmVyXTtcclxuICBwcml2YXRlIGxhYmVsTGVuZ3RoOiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBwb2x5Z29uQ2hlY2sgPSAwOyAvLyBDb3VudCBmb3IgcG9seWdvbiBsYWJlbCB0eXBlcyBjaGVja2JveGVzXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxEcmF3UG9wdXBDb21wb25lbnQ+LFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiB7IG9sR2VvbWV0cnk6IGFueTsgbWFwOiBJZ29NYXAgfVxyXG4gICkge1xyXG4gICAgdGhpcy5jdXJyZW50TGFiZWwgPSB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXQoJ2RyYXcnKTtcclxuICAgIHRoaXMubGFiZWxMZW5ndGggPSB0aGlzLmN1cnJlbnRMYWJlbCA/IHRoaXMuY3VycmVudExhYmVsLmxlbmd0aCA6IDA7XHJcbiAgICBsZXQgb2xHZW9tZXRyeTtcclxuXHJcbiAgICBjb25zdCBwcm9qZWN0aW9uID0gdGhpcy5kYXRhLm1hcC5vbC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpO1xyXG5cclxuICAgIGlmICh0aGlzLmRhdGEub2xHZW9tZXRyeSBpbnN0YW5jZW9mIE9sRmVhdHVyZSkge1xyXG4gICAgICBpZiAodGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0KCdyYWQnKSkge1xyXG4gICAgICAgIGNvbnN0IGxvbmdpdHVkZUxhdGl0dWRlID0gW1xyXG4gICAgICAgICAgdGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0KCdsb25naXR1ZGUnKSxcclxuICAgICAgICAgIHRoaXMuZGF0YS5vbEdlb21ldHJ5LmdldCgnbGF0aXR1ZGUnKVxyXG4gICAgICAgIF07XHJcbiAgICAgICAgdGhpcy5vbEdlb21ldHJ5VHlwZSA9IEdlb21ldHJ5VHlwZS5DaXJjbGU7XHJcbiAgICAgICAgb2xHZW9tZXRyeSA9IG5ldyBDaXJjbGUoXHJcbiAgICAgICAgICBsb25naXR1ZGVMYXRpdHVkZSxcclxuICAgICAgICAgIHRoaXMuZGF0YS5vbEdlb21ldHJ5LmdldCgncmFkJylcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub2xHZW9tZXRyeVR5cGUgPSB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKTtcclxuICAgICAgICBvbEdlb21ldHJ5ID0gdGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0KCdnZW9tZXRyeScpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9sR2VvbWV0cnlUeXBlID0gdGhpcy5kYXRhLm9sR2VvbWV0cnkuZ2V0VHlwZSgpO1xyXG4gICAgICBvbEdlb21ldHJ5ID0gdGhpcy5kYXRhLm9sR2VvbWV0cnk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuUG9pbnQgfHxcclxuICAgICAgdGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkNpcmNsZVxyXG4gICAgKSB7XHJcbiAgICAgIGlmICh0aGlzLmRhdGEub2xHZW9tZXRyeSBpbnN0YW5jZW9mIE9sRmVhdHVyZSkge1xyXG4gICAgICAgIGxldCBsb25naXR1ZGUgPSB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXQoJ2xvbmdpdHVkZScpO1xyXG4gICAgICAgIGxldCBsYXRpdHVkZSA9IHRoaXMuZGF0YS5vbEdlb21ldHJ5LmdldCgnbGF0aXR1ZGUnKTtcclxuICAgICAgICB0aGlzLmxvbmdsYXRERCA9IHJvdW5kQ29vcmRUbyhbbG9uZ2l0dWRlLCBsYXRpdHVkZV0sIDUpO1xyXG4gICAgICAgIHRoaXMuY29vcmRpbmF0ZXNJbkREID0gJygnICsgbGF0aXR1ZGUgKyAnLCAnICsgbG9uZ2l0dWRlICsgJyknO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBwb2ludDQzMjYgPSB0cmFuc2Zvcm0oXHJcbiAgICAgICAgICB0aGlzLmRhdGEub2xHZW9tZXRyeS5nZXRGbGF0Q29vcmRpbmF0ZXMoKSxcclxuICAgICAgICAgIHByb2plY3Rpb24sXHJcbiAgICAgICAgICAnRVBTRzo0MzI2J1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5sb25nbGF0REQgPSByb3VuZENvb3JkVG8oW3BvaW50NDMyNlswXSwgcG9pbnQ0MzI2WzFdXSwgNSk7XHJcbiAgICAgICAgdGhpcy5jb29yZGluYXRlc0luREQgPVxyXG4gICAgICAgICAgJygnICsgdGhpcy5sb25nbGF0RERbMV0gKyAnLCAnICsgdGhpcy5sb25nbGF0RERbMF0gKyAnKSc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jdXJyZW50Q29vcmRpbmF0ZXMgPSB0aGlzLmNvb3JkaW5hdGVzSW5ERDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuTGluZVN0cmluZykge1xyXG4gICAgICB0aGlzLmxlbmd0aEluTWV0ZXJzID0gbWVhc3VyZU9sR2VvbWV0cnlMZW5ndGgoXHJcbiAgICAgICAgb2xHZW9tZXRyeSxcclxuICAgICAgICBwcm9qZWN0aW9uLmdldENvZGUoKVxyXG4gICAgICApLnRvRml4ZWQoMik7XHJcbiAgICAgIHRoaXMuY3VycmVudExlbmd0aCA9IHRoaXMubGVuZ3RoSW5NZXRlcnM7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5Qb2x5Z29uKSB7XHJcbiAgICAgIHRoaXMubGVuZ3RoSW5NZXRlcnMgPSBtZWFzdXJlT2xHZW9tZXRyeUxlbmd0aChcclxuICAgICAgICBvbEdlb21ldHJ5LFxyXG4gICAgICAgIHByb2plY3Rpb24uZ2V0Q29kZSgpXHJcbiAgICAgICkudG9GaXhlZCgyKTtcclxuICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoID0gdGhpcy5sZW5ndGhJbk1ldGVycztcclxuICAgICAgdGhpcy5hcmVhSW5NZXRlcnNTcXVhcmUgPSBtZWFzdXJlT2xHZW9tZXRyeUFyZWEoXHJcbiAgICAgICAgb2xHZW9tZXRyeSxcclxuICAgICAgICBwcm9qZWN0aW9uLmdldENvZGUoKVxyXG4gICAgICApLnRvRml4ZWQoMik7XHJcbiAgICAgIHRoaXMuY3VycmVudEFyZWEgPSB0aGlzLmFyZWFJbk1ldGVyc1NxdWFyZTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkNpcmNsZSkge1xyXG4gICAgICBsZXQgY2lyY3VsYXJQb2x5Z29uID0gZnJvbUNpcmNsZShvbEdlb21ldHJ5LCAxMDAwMCk7XHJcbiAgICAgIGNvbnN0IHJhZGl1cyA9IHRoaXMuZ2V0UmFkaXVzKGNpcmN1bGFyUG9seWdvbik7XHJcbiAgICAgIHRoaXMubGVuZ3RoSW5NZXRlcnMgPSByYWRpdXMudG9GaXhlZCgyKTtcclxuICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoID0gdGhpcy5sZW5ndGhJbk1ldGVycztcclxuICAgICAgdGhpcy5hcmVhSW5NZXRlcnNTcXVhcmUgPSBtZWFzdXJlT2xHZW9tZXRyeUFyZWEoXHJcbiAgICAgICAgY2lyY3VsYXJQb2x5Z29uLFxyXG4gICAgICAgIHByb2plY3Rpb24uZ2V0Q29kZSgpXHJcbiAgICAgICkudG9GaXhlZCgyKTtcclxuICAgICAgdGhpcy5jdXJyZW50QXJlYSA9IHRoaXMuYXJlYUluTWV0ZXJzU3F1YXJlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChkYXRhLm9sR2VvbWV0cnkuZ2V0KCdsYWJlbFR5cGUnKSA9PT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKSB7XHJcbiAgICAgIHRoaXMub25MYWJlbFR5cGVDaGFuZ2UoTGFiZWxUeXBlLlByZWRlZmluZWQpO1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5Db29yZGluYXRlcywgdHJ1ZSk7XHJcbiAgICAgIHRoaXMuY29vcmRpbmF0ZXNNZWFzdXJlVW5pdCA9IGRhdGEub2xHZW9tZXRyeS5nZXQoJ21lYXN1cmVVbml0Jyk7XHJcbiAgICB9IGVsc2UgaWYgKGRhdGEub2xHZW9tZXRyeS5nZXQoJ2xhYmVsVHlwZScpID09PSBMYWJlbFR5cGUuTGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMub25MYWJlbFR5cGVDaGFuZ2UoTGFiZWxUeXBlLlByZWRlZmluZWQpO1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5MZW5ndGgsIHRydWUpO1xyXG4gICAgICB0aGlzLmxlbmd0aE1lYXN1cmVVbml0ID0gZGF0YS5vbEdlb21ldHJ5LmdldCgnbWVhc3VyZVVuaXQnKTtcclxuICAgIH0gZWxzZSBpZiAoZGF0YS5vbEdlb21ldHJ5LmdldCgnbGFiZWxUeXBlJykgPT09IExhYmVsVHlwZS5BcmVhKSB7XHJcbiAgICAgIHRoaXMub25MYWJlbFR5cGVDaGFuZ2UoTGFiZWxUeXBlLlByZWRlZmluZWQpO1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5BcmVhLCB0cnVlKTtcclxuICAgICAgdGhpcy5hcmVhTWVhc3VyZVVuaXQgPSBkYXRhLm9sR2VvbWV0cnkuZ2V0KCdtZWFzdXJlVW5pdCcpO1xyXG4gICAgfSBlbHNlIGlmIChkYXRhLm9sR2VvbWV0cnkuZ2V0KCdsYWJlbFR5cGUnKT8ubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgIHRoaXMub25MYWJlbFR5cGVDaGFuZ2UoTGFiZWxUeXBlLlByZWRlZmluZWQpO1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5MZW5ndGgsIHRydWUpO1xyXG4gICAgICB0aGlzLm9uTGFiZWxUeXBlQ2hhbmdlKExhYmVsVHlwZS5BcmVhLCB0cnVlKTtcclxuICAgICAgdGhpcy5sZW5ndGhNZWFzdXJlVW5pdCA9IGRhdGEub2xHZW9tZXRyeS5nZXQoJ21lYXN1cmVVbml0JylbMF07XHJcbiAgICAgIHRoaXMuYXJlYU1lYXN1cmVVbml0ID0gZGF0YS5vbEdlb21ldHJ5LmdldCgnbWVhc3VyZVVuaXQnKVsxXTtcclxuICAgIH1cclxuICAgIHRoaXMuYnVpbGRBcnJheVR5cGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhUTUwgSW50ZXJhY3Rpb25zXHJcbiAgICovXHJcblxyXG4gIGNhbmNlbERyYXdpbmcoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgY29uZmlybShpbnB1dD86IHN0cmluZykge1xyXG4gICAgdGhpcy5jb25maXJtRmxhZyA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5sYWJlbEZsYWcgPT09IExhYmVsVHlwZS5QcmVkZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubGFiZWxGbGFnID09PSBMYWJlbFR5cGUuQ3VzdG9tKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICBsYWJlbDogaW5wdXRcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubGFiZWxGbGFnID09PSBMYWJlbFR5cGUuQ29vcmRpbmF0ZXMpIHtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xyXG4gICAgICAgIGxhYmVsOiB0aGlzLmN1cnJlbnRDb29yZGluYXRlcyxcclxuICAgICAgICBtZWFzdXJlVW5pdDogdGhpcy5jb29yZGluYXRlc01lYXN1cmVVbml0XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuUG9seWdvbikge1xyXG4gICAgICBpZiAodGhpcy5wb2x5Z29uQ2hlY2sgPT09IDIpIHtcclxuICAgICAgICB0aGlzLmxhYmVsRmxhZyA9IFtMYWJlbFR5cGUuTGVuZ3RoLCBMYWJlbFR5cGUuQXJlYV07XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xyXG4gICAgICAgICAgbGFiZWw6XHJcbiAgICAgICAgICAgICdQOiAnICtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoICtcclxuICAgICAgICAgICAgJyAnICtcclxuICAgICAgICAgICAgTWVhc3VyZUxlbmd0aFVuaXRBYmJyZXZpYXRpb25bTWVhc3VyZUxlbmd0aFVuaXQuTWV0ZXJzXSArXHJcbiAgICAgICAgICAgICdcXG4nICtcclxuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuQScpICtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50QXJlYSArXHJcbiAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgIE1lYXN1cmVBcmVhVW5pdEFiYnJldmlhdGlvbltNZWFzdXJlQXJlYVVuaXQuU3F1YXJlTWV0ZXJzXSxcclxuICAgICAgICAgIG1lYXN1cmVVbml0OiBbdGhpcy5sZW5ndGhNZWFzdXJlVW5pdCwgdGhpcy5hcmVhTWVhc3VyZVVuaXRdXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sYWJlbEZsYWcgPT09IExhYmVsVHlwZS5MZW5ndGhcclxuICAgICAgICAgID8gdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xyXG4gICAgICAgICAgICAgIGxhYmVsOlxyXG4gICAgICAgICAgICAgICAgJ1A6ICcgK1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoICtcclxuICAgICAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgICAgICBNZWFzdXJlTGVuZ3RoVW5pdEFiYnJldmlhdGlvblt0aGlzLmxlbmd0aE1lYXN1cmVVbml0XSxcclxuICAgICAgICAgICAgICBtZWFzdXJlVW5pdDogdGhpcy5sZW5ndGhNZWFzdXJlVW5pdFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgOiB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XHJcbiAgICAgICAgICAgICAgbGFiZWw6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBcmVhICtcclxuICAgICAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgICAgICBNZWFzdXJlQXJlYVVuaXRBYmJyZXZpYXRpb25bdGhpcy5hcmVhTWVhc3VyZVVuaXRdLFxyXG4gICAgICAgICAgICAgIG1lYXN1cmVVbml0OiB0aGlzLmFyZWFNZWFzdXJlVW5pdFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLkxlbmd0aCkge1xyXG4gICAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkNpcmNsZSkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICAgIGxhYmVsOlxyXG4gICAgICAgICAgICAnUjogJyArXHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExlbmd0aCArXHJcbiAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgIE1lYXN1cmVMZW5ndGhVbml0QWJicmV2aWF0aW9uW3RoaXMubGVuZ3RoTWVhc3VyZVVuaXRdLFxyXG4gICAgICAgICAgbWVhc3VyZVVuaXQ6IHRoaXMubGVuZ3RoTWVhc3VyZVVuaXRcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuTGluZVN0cmluZykge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICAgIGxhYmVsOlxyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMZW5ndGggK1xyXG4gICAgICAgICAgICAnICcgK1xyXG4gICAgICAgICAgICBNZWFzdXJlTGVuZ3RoVW5pdEFiYnJldmlhdGlvblt0aGlzLmxlbmd0aE1lYXN1cmVVbml0XSxcclxuICAgICAgICAgIG1lYXN1cmVVbml0OiB0aGlzLmxlbmd0aE1lYXN1cmVVbml0XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5sYWJlbEZsYWcgPT09IExhYmVsVHlwZS5BcmVhKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICBsYWJlbDpcclxuICAgICAgICAgIHRoaXMuY3VycmVudEFyZWEgK1xyXG4gICAgICAgICAgJyAnICtcclxuICAgICAgICAgIE1lYXN1cmVBcmVhVW5pdEFiYnJldmlhdGlvblt0aGlzLmFyZWFNZWFzdXJlVW5pdF0sXHJcbiAgICAgICAgbWVhc3VyZVVuaXQ6IHRoaXMuYXJlYU1lYXN1cmVVbml0XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25MYWJlbFR5cGVDaGFuZ2UobGFiZWxUeXBlOiBMYWJlbFR5cGUsIGNoZWNrZWQ/OiBib29sZWFuKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGxhYmVsVHlwZSAhPT0gTGFiZWxUeXBlLlByZWRlZmluZWQgJiZcclxuICAgICAgbGFiZWxUeXBlICE9PSBMYWJlbFR5cGUuQ3VzdG9tICYmXHJcbiAgICAgIHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5Qb2x5Z29uXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5hcnJheUJ1aWx0SW5UeXBlLmZpbmQoKHR5cGUpID0+IHR5cGUudmFsdWUgPT09IGxhYmVsVHlwZSlcclxuICAgICAgICA/ICh0aGlzLmFycmF5QnVpbHRJblR5cGUuZmluZChcclxuICAgICAgICAgICAgKHR5cGUpID0+IHR5cGUudmFsdWUgPT09IGxhYmVsVHlwZVxyXG4gICAgICAgICAgKS5jaGVja2VkID0gY2hlY2tlZClcclxuICAgICAgICA6ICh0aGlzLmxhYmVsRmxhZyA9IHVuZGVmaW5lZCk7XHJcbiAgICAgIGNoZWNrZWRcclxuICAgICAgICA/ICh0aGlzLmxhYmVsRmxhZyA9IGxhYmVsVHlwZSlcclxuICAgICAgICA6ICh0aGlzLmxhYmVsRmxhZyA9IHRoaXMuYXJyYXlCdWlsdEluVHlwZS5maW5kKCh0eXBlKSA9PiB0eXBlLmNoZWNrZWQpXHJcbiAgICAgICAgICAgID8udmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sYWJlbEZsYWcgPSBsYWJlbFR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGxhYmVsVHlwZSA9PT0gTGFiZWxUeXBlLlByZWRlZmluZWQpIHtcclxuICAgICAgaWYgKHRoaXMub2xHZW9tZXRyeVR5cGUgPT09IEdlb21ldHJ5VHlwZS5Qb2ludCkge1xyXG4gICAgICAgIHRoaXMubGFiZWxGbGFnID0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzO1xyXG4gICAgICAgIHRoaXMuY3VycmVudENvb3JkaW5hdGVzID0gdGhpcy5jb29yZGluYXRlc0luREQ7XHJcbiAgICAgICAgdGhpcy5jb29yZGluYXRlc01lYXN1cmVVbml0ID0gQ29vcmRpbmF0ZXNVbml0LkRlY2ltYWxEZWdyZWU7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkxpbmVTdHJpbmcpIHtcclxuICAgICAgICB0aGlzLmxhYmVsRmxhZyA9IExhYmVsVHlwZS5MZW5ndGg7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGVuZ3RoID0gdGhpcy5sZW5ndGhJbk1ldGVycztcclxuICAgICAgICB0aGlzLmxlbmd0aE1lYXN1cmVVbml0ID0gTWVhc3VyZUxlbmd0aFVuaXQuTWV0ZXJzO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGxhYmVsVHlwZSA9PT0gTGFiZWxUeXBlLkFyZWEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50QXJlYSA9IHRoaXMuYXJlYUluTWV0ZXJzU3F1YXJlO1xyXG4gICAgICB0aGlzLmFyZWFNZWFzdXJlVW5pdCA9IE1lYXN1cmVBcmVhVW5pdC5TcXVhcmVNZXRlcnM7XHJcbiAgICB9IGVsc2UgaWYgKGxhYmVsVHlwZSA9PT0gTGFiZWxUeXBlLkxlbmd0aCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRMZW5ndGggPSB0aGlzLmxlbmd0aEluTWV0ZXJzO1xyXG4gICAgICB0aGlzLmxlbmd0aE1lYXN1cmVVbml0ID0gTWVhc3VyZUxlbmd0aFVuaXQuTWV0ZXJzO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudENvb3JkaW5hdGVzID0gdGhpcy5jb29yZGluYXRlc0luREQ7XHJcbiAgICAgIHRoaXMuY29vcmRpbmF0ZXNNZWFzdXJlVW5pdCA9IENvb3JkaW5hdGVzVW5pdC5EZWNpbWFsRGVncmVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGxhYmVsdHlwZXMgPSBbdGhpcy5sYWJlbFR5cGUuTGVuZ3RoLCB0aGlzLmxhYmVsVHlwZS5BcmVhXTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLlBvbHlnb24gJiZcclxuICAgICAgbGFiZWx0eXBlcy5pbmNsdWRlcyhsYWJlbFR5cGUpXHJcbiAgICApIHtcclxuICAgICAgY2hlY2tlZCA/ICh0aGlzLnBvbHlnb25DaGVjayArPSAxKSA6ICh0aGlzLnBvbHlnb25DaGVjayAtPSAxKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucG9seWdvbkNoZWNrID0gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlTGVuZ3RoVW5pdChsZW5ndGhVbml0OiBNZWFzdXJlTGVuZ3RoVW5pdCkge1xyXG4gICAgdGhpcy5sZW5ndGhNZWFzdXJlVW5pdCA9IGxlbmd0aFVuaXQ7XHJcbiAgICB0aGlzLmN1cnJlbnRMZW5ndGggPSBtZXRlcnNUb1VuaXQoXHJcbiAgICAgIE51bWJlcih0aGlzLmxlbmd0aEluTWV0ZXJzKSxcclxuICAgICAgbGVuZ3RoVW5pdFxyXG4gICAgKS50b0ZpeGVkKDIpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VBcmVhVW5pdChhcmVhVW5pdDogTWVhc3VyZUFyZWFVbml0KSB7XHJcbiAgICB0aGlzLmFyZWFNZWFzdXJlVW5pdCA9IGFyZWFVbml0O1xyXG4gICAgdGhpcy5jdXJyZW50QXJlYSA9IHNxdWFyZU1ldGVyc1RvVW5pdChcclxuICAgICAgTnVtYmVyKHRoaXMuYXJlYUluTWV0ZXJzU3F1YXJlKSxcclxuICAgICAgYXJlYVVuaXRcclxuICAgICkudG9GaXhlZCgyKTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlQ29vcmRpbmF0ZVVuaXQoY29vcmRpbmF0ZXNVbml0OiBDb29yZGluYXRlc1VuaXQpIHtcclxuICAgIHRoaXMuY29vcmRpbmF0ZXNNZWFzdXJlVW5pdCA9IGNvb3JkaW5hdGVzVW5pdDtcclxuICAgIGxldCBjb29yZGluYXRlcyA9IEREdG9ETVModGhpcy5sb25nbGF0REQsIGNvb3JkaW5hdGVzVW5pdCk7XHJcbiAgICB0aGlzLmN1cnJlbnRDb29yZGluYXRlcyA9XHJcbiAgICAgICcoJyArIGNvb3JkaW5hdGVzWzFdICsgJywgJyArIGNvb3JkaW5hdGVzWzBdICsgJyknO1xyXG4gIH1cclxuXHJcbiAgYnVpbGRBcnJheVR5cGUoKSB7XHJcbiAgICBmb3IgKGNvbnN0IGxhYmVsVHlwZSBvZiBPYmplY3QudmFsdWVzKExhYmVsVHlwZSkpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGxhYmVsVHlwZSAhPT0gTGFiZWxUeXBlLkN1c3RvbSAmJlxyXG4gICAgICAgIGxhYmVsVHlwZSAhPT0gTGFiZWxUeXBlLlByZWRlZmluZWRcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5hcnJheUJ1aWx0SW5UeXBlLnB1c2goe1xyXG4gICAgICAgICAgdmFsdWU6IGxhYmVsVHlwZSxcclxuICAgICAgICAgIGNoZWNrZWQ6XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0T3B0aW9ucyhsYWJlbFR5cGUpIHx8XHJcbiAgICAgICAgICAgIHRoaXMubGFiZWxGbGFnID09PSBsYWJlbFR5cGUgfHxcclxuICAgICAgICAgICAgKHRoaXMucG9seWdvbkNoZWNrID09PSAyICYmIGxhYmVsVHlwZSAhPT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBub0xhYmVsQnV0dG9uKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLlByZWRlZmluZWQgfHxcclxuICAgICAgKHRoaXMubGFiZWxGbGFnID09PSBMYWJlbFR5cGUuQ3VzdG9tICYmIHRoaXMubGFiZWxMZW5ndGggPT09IDApXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRyYXcubm9MYWJlbCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAnT0snO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1c3RvbU9yUHJlZGVmaW5lZCgpIHtcclxuICAgIGlmICh0aGlzLmxhYmVsRmxhZyA9PT0gTGFiZWxUeXBlLkN1c3RvbSkge1xyXG4gICAgICByZXR1cm4gTGFiZWxUeXBlLkN1c3RvbTtcclxuICAgIH1cclxuICAgIHJldHVybiBMYWJlbFR5cGUuUHJlZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIG9wdGlvbkF2YWlsYWJsZShjdXJyZW50T3B0aW9uOiBMYWJlbFR5cGUpIHtcclxuICAgIHN3aXRjaCAodGhpcy5vbEdlb21ldHJ5VHlwZSkge1xyXG4gICAgICBjYXNlIEdlb21ldHJ5VHlwZS5Qb2ludDpcclxuICAgICAgICBpZiAoY3VycmVudE9wdGlvbiA9PT0gTGFiZWxUeXBlLkNvb3JkaW5hdGVzKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBjYXNlIEdlb21ldHJ5VHlwZS5MaW5lU3RyaW5nOlxyXG4gICAgICAgIGlmIChjdXJyZW50T3B0aW9uID09PSBMYWJlbFR5cGUuTGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBjYXNlIEdlb21ldHJ5VHlwZS5Qb2x5Z29uOlxyXG4gICAgICAgIGlmIChjdXJyZW50T3B0aW9uID09PSBMYWJlbFR5cGUuQ29vcmRpbmF0ZXMpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGFsbExlbmd0aFVuaXRzKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKE1lYXN1cmVMZW5ndGhVbml0KTtcclxuICB9XHJcblxyXG4gIGdldExlbmd0aFVuaXRFbnVtKGxlbmd0aFVuaXQ6IE1lYXN1cmVMZW5ndGhVbml0KSB7XHJcbiAgICByZXR1cm4gTWVhc3VyZUxlbmd0aFVuaXRBYmJyZXZpYXRpb25bbGVuZ3RoVW5pdF07XHJcbiAgfVxyXG5cclxuICBnZXQgYWxsQXJlYVVuaXRzKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKE1lYXN1cmVBcmVhVW5pdCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYWxsQ29vcmRpbmF0ZXNVbml0cygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhDb29yZGluYXRlc1VuaXQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QXJlYVVuaXRFbnVtKGFyZWFVbml0OiBNZWFzdXJlQXJlYVVuaXQpIHtcclxuICAgIHJldHVybiBNZWFzdXJlQXJlYVVuaXRBYmJyZXZpYXRpb25bYXJlYVVuaXRdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRSYWRpdXMob2xHZW9tZXRyeSk6IG51bWJlciB7XHJcbiAgICBjb25zdCBsZW5ndGggPSBnZXRMZW5ndGgob2xHZW9tZXRyeSk7XHJcbiAgICByZXR1cm4gTnVtYmVyKGxlbmd0aCAvICgyICogTWF0aC5QSSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxlbmd0aExhYmVsVCgpIHtcclxuICAgIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuUG9seWdvbikge1xyXG4gICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgJ2lnby5nZW8ubWVhc3VyZS5wZXJpbWV0ZXInXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkNpcmNsZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgJ2lnby5nZW8uc2VhcmNoLmNvb3JkaW5hdGVzLnJhZGl1cydcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuTGVuZ3RoJ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldExhYmVsTGVuZ3RoKGV2ZW50Pykge1xyXG4gICAgdGhpcy5sYWJlbExlbmd0aCA9IGV2ZW50Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHNlbGVjdE9wdGlvbnMob3B0aW9uKSB7XHJcbiAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLlBvaW50KSB7XHJcbiAgICAgIHJldHVybiBvcHRpb24gPT09IExhYmVsVHlwZS5Db29yZGluYXRlcztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLkxpbmVTdHJpbmcpIHtcclxuICAgICAgcmV0dXJuIG9wdGlvbiA9PT0gTGFiZWxUeXBlLkxlbmd0aDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFByb3Blckxlbmd0aExhYmVsKG9wdGlvbikge1xyXG4gICAgaWYgKG9wdGlvbiA9PT0gTGFiZWxUeXBlLkxlbmd0aCkge1xyXG4gICAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gR2VvbWV0cnlUeXBlLlBvbHlnb24pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAnaWdvLmdlby5tZWFzdXJlLnBlcmltZXRlcidcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSBHZW9tZXRyeVR5cGUuQ2lyY2xlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgJ2lnby5nZW8uc2VhcmNoLmNvb3JkaW5hdGVzLnJhZGl1cydcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAnaWdvLmdlby5kcmF3LmxhYmVsVHlwZS5MZW5ndGgnXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLicgKyBvcHRpb25cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxoMiBtYXQtZGlhbG9nLXRpdGxlPlxyXG4gIHt7ICdpZ28uZ2VvLmRyYXcucG9wdXBUaXRsZScgfCB0cmFuc2xhdGUgfX1cclxuPC9oMj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbEZsYWcgIT09IGxhYmVsVHlwZS5DdXN0b21cIj5cclxuICA8ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImdlb21ldHJ5LXR5cGUtdG9nZ2xlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXRvZ2dsZS1jb250YWluZXJcIj5cclxuICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkxhYmVsVHlwZUNoYW5nZSgkZXZlbnQudmFsdWUpXCJcclxuICAgICAgICBbdmFsdWVdPVwiY3VzdG9tT3JQcmVkZWZpbmVkXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwibGFiZWxUeXBlLkN1c3RvbVwiPlxyXG4gICAgICAgICAge3sgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuY3VzdG9tJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJsYWJlbFR5cGUuUHJlZGVmaW5lZFwiPlxyXG4gICAgICAgICAge3sgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUucHJlZGVmaW5lZCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8cD5cclxuICAgICAgICB7eyAnaWdvLmdlby5kcmF3LmJ1aWx0SW5JbnN0cnVjdGlvbnMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvcD5cclxuICAgICAgPG1hdC1yYWRpby1ncm91cCAqbmdJZj1cIm9sR2VvbWV0cnlUeXBlICE9PSAnUG9seWdvbidcIj5cclxuICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBhcnJheUJ1aWx0SW5UeXBlXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbkF2YWlsYWJsZShvcHRpb24udmFsdWUpXCJcclxuICAgICAgICAgIChjaGFuZ2UpPVwib25MYWJlbFR5cGVDaGFuZ2UoJGV2ZW50LnZhbHVlKVwiXHJcbiAgICAgICAgICBbY2hlY2tlZF09XCJvcHRpb24uY2hlY2tlZFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgZ2V0UHJvcGVyTGVuZ3RoTGFiZWwob3B0aW9uLnZhbHVlKSB9fVxyXG4gICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvbEdlb21ldHJ5VHlwZSA9PT0gJ1BvbHlnb24nXCI+XHJcbiAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBhcnJheUJ1aWx0SW5UeXBlXCJcclxuICAgICAgICAgIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9uQXZhaWxhYmxlKG9wdGlvbi52YWx1ZSlcIlxyXG4gICAgICAgICAgKGNoYW5nZSk9XCJvbkxhYmVsVHlwZUNoYW5nZSgkZXZlbnQuc291cmNlLnZhbHVlLCAkZXZlbnQuY2hlY2tlZClcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwib3B0aW9uLmNoZWNrZWRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGdldFByb3Blckxlbmd0aExhYmVsKG9wdGlvbi52YWx1ZSkgfX1cclxuICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJsYWJlbEZsYWcgPT09IGxhYmVsVHlwZS5Db29yZGluYXRlc1wiIGNsYXNzPVwiZmllbGRzLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInJlYWRPbmx5LUlucHV0XCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPihMYXRpdHVkZSwgTG9uZ2l0dWRlKTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICNpbnB1dFxyXG4gICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIihMYXRpdHVkZSwgTG9uZ2l0dWRlKVwiXHJcbiAgICAgICAgICAgIHZhbHVlPVwie3sgY3VycmVudENvb3JkaW5hdGVzIH19XCJcclxuICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ1bml0LWZpZWxkXCI+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICBbdmFsdWVdPVwiY29vcmRpbmF0ZXNNZWFzdXJlVW5pdFwiXHJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGFuZ2VDb29yZGluYXRlVW5pdCgkZXZlbnQudmFsdWUpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHVuaXQgb2YgYWxsQ29vcmRpbmF0ZXNVbml0c1wiIFt2YWx1ZV09XCJ1bml0XCI+XHJcbiAgICAgICAgICAgICAge3sgdW5pdCB9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cImxhYmVsRmxhZyA9PT0gbGFiZWxUeXBlLkxlbmd0aCB8fCBwb2x5Z29uQ2hlY2sgPT09IDJcIlxyXG4gICAgICAgIGNsYXNzPVwiZmllbGRzLWNvbnRhaW5lclwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJyZWFkT25seS1JbnB1dFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eyBsZW5ndGhMYWJlbFQgfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAjaW5wdXRcclxuICAgICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBsZW5ndGhMYWJlbFQgfX1cIlxyXG4gICAgICAgICAgICB2YWx1ZT1cInt7IGN1cnJlbnRMZW5ndGggfX1cIlxyXG4gICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInVuaXQtZmllbGRcIj5cclxuICAgICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJsZW5ndGhNZWFzdXJlVW5pdFwiXHJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGFuZ2VMZW5ndGhVbml0KCRldmVudC52YWx1ZSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdW5pdCBvZiBhbGxMZW5ndGhVbml0c1wiIFt2YWx1ZV09XCJ1bml0XCI+XHJcbiAgICAgICAgICAgICAge3sgZ2V0TGVuZ3RoVW5pdEVudW0odW5pdCkgfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJsYWJlbEZsYWcgPT09IGxhYmVsVHlwZS5BcmVhIHx8IHBvbHlnb25DaGVjayA9PT0gMlwiXHJcbiAgICAgICAgY2xhc3M9XCJmaWVsZHMtY29udGFpbmVyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInJlYWRPbmx5LUlucHV0XCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLmRyYXcubGFiZWxUeXBlLkFyZWEnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgI2lucHV0XHJcbiAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuQXJlYScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICB2YWx1ZT1cInt7IGN1cnJlbnRBcmVhIH19XCJcclxuICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ1bml0LWZpZWxkXCI+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICBbdmFsdWVdPVwiYXJlYU1lYXN1cmVVbml0XCJcclxuICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkNoYW5nZUFyZWFVbml0KCRldmVudC52YWx1ZSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdW5pdCBvZiBhbGxBcmVhVW5pdHNcIiBbdmFsdWVdPVwidW5pdFwiPlxyXG4gICAgICAgICAgICAgIHt7IGdldEFyZWFVbml0RW51bSh1bml0KSB9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjYW5jZWxEcmF3aW5nKClcIj5cclxuICAgICAge3sgJ2lnby5nZW8uZHJhdy5jYW5jZWwnIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNvbmZpcm0oKVwiPlxyXG4gICAgICB7eyBub0xhYmVsQnV0dG9uKCkgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbEZsYWcgPT09IGxhYmVsVHlwZS5DdXN0b21cIj5cclxuICA8ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImdlb21ldHJ5LXR5cGUtdG9nZ2xlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXRvZ2dsZS1jb250YWluZXJcIj5cclxuICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkxhYmVsVHlwZUNoYW5nZSgkZXZlbnQudmFsdWUpXCJcclxuICAgICAgICBbdmFsdWVdPVwiY3VzdG9tT3JQcmVkZWZpbmVkXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwibGFiZWxUeXBlLkN1c3RvbVwiPlxyXG4gICAgICAgICAge3sgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUuY3VzdG9tJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJsYWJlbFR5cGUuUHJlZGVmaW5lZFwiPlxyXG4gICAgICAgICAge3sgJ2lnby5nZW8uZHJhdy5sYWJlbFR5cGUucHJlZGVmaW5lZCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8cD5cclxuICAgICAge3sgJ2lnby5nZW8uZHJhdy5kaWFsb2dJbnN0cnVjdGlvbicgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvcD5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImlucHV0XCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgJ2lnby5nZW8uZHJhdy5kaWFsb2dUaXRsZScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgI2lucHV0XHJcbiAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAoc2VsZWN0KT1cIih0cnVlKVwiXHJcbiAgICAgICAgKGlucHV0KT1cImdldExhYmVsTGVuZ3RoKCRldmVudC50YXJnZXQudmFsdWUpXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLmRyYXcuZGlhbG9nVGl0bGUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICB2YWx1ZT1cInt7IGN1cnJlbnRMYWJlbCB9fVwiXHJcbiAgICAgICAgY2RrRm9jdXNJbml0aWFsXHJcbiAgICAgIC8+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImNhbmNlbERyYXdpbmcoKVwiPlxyXG4gICAgICB7eyAnaWdvLmdlby5kcmF3LmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY29uZmlybShpbnB1dC52YWx1ZSlcIj5cclxuICAgICAge3sgbm9MYWJlbEJ1dHRvbigpIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -43,6 +43,6 @@ export class DrawShorcutsComponent {
43
43
  }
44
44
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawShorcutsComponent, [{
45
45
  type: Component,
46
- args: [{ selector: 'igo-draw-shorcuts', template: "<mat-dialog-content>\n <div>\n <span class=\"shortcut mat-typography\">\n <mat-icon class=\"shortcut-icon\" svgIcon=\"keyboard-return\"></mat-icon\n >{{ 'igo.geo.draw.finish' | translate }}</span\n >\n </div>\n <div>\n <span class=\"shortcut mat-typography\">\n <mat-icon class=\"shortcut-icon\" svgIcon=\"backspace-outline\"></mat-icon\n >{{ 'igo.geo.draw.undo' | translate }}</span\n >\n </div>\n <div>\n <span class=\"shortcut mat-typography\">\n <mat-icon class=\"shortcut-icon\" svgIcon=\"keyboard-esc\"></mat-icon\n >{{ 'igo.geo.draw.abort' | translate }}</span\n >\n </div>\n <div>\n <span class=\"shortcut mat-typography\">\n <mat-icon class=\"shortcut-icon\" svgIcon=\"keyboard-space\"></mat-icon\n >{{ 'igo.geo.draw.move' | translate }}</span\n >\n </div>\n</mat-dialog-content>\n<mat-dialog-actions class=\"shortcuts-close\">\n <button mat-raised-button mat-dialog-close color=\"primary\">OK</button>\n</mat-dialog-actions>\n", styles: [".shortcut{display:flex;align-items:center}.shortcut-icon{margin-right:10px}.shortcuts-close{display:flex;justify-content:center}\n"] }]
46
+ args: [{ selector: 'igo-draw-shorcuts', template: "<mat-dialog-content>\r\n <div>\r\n <span class=\"shortcut mat-typography\">\r\n <mat-icon class=\"shortcut-icon\" svgIcon=\"keyboard-return\"></mat-icon\r\n >{{ 'igo.geo.draw.finish' | translate }}</span\r\n >\r\n </div>\r\n <div>\r\n <span class=\"shortcut mat-typography\">\r\n <mat-icon class=\"shortcut-icon\" svgIcon=\"backspace-outline\"></mat-icon\r\n >{{ 'igo.geo.draw.undo' | translate }}</span\r\n >\r\n </div>\r\n <div>\r\n <span class=\"shortcut mat-typography\">\r\n <mat-icon class=\"shortcut-icon\" svgIcon=\"keyboard-esc\"></mat-icon\r\n >{{ 'igo.geo.draw.abort' | translate }}</span\r\n >\r\n </div>\r\n <div>\r\n <span class=\"shortcut mat-typography\">\r\n <mat-icon class=\"shortcut-icon\" svgIcon=\"keyboard-space\"></mat-icon\r\n >{{ 'igo.geo.draw.move' | translate }}</span\r\n >\r\n </div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions class=\"shortcuts-close\">\r\n <button mat-raised-button mat-dialog-close color=\"primary\">OK</button>\r\n</mat-dialog-actions>\r\n", styles: [".shortcut{display:flex;align-items:center}.shortcut-icon{margin-right:10px}.shortcuts-close{display:flex;justify-content:center}\n"] }]
47
47
  }], null, null); })();
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy1zaG9yY3V0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kcmF3L2RyYXcvZHJhdy1zaG9yY3V0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kcmF3L2RyYXcvZHJhdy1zaG9yY3V0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFPMUMsTUFBTSxPQUFPLHFCQUFxQjsrRUFBckIscUJBQXFCOzZEQUFyQixxQkFBcUI7WUNQbEMsMENBQW9CLFVBQUEsY0FBQTtZQUdkLDhCQUNDO1lBQUEsWUFBdUM7O1lBQUEsaUJBQ3pDLEVBQUE7WUFFSCwyQkFBSyxjQUFBO1lBRUQsOEJBQ0M7WUFBQSxZQUFxQzs7WUFBQSxpQkFDdkMsRUFBQTtZQUVILDRCQUFLLGVBQUE7WUFFRCwrQkFDQztZQUFBLGFBQXNDOztZQUFBLGlCQUN4QyxFQUFBO1lBRUgsNEJBQUssZUFBQTtZQUVELCtCQUNDO1lBQUEsYUFBcUM7O1lBQUEsaUJBQ3ZDLEVBQUEsRUFBQTtZQUdMLDhDQUE0QyxpQkFBQTtZQUNpQixtQkFBRTtZQUFBLGlCQUFTLEVBQUE7O1lBdkJqRSxlQUF1QztZQUF2QyxpRUFBdUM7WUFNdkMsZUFBcUM7WUFBckMsZ0VBQXFDO1lBTXJDLGVBQXNDO1lBQXRDLGlFQUFzQztZQU10QyxlQUFxQztZQUFyQyxpRUFBcUM7Ozt1RkRmL0IscUJBQXFCO2NBTGpDLFNBQVM7MkJBQ0UsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1kcmF3LXNob3JjdXRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RyYXctc2hvcmN1dHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcmF3LXNob3JjdXRzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHJhd1Nob3JjdXRzQ29tcG9uZW50IHt9XG4iLCI8bWF0LWRpYWxvZy1jb250ZW50PlxuICA8ZGl2PlxuICAgIDxzcGFuIGNsYXNzPVwic2hvcnRjdXQgbWF0LXR5cG9ncmFwaHlcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInNob3J0Y3V0LWljb25cIiBzdmdJY29uPVwia2V5Ym9hcmQtcmV0dXJuXCI+PC9tYXQtaWNvblxuICAgICAgPnt7ICdpZ28uZ2VvLmRyYXcuZmluaXNoJyB8IHRyYW5zbGF0ZSB9fTwvc3BhblxuICAgID5cbiAgPC9kaXY+XG4gIDxkaXY+XG4gICAgPHNwYW4gY2xhc3M9XCJzaG9ydGN1dCBtYXQtdHlwb2dyYXBoeVwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2hvcnRjdXQtaWNvblwiIHN2Z0ljb249XCJiYWNrc3BhY2Utb3V0bGluZVwiPjwvbWF0LWljb25cbiAgICAgID57eyAnaWdvLmdlby5kcmF3LnVuZG8nIHwgdHJhbnNsYXRlIH19PC9zcGFuXG4gICAgPlxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICA8c3BhbiBjbGFzcz1cInNob3J0Y3V0IG1hdC10eXBvZ3JhcGh5XCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJzaG9ydGN1dC1pY29uXCIgc3ZnSWNvbj1cImtleWJvYXJkLWVzY1wiPjwvbWF0LWljb25cbiAgICAgID57eyAnaWdvLmdlby5kcmF3LmFib3J0JyB8IHRyYW5zbGF0ZSB9fTwvc3BhblxuICAgID5cbiAgPC9kaXY+XG4gIDxkaXY+XG4gICAgPHNwYW4gY2xhc3M9XCJzaG9ydGN1dCBtYXQtdHlwb2dyYXBoeVwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2hvcnRjdXQtaWNvblwiIHN2Z0ljb249XCJrZXlib2FyZC1zcGFjZVwiPjwvbWF0LWljb25cbiAgICAgID57eyAnaWdvLmdlby5kcmF3Lm1vdmUnIHwgdHJhbnNsYXRlIH19PC9zcGFuXG4gICAgPlxuICA8L2Rpdj5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuPG1hdC1kaWFsb2ctYWN0aW9ucyBjbGFzcz1cInNob3J0Y3V0cy1jbG9zZVwiPlxuICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2UgY29sb3I9XCJwcmltYXJ5XCI+T0s8L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy1zaG9yY3V0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kcmF3L2RyYXcvZHJhdy1zaG9yY3V0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kcmF3L2RyYXcvZHJhdy1zaG9yY3V0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFPMUMsTUFBTSxPQUFPLHFCQUFxQjsrRUFBckIscUJBQXFCOzZEQUFyQixxQkFBcUI7WUNQbEMsMENBQW9CLFVBQUEsY0FBQTtZQUdkLDhCQUNDO1lBQUEsWUFBdUM7O1lBQUEsaUJBQ3pDLEVBQUE7WUFFSCwyQkFBSyxjQUFBO1lBRUQsOEJBQ0M7WUFBQSxZQUFxQzs7WUFBQSxpQkFDdkMsRUFBQTtZQUVILDRCQUFLLGVBQUE7WUFFRCwrQkFDQztZQUFBLGFBQXNDOztZQUFBLGlCQUN4QyxFQUFBO1lBRUgsNEJBQUssZUFBQTtZQUVELCtCQUNDO1lBQUEsYUFBcUM7O1lBQUEsaUJBQ3ZDLEVBQUEsRUFBQTtZQUdMLDhDQUE0QyxpQkFBQTtZQUNpQixtQkFBRTtZQUFBLGlCQUFTLEVBQUE7O1lBdkJqRSxlQUF1QztZQUF2QyxpRUFBdUM7WUFNdkMsZUFBcUM7WUFBckMsZ0VBQXFDO1lBTXJDLGVBQXNDO1lBQXRDLGlFQUFzQztZQU10QyxlQUFxQztZQUFyQyxpRUFBcUM7Ozt1RkRmL0IscUJBQXFCO2NBTGpDLFNBQVM7MkJBQ0UsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1kcmF3LXNob3JjdXRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJhdy1zaG9yY3V0cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHJhdy1zaG9yY3V0cy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmF3U2hvcmN1dHNDb21wb25lbnQge31cclxuIiwiPG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8ZGl2PlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzaG9ydGN1dCBtYXQtdHlwb2dyYXBoeVwiPlxyXG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJzaG9ydGN1dC1pY29uXCIgc3ZnSWNvbj1cImtleWJvYXJkLXJldHVyblwiPjwvbWF0LWljb25cclxuICAgICAgPnt7ICdpZ28uZ2VvLmRyYXcuZmluaXNoJyB8IHRyYW5zbGF0ZSB9fTwvc3BhblxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXY+XHJcbiAgICA8c3BhbiBjbGFzcz1cInNob3J0Y3V0IG1hdC10eXBvZ3JhcGh5XCI+XHJcbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInNob3J0Y3V0LWljb25cIiBzdmdJY29uPVwiYmFja3NwYWNlLW91dGxpbmVcIj48L21hdC1pY29uXHJcbiAgICAgID57eyAnaWdvLmdlby5kcmF3LnVuZG8nIHwgdHJhbnNsYXRlIH19PC9zcGFuXHJcbiAgICA+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdj5cclxuICAgIDxzcGFuIGNsYXNzPVwic2hvcnRjdXQgbWF0LXR5cG9ncmFwaHlcIj5cclxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2hvcnRjdXQtaWNvblwiIHN2Z0ljb249XCJrZXlib2FyZC1lc2NcIj48L21hdC1pY29uXHJcbiAgICAgID57eyAnaWdvLmdlby5kcmF3LmFib3J0JyB8IHRyYW5zbGF0ZSB9fTwvc3BhblxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXY+XHJcbiAgICA8c3BhbiBjbGFzcz1cInNob3J0Y3V0IG1hdC10eXBvZ3JhcGh5XCI+XHJcbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInNob3J0Y3V0LWljb25cIiBzdmdJY29uPVwia2V5Ym9hcmQtc3BhY2VcIj48L21hdC1pY29uXHJcbiAgICAgID57eyAnaWdvLmdlby5kcmF3Lm1vdmUnIHwgdHJhbnNsYXRlIH19PC9zcGFuXHJcbiAgICA+XHJcbiAgPC9kaXY+XHJcbjwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG48bWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwic2hvcnRjdXRzLWNsb3NlXCI+XHJcbiAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlIGNvbG9yPVwicHJpbWFyeVwiPk9LPC9idXR0b24+XHJcbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4iXX0=