kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
36 lines (34 loc) • 37.4 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.visStateReducerFactory = exports["default"] = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _actions = require("@kepler.gl/actions");
var _reduxActions = require("redux-actions");
var visStateUpdaters = _interopRequireWildcard(require("./vis-state-updaters"));
var _actionHandler; // SPDX-License-Identifier: MIT
// Copyright contributors to the kepler.gl project
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
/**
* Important: Do not rename `actionHandler` or the assignment pattern of property value.
* It is used to generate documentation
*/
var actionHandler = (_actionHandler = {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.ADD_FILTER, visStateUpdaters.addFilterUpdater), _actions.ActionTypes.CREATE_OR_UPDATE_FILTER, visStateUpdaters.createOrUpdateFilterUpdater), _actions.ActionTypes.ADD_LAYER, visStateUpdaters.addLayerUpdater), _actions.ActionTypes.APPLY_FILTER_CONFIG, visStateUpdaters.applyFilterConfigUpdater), _actions.ActionTypes.APPLY_LAYER_CONFIG, visStateUpdaters.applyLayerConfigUpdater), _actions.ActionTypes.DUPLICATE_LAYER, visStateUpdaters.duplicateLayerUpdater), _actions.ActionTypes.SET_FILTER_VIEW, visStateUpdaters.setFilterViewUpdater), _actions.ActionTypes.INTERACTION_CONFIG_CHANGE, visStateUpdaters.interactionConfigChangeUpdater), _actions.ActionTypes.LAYER_CLICK, visStateUpdaters.layerClickUpdater), _actions.ActionTypes.LAYER_CONFIG_CHANGE, visStateUpdaters.layerConfigChangeUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.LAYER_SET_IS_VALID, visStateUpdaters.layerSetIsValidUpdater), _actions.ActionTypes.LAYER_HOVER, visStateUpdaters.layerHoverUpdater), _actions.ActionTypes.LAYER_TYPE_CHANGE, visStateUpdaters.layerTypeChangeUpdater), _actions.ActionTypes.LAYER_VIS_CONFIG_CHANGE, visStateUpdaters.layerVisConfigChangeUpdater), _actions.ActionTypes.LAYER_TOGGLE_VISIBILITY, visStateUpdaters.layerToggleVisibilityUpdater), _actions.ActionTypes.LAYER_TEXT_LABEL_CHANGE, visStateUpdaters.layerTextLabelChangeUpdater), _actions.ActionTypes.LAYER_VISUAL_CHANNEL_CHANGE, visStateUpdaters.layerVisualChannelChangeUpdater), _actions.ActionTypes.LAYER_COLOR_UI_CHANGE, visStateUpdaters.layerColorUIChangeUpdater), _actions.ActionTypes.TOGGLE_LAYER_ANIMATION, visStateUpdaters.toggleLayerAnimationUpdater), _actions.ActionTypes.TOGGLE_LAYER_ANIMATION_CONTROL, visStateUpdaters.toggleLayerAnimationControlUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.LOAD_FILES, visStateUpdaters.loadFilesUpdater), _actions.ActionTypes.LOAD_FILES_ERR, visStateUpdaters.loadFilesErrUpdater), _actions.ActionTypes.LOAD_NEXT_FILE, visStateUpdaters.loadNextFileUpdater), _actions.ActionTypes.LOAD_FILE_STEP_SUCCESS, visStateUpdaters.loadFileStepSuccessUpdater), _actions.ActionTypes.MAP_CLICK, visStateUpdaters.mapClickUpdater), _actions.ActionTypes.MOUSE_MOVE, visStateUpdaters.mouseMoveUpdater), _actions.ActionTypes.RECEIVE_MAP_CONFIG, visStateUpdaters.receiveMapConfigUpdater), _actions.ActionTypes.REMOVE_DATASET, visStateUpdaters.removeDatasetUpdater), _actions.ActionTypes.REMOVE_FILTER, visStateUpdaters.removeFilterUpdater), _actions.ActionTypes.REMOVE_LAYER, visStateUpdaters.removeLayerUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.REORDER_LAYER, visStateUpdaters.reorderLayerUpdater), _actions.ActionTypes.RESET_MAP_CONFIG, visStateUpdaters.resetMapConfigUpdater), _actions.ActionTypes.SET_FILTER, visStateUpdaters.setFilterUpdater), _actions.ActionTypes.SET_FILTER_ANIMATION_TIME, visStateUpdaters.setFilterAnimationTimeUpdater), _actions.ActionTypes.SET_FILTER_ANIMATION_TIME_CONFIG, visStateUpdaters.setFilterAnimationTimeConfigUpdater), _actions.ActionTypes.SET_FILTER_ANIMATION_WINDOW, visStateUpdaters.setFilterAnimationWindowUpdater), _actions.ActionTypes.SET_FILTER_PLOT, visStateUpdaters.setFilterPlotUpdater), _actions.ActionTypes.SET_MAP_INFO, visStateUpdaters.setMapInfoUpdater), _actions.ActionTypes.SHOW_DATASET_TABLE, visStateUpdaters.showDatasetTableUpdater), _actions.ActionTypes.UPDATE_TABLE_COLOR, visStateUpdaters.updateTableColorUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.TOGGLE_FILTER_ANIMATION, visStateUpdaters.toggleFilterAnimationUpdater), _actions.ActionTypes.UPDATE_FILTER_ANIMATION_SPEED, visStateUpdaters.updateFilterAnimationSpeedUpdater), _actions.ActionTypes.SET_ANIMATION_CONFIG, visStateUpdaters.setAnimationConfigUpdater), _actions.ActionTypes.SET_LAYER_ANIMATION_TIME, visStateUpdaters.setLayerAnimationTimeUpdater), _actions.ActionTypes.UPDATE_LAYER_ANIMATION_SPEED, visStateUpdaters.updateLayerAnimationSpeedUpdater), _actions.ActionTypes.TOGGLE_LAYER_FOR_MAP, visStateUpdaters.toggleLayerForMapUpdater), _actions.ActionTypes.TOGGLE_SPLIT_MAP, visStateUpdaters.toggleSplitMapUpdater), _actions.ActionTypes.UPDATE_LAYER_BLENDING, visStateUpdaters.updateLayerBlendingUpdater), _actions.ActionTypes.UPDATE_OVERLAY_BLENDING, visStateUpdaters.updateOverlayBlendingUpdater), _actions.ActionTypes.UPDATE_VIS_DATA, visStateUpdaters.updateVisDataUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.RENAME_DATASET, visStateUpdaters.renameDatasetUpdater), _actions.ActionTypes.UPDATE_DATASET_PROPS, visStateUpdaters.updateDatasetPropsUpdater), _actions.ActionTypes.SET_FEATURES, visStateUpdaters.setFeaturesUpdater), _actions.ActionTypes.DELETE_FEATURE, visStateUpdaters.deleteFeatureUpdater), _actions.ActionTypes.SET_POLYGON_FILTER_LAYER, visStateUpdaters.setPolygonFilterLayerUpdater), _actions.ActionTypes.SET_SELECTED_FEATURE, visStateUpdaters.setSelectedFeatureUpdater), _actions.ActionTypes.SET_EDITOR_MODE, visStateUpdaters.setEditorModeUpdater), _actions.ActionTypes.TOGGLE_EDITOR_VISIBILITY, visStateUpdaters.toggleEditorVisibilityUpdater), _actions.ActionTypes.TOGGLE_FILTER_FEATURE, visStateUpdaters.toggleFilterFeatureUpdater), _actions.ActionTypes.APPLY_CPU_FILTER, visStateUpdaters.applyCPUFilterUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.SORT_TABLE_COLUMN, visStateUpdaters.sortTableColumnUpdater), _actions.ActionTypes.PIN_TABLE_COLUMN, visStateUpdaters.pinTableColumnUpdater), _actions.ActionTypes.COPY_TABLE_COLUMN, visStateUpdaters.copyTableColumnUpdater), _actions.ActionTypes.SET_COLUMN_DISPLAY_FORMAT, visStateUpdaters.setColumnDisplayFormatUpdater), _actions.ActionTypes.NEXT_FILE_BATCH, visStateUpdaters.nextFileBatchUpdater), _actions.ActionTypes.PROCESS_FILE_CONTENT, visStateUpdaters.processFileContentUpdater), _actions.ActionTypes.SET_LAYER_ANIMATION_TIME_CONFIG, visStateUpdaters.setLayerAnimationTimeConfigUpdater), _actions.ActionTypes.LAYER_FILTERED_ITEMS_CHANGE, visStateUpdaters.layerFilteredItemsChangeUpdater), _actions.ActionTypes.SYNC_TIME_FILTER_WITH_LAYER_TIMELINE, visStateUpdaters.syncTimeFilterWithLayerTimelineUpdater), _actions.ActionTypes.SYNC_TIME_FILTER_TIMELINE_MODE, visStateUpdaters.setTimeFilterTimelineModeUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.ADD_EFFECT, visStateUpdaters.addEffectUpdater), _actions.ActionTypes.REORDER_EFFECT, visStateUpdaters.reorderEffectUpdater), _actions.ActionTypes.REMOVE_EFFECT, visStateUpdaters.removeEffectUpdater), _actions.ActionTypes.UPDATE_EFFECT, visStateUpdaters.updateEffectUpdater), _actions.ActionTypes.CREATE_NEW_DATASET_SUCCESS, visStateUpdaters.createNewDatasetSuccessUpdater), _actions.ActionTypes.SET_LOADING_INDICATOR, visStateUpdaters.setLoadingIndicatorUpdater));
// construct vis-state reducer
var visStateReducerFactory = exports.visStateReducerFactory = function visStateReducerFactory() {
var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return (
// @ts-expect-error
(0, _reduxActions.handleActions)(actionHandler, _objectSpread(_objectSpread(_objectSpread({}, visStateUpdaters.INITIAL_VIS_STATE), initialState), {}, {
initialState: initialState
}))
);
};
var _default = exports["default"] = visStateReducerFactory();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWN0aW9ucyIsInJlcXVpcmUiLCJfcmVkdXhBY3Rpb25zIiwidmlzU3RhdGVVcGRhdGVycyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2FjdGlvbkhhbmRsZXIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJhY3Rpb25IYW5kbGVyIiwiQWN0aW9uVHlwZXMiLCJBRERfRklMVEVSIiwiYWRkRmlsdGVyVXBkYXRlciIsIkNSRUFURV9PUl9VUERBVEVfRklMVEVSIiwiY3JlYXRlT3JVcGRhdGVGaWx0ZXJVcGRhdGVyIiwiQUREX0xBWUVSIiwiYWRkTGF5ZXJVcGRhdGVyIiwiQVBQTFlfRklMVEVSX0NPTkZJRyIsImFwcGx5RmlsdGVyQ29uZmlnVXBkYXRlciIsIkFQUExZX0xBWUVSX0NPTkZJRyIsImFwcGx5TGF5ZXJDb25maWdVcGRhdGVyIiwiRFVQTElDQVRFX0xBWUVSIiwiZHVwbGljYXRlTGF5ZXJVcGRhdGVyIiwiU0VUX0ZJTFRFUl9WSUVXIiwic2V0RmlsdGVyVmlld1VwZGF0ZXIiLCJJTlRFUkFDVElPTl9DT05GSUdfQ0hBTkdFIiwiaW50ZXJhY3Rpb25Db25maWdDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfQ0xJQ0siLCJsYXllckNsaWNrVXBkYXRlciIsIkxBWUVSX0NPTkZJR19DSEFOR0UiLCJsYXllckNvbmZpZ0NoYW5nZVVwZGF0ZXIiLCJMQVlFUl9TRVRfSVNfVkFMSUQiLCJsYXllclNldElzVmFsaWRVcGRhdGVyIiwiTEFZRVJfSE9WRVIiLCJsYXllckhvdmVyVXBkYXRlciIsIkxBWUVSX1RZUEVfQ0hBTkdFIiwibGF5ZXJUeXBlQ2hhbmdlVXBkYXRlciIsIkxBWUVSX1ZJU19DT05GSUdfQ0hBTkdFIiwibGF5ZXJWaXNDb25maWdDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfVE9HR0xFX1ZJU0lCSUxJVFkiLCJsYXllclRvZ2dsZVZpc2liaWxpdHlVcGRhdGVyIiwiTEFZRVJfVEVYVF9MQUJFTF9DSEFOR0UiLCJsYXllclRleHRMYWJlbENoYW5nZVVwZGF0ZXIiLCJMQVlFUl9WSVNVQUxfQ0hBTk5FTF9DSEFOR0UiLCJsYXllclZpc3VhbENoYW5uZWxDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfQ09MT1JfVUlfQ0hBTkdFIiwibGF5ZXJDb2xvclVJQ2hhbmdlVXBkYXRlciIsIlRPR0dMRV9MQVlFUl9BTklNQVRJT04iLCJ0b2dnbGVMYXllckFuaW1hdGlvblVwZGF0ZXIiLCJUT0dHTEVfTEFZRVJfQU5JTUFUSU9OX0NPTlRST0wiLCJ0b2dnbGVMYXllckFuaW1hdGlvbkNvbnRyb2xVcGRhdGVyIiwiTE9BRF9GSUxFUyIsImxvYWRGaWxlc1VwZGF0ZXIiLCJMT0FEX0ZJTEVTX0VSUiIsImxvYWRGaWxlc0VyclVwZGF0ZXIiLCJMT0FEX05FWFRfRklMRSIsImxvYWROZXh0RmlsZVVwZGF0ZXIiLCJMT0FEX0ZJTEVfU1RFUF9TVUNDRVNTIiwibG9hZEZpbGVTdGVwU3VjY2Vzc1VwZGF0ZXIiLCJNQVBfQ0xJQ0siLCJtYXBDbGlja1VwZGF0ZXIiLCJNT1VTRV9NT1ZFIiwibW91c2VNb3ZlVXBkYXRlciIsIlJFQ0VJVkVfTUFQX0NPTkZJRyIsInJlY2VpdmVNYXBDb25maWdVcGRhdGVyIiwiUkVNT1ZFX0RBVEFTRVQiLCJyZW1vdmVEYXRhc2V0VXBkYXRlciIsIlJFTU9WRV9GSUxURVIiLCJyZW1vdmVGaWx0ZXJVcGRhdGVyIiwiUkVNT1ZFX0xBWUVSIiwicmVtb3ZlTGF5ZXJVcGRhdGVyIiwiUkVPUkRFUl9MQVlFUiIsInJlb3JkZXJMYXllclVwZGF0ZXIiLCJSRVNFVF9NQVBfQ09ORklHIiwicmVzZXRNYXBDb25maWdVcGRhdGVyIiwiU0VUX0ZJTFRFUiIsInNldEZpbHRlclVwZGF0ZXIiLCJTRVRfRklMVEVSX0FOSU1BVElPTl9USU1FIiwic2V0RmlsdGVyQW5pbWF0aW9uVGltZVVwZGF0ZXIiLCJTRVRfRklMVEVSX0FOSU1BVElPTl9USU1FX0NPTkZJRyIsInNldEZpbHRlckFuaW1hdGlvblRpbWVDb25maWdVcGRhdGVyIiwiU0VUX0ZJTFRFUl9BTklNQVRJT05fV0lORE9XIiwic2V0RmlsdGVyQW5pbWF0aW9uV2luZG93VXBkYXRlciIsIlNFVF9GSUxURVJfUExPVCIsInNldEZpbHRlclBsb3RVcGRhdGVyIiwiU0VUX01BUF9JTkZPIiwic2V0TWFwSW5mb1VwZGF0ZXIiLCJTSE9XX0RBVEFTRVRfVEFCTEUiLCJzaG93RGF0YXNldFRhYmxlVXBkYXRlciIsIlVQREFURV9UQUJMRV9DT0xPUiIsInVwZGF0ZVRhYmxlQ29sb3JVcGRhdGVyIiwiVE9HR0xFX0ZJTFRFUl9BTklNQVRJT04iLCJ0b2dnbGVGaWx0ZXJBbmltYXRpb25VcGRhdGVyIiwiVVBEQVRFX0ZJTFRFUl9BTklNQVRJT05fU1BFRUQiLCJ1cGRhdGVGaWx0ZXJBbmltYXRpb25TcGVlZFVwZGF0ZXIiLCJTRVRfQU5JTUFUSU9OX0NPTkZJRyIsInNldEFuaW1hdGlvbkNvbmZpZ1VwZGF0ZXIiLCJTRVRfTEFZRVJfQU5JTUFUSU9OX1RJTUUiLCJzZXRMYXllckFuaW1hdGlvblRpbWVVcGRhdGVyIiwiVVBEQVRFX0xBWUVSX0FOSU1BVElPTl9TUEVFRCIsInVwZGF0ZUxheWVyQW5pbWF0aW9uU3BlZWRVcGRhdGVyIiwiVE9HR0xFX0xBWUVSX0ZPUl9NQVAiLCJ0b2dnbGVMYXllckZvck1hcFVwZGF0ZXIiLCJUT0dHTEVfU1BMSVRfTUFQIiwidG9nZ2xlU3BsaXRNYXBVcGRhdGVyIiwiVVBEQVRFX0xBWUVSX0JMRU5ESU5HIiwidXBkYXRlTGF5ZXJCbGVuZGluZ1VwZGF0ZXIiLCJVUERBVEVfT1ZFUkxBWV9CTEVORElORyIsInVwZGF0ZU92ZXJsYXlCbGVuZGluZ1VwZGF0ZXIiLCJVUERBVEVfVklTX0RBVEEiLCJ1cGRhdGVWaXNEYXRhVXBkYXRlciIsIlJFTkFNRV9EQVRBU0VUIiwicmVuYW1lRGF0YXNldFVwZGF0ZXIiLCJVUERBVEVfREFUQVNFVF9QUk9QUyIsInVwZGF0ZURhdGFzZXRQcm9wc1VwZGF0ZXIiLCJTRVRfRkVBVFVSRVMiLCJzZXRGZWF0dXJlc1VwZGF0ZXIiLCJERUxFVEVfRkVBVFVSRSIsImRlbGV0ZUZlYXR1cmVVcGRhdGVyIiwiU0VUX1BPTFlHT05fRklMVEVSX0xBWUVSIiwic2V0UG9seWdvbkZpbHRlckxheWVyVXBkYXRlciIsIlNFVF9TRUxFQ1RFRF9GRUFUVVJFIiwic2V0U2VsZWN0ZWRGZWF0dXJlVXBkYXRlciIsIlNFVF9FRElUT1JfTU9ERSIsInNldEVkaXRvck1vZGVVcGRhdGVyIiwiVE9HR0xFX0VESVRPUl9WSVNJQklMSVRZIiwidG9nZ2xlRWRpdG9yVmlzaWJpbGl0eVVwZGF0ZXIiLCJUT0dHTEVfRklMVEVSX0ZFQVRVUkUiLCJ0b2dnbGVGaWx0ZXJGZWF0dXJlVXBkYXRlciIsIkFQUExZX0NQVV9GSUxURVIiLCJhcHBseUNQVUZpbHRlclVwZGF0ZXIiLCJTT1JUX1RBQkxFX0NPTFVNTiIsInNvcnRUYWJsZUNvbHVtblVwZGF0ZXIiLCJQSU5fVEFCTEVfQ09MVU1OIiwicGluVGFibGVDb2x1bW5VcGRhdGVyIiwiQ09QWV9UQUJMRV9DT0xVTU4iLCJjb3B5VGFibGVDb2x1bW5VcGRhdGVyIiwiU0VUX0NPTFVNTl9ESVNQTEFZX0ZPUk1BVCIsInNldENvbHVtbkRpc3BsYXlGb3JtYXRVcGRhdGVyIiwiTkVYVF9GSUxFX0JBVENIIiwibmV4dEZpbGVCYXRjaFVwZGF0ZXIiLCJQUk9DRVNTX0ZJTEVfQ09OVEVOVCIsInByb2Nlc3NGaWxlQ29udGVudFVwZGF0ZXIiLCJTRVRfTEFZRVJfQU5JTUFUSU9OX1RJTUVfQ09ORklHIiwic2V0TGF5ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlciIsIkxBWUVSX0ZJTFRFUkVEX0lURU1TX0NIQU5HRSIsImxheWVyRmlsdGVyZWRJdGVtc0NoYW5nZVVwZGF0ZXIiLCJTWU5DX1RJTUVfRklMVEVSX1dJVEhfTEFZRVJfVElNRUxJTkUiLCJzeW5jVGltZUZpbHRlcldpdGhMYXllclRpbWVsaW5lVXBkYXRlciIsIlNZTkNfVElNRV9GSUxURVJfVElNRUxJTkVfTU9ERSIsInNldFRpbWVGaWx0ZXJUaW1lbGluZU1vZGVVcGRhdGVyIiwiQUREX0VGRkVDVCIsImFkZEVmZmVjdFVwZGF0ZXIiLCJSRU9SREVSX0VGRkVDVCIsInJlb3JkZXJFZmZlY3RVcGRhdGVyIiwiUkVNT1ZFX0VGRkVDVCIsInJlbW92ZUVmZmVjdFVwZGF0ZXIiLCJVUERBVEVfRUZGRUNUIiwidXBkYXRlRWZmZWN0VXBkYXRlciIsIkNSRUFURV9ORVdfREFUQVNFVF9TVUNDRVNTIiwiY3JlYXRlTmV3RGF0YXNldFN1Y2Nlc3NVcGRhdGVyIiwiU0VUX0xPQURJTkdfSU5ESUNBVE9SIiwic2V0TG9hZGluZ0luZGljYXRvclVwZGF0ZXIiLCJ2aXNTdGF0ZVJlZHVjZXJGYWN0b3J5IiwiZXhwb3J0cyIsImluaXRpYWxTdGF0ZSIsInVuZGVmaW5lZCIsImhhbmRsZUFjdGlvbnMiLCJJTklUSUFMX1ZJU19TVEFURSIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL3Zpcy1zdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0FjdGlvblR5cGVzfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtoYW5kbGVBY3Rpb25zfSBmcm9tICdyZWR1eC1hY3Rpb25zJztcbmltcG9ydCAqIGFzIHZpc1N0YXRlVXBkYXRlcnMgZnJvbSAnLi92aXMtc3RhdGUtdXBkYXRlcnMnO1xuXG4vKipcbiAqIEltcG9ydGFudDogRG8gbm90IHJlbmFtZSBgYWN0aW9uSGFuZGxlcmAgb3IgdGhlIGFzc2lnbm1lbnQgcGF0dGVybiBvZiBwcm9wZXJ0eSB2YWx1ZS5cbiAqIEl0IGlzIHVzZWQgdG8gZ2VuZXJhdGUgZG9jdW1lbnRhdGlvblxuICovXG5jb25zdCBhY3Rpb25IYW5kbGVyID0ge1xuICBbQWN0aW9uVHlwZXMuQUREX0ZJTFRFUl06IHZpc1N0YXRlVXBkYXRlcnMuYWRkRmlsdGVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQ1JFQVRFX09SX1VQREFURV9GSUxURVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmNyZWF0ZU9yVXBkYXRlRmlsdGVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQUREX0xBWUVSXTogdmlzU3RhdGVVcGRhdGVycy5hZGRMYXllclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkFQUExZX0ZJTFRFUl9DT05GSUddOiB2aXNTdGF0ZVVwZGF0ZXJzLmFwcGx5RmlsdGVyQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQVBQTFlfTEFZRVJfQ09ORklHXTogdmlzU3RhdGVVcGRhdGVycy5hcHBseUxheWVyQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuRFVQTElDQVRFX0xBWUVSXTogdmlzU3RhdGVVcGRhdGVycy5kdXBsaWNhdGVMYXllclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GSUxURVJfVklFV106IHZpc1N0YXRlVXBkYXRlcnMuc2V0RmlsdGVyVmlld1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLklOVEVSQUNUSU9OX0NPTkZJR19DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmludGVyYWN0aW9uQ29uZmlnQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfQ0xJQ0tdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyQ2xpY2tVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9DT05GSUdfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllckNvbmZpZ0NoYW5nZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX1NFVF9JU19WQUxJRF06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJTZXRJc1ZhbGlkVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfSE9WRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVySG92ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9UWVBFX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJUeXBlQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVklTX0NPTkZJR19DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyVmlzQ29uZmlnQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVE9HR0xFX1ZJU0lCSUxJVFldOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyVG9nZ2xlVmlzaWJpbGl0eVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX1RFWFRfTEFCRUxfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclRleHRMYWJlbENoYW5nZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX1ZJU1VBTF9DSEFOTkVMX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJWaXN1YWxDaGFubmVsQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfQ09MT1JfVUlfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllckNvbG9yVUlDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfTEFZRVJfQU5JTUFUSU9OXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVMYXllckFuaW1hdGlvblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9MQVlFUl9BTklNQVRJT05fQ09OVFJPTF06IHZpc1N0YXRlVXBkYXRlcnMudG9nZ2xlTGF5ZXJBbmltYXRpb25Db250cm9sVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTE9BRF9GSUxFU106IHZpc1N0YXRlVXBkYXRlcnMubG9hZEZpbGVzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTE9BRF9GSUxFU19FUlJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWRGaWxlc0VyclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxPQURfTkVYVF9GSUxFXTogdmlzU3RhdGVVcGRhdGVycy5sb2FkTmV4dEZpbGVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0ZJTEVfU1RFUF9TVUNDRVNTXTogdmlzU3RhdGVVcGRhdGVycy5sb2FkRmlsZVN0ZXBTdWNjZXNzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTUFQX0NMSUNLXTogdmlzU3RhdGVVcGRhdGVycy5tYXBDbGlja1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLk1PVVNFX01PVkVdOiB2aXNTdGF0ZVVwZGF0ZXJzLm1vdXNlTW92ZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFQ0VJVkVfTUFQX0NPTkZJR106IHZpc1N0YXRlVXBkYXRlcnMucmVjZWl2ZU1hcENvbmZpZ1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTU9WRV9EQVRBU0VUXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVEYXRhc2V0VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0ZJTFRFUl06IHZpc1N0YXRlVXBkYXRlcnMucmVtb3ZlRmlsdGVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0xBWUVSXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVMYXllclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFT1JERVJfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlb3JkZXJMYXllclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFU0VUX01BUF9DT05GSUddOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlc2V0TWFwQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0ZJTFRFUl06IHZpc1N0YXRlVXBkYXRlcnMuc2V0RmlsdGVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0ZJTFRFUl9BTklNQVRJT05fVElNRV06IHZpc1N0YXRlVXBkYXRlcnMuc2V0RmlsdGVyQW5pbWF0aW9uVGltZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GSUxURVJfQU5JTUFUSU9OX1RJTUVfQ09ORklHXTpcbiAgICB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlckFuaW1hdGlvblRpbWVDb25maWdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRklMVEVSX0FOSU1BVElPTl9XSU5ET1ddOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlckFuaW1hdGlvbldpbmRvd1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GSUxURVJfUExPVF06IHZpc1N0YXRlVXBkYXRlcnMuc2V0RmlsdGVyUGxvdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9NQVBfSU5GT106IHZpc1N0YXRlVXBkYXRlcnMuc2V0TWFwSW5mb1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNIT1dfREFUQVNFVF9UQUJMRV06IHZpc1N0YXRlVXBkYXRlcnMuc2hvd0RhdGFzZXRUYWJsZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlVQREFURV9UQUJMRV9DT0xPUl06IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlVGFibGVDb2xvclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9GSUxURVJfQU5JTUFUSU9OXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVGaWx0ZXJBbmltYXRpb25VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfRklMVEVSX0FOSU1BVElPTl9TUEVFRF06IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlRmlsdGVyQW5pbWF0aW9uU3BlZWRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfQU5JTUFUSU9OX0NPTkZJR106IHZpc1N0YXRlVXBkYXRlcnMuc2V0QW5pbWF0aW9uQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0xBWUVSX0FOSU1BVElPTl9USU1FXTogdmlzU3RhdGVVcGRhdGVycy5zZXRMYXllckFuaW1hdGlvblRpbWVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfTEFZRVJfQU5JTUFUSU9OX1NQRUVEXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVMYXllckFuaW1hdGlvblNwZWVkVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0xBWUVSX0ZPUl9NQVBdOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUxheWVyRm9yTWFwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX1NQTElUX01BUF06IHZpc1N0YXRlVXBkYXRlcnMudG9nZ2xlU3BsaXRNYXBVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfTEFZRVJfQkxFTkRJTkddOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZUxheWVyQmxlbmRpbmdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfT1ZFUkxBWV9CTEVORElOR106IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlT3ZlcmxheUJsZW5kaW5nVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX1ZJU19EQVRBXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVWaXNEYXRhVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVOQU1FX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbmFtZURhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfREFUQVNFVF9QUk9QU106IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlRGF0YXNldFByb3BzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0ZFQVRVUkVTXTogdmlzU3RhdGVVcGRhdGVycy5zZXRGZWF0dXJlc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkRFTEVURV9GRUFUVVJFXTogdmlzU3RhdGVVcGRhdGVycy5kZWxldGVGZWF0dXJlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX1BPTFlHT05fRklMVEVSX0xBWUVSXTogdmlzU3RhdGVVcGRhdGVycy5zZXRQb2x5Z29uRmlsdGVyTGF5ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfU0VMRUNURURfRkVBVFVSRV06IHZpc1N0YXRlVXBkYXRlcnMuc2V0U2VsZWN0ZWRGZWF0dXJlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0VESVRPUl9NT0RFXTogdmlzU3RhdGVVcGRhdGVycy5zZXRFZGl0b3JNb2RlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0VESVRPUl9WSVNJQklMSVRZXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVFZGl0b3JWaXNpYmlsaXR5VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0ZJTFRFUl9GRUFUVVJFXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVGaWx0ZXJGZWF0dXJlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQVBQTFlfQ1BVX0ZJTFRFUl06IHZpc1N0YXRlVXBkYXRlcnMuYXBwbHlDUFVGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TT1JUX1RBQkxFX0NPTFVNTl06IHZpc1N0YXRlVXBkYXRlcnMuc29ydFRhYmxlQ29sdW1uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUElOX1RBQkxFX0NPTFVNTl06IHZpc1N0YXRlVXBkYXRlcnMucGluVGFibGVDb2x1bW5VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5DT1BZX1RBQkxFX0NPTFVNTl06IHZpc1N0YXRlVXBkYXRlcnMuY29weVRhYmxlQ29sdW1uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0NPTFVNTl9ESVNQTEFZX0ZPUk1BVF06IHZpc1N0YXRlVXBkYXRlcnMuc2V0Q29sdW1uRGlzcGxheUZvcm1hdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLk5FWFRfRklMRV9CQVRDSF06IHZpc1N0YXRlVXBkYXRlcnMubmV4dEZpbGVCYXRjaFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlBST0NFU1NfRklMRV9DT05URU5UXTogdmlzU3RhdGVVcGRhdGVycy5wcm9jZXNzRmlsZUNvbnRlbnRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfTEFZRVJfQU5JTUFUSU9OX1RJTUVfQ09ORklHXTpcbiAgICB2aXNTdGF0ZVVwZGF0ZXJzLnNldExheWVyQW5pbWF0aW9uVGltZUNvbmZpZ1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX0ZJTFRFUkVEX0lURU1TX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJGaWx0ZXJlZEl0ZW1zQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU1lOQ19USU1FX0ZJTFRFUl9XSVRIX0xBWUVSX1RJTUVMSU5FXTpcbiAgICB2aXNTdGF0ZVVwZGF0ZXJzLnN5bmNUaW1lRmlsdGVyV2l0aExheWVyVGltZWxpbmVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TWU5DX1RJTUVfRklMVEVSX1RJTUVMSU5FX01PREVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFRpbWVGaWx0ZXJUaW1lbGluZU1vZGVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BRERfRUZGRUNUXTogdmlzU3RhdGVVcGRhdGVycy5hZGRFZmZlY3RVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU9SREVSX0VGRkVDVF06IHZpc1N0YXRlVXBkYXRlcnMucmVvcmRlckVmZmVjdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTU9WRV9FRkZFQ1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZUVmZmVjdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlVQREFURV9FRkZFQ1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZUVmZmVjdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkNSRUFURV9ORVdfREFUQVNFVF9TVUNDRVNTXTogdmlzU3RhdGVVcGRhdGVycy5jcmVhdGVOZXdEYXRhc2V0U3VjY2Vzc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9MT0FESU5HX0lORElDQVRPUl06IHZpc1N0YXRlVXBkYXRlcnMuc2V0TG9hZGluZ0luZGljYXRvclVwZGF0ZXJcbn07XG5cbi8vIGNvbnN0cnVjdCB2aXMtc3RhdGUgcmVkdWNlclxuZXhwb3J0IGNvbnN0IHZpc1N0YXRlUmVkdWNlckZhY3RvcnkgPSAoaW5pdGlhbFN0YXRlID0ge30pID0+XG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgaGFuZGxlQWN0aW9ucyhhY3Rpb25IYW5kbGVyLCB7XG4gICAgLi4udmlzU3RhdGVVcGRhdGVycy5JTklUSUFMX1ZJU19TVEFURSxcbiAgICAuLi5pbml0aWFsU3RhdGUsXG4gICAgaW5pdGlhbFN0YXRlXG4gIH0pO1xuXG5leHBvcnQgZGVmYXVsdCB2aXNTdGF0ZVJlZHVjZXJGYWN0b3J5KCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElBQUFBLFFBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGdCQUFBLEdBQUFDLHVCQUFBLENBQUFILE9BQUE7QUFBeUQsSUFBQUksY0FBQSxFQUx6RDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFILHdCQUFBRyxD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
;