@kepler.gl/components 3.2.6 → 3.3.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bottom-widget.d.ts +4 -4
- package/dist/common/action-panel.d.ts +3 -3
- package/dist/common/animation-control/animation-control.d.ts +1 -1
- package/dist/common/animation-control/playback-controls.d.ts +1 -1
- package/dist/common/color-legend.d.ts +4 -4
- package/dist/common/column-stats-chart.d.ts +3 -3
- package/dist/common/data-table/button.d.ts +1 -1
- package/dist/common/data-table/canvas.d.ts +0 -1
- package/dist/common/data-table/cell-size.d.ts +2 -2
- package/dist/common/data-table/display-format.d.ts +1 -1
- package/dist/common/data-table/header-cell.d.ts +2 -2
- package/dist/common/data-table/index.d.ts +7 -9
- package/dist/common/data-table/index.js +1 -1
- package/dist/common/data-table/option-dropdown.d.ts +1 -1
- package/dist/common/field-selector.d.ts +5 -5
- package/dist/common/field-token.d.ts +1 -1
- package/dist/common/file-uploader/file-drop.d.ts +1 -1
- package/dist/common/file-uploader/file-upload-progress.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.d.ts +1 -1
- package/dist/common/flex-container.d.ts +2 -3
- package/dist/common/histogram-plot.d.ts +1 -1
- package/dist/common/icon-button.d.ts +16 -16
- package/dist/common/icons/base.d.ts +1 -1
- package/dist/common/icons/close.js +1 -1
- package/dist/common/icons/effects/distance-fog.d.ts +14 -0
- package/dist/common/icons/effects/distance-fog.js +79 -0
- package/dist/common/icons/effects/surface-fog.d.ts +14 -0
- package/dist/common/icons/effects/surface-fog.js +86 -0
- package/dist/common/icons/index.d.ts +2 -0
- package/dist/common/icons/index.js +15 -1
- package/dist/common/item-selector/chickleted-input.d.ts +4 -4
- package/dist/common/item-selector/dropdown-list.d.ts +3 -3
- package/dist/common/item-selector/dropdown-select.d.ts +7 -7
- package/dist/common/item-selector/item-selector.d.ts +2 -2
- package/dist/common/item-selector/typeahead.d.ts +3 -3
- package/dist/common/loading-spinner.d.ts +2 -2
- package/dist/common/modal.d.ts +5 -5
- package/dist/common/portaled.d.ts +8 -25
- package/dist/common/progress-bar.d.ts +1 -1
- package/dist/common/radius-legend.d.ts +1 -1
- package/dist/common/range-brush.d.ts +1 -1
- package/dist/common/range-plot.d.ts +1 -1
- package/dist/common/slider/mouse-event.d.ts +1 -1
- package/dist/common/slider/slider-bar-handle.d.ts +2 -2
- package/dist/common/slider/slider-handle.d.ts +3 -3
- package/dist/common/slider/slider.d.ts +2 -2
- package/dist/common/styled-components.d.ts +157 -158
- package/dist/common/sync-timeline-control.d.ts +3 -3
- package/dist/common/time-range-slider-time-title.d.ts +1 -1
- package/dist/common/time-range-slider.d.ts +2 -2
- package/dist/common/timeline-slider.d.ts +1 -1
- package/dist/common/tippy-tooltip.d.ts +1 -1
- package/dist/common/toolbar-item.d.ts +1 -1
- package/dist/common/toolbar.d.ts +1 -1
- package/dist/common/vertical-toolbar.d.ts +2 -3
- package/dist/container.d.ts +6 -6
- package/dist/context.d.ts +3 -3
- package/dist/dnd-context.d.ts +2 -2
- package/dist/editor/editor.d.ts +1 -1
- package/dist/editor/editor.js +1 -1
- package/dist/editor/feature-action-panel.d.ts +1 -1
- package/dist/editor/feature-action-panel.js +1 -1
- package/dist/effects/compact-color-picker.d.ts +1 -1
- package/dist/effects/effect-configurator.d.ts +2 -2
- package/dist/effects/effect-configurator.js +52 -14
- package/dist/effects/effect-list.d.ts +1 -1
- package/dist/effects/effect-manager.d.ts +3 -3
- package/dist/effects/effect-manager.js +9 -2
- package/dist/effects/effect-panel-header.d.ts +2 -2
- package/dist/effects/effect-panel-header.js +2 -2
- package/dist/effects/effect-panel.d.ts +2 -2
- package/dist/effects/effect-time-configurator.d.ts +1 -1
- package/dist/effects/effect-time-selector.d.ts +1 -1
- package/dist/effects/effect-time-slider.d.ts +3 -3
- package/dist/effects/effect-type-dropdown-list.d.ts +2 -2
- package/dist/effects/effect-type-list-item.d.ts +1 -1
- package/dist/effects/effect-type-selector.d.ts +2 -2
- package/dist/effects/side-panel-title.d.ts +1 -1
- package/dist/effects/timezone-selector.d.ts +1 -1
- package/dist/filters/components.d.ts +2 -3
- package/dist/filters/filter-panels/types.d.ts +4 -4
- package/dist/filters/types.d.ts +8 -8
- package/dist/geocoder/geocoder.d.ts +3 -3
- package/dist/geocoder/geocoder.js +5 -1
- package/dist/geocoder-panel.d.ts +10 -2
- package/dist/geocoder-panel.js +3 -3
- package/dist/hooks/use-cloud-list-provider.d.ts +1 -1
- package/dist/hooks/use-dnd-effects.d.ts +1 -1
- package/dist/hooks/use-dnd-layers.d.ts +1 -1
- package/dist/hooks/use-feature-flags.d.ts +1 -1
- package/dist/hooks/use-fetch-raster-tile-metadata.d.ts +3 -3
- package/dist/hooks/use-fetch-vector-tile-metadata.d.ts +2 -2
- package/dist/hooks/use-legend-position.d.ts +4 -5
- package/dist/injector.d.ts +5 -5
- package/dist/kepler-gl.d.ts +53 -62
- package/dist/loading-indicator.d.ts +4 -4
- package/dist/map/effects/effect-control.d.ts +1 -1
- package/dist/map/layer-hover-info.d.ts +3 -3
- package/dist/map/layer-hover-info.js +2 -2
- package/dist/map/layer-selector-panel.d.ts +1 -1
- package/dist/map/lazy-tippy.js +3 -3
- package/dist/map/locale-panel.d.ts +1 -1
- package/dist/map/map-control-panel.d.ts +1 -1
- package/dist/map/map-control-toolbar.d.ts +6 -7
- package/dist/map/map-control-tooltip.d.ts +1 -1
- package/dist/map/map-control.d.ts +3 -2
- package/dist/map/map-control.js +1 -1
- package/dist/map/map-draw-panel.d.ts +1 -1
- package/dist/map/map-legend-panel.d.ts +4 -3
- package/dist/map/map-legend-panel.js +4 -2
- package/dist/map/map-legend.d.ts +10 -8
- package/dist/map/map-legend.js +37 -7
- package/dist/map/map-popover-content.d.ts +2 -2
- package/dist/map/map-popover.d.ts +2 -2
- package/dist/map/split-map-button.d.ts +1 -1
- package/dist/map/toggle-3d-button.d.ts +1 -1
- package/dist/map-container.d.ts +2 -2
- package/dist/map-container.js +45 -25
- package/dist/map-view-state-context.d.ts +9 -2
- package/dist/map-view-state-context.js +1 -1
- package/dist/modal-container.d.ts +3 -6
- package/dist/modals/cloud-components/cloud-header.d.ts +1 -1
- package/dist/modals/cloud-components/provider-select.d.ts +1 -1
- package/dist/modals/cloud-tile.d.ts +1 -1
- package/dist/modals/data-table-modal.d.ts +1 -1
- package/dist/modals/export-data-modal.js +2 -2
- package/dist/modals/export-image-modal.js +1 -1
- package/dist/modals/export-map-modal/components.d.ts +1 -1
- package/dist/modals/export-map-modal/export-html-map.d.ts +1 -1
- package/dist/modals/export-map-modal/export-json-map.d.ts +1 -1
- package/dist/modals/image-modal-container.d.ts +1 -1
- package/dist/modals/load-data-modal.d.ts +2 -2
- package/dist/modals/modal-dialog.d.ts +0 -2
- package/dist/modals/overwrite-map-modal.d.ts +1 -1
- package/dist/modals/save-map-modal.d.ts +3 -3
- package/dist/modals/share-map-modal.d.ts +1 -1
- package/dist/modals/tilesets-modals/common.d.ts +3 -3
- package/dist/modals/tilesets-modals/common.js +1 -1
- package/dist/modals/tilesets-modals/load-data-footer.d.ts +1 -1
- package/dist/modals/tilesets-modals/load-tileset.d.ts +1 -1
- package/dist/modals/tilesets-modals/load-tileset.js +8 -2
- package/dist/modals/tilesets-modals/tileset-icon.d.ts +1 -1
- package/dist/modals/tilesets-modals/tileset-raster-form.d.ts +2 -2
- package/dist/modals/tilesets-modals/tileset-tile3d-form.d.ts +12 -0
- package/dist/modals/tilesets-modals/tileset-tile3d-form.js +388 -0
- package/dist/modals/tilesets-modals/tileset-vector-form.d.ts +3 -3
- package/dist/modals/tilesets-modals/tileset-wms-form.d.ts +1 -1
- package/dist/modals/tilesets-modals/tileset-wms-form.js +53 -10
- package/dist/plot-container.js +49 -9
- package/dist/side-panel/add-by-dataset-button.d.ts +1 -1
- package/dist/side-panel/common/dataset-info.d.ts +2 -2
- package/dist/side-panel/common/dataset-info.js +2 -2
- package/dist/side-panel/common/dataset-tag.d.ts +2 -2
- package/dist/side-panel/common/dataset-title.d.ts +2 -2
- package/dist/side-panel/common/source-data-catalog.d.ts +3 -3
- package/dist/side-panel/common/types.d.ts +8 -8
- package/dist/side-panel/custom-panel.d.ts +2 -2
- package/dist/side-panel/filter-manager.d.ts +3 -3
- package/dist/side-panel/filter-panel/add-filter-button.d.ts +1 -1
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +2 -2
- package/dist/side-panel/interaction-manager.d.ts +1 -1
- package/dist/side-panel/interaction-panel/brush-config.d.ts +1 -1
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +3 -3
- package/dist/side-panel/interaction-panel/tooltip-config.d.ts +1 -1
- package/dist/side-panel/layer-manager.d.ts +2 -2
- package/dist/side-panel/layer-panel/add-layer-button.d.ts +1 -1
- package/dist/side-panel/layer-panel/channel-by-value-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-breaks-panel.d.ts +4 -4
- package/dist/side-panel/layer-panel/color-palette-preset.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-palette.d.ts +2 -2
- package/dist/side-panel/layer-panel/color-range-selector.d.ts +3 -3
- package/dist/side-panel/layer-panel/color-scale-selector.d.ts +4 -4
- package/dist/side-panel/layer-panel/color-selector.d.ts +3 -3
- package/dist/side-panel/layer-panel/column-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/custom-palette.d.ts +10 -10
- package/dist/side-panel/layer-panel/custom-picker.d.ts +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +1 -1
- package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -2
- package/dist/side-panel/layer-panel/dimension-scale-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/how-to-button.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-color-selector.d.ts +3 -3
- package/dist/side-panel/layer-panel/layer-column-config.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-column-mode-config.d.ts +3 -3
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +5 -5
- package/dist/side-panel/layer-panel/layer-configurator.d.ts +2 -2
- package/dist/side-panel/layer-panel/layer-configurator.js +27 -17
- package/dist/side-panel/layer-panel/layer-error-message.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-list.d.ts +2 -2
- package/dist/side-panel/layer-panel/layer-panel-header.d.ts +5 -5
- package/dist/side-panel/layer-panel/layer-panel.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-type-dropdown-list.d.ts +2 -2
- package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +2 -2
- package/dist/side-panel/layer-panel/layer-type-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +1 -1
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.d.ts +1 -1
- package/dist/side-panel/layer-panel/single-color-palette.d.ts +1 -1
- package/dist/side-panel/layer-panel/text-label-panel.d.ts +1 -1
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +2 -2
- package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/vis-config-slider.d.ts +1 -1
- package/dist/side-panel/layer-panel/vis-config-switch.d.ts +1 -1
- package/dist/side-panel/map-manager.d.ts +1 -1
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.d.ts +1 -1
- package/dist/side-panel/map-style-panel/map-layer-group-item.d.ts +2 -2
- package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +1 -1
- package/dist/side-panel/map-style-panel/map-style-selector.d.ts +1 -1
- package/dist/side-panel/panel-header-action.d.ts +1 -1
- package/dist/side-panel/panel-header.d.ts +12 -12
- package/dist/side-panel/panel-tab.d.ts +4 -4
- package/dist/side-panel/panel-title.d.ts +1 -1
- package/dist/side-panel/panel-toggle.d.ts +1 -1
- package/dist/side-panel/panel-view-list-toggle.d.ts +3 -3
- package/dist/side-panel/side-bar.d.ts +2 -2
- package/dist/side-panel.d.ts +1 -1
- package/dist/types.d.ts +3 -3
- package/package.json +23 -22
|
@@ -523,12 +523,22 @@ function LayerConfiguratorFactory(SourceDataSelector, VisConfigSlider, TextLabel
|
|
|
523
523
|
})), /*#__PURE__*/_react["default"].createElement(VisConfigSwitch, (0, _extends2["default"])({}, layer.visConfigSettings.fixedHeight, visConfiguratorProps)), /*#__PURE__*/_react["default"].createElement(VisConfigSwitch, (0, _extends2["default"])({}, visConfiguratorProps, layer.visConfigSettings.wireframe)))));
|
|
524
524
|
}
|
|
525
525
|
}, {
|
|
526
|
-
key: "
|
|
527
|
-
value: function
|
|
526
|
+
key: "_renderTile3dLayerConfig",
|
|
527
|
+
value: function _renderTile3dLayerConfig(_ref11) {
|
|
528
528
|
var layer = _ref11.layer,
|
|
529
529
|
visConfiguratorProps = _ref11.visConfiguratorProps,
|
|
530
|
-
layerChannelConfigProps = _ref11.layerChannelConfigProps,
|
|
531
530
|
layerConfiguratorProps = _ref11.layerConfiguratorProps;
|
|
531
|
+
return /*#__PURE__*/_react["default"].createElement(StyledLayerVisualConfigurator, null, /*#__PURE__*/_react["default"].createElement(LayerConfigGroup, {
|
|
532
|
+
label: 'layer.appearance'
|
|
533
|
+
}, /*#__PURE__*/_react["default"].createElement(LayerColorSelector, layerConfiguratorProps), /*#__PURE__*/_react["default"].createElement(VisConfigSlider, (0, _extends2["default"])({}, layer.visConfigSettings.opacity, visConfiguratorProps)), /*#__PURE__*/_react["default"].createElement(VisConfigSlider, (0, _extends2["default"])({}, layer.visConfigSettings.pointSize, visConfiguratorProps))));
|
|
534
|
+
}
|
|
535
|
+
}, {
|
|
536
|
+
key: "_renderWmsLayerConfig",
|
|
537
|
+
value: function _renderWmsLayerConfig(_ref12) {
|
|
538
|
+
var layer = _ref12.layer,
|
|
539
|
+
visConfiguratorProps = _ref12.visConfiguratorProps,
|
|
540
|
+
layerChannelConfigProps = _ref12.layerChannelConfigProps,
|
|
541
|
+
layerConfiguratorProps = _ref12.layerConfiguratorProps;
|
|
532
542
|
return /*#__PURE__*/_react["default"].createElement(StyledLayerVisualConfigurator, null, /*#__PURE__*/_react["default"].createElement(LayerConfigGroup, {
|
|
533
543
|
label: 'layer.service'
|
|
534
544
|
}, /*#__PURE__*/_react["default"].createElement(_styledComponents2.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
@@ -576,11 +586,11 @@ function LayerConfiguratorFactory(SourceDataSelector, VisConfigSlider, TextLabel
|
|
|
576
586
|
updateLayerType = _this$props.updateLayerType,
|
|
577
587
|
_this$props$disableTy = _this$props.disableTypeSelect,
|
|
578
588
|
disableTypeSelect = _this$props$disableTy === void 0 ? false : _this$props$disableTy;
|
|
579
|
-
var
|
|
580
|
-
|
|
581
|
-
fields =
|
|
582
|
-
|
|
583
|
-
fieldPairs =
|
|
589
|
+
var _ref13 = layer.config.dataId ? datasets[layer.config.dataId] : {},
|
|
590
|
+
_ref13$fields = _ref13.fields,
|
|
591
|
+
fields = _ref13$fields === void 0 ? [] : _ref13$fields,
|
|
592
|
+
_ref13$fieldPairs = _ref13.fieldPairs,
|
|
593
|
+
fieldPairs = _ref13$fieldPairs === void 0 ? undefined : _ref13$fieldPairs;
|
|
584
594
|
var config = layer.config;
|
|
585
595
|
var visConfiguratorProps = getVisConfiguratorProps(this.props);
|
|
586
596
|
var layerConfiguratorProps = getLayerConfiguratorProps(this.props);
|
|
@@ -647,10 +657,10 @@ function LayerConfiguratorFactory(SourceDataSelector, VisConfigSlider, TextLabel
|
|
|
647
657
|
}(_react.Component);
|
|
648
658
|
return LayerConfigurator;
|
|
649
659
|
}
|
|
650
|
-
var AggregationTypeSelector = exports.AggregationTypeSelector = function AggregationTypeSelector(
|
|
651
|
-
var channel =
|
|
652
|
-
layer =
|
|
653
|
-
_onChange =
|
|
660
|
+
var AggregationTypeSelector = exports.AggregationTypeSelector = function AggregationTypeSelector(_ref14) {
|
|
661
|
+
var channel = _ref14.channel,
|
|
662
|
+
layer = _ref14.layer,
|
|
663
|
+
_onChange = _ref14.onChange;
|
|
654
664
|
var field = channel.field,
|
|
655
665
|
aggregation = channel.aggregation,
|
|
656
666
|
key = channel.key;
|
|
@@ -659,12 +669,12 @@ var AggregationTypeSelector = exports.AggregationTypeSelector = function Aggrega
|
|
|
659
669
|
|
|
660
670
|
// aggregation should only be selectable when field is selected
|
|
661
671
|
var layerAggregationTypes = layer.getAggregationOptions(key);
|
|
662
|
-
var aggregationOptions = _constants.AGGREGATION_TYPE_OPTIONS.filter(function (
|
|
663
|
-
var id =
|
|
672
|
+
var aggregationOptions = _constants.AGGREGATION_TYPE_OPTIONS.filter(function (_ref15) {
|
|
673
|
+
var id = _ref15.id;
|
|
664
674
|
return layerAggregationTypes.includes(id);
|
|
665
675
|
});
|
|
666
|
-
var selectedAggregation = aggregation ? aggregationOptions.find(function (
|
|
667
|
-
var id =
|
|
676
|
+
var selectedAggregation = aggregation ? aggregationOptions.find(function (_ref16) {
|
|
677
|
+
var id = _ref16.id;
|
|
668
678
|
return id === visConfig[aggregation];
|
|
669
679
|
}) : [];
|
|
670
680
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents2.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(_styledComponents2.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
@@ -687,4 +697,4 @@ var AggregationTypeSelector = exports.AggregationTypeSelector = function Aggrega
|
|
|
687
697
|
}));
|
|
688
698
|
};
|
|
689
699
|
/* eslint-enable max-params */
|
|
690
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9jYWxpemF0aW9uIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2l0ZW1TZWxlY3RvciIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9zb3VyY2VEYXRhU2VsZWN0b3IiLCJfYWdnclNjYWxlU2VsZWN0b3IiLCJfY2hhbm5lbEJ5VmFsdWVTZWxlY3RvciIsIl9ob3dUb0J1dHRvbiIsIl9sYXllckNvbG9yU2VsZWN0b3IiLCJfbGF5ZXJDb2x1bW5Nb2RlQ29uZmlnIiwiX2xheWVyQ29uZmlnR3JvdXAiLCJfbGF5ZXJFcnJvck1lc3NhZ2UiLCJfbGF5ZXJUeXBlU2VsZWN0b3IiLCJfdGV4dExhYmVsUGFuZWwiLCJfdmlzQ29uZmlnU2xpZGVyIiwiX3Zpc0NvbmZpZ1N3aXRjaCIsIl9yYXN0ZXJUaWxlTGF5ZXJDb25maWd1cmF0b3IiLCJfdmVjdG9yVGlsZUxheWVyQ29uZmlndXJhdG9yIiwiX2NvbnN0YW50cyIsIl90YWJsZSIsIl91dGlscyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsIlN0eWxlZExheWVyQ29uZmlndXJhdG9yIiwic3R5bGVkIiwiZGl2IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJsYXllckNvbmZpZ3VyYXRvck1hcmdpbiIsImxheWVyQ29uZmlndXJhdG9yUGFkZGluZyIsImxheWVyQ29uZmlndXJhdG9yQm9yZGVyIiwibGF5ZXJDb25maWd1cmF0b3JCb3JkZXJDb2xvciIsIlN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yIiwiZ2V0TGF5ZXJGaWVsZHMiLCJleHBvcnRzIiwiZGF0YXNldHMiLCJsYXllciIsIl9sYXllciRjb25maWciLCJjb25maWciLCJkYXRhSWQiLCJmaWVsZHMiLCJnZXRMYXllckRhdGFzZXQiLCJfbGF5ZXIkY29uZmlnMiIsImdldExheWVyQ29uZmlndXJhdG9yUHJvcHMiLCJvbkNoYW5nZSIsInVwZGF0ZUxheWVyQ29uZmlnIiwic2V0Q29sb3JVSSIsInVwZGF0ZUxheWVyQ29sb3JVSSIsImdldFZpc0NvbmZpZ3VyYXRvclByb3BzIiwidXBkYXRlTGF5ZXJWaXNDb25maWciLCJnZXRMYXllckNoYW5uZWxDb25maWdQcm9wcyIsImRhdGFzZXQiLCJ1cGRhdGVMYXllclZpc3VhbENoYW5uZWxDb25maWciLCJMYXllckNvbmZpZ3VyYXRvckZhY3RvcnkiLCJkZXBzIiwiU291cmNlRGF0YVNlbGVjdG9yRmFjdG9yeSIsIlZpc0NvbmZpZ1NsaWRlckZhY3RvcnkiLCJUZXh0TGFiZWxQYW5lbEZhY3RvcnkiLCJMYXllckNvbmZpZ0dyb3VwRmFjdG9yeSIsIkNoYW5uZWxCeVZhbHVlU2VsZWN0b3JGYWN0b3J5IiwiTGF5ZXJDb2x1bW5Nb2RlQ29uZmlnRmFjdG9yeSIsIkxheWVyVHlwZVNlbGVjdG9yRmFjdG9yeSIsIlZpc0NvbmZpZ1N3aXRjaEZhY3RvcnkiLCJMYXllckNvbG9yU2VsZWN0b3JGYWN0b3J5IiwiTGF5ZXJDb2xvclJhbmdlU2VsZWN0b3JGYWN0b3J5IiwiQXJjTGF5ZXJDb2xvclNlbGVjdG9yRmFjdG9yeSIsIkFnZ3JTY2FsZVNlbGVjdG9yRmFjdG9yeSIsIlZlY3RvclRpbGVMYXllckNvbmZpZ3VyYXRvckZhY3RvcnkiLCJSYXN0ZXJUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5IiwiU291cmNlRGF0YVNlbGVjdG9yIiwiVmlzQ29uZmlnU2xpZGVyIiwiVGV4dExhYmVsUGFuZWwiLCJMYXllckNvbmZpZ0dyb3VwIiwiQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvciIsIkxheWVyQ29sdW1uTW9kZUNvbmZpZyIsIkxheWVyVHlwZVNlbGVjdG9yIiwiVmlzQ29uZmlnU3dpdGNoIiwiTGF5ZXJDb2xvclNlbGVjdG9yIiwiTGF5ZXJDb2xvclJhbmdlU2VsZWN0b3IiLCJBcmNMYXllckNvbG9yU2VsZWN0b3IiLCJBZ2dyU2NhbGVTZWxlY3RvciIsIlZlY3RvclRpbGVMYXllckNvbmZpZ3VyYXRvciIsIlJhc3RlclRpbGVMYXllckNvbmZpZ3VyYXRvciIsIkxheWVyQ29uZmlndXJhdG9yIiwiX0NvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY29uY2F0Iiwia2V5IiwiY29sdW1uTW9kZSIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwidmFsdWUiLCJfcmVuZGVyUG9pbnRMYXllckNvbmZpZyIsIl9yZW5kZXJTY2F0dGVycGxvdExheWVyQ29uZmlnIiwiX3JlbmRlckljb25MYXllckNvbmZpZyIsIl9yZW5kZXJWZWN0b3JUaWxlTGF5ZXJDb25maWciLCJjcmVhdGVFbGVtZW50IiwiX3JlbmRlclJhc3RlclRpbGVMYXllckNvbmZpZyIsIl9yZWYiLCJzaG93SW50ZXJhY3Rpb25Db250cm9scyIsInZpc0NvbmZpZ3VyYXRvclByb3BzIiwibGF5ZXJDaGFubmVsQ29uZmlnUHJvcHMiLCJsYXllckNvbmZpZ3VyYXRvclByb3BzIiwiX2V4dGVuZHMyIiwidmlzQ29uZmlnU2V0dGluZ3MiLCJmaWxsZWQiLCJsYWJlbCIsImNvbGxhcHNpYmxlIiwiY2hhbm5lbCIsInZpc3VhbENoYW5uZWxzIiwiY29sb3IiLCJjb2xvckZpZWxkIiwiQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQiLCJvcGFjaXR5IiwidHlwZSIsIkxBWUVSX1RZUEVTIiwicG9pbnQiLCJvdXRsaW5lIiwic3Ryb2tlQ29sb3IiLCJzdHJva2VDb2xvckZpZWxkIiwicHJvcGVydHkiLCJzZWxlY3RlZENvbG9yIiwidmlzQ29uZmlnIiwidGhpY2tuZXNzIiwiZGlzYWJsZWQiLCJzaXplRmllbGQiLCJyYWRpdXMiLCJyYWRpdXNSYW5nZSIsImZpeGVkUmFkaXVzIiwic2l6ZSIsImJpbGxib2FyZCIsImlkIiwidXBkYXRlTGF5ZXJUZXh0TGFiZWwiLCJ0ZXh0TGFiZWwiLCJhbGxvd0hvdmVyIiwic2hvd05laWdoYm9yT25Ib3ZlciIsInNob3dIaWdobGlnaHRDb2xvciIsIl9yZW5kZXJDbHVzdGVyTGF5ZXJDb25maWciLCJfcmVmMiIsImNvbG9yQWdncmVnYXRpb24iLCJjb25kaXRpb24iLCJBZ2dyZWdhdGlvblR5cGVTZWxlY3RvciIsImNsdXN0ZXJSYWRpdXMiLCJfcmVuZGVySGVhdG1hcExheWVyQ29uZmlnIiwiX3JlZjMiLCJ3ZWlnaHQiLCJfcmVuZGVyR3JpZExheWVyQ29uZmlnIiwiX3JlbmRlckFnZ3JlZ2F0aW9uTGF5ZXJDb25maWciLCJfcmVuZGVySGV4YWdvbkxheWVyQ29uZmlnIiwiX3JlZjQiLCJfY29uZmlnJHZpc0NvbmZpZyIsImVuYWJsZTNkIiwiZml4ZWRIZWlnaHQiLCJlbGV2YXRpb25CeURlc2NyaXB0aW9uIiwiY29sb3JCeURlc2NyaXB0aW9uIiwiZGVzY3JpcHRpb24iLCJwZXJjZW50aWxlIiwid29ybGRVbml0U2l6ZSIsImNvdmVyYWdlIiwiZWxldmF0aW9uU2NhbGUiLCJzaXplQWdncmVnYXRpb24iLCJzaXplUmFuZ2UiLCJlbGV2YXRpb25QZXJjZW50aWxlIiwiX3JlbmRlckhleGFnb25JZExheWVyQ29uZmlnIiwiX3JlZjUiLCJzdHJva2VPcGFjaXR5IiwiY292ZXJhZ2VGaWVsZCIsImNvdmVyYWdlUmFuZ2UiLCJfcmVuZGVyQXJjTGF5ZXJDb25maWciLCJfcmVuZGVyTGluZUxheWVyQ29uZmlnIiwiX3JlZjYiLCJzb3VyY2VDb2xvciIsIm9uQ2hhbmdlQ29uZmlnIiwib25DaGFuZ2VWaXNDb25maWciLCJfcmVuZGVyVHJpcExheWVyQ29uZmlnIiwiX3JlZjciLCJfbGF5ZXIkbWV0YSRmZWF0dXJlVHkiLCJtZXRhIiwiZmVhdHVyZVR5cGVzIiwicG9seWdvbiIsInN0cm9rZWQiLCJ0cmFpbExlbmd0aCIsImZhZGVUcmFpbCIsIl9yZW5kZXJHZW9qc29uTGF5ZXJDb25maWciLCJfcmVmOCIsIl9sYXllciRtZXRhJGZlYXR1cmVUeTIiLCJoZWlnaHQiLCJ3aXJlZnJhbWUiLCJyYWRpdXNGaWVsZCIsIl9yZW5kZXIzRExheWVyQ29uZmlnIiwiX3JlZjkiLCJGcmFnbWVudCIsIklucHV0IiwiYWNjZXB0IiwidGFyZ2V0IiwiZmlsZXMiLCJ1cmwiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJzY2VuZWdyYXBoIiwic2l6ZVNjYWxlIiwiYW5nbGVYIiwiYW5nbGVZIiwiYW5nbGVaIiwiX3JlbmRlclMyTGF5ZXJDb25maWciLCJfcmVmMTAiLCJoZWlnaHRSYW5nZSIsIl9yZW5kZXJXbXNMYXllckNvbmZpZyIsIl9yZWYxMSIsIlBhbmVsTGFiZWwiLCJGb3JtYXR0ZWRNZXNzYWdlIiwic2VsZWN0ZWRJdGVtcyIsIndtc0xheWVyIiwib3B0aW9ucyIsIm1ldGFkYXRhIiwibGF5ZXJzIiwiZGlzcGxheU9wdGlvbiIsImdldE9wdGlvblZhbHVlIiwibXVsdGlTZWxlY3QiLCJzZWFyY2hhYmxlIiwic2VsZWN0ZWRMYXllciIsImZpbmQiLCJsIiwibmFtZSIsInRyYW5zcGFyZW50IiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJvcGVuTW9kYWwiLCJsYXllclR5cGVPcHRpb25zIiwidXBkYXRlTGF5ZXJUeXBlIiwiX3RoaXMkcHJvcHMkZGlzYWJsZVR5IiwiZGlzYWJsZVR5cGVTZWxlY3QiLCJfcmVmMTIiLCJfcmVmMTIkZmllbGRzIiwiX3JlZjEyJGZpZWxkUGFpcnMiLCJmaWVsZFBhaXJzIiwidW5kZWZpbmVkIiwicmVuZGVyVGVtcGxhdGUiLCJjYXBpdGFsaXplRmlyc3RMZXR0ZXIiLCJzb3VyY2VEYXRhU2VsZWN0b3JPcHRpb25zIiwicmVkdWNlIiwiYWNjIiwibWF0Y2hEYXRhc2V0VHlwZSIsImxheWVySW5mb01vZGFsIiwic3VwcG9ydGVkQ29sdW1uTW9kZXMiLCJvbkNsaWNrIiwiZXhwYW5kZWQiLCJoYXNBbGxDb2x1bW5zIiwic2VsZWN0ZWQiLCJvblNlbGVjdCIsImxheWVyQ29uZmlnIiwiZXJyb3JNZXNzYWdlIiwiQ29tcG9uZW50IiwiX3JlZjEzIiwiZmllbGQiLCJhZ2dyZWdhdGlvbiIsInNlbGVjdGVkRmllbGQiLCJsYXllckFnZ3JlZ2F0aW9uVHlwZXMiLCJnZXRBZ2dyZWdhdGlvbk9wdGlvbnMiLCJhZ2dyZWdhdGlvbk9wdGlvbnMiLCJBR0dSRUdBVElPTl9UWVBFX09QVElPTlMiLCJfcmVmMTQiLCJpbmNsdWRlcyIsInNlbGVjdGVkQWdncmVnYXRpb24iLCJfcmVmMTUiLCJTaWRlUGFuZWxTZWN0aW9uIiwidmFsdWVzIiwiZGlzcGxheU5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1jb25maWd1cmF0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBGcmFnbWVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCBJdGVtU2VsZWN0b3IgZnJvbSAnLi4vLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvaXRlbS1zZWxlY3Rvcic7XG5pbXBvcnQge0lucHV0LCBQYW5lbExhYmVsLCBTaWRlUGFuZWxTZWN0aW9ufSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgU291cmNlRGF0YVNlbGVjdG9yRmFjdG9yeSBmcm9tICcuLi9jb21tb24vc291cmNlLWRhdGEtc2VsZWN0b3InO1xuaW1wb3J0IEFnZ3JTY2FsZVNlbGVjdG9yRmFjdG9yeSBmcm9tICcuL2FnZ3Itc2NhbGUtc2VsZWN0b3InO1xuaW1wb3J0IENoYW5uZWxCeVZhbHVlU2VsZWN0b3JGYWN0b3J5IGZyb20gJy4vY2hhbm5lbC1ieS12YWx1ZS1zZWxlY3Rvcic7XG5pbXBvcnQgSG93VG9CdXR0b24gZnJvbSAnLi9ob3ctdG8tYnV0dG9uJztcbmltcG9ydCB7XG4gIEFyY0xheWVyQ29sb3JTZWxlY3RvckZhY3RvcnksXG4gIExheWVyQ29sb3JSYW5nZVNlbGVjdG9yRmFjdG9yeSxcbiAgTGF5ZXJDb2xvclNlbGVjdG9yRmFjdG9yeVxufSBmcm9tICcuL2xheWVyLWNvbG9yLXNlbGVjdG9yJztcbmltcG9ydCBMYXllckNvbHVtbk1vZGVDb25maWdGYWN0b3J5IGZyb20gJy4vbGF5ZXItY29sdW1uLW1vZGUtY29uZmlnJztcbmltcG9ydCBMYXllckNvbmZpZ0dyb3VwRmFjdG9yeSwge0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50fSBmcm9tICcuL2xheWVyLWNvbmZpZy1ncm91cCc7XG5pbXBvcnQgTGF5ZXJFcnJvck1lc3NhZ2UgZnJvbSAnLi9sYXllci1lcnJvci1tZXNzYWdlJztcbmltcG9ydCBMYXllclR5cGVTZWxlY3RvckZhY3RvcnkgZnJvbSAnLi9sYXllci10eXBlLXNlbGVjdG9yJztcbmltcG9ydCBUZXh0TGFiZWxQYW5lbEZhY3RvcnkgZnJvbSAnLi90ZXh0LWxhYmVsLXBhbmVsJztcbmltcG9ydCBWaXNDb25maWdTbGlkZXJGYWN0b3J5IGZyb20gJy4vdmlzLWNvbmZpZy1zbGlkZXInO1xuaW1wb3J0IFZpc0NvbmZpZ1N3aXRjaEZhY3RvcnkgZnJvbSAnLi92aXMtY29uZmlnLXN3aXRjaCc7XG5cbmltcG9ydCBSYXN0ZXJUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5IGZyb20gJy4vcmFzdGVyLXRpbGUtbGF5ZXItY29uZmlndXJhdG9yJztcbmltcG9ydCBWZWN0b3JUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5IGZyb20gJy4vdmVjdG9yLXRpbGUtbGF5ZXItY29uZmlndXJhdG9yJztcblxuaW1wb3J0IHtBY3Rpb25IYW5kbGVyLCB0b2dnbGVNb2RhbH0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7QUdHUkVHQVRJT05fVFlQRV9PUFRJT05TLCBMQVlFUl9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtBZ2dyZWdhdGlvbkxheWVyLCBMYXllciwgTGF5ZXJCYXNlQ29uZmlnLCBWaXN1YWxDaGFubmVsfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5cbmltcG9ydCB7bWF0Y2hEYXRhc2V0VHlwZSwgRGF0YXNldHN9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuaW1wb3J0IHtDb2xvclVJLCBMYXllclZpc0NvbmZpZywgTmVzdGVkUGFydGlhbH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge2NhcGl0YWxpemVGaXJzdExldHRlcn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbnR5cGUgTGF5ZXJDb25maWd1cmF0b3JQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBkYXRhc2V0czogRGF0YXNldHM7XG4gIGxheWVyVHlwZU9wdGlvbnM6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgaWNvbjogUmVhY3QuRWxlbWVudFR5cGU7XG4gICAgcmVxdWlyZURhdGE6IGJvb2xlYW47XG4gIH1bXTtcbiAgb3Blbk1vZGFsOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiB0b2dnbGVNb2RhbD47XG4gIHVwZGF0ZUxheWVyQ29uZmlnOiAobmV3Q29uZmlnOiBQYXJ0aWFsPExheWVyQmFzZUNvbmZpZz4pID0+IHZvaWQ7XG4gIHVwZGF0ZUxheWVyVHlwZTogKG5ld1R5cGU6IHN0cmluZykgPT4gdm9pZDtcbiAgdXBkYXRlTGF5ZXJWaXNDb25maWc6IChuZXdWaXNDb25maWc6IFBhcnRpYWw8TGF5ZXJWaXNDb25maWc+KSA9PiB2b2lkO1xuICB1cGRhdGVMYXllclZpc3VhbENoYW5uZWxDb25maWc6IChcbiAgICBuZXdDb25maWc6IFBhcnRpYWw8TGF5ZXJCYXNlQ29uZmlnPixcbiAgICBjaGFubmVsOiBzdHJpbmcsXG4gICAgbmV3VmlzQ29uZmlnPzogUGFydGlhbDxMYXllclZpc0NvbmZpZz5cbiAgKSA9PiB2b2lkO1xuICB1cGRhdGVMYXllckNvbG9yVUk6IChwcm9wOiBzdHJpbmcsIG5ld0NvbmZpZzogTmVzdGVkUGFydGlhbDxDb2xvclVJPikgPT4gdm9pZDtcbiAgdXBkYXRlTGF5ZXJUZXh0TGFiZWw6IChpZHg6IG51bWJlciB8ICdhbGwnLCBwcm9wOiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IHZvaWQ7XG4gIGRpc2FibGVUeXBlU2VsZWN0PzogYm9vbGVhbjtcbn07XG5cbnR5cGUgQWdncmVnYXRpb25TZWxlY3RvclByb3BzID0ge1xuICBjaGFubmVsOiBWaXN1YWxDaGFubmVsO1xuICBsYXllcjogQWdncmVnYXRpb25MYXllcjtcbiAgb25DaGFuZ2U6IChcbiAgICB2YWw6IFJlY29yZDxcbiAgICAgIHN0cmluZyxcbiAgICAgIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBvYmplY3QgfCByZWFkb25seSAoc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdClbXSB8IG51bGxcbiAgICA+LFxuICAgIGtleTogc3RyaW5nXG4gICkgPT4gdm9pZDtcbn07XG5cbmNvbnN0IFN0eWxlZExheWVyQ29uZmlndXJhdG9yID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2xheWVyLXBhbmVsX19jb25maWcnXG59KWBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyQ29uZmlndXJhdG9yTWFyZ2lufTtcbiAgcGFkZGluZzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYXllckNvbmZpZ3VyYXRvclBhZGRpbmd9O1xuICBib3JkZXItbGVmdDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYXllckNvbmZpZ3VyYXRvckJvcmRlcn0gZGFzaGVkXG4gICAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYXllckNvbmZpZ3VyYXRvckJvcmRlckNvbG9yfTtcbmA7XG5cbmNvbnN0IFN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2xheWVyLXBhbmVsX19jb25maWdfX3Zpc3VhbEMtY29uZmlnJ1xufSlgXG4gIG1hcmdpbi10b3A6IDEycHg7XG5gO1xuXG5leHBvcnQgY29uc3QgZ2V0TGF5ZXJGaWVsZHMgPSAoZGF0YXNldHM6IERhdGFzZXRzLCBsYXllcjogTGF5ZXIpID0+XG4gIGRhdGFzZXRzW2xheWVyLmNvbmZpZz8uZGF0YUlkIHx8ICcnXSA/IGRhdGFzZXRzW2xheWVyLmNvbmZpZy5kYXRhSWRdLmZpZWxkcyA6IFtdO1xuXG4vKiogUmV0dXJuIGFueSB0byBiZSBhYmxlIHRvIGN1c3RvbWl6ZSB0aGUgRGF0YXNldCBlbnRpdHkgKi9cbmV4cG9ydCBjb25zdCBnZXRMYXllckRhdGFzZXQgPSAoZGF0YXNldHM6IERhdGFzZXRzLCBsYXllcjogTGF5ZXIpOiBhbnkgPT5cbiAgZGF0YXNldHNbbGF5ZXIuY29uZmlnPy5kYXRhSWQgfHwgJyddO1xuXG5leHBvcnQgY29uc3QgZ2V0TGF5ZXJDb25maWd1cmF0b3JQcm9wcyA9IChwcm9wczogTGF5ZXJDb25maWd1cmF0b3JQcm9wcykgPT4gKHtcbiAgbGF5ZXI6IHByb3BzLmxheWVyLFxuICBmaWVsZHM6IGdldExheWVyRmllbGRzKHByb3BzLmRhdGFzZXRzLCBwcm9wcy5sYXllciksXG4gIG9uQ2hhbmdlOiBwcm9wcy51cGRhdGVMYXllckNvbmZpZyxcbiAgc2V0Q29sb3JVSTogcHJvcHMudXBkYXRlTGF5ZXJDb2xvclVJXG59KTtcblxuZXhwb3J0IGNvbnN0IGdldFZpc0NvbmZpZ3VyYXRvclByb3BzID0gKHByb3BzOiBMYXllckNvbmZpZ3VyYXRvclByb3BzKSA9PiAoe1xuICBsYXllcjogcHJvcHMubGF5ZXIsXG4gIGZpZWxkczogZ2V0TGF5ZXJGaWVsZHMocHJvcHMuZGF0YXNldHMsIHByb3BzLmxheWVyKSxcbiAgb25DaGFuZ2U6IHByb3BzLnVwZGF0ZUxheWVyVmlzQ29uZmlnLFxuICBzZXRDb2xvclVJOiBwcm9wcy51cGRhdGVMYXllckNvbG9yVUlcbn0pO1xuXG5leHBvcnQgY29uc3QgZ2V0TGF5ZXJDaGFubmVsQ29uZmlnUHJvcHMgPSAocHJvcHM6IExheWVyQ29uZmlndXJhdG9yUHJvcHMpID0+ICh7XG4gIGxheWVyOiBwcm9wcy5sYXllcixcbiAgZGF0YXNldDogZ2V0TGF5ZXJEYXRhc2V0KHByb3BzLmRhdGFzZXRzLCBwcm9wcy5sYXllciksXG4gIGZpZWxkczogZ2V0TGF5ZXJGaWVsZHMocHJvcHMuZGF0YXNldHMsIHByb3BzLmxheWVyKSxcbiAgb25DaGFuZ2U6IHByb3BzLnVwZGF0ZUxheWVyVmlzdWFsQ2hhbm5lbENvbmZpZyxcbiAgc2V0Q29sb3JVSTogcHJvcHMudXBkYXRlTGF5ZXJDb2xvclVJXG59KTtcblxuTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5LmRlcHMgPSBbXG4gIFNvdXJjZURhdGFTZWxlY3RvckZhY3RvcnksXG4gIFZpc0NvbmZpZ1NsaWRlckZhY3RvcnksXG4gIFRleHRMYWJlbFBhbmVsRmFjdG9yeSxcbiAgTGF5ZXJDb25maWdHcm91cEZhY3RvcnksXG4gIENoYW5uZWxCeVZhbHVlU2VsZWN0b3JGYWN0b3J5LFxuICBMYXllckNvbHVtbk1vZGVDb25maWdGYWN0b3J5LFxuICBMYXllclR5cGVTZWxlY3RvckZhY3RvcnksXG4gIFZpc0NvbmZpZ1N3aXRjaEZhY3RvcnksXG4gIExheWVyQ29sb3JTZWxlY3RvckZhY3RvcnksXG4gIExheWVyQ29sb3JSYW5nZVNlbGVjdG9yRmFjdG9yeSxcbiAgQXJjTGF5ZXJDb2xvclNlbGVjdG9yRmFjdG9yeSxcbiAgQWdnclNjYWxlU2VsZWN0b3JGYWN0b3J5LFxuICBWZWN0b3JUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5LFxuICBSYXN0ZXJUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5XG5dO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBMYXllckNvbmZpZ3VyYXRvckZhY3RvcnkoXG4gIFNvdXJjZURhdGFTZWxlY3RvcjogUmV0dXJuVHlwZTx0eXBlb2YgU291cmNlRGF0YVNlbGVjdG9yRmFjdG9yeT4sXG4gIFZpc0NvbmZpZ1NsaWRlcjogUmV0dXJuVHlwZTx0eXBlb2YgVmlzQ29uZmlnU2xpZGVyRmFjdG9yeT4sXG4gIFRleHRMYWJlbFBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBUZXh0TGFiZWxQYW5lbEZhY3Rvcnk+LFxuICBMYXllckNvbmZpZ0dyb3VwOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckNvbmZpZ0dyb3VwRmFjdG9yeT4sXG4gIENoYW5uZWxCeVZhbHVlU2VsZWN0b3I6IFJldHVyblR5cGU8dHlwZW9mIENoYW5uZWxCeVZhbHVlU2VsZWN0b3JGYWN0b3J5PixcbiAgTGF5ZXJDb2x1bW5Nb2RlQ29uZmlnOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckNvbHVtbk1vZGVDb25maWdGYWN0b3J5PixcbiAgTGF5ZXJUeXBlU2VsZWN0b3I6IFJldHVyblR5cGU8dHlwZW9mIExheWVyVHlwZVNlbGVjdG9yRmFjdG9yeT4sXG4gIFZpc0NvbmZpZ1N3aXRjaDogUmV0dXJuVHlwZTx0eXBlb2YgVmlzQ29uZmlnU3dpdGNoRmFjdG9yeT4sXG4gIExheWVyQ29sb3JTZWxlY3RvcjogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJDb2xvclNlbGVjdG9yRmFjdG9yeT4sXG4gIExheWVyQ29sb3JSYW5nZVNlbGVjdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckNvbG9yUmFuZ2VTZWxlY3RvckZhY3Rvcnk+LFxuICBBcmNMYXllckNvbG9yU2VsZWN0b3I6IFJldHVyblR5cGU8dHlwZW9mIEFyY0xheWVyQ29sb3JTZWxlY3RvckZhY3Rvcnk+LFxuICBBZ2dyU2NhbGVTZWxlY3RvcjogUmV0dXJuVHlwZTx0eXBlb2YgQWdnclNjYWxlU2VsZWN0b3JGYWN0b3J5PixcbiAgVmVjdG9yVGlsZUxheWVyQ29uZmlndXJhdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBWZWN0b3JUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5PixcbiAgUmFzdGVyVGlsZUxheWVyQ29uZmlndXJhdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBSYXN0ZXJUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5PlxuKTogUmVhY3QuQ29tcG9uZW50VHlwZTxMYXllckNvbmZpZ3VyYXRvclByb3BzPiB7XG4gIGNsYXNzIExheWVyQ29uZmlndXJhdG9yIGV4dGVuZHMgQ29tcG9uZW50PExheWVyQ29uZmlndXJhdG9yUHJvcHM+IHtcbiAgICBfcmVuZGVyUG9pbnRMYXllckNvbmZpZyhwcm9wcykge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlbmRlclNjYXR0ZXJwbG90TGF5ZXJDb25maWcocHJvcHMsIHRydWUpO1xuICAgIH1cblxuICAgIF9yZW5kZXJJY29uTGF5ZXJDb25maWcocHJvcHMpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJTY2F0dGVycGxvdExheWVyQ29uZmlnKHByb3BzLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgX3JlbmRlclZlY3RvclRpbGVMYXllckNvbmZpZyhwcm9wcykge1xuICAgICAgcmV0dXJuIDxWZWN0b3JUaWxlTGF5ZXJDb25maWd1cmF0b3Igey4uLnByb3BzfSAvPjtcbiAgICB9XG5cbiAgICBfcmVuZGVyUmFzdGVyVGlsZUxheWVyQ29uZmlnKHByb3BzKSB7XG4gICAgICByZXR1cm4gPFJhc3RlclRpbGVMYXllckNvbmZpZ3VyYXRvciB7Li4ucHJvcHN9IC8+O1xuICAgIH1cblxuICAgIF9yZW5kZXJTY2F0dGVycGxvdExheWVyQ29uZmlnKFxuICAgICAge2xheWVyLCB2aXNDb25maWd1cmF0b3JQcm9wcywgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHMsIGxheWVyQ29uZmlndXJhdG9yUHJvcHN9LFxuICAgICAgc2hvd0ludGVyYWN0aW9uQ29udHJvbHNcbiAgICApIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogRmlsbCBDb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLihsYXllci52aXNDb25maWdTZXR0aW5ncy5maWxsZWQgfHwge2xhYmVsOiAnbGF5ZXIuY29sb3InfSl9XG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5jb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvciB7Li4ubGF5ZXJDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7Lyogb3V0bGluZSBjb2xvciAqL31cbiAgICAgICAgICB7bGF5ZXIudHlwZSA9PT0gTEFZRVJfVFlQRVMucG9pbnQgPyAoXG4gICAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3V0bGluZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnN0cm9rZUNvbG9yfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAge2xheWVyLmNvbmZpZy5zdHJva2VDb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IHByb3BlcnR5PVwic3Ryb2tlQ29sb3JSYW5nZVwiIC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRDb2xvcj17bGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICAgIHByb3BlcnR5PVwic3Ryb2tlQ29sb3JcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFsYXllci5jb25maWcudmlzQ29uZmlnLm91dGxpbmV9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgIHsvKiBSYWRpdXMgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5yYWRpdXMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIHshbGF5ZXIuY29uZmlnLnNpemVGaWVsZCA/IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5yYWRpdXN9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17Qm9vbGVhbihsYXllci5jb25maWcuc2l6ZUZpZWxkKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucmFkaXVzUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWxheWVyLmNvbmZpZy5zaXplRmllbGQgfHwgbGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5maXhlZFJhZGl1c31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIHtsYXllci5jb25maWcuc2l6ZUZpZWxkID8gKFxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2hcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5maXhlZFJhZGl1c31cbiAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuYmlsbGJvYXJkfSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiB0ZXh0IGxhYmVsICovfVxuICAgICAgICAgIDxUZXh0TGFiZWxQYW5lbFxuICAgICAgICAgICAgaWQ9e2xheWVyLmlkfVxuICAgICAgICAgICAgZmllbGRzPXt2aXNDb25maWd1cmF0b3JQcm9wcy5maWVsZHN9XG4gICAgICAgICAgICB1cGRhdGVMYXllclRleHRMYWJlbD17dGhpcy5wcm9wcy51cGRhdGVMYXllclRleHRMYWJlbH1cbiAgICAgICAgICAgIHRleHRMYWJlbD17bGF5ZXIuY29uZmlnLnRleHRMYWJlbH1cbiAgICAgICAgICAvPlxuXG4gICAgICAgICAgey8qIEludGVyYWN0aW9uICovfVxuICAgICAgICAgIHtzaG93SW50ZXJhY3Rpb25Db250cm9scyA/IChcbiAgICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuaW50ZXJhY3Rpb24nfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuYWxsb3dIb3Zlcn0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaFxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNob3dOZWlnaGJvck9uSG92ZXJ9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU3dpdGNoXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2hvd0hpZ2hsaWdodENvbG9yfVxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIF9yZW5kZXJDbHVzdGVyTGF5ZXJDb25maWcoe2xheWVyLCB2aXNDb25maWd1cmF0b3JQcm9wcywgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIENvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuY29sb3InfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8QWdnclNjYWxlU2VsZWN0b3Igey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfSBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn0gLz5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY29sb3JBZ2dyZWdhdGlvbi5jb25kaXRpb24obGF5ZXIuY29uZmlnKSA/IChcbiAgICAgICAgICAgICAgICA8QWdncmVnYXRpb25UeXBlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5jb2xvckFnZ3JlZ2F0aW9ufVxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3J9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIENsdXN0ZXIgUmFkaXVzICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIucmFkaXVzJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5jbHVzdGVyUmFkaXVzfSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnJhZGl1c1JhbmdlfSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlckhlYXRtYXBMYXllckNvbmZpZyh7bGF5ZXIsIHZpc0NvbmZpZ3VyYXRvclByb3BzLCBsYXllckNoYW5uZWxDb25maWdQcm9wc30pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogQ29sb3IgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5jb2xvcid9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICAgey8qIFJhZGl1cyAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLnJhZGl1cyd9PlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucmFkaXVzfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgIHsvKiBXZWlnaHQgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci53ZWlnaHQnfT5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLndlaWdodH1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIF9yZW5kZXJHcmlkTGF5ZXJDb25maWcocHJvcHMpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJBZ2dyZWdhdGlvbkxheWVyQ29uZmlnKHByb3BzKTtcbiAgICB9XG5cbiAgICBfcmVuZGVySGV4YWdvbkxheWVyQ29uZmlnKHByb3BzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVuZGVyQWdncmVnYXRpb25MYXllckNvbmZpZyhwcm9wcyk7XG4gICAgfVxuXG4gICAgX3JlbmRlckFnZ3JlZ2F0aW9uTGF5ZXJDb25maWcoe2xheWVyLCB2aXNDb25maWd1cmF0b3JQcm9wcywgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9KSB7XG4gICAgICBjb25zdCB7Y29uZmlnfSA9IGxheWVyO1xuICAgICAgY29uc3Qge1xuICAgICAgICB2aXNDb25maWc6IHtlbmFibGUzZCwgZml4ZWRIZWlnaHR9XG4gICAgICB9ID0gY29uZmlnO1xuICAgICAgY29uc3QgZWxldmF0aW9uQnlEZXNjcmlwdGlvbiA9ICdsYXllci5lbGV2YXRpb25CeURlc2NyaXB0aW9uJztcbiAgICAgIGNvbnN0IGNvbG9yQnlEZXNjcmlwdGlvbiA9ICdsYXllci5jb2xvckJ5RGVzY3JpcHRpb24nO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIENvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuY29sb3InfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPEFnZ3JTY2FsZVNlbGVjdG9yIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc30gY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3J9IC8+XG4gICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuXG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIHtsYXllci52aXNDb25maWdTZXR0aW5ncy5jb2xvckFnZ3JlZ2F0aW9uLmNvbmRpdGlvbihsYXllci5jb25maWcpID8gKFxuICAgICAgICAgICAgICAgIDxBZ2dyZWdhdGlvblR5cGVTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmNvbG9yQWdncmVnYXRpb259XG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17Y29sb3JCeURlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3J9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtsYXllci52aXNDb25maWdTZXR0aW5ncy5wZXJjZW50aWxlICYmXG4gICAgICAgICAgICAgIGxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnBlcmNlbnRpbGUuY29uZGl0aW9uKGxheWVyLmNvbmZpZykgPyAoXG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnBlcmNlbnRpbGV9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIENlbGwgc2l6ZSAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLnJhZGl1cyd9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mud29ybGRVbml0U2l6ZX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5jb3ZlcmFnZX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogRWxldmF0aW9uICovfVxuICAgICAgICAgIHtsYXllci52aXNDb25maWdTZXR0aW5ncy5lbmFibGUzZCA/IChcbiAgICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbmFibGUzZH1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVsZXZhdGlvblNjYWxlfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17J2xheWVyVmlzQ29uZmlncy5oZWlnaHRNdWx0aXBsaWVyJ31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zaXplfVxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249e2VsZXZhdGlvbkJ5RGVzY3JpcHRpb259XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWVuYWJsZTNkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAge2xheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVBZ2dyZWdhdGlvbi5jb25kaXRpb24obGF5ZXIuY29uZmlnKSA/IChcbiAgICAgICAgICAgICAgICAgIDxBZ2dyZWdhdGlvblR5cGVTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2l6ZUFnZ3JlZ2F0aW9ufVxuICAgICAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNpemV9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDxBZ2dyU2NhbGVTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXsnSGVpZ2h0IFNjYWxlJ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17J2xheWVyVmlzQ29uZmlncy5oZWlnaHRSYW5nZSd9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17Zml4ZWRIZWlnaHR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU3dpdGNoXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZml4ZWRIZWlnaHR9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZWxldmF0aW9uUGVyY2VudGlsZS5jb25kaXRpb24obGF5ZXIuY29uZmlnKSA/IChcbiAgICAgICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVsZXZhdGlvblBlcmNlbnRpbGV9XG4gICAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFRPRE86IFNoYW4gbW92ZSB0aGVzZSBpbnRvIGxheWVyIGNsYXNzXG4gICAgX3JlbmRlckhleGFnb25JZExheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIEZpbGwgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5maWxsZWR9XG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICBsYWJlbD17J2xheWVyLmZpbGxDb2xvcid9XG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5jb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvciB7Li4ubGF5ZXJDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFsYXllci5jb25maWcudmlzQ29uZmlnLmZpbGxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIE91dGxpbmUgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vdXRsaW5lfVxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc3Ryb2tlQ29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gcHJvcGVydHk9XCJzdHJva2VDb2xvclJhbmdlXCIgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3JcbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRDb2xvcj17bGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICBwcm9wZXJ0eT1cInN0cm9rZUNvbG9yXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc3Ryb2tlT3BhY2l0eX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFsYXllci5jb25maWcudmlzQ29uZmlnLm91dGxpbmV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWxheWVyLmNvbmZpZy52aXNDb25maWcub3V0bGluZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIENvdmVyYWdlICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuY292ZXJhZ2UnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIHshbGF5ZXIuY29uZmlnLmNvdmVyYWdlRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY292ZXJhZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY292ZXJhZ2VSYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb3ZlcmFnZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBoZWlnaHQgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbmFibGUzZH1cbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVsZXZhdGlvblNjYWxlfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGxhYmVsPXsnbGF5ZXJWaXNDb25maWdzLmhlaWdodE11bHRpcGxpZXInfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPVwibGF5ZXJWaXNDb25maWdzLmhlaWdodFJhbmdlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZml4ZWRIZWlnaHR9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIHRleHQgbGFiZWwgKi99XG4gICAgICAgICAgPFRleHRMYWJlbFBhbmVsXG4gICAgICAgICAgICBpZD17bGF5ZXIuaWR9XG4gICAgICAgICAgICBmaWVsZHM9e3Zpc0NvbmZpZ3VyYXRvclByb3BzLmZpZWxkc31cbiAgICAgICAgICAgIHVwZGF0ZUxheWVyVGV4dExhYmVsPXt0aGlzLnByb3BzLnVwZGF0ZUxheWVyVGV4dExhYmVsfVxuICAgICAgICAgICAgdGV4dExhYmVsPXtsYXllci5jb25maWcudGV4dExhYmVsfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIF9yZW5kZXJBcmNMYXllckNvbmZpZyhhcmdzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVuZGVyTGluZUxheWVyQ29uZmlnKGFyZ3MpO1xuICAgIH1cblxuICAgIF9yZW5kZXJMaW5lTGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wc1xuICAgIH0pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogQ29sb3IgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5jb2xvcid9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc291cmNlQ29sb3J9XG4gICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLmNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QXJjTGF5ZXJDb2xvclNlbGVjdG9yXG4gICAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICAgIHNldENvbG9yVUk9e2xheWVyQ29uZmlndXJhdG9yUHJvcHMuc2V0Q29sb3JVSX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUNvbmZpZz17bGF5ZXJDb25maWd1cmF0b3JQcm9wcy5vbkNoYW5nZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZVZpc0NvbmZpZz17dmlzQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiB0aGlja25lc3MgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5zdHJva2UnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc2l6ZUZpZWxkID8gKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVSYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFsYXllci5jb25maWcuc2l6ZUZpZWxkfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNpemV9XG4gICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogZWxldmF0aW9uIHNjYWxlICovfVxuICAgICAgICAgIHtsYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25TY2FsZSA/IChcbiAgICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPVwibGF5ZXJWaXNDb25maWdzLmVsZXZhdGlvblNjYWxlXCIgY29sbGFwc2libGU+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZWxldmF0aW9uU2NhbGV9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyVHJpcExheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1ldGE6IHtmZWF0dXJlVHlwZXMgPSB7fX1cbiAgICAgIH0gPSBsYXllcjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHsvKiBDb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLmNvbG9yJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuY29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3Igey4uLmxheWVyQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBTdHJva2UgV2lkdGggKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSBsYWJlbD1cImxheWVyLnN0cm9rZVdpZHRoXCIgY29sbGFwc2libGU+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLnNpemVGaWVsZCA/IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2ggey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmJpbGxib2FyZH0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNpemV9XG4gICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogVHJhaWwgTGVuZ3RoKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIHsuLi4oZmVhdHVyZVR5cGVzLnBvbHlnb24gPyBsYXllci52aXNDb25maWdTZXR0aW5ncy5zdHJva2VkIDoge30pfVxuICAgICAgICAgICAgbGFiZWw9XCJsYXllci50cmFpbExlbmd0aFwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cImxheWVyLnRyYWlsTGVuZ3RoRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy50cmFpbExlbmd0aH1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU3dpdGNoIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5mYWRlVHJhaWx9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyR2VvanNvbkxheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1ldGE6IHtmZWF0dXJlVHlwZXMgPSB7fX0sXG4gICAgICAgIGNvbmZpZzoge3Zpc0NvbmZpZ31cbiAgICAgIH0gPSBsYXllcjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHsvKiBGaWxsIENvbG9yICovfVxuICAgICAgICAgIHtmZWF0dXJlVHlwZXMucG9seWdvbiB8fCBmZWF0dXJlVHlwZXMucG9pbnQgPyAoXG4gICAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZmlsbGVkfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGxhYmVsPVwibGF5ZXIuZmlsbENvbG9yXCJcbiAgICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIHtsYXllci5jb25maWcuY29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3Igey4uLmxheWVyQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAgICB7Lyogc3Ryb2tlIGNvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc3Ryb2tlZH1cbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIGxhYmVsPVwibGF5ZXIuc3Ryb2tlQ29sb3JcIlxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc3Ryb2tlQ29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gcHJvcGVydHk9XCJzdHJva2VDb2xvclJhbmdlXCIgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3JcbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRDb2xvcj17bGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICBwcm9wZXJ0eT1cInN0cm9rZUNvbG9yXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc3Ryb2tlT3BhY2l0eX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBTdHJva2UgV2lkdGggKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIHsuLi4oZmVhdHVyZVR5cGVzLnBvbHlnb24gPyBsYXllci52aXNDb25maWdTZXR0aW5ncy5zdHJva2VkIDoge30pfVxuICAgICAgICAgICAgbGFiZWw9XCJsYXllci5zdHJva2VXaWR0aFwiXG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc2l6ZUZpZWxkID8gKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVSYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy50aGlja25lc3N9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBFbGV2YXRpb24gKi99XG4gICAgICAgICAge2ZlYXR1cmVUeXBlcy5wb2x5Z29uID8gKFxuICAgICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZW5hYmxlM2R9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXshdmlzQ29uZmlnLmZpbGxlZH1cbiAgICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25TY2FsZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmhlaWdodH1cbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2hcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5maXhlZEhlaWdodH1cbiAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2ggey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mud2lyZWZyYW1lfSAvPlxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgey8qIFJhZGl1cyAqL31cbiAgICAgICAgICB7ZmVhdHVyZVR5cGVzLnBvaW50ID8gKFxuICAgICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5yYWRpdXMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgICAgeyFsYXllci5jb25maWcucmFkaXVzRmllbGQgPyAoXG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnJhZGl1c31cbiAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtCb29sZWFuKGxheWVyLmNvbmZpZy5yYWRpdXNGaWVsZCl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucmFkaXVzUmFuZ2V9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWxheWVyLmNvbmZpZy5yYWRpdXNGaWVsZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnJhZGl1c31cbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyM0RMYXllckNvbmZpZyh7bGF5ZXIsIHZpc0NvbmZpZ3VyYXRvclByb3BzfSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEZyYWdtZW50PlxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuM0RNb2RlbCd9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgYWNjZXB0PVwiLmdsYiwuZ2x0ZlwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQuZmlsZXMgJiYgZS50YXJnZXQuZmlsZXNbMF0pIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZS50YXJnZXQuZmlsZXNbMF0pO1xuICAgICAgICAgICAgICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2Uoe3NjZW5lZ3JhcGg6IHVybH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuM0RNb2RlbE9wdGlvbnMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVTY2FsZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuYW5nbGVYfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtmYWxzZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5hbmdsZVl9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmFuZ2xlWn1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlclMyTGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wc1xuICAgIH0pIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgY29uZmlnOiB7dmlzQ29uZmlnfVxuICAgICAgfSA9IGxheWVyO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIENvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZmlsbGVkfVxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgbGFiZWw9XCJsYXllci5maWxsQ29sb3JcIlxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuY29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3Igey4uLmxheWVyQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBTdHJva2UgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zdHJva2VkfVxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgbGFiZWw9XCJsYXllci5zdHJva2VDb2xvclwiXG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc3Ryb2tlQ29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gcHJvcGVydHk9XCJzdHJva2VDb2xvclJhbmdlXCIgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3JcbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRDb2xvcj17bGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICBwcm9wZXJ0eT1cInN0cm9rZUNvbG9yXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogU3Ryb2tlIFdpZHRoICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gbGFiZWw9XCJsYXllci5zdHJva2VXaWR0aFwiIGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5zaXplRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2l6ZVJhbmdlfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnRoaWNrbmVzc31cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zaXplfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIEVsZXZhdGlvbiAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVuYWJsZTNkfVxuICAgICAgICAgICAgZGlzYWJsZWQ9eyF2aXNDb25maWcuZmlsbGVkfVxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5oZWlnaHR9XG4gICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25TY2FsZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBsYWJlbD17J2xheWVyVmlzQ29uZmlncy5oZWlnaHRNdWx0aXBsaWVyJ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuaGVpZ2h0UmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPVwibGF5ZXJWaXNDb25maWdzLmhlaWdodFJhbmdlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZml4ZWRIZWlnaHR9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy53aXJlZnJhbWV9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlcldtc0xheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wcyxcbiAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHNcbiAgICB9KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5zZXJ2aWNlJ30+XG4gICAgICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydsYXllci5sYXllcid9IC8+XG4gICAgICAgICAgICA8L1BhbmVsTGFiZWw+XG4gICAgICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e2xheWVyLmNvbmZpZy52aXNDb25maWcud21zTGF5ZXJ9XG4gICAgICAgICAgICAgIG9wdGlvbnM9e2xheWVyQ2hhbm5lbENvbmZpZ1Byb3BzLmRhdGFzZXQubWV0YWRhdGEubGF5ZXJzfVxuICAgICAgICAgICAgICBkaXNwbGF5T3B0aW9uPVwidGl0bGVcIlxuICAgICAgICAgICAgICBnZXRPcHRpb25WYWx1ZT1cIm5hbWVcIlxuICAgICAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgICAgIHNlYXJjaGFibGU9e2ZhbHNlfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRMYXllciA9IGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzLmRhdGFzZXQubWV0YWRhdGEubGF5ZXJzLmZpbmQoXG4gICAgICAgICAgICAgICAgICBsID0+IGwubmFtZSA9PT0gdmFsdWVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmICghc2VsZWN0ZWRMYXllcikge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2Uoe1xuICAgICAgICAgICAgICAgICAgdmlzQ29uZmlnOiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmxheWVyLmNvbmZpZy52aXNDb25maWcsXG4gICAgICAgICAgICAgICAgICAgIHdtc0xheWVyOiBzZWxlY3RlZExheWVyXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLmFwcGVhcmFuY2UnfT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2hcbiAgICAgICAgICAgICAgbGFiZWw9eydsYXllclZpc0NvbmZpZ3MudHJhbnNwYXJlbnRCYWNrZ3JvdW5kJ31cbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnRyYW5zcGFyZW50fVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIHByb3BlcnR5PVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIGhhbmRsZVNlbGVjdENvbHVtbk1vZGUgPSAoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHt1cGRhdGVMYXllckNvbmZpZ30gPSB0aGlzLnByb3BzO1xuICAgICAgdXBkYXRlTGF5ZXJDb25maWcoe2NvbHVtbk1vZGU6IGtleX0pO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGxheWVyLFxuICAgICAgICBkYXRhc2V0cyxcbiAgICAgICAgb3Blbk1vZGFsLFxuICAgICAgICB1cGRhdGVMYXllckNvbmZpZyxcbiAgICAgICAgbGF5ZXJUeXBlT3B0aW9ucyxcbiAgICAgICAgdXBkYXRlTGF5ZXJUeXBlLFxuICAgICAgICBkaXNhYmxlVHlwZVNlbGVjdCA9IGZhbHNlXG4gICAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHtmaWVsZHMgPSBbXSwgZmllbGRQYWlycyA9IHVuZGVmaW5lZH0gPSBsYXllci5jb25maWcuZGF0YUlkXG4gICAgICAgID8gZGF0YXNldHNbbGF5ZXIuY29uZmlnLmRhdGFJZF1cbiAgICAgICAgOiB7fTtcbiAgICAgIGNvbnN0IHtjb25maWd9ID0gbGF5ZXI7XG5cbiAgICAgIGNvbnN0IHZpc0NvbmZpZ3VyYXRvclByb3BzID0gZ2V0VmlzQ29uZmlndXJhdG9yUHJvcHModGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBsYXllckNvbmZpZ3VyYXRvclByb3BzID0gZ2V0TGF5ZXJDb25maWd1cmF0b3JQcm9wcyh0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzID0gZ2V0TGF5ZXJDaGFubmVsQ29uZmlnUHJvcHModGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBkYXRhc2V0ID0gZ2V0TGF5ZXJEYXRhc2V0KGRhdGFzZXRzLCBsYXllcik7XG4gICAgICBjb25zdCByZW5kZXJUZW1wbGF0ZSA9IGxheWVyLnR5cGUgJiYgYF9yZW5kZXIke2NhcGl0YWxpemVGaXJzdExldHRlcihsYXllci50eXBlKX1MYXllckNvbmZpZ2A7XG5cbiAgICAgIC8vIHNob3cgb25seSBkYXRhc2V0cyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoZSBsYXllclxuICAgICAgY29uc3Qgc291cmNlRGF0YVNlbGVjdG9yT3B0aW9ucyA9IE9iamVjdC5rZXlzKGRhdGFzZXRzKS5yZWR1Y2UoXG4gICAgICAgIChhY2MsIGlkKSA9PiAobWF0Y2hEYXRhc2V0VHlwZShkYXRhc2V0c1tpZF0sIGxheWVyKSA/IHsuLi5hY2MsIFtpZF06IGRhdGFzZXRzW2lkXX0gOiBhY2MpLFxuICAgICAgICB7fVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHtsYXllci5sYXllckluZm9Nb2RhbCAmJiAhbGF5ZXIuc3VwcG9ydGVkQ29sdW1uTW9kZXMgPyAoXG4gICAgICAgICAgICAvLyBUT0RPIGZpZ3VyZSBvdXQgaGFuZGxlciB0eXBlLiBTdHJpbmcgb3IgcmV0dXJuIHR5cGUgb2YgbGF5ZXIubGF5ZXJJbmZvTW9kYWwgP1xuICAgICAgICAgICAgPEhvd1RvQnV0dG9uIG9uQ2xpY2s9eygpID0+IG9wZW5Nb2RhbChsYXllci5sYXllckluZm9Nb2RhbCBhcyBhbnkpfSAvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuYmFzaWMnfSBjb2xsYXBzaWJsZSBleHBhbmRlZD17IWxheWVyLmhhc0FsbENvbHVtbnMoKX0+XG4gICAgICAgICAgICA8TGF5ZXJUeXBlU2VsZWN0b3JcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ9e2xheWVyLnR5cGV9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlVHlwZVNlbGVjdH1cbiAgICAgICAgICAgICAgb3B0aW9ucz17bGF5ZXJUeXBlT3B0aW9uc31cbiAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICBvblNlbGVjdD17dXBkYXRlTGF5ZXJUeXBlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFNvdXJjZURhdGFTZWxlY3RvclxuICAgICAgICAgICAgICAgIGRhdGFzZXRzPXtzb3VyY2VEYXRhU2VsZWN0b3JPcHRpb25zfVxuICAgICAgICAgICAgICAgIGlkPXtsYXllci5pZH1cbiAgICAgICAgICAgICAgICBkYXRhSWQ9e2NvbmZpZy5kYXRhSWR9XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXsodmFsdWU6IHN0cmluZykgPT4gdXBkYXRlTGF5ZXJDb25maWcoe2RhdGFJZDogdmFsdWV9KX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPExheWVyQ29sdW1uTW9kZUNvbmZpZ1xuICAgICAgICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICAgICAgICBzdXBwb3J0ZWRDb2x1bW5Nb2Rlcz17bGF5ZXIuc3VwcG9ydGVkQ29sdW1uTW9kZXN9XG4gICAgICAgICAgICAgICAgaWQ9e2xheWVyLmlkfVxuICAgICAgICAgICAgICAgIGxheWVyQ29uZmlnPXtsYXllci5jb25maWd9XG4gICAgICAgICAgICAgICAgLy8gVE9ETyBmaWd1cmUgb3V0IGhhbmRsZXIgdHlwZS4gU3RyaW5nIG9yIHJldHVybiB0eXBlIG9mIGxheWVyLmxheWVySW5mb01vZGFsID9cbiAgICAgICAgICAgICAgICBvcGVuTW9kYWw9e29wZW5Nb2RhbCBhcyBhbnl9XG4gICAgICAgICAgICAgICAgdXBkYXRlTGF5ZXJDb25maWc9e3VwZGF0ZUxheWVyQ29uZmlnfVxuICAgICAgICAgICAgICAgIHVwZGF0ZUxheWVyVHlwZT17dXBkYXRlTGF5ZXJUeXBlfVxuICAgICAgICAgICAgICAgIGZpZWxkcz17ZmllbGRzfVxuICAgICAgICAgICAgICAgIGZpZWxkUGFpcnM9e2ZpZWxkUGFpcnN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAge2xheWVyLmVycm9yTWVzc2FnZSA/IDxMYXllckVycm9yTWVzc2FnZSBlcnJvck1lc3NhZ2U9e2xheWVyLmVycm9yTWVzc2FnZX0gLz4gOiBudWxsfVxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICB7cmVuZGVyVGVtcGxhdGUgJiZcbiAgICAgICAgICAgIHRoaXNbcmVuZGVyVGVtcGxhdGVdICYmXG4gICAgICAgICAgICB0aGlzW3JlbmRlclRlbXBsYXRlXSh7XG4gICAgICAgICAgICAgIGxheWVyLFxuICAgICAgICAgICAgICBkYXRhc2V0LFxuICAgICAgICAgICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgICAgICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHMsXG4gICAgICAgICAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHNcbiAgICAgICAgICAgIH0pfVxuICAgICAgICA8L1N0eWxlZExheWVyQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gTGF5ZXJDb25maWd1cmF0b3I7XG59XG5cbmV4cG9ydCBjb25zdCBBZ2dyZWdhdGlvblR5cGVTZWxlY3RvciA9ICh7Y2hhbm5lbCwgbGF5ZXIsIG9uQ2hhbmdlfTogQWdncmVnYXRpb25TZWxlY3RvclByb3BzKSA9PiB7XG4gIGNvbnN0IHtmaWVsZCwgYWdncmVnYXRpb24sIGtleX0gPSBjaGFubmVsO1xuICBjb25zdCBzZWxlY3RlZEZpZWxkID0gbGF5ZXIuY29uZmlnW2ZpZWxkXTtcbiAgY29uc3Qge3Zpc0NvbmZpZ30gPSBsYXllci5jb25maWc7XG5cbiAgLy8gYWdncmVnYXRpb24gc2hvdWxkIG9ubHkgYmUgc2VsZWN0YWJsZSB3aGVuIGZpZWxkIGlzIHNlbGVjdGVkXG4gIGNvbnN0IGxheWVyQWdncmVnYXRpb25UeXBlcyA9IGxheWVyLmdldEFnZ3JlZ2F0aW9uT3B0aW9ucyhrZXkpO1xuXG4gIGNvbnN0IGFnZ3JlZ2F0aW9uT3B0aW9ucyA9IEFHR1JFR0FUSU9OX1RZUEVfT1BUSU9OUy5maWx0ZXIoKHtpZH0pID0+XG4gICAgbGF5ZXJBZ2dyZWdhdGlvblR5cGVzLmluY2x1ZGVzKGlkKVxuICApO1xuXG4gIGNvbnN0IHNlbGVjdGVkQWdncmVnYXRpb24gPSBhZ2dyZWdhdGlvblxuICAgID8gYWdncmVnYXRpb25PcHRpb25zLmZpbmQoKHtpZH0pID0+IGlkID09PSB2aXNDb25maWdbYWdncmVnYXRpb25dKVxuICAgIDogW107XG5cbiAgcmV0dXJuIChcbiAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgIDxQYW5lbExhYmVsPlxuICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZVxuICAgICAgICAgIGlkPXsnbGF5ZXIuYWdncmVnYXRlQnknfVxuICAgICAgICAgIHZhbHVlcz17e1xuICAgICAgICAgICAgZmllbGQ6IHNlbGVjdGVkRmllbGQuZGlzcGxheU5hbWVcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgPC9QYW5lbExhYmVsPlxuICAgICAgPEl0ZW1TZWxlY3RvclxuICAgICAgICBzZWxlY3RlZEl0ZW1zPXtzZWxlY3RlZEFnZ3JlZ2F0aW9ufVxuICAgICAgICBvcHRpb25zPXthZ2dyZWdhdGlvbk9wdGlvbnN9XG4gICAgICAgIGRpc3BsYXlPcHRpb249XCJsYWJlbFwiXG4gICAgICAgIGdldE9wdGlvblZhbHVlPVwiaWRcIlxuICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgIHNlYXJjaGFibGU9e2ZhbHNlfVxuICAgICAgICBvbkNoYW5nZT17dmFsdWUgPT5cbiAgICAgICAgICBvbkNoYW5nZShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmlzQ29uZmlnOiB7XG4gICAgICAgICAgICAgICAgLi4ubGF5ZXIuY29uZmlnLnZpc0NvbmZpZyxcbiAgICAgICAgICAgICAgICBbYWdncmVnYXRpb24gYXMgc3RyaW5nXTogdmFsdWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNoYW5uZWwua2V5XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAvPlxuICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgKTtcbn07XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1wYXJhbXMgKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUEsSUFBQUEsYUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUVBLElBQUFLLGFBQUEsR0FBQUQsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFNLGtCQUFBLEdBQUFOLE9BQUE7QUFFQSxJQUFBTyxtQkFBQSxHQUFBSCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQVEsa0JBQUEsR0FBQUosc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFTLHVCQUFBLEdBQUFMLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBVSxZQUFBLEdBQUFOLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBVyxtQkFBQSxHQUFBWCxPQUFBO0FBS0EsSUFBQVksc0JBQUEsR0FBQVIsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFhLGlCQUFBLEdBQUFYLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBYyxrQkFBQSxHQUFBVixzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQWUsa0JBQUEsR0FBQVgs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
|
|
700
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9jYWxpemF0aW9uIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2l0ZW1TZWxlY3RvciIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9zb3VyY2VEYXRhU2VsZWN0b3IiLCJfYWdnclNjYWxlU2VsZWN0b3IiLCJfY2hhbm5lbEJ5VmFsdWVTZWxlY3RvciIsIl9ob3dUb0J1dHRvbiIsIl9sYXllckNvbG9yU2VsZWN0b3IiLCJfbGF5ZXJDb2x1bW5Nb2RlQ29uZmlnIiwiX2xheWVyQ29uZmlnR3JvdXAiLCJfbGF5ZXJFcnJvck1lc3NhZ2UiLCJfbGF5ZXJUeXBlU2VsZWN0b3IiLCJfdGV4dExhYmVsUGFuZWwiLCJfdmlzQ29uZmlnU2xpZGVyIiwiX3Zpc0NvbmZpZ1N3aXRjaCIsIl9yYXN0ZXJUaWxlTGF5ZXJDb25maWd1cmF0b3IiLCJfdmVjdG9yVGlsZUxheWVyQ29uZmlndXJhdG9yIiwiX2NvbnN0YW50cyIsIl90YWJsZSIsIl91dGlscyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsIlN0eWxlZExheWVyQ29uZmlndXJhdG9yIiwic3R5bGVkIiwiZGl2IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJsYXllckNvbmZpZ3VyYXRvck1hcmdpbiIsImxheWVyQ29uZmlndXJhdG9yUGFkZGluZyIsImxheWVyQ29uZmlndXJhdG9yQm9yZGVyIiwibGF5ZXJDb25maWd1cmF0b3JCb3JkZXJDb2xvciIsIlN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yIiwiZ2V0TGF5ZXJGaWVsZHMiLCJleHBvcnRzIiwiZGF0YXNldHMiLCJsYXllciIsIl9sYXllciRjb25maWciLCJjb25maWciLCJkYXRhSWQiLCJmaWVsZHMiLCJnZXRMYXllckRhdGFzZXQiLCJfbGF5ZXIkY29uZmlnMiIsImdldExheWVyQ29uZmlndXJhdG9yUHJvcHMiLCJvbkNoYW5nZSIsInVwZGF0ZUxheWVyQ29uZmlnIiwic2V0Q29sb3JVSSIsInVwZGF0ZUxheWVyQ29sb3JVSSIsImdldFZpc0NvbmZpZ3VyYXRvclByb3BzIiwidXBkYXRlTGF5ZXJWaXNDb25maWciLCJnZXRMYXllckNoYW5uZWxDb25maWdQcm9wcyIsImRhdGFzZXQiLCJ1cGRhdGVMYXllclZpc3VhbENoYW5uZWxDb25maWciLCJMYXllckNvbmZpZ3VyYXRvckZhY3RvcnkiLCJkZXBzIiwiU291cmNlRGF0YVNlbGVjdG9yRmFjdG9yeSIsIlZpc0NvbmZpZ1NsaWRlckZhY3RvcnkiLCJUZXh0TGFiZWxQYW5lbEZhY3RvcnkiLCJMYXllckNvbmZpZ0dyb3VwRmFjdG9yeSIsIkNoYW5uZWxCeVZhbHVlU2VsZWN0b3JGYWN0b3J5IiwiTGF5ZXJDb2x1bW5Nb2RlQ29uZmlnRmFjdG9yeSIsIkxheWVyVHlwZVNlbGVjdG9yRmFjdG9yeSIsIlZpc0NvbmZpZ1N3aXRjaEZhY3RvcnkiLCJMYXllckNvbG9yU2VsZWN0b3JGYWN0b3J5IiwiTGF5ZXJDb2xvclJhbmdlU2VsZWN0b3JGYWN0b3J5IiwiQXJjTGF5ZXJDb2xvclNlbGVjdG9yRmFjdG9yeSIsIkFnZ3JTY2FsZVNlbGVjdG9yRmFjdG9yeSIsIlZlY3RvclRpbGVMYXllckNvbmZpZ3VyYXRvckZhY3RvcnkiLCJSYXN0ZXJUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5IiwiU291cmNlRGF0YVNlbGVjdG9yIiwiVmlzQ29uZmlnU2xpZGVyIiwiVGV4dExhYmVsUGFuZWwiLCJMYXllckNvbmZpZ0dyb3VwIiwiQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvciIsIkxheWVyQ29sdW1uTW9kZUNvbmZpZyIsIkxheWVyVHlwZVNlbGVjdG9yIiwiVmlzQ29uZmlnU3dpdGNoIiwiTGF5ZXJDb2xvclNlbGVjdG9yIiwiTGF5ZXJDb2xvclJhbmdlU2VsZWN0b3IiLCJBcmNMYXllckNvbG9yU2VsZWN0b3IiLCJBZ2dyU2NhbGVTZWxlY3RvciIsIlZlY3RvclRpbGVMYXllckNvbmZpZ3VyYXRvciIsIlJhc3RlclRpbGVMYXllckNvbmZpZ3VyYXRvciIsIkxheWVyQ29uZmlndXJhdG9yIiwiX0NvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY29uY2F0Iiwia2V5IiwiY29sdW1uTW9kZSIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwidmFsdWUiLCJfcmVuZGVyUG9pbnRMYXllckNvbmZpZyIsIl9yZW5kZXJTY2F0dGVycGxvdExheWVyQ29uZmlnIiwiX3JlbmRlckljb25MYXllckNvbmZpZyIsIl9yZW5kZXJWZWN0b3JUaWxlTGF5ZXJDb25maWciLCJjcmVhdGVFbGVtZW50IiwiX3JlbmRlclJhc3RlclRpbGVMYXllckNvbmZpZyIsIl9yZWYiLCJzaG93SW50ZXJhY3Rpb25Db250cm9scyIsInZpc0NvbmZpZ3VyYXRvclByb3BzIiwibGF5ZXJDaGFubmVsQ29uZmlnUHJvcHMiLCJsYXllckNvbmZpZ3VyYXRvclByb3BzIiwiX2V4dGVuZHMyIiwidmlzQ29uZmlnU2V0dGluZ3MiLCJmaWxsZWQiLCJsYWJlbCIsImNvbGxhcHNpYmxlIiwiY2hhbm5lbCIsInZpc3VhbENoYW5uZWxzIiwiY29sb3IiLCJjb2xvckZpZWxkIiwiQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQiLCJvcGFjaXR5IiwidHlwZSIsIkxBWUVSX1RZUEVTIiwicG9pbnQiLCJvdXRsaW5lIiwic3Ryb2tlQ29sb3IiLCJzdHJva2VDb2xvckZpZWxkIiwicHJvcGVydHkiLCJzZWxlY3RlZENvbG9yIiwidmlzQ29uZmlnIiwidGhpY2tuZXNzIiwiZGlzYWJsZWQiLCJzaXplRmllbGQiLCJyYWRpdXMiLCJyYWRpdXNSYW5nZSIsImZpeGVkUmFkaXVzIiwic2l6ZSIsImJpbGxib2FyZCIsImlkIiwidXBkYXRlTGF5ZXJUZXh0TGFiZWwiLCJ0ZXh0TGFiZWwiLCJhbGxvd0hvdmVyIiwic2hvd05laWdoYm9yT25Ib3ZlciIsInNob3dIaWdobGlnaHRDb2xvciIsIl9yZW5kZXJDbHVzdGVyTGF5ZXJDb25maWciLCJfcmVmMiIsImNvbG9yQWdncmVnYXRpb24iLCJjb25kaXRpb24iLCJBZ2dyZWdhdGlvblR5cGVTZWxlY3RvciIsImNsdXN0ZXJSYWRpdXMiLCJfcmVuZGVySGVhdG1hcExheWVyQ29uZmlnIiwiX3JlZjMiLCJ3ZWlnaHQiLCJfcmVuZGVyR3JpZExheWVyQ29uZmlnIiwiX3JlbmRlckFnZ3JlZ2F0aW9uTGF5ZXJDb25maWciLCJfcmVuZGVySGV4YWdvbkxheWVyQ29uZmlnIiwiX3JlZjQiLCJfY29uZmlnJHZpc0NvbmZpZyIsImVuYWJsZTNkIiwiZml4ZWRIZWlnaHQiLCJlbGV2YXRpb25CeURlc2NyaXB0aW9uIiwiY29sb3JCeURlc2NyaXB0aW9uIiwiZGVzY3JpcHRpb24iLCJwZXJjZW50aWxlIiwid29ybGRVbml0U2l6ZSIsImNvdmVyYWdlIiwiZWxldmF0aW9uU2NhbGUiLCJzaXplQWdncmVnYXRpb24iLCJzaXplUmFuZ2UiLCJlbGV2YXRpb25QZXJjZW50aWxlIiwiX3JlbmRlckhleGFnb25JZExheWVyQ29uZmlnIiwiX3JlZjUiLCJzdHJva2VPcGFjaXR5IiwiY292ZXJhZ2VGaWVsZCIsImNvdmVyYWdlUmFuZ2UiLCJfcmVuZGVyQXJjTGF5ZXJDb25maWciLCJfcmVuZGVyTGluZUxheWVyQ29uZmlnIiwiX3JlZjYiLCJzb3VyY2VDb2xvciIsIm9uQ2hhbmdlQ29uZmlnIiwib25DaGFuZ2VWaXNDb25maWciLCJfcmVuZGVyVHJpcExheWVyQ29uZmlnIiwiX3JlZjciLCJfbGF5ZXIkbWV0YSRmZWF0dXJlVHkiLCJtZXRhIiwiZmVhdHVyZVR5cGVzIiwicG9seWdvbiIsInN0cm9rZWQiLCJ0cmFpbExlbmd0aCIsImZhZGVUcmFpbCIsIl9yZW5kZXJHZW9qc29uTGF5ZXJDb25maWciLCJfcmVmOCIsIl9sYXllciRtZXRhJGZlYXR1cmVUeTIiLCJoZWlnaHQiLCJ3aXJlZnJhbWUiLCJyYWRpdXNGaWVsZCIsIl9yZW5kZXIzRExheWVyQ29uZmlnIiwiX3JlZjkiLCJGcmFnbWVudCIsIklucHV0IiwiYWNjZXB0IiwidGFyZ2V0IiwiZmlsZXMiLCJ1cmwiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJzY2VuZWdyYXBoIiwic2l6ZVNjYWxlIiwiYW5nbGVYIiwiYW5nbGVZIiwiYW5nbGVaIiwiX3JlbmRlclMyTGF5ZXJDb25maWciLCJfcmVmMTAiLCJoZWlnaHRSYW5nZSIsIl9yZW5kZXJUaWxlM2RMYXllckNvbmZpZyIsIl9yZWYxMSIsInBvaW50U2l6ZSIsIl9yZW5kZXJXbXNMYXllckNvbmZpZyIsIl9yZWYxMiIsIlBhbmVsTGFiZWwiLCJGb3JtYXR0ZWRNZXNzYWdlIiwic2VsZWN0ZWRJdGVtcyIsIndtc0xheWVyIiwib3B0aW9ucyIsIm1ldGFkYXRhIiwibGF5ZXJzIiwiZGlzcGxheU9wdGlvbiIsImdldE9wdGlvblZhbHVlIiwibXVsdGlTZWxlY3QiLCJzZWFyY2hhYmxlIiwic2VsZWN0ZWRMYXllciIsImZpbmQiLCJsIiwibmFtZSIsInRyYW5zcGFyZW50IiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJvcGVuTW9kYWwiLCJsYXllclR5cGVPcHRpb25zIiwidXBkYXRlTGF5ZXJUeXBlIiwiX3RoaXMkcHJvcHMkZGlzYWJsZVR5IiwiZGlzYWJsZVR5cGVTZWxlY3QiLCJfcmVmMTMiLCJfcmVmMTMkZmllbGRzIiwiX3JlZjEzJGZpZWxkUGFpcnMiLCJmaWVsZFBhaXJzIiwidW5kZWZpbmVkIiwicmVuZGVyVGVtcGxhdGUiLCJjYXBpdGFsaXplRmlyc3RMZXR0ZXIiLCJzb3VyY2VEYXRhU2VsZWN0b3JPcHRpb25zIiwicmVkdWNlIiwiYWNjIiwibWF0Y2hEYXRhc2V0VHlwZSIsImxheWVySW5mb01vZGFsIiwic3VwcG9ydGVkQ29sdW1uTW9kZXMiLCJvbkNsaWNrIiwiZXhwYW5kZWQiLCJoYXNBbGxDb2x1bW5zIiwic2VsZWN0ZWQiLCJvblNlbGVjdCIsImxheWVyQ29uZmlnIiwiZXJyb3JNZXNzYWdlIiwiQ29tcG9uZW50IiwiX3JlZjE0IiwiZmllbGQiLCJhZ2dyZWdhdGlvbiIsInNlbGVjdGVkRmllbGQiLCJsYXllckFnZ3JlZ2F0aW9uVHlwZXMiLCJnZXRBZ2dyZWdhdGlvbk9wdGlvbnMiLCJhZ2dyZWdhdGlvbk9wdGlvbnMiLCJBR0dSRUdBVElPTl9UWVBFX09QVElPTlMiLCJfcmVmMTUiLCJpbmNsdWRlcyIsInNlbGVjdGVkQWdncmVnYXRpb24iLCJfcmVmMTYiLCJTaWRlUGFuZWxTZWN0aW9uIiwidmFsdWVzIiwiZGlzcGxheU5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1jb25maWd1cmF0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBGcmFnbWVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCBJdGVtU2VsZWN0b3IgZnJvbSAnLi4vLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvaXRlbS1zZWxlY3Rvcic7XG5pbXBvcnQge0lucHV0LCBQYW5lbExhYmVsLCBTaWRlUGFuZWxTZWN0aW9ufSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgU291cmNlRGF0YVNlbGVjdG9yRmFjdG9yeSBmcm9tICcuLi9jb21tb24vc291cmNlLWRhdGEtc2VsZWN0b3InO1xuaW1wb3J0IEFnZ3JTY2FsZVNlbGVjdG9yRmFjdG9yeSBmcm9tICcuL2FnZ3Itc2NhbGUtc2VsZWN0b3InO1xuaW1wb3J0IENoYW5uZWxCeVZhbHVlU2VsZWN0b3JGYWN0b3J5IGZyb20gJy4vY2hhbm5lbC1ieS12YWx1ZS1zZWxlY3Rvcic7XG5pbXBvcnQgSG93VG9CdXR0b24gZnJvbSAnLi9ob3ctdG8tYnV0dG9uJztcbmltcG9ydCB7XG4gIEFyY0xheWVyQ29sb3JTZWxlY3RvckZhY3RvcnksXG4gIExheWVyQ29sb3JSYW5nZVNlbGVjdG9yRmFjdG9yeSxcbiAgTGF5ZXJDb2xvclNlbGVjdG9yRmFjdG9yeVxufSBmcm9tICcuL2xheWVyLWNvbG9yLXNlbGVjdG9yJztcbmltcG9ydCBMYXllckNvbHVtbk1vZGVDb25maWdGYWN0b3J5IGZyb20gJy4vbGF5ZXItY29sdW1uLW1vZGUtY29uZmlnJztcbmltcG9ydCBMYXllckNvbmZpZ0dyb3VwRmFjdG9yeSwge0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50fSBmcm9tICcuL2xheWVyLWNvbmZpZy1ncm91cCc7XG5pbXBvcnQgTGF5ZXJFcnJvck1lc3NhZ2UgZnJvbSAnLi9sYXllci1lcnJvci1tZXNzYWdlJztcbmltcG9ydCBMYXllclR5cGVTZWxlY3RvckZhY3RvcnkgZnJvbSAnLi9sYXllci10eXBlLXNlbGVjdG9yJztcbmltcG9ydCBUZXh0TGFiZWxQYW5lbEZhY3RvcnkgZnJvbSAnLi90ZXh0LWxhYmVsLXBhbmVsJztcbmltcG9ydCBWaXNDb25maWdTbGlkZXJGYWN0b3J5IGZyb20gJy4vdmlzLWNvbmZpZy1zbGlkZXInO1xuaW1wb3J0IFZpc0NvbmZpZ1N3aXRjaEZhY3RvcnkgZnJvbSAnLi92aXMtY29uZmlnLXN3aXRjaCc7XG5cbmltcG9ydCBSYXN0ZXJUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5IGZyb20gJy4vcmFzdGVyLXRpbGUtbGF5ZXItY29uZmlndXJhdG9yJztcbmltcG9ydCBWZWN0b3JUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5IGZyb20gJy4vdmVjdG9yLXRpbGUtbGF5ZXItY29uZmlndXJhdG9yJztcblxuaW1wb3J0IHtBY3Rpb25IYW5kbGVyLCB0b2dnbGVNb2RhbH0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7QUdHUkVHQVRJT05fVFlQRV9PUFRJT05TLCBMQVlFUl9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtBZ2dyZWdhdGlvbkxheWVyLCBMYXllciwgTGF5ZXJCYXNlQ29uZmlnLCBWaXN1YWxDaGFubmVsfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5cbmltcG9ydCB7bWF0Y2hEYXRhc2V0VHlwZSwgRGF0YXNldHN9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuaW1wb3J0IHtDb2xvclVJLCBMYXllclZpc0NvbmZpZywgTmVzdGVkUGFydGlhbH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge2NhcGl0YWxpemVGaXJzdExldHRlcn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbnR5cGUgTGF5ZXJDb25maWd1cmF0b3JQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBkYXRhc2V0czogRGF0YXNldHM7XG4gIGxheWVyVHlwZU9wdGlvbnM6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgaWNvbjogUmVhY3QuRWxlbWVudFR5cGU7XG4gICAgcmVxdWlyZURhdGE6IGJvb2xlYW47XG4gIH1bXTtcbiAgb3Blbk1vZGFsOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiB0b2dnbGVNb2RhbD47XG4gIHVwZGF0ZUxheWVyQ29uZmlnOiAobmV3Q29uZmlnOiBQYXJ0aWFsPExheWVyQmFzZUNvbmZpZz4pID0+IHZvaWQ7XG4gIHVwZGF0ZUxheWVyVHlwZTogKG5ld1R5cGU6IHN0cmluZykgPT4gdm9pZDtcbiAgdXBkYXRlTGF5ZXJWaXNDb25maWc6IChuZXdWaXNDb25maWc6IFBhcnRpYWw8TGF5ZXJWaXNDb25maWc+KSA9PiB2b2lkO1xuICB1cGRhdGVMYXllclZpc3VhbENoYW5uZWxDb25maWc6IChcbiAgICBuZXdDb25maWc6IFBhcnRpYWw8TGF5ZXJCYXNlQ29uZmlnPixcbiAgICBjaGFubmVsOiBzdHJpbmcsXG4gICAgbmV3VmlzQ29uZmlnPzogUGFydGlhbDxMYXllclZpc0NvbmZpZz5cbiAgKSA9PiB2b2lkO1xuICB1cGRhdGVMYXllckNvbG9yVUk6IChwcm9wOiBzdHJpbmcsIG5ld0NvbmZpZzogTmVzdGVkUGFydGlhbDxDb2xvclVJPikgPT4gdm9pZDtcbiAgdXBkYXRlTGF5ZXJUZXh0TGFiZWw6IChpZHg6IG51bWJlciB8ICdhbGwnLCBwcm9wOiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IHZvaWQ7XG4gIGRpc2FibGVUeXBlU2VsZWN0PzogYm9vbGVhbjtcbn07XG5cbnR5cGUgQWdncmVnYXRpb25TZWxlY3RvclByb3BzID0ge1xuICBjaGFubmVsOiBWaXN1YWxDaGFubmVsO1xuICBsYXllcjogQWdncmVnYXRpb25MYXllcjtcbiAgb25DaGFuZ2U6IChcbiAgICB2YWw6IFJlY29yZDxcbiAgICAgIHN0cmluZyxcbiAgICAgIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBvYmplY3QgfCByZWFkb25seSAoc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdClbXSB8IG51bGxcbiAgICA+LFxuICAgIGtleTogc3RyaW5nXG4gICkgPT4gdm9pZDtcbn07XG5cbmNvbnN0IFN0eWxlZExheWVyQ29uZmlndXJhdG9yID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2xheWVyLXBhbmVsX19jb25maWcnXG59KWBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyQ29uZmlndXJhdG9yTWFyZ2lufTtcbiAgcGFkZGluZzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYXllckNvbmZpZ3VyYXRvclBhZGRpbmd9O1xuICBib3JkZXItbGVmdDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYXllckNvbmZpZ3VyYXRvckJvcmRlcn0gZGFzaGVkXG4gICAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYXllckNvbmZpZ3VyYXRvckJvcmRlckNvbG9yfTtcbmA7XG5cbmNvbnN0IFN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2xheWVyLXBhbmVsX19jb25maWdfX3Zpc3VhbEMtY29uZmlnJ1xufSlgXG4gIG1hcmdpbi10b3A6IDEycHg7XG5gO1xuXG5leHBvcnQgY29uc3QgZ2V0TGF5ZXJGaWVsZHMgPSAoZGF0YXNldHM6IERhdGFzZXRzLCBsYXllcjogTGF5ZXIpID0+XG4gIGRhdGFzZXRzW2xheWVyLmNvbmZpZz8uZGF0YUlkIHx8ICcnXSA/IGRhdGFzZXRzW2xheWVyLmNvbmZpZy5kYXRhSWRdLmZpZWxkcyA6IFtdO1xuXG4vKiogUmV0dXJuIGFueSB0byBiZSBhYmxlIHRvIGN1c3RvbWl6ZSB0aGUgRGF0YXNldCBlbnRpdHkgKi9cbmV4cG9ydCBjb25zdCBnZXRMYXllckRhdGFzZXQgPSAoZGF0YXNldHM6IERhdGFzZXRzLCBsYXllcjogTGF5ZXIpOiBhbnkgPT5cbiAgZGF0YXNldHNbbGF5ZXIuY29uZmlnPy5kYXRhSWQgfHwgJyddO1xuXG5leHBvcnQgY29uc3QgZ2V0TGF5ZXJDb25maWd1cmF0b3JQcm9wcyA9IChwcm9wczogTGF5ZXJDb25maWd1cmF0b3JQcm9wcykgPT4gKHtcbiAgbGF5ZXI6IHByb3BzLmxheWVyLFxuICBmaWVsZHM6IGdldExheWVyRmllbGRzKHByb3BzLmRhdGFzZXRzLCBwcm9wcy5sYXllciksXG4gIG9uQ2hhbmdlOiBwcm9wcy51cGRhdGVMYXllckNvbmZpZyxcbiAgc2V0Q29sb3JVSTogcHJvcHMudXBkYXRlTGF5ZXJDb2xvclVJXG59KTtcblxuZXhwb3J0IGNvbnN0IGdldFZpc0NvbmZpZ3VyYXRvclByb3BzID0gKHByb3BzOiBMYXllckNvbmZpZ3VyYXRvclByb3BzKSA9PiAoe1xuICBsYXllcjogcHJvcHMubGF5ZXIsXG4gIGZpZWxkczogZ2V0TGF5ZXJGaWVsZHMocHJvcHMuZGF0YXNldHMsIHByb3BzLmxheWVyKSxcbiAgb25DaGFuZ2U6IHByb3BzLnVwZGF0ZUxheWVyVmlzQ29uZmlnLFxuICBzZXRDb2xvclVJOiBwcm9wcy51cGRhdGVMYXllckNvbG9yVUlcbn0pO1xuXG5leHBvcnQgY29uc3QgZ2V0TGF5ZXJDaGFubmVsQ29uZmlnUHJvcHMgPSAocHJvcHM6IExheWVyQ29uZmlndXJhdG9yUHJvcHMpID0+ICh7XG4gIGxheWVyOiBwcm9wcy5sYXllcixcbiAgZGF0YXNldDogZ2V0TGF5ZXJEYXRhc2V0KHByb3BzLmRhdGFzZXRzLCBwcm9wcy5sYXllciksXG4gIGZpZWxkczogZ2V0TGF5ZXJGaWVsZHMocHJvcHMuZGF0YXNldHMsIHByb3BzLmxheWVyKSxcbiAgb25DaGFuZ2U6IHByb3BzLnVwZGF0ZUxheWVyVmlzdWFsQ2hhbm5lbENvbmZpZyxcbiAgc2V0Q29sb3JVSTogcHJvcHMudXBkYXRlTGF5ZXJDb2xvclVJXG59KTtcblxuTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5LmRlcHMgPSBbXG4gIFNvdXJjZURhdGFTZWxlY3RvckZhY3RvcnksXG4gIFZpc0NvbmZpZ1NsaWRlckZhY3RvcnksXG4gIFRleHRMYWJlbFBhbmVsRmFjdG9yeSxcbiAgTGF5ZXJDb25maWdHcm91cEZhY3RvcnksXG4gIENoYW5uZWxCeVZhbHVlU2VsZWN0b3JGYWN0b3J5LFxuICBMYXllckNvbHVtbk1vZGVDb25maWdGYWN0b3J5LFxuICBMYXllclR5cGVTZWxlY3RvckZhY3RvcnksXG4gIFZpc0NvbmZpZ1N3aXRjaEZhY3RvcnksXG4gIExheWVyQ29sb3JTZWxlY3RvckZhY3RvcnksXG4gIExheWVyQ29sb3JSYW5nZVNlbGVjdG9yRmFjdG9yeSxcbiAgQXJjTGF5ZXJDb2xvclNlbGVjdG9yRmFjdG9yeSxcbiAgQWdnclNjYWxlU2VsZWN0b3JGYWN0b3J5LFxuICBWZWN0b3JUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5LFxuICBSYXN0ZXJUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5XG5dO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBMYXllckNvbmZpZ3VyYXRvckZhY3RvcnkoXG4gIFNvdXJjZURhdGFTZWxlY3RvcjogUmV0dXJuVHlwZTx0eXBlb2YgU291cmNlRGF0YVNlbGVjdG9yRmFjdG9yeT4sXG4gIFZpc0NvbmZpZ1NsaWRlcjogUmV0dXJuVHlwZTx0eXBlb2YgVmlzQ29uZmlnU2xpZGVyRmFjdG9yeT4sXG4gIFRleHRMYWJlbFBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBUZXh0TGFiZWxQYW5lbEZhY3Rvcnk+LFxuICBMYXllckNvbmZpZ0dyb3VwOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckNvbmZpZ0dyb3VwRmFjdG9yeT4sXG4gIENoYW5uZWxCeVZhbHVlU2VsZWN0b3I6IFJldHVyblR5cGU8dHlwZW9mIENoYW5uZWxCeVZhbHVlU2VsZWN0b3JGYWN0b3J5PixcbiAgTGF5ZXJDb2x1bW5Nb2RlQ29uZmlnOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckNvbHVtbk1vZGVDb25maWdGYWN0b3J5PixcbiAgTGF5ZXJUeXBlU2VsZWN0b3I6IFJldHVyblR5cGU8dHlwZW9mIExheWVyVHlwZVNlbGVjdG9yRmFjdG9yeT4sXG4gIFZpc0NvbmZpZ1N3aXRjaDogUmV0dXJuVHlwZTx0eXBlb2YgVmlzQ29uZmlnU3dpdGNoRmFjdG9yeT4sXG4gIExheWVyQ29sb3JTZWxlY3RvcjogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJDb2xvclNlbGVjdG9yRmFjdG9yeT4sXG4gIExheWVyQ29sb3JSYW5nZVNlbGVjdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckNvbG9yUmFuZ2VTZWxlY3RvckZhY3Rvcnk+LFxuICBBcmNMYXllckNvbG9yU2VsZWN0b3I6IFJldHVyblR5cGU8dHlwZW9mIEFyY0xheWVyQ29sb3JTZWxlY3RvckZhY3Rvcnk+LFxuICBBZ2dyU2NhbGVTZWxlY3RvcjogUmV0dXJuVHlwZTx0eXBlb2YgQWdnclNjYWxlU2VsZWN0b3JGYWN0b3J5PixcbiAgVmVjdG9yVGlsZUxheWVyQ29uZmlndXJhdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBWZWN0b3JUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5PixcbiAgUmFzdGVyVGlsZUxheWVyQ29uZmlndXJhdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBSYXN0ZXJUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5PlxuKTogUmVhY3QuQ29tcG9uZW50VHlwZTxMYXllckNvbmZpZ3VyYXRvclByb3BzPiB7XG4gIGNsYXNzIExheWVyQ29uZmlndXJhdG9yIGV4dGVuZHMgQ29tcG9uZW50PExheWVyQ29uZmlndXJhdG9yUHJvcHM+IHtcbiAgICBfcmVuZGVyUG9pbnRMYXllckNvbmZpZyhwcm9wcykge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlbmRlclNjYXR0ZXJwbG90TGF5ZXJDb25maWcocHJvcHMsIHRydWUpO1xuICAgIH1cblxuICAgIF9yZW5kZXJJY29uTGF5ZXJDb25maWcocHJvcHMpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJTY2F0dGVycGxvdExheWVyQ29uZmlnKHByb3BzLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgX3JlbmRlclZlY3RvclRpbGVMYXllckNvbmZpZyhwcm9wcykge1xuICAgICAgcmV0dXJuIDxWZWN0b3JUaWxlTGF5ZXJDb25maWd1cmF0b3Igey4uLnByb3BzfSAvPjtcbiAgICB9XG5cbiAgICBfcmVuZGVyUmFzdGVyVGlsZUxheWVyQ29uZmlnKHByb3BzKSB7XG4gICAgICByZXR1cm4gPFJhc3RlclRpbGVMYXllckNvbmZpZ3VyYXRvciB7Li4ucHJvcHN9IC8+O1xuICAgIH1cblxuICAgIF9yZW5kZXJTY2F0dGVycGxvdExheWVyQ29uZmlnKFxuICAgICAge2xheWVyLCB2aXNDb25maWd1cmF0b3JQcm9wcywgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHMsIGxheWVyQ29uZmlndXJhdG9yUHJvcHN9LFxuICAgICAgc2hvd0ludGVyYWN0aW9uQ29udHJvbHNcbiAgICApIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogRmlsbCBDb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLihsYXllci52aXNDb25maWdTZXR0aW5ncy5maWxsZWQgfHwge2xhYmVsOiAnbGF5ZXIuY29sb3InfSl9XG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5jb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvciB7Li4ubGF5ZXJDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7Lyogb3V0bGluZSBjb2xvciAqL31cbiAgICAgICAgICB7bGF5ZXIudHlwZSA9PT0gTEFZRVJfVFlQRVMucG9pbnQgPyAoXG4gICAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3V0bGluZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnN0cm9rZUNvbG9yfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAge2xheWVyLmNvbmZpZy5zdHJva2VDb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IHByb3BlcnR5PVwic3Ryb2tlQ29sb3JSYW5nZVwiIC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRDb2xvcj17bGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICAgIHByb3BlcnR5PVwic3Ryb2tlQ29sb3JcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFsYXllci5jb25maWcudmlzQ29uZmlnLm91dGxpbmV9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgIHsvKiBSYWRpdXMgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5yYWRpdXMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIHshbGF5ZXIuY29uZmlnLnNpemVGaWVsZCA/IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5yYWRpdXN9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17Qm9vbGVhbihsYXllci5jb25maWcuc2l6ZUZpZWxkKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucmFkaXVzUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWxheWVyLmNvbmZpZy5zaXplRmllbGQgfHwgbGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5maXhlZFJhZGl1c31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIHtsYXllci5jb25maWcuc2l6ZUZpZWxkID8gKFxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2hcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5maXhlZFJhZGl1c31cbiAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuYmlsbGJvYXJkfSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiB0ZXh0IGxhYmVsICovfVxuICAgICAgICAgIDxUZXh0TGFiZWxQYW5lbFxuICAgICAgICAgICAgaWQ9e2xheWVyLmlkfVxuICAgICAgICAgICAgZmllbGRzPXt2aXNDb25maWd1cmF0b3JQcm9wcy5maWVsZHN9XG4gICAgICAgICAgICB1cGRhdGVMYXllclRleHRMYWJlbD17dGhpcy5wcm9wcy51cGRhdGVMYXllclRleHRMYWJlbH1cbiAgICAgICAgICAgIHRleHRMYWJlbD17bGF5ZXIuY29uZmlnLnRleHRMYWJlbH1cbiAgICAgICAgICAvPlxuXG4gICAgICAgICAgey8qIEludGVyYWN0aW9uICovfVxuICAgICAgICAgIHtzaG93SW50ZXJhY3Rpb25Db250cm9scyA/IChcbiAgICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuaW50ZXJhY3Rpb24nfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuYWxsb3dIb3Zlcn0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaFxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNob3dOZWlnaGJvck9uSG92ZXJ9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU3dpdGNoXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2hvd0hpZ2hsaWdodENvbG9yfVxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIF9yZW5kZXJDbHVzdGVyTGF5ZXJDb25maWcoe2xheWVyLCB2aXNDb25maWd1cmF0b3JQcm9wcywgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIENvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuY29sb3InfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8QWdnclNjYWxlU2VsZWN0b3Igey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfSBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn0gLz5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY29sb3JBZ2dyZWdhdGlvbi5jb25kaXRpb24obGF5ZXIuY29uZmlnKSA/IChcbiAgICAgICAgICAgICAgICA8QWdncmVnYXRpb25UeXBlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5jb2xvckFnZ3JlZ2F0aW9ufVxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3J9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIENsdXN0ZXIgUmFkaXVzICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIucmFkaXVzJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5jbHVzdGVyUmFkaXVzfSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnJhZGl1c1JhbmdlfSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlckhlYXRtYXBMYXllckNvbmZpZyh7bGF5ZXIsIHZpc0NvbmZpZ3VyYXRvclByb3BzLCBsYXllckNoYW5uZWxDb25maWdQcm9wc30pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogQ29sb3IgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5jb2xvcid9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICAgey8qIFJhZGl1cyAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLnJhZGl1cyd9PlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucmFkaXVzfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgIHsvKiBXZWlnaHQgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci53ZWlnaHQnfT5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLndlaWdodH1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIF9yZW5kZXJHcmlkTGF5ZXJDb25maWcocHJvcHMpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJBZ2dyZWdhdGlvbkxheWVyQ29uZmlnKHByb3BzKTtcbiAgICB9XG5cbiAgICBfcmVuZGVySGV4YWdvbkxheWVyQ29uZmlnKHByb3BzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVuZGVyQWdncmVnYXRpb25MYXllckNvbmZpZyhwcm9wcyk7XG4gICAgfVxuXG4gICAgX3JlbmRlckFnZ3JlZ2F0aW9uTGF5ZXJDb25maWcoe2xheWVyLCB2aXNDb25maWd1cmF0b3JQcm9wcywgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9KSB7XG4gICAgICBjb25zdCB7Y29uZmlnfSA9IGxheWVyO1xuICAgICAgY29uc3Qge1xuICAgICAgICB2aXNDb25maWc6IHtlbmFibGUzZCwgZml4ZWRIZWlnaHR9XG4gICAgICB9ID0gY29uZmlnO1xuICAgICAgY29uc3QgZWxldmF0aW9uQnlEZXNjcmlwdGlvbiA9ICdsYXllci5lbGV2YXRpb25CeURlc2NyaXB0aW9uJztcbiAgICAgIGNvbnN0IGNvbG9yQnlEZXNjcmlwdGlvbiA9ICdsYXllci5jb2xvckJ5RGVzY3JpcHRpb24nO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIENvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuY29sb3InfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPEFnZ3JTY2FsZVNlbGVjdG9yIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc30gY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3J9IC8+XG4gICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuXG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIHtsYXllci52aXNDb25maWdTZXR0aW5ncy5jb2xvckFnZ3JlZ2F0aW9uLmNvbmRpdGlvbihsYXllci5jb25maWcpID8gKFxuICAgICAgICAgICAgICAgIDxBZ2dyZWdhdGlvblR5cGVTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmNvbG9yQWdncmVnYXRpb259XG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17Y29sb3JCeURlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3J9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIHtsYXllci52aXNDb25maWdTZXR0aW5ncy5wZXJjZW50aWxlICYmXG4gICAgICAgICAgICAgIGxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnBlcmNlbnRpbGUuY29uZGl0aW9uKGxheWVyLmNvbmZpZykgPyAoXG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnBlcmNlbnRpbGV9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIENlbGwgc2l6ZSAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLnJhZGl1cyd9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mud29ybGRVbml0U2l6ZX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5jb3ZlcmFnZX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogRWxldmF0aW9uICovfVxuICAgICAgICAgIHtsYXllci52aXNDb25maWdTZXR0aW5ncy5lbmFibGUzZCA/IChcbiAgICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbmFibGUzZH1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVsZXZhdGlvblNjYWxlfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17J2xheWVyVmlzQ29uZmlncy5oZWlnaHRNdWx0aXBsaWVyJ31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zaXplfVxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249e2VsZXZhdGlvbkJ5RGVzY3JpcHRpb259XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWVuYWJsZTNkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAge2xheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVBZ2dyZWdhdGlvbi5jb25kaXRpb24obGF5ZXIuY29uZmlnKSA/IChcbiAgICAgICAgICAgICAgICAgIDxBZ2dyZWdhdGlvblR5cGVTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2l6ZUFnZ3JlZ2F0aW9ufVxuICAgICAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNpemV9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDxBZ2dyU2NhbGVTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXsnSGVpZ2h0IFNjYWxlJ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17J2xheWVyVmlzQ29uZmlncy5oZWlnaHRSYW5nZSd9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17Zml4ZWRIZWlnaHR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU3dpdGNoXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZml4ZWRIZWlnaHR9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZWxldmF0aW9uUGVyY2VudGlsZS5jb25kaXRpb24obGF5ZXIuY29uZmlnKSA/IChcbiAgICAgICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVsZXZhdGlvblBlcmNlbnRpbGV9XG4gICAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFRPRE86IFNoYW4gbW92ZSB0aGVzZSBpbnRvIGxheWVyIGNsYXNzXG4gICAgX3JlbmRlckhleGFnb25JZExheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIEZpbGwgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5maWxsZWR9XG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICBsYWJlbD17J2xheWVyLmZpbGxDb2xvcid9XG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5jb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvciB7Li4ubGF5ZXJDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFsYXllci5jb25maWcudmlzQ29uZmlnLmZpbGxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIE91dGxpbmUgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vdXRsaW5lfVxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc3Ryb2tlQ29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gcHJvcGVydHk9XCJzdHJva2VDb2xvclJhbmdlXCIgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3JcbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRDb2xvcj17bGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICBwcm9wZXJ0eT1cInN0cm9rZUNvbG9yXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc3Ryb2tlT3BhY2l0eX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFsYXllci5jb25maWcudmlzQ29uZmlnLm91dGxpbmV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWxheWVyLmNvbmZpZy52aXNDb25maWcub3V0bGluZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIENvdmVyYWdlICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuY292ZXJhZ2UnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIHshbGF5ZXIuY29uZmlnLmNvdmVyYWdlRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY292ZXJhZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY292ZXJhZ2VSYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb3ZlcmFnZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBoZWlnaHQgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbmFibGUzZH1cbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVsZXZhdGlvblNjYWxlfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGxhYmVsPXsnbGF5ZXJWaXNDb25maWdzLmhlaWdodE11bHRpcGxpZXInfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPVwibGF5ZXJWaXNDb25maWdzLmhlaWdodFJhbmdlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZml4ZWRIZWlnaHR9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIHRleHQgbGFiZWwgKi99XG4gICAgICAgICAgPFRleHRMYWJlbFBhbmVsXG4gICAgICAgICAgICBpZD17bGF5ZXIuaWR9XG4gICAgICAgICAgICBmaWVsZHM9e3Zpc0NvbmZpZ3VyYXRvclByb3BzLmZpZWxkc31cbiAgICAgICAgICAgIHVwZGF0ZUxheWVyVGV4dExhYmVsPXt0aGlzLnByb3BzLnVwZGF0ZUxheWVyVGV4dExhYmVsfVxuICAgICAgICAgICAgdGV4dExhYmVsPXtsYXllci5jb25maWcudGV4dExhYmVsfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIF9yZW5kZXJBcmNMYXllckNvbmZpZyhhcmdzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVuZGVyTGluZUxheWVyQ29uZmlnKGFyZ3MpO1xuICAgIH1cblxuICAgIF9yZW5kZXJMaW5lTGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wc1xuICAgIH0pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogQ29sb3IgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5jb2xvcid9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc291cmNlQ29sb3J9XG4gICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLmNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QXJjTGF5ZXJDb2xvclNlbGVjdG9yXG4gICAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICAgIHNldENvbG9yVUk9e2xheWVyQ29uZmlndXJhdG9yUHJvcHMuc2V0Q29sb3JVSX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUNvbmZpZz17bGF5ZXJDb25maWd1cmF0b3JQcm9wcy5vbkNoYW5nZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZVZpc0NvbmZpZz17dmlzQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiB0aGlja25lc3MgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5zdHJva2UnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc2l6ZUZpZWxkID8gKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVSYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFsYXllci5jb25maWcuc2l6ZUZpZWxkfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNpemV9XG4gICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogZWxldmF0aW9uIHNjYWxlICovfVxuICAgICAgICAgIHtsYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25TY2FsZSA/IChcbiAgICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPVwibGF5ZXJWaXNDb25maWdzLmVsZXZhdGlvblNjYWxlXCIgY29sbGFwc2libGU+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZWxldmF0aW9uU2NhbGV9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyVHJpcExheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1ldGE6IHtmZWF0dXJlVHlwZXMgPSB7fX1cbiAgICAgIH0gPSBsYXllcjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHsvKiBDb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLmNvbG9yJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuY29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3Igey4uLmxheWVyQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBTdHJva2UgV2lkdGggKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSBsYWJlbD1cImxheWVyLnN0cm9rZVdpZHRoXCIgY29sbGFwc2libGU+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLnNpemVGaWVsZCA/IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2ggey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmJpbGxib2FyZH0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNpemV9XG4gICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogVHJhaWwgTGVuZ3RoKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIHsuLi4oZmVhdHVyZVR5cGVzLnBvbHlnb24gPyBsYXllci52aXNDb25maWdTZXR0aW5ncy5zdHJva2VkIDoge30pfVxuICAgICAgICAgICAgbGFiZWw9XCJsYXllci50cmFpbExlbmd0aFwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cImxheWVyLnRyYWlsTGVuZ3RoRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy50cmFpbExlbmd0aH1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU3dpdGNoIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5mYWRlVHJhaWx9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyR2VvanNvbkxheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1ldGE6IHtmZWF0dXJlVHlwZXMgPSB7fX0sXG4gICAgICAgIGNvbmZpZzoge3Zpc0NvbmZpZ31cbiAgICAgIH0gPSBsYXllcjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHsvKiBGaWxsIENvbG9yICovfVxuICAgICAgICAgIHtmZWF0dXJlVHlwZXMucG9seWdvbiB8fCBmZWF0dXJlVHlwZXMucG9pbnQgPyAoXG4gICAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZmlsbGVkfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGxhYmVsPVwibGF5ZXIuZmlsbENvbG9yXCJcbiAgICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIHtsYXllci5jb25maWcuY29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3Igey4uLmxheWVyQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAgICB7Lyogc3Ryb2tlIGNvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc3Ryb2tlZH1cbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIGxhYmVsPVwibGF5ZXIuc3Ryb2tlQ29sb3JcIlxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc3Ryb2tlQ29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gcHJvcGVydHk9XCJzdHJva2VDb2xvclJhbmdlXCIgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3JcbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRDb2xvcj17bGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICBwcm9wZXJ0eT1cInN0cm9rZUNvbG9yXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc3Ryb2tlT3BhY2l0eX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBTdHJva2UgV2lkdGggKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIHsuLi4oZmVhdHVyZVR5cGVzLnBvbHlnb24gPyBsYXllci52aXNDb25maWdTZXR0aW5ncy5zdHJva2VkIDoge30pfVxuICAgICAgICAgICAgbGFiZWw9XCJsYXllci5zdHJva2VXaWR0aFwiXG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc2l6ZUZpZWxkID8gKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVSYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy50aGlja25lc3N9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBFbGV2YXRpb24gKi99XG4gICAgICAgICAge2ZlYXR1cmVUeXBlcy5wb2x5Z29uID8gKFxuICAgICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZW5hYmxlM2R9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXshdmlzQ29uZmlnLmZpbGxlZH1cbiAgICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25TY2FsZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmhlaWdodH1cbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2hcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5maXhlZEhlaWdodH1cbiAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2ggey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mud2lyZWZyYW1lfSAvPlxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgey8qIFJhZGl1cyAqL31cbiAgICAgICAgICB7ZmVhdHVyZVR5cGVzLnBvaW50ID8gKFxuICAgICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5yYWRpdXMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgICAgeyFsYXllci5jb25maWcucmFkaXVzRmllbGQgPyAoXG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnJhZGl1c31cbiAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtCb29sZWFuKGxheWVyLmNvbmZpZy5yYWRpdXNGaWVsZCl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucmFkaXVzUmFuZ2V9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWxheWVyLmNvbmZpZy5yYWRpdXNGaWVsZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnJhZGl1c31cbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyM0RMYXllckNvbmZpZyh7bGF5ZXIsIHZpc0NvbmZpZ3VyYXRvclByb3BzfSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEZyYWdtZW50PlxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuM0RNb2RlbCd9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgYWNjZXB0PVwiLmdsYiwuZ2x0ZlwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQuZmlsZXMgJiYgZS50YXJnZXQuZmlsZXNbMF0pIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZS50YXJnZXQuZmlsZXNbMF0pO1xuICAgICAgICAgICAgICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2Uoe3NjZW5lZ3JhcGg6IHVybH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuM0RNb2RlbE9wdGlvbnMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVTY2FsZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuYW5nbGVYfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtmYWxzZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5hbmdsZVl9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmFuZ2xlWn1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlclMyTGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wc1xuICAgIH0pIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgY29uZmlnOiB7dmlzQ29uZmlnfVxuICAgICAgfSA9IGxheWVyO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIENvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZmlsbGVkfVxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgbGFiZWw9XCJsYXllci5maWxsQ29sb3JcIlxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuY29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3Igey4uLmxheWVyQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBTdHJva2UgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zdHJva2VkfVxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgbGFiZWw9XCJsYXllci5zdHJva2VDb2xvclwiXG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc3Ryb2tlQ29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gcHJvcGVydHk9XCJzdHJva2VDb2xvclJhbmdlXCIgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3JcbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRDb2xvcj17bGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICBwcm9wZXJ0eT1cInN0cm9rZUNvbG9yXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogU3Ryb2tlIFdpZHRoICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gbGFiZWw9XCJsYXllci5zdHJva2VXaWR0aFwiIGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5zaXplRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2l6ZVJhbmdlfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnRoaWNrbmVzc31cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zaXplfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIEVsZXZhdGlvbiAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVuYWJsZTNkfVxuICAgICAgICAgICAgZGlzYWJsZWQ9eyF2aXNDb25maWcuZmlsbGVkfVxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5oZWlnaHR9XG4gICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25TY2FsZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBsYWJlbD17J2xheWVyVmlzQ29uZmlncy5oZWlnaHRNdWx0aXBsaWVyJ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuaGVpZ2h0UmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPVwibGF5ZXJWaXNDb25maWdzLmhlaWdodFJhbmdlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZml4ZWRIZWlnaHR9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy53aXJlZnJhbWV9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlclRpbGUzZExheWVyQ29uZmlnKHtsYXllciwgdmlzQ29uZmlndXJhdG9yUHJvcHMsIGxheWVyQ29uZmlndXJhdG9yUHJvcHN9KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5hcHBlYXJhbmNlJ30+XG4gICAgICAgICAgICA8TGF5ZXJDb2xvclNlbGVjdG9yIHsuLi5sYXllckNvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucG9pbnRTaXplfSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyV21zTGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzLFxuICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wc1xuICAgIH0pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLnNlcnZpY2UnfT5cbiAgICAgICAgICAgIDxQYW5lbExhYmVsPlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J2xheWVyLmxheWVyJ30gLz5cbiAgICAgICAgICAgIDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgIDxJdGVtU2VsZWN0b3JcbiAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17bGF5ZXIuY29uZmlnLnZpc0NvbmZpZy53bXNMYXllcn1cbiAgICAgICAgICAgICAgb3B0aW9ucz17bGF5ZXJDaGFubmVsQ29uZmlnUHJvcHMuZGF0YXNldC5tZXRhZGF0YS5sYXllcnN9XG4gICAgICAgICAgICAgIGRpc3BsYXlPcHRpb249XCJ0aXRsZVwiXG4gICAgICAgICAgICAgIGdldE9wdGlvblZhbHVlPVwibmFtZVwiXG4gICAgICAgICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZExheWVyID0gbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHMuZGF0YXNldC5tZXRhZGF0YS5sYXllcnMuZmluZChcbiAgICAgICAgICAgICAgICAgIGwgPT4gbC5uYW1lID09PSB2YWx1ZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKCFzZWxlY3RlZExheWVyKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wcy5vbkNoYW5nZSh7XG4gICAgICAgICAgICAgICAgICB2aXNDb25maWc6IHtcbiAgICAgICAgICAgICAgICAgICAgLi4ubGF5ZXIuY29uZmlnLnZpc0NvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgd21zTGF5ZXI6IHNlbGVjdGVkTGF5ZXJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuYXBwZWFyYW5jZSd9PlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaFxuICAgICAgICAgICAgICBsYWJlbD17J2xheWVyVmlzQ29uZmlncy50cmFuc3BhcmVudEJhY2tncm91bmQnfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudHJhbnNwYXJlbnR9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgcHJvcGVydHk9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgaGFuZGxlU2VsZWN0Q29sdW1uTW9kZSA9IChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qge3VwZGF0ZUxheWVyQ29uZmlnfSA9IHRoaXMucHJvcHM7XG4gICAgICB1cGRhdGVMYXllckNvbmZpZyh7Y29sdW1uTW9kZToga2V5fSk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbGF5ZXIsXG4gICAgICAgIGRhdGFzZXRzLFxuICAgICAgICBvcGVuTW9kYWwsXG4gICAgICAgIHVwZGF0ZUxheWVyQ29uZmlnLFxuICAgICAgICBsYXllclR5cGVPcHRpb25zLFxuICAgICAgICB1cGRhdGVMYXllclR5cGUsXG4gICAgICAgIGRpc2FibGVUeXBlU2VsZWN0ID0gZmFsc2VcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qge2ZpZWxkcyA9IFtdLCBmaWVsZFBhaXJzID0gdW5kZWZpbmVkfSA9IGxheWVyLmNvbmZpZy5kYXRhSWRcbiAgICAgICAgPyBkYXRhc2V0c1tsYXllci5jb25maWcuZGF0YUlkXVxuICAgICAgICA6IHt9O1xuICAgICAgY29uc3Qge2NvbmZpZ30gPSBsYXllcjtcblxuICAgICAgY29uc3QgdmlzQ29uZmlndXJhdG9yUHJvcHMgPSBnZXRWaXNDb25maWd1cmF0b3JQcm9wcyh0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGxheWVyQ29uZmlndXJhdG9yUHJvcHMgPSBnZXRMYXllckNvbmZpZ3VyYXRvclByb3BzKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHMgPSBnZXRMYXllckNoYW5uZWxDb25maWdQcm9wcyh0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGRhdGFzZXQgPSBnZXRMYXllckRhdGFzZXQoZGF0YXNldHMsIGxheWVyKTtcbiAgICAgIGNvbnN0IHJlbmRlclRlbXBsYXRlID0gbGF5ZXIudHlwZSAmJiBgX3JlbmRlciR7Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGxheWVyLnR5cGUpfUxheWVyQ29uZmlnYDtcblxuICAgICAgLy8gc2hvdyBvbmx5IGRhdGFzZXRzIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhlIGxheWVyXG4gICAgICBjb25zdCBzb3VyY2VEYXRhU2VsZWN0b3JPcHRpb25zID0gT2JqZWN0LmtleXMoZGF0YXNldHMpLnJlZHVjZShcbiAgICAgICAgKGFjYywgaWQpID0+IChtYXRjaERhdGFzZXRUeXBlKGRhdGFzZXRzW2lkXSwgbGF5ZXIpID8gey4uLmFjYywgW2lkXTogZGF0YXNldHNbaWRdfSA6IGFjYyksXG4gICAgICAgIHt9XG4gICAgICApO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJDb25maWd1cmF0b3I+XG4gICAgICAgICAge2xheWVyLmxheWVySW5mb01vZGFsICYmICFsYXllci5zdXBwb3J0ZWRDb2x1bW5Nb2RlcyA/IChcbiAgICAgICAgICAgIC8vIFRPRE8gZmlndXJlIG91dCBoYW5kbGVyIHR5cGUuIFN0cmluZyBvciByZXR1cm4gdHlwZSBvZiBsYXllci5sYXllckluZm9Nb2RhbCA/XG4gICAgICAgICAgICA8SG93VG9CdXR0b24gb25DbGljaz17KCkgPT4gb3Blbk1vZGFsKGxheWVyLmxheWVySW5mb01vZGFsIGFzIGFueSl9IC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5iYXNpYyd9IGNvbGxhcHNpYmxlIGV4cGFuZGVkPXshbGF5ZXIuaGFzQWxsQ29sdW1ucygpfT5cbiAgICAgICAgICAgIDxMYXllclR5cGVTZWxlY3RvclxuICAgICAgICAgICAgICBzZWxlY3RlZD17bGF5ZXIudHlwZX1cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVUeXBlU2VsZWN0fVxuICAgICAgICAgICAgICBvcHRpb25zPXtsYXllclR5cGVPcHRpb25zfVxuICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgIG9uU2VsZWN0PXt1cGRhdGVMYXllclR5cGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8U291cmNlRGF0YVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgZGF0YXNldHM9e3NvdXJjZURhdGFTZWxlY3Rvck9wdGlvbnN9XG4gICAgICAgICAgICAgICAgaWQ9e2xheWVyLmlkfVxuICAgICAgICAgICAgICAgIGRhdGFJZD17Y29uZmlnLmRhdGFJZH1cbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgb25TZWxlY3Q9eyh2YWx1ZTogc3RyaW5nKSA9PiB1cGRhdGVMYXllckNvbmZpZyh7ZGF0YUlkOiB2YWx1ZX0pfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8TGF5ZXJDb2x1bW5Nb2RlQ29uZmlnXG4gICAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICAgIHN1cHBvcnRlZENvbHVtbk1vZGVzPXtsYXllci5zdXBwb3J0ZWRDb2x1bW5Nb2Rlc31cbiAgICAgICAgICAgICAgICBpZD17bGF5ZXIuaWR9XG4gICAgICAgICAgICAgICAgbGF5ZXJDb25maWc9e2xheWVyLmNvbmZpZ31cbiAgICAgICAgICAgICAgICAvLyBUT0RPIGZpZ3VyZSBvdXQgaGFuZGxlciB0eXBlLiBTdHJpbmcgb3IgcmV0dXJuIHR5cGUgb2YgbGF5ZXIubGF5ZXJJbmZvTW9kYWwgP1xuICAgICAgICAgICAgICAgIG9wZW5Nb2RhbD17b3Blbk1vZGFsIGFzIGFueX1cbiAgICAgICAgICAgICAgICB1cGRhdGVMYXllckNvbmZpZz17dXBkYXRlTGF5ZXJDb25maWd9XG4gICAgICAgICAgICAgICAgdXBkYXRlTGF5ZXJUeXBlPXt1cGRhdGVMYXllclR5cGV9XG4gICAgICAgICAgICAgICAgZmllbGRzPXtmaWVsZHN9XG4gICAgICAgICAgICAgICAgZmllbGRQYWlycz17ZmllbGRQYWlyc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICB7bGF5ZXIuZXJyb3JNZXNzYWdlID8gPExheWVyRXJyb3JNZXNzYWdlIGVycm9yTWVzc2FnZT17bGF5ZXIuZXJyb3JNZXNzYWdlfSAvPiA6IG51bGx9XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgIHtyZW5kZXJUZW1wbGF0ZSAmJlxuICAgICAgICAgICAgdGhpc1tyZW5kZXJUZW1wbGF0ZV0gJiZcbiAgICAgICAgICAgIHRoaXNbcmVuZGVyVGVtcGxhdGVdKHtcbiAgICAgICAgICAgICAgbGF5ZXIsXG4gICAgICAgICAgICAgIGRhdGFzZXQsXG4gICAgICAgICAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgICAgICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wcyxcbiAgICAgICAgICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wc1xuICAgICAgICAgICAgfSl9XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBMYXllckNvbmZpZ3VyYXRvcjtcbn1cblxuZXhwb3J0IGNvbnN0IEFnZ3JlZ2F0aW9uVHlwZVNlbGVjdG9yID0gKHtjaGFubmVsLCBsYXllciwgb25DaGFuZ2V9OiBBZ2dyZWdhdGlvblNlbGVjdG9yUHJvcHMpID0+IHtcbiAgY29uc3Qge2ZpZWxkLCBhZ2dyZWdhdGlvbiwga2V5fSA9IGNoYW5uZWw7XG4gIGNvbnN0IHNlbGVjdGVkRmllbGQgPSBsYXllci5jb25maWdbZmllbGRdO1xuICBjb25zdCB7dmlzQ29uZmlnfSA9IGxheWVyLmNvbmZpZztcblxuICAvLyBhZ2dyZWdhdGlvbiBzaG91bGQgb25seSBiZSBzZWxlY3RhYmxlIHdoZW4gZmllbGQgaXMgc2VsZWN0ZWRcbiAgY29uc3QgbGF5ZXJBZ2dyZWdhdGlvblR5cGVzID0gbGF5ZXIuZ2V0QWdncmVnYXRpb25PcHRpb25zKGtleSk7XG5cbiAgY29uc3QgYWdncmVnYXRpb25PcHRpb25zID0gQUdHUkVHQVRJT05fVFlQRV9PUFRJT05TLmZpbHRlcigoe2lkfSkgPT5cbiAgICBsYXllckFnZ3JlZ2F0aW9uVHlwZXMuaW5jbHVkZXMoaWQpXG4gICk7XG5cbiAgY29uc3Qgc2VsZWN0ZWRBZ2dyZWdhdGlvbiA9IGFnZ3JlZ2F0aW9uXG4gICAgPyBhZ2dyZWdhdGlvbk9wdGlvbnMuZmluZCgoe2lkfSkgPT4gaWQgPT09IHZpc0NvbmZpZ1thZ2dyZWdhdGlvbl0pXG4gICAgOiBbXTtcblxuICByZXR1cm4gKFxuICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgPFBhbmVsTGFiZWw+XG4gICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlXG4gICAgICAgICAgaWQ9eydsYXllci5hZ2dyZWdhdGVCeSd9XG4gICAgICAgICAgdmFsdWVzPXt7XG4gICAgICAgICAgICBmaWVsZDogc2VsZWN0ZWRGaWVsZC5kaXNwbGF5TmFtZVxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1BhbmVsTGFiZWw+XG4gICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgIHNlbGVjdGVkSXRlbXM9e3NlbGVjdGVkQWdncmVnYXRpb259XG4gICAgICAgIG9wdGlvbnM9e2FnZ3JlZ2F0aW9uT3B0aW9uc31cbiAgICAgICAgZGlzcGxheU9wdGlvbj1cImxhYmVsXCJcbiAgICAgICAgZ2V0T3B0aW9uVmFsdWU9XCJpZFwiXG4gICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgIG9uQ2hhbmdlPXt2YWx1ZSA9PlxuICAgICAgICAgIG9uQ2hhbmdlKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2aXNDb25maWc6IHtcbiAgICAgICAgICAgICAgICAuLi5sYXllci5jb25maWcudmlzQ29uZmlnLFxuICAgICAgICAgICAgICAgIFthZ2dyZWdhdGlvbiBhcyBzdHJpbmddOiB2YWx1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2hhbm5lbC5rZXlcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIC8+XG4gICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICApO1xufTtcbi8qIGVzbGludC1lbmFibGUgbWF4LXBhcmFtcyAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQSxJQUFBQSxhQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBRUEsSUFBQUssYUFBQSxHQUFBRCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQU0sa0JBQUEsR0FBQU4sT0FBQTtBQUVBLElBQUFPLG1CQUFBLEdBQUFILHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBUSxrQkFBQSxHQUFBSixzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQVMsdUJBQUEsR0FBQUwsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFVLFlBQUEsR0FBQU4sc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFXLG1CQUFBLEdBQUFYLE9BQUE7QUFLQSxJQUFBWSxzQkFBQSxHQUFBUixzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQWEsaUJBQUEsR0FBQVgsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFjLGtCQUFBLEdBQUFWLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBZSxrQkFBQSxHQUFBWCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQWdCLGVBQUEsR0FBQVosc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFpQixnQkFBQSxHQUFBYixzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQWtCLGdCQUFBLEdBQUFkLHNCQUFBLENBQUFKLE9BQUE7QUFFQSxJQUFBbUIsNEJBQUEsR0FBQWYsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFvQiw0QkFBQSxHQUFBaEIsc0JBQUEsQ0FBQUosT0FBQTtBQUdBLElBQUFxQixVQUFBLEdBQUFyQixPQUFBO0FBR0EsSUFBQXNCLE1BQUEsR0FBQXRCLE9BQUE7QUFFQSxJQUFBdUIsTUFBQSxHQUFB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
|