@kepler.gl/reducers 3.3.0-alpha.14 → 3.3.0-alpha.15
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/cjs/ui-state-updaters.js +54 -26
- package/dist/cjs/ui-state.js +2 -2
- package/dist/cjs/vis-state-updaters.js +239 -157
- package/dist/cjs/vis-state.js +2 -2
- package/dist/esm/ui-state-updaters.js +54 -26
- package/dist/esm/ui-state.js +2 -2
- package/dist/esm/vis-state-updaters.js +235 -156
- package/dist/esm/vis-state.js +2 -2
- package/dist/ui-state-updaters.d.ts +12 -0
- package/dist/vis-state-updaters.d.ts +7 -0
- package/dist/vis-state.d.ts +4 -0
- package/package.json +16 -16
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.toggleSplitMapUpdater = exports.toggleSidePanelUpdater = exports.toggleSidePanelCloseButtonUpdater = exports.togglePanelListViewUpdater = exports.toggleModalUpdater = exports.toggleMapControlUpdater = exports.startExportingImageUpdater = exports.showExportDropdownUpdater = exports.showDatasetTableUpdater = exports.setUserMapboxAccessTokenUpdater = exports.setThemeUpdater = exports.setMapControlVisibilityUpdater = exports.setMapControlSettingsUpdater = exports.setLocaleUpdater = exports.setExportVideoSettingUpdater = exports.setExportSelectedDatasetUpdater = exports.setExportMapHTMLModeUpdater = exports.setExportMapFormatUpdater = exports.setExportImageSettingUpdater = exports.setExportImageErrorUpdater = exports.setExportImageDataUriUpdater = exports.setExportFilteredUpdater = exports.setExportDataUpdater = exports.setExportDataTypeUpdater = exports.removeNotificationUpdater = exports.receiveMapConfigUpdater = exports.openDeleteModalUpdater = exports.loadFilesUpdater = exports.loadFilesSuccessUpdater = exports.loadFilesErrUpdater = exports.initUiStateUpdater = exports.hideExportDropdownUpdater = exports.cleanupExportImageUpdater = exports.addNotificationUpdater = exports.MUTUALLY_EXCLUSIVE_MAP_CONTROLS = exports.INITIAL_UI_STATE = exports.DEFAULT_NOTIFICATIONS = exports.DEFAULT_MODAL = exports.DEFAULT_MAP_CONTROLS = exports.DEFAULT_LOAD_FILES = exports.DEFAULT_EXPORT_VIDEO = exports.DEFAULT_EXPORT_MAP = exports.DEFAULT_EXPORT_JSON = exports.DEFAULT_EXPORT_IMAGE = exports.DEFAULT_EXPORT_HTML = exports.DEFAULT_EXPORT_DATA = exports.DEFAULT_ACTIVE_SIDE_PANEL = void 0;
|
|
7
|
+
exports.toggleSplitMapUpdater = exports.toggleSidePanelUpdater = exports.toggleSidePanelCloseButtonUpdater = exports.togglePanelListViewUpdater = exports.toggleModalUpdater = exports.toggleMapControlUpdater = exports.startExportingImageUpdater = exports.showExportDropdownUpdater = exports.showDatasetTableUpdater = exports.setUserMapboxAccessTokenUpdater = exports.setThemeUpdater = exports.setMapControlVisibilityUpdater = exports.setMapControlSettingsUpdater = exports.setLocaleUpdater = exports.setExportVideoSettingUpdater = exports.setExportSelectedDatasetUpdater = exports.setExportMapHTMLModeUpdater = exports.setExportMapFormatUpdater = exports.setExportMapFileNameUpdater = exports.setExportImageSettingUpdater = exports.setExportImageErrorUpdater = exports.setExportImageDataUriUpdater = exports.setExportFilteredUpdater = exports.setExportDataUpdater = exports.setExportDataTypeUpdater = exports.removeNotificationUpdater = exports.receiveMapConfigUpdater = exports.openDeleteModalUpdater = exports.loadFilesUpdater = exports.loadFilesSuccessUpdater = exports.loadFilesErrUpdater = exports.initUiStateUpdater = exports.hideExportDropdownUpdater = exports.cleanupExportImageUpdater = exports.addNotificationUpdater = exports.MUTUALLY_EXCLUSIVE_MAP_CONTROLS = exports.INITIAL_UI_STATE = exports.DEFAULT_NOTIFICATIONS = exports.DEFAULT_MODAL = exports.DEFAULT_MAP_CONTROLS = exports.DEFAULT_LOAD_FILES = exports.DEFAULT_EXPORT_VIDEO = exports.DEFAULT_EXPORT_MAP = exports.DEFAULT_EXPORT_JSON = exports.DEFAULT_EXPORT_IMAGE = exports.DEFAULT_EXPORT_HTML = exports.DEFAULT_EXPORT_DATA = exports.DEFAULT_ACTIVE_SIDE_PANEL = void 0;
|
|
8
8
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
10
|
var _constants = require("@kepler.gl/constants");
|
|
@@ -101,6 +101,7 @@ var DEFAULT_MAP_CONTROLS = exports.DEFAULT_MAP_CONTROLS = Object.keys(_constants
|
|
|
101
101
|
* @property exporting Default: `false`
|
|
102
102
|
* @property error Default: `false`
|
|
103
103
|
* @property escapeXhtmlForWebpack Default: from application config (auto-detected: `true` for webpack)
|
|
104
|
+
* @property fileName Default: `''`
|
|
104
105
|
* @public
|
|
105
106
|
*/
|
|
106
107
|
var DEFAULT_EXPORT_IMAGE = exports.DEFAULT_EXPORT_IMAGE = {
|
|
@@ -127,7 +128,8 @@ var DEFAULT_EXPORT_IMAGE = exports.DEFAULT_EXPORT_IMAGE = {
|
|
|
127
128
|
processing: false,
|
|
128
129
|
error: false,
|
|
129
130
|
// whether to apply fix for uglify error in dom-to-image (from application config, auto-detects build tool)
|
|
130
|
-
escapeXhtmlForWebpack: (0, _utils.getApplicationConfig)().escapeXhtmlForWebpack
|
|
131
|
+
escapeXhtmlForWebpack: (0, _utils.getApplicationConfig)().escapeXhtmlForWebpack,
|
|
132
|
+
fileName: ''
|
|
131
133
|
};
|
|
132
134
|
var DEFAULT_LOAD_FILES = exports.DEFAULT_LOAD_FILES = {
|
|
133
135
|
fileLoading: false
|
|
@@ -181,9 +183,10 @@ var DEFAULT_EXPORT_JSON = exports.DEFAULT_EXPORT_JSON = {
|
|
|
181
183
|
* @property HTML - Default: 'DEFAULT_EXPORT_HTML',
|
|
182
184
|
* @property JSON - Default: 'DEFAULT_EXPORT_JSON',
|
|
183
185
|
* @property format - Default: 'HTML',
|
|
186
|
+
* @property fileName Default: `''`,
|
|
184
187
|
* @public
|
|
185
188
|
*/
|
|
186
|
-
var DEFAULT_EXPORT_MAP = exports.DEFAULT_EXPORT_MAP = (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _constants.EXPORT_MAP_FORMATS.HTML, DEFAULT_EXPORT_HTML), _constants.EXPORT_MAP_FORMATS.JSON, DEFAULT_EXPORT_JSON), "format", _constants.EXPORT_MAP_FORMATS.HTML);
|
|
189
|
+
var DEFAULT_EXPORT_MAP = exports.DEFAULT_EXPORT_MAP = (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _constants.EXPORT_MAP_FORMATS.HTML, DEFAULT_EXPORT_HTML), _constants.EXPORT_MAP_FORMATS.JSON, DEFAULT_EXPORT_JSON), "format", _constants.EXPORT_MAP_FORMATS.HTML), "fileName", '');
|
|
187
190
|
|
|
188
191
|
/**
|
|
189
192
|
* Default initial `exportVideo` settings
|
|
@@ -251,7 +254,7 @@ var INITIAL_UI_STATE = exports.INITIAL_UI_STATE = {
|
|
|
251
254
|
loadFiles: DEFAULT_LOAD_FILES,
|
|
252
255
|
// Locale of the UI
|
|
253
256
|
locale: _localization.LOCALE_CODES.en,
|
|
254
|
-
// Theme of the UI (
|
|
257
|
+
// Theme of the UI (`light` | `dark` | `space`). First of `themes` is the default when set.
|
|
255
258
|
theme: _constants.THEME.dark,
|
|
256
259
|
layerPanelListView: 'list',
|
|
257
260
|
filterPanelListView: 'list',
|
|
@@ -263,7 +266,14 @@ var INITIAL_UI_STATE = exports.INITIAL_UI_STATE = {
|
|
|
263
266
|
* @memberof uiStateUpdaters
|
|
264
267
|
*/
|
|
265
268
|
var initUiStateUpdater = exports.initUiStateUpdater = function initUiStateUpdater(state, action) {
|
|
266
|
-
|
|
269
|
+
var _initialUiState$theme;
|
|
270
|
+
var initialUiState = (action.payload || {}).initialUiState || {};
|
|
271
|
+
var themes = (0, _utils.getConfiguredThemes)();
|
|
272
|
+
var requested = (_initialUiState$theme = initialUiState.theme) !== null && _initialUiState$theme !== void 0 ? _initialUiState$theme : state.theme;
|
|
273
|
+
var theme = themes.length === 0 ? requested : themes.includes(requested) ? requested : (0, _utils.getDefaultUiTheme)();
|
|
274
|
+
return _objectSpread(_objectSpread(_objectSpread({}, state), initialUiState), {}, {
|
|
275
|
+
theme: theme
|
|
276
|
+
});
|
|
267
277
|
};
|
|
268
278
|
|
|
269
279
|
/**
|
|
@@ -664,6 +674,24 @@ var setExportMapFormatUpdater = exports.setExportMapFormatUpdater = function set
|
|
|
664
674
|
});
|
|
665
675
|
};
|
|
666
676
|
|
|
677
|
+
/**
|
|
678
|
+
* Set the filename used when exporting an HTML or JSON map
|
|
679
|
+
* @memberof uiStateUpdaters
|
|
680
|
+
* @param state `uiState`
|
|
681
|
+
* @param action
|
|
682
|
+
* @param action.payload file name without extension
|
|
683
|
+
* @returns nextState
|
|
684
|
+
* @public
|
|
685
|
+
*/
|
|
686
|
+
var setExportMapFileNameUpdater = exports.setExportMapFileNameUpdater = function setExportMapFileNameUpdater(state, _ref17) {
|
|
687
|
+
var fileName = _ref17.payload;
|
|
688
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
689
|
+
exportMap: _objectSpread(_objectSpread({}, state.exportMap), {}, {
|
|
690
|
+
fileName: fileName
|
|
691
|
+
})
|
|
692
|
+
});
|
|
693
|
+
};
|
|
694
|
+
|
|
667
695
|
/**
|
|
668
696
|
* Set the export html map mode
|
|
669
697
|
* @param state - `uiState`
|
|
@@ -671,8 +699,8 @@ var setExportMapFormatUpdater = exports.setExportMapFormatUpdater = function set
|
|
|
671
699
|
* @param action.payload to be set (available modes: EXPORT_HTML_MAP_MODES)
|
|
672
700
|
* @return nextState
|
|
673
701
|
*/
|
|
674
|
-
var setExportMapHTMLModeUpdater = exports.setExportMapHTMLModeUpdater = function setExportMapHTMLModeUpdater(state,
|
|
675
|
-
var mode =
|
|
702
|
+
var setExportMapHTMLModeUpdater = exports.setExportMapHTMLModeUpdater = function setExportMapHTMLModeUpdater(state, _ref18) {
|
|
703
|
+
var mode = _ref18.payload;
|
|
676
704
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
677
705
|
exportMap: _objectSpread(_objectSpread({}, state.exportMap), {}, (0, _defineProperty2["default"])({}, _constants.EXPORT_MAP_FORMATS.HTML, _objectSpread(_objectSpread({}, state.exportMap[_constants.EXPORT_MAP_FORMATS.HTML]), {}, {
|
|
678
706
|
mode: mode
|
|
@@ -690,8 +718,8 @@ var setExportMapHTMLModeUpdater = exports.setExportMapHTMLModeUpdater = function
|
|
|
690
718
|
* @returns nextState
|
|
691
719
|
* @public
|
|
692
720
|
*/
|
|
693
|
-
var addNotificationUpdater = exports.addNotificationUpdater = function addNotificationUpdater(state,
|
|
694
|
-
var payload =
|
|
721
|
+
var addNotificationUpdater = exports.addNotificationUpdater = function addNotificationUpdater(state, _ref19) {
|
|
722
|
+
var payload = _ref19.payload;
|
|
695
723
|
var oldNotifications = state.notifications || [];
|
|
696
724
|
// @ts-expect-error
|
|
697
725
|
var payloadId = payload === null || payload === void 0 ? void 0 : payload.id;
|
|
@@ -722,8 +750,8 @@ var addNotificationUpdater = exports.addNotificationUpdater = function addNotifi
|
|
|
722
750
|
* @returns nextState
|
|
723
751
|
* @public
|
|
724
752
|
*/
|
|
725
|
-
var removeNotificationUpdater = exports.removeNotificationUpdater = function removeNotificationUpdater(state,
|
|
726
|
-
var id =
|
|
753
|
+
var removeNotificationUpdater = exports.removeNotificationUpdater = function removeNotificationUpdater(state, _ref20) {
|
|
754
|
+
var id = _ref20.payload;
|
|
727
755
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
728
756
|
notifications: state.notifications.filter(function (n) {
|
|
729
757
|
return n.id !== id;
|
|
@@ -769,8 +797,8 @@ var loadFilesSuccessUpdater = exports.loadFilesSuccessUpdater = function loadFil
|
|
|
769
797
|
* @returns nextState
|
|
770
798
|
* @public
|
|
771
799
|
*/
|
|
772
|
-
var loadFilesErrUpdater = exports.loadFilesErrUpdater = function loadFilesErrUpdater(state,
|
|
773
|
-
var error =
|
|
800
|
+
var loadFilesErrUpdater = exports.loadFilesErrUpdater = function loadFilesErrUpdater(state, _ref21) {
|
|
801
|
+
var error = _ref21.error;
|
|
774
802
|
return addNotificationUpdater(_objectSpread(_objectSpread({}, state), {}, {
|
|
775
803
|
loadFiles: _objectSpread(_objectSpread({}, state.loadFiles), {}, {
|
|
776
804
|
fileLoading: false
|
|
@@ -823,8 +851,8 @@ var showDatasetTableUpdater = exports.showDatasetTableUpdater = function showDat
|
|
|
823
851
|
* @returns nextState
|
|
824
852
|
* @public
|
|
825
853
|
*/
|
|
826
|
-
var setLocaleUpdater = exports.setLocaleUpdater = function setLocaleUpdater(state,
|
|
827
|
-
var locale =
|
|
854
|
+
var setLocaleUpdater = exports.setLocaleUpdater = function setLocaleUpdater(state, _ref22) {
|
|
855
|
+
var locale = _ref22.payload.locale;
|
|
828
856
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
829
857
|
locale: locale
|
|
830
858
|
});
|
|
@@ -840,8 +868,8 @@ var setLocaleUpdater = exports.setLocaleUpdater = function setLocaleUpdater(stat
|
|
|
840
868
|
* @returns nextState
|
|
841
869
|
* @public
|
|
842
870
|
*/
|
|
843
|
-
var setThemeUpdater = exports.setThemeUpdater = function setThemeUpdater(state,
|
|
844
|
-
var theme =
|
|
871
|
+
var setThemeUpdater = exports.setThemeUpdater = function setThemeUpdater(state, _ref23) {
|
|
872
|
+
var theme = _ref23.payload.theme;
|
|
845
873
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
846
874
|
theme: theme
|
|
847
875
|
});
|
|
@@ -856,10 +884,10 @@ var setThemeUpdater = exports.setThemeUpdater = function setThemeUpdater(state,
|
|
|
856
884
|
* @returns nextState
|
|
857
885
|
* @public
|
|
858
886
|
*/
|
|
859
|
-
var togglePanelListViewUpdater = exports.togglePanelListViewUpdater = function togglePanelListViewUpdater(state,
|
|
860
|
-
var
|
|
861
|
-
panelId =
|
|
862
|
-
listView =
|
|
887
|
+
var togglePanelListViewUpdater = exports.togglePanelListViewUpdater = function togglePanelListViewUpdater(state, _ref24) {
|
|
888
|
+
var _ref24$payload = _ref24.payload,
|
|
889
|
+
panelId = _ref24$payload.panelId,
|
|
890
|
+
listView = _ref24$payload.listView;
|
|
863
891
|
var stateProp = panelId === 'layer' ? 'layerPanelListView' : panelId === 'filter' ? 'filterPanelListView' : null;
|
|
864
892
|
if (!stateProp || state[stateProp] === listView) {
|
|
865
893
|
return state;
|
|
@@ -876,11 +904,11 @@ var togglePanelListViewUpdater = exports.togglePanelListViewUpdater = function t
|
|
|
876
904
|
* @returns nextState
|
|
877
905
|
* @public
|
|
878
906
|
*/
|
|
879
|
-
var receiveMapConfigUpdater = exports.receiveMapConfigUpdater = function receiveMapConfigUpdater(state,
|
|
907
|
+
var receiveMapConfigUpdater = exports.receiveMapConfigUpdater = function receiveMapConfigUpdater(state, _ref25) {
|
|
880
908
|
var _uiState$mapControls, _uiState$mapControls2, _uiState$mapControls3;
|
|
881
|
-
var config =
|
|
882
|
-
var
|
|
883
|
-
uiState =
|
|
909
|
+
var config = _ref25.payload.config;
|
|
910
|
+
var _ref26 = config || {},
|
|
911
|
+
uiState = _ref26.uiState;
|
|
884
912
|
if (!uiState) {
|
|
885
913
|
return state;
|
|
886
914
|
}
|
|
@@ -935,4 +963,4 @@ var receiveMapConfigUpdater = exports.receiveMapConfigUpdater = function receive
|
|
|
935
963
|
}
|
|
936
964
|
return newState;
|
|
937
965
|
};
|
|
938
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9sb2NhbGl6YXRpb24iLCJfdXRpbHMiLCJfY29tcG9zZXJIZWxwZXJzIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJERUZBVUxUX0FDVElWRV9TSURFX1BBTkVMIiwiZXhwb3J0cyIsIkRFRkFVTFRfTU9EQUwiLCJBRERfREFUQV9JRCIsInVpU3RhdGVVcGRhdGVycyIsIkRFRkFVTFRfTUFQX0NPTlRST0xTX0ZFQVRVUkVTIiwic2hvdyIsImFjdGl2ZSIsImRpc2FibGVDbG9zZSIsImFjdGl2ZU1hcEluZGV4IiwiREVGQVVMVF9NQVBfTEVHRU5EX0NPTlRST0wiLCJkaXNhYmxlRWRpdCIsIkRFRkFVTFRfTUFQX0NPTlRST0xTIiwiTUFQX0NPTlRST0xTIiwicmVkdWNlIiwiZmluYWwiLCJjdXJyZW50IiwibWFwTGVnZW5kIiwiREVGQVVMVF9FWFBPUlRfSU1BR0UiLCJyYXRpbyIsIkVYUE9SVF9JTUdfUkFUSU9TIiwiU0NSRUVOIiwicmVzb2x1dGlvbiIsIlJFU09MVVRJT05TIiwiT05FX1giLCJsZWdlbmQiLCJjaGFydHMiLCJtYXBIIiwibWFwVyIsImltYWdlU2l6ZSIsInpvb21PZmZzZXQiLCJzY2FsZSIsImltYWdlVyIsImltYWdlSCIsImNlbnRlciIsImltYWdlRGF0YVVyaSIsImV4cG9ydGluZyIsInByb2Nlc3NpbmciLCJlcnJvciIsImVzY2FwZVhodG1sRm9yV2VicGFjayIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwiREVGQVVMVF9MT0FEX0ZJTEVTIiwiZmlsZUxvYWRpbmciLCJERUZBVUxUX0VYUE9SVF9EQVRBIiwic2VsZWN0ZWREYXRhc2V0IiwiZGF0YVR5cGUiLCJFWFBPUlRfREFUQV9UWVBFIiwiQ1NWIiwiZmlsdGVyZWQiLCJERUZBVUxUX05PVElGSUNBVElPTlMiLCJERUZBVUxUX0VYUE9SVF9IVE1MIiwiZXhwb3J0TWFwYm94QWNjZXNzVG9rZW4iLCJ1c2VyTWFwYm94VG9rZW4iLCJtb2RlIiwiRVhQT1JUX0hUTUxfTUFQX01PREVTIiwiUkVBRCIsIkRFRkFVTFRfRVhQT1JUX0pTT04iLCJoYXNEYXRhIiwiREVGQVVMVF9FWFBPUlRfTUFQIiwiRVhQT1JUX01BUF9GT1JNQVRTIiwiSFRNTCIsIkpTT04iLCJERUZBVUxUX0VYUE9SVF9WSURFTyIsIm1lZGlhVHlwZSIsImNhbWVyYVByZXNldCIsImZpbGVOYW1lIiwiZHVyYXRpb25NcyIsInN3aXBlU3RhcnRQY3QiLCJzd2lwZUVuZFBjdCIsInN3aXBlRWFzaW5nIiwiSU5JVElBTF9VSV9TVEFURSIsInJlYWRPbmx5IiwiYWN0aXZlU2lkZVBhbmVsIiwiY3VycmVudE1vZGFsIiwiZGF0YXNldEtleVRvUmVtb3ZlIiwidmlzaWJsZURyb3Bkb3duIiwiZXhwb3J0SW1hZ2UiLCJleHBvcnREYXRhIiwiZXhwb3J0TWFwIiwiZXhwb3J0VmlkZW8iLCJtYXBDb250cm9scyIsIm5vdGlmaWNhdGlvbnMiLCJsb2FkRmlsZXMiLCJsb2NhbGUiLCJMT0NBTEVfQ09ERVMiLCJlbiIsInRoZW1lIiwiVEhFTUUiLCJkYXJrIiwibGF5ZXJQYW5lbExpc3RWaWV3IiwiZmlsdGVyUGFuZWxMaXN0VmlldyIsImlzU2lkZVBhbmVsQ2xvc2VCdXR0b25WaXNpYmxlIiwiaW5pdFVpU3RhdGVVcGRhdGVyIiwic3RhdGUiLCJhY3Rpb24iLCJwYXlsb2FkIiwiaW5pdGlhbFVpU3RhdGUiLCJ0b2dnbGVTaWRlUGFuZWxVcGRhdGVyIiwiX3JlZiIsImlkIiwidG9nZ2xlTW9kYWxVcGRhdGVyIiwiX3JlZjIiLCJzaG93RXhwb3J0RHJvcGRvd25VcGRhdGVyIiwiX3JlZjMiLCJoaWRlRXhwb3J0RHJvcGRvd25VcGRhdGVyIiwidG9nZ2xlU2lkZVBhbmVsQ2xvc2VCdXR0b25VcGRhdGVyIiwiX3JlZjQiLCJNVVRVQUxMWV9FWENMVVNJVkVfTUFQX0NPTlRST0xTIiwic3BsaXRNYXAiLCJ0b2dnbGUzZCIsIm1hcERyYXciLCJtYXBMb2NhbGUiLCJ0b2dnbGVNYXBDb250cm9sVXBkYXRlciIsIl9yZWY1IiwiX3VwZGF0ZWRTdGF0ZSRtYXBDb250IiwiX3VwZGF0ZWRTdGF0ZSRtYXBDb250MiIsIl9yZWY1JHBheWxvYWQiLCJwYW5lbElkIiwiX3JlZjUkcGF5bG9hZCRpbmRleCIsImluZGV4IiwidXBkYXRlZFN0YXRlIiwiaXNPcGVuaW5nIiwiaW5jbHVkZXMiLCJuZXh0TWFwQ29udHJvbHMiLCJkaWREZWFjdGl2YXRlIiwiY29udHJvbElkIiwiX25leHRNYXBDb250cm9scyRjb250Iiwic2V0TWFwQ29udHJvbFZpc2liaWxpdHlVcGRhdGVyIiwiX3JlZjYiLCJfc3RhdGUkbWFwQ29udHJvbHMiLCJfcmVmNiRwYXlsb2FkIiwiQm9vbGVhbiIsInNldE1hcENvbnRyb2xTZXR0aW5nc1VwZGF0ZXIiLCJfcmVmNyIsIl9zdGF0ZSRtYXBDb250cm9sczIiLCJfcmVmNyRwYXlsb2FkIiwic2V0dGluZ3MiLCJtYXBDb250cm9sIiwib3BlbkRlbGV0ZU1vZGFsVXBkYXRlciIsIl9yZWY4IiwiREVMRVRFX0RBVEFfSUQiLCJzZXRFeHBvcnRJbWFnZVNldHRpbmdVcGRhdGVyIiwiX3JlZjkiLCJuZXdTZXR0aW5nIiwidXBkYXRlZCIsImNhbGN1bGF0ZUV4cG9ydEltYWdlU2l6ZSIsInNldEV4cG9ydEltYWdlRGF0YVVyaVVwZGF0ZXIiLCJfcmVmMCIsImRhdGFVcmkiLCJzZXRFeHBvcnRJbWFnZUVycm9yVXBkYXRlciIsIl9yZWYxIiwiY2xlYW51cEV4cG9ydEltYWdlVXBkYXRlciIsInNldEV4cG9ydFZpZGVvU2V0dGluZ1VwZGF0ZXIiLCJfcmVmMTAiLCJzdGFydEV4cG9ydGluZ0ltYWdlVXBkYXRlciIsIl9yZWYxMSIsIl9yZWYxMSRwYXlsb2FkIiwib3B0aW9ucyIsImltYWdlU2V0dGluZ3MiLCJjb21wb3NlXyIsImFwcGx5XyIsInBheWxvYWRfIiwic2V0RXhwb3J0U2VsZWN0ZWREYXRhc2V0VXBkYXRlciIsIl9yZWYxMiIsImRhdGFzZXQiLCJzZXRFeHBvcnREYXRhVHlwZVVwZGF0ZXIiLCJfcmVmMTMiLCJzZXRFeHBvcnRGaWx0ZXJlZFVwZGF0ZXIiLCJfcmVmMTQiLCJzZXRFeHBvcnREYXRhVXBkYXRlciIsInNldFVzZXJNYXBib3hBY2Nlc3NUb2tlblVwZGF0ZXIiLCJfcmVmMTUiLCJzZXRFeHBvcnRNYXBGb3JtYXRVcGRhdGVyIiwiX3JlZjE2IiwiZm9ybWF0Iiwic2V0RXhwb3J0TWFwSFRNTE1vZGVVcGRhdGVyIiwiX3JlZjE3IiwiYWRkTm90aWZpY2F0aW9uVXBkYXRlciIsIl9yZWYxOCIsIm9sZE5vdGlmaWNhdGlvbnMiLCJwYXlsb2FkSWQiLCJub3RpZmljYXRpb25Ub1VwZGF0ZSIsImZpbmQiLCJuIiwibWFwIiwiY3JlYXRlTm90aWZpY2F0aW9uIiwiY291bnQiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwicmVtb3ZlTm90aWZpY2F0aW9uVXBkYXRlciIsIl9yZWYxOSIsImxvYWRGaWxlc1VwZGF0ZXIiLCJsb2FkRmlsZXNTdWNjZXNzVXBkYXRlciIsImxvYWRGaWxlc0VyclVwZGF0ZXIiLCJfcmVmMjAiLCJlcnJvck5vdGlmaWNhdGlvbiIsIm1lc3NhZ2UiLCJ0b3BpYyIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX1RPUElDUyIsImdsb2JhbCIsInRvZ2dsZVNwbGl0TWFwVXBkYXRlciIsImVudHJpZXMiLCJhY2MiLCJlbnRyeSIsInNob3dEYXRhc2V0VGFibGVVcGRhdGVyIiwiREFUQV9UQUJMRV9JRCIsInNldExvY2FsZVVwZGF0ZXIiLCJfcmVmMjEiLCJzZXRUaGVtZVVwZGF0ZXIiLCJfcmVmMjIiLCJ0b2dnbGVQYW5lbExpc3RWaWV3VXBkYXRlciIsIl9yZWYyMyIsIl9yZWYyMyRwYXlsb2FkIiwibGlzdFZpZXciLCJzdGF0ZVByb3AiLCJyZWNlaXZlTWFwQ29uZmlnVXBkYXRlciIsIl9yZWYyNCIsIl91aVN0YXRlJG1hcENvbnRyb2xzIiwiX3VpU3RhdGUkbWFwQ29udHJvbHMyIiwiX3VpU3RhdGUkbWFwQ29udHJvbHMzIiwiY29uZmlnIiwiX3JlZjI1IiwidWlTdGF0ZSIsIm5ld1N0YXRlIiwiY3VycmVudExlZ2VuZCIsImNoYXJ0IiwiY3VycmVudENoYXJ0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VpLXN0YXRlLXVwZGF0ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7XG4gIEFERF9EQVRBX0lELFxuICBEQVRBX1RBQkxFX0lELFxuICBERUZBVUxUX05PVElGSUNBVElPTl9UT1BJQ1MsXG4gIERFTEVURV9EQVRBX0lELFxuICBFWFBPUlRfREFUQV9UWVBFLFxuICBFWFBPUlRfSFRNTF9NQVBfTU9ERVMsXG4gIEVYUE9SVF9JTUdfUkFUSU9TLFxuICBFWFBPUlRfTUFQX0ZPUk1BVFMsXG4gIFJFU09MVVRJT05TLFxuICBNQVBfQ09OVFJPTFMsXG4gIFRIRU1FXG59IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7TE9DQUxFX0NPREVTfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge1xuICBjcmVhdGVOb3RpZmljYXRpb24sXG4gIGVycm9yTm90aWZpY2F0aW9uLFxuICBjYWxjdWxhdGVFeHBvcnRJbWFnZVNpemUsXG4gIGdldEFwcGxpY2F0aW9uQ29uZmlnXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtwYXlsb2FkXywgYXBwbHlfLCBjb21wb3NlX30gZnJvbSAnLi9jb21wb3Nlci1oZWxwZXJzJztcblxuaW1wb3J0IHtcbiAgQWN0aW9uVHlwZXMsXG4gIEtlcGxlckdsSW5pdFBheWxvYWQsXG4gIExvYWRGaWxlc0VyclVwZGF0ZXJBY3Rpb24sXG4gIFJlY2VpdmVNYXBDb25maWdQYXlsb2FkLFxuICBVSVN0YXRlQWN0aW9uc1xufSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtcbiAgRXhwb3J0RGF0YSxcbiAgRXhwb3J0SHRtbCxcbiAgRXhwb3J0SnNvbixcbiAgRXhwb3J0TWFwLFxuICBFeHBvcnRJbWFnZSxcbiAgRXhwb3J0VmlkZW8sXG4gIE1hcENvbnRyb2xJdGVtLFxuICBNYXBDb250cm9sTWFwTGVnZW5kLFxuICBNYXBDb250cm9scyxcbiAgVWlTdGF0ZVxufSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQUNUSVZFX1NJREVfUEFORUwgPSAnbGF5ZXInO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTU9EQUwgPSBBRERfREFUQV9JRDtcblxuLyoqXG4gKiBVcGRhdGVycyBmb3IgYHVpU3RhdGVgIHJlZHVjZXIuIENhbiBiZSB1c2VkIGluIHlvdXIgcm9vdCByZWR1Y2VyIHRvIGRpcmVjdGx5IG1vZGlmeSBrZXBsZXIuZ2wncyBzdGF0ZS5cbiAqIFJlYWQgbW9yZSBhYm91dCBbVXNpbmcgdXBkYXRlcnNdKC4uL2FkdmFuY2VkLXVzYWdlL3VzaW5nLXVwZGF0ZXJzLm1kKVxuICpcbiAqIEBwdWJsaWNcbiAqIEBleGFtcGxlXG4gKlxuICogaW1wb3J0IGtlcGxlckdsUmVkdWNlciwge3VpU3RhdGVVcGRhdGVyc30gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG4gKiAvLyBSb290IFJlZHVjZXJcbiAqIGNvbnN0IHJlZHVjZXJzID0gY29tYmluZVJlZHVjZXJzKHtcbiAqICBrZXBsZXJHbDoga2VwbGVyR2xSZWR1Y2VyLFxuICogIGFwcDogYXBwUmVkdWNlclxuICogfSk7XG4gKlxuICogY29uc3QgY29tcG9zZWRSZWR1Y2VyID0gKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAqICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gKiAgICAvLyBjbGljayBidXR0b24gdG8gY2xvc2Ugc2lkZSBwYW5lbFxuICogICAgY2FzZSAnQ0xJQ0tfQlVUVE9OJzpcbiAqICAgICAgcmV0dXJuIHtcbiAqICAgICAgICAuLi5zdGF0ZSxcbiAqICAgICAgICBrZXBsZXJHbDoge1xuICogICAgICAgICAgLi4uc3RhdGUua2VwbGVyR2wsXG4gKiAgICAgICAgICBmb286IHtcbiAqICAgICAgICAgICAgIC4uLnN0YXRlLmtlcGxlckdsLmZvbyxcbiAqICAgICAgICAgICAgIHVpU3RhdGU6IHVpU3RhdGVVcGRhdGVycy50b2dnbGVTaWRlUGFuZWxVcGRhdGVyKFxuICogICAgICAgICAgICAgICB1aVN0YXRlLCB7cGF5bG9hZDogbnVsbH1cbiAqICAgICAgICAgICAgIClcbiAqICAgICAgICAgIH1cbiAqICAgICAgICB9XG4gKiAgICAgIH07XG4gKiAgfVxuICogIHJldHVybiByZWR1Y2VycyhzdGF0ZSwgYWN0aW9uKTtcbiAqIH07XG4gKlxuICogZXhwb3J0IGRlZmF1bHQgY29tcG9zZWRSZWR1Y2VyO1xuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8vIEB0cy1pZ25vcmVcbmNvbnN0IHVpU3RhdGVVcGRhdGVycyA9IG51bGw7XG4vKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuXG5jb25zdCBERUZBVUxUX01BUF9DT05UUk9MU19GRUFUVVJFUzogTWFwQ29udHJvbEl0ZW0gPSB7XG4gIHNob3c6IHRydWUsXG4gIGFjdGl2ZTogZmFsc2UsXG4gIGRpc2FibGVDbG9zZTogZmFsc2UsXG4gIC8vIGRlZmluZXMgd2hpY2ggbWFwIGluZGV4IHVzZXJzIGFyZSBpbnRlcmFjdGluZyB3aXRoICh0aHJvdWdoIG1hcCBjb250cm9scylcbiAgYWN0aXZlTWFwSW5kZXg6IDBcbn07XG5cbmNvbnN0IERFRkFVTFRfTUFQX0xFR0VORF9DT05UUk9MID0ge1xuICAuLi5ERUZBVUxUX01BUF9DT05UUk9MU19GRUFUVVJFUyxcbiAgZGlzYWJsZUVkaXQ6IGZhbHNlXG59O1xuLyoqXG4gKiBBIGxpc3Qgb2YgbWFwIGNvbnRyb2wgdmlzaWJpbGl0eSBhbmQgd2hldGhlciBpcyBpdCBhY3RpdmUuXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAY29uc3RhbnRcbiAqIEBwcm9wZXJ0eSB2aXNpYmxlTGF5ZXJzIERlZmF1bHQ6IGB7c2hvdzogdHJ1ZSwgYWN0aXZlOiBmYWxzZX1gXG4gKiBAcHJvcGVydHkgbWFwTGVnZW5kIERlZmF1bHQ6IGB7c2hvdzogdHJ1ZSwgYWN0aXZlOiBmYWxzZX1gXG4gKiBAcHJvcGVydHkgdG9nZ2xlM2QgRGVmYXVsdDogYHtzaG93OiB0cnVlfWBcbiAqIEBwcm9wZXJ0eSBzcGxpdE1hcCBEZWZhdWx0OiBge3Nob3c6IHRydWV9YFxuICogQHByb3BlcnR5IG1hcERyYXcgRGVmYXVsdDogYHtzaG93OiB0cnVlLCBhY3RpdmU6IGZhbHNlfWBcbiAqIEBwcm9wZXJ0eSBtYXBMb2NhbGUgRGVmYXVsdDogYHtzaG93OiB0cnVlLCBhY3RpdmU6IGZhbHNlfWBcbiAqIEBwcm9wZXJ0eSBtYXBUaGVtZSBEZWZhdWx0OiBge3Nob3c6IHRydWUsIGFjdGl2ZTogZmFsc2V9YFxuICogQHByb3BlcnR5IHZpZXdwb3J0SnNvbiBEZWZhdWx0OiBge3Nob3c6IHRydWUsIGFjdGl2ZTogZmFsc2V9YFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVBfQ09OVFJPTFM6IE1hcENvbnRyb2xzID0gKFxuICBPYmplY3Qua2V5cyhNQVBfQ09OVFJPTFMpIGFzIEFycmF5PGtleW9mIHR5cGVvZiBNQVBfQ09OVFJPTFM+XG4pLnJlZHVjZShcbiAgKGZpbmFsLCBjdXJyZW50KSA9PiAoe1xuICAgIC4uLmZpbmFsLFxuICAgIFtjdXJyZW50XTpcbiAgICAgIGN1cnJlbnQgPT09IE1BUF9DT05UUk9MUy5tYXBMZWdlbmRcbiAgICAgICAgPyBERUZBVUxUX01BUF9MRUdFTkRfQ09OVFJPTFxuICAgICAgICA6IERFRkFVTFRfTUFQX0NPTlRST0xTX0ZFQVRVUkVTXG4gIH0pLFxuICB7fSBhcyBNYXBDb250cm9sc1xuKTtcblxuLyoqXG4gKiBEZWZhdWx0IGltYWdlIGV4cG9ydCBjb25maWdcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBjb25zdGFudFxuICogQHByb3BlcnR5IHJhdGlvIERlZmF1bHQ6IGAnU0NSRUVOJ2AsXG4gKiBAcHJvcGVydHkgcmVzb2x1dGlvbiBEZWZhdWx0OiBgJ09ORV9YJ2AsXG4gKiBAcHJvcGVydHkgbGVnZW5kIERlZmF1bHQ6IGBmYWxzZWAsXG4gKiBAcHJvcGVydHkgY2hhcnRzIERlZmF1bHQ6IGBmYWxzZWAsXG4gKiBAcHJvcGVydHkgbWFwSCBEZWZhdWx0OiAwLFxuICogQHByb3BlcnR5IG1hcFcgRGVmYXVsdDogMCxcbiAqIEBwcm9wZXJ0eSBpbWFnZVNpemUgRGVmYXVsdDoge3pvb21PZmZzZXQ6IDAsIHNjYWxlOiAxLCBpbWFnZVc6IDAsIGltYWdlSDogMH0sXG4gKiBAcHJvcGVydHkgaW1hZ2VEYXRhVXJpIERlZmF1bHQ6IGAnJ2AsXG4gKiBAcHJvcGVydHkgZXhwb3J0aW5nIERlZmF1bHQ6IGBmYWxzZWBcbiAqIEBwcm9wZXJ0eSBlcnJvciBEZWZhdWx0OiBgZmFsc2VgXG4gKiBAcHJvcGVydHkgZXNjYXBlWGh0bWxGb3JXZWJwYWNrIERlZmF1bHQ6IGZyb20gYXBwbGljYXRpb24gY29uZmlnIChhdXRvLWRldGVjdGVkOiBgdHJ1ZWAgZm9yIHdlYnBhY2spXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VYUE9SVF9JTUFHRTogRXhwb3J0SW1hZ2UgPSB7XG4gIC8vIHVzZXIgb3B0aW9uc1xuICByYXRpbzogRVhQT1JUX0lNR19SQVRJT1MuU0NSRUVOLFxuICByZXNvbHV0aW9uOiBSRVNPTFVUSU9OUy5PTkVfWCxcbiAgbGVnZW5kOiBmYWxzZSxcbiAgY2hhcnRzOiBmYWxzZSxcbiAgbWFwSDogMCxcbiAgbWFwVzogMCxcbiAgaW1hZ2VTaXplOiB7XG4gICAgem9vbU9mZnNldDogMCxcbiAgICBzY2FsZTogMSxcbiAgICBpbWFnZVc6IDAsXG4gICAgaW1hZ2VIOiAwXG4gIH0sXG4gIC8vIHdoZW4gdGhpcyBpcyBzZXQgdG8gdHJ1ZSwgdGhlIG1vY2sgbWFwIHZpZXdwb3J0IHdpbGwgbW92ZSB0byB0aGUgY2VudGVyIG9mIGRhdGFcbiAgY2VudGVyOiBmYWxzZSxcbiAgLy8gZXhwb3J0aW5nIHN0YXRlXG4gIGltYWdlRGF0YVVyaTogJycsXG4gIC8vIGV4cG9ydGluZzogdXNlZCB0byBhdHRhY2ggcGxvdC1jb250YWluZXIgdG8gZG9tXG4gIGV4cG9ydGluZzogZmFsc2UsXG4gIC8vIHByb2Nlc3Npbmc6IHVzZWQgYXMgbG9hZGluZyBpbmRpY2F0b3Igd2hlbiBleHBvcnQgaW1hZ2UgaXMgYmVpbmcgcHJvZHVjZWRcbiAgcHJvY2Vzc2luZzogZmFsc2UsXG4gIGVycm9yOiBmYWxzZSxcbiAgLy8gd2hldGhlciB0byBhcHBseSBmaXggZm9yIHVnbGlmeSBlcnJvciBpbiBkb20tdG8taW1hZ2UgKGZyb20gYXBwbGljYXRpb24gY29uZmlnLCBhdXRvLWRldGVjdHMgYnVpbGQgdG9vbClcbiAgZXNjYXBlWGh0bWxGb3JXZWJwYWNrOiBnZXRBcHBsaWNhdGlvbkNvbmZpZygpLmVzY2FwZVhodG1sRm9yV2VicGFja1xufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTE9BRF9GSUxFUyA9IHtcbiAgZmlsZUxvYWRpbmc6IGZhbHNlXG59O1xuXG4vKipcbiAqIERlZmF1bHQgaW5pdGlhbCBgZXhwb3J0RGF0YWAgc2V0dGluZ3NcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBjb25zdGFudFxuICogQHByb3BlcnR5IHNlbGVjdGVkRGF0YXNldCBEZWZhdWx0OiBgJydgLFxuICogQHByb3BlcnR5IGRhdGFUeXBlIERlZmF1bHQ6IGAnY3N2J2AsXG4gKiBAcHJvcGVydHkgZmlsdGVyZWQgRGVmYXVsdDogYHRydWVgLFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9FWFBPUlRfREFUQTogRXhwb3J0RGF0YSA9IHtcbiAgc2VsZWN0ZWREYXRhc2V0OiAnJyxcbiAgZGF0YVR5cGU6IEVYUE9SVF9EQVRBX1RZUEUuQ1NWLFxuICBmaWx0ZXJlZDogdHJ1ZVxufTtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTk9USUZJQ0FUSU9OUyA9IFtdO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQHByb3BlcnR5IGV4cG9ydE1hcGJveEFjY2Vzc1Rva2VuIC0gRGVmYXVsdDogbnVsbCwgdGhpcyBpcyB1c2VkIHdoZW4gd2UgcHJvdmlkZSBhIGRlZmF1bHQgbWFwYm94IHRva2VuIGZvciB1c2VycyB0byB0YWtlIGFkdmFudGFnZSBvZlxuICogQHByb3BlcnR5IHVzZXJNYXBib3hUb2tlbiAtIERlZmF1bHQ6ICcnLCBtYXBib3ggdG9rZW4gcHJvdmlkZWQgYnkgdXNlciB0aHJvdWdoIGlucHV0IGZpZWxkXG4gKiBAcHJvcGVydHkgbW9kZSAtIERlZmF1bHQ6ICdSRUFEJywgcmVhZCBvbmx5IG9yIGVkaXRhYmxlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VYUE9SVF9IVE1MOiBFeHBvcnRIdG1sID0ge1xuICBleHBvcnRNYXBib3hBY2Nlc3NUb2tlbjogbnVsbCxcbiAgdXNlck1hcGJveFRva2VuOiAnJyxcbiAgbW9kZTogRVhQT1JUX0hUTUxfTUFQX01PREVTLlJFQURcbn07XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAcHJvcGVydHkgaGFzRGF0YSAtIERlZmF1bHQ6ICd0cnVlJyxcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRVhQT1JUX0pTT046IEV4cG9ydEpzb24gPSB7XG4gIGhhc0RhdGE6IHRydWVcbn07XG5cbi8qKlxuICogRXhwb3J0IE1hcCBDb25maWdcbiAqIEBjb25zdGFudFxuICogQHByb3BlcnR5IEhUTUwgLSBEZWZhdWx0OiAnREVGQVVMVF9FWFBPUlRfSFRNTCcsXG4gKiBAcHJvcGVydHkgSlNPTiAtIERlZmF1bHQ6ICdERUZBVUxUX0VYUE9SVF9KU09OJyxcbiAqIEBwcm9wZXJ0eSBmb3JtYXQgLSBEZWZhdWx0OiAnSFRNTCcsXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VYUE9SVF9NQVA6IEV4cG9ydE1hcCA9IHtcbiAgW0VYUE9SVF9NQVBfRk9STUFUUy5IVE1MXTogREVGQVVMVF9FWFBPUlRfSFRNTCxcbiAgW0VYUE9SVF9NQVBfRk9STUFUUy5KU09OXTogREVGQVVMVF9FWFBPUlRfSlNPTixcbiAgZm9ybWF0OiBFWFBPUlRfTUFQX0ZPUk1BVFMuSFRNTFxufTtcblxuLyoqXG4gKiBEZWZhdWx0IGluaXRpYWwgYGV4cG9ydFZpZGVvYCBzZXR0aW5nc1xuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQGNvbnN0YW50XG4gKiBAcHJvcGVydHkgbWVkaWFUeXBlIERlZmF1bHQ6IGAnd2VibSdgXG4gKiBAcHJvcGVydHkgY2FtZXJhUHJlc2V0IERlZmF1bHQ6IGAnTm9uZSdgXG4gKiBAcHJvcGVydHkgZmlsZU5hbWUgRGVmYXVsdDogYCdrZXBsZXIuZ2wnYFxuICogQHByb3BlcnR5IHJlc29sdXRpb24gRGVmYXVsdDogYCcxMjgweDcyMCdgXG4gKiBAcHJvcGVydHkgZHVyYXRpb25NcyBEZWZhdWx0OiBgMTAwMGBcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRVhQT1JUX1ZJREVPOiBFeHBvcnRWaWRlbyA9IHtcbiAgbWVkaWFUeXBlOiAnd2VibScsIC8vIHVzZSB3ZWJtIGFzIGRlZmF1bHQgYXMgZ2lmIGV4cG9ydCB0ZW5kcyB0byBmcmVlemUgb24gbGFyZ2VyIHJlY29yZGluZ3NcbiAgY2FtZXJhUHJlc2V0OiAnTm9uZScsXG4gIGZpbGVOYW1lOiAna2VwbGVyLmdsJyxcbiAgcmVzb2x1dGlvbjogJzEyODB4NzIwJyxcbiAgZHVyYXRpb25NczogMTAwMCxcbiAgc3dpcGVTdGFydFBjdDogMCxcbiAgc3dpcGVFbmRQY3Q6IDEwMCxcbiAgc3dpcGVFYXNpbmc6ICdlYXNlLWluLW91dCdcbn07XG5cbi8qKlxuICogRGVmYXVsdCBpbml0aWFsIGB1aVN0YXRlYFxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQGNvbnN0YW50XG4gKiBAcHJvcGVydHkgcmVhZE9ubHkgRGVmYXVsdDogYGZhbHNlYFxuICogQHByb3BlcnR5IGFjdGl2ZVNpZGVQYW5lbCBEZWZhdWx0OiBgJ2xheWVyJ2BcbiAqIEBwcm9wZXJ0eSBjdXJyZW50TW9kYWwgRGVmYXVsdDogYCdhZGREYXRhJ2BcbiAqIEBwcm9wZXJ0eSBkYXRhc2V0S2V5VG9SZW1vdmUgRGVmYXVsdDogYG51bGxgXG4gKiBAcHJvcGVydHkgdmlzaWJsZURyb3Bkb3duIERlZmF1bHQ6IGBudWxsYFxuICogQHByb3BlcnR5IGV4cG9ydEltYWdlIERlZmF1bHQ6IFtgREVGQVVMVF9FWFBPUlRfSU1BR0VgXSgjZGVmYXVsdF9leHBvcnRfaW1hZ2UpXG4gKiBAcHJvcGVydHkgZXhwb3J0RGF0YSBEZWZhdWx0OiBbYERFRkFVTFRfRVhQT1JUX0RBVEFgXSgjZGVmYXVsdF9leHBvcnRfZGF0YSlcbiAqIEBwcm9wZXJ0eSBleHBvcnRNYXAgRGVmYXVsdDogW2BERUZBVUxUX0VYUE9SVF9NQVBgXSgjZGVmYXVsdF9leHBvcnRfbWFwKVxuICogQHByb3BlcnR5IG1hcENvbnRyb2xzIERlZmF1bHQ6IFtgREVGQVVMVF9NQVBfQ09OVFJPTFNgXSgjZGVmYXVsdF9tYXBfY29udHJvbHMpXG4gKiBAcHJvcGVydHkgbm90aWZpY2F0aW9ucyBEZWZhdWx0OiBgW11gXG4gKiBAcHJvcGVydHkgbm90aWZpY2F0aW9ucyBEZWZhdWx0OiBgW11gXG4gKiBAcHJvcGVydHkgbG9hZEZpbGVzXG4gKiBAcHJvcGVydHkgbG9jYWxlIERlZmF1bHQ6IGAnZW4nYFxuICogQHByb3BlcnR5IHRoZW1lIERlZmF1bHQ6IGAnZGFyaydgXG4gKiBAcHJvcGVydHkgaXNTaWRlUGFuZWxDbG9zZUJ1dHRvblZpc2libGUgRGVmYXVsdDogYHRydWVgXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBJTklUSUFMX1VJX1NUQVRFOiBVaVN0YXRlID0ge1xuICByZWFkT25seTogZmFsc2UsXG4gIGFjdGl2ZVNpZGVQYW5lbDogREVGQVVMVF9BQ1RJVkVfU0lERV9QQU5FTCxcbiAgY3VycmVudE1vZGFsOiBERUZBVUxUX01PREFMLFxuICBkYXRhc2V0S2V5VG9SZW1vdmU6IG51bGwsXG4gIHZpc2libGVEcm9wZG93bjogbnVsbCxcbiAgLy8gZXhwb3J0IGltYWdlIG1vZGFsIHVpXG4gIGV4cG9ydEltYWdlOiBERUZBVUxUX0VYUE9SVF9JTUFHRSxcbiAgLy8gZXhwb3J0IGRhdGEgbW9kYWwgdWlcbiAgZXhwb3J0RGF0YTogREVGQVVMVF9FWFBPUlRfREFUQSxcbiAgLy8gaHRtbCBleHBvcnRcbiAgZXhwb3J0TWFwOiBERUZBVUxUX0VYUE9SVF9NQVAsXG4gIC8vIGV4cG9ydCB2aWRlbyBtb2RhbCB1aVxuICBleHBvcnRWaWRlbzogREVGQVVMVF9FWFBPUlRfVklERU8sXG4gIC8vIG1hcCBjb250cm9sIHBhbmVsc1xuICBtYXBDb250cm9sczogREVGQVVMVF9NQVBfQ09OVFJPTFMsXG4gIC8vIHVpIG5vdGlmaWNhdGlvbnNcbiAgbm90aWZpY2F0aW9uczogREVGQVVMVF9OT1RJRklDQVRJT05TLFxuICAvLyBsb2FkIGZpbGVzXG4gIGxvYWRGaWxlczogREVGQVVMVF9MT0FEX0ZJTEVTLFxuICAvLyBMb2NhbGUgb2YgdGhlIFVJXG4gIGxvY2FsZTogTE9DQUxFX0NPREVTLmVuLFxuICAvLyBUaGVtZSBvZiB0aGUgVUkgKHVzZWQgd2hlbiBlbmFibGVUaGVtZVRvZ2dsZSBpcyBvbilcbiAgdGhlbWU6IFRIRU1FLmRhcmssXG4gIGxheWVyUGFuZWxMaXN0VmlldzogJ2xpc3QnLFxuICBmaWx0ZXJQYW5lbExpc3RWaWV3OiAnbGlzdCcsXG4gIGlzU2lkZVBhbmVsQ2xvc2VCdXR0b25WaXNpYmxlOiB0cnVlXG59O1xuXG4vKiBVcGRhdGVycyAqL1xuLyoqXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBpbml0VWlTdGF0ZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICBhY3Rpb246IHtcbiAgICB0eXBlPzogKHR5cGVvZiBBY3Rpb25UeXBlcylbJ0lOSVQnXTtcbiAgICBwYXlsb2FkOiBLZXBsZXJHbEluaXRQYXlsb2FkO1xuICB9XG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICAuLi4oYWN0aW9uLnBheWxvYWQgfHwge30pLmluaXRpYWxVaVN0YXRlXG59KTtcblxuLyoqXG4gKiBUb2dnbGUgYWN0aXZlIHNpZGUgcGFuZWxcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgdWlTdGF0ZWBcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEBwYXJhbSBhY3Rpb24ucGF5bG9hZCBpZCBvZiBzaWRlIHBhbmVsIHRvIGJlIHNob3duLCBvbmUgb2YgYGxheWVyYCwgYGZpbHRlcmAsIGBpbnRlcmFjdGlvbmAsIGBtYXBgLiBjbG9zZSBzaWRlIHBhbmVsIGlmIGBudWxsYFxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVTaWRlUGFuZWxVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IGlkfTogVUlTdGF0ZUFjdGlvbnMuVG9nZ2xlU2lkZVBhbmVsVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiB7XG4gIHJldHVybiBpZCA9PT0gc3RhdGUuYWN0aXZlU2lkZVBhbmVsXG4gICAgPyBzdGF0ZVxuICAgIDoge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgYWN0aXZlU2lkZVBhbmVsOiBpZFxuICAgICAgfTtcbn07XG5cbi8qKlxuICogU2hvdyBhbmQgaGlkZSBtb2RhbCBkaWFsb2dcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgdWlTdGF0ZWBcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEBwYXJhbWFjdGlvbi5wYXlsb2FkIGlkIG9mIG1vZGFsIHRvIGJlIHNob3duLCBudWxsIHRvIGhpZGUgbW9kYWxzLiBPbmUgb2Y6XG4gKiAgLSBbYERBVEFfVEFCTEVfSURgXSguLi9jb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncy5tZCNkYXRhX3RhYmxlX2lkKVxuICogIC0gW2BERUxFVEVfREFUQV9JRGBdKC4uL2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzLm1kI2RlbGV0ZV9kYXRhX2lkKVxuICogIC0gW2BBRERfREFUQV9JRGBdKC4uL2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzLm1kI2FkZF9kYXRhX2lkKVxuICogIC0gW2BFWFBPUlRfSU1BR0VfSURgXSguLi9jb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncy5tZCNleHBvcnRfaW1hZ2VfaWQpXG4gKiAgLSBbYEVYUE9SVF9EQVRBX0lEYF0oLi4vY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MubWQjZXhwb3J0X2RhdGFfaWQpXG4gKiAgLSBbYEFERF9NQVBfU1RZTEVfSURgXSguLi9jb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncy5tZCNhZGRfbWFwX3N0eWxlX2lkKVxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVNb2RhbFVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogaWR9OiBVSVN0YXRlQWN0aW9ucy5Ub2dnbGVNb2RhbFVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGN1cnJlbnRNb2RhbDogaWRcbn0pO1xuXG4vKipcbiAqIEhpZGUgYW5kIHNob3cgc2lkZSBwYW5lbCBoZWFkZXIgZHJvcGRvd24sIGFjdGl2YXRlZCBieSBjbGlja2luZyB0aGUgc2hhcmUgbGluayBvbiB0b3Agb2YgdGhlIHNpZGUgcGFuZWxcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNob3dFeHBvcnREcm9wZG93blVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogaWR9OiBVSVN0YXRlQWN0aW9ucy5TaG93RXhwb3J0RHJvcGRvd25VcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICB2aXNpYmxlRHJvcGRvd246IGlkXG59KTtcblxuLyoqXG4gKiBIaWRlIHNpZGUgcGFuZWwgaGVhZGVyIGRyb3Bkb3duLCBhY3RpdmF0ZWQgYnkgY2xpY2tpbmcgdGhlIHNoYXJlIGxpbmsgb24gdG9wIG9mIHRoZSBzaWRlIHBhbmVsXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBoaWRlRXhwb3J0RHJvcGRvd25VcGRhdGVyID0gKHN0YXRlOiBVaVN0YXRlKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgdmlzaWJsZURyb3Bkb3duOiBudWxsXG59KTtcblxuLyoqXG4gKiBUb2dnbGUgc2lkZSBwYW5lbCBjbG9zZSBidXR0b24gb24gdG9wIGxlZnQgb2YgdGhlIHNpZGUgcGFuZWxcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHRvZ2dsZVNpZGVQYW5lbENsb3NlQnV0dG9uVXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiB7c2hvd319OiBVSVN0YXRlQWN0aW9ucy5Ub2dnbGVTaWRlUGFuZWxDbG9zZUJ1dHRvblVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGlzU2lkZVBhbmVsQ2xvc2VCdXR0b25WaXNpYmxlOiBzaG93XG59KTtcblxuLy8gTWFwIGNvbnRyb2wgZHJvcGRvd25zL21lbnVzIHRoYXQgb3ZlcmxhcCBlYWNoIG90aGVyIHZpc3VhbGx5IGFuZCB0aGVyZWZvcmVcbi8vIHNob3VsZCBiZSBtdXR1YWxseSBleGNsdXNpdmU6IG9wZW5pbmcgb25lIGNsb3NlcyBhbGwgdGhlIG90aGVycy5cbi8vIChzcGxpdC92aWV3LW1vZGUgbWVudSwgdG9wLzNkL2dsb2JlIG1lbnUsIHBvbHlnb24gZHJhdyB0b29sLCBsYW5ndWFnZSBtZW51KVxuZXhwb3J0IGNvbnN0IE1VVFVBTExZX0VYQ0xVU0lWRV9NQVBfQ09OVFJPTFM6IHN0cmluZ1tdID0gW1xuICBNQVBfQ09OVFJPTFMuc3BsaXRNYXAsXG4gIE1BUF9DT05UUk9MUy50b2dnbGUzZCxcbiAgTUFQX0NPTlRST0xTLm1hcERyYXcsXG4gIE1BUF9DT05UUk9MUy5tYXBMb2NhbGVcbl07XG5cbi8qKlxuICogVG9nZ2xlIGFjdGl2ZSBtYXAgY29udHJvbCBwYW5lbFxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvbiBhY3Rpb25cbiAqIEBwYXJhbSBhY3Rpb24ucGF5bG9hZCBtYXAgY29udHJvbCBwYW5lbCBpZCwgb25lIG9mIHRoZSBrZXlzIG9mOiBbYERFRkFVTFRfTUFQX0NPTlRST0xTYF0oI2RlZmF1bHRfbWFwX2NvbnRyb2xzKVxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVNYXBDb250cm9sVXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiB7cGFuZWxJZCwgaW5kZXggPSAwfX06IFVJU3RhdGVBY3Rpb25zLlRvZ2dsZU1hcENvbnRyb2xVcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+IHtcbiAgbGV0IHVwZGF0ZWRTdGF0ZSA9IHN0YXRlO1xuXG4gIC8vIFRoZSBvdmVybGFwcGluZyBtYXAgY29udHJvbCBtZW51cyBzaG91bGQgYmUgbXV0dWFsbHkgZXhjbHVzaXZlOiB3aGVuIG9uZSBvZlxuICAvLyB0aGVtIGlzIGJlaW5nIG9wZW5lZCwgZGVhY3RpdmF0ZSBldmVyeSBvdGhlciBvbmUgdGhhdCBpcyBjdXJyZW50bHkgYWN0aXZlXG4gIC8vIHNvIHRoZWlyIGRyb3Bkb3ducyBuZXZlciBvdmVybGFwIG9uIHNjcmVlbi5cbiAgY29uc3QgaXNPcGVuaW5nID0gIXVwZGF0ZWRTdGF0ZS5tYXBDb250cm9sc1twYW5lbElkXT8uYWN0aXZlO1xuICBpZiAoaXNPcGVuaW5nICYmIE1VVFVBTExZX0VYQ0xVU0lWRV9NQVBfQ09OVFJPTFMuaW5jbHVkZXMocGFuZWxJZCkpIHtcbiAgICBjb25zdCBuZXh0TWFwQ29udHJvbHMgPSB7Li4udXBkYXRlZFN0YXRlLm1hcENvbnRyb2xzfTtcbiAgICBsZXQgZGlkRGVhY3RpdmF0ZSA9IGZhbHNlO1xuICAgIE1VVFVBTExZX0VYQ0xVU0lWRV9NQVBfQ09OVFJPTFMuZm9yRWFjaChjb250cm9sSWQgPT4ge1xuICAgICAgaWYgKGNvbnRyb2xJZCAhPT0gcGFuZWxJZCAmJiBuZXh0TWFwQ29udHJvbHNbY29udHJvbElkXT8uYWN0aXZlKSB7XG4gICAgICAgIG5leHRNYXBDb250cm9sc1tjb250cm9sSWRdID0gey4uLm5leHRNYXBDb250cm9sc1tjb250cm9sSWRdLCBhY3RpdmU6IGZhbHNlfTtcbiAgICAgICAgZGlkRGVhY3RpdmF0ZSA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKGRpZERlYWN0aXZhdGUpIHtcbiAgICAgIHVwZGF0ZWRTdGF0ZSA9IHsuLi51cGRhdGVkU3RhdGUsIG1hcENvbnRyb2xzOiBuZXh0TWFwQ29udHJvbHN9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4udXBkYXRlZFN0YXRlLFxuICAgIG1hcENvbnRyb2xzOiB7XG4gICAgICAuLi51cGRhdGVkU3RhdGUubWFwQ29udHJvbHMsXG4gICAgICBbcGFuZWxJZF06IHtcbiAgICAgICAgLi4uKHVwZGF0ZWRTdGF0ZS5tYXBDb250cm9sc1twYW5lbElkXSBhcyBNYXBDb250cm9sSXRlbSksXG4gICAgICAgIGFjdGl2ZTogIXVwZGF0ZWRTdGF0ZS5tYXBDb250cm9sc1twYW5lbElkXT8uYWN0aXZlLFxuICAgICAgICBhY3RpdmVNYXBJbmRleDogaW5kZXhcbiAgICAgIH1cbiAgICB9XG4gIH07XG59O1xuXG4vKipcbiAqIFRvZ2dsZSBtYXAgY29udHJvbCB2aXNpYmlsaXR5XG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIG1hcCBjb250cm9sIHBhbmVsIGlkLCBvbmUgb2YgdGhlIGtleXMgb2Y6IFtgREVGQVVMVF9NQVBfQ09OVFJPTFNgXSgjZGVmYXVsdF9tYXBfY29udHJvbHMpXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldE1hcENvbnRyb2xWaXNpYmlsaXR5VXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiB7cGFuZWxJZCwgc2hvd319OiBVSVN0YXRlQWN0aW9ucy5zZXRNYXBDb250cm9sVmlzaWJpbGl0eVVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4ge1xuICBpZiAoIXN0YXRlLm1hcENvbnRyb2xzPy5bcGFuZWxJZF0pIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIG1hcENvbnRyb2xzOiB7XG4gICAgICAuLi5zdGF0ZS5tYXBDb250cm9scyxcbiAgICAgIFtwYW5lbElkXToge1xuICAgICAgICAuLi5zdGF0ZS5tYXBDb250cm9sc1twYW5lbElkXSxcbiAgICAgICAgc2hvdzogQm9vbGVhbihzaG93KVxuICAgICAgfVxuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogVG9nZ2xlIG1hcCBjb250cm9sIHNldHRpbmdzXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIG1hcCBjb250cm9sIHBhbmVsIGlkLCBvbmUgb2YgdGhlIGtleXMgb2Y6IFtgREVGQVVMVF9NQVBfQ09OVFJPTFNgXSgjZGVmYXVsdF9tYXBfY29udHJvbHMpXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldE1hcENvbnRyb2xTZXR0aW5nc1VwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDoge3BhbmVsSWQsIHNldHRpbmdzfX06IFVJU3RhdGVBY3Rpb25zLnNldE1hcENvbnRyb2xTZXR0aW5nc1VwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4ge1xuICBjb25zdCBtYXBDb250cm9sID0gc3RhdGUubWFwQ29udHJvbHM/LltwYW5lbElkXSBhcyBNYXBDb250cm9sTWFwTGVnZW5kIHwgdW5kZWZpbmVkO1xuICBpZiAoIW1hcENvbnRyb2wpIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIG1hcENvbnRyb2xzOiB7XG4gICAgICAuLi5zdGF0ZS5tYXBDb250cm9scyxcbiAgICAgIFtwYW5lbElkXToge1xuICAgICAgICAuLi5tYXBDb250cm9sLFxuICAgICAgICBzZXR0aW5nczogey4uLm1hcENvbnRyb2wuc2V0dGluZ3MsIC4uLnNldHRpbmdzfVxuICAgICAgfSBhcyBNYXBDb250cm9sTWFwTGVnZW5kXG4gICAgfVxuICB9O1xufTtcblxuLyoqXG4gKiBUb2dnbGUgYWN0aXZlIG1hcCBjb250cm9sIHBhbmVsXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQgZGF0YXNldCBpZFxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBvcGVuRGVsZXRlTW9kYWxVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IGRhdGFzZXRLZXlUb1JlbW92ZX06IFVJU3RhdGVBY3Rpb25zLk9wZW5EZWxldGVNb2RhbFVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGN1cnJlbnRNb2RhbDogREVMRVRFX0RBVEFfSUQsXG4gIGRhdGFzZXRLZXlUb1JlbW92ZVxufSk7XG5cbi8qKlxuICogU2V0IGBleHBvcnRJbWFnZWAgb3B0aW9ucyBzdWNoIGFzIGBsZWdlbmRgIGFuZCBgY2hhcnRzYCB0byBgdHJ1ZWAgb3IgYGZhbHNlYFxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRFeHBvcnRJbWFnZVNldHRpbmdVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IG5ld1NldHRpbmd9OiBVSVN0YXRlQWN0aW9ucy5TZXRFeHBvcnRJbWFnZVNldHRpbmdVcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+IHtcbiAgY29uc3QgdXBkYXRlZCA9IHsuLi5zdGF0ZS5leHBvcnRJbWFnZSwgLi4ubmV3U2V0dGluZ307XG4gIGNvbnN0IGltYWdlU2l6ZSA9IGNhbGN1bGF0ZUV4cG9ydEltYWdlU2l6ZSh1cGRhdGVkKSB8fCBzdGF0ZS5leHBvcnRJbWFnZS5pbWFnZVNpemU7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBleHBvcnRJbWFnZToge1xuICAgICAgLi4udXBkYXRlZCxcbiAgICAgIGltYWdlU2l6ZVxuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogU2V0IGBleHBvcnRJbWFnZS5zZXRFeHBvcnRJbWFnZURhdGFVcmlgIHRvIGEgaW1hZ2UgZGF0YVVyaVxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIGV4cG9ydCBpbWFnZSBkYXRhIHVyaVxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRFeHBvcnRJbWFnZURhdGFVcmlVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IGRhdGFVcml9OiBVSVN0YXRlQWN0aW9ucy5TZXRFeHBvcnRJbWFnZURhdGFVcmlVcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+IHtcbiAgaWYgKGRhdGFVcmkgPT09IHN0YXRlLmV4cG9ydEltYWdlLmltYWdlRGF0YVVyaSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIGV4cG9ydEltYWdlOiB7XG4gICAgICAuLi5zdGF0ZS5leHBvcnRJbWFnZSxcbiAgICAgIHByb2Nlc3Npbmc6IGZhbHNlLFxuICAgICAgaW1hZ2VEYXRhVXJpOiBkYXRhVXJpXG4gICAgfVxuICB9O1xufTtcblxuLyoqXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRFeHBvcnRJbWFnZUVycm9yVXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiBlcnJvcn06IFVJU3RhdGVBY3Rpb25zLlNldEV4cG9ydEltYWdlRXJyb3JVcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICBleHBvcnRJbWFnZToge1xuICAgIC4uLnN0YXRlLmV4cG9ydEltYWdlLFxuICAgIHByb2Nlc3Npbmc6IGZhbHNlLFxuICAgIGVycm9yXG4gIH1cbn0pO1xuXG4vKipcbiAqIERlbGV0ZSBjYWNoZWQgZXhwb3J0IGltYWdlXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBjbGVhbnVwRXhwb3J0SW1hZ2VVcGRhdGVyID0gKHN0YXRlOiBVaVN0YXRlKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgZXhwb3J0SW1hZ2U6IHtcbiAgICAuLi5zdGF0ZS5leHBvcnRJbWFnZSxcbiAgICBleHBvcnRpbmc6IGZhbHNlLFxuICAgIGltYWdlRGF0YVVyaTogJycsXG4gICAgZXJyb3I6IGZhbHNlLFxuICAgIHByb2Nlc3Npbmc6IGZhbHNlLFxuICAgIGNlbnRlcjogZmFsc2VcbiAgfVxufSk7XG5cbi8qKlxuICogU2V0IGBleHBvcnRWaWRlb2Agc2V0dGluZ3M6IG1lZGlhVHlwZSwgY2FtZXJhUHJlc2V0LCBmaWxlTmFtZSwgcmVzb2x1dGlvbiwgZHVyYXRpb25Nc1xuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIG5ldyB2aWRlbyBleHBvcnQgc2V0dGluZ3NcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0RXhwb3J0VmlkZW9TZXR0aW5nVXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiBuZXdTZXR0aW5nfTogVUlTdGF0ZUFjdGlvbnMuU2V0RXhwb3J0VmlkZW9TZXR0aW5nVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgZXhwb3J0VmlkZW86IHtcbiAgICAuLi5zdGF0ZS5leHBvcnRWaWRlbyxcbiAgICAuLi5uZXdTZXR0aW5nXG4gIH1cbn0pO1xuXG4vKipcbiAqIFN0YXJ0IGltYWdlIGV4cG9ydGluZyBmbG93XG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGVcbiAqIEBwYXJhbSBvcHRpb25zXG4gKiBAcmV0dXJucyB7VWlTdGF0ZX1cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHN0YXJ0RXhwb3J0aW5nSW1hZ2VVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IG9wdGlvbnMgPSB7fX06IHtwYXlsb2FkOiBQYXJ0aWFsPEV4cG9ydEltYWdlPn1cbik6IFVpU3RhdGUgPT4ge1xuICBjb25zdCBpbWFnZVNldHRpbmdzID0ge1xuICAgIC4uLm9wdGlvbnMsXG4gICAgZXhwb3J0aW5nOiB0cnVlXG4gIH07XG5cbiAgcmV0dXJuIGNvbXBvc2VfKFtcbiAgICBjbGVhbnVwRXhwb3J0SW1hZ2VVcGRhdGVyLFxuICAgIGFwcGx5XyhzZXRFeHBvcnRJbWFnZVNldHRpbmdVcGRhdGVyLCBwYXlsb2FkXyhpbWFnZVNldHRpbmdzKSlcbiAgXSkoc3RhdGUpO1xufTtcblxuLyoqXG4gKiBTZXQgc2VsZWN0ZWQgZGF0YXNldCBmb3IgZXhwb3J0XG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQgZGF0YXNldCBpZFxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRFeHBvcnRTZWxlY3RlZERhdGFzZXRVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IGRhdGFzZXR9OiBVSVN0YXRlQWN0aW9ucy5TZXRFeHBvcnRTZWxlY3RlZERhdGFzZXRVcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICBleHBvcnREYXRhOiB7XG4gICAgLi4uc3RhdGUuZXhwb3J0RGF0YSxcbiAgICBzZWxlY3RlZERhdGFzZXQ6IGRhdGFzZXRcbiAgfVxufSk7XG5cbi8qKlxuICogU2V0IGRhdGEgZm9ybWF0IGZvciBleHBvcnRpbmcgZGF0YVxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIG9uZSBvZiBgJ3RleHQvY3N2J2BcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0RXhwb3J0RGF0YVR5cGVVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IGRhdGFUeXBlfTogVUlTdGF0ZUFjdGlvbnMuU2V0RXhwb3J0RGF0YVR5cGVVcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICBleHBvcnREYXRhOiB7XG4gICAgLi4uc3RhdGUuZXhwb3J0RGF0YSxcbiAgICBkYXRhVHlwZVxuICB9XG59KTtcblxuLyoqXG4gKiBXaGV0aGVyIHRvIGV4cG9ydCBmaWx0ZXJlZCBkYXRhLCBgdHJ1ZWAgb3IgYGZhbHNlYFxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldEV4cG9ydEZpbHRlcmVkVXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiBmaWx0ZXJlZH06IFVJU3RhdGVBY3Rpb25zLlNldEV4cG9ydEZpbHRlcmVkVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgZXhwb3J0RGF0YToge1xuICAgIC4uLnN0YXRlLmV4cG9ydERhdGEsXG4gICAgZmlsdGVyZWRcbiAgfVxufSk7XG5cbi8qKlxuICogV2hldGhlciB0byBpbmNsdWRpbmcgZGF0YSBpbiBtYXAgY29uZmlnLCB0b2dnbGUgYmV0d2VlbiBgdHJ1ZWAgb3IgYGZhbHNlYFxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRFeHBvcnREYXRhVXBkYXRlciA9IChzdGF0ZTogVWlTdGF0ZSk6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGV4cG9ydE1hcDoge1xuICAgIC4uLnN0YXRlLmV4cG9ydE1hcCxcbiAgICBbRVhQT1JUX01BUF9GT1JNQVRTLkpTT05dOiB7XG4gICAgICAuLi5zdGF0ZS5leHBvcnRNYXBbRVhQT1JUX01BUF9GT1JNQVRTLkpTT05dLFxuICAgICAgaGFzRGF0YTogIXN0YXRlLmV4cG9ydE1hcFtFWFBPUlRfTUFQX0ZPUk1BVFMuSlNPTl0uaGFzRGF0YVxuICAgIH1cbiAgfVxufSk7XG5cbi8qKlxuICogd2hldGhlciB0byBleHBvcnQgYSBtYXBib3ggYWNjZXNzIHRvIEhUTUwgc2luZ2xlIHBhZ2VcbiAqIEBwYXJhbSBzdGF0ZSAtIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldFVzZXJNYXBib3hBY2Nlc3NUb2tlblVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogdXNlck1hcGJveFRva2VufTogVUlTdGF0ZUFjdGlvbnMuU2V0VXNlck1hcGJveEFjY2Vzc1Rva2VuVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgZXhwb3J0TWFwOiB7XG4gICAgLi4uc3RhdGUuZXhwb3J0TWFwLFxuICAgIFtFWFBPUlRfTUFQX0ZPUk1BVFMuSFRNTF06IHtcbiAgICAgIC4uLnN0YXRlLmV4cG9ydE1hcFtFWFBPUlRfTUFQX0ZPUk1BVFMuSFRNTF0sXG4gICAgICB1c2VyTWFwYm94VG9rZW5cbiAgICB9XG4gIH1cbn0pO1xuXG4vKipcbiAqIFNldHMgdGhlIGV4cG9ydCBtYXAgZm9ybWF0XG4gKiBAcGFyYW0gc3RhdGUgLSBgdWlTdGF0ZWBcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEBwYXJhbSBhY3Rpb24ucGF5bG9hZCBmb3JtYXQgdG8gdXNlIHRvIGV4cG9ydCB0aGUgbWFwIGludG9cbiAqIEByZXR1cm4gbmV4dFN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRFeHBvcnRNYXBGb3JtYXRVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IGZvcm1hdH06IFVJU3RhdGVBY3Rpb25zLlNldEV4cG9ydE1hcEZvcm1hdFVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGV4cG9ydE1hcDoge1xuICAgIC4uLnN0YXRlLmV4cG9ydE1hcCxcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgZm9ybWF0XG4gIH1cbn0pO1xuXG4vKipcbiAqIFNldCB0aGUgZXhwb3J0IGh0bWwgbWFwIG1vZGVcbiAqIEBwYXJhbSBzdGF0ZSAtIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIHRvIGJlIHNldCAoYXZhaWxhYmxlIG1vZGVzOiBFWFBPUlRfSFRNTF9NQVBfTU9ERVMpXG4gKiBAcmV0dXJuIG5leHRTdGF0ZVxuICovXG5leHBvcnQgY29uc3Qgc2V0RXhwb3J0TWFwSFRNTE1vZGVVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IG1vZGV9OiBVSVN0YXRlQWN0aW9ucy5TZXRFeHBvcnRIVE1MTWFwTW9kZVVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGV4cG9ydE1hcDoge1xuICAgIC4uLnN0YXRlLmV4cG9ydE1hcCxcbiAgICBbRVhQT1JUX01BUF9GT1JNQVRTLkhUTUxdOiB7XG4gICAgICAuLi5zdGF0ZS5leHBvcnRNYXBbRVhQT1JUX01BUF9GT1JNQVRTLkhUTUxdLFxuICAgICAgbW9kZVxuICAgIH1cbiAgfVxufSk7XG5cbi8qKlxuICogQWRkcyBhIG5ldyBub3RpZmljYXRpb24uXG4gKiBVcGRhdGVzIGEgbm90aWZpY2F0aW9uIGluIGNhc2Ugb2YgbWF0Y2hpbmcgaWRzLlxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIFBhcmFtcyBvZiBhIG5vdGlmaWNhdGlvblxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBhZGROb3RpZmljYXRpb25VcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWR9OiBVSVN0YXRlQWN0aW9ucy5BZGROb3RpZmljYXRpb25VcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+IHtcbiAgY29uc3Qgb2xkTm90aWZpY2F0aW9ucyA9IHN0YXRlLm5vdGlmaWNhdGlvbnMgfHwgW107XG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgY29uc3QgcGF5bG9hZElkID0gcGF5bG9hZD8uaWQ7XG4gIGNvbnN0IG5vdGlmaWNhdGlvblRvVXBkYXRlID0gcGF5bG9hZElkID8gb2xkTm90aWZpY2F0aW9ucy5maW5kKG4gPT4gbi5pZCA9PT0gcGF5bG9hZElkKSA6IG51bGw7XG5cbiAgbGV0IG5vdGlmaWNhdGlvbnM7XG4gIGlmIChub3RpZmljYXRpb25Ub1VwZGF0ZSkge1xuICAgIG5vdGlmaWNhdGlvbnMgPSBvbGROb3RpZmljYXRpb25zLm1hcChuID0+XG4gICAgICBuLmlkID09PSBwYXlsb2FkSWQgPyBjcmVhdGVOb3RpZmljYXRpb24oey4uLnBheWxvYWQsIGNvdW50OiBuLmNvdW50ICsgMX0pIDogblxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbm90aWZpY2F0aW9ucyA9IFsuLi5vbGROb3RpZmljYXRpb25zLCBjcmVhdGVOb3RpZmljYXRpb24ocGF5bG9hZCldO1xuICB9XG5cbiAgcmV0dXJuIHsuLi5zdGF0ZSwgbm90aWZpY2F0aW9uc307XG59O1xuXG4vKipcbiAqIFJlbW92ZSBhIG5vdGlmaWNhdGlvblxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIGlkIG9mIHRoZSBub3RpZmljYXRpb24gdG8gYmUgcmVtb3ZlZFxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVOb3RpZmljYXRpb25VcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IGlkfTogVUlTdGF0ZUFjdGlvbnMuUmVtb3ZlTm90aWZpY2F0aW9uVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgbm90aWZpY2F0aW9uczogc3RhdGUubm90aWZpY2F0aW9ucy5maWx0ZXIobiA9PiBuLmlkICE9PSBpZClcbn0pO1xuXG4vKipcbiAqIEZpcmVkIHdoZW4gZmlsZSBsb2FkaW5nIGJlZ2luXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRGaWxlc1VwZGF0ZXIgPSAoc3RhdGU6IFVpU3RhdGUpOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICBsb2FkRmlsZXM6IHtcbiAgICAuLi5zdGF0ZS5sb2FkRmlsZXMsXG4gICAgZmlsZUxvYWRpbmc6IHRydWVcbiAgfVxufSk7XG5cbi8qKlxuICogSGFuZGxlcyBsb2FkaW5nIGZpbGUgc3VjY2VzcyBhbmQgc2V0IGZpbGVMb2FkaW5nIHByb3BlcnR5IHRvIGZhbHNlXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyID0gKHN0YXRlOiBVaVN0YXRlKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgbG9hZEZpbGVzOiB7XG4gICAgLi4uc3RhdGUubG9hZEZpbGVzLFxuICAgIGZpbGVMb2FkaW5nOiBmYWxzZVxuICB9XG59KTtcblxuLyoqXG4gKiBIYW5kbGVzIGxvYWQgZmlsZSBlcnJvciBhbmQgc2V0IGZpbGVMb2FkaW5nIHByb3BlcnR5IHRvIGZhbHNlXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGVcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEBwYXJhbSBhY3Rpb24uZXJyb3JcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgbG9hZEZpbGVzRXJyVXBkYXRlciA9IChzdGF0ZTogVWlTdGF0ZSwge2Vycm9yfTogTG9hZEZpbGVzRXJyVXBkYXRlckFjdGlvbik6IFVpU3RhdGUgPT5cbiAgYWRkTm90aWZpY2F0aW9uVXBkYXRlcihcbiAgICB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGxvYWRGaWxlczoge1xuICAgICAgICAuLi5zdGF0ZS5sb2FkRmlsZXMsXG4gICAgICAgIGZpbGVMb2FkaW5nOiBmYWxzZVxuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgcGF5bG9hZDogZXJyb3JOb3RpZmljYXRpb24oe1xuICAgICAgICBtZXNzYWdlOiAoZXJyb3IgfHwge30pLm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byB1cGxvYWQgZmlsZXMnLFxuICAgICAgICB0b3BpYzogREVGQVVMVF9OT1RJRklDQVRJT05fVE9QSUNTLmdsb2JhbFxuICAgICAgfSlcbiAgICB9XG4gICk7XG5cbi8qKlxuICogSGFuZGxlcyB0b2dnbGUgbWFwIHNwbGl0IGFuZCByZXNldCBhbGwgbWFwIGNvbnRyb2wgaW5kZXggdG8gMFxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHRvZ2dsZVNwbGl0TWFwVXBkYXRlciA9IChzdGF0ZTogVWlTdGF0ZSk6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIG1hcENvbnRyb2xzOiBPYmplY3QuZW50cmllcyhzdGF0ZS5tYXBDb250cm9scykucmVkdWNlKFxuICAgIChhY2MsIGVudHJ5KSA9PiAoe1xuICAgICAgLi4uYWNjLFxuICAgICAgW2VudHJ5WzBdXToge1xuICAgICAgICAuLi4oZW50cnlbMV0gYXMgTWFwQ29udHJvbEl0ZW0pLFxuICAgICAgICBhY3RpdmVNYXBJbmRleDogMFxuICAgICAgfVxuICAgIH0pLFxuICAgIHt9IGFzIE1hcENvbnRyb2xzXG4gIClcbn0pO1xuXG4vKipcbiAqIFRvZ2dsZSBtb2RhbCBkYXRhXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGVcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2hvd0RhdGFzZXRUYWJsZVVwZGF0ZXIgPSAoc3RhdGU6IFVpU3RhdGUpOiBVaVN0YXRlID0+XG4gIHRvZ2dsZU1vZGFsVXBkYXRlcihzdGF0ZSwge3BheWxvYWQ6IERBVEFfVEFCTEVfSUR9KTtcblxuLyoqXG4gKiBTZXQgdGhlIGxvY2FsZSBvZiB0aGUgVUlcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgdWlTdGF0ZWBcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEBwYXJhbSBhY3Rpb24ucGF5bG9hZFxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkLmxvY2FsZSBsb2NhbGVcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0TG9jYWxlVXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiB7bG9jYWxlfX06IFVJU3RhdGVBY3Rpb25zLlNldExvY2FsZVVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGxvY2FsZVxufSk7XG5cbi8qKlxuICogU2V0IHRoZSB0aGVtZSBvZiB0aGUgVUlcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgdWlTdGF0ZWBcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEBwYXJhbSBhY3Rpb24ucGF5bG9hZFxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkLnRoZW1lIHRoZW1lXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldFRoZW1lVXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiB7dGhlbWV9fTogVUlTdGF0ZUFjdGlvbnMuU2V0VGhlbWVVcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICB0aGVtZVxufSk7XG5cbi8qKlxuICogVG9nZ2xlIGxheWVyIHBhbmVsIGxpc3Qgdmlld1xuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIGxheWVyIHBhbmVsIGxpc3RWaWV3IHZhbHVlLiBDYW4gYmUgJ2xpc3QnIG9yICdzb3J0QnlEYXRhc2V0J1xuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVQYW5lbExpc3RWaWV3VXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiB7cGFuZWxJZCwgbGlzdFZpZXd9fTogVUlTdGF0ZUFjdGlvbnMuVG9nZ2xlUGFuZWxMaXN0Vmlld0FjdGlvblxuKTogVWlTdGF0ZSA9PiB7XG4gIGNvbnN0IHN0YXRlUHJvcCA9XG4gICAgcGFuZWxJZCA9PT0gJ2xheWVyJ1xuICAgICAgPyAnbGF5ZXJQYW5lbExpc3RWaWV3J1xuICAgICAgOiBwYW5lbElkID09PSAnZmlsdGVyJ1xuICAgICAgPyAnZmlsdGVyUGFuZWxMaXN0VmlldydcbiAgICAgIDogbnVsbDtcbiAgaWYgKCFzdGF0ZVByb3AgfHwgc3RhdGVbc3RhdGVQcm9wXSA9PT0gbGlzdFZpZXcpIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBbc3RhdGVQcm9wXTogbGlzdFZpZXdcbiAgfTtcbn07XG5cbi8qKlxuICogTWVyZ2UgcmVjZWl2ZWQgdWkgc3RhdGUgY29uZmlnIHdoZW4gbG9hZGluZyBhIHNhdmVkIG1hcFxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIHNhdmVkIG1hcCBjb25maWcgYHttYXBTdHlsZSwgdmlzU3RhdGUsIG1hcFN0YXRlLCB1aVN0YXRlfWBcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgcmVjZWl2ZU1hcENvbmZpZ1VwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7XG4gICAgcGF5bG9hZDoge2NvbmZpZ31cbiAgfToge1xuICAgIHR5cGU/OiAodHlwZW9mIEFjdGlvblR5cGVzKVsnUkVDRUlWRV9NQVBfQ09ORklHJ107XG4gICAgcGF5bG9hZDogUmVjZWl2ZU1hcENvbmZpZ1BheWxvYWQ7XG4gIH1cbik6IFVpU3RhdGUgPT4ge1xuICBjb25zdCB7dWlTdGF0ZX0gPSBjb25maWcgfHwge307XG4gIGlmICghdWlTdGF0ZSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGxldCBuZXdTdGF0ZSA9IHN0YXRlO1xuXG4gIGlmICh1aVN0YXRlLm1hcENvbnRyb2xzPy5tYXBMZWdlbmQ/LmFjdGl2ZSkge1xuICAgIGNvbnN0IGN1cnJlbnRMZWdlbmQgPSBuZXdTdGF0ZS5tYXBDb250cm9scy5tYXBMZWdlbmQ7XG4gICAgbmV3U3RhdGUgPSB7XG4gICAgICAuLi5uZXdTdGF0ZSxcbiAgICAgIG1hcENvbnRyb2xzOiB7XG4gICAgICAgIC4uLm5ld1N0YXRlLm1hcENvbnRyb2xzLFxuICAgICAgICBtYXBMZWdlbmQ6IHtcbiAgICAgICAgICBzaG93OiB0cnVlLFxuICAgICAgICAgIC4uLmN1cnJlbnRMZWdlbmQsXG4gICAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICAgIGFjdGl2ZU1hcEluZGV4OiAwXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgaWYgKHVpU3RhdGUubWFwQ29udHJvbHM/LmNoYXJ0Py5hY3RpdmUpIHtcbiAgICBjb25zdCBjdXJyZW50Q2hhcnQgPSBuZXdTdGF0ZS5tYXBDb250cm9scy5jaGFydDtcbiAgICBuZXdTdGF0ZSA9IHtcbiAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgbWFwQ29udHJvbHM6IHtcbiAgICAgICAgLi4ubmV3U3RhdGUubWFwQ29udHJvbHMsXG4gICAgICAgIGNoYXJ0OiB7XG4gICAgICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgICAgICAuLi5jdXJyZW50Q2hhcnQsXG4gICAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICAgIGFjdGl2ZU1hcEluZGV4OiAwXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgaWYgKHVpU3RhdGUubWFwQ29udHJvbHM/Lm1hcExlZ2VuZD8uc2V0dGluZ3MpIHtcbiAgICBuZXdTdGF0ZSA9IHNldE1hcENvbnRyb2xTZXR0aW5nc1VwZGF0ZXIobmV3U3RhdGUsIHtcbiAgICAgIHBheWxvYWQ6IHtwYW5lbElkOiAnbWFwTGVnZW5kJywgc2V0dGluZ3M6IHVpU3RhdGUubWFwQ29udHJvbHMubWFwTGVnZW5kLnNldHRpbmdzfVxuICAgIH0gYXMgVUlTdGF0ZUFjdGlvbnMuc2V0TWFwQ29udHJvbFNldHRpbmdzVXBkYXRlckFjdGlvbik7XG4gIH1cblxuICBpZiAodWlTdGF0ZS5sb2NhbGUpIHtcbiAgICBuZXdTdGF0ZSA9IHNldExvY2FsZVVwZGF0ZXIobmV3U3RhdGUsIHtcbiAgICAgIHBheWxvYWQ6IHtsb2NhbGU6IHVpU3RhdGUubG9jYWxlfVxuICAgIH0gYXMgVUlTdGF0ZUFjdGlvbnMuU2V0TG9jYWxlVXBkYXRlckFjdGlvbik7XG4gIH1cblxuICBpZiAodWlTdGF0ZS50aGVtZSkge1xuICAgIG5ld1N0YXRlID0gc2V0VGhlbWVVcGRhdGVyKG5ld1N0YXRlLCB7XG4gICAgICBwYXlsb2FkOiB7dGhlbWU6IHVpU3RhdGUudGhlbWV9XG4gICAgfSBhcyBVSVN0YXRlQWN0aW9ucy5TZXRUaGVtZVVwZGF0ZXJBY3Rpb24pO1xuICB9XG5cbiAgcmV0dXJuIG5ld1N0YXRlO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBYUEsSUFBQUMsYUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBTUEsSUFBQUcsZ0JBQUEsR0FBQUgsT0FBQTtBQUE4RCxTQUFBSSxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FB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
|
|
966
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9sb2NhbGl6YXRpb24iLCJfdXRpbHMiLCJfY29tcG9zZXJIZWxwZXJzIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJERUZBVUxUX0FDVElWRV9TSURFX1BBTkVMIiwiZXhwb3J0cyIsIkRFRkFVTFRfTU9EQUwiLCJBRERfREFUQV9JRCIsInVpU3RhdGVVcGRhdGVycyIsIkRFRkFVTFRfTUFQX0NPTlRST0xTX0ZFQVRVUkVTIiwic2hvdyIsImFjdGl2ZSIsImRpc2FibGVDbG9zZSIsImFjdGl2ZU1hcEluZGV4IiwiREVGQVVMVF9NQVBfTEVHRU5EX0NPTlRST0wiLCJkaXNhYmxlRWRpdCIsIkRFRkFVTFRfTUFQX0NPTlRST0xTIiwiTUFQX0NPTlRST0xTIiwicmVkdWNlIiwiZmluYWwiLCJjdXJyZW50IiwibWFwTGVnZW5kIiwiREVGQVVMVF9FWFBPUlRfSU1BR0UiLCJyYXRpbyIsIkVYUE9SVF9JTUdfUkFUSU9TIiwiU0NSRUVOIiwicmVzb2x1dGlvbiIsIlJFU09MVVRJT05TIiwiT05FX1giLCJsZWdlbmQiLCJjaGFydHMiLCJtYXBIIiwibWFwVyIsImltYWdlU2l6ZSIsInpvb21PZmZzZXQiLCJzY2FsZSIsImltYWdlVyIsImltYWdlSCIsImNlbnRlciIsImltYWdlRGF0YVVyaSIsImV4cG9ydGluZyIsInByb2Nlc3NpbmciLCJlcnJvciIsImVzY2FwZVhodG1sRm9yV2VicGFjayIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwiZmlsZU5hbWUiLCJERUZBVUxUX0xPQURfRklMRVMiLCJmaWxlTG9hZGluZyIsIkRFRkFVTFRfRVhQT1JUX0RBVEEiLCJzZWxlY3RlZERhdGFzZXQiLCJkYXRhVHlwZSIsIkVYUE9SVF9EQVRBX1RZUEUiLCJDU1YiLCJmaWx0ZXJlZCIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OUyIsIkRFRkFVTFRfRVhQT1JUX0hUTUwiLCJleHBvcnRNYXBib3hBY2Nlc3NUb2tlbiIsInVzZXJNYXBib3hUb2tlbiIsIm1vZGUiLCJFWFBPUlRfSFRNTF9NQVBfTU9ERVMiLCJSRUFEIiwiREVGQVVMVF9FWFBPUlRfSlNPTiIsImhhc0RhdGEiLCJERUZBVUxUX0VYUE9SVF9NQVAiLCJFWFBPUlRfTUFQX0ZPUk1BVFMiLCJIVE1MIiwiSlNPTiIsIkRFRkFVTFRfRVhQT1JUX1ZJREVPIiwibWVkaWFUeXBlIiwiY2FtZXJhUHJlc2V0IiwiZHVyYXRpb25NcyIsInN3aXBlU3RhcnRQY3QiLCJzd2lwZUVuZFBjdCIsInN3aXBlRWFzaW5nIiwiSU5JVElBTF9VSV9TVEFURSIsInJlYWRPbmx5IiwiYWN0aXZlU2lkZVBhbmVsIiwiY3VycmVudE1vZGFsIiwiZGF0YXNldEtleVRvUmVtb3ZlIiwidmlzaWJsZURyb3Bkb3duIiwiZXhwb3J0SW1hZ2UiLCJleHBvcnREYXRhIiwiZXhwb3J0TWFwIiwiZXhwb3J0VmlkZW8iLCJtYXBDb250cm9scyIsIm5vdGlmaWNhdGlvbnMiLCJsb2FkRmlsZXMiLCJsb2NhbGUiLCJMT0NBTEVfQ09ERVMiLCJlbiIsInRoZW1lIiwiVEhFTUUiLCJkYXJrIiwibGF5ZXJQYW5lbExpc3RWaWV3IiwiZmlsdGVyUGFuZWxMaXN0VmlldyIsImlzU2lkZVBhbmVsQ2xvc2VCdXR0b25WaXNpYmxlIiwiaW5pdFVpU3RhdGVVcGRhdGVyIiwic3RhdGUiLCJhY3Rpb24iLCJfaW5pdGlhbFVpU3RhdGUkdGhlbWUiLCJpbml0aWFsVWlTdGF0ZSIsInBheWxvYWQiLCJ0aGVtZXMiLCJnZXRDb25maWd1cmVkVGhlbWVzIiwicmVxdWVzdGVkIiwiaW5jbHVkZXMiLCJnZXREZWZhdWx0VWlUaGVtZSIsInRvZ2dsZVNpZGVQYW5lbFVwZGF0ZXIiLCJfcmVmIiwiaWQiLCJ0b2dnbGVNb2RhbFVwZGF0ZXIiLCJfcmVmMiIsInNob3dFeHBvcnREcm9wZG93blVwZGF0ZXIiLCJfcmVmMyIsImhpZGVFeHBvcnREcm9wZG93blVwZGF0ZXIiLCJ0b2dnbGVTaWRlUGFuZWxDbG9zZUJ1dHRvblVwZGF0ZXIiLCJfcmVmNCIsIk1VVFVBTExZX0VYQ0xVU0lWRV9NQVBfQ09OVFJPTFMiLCJzcGxpdE1hcCIsInRvZ2dsZTNkIiwibWFwRHJhdyIsIm1hcExvY2FsZSIsInRvZ2dsZU1hcENvbnRyb2xVcGRhdGVyIiwiX3JlZjUiLCJfdXBkYXRlZFN0YXRlJG1hcENvbnQiLCJfdXBkYXRlZFN0YXRlJG1hcENvbnQyIiwiX3JlZjUkcGF5bG9hZCIsInBhbmVsSWQiLCJfcmVmNSRwYXlsb2FkJGluZGV4IiwiaW5kZXgiLCJ1cGRhdGVkU3RhdGUiLCJpc09wZW5pbmciLCJuZXh0TWFwQ29udHJvbHMiLCJkaWREZWFjdGl2YXRlIiwiY29udHJvbElkIiwiX25leHRNYXBDb250cm9scyRjb250Iiwic2V0TWFwQ29udHJvbFZpc2liaWxpdHlVcGRhdGVyIiwiX3JlZjYiLCJfc3RhdGUkbWFwQ29udHJvbHMiLCJfcmVmNiRwYXlsb2FkIiwiQm9vbGVhbiIsInNldE1hcENvbnRyb2xTZXR0aW5nc1VwZGF0ZXIiLCJfcmVmNyIsIl9zdGF0ZSRtYXBDb250cm9sczIiLCJfcmVmNyRwYXlsb2FkIiwic2V0dGluZ3MiLCJtYXBDb250cm9sIiwib3BlbkRlbGV0ZU1vZGFsVXBkYXRlciIsIl9yZWY4IiwiREVMRVRFX0RBVEFfSUQiLCJzZXRFeHBvcnRJbWFnZVNldHRpbmdVcGRhdGVyIiwiX3JlZjkiLCJuZXdTZXR0aW5nIiwidXBkYXRlZCIsImNhbGN1bGF0ZUV4cG9ydEltYWdlU2l6ZSIsInNldEV4cG9ydEltYWdlRGF0YVVyaVVwZGF0ZXIiLCJfcmVmMCIsImRhdGFVcmkiLCJzZXRFeHBvcnRJbWFnZUVycm9yVXBkYXRlciIsIl9yZWYxIiwiY2xlYW51cEV4cG9ydEltYWdlVXBkYXRlciIsInNldEV4cG9ydFZpZGVvU2V0dGluZ1VwZGF0ZXIiLCJfcmVmMTAiLCJzdGFydEV4cG9ydGluZ0ltYWdlVXBkYXRlciIsIl9yZWYxMSIsIl9yZWYxMSRwYXlsb2FkIiwib3B0aW9ucyIsImltYWdlU2V0dGluZ3MiLCJjb21wb3NlXyIsImFwcGx5XyIsInBheWxvYWRfIiwic2V0RXhwb3J0U2VsZWN0ZWREYXRhc2V0VXBkYXRlciIsIl9yZWYxMiIsImRhdGFzZXQiLCJzZXRFeHBvcnREYXRhVHlwZVVwZGF0ZXIiLCJfcmVmMTMiLCJzZXRFeHBvcnRGaWx0ZXJlZFVwZGF0ZXIiLCJfcmVmMTQiLCJzZXRFeHBvcnREYXRhVXBkYXRlciIsInNldFVzZXJNYXBib3hBY2Nlc3NUb2tlblVwZGF0ZXIiLCJfcmVmMTUiLCJzZXRFeHBvcnRNYXBGb3JtYXRVcGRhdGVyIiwiX3JlZjE2IiwiZm9ybWF0Iiwic2V0RXhwb3J0TWFwRmlsZU5hbWVVcGRhdGVyIiwiX3JlZjE3Iiwic2V0RXhwb3J0TWFwSFRNTE1vZGVVcGRhdGVyIiwiX3JlZjE4IiwiYWRkTm90aWZpY2F0aW9uVXBkYXRlciIsIl9yZWYxOSIsIm9sZE5vdGlmaWNhdGlvbnMiLCJwYXlsb2FkSWQiLCJub3RpZmljYXRpb25Ub1VwZGF0ZSIsImZpbmQiLCJuIiwibWFwIiwiY3JlYXRlTm90aWZpY2F0aW9uIiwiY291bnQiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwicmVtb3ZlTm90aWZpY2F0aW9uVXBkYXRlciIsIl9yZWYyMCIsImxvYWRGaWxlc1VwZGF0ZXIiLCJsb2FkRmlsZXNTdWNjZXNzVXBkYXRlciIsImxvYWRGaWxlc0VyclVwZGF0ZXIiLCJfcmVmMjEiLCJlcnJvck5vdGlmaWNhdGlvbiIsIm1lc3NhZ2UiLCJ0b3BpYyIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX1RPUElDUyIsImdsb2JhbCIsInRvZ2dsZVNwbGl0TWFwVXBkYXRlciIsImVudHJpZXMiLCJhY2MiLCJlbnRyeSIsInNob3dEYXRhc2V0VGFibGVVcGRhdGVyIiwiREFUQV9UQUJMRV9JRCIsInNldExvY2FsZVVwZGF0ZXIiLCJfcmVmMjIiLCJzZXRUaGVtZVVwZGF0ZXIiLCJfcmVmMjMiLCJ0b2dnbGVQYW5lbExpc3RWaWV3VXBkYXRlciIsIl9yZWYyNCIsIl9yZWYyNCRwYXlsb2FkIiwibGlzdFZpZXciLCJzdGF0ZVByb3AiLCJyZWNlaXZlTWFwQ29uZmlnVXBkYXRlciIsIl9yZWYyNSIsIl91aVN0YXRlJG1hcENvbnRyb2xzIiwiX3VpU3RhdGUkbWFwQ29udHJvbHMyIiwiX3VpU3RhdGUkbWFwQ29udHJvbHMzIiwiY29uZmlnIiwiX3JlZjI2IiwidWlTdGF0ZSIsIm5ld1N0YXRlIiwiY3VycmVudExlZ2VuZCIsImNoYXJ0IiwiY3VycmVudENoYXJ0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VpLXN0YXRlLXVwZGF0ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7XG4gIEFERF9EQVRBX0lELFxuICBEQVRBX1RBQkxFX0lELFxuICBERUZBVUxUX05PVElGSUNBVElPTl9UT1BJQ1MsXG4gIERFTEVURV9EQVRBX0lELFxuICBFWFBPUlRfREFUQV9UWVBFLFxuICBFWFBPUlRfSFRNTF9NQVBfTU9ERVMsXG4gIEVYUE9SVF9JTUdfUkFUSU9TLFxuICBFWFBPUlRfTUFQX0ZPUk1BVFMsXG4gIFJFU09MVVRJT05TLFxuICBNQVBfQ09OVFJPTFMsXG4gIFRIRU1FXG59IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7TE9DQUxFX0NPREVTfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge1xuICBjcmVhdGVOb3RpZmljYXRpb24sXG4gIGVycm9yTm90aWZpY2F0aW9uLFxuICBjYWxjdWxhdGVFeHBvcnRJbWFnZVNpemUsXG4gIGdldEFwcGxpY2F0aW9uQ29uZmlnLFxuICBnZXRDb25maWd1cmVkVGhlbWVzLFxuICBnZXREZWZhdWx0VWlUaGVtZVxufSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7cGF5bG9hZF8sIGFwcGx5XywgY29tcG9zZV99IGZyb20gJy4vY29tcG9zZXItaGVscGVycyc7XG5cbmltcG9ydCB7XG4gIEFjdGlvblR5cGVzLFxuICBLZXBsZXJHbEluaXRQYXlsb2FkLFxuICBMb2FkRmlsZXNFcnJVcGRhdGVyQWN0aW9uLFxuICBSZWNlaXZlTWFwQ29uZmlnUGF5bG9hZCxcbiAgVUlTdGF0ZUFjdGlvbnNcbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7XG4gIEV4cG9ydERhdGEsXG4gIEV4cG9ydEh0bWwsXG4gIEV4cG9ydEpzb24sXG4gIEV4cG9ydE1hcCxcbiAgRXhwb3J0SW1hZ2UsXG4gIEV4cG9ydFZpZGVvLFxuICBNYXBDb250cm9sSXRlbSxcbiAgTWFwQ29udHJvbE1hcExlZ2VuZCxcbiAgTWFwQ29udHJvbHMsXG4gIFVpU3RhdGVcbn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0FDVElWRV9TSURFX1BBTkVMID0gJ2xheWVyJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX01PREFMID0gQUREX0RBVEFfSUQ7XG5cbi8qKlxuICogVXBkYXRlcnMgZm9yIGB1aVN0YXRlYCByZWR1Y2VyLiBDYW4gYmUgdXNlZCBpbiB5b3VyIHJvb3QgcmVkdWNlciB0byBkaXJlY3RseSBtb2RpZnkga2VwbGVyLmdsJ3Mgc3RhdGUuXG4gKiBSZWFkIG1vcmUgYWJvdXQgW1VzaW5nIHVwZGF0ZXJzXSguLi9hZHZhbmNlZC11c2FnZS91c2luZy11cGRhdGVycy5tZClcbiAqXG4gKiBAcHVibGljXG4gKiBAZXhhbXBsZVxuICpcbiAqIGltcG9ydCBrZXBsZXJHbFJlZHVjZXIsIHt1aVN0YXRlVXBkYXRlcnN9IGZyb20gJ0BrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuICogLy8gUm9vdCBSZWR1Y2VyXG4gKiBjb25zdCByZWR1Y2VycyA9IGNvbWJpbmVSZWR1Y2Vycyh7XG4gKiAga2VwbGVyR2w6IGtlcGxlckdsUmVkdWNlcixcbiAqICBhcHA6IGFwcFJlZHVjZXJcbiAqIH0pO1xuICpcbiAqIGNvbnN0IGNvbXBvc2VkUmVkdWNlciA9IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gKiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICogICAgLy8gY2xpY2sgYnV0dG9uIHRvIGNsb3NlIHNpZGUgcGFuZWxcbiAqICAgIGNhc2UgJ0NMSUNLX0JVVFRPTic6XG4gKiAgICAgIHJldHVybiB7XG4gKiAgICAgICAgLi4uc3RhdGUsXG4gKiAgICAgICAga2VwbGVyR2w6IHtcbiAqICAgICAgICAgIC4uLnN0YXRlLmtlcGxlckdsLFxuICogICAgICAgICAgZm9vOiB7XG4gKiAgICAgICAgICAgICAuLi5zdGF0ZS5rZXBsZXJHbC5mb28sXG4gKiAgICAgICAgICAgICB1aVN0YXRlOiB1aVN0YXRlVXBkYXRlcnMudG9nZ2xlU2lkZVBhbmVsVXBkYXRlcihcbiAqICAgICAgICAgICAgICAgdWlTdGF0ZSwge3BheWxvYWQ6IG51bGx9XG4gKiAgICAgICAgICAgICApXG4gKiAgICAgICAgICB9XG4gKiAgICAgICAgfVxuICogICAgICB9O1xuICogIH1cbiAqICByZXR1cm4gcmVkdWNlcnMoc3RhdGUsIGFjdGlvbik7XG4gKiB9O1xuICpcbiAqIGV4cG9ydCBkZWZhdWx0IGNvbXBvc2VkUmVkdWNlcjtcbiAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vLyBAdHMtaWdub3JlXG5jb25zdCB1aVN0YXRlVXBkYXRlcnMgPSBudWxsO1xuLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cblxuY29uc3QgREVGQVVMVF9NQVBfQ09OVFJPTFNfRkVBVFVSRVM6IE1hcENvbnRyb2xJdGVtID0ge1xuICBzaG93OiB0cnVlLFxuICBhY3RpdmU6IGZhbHNlLFxuICBkaXNhYmxlQ2xvc2U6IGZhbHNlLFxuICAvLyBkZWZpbmVzIHdoaWNoIG1hcCBpbmRleCB1c2VycyBhcmUgaW50ZXJhY3Rpbmcgd2l0aCAodGhyb3VnaCBtYXAgY29udHJvbHMpXG4gIGFjdGl2ZU1hcEluZGV4OiAwXG59O1xuXG5jb25zdCBERUZBVUxUX01BUF9MRUdFTkRfQ09OVFJPTCA9IHtcbiAgLi4uREVGQVVMVF9NQVBfQ09OVFJPTFNfRkVBVFVSRVMsXG4gIGRpc2FibGVFZGl0OiBmYWxzZVxufTtcbi8qKlxuICogQSBsaXN0IG9mIG1hcCBjb250cm9sIHZpc2liaWxpdHkgYW5kIHdoZXRoZXIgaXMgaXQgYWN0aXZlLlxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQGNvbnN0YW50XG4gKiBAcHJvcGVydHkgdmlzaWJsZUxheWVycyBEZWZhdWx0OiBge3Nob3c6IHRydWUsIGFjdGl2ZTogZmFsc2V9YFxuICogQHByb3BlcnR5IG1hcExlZ2VuZCBEZWZhdWx0OiBge3Nob3c6IHRydWUsIGFjdGl2ZTogZmFsc2V9YFxuICogQHByb3BlcnR5IHRvZ2dsZTNkIERlZmF1bHQ6IGB7c2hvdzogdHJ1ZX1gXG4gKiBAcHJvcGVydHkgc3BsaXRNYXAgRGVmYXVsdDogYHtzaG93OiB0cnVlfWBcbiAqIEBwcm9wZXJ0eSBtYXBEcmF3IERlZmF1bHQ6IGB7c2hvdzogdHJ1ZSwgYWN0aXZlOiBmYWxzZX1gXG4gKiBAcHJvcGVydHkgbWFwTG9jYWxlIERlZmF1bHQ6IGB7c2hvdzogdHJ1ZSwgYWN0aXZlOiBmYWxzZX1gXG4gKiBAcHJvcGVydHkgbWFwVGhlbWUgRGVmYXVsdDogYHtzaG93OiB0cnVlLCBhY3RpdmU6IGZhbHNlfWBcbiAqIEBwcm9wZXJ0eSB2aWV3cG9ydEpzb24gRGVmYXVsdDogYHtzaG93OiB0cnVlLCBhY3RpdmU6IGZhbHNlfWBcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUFQX0NPTlRST0xTOiBNYXBDb250cm9scyA9IChcbiAgT2JqZWN0LmtleXMoTUFQX0NPTlRST0xTKSBhcyBBcnJheTxrZXlvZiB0eXBlb2YgTUFQX0NPTlRST0xTPlxuKS5yZWR1Y2UoXG4gIChmaW5hbCwgY3VycmVudCkgPT4gKHtcbiAgICAuLi5maW5hbCxcbiAgICBbY3VycmVudF06XG4gICAgICBjdXJyZW50ID09PSBNQVBfQ09OVFJPTFMubWFwTGVnZW5kXG4gICAgICAgID8gREVGQVVMVF9NQVBfTEVHRU5EX0NPTlRST0xcbiAgICAgICAgOiBERUZBVUxUX01BUF9DT05UUk9MU19GRUFUVVJFU1xuICB9KSxcbiAge30gYXMgTWFwQ29udHJvbHNcbik7XG5cbi8qKlxuICogRGVmYXVsdCBpbWFnZSBleHBvcnQgY29uZmlnXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAY29uc3RhbnRcbiAqIEBwcm9wZXJ0eSByYXRpbyBEZWZhdWx0OiBgJ1NDUkVFTidgLFxuICogQHByb3BlcnR5IHJlc29sdXRpb24gRGVmYXVsdDogYCdPTkVfWCdgLFxuICogQHByb3BlcnR5IGxlZ2VuZCBEZWZhdWx0OiBgZmFsc2VgLFxuICogQHByb3BlcnR5IGNoYXJ0cyBEZWZhdWx0OiBgZmFsc2VgLFxuICogQHByb3BlcnR5IG1hcEggRGVmYXVsdDogMCxcbiAqIEBwcm9wZXJ0eSBtYXBXIERlZmF1bHQ6IDAsXG4gKiBAcHJvcGVydHkgaW1hZ2VTaXplIERlZmF1bHQ6IHt6b29tT2Zmc2V0OiAwLCBzY2FsZTogMSwgaW1hZ2VXOiAwLCBpbWFnZUg6IDB9LFxuICogQHByb3BlcnR5IGltYWdlRGF0YVVyaSBEZWZhdWx0OiBgJydgLFxuICogQHByb3BlcnR5IGV4cG9ydGluZyBEZWZhdWx0OiBgZmFsc2VgXG4gKiBAcHJvcGVydHkgZXJyb3IgRGVmYXVsdDogYGZhbHNlYFxuICogQHByb3BlcnR5IGVzY2FwZVhodG1sRm9yV2VicGFjayBEZWZhdWx0OiBmcm9tIGFwcGxpY2F0aW9uIGNvbmZpZyAoYXV0by1kZXRlY3RlZDogYHRydWVgIGZvciB3ZWJwYWNrKVxuICogQHByb3BlcnR5IGZpbGVOYW1lIERlZmF1bHQ6IGAnJ2BcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRVhQT1JUX0lNQUdFOiBFeHBvcnRJbWFnZSA9IHtcbiAgLy8gdXNlciBvcHRpb25zXG4gIHJhdGlvOiBFWFBPUlRfSU1HX1JBVElPUy5TQ1JFRU4sXG4gIHJlc29sdXRpb246IFJFU09MVVRJT05TLk9ORV9YLFxuICBsZWdlbmQ6IGZhbHNlLFxuICBjaGFydHM6IGZhbHNlLFxuICBtYXBIOiAwLFxuICBtYXBXOiAwLFxuICBpbWFnZVNpemU6IHtcbiAgICB6b29tT2Zmc2V0OiAwLFxuICAgIHNjYWxlOiAxLFxuICAgIGltYWdlVzogMCxcbiAgICBpbWFnZUg6IDBcbiAgfSxcbiAgLy8gd2hlbiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGUgbW9jayBtYXAgdmlld3BvcnQgd2lsbCBtb3ZlIHRvIHRoZSBjZW50ZXIgb2YgZGF0YVxuICBjZW50ZXI6IGZhbHNlLFxuICAvLyBleHBvcnRpbmcgc3RhdGVcbiAgaW1hZ2VEYXRhVXJpOiAnJyxcbiAgLy8gZXhwb3J0aW5nOiB1c2VkIHRvIGF0dGFjaCBwbG90LWNvbnRhaW5lciB0byBkb21cbiAgZXhwb3J0aW5nOiBmYWxzZSxcbiAgLy8gcHJvY2Vzc2luZzogdXNlZCBhcyBsb2FkaW5nIGluZGljYXRvciB3aGVuIGV4cG9ydCBpbWFnZSBpcyBiZWluZyBwcm9kdWNlZFxuICBwcm9jZXNzaW5nOiBmYWxzZSxcbiAgZXJyb3I6IGZhbHNlLFxuICAvLyB3aGV0aGVyIHRvIGFwcGx5IGZpeCBmb3IgdWdsaWZ5IGVycm9yIGluIGRvbS10by1pbWFnZSAoZnJvbSBhcHBsaWNhdGlvbiBjb25maWcsIGF1dG8tZGV0ZWN0cyBidWlsZCB0b29sKVxuICBlc2NhcGVYaHRtbEZvcldlYnBhY2s6IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZXNjYXBlWGh0bWxGb3JXZWJwYWNrLFxuICBmaWxlTmFtZTogJydcbn07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xPQURfRklMRVMgPSB7XG4gIGZpbGVMb2FkaW5nOiBmYWxzZVxufTtcblxuLyoqXG4gKiBEZWZhdWx0IGluaXRpYWwgYGV4cG9ydERhdGFgIHNldHRpbmdzXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAY29uc3RhbnRcbiAqIEBwcm9wZXJ0eSBzZWxlY3RlZERhdGFzZXQgRGVmYXVsdDogYCcnYCxcbiAqIEBwcm9wZXJ0eSBkYXRhVHlwZSBEZWZhdWx0OiBgJ2NzdidgLFxuICogQHByb3BlcnR5IGZpbHRlcmVkIERlZmF1bHQ6IGB0cnVlYCxcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRVhQT1JUX0RBVEE6IEV4cG9ydERhdGEgPSB7XG4gIHNlbGVjdGVkRGF0YXNldDogJycsXG4gIGRhdGFUeXBlOiBFWFBPUlRfREFUQV9UWVBFLkNTVixcbiAgZmlsdGVyZWQ6IHRydWVcbn07XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX05PVElGSUNBVElPTlMgPSBbXTtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBwcm9wZXJ0eSBleHBvcnRNYXBib3hBY2Nlc3NUb2tlbiAtIERlZmF1bHQ6IG51bGwsIHRoaXMgaXMgdXNlZCB3aGVuIHdlIHByb3ZpZGUgYSBkZWZhdWx0IG1hcGJveCB0b2tlbiBmb3IgdXNlcnMgdG8gdGFrZSBhZHZhbnRhZ2Ugb2ZcbiAqIEBwcm9wZXJ0eSB1c2VyTWFwYm94VG9rZW4gLSBEZWZhdWx0OiAnJywgbWFwYm94IHRva2VuIHByb3ZpZGVkIGJ5IHVzZXIgdGhyb3VnaCBpbnB1dCBmaWVsZFxuICogQHByb3BlcnR5IG1vZGUgLSBEZWZhdWx0OiAnUkVBRCcsIHJlYWQgb25seSBvciBlZGl0YWJsZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9FWFBPUlRfSFRNTDogRXhwb3J0SHRtbCA9IHtcbiAgZXhwb3J0TWFwYm94QWNjZXNzVG9rZW46IG51bGwsXG4gIHVzZXJNYXBib3hUb2tlbjogJycsXG4gIG1vZGU6IEVYUE9SVF9IVE1MX01BUF9NT0RFUy5SRUFEXG59O1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQHByb3BlcnR5IGhhc0RhdGEgLSBEZWZhdWx0OiAndHJ1ZScsXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VYUE9SVF9KU09OOiBFeHBvcnRKc29uID0ge1xuICBoYXNEYXRhOiB0cnVlXG59O1xuXG4vKipcbiAqIEV4cG9ydCBNYXAgQ29uZmlnXG4gKiBAY29uc3RhbnRcbiAqIEBwcm9wZXJ0eSBIVE1MIC0gRGVmYXVsdDogJ0RFRkFVTFRfRVhQT1JUX0hUTUwnLFxuICogQHByb3BlcnR5IEpTT04gLSBEZWZhdWx0OiAnREVGQVVMVF9FWFBPUlRfSlNPTicsXG4gKiBAcHJvcGVydHkgZm9ybWF0IC0gRGVmYXVsdDogJ0hUTUwnLFxuICogQHByb3BlcnR5IGZpbGVOYW1lIERlZmF1bHQ6IGAnJ2AsXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VYUE9SVF9NQVA6IEV4cG9ydE1hcCA9IHtcbiAgW0VYUE9SVF9NQVBfRk9STUFUUy5IVE1MXTogREVGQVVMVF9FWFBPUlRfSFRNTCxcbiAgW0VYUE9SVF9NQVBfRk9STUFUUy5KU09OXTogREVGQVVMVF9FWFBPUlRfSlNPTixcbiAgZm9ybWF0OiBFWFBPUlRfTUFQX0ZPUk1BVFMuSFRNTCxcbiAgZmlsZU5hbWU6ICcnXG59O1xuXG4vKipcbiAqIERlZmF1bHQgaW5pdGlhbCBgZXhwb3J0VmlkZW9gIHNldHRpbmdzXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAY29uc3RhbnRcbiAqIEBwcm9wZXJ0eSBtZWRpYVR5cGUgRGVmYXVsdDogYCd3ZWJtJ2BcbiAqIEBwcm9wZXJ0eSBjYW1lcmFQcmVzZXQgRGVmYXVsdDogYCdOb25lJ2BcbiAqIEBwcm9wZXJ0eSBmaWxlTmFtZSBEZWZhdWx0OiBgJ2tlcGxlci5nbCdgXG4gKiBAcHJvcGVydHkgcmVzb2x1dGlvbiBEZWZhdWx0OiBgJzEyODB4NzIwJ2BcbiAqIEBwcm9wZXJ0eSBkdXJhdGlvbk1zIERlZmF1bHQ6IGAxMDAwYFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9FWFBPUlRfVklERU86IEV4cG9ydFZpZGVvID0ge1xuICBtZWRpYVR5cGU6ICd3ZWJtJywgLy8gdXNlIHdlYm0gYXMgZGVmYXVsdCBhcyBnaWYgZXhwb3J0IHRlbmRzIHRvIGZyZWV6ZSBvbiBsYXJnZXIgcmVjb3JkaW5nc1xuICBjYW1lcmFQcmVzZXQ6ICdOb25lJyxcbiAgZmlsZU5hbWU6ICdrZXBsZXIuZ2wnLFxuICByZXNvbHV0aW9uOiAnMTI4MHg3MjAnLFxuICBkdXJhdGlvbk1zOiAxMDAwLFxuICBzd2lwZVN0YXJ0UGN0OiAwLFxuICBzd2lwZUVuZFBjdDogMTAwLFxuICBzd2lwZUVhc2luZzogJ2Vhc2UtaW4tb3V0J1xufTtcblxuLyoqXG4gKiBEZWZhdWx0IGluaXRpYWwgYHVpU3RhdGVgXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAY29uc3RhbnRcbiAqIEBwcm9wZXJ0eSByZWFkT25seSBEZWZhdWx0OiBgZmFsc2VgXG4gKiBAcHJvcGVydHkgYWN0aXZlU2lkZVBhbmVsIERlZmF1bHQ6IGAnbGF5ZXInYFxuICogQHByb3BlcnR5IGN1cnJlbnRNb2RhbCBEZWZhdWx0OiBgJ2FkZERhdGEnYFxuICogQHByb3BlcnR5IGRhdGFzZXRLZXlUb1JlbW92ZSBEZWZhdWx0OiBgbnVsbGBcbiAqIEBwcm9wZXJ0eSB2aXNpYmxlRHJvcGRvd24gRGVmYXVsdDogYG51bGxgXG4gKiBAcHJvcGVydHkgZXhwb3J0SW1hZ2UgRGVmYXVsdDogW2BERUZBVUxUX0VYUE9SVF9JTUFHRWBdKCNkZWZhdWx0X2V4cG9ydF9pbWFnZSlcbiAqIEBwcm9wZXJ0eSBleHBvcnREYXRhIERlZmF1bHQ6IFtgREVGQVVMVF9FWFBPUlRfREFUQWBdKCNkZWZhdWx0X2V4cG9ydF9kYXRhKVxuICogQHByb3BlcnR5IGV4cG9ydE1hcCBEZWZhdWx0OiBbYERFRkFVTFRfRVhQT1JUX01BUGBdKCNkZWZhdWx0X2V4cG9ydF9tYXApXG4gKiBAcHJvcGVydHkgbWFwQ29udHJvbHMgRGVmYXVsdDogW2BERUZBVUxUX01BUF9DT05UUk9MU2BdKCNkZWZhdWx0X21hcF9jb250cm9scylcbiAqIEBwcm9wZXJ0eSBub3RpZmljYXRpb25zIERlZmF1bHQ6IGBbXWBcbiAqIEBwcm9wZXJ0eSBub3RpZmljYXRpb25zIERlZmF1bHQ6IGBbXWBcbiAqIEBwcm9wZXJ0eSBsb2FkRmlsZXNcbiAqIEBwcm9wZXJ0eSBsb2NhbGUgRGVmYXVsdDogYCdlbidgXG4gKiBAcHJvcGVydHkgdGhlbWUgRGVmYXVsdDogYCdkYXJrJ2BcbiAqIEBwcm9wZXJ0eSBpc1NpZGVQYW5lbENsb3NlQnV0dG9uVmlzaWJsZSBEZWZhdWx0OiBgdHJ1ZWBcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IElOSVRJQUxfVUlfU1RBVEU6IFVpU3RhdGUgPSB7XG4gIHJlYWRPbmx5OiBmYWxzZSxcbiAgYWN0aXZlU2lkZVBhbmVsOiBERUZBVUxUX0FDVElWRV9TSURFX1BBTkVMLFxuICBjdXJyZW50TW9kYWw6IERFRkFVTFRfTU9EQUwsXG4gIGRhdGFzZXRLZXlUb1JlbW92ZTogbnVsbCxcbiAgdmlzaWJsZURyb3Bkb3duOiBudWxsLFxuICAvLyBleHBvcnQgaW1hZ2UgbW9kYWwgdWlcbiAgZXhwb3J0SW1hZ2U6IERFRkFVTFRfRVhQT1JUX0lNQUdFLFxuICAvLyBleHBvcnQgZGF0YSBtb2RhbCB1aVxuICBleHBvcnREYXRhOiBERUZBVUxUX0VYUE9SVF9EQVRBLFxuICAvLyBodG1sIGV4cG9ydFxuICBleHBvcnRNYXA6IERFRkFVTFRfRVhQT1JUX01BUCxcbiAgLy8gZXhwb3J0IHZpZGVvIG1vZGFsIHVpXG4gIGV4cG9ydFZpZGVvOiBERUZBVUxUX0VYUE9SVF9WSURFTyxcbiAgLy8gbWFwIGNvbnRyb2wgcGFuZWxzXG4gIG1hcENvbnRyb2xzOiBERUZBVUxUX01BUF9DT05UUk9MUyxcbiAgLy8gdWkgbm90aWZpY2F0aW9uc1xuICBub3RpZmljYXRpb25zOiBERUZBVUxUX05PVElGSUNBVElPTlMsXG4gIC8vIGxvYWQgZmlsZXNcbiAgbG9hZEZpbGVzOiBERUZBVUxUX0xPQURfRklMRVMsXG4gIC8vIExvY2FsZSBvZiB0aGUgVUlcbiAgbG9jYWxlOiBMT0NBTEVfQ09ERVMuZW4sXG4gIC8vIFRoZW1lIG9mIHRoZSBVSSAoYGxpZ2h0YCB8IGBkYXJrYCB8IGBzcGFjZWApLiBGaXJzdCBvZiBgdGhlbWVzYCBpcyB0aGUgZGVmYXVsdCB3aGVuIHNldC5cbiAgdGhlbWU6IFRIRU1FLmRhcmssXG4gIGxheWVyUGFuZWxMaXN0VmlldzogJ2xpc3QnLFxuICBmaWx0ZXJQYW5lbExpc3RWaWV3OiAnbGlzdCcsXG4gIGlzU2lkZVBhbmVsQ2xvc2VCdXR0b25WaXNpYmxlOiB0cnVlXG59O1xuXG4vKiBVcGRhdGVycyAqL1xuLyoqXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBpbml0VWlTdGF0ZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICBhY3Rpb246IHtcbiAgICB0eXBlPzogKHR5cGVvZiBBY3Rpb25UeXBlcylbJ0lOSVQnXTtcbiAgICBwYXlsb2FkOiBLZXBsZXJHbEluaXRQYXlsb2FkO1xuICB9XG4pOiBVaVN0YXRlID0+IHtcbiAgY29uc3QgaW5pdGlhbFVpU3RhdGUgPSAoYWN0aW9uLnBheWxvYWQgfHwge30pLmluaXRpYWxVaVN0YXRlIHx8IHt9O1xuICBjb25zdCB0aGVtZXMgPSBnZXRDb25maWd1cmVkVGhlbWVzKCk7XG4gIGNvbnN0IHJlcXVlc3RlZCA9IGluaXRpYWxVaVN0YXRlLnRoZW1lID8/IHN0YXRlLnRoZW1lO1xuICBjb25zdCB0aGVtZSA9XG4gICAgdGhlbWVzLmxlbmd0aCA9PT0gMCA/IHJlcXVlc3RlZCA6IHRoZW1lcy5pbmNsdWRlcyhyZXF1ZXN0ZWQpID8gcmVxdWVzdGVkIDogZ2V0RGVmYXVsdFVpVGhlbWUoKTtcblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIC4uLmluaXRpYWxVaVN0YXRlLFxuICAgIHRoZW1lXG4gIH07XG59O1xuXG4vKipcbiAqIFRvZ2dsZSBhY3RpdmUgc2lkZSBwYW5lbFxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIGlkIG9mIHNpZGUgcGFuZWwgdG8gYmUgc2hvd24sIG9uZSBvZiBgbGF5ZXJgLCBgZmlsdGVyYCwgYGludGVyYWN0aW9uYCwgYG1hcGAuIGNsb3NlIHNpZGUgcGFuZWwgaWYgYG51bGxgXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHRvZ2dsZVNpZGVQYW5lbFVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogaWR9OiBVSVN0YXRlQWN0aW9ucy5Ub2dnbGVTaWRlUGFuZWxVcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+IHtcbiAgcmV0dXJuIGlkID09PSBzdGF0ZS5hY3RpdmVTaWRlUGFuZWxcbiAgICA/IHN0YXRlXG4gICAgOiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBhY3RpdmVTaWRlUGFuZWw6IGlkXG4gICAgICB9O1xufTtcblxuLyoqXG4gKiBTaG93IGFuZCBoaWRlIG1vZGFsIGRpYWxvZ1xuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtYWN0aW9uLnBheWxvYWQgaWQgb2YgbW9kYWwgdG8gYmUgc2hvd24sIG51bGwgdG8gaGlkZSBtb2RhbHMuIE9uZSBvZjpcbiAqICAtIFtgREFUQV9UQUJMRV9JRGBdKC4uL2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzLm1kI2RhdGFfdGFibGVfaWQpXG4gKiAgLSBbYERFTEVURV9EQVRBX0lEYF0oLi4vY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MubWQjZGVsZXRlX2RhdGFfaWQpXG4gKiAgLSBbYEFERF9EQVRBX0lEYF0oLi4vY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MubWQjYWRkX2RhdGFfaWQpXG4gKiAgLSBbYEVYUE9SVF9JTUFHRV9JRGBdKC4uL2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzLm1kI2V4cG9ydF9pbWFnZV9pZClcbiAqICAtIFtgRVhQT1JUX0RBVEFfSURgXSguLi9jb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncy5tZCNleHBvcnRfZGF0YV9pZClcbiAqICAtIFtgQUREX01BUF9TVFlMRV9JRGBdKC4uL2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzLm1kI2FkZF9tYXBfc3R5bGVfaWQpXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHRvZ2dsZU1vZGFsVXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiBpZH06IFVJU3RhdGVBY3Rpb25zLlRvZ2dsZU1vZGFsVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgY3VycmVudE1vZGFsOiBpZFxufSk7XG5cbi8qKlxuICogSGlkZSBhbmQgc2hvdyBzaWRlIHBhbmVsIGhlYWRlciBkcm9wZG93biwgYWN0aXZhdGVkIGJ5IGNsaWNraW5nIHRoZSBzaGFyZSBsaW5rIG9uIHRvcCBvZiB0aGUgc2lkZSBwYW5lbFxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2hvd0V4cG9ydERyb3Bkb3duVXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiBpZH06IFVJU3RhdGVBY3Rpb25zLlNob3dFeHBvcnREcm9wZG93blVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIHZpc2libGVEcm9wZG93bjogaWRcbn0pO1xuXG4vKipcbiAqIEhpZGUgc2lkZSBwYW5lbCBoZWFkZXIgZHJvcGRvd24sIGFjdGl2YXRlZCBieSBjbGlja2luZyB0aGUgc2hhcmUgbGluayBvbiB0b3Agb2YgdGhlIHNpZGUgcGFuZWxcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGhpZGVFeHBvcnREcm9wZG93blVwZGF0ZXIgPSAoc3RhdGU6IFVpU3RhdGUpOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICB2aXNpYmxlRHJvcGRvd246IG51bGxcbn0pO1xuXG4vKipcbiAqIFRvZ2dsZSBzaWRlIHBhbmVsIGNsb3NlIGJ1dHRvbiBvbiB0b3AgbGVmdCBvZiB0aGUgc2lkZSBwYW5lbFxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgdG9nZ2xlU2lkZVBhbmVsQ2xvc2VCdXR0b25VcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IHtzaG93fX06IFVJU3RhdGVBY3Rpb25zLlRvZ2dsZVNpZGVQYW5lbENsb3NlQnV0dG9uVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgaXNTaWRlUGFuZWxDbG9zZUJ1dHRvblZpc2libGU6IHNob3dcbn0pO1xuXG4vLyBNYXAgY29udHJvbCBkcm9wZG93bnMvbWVudXMgdGhhdCBvdmVybGFwIGVhY2ggb3RoZXIgdmlzdWFsbHkgYW5kIHRoZXJlZm9yZVxuLy8gc2hvdWxkIGJlIG11dHVhbGx5IGV4Y2x1c2l2ZTogb3BlbmluZyBvbmUgY2xvc2VzIGFsbCB0aGUgb3RoZXJzLlxuLy8gKHNwbGl0L3ZpZXctbW9kZSBtZW51LCB0b3AvM2QvZ2xvYmUgbWVudSwgcG9seWdvbiBkcmF3IHRvb2wsIGxhbmd1YWdlIG1lbnUpXG5leHBvcnQgY29uc3QgTVVUVUFMTFlfRVhDTFVTSVZFX01BUF9DT05UUk9MUzogc3RyaW5nW10gPSBbXG4gIE1BUF9DT05UUk9MUy5zcGxpdE1hcCxcbiAgTUFQX0NPTlRST0xTLnRvZ2dsZTNkLFxuICBNQVBfQ09OVFJPTFMubWFwRHJhdyxcbiAgTUFQX0NPTlRST0xTLm1hcExvY2FsZVxuXTtcblxuLyoqXG4gKiBUb2dnbGUgYWN0aXZlIG1hcCBjb250cm9sIHBhbmVsXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIG1hcCBjb250cm9sIHBhbmVsIGlkLCBvbmUgb2YgdGhlIGtleXMgb2Y6IFtgREVGQVVMVF9NQVBfQ09OVFJPTFNgXSgjZGVmYXVsdF9tYXBfY29udHJvbHMpXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHRvZ2dsZU1hcENvbnRyb2xVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IHtwYW5lbElkLCBpbmRleCA9IDB9fTogVUlTdGF0ZUFjdGlvbnMuVG9nZ2xlTWFwQ29udHJvbFVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4ge1xuICBsZXQgdXBkYXRlZFN0YXRlID0gc3RhdGU7XG5cbiAgLy8gVGhlIG92ZXJsYXBwaW5nIG1hcCBjb250cm9sIG1lbnVzIHNob3VsZCBiZSBtdXR1YWxseSBleGNsdXNpdmU6IHdoZW4gb25lIG9mXG4gIC8vIHRoZW0gaXMgYmVpbmcgb3BlbmVkLCBkZWFjdGl2YXRlIGV2ZXJ5IG90aGVyIG9uZSB0aGF0IGlzIGN1cnJlbnRseSBhY3RpdmVcbiAgLy8gc28gdGhlaXIgZHJvcGRvd25zIG5ldmVyIG92ZXJsYXAgb24gc2NyZWVuLlxuICBjb25zdCBpc09wZW5pbmcgPSAhdXBkYXRlZFN0YXRlLm1hcENvbnRyb2xzW3BhbmVsSWRdPy5hY3RpdmU7XG4gIGlmIChpc09wZW5pbmcgJiYgTVVUVUFMTFlfRVhDTFVTSVZFX01BUF9DT05UUk9MUy5pbmNsdWRlcyhwYW5lbElkKSkge1xuICAgIGNvbnN0IG5leHRNYXBDb250cm9scyA9IHsuLi51cGRhdGVkU3RhdGUubWFwQ29udHJvbHN9O1xuICAgIGxldCBkaWREZWFjdGl2YXRlID0gZmFsc2U7XG4gICAgTVVUVUFMTFlfRVhDTFVTSVZFX01BUF9DT05UUk9MUy5mb3JFYWNoKGNvbnRyb2xJZCA9PiB7XG4gICAgICBpZiAoY29udHJvbElkICE9PSBwYW5lbElkICYmIG5leHRNYXBDb250cm9sc1tjb250cm9sSWRdPy5hY3RpdmUpIHtcbiAgICAgICAgbmV4dE1hcENvbnRyb2xzW2NvbnRyb2xJZF0gPSB7Li4ubmV4dE1hcENvbnRyb2xzW2NvbnRyb2xJZF0sIGFjdGl2ZTogZmFsc2V9O1xuICAgICAgICBkaWREZWFjdGl2YXRlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoZGlkRGVhY3RpdmF0ZSkge1xuICAgICAgdXBkYXRlZFN0YXRlID0gey4uLnVwZGF0ZWRTdGF0ZSwgbWFwQ29udHJvbHM6IG5leHRNYXBDb250cm9sc307XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi51cGRhdGVkU3RhdGUsXG4gICAgbWFwQ29udHJvbHM6IHtcbiAgICAgIC4uLnVwZGF0ZWRTdGF0ZS5tYXBDb250cm9scyxcbiAgICAgIFtwYW5lbElkXToge1xuICAgICAgICAuLi4odXBkYXRlZFN0YXRlLm1hcENvbnRyb2xzW3BhbmVsSWRdIGFzIE1hcENvbnRyb2xJdGVtKSxcbiAgICAgICAgYWN0aXZlOiAhdXBkYXRlZFN0YXRlLm1hcENvbnRyb2xzW3BhbmVsSWRdPy5hY3RpdmUsXG4gICAgICAgIGFjdGl2ZU1hcEluZGV4OiBpbmRleFxuICAgICAgfVxuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogVG9nZ2xlIG1hcCBjb250cm9sIHZpc2liaWxpdHlcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgdWlTdGF0ZWBcbiAqIEBwYXJhbSBhY3Rpb24gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQgbWFwIGNvbnRyb2wgcGFuZWwgaWQsIG9uZSBvZiB0aGUga2V5cyBvZjogW2BERUZBVUxUX01BUF9DT05UUk9MU2BdKCNkZWZhdWx0X21hcF9jb250cm9scylcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0TWFwQ29udHJvbFZpc2liaWxpdHlVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IHtwYW5lbElkLCBzaG93fX06IFVJU3RhdGVBY3Rpb25zLnNldE1hcENvbnRyb2xWaXNpYmlsaXR5VXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiB7XG4gIGlmICghc3RhdGUubWFwQ29udHJvbHM/LltwYW5lbElkXSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFwQ29udHJvbHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hcENvbnRyb2xzLFxuICAgICAgW3BhbmVsSWRdOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hcENvbnRyb2xzW3BhbmVsSWRdLFxuICAgICAgICBzaG93OiBCb29sZWFuKHNob3cpXG4gICAgICB9XG4gICAgfVxuICB9O1xufTtcblxuLyoqXG4gKiBUb2dnbGUgbWFwIGNvbnRyb2wgc2V0dGluZ3NcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgdWlTdGF0ZWBcbiAqIEBwYXJhbSBhY3Rpb24gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQgbWFwIGNvbnRyb2wgcGFuZWwgaWQsIG9uZSBvZiB0aGUga2V5cyBvZjogW2BERUZBVUxUX01BUF9DT05UUk9MU2BdKCNkZWZhdWx0X21hcF9jb250cm9scylcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0TWFwQ29udHJvbFNldHRpbmdzVXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiB7cGFuZWxJZCwgc2V0dGluZ3N9fTogVUlTdGF0ZUFjdGlvbnMuc2V0TWFwQ29udHJvbFNldHRpbmdzVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiB7XG4gIGNvbnN0IG1hcENvbnRyb2wgPSBzdGF0ZS5tYXBDb250cm9scz8uW3BhbmVsSWRdIGFzIE1hcENvbnRyb2xNYXBMZWdlbmQgfCB1bmRlZmluZWQ7XG4gIGlmICghbWFwQ29udHJvbCkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFwQ29udHJvbHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hcENvbnRyb2xzLFxuICAgICAgW3BhbmVsSWRdOiB7XG4gICAgICAgIC4uLm1hcENvbnRyb2wsXG4gICAgICAgIHNldHRpbmdzOiB7Li4ubWFwQ29udHJvbC5zZXR0aW5ncywgLi4uc2V0dGluZ3N9XG4gICAgICB9IGFzIE1hcENvbnRyb2xNYXBMZWdlbmRcbiAgICB9XG4gIH07XG59O1xuXG4vKipcbiAqIFRvZ2dsZSBhY3RpdmUgbWFwIGNvbnRyb2wgcGFuZWxcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgdWlTdGF0ZWBcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEBwYXJhbSBhY3Rpb24ucGF5bG9hZCBkYXRhc2V0IGlkXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IG9wZW5EZWxldGVNb2RhbFVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogZGF0YXNldEtleVRvUmVtb3ZlfTogVUlTdGF0ZUFjdGlvbnMuT3BlbkRlbGV0ZU1vZGFsVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgY3VycmVudE1vZGFsOiBERUxFVEVfREFUQV9JRCxcbiAgZGF0YXNldEtleVRvUmVtb3ZlXG59KTtcblxuLyoqXG4gKiBTZXQgYGV4cG9ydEltYWdlYCBvcHRpb25zIHN1Y2ggYXMgYGxlZ2VuZGAgYW5kIGBjaGFydHNgIHRvIGB0cnVlYCBvciBgZmFsc2VgXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldEV4cG9ydEltYWdlU2V0dGluZ1VwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogbmV3U2V0dGluZ306IFVJU3RhdGVBY3Rpb25zLlNldEV4cG9ydEltYWdlU2V0dGluZ1VwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4ge1xuICBjb25zdCB1cGRhdGVkID0gey4uLnN0YXRlLmV4cG9ydEltYWdlLCAuLi5uZXdTZXR0aW5nfTtcbiAgY29uc3QgaW1hZ2VTaXplID0gY2FsY3VsYXRlRXhwb3J0SW1hZ2VTaXplKHVwZGF0ZWQpIHx8IHN0YXRlLmV4cG9ydEltYWdlLmltYWdlU2l6ZTtcblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIGV4cG9ydEltYWdlOiB7XG4gICAgICAuLi51cGRhdGVkLFxuICAgICAgaW1hZ2VTaXplXG4gICAgfVxuICB9O1xufTtcblxuLyoqXG4gKiBTZXQgYGV4cG9ydEltYWdlLnNldEV4cG9ydEltYWdlRGF0YVVyaWAgdG8gYSBpbWFnZSBkYXRhVXJpXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQgZXhwb3J0IGltYWdlIGRhdGEgdXJpXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldEV4cG9ydEltYWdlRGF0YVVyaVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogZGF0YVVyaX06IFVJU3RhdGVBY3Rpb25zLlNldEV4cG9ydEltYWdlRGF0YVVyaVVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4ge1xuICBpZiAoZGF0YVVyaSA9PT0gc3RhdGUuZXhwb3J0SW1hZ2UuaW1hZ2VEYXRhVXJpKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgZXhwb3J0SW1hZ2U6IHtcbiAgICAgIC4uLnN0YXRlLmV4cG9ydEltYWdlLFxuICAgICAgcHJvY2Vzc2luZzogZmFsc2UsXG4gICAgICBpbWFnZURhdGFVcmk6IGRhdGFVcmlcbiAgICB9XG4gIH07XG59O1xuXG4vKipcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldEV4cG9ydEltYWdlRXJyb3JVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IGVycm9yfTogVUlTdGF0ZUFjdGlvbnMuU2V0RXhwb3J0SW1hZ2VFcnJvclVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGV4cG9ydEltYWdlOiB7XG4gICAgLi4uc3RhdGUuZXhwb3J0SW1hZ2UsXG4gICAgcHJvY2Vzc2luZzogZmFsc2UsXG4gICAgZXJyb3JcbiAgfVxufSk7XG5cbi8qKlxuICogRGVsZXRlIGNhY2hlZCBleHBvcnQgaW1hZ2VcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGNsZWFudXBFeHBvcnRJbWFnZVVwZGF0ZXIgPSAoc3RhdGU6IFVpU3RhdGUpOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICBleHBvcnRJbWFnZToge1xuICAgIC4uLnN0YXRlLmV4cG9ydEltYWdlLFxuICAgIGV4cG9ydGluZzogZmFsc2UsXG4gICAgaW1hZ2VEYXRhVXJpOiAnJyxcbiAgICBlcnJvcjogZmFsc2UsXG4gICAgcHJvY2Vzc2luZzogZmFsc2UsXG4gICAgY2VudGVyOiBmYWxzZVxuICB9XG59KTtcblxuLyoqXG4gKiBTZXQgYGV4cG9ydFZpZGVvYCBzZXR0aW5nczogbWVkaWFUeXBlLCBjYW1lcmFQcmVzZXQsIGZpbGVOYW1lLCByZXNvbHV0aW9uLCBkdXJhdGlvbk1zXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQgbmV3IHZpZGVvIGV4cG9ydCBzZXR0aW5nc1xuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRFeHBvcnRWaWRlb1NldHRpbmdVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IG5ld1NldHRpbmd9OiBVSVN0YXRlQWN0aW9ucy5TZXRFeHBvcnRWaWRlb1NldHRpbmdVcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICBleHBvcnRWaWRlbzoge1xuICAgIC4uLnN0YXRlLmV4cG9ydFZpZGVvLFxuICAgIC4uLm5ld1NldHRpbmdcbiAgfVxufSk7XG5cbi8qKlxuICogU3RhcnQgaW1hZ2UgZXhwb3J0aW5nIGZsb3dcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZVxuICogQHBhcmFtIG9wdGlvbnNcbiAqIEByZXR1cm5zIHtVaVN0YXRlfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc3RhcnRFeHBvcnRpbmdJbWFnZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogb3B0aW9ucyA9IHt9fToge3BheWxvYWQ6IFBhcnRpYWw8RXhwb3J0SW1hZ2U+fVxuKTogVWlTdGF0ZSA9PiB7XG4gIGNvbnN0IGltYWdlU2V0dGluZ3MgPSB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBleHBvcnRpbmc6IHRydWVcbiAgfTtcblxuICByZXR1cm4gY29tcG9zZV8oW1xuICAgIGNsZWFudXBFeHBvcnRJbWFnZVVwZGF0ZXIsXG4gICAgYXBwbHlfKHNldEV4cG9ydEltYWdlU2V0dGluZ1VwZGF0ZXIsIHBheWxvYWRfKGltYWdlU2V0dGluZ3MpKVxuICBdKShzdGF0ZSk7XG59O1xuXG4vKipcbiAqIFNldCBzZWxlY3RlZCBkYXRhc2V0IGZvciBleHBvcnRcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgdWlTdGF0ZWBcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEBwYXJhbSBhY3Rpb24ucGF5bG9hZCBkYXRhc2V0IGlkXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldEV4cG9ydFNlbGVjdGVkRGF0YXNldFVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogZGF0YXNldH06IFVJU3RhdGVBY3Rpb25zLlNldEV4cG9ydFNlbGVjdGVkRGF0YXNldFVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGV4cG9ydERhdGE6IHtcbiAgICAuLi5zdGF0ZS5leHBvcnREYXRhLFxuICAgIHNlbGVjdGVkRGF0YXNldDogZGF0YXNldFxuICB9XG59KTtcblxuLyoqXG4gKiBTZXQgZGF0YSBmb3JtYXQgZm9yIGV4cG9ydGluZyBkYXRhXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQgb25lIG9mIGAndGV4dC9jc3YnYFxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRFeHBvcnREYXRhVHlwZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogZGF0YVR5cGV9OiBVSVN0YXRlQWN0aW9ucy5TZXRFeHBvcnREYXRhVHlwZVVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGV4cG9ydERhdGE6IHtcbiAgICAuLi5zdGF0ZS5leHBvcnREYXRhLFxuICAgIGRhdGFUeXBlXG4gIH1cbn0pO1xuXG4vKipcbiAqIFdoZXRoZXIgdG8gZXhwb3J0IGZpbHRlcmVkIGRhdGEsIGB0cnVlYCBvciBgZmFsc2VgXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWRcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0RXhwb3J0RmlsdGVyZWRVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IGZpbHRlcmVkfTogVUlTdGF0ZUFjdGlvbnMuU2V0RXhwb3J0RmlsdGVyZWRVcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICBleHBvcnREYXRhOiB7XG4gICAgLi4uc3RhdGUuZXhwb3J0RGF0YSxcbiAgICBmaWx0ZXJlZFxuICB9XG59KTtcblxuLyoqXG4gKiBXaGV0aGVyIHRvIGluY2x1ZGluZyBkYXRhIGluIG1hcCBjb25maWcsIHRvZ2dsZSBiZXR3ZWVuIGB0cnVlYCBvciBgZmFsc2VgXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldEV4cG9ydERhdGFVcGRhdGVyID0gKHN0YXRlOiBVaVN0YXRlKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgZXhwb3J0TWFwOiB7XG4gICAgLi4uc3RhdGUuZXhwb3J0TWFwLFxuICAgIFtFWFBPUlRfTUFQX0ZPUk1BVFMuSlNPTl06IHtcbiAgICAgIC4uLnN0YXRlLmV4cG9ydE1hcFtFWFBPUlRfTUFQX0ZPUk1BVFMuSlNPTl0sXG4gICAgICBoYXNEYXRhOiAhc3RhdGUuZXhwb3J0TWFwW0VYUE9SVF9NQVBfRk9STUFUUy5KU09OXS5oYXNEYXRhXG4gICAgfVxuICB9XG59KTtcblxuLyoqXG4gKiB3aGV0aGVyIHRvIGV4cG9ydCBhIG1hcGJveCBhY2Nlc3MgdG8gSFRNTCBzaW5nbGUgcGFnZVxuICogQHBhcmFtIHN0YXRlIC0gYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWRcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0VXNlck1hcGJveEFjY2Vzc1Rva2VuVXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiB1c2VyTWFwYm94VG9rZW59OiBVSVN0YXRlQWN0aW9ucy5TZXRVc2VyTWFwYm94QWNjZXNzVG9rZW5VcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICBleHBvcnRNYXA6IHtcbiAgICAuLi5zdGF0ZS5leHBvcnRNYXAsXG4gICAgW0VYUE9SVF9NQVBfRk9STUFUUy5IVE1MXToge1xuICAgICAgLi4uc3RhdGUuZXhwb3J0TWFwW0VYUE9SVF9NQVBfRk9STUFUUy5IVE1MXSxcbiAgICAgIHVzZXJNYXBib3hUb2tlblxuICAgIH1cbiAgfVxufSk7XG5cbi8qKlxuICogU2V0cyB0aGUgZXhwb3J0IG1hcCBmb3JtYXRcbiAqIEBwYXJhbSBzdGF0ZSAtIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIGZvcm1hdCB0byB1c2UgdG8gZXhwb3J0IHRoZSBtYXAgaW50b1xuICogQHJldHVybiBuZXh0U3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHNldEV4cG9ydE1hcEZvcm1hdFVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogZm9ybWF0fTogVUlTdGF0ZUFjdGlvbnMuU2V0RXhwb3J0TWFwRm9ybWF0VXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgZXhwb3J0TWFwOiB7XG4gICAgLi4uc3RhdGUuZXhwb3J0TWFwLFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBmb3JtYXRcbiAgfVxufSk7XG5cbi8qKlxuICogU2V0IHRoZSBmaWxlbmFtZSB1c2VkIHdoZW4gZXhwb3J0aW5nIGFuIEhUTUwgb3IgSlNPTiBtYXBcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgdWlTdGF0ZWBcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEBwYXJhbSBhY3Rpb24ucGF5bG9hZCBmaWxlIG5hbWUgd2l0aG91dCBleHRlbnNpb25cbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0RXhwb3J0TWFwRmlsZU5hbWVVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IGZpbGVOYW1lfTogVUlTdGF0ZUFjdGlvbnMuU2V0RXhwb3J0TWFwRmlsZU5hbWVVcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICBleHBvcnRNYXA6IHtcbiAgICAuLi5zdGF0ZS5leHBvcnRNYXAsXG4gICAgZmlsZU5hbWVcbiAgfVxufSk7XG5cbi8qKlxuICogU2V0IHRoZSBleHBvcnQgaHRtbCBtYXAgbW9kZVxuICogQHBhcmFtIHN0YXRlIC0gYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQgdG8gYmUgc2V0IChhdmFpbGFibGUgbW9kZXM6IEVYUE9SVF9IVE1MX01BUF9NT0RFUylcbiAqIEByZXR1cm4gbmV4dFN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRFeHBvcnRNYXBIVE1MTW9kZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogbW9kZX06IFVJU3RhdGVBY3Rpb25zLlNldEV4cG9ydEhUTUxNYXBNb2RlVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgZXhwb3J0TWFwOiB7XG4gICAgLi4uc3RhdGUuZXhwb3J0TWFwLFxuICAgIFtFWFBPUlRfTUFQX0ZPUk1BVFMuSFRNTF06IHtcbiAgICAgIC4uLnN0YXRlLmV4cG9ydE1hcFtFWFBPUlRfTUFQX0ZPUk1BVFMuSFRNTF0sXG4gICAgICBtb2RlXG4gICAgfVxuICB9XG59KTtcblxuLyoqXG4gKiBBZGRzIGEgbmV3IG5vdGlmaWNhdGlvbi5cbiAqIFVwZGF0ZXMgYSBub3RpZmljYXRpb24gaW4gY2FzZSBvZiBtYXRjaGluZyBpZHMuXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQgUGFyYW1zIG9mIGEgbm90aWZpY2F0aW9uXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZE5vdGlmaWNhdGlvblVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZH06IFVJU3RhdGVBY3Rpb25zLkFkZE5vdGlmaWNhdGlvblVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4ge1xuICBjb25zdCBvbGROb3RpZmljYXRpb25zID0gc3RhdGUubm90aWZpY2F0aW9ucyB8fCBbXTtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICBjb25zdCBwYXlsb2FkSWQgPSBwYXlsb2FkPy5pZDtcbiAgY29uc3Qgbm90aWZpY2F0aW9uVG9VcGRhdGUgPSBwYXlsb2FkSWQgPyBvbGROb3RpZmljYXRpb25zLmZpbmQobiA9PiBuLmlkID09PSBwYXlsb2FkSWQpIDogbnVsbDtcblxuICBsZXQgbm90aWZpY2F0aW9ucztcbiAgaWYgKG5vdGlmaWNhdGlvblRvVXBkYXRlKSB7XG4gICAgbm90aWZpY2F0aW9ucyA9IG9sZE5vdGlmaWNhdGlvbnMubWFwKG4gPT5cbiAgICAgIG4uaWQgPT09IHBheWxvYWRJZCA/IGNyZWF0ZU5vdGlmaWNhdGlvbih7Li4ucGF5bG9hZCwgY291bnQ6IG4uY291bnQgKyAxfSkgOiBuXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBub3RpZmljYXRpb25zID0gWy4uLm9sZE5vdGlmaWNhdGlvbnMsIGNyZWF0ZU5vdGlmaWNhdGlvbihwYXlsb2FkKV07XG4gIH1cblxuICByZXR1cm4gey4uLnN0YXRlLCBub3RpZmljYXRpb25zfTtcbn07XG5cbi8qKlxuICogUmVtb3ZlIGEgbm90aWZpY2F0aW9uXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQgaWQgb2YgdGhlIG5vdGlmaWNhdGlvbiB0byBiZSByZW1vdmVkXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlbW92ZU5vdGlmaWNhdGlvblVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogaWR9OiBVSVN0YXRlQWN0aW9ucy5SZW1vdmVOb3RpZmljYXRpb25VcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICBub3RpZmljYXRpb25zOiBzdGF0ZS5ub3RpZmljYXRpb25zLmZpbHRlcihuID0+IG4uaWQgIT09IGlkKVxufSk7XG5cbi8qKlxuICogRmlyZWQgd2hlbiBmaWxlIGxvYWRpbmcgYmVnaW5cbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgdWlTdGF0ZWBcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgbG9hZEZpbGVzVXBkYXRlciA9IChzdGF0ZTogVWlTdGF0ZSk6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGxvYWRGaWxlczoge1xuICAgIC4uLnN0YXRlLmxvYWRGaWxlcyxcbiAgICBmaWxlTG9hZGluZzogdHJ1ZVxuICB9XG59KTtcblxuLyoqXG4gKiBIYW5kbGVzIGxvYWRpbmcgZmlsZSBzdWNjZXNzIGFuZCBzZXQgZmlsZUxvYWRpbmcgcHJvcGVydHkgdG8gZmFsc2VcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgdWlTdGF0ZWBcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICovXG5leHBvcnQgY29uc3QgbG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXIgPSAoc3RhdGU6IFVpU3RhdGUpOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICBsb2FkRmlsZXM6IHtcbiAgICAuLi5zdGF0ZS5sb2FkRmlsZXMsXG4gICAgZmlsZUxvYWRpbmc6IGZhbHNlXG4gIH1cbn0pO1xuXG4vKipcbiAqIEhhbmRsZXMgbG9hZCBmaWxlIGVycm9yIGFuZCBzZXQgZmlsZUxvYWRpbmcgcHJvcGVydHkgdG8gZmFsc2VcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZVxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5lcnJvclxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBsb2FkRmlsZXNFcnJVcGRhdGVyID0gKHN0YXRlOiBVaVN0YXRlLCB7ZXJyb3J9OiBMb2FkRmlsZXNFcnJVcGRhdGVyQWN0aW9uKTogVWlTdGF0ZSA9PlxuICBhZGROb3RpZmljYXRpb25VcGRhdGVyKFxuICAgIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbG9hZEZpbGVzOiB7XG4gICAgICAgIC4uLnN0YXRlLmxvYWRGaWxlcyxcbiAgICAgICAgZmlsZUxvYWRpbmc6IGZhbHNlXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBwYXlsb2FkOiBlcnJvck5vdGlmaWNhdGlvbih7XG4gICAgICAgIG1lc3NhZ2U6IChlcnJvciB8fCB7fSkubWVzc2FnZSB8fCAnRmFpbGVkIHRvIHVwbG9hZCBmaWxlcycsXG4gICAgICAgIHRvcGljOiBERUZBVUxUX05PVElGSUNBVElPTl9UT1BJQ1MuZ2xvYmFsXG4gICAgICB9KVxuICAgIH1cbiAgKTtcblxuLyoqXG4gKiBIYW5kbGVzIHRvZ2dsZSBtYXAgc3BsaXQgYW5kIHJlc2V0IGFsbCBtYXAgY29udHJvbCBpbmRleCB0byAwXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGVcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgdG9nZ2xlU3BsaXRNYXBVcGRhdGVyID0gKHN0YXRlOiBVaVN0YXRlKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgbWFwQ29udHJvbHM6IE9iamVjdC5lbnRyaWVzKHN0YXRlLm1hcENvbnRyb2xzKS5yZWR1Y2UoXG4gICAgKGFjYywgZW50cnkpID0+ICh7XG4gICAgICAuLi5hY2MsXG4gICAgICBbZW50cnlbMF1dOiB7XG4gICAgICAgIC4uLihlbnRyeVsxXSBhcyBNYXBDb250cm9sSXRlbSksXG4gICAgICAgIGFjdGl2ZU1hcEluZGV4OiAwXG4gICAgICB9XG4gICAgfSksXG4gICAge30gYXMgTWFwQ29udHJvbHNcbiAgKVxufSk7XG5cbi8qKlxuICogVG9nZ2xlIG1vZGFsIGRhdGFcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZVxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzaG93RGF0YXNldFRhYmxlVXBkYXRlciA9IChzdGF0ZTogVWlTdGF0ZSk6IFVpU3RhdGUgPT5cbiAgdG9nZ2xlTW9kYWxVcGRhdGVyKHN0YXRlLCB7cGF5bG9hZDogREFUQV9UQUJMRV9JRH0pO1xuXG4vKipcbiAqIFNldCB0aGUgbG9jYWxlIG9mIHRoZSBVSVxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQubG9jYWxlIGxvY2FsZVxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRMb2NhbGVVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IHtsb2NhbGV9fTogVUlTdGF0ZUFjdGlvbnMuU2V0TG9jYWxlVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgbG9jYWxlXG59KTtcblxuLyoqXG4gKiBTZXQgdGhlIHRoZW1lIG9mIHRoZSBVSVxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQudGhlbWUgdGhlbWVcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0VGhlbWVVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IHt0aGVtZX19OiBVSVN0YXRlQWN0aW9ucy5TZXRUaGVtZVVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIHRoZW1lXG59KTtcblxuLyoqXG4gKiBUb2dnbGUgbGF5ZXIgcGFuZWwgbGlzdCB2aWV3XG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQgbGF5ZXIgcGFuZWwgbGlzdFZpZXcgdmFsdWUuIENhbiBiZSAnbGlzdCcgb3IgJ3NvcnRCeURhdGFzZXQnXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHRvZ2dsZVBhbmVsTGlzdFZpZXdVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IHtwYW5lbElkLCBsaXN0Vmlld319OiBVSVN0YXRlQWN0aW9ucy5Ub2dnbGVQYW5lbExpc3RWaWV3QWN0aW9uXG4pOiBVaVN0YXRlID0+IHtcbiAgY29uc3Qgc3RhdGVQcm9wID1cbiAgICBwYW5lbElkID09PSAnbGF5ZXInXG4gICAgICA/ICdsYXllclBhbmVsTGlzdFZpZXcnXG4gICAgICA6IHBhbmVsSWQgPT09ICdmaWx0ZXInXG4gICAgICA/ICdmaWx0ZXJQYW5lbExpc3RWaWV3J1xuICAgICAgOiBudWxsO1xuICBpZiAoIXN0YXRlUHJvcCB8fCBzdGF0ZVtzdGF0ZVByb3BdID09PSBsaXN0Vmlldykge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIFtzdGF0ZVByb3BdOiBsaXN0Vmlld1xuICB9O1xufTtcblxuLyoqXG4gKiBNZXJnZSByZWNlaXZlZCB1aSBzdGF0ZSBjb25maWcgd2hlbiBsb2FkaW5nIGEgc2F2ZWQgbWFwXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQgc2F2ZWQgbWFwIGNvbmZpZyBge21hcFN0eWxlLCB2aXNTdGF0ZSwgbWFwU3RhdGUsIHVpU3RhdGV9YFxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCByZWNlaXZlTWFwQ29uZmlnVXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtcbiAgICBwYXlsb2FkOiB7Y29uZmlnfVxuICB9OiB7XG4gICAgdHlwZT86ICh0eXBlb2YgQWN0aW9uVHlwZXMpWydSRUNFSVZFX01BUF9DT05GSUcnXTtcbiAgICBwYXlsb2FkOiBSZWNlaXZlTWFwQ29uZmlnUGF5bG9hZDtcbiAgfVxuKTogVWlTdGF0ZSA9PiB7XG4gIGNvbnN0IHt1aVN0YXRlfSA9IGNvbmZpZyB8fCB7fTtcbiAgaWYgKCF1aVN0YXRlKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgbGV0IG5ld1N0YXRlID0gc3RhdGU7XG5cbiAgaWYgKHVpU3RhdGUubWFwQ29udHJvbHM/Lm1hcExlZ2VuZD8uYWN0aXZlKSB7XG4gICAgY29uc3QgY3VycmVudExlZ2VuZCA9IG5ld1N0YXRlLm1hcENvbnRyb2xzLm1hcExlZ2VuZDtcbiAgICBuZXdTdGF0ZSA9IHtcbiAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgbWFwQ29udHJvbHM6IHtcbiAgICAgICAgLi4ubmV3U3RhdGUubWFwQ29udHJvbHMsXG4gICAgICAgIG1hcExlZ2VuZDoge1xuICAgICAgICAgIHNob3c6IHRydWUsXG4gICAgICAgICAgLi4uY3VycmVudExlZ2VuZCxcbiAgICAgICAgICBhY3RpdmU6IHRydWUsXG4gICAgICAgICAgYWN0aXZlTWFwSW5kZXg6IDBcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBpZiAodWlTdGF0ZS5tYXBDb250cm9scz8uY2hhcnQ/LmFjdGl2ZSkge1xuICAgIGNvbnN0IGN1cnJlbnRDaGFydCA9IG5ld1N0YXRlLm1hcENvbnRyb2xzLmNoYXJ0O1xuICAgIG5ld1N0YXRlID0ge1xuICAgICAgLi4ubmV3U3RhdGUsXG4gICAgICBtYXBDb250cm9sczoge1xuICAgICAgICAuLi5uZXdTdGF0ZS5tYXBDb250cm9scyxcbiAgICAgICAgY2hhcnQ6IHtcbiAgICAgICAgICBzaG93OiB0cnVlLFxuICAgICAgICAgIC4uLmN1cnJlbnRDaGFydCxcbiAgICAgICAgICBhY3RpdmU6IHRydWUsXG4gICAgICAgICAgYWN0aXZlTWFwSW5kZXg6IDBcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBpZiAodWlTdGF0ZS5tYXBDb250cm9scz8ubWFwTGVnZW5kPy5zZXR0aW5ncykge1xuICAgIG5ld1N0YXRlID0gc2V0TWFwQ29udHJvbFNldHRpbmdzVXBkYXRlcihuZXdTdGF0ZSwge1xuICAgICAgcGF5bG9hZDoge3BhbmVsSWQ6ICdtYXBMZWdlbmQnLCBzZXR0aW5nczogdWlTdGF0ZS5tYXBDb250cm9scy5tYXBMZWdlbmQuc2V0dGluZ3N9XG4gICAgfSBhcyBVSVN0YXRlQWN0aW9ucy5zZXRNYXBDb250cm9sU2V0dGluZ3NVcGRhdGVyQWN0aW9uKTtcbiAgfVxuXG4gIGlmICh1aVN0YXRlLmxvY2FsZSkge1xuICAgIG5ld1N0YXRlID0gc2V0TG9jYWxlVXBkYXRlcihuZXdTdGF0ZSwge1xuICAgICAgcGF5bG9hZDoge2xvY2FsZTogdWlTdGF0ZS5sb2NhbGV9XG4gICAgfSBhcyBVSVN0YXRlQWN0aW9ucy5TZXRMb2NhbGVVcGRhdGVyQWN0aW9uKTtcbiAgfVxuXG4gIGlmICh1aVN0YXRlLnRoZW1lKSB7XG4gICAgbmV3U3RhdGUgPSBzZXRUaGVtZVVwZGF0ZXIobmV3U3RhdGUsIHtcbiAgICAgIHBheWxvYWQ6IHt0aGVtZTogdWlTdGF0ZS50aGVtZX1cbiAgICB9IGFzIFVJU3RhdGVBY3Rpb25zLlNldFRoZW1lVXBkYXRlckFjdGlvbik7XG4gIH1cblxuICByZXR1cm4gbmV3U3RhdGU7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7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
|
package/dist/cjs/ui-state.js
CHANGED
|
@@ -19,7 +19,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
19
19
|
* Important: Do not rename `actionHandler` or the assignment pattern of property value.
|
|
20
20
|
* It is used to generate documentation
|
|
21
21
|
*/
|
|
22
|
-
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.INIT, uiStateUpdaters.initUiStateUpdater), _actions.ActionTypes.TOGGLE_SIDE_PANEL, uiStateUpdaters.toggleSidePanelUpdater), _actions.ActionTypes.TOGGLE_MODAL, uiStateUpdaters.toggleModalUpdater), _actions.ActionTypes.SHOW_EXPORT_DROPDOWN, uiStateUpdaters.showExportDropdownUpdater), _actions.ActionTypes.HIDE_EXPORT_DROPDOWN, uiStateUpdaters.hideExportDropdownUpdater), _actions.ActionTypes.TOGGLE_SIDE_PANEL_CLOSE_BUTTON, uiStateUpdaters.toggleSidePanelCloseButtonUpdater), _actions.ActionTypes.OPEN_DELETE_MODAL, uiStateUpdaters.openDeleteModalUpdater), _actions.ActionTypes.TOGGLE_MAP_CONTROL, uiStateUpdaters.toggleMapControlUpdater), _actions.ActionTypes.SET_MAP_CONTROL_VISIBILITY, uiStateUpdaters.setMapControlVisibilityUpdater), _actions.ActionTypes.SET_MAP_CONTROL_SETTINGS, uiStateUpdaters.setMapControlSettingsUpdater), (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_NOTIFICATION, uiStateUpdaters.addNotificationUpdater), _actions.ActionTypes.REMOVE_NOTIFICATION, uiStateUpdaters.removeNotificationUpdater), _actions.ActionTypes.SET_EXPORT_IMAGE_SETTING, uiStateUpdaters.setExportImageSettingUpdater), _actions.ActionTypes.SET_EXPORT_IMAGE_DATA_URI, uiStateUpdaters.setExportImageDataUriUpdater), _actions.ActionTypes.SET_EXPORT_IMAGE_ERROR, uiStateUpdaters.setExportImageErrorUpdater), _actions.ActionTypes.CLEANUP_EXPORT_IMAGE, uiStateUpdaters.cleanupExportImageUpdater), _actions.ActionTypes.START_EXPORTING_IMAGE, uiStateUpdaters.startExportingImageUpdater), _actions.ActionTypes.SET_EXPORT_VIDEO_SETTING, uiStateUpdaters.setExportVideoSettingUpdater), _actions.ActionTypes.SET_EXPORT_SELECTED_DATASET, uiStateUpdaters.setExportSelectedDatasetUpdater), _actions.ActionTypes.SET_EXPORT_DATA_TYPE, uiStateUpdaters.setExportDataTypeUpdater), (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.SET_EXPORT_FILTERED, uiStateUpdaters.setExportFilteredUpdater), _actions.ActionTypes.SET_EXPORT_DATA, uiStateUpdaters.setExportDataUpdater), _actions.ActionTypes.SET_USER_MAPBOX_ACCESS_TOKEN, uiStateUpdaters.setUserMapboxAccessTokenUpdater), _actions.ActionTypes.SET_EXPORT_MAP_FORMAT, uiStateUpdaters.setExportMapFormatUpdater), _actions.ActionTypes.SET_EXPORT_MAP_HTML_MODE, uiStateUpdaters.setExportMapHTMLModeUpdater), _actions.ActionTypes.
|
|
22
|
+
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.INIT, uiStateUpdaters.initUiStateUpdater), _actions.ActionTypes.TOGGLE_SIDE_PANEL, uiStateUpdaters.toggleSidePanelUpdater), _actions.ActionTypes.TOGGLE_MODAL, uiStateUpdaters.toggleModalUpdater), _actions.ActionTypes.SHOW_EXPORT_DROPDOWN, uiStateUpdaters.showExportDropdownUpdater), _actions.ActionTypes.HIDE_EXPORT_DROPDOWN, uiStateUpdaters.hideExportDropdownUpdater), _actions.ActionTypes.TOGGLE_SIDE_PANEL_CLOSE_BUTTON, uiStateUpdaters.toggleSidePanelCloseButtonUpdater), _actions.ActionTypes.OPEN_DELETE_MODAL, uiStateUpdaters.openDeleteModalUpdater), _actions.ActionTypes.TOGGLE_MAP_CONTROL, uiStateUpdaters.toggleMapControlUpdater), _actions.ActionTypes.SET_MAP_CONTROL_VISIBILITY, uiStateUpdaters.setMapControlVisibilityUpdater), _actions.ActionTypes.SET_MAP_CONTROL_SETTINGS, uiStateUpdaters.setMapControlSettingsUpdater), (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_NOTIFICATION, uiStateUpdaters.addNotificationUpdater), _actions.ActionTypes.REMOVE_NOTIFICATION, uiStateUpdaters.removeNotificationUpdater), _actions.ActionTypes.SET_EXPORT_IMAGE_SETTING, uiStateUpdaters.setExportImageSettingUpdater), _actions.ActionTypes.SET_EXPORT_IMAGE_DATA_URI, uiStateUpdaters.setExportImageDataUriUpdater), _actions.ActionTypes.SET_EXPORT_IMAGE_ERROR, uiStateUpdaters.setExportImageErrorUpdater), _actions.ActionTypes.CLEANUP_EXPORT_IMAGE, uiStateUpdaters.cleanupExportImageUpdater), _actions.ActionTypes.START_EXPORTING_IMAGE, uiStateUpdaters.startExportingImageUpdater), _actions.ActionTypes.SET_EXPORT_VIDEO_SETTING, uiStateUpdaters.setExportVideoSettingUpdater), _actions.ActionTypes.SET_EXPORT_SELECTED_DATASET, uiStateUpdaters.setExportSelectedDatasetUpdater), _actions.ActionTypes.SET_EXPORT_DATA_TYPE, uiStateUpdaters.setExportDataTypeUpdater), (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.SET_EXPORT_FILTERED, uiStateUpdaters.setExportFilteredUpdater), _actions.ActionTypes.SET_EXPORT_DATA, uiStateUpdaters.setExportDataUpdater), _actions.ActionTypes.SET_USER_MAPBOX_ACCESS_TOKEN, uiStateUpdaters.setUserMapboxAccessTokenUpdater), _actions.ActionTypes.SET_EXPORT_MAP_FORMAT, uiStateUpdaters.setExportMapFormatUpdater), _actions.ActionTypes.SET_EXPORT_MAP_HTML_MODE, uiStateUpdaters.setExportMapHTMLModeUpdater), _actions.ActionTypes.SET_EXPORT_MAP_FILE_NAME, uiStateUpdaters.setExportMapFileNameUpdater), _actions.ActionTypes.LOAD_FILES, uiStateUpdaters.loadFilesUpdater), _actions.ActionTypes.LOAD_FILES_ERR, uiStateUpdaters.loadFilesErrUpdater), _actions.ActionTypes.TOGGLE_SPLIT_MAP, uiStateUpdaters.toggleSplitMapUpdater), _actions.ActionTypes.SHOW_DATASET_TABLE, uiStateUpdaters.showDatasetTableUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.SET_LOCALE, uiStateUpdaters.setLocaleUpdater), _actions.ActionTypes.SET_THEME, uiStateUpdaters.setThemeUpdater), _actions.ActionTypes.TOGGLE_PANEL_LIST_VIEW, uiStateUpdaters.togglePanelListViewUpdater), _actions.ActionTypes.RECEIVE_MAP_CONFIG, uiStateUpdaters.receiveMapConfigUpdater));
|
|
23
23
|
|
|
24
24
|
/* Reducer */
|
|
25
25
|
var uiStateReducerFactory = exports.uiStateReducerFactory = function uiStateReducerFactory() {
|
|
@@ -33,4 +33,4 @@ var uiStateReducerFactory = exports.uiStateReducerFactory = function uiStateRedu
|
|
|
33
33
|
);
|
|
34
34
|
};
|
|
35
35
|
var _default = exports["default"] = uiStateReducerFactory();
|
|
36
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVkdXhBY3Rpb25zIiwicmVxdWlyZSIsIl9hY3Rpb25zIiwidWlTdGF0ZVVwZGF0ZXJzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfYWN0aW9uSGFuZGxlciIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJhY3Rpb25IYW5kbGVyIiwiQWN0aW9uVHlwZXMiLCJJTklUIiwiaW5pdFVpU3RhdGVVcGRhdGVyIiwiVE9HR0xFX1NJREVfUEFORUwiLCJ0b2dnbGVTaWRlUGFuZWxVcGRhdGVyIiwiVE9HR0xFX01PREFMIiwidG9nZ2xlTW9kYWxVcGRhdGVyIiwiU0hPV19FWFBPUlRfRFJPUERPV04iLCJzaG93RXhwb3J0RHJvcGRvd25VcGRhdGVyIiwiSElERV9FWFBPUlRfRFJPUERPV04iLCJoaWRlRXhwb3J0RHJvcGRvd25VcGRhdGVyIiwiVE9HR0xFX1NJREVfUEFORUxfQ0xPU0VfQlVUVE9OIiwidG9nZ2xlU2lkZVBhbmVsQ2xvc2VCdXR0b25VcGRhdGVyIiwiT1BFTl9ERUxFVEVfTU9EQUwiLCJvcGVuRGVsZXRlTW9kYWxVcGRhdGVyIiwiVE9HR0xFX01BUF9DT05UUk9MIiwidG9nZ2xlTWFwQ29udHJvbFVwZGF0ZXIiLCJTRVRfTUFQX0NPTlRST0xfVklTSUJJTElUWSIsInNldE1hcENvbnRyb2xWaXNpYmlsaXR5VXBkYXRlciIsIlNFVF9NQVBfQ09OVFJPTF9TRVRUSU5HUyIsInNldE1hcENvbnRyb2xTZXR0aW5nc1VwZGF0ZXIiLCJBRERfTk9USUZJQ0FUSU9OIiwiYWRkTm90aWZpY2F0aW9uVXBkYXRlciIsIlJFTU9WRV9OT1RJRklDQVRJT04iLCJyZW1vdmVOb3RpZmljYXRpb25VcGRhdGVyIiwiU0VUX0VYUE9SVF9JTUFHRV9TRVRUSU5HIiwic2V0RXhwb3J0SW1hZ2VTZXR0aW5nVXBkYXRlciIsIlNFVF9FWFBPUlRfSU1BR0VfREFUQV9VUkkiLCJzZXRFeHBvcnRJbWFnZURhdGFVcmlVcGRhdGVyIiwiU0VUX0VYUE9SVF9JTUFHRV9FUlJPUiIsInNldEV4cG9ydEltYWdlRXJyb3JVcGRhdGVyIiwiQ0xFQU5VUF9FWFBPUlRfSU1BR0UiLCJjbGVhbnVwRXhwb3J0SW1hZ2VVcGRhdGVyIiwiU1RBUlRfRVhQT1JUSU5HX0lNQUdFIiwic3RhcnRFeHBvcnRpbmdJbWFnZVVwZGF0ZXIiLCJTRVRfRVhQT1JUX1ZJREVPX1NFVFRJTkciLCJzZXRFeHBvcnRWaWRlb1NldHRpbmdVcGRhdGVyIiwiU0VUX0VYUE9SVF9TRUxFQ1RFRF9EQVRBU0VUIiwic2V0RXhwb3J0U2VsZWN0ZWREYXRhc2V0VXBkYXRlciIsIlNFVF9FWFBPUlRfREFUQV9UWVBFIiwic2V0RXhwb3J0RGF0YVR5cGVVcGRhdGVyIiwiU0VUX0VYUE9SVF9GSUxURVJFRCIsInNldEV4cG9ydEZpbHRlcmVkVXBkYXRlciIsIlNFVF9FWFBPUlRfREFUQSIsInNldEV4cG9ydERhdGFVcGRhdGVyIiwiU0VUX1VTRVJfTUFQQk9YX0FDQ0VTU19UT0tFTiIsInNldFVzZXJNYXBib3hBY2Nlc3NUb2tlblVwZGF0ZXIiLCJTRVRfRVhQT1JUX01BUF9GT1JNQVQiLCJzZXRFeHBvcnRNYXBGb3JtYXRVcGRhdGVyIiwiU0VUX0VYUE9SVF9NQVBfSFRNTF9NT0RFIiwic2V0RXhwb3J0TWFwSFRNTE1vZGVVcGRhdGVyIiwiTE9BRF9GSUxFUyIsImxvYWRGaWxlc1VwZGF0ZXIiLCJMT0FEX0ZJTEVTX0VSUiIsImxvYWRGaWxlc0VyclVwZGF0ZXIiLCJUT0dHTEVfU1BMSVRfTUFQIiwidG9nZ2xlU3BsaXRNYXBVcGRhdGVyIiwiU0hPV19EQVRBU0VUX1RBQkxFIiwic2hvd0RhdGFzZXRUYWJsZVVwZGF0ZXIiLCJTRVRfTE9DQUxFIiwic2V0TG9jYWxlVXBkYXRlciIsIlNFVF9USEVNRSIsInNldFRoZW1lVXBkYXRlciIsIlRPR0dMRV9QQU5FTF9MSVNUX1ZJRVciLCJ0b2dnbGVQYW5lbExpc3RWaWV3VXBkYXRlciIsIlJFQ0VJVkVfTUFQX0NPTkZJRyIsInJlY2VpdmVNYXBDb25maWdVcGRhdGVyIiwidWlTdGF0ZVJlZHVjZXJGYWN0b3J5IiwiZXhwb3J0cyIsImluaXRpYWxTdGF0ZSIsInVuZGVmaW5lZCIsImhhbmRsZUFjdGlvbnMiLCJJTklUSUFMX1VJX1NUQVRFIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdWktc3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtoYW5kbGVBY3Rpb25zfSBmcm9tICdyZWR1eC1hY3Rpb25zJztcbmltcG9ydCB7QWN0aW9uVHlwZXN9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyB1aVN0YXRlVXBkYXRlcnMgZnJvbSAnLi91aS1zdGF0ZS11cGRhdGVycyc7XG5cbi8qKlxuICogSW1wb3J0YW50OiBEbyBub3QgcmVuYW1lIGBhY3Rpb25IYW5kbGVyYCBvciB0aGUgYXNzaWdubWVudCBwYXR0ZXJuIG9mIHByb3BlcnR5IHZhbHVlLlxuICogSXQgaXMgdXNlZCB0byBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uXG4gKi9cbmNvbnN0IGFjdGlvbkhhbmRsZXIgPSB7XG4gIFtBY3Rpb25UeXBlcy5JTklUXTogdWlTdGF0ZVVwZGF0ZXJzLmluaXRVaVN0YXRlVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9TSURFX1BBTkVMXTogdWlTdGF0ZVVwZGF0ZXJzLnRvZ2dsZVNpZGVQYW5lbFVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfTU9EQUxdOiB1aVN0YXRlVXBkYXRlcnMudG9nZ2xlTW9kYWxVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuU0hPV19FWFBPUlRfRFJPUERPV05dOiB1aVN0YXRlVXBkYXRlcnMuc2hvd0V4cG9ydERyb3Bkb3duVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLkhJREVfRVhQT1JUX0RST1BET1dOXTogdWlTdGF0ZVVwZGF0ZXJzLmhpZGVFeHBvcnREcm9wZG93blVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfU0lERV9QQU5FTF9DTE9TRV9CVVRUT05dOiB1aVN0YXRlVXBkYXRlcnMudG9nZ2xlU2lkZVBhbmVsQ2xvc2VCdXR0b25VcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuT1BFTl9ERUxFVEVfTU9EQUxdOiB1aVN0YXRlVXBkYXRlcnMub3BlbkRlbGV0ZU1vZGFsVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9NQVBfQ09OVFJPTF06IHVpU3RhdGVVcGRhdGVycy50b2dnbGVNYXBDb250cm9sVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9NQVBfQ09OVFJPTF9WSVNJQklMSVRZXTogdWlTdGF0ZVVwZGF0ZXJzLnNldE1hcENvbnRyb2xWaXNpYmlsaXR5VXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9NQVBfQ09OVFJPTF9TRVRUSU5HU106IHVpU3RhdGVVcGRhdGVycy5zZXRNYXBDb250cm9sU2V0dGluZ3NVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuQUREX05PVElGSUNBVElPTl06IHVpU3RhdGVVcGRhdGVycy5hZGROb3RpZmljYXRpb25VcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX05PVElGSUNBVElPTl06IHVpU3RhdGVVcGRhdGVycy5yZW1vdmVOb3RpZmljYXRpb25VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRVhQT1JUX0lNQUdFX1NFVFRJTkddOiB1aVN0YXRlVXBkYXRlcnMuc2V0RXhwb3J0SW1hZ2VTZXR0aW5nVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9FWFBPUlRfSU1BR0VfREFUQV9VUkldOiB1aVN0YXRlVXBkYXRlcnMuc2V0RXhwb3J0SW1hZ2VEYXRhVXJpVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9FWFBPUlRfSU1BR0VfRVJST1JdOiB1aVN0YXRlVXBkYXRlcnMuc2V0RXhwb3J0SW1hZ2VFcnJvclVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5DTEVBTlVQX0VYUE9SVF9JTUFHRV06IHVpU3RhdGVVcGRhdGVycy5jbGVhbnVwRXhwb3J0SW1hZ2VVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuU1RBUlRfRVhQT1JUSU5HX0lNQUdFXTogdWlTdGF0ZVVwZGF0ZXJzLnN0YXJ0RXhwb3J0aW5nSW1hZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRVhQT1JUX1ZJREVPX1NFVFRJTkddOiB1aVN0YXRlVXBkYXRlcnMuc2V0RXhwb3J0VmlkZW9TZXR0aW5nVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0VYUE9SVF9TRUxFQ1RFRF9EQVRBU0VUXTogdWlTdGF0ZVVwZGF0ZXJzLnNldEV4cG9ydFNlbGVjdGVkRGF0YXNldFVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5TRVRfRVhQT1JUX0RBVEFfVFlQRV06IHVpU3RhdGVVcGRhdGVycy5zZXRFeHBvcnREYXRhVHlwZVVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5TRVRfRVhQT1JUX0ZJTFRFUkVEXTogdWlTdGF0ZVVwZGF0ZXJzLnNldEV4cG9ydEZpbHRlcmVkVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9FWFBPUlRfREFUQV06IHVpU3RhdGVVcGRhdGVycy5zZXRFeHBvcnREYXRhVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9VU0VSX01BUEJPWF9BQ0NFU1NfVE9LRU5dOiB1aVN0YXRlVXBkYXRlcnMuc2V0VXNlck1hcGJveEFjY2Vzc1Rva2VuVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0VYUE9SVF9NQVBfRk9STUFUXTogdWlTdGF0ZVVwZGF0ZXJzLnNldEV4cG9ydE1hcEZvcm1hdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9FWFBPUlRfTUFQX0hUTUxfTU9ERV06IHVpU3RhdGVVcGRhdGVycy5zZXRFeHBvcnRNYXBIVE1MTW9kZVVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0ZJTEVTXTogdWlTdGF0ZVVwZGF0ZXJzLmxvYWRGaWxlc1VwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0ZJTEVTX0VSUl06IHVpU3RhdGVVcGRhdGVycy5sb2FkRmlsZXNFcnJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfU1BMSVRfTUFQXTogdWlTdGF0ZVVwZGF0ZXJzLnRvZ2dsZVNwbGl0TWFwVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNIT1dfREFUQVNFVF9UQUJMRV06IHVpU3RhdGVVcGRhdGVycy5zaG93RGF0YXNldFRhYmxlVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9MT0NBTEVdOiB1aVN0YXRlVXBkYXRlcnMuc2V0TG9jYWxlVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9USEVNRV06IHVpU3RhdGVVcGRhdGVycy5zZXRUaGVtZVVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfUEFORUxfTElTVF9WSUVXXTogdWlTdGF0ZVVwZGF0ZXJzLnRvZ2dsZVBhbmVsTGlzdFZpZXdVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuUkVDRUlWRV9NQVBfQ09ORklHXTogdWlTdGF0ZVVwZGF0ZXJzLnJlY2VpdmVNYXBDb25maWdVcGRhdGVyXG59O1xuXG4vKiBSZWR1Y2VyICovXG5leHBvcnQgY29uc3QgdWlTdGF0ZVJlZHVjZXJGYWN0b3J5ID0gKGluaXRpYWxTdGF0ZSA9IHt9KSA9PlxuICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gIGhhbmRsZUFjdGlvbnMoYWN0aW9uSGFuZGxlciwge1xuICAgIC4uLnVpU3RhdGVVcGRhdGVycy5JTklUSUFMX1VJX1NUQVRFLFxuICAgIC4uLmluaXRpYWxTdGF0ZSxcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaW5pdGlhbFN0YXRlXG4gIH0pO1xuXG5leHBvcnQgZGVmYXVsdCB1aVN0YXRlUmVkdWNlckZhY3RvcnkoKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsSUFBQUEsYUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsZUFBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQXVELElBQUFJLGNBQUEsRUFMdkQ7QUFDQTtBQUFBLFNBQUFELHdCQUFBRSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSix1QkFBQSxZQUFBQSx3QkFBQUUsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLG1CQUFBVCxDQUFBLGlCQUFBQSxDQUFBLGdCQUFBVSxPQUFBLENBQUFWLENBQUEsMEJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEdBQUFNLENBQUEsQ0FBQU8sR0FBQSxDQUFBYixDQUFBLEVBQUFRLENBQUEsY0FBQU0sRUFBQSxJQUFBZCxDQUFBLGdCQUFBYyxFQUFBLE9BQUFDLGNBQUEsQ0FBQUMs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LG1CQUFtQixFQUFHL0UsZUFBZSxDQUFDZ0Ysd0JBQXdCLEdBQzFFMUMsb0JBQVcsQ0FBQzJDLGVBQWUsRUFBR2pGLGVBQWUsQ0FBQ2tGLG9CQUFvQixHQUNsRTVDLG9CQUFXLENBQUM2Qyw0QkFBNEIsRUFBR25GLGVBQWUsQ0FBQ29GLCtCQUErQixHQUUxRjlDLG9CQUFXLENBQUMrQyxxQkFBcUIsRUFBR3JGLGVBQWUsQ0FBQ3NGLHlCQUF5QixHQUU3RWhELG9CQUFXLENBQUNpRCx3QkFBd0IsRUFBR3ZGLGVBQWUsQ0FBQ3dGLDJCQUEyQixHQUNsRmxELG9CQUFXLENBQUNtRCxVQUFVLEVBQUd6RixlQUFlLENBQUMwRixnQkFBZ0IsR0FDekRwRCxvQkFBVyxDQUFDcUQsY0FBYyxFQUFHM0YsZUFBZSxDQUFDNEYsbUJBQW1CLEdBRWhFdEQsb0JBQVcsQ0FBQ3VELGdCQUFnQixFQUFHN0YsZUFBZSxDQUFDOEYscUJBQXFCLEdBQ3BFeEQsb0JBQVcsQ0FBQ3lELGtCQUFrQixFQUFHL0YsZUFBZSxDQUFDZ0csdUJBQXVCLEdBQ3hFMUQsb0JBQVcsQ0FBQzJELFVBQVUsRUFBR2pHLGVBQWUsQ0FBQ2tHLGdCQUFnQixPQUFBaEUsZ0JBQUEsaUJBQUFBLGdCQUFBLGlCQUFBQSxnQkFBQSxhQUFBaEMsY0FBQSxFQUN6RG9DLG9CQUFXLENBQUM2RCxTQUFTLEVBQUduRyxlQUFlLENBQUNvRyxlQUFlLEdBQ3ZEOUQsb0JBQVcsQ0FBQytELHNCQUFzQixFQUFHckcsZUFBZSxDQUFDc0csMEJBQTBCLEdBQy9FaEUsb0JBQVcsQ0FBQ2lFLGtCQUFrQixFQUFHdkcsZUFBZSxDQUFDd0csdUJBQXVCLEVBQzFFOztBQUVEO0FBQ08sSUFBTUMscUJBQXFCLEdBQUFDLE9BQUEsQ0FBQUQscUJBQUEsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFBO0VBQUEsSUFBSUUsWUFBWSxHQUFBNUUsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQTZFLFNBQUEsR0FBQTdFLFNBQUEsTUFBRyxDQUFDLENBQUM7RUFBQTtJQUNyRDtJQUNBLElBQUE4RSwyQkFBYSxFQUFDeEUsYUFBYSxFQUFBUCxhQUFBLENBQUFBLGFBQUEsQ0FBQUEsYUFBQSxLQUN0QjlCLGVBQWUsQ0FBQzhHLGdCQUFnQixHQUNoQ0gsWUFBWTtNQUNmO01BQ0FBLFlBQVksRUFBWkE7SUFBWSxFQUNiO0VBQUM7QUFBQTtBQUFDLElBQUFJLFFBQUEsR0FBQUwsT0FBQSxjQUVVRCxxQkFBcUIsQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVkdXhBY3Rpb25zIiwicmVxdWlyZSIsIl9hY3Rpb25zIiwidWlTdGF0ZVVwZGF0ZXJzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfYWN0aW9uSGFuZGxlciIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJhY3Rpb25IYW5kbGVyIiwiQWN0aW9uVHlwZXMiLCJJTklUIiwiaW5pdFVpU3RhdGVVcGRhdGVyIiwiVE9HR0xFX1NJREVfUEFORUwiLCJ0b2dnbGVTaWRlUGFuZWxVcGRhdGVyIiwiVE9HR0xFX01PREFMIiwidG9nZ2xlTW9kYWxVcGRhdGVyIiwiU0hPV19FWFBPUlRfRFJPUERPV04iLCJzaG93RXhwb3J0RHJvcGRvd25VcGRhdGVyIiwiSElERV9FWFBPUlRfRFJPUERPV04iLCJoaWRlRXhwb3J0RHJvcGRvd25VcGRhdGVyIiwiVE9HR0xFX1NJREVfUEFORUxfQ0xPU0VfQlVUVE9OIiwidG9nZ2xlU2lkZVBhbmVsQ2xvc2VCdXR0b25VcGRhdGVyIiwiT1BFTl9ERUxFVEVfTU9EQUwiLCJvcGVuRGVsZXRlTW9kYWxVcGRhdGVyIiwiVE9HR0xFX01BUF9DT05UUk9MIiwidG9nZ2xlTWFwQ29udHJvbFVwZGF0ZXIiLCJTRVRfTUFQX0NPTlRST0xfVklTSUJJTElUWSIsInNldE1hcENvbnRyb2xWaXNpYmlsaXR5VXBkYXRlciIsIlNFVF9NQVBfQ09OVFJPTF9TRVRUSU5HUyIsInNldE1hcENvbnRyb2xTZXR0aW5nc1VwZGF0ZXIiLCJBRERfTk9USUZJQ0FUSU9OIiwiYWRkTm90aWZpY2F0aW9uVXBkYXRlciIsIlJFTU9WRV9OT1RJRklDQVRJT04iLCJyZW1vdmVOb3RpZmljYXRpb25VcGRhdGVyIiwiU0VUX0VYUE9SVF9JTUFHRV9TRVRUSU5HIiwic2V0RXhwb3J0SW1hZ2VTZXR0aW5nVXBkYXRlciIsIlNFVF9FWFBPUlRfSU1BR0VfREFUQV9VUkkiLCJzZXRFeHBvcnRJbWFnZURhdGFVcmlVcGRhdGVyIiwiU0VUX0VYUE9SVF9JTUFHRV9FUlJPUiIsInNldEV4cG9ydEltYWdlRXJyb3JVcGRhdGVyIiwiQ0xFQU5VUF9FWFBPUlRfSU1BR0UiLCJjbGVhbnVwRXhwb3J0SW1hZ2VVcGRhdGVyIiwiU1RBUlRfRVhQT1JUSU5HX0lNQUdFIiwic3RhcnRFeHBvcnRpbmdJbWFnZVVwZGF0ZXIiLCJTRVRfRVhQT1JUX1ZJREVPX1NFVFRJTkciLCJzZXRFeHBvcnRWaWRlb1NldHRpbmdVcGRhdGVyIiwiU0VUX0VYUE9SVF9TRUxFQ1RFRF9EQVRBU0VUIiwic2V0RXhwb3J0U2VsZWN0ZWREYXRhc2V0VXBkYXRlciIsIlNFVF9FWFBPUlRfREFUQV9UWVBFIiwic2V0RXhwb3J0RGF0YVR5cGVVcGRhdGVyIiwiU0VUX0VYUE9SVF9GSUxURVJFRCIsInNldEV4cG9ydEZpbHRlcmVkVXBkYXRlciIsIlNFVF9FWFBPUlRfREFUQSIsInNldEV4cG9ydERhdGFVcGRhdGVyIiwiU0VUX1VTRVJfTUFQQk9YX0FDQ0VTU19UT0tFTiIsInNldFVzZXJNYXBib3hBY2Nlc3NUb2tlblVwZGF0ZXIiLCJTRVRfRVhQT1JUX01BUF9GT1JNQVQiLCJzZXRFeHBvcnRNYXBGb3JtYXRVcGRhdGVyIiwiU0VUX0VYUE9SVF9NQVBfSFRNTF9NT0RFIiwic2V0RXhwb3J0TWFwSFRNTE1vZGVVcGRhdGVyIiwiU0VUX0VYUE9SVF9NQVBfRklMRV9OQU1FIiwic2V0RXhwb3J0TWFwRmlsZU5hbWVVcGRhdGVyIiwiTE9BRF9GSUxFUyIsImxvYWRGaWxlc1VwZGF0ZXIiLCJMT0FEX0ZJTEVTX0VSUiIsImxvYWRGaWxlc0VyclVwZGF0ZXIiLCJUT0dHTEVfU1BMSVRfTUFQIiwidG9nZ2xlU3BsaXRNYXBVcGRhdGVyIiwiU0hPV19EQVRBU0VUX1RBQkxFIiwic2hvd0RhdGFzZXRUYWJsZVVwZGF0ZXIiLCJTRVRfTE9DQUxFIiwic2V0TG9jYWxlVXBkYXRlciIsIlNFVF9USEVNRSIsInNldFRoZW1lVXBkYXRlciIsIlRPR0dMRV9QQU5FTF9MSVNUX1ZJRVciLCJ0b2dnbGVQYW5lbExpc3RWaWV3VXBkYXRlciIsIlJFQ0VJVkVfTUFQX0NPTkZJRyIsInJlY2VpdmVNYXBDb25maWdVcGRhdGVyIiwidWlTdGF0ZVJlZHVjZXJGYWN0b3J5IiwiZXhwb3J0cyIsImluaXRpYWxTdGF0ZSIsInVuZGVmaW5lZCIsImhhbmRsZUFjdGlvbnMiLCJJTklUSUFMX1VJX1NUQVRFIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdWktc3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtoYW5kbGVBY3Rpb25zfSBmcm9tICdyZWR1eC1hY3Rpb25zJztcbmltcG9ydCB7QWN0aW9uVHlwZXN9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyB1aVN0YXRlVXBkYXRlcnMgZnJvbSAnLi91aS1zdGF0ZS11cGRhdGVycyc7XG5cbi8qKlxuICogSW1wb3J0YW50OiBEbyBub3QgcmVuYW1lIGBhY3Rpb25IYW5kbGVyYCBvciB0aGUgYXNzaWdubWVudCBwYXR0ZXJuIG9mIHByb3BlcnR5IHZhbHVlLlxuICogSXQgaXMgdXNlZCB0byBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uXG4gKi9cbmNvbnN0IGFjdGlvbkhhbmRsZXIgPSB7XG4gIFtBY3Rpb25UeXBlcy5JTklUXTogdWlTdGF0ZVVwZGF0ZXJzLmluaXRVaVN0YXRlVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9TSURFX1BBTkVMXTogdWlTdGF0ZVVwZGF0ZXJzLnRvZ2dsZVNpZGVQYW5lbFVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfTU9EQUxdOiB1aVN0YXRlVXBkYXRlcnMudG9nZ2xlTW9kYWxVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuU0hPV19FWFBPUlRfRFJPUERPV05dOiB1aVN0YXRlVXBkYXRlcnMuc2hvd0V4cG9ydERyb3Bkb3duVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLkhJREVfRVhQT1JUX0RST1BET1dOXTogdWlTdGF0ZVVwZGF0ZXJzLmhpZGVFeHBvcnREcm9wZG93blVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfU0lERV9QQU5FTF9DTE9TRV9CVVRUT05dOiB1aVN0YXRlVXBkYXRlcnMudG9nZ2xlU2lkZVBhbmVsQ2xvc2VCdXR0b25VcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuT1BFTl9ERUxFVEVfTU9EQUxdOiB1aVN0YXRlVXBkYXRlcnMub3BlbkRlbGV0ZU1vZGFsVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9NQVBfQ09OVFJPTF06IHVpU3RhdGVVcGRhdGVycy50b2dnbGVNYXBDb250cm9sVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9NQVBfQ09OVFJPTF9WSVNJQklMSVRZXTogdWlTdGF0ZVVwZGF0ZXJzLnNldE1hcENvbnRyb2xWaXNpYmlsaXR5VXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9NQVBfQ09OVFJPTF9TRVRUSU5HU106IHVpU3RhdGVVcGRhdGVycy5zZXRNYXBDb250cm9sU2V0dGluZ3NVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuQUREX05PVElGSUNBVElPTl06IHVpU3RhdGVVcGRhdGVycy5hZGROb3RpZmljYXRpb25VcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX05PVElGSUNBVElPTl06IHVpU3RhdGVVcGRhdGVycy5yZW1vdmVOb3RpZmljYXRpb25VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRVhQT1JUX0lNQUdFX1NFVFRJTkddOiB1aVN0YXRlVXBkYXRlcnMuc2V0RXhwb3J0SW1hZ2VTZXR0aW5nVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9FWFBPUlRfSU1BR0VfREFUQV9VUkldOiB1aVN0YXRlVXBkYXRlcnMuc2V0RXhwb3J0SW1hZ2VEYXRhVXJpVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9FWFBPUlRfSU1BR0VfRVJST1JdOiB1aVN0YXRlVXBkYXRlcnMuc2V0RXhwb3J0SW1hZ2VFcnJvclVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5DTEVBTlVQX0VYUE9SVF9JTUFHRV06IHVpU3RhdGVVcGRhdGVycy5jbGVhbnVwRXhwb3J0SW1hZ2VVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuU1RBUlRfRVhQT1JUSU5HX0lNQUdFXTogdWlTdGF0ZVVwZGF0ZXJzLnN0YXJ0RXhwb3J0aW5nSW1hZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRVhQT1JUX1ZJREVPX1NFVFRJTkddOiB1aVN0YXRlVXBkYXRlcnMuc2V0RXhwb3J0VmlkZW9TZXR0aW5nVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0VYUE9SVF9TRUxFQ1RFRF9EQVRBU0VUXTogdWlTdGF0ZVVwZGF0ZXJzLnNldEV4cG9ydFNlbGVjdGVkRGF0YXNldFVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5TRVRfRVhQT1JUX0RBVEFfVFlQRV06IHVpU3RhdGVVcGRhdGVycy5zZXRFeHBvcnREYXRhVHlwZVVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5TRVRfRVhQT1JUX0ZJTFRFUkVEXTogdWlTdGF0ZVVwZGF0ZXJzLnNldEV4cG9ydEZpbHRlcmVkVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9FWFBPUlRfREFUQV06IHVpU3RhdGVVcGRhdGVycy5zZXRFeHBvcnREYXRhVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9VU0VSX01BUEJPWF9BQ0NFU1NfVE9LRU5dOiB1aVN0YXRlVXBkYXRlcnMuc2V0VXNlck1hcGJveEFjY2Vzc1Rva2VuVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0VYUE9SVF9NQVBfRk9STUFUXTogdWlTdGF0ZVVwZGF0ZXJzLnNldEV4cG9ydE1hcEZvcm1hdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9FWFBPUlRfTUFQX0hUTUxfTU9ERV06IHVpU3RhdGVVcGRhdGVycy5zZXRFeHBvcnRNYXBIVE1MTW9kZVVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5TRVRfRVhQT1JUX01BUF9GSUxFX05BTUVdOiB1aVN0YXRlVXBkYXRlcnMuc2V0RXhwb3J0TWFwRmlsZU5hbWVVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuTE9BRF9GSUxFU106IHVpU3RhdGVVcGRhdGVycy5sb2FkRmlsZXNVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuTE9BRF9GSUxFU19FUlJdOiB1aVN0YXRlVXBkYXRlcnMubG9hZEZpbGVzRXJyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX1NQTElUX01BUF06IHVpU3RhdGVVcGRhdGVycy50b2dnbGVTcGxpdE1hcFVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5TSE9XX0RBVEFTRVRfVEFCTEVdOiB1aVN0YXRlVXBkYXRlcnMuc2hvd0RhdGFzZXRUYWJsZVVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5TRVRfTE9DQUxFXTogdWlTdGF0ZVVwZGF0ZXJzLnNldExvY2FsZVVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5TRVRfVEhFTUVdOiB1aVN0YXRlVXBkYXRlcnMuc2V0VGhlbWVVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX1BBTkVMX0xJU1RfVklFV106IHVpU3RhdGVVcGRhdGVycy50b2dnbGVQYW5lbExpc3RWaWV3VXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlJFQ0VJVkVfTUFQX0NPTkZJR106IHVpU3RhdGVVcGRhdGVycy5yZWNlaXZlTWFwQ29uZmlnVXBkYXRlclxufTtcblxuLyogUmVkdWNlciAqL1xuZXhwb3J0IGNvbnN0IHVpU3RhdGVSZWR1Y2VyRmFjdG9yeSA9IChpbml0aWFsU3RhdGUgPSB7fSkgPT5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICBoYW5kbGVBY3Rpb25zKGFjdGlvbkhhbmRsZXIsIHtcbiAgICAuLi51aVN0YXRlVXBkYXRlcnMuSU5JVElBTF9VSV9TVEFURSxcbiAgICAuLi5pbml0aWFsU3RhdGUsXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGluaXRpYWxTdGF0ZVxuICB9KTtcblxuZXhwb3J0IGRlZmF1bHQgdWlTdGF0ZVJlZHVjZXJGYWN0b3J5KCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElBQUFBLGFBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGVBQUEsR0FBQUMsdUJBQUEsQ0FBQUgsT0FBQTtBQUF1RCxJQUFBSSxjQUFBLEVBTHZEO0FBQ0E7QUFBQSxTQUFBRCx3QkFBQUUsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUosdUJBQUEsWUFBQUEsd0JBQUFFLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxtQkFBQVQsQ0FBQSxpQkFBQUEsQ0FBQSxnQkFBQVUsT0FBQSxDQUFBVixDQUFBLDBCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFL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
|