kepler.gl 3.1.10 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/ai-assistant/src/config/models.d.ts +8 -0
- package/dist/src/components/src/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +3 -2
- package/dist/src/localization/src/translations/en.d.ts +1 -0
- package/package.json +2 -2
- package/src/actions/package.json +8 -8
- package/src/ai-assistant/dist/components/ai-assistant-config.js +40 -24
- package/src/ai-assistant/dist/config/models.d.ts +8 -0
- package/src/ai-assistant/dist/config/models.js +16 -8
- package/src/ai-assistant/dist/localization.js +7 -7
- package/src/ai-assistant/dist/reducers/index.js +3 -2
- package/src/ai-assistant/package.json +16 -16
- package/src/ai-assistant/src/components/ai-assistant-config.tsx +39 -28
- package/src/ai-assistant/src/config/models.ts +37 -25
- package/src/ai-assistant/src/localization.ts +6 -6
- package/src/ai-assistant/src/reducers/index.ts +2 -1
- package/src/cloud-providers/package.json +2 -2
- package/src/common-utils/package.json +3 -3
- package/src/components/dist/common/color-legend.js +8 -8
- package/src/components/dist/common/data-table/index.js +13 -9
- package/src/components/dist/map/map-legend-panel.js +10 -4
- package/src/components/dist/map/map-legend.js +2 -2
- package/src/components/dist/modal-container.js +3 -3
- package/src/components/dist/modals/tilesets-modals/tileset-raster-form.js +38 -9
- package/src/components/dist/plot-container.js +4 -2
- package/src/components/dist/side-panel/interaction-panel/interaction-panel.js +2 -2
- package/src/components/dist/side-panel/layer-panel/color-breaks-panel.js +11 -2
- package/src/components/dist/side-panel/layer-panel/color-scale-selector.js +65 -12
- package/src/components/dist/side-panel/layer-panel/custom-palette.js +18 -7
- package/src/components/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +3 -3
- package/src/components/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +3 -2
- package/src/components/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +18 -4
- package/src/components/package.json +15 -15
- package/src/components/src/common/color-legend.tsx +15 -2
- package/src/components/src/common/data-table/index.tsx +1 -1
- package/src/components/src/map/map-legend-panel.tsx +21 -2
- package/src/components/src/map/map-legend.tsx +1 -1
- package/src/components/src/modal-container.tsx +6 -2
- package/src/components/src/modals/tilesets-modals/tileset-raster-form.tsx +60 -4
- package/src/components/src/plot-container.tsx +2 -1
- package/src/components/src/side-panel/interaction-panel/interaction-panel.tsx +1 -0
- package/src/components/src/side-panel/layer-panel/color-breaks-panel.tsx +14 -3
- package/src/components/src/side-panel/layer-panel/color-scale-selector.tsx +62 -8
- package/src/components/src/side-panel/layer-panel/custom-palette.tsx +11 -5
- package/src/components/src/side-panel/layer-panel/raster-tile-layer-configurator.tsx +2 -1
- package/src/components/src/side-panel/layer-panel/vector-tile-layer-configurator.tsx +19 -2
- package/src/constants/dist/default-settings.js +2 -2
- package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/56/48/71c2c5381c01c063c164e15fa04b4b1f3faae02e6727f2f2daf483e15205feca68334bad721af0c6f31abb20b56d60504623838127764aab6883912e7f71 +1 -0
- package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/b3/bd/e4f91c7af9e320b979e29ad3b9e3a4dfcd61e4a09d6e4579104c40dcace7651b443fdd6d7ff5d947ed6c9df2c0bbbcc76a2ea86d6398e4945257eeb80dd5 +1 -0
- package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/b4/c5/a43653dff3b380f7b0793080a57c980a9a136764933e79454de0fe43a5ca +2 -0
- package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/bf/88/ea60c7619185516464a4ae21f51394966047bfdf190a5463de651c61931c +2 -0
- package/src/constants/package.json +2 -2
- package/src/constants/umd/keplergl.min.js +1 -1
- package/src/deckgl-arrow-layers/package.json +2 -2
- package/src/deckgl-layers/package.json +4 -4
- package/src/duckdb/dist/table/duckdb-table-utils.js +3 -2
- package/src/duckdb/package.json +6 -6
- package/src/duckdb/src/table/duckdb-table-utils.ts +5 -1
- package/src/effects/package.json +5 -5
- package/src/layers/dist/icon-layer/icon-layer.js +12 -2
- package/src/layers/dist/raster-tile/gpu-utils.d.ts +11 -10
- package/src/layers/dist/raster-tile/gpu-utils.js +7 -6
- package/src/layers/dist/raster-tile/image.d.ts +4 -0
- package/src/layers/dist/raster-tile/image.js +30 -16
- package/src/layers/dist/raster-tile/raster-tile-layer.d.ts +4 -0
- package/src/layers/dist/raster-tile/raster-tile-layer.js +18 -6
- package/src/layers/dist/raster-tile/request-throttle.d.ts +1 -1
- package/src/layers/dist/raster-tile/request-throttle.js +17 -16
- package/src/layers/dist/raster-tile/types.d.ts +16 -0
- package/src/layers/dist/raster-tile/types.js +1 -1
- package/src/layers/dist/raster-tile/url.d.ts +1 -1
- package/src/layers/dist/raster-tile/url.js +5 -4
- package/src/layers/dist/vector-tile/common-tile/tile-dataset.d.ts +4 -0
- package/src/layers/dist/vector-tile/common-tile/tile-dataset.js +10 -1
- package/src/layers/dist/vector-tile/vector-tile-layer.d.ts +11 -0
- package/src/layers/dist/vector-tile/vector-tile-layer.js +113 -7
- package/src/layers/package.json +9 -9
- package/src/layers/src/icon-layer/icon-layer.ts +49 -38
- package/src/layers/src/raster-tile/gpu-utils.ts +96 -78
- package/src/layers/src/raster-tile/image.ts +35 -9
- package/src/layers/src/raster-tile/raster-tile-layer.ts +23 -5
- package/src/layers/src/raster-tile/request-throttle.ts +10 -5
- package/src/layers/src/raster-tile/types.ts +19 -1
- package/src/layers/src/raster-tile/url.ts +10 -3
- package/src/layers/src/vector-tile/common-tile/tile-dataset.ts +7 -0
- package/src/layers/src/vector-tile/vector-tile-layer.ts +110 -6
- package/src/localization/dist/translations/en.d.ts +1 -0
- package/src/localization/dist/translations/en.js +2 -1
- package/src/localization/package.json +1 -1
- package/src/localization/src/translations/en.ts +1 -0
- package/src/processors/dist/data-processor.js +15 -5
- package/src/processors/package.json +7 -7
- package/src/processors/src/data-processor.ts +19 -4
- package/src/reducers/package.json +16 -16
- package/src/schemas/package.json +7 -7
- package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/21/4a/50f77069dbf70c6792dd82d4e149375a888e25ddddd3209e2db013be62091f79082291fa06eb518cccb111b09a778e2946c1fb7a27bb6e32f72da0ccf250 +1 -0
- package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/52/82/28cacf6fd462b779c22675964b655bf3a9f3ce9ec3c9b141a401a5bf90cb7d904ac65ab8e484570130b12771af0a0d5bab20e6976cfa773666763e046a6a +1 -0
- package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/56/db/b5a812c56b0d1dcdcd33da37e464062a19c8752cb2296603dc72d2c54d31 +2 -0
- package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/c5/b6/9c4bdb089acc30ac8a16a6b9b93898757537f7017b2f725ddb832b4614d6 +2 -0
- package/src/styles/package.json +2 -2
- package/src/styles/umd/keplergl.min.js +1 -1
- package/src/table/dist/tileset/vector-tile-utils.js +9 -5
- package/src/table/package.json +5 -5
- package/src/table/src/tileset/vector-tile-utils.ts +9 -6
- package/src/tasks/package.json +2 -2
- package/src/types/package.json +1 -1
- package/src/utils/dist/application-config.js +5 -5
- package/src/utils/package.json +4 -4
- package/src/utils/src/application-config.ts +4 -6
- package/umd/keplergl.min.js +1385 -1332
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { VectorTileLayer } from '@kepler.gl/layers';
|
|
3
3
|
import { KeplerTable as KeplerDataset } from '@kepler.gl/table';
|
|
4
4
|
import SourceDataSelectorFactory from '../common/source-data-selector';
|
|
5
|
+
import FieldSelectorFactory from '../../common/field-selector';
|
|
5
6
|
import ChannelByValueSelectorFactory from './channel-by-value-selector';
|
|
6
7
|
import LayerConfigGroupFactory from './layer-config-group';
|
|
7
8
|
import { LayerColorRangeSelectorFactory, LayerColorSelectorFactory } from './layer-color-selector';
|
|
@@ -15,8 +16,8 @@ declare type Props = {
|
|
|
15
16
|
layerChannelConfigProps: GetProps<typeof ChannelByValueSelectorFactory>;
|
|
16
17
|
layerConfiguratorProps: any;
|
|
17
18
|
};
|
|
18
|
-
declare function VectorTileLayerConfiguratorFactory(ChannelByValueSelector: ReturnType<typeof ChannelByValueSelectorFactory>, LayerColorRangeSelector: ReturnType<typeof LayerColorRangeSelectorFactory>, LayerColorSelector: ReturnType<typeof LayerColorSelectorFactory>, LayerConfigGroup: ReturnType<typeof LayerConfigGroupFactory>, VisConfigSlider: ReturnType<typeof VisConfigSliderFactory>, VisConfigSwitch: ReturnType<typeof VisConfigSwitchFactory>): React.FC<Props>;
|
|
19
|
+
declare function VectorTileLayerConfiguratorFactory(ChannelByValueSelector: ReturnType<typeof ChannelByValueSelectorFactory>, LayerColorRangeSelector: ReturnType<typeof LayerColorRangeSelectorFactory>, LayerColorSelector: ReturnType<typeof LayerColorSelectorFactory>, LayerConfigGroup: ReturnType<typeof LayerConfigGroupFactory>, VisConfigSlider: ReturnType<typeof VisConfigSliderFactory>, VisConfigSwitch: ReturnType<typeof VisConfigSwitchFactory>, _SourceDataSelector: ReturnType<typeof SourceDataSelectorFactory>, FieldSelector: ReturnType<typeof FieldSelectorFactory>): React.FC<Props>;
|
|
19
20
|
declare namespace VectorTileLayerConfiguratorFactory {
|
|
20
|
-
var deps: (typeof VisConfigSwitchFactory | typeof LayerConfigGroupFactory | typeof VisConfigSliderFactory | typeof SourceDataSelectorFactory | typeof ChannelByValueSelectorFactory | typeof LayerColorSelectorFactory | typeof LayerColorRangeSelectorFactory)[];
|
|
21
|
+
var deps: (typeof FieldSelectorFactory | typeof VisConfigSwitchFactory | typeof LayerConfigGroupFactory | typeof VisConfigSliderFactory | typeof SourceDataSelectorFactory | typeof ChannelByValueSelectorFactory | typeof LayerColorSelectorFactory | typeof LayerColorRangeSelectorFactory)[];
|
|
21
22
|
}
|
|
22
23
|
export default VectorTileLayerConfiguratorFactory;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kepler.gl",
|
|
3
3
|
"author": "Shan He <shan@uber.com>",
|
|
4
|
-
"version": "3.1
|
|
4
|
+
"version": "3.2.1",
|
|
5
5
|
"description": "kepler.gl is a webgl based application to visualize large scale location data in the browser",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"@deck.gl/mapbox": "^8.9.27",
|
|
104
104
|
"@hubble.gl/core": "1.4.0",
|
|
105
105
|
"@hubble.gl/react": "1.4.0",
|
|
106
|
-
"@kepler.gl/components": "3.1
|
|
106
|
+
"@kepler.gl/components": "3.2.1",
|
|
107
107
|
"@loaders.gl/polyfills": "^4.3.2",
|
|
108
108
|
"@types/mapbox__geo-viewport": "^0.4.1",
|
|
109
109
|
"html-webpack-plugin": "^4.3.0",
|
package/src/actions/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kepler.gl/actions",
|
|
3
3
|
"author": "Shan He <shan@uber.com>",
|
|
4
|
-
"version": "3.1
|
|
4
|
+
"version": "3.2.1",
|
|
5
5
|
"description": "kepler.gl constants used by kepler.gl components, actions and reducers",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -31,13 +31,13 @@
|
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@deck.gl/core": "^8.9.27",
|
|
34
|
-
"@kepler.gl/cloud-providers": "3.1
|
|
35
|
-
"@kepler.gl/constants": "3.1
|
|
36
|
-
"@kepler.gl/layers": "3.1
|
|
37
|
-
"@kepler.gl/processors": "3.1
|
|
38
|
-
"@kepler.gl/table": "3.1
|
|
39
|
-
"@kepler.gl/types": "3.1
|
|
40
|
-
"@kepler.gl/utils": "3.1
|
|
34
|
+
"@kepler.gl/cloud-providers": "3.2.1",
|
|
35
|
+
"@kepler.gl/constants": "3.2.1",
|
|
36
|
+
"@kepler.gl/layers": "3.2.1",
|
|
37
|
+
"@kepler.gl/processors": "3.2.1",
|
|
38
|
+
"@kepler.gl/table": "3.2.1",
|
|
39
|
+
"@kepler.gl/types": "3.2.1",
|
|
40
|
+
"@kepler.gl/utils": "3.2.1",
|
|
41
41
|
"@reduxjs/toolkit": "^1.7.2",
|
|
42
42
|
"@types/lodash": "4.17.5",
|
|
43
43
|
"@types/react-redux": "^7.1.23",
|
|
@@ -84,7 +84,7 @@ function AiAssistantConfig() {
|
|
|
84
84
|
_useLocalStorage10 = (0, _slicedToArray2["default"])(_useLocalStorage9, 2),
|
|
85
85
|
topP = _useLocalStorage10[0],
|
|
86
86
|
setTopP = _useLocalStorage10[1];
|
|
87
|
-
var _useLocalStorage11 = (0, _usehooksTs.useLocalStorage)('ai-assistant-base-url', aiAssistantConfig.baseUrl ||
|
|
87
|
+
var _useLocalStorage11 = (0, _usehooksTs.useLocalStorage)('ai-assistant-base-url', aiAssistantConfig.baseUrl || _models.PROVIDER_DEFAULT_BASE_URLS[provider]),
|
|
88
88
|
_useLocalStorage12 = (0, _slicedToArray2["default"])(_useLocalStorage11, 2),
|
|
89
89
|
baseUrl = _useLocalStorage12[0],
|
|
90
90
|
setBaseUrl = _useLocalStorage12[1];
|
|
@@ -116,6 +116,7 @@ function AiAssistantConfig() {
|
|
|
116
116
|
if (typeof value === 'string') {
|
|
117
117
|
setProvider(value);
|
|
118
118
|
setModel(_models.PROVIDER_MODELS[value][0]);
|
|
119
|
+
setBaseUrl(_models.PROVIDER_DEFAULT_BASE_URLS[value]);
|
|
119
120
|
setConnectionError(false);
|
|
120
121
|
setErrorMessage('');
|
|
121
122
|
}
|
|
@@ -169,42 +170,59 @@ function AiAssistantConfig() {
|
|
|
169
170
|
return reject(new Error('Connection timeout after 15 seconds'));
|
|
170
171
|
}, 15000);
|
|
171
172
|
});
|
|
172
|
-
|
|
173
|
+
_context.next = 5;
|
|
174
|
+
return (0, _core.GetAssistantModelByProvider)({
|
|
173
175
|
provider: provider
|
|
174
176
|
});
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
177
|
+
case 5:
|
|
178
|
+
AssistantModel = _context.sent;
|
|
179
|
+
if (!(!AssistantModel || !AssistantModel.configure || !AssistantModel.testConnection)) {
|
|
180
|
+
_context.next = 8;
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
throw new Error('Failed to initialize AI model');
|
|
184
|
+
case 8:
|
|
185
|
+
// configure model
|
|
186
|
+
AssistantModel.configure({
|
|
187
|
+
model: model,
|
|
188
|
+
baseURL: baseUrl || _models.PROVIDER_DEFAULT_BASE_URLS[provider],
|
|
189
|
+
apiKey: apiKey,
|
|
190
|
+
temperature: Number(temperature),
|
|
191
|
+
topP: Number(topP)
|
|
192
|
+
});
|
|
193
|
+
_context.next = 11;
|
|
194
|
+
return Promise.race([AssistantModel.testConnection(apiKey, model), timeoutPromise]);
|
|
195
|
+
case 11:
|
|
178
196
|
success = _context.sent;
|
|
179
|
-
_errorMessage = !success ? provider === 'ollama' ? 'Connection failed: maybe invalid
|
|
197
|
+
_errorMessage = !success ? provider === 'ollama' ? 'Connection failed: maybe invalid Base URL' : 'Connection failed: maybe invalid API Key or Base URL' : '';
|
|
180
198
|
setConnectionError(!success);
|
|
181
199
|
setErrorMessage(_errorMessage);
|
|
182
200
|
dispatch((0, _actions.updateAiAssistantConfig)({
|
|
183
201
|
provider: provider,
|
|
184
202
|
model: model,
|
|
185
203
|
apiKey: apiKey,
|
|
186
|
-
baseUrl: baseUrl,
|
|
204
|
+
baseUrl: baseUrl || _models.PROVIDER_DEFAULT_BASE_URLS[provider],
|
|
187
205
|
isReady: success,
|
|
188
206
|
temperature: temperature,
|
|
189
207
|
topP: topP,
|
|
190
208
|
mapboxToken: mapboxToken
|
|
191
209
|
}));
|
|
192
|
-
_context.next =
|
|
210
|
+
_context.next = 22;
|
|
193
211
|
break;
|
|
194
|
-
case
|
|
195
|
-
_context.prev =
|
|
212
|
+
case 18:
|
|
213
|
+
_context.prev = 18;
|
|
196
214
|
_context.t0 = _context["catch"](1);
|
|
197
215
|
setConnectionError(true);
|
|
198
216
|
setErrorMessage(_context.t0 instanceof Error ? _context.t0.message : 'Connection failed');
|
|
199
|
-
case
|
|
200
|
-
_context.prev =
|
|
217
|
+
case 22:
|
|
218
|
+
_context.prev = 22;
|
|
201
219
|
setIsRunning(false);
|
|
202
|
-
return _context.finish(
|
|
203
|
-
case
|
|
220
|
+
return _context.finish(22);
|
|
221
|
+
case 25:
|
|
204
222
|
case "end":
|
|
205
223
|
return _context.stop();
|
|
206
224
|
}
|
|
207
|
-
}, _callee, null, [[1,
|
|
225
|
+
}, _callee, null, [[1, 18, 22, 25]]);
|
|
208
226
|
}));
|
|
209
227
|
return function onStartChat() {
|
|
210
228
|
return _ref.apply(this, arguments);
|
|
@@ -262,8 +280,8 @@ function AiAssistantConfig() {
|
|
|
262
280
|
placeholder: "Enter Model Name",
|
|
263
281
|
value: ollamaModelInputValue,
|
|
264
282
|
disabled: !ollamaModelInputChecked
|
|
265
|
-
})), provider !== 'ollama'
|
|
266
|
-
id: "aiAssistantManager.apiKey.
|
|
283
|
+
})), provider !== 'ollama' && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_components.PanelLabelWrapper, null, /*#__PURE__*/_react["default"].createElement(SectionTitle, null, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
|
|
284
|
+
id: "aiAssistantManager.apiKey.title"
|
|
267
285
|
}))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
268
286
|
className: "api-key-input"
|
|
269
287
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -277,8 +295,8 @@ function AiAssistantConfig() {
|
|
|
277
295
|
id: 'aiAssistantManager.apiKey.placeholder'
|
|
278
296
|
}),
|
|
279
297
|
value: apiKey
|
|
280
|
-
})))
|
|
281
|
-
id: "aiAssistantManager.baseUrl.
|
|
298
|
+
}))), /*#__PURE__*/_react["default"].createElement(_components.PanelLabelWrapper, null, /*#__PURE__*/_react["default"].createElement(SectionTitle, null, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
|
|
299
|
+
id: "aiAssistantManager.baseUrl.title"
|
|
282
300
|
}))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
283
301
|
className: "api-key-input"
|
|
284
302
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -288,11 +306,9 @@ function AiAssistantConfig() {
|
|
|
288
306
|
})), /*#__PURE__*/_react["default"].createElement(_components.Input, {
|
|
289
307
|
type: "text",
|
|
290
308
|
onChange: onBaseUrlChange,
|
|
291
|
-
placeholder:
|
|
292
|
-
id: 'aiAssistantManager.baseUrl.placeholder'
|
|
293
|
-
}),
|
|
309
|
+
placeholder: _models.PROVIDER_DEFAULT_BASE_URLS[provider],
|
|
294
310
|
value: baseUrl
|
|
295
|
-
}))
|
|
311
|
+
})), connectionError && /*#__PURE__*/_react["default"].createElement(StyleErrorMessage, {
|
|
296
312
|
className: "error-message"
|
|
297
313
|
}, errorMessage), /*#__PURE__*/_react["default"].createElement(_components.PanelLabelWrapper, null, /*#__PURE__*/_react["default"].createElement(SectionTitle, null, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
|
|
298
314
|
id: "aiAssistantManager.temperature.title"
|
|
@@ -334,4 +350,4 @@ function AiAssistantConfig() {
|
|
|
334
350
|
id: "aiAssistantManager.startChat"
|
|
335
351
|
}))));
|
|
336
352
|
}
|
|
337
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RSZWR1eCIsIl9jb21wb25lbnRzIiwiX2FwaUtleSIsIl9tb2RlbHMiLCJfdXNlaG9va3NUcyIsIl9jb3JlIiwiX2FjdGlvbnMiLCJfcmVhY3RJbnRsIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl90ZW1wbGF0ZU9iamVjdDYiLCJfdGVtcGxhdGVPYmplY3Q3IiwiX3RlbXBsYXRlT2JqZWN0OCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlNlY3Rpb25UaXRsZSIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsImlucHV0Rm9udFNpemUiLCJlZmZlY3RQYW5lbFRleHRTZWNvbmRhcnkxIiwiU3R5bGVkQWlBc3Npc3RhbnRDb25maWciLCJwcmltYXJ5QnRuRm9udFNpemVEZWZhdWx0IiwiYm94U2hhZG93IiwiZ2VvY29kZXJJbnB1dEhlaWdodCIsInN1YnRleHRDb2xvciIsIk9sbGFtYU1vZGVsSW5wdXRXcmFwcGVyIiwiU3R5bGVkV3JhcHBlciIsIlN0eWxlZEl0ZW1TZWxlY3RvciIsIkl0ZW1TZWxlY3RvciIsImFjdGl2ZUNvbG9yIiwiU3R5bGVTbGlkZXJXcmFwcGVyIiwiU3R5bGVkQnV0dG9uIiwiU3R5bGVFcnJvck1lc3NhZ2UiLCJlcnJvckNvbG9yIiwiZXJyb3JUZXh0Q29sb3IiLCJSYW5nZVNsaWRlciIsImFwcEluamVjdG9yIiwiUmFuZ2VTbGlkZXJGYWN0b3J5IiwiQWlBc3Npc3RhbnRDb25maWciLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwiYWlBc3Npc3RhbnRDb25maWciLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwiZGVtbyIsImFpQXNzaXN0YW50IiwiY29uZmlnIiwiaW50bCIsInVzZUludGwiLCJfdXNlTG9jYWxTdG9yYWdlIiwidXNlTG9jYWxTdG9yYWdlIiwicHJvdmlkZXIiLCJfdXNlTG9jYWxTdG9yYWdlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldFByb3ZpZGVyIiwiX3VzZUxvY2FsU3RvcmFnZTMiLCJtb2RlbCIsIlBST1ZJREVSX01PREVMUyIsIl91c2VMb2NhbFN0b3JhZ2U0Iiwic2V0TW9kZWwiLCJfdXNlTG9jYWxTdG9yYWdlNSIsImFwaUtleSIsIl91c2VMb2NhbFN0b3JhZ2U2Iiwic2V0QXBpS2V5IiwiX3VzZUxvY2FsU3RvcmFnZTciLCJ0ZW1wZXJhdHVyZSIsIl91c2VMb2NhbFN0b3JhZ2U4Iiwic2V0VGVtcGVyYXR1cmUiLCJfdXNlTG9jYWxTdG9yYWdlOSIsInRvcFAiLCJfdXNlTG9jYWxTdG9yYWdlMTAiLCJzZXRUb3BQIiwiX3VzZUxvY2FsU3RvcmFnZTExIiwiYmFzZVVybCIsIl91c2VMb2NhbFN0b3JhZ2UxMiIsInNldEJhc2VVcmwiLCJfdXNlTG9jYWxTdG9yYWdlMTMiLCJtYXBib3hUb2tlbiIsIl91c2VMb2NhbFN0b3JhZ2UxNCIsInNldE1hcGJveFRva2VuIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwib2xsYW1hTW9kZWxJbnB1dENoZWNrZWQiLCJzZXRPbGxhbWFNb2RlbElucHV0Q2hlY2tlZCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwib2xsYW1hTW9kZWxJbnB1dFZhbHVlIiwic2V0T2xsYW1hTW9kZWxJbnB1dFZhbHVlIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJjb25uZWN0aW9uRXJyb3IiLCJzZXRDb25uZWN0aW9uRXJyb3IiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImVycm9yTWVzc2FnZSIsInNldEVycm9yTWVzc2FnZSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUxMCIsImlzUnVubmluZyIsInNldElzUnVubmluZyIsIm9uQWlQcm92aWRlclNlbGVjdCIsInZhbHVlIiwib25MTE1Nb2RlbFNlbGVjdCIsIm9uQXBpS2V5Q2hhbmdlIiwidGFyZ2V0Iiwib25UZW1wZXJhdHVyZUNoYW5nZSIsIm9uVG9wUENoYW5nZSIsIm9uQmFzZVVybENoYW5nZSIsIm9uTWFwYm94VG9rZW5DaGFuZ2UiLCJvbk9sbGFtYU1vZGVsSW5wdXRDaGVja2VkIiwiY2hlY2tlZCIsIm9uT2xsYW1hTW9kZWxJbnB1dFZhbHVlQ2hhbmdlIiwib25TdGFydENoYXQiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ0aW1lb3V0UHJvbWlzZSIsIkFzc2lzdGFudE1vZGVsIiwic3VjY2VzcyIsIl9lcnJvck1lc3NhZ2UiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiUHJvbWlzZSIsIl8iLCJyZWplY3QiLCJzZXRUaW1lb3V0IiwiRXJyb3IiLCJHZXRBc3Npc3RhbnRNb2RlbEJ5UHJvdmlkZXIiLCJyYWNlIiwidGVzdENvbm5lY3Rpb24iLCJzZW50IiwidXBkYXRlQWlBc3Npc3RhbnRDb25maWciLCJpc1JlYWR5IiwidDAiLCJtZXNzYWdlIiwiZmluaXNoIiwic3RvcCIsImFwcGx5IiwiYXJndW1lbnRzIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIlBhbmVsTGFiZWxXcmFwcGVyIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwic2VsZWN0ZWRJdGVtcyIsIm9wdGlvbnMiLCJrZXlzIiwibXVsdGlTZWxlY3QiLCJkaXNhYmxlZCIsIm9uQ2hhbmdlIiwiZmlsdGVyT3B0aW9uIiwiZ2V0T3B0aW9uVmFsdWUiLCJvcCIsImRpc3BsYXlPcHRpb24iLCJzZWFyY2hhYmxlIiwic2hvd0Fycm93IiwicGxhY2Vob2xkZXIiLCJzdHlsZSIsIndpZHRoIiwiQ2hlY2tib3giLCJsYWJlbCIsIklucHV0IiwidHlwZSIsIkZyYWdtZW50IiwiaGVpZ2h0IiwiZm9ybWF0TWVzc2FnZSIsInNob3dJbnB1dCIsImlzUmFuZ2VkIiwidmFsdWUwIiwidmFsdWUxIiwicmFuZ2UiLCJzdGVwIiwiQnV0dG9uIiwib25DbGljayIsIkxvYWRpbmdTcGlubmVyIiwic2l6ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2FpLWFzc2lzdGFudC1jb25maWcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7dXNlU2VsZWN0b3IsIHVzZURpc3BhdGNofSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQge1xuICBJbnB1dCxcbiAgUGFuZWxMYWJlbFdyYXBwZXIsXG4gIEl0ZW1TZWxlY3RvcixcbiAgUmFuZ2VTbGlkZXJGYWN0b3J5LFxuICBCdXR0b24sXG4gIExvYWRpbmdTcGlubmVyLFxuICBhcHBJbmplY3RvcixcbiAgQ2hlY2tib3hcbn0gZnJvbSAnQGtlcGxlci5nbC9jb21wb25lbnRzJztcbmltcG9ydCB7U3RhdGV9IGZyb20gJy4uL2luZGV4JztcbmltcG9ydCBBcGlLZXkgZnJvbSAnLi4vaWNvbnMvYXBpLWtleSc7XG5pbXBvcnQge1BST1ZJREVSX01PREVMU30gZnJvbSAnLi4vY29uZmlnL21vZGVscyc7XG5pbXBvcnQge3VzZUxvY2FsU3RvcmFnZX0gZnJvbSAndXNlaG9va3MtdHMnO1xuaW1wb3J0IHtHZXRBc3Npc3RhbnRNb2RlbEJ5UHJvdmlkZXJ9IGZyb20gJ0BvcGVuYXNzaXN0YW50L2NvcmUnO1xuaW1wb3J0IHt1cGRhdGVBaUFzc2lzdGFudENvbmZpZ30gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2UsIHVzZUludGx9IGZyb20gJ3JlYWN0LWludGwnO1xuXG5jb25zdCBTZWN0aW9uVGl0bGUgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRGb250U2l6ZX07XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVmZmVjdFBhbmVsVGV4dFNlY29uZGFyeTF9O1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbmA7XG5cbmNvbnN0IFN0eWxlZEFpQXNzaXN0YW50Q29uZmlnID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZzogMTJweDtcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnByaW1hcnlCdG5Gb250U2l6ZURlZmF1bHR9O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEycHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG5cbiAgLmFwaS1rZXktaW5wdXQge1xuICAgIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm94U2hhZG93fTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAuYXBpLWtleS1pbnB1dF9faWNvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZ2VvY29kZXJJbnB1dEhlaWdodH1weDtcbiAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiA2cHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICBwYWRkaW5nOiA0cHggMzZweDtcbiAgICAgIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5nZW9jb2RlcklucHV0SGVpZ2h0fXB4O1xuICAgICAgY2FyZXQtY29sb3I6IHVuc2V0O1xuICAgIH1cbiAgfVxuYDtcblxuLy8gT2xsYW1hIG1vZGVsIGlucHV0IHdyYXBwZXI6IGNoZWNrYm94ICsgJ0lucHV0IE1vZGVsIE5hbWU6JyArIGlucHV0XG4vLyBhbGwgY2hpbGRyZW4gZWxlbWVudCBoYXZlIHdpZHRoIGJhc2VkIG9uIHRoZSBjb250ZW50XG5jb25zdCBPbGxhbWFNb2RlbElucHV0V3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGdhcDogNHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuYDtcblxuY29uc3QgU3R5bGVkV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFN0eWxlZEl0ZW1TZWxlY3RvciA9IHN0eWxlZChJdGVtU2VsZWN0b3IpYFxuICAuaXRlbS1zZWxlY3Rvcl9fZHJvcGRvd24ge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cbiAgLmFjdGl2ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDBweCAwcHggIWltcG9ydGFudDtcbiAgfVxuICB3aWR0aDogMTAwJTtcbmA7XG5cbmNvbnN0IFN0eWxlU2xpZGVyV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBoZWlnaHQ6IDMycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC5rZy1yYW5nZS1zbGlkZXJfX2lucHV0IHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gIH1cbiAgLmtnLXNsaWRlciB7XG4gICAgcGFkZGluZy1sZWZ0OiA2cHg7XG4gIH1cbiAgLmtnLXJhbmdlLXNsaWRlciB7XG4gICAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZEJ1dHRvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBtYXJnaW4tdG9wOiAxMnB4O1xuXG4gIGJ1dHRvbiBkaXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVFcnJvck1lc3NhZ2UgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucHJpbWFyeUJ0bkZvbnRTaXplRGVmYXVsdH07XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZXJyb3JDb2xvcn07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZXJyb3JUZXh0Q29sb3J9O1xuYDtcblxuY29uc3QgUmFuZ2VTbGlkZXIgPSBhcHBJbmplY3Rvci5nZXQoUmFuZ2VTbGlkZXJGYWN0b3J5KTtcblxuZXhwb3J0IGZ1bmN0aW9uIEFpQXNzaXN0YW50Q29uZmlnKCkge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IGFpQXNzaXN0YW50Q29uZmlnID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBTdGF0ZSkgPT4gc3RhdGUuZGVtby5haUFzc2lzdGFudC5jb25maWcpO1xuICBjb25zdCBpbnRsID0gdXNlSW50bCgpO1xuXG4gIGNvbnN0IFtwcm92aWRlciwgc2V0UHJvdmlkZXJdID0gdXNlTG9jYWxTdG9yYWdlKFxuICAgICdhaS1hc3Npc3RhbnQtcHJvdmlkZXInLFxuICAgIGFpQXNzaXN0YW50Q29uZmlnLnByb3ZpZGVyIHx8ICdvcGVuYWknXG4gICk7XG4gIGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlTG9jYWxTdG9yYWdlKFxuICAgICdhaS1hc3Npc3RhbnQtbW9kZWwnLFxuICAgIGFpQXNzaXN0YW50Q29uZmlnLm1vZGVsIHx8IFBST1ZJREVSX01PREVMU1twcm92aWRlcl1bMF1cbiAgKTtcbiAgY29uc3QgW2FwaUtleSwgc2V0QXBpS2V5XSA9IHVzZUxvY2FsU3RvcmFnZShcbiAgICAnYWktYXNzaXN0YW50LWFwaS1rZXknLFxuICAgIGFpQXNzaXN0YW50Q29uZmlnLmFwaUtleSB8fCAnJ1xuICApO1xuICBjb25zdCBbdGVtcGVyYXR1cmUsIHNldFRlbXBlcmF0dXJlXSA9IHVzZUxvY2FsU3RvcmFnZShcbiAgICAnYWktYXNzaXN0YW50LXRlbXBlcmF0dXJlJyxcbiAgICBhaUFzc2lzdGFudENvbmZpZy50ZW1wZXJhdHVyZSB8fCAwLjBcbiAgKTtcbiAgY29uc3QgW3RvcFAsIHNldFRvcFBdID0gdXNlTG9jYWxTdG9yYWdlKCdhaS1hc3Npc3RhbnQtdG9wLXAnLCBhaUFzc2lzdGFudENvbmZpZy50b3BQIHx8IDEuMCk7XG4gIGNvbnN0IFtiYXNlVXJsLCBzZXRCYXNlVXJsXSA9IHVzZUxvY2FsU3RvcmFnZShcbiAgICAnYWktYXNzaXN0YW50LWJhc2UtdXJsJyxcbiAgICBhaUFzc2lzdGFudENvbmZpZy5iYXNlVXJsIHx8ICdodHRwOi8vbG9jYWxob3N0OjExNDM0L2FwaSdcbiAgKTtcbiAgY29uc3QgW21hcGJveFRva2VuLCBzZXRNYXBib3hUb2tlbl0gPSB1c2VMb2NhbFN0b3JhZ2UoXG4gICAgJ2FpLWFzc2lzdGFudC1tYXBib3gtdG9rZW4nLFxuICAgIGFpQXNzaXN0YW50Q29uZmlnLm1hcGJveFRva2VuIHx8ICcnXG4gICk7XG4gIGNvbnN0IFtvbGxhbWFNb2RlbElucHV0Q2hlY2tlZCwgc2V0T2xsYW1hTW9kZWxJbnB1dENoZWNrZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbb2xsYW1hTW9kZWxJbnB1dFZhbHVlLCBzZXRPbGxhbWFNb2RlbElucHV0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbY29ubmVjdGlvbkVycm9yLCBzZXRDb25uZWN0aW9uRXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZXJyb3JNZXNzYWdlLCBzZXRFcnJvck1lc3NhZ2VdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbaXNSdW5uaW5nLCBzZXRJc1J1bm5pbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IG9uQWlQcm92aWRlclNlbGVjdCA9ICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdCB8IG51bGwpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgc2V0UHJvdmlkZXIodmFsdWUpO1xuICAgICAgc2V0TW9kZWwoUFJPVklERVJfTU9ERUxTW3ZhbHVlXVswXSk7XG4gICAgICBzZXRDb25uZWN0aW9uRXJyb3IoZmFsc2UpO1xuICAgICAgc2V0RXJyb3JNZXNzYWdlKCcnKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25MTE1Nb2RlbFNlbGVjdCA9ICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdCB8IG51bGwpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgc2V0TW9kZWwodmFsdWUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvbkFwaUtleUNoYW5nZSA9IChlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIHNldEFwaUtleShlLnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgcHJldmlvdXMga2V5IGVycm9yIGlmIGFueVxuICAgIHNldENvbm5lY3Rpb25FcnJvcihmYWxzZSk7XG4gICAgc2V0RXJyb3JNZXNzYWdlKCcnKTtcbiAgfTtcblxuICBjb25zdCBvblRlbXBlcmF0dXJlQ2hhbmdlID0gKHZhbHVlOiBudW1iZXJbXSkgPT4ge1xuICAgIHNldFRlbXBlcmF0dXJlKHZhbHVlWzFdKTtcbiAgfTtcblxuICBjb25zdCBvblRvcFBDaGFuZ2UgPSAodmFsdWU6IG51bWJlcltdKSA9PiB7XG4gICAgc2V0VG9wUCh2YWx1ZVsxXSk7XG4gIH07XG5cbiAgY29uc3Qgb25CYXNlVXJsQ2hhbmdlID0gKGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgc2V0QmFzZVVybChlLnRhcmdldC52YWx1ZSk7XG4gICAgc2V0Q29ubmVjdGlvbkVycm9yKGZhbHNlKTtcbiAgICBzZXRFcnJvck1lc3NhZ2UoJycpO1xuICB9O1xuXG4gIGNvbnN0IG9uTWFwYm94VG9rZW5DaGFuZ2UgPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBzZXRNYXBib3hUb2tlbihlLnRhcmdldC52YWx1ZSk7XG4gIH07XG5cbiAgY29uc3Qgb25PbGxhbWFNb2RlbElucHV0Q2hlY2tlZCA9IChlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIHNldE9sbGFtYU1vZGVsSW5wdXRDaGVja2VkKGUudGFyZ2V0LmNoZWNrZWQpO1xuICAgIGlmICghZS50YXJnZXQuY2hlY2tlZCkge1xuICAgICAgLy8gdXNlIG1vZGVsIGZyb20gc2VsZWN0b3JcbiAgICAgIHNldE1vZGVsKCcnKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25PbGxhbWFNb2RlbElucHV0VmFsdWVDaGFuZ2UgPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBzZXRPbGxhbWFNb2RlbElucHV0VmFsdWUoZS50YXJnZXQudmFsdWUpO1xuICAgIHNldE1vZGVsKGUudGFyZ2V0LnZhbHVlKTtcbiAgfTtcblxuICBjb25zdCBvblN0YXJ0Q2hhdCA9IGFzeW5jICgpID0+IHtcbiAgICBzZXRJc1J1bm5pbmcodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRpbWVvdXRQcm9taXNlID0gbmV3IFByb21pc2UoKF8sIHJlamVjdCkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdChuZXcgRXJyb3IoJ0Nvbm5lY3Rpb24gdGltZW91dCBhZnRlciAxNSBzZWNvbmRzJykpLCAxNTAwMCk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgQXNzaXN0YW50TW9kZWwgPSBHZXRBc3Npc3RhbnRNb2RlbEJ5UHJvdmlkZXIoe1xuICAgICAgICBwcm92aWRlcjogcHJvdmlkZXJcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzdWNjZXNzID0gKGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgICAgIEFzc2lzdGFudE1vZGVsPy50ZXN0Q29ubmVjdGlvbihhcGlLZXksIG1vZGVsKSxcbiAgICAgICAgdGltZW91dFByb21pc2VcbiAgICAgIF0pKSBhcyBib29sZWFuO1xuXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSAhc3VjY2Vzc1xuICAgICAgICA/IHByb3ZpZGVyID09PSAnb2xsYW1hJ1xuICAgICAgICAgID8gJ0Nvbm5lY3Rpb24gZmFpbGVkOiBtYXliZSBpbnZhbGlkIE9sbGFtYSBCYXNlIFVSTCdcbiAgICAgICAgICA6ICdDb25uZWN0aW9uIGZhaWxlZDogbWF5YmUgaW52YWxpZCBBUEkgS2V5J1xuICAgICAgICA6ICcnO1xuICAgICAgc2V0Q29ubmVjdGlvbkVycm9yKCFzdWNjZXNzKTtcbiAgICAgIHNldEVycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpO1xuICAgICAgZGlzcGF0Y2goXG4gICAgICAgIHVwZGF0ZUFpQXNzaXN0YW50Q29uZmlnKHtcbiAgICAgICAgICBwcm92aWRlcjogcHJvdmlkZXIsXG4gICAgICAgICAgbW9kZWw6IG1vZGVsLFxuICAgICAgICAgIGFwaUtleTogYXBpS2V5LFxuICAgICAgICAgIGJhc2VVcmw6IGJhc2VVcmwsXG4gICAgICAgICAgaXNSZWFkeTogc3VjY2VzcyxcbiAgICAgICAgICB0ZW1wZXJhdHVyZTogdGVtcGVyYXR1cmUsXG4gICAgICAgICAgdG9wUDogdG9wUCxcbiAgICAgICAgICBtYXBib3hUb2tlbjogbWFwYm94VG9rZW5cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHNldENvbm5lY3Rpb25FcnJvcih0cnVlKTtcbiAgICAgIHNldEVycm9yTWVzc2FnZShlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdDb25uZWN0aW9uIGZhaWxlZCcpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRJc1J1bm5pbmcoZmFsc2UpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRBaUFzc2lzdGFudENvbmZpZyBjbGFzc05hbWU9XCJhaS1hc3Npc3RhbnQtY29uZmlnX190eXBlXCI+XG4gICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgIDxTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJhaUFzc2lzdGFudE1hbmFnZXIuYWlQcm92aWRlclwiIC8+XG4gICAgICAgIDwvU2VjdGlvblRpdGxlPlxuICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgIDxTdHlsZWRXcmFwcGVyPlxuICAgICAgICA8U3R5bGVkSXRlbVNlbGVjdG9yXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcz17cHJvdmlkZXJ9XG4gICAgICAgICAgb3B0aW9ucz17T2JqZWN0LmtleXMoUFJPVklERVJfTU9ERUxTKX1cbiAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkFpUHJvdmlkZXJTZWxlY3R9XG4gICAgICAgICAgZmlsdGVyT3B0aW9uPVwibmFtZVwiXG4gICAgICAgICAgZ2V0T3B0aW9uVmFsdWU9e29wID0+IG9wfVxuICAgICAgICAgIGRpc3BsYXlPcHRpb249e29wID0+IG9wfVxuICAgICAgICAgIHNlYXJjaGFibGU9e2ZhbHNlfVxuICAgICAgICAgIHNob3dBcnJvdz17dHJ1ZX1cbiAgICAgICAgLz5cbiAgICAgIDwvU3R5bGVkV3JhcHBlcj5cbiAgICAgIDxQYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgPFNlY3Rpb25UaXRsZT5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImFpQXNzaXN0YW50TWFuYWdlci5sbG1Nb2RlbC50aXRsZVwiIC8+XG4gICAgICAgIDwvU2VjdGlvblRpdGxlPlxuICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgIHsoKHByb3ZpZGVyID09PSAnb2xsYW1hJyAmJiAhb2xsYW1hTW9kZWxJbnB1dENoZWNrZWQpIHx8IHByb3ZpZGVyICE9PSAnb2xsYW1hJykgJiYgKFxuICAgICAgICA8U3R5bGVkV3JhcHBlcj5cbiAgICAgICAgICA8U3R5bGVkSXRlbVNlbGVjdG9yXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXttb2RlbH1cbiAgICAgICAgICAgIG9wdGlvbnM9e1BST1ZJREVSX01PREVMU1twcm92aWRlcl19XG4gICAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgICBkaXNhYmxlZD17cHJvdmlkZXIgPT09ICdvbGxhbWEnID8gb2xsYW1hTW9kZWxJbnB1dENoZWNrZWQgOiBmYWxzZX1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IExMTSBNb2RlbFwiXG4gICAgICAgICAgICBvbkNoYW5nZT17b25MTE1Nb2RlbFNlbGVjdH1cbiAgICAgICAgICAgIGZpbHRlck9wdGlvbj1cIm5hbWVcIlxuICAgICAgICAgICAgZ2V0T3B0aW9uVmFsdWU9e29wID0+IG9wfVxuICAgICAgICAgICAgZGlzcGxheU9wdGlvbj17b3AgPT4gb3B9XG4gICAgICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgICAgIHNob3dBcnJvdz17dHJ1ZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1N0eWxlZFdyYXBwZXI+XG4gICAgICApfVxuICAgICAge3Byb3ZpZGVyID09PSAnb2xsYW1hJyAmJiAoXG4gICAgICAgIDxPbGxhbWFNb2RlbElucHV0V3JhcHBlcj5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7d2lkdGg6ICcyNTBweCd9fT5cbiAgICAgICAgICAgIDxDaGVja2JveFxuICAgICAgICAgICAgICBpZD1cIm9sbGFtYS1tb2RlbC1pbnB1dFwiXG4gICAgICAgICAgICAgIGxhYmVsPVwiSW5wdXQgTW9kZWwgTmFtZVwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbk9sbGFtYU1vZGVsSW5wdXRDaGVja2VkfVxuICAgICAgICAgICAgICBjaGVja2VkPXtvbGxhbWFNb2RlbElucHV0Q2hlY2tlZH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBvbkNoYW5nZT17b25PbGxhbWFNb2RlbElucHV0VmFsdWVDaGFuZ2V9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIE1vZGVsIE5hbWVcIlxuICAgICAgICAgICAgdmFsdWU9e29sbGFtYU1vZGVsSW5wdXRWYWx1ZX1cbiAgICAgICAgICAgIGRpc2FibGVkPXshb2xsYW1hTW9kZWxJbnB1dENoZWNrZWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9PbGxhbWFNb2RlbElucHV0V3JhcHBlcj5cbiAgICAgICl9XG4gICAgICB7cHJvdmlkZXIgIT09ICdvbGxhbWEnID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxQYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgIDxTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwiYWlBc3Npc3RhbnRNYW5hZ2VyLmFwaUtleS5wbGFjZWhvbGRlclwiIC8+XG4gICAgICAgICAgICA8L1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICA8L1BhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXBpLWtleS1pbnB1dFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhcGkta2V5LWlucHV0X19pY29uXCI+XG4gICAgICAgICAgICAgIDxBcGlLZXkgaGVpZ2h0PVwiMjBweFwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkFwaUtleUNoYW5nZX1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdhaUFzc2lzdGFudE1hbmFnZXIuYXBpS2V5LnBsYWNlaG9sZGVyJ30pfVxuICAgICAgICAgICAgICB2YWx1ZT17YXBpS2V5fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC8+XG4gICAgICApIDogKFxuICAgICAgICA8PlxuICAgICAgICAgIDxQYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgIDxTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwiYWlBc3Npc3RhbnRNYW5hZ2VyLmJhc2VVcmwucGxhY2Vob2xkZXJcIiAvPlxuICAgICAgICAgICAgPC9TZWN0aW9uVGl0bGU+XG4gICAgICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFwaS1rZXktaW5wdXRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXBpLWtleS1pbnB1dF9faWNvblwiPlxuICAgICAgICAgICAgICA8QXBpS2V5IGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17b25CYXNlVXJsQ2hhbmdlfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ2FpQXNzaXN0YW50TWFuYWdlci5iYXNlVXJsLnBsYWNlaG9sZGVyJ30pfVxuICAgICAgICAgICAgICB2YWx1ZT17YmFzZVVybH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPlxuICAgICAgKX1cbiAgICAgIHtjb25uZWN0aW9uRXJyb3IgJiYgKFxuICAgICAgICA8U3R5bGVFcnJvck1lc3NhZ2UgY2xhc3NOYW1lPVwiZXJyb3ItbWVzc2FnZVwiPntlcnJvck1lc3NhZ2V9PC9TdHlsZUVycm9yTWVzc2FnZT5cbiAgICAgICl9XG4gICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgIDxTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJhaUFzc2lzdGFudE1hbmFnZXIudGVtcGVyYXR1cmUudGl0bGVcIiAvPlxuICAgICAgICA8L1NlY3Rpb25UaXRsZT5cbiAgICAgIDwvUGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICA8U3R5bGVTbGlkZXJXcmFwcGVyPlxuICAgICAgICA8UmFuZ2VTbGlkZXJcbiAgICAgICAgICBzaG93SW5wdXQ9e3RydWV9XG4gICAgICAgICAgaXNSYW5nZWQ9e2ZhbHNlfVxuICAgICAgICAgIHZhbHVlMD17MH1cbiAgICAgICAgICB2YWx1ZTE9e3RlbXBlcmF0dXJlfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvblRlbXBlcmF0dXJlQ2hhbmdlfVxuICAgICAgICAgIHJhbmdlPXtbMCwgMl19XG4gICAgICAgICAgc3RlcD17MC4xfVxuICAgICAgICAvPlxuICAgICAgPC9TdHlsZVNsaWRlcldyYXBwZXI+XG4gICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgIDxTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJhaUFzc2lzdGFudE1hbmFnZXIudG9wUC50aXRsZVwiIC8+XG4gICAgICAgIDwvU2VjdGlvblRpdGxlPlxuICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgIDxTdHlsZVNsaWRlcldyYXBwZXI+XG4gICAgICAgIDxSYW5nZVNsaWRlclxuICAgICAgICAgIHNob3dJbnB1dD17dHJ1ZX1cbiAgICAgICAgICBpc1JhbmdlZD17ZmFsc2V9XG4gICAgICAgICAgdmFsdWUwPXswfVxuICAgICAgICAgIHZhbHVlMT17dG9wUH1cbiAgICAgICAgICBvbkNoYW5nZT17b25Ub3BQQ2hhbmdlfVxuICAgICAgICAgIHJhbmdlPXtbMCwgMV19XG4gICAgICAgICAgc3RlcD17MC4xfVxuICAgICAgICAvPlxuICAgICAgPC9TdHlsZVNsaWRlcldyYXBwZXI+XG4gICAgICA8PlxuICAgICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgICAgPFNlY3Rpb25UaXRsZT5NYXBib3ggVG9rZW4gKG9wdGlvbmFsIGZvciByb3V0ZS9pc29jaHJvbmUpPC9TZWN0aW9uVGl0bGU+XG4gICAgICAgIDwvUGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXBpLWtleS1pbnB1dFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXBpLWtleS1pbnB1dF9faWNvblwiPlxuICAgICAgICAgICAgPEFwaUtleSBoZWlnaHQ9XCIyMHB4XCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIG9uQ2hhbmdlPXtvbk1hcGJveFRva2VuQ2hhbmdlfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciB5b3VyIE1hcGJveCBUb2tlblwiXG4gICAgICAgICAgICB2YWx1ZT17bWFwYm94VG9rZW59XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICAgIDxTdHlsZWRCdXR0b24+XG4gICAgICAgIDxCdXR0b24gb25DbGljaz17b25TdGFydENoYXR9IHdpZHRoPXsnMTAwJSd9PlxuICAgICAgICAgIHtpc1J1bm5pbmcgJiYgPExvYWRpbmdTcGlubmVyIHNpemU9ezEyfSAvPn1cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImFpQXNzaXN0YW50TWFuYWdlci5zdGFydENoYXRcIiAvPlxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgIDwvU3R5bGVkQnV0dG9uPlxuICAgIDwvU3R5bGVkQWlBc3Npc3RhbnRDb25maWc+XG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFXQSxJQUFBSyxPQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxXQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxLQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxRQUFB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
|
|
353
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RSZWR1eCIsIl9jb21wb25lbnRzIiwiX2FwaUtleSIsIl9tb2RlbHMiLCJfdXNlaG9va3NUcyIsIl9jb3JlIiwiX2FjdGlvbnMiLCJfcmVhY3RJbnRsIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl90ZW1wbGF0ZU9iamVjdDYiLCJfdGVtcGxhdGVPYmplY3Q3IiwiX3RlbXBsYXRlT2JqZWN0OCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlNlY3Rpb25UaXRsZSIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsImlucHV0Rm9udFNpemUiLCJlZmZlY3RQYW5lbFRleHRTZWNvbmRhcnkxIiwiU3R5bGVkQWlBc3Npc3RhbnRDb25maWciLCJwcmltYXJ5QnRuRm9udFNpemVEZWZhdWx0IiwiYm94U2hhZG93IiwiZ2VvY29kZXJJbnB1dEhlaWdodCIsInN1YnRleHRDb2xvciIsIk9sbGFtYU1vZGVsSW5wdXRXcmFwcGVyIiwiU3R5bGVkV3JhcHBlciIsIlN0eWxlZEl0ZW1TZWxlY3RvciIsIkl0ZW1TZWxlY3RvciIsImFjdGl2ZUNvbG9yIiwiU3R5bGVTbGlkZXJXcmFwcGVyIiwiU3R5bGVkQnV0dG9uIiwiU3R5bGVFcnJvck1lc3NhZ2UiLCJlcnJvckNvbG9yIiwiZXJyb3JUZXh0Q29sb3IiLCJSYW5nZVNsaWRlciIsImFwcEluamVjdG9yIiwiUmFuZ2VTbGlkZXJGYWN0b3J5IiwiQWlBc3Npc3RhbnRDb25maWciLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwiYWlBc3Npc3RhbnRDb25maWciLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwiZGVtbyIsImFpQXNzaXN0YW50IiwiY29uZmlnIiwiaW50bCIsInVzZUludGwiLCJfdXNlTG9jYWxTdG9yYWdlIiwidXNlTG9jYWxTdG9yYWdlIiwicHJvdmlkZXIiLCJfdXNlTG9jYWxTdG9yYWdlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldFByb3ZpZGVyIiwiX3VzZUxvY2FsU3RvcmFnZTMiLCJtb2RlbCIsIlBST1ZJREVSX01PREVMUyIsIl91c2VMb2NhbFN0b3JhZ2U0Iiwic2V0TW9kZWwiLCJfdXNlTG9jYWxTdG9yYWdlNSIsImFwaUtleSIsIl91c2VMb2NhbFN0b3JhZ2U2Iiwic2V0QXBpS2V5IiwiX3VzZUxvY2FsU3RvcmFnZTciLCJ0ZW1wZXJhdHVyZSIsIl91c2VMb2NhbFN0b3JhZ2U4Iiwic2V0VGVtcGVyYXR1cmUiLCJfdXNlTG9jYWxTdG9yYWdlOSIsInRvcFAiLCJfdXNlTG9jYWxTdG9yYWdlMTAiLCJzZXRUb3BQIiwiX3VzZUxvY2FsU3RvcmFnZTExIiwiYmFzZVVybCIsIlBST1ZJREVSX0RFRkFVTFRfQkFTRV9VUkxTIiwiX3VzZUxvY2FsU3RvcmFnZTEyIiwic2V0QmFzZVVybCIsIl91c2VMb2NhbFN0b3JhZ2UxMyIsIm1hcGJveFRva2VuIiwiX3VzZUxvY2FsU3RvcmFnZTE0Iiwic2V0TWFwYm94VG9rZW4iLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJvbGxhbWFNb2RlbElucHV0Q2hlY2tlZCIsInNldE9sbGFtYU1vZGVsSW5wdXRDaGVja2VkIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJvbGxhbWFNb2RlbElucHV0VmFsdWUiLCJzZXRPbGxhbWFNb2RlbElucHV0VmFsdWUiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImNvbm5lY3Rpb25FcnJvciIsInNldENvbm5lY3Rpb25FcnJvciIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiZXJyb3JNZXNzYWdlIiwic2V0RXJyb3JNZXNzYWdlIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwiaXNSdW5uaW5nIiwic2V0SXNSdW5uaW5nIiwib25BaVByb3ZpZGVyU2VsZWN0IiwidmFsdWUiLCJvbkxMTU1vZGVsU2VsZWN0Iiwib25BcGlLZXlDaGFuZ2UiLCJ0YXJnZXQiLCJvblRlbXBlcmF0dXJlQ2hhbmdlIiwib25Ub3BQQ2hhbmdlIiwib25CYXNlVXJsQ2hhbmdlIiwib25NYXBib3hUb2tlbkNoYW5nZSIsIm9uT2xsYW1hTW9kZWxJbnB1dENoZWNrZWQiLCJjaGVja2VkIiwib25PbGxhbWFNb2RlbElucHV0VmFsdWVDaGFuZ2UiLCJvblN0YXJ0Q2hhdCIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsInRpbWVvdXRQcm9taXNlIiwiQXNzaXN0YW50TW9kZWwiLCJzdWNjZXNzIiwiX2Vycm9yTWVzc2FnZSIsIndyYXAiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJQcm9taXNlIiwiXyIsInJlamVjdCIsInNldFRpbWVvdXQiLCJFcnJvciIsIkdldEFzc2lzdGFudE1vZGVsQnlQcm92aWRlciIsInNlbnQiLCJjb25maWd1cmUiLCJ0ZXN0Q29ubmVjdGlvbiIsImJhc2VVUkwiLCJOdW1iZXIiLCJyYWNlIiwidXBkYXRlQWlBc3Npc3RhbnRDb25maWciLCJpc1JlYWR5IiwidDAiLCJtZXNzYWdlIiwiZmluaXNoIiwic3RvcCIsImFwcGx5IiwiYXJndW1lbnRzIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIlBhbmVsTGFiZWxXcmFwcGVyIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwic2VsZWN0ZWRJdGVtcyIsIm9wdGlvbnMiLCJrZXlzIiwibXVsdGlTZWxlY3QiLCJkaXNhYmxlZCIsIm9uQ2hhbmdlIiwiZmlsdGVyT3B0aW9uIiwiZ2V0T3B0aW9uVmFsdWUiLCJvcCIsImRpc3BsYXlPcHRpb24iLCJzZWFyY2hhYmxlIiwic2hvd0Fycm93IiwicGxhY2Vob2xkZXIiLCJzdHlsZSIsIndpZHRoIiwiQ2hlY2tib3giLCJsYWJlbCIsIklucHV0IiwidHlwZSIsIkZyYWdtZW50IiwiaGVpZ2h0IiwiZm9ybWF0TWVzc2FnZSIsInNob3dJbnB1dCIsImlzUmFuZ2VkIiwidmFsdWUwIiwidmFsdWUxIiwicmFuZ2UiLCJzdGVwIiwiQnV0dG9uIiwib25DbGljayIsIkxvYWRpbmdTcGlubmVyIiwic2l6ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2FpLWFzc2lzdGFudC1jb25maWcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7dXNlU2VsZWN0b3IsIHVzZURpc3BhdGNofSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQge1xuICBJbnB1dCxcbiAgUGFuZWxMYWJlbFdyYXBwZXIsXG4gIEl0ZW1TZWxlY3RvcixcbiAgUmFuZ2VTbGlkZXJGYWN0b3J5LFxuICBCdXR0b24sXG4gIExvYWRpbmdTcGlubmVyLFxuICBhcHBJbmplY3RvcixcbiAgQ2hlY2tib3hcbn0gZnJvbSAnQGtlcGxlci5nbC9jb21wb25lbnRzJztcbmltcG9ydCB7U3RhdGV9IGZyb20gJy4uL2luZGV4JztcbmltcG9ydCBBcGlLZXkgZnJvbSAnLi4vaWNvbnMvYXBpLWtleSc7XG5pbXBvcnQge1BST1ZJREVSX01PREVMUywgUFJPVklERVJfREVGQVVMVF9CQVNFX1VSTFN9IGZyb20gJy4uL2NvbmZpZy9tb2RlbHMnO1xuaW1wb3J0IHt1c2VMb2NhbFN0b3JhZ2V9IGZyb20gJ3VzZWhvb2tzLXRzJztcbmltcG9ydCB7R2V0QXNzaXN0YW50TW9kZWxCeVByb3ZpZGVyfSBmcm9tICdAb3BlbmFzc2lzdGFudC9jb3JlJztcbmltcG9ydCB7dXBkYXRlQWlBc3Npc3RhbnRDb25maWd9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlLCB1c2VJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcblxuY29uc3QgU2VjdGlvblRpdGxlID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Rm9udFNpemV9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5lZmZlY3RQYW5lbFRleHRTZWNvbmRhcnkxfTtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG5gO1xuXG5jb25zdCBTdHlsZWRBaUFzc2lzdGFudENvbmZpZyA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmc6IDEycHg7XG4gIGZvbnQtc2l6ZTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wcmltYXJ5QnRuRm9udFNpemVEZWZhdWx0fTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMnB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuXG4gIC5hcGkta2V5LWlucHV0IHtcbiAgICBib3gtc2hhZG93OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmJveFNoYWRvd307XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLmFwaS1rZXktaW5wdXRfX2ljb24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmdlb2NvZGVySW5wdXRIZWlnaHR9cHg7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIHBhZGRpbmctbGVmdDogNnB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgcGFkZGluZzogNHB4IDM2cHg7XG4gICAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZ2VvY29kZXJJbnB1dEhlaWdodH1weDtcbiAgICAgIGNhcmV0LWNvbG9yOiB1bnNldDtcbiAgICB9XG4gIH1cbmA7XG5cbi8vIE9sbGFtYSBtb2RlbCBpbnB1dCB3cmFwcGVyOiBjaGVja2JveCArICdJbnB1dCBNb2RlbCBOYW1lOicgKyBpbnB1dFxuLy8gYWxsIGNoaWxkcmVuIGVsZW1lbnQgaGF2ZSB3aWR0aCBiYXNlZCBvbiB0aGUgY29udGVudFxuY29uc3QgT2xsYW1hTW9kZWxJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBnYXA6IDRweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFN0eWxlZFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBTdHlsZWRJdGVtU2VsZWN0b3IgPSBzdHlsZWQoSXRlbVNlbGVjdG9yKWBcbiAgLml0ZW0tc2VsZWN0b3JfX2Ryb3Bkb3duIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG4gIC5hY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5hY3RpdmVDb2xvcn07XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwcHggMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgd2lkdGg6IDEwMCU7XG5gO1xuXG5jb25zdCBTdHlsZVNsaWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAua2ctcmFuZ2Utc2xpZGVyX19pbnB1dCB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAzcHggNnB4O1xuICB9XG4gIC5rZy1zbGlkZXIge1xuICAgIHBhZGRpbmctbGVmdDogNnB4O1xuICB9XG4gIC5rZy1yYW5nZS1zbGlkZXIge1xuICAgIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRCdXR0b24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgbWFyZ2luLXRvcDogMTJweDtcblxuICBidXR0b24gZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlRXJyb3JNZXNzYWdlID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnByaW1hcnlCdG5Gb250U2l6ZURlZmF1bHR9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVycm9yQ29sb3J9O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVycm9yVGV4dENvbG9yfTtcbmA7XG5cbmNvbnN0IFJhbmdlU2xpZGVyID0gYXBwSW5qZWN0b3IuZ2V0KFJhbmdlU2xpZGVyRmFjdG9yeSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBBaUFzc2lzdGFudENvbmZpZygpIHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBhaUFzc2lzdGFudENvbmZpZyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogU3RhdGUpID0+IHN0YXRlLmRlbW8uYWlBc3Npc3RhbnQuY29uZmlnKTtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcblxuICBjb25zdCBbcHJvdmlkZXIsIHNldFByb3ZpZGVyXSA9IHVzZUxvY2FsU3RvcmFnZShcbiAgICAnYWktYXNzaXN0YW50LXByb3ZpZGVyJyxcbiAgICBhaUFzc2lzdGFudENvbmZpZy5wcm92aWRlciB8fCAnb3BlbmFpJ1xuICApO1xuICBjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZUxvY2FsU3RvcmFnZShcbiAgICAnYWktYXNzaXN0YW50LW1vZGVsJyxcbiAgICBhaUFzc2lzdGFudENvbmZpZy5tb2RlbCB8fCBQUk9WSURFUl9NT0RFTFNbcHJvdmlkZXJdWzBdXG4gICk7XG4gIGNvbnN0IFthcGlLZXksIHNldEFwaUtleV0gPSB1c2VMb2NhbFN0b3JhZ2UoXG4gICAgJ2FpLWFzc2lzdGFudC1hcGkta2V5JyxcbiAgICBhaUFzc2lzdGFudENvbmZpZy5hcGlLZXkgfHwgJydcbiAgKTtcbiAgY29uc3QgW3RlbXBlcmF0dXJlLCBzZXRUZW1wZXJhdHVyZV0gPSB1c2VMb2NhbFN0b3JhZ2UoXG4gICAgJ2FpLWFzc2lzdGFudC10ZW1wZXJhdHVyZScsXG4gICAgYWlBc3Npc3RhbnRDb25maWcudGVtcGVyYXR1cmUgfHwgMC4wXG4gICk7XG4gIGNvbnN0IFt0b3BQLCBzZXRUb3BQXSA9IHVzZUxvY2FsU3RvcmFnZSgnYWktYXNzaXN0YW50LXRvcC1wJywgYWlBc3Npc3RhbnRDb25maWcudG9wUCB8fCAxLjApO1xuICBjb25zdCBbYmFzZVVybCwgc2V0QmFzZVVybF0gPSB1c2VMb2NhbFN0b3JhZ2UoXG4gICAgJ2FpLWFzc2lzdGFudC1iYXNlLXVybCcsXG4gICAgYWlBc3Npc3RhbnRDb25maWcuYmFzZVVybCB8fCBQUk9WSURFUl9ERUZBVUxUX0JBU0VfVVJMU1twcm92aWRlcl1cbiAgKTtcbiAgY29uc3QgW21hcGJveFRva2VuLCBzZXRNYXBib3hUb2tlbl0gPSB1c2VMb2NhbFN0b3JhZ2UoXG4gICAgJ2FpLWFzc2lzdGFudC1tYXBib3gtdG9rZW4nLFxuICAgIGFpQXNzaXN0YW50Q29uZmlnLm1hcGJveFRva2VuIHx8ICcnXG4gICk7XG4gIGNvbnN0IFtvbGxhbWFNb2RlbElucHV0Q2hlY2tlZCwgc2V0T2xsYW1hTW9kZWxJbnB1dENoZWNrZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbb2xsYW1hTW9kZWxJbnB1dFZhbHVlLCBzZXRPbGxhbWFNb2RlbElucHV0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbY29ubmVjdGlvbkVycm9yLCBzZXRDb25uZWN0aW9uRXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZXJyb3JNZXNzYWdlLCBzZXRFcnJvck1lc3NhZ2VdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbaXNSdW5uaW5nLCBzZXRJc1J1bm5pbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IG9uQWlQcm92aWRlclNlbGVjdCA9ICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdCB8IG51bGwpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgc2V0UHJvdmlkZXIodmFsdWUpO1xuICAgICAgc2V0TW9kZWwoUFJPVklERVJfTU9ERUxTW3ZhbHVlXVswXSk7XG4gICAgICBzZXRCYXNlVXJsKFBST1ZJREVSX0RFRkFVTFRfQkFTRV9VUkxTW3ZhbHVlXSk7XG4gICAgICBzZXRDb25uZWN0aW9uRXJyb3IoZmFsc2UpO1xuICAgICAgc2V0RXJyb3JNZXNzYWdlKCcnKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25MTE1Nb2RlbFNlbGVjdCA9ICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdCB8IG51bGwpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgc2V0TW9kZWwodmFsdWUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvbkFwaUtleUNoYW5nZSA9IChlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIHNldEFwaUtleShlLnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgcHJldmlvdXMga2V5IGVycm9yIGlmIGFueVxuICAgIHNldENvbm5lY3Rpb25FcnJvcihmYWxzZSk7XG4gICAgc2V0RXJyb3JNZXNzYWdlKCcnKTtcbiAgfTtcblxuICBjb25zdCBvblRlbXBlcmF0dXJlQ2hhbmdlID0gKHZhbHVlOiBudW1iZXJbXSkgPT4ge1xuICAgIHNldFRlbXBlcmF0dXJlKHZhbHVlWzFdKTtcbiAgfTtcblxuICBjb25zdCBvblRvcFBDaGFuZ2UgPSAodmFsdWU6IG51bWJlcltdKSA9PiB7XG4gICAgc2V0VG9wUCh2YWx1ZVsxXSk7XG4gIH07XG5cbiAgY29uc3Qgb25CYXNlVXJsQ2hhbmdlID0gKGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgc2V0QmFzZVVybChlLnRhcmdldC52YWx1ZSk7XG4gICAgc2V0Q29ubmVjdGlvbkVycm9yKGZhbHNlKTtcbiAgICBzZXRFcnJvck1lc3NhZ2UoJycpO1xuICB9O1xuXG4gIGNvbnN0IG9uTWFwYm94VG9rZW5DaGFuZ2UgPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBzZXRNYXBib3hUb2tlbihlLnRhcmdldC52YWx1ZSk7XG4gIH07XG5cbiAgY29uc3Qgb25PbGxhbWFNb2RlbElucHV0Q2hlY2tlZCA9IChlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIHNldE9sbGFtYU1vZGVsSW5wdXRDaGVja2VkKGUudGFyZ2V0LmNoZWNrZWQpO1xuICAgIGlmICghZS50YXJnZXQuY2hlY2tlZCkge1xuICAgICAgLy8gdXNlIG1vZGVsIGZyb20gc2VsZWN0b3JcbiAgICAgIHNldE1vZGVsKCcnKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25PbGxhbWFNb2RlbElucHV0VmFsdWVDaGFuZ2UgPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBzZXRPbGxhbWFNb2RlbElucHV0VmFsdWUoZS50YXJnZXQudmFsdWUpO1xuICAgIHNldE1vZGVsKGUudGFyZ2V0LnZhbHVlKTtcbiAgfTtcblxuICBjb25zdCBvblN0YXJ0Q2hhdCA9IGFzeW5jICgpID0+IHtcbiAgICBzZXRJc1J1bm5pbmcodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRpbWVvdXRQcm9taXNlID0gbmV3IFByb21pc2UoKF8sIHJlamVjdCkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdChuZXcgRXJyb3IoJ0Nvbm5lY3Rpb24gdGltZW91dCBhZnRlciAxNSBzZWNvbmRzJykpLCAxNTAwMCk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgQXNzaXN0YW50TW9kZWwgPSBhd2FpdCBHZXRBc3Npc3RhbnRNb2RlbEJ5UHJvdmlkZXIoe1xuICAgICAgICBwcm92aWRlcjogcHJvdmlkZXJcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoIUFzc2lzdGFudE1vZGVsIHx8ICFBc3Npc3RhbnRNb2RlbC5jb25maWd1cmUgfHwgIUFzc2lzdGFudE1vZGVsLnRlc3RDb25uZWN0aW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGluaXRpYWxpemUgQUkgbW9kZWwnKTtcbiAgICAgIH1cblxuICAgICAgLy8gY29uZmlndXJlIG1vZGVsXG4gICAgICBBc3Npc3RhbnRNb2RlbC5jb25maWd1cmUoe1xuICAgICAgICBtb2RlbDogbW9kZWwsXG4gICAgICAgIGJhc2VVUkw6IGJhc2VVcmwgfHwgUFJPVklERVJfREVGQVVMVF9CQVNFX1VSTFNbcHJvdmlkZXJdLFxuICAgICAgICBhcGlLZXk6IGFwaUtleSxcbiAgICAgICAgdGVtcGVyYXR1cmU6IE51bWJlcih0ZW1wZXJhdHVyZSksXG4gICAgICAgIHRvcFA6IE51bWJlcih0b3BQKVxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSAoYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICAgICAgQXNzaXN0YW50TW9kZWwudGVzdENvbm5lY3Rpb24oYXBpS2V5LCBtb2RlbCksXG4gICAgICAgIHRpbWVvdXRQcm9taXNlXG4gICAgICBdKSkgYXMgYm9vbGVhbjtcblxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gIXN1Y2Nlc3NcbiAgICAgICAgPyBwcm92aWRlciA9PT0gJ29sbGFtYSdcbiAgICAgICAgICA/ICdDb25uZWN0aW9uIGZhaWxlZDogbWF5YmUgaW52YWxpZCBCYXNlIFVSTCdcbiAgICAgICAgICA6ICdDb25uZWN0aW9uIGZhaWxlZDogbWF5YmUgaW52YWxpZCBBUEkgS2V5IG9yIEJhc2UgVVJMJ1xuICAgICAgICA6ICcnO1xuICAgICAgc2V0Q29ubmVjdGlvbkVycm9yKCFzdWNjZXNzKTtcbiAgICAgIHNldEVycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpO1xuICAgICAgZGlzcGF0Y2goXG4gICAgICAgIHVwZGF0ZUFpQXNzaXN0YW50Q29uZmlnKHtcbiAgICAgICAgICBwcm92aWRlcjogcHJvdmlkZXIsXG4gICAgICAgICAgbW9kZWw6IG1vZGVsLFxuICAgICAgICAgIGFwaUtleTogYXBpS2V5LFxuICAgICAgICAgIGJhc2VVcmw6IGJhc2VVcmwgfHwgUFJPVklERVJfREVGQVVMVF9CQVNFX1VSTFNbcHJvdmlkZXJdLFxuICAgICAgICAgIGlzUmVhZHk6IHN1Y2Nlc3MsXG4gICAgICAgICAgdGVtcGVyYXR1cmU6IHRlbXBlcmF0dXJlLFxuICAgICAgICAgIHRvcFA6IHRvcFAsXG4gICAgICAgICAgbWFwYm94VG9rZW46IG1hcGJveFRva2VuXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBzZXRDb25uZWN0aW9uRXJyb3IodHJ1ZSk7XG4gICAgICBzZXRFcnJvck1lc3NhZ2UoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnQ29ubmVjdGlvbiBmYWlsZWQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0SXNSdW5uaW5nKGZhbHNlKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQWlBc3Npc3RhbnRDb25maWcgY2xhc3NOYW1lPVwiYWktYXNzaXN0YW50LWNvbmZpZ19fdHlwZVwiPlxuICAgICAgPFBhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICA8U2VjdGlvblRpdGxlPlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwiYWlBc3Npc3RhbnRNYW5hZ2VyLmFpUHJvdmlkZXJcIiAvPlxuICAgICAgICA8L1NlY3Rpb25UaXRsZT5cbiAgICAgIDwvUGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICA8U3R5bGVkV3JhcHBlcj5cbiAgICAgICAgPFN0eWxlZEl0ZW1TZWxlY3RvclxuICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e3Byb3ZpZGVyfVxuICAgICAgICAgIG9wdGlvbnM9e09iamVjdC5rZXlzKFBST1ZJREVSX01PREVMUyl9XG4gICAgICAgICAgbXVsdGlTZWxlY3Q9e2ZhbHNlfVxuICAgICAgICAgIGRpc2FibGVkPXtmYWxzZX1cbiAgICAgICAgICBvbkNoYW5nZT17b25BaVByb3ZpZGVyU2VsZWN0fVxuICAgICAgICAgIGZpbHRlck9wdGlvbj1cIm5hbWVcIlxuICAgICAgICAgIGdldE9wdGlvblZhbHVlPXtvcCA9PiBvcH1cbiAgICAgICAgICBkaXNwbGF5T3B0aW9uPXtvcCA9PiBvcH1cbiAgICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgICBzaG93QXJyb3c9e3RydWV9XG4gICAgICAgIC8+XG4gICAgICA8L1N0eWxlZFdyYXBwZXI+XG4gICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgIDxTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJhaUFzc2lzdGFudE1hbmFnZXIubGxtTW9kZWwudGl0bGVcIiAvPlxuICAgICAgICA8L1NlY3Rpb25UaXRsZT5cbiAgICAgIDwvUGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICB7KChwcm92aWRlciA9PT0gJ29sbGFtYScgJiYgIW9sbGFtYU1vZGVsSW5wdXRDaGVja2VkKSB8fCBwcm92aWRlciAhPT0gJ29sbGFtYScpICYmIChcbiAgICAgICAgPFN0eWxlZFdyYXBwZXI+XG4gICAgICAgICAgPFN0eWxlZEl0ZW1TZWxlY3RvclxuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17bW9kZWx9XG4gICAgICAgICAgICBvcHRpb25zPXtQUk9WSURFUl9NT0RFTFNbcHJvdmlkZXJdfVxuICAgICAgICAgICAgbXVsdGlTZWxlY3Q9e2ZhbHNlfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e3Byb3ZpZGVyID09PSAnb2xsYW1hJyA/IG9sbGFtYU1vZGVsSW5wdXRDaGVja2VkIDogZmFsc2V9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBMTE0gTW9kZWxcIlxuICAgICAgICAgICAgb25DaGFuZ2U9e29uTExNTW9kZWxTZWxlY3R9XG4gICAgICAgICAgICBmaWx0ZXJPcHRpb249XCJuYW1lXCJcbiAgICAgICAgICAgIGdldE9wdGlvblZhbHVlPXtvcCA9PiBvcH1cbiAgICAgICAgICAgIGRpc3BsYXlPcHRpb249e29wID0+IG9wfVxuICAgICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgICBzaG93QXJyb3c9e3RydWV9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TdHlsZWRXcmFwcGVyPlxuICAgICAgKX1cbiAgICAgIHtwcm92aWRlciA9PT0gJ29sbGFtYScgJiYgKFxuICAgICAgICA8T2xsYW1hTW9kZWxJbnB1dFdyYXBwZXI+XG4gICAgICAgICAgPGRpdiBzdHlsZT17e3dpZHRoOiAnMjUwcHgnfX0+XG4gICAgICAgICAgICA8Q2hlY2tib3hcbiAgICAgICAgICAgICAgaWQ9XCJvbGxhbWEtbW9kZWwtaW5wdXRcIlxuICAgICAgICAgICAgICBsYWJlbD1cIklucHV0IE1vZGVsIE5hbWVcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17b25PbGxhbWFNb2RlbElucHV0Q2hlY2tlZH1cbiAgICAgICAgICAgICAgY2hlY2tlZD17b2xsYW1hTW9kZWxJbnB1dENoZWNrZWR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgb25DaGFuZ2U9e29uT2xsYW1hTW9kZWxJbnB1dFZhbHVlQ2hhbmdlfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBNb2RlbCBOYW1lXCJcbiAgICAgICAgICAgIHZhbHVlPXtvbGxhbWFNb2RlbElucHV0VmFsdWV9XG4gICAgICAgICAgICBkaXNhYmxlZD17IW9sbGFtYU1vZGVsSW5wdXRDaGVja2VkfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvT2xsYW1hTW9kZWxJbnB1dFdyYXBwZXI+XG4gICAgICApfVxuICAgICAge3Byb3ZpZGVyICE9PSAnb2xsYW1hJyAmJiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPFBhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgPFNlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJhaUFzc2lzdGFudE1hbmFnZXIuYXBpS2V5LnRpdGxlXCIgLz5cbiAgICAgICAgICAgIDwvU2VjdGlvblRpdGxlPlxuICAgICAgICAgIDwvUGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhcGkta2V5LWlucHV0XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFwaS1rZXktaW5wdXRfX2ljb25cIj5cbiAgICAgICAgICAgICAgPEFwaUtleSBoZWlnaHQ9XCIyMHB4XCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9e29uQXBpS2V5Q2hhbmdlfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ2FpQXNzaXN0YW50TWFuYWdlci5hcGlLZXkucGxhY2Vob2xkZXInfSl9XG4gICAgICAgICAgICAgIHZhbHVlPXthcGlLZXl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8Lz5cbiAgICAgICl9XG4gICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgIDxTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJhaUFzc2lzdGFudE1hbmFnZXIuYmFzZVVybC50aXRsZVwiIC8+XG4gICAgICAgIDwvU2VjdGlvblRpdGxlPlxuICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXBpLWtleS1pbnB1dFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFwaS1rZXktaW5wdXRfX2ljb25cIj5cbiAgICAgICAgICA8QXBpS2V5IGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPElucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkJhc2VVcmxDaGFuZ2V9XG4gICAgICAgICAgcGxhY2Vob2xkZXI9e1BST1ZJREVSX0RFRkFVTFRfQkFTRV9VUkxTW3Byb3ZpZGVyXX1cbiAgICAgICAgICB2YWx1ZT17YmFzZVVybH1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAge2Nvbm5lY3Rpb25FcnJvciAmJiAoXG4gICAgICAgIDxTdHlsZUVycm9yTWVzc2FnZSBjbGFzc05hbWU9XCJlcnJvci1tZXNzYWdlXCI+e2Vycm9yTWVzc2FnZX08L1N0eWxlRXJyb3JNZXNzYWdlPlxuICAgICAgKX1cbiAgICAgIDxQYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgPFNlY3Rpb25UaXRsZT5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImFpQXNzaXN0YW50TWFuYWdlci50ZW1wZXJhdHVyZS50aXRsZVwiIC8+XG4gICAgICAgIDwvU2VjdGlvblRpdGxlPlxuICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgIDxTdHlsZVNsaWRlcldyYXBwZXI+XG4gICAgICAgIDxSYW5nZVNsaWRlclxuICAgICAgICAgIHNob3dJbnB1dD17dHJ1ZX1cbiAgICAgICAgICBpc1JhbmdlZD17ZmFsc2V9XG4gICAgICAgICAgdmFsdWUwPXswfVxuICAgICAgICAgIHZhbHVlMT17dGVtcGVyYXR1cmV9XG4gICAgICAgICAgb25DaGFuZ2U9e29uVGVtcGVyYXR1cmVDaGFuZ2V9XG4gICAgICAgICAgcmFuZ2U9e1swLCAyXX1cbiAgICAgICAgICBzdGVwPXswLjF9XG4gICAgICAgIC8+XG4gICAgICA8L1N0eWxlU2xpZGVyV3JhcHBlcj5cbiAgICAgIDxQYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgPFNlY3Rpb25UaXRsZT5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImFpQXNzaXN0YW50TWFuYWdlci50b3BQLnRpdGxlXCIgLz5cbiAgICAgICAgPC9TZWN0aW9uVGl0bGU+XG4gICAgICA8L1BhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgPFN0eWxlU2xpZGVyV3JhcHBlcj5cbiAgICAgICAgPFJhbmdlU2xpZGVyXG4gICAgICAgICAgc2hvd0lucHV0PXt0cnVlfVxuICAgICAgICAgIGlzUmFuZ2VkPXtmYWxzZX1cbiAgICAgICAgICB2YWx1ZTA9ezB9XG4gICAgICAgICAgdmFsdWUxPXt0b3BQfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvblRvcFBDaGFuZ2V9XG4gICAgICAgICAgcmFuZ2U9e1swLCAxXX1cbiAgICAgICAgICBzdGVwPXswLjF9XG4gICAgICAgIC8+XG4gICAgICA8L1N0eWxlU2xpZGVyV3JhcHBlcj5cbiAgICAgIDw+XG4gICAgICAgIDxQYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICA8U2VjdGlvblRpdGxlPk1hcGJveCBUb2tlbiAob3B0aW9uYWwgZm9yIHJvdXRlL2lzb2Nocm9uZSk8L1NlY3Rpb25UaXRsZT5cbiAgICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhcGkta2V5LWlucHV0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhcGkta2V5LWlucHV0X19pY29uXCI+XG4gICAgICAgICAgICA8QXBpS2V5IGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgb25DaGFuZ2U9e29uTWFwYm94VG9rZW5DaGFuZ2V9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIHlvdXIgTWFwYm94IFRva2VuXCJcbiAgICAgICAgICAgIHZhbHVlPXttYXBib3hUb2tlbn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICAgPFN0eWxlZEJ1dHRvbj5cbiAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtvblN0YXJ0Q2hhdH0gd2lkdGg9eycxMDAlJ30+XG4gICAgICAgICAge2lzUnVubmluZyAmJiA8TG9hZGluZ1NwaW5uZXIgc2l6ZT17MTJ9IC8+fVxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwiYWlBc3Npc3RhbnRNYW5hZ2VyLnN0YXJ0Q2hhdFwiIC8+XG4gICAgICAgIDwvQnV0dG9uPlxuICAgICAgPC9TdHlsZWRCdXR0b24+XG4gICAgPC9TdHlsZWRBaUFzc2lzdGFudENvbmZpZz5cbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQVdBLElBQUFLLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLEtBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFFBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLFVBQUEsR0FBQVYsT0FBQTtBQUFxRCxJQUFBVyxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBdEJyRDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFyQix3QkFBQXFCLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxD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
|
|
@@ -3,16 +3,24 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.PROVIDER_MODELS = void 0;
|
|
6
|
+
exports.PROVIDER_MODELS = exports.PROVIDER_DEFAULT_BASE_URLS = void 0;
|
|
7
7
|
// SPDX-License-Identifier: MIT
|
|
8
8
|
// Copyright contributors to the kepler.gl project
|
|
9
9
|
|
|
10
|
+
var PROVIDER_DEFAULT_BASE_URLS = exports.PROVIDER_DEFAULT_BASE_URLS = {
|
|
11
|
+
"openai": "https://api.openai.com/v1",
|
|
12
|
+
"anthropic": "https://api.anthropic.com/v1",
|
|
13
|
+
"google": "https://generativelanguage.googleapis.com/v1beta",
|
|
14
|
+
"deepseek": "https://api.deepseek.com/v1",
|
|
15
|
+
"xai": "https://api.x.ai/v1",
|
|
16
|
+
"ollama": "http://localhost:11434/api"
|
|
17
|
+
};
|
|
10
18
|
var PROVIDER_MODELS = exports.PROVIDER_MODELS = {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
19
|
+
openai: ['gpt-4.1', 'gpt-4o', 'gpt-4o-mini', 'gpt-4', 'gpt-3.5-turbo', 'o1', 'o1-preview', 'o1-mini'],
|
|
20
|
+
google: ['gemini-2.5-flash', 'gemini-2.5-pro', 'gemini-2.0-flash', 'gemini-1.5-flash', 'gemini-1.5-pro'],
|
|
21
|
+
deepseek: ['deepseek-chat'],
|
|
22
|
+
anthropic: ['claude-opus-4-1', 'claude-opus-4-0', 'claude-sonnet-4-0', 'claude-3.7-sonnet', 'claude-3.5-sonnet', 'claude-3.5-haiku', 'claude-3-opus', 'claude-3-sonnet', 'claude-3-haiku'],
|
|
23
|
+
xai: ['grok-3', 'grok-3-fast', 'grok-3-mini', 'grok-3-mini-fast'],
|
|
24
|
+
ollama: ['qwen3:32b', 'gpt-oss']
|
|
17
25
|
};
|
|
18
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQUk9WSURFUl9ERUZBVUxUX0JBU0VfVVJMUyIsImV4cG9ydHMiLCJQUk9WSURFUl9NT0RFTFMiLCJvcGVuYWkiLCJnb29nbGUiLCJkZWVwc2VlayIsImFudGhyb3BpYyIsInhhaSIsIm9sbGFtYSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvbW9kZWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmV4cG9ydCBjb25zdCBQUk9WSURFUl9ERUZBVUxUX0JBU0VfVVJMUyA9IHtcbiAgXCJvcGVuYWlcIjogXCJodHRwczovL2FwaS5vcGVuYWkuY29tL3YxXCIsXG4gIFwiYW50aHJvcGljXCI6IFwiaHR0cHM6Ly9hcGkuYW50aHJvcGljLmNvbS92MVwiLFxuICBcImdvb2dsZVwiOiBcImh0dHBzOi8vZ2VuZXJhdGl2ZWxhbmd1YWdlLmdvb2dsZWFwaXMuY29tL3YxYmV0YVwiLFxuICBcImRlZXBzZWVrXCI6IFwiaHR0cHM6Ly9hcGkuZGVlcHNlZWsuY29tL3YxXCIsXG4gIFwieGFpXCI6IFwiaHR0cHM6Ly9hcGkueC5haS92MVwiLFxuICBcIm9sbGFtYVwiOiBcImh0dHA6Ly9sb2NhbGhvc3Q6MTE0MzQvYXBpXCJcbn07XG5cbmV4cG9ydCBjb25zdCBQUk9WSURFUl9NT0RFTFMgPSB7XG4gIG9wZW5haTogW1xuICAgICdncHQtNC4xJyxcbiAgICAnZ3B0LTRvJyxcbiAgICAnZ3B0LTRvLW1pbmknLFxuICAgICdncHQtNCcsXG4gICAgJ2dwdC0zLjUtdHVyYm8nLFxuICAgICdvMScsXG4gICAgJ28xLXByZXZpZXcnLFxuICAgICdvMS1taW5pJ1xuICBdLFxuICBnb29nbGU6IFtcbiAgICAnZ2VtaW5pLTIuNS1mbGFzaCcsXG4gICAgJ2dlbWluaS0yLjUtcHJvJyxcbiAgICAnZ2VtaW5pLTIuMC1mbGFzaCcsXG4gICAgJ2dlbWluaS0xLjUtZmxhc2gnLFxuICAgICdnZW1pbmktMS41LXBybydcbiAgXSxcbiAgZGVlcHNlZWs6IFsnZGVlcHNlZWstY2hhdCddLFxuICBhbnRocm9waWM6IFtcbiAgICAnY2xhdWRlLW9wdXMtNC0xJyxcbiAgICAnY2xhdWRlLW9wdXMtNC0wJyxcbiAgICAnY2xhdWRlLXNvbm5ldC00LTAnLFxuICAgICdjbGF1ZGUtMy43LXNvbm5ldCcsXG4gICAgJ2NsYXVkZS0zLjUtc29ubmV0JyxcbiAgICAnY2xhdWRlLTMuNS1oYWlrdScsXG4gICAgJ2NsYXVkZS0zLW9wdXMnLFxuICAgICdjbGF1ZGUtMy1zb25uZXQnLFxuICAgICdjbGF1ZGUtMy1oYWlrdSdcbiAgXSxcbiAgeGFpOiBbJ2dyb2stMycsICdncm9rLTMtZmFzdCcsICdncm9rLTMtbWluaScsICdncm9rLTMtbWluaS1mYXN0J10sXG4gIG9sbGFtYTogWydxd2VuMzozMmInLCAnZ3B0LW9zcyddXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUVPLElBQU1BLDBCQUEwQixHQUFBQyxPQUFBLENBQUFELDBCQUFBLEdBQUc7RUFDeEMsUUFBUSxFQUFFLDJCQUEyQjtFQUNyQyxXQUFXLEVBQUUsOEJBQThCO0VBQzNDLFFBQVEsRUFBRSxrREFBa0Q7RUFDNUQsVUFBVSxFQUFFLDZCQUE2QjtFQUN6QyxLQUFLLEVBQUUscUJBQXFCO0VBQzVCLFFBQVEsRUFBRTtBQUNaLENBQUM7QUFFTSxJQUFNRSxlQUFlLEdBQUFELE9BQUEsQ0FBQUMsZUFBQSxHQUFHO0VBQzdCQyxNQUFNLEVBQUUsQ0FDTixTQUFTLEVBQ1QsUUFBUSxFQUNSLGFBQWEsRUFDYixPQUFPLEVBQ1AsZUFBZSxFQUNmLElBQUksRUFDSixZQUFZLEVBQ1osU0FBUyxDQUNWO0VBQ0RDLE1BQU0sRUFBRSxDQUNOLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixnQkFBZ0IsQ0FDakI7RUFDREMsUUFBUSxFQUFFLENBQUMsZUFBZSxDQUFDO0VBQzNCQyxTQUFTLEVBQUUsQ0FDVCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLGdCQUFnQixDQUNqQjtFQUNEQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQztFQUNqRUMsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLFNBQVM7QUFDakMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -27,8 +27,8 @@ var messages = exports.messages = {
|
|
|
27
27
|
placeholder: 'Enter your API Key'
|
|
28
28
|
},
|
|
29
29
|
baseUrl: {
|
|
30
|
-
title: '
|
|
31
|
-
placeholder: 'Enter
|
|
30
|
+
title: 'Base URL',
|
|
31
|
+
placeholder: 'Enter Base URL'
|
|
32
32
|
},
|
|
33
33
|
temperature: {
|
|
34
34
|
title: 'Temperature'
|
|
@@ -55,8 +55,8 @@ var messages = exports.messages = {
|
|
|
55
55
|
placeholder: 'Syötä API-avain'
|
|
56
56
|
},
|
|
57
57
|
baseUrl: {
|
|
58
|
-
title: '
|
|
59
|
-
placeholder: 'Syötä
|
|
58
|
+
title: 'Base URL',
|
|
59
|
+
placeholder: 'Syötä Base URL'
|
|
60
60
|
},
|
|
61
61
|
temperature: {
|
|
62
62
|
title: 'Lämpötila'
|
|
@@ -167,8 +167,8 @@ var messages = exports.messages = {
|
|
|
167
167
|
placeholder: 'API キーを入力'
|
|
168
168
|
},
|
|
169
169
|
baseUrl: {
|
|
170
|
-
title: '
|
|
171
|
-
placeholder: '
|
|
170
|
+
title: 'Base URL',
|
|
171
|
+
placeholder: 'Base URL を入力'
|
|
172
172
|
},
|
|
173
173
|
temperature: {
|
|
174
174
|
title: '温度'
|
|
@@ -180,4 +180,4 @@ var messages = exports.messages = {
|
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
182
|
};
|
|
183
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
183
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZXNzYWdlcyIsImV4cG9ydHMiLCJlbiIsInRvb2x0aXAiLCJzaG93QWlBc3Npc3RhbnRQYW5lbCIsImhpZGVBaUFzc2lzdGFudFBhbmVsIiwiYWlBc3Npc3RhbnRNYW5hZ2VyIiwidGl0bGUiLCJhaVByb3ZpZGVyIiwibGxtTW9kZWwiLCJhcGlLZXkiLCJwbGFjZWhvbGRlciIsImJhc2VVcmwiLCJ0ZW1wZXJhdHVyZSIsInRvcFAiLCJzdGFydENoYXQiLCJmaSIsImNhIiwiZXMiLCJjbiIsImpwIl0sInNvdXJjZXMiOlsiLi4vc3JjL2xvY2FsaXphdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vLyBBZGQgZW5nbGlzaCBtZXNzYWdlcyBoZXJlLCBvdGhlciBsYW5ndWFnZXMgd2lsbCB1c2UgdGhlc2Vcbi8vIGlmIHRyYW5zbGF0aW9ucyBub3QgYXZhaWxhYmxlIGZvciBldmVyeSBtZXNzYWdlXG5cbmV4cG9ydCBjb25zdCBtZXNzYWdlcyA9IHtcbiAgZW46IHtcbiAgICB0b29sdGlwOiB7XG4gICAgICBzaG93QWlBc3Npc3RhbnRQYW5lbDogJ1Nob3cgQUkgQXNzaXN0YW50IHBhbmVsJyxcbiAgICAgIGhpZGVBaUFzc2lzdGFudFBhbmVsOiAnSGlkZSBBSSBBc3Npc3RhbnQgcGFuZWwnXG4gICAgfSxcbiAgICBhaUFzc2lzdGFudE1hbmFnZXI6IHtcbiAgICAgIHRpdGxlOiAnQUkgQXNzaXN0YW50JyxcbiAgICAgIGFpUHJvdmlkZXI6ICdBSSBQcm92aWRlcicsXG4gICAgICBsbG1Nb2RlbDoge1xuICAgICAgICB0aXRsZTogJ1NlbGVjdCBMTE0gTW9kZWwnXG4gICAgICB9LFxuICAgICAgYXBpS2V5OiB7XG4gICAgICAgIHRpdGxlOiAnQVBJIEtleScsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnRW50ZXIgeW91ciBBUEkgS2V5J1xuICAgICAgfSxcbiAgICAgIGJhc2VVcmw6IHtcbiAgICAgICAgdGl0bGU6ICdCYXNlIFVSTCcsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnRW50ZXIgQmFzZSBVUkwnXG4gICAgICB9LFxuICAgICAgdGVtcGVyYXR1cmU6IHtcbiAgICAgICAgdGl0bGU6ICdUZW1wZXJhdHVyZSdcbiAgICAgIH0sXG4gICAgICB0b3BQOiB7XG4gICAgICAgIHRpdGxlOiAnVG9wIFAnXG4gICAgICB9LFxuICAgICAgc3RhcnRDaGF0OiBcIkxldCdzIENoYXRcIlxuICAgIH1cbiAgfSxcbiAgZmk6IHtcbiAgICB0b29sdGlwOiB7XG4gICAgICBzaG93QWlBc3Npc3RhbnRQYW5lbDogJ07DpHl0w6QgQUktb2hqYWlucGFuZWVsaScsXG4gICAgICBoaWRlQWlBc3Npc3RhbnRQYW5lbDogJ1BpaWxvdGEgQUktb2hqYWlucGFuZWVsaSdcbiAgICB9LFxuICAgIGFpQXNzaXN0YW50TWFuYWdlcjoge1xuICAgICAgdGl0bGU6ICdBSS1vaGphaW4nLFxuICAgICAgYWlQcm92aWRlcjogJ0FJLXRvaW1pdHRhamEnLFxuICAgICAgbGxtTW9kZWw6IHtcbiAgICAgICAgdGl0bGU6ICdWYWxpdHNlIExMTS1tYWxsaSdcbiAgICAgIH0sXG4gICAgICBhcGlLZXk6IHtcbiAgICAgICAgdGl0bGU6ICdBUEktYXZhaW4nLFxuICAgICAgICBwbGFjZWhvbGRlcjogJ1N5w7Z0w6QgQVBJLWF2YWluJ1xuICAgICAgfSxcbiAgICAgIGJhc2VVcmw6IHtcbiAgICAgICAgdGl0bGU6ICdCYXNlIFVSTCcsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnU3nDtnTDpCBCYXNlIFVSTCdcbiAgICAgIH0sXG4gICAgICB0ZW1wZXJhdHVyZToge1xuICAgICAgICB0aXRsZTogJ0zDpG1ww7Z0aWxhJ1xuICAgICAgfSxcbiAgICAgIHRvcFA6IHtcbiAgICAgICAgdGl0bGU6ICdUb3AgUCdcbiAgICAgIH0sXG4gICAgICBzdGFydENoYXQ6ICdBbG9pdGEga2Vza3VzdGVsdSdcbiAgICB9XG4gIH0sXG4gIGNhOiB7XG4gICAgdG9vbHRpcDoge1xuICAgICAgc2hvd0FpQXNzaXN0YW50UGFuZWw6IFwiTW9zdHJhciBwYW5lbGwgZCdJQVwiLFxuICAgICAgaGlkZUFpQXNzaXN0YW50UGFuZWw6IFwiT2N1bHRhciBwYW5lbGwgZCdJQVwiXG4gICAgfSxcbiAgICBhaUFzc2lzdGFudE1hbmFnZXI6IHtcbiAgICAgIHRpdGxlOiAnSUEnLFxuICAgICAgYWlQcm92aWRlcjogXCJQcm92ZcOvZG9yIGQnSUFcIixcbiAgICAgIGxsbU1vZGVsOiB7XG4gICAgICAgIHRpdGxlOiAnU2VsZWNjaW9uYXIgbW9kZWwgTExNJ1xuICAgICAgfSxcbiAgICAgIGFwaUtleToge1xuICAgICAgICB0aXRsZTogJ0NsYXUgQVBJJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdJbnRyb2R1ZWl4IGxhIHRldmEgY2xhdSBBUEknXG4gICAgICB9LFxuICAgICAgYmFzZVVybDoge1xuICAgICAgICB0aXRsZTogJ1VSTCBPbGxhbWFCYXNlJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdJbnRyb2R1ZWl4IFVSTCBPbGxhbWFCYXNlJ1xuICAgICAgfSxcbiAgICAgIHRlbXBlcmF0dXJlOiB7XG4gICAgICAgIHRpdGxlOiAnVGVtcGVyYXR1cmEnXG4gICAgICB9LFxuICAgICAgdG9wUDoge1xuICAgICAgICB0aXRsZTogJ1RvcCBQJ1xuICAgICAgfSxcbiAgICAgIHN0YXJ0Q2hhdDogJ0NvbWVuw6dhciB4YXQnXG4gICAgfVxuICB9LFxuICBlczoge1xuICAgIHRvb2x0aXA6IHtcbiAgICAgIHNob3dBaUFzc2lzdGFudFBhbmVsOiAnTW9zdHJhciBwYW5lbCBkZSBJQScsXG4gICAgICBoaWRlQWlBc3Npc3RhbnRQYW5lbDogJ09jdWx0YXIgcGFuZWwgZGUgSUEnXG4gICAgfSxcbiAgICBhaUFzc2lzdGFudE1hbmFnZXI6IHtcbiAgICAgIHRpdGxlOiAnSUEnLFxuICAgICAgYWlQcm92aWRlcjogJ1Byb3ZlZWRvciBkZSBJQScsXG4gICAgICBsbG1Nb2RlbDoge1xuICAgICAgICB0aXRsZTogJ1NlbGVjY2lvbmFyIG1vZGVsbyBMTE0nXG4gICAgICB9LFxuICAgICAgYXBpS2V5OiB7XG4gICAgICAgIHRpdGxlOiAnQ2xhdmUgQVBJJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdJbnRyb2R1Y2UgdHUgY2xhdmUgQVBJJ1xuICAgICAgfSxcbiAgICAgIGJhc2VVcmw6IHtcbiAgICAgICAgdGl0bGU6ICdVUkwgT2xsYW1hQmFzZScsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnSW50cm9kdWNlIFVSTCBPbGxhbWFCYXNlJ1xuICAgICAgfSxcbiAgICAgIHRlbXBlcmF0dXJlOiB7XG4gICAgICAgIHRpdGxlOiAnVGVtcGVyYXR1cmEnXG4gICAgICB9LFxuICAgICAgdG9wUDoge1xuICAgICAgICB0aXRsZTogJ1RvcCBQJ1xuICAgICAgfSxcbiAgICAgIHN0YXJ0Q2hhdDogJ0luaWNpYXIgY2hhdCdcbiAgICB9XG4gIH0sXG4gIGNuOiB7XG4gICAgdG9vbHRpcDoge1xuICAgICAgc2hvd0FpQXNzaXN0YW50UGFuZWw6ICfmmL7npLogQUkg5Yqp5omL6Z2i5p2/JyxcbiAgICAgIGhpZGVBaUFzc2lzdGFudFBhbmVsOiAn6ZqQ6JePIEFJIOWKqeaJi+mdouadvydcbiAgICB9LFxuICAgIGFpQXNzaXN0YW50TWFuYWdlcjoge1xuICAgICAgdGl0bGU6ICdBSSDliqnmiYsnLFxuICAgICAgYWlQcm92aWRlcjogJ0FJIOaPkOS+m+WVhicsXG4gICAgICBsbG1Nb2RlbDoge1xuICAgICAgICB0aXRsZTogJ+mAieaLqSBMTE0g5qih5Z6LJ1xuICAgICAgfSxcbiAgICAgIGFwaUtleToge1xuICAgICAgICB0aXRsZTogJ0FQSSDlr4bpkqUnLFxuICAgICAgICBwbGFjZWhvbGRlcjogJ+i+k+WFpeS9oOeahCBBUEkg5a+G6ZKlJ1xuICAgICAgfSxcbiAgICAgIGJhc2VVcmw6IHtcbiAgICAgICAgdGl0bGU6ICdPbGxhbWFCYXNlIOe9keWdgCcsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAn6L6T5YWlIE9sbGFtYUJhc2Ug572R5Z2AJ1xuICAgICAgfSxcbiAgICAgIHRlbXBlcmF0dXJlOiB7XG4gICAgICAgIHRpdGxlOiAn5rip5bqmJ1xuICAgICAgfSxcbiAgICAgIHRvcFA6IHtcbiAgICAgICAgdGl0bGU6ICdUb3AgUCdcbiAgICAgIH0sXG4gICAgICBzdGFydENoYXQ6ICflvIDlp4vogYrlpKknXG4gICAgfVxuICB9LFxuICBqcDoge1xuICAgIHRvb2x0aXA6IHtcbiAgICAgIHNob3dBaUFzc2lzdGFudFBhbmVsOiAnQUkg44Ki44K344K544K/44Oz44OI44OR44ON44Or44KS6KGo56S6JyxcbiAgICAgIGhpZGVBaUFzc2lzdGFudFBhbmVsOiAnQUkg44Ki44K344K544K/44Oz44OI44OR44ON44Or44KS6Z2e6KGo56S6J1xuICAgIH0sXG4gICAgYWlBc3Npc3RhbnRNYW5hZ2VyOiB7XG4gICAgICB0aXRsZTogJ0FJIOOCouOCt+OCueOCv+ODs+ODiCcsXG4gICAgICBhaVByb3ZpZGVyOiAnQUkg44OX44Ot44OQ44Kk44OA44O8JyxcbiAgICAgIGxsbU1vZGVsOiB7XG4gICAgICAgIHRpdGxlOiAnTExNIOODouODh+ODq+OCkumBuOaKnidcbiAgICAgIH0sXG4gICAgICBhcGlLZXk6IHtcbiAgICAgICAgdGl0bGU6ICdBUEkg44Kt44O8JyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdBUEkg44Kt44O844KS5YWl5YqbJ1xuICAgICAgfSxcbiAgICAgIGJhc2VVcmw6IHtcbiAgICAgICAgdGl0bGU6ICdCYXNlIFVSTCcsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnQmFzZSBVUkwg44KS5YWl5YqbJ1xuICAgICAgfSxcbiAgICAgIHRlbXBlcmF0dXJlOiB7XG4gICAgICAgIHRpdGxlOiAn5rip5bqmJ1xuICAgICAgfSxcbiAgICAgIHRvcFA6IHtcbiAgICAgICAgdGl0bGU6ICdUb3AgUCdcbiAgICAgIH0sXG4gICAgICBzdGFydENoYXQ6ICfjg4Hjg6Pjg4Pjg4jjgpLplovlp4snXG4gICAgfVxuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRU8sSUFBTUEsUUFBUSxHQUFBQyxPQUFBLENBQUFELFFBQUEsR0FBRztFQUN0QkUsRUFBRSxFQUFFO0lBQ0ZDLE9BQU8sRUFBRTtNQUNQQyxvQkFBb0IsRUFBRSx5QkFBeUI7TUFDL0NDLG9CQUFvQixFQUFFO0lBQ3hCLENBQUM7SUFDREMsa0JBQWtCLEVBQUU7TUFDbEJDLEtBQUssRUFBRSxjQUFjO01BQ3JCQyxVQUFVLEVBQUUsYUFBYTtNQUN6QkMsUUFBUSxFQUFFO1FBQ1JGLEtBQUssRUFBRTtNQUNULENBQUM7TUFDREcsTUFBTSxFQUFFO1FBQ05ILEtBQUssRUFBRSxTQUFTO1FBQ2hCSSxXQUFXLEVBQUU7TUFDZixDQUFDO01BQ0RDLE9BQU8sRUFBRTtRQUNQTCxLQUFLLEVBQUUsVUFBVTtRQUNqQkksV0FBVyxFQUFFO01BQ2YsQ0FBQztNQUNERSxXQUFXLEVBQUU7UUFDWE4sS0FBSyxFQUFFO01BQ1QsQ0FBQztNQUNETyxJQUFJLEVBQUU7UUFDSlAsS0FBSyxFQUFFO01BQ1QsQ0FBQztNQUNEUSxTQUFTLEVBQUU7SUFDYjtFQUNGLENBQUM7RUFDREMsRUFBRSxFQUFFO0lBQ0ZiLE9BQU8sRUFBRTtNQUNQQyxvQkFBb0IsRUFBRSx3QkFBd0I7TUFDOUNDLG9CQUFvQixFQUFFO0lBQ3hCLENBQUM7SUFDREMsa0JBQWtCLEVBQUU7TUFDbEJDLEtBQUssRUFBRSxXQUFXO01BQ2xCQyxVQUFVLEVBQUUsZUFBZTtNQUMzQkMsUUFBUSxFQUFFO1FBQ1JGLEtBQUssRUFBRTtNQUNULENBQUM7TUFDREcsTUFBTSxFQUFFO1FBQ05ILEtBQUssRUFBRSxXQUFXO1FBQ2xCSSxXQUFXLEVBQUU7TUFDZixDQUFDO01BQ0RDLE9BQU8sRUFBRTtRQUNQTCxLQUFLLEVBQUUsVUFBVTtRQUNqQkksV0FBVyxFQUFFO01B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
|
|
@@ -8,6 +8,7 @@ exports.aiAssistantReducer = void 0;
|
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _reduxActions = require("redux-actions");
|
|
10
10
|
var _actions = require("../actions");
|
|
11
|
+
var _models = require("../config/models");
|
|
11
12
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
13
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // SPDX-License-Identifier: MIT
|
|
13
14
|
// Copyright contributors to the kepler.gl project
|
|
@@ -17,7 +18,7 @@ var initialConfig = {
|
|
|
17
18
|
provider: 'openai',
|
|
18
19
|
model: 'gpt-4o',
|
|
19
20
|
apiKey: '',
|
|
20
|
-
baseUrl: '
|
|
21
|
+
baseUrl: _models.PROVIDER_DEFAULT_BASE_URLS['openai'],
|
|
21
22
|
temperature: 0.0,
|
|
22
23
|
topP: 1.0
|
|
23
24
|
};
|
|
@@ -62,4 +63,4 @@ function setMapBoundaryHandler(state, action) {
|
|
|
62
63
|
})
|
|
63
64
|
});
|
|
64
65
|
}
|
|
65
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVkdXhBY3Rpb25zIiwicmVxdWlyZSIsIl9hY3Rpb25zIiwiX21vZGVscyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiaW5pdGlhbENvbmZpZyIsImlzUmVhZHkiLCJwcm92aWRlciIsIm1vZGVsIiwiYXBpS2V5IiwiYmFzZVVybCIsIlBST1ZJREVSX0RFRkFVTFRfQkFTRV9VUkxTIiwidGVtcGVyYXR1cmUiLCJ0b3BQIiwiaW5pdGlhbFN0YXRlIiwiY29uZmlnIiwibWVzc2FnZXMiLCJzY3JlZW5zaG90VG9Bc2siLCJzdGFydFNjcmVlbkNhcHR1cmUiLCJzY3JlZW5DYXB0dXJlZCIsImFpQXNzaXN0YW50UmVkdWNlciIsImV4cG9ydHMiLCJoYW5kbGVBY3Rpb25zIiwiVVBEQVRFX0FJX0FTU0lTVEFOVF9DT05GSUciLCJ1cGRhdGVBaUFzc2lzdGFudENvbmZpZ0hhbmRsZXIiLCJVUERBVEVfQUlfQVNTSVNUQU5UX01FU1NBR0VTIiwidXBkYXRlQWlBc3Npc3RhbnRNZXNzYWdlc0hhbmRsZXIiLCJTRVRfU1RBUlRfU0NSRUVOX0NBUFRVUkUiLCJzZXRTdGFydFNjcmVlbkNhcHR1cmVIYW5kbGVyIiwiU0VUX1NDUkVFTl9DQVBUVVJFRCIsInNldFNjcmVlbkNhcHR1cmVkSGFuZGxlciIsIlNFVF9NQVBfQk9VTkRBUlkiLCJzZXRNYXBCb3VuZGFyeUhhbmRsZXIiLCJzdGF0ZSIsImFjdGlvbiIsInBheWxvYWQiLCJrZXBsZXJHbCIsIm1hcEJvdW5kYXJ5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlZHVjZXJzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7QWN0aW9uLCBoYW5kbGVBY3Rpb25zfSBmcm9tICdyZWR1eC1hY3Rpb25zJztcbmltcG9ydCB7XG4gIFVQREFURV9BSV9BU1NJU1RBTlRfQ09ORklHLFxuICBVUERBVEVfQUlfQVNTSVNUQU5UX01FU1NBR0VTLFxuICBTRVRfU1RBUlRfU0NSRUVOX0NBUFRVUkUsXG4gIFNFVF9TQ1JFRU5fQ0FQVFVSRUQsXG4gIFNFVF9NQVBfQk9VTkRBUllcbn0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQge01lc3NhZ2VNb2RlbH0gZnJvbSAnQG9wZW5hc3Npc3RhbnQvY29yZSc7XG5pbXBvcnQge1BST1ZJREVSX0RFRkFVTFRfQkFTRV9VUkxTfSBmcm9tICcuLi9jb25maWcvbW9kZWxzJztcblxuZXhwb3J0IHR5cGUgQWlBc3Npc3RhbnRDb25maWcgPSB7XG4gIGlzUmVhZHk6IGJvb2xlYW47XG4gIHByb3ZpZGVyOiBzdHJpbmc7XG4gIG1vZGVsOiBzdHJpbmc7XG4gIGFwaUtleTogc3RyaW5nO1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICB0ZW1wZXJhdHVyZTogbnVtYmVyO1xuICB0b3BQOiBudW1iZXI7XG4gIG1hcGJveFRva2VuPzogc3RyaW5nO1xufTtcblxuLy8gSW5pdGlhbCBzdGF0ZSBmb3IgdGhlIHJlZHVjZXJcbmNvbnN0IGluaXRpYWxDb25maWc6IEFpQXNzaXN0YW50Q29uZmlnID0ge1xuICBpc1JlYWR5OiBmYWxzZSxcbiAgcHJvdmlkZXI6ICdvcGVuYWknLFxuICBtb2RlbDogJ2dwdC00bycsXG4gIGFwaUtleTogJycsXG4gIGJhc2VVcmw6IFBST1ZJREVSX0RFRkFVTFRfQkFTRV9VUkxTWydvcGVuYWknXSxcbiAgdGVtcGVyYXR1cmU6IDAuMCxcbiAgdG9wUDogMS4wXG59O1xuXG5leHBvcnQgdHlwZSBBaUFzc2lzdGFudFN0YXRlID0ge1xuICBjb25maWc6IEFpQXNzaXN0YW50Q29uZmlnO1xuICBtZXNzYWdlczogTWVzc2FnZU1vZGVsW107XG4gIHNjcmVlbnNob3RUb0Fzazoge1xuICAgIHN0YXJ0U2NyZWVuQ2FwdHVyZTogYm9vbGVhbjtcbiAgICBzY3JlZW5DYXB0dXJlZDogc3RyaW5nO1xuICB9O1xuICBrZXBsZXJHbD86IHtcbiAgICBtYXBCb3VuZGFyeT86IHtcbiAgICAgIG53OiBbbnVtYmVyLCBudW1iZXJdO1xuICAgICAgc2U6IFtudW1iZXIsIG51bWJlcl07XG4gICAgfTtcbiAgfTtcbn07XG5cbmNvbnN0IGluaXRpYWxTdGF0ZTogQWlBc3Npc3RhbnRTdGF0ZSA9IHtcbiAgY29uZmlnOiBpbml0aWFsQ29uZmlnLFxuICBtZXNzYWdlczogW10sXG4gIHNjcmVlbnNob3RUb0Fzazoge1xuICAgIHN0YXJ0U2NyZWVuQ2FwdHVyZTogZmFsc2UsXG4gICAgc2NyZWVuQ2FwdHVyZWQ6ICcnXG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBhaUFzc2lzdGFudFJlZHVjZXIgPSBoYW5kbGVBY3Rpb25zPEFpQXNzaXN0YW50U3RhdGUsIGFueT4oXG4gIHtcbiAgICBbVVBEQVRFX0FJX0FTU0lTVEFOVF9DT05GSUddOiB1cGRhdGVBaUFzc2lzdGFudENvbmZpZ0hhbmRsZXIsXG4gICAgW1VQREFURV9BSV9BU1NJU1RBTlRfTUVTU0FHRVNdOiB1cGRhdGVBaUFzc2lzdGFudE1lc3NhZ2VzSGFuZGxlcixcbiAgICBbU0VUX1NUQVJUX1NDUkVFTl9DQVBUVVJFXTogc2V0U3RhcnRTY3JlZW5DYXB0dXJlSGFuZGxlcixcbiAgICBbU0VUX1NDUkVFTl9DQVBUVVJFRF06IHNldFNjcmVlbkNhcHR1cmVkSGFuZGxlcixcbiAgICBbU0VUX01BUF9CT1VOREFSWV06IHNldE1hcEJvdW5kYXJ5SGFuZGxlclxuICB9LFxuICBpbml0aWFsU3RhdGVcbik7XG5cbmZ1bmN0aW9uIHVwZGF0ZUFpQXNzaXN0YW50Q29uZmlnSGFuZGxlcihcbiAgc3RhdGU6IEFpQXNzaXN0YW50U3RhdGUsXG4gIGFjdGlvbjogQWN0aW9uPEFpQXNzaXN0YW50Q29uZmlnPlxuKSB7XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgY29uZmlnOiB7Li4uc3RhdGUuY29uZmlnLCAuLi5hY3Rpb24ucGF5bG9hZH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlQWlBc3Npc3RhbnRNZXNzYWdlc0hhbmRsZXIoc3RhdGU6IEFpQXNzaXN0YW50U3RhdGUsIGFjdGlvbjogQWN0aW9uPE1lc3NhZ2VNb2RlbFtdPikge1xuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIG1lc3NhZ2VzOiBhY3Rpb24ucGF5bG9hZFxuICB9O1xufVxuXG5mdW5jdGlvbiBzZXRTdGFydFNjcmVlbkNhcHR1cmVIYW5kbGVyKHN0YXRlOiBBaUFzc2lzdGFudFN0YXRlLCBhY3Rpb246IEFjdGlvbjxib29sZWFuPikge1xuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIHNjcmVlbnNob3RUb0Fzazoge3N0YXJ0U2NyZWVuQ2FwdHVyZTogYWN0aW9uLnBheWxvYWQsIHNjcmVlbkNhcHR1cmVkOiAnJ31cbiAgfTtcbn1cblxuZnVuY3Rpb24gc2V0U2NyZWVuQ2FwdHVyZWRIYW5kbGVyKHN0YXRlOiBBaUFzc2lzdGFudFN0YXRlLCBhY3Rpb246IEFjdGlvbjxzdHJpbmc+KSB7XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgc2NyZWVuc2hvdFRvQXNrOiB7Li4uc3RhdGUuc2NyZWVuc2hvdFRvQXNrLCBzY3JlZW5DYXB0dXJlZDogYWN0aW9uLnBheWxvYWR9XG4gIH07XG59XG5cbmZ1bmN0aW9uIHNldE1hcEJvdW5kYXJ5SGFuZGxlcihcbiAgc3RhdGU6IEFpQXNzaXN0YW50U3RhdGUsXG4gIGFjdGlvbjogQWN0aW9uPHtudzogW251bWJlciwgbnVtYmVyXTsgc2U6IFtudW1iZXIsIG51bWJlcl19PlxuKSB7XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAga2VwbGVyR2w6IHtcbiAgICAgIC4uLnN0YXRlLmtlcGxlckdsLFxuICAgICAgbWFwQm91bmRhcnk6IGFjdGlvbi5wYXlsb2FkXG4gICAgfVxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUdBLElBQUFBLGFBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQVFBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUE0RCxTQUFBRyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsT0FBQWEsT0FBQSxXQUFBZCxDQUFBLFFBQUFlLGdCQUFBLGFBQUFoQixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFFLE1BQUEsQ0FBQWMseUJBQUEsR0FBQWQsTUFBQSxDQUFBZSxnQkFBQSxDQUFBbEIs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
|