@pie-element/charting 8.7.2-beta.1 → 8.7.2-beta.2

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.
@@ -0,0 +1,268 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
+
9
+ var React = _interopRequireWildcard(require("react"));
10
+
11
+ var _enzyme = require("enzyme");
12
+
13
+ var _configure = require("../configure");
14
+
15
+ var _chartingConfig = require("../charting-config");
16
+
17
+ var _correctResponse = require("../correct-response");
18
+
19
+ var _defaults = _interopRequireDefault(require("../defaults"));
20
+
21
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
+
23
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
+
25
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
26
+
27
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
28
+
29
+ jest.mock('@pie-lib/config-ui', function () {
30
+ return {
31
+ InputContainer: function InputContainer(props) {
32
+ return /*#__PURE__*/React.createElement("div", null, props.children);
33
+ },
34
+ InputCheckbox: function InputCheckbox(props) {
35
+ return /*#__PURE__*/React.createElement("div", null, props.children);
36
+ },
37
+ FeedbackConfig: function FeedbackConfig(props) {
38
+ return /*#__PURE__*/React.createElement("div", null, props.children);
39
+ },
40
+ layout: {
41
+ ConfigLayout: function ConfigLayout(props) {
42
+ return /*#__PURE__*/React.createElement("div", null, props.children);
43
+ }
44
+ },
45
+ settings: {
46
+ Panel: function Panel(props) {
47
+ return /*#__PURE__*/React.createElement("div", {
48
+ onChange: props.onChange
49
+ });
50
+ },
51
+ toggle: jest.fn(),
52
+ radio: jest.fn(),
53
+ numberFields: jest.fn()
54
+ }
55
+ };
56
+ });
57
+ jest.mock('@pie-lib/charting', function () {
58
+ return {
59
+ Chart: function Chart() {
60
+ return /*#__PURE__*/React.createElement("div", null);
61
+ },
62
+ chartTypes: {
63
+ Bar: function Bar() {
64
+ return {
65
+ Component: function Component() {
66
+ return /*#__PURE__*/React.createElement("div", null);
67
+ },
68
+ type: 'bar'
69
+ };
70
+ },
71
+ Histogram: function Histogram() {
72
+ return {
73
+ Component: function Component() {
74
+ return /*#__PURE__*/React.createElement("div", null);
75
+ },
76
+ type: 'histogram'
77
+ };
78
+ },
79
+ LineDot: function LineDot() {
80
+ return {
81
+ Component: function Component() {
82
+ return /*#__PURE__*/React.createElement("div", null);
83
+ },
84
+ type: 'lineDot'
85
+ };
86
+ },
87
+ LineCross: function LineCross() {
88
+ return {
89
+ Component: function Component() {
90
+ return /*#__PURE__*/React.createElement("div", null);
91
+ },
92
+ type: 'lineCross'
93
+ };
94
+ },
95
+ DotPlot: function DotPlot() {
96
+ return {
97
+ Component: function Component() {
98
+ return /*#__PURE__*/React.createElement("div", null);
99
+ },
100
+ type: 'dotPlot'
101
+ };
102
+ },
103
+ LinePlot: function LinePlot() {
104
+ return {
105
+ Component: function Component() {
106
+ return /*#__PURE__*/React.createElement("div", null);
107
+ },
108
+ type: 'linePlot'
109
+ };
110
+ }
111
+ }
112
+ };
113
+ });
114
+ describe('Configure', function () {
115
+ var wrapper;
116
+ beforeEach(function () {
117
+ wrapper = function wrapper(props) {
118
+ var configureProps = _objectSpread(_objectSpread({}, _defaults["default"]), props);
119
+
120
+ return (0, _enzyme.shallow)( /*#__PURE__*/React.createElement(_configure.Configure, configureProps));
121
+ };
122
+ });
123
+ describe('renders', function () {
124
+ it('snapshot', function () {
125
+ expect(wrapper()).toMatchSnapshot();
126
+ });
127
+ });
128
+ describe('logic', function () {
129
+ it('updates rationale', function () {
130
+ var onModelChanged = jest.fn();
131
+ var component = wrapper({
132
+ onModelChanged: onModelChanged
133
+ });
134
+ component.instance().onRationaleChange('New Rationale');
135
+ expect(onModelChanged).toBeCalledWith(expect.objectContaining(_objectSpread(_objectSpread({}, _defaults["default"].model), {}, {
136
+ rationale: 'New Rationale'
137
+ })));
138
+ });
139
+ it('updates prompt', function () {
140
+ var onModelChanged = jest.fn();
141
+ var component = wrapper({
142
+ onModelChanged: onModelChanged
143
+ });
144
+ component.instance().onPromptChange('New Prompt');
145
+ expect(onModelChanged).toBeCalledWith(expect.objectContaining(_objectSpread(_objectSpread({}, _defaults["default"].model), {}, {
146
+ prompt: 'New Prompt'
147
+ })));
148
+ });
149
+ it('updates teacher instructions', function () {
150
+ var onModelChanged = jest.fn();
151
+ var component = wrapper({
152
+ onModelChanged: onModelChanged
153
+ });
154
+ component.instance().onTeacherInstructionsChange('New Teacher Instructions');
155
+ expect(onModelChanged).toBeCalledWith(expect.objectContaining(_objectSpread(_objectSpread({}, _defaults["default"].model), {}, {
156
+ teacherInstructions: 'New Teacher Instructions'
157
+ })));
158
+ });
159
+ it('updates chart type', function () {
160
+ var onModelChanged = jest.fn();
161
+ var component = wrapper({
162
+ onModelChanged: onModelChanged
163
+ });
164
+ component.instance().onChartTypeChange('histogram');
165
+ expect(onModelChanged).toBeCalledWith(expect.objectContaining(_objectSpread(_objectSpread({}, _defaults["default"].model), {}, {
166
+ chartType: 'histogram'
167
+ })));
168
+ });
169
+ });
170
+ });
171
+ describe('CorrectResponse', function () {
172
+ var wrapper;
173
+ var props;
174
+ var onChange = jest.fn();
175
+ beforeEach(function () {
176
+ props = {
177
+ classes: {},
178
+ model: _defaults["default"].model,
179
+ onChange: onChange,
180
+ tools: []
181
+ };
182
+
183
+ wrapper = function wrapper(newProps) {
184
+ var configureProps = _objectSpread(_objectSpread({}, props), {}, {
185
+ newProps: newProps
186
+ });
187
+
188
+ return (0, _enzyme.shallow)( /*#__PURE__*/React.createElement(_correctResponse.CorrectResponse, configureProps));
189
+ };
190
+ });
191
+ describe('renders', function () {
192
+ it('snapshot', function () {
193
+ expect(wrapper()).toMatchSnapshot();
194
+ });
195
+ });
196
+ describe('logic', function () {
197
+ var w;
198
+ beforeEach(function () {
199
+ w = wrapper();
200
+ });
201
+ it('changes correctAnswer data', function () {
202
+ w.instance().changeData([]);
203
+ expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
204
+ correctAnswer: expect.objectContaining({
205
+ data: []
206
+ })
207
+ }));
208
+ var wrap = wrapper(_objectSpread(_objectSpread({}, _defaults["default"]), {}, {
209
+ correctAnswer: {
210
+ data: []
211
+ }
212
+ }));
213
+ wrap.instance().changeData([{
214
+ value: 2,
215
+ label: 'A'
216
+ }]);
217
+ expect(onChange).toHaveBeenCalledWith(expect.objectContaining({
218
+ correctAnswer: expect.objectContaining({
219
+ data: [{
220
+ value: 2,
221
+ label: 'A'
222
+ }]
223
+ })
224
+ }));
225
+ });
226
+ });
227
+ });
228
+ describe('ChartingConfig', function () {
229
+ var wrapper;
230
+ var props;
231
+ var onChange = jest.fn();
232
+ beforeEach(function () {
233
+ props = {
234
+ classes: {},
235
+ model: _defaults["default"].model,
236
+ onChange: onChange,
237
+ tools: []
238
+ };
239
+
240
+ wrapper = function wrapper(newProps) {
241
+ var configureProps = _objectSpread(_objectSpread({}, props), {}, {
242
+ newProps: newProps
243
+ });
244
+
245
+ return (0, _enzyme.shallow)( /*#__PURE__*/React.createElement(_chartingConfig.ChartingConfig, configureProps));
246
+ };
247
+ });
248
+ describe('renders', function () {
249
+ it('snapshot', function () {
250
+ expect(wrapper()).toMatchSnapshot();
251
+ });
252
+ });
253
+ describe('logic', function () {
254
+ it('changeData calls onChange', function () {
255
+ wrapper().instance().changeData([{
256
+ value: 2,
257
+ label: 'A'
258
+ }]);
259
+ expect(onChange).toBeCalledWith(expect.objectContaining({
260
+ data: [{
261
+ value: 2,
262
+ label: 'A'
263
+ }]
264
+ }));
265
+ });
266
+ });
267
+ });
268
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vY29uZmlndXJlLnRlc3QuanMiXSwibmFtZXMiOlsiamVzdCIsIm1vY2siLCJJbnB1dENvbnRhaW5lciIsInByb3BzIiwiY2hpbGRyZW4iLCJJbnB1dENoZWNrYm94IiwiRmVlZGJhY2tDb25maWciLCJsYXlvdXQiLCJDb25maWdMYXlvdXQiLCJzZXR0aW5ncyIsIlBhbmVsIiwib25DaGFuZ2UiLCJ0b2dnbGUiLCJmbiIsInJhZGlvIiwibnVtYmVyRmllbGRzIiwiQ2hhcnQiLCJjaGFydFR5cGVzIiwiQmFyIiwiQ29tcG9uZW50IiwidHlwZSIsIkhpc3RvZ3JhbSIsIkxpbmVEb3QiLCJMaW5lQ3Jvc3MiLCJEb3RQbG90IiwiTGluZVBsb3QiLCJkZXNjcmliZSIsIndyYXBwZXIiLCJiZWZvcmVFYWNoIiwiY29uZmlndXJlUHJvcHMiLCJkZWZhdWx0VmFsdWVzIiwiaXQiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiLCJvbk1vZGVsQ2hhbmdlZCIsImNvbXBvbmVudCIsImluc3RhbmNlIiwib25SYXRpb25hbGVDaGFuZ2UiLCJ0b0JlQ2FsbGVkV2l0aCIsIm9iamVjdENvbnRhaW5pbmciLCJtb2RlbCIsInJhdGlvbmFsZSIsIm9uUHJvbXB0Q2hhbmdlIiwicHJvbXB0Iiwib25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlIiwidGVhY2hlckluc3RydWN0aW9ucyIsIm9uQ2hhcnRUeXBlQ2hhbmdlIiwiY2hhcnRUeXBlIiwiY2xhc3NlcyIsInRvb2xzIiwibmV3UHJvcHMiLCJ3IiwiY2hhbmdlRGF0YSIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiY29ycmVjdEFuc3dlciIsImRhdGEiLCJ3cmFwIiwidmFsdWUiLCJsYWJlbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBQSxJQUFJLENBQUNDLElBQUwsQ0FBVSxvQkFBVixFQUFnQztBQUFBLFNB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O0FBQ0QsS0FKRDtBQUtELEdBYlMsQ0FBVjtBQWVBSCxFQUFBQSxRQUFRLENBQUMsU0FBRCxFQUFZLFlBQU07QUFDeEJLLElBQUFBLEVBQUUsQ0FBQyxVQUFELEVBQWEsWUFBTTtBQUNuQkMsTUFBQUEsTUFBTSxDQUFDTCxPQUFPLEVBQVIsQ0FBTixDQUFrQk0sZUFBbEI7QUFDRCxLQUZDLENBQUY7QUFHRCxHQUpPLENBQVI7QUFNQVAsRUFBQUEsUUFBUSxDQUFDLE9BQUQsRUFBVSxZQUFNO0FBQ3RCSyxJQUFBQSxFQUFFLENBQUMsMkJBQUQsRUFBOEIsWUFBTTtBQUNwQ0osTUFBQUEsT0FBTyxHQUNKUyxRQURILEdBRUdnQixVQUZILENBRWMsQ0FBQztBQUFFSyxRQUFBQSxLQUFLLEVBQUUsQ0FBVDtBQUFZQyxRQUFBQSxLQUFLLEVBQUU7QUFBbkIsT0FBRCxDQUZkO0FBSUExQixNQUFBQSxNQUFNLENBQUNyQixRQUFELENBQU4sQ0FBaUIyQixjQUFqQixDQUNFTixNQUFNLENBQUNPLGdCQUFQLENBQXdCO0FBQ3RCZ0IsUUFBQUEsSUFBSSxFQUFFLENBQUM7QUFBRUUsVUFBQUEsS0FBSyxFQUFFLENBQVQ7QUFBWUMsVUFBQUEsS0FBSyxFQUFFO0FBQW5CLFNBQUQ7QUFEZ0IsT0FBeEIsQ0FERjtBQUtELEtBVkMsQ0FBRjtBQVdELEdBWk8sQ0FBUjtBQWFELENBdkNPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcblxuaW1wb3J0IHsgQ29uZmlndXJlIH0gZnJvbSAnLi4vY29uZmlndXJlJztcbmltcG9ydCB7IENoYXJ0aW5nQ29uZmlnIH0gZnJvbSAnLi4vY2hhcnRpbmctY29uZmlnJztcbmltcG9ydCB7IENvcnJlY3RSZXNwb25zZSB9IGZyb20gJy4uL2NvcnJlY3QtcmVzcG9uc2UnO1xuaW1wb3J0IGRlZmF1bHRWYWx1ZXMgZnJvbSAnLi4vZGVmYXVsdHMnO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2NvbmZpZy11aScsICgpID0+ICh7XG4gIElucHV0Q29udGFpbmVyOiAocHJvcHMpID0+IDxkaXY+e3Byb3BzLmNoaWxkcmVufTwvZGl2PixcbiAgSW5wdXRDaGVja2JveDogKHByb3BzKSA9PiA8ZGl2Pntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG4gIEZlZWRiYWNrQ29uZmlnOiAocHJvcHMpID0+IDxkaXY+e3Byb3BzLmNoaWxkcmVufTwvZGl2PixcbiAgbGF5b3V0OiB7XG4gICAgQ29uZmlnTGF5b3V0OiAocHJvcHMpID0+IDxkaXY+e3Byb3BzLmNoaWxkcmVufTwvZGl2PixcbiAgfSxcbiAgc2V0dGluZ3M6IHtcbiAgICBQYW5lbDogKHByb3BzKSA9PiA8ZGl2IG9uQ2hhbmdlPXtwcm9wcy5vbkNoYW5nZX0gLz4sXG4gICAgdG9nZ2xlOiBqZXN0LmZuKCksXG4gICAgcmFkaW86IGplc3QuZm4oKSxcbiAgICBudW1iZXJGaWVsZHM6IGplc3QuZm4oKSxcbiAgfSxcbn0pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9jaGFydGluZycsICgpID0+ICh7XG4gIENoYXJ0OiAoKSA9PiA8ZGl2IC8+LFxuICBjaGFydFR5cGVzOiB7XG4gICAgQmFyOiAoKSA9PiAoe1xuICAgICAgQ29tcG9uZW50OiAoKSA9PiA8ZGl2IC8+LFxuICAgICAgdHlwZTogJ2JhcicsXG4gICAgfSksXG4gICAgSGlzdG9ncmFtOiAoKSA9PiAoe1xuICAgICAgQ29tcG9uZW50OiAoKSA9PiA8ZGl2IC8+LFxuICAgICAgdHlwZTogJ2hpc3RvZ3JhbScsXG4gICAgfSksXG4gICAgTGluZURvdDogKCkgPT4gKHtcbiAgICAgIENvbXBvbmVudDogKCkgPT4gPGRpdiAvPixcbiAgICAgIHR5cGU6ICdsaW5lRG90JyxcbiAgICB9KSxcbiAgICBMaW5lQ3Jvc3M6ICgpID0+ICh7XG4gICAgICBDb21wb25lbnQ6ICgpID0+IDxkaXYgLz4sXG4gICAgICB0eXBlOiAnbGluZUNyb3NzJyxcbiAgICB9KSxcbiAgICBEb3RQbG90OiAoKSA9PiAoe1xuICAgICAgQ29tcG9uZW50OiAoKSA9PiA8ZGl2IC8+LFxuICAgICAgdHlwZTogJ2RvdFBsb3QnLFxuICAgIH0pLFxuICAgIExpbmVQbG90OiAoKSA9PiAoe1xuICAgICAgQ29tcG9uZW50OiAoKSA9PiA8ZGl2IC8+LFxuICAgICAgdHlwZTogJ2xpbmVQbG90JyxcbiAgICB9KSxcbiAgfSxcbn0pKTtcblxuZGVzY3JpYmUoJ0NvbmZpZ3VyZScsICgpID0+IHtcbiAgbGV0IHdyYXBwZXI7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgd3JhcHBlciA9IChwcm9wcykgPT4ge1xuICAgICAgY29uc3QgY29uZmlndXJlUHJvcHMgPSB7IC4uLmRlZmF1bHRWYWx1ZXMsIC4uLnByb3BzIH07XG5cbiAgICAgIHJldHVybiBzaGFsbG93KDxDb25maWd1cmUgey4uLmNvbmZpZ3VyZVByb3BzfSAvPik7XG4gICAgfTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3NuYXBzaG90JywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHdyYXBwZXIoKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dpYycsICgpID0+IHtcbiAgICBpdCgndXBkYXRlcyByYXRpb25hbGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBvbk1vZGVsQ2hhbmdlZCA9IGplc3QuZm4oKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHdyYXBwZXIoeyBvbk1vZGVsQ2hhbmdlZCB9KTtcblxuICAgICAgY29tcG9uZW50Lmluc3RhbmNlKCkub25SYXRpb25hbGVDaGFuZ2UoJ05ldyBSYXRpb25hbGUnKTtcblxuICAgICAgZXhwZWN0KG9uTW9kZWxDaGFuZ2VkKS50b0JlQ2FsbGVkV2l0aChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIC4uLmRlZmF1bHRWYWx1ZXMubW9kZWwsXG4gICAgICAgICAgcmF0aW9uYWxlOiAnTmV3IFJhdGlvbmFsZScsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCd1cGRhdGVzIHByb21wdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG9uTW9kZWxDaGFuZ2VkID0gamVzdC5mbigpO1xuICAgICAgY29uc3QgY29tcG9uZW50ID0gd3JhcHBlcih7IG9uTW9kZWxDaGFuZ2VkIH0pO1xuXG4gICAgICBjb21wb25lbnQuaW5zdGFuY2UoKS5vblByb21wdENoYW5nZSgnTmV3IFByb21wdCcpO1xuXG4gICAgICBleHBlY3Qob25Nb2RlbENoYW5nZWQpLnRvQmVDYWxsZWRXaXRoKFxuICAgICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgLi4uZGVmYXVsdFZhbHVlcy5tb2RlbCxcbiAgICAgICAgICBwcm9tcHQ6ICdOZXcgUHJvbXB0JyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3VwZGF0ZXMgdGVhY2hlciBpbnN0cnVjdGlvbnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBvbk1vZGVsQ2hhbmdlZCA9IGplc3QuZm4oKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHdyYXBwZXIoeyBvbk1vZGVsQ2hhbmdlZCB9KTtcblxuICAgICAgY29tcG9uZW50Lmluc3RhbmNlKCkub25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlKCdOZXcgVGVhY2hlciBJbnN0cnVjdGlvbnMnKTtcblxuICAgICAgZXhwZWN0KG9uTW9kZWxDaGFuZ2VkKS50b0JlQ2FsbGVkV2l0aChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIC4uLmRlZmF1bHRWYWx1ZXMubW9kZWwsXG4gICAgICAgICAgdGVhY2hlckluc3RydWN0aW9uczogJ05ldyBUZWFjaGVyIEluc3RydWN0aW9ucycsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCd1cGRhdGVzIGNoYXJ0IHR5cGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBvbk1vZGVsQ2hhbmdlZCA9IGplc3QuZm4oKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHdyYXBwZXIoeyBvbk1vZGVsQ2hhbmdlZCB9KTtcblxuICAgICAgY29tcG9uZW50Lmluc3RhbmNlKCkub25DaGFydFR5cGVDaGFuZ2UoJ2hpc3RvZ3JhbScpO1xuXG4gICAgICBleHBlY3Qob25Nb2RlbENoYW5nZWQpLnRvQmVDYWxsZWRXaXRoKFxuICAgICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgLi4uZGVmYXVsdFZhbHVlcy5tb2RlbCxcbiAgICAgICAgICBjaGFydFR5cGU6ICdoaXN0b2dyYW0nLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdDb3JyZWN0UmVzcG9uc2UnLCAoKSA9PiB7XG4gIGxldCB3cmFwcGVyO1xuICBsZXQgcHJvcHM7XG4gIGNvbnN0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHByb3BzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBtb2RlbDogZGVmYXVsdFZhbHVlcy5tb2RlbCxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgdG9vbHM6IFtdLFxuICAgIH07XG5cbiAgICB3cmFwcGVyID0gKG5ld1Byb3BzKSA9PiB7XG4gICAgICBjb25zdCBjb25maWd1cmVQcm9wcyA9IHsgLi4ucHJvcHMsIG5ld1Byb3BzIH07XG5cbiAgICAgIHJldHVybiBzaGFsbG93KDxDb3JyZWN0UmVzcG9uc2Ugey4uLmNvbmZpZ3VyZVByb3BzfSAvPik7XG4gICAgfTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3NuYXBzaG90JywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHdyYXBwZXIoKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dpYycsICgpID0+IHtcbiAgICBsZXQgdztcblxuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgdyA9IHdyYXBwZXIoKTtcbiAgICB9KTtcblxuICAgIGl0KCdjaGFuZ2VzIGNvcnJlY3RBbnN3ZXIgZGF0YScsICgpID0+IHtcbiAgICAgIHcuaW5zdGFuY2UoKS5jaGFuZ2VEYXRhKFtdKTtcblxuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGNvcnJlY3RBbnN3ZXI6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgIGRhdGE6IFtdLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHdyYXAgPSB3cmFwcGVyKHtcbiAgICAgICAgLi4uZGVmYXVsdFZhbHVlcyxcbiAgICAgICAgY29ycmVjdEFuc3dlcjoge1xuICAgICAgICAgIGRhdGE6IFtdLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB3cmFwLmluc3RhbmNlKCkuY2hhbmdlRGF0YShbeyB2YWx1ZTogMiwgbGFiZWw6ICdBJyB9XSk7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXG4gICAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBjb3JyZWN0QW5zd2VyOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgICBkYXRhOiBbeyB2YWx1ZTogMiwgbGFiZWw6ICdBJyB9XSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnQ2hhcnRpbmdDb25maWcnLCAoKSA9PiB7XG4gIGxldCB3cmFwcGVyO1xuICBsZXQgcHJvcHM7XG4gIGNvbnN0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHByb3BzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBtb2RlbDogZGVmYXVsdFZhbHVlcy5tb2RlbCxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgdG9vbHM6IFtdLFxuICAgIH07XG5cbiAgICB3cmFwcGVyID0gKG5ld1Byb3BzKSA9PiB7XG4gICAgICBjb25zdCBjb25maWd1cmVQcm9wcyA9IHsgLi4ucHJvcHMsIG5ld1Byb3BzIH07XG5cbiAgICAgIHJldHVybiBzaGFsbG93KDxDaGFydGluZ0NvbmZpZyB7Li4uY29uZmlndXJlUHJvcHN9IC8+KTtcbiAgICB9O1xuICB9KTtcblxuICBkZXNjcmliZSgncmVuZGVycycsICgpID0+IHtcbiAgICBpdCgnc25hcHNob3QnLCAoKSA9PiB7XG4gICAgICBleHBlY3Qod3JhcHBlcigpKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xvZ2ljJywgKCkgPT4ge1xuICAgIGl0KCdjaGFuZ2VEYXRhIGNhbGxzIG9uQ2hhbmdlJywgKCkgPT4ge1xuICAgICAgd3JhcHBlcigpXG4gICAgICAgIC5pbnN0YW5jZSgpXG4gICAgICAgIC5jaGFuZ2VEYXRhKFt7IHZhbHVlOiAyLCBsYWJlbDogJ0EnIH1dKTtcblxuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0JlQ2FsbGVkV2l0aChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGRhdGE6IFt7IHZhbHVlOiAyLCBsYWJlbDogJ0EnIH1dLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _correctResponse = require("../correct-response");
6
+
7
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
8
+
9
+ describe('CorrectResponse - getUpdatedCategories function', function () {
10
+ var prevProps = {
11
+ model: {
12
+ data: [{
13
+ label: 'A',
14
+ value: 0,
15
+ interactive: true,
16
+ editable: true
17
+ }, {
18
+ label: 'B',
19
+ value: 1,
20
+ interactive: true,
21
+ editable: false
22
+ }, {
23
+ label: 'C',
24
+ value: 2,
25
+ interactive: true,
26
+ editable: false
27
+ }],
28
+ correctAnswer: {
29
+ data: [{
30
+ label: 'A',
31
+ value: 1
32
+ }, {
33
+ label: 'B',
34
+ value: 1
35
+ }, {
36
+ label: 'C',
37
+ value: 1
38
+ }]
39
+ }
40
+ }
41
+ };
42
+ var prevState = {
43
+ categories: [{
44
+ label: 'A',
45
+ value: 0,
46
+ interactive: true,
47
+ editable: true
48
+ }, {
49
+ label: 'B',
50
+ value: 1,
51
+ interactive: true,
52
+ editable: false
53
+ }, {
54
+ label: 'C',
55
+ value: 2,
56
+ interactive: true,
57
+ editable: false
58
+ }]
59
+ }; // Test when a new category is added to Define Chart
60
+
61
+ it('should handle category addition correctly', function () {
62
+ var nextProps = (0, _cloneDeep["default"])(prevProps);
63
+ nextProps.model.data.push({
64
+ label: 'D',
65
+ value: 2,
66
+ interactive: true,
67
+ editable: true
68
+ });
69
+ var updatedCategories = (0, _correctResponse.getUpdatedCategories)(nextProps, prevProps, prevState);
70
+ expect(updatedCategories).toEqual([{
71
+ label: 'A',
72
+ value: 1,
73
+ interactive: true,
74
+ editable: true,
75
+ deletable: false
76
+ }, {
77
+ label: 'B',
78
+ value: 1,
79
+ interactive: true,
80
+ editable: false,
81
+ deletable: false
82
+ }, {
83
+ label: 'C',
84
+ value: 1,
85
+ interactive: true,
86
+ editable: false,
87
+ deletable: false
88
+ }, {
89
+ label: 'D',
90
+ value: 2,
91
+ interactive: true,
92
+ editable: true,
93
+ deletable: false
94
+ }]);
95
+ }); // Test when a category is removed from Define Chart
96
+
97
+ it('should handle category removal correctly', function () {
98
+ var nextProps = {
99
+ model: {
100
+ data: [{
101
+ label: 'A',
102
+ value: 0,
103
+ interactive: true,
104
+ editable: true,
105
+ index: 0,
106
+ deletable: true
107
+ }, {
108
+ label: 'C',
109
+ value: 2,
110
+ interactive: true,
111
+ editable: false,
112
+ index: 2,
113
+ deletable: true
114
+ }]
115
+ }
116
+ };
117
+ var updatedCategories = (0, _correctResponse.getUpdatedCategories)(nextProps, prevProps, prevState);
118
+ expect(updatedCategories).toEqual([{
119
+ label: 'A',
120
+ value: 0,
121
+ interactive: true,
122
+ editable: true,
123
+ deletable: false
124
+ }, {
125
+ label: 'C',
126
+ value: 2,
127
+ interactive: true,
128
+ editable: false,
129
+ deletable: false
130
+ }]);
131
+ }); // Test when all categories are removed from Define Chart
132
+
133
+ it('should handle all category removal correctly', function () {
134
+ var nextProps = {
135
+ model: {
136
+ data: []
137
+ }
138
+ };
139
+ var prevState = {
140
+ "categories": [{
141
+ "label": "A",
142
+ "value": 0,
143
+ "editable": true,
144
+ "interactive": true
145
+ }]
146
+ };
147
+ var updatedCategories = (0, _correctResponse.getUpdatedCategories)(nextProps, prevProps, prevState);
148
+ expect(updatedCategories).toEqual([]);
149
+ });
150
+ });
151
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vY29ycmVjdFJlc3BvbnNlLnRlc3QuanMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJwcmV2UHJvcHMiLCJtb2RlbCIsImRhdGEiLCJsYWJlbCIsInZhbHVlIiwiaW50ZXJhY3RpdmUiLCJlZGl0YWJsZSIsImNvcnJlY3RBbnN3ZXIiLCJwcmV2U3RhdGUiLCJjYXRlZ29yaWVzIiwiaXQiLCJuZXh0UHJvcHMiLCJwdXNoIiwidXBkYXRlZENhdGVnb3JpZXMiLCJleHBlY3QiLCJ0b0VxdWFsIiwiZGVsZXRhYmxlIiwiaW5kZXgiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFDQTs7QUFFQUEsUUFBUSxDQUFDLGlEQUFELEVBQW9ELFlBQU07QUFDaEUsTUFBTUMsU0FBUyxHQUFHO0FBQ2hCQyxJQUFBQSxLQUFLLEVBQUU7QUFDTEMsTUFBQUEsSUFBSSxFQUFFLENBQ0o7QUFBRUMsUUFBQUEsS0FBSyxFQUFFLEdBQVQ7QUFBY0MsUUFBQUEsS0FBSyxFQUFFLENBQXJCO0FBQXdCQyxRQUFBQSxXQUFXLEVBQUUsSUFBckM7QUFBMkNDLFFBQUFBLFFBQVEsRUFBRTtBQUFyRCxPQURJLEVBRUo7QUFBRUgsUUFBQUEsS0FBSyxFQUFFLEdBQVQ7QUFBY0MsUUFBQUEsS0FBSyxFQUFFLENBQXJCO0FBQXdCQyxRQUFBQSxXQUFXLEVBQUUsSUFBckM7QUFBMkNDLFFBQUFBLFFBQVEsRUFBRTtBQUFyRCxPQUZJLEVBR0o7QUFBRUgsUUFBQUEsS0FBSyxFQUFFLEdBQVQ7QUFBY0MsUUFBQUEsS0FBSyxFQUFFLENBQXJCO0FBQXdCQyxRQUFBQSxXQUFXLEVBQUUsSUFBckM7QUFBMkNDLFFBQUFBLFFBQVEsRUFBRTtBQUFyRCxPQUhJLENBREQ7QUFNTEMsTUFBQUEsYUFBYSxFQUFFO0FBQ2JMLFFBQUFBLElBQUksRUFBRSxDQUNKO0FBQUVDLFVBQUFBLEtBQUssRUFBRSxHQUFUO0FBQWNDLFVBQUFBLEtBQUssRUFBRTtBQUFyQixTQURJLEVBRUo7QUFBRUQsVUFBQUEsS0FBSyxFQUFFLEdBQVQ7QUFBY0MsVUFBQUEsS0FBSyxFQUFFO0FBQXJCLFNBRkksRUFHSjtBQUFFRCxVQUFBQSxLQUFLLEVBQUUsR0FBVDtBQUFjQyxVQUFBQSxLQUFLLEVBQUU7QUFBckIsU0FISTtBQURPO0FBTlY7QUFEUyxHQUFsQjtBQWlCQSxNQUFNSSxTQUFTLEdBQUc7QUFDaEJDLElBQUFBLFVBQVUsRUFBRSxDQUNWO0FBQUVOLE1BQUFBLEtBQUssRUFBRSxHQUFUO0FBQWNDLE1BQUFBLEtBQUssRUFBRSxDQUFyQjtBQUF3QkMsTUFBQUEsV0FBVyxFQUFFLElBQXJDO0FBQTJDQyxNQUFBQSxRQUFRLEVBQUU7QUFBckQsS0FEVSxFQUVWO0FBQUVILE1BQUFBLEtBQUssRUFBRSxHQUFUO0FBQWNDLE1BQUFBLEtBQUssRUFBRSxDQUFyQjtBQUF3QkMsTUFBQUEsV0FBVyxFQUFFLElBQXJDO0FBQTJDQyxNQUFBQSxRQUFRLEVBQUU7QUFBckQsS0FGVSxFQUdWO0FBQUVILE1BQUFBLEtBQUssRUFBRSxHQUFUO0FBQWNDLE1BQUFBLEtBQUssRUFBRSxDQUFyQjtBQUF3QkMsTUFBQUEsV0FBVyxFQUFFLElBQXJDO0FBQTJDQyxNQUFBQSxRQUFRLEVBQUU7QUFBckQsS0FIVTtBQURJLEdBQWxCLENBbEJnRSxDQTBCaEU7O0FBQ0FJLEVBQUFBLEVBQUUsQ0FBQywyQ0FBRCxFQUE4QyxZQUFNO0FBQ3BELFFBQU1DLFNBQVMsR0FBRywyQkFBVVgsU0FBVixDQUFsQjtBQUNBVyxJQUFBQSxTQUFTLENBQUNWLEtBQVYsQ0FBZ0JDLElBQWhCLENBQXFCVSxJQUFyQixDQUEwQjtBQUFFVCxNQUFBQSxLQUFLLEVBQUUsR0FBVDtBQUFjQyxNQUFBQSxLQUFLLEVBQUUsQ0FBckI7QUFBd0JDLE1BQUFBLFdBQVcsRUFBRSxJQUFyQztBQUEyQ0MsTUFBQUEsUUFBUSxFQUFFO0FBQXJELEtBQTFCO0FBRUEsUUFBTU8saUJBQWlCLEdBQUcsMkNBQXFCRixTQUFyQixFQUFnQ1gsU0FBaEMsRUFBMkNRLFNBQTNDLENBQTFCO0FBRUFNLElBQUFBLE1BQU0sQ0FBQ0QsaUJBQUQsQ0FBTixDQUEwQkUsT0FBMUIsQ0FBa0MsQ0FDaEM7QUFBRVosTUFBQUEsS0FBSyxFQUFFLEdBQVQ7QUFBY0MsTUFBQUEsS0FBSyxFQUFFLENBQXJCO0FBQXdCQyxNQUFBQSxXQUFXLEVBQUUsSUFBckM7QUFBMkNDLE1BQUFBLFFBQVEsRUFBRSxJQUFyRDtBQUEyRFUsTUFBQUEsU0FBUyxFQUFFO0FBQXRFLEtBRGdDLEVBRWhDO0FBQUViLE1BQUFBLEtBQUssRUFBRSxHQUFUO0FBQWNDLE1BQUFBLEtBQUssRUFBRSxDQUFyQjtBQUF3QkMsTUFBQUEsV0FBVyxFQUFFLElBQXJDO0FBQTJDQyxNQUFBQSxRQUFRLEVBQUUsS0FBckQ7QUFBNERVLE1BQUFBLFNBQVMsRUFBRTtBQUF2RSxLQUZnQyxFQUdoQztBQUFFYixNQUFBQSxLQUFLLEVBQUUsR0FBVDtBQUFjQyxNQUFBQSxLQUFLLEVBQUUsQ0FBckI7QUFBd0JDLE1BQUFBLFdBQVcsRUFBRSxJQUFyQztBQUEyQ0MsTUFBQUEsUUFBUSxFQUFFLEtBQXJEO0FBQTREVSxNQUFBQSxTQUFTLEVBQUU7QUFBdkUsS0FIZ0MsRUFJaEM7QUFBRWIsTUFBQUEsS0FBSyxFQUFFLEdBQVQ7QUFBY0MsTUFBQUEsS0FBSyxFQUFFLENBQXJCO0FBQXdCQyxNQUFBQSxXQUFXLEVBQUUsSUFBckM7QUFBMkNDLE1BQUFBLFFBQVEsRUFBRSxJQUFyRDtBQUEyRFUsTUFBQUEsU0FBUyxFQUFFO0FBQXRFLEtBSmdDLENBQWxDO0FBTUQsR0FaQyxDQUFGLENBM0JnRSxDQXlDaEU7O0FBQ0FOLEVBQUFBLEVBQUUsQ0FBQywwQ0FBRCxFQUE2QyxZQUFNO0FBQ25ELFFBQU1DLFNBQVMsR0FBRztBQUNoQlYsTUFBQUEsS0FBSyxFQUFFO0FBQ0xDLFFBQUFBLElBQUksRUFBRSxDQUNKO0FBQ0VDLFVBQUFBLEtBQUssRUFBRSxHQURUO0FBRUVDLFVBQUFBLEtBQUssRUFBRSxDQUZUO0FBR0VDLFVBQUFBLFdBQVcsRUFBRSxJQUhmO0FBSUVDLFVBQUFBLFFBQVEsRUFBRSxJQUpaO0FBS0VXLFVBQUFBLEtBQUssRUFBRSxDQUxUO0FBTUVELFVBQUFBLFNBQVMsRUFBRTtBQU5iLFNBREksRUFTSjtBQUNFYixVQUFBQSxLQUFLLEVBQUUsR0FEVDtBQUVFQyxVQUFBQSxLQUFLLEVBQUUsQ0FGVDtBQUdFQyxVQUFBQSxXQUFXLEVBQUUsSUFIZjtBQUlFQyxVQUFBQSxRQUFRLEVBQUUsS0FKWjtBQUtFVyxVQUFBQSxLQUFLLEVBQUUsQ0FMVDtBQU1FRCxVQUFBQSxTQUFTLEVBQUU7QUFOYixTQVRJO0FBREQ7QUFEUyxLQUFsQjtBQXVCQSxRQUFNSCxpQkFBaUIsR0FBRywyQ0FBcUJGLFNBQXJCLEVBQWdDWCxTQUFoQyxFQUEyQ1EsU0FBM0MsQ0FBMUI7QUFFQU0sSUFBQUEsTUFBTSxDQUFDRCxpQkFBRCxDQUFOLENBQTBCRSxPQUExQixDQUFrQyxDQUNoQztBQUFFWixNQUFBQSxLQUFLLEVBQUUsR0FBVDtBQUFjQyxNQUFBQSxLQUFLLEVBQUUsQ0FBckI7QUFBd0JDLE1BQUFBLFdBQVcsRUFBRSxJQUFyQztBQUEyQ0MsTUFBQUEsUUFBUSxFQUFFLElBQXJEO0FBQTJEVSxNQUFBQSxTQUFTLEVBQUU7QUFBdEUsS0FEZ0MsRUFFaEM7QUFBRWIsTUFBQUEsS0FBSyxFQUFFLEdBQVQ7QUFBY0MsTUFBQUEsS0FBSyxFQUFFLENBQXJCO0FBQXdCQyxNQUFBQSxXQUFXLEVBQUUsSUFBckM7QUFBMkNDLE1BQUFBLFFBQVEsRUFBRSxLQUFyRDtBQUE0RFUsTUFBQUEsU0FBUyxFQUFFO0FBQXZFLEtBRmdDLENBQWxDO0FBSUQsR0E5QkMsQ0FBRixDQTFDZ0UsQ0EwRWhFOztBQUNBTixFQUFBQSxFQUFFLENBQUMsOENBQUQsRUFBaUQsWUFBTTtBQUN2RCxRQUFNQyxTQUFTLEdBQUc7QUFDaEJWLE1BQUFBLEtBQUssRUFBRTtBQUNMQyxRQUFBQSxJQUFJLEVBQUU7QUFERDtBQURTLEtBQWxCO0FBTUEsUUFBTU0sU0FBUyxHQUFHO0FBQ2hCLG9CQUFjLENBQ1Y7QUFDSSxpQkFBUyxHQURiO0FBRUksaUJBQVMsQ0FGYjtBQUdJLG9CQUFZLElBSGhCO0FBSUksdUJBQWU7QUFKbkIsT0FEVTtBQURFLEtBQWxCO0FBV0EsUUFBTUssaUJBQWlCLEdBQUcsMkNBQXFCRixTQUFyQixFQUFnQ1gsU0FBaEMsRUFBMkNRLFNBQTNDLENBQTFCO0FBRUFNLElBQUFBLE1BQU0sQ0FBQ0QsaUJBQUQsQ0FBTixDQUEwQkUsT0FBMUIsQ0FBa0MsRUFBbEM7QUFDRCxHQXJCQyxDQUFGO0FBc0JELENBakdPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRVcGRhdGVkQ2F0ZWdvcmllcyB9IGZyb20gJy4uL2NvcnJlY3QtcmVzcG9uc2UnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcblxuZGVzY3JpYmUoJ0NvcnJlY3RSZXNwb25zZSAtIGdldFVwZGF0ZWRDYXRlZ29yaWVzIGZ1bmN0aW9uJywgKCkgPT4ge1xuICBjb25zdCBwcmV2UHJvcHMgPSB7XG4gICAgbW9kZWw6IHtcbiAgICAgIGRhdGE6IFtcbiAgICAgICAgeyBsYWJlbDogJ0EnLCB2YWx1ZTogMCwgaW50ZXJhY3RpdmU6IHRydWUsIGVkaXRhYmxlOiB0cnVlIH0sXG4gICAgICAgIHsgbGFiZWw6ICdCJywgdmFsdWU6IDEsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogZmFsc2UgfSxcbiAgICAgICAgeyBsYWJlbDogJ0MnLCB2YWx1ZTogMiwgaW50ZXJhY3RpdmU6IHRydWUsIGVkaXRhYmxlOiBmYWxzZSB9LFxuICAgICAgXSxcbiAgICAgIGNvcnJlY3RBbnN3ZXI6IHtcbiAgICAgICAgZGF0YTogW1xuICAgICAgICAgIHsgbGFiZWw6ICdBJywgdmFsdWU6IDEgfSxcbiAgICAgICAgICB7IGxhYmVsOiAnQicsIHZhbHVlOiAxIH0sXG4gICAgICAgICAgeyBsYWJlbDogJ0MnLCB2YWx1ZTogMSB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IHByZXZTdGF0ZSA9IHtcbiAgICBjYXRlZ29yaWVzOiBbXG4gICAgICB7IGxhYmVsOiAnQScsIHZhbHVlOiAwLCBpbnRlcmFjdGl2ZTogdHJ1ZSwgZWRpdGFibGU6IHRydWUgfSxcbiAgICAgIHsgbGFiZWw6ICdCJywgdmFsdWU6IDEsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogZmFsc2UgfSxcbiAgICAgIHsgbGFiZWw6ICdDJywgdmFsdWU6IDIsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogZmFsc2UgfSxcbiAgICBdLFxuICB9O1xuXG4gIC8vIFRlc3Qgd2hlbiBhIG5ldyBjYXRlZ29yeSBpcyBhZGRlZCB0byBEZWZpbmUgQ2hhcnRcbiAgaXQoJ3Nob3VsZCBoYW5kbGUgY2F0ZWdvcnkgYWRkaXRpb24gY29ycmVjdGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IG5leHRQcm9wcyA9IGNsb25lRGVlcChwcmV2UHJvcHMpO1xuICAgIG5leHRQcm9wcy5tb2RlbC5kYXRhLnB1c2goeyBsYWJlbDogJ0QnLCB2YWx1ZTogMiwgaW50ZXJhY3RpdmU6IHRydWUsIGVkaXRhYmxlOiB0cnVlIH0pO1xuXG4gICAgY29uc3QgdXBkYXRlZENhdGVnb3JpZXMgPSBnZXRVcGRhdGVkQ2F0ZWdvcmllcyhuZXh0UHJvcHMsIHByZXZQcm9wcywgcHJldlN0YXRlKTtcblxuICAgIGV4cGVjdCh1cGRhdGVkQ2F0ZWdvcmllcykudG9FcXVhbChbXG4gICAgICB7IGxhYmVsOiAnQScsIHZhbHVlOiAxLCBpbnRlcmFjdGl2ZTogdHJ1ZSwgZWRpdGFibGU6IHRydWUsIGRlbGV0YWJsZTogZmFsc2UgfSxcbiAgICAgIHsgbGFiZWw6ICdCJywgdmFsdWU6IDEsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogZmFsc2UsIGRlbGV0YWJsZTogZmFsc2UgfSxcbiAgICAgIHsgbGFiZWw6ICdDJywgdmFsdWU6IDEsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogZmFsc2UsIGRlbGV0YWJsZTogZmFsc2UgfSxcbiAgICAgIHsgbGFiZWw6ICdEJywgdmFsdWU6IDIsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogdHJ1ZSwgZGVsZXRhYmxlOiBmYWxzZSB9LFxuICAgIF0pO1xuICB9KTtcblxuICAvLyBUZXN0IHdoZW4gYSBjYXRlZ29yeSBpcyByZW1vdmVkIGZyb20gRGVmaW5lIENoYXJ0XG4gIGl0KCdzaG91bGQgaGFuZGxlIGNhdGVnb3J5IHJlbW92YWwgY29ycmVjdGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IG5leHRQcm9wcyA9IHtcbiAgICAgIG1vZGVsOiB7XG4gICAgICAgIGRhdGE6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJ0EnLFxuICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgIGVkaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgICAgICBkZWxldGFibGU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJ0MnLFxuICAgICAgICAgICAgdmFsdWU6IDIsXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGluZGV4OiAyLFxuICAgICAgICAgICAgZGVsZXRhYmxlOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVkQ2F0ZWdvcmllcyA9IGdldFVwZGF0ZWRDYXRlZ29yaWVzKG5leHRQcm9wcywgcHJldlByb3BzLCBwcmV2U3RhdGUpO1xuXG4gICAgZXhwZWN0KHVwZGF0ZWRDYXRlZ29yaWVzKS50b0VxdWFsKFtcbiAgICAgIHsgbGFiZWw6ICdBJywgdmFsdWU6IDAsIGludGVyYWN0aXZlOiB0cnVlLCBlZGl0YWJsZTogdHJ1ZSwgZGVsZXRhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBsYWJlbDogJ0MnLCB2YWx1ZTogMiwgaW50ZXJhY3RpdmU6IHRydWUsIGVkaXRhYmxlOiBmYWxzZSwgZGVsZXRhYmxlOiBmYWxzZSB9LFxuICAgIF0pO1xuICB9KTtcblxuICAvLyBUZXN0IHdoZW4gYWxsIGNhdGVnb3JpZXMgYXJlIHJlbW92ZWQgZnJvbSBEZWZpbmUgQ2hhcnRcbiAgaXQoJ3Nob3VsZCBoYW5kbGUgYWxsIGNhdGVnb3J5IHJlbW92YWwgY29ycmVjdGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IG5leHRQcm9wcyA9IHtcbiAgICAgIG1vZGVsOiB7XG4gICAgICAgIGRhdGE6IFtdLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgcHJldlN0YXRlID0ge1xuICAgICAgXCJjYXRlZ29yaWVzXCI6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICAgIFwibGFiZWxcIjogXCJBXCIsXG4gICAgICAgICAgICAgIFwidmFsdWVcIjogMCxcbiAgICAgICAgICAgICAgXCJlZGl0YWJsZVwiOiB0cnVlLFxuICAgICAgICAgICAgICBcImludGVyYWN0aXZlXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICBdXG4gIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRDYXRlZ29yaWVzID0gZ2V0VXBkYXRlZENhdGVnb3JpZXMobmV4dFByb3BzLCBwcmV2UHJvcHMsIHByZXZTdGF0ZSk7XG5cbiAgICBleHBlY3QodXBkYXRlZENhdGVnb3JpZXMpLnRvRXF1YWwoW10pO1xuICB9KTtcbn0pO1xuIl19
@@ -260,4 +260,4 @@ exports.ChartingConfig = ChartingConfig;
260
260
  var _default = (0, _styles.withStyles)(styles)(ChartingConfig);
261
261
 
262
262
  exports["default"] = _default;
263
- //# sourceMappingURL=charting-config.js.map
263
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jaGFydGluZy1jb25maWcuanN4Il0sIm5hbWVzIjpbInN0eWxlcyIsInRoZW1lIiwiY29udGFpbmVyIiwibWFyZ2luQm90dG9tIiwic3BhY2luZyIsInVuaXQiLCJkaXNwbGF5IiwiZmxleCIsInRpdGxlIiwiY29sdW1uIiwiY3VzdG9tQ29sb3IiLCJjb2xvciIsInRlcnRpYXJ5IiwicmVzdG9yZUNvcnJlY3RBbnN3ZXIiLCJjb3JyZWN0QW5zd2VyIiwiZGF0YSIsImNvcnJlY3RSZXNwb25zZURlZmluaXRpb24iLCJmb3JFYWNoIiwiY2F0ZWdvcnkiLCJjdXJyZW50SW5kZXgiLCJlZGl0YWJsZSIsImludGVyYWN0aXZlIiwibGFiZWwiLCJ2YWx1ZSIsIkNoYXJ0aW5nQ29uZmlnIiwicHJvcHMiLCJvcGVuIiwiY2FsbGJhY2siLCJzZXRTdGF0ZSIsImRpYWxvZyIsIm9uQ2hhbmdlIiwibW9kZWwiLCJ0ZXh0Iiwib25Db25maXJtIiwiaGFuZGxlQWxlcnREaWFsb2ciLCJhZGRDYXRlZ29yeUVuYWJsZWQiLCJvbkNsb3NlIiwidHlwZSIsInN0YXRlIiwiY2xhc3NlcyIsImNoYXJ0cyIsImxhYmVsc1BsYWNlaG9sZGVycyIsInRpdGxlUGxhY2Vob2xkZXIiLCJzaG93UGl4ZWxHdWlkZXMiLCJhdXRob3JOZXdDYXRlZ29yeURlZmF1bHRzIiwiY2hhcnRpbmdPcHRpb25zIiwibWF0aE1sT3B0aW9ucyIsImxhYmVsc0NoYXJhY3RlcnNMaW1pdCIsImRvbWFpbiIsInJhbmdlIiwiY2hhcnRUeXBlIiwiZ3JhcGgiLCJtYXAiLCJpbmRleCIsImNoYW5nZURhdGEiLCJjaGFuZ2VUaXRsZSIsImNoYW5nZUxhYmVsIiwiY2hhbmdlSW50ZXJhY3RpdmVFbmFibGVkIiwiY2hhbmdlRWRpdGFibGVFbmFibGVkIiwiY2hhbmdlQWRkQ2F0ZWdvcnlFbmFibGVkIiwiZSIsImNoYW5nZUFkZFJlbW92ZUVuYWJsZWQiLCJ0YXJnZXQiLCJjaGVja2VkIiwiYWRkQ2F0ZWdvcnkiLCJhdXRob3JpbmdMYWJlbCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsImZ1bmMiLCJhcnJheSIsImJvb2wiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxNQUFNLEdBQUcsU0FBVEEsTUFBUyxDQUFDQyxLQUFEO0FBQUEsU0FBWTtBQUN6QkMsSUFBQUEsU0FBUyxFQUFFO0FBQ1RDLE1BQUFBLFlBQVksRUFBRUYsS0FBSyxDQUFDRyxPQUFOLENBQWNDLElBQWQsR0FBcUIsR0FEMUI7QUFFVEMsTUFBQUEsT0FBTyxFQUFFLE1BRkE7QUFHVEMsTUFBQUEsSUFBSSxFQUFFO0FBSEcsS0FEYztBQU16QkMsSUFBQUEsS0FBSyxFQUFFO0FBQ0xMLE1BQUFBLFlBQVksRUFBRUYsS0FBSyxDQUFDRyxPQUFOLENBQWNDO0FBRHZCLEtBTmtCO0FBU3pCSSxJQUFBQSxNQUFNLEVBQUU7QUFDTkYsTUFBQUEsSUFBSSxFQUFFO0FBREEsS0FUaUI7QUFZekJHLElBQUFBLFdBQVcsRUFBRTtBQUNYQyxNQUFBQSxLQUFLLFlBQUtBLGdCQUFNQyxRQUFOLEVBQUw7QUFETTtBQVpZLEdBQVo7QUFBQSxDQUFmOztBQWlCQSxJQUFNQyxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQXVCLENBQUNDLGFBQUQsRUFBZ0JDLElBQWhCLEVBQXlCO0FBQ3BELE1BQUksQ0FBQ0QsYUFBTCxFQUFvQjtBQUNsQixXQUFPQyxJQUFQO0FBQ0Q7O0FBRUQsTUFBSUMseUJBQXlCLEdBQUcsRUFBaEM7QUFFQSxHQUFDRCxJQUFJLElBQUksRUFBVCxFQUFhRSxPQUFiLENBQXFCLFVBQUNDLFFBQUQsRUFBV0MsWUFBWCxFQUE0QjtBQUFBOztBQUMvQyxRQUFRQyxRQUFSLEdBQWtDRixRQUFsQyxDQUFRRSxRQUFSO0FBQUEsUUFBa0JDLFdBQWxCLEdBQWtDSCxRQUFsQyxDQUFrQkcsV0FBbEI7QUFFQSxRQUFNQyxLQUFLLEdBQUdGLFFBQVEsNkJBQUlOLGFBQWEsQ0FBQ0ssWUFBRCxDQUFqQixrREFBSSxzQkFBNkJHLEtBQXpDLEdBQWlEUixhQUFhLENBQUNLLFlBQUQsQ0FBYixDQUE0QkcsS0FBN0UsR0FBcUZKLFFBQVEsQ0FBQ0ksS0FBNUc7QUFFQSxRQUFNQyxLQUFLLEdBQ1RGLFdBQVcsOEJBQUlQLGFBQWEsQ0FBQ0ssWUFBRCxDQUFqQixtREFBSSx1QkFBNkJJLEtBQTVDLEdBQW9EVCxhQUFhLENBQUNLLFlBQUQsQ0FBYixDQUE0QkksS0FBaEYsR0FBd0ZMLFFBQVEsQ0FBQ0ssS0FEbkc7QUFHQVAsSUFBQUEseUJBQXlCLENBQUNHLFlBQUQsQ0FBekIsR0FBMEM7QUFDeENHLE1BQUFBLEtBQUssRUFBRUEsS0FEaUM7QUFFeENDLE1BQUFBLEtBQUssRUFBRUEsS0FGaUM7QUFHeENILE1BQUFBLFFBQVEsRUFBRUYsUUFBUSxDQUFDRSxRQUhxQjtBQUl4Q0MsTUFBQUEsV0FBVyxFQUFFSCxRQUFRLENBQUNHO0FBSmtCLEtBQTFDO0FBTUQsR0FkRDtBQWdCQSxTQUFPTCx5QkFBUDtBQUNELENBeEJEOztJQTBCYVEsYzs7Ozs7QUFhWCwwQkFBWUMsS0FBWixFQUFtQjtBQUFBOztBQUFBO0FBQ2pCLDhCQUFNQSxLQUFOO0FBRGlCLDBHQVNDLFVBQUNDLElBQUQsRUFBT0MsUUFBUDtBQUFBLGFBQ2xCLE1BQUtDLFFBQUwsQ0FDRTtBQUNFQyxRQUFBQSxNQUFNLEVBQUU7QUFBRUgsVUFBQUEsSUFBSSxFQUFKQTtBQUFGO0FBRFYsT0FERixFQUlFQyxRQUpGLENBRGtCO0FBQUEsS0FURDtBQUFBLG1HQWlCTixVQUFDWixJQUFEO0FBQUEsYUFBVSxNQUFLVSxLQUFMLENBQVdLLFFBQVgsaUNBQXlCLE1BQUtMLEtBQUwsQ0FBV00sS0FBcEM7QUFBMkNoQixRQUFBQSxJQUFJLEVBQUpBO0FBQTNDLFNBQVY7QUFBQSxLQWpCTTtBQUFBLCtHQW1CTSxVQUFDUSxLQUFELEVBQVc7QUFDbEMsVUFBUVEsS0FBUixHQUFrQixNQUFLTixLQUF2QixDQUFRTSxLQUFSO0FBQ0EsVUFBTWpCLGFBQWEsR0FBR0Qsb0JBQW9CLENBQUNrQixLQUFLLENBQUNqQixhQUFOLENBQW9CQyxJQUFyQixFQUEyQmdCLEtBQUssQ0FBQ2hCLElBQWpDLENBQTFDOztBQUVBLFVBQUksQ0FBQ1EsS0FBTCxFQUFZO0FBQ1YsY0FBS0ssUUFBTCxDQUFjO0FBQ1pDLFVBQUFBLE1BQU0sRUFBRTtBQUNOSCxZQUFBQSxJQUFJLEVBQUUsSUFEQTtBQUVObEIsWUFBQUEsS0FBSyxFQUFFLFNBRkQ7QUFHTndCLFlBQUFBLElBQUksRUFBRSw0R0FIQTtBQUlOQyxZQUFBQSxTQUFTLEVBQUU7QUFBQSxxQkFDVCxNQUFLQyxpQkFBTCxDQUNFLEtBREYsRUFFRSxNQUFLVCxLQUFMLENBQVdLLFFBQVgsaUNBQ0ssTUFBS0wsS0FBTCxDQUFXTSxLQURoQjtBQUVFSSxnQkFBQUEsa0JBQWtCLEVBQUVaLEtBRnRCO0FBR0VULGdCQUFBQSxhQUFhLEVBQUU7QUFBRUMsa0JBQUFBLElBQUksRUFBRUQ7QUFBUjtBQUhqQixpQkFGRixDQURTO0FBQUEsYUFKTDtBQWFOc0IsWUFBQUEsT0FBTyxFQUFFO0FBQUEscUJBQU0sTUFBS0YsaUJBQUwsQ0FBdUIsS0FBdkIsQ0FBTjtBQUFBO0FBYkg7QUFESSxTQUFkO0FBaUJELE9BbEJELE1Ba0JPO0FBQ0wsY0FBS1QsS0FBTCxDQUFXSyxRQUFYLGlDQUF5QixNQUFLTCxLQUFMLENBQVdNLEtBQXBDO0FBQTJDSSxVQUFBQSxrQkFBa0IsRUFBRVo7QUFBL0Q7QUFDRDtBQUNGLEtBNUNrQjtBQUFBLG9HQThDTCxVQUFDZixLQUFEO0FBQUEsYUFBVyxNQUFLaUIsS0FBTCxDQUFXSyxRQUFYLGlDQUF5QixNQUFLTCxLQUFMLENBQVdNLEtBQXBDO0FBQTJDdkIsUUFBQUEsS0FBSyxFQUFMQTtBQUEzQyxTQUFYO0FBQUEsS0E5Q0s7QUFBQSxvR0FnREwsVUFBQzZCLElBQUQsRUFBT2YsS0FBUDtBQUFBLGFBQ1osTUFBS0csS0FBTCxDQUFXSyxRQUFYLGlDQUNLLE1BQUtMLEtBQUwsQ0FBV00sS0FEaEIsNENBRUdNLElBRkgsa0NBR08sTUFBS1osS0FBTCxDQUFXTSxLQUFYLENBQWlCTSxJQUFqQixDQUhQO0FBSUlmLFFBQUFBLEtBQUssRUFBTEE7QUFKSixXQURZO0FBQUEsS0FoREs7QUFFakIsVUFBS2dCLEtBQUwsR0FBYTtBQUNYVCxNQUFBQSxNQUFNLEVBQUU7QUFDTkgsUUFBQUEsSUFBSSxFQUFFO0FBREE7QUFERyxLQUFiO0FBRmlCO0FBT2xCOzs7O1dBa0RELGtCQUFTO0FBQUE7QUFBQTs7QUFDUCx3QkFXSSxLQUFLRCxLQVhUO0FBQUEsVUFDRWMsT0FERixlQUNFQSxPQURGO0FBQUEsVUFFRVIsS0FGRixlQUVFQSxLQUZGO0FBQUEsVUFHRVMsTUFIRixlQUdFQSxNQUhGO0FBQUEsVUFJRUMsa0JBSkYsZUFJRUEsa0JBSkY7QUFBQSxVQUtFQyxnQkFMRixlQUtFQSxnQkFMRjtBQUFBLFVBTUVDLGVBTkYsZUFNRUEsZUFORjtBQUFBLFVBT0VDLHlCQVBGLGVBT0VBLHlCQVBGO0FBQUEsVUFRRUMsZUFSRixlQVFFQSxlQVJGO0FBQUEsOENBU0VDLGFBVEY7QUFBQSxVQVNFQSxhQVRGLHNDQVNrQixFQVRsQjtBQUFBLFVBVUVDLHFCQVZGLGVBVUVBLHFCQVZGO0FBWUEsVUFBUWxCLE1BQVIsR0FBbUIsS0FBS1MsS0FBeEIsQ0FBUVQsTUFBUjs7QUFDQSxpQkFBb0NFLEtBQUssSUFBSSxFQUE3QztBQUFBLDZCQUFRaUIsTUFBUjtBQUFBLFVBQVFBLE1BQVIsNEJBQWlCLEVBQWpCO0FBQUEsNEJBQXFCQyxLQUFyQjtBQUFBLFVBQXFCQSxLQUFyQiwyQkFBNkIsRUFBN0I7O0FBRUEsMEJBQ0UsOENBQ0U7QUFBSyxRQUFBLFNBQVMsRUFBRVYsT0FBTyxDQUFDL0I7QUFBeEIsMkNBREYsZUFFRTtBQUFLLFFBQUEsU0FBUyxFQUFFK0IsT0FBTyxDQUFDckM7QUFBeEIsc0JBQ0U7QUFBSyxRQUFBLFNBQVMsRUFBRXFDLE9BQU8sQ0FBQzlCLE1BQXhCO0FBQWdDLFFBQUEsR0FBRyxFQUFDO0FBQXBDLHNCQUNFLG9CQUFDLHNCQUFEO0FBQVksUUFBQSxTQUFTLEVBQUMsS0FBdEI7QUFBNEIsUUFBQSxJQUFJLEVBQUM7QUFBakMsc0JBQ0UscUhBREYsQ0FERixlQUtFLG9CQUFDLGVBQUQ7QUFDRSxRQUFBLFdBQVcsRUFBRSxJQURmO0FBRUUsUUFBQSxlQUFlLEVBQUVvQyxlQUZuQjtBQUdFLFFBQUEsZUFBZSxFQUFFRixlQUhuQjtBQUlFLFFBQUEsU0FBUyxFQUFFWixLQUFLLENBQUNtQixTQUpuQjtBQUtFLFFBQUEsSUFBSSxFQUFFbkIsS0FBSyxDQUFDb0IsS0FMZDtBQU1FLFFBQUEsTUFBTSxFQUFFSCxNQU5WO0FBT0UsUUFBQSxLQUFLLEVBQUVDLEtBUFQ7QUFRRSxRQUFBLE1BQU0sRUFBRVQsTUFSVixDQVNFO0FBVEY7QUFVRSxRQUFBLElBQUksRUFBRVQsS0FBSyxDQUFDaEIsSUFBTixDQUFXcUMsR0FBWCxDQUFlLFVBQUNsQyxRQUFELEVBQVdtQyxLQUFYO0FBQUEsaURBQ2hCbkMsUUFEZ0I7QUFFbkJtQyxZQUFBQSxLQUFLLEVBQUVBO0FBRlk7QUFBQSxTQUFmLENBVlI7QUFjRSxRQUFBLEtBQUssRUFBRXRCLEtBQUssQ0FBQ3ZCLEtBZGY7QUFlRSxRQUFBLFlBQVksRUFBRSxLQUFLOEMsVUFmckI7QUFnQkUsUUFBQSxhQUFhLEVBQUUsS0FBS0MsV0FoQnRCO0FBaUJFLFFBQUEsY0FBYyxFQUFFLEtBQUtDLFdBakJ2QjtBQWtCRSxRQUFBLGtCQUFrQixFQUFFLElBbEJ0QjtBQW1CRSxRQUFBLHdCQUF3QixFQUFFekIsS0FBSyxDQUFDMEIsd0JBbkJsQztBQW9CRSxRQUFBLHFCQUFxQixFQUFFMUIsS0FBSyxDQUFDMkIscUJBcEIvQjtBQXFCRSxRQUFBLG9CQUFvQixFQUFFZCx5QkFBRixhQUFFQSx5QkFBRix1QkFBRUEseUJBQXlCLENBQUV0QixLQXJCbkQ7QUFzQkUsUUFBQSxnQkFBZ0IsRUFBRXNCLHlCQXRCcEI7QUF1QkUsUUFBQSxrQkFBa0IsRUFBRUgsa0JBdkJ0QjtBQXdCRSxRQUFBLGdCQUFnQixFQUFFQyxnQkFBRixhQUFFQSxnQkFBRix1QkFBRUEsZ0JBQWdCLENBQUVwQixLQXhCdEM7QUF5QkUsUUFBQSxhQUFhLEVBQUV3QixhQXpCakI7QUEwQkUsUUFBQSxxQkFBcUIsRUFBRUM7QUExQnpCLFFBTEYsRUFpQ0doQixLQUFLLENBQUM0Qix3QkFBTixpQkFDQyw4Q0FDRSxvQkFBQyxvQkFBRDtBQUNFLFFBQUEsU0FBUyxFQUFFcEIsT0FBTyxDQUFDN0IsV0FEckI7QUFFRSxRQUFBLE9BQU8sRUFBRXFCLEtBQUssQ0FBQ0ksa0JBRmpCO0FBR0UsUUFBQSxRQUFRLEVBQUUsa0JBQUN5QixDQUFELEVBQU87QUFDZixVQUFBLE1BQUksQ0FBQ0Msc0JBQUwsQ0FBNEJELENBQUMsQ0FBQ0UsTUFBRixDQUFTQyxPQUFyQztBQUNEO0FBTEgsUUFERixFQVFHbEIsZUFSSCxhQVFHQSxlQVJILGdEQVFHQSxlQUFlLENBQUVtQixXQVJwQiwwREFRRyxzQkFBOEJDLGNBUmpDLENBbENKLGVBNkNFLG9CQUFDLHFCQUFEO0FBQ0UsUUFBQSxJQUFJLEVBQUVwQyxNQUFNLENBQUNILElBRGY7QUFFRSxRQUFBLEtBQUssRUFBRUcsTUFBTSxDQUFDckIsS0FGaEI7QUFHRSxRQUFBLElBQUksRUFBRXFCLE1BQU0sQ0FBQ0csSUFIZjtBQUlFLFFBQUEsT0FBTyxFQUFFSCxNQUFNLENBQUNPLE9BSmxCO0FBS0UsUUFBQSxTQUFTLEVBQUVQLE1BQU0sQ0FBQ0k7QUFMcEIsUUE3Q0YsQ0FERixDQUZGLENBREY7QUE0REQ7OztFQWxKaUNpQyxLQUFLLENBQUNDLFM7OztpQ0FBN0IzQyxjLGVBQ1E7QUFDakJlLEVBQUFBLE9BQU8sRUFBRTZCLHNCQUFVQyxNQUFWLENBQWlCQyxVQURUO0FBRWpCdkMsRUFBQUEsS0FBSyxFQUFFcUMsc0JBQVVDLE1BQVYsQ0FBaUJDLFVBRlA7QUFHakJ4QyxFQUFBQSxRQUFRLEVBQUVzQyxzQkFBVUcsSUFBVixDQUFlRCxVQUhSO0FBSWpCOUIsRUFBQUEsTUFBTSxFQUFFNEIsc0JBQVVJLEtBSkQ7QUFLakIvQixFQUFBQSxrQkFBa0IsRUFBRTJCLHNCQUFVQyxNQUxiO0FBTWpCM0IsRUFBQUEsZ0JBQWdCLEVBQUUwQixzQkFBVUMsTUFOWDtBQU9qQjFCLEVBQUFBLGVBQWUsRUFBRXlCLHNCQUFVSyxJQVBWO0FBUWpCN0IsRUFBQUEseUJBQXlCLEVBQUV3QixzQkFBVUMsTUFScEI7QUFTakJ4QixFQUFBQSxlQUFlLEVBQUV1QixzQkFBVUM7QUFUVixDOztlQW9KTix3QkFBV3JFLE1BQVgsRUFBbUJ3QixjQUFuQixDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IHsgQ2hhcnQgfSBmcm9tICdAcGllLWxpYi9jaGFydGluZyc7XG5pbXBvcnQgeyBBbGVydERpYWxvZyB9IGZyb20gJ0BwaWUtbGliL2NvbmZpZy11aSc7XG5pbXBvcnQgQ2hlY2tib3ggZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQ2hlY2tib3gnO1xuaW1wb3J0IHsgY29sb3IgfSBmcm9tICdAcGllLWxpYi9yZW5kZXItdWknO1xuXG5pbXBvcnQgVHlwb2dyYXBoeSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9UeXBvZ3JhcGh5JztcblxuY29uc3Qgc3R5bGVzID0gKHRoZW1lKSA9PiAoe1xuICBjb250YWluZXI6IHtcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCAqIDIuNSxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleDogMSxcbiAgfSxcbiAgdGl0bGU6IHtcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgfSxcbiAgY29sdW1uOiB7XG4gICAgZmxleDogMSxcbiAgfSxcbiAgY3VzdG9tQ29sb3I6IHtcbiAgICBjb2xvcjogYCR7Y29sb3IudGVydGlhcnkoKX0gIWltcG9ydGFudGAsXG4gIH0sXG59KTtcblxuY29uc3QgcmVzdG9yZUNvcnJlY3RBbnN3ZXIgPSAoY29ycmVjdEFuc3dlciwgZGF0YSkgPT4ge1xuICBpZiAoIWNvcnJlY3RBbnN3ZXIpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGxldCBjb3JyZWN0UmVzcG9uc2VEZWZpbml0aW9uID0gW107XG5cbiAgKGRhdGEgfHwgW10pLmZvckVhY2goKGNhdGVnb3J5LCBjdXJyZW50SW5kZXgpID0+IHtcbiAgICBjb25zdCB7IGVkaXRhYmxlLCBpbnRlcmFjdGl2ZSB9ID0gY2F0ZWdvcnk7XG5cbiAgICBjb25zdCBsYWJlbCA9IGVkaXRhYmxlICYmIGNvcnJlY3RBbnN3ZXJbY3VycmVudEluZGV4XT8ubGFiZWwgPyBjb3JyZWN0QW5zd2VyW2N1cnJlbnRJbmRleF0ubGFiZWwgOiBjYXRlZ29yeS5sYWJlbDtcblxuICAgIGNvbnN0IHZhbHVlID1cbiAgICAgIGludGVyYWN0aXZlICYmIGNvcnJlY3RBbnN3ZXJbY3VycmVudEluZGV4XT8udmFsdWUgPyBjb3JyZWN0QW5zd2VyW2N1cnJlbnRJbmRleF0udmFsdWUgOiBjYXRlZ29yeS52YWx1ZTtcblxuICAgIGNvcnJlY3RSZXNwb25zZURlZmluaXRpb25bY3VycmVudEluZGV4XSA9IHtcbiAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGVkaXRhYmxlOiBjYXRlZ29yeS5lZGl0YWJsZSxcbiAgICAgIGludGVyYWN0aXZlOiBjYXRlZ29yeS5pbnRlcmFjdGl2ZSxcbiAgICB9O1xuICB9KTtcblxuICByZXR1cm4gY29ycmVjdFJlc3BvbnNlRGVmaW5pdGlvbjtcbn07XG5cbmV4cG9ydCBjbGFzcyBDaGFydGluZ0NvbmZpZyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgY2hhcnRzOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgbGFiZWxzUGxhY2Vob2xkZXJzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHRpdGxlUGxhY2Vob2xkZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgc2hvd1BpeGVsR3VpZGVzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhdXRob3JOZXdDYXRlZ29yeURlZmF1bHRzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGNoYXJ0aW5nT3B0aW9uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgZGlhbG9nOiB7XG4gICAgICAgIG9wZW46IGZhbHNlLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgaGFuZGxlQWxlcnREaWFsb2cgPSAob3BlbiwgY2FsbGJhY2spID0+XG4gICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgIHtcbiAgICAgICAgZGlhbG9nOiB7IG9wZW4gfSxcbiAgICAgIH0sXG4gICAgICBjYWxsYmFjayxcbiAgICApO1xuXG4gIGNoYW5nZURhdGEgPSAoZGF0YSkgPT4gdGhpcy5wcm9wcy5vbkNoYW5nZSh7IC4uLnRoaXMucHJvcHMubW9kZWwsIGRhdGEgfSk7XG5cbiAgY2hhbmdlQWRkUmVtb3ZlRW5hYmxlZCA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHsgbW9kZWwgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgY29ycmVjdEFuc3dlciA9IHJlc3RvcmVDb3JyZWN0QW5zd2VyKG1vZGVsLmNvcnJlY3RBbnN3ZXIuZGF0YSwgbW9kZWwuZGF0YSk7XG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgZGlhbG9nOiB7XG4gICAgICAgICAgb3BlbjogdHJ1ZSxcbiAgICAgICAgICB0aXRsZTogJ1dhcm5pbmcnLFxuICAgICAgICAgIHRleHQ6ICdUaGlzIGNoYW5nZSB3aWxsIHJlbW92ZSBhbnkgY29ycmVjdCBhbnN3ZXIgY2F0ZWdvcmllcyB0aGF0IGFyZSBub3QgcGFydCBvZiB0aGUgaW5pdGlhbCBpdGVtIGNvbmZpZ3VyYXRpb24uJyxcbiAgICAgICAgICBvbkNvbmZpcm06ICgpID0+XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUFsZXJ0RGlhbG9nKFxuICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5wcm9wcy5tb2RlbCxcbiAgICAgICAgICAgICAgICBhZGRDYXRlZ29yeUVuYWJsZWQ6IHZhbHVlLFxuICAgICAgICAgICAgICAgIGNvcnJlY3RBbnN3ZXI6IHsgZGF0YTogY29ycmVjdEFuc3dlciB9LFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgb25DbG9zZTogKCkgPT4gdGhpcy5oYW5kbGVBbGVydERpYWxvZyhmYWxzZSksXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh7IC4uLnRoaXMucHJvcHMubW9kZWwsIGFkZENhdGVnb3J5RW5hYmxlZDogdmFsdWUgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNoYW5nZVRpdGxlID0gKHRpdGxlKSA9PiB0aGlzLnByb3BzLm9uQ2hhbmdlKHsgLi4udGhpcy5wcm9wcy5tb2RlbCwgdGl0bGUgfSk7XG5cbiAgY2hhbmdlTGFiZWwgPSAodHlwZSwgbGFiZWwpID0+XG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZSh7XG4gICAgICAuLi50aGlzLnByb3BzLm1vZGVsLFxuICAgICAgW3R5cGVdOiB7XG4gICAgICAgIC4uLnRoaXMucHJvcHMubW9kZWxbdHlwZV0sXG4gICAgICAgIGxhYmVsLFxuICAgICAgfSxcbiAgICB9KTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgY2xhc3NlcyxcbiAgICAgIG1vZGVsLFxuICAgICAgY2hhcnRzLFxuICAgICAgbGFiZWxzUGxhY2Vob2xkZXJzLFxuICAgICAgdGl0bGVQbGFjZWhvbGRlcixcbiAgICAgIHNob3dQaXhlbEd1aWRlcyxcbiAgICAgIGF1dGhvck5ld0NhdGVnb3J5RGVmYXVsdHMsXG4gICAgICBjaGFydGluZ09wdGlvbnMsXG4gICAgICBtYXRoTWxPcHRpb25zID0ge30sXG4gICAgICBsYWJlbHNDaGFyYWN0ZXJzTGltaXQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBkaWFsb2cgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgeyBkb21haW4gPSB7fSwgcmFuZ2UgPSB7fSB9ID0gbW9kZWwgfHwge307XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMudGl0bGV9PkRlZmluZSBJbml0aWFsIENoYXJ0IEF0dHJpYnV0ZXM8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuY29udGFpbmVyfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5jb2x1bW59IGtleT1cImdyYXBoXCI+XG4gICAgICAgICAgICA8VHlwb2dyYXBoeSBjb21wb25lbnQ9XCJkaXZcIiB0eXBlPVwiYm9keTFcIj5cbiAgICAgICAgICAgICAgPHNwYW4+VXNlIHRoZSB0b29scyBiZWxvdyB0byBzZXQgdXAgdGhlIGNoYXJ0IGFzIGl0IHdpbGwgaW5pdGlhbGx5IGFwcGVhciB0byBzdHVkZW50cy48L3NwYW4+XG4gICAgICAgICAgICA8L1R5cG9ncmFwaHk+XG5cbiAgICAgICAgICAgIDxDaGFydFxuICAgICAgICAgICAgICBkZWZpbmVDaGFydD17dHJ1ZX1cbiAgICAgICAgICAgICAgY2hhcnRpbmdPcHRpb25zPXtjaGFydGluZ09wdGlvbnN9XG4gICAgICAgICAgICAgIHNob3dQaXhlbEd1aWRlcz17c2hvd1BpeGVsR3VpZGVzfVxuICAgICAgICAgICAgICBjaGFydFR5cGU9e21vZGVsLmNoYXJ0VHlwZX1cbiAgICAgICAgICAgICAgc2l6ZT17bW9kZWwuZ3JhcGh9XG4gICAgICAgICAgICAgIGRvbWFpbj17ZG9tYWlufVxuICAgICAgICAgICAgICByYW5nZT17cmFuZ2V9XG4gICAgICAgICAgICAgIGNoYXJ0cz17Y2hhcnRzfVxuICAgICAgICAgICAgICAvLyBpbmRleCBpcyBhIHByb3BlcnR5IHVzZWQgZm9yIHNldHRpbmcgdGhlIGNvcnJlY3QgYW5zd2VyIGRhdGE7IGl0J3MgbmVlZGVkIGluIG9yZGVyIHRvIHJlbW92ZSBjYXRlZ29yaWVzIGZyb20gb3RoZXIgZGF0YSBzZXRzIGZyb20gdGhlIHNhbWUgaW5kZXggaXQgd2FzIHJlbW92ZWQgZnJvbSB0aGUgaW5pdGlhbCBkYXRhXG4gICAgICAgICAgICAgIGRhdGE9e21vZGVsLmRhdGEubWFwKChjYXRlZ29yeSwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgICAgICAgLi4uY2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICB9KSl9XG4gICAgICAgICAgICAgIHRpdGxlPXttb2RlbC50aXRsZX1cbiAgICAgICAgICAgICAgb25EYXRhQ2hhbmdlPXt0aGlzLmNoYW5nZURhdGF9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlVGl0bGU9e3RoaXMuY2hhbmdlVGl0bGV9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlTGFiZWxzPXt0aGlzLmNoYW5nZUxhYmVsfVxuICAgICAgICAgICAgICBhZGRDYXRlZ29yeUVuYWJsZWQ9e3RydWV9XG4gICAgICAgICAgICAgIGNoYW5nZUludGVyYWN0aXZlRW5hYmxlZD17bW9kZWwuY2hhbmdlSW50ZXJhY3RpdmVFbmFibGVkfVxuICAgICAgICAgICAgICBjaGFuZ2VFZGl0YWJsZUVuYWJsZWQ9e21vZGVsLmNoYW5nZUVkaXRhYmxlRW5hYmxlZH1cbiAgICAgICAgICAgICAgY2F0ZWdvcnlEZWZhdWx0TGFiZWw9e2F1dGhvck5ld0NhdGVnb3J5RGVmYXVsdHM/LmxhYmVsfVxuICAgICAgICAgICAgICBjYXRlZ29yeURlZmF1bHRzPXthdXRob3JOZXdDYXRlZ29yeURlZmF1bHRzfVxuICAgICAgICAgICAgICBsYWJlbHNQbGFjZWhvbGRlcnM9e2xhYmVsc1BsYWNlaG9sZGVyc31cbiAgICAgICAgICAgICAgdGl0bGVQbGFjZWhvbGRlcj17dGl0bGVQbGFjZWhvbGRlcj8ubGFiZWx9XG4gICAgICAgICAgICAgIG1hdGhNbE9wdGlvbnM9e21hdGhNbE9wdGlvbnN9XG4gICAgICAgICAgICAgIGxhYmVsc0NoYXJhY3RlcnNMaW1pdD17bGFiZWxzQ2hhcmFjdGVyc0xpbWl0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHttb2RlbC5jaGFuZ2VBZGRDYXRlZ29yeUVuYWJsZWQgJiYgKFxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxDaGVja2JveFxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmN1c3RvbUNvbG9yfVxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17bW9kZWwuYWRkQ2F0ZWdvcnlFbmFibGVkfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlQWRkUmVtb3ZlRW5hYmxlZChlLnRhcmdldC5jaGVja2VkKTtcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7Y2hhcnRpbmdPcHRpb25zPy5hZGRDYXRlZ29yeT8uYXV0aG9yaW5nTGFiZWx9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxBbGVydERpYWxvZ1xuICAgICAgICAgICAgICBvcGVuPXtkaWFsb2cub3Blbn1cbiAgICAgICAgICAgICAgdGl0bGU9e2RpYWxvZy50aXRsZX1cbiAgICAgICAgICAgICAgdGV4dD17ZGlhbG9nLnRleHR9XG4gICAgICAgICAgICAgIG9uQ2xvc2U9e2RpYWxvZy5vbkNsb3NlfVxuICAgICAgICAgICAgICBvbkNvbmZpcm09e2RpYWxvZy5vbkNvbmZpcm19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMpKENoYXJ0aW5nQ29uZmlnKTtcbiJdfQ==
@@ -408,4 +408,4 @@ exports.Configure = Configure;
408
408
  var _default = (0, _styles.withStyles)(styles)(Configure);
409
409
 
410
410
  exports["default"] = _default;
411
- //# sourceMappingURL=configure.js.map
411
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmUuanN4Il0sIm5hbWVzIjpbImxvZyIsIlBhbmVsIiwic2V0dGluZ3MiLCJ0b2dnbGUiLCJyYWRpbyIsImRyb3Bkb3duIiwidGV4dEZpZWxkIiwic3R5bGVzIiwidGhlbWUiLCJ0aXRsZSIsImZvbnRTaXplIiwiZGlzcGxheSIsIm1hcmdpblRvcCIsInNwYWNpbmciLCJ1bml0IiwibWFyZ2luQm90dG9tIiwicHJvbXB0SG9sZGVyIiwid2lkdGgiLCJwYWRkaW5nVG9wIiwiZGVzY3JpcHRpb24iLCJlcnJvclRleHQiLCJ0eXBvZ3JhcGh5IiwiY29sb3IiLCJwYWxldHRlIiwiZXJyb3IiLCJtYWluIiwiY2hhcnRzIiwiY2hhcnRUeXBlcyIsIkJhciIsIkhpc3RvZ3JhbSIsIkxpbmVEb3QiLCJMaW5lQ3Jvc3MiLCJEb3RQbG90IiwiTGluZVBsb3QiLCJDb25maWd1cmUiLCJwcm9wcyIsInJhdGlvbmFsZSIsIm9uTW9kZWxDaGFuZ2VkIiwibW9kZWwiLCJwcm9tcHQiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zIiwiY2hhcnRUeXBlIiwiY29uZmlnIiwic3RhdGUiLCJvbGRHcmlkVmFsdWVzIiwiZ3JpZFZhbHVlcyIsIm9sZExhYmVsVmFsdWVzIiwibGFiZWxWYWx1ZXMiLCJ1cGRhdGVkTW9kZWwiLCJncmFwaCIsInJhbmdlIiwicmFuZ2VDb25zdHJhaW50cyIsImhlaWdodCIsInNldFN0YXRlIiwic3RlcCIsImNsYXNzZXMiLCJjb25maWd1cmF0aW9uIiwiaW1hZ2VTdXBwb3J0Iiwib25Db25maWd1cmF0aW9uQ2hhbmdlZCIsInVwbG9hZFNvdW5kU3VwcG9ydCIsImJhc2VJbnB1dENvbmZpZ3VyYXRpb24iLCJjb250ZW50RGltZW5zaW9ucyIsImNoYXJ0RGltZW5zaW9ucyIsImF1dGhvck5ld0NhdGVnb3J5RGVmYXVsdHMiLCJsYWJlbHNQbGFjZWhvbGRlcnMiLCJpbnN0cnVjdGlvbiIsIm1heEltYWdlV2lkdGgiLCJtYXhJbWFnZUhlaWdodCIsInNjb3JpbmdUeXBlIiwic2V0dGluZ3NQYW5lbERpc2FibGVkIiwic3BlbGxDaGVjayIsInN0dWRlbnRJbnN0cnVjdGlvbnMiLCJ0aXRsZVBsYWNlaG9sZGVyIiwid2l0aFJ1YnJpYyIsImNoYXJ0aW5nT3B0aW9ucyIsImF2YWlsYWJsZUNoYXJ0VHlwZXMiLCJtYXRoTWxPcHRpb25zIiwiY2hhcnRUeXBlTGFiZWwiLCJsYW5ndWFnZSIsImxhbmd1YWdlQ2hvaWNlcyIsImxhYmVsc0NoYXJhY3RlcnNMaW1pdCIsImVycm9ycyIsImV4dHJhQ1NTUnVsZXMiLCJwcm9tcHRFbmFibGVkIiwicmF0aW9uYWxlRW5hYmxlZCIsInNwZWxsQ2hlY2tFbmFibGVkIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJzdHVkZW50TmV3Q2F0ZWdvcnlEZWZhdWx0TGFiZWwiLCJjYXRlZ29yeUVycm9ycyIsImNvcnJlY3RBbnN3ZXJFcnJvcnMiLCJwcm9tcHRFcnJvciIsInJhdGlvbmFsZUVycm9yIiwidGVhY2hlckluc3RydWN0aW9uc0Vycm9yIiwic2hvd1BpeGVHdWlkZXMiLCJzaG93SW5Db25maWdQYW5lbCIsImRlZmF1bHRJbWFnZU1heFdpZHRoIiwiZGVmYXVsdEltYWdlTWF4SGVpZ2h0IiwicGFuZWxJdGVtVHlwZSIsImNoYW5nZUludGVyYWN0aXZlRW5hYmxlZCIsImNoYW5nZUludGVyYWN0aXZlIiwic2V0dGluZ3NMYWJlbCIsImNoYW5nZUVkaXRhYmxlRW5hYmxlZCIsImNoYW5nZUVkaXRhYmxlIiwiY2hhbmdlQWRkQ2F0ZWdvcnlFbmFibGVkIiwiYWRkQ2F0ZWdvcnkiLCJwYW5lbFByb3BlcnRpZXMiLCJsYWJlbCIsInN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkIiwicnVicmljRW5hYmxlZCIsImVuYWJsZWQiLCJvcHRpb25zIiwiZ2V0UGx1Z2luUHJvcHMiLCJTZXR0aW5ncyIsIlByb3BlcnRpZXMiLCJvblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2UiLCJpbnB1dENvbmZpZ3VyYXRpb24iLCJvblByb21wdENoYW5nZSIsIm9uQ29uZmlnQ2hhbmdlIiwib25SYXRpb25hbGVDaGFuZ2UiLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsImZ1bmMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRUEsSUFBTUEsR0FBRyxHQUFHLHVCQUFNLGlDQUFOLENBQVo7QUFDQSxJQUFRQyxLQUFSLEdBQXNEQyxrQkFBdEQsQ0FBUUQsS0FBUjtBQUFBLElBQWVFLE1BQWYsR0FBc0RELGtCQUF0RCxDQUFlQyxNQUFmO0FBQUEsSUFBdUJDLEtBQXZCLEdBQXNERixrQkFBdEQsQ0FBdUJFLEtBQXZCO0FBQUEsSUFBOEJDLFFBQTlCLEdBQXNESCxrQkFBdEQsQ0FBOEJHLFFBQTlCO0FBQUEsSUFBd0NDLFNBQXhDLEdBQXNESixrQkFBdEQsQ0FBd0NJLFNBQXhDOztBQUVBLElBQU1DLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUNDLEtBQUQ7QUFBQSxTQUFZO0FBQ3pCQyxJQUFBQSxLQUFLLEVBQUU7QUFDTEMsTUFBQUEsUUFBUSxFQUFFLFFBREw7QUFFTEMsTUFBQUEsT0FBTyxFQUFFLE9BRko7QUFHTEMsTUFBQUEsU0FBUyxFQUFFSixLQUFLLENBQUNLLE9BQU4sQ0FBY0MsSUFBZCxHQUFxQixDQUgzQjtBQUlMQyxNQUFBQSxZQUFZLEVBQUVQLEtBQUssQ0FBQ0ssT0FBTixDQUFjQztBQUp2QixLQURrQjtBQU96QkUsSUFBQUEsWUFBWSxFQUFFO0FBQ1pDLE1BQUFBLEtBQUssRUFBRSxNQURLO0FBRVpDLE1BQUFBLFVBQVUsRUFBRVYsS0FBSyxDQUFDSyxPQUFOLENBQWNDLElBQWQsR0FBcUIsQ0FGckI7QUFHWkMsTUFBQUEsWUFBWSxFQUFFUCxLQUFLLENBQUNLLE9BQU4sQ0FBY0MsSUFBZCxHQUFxQjtB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RSxFQUFBQSxZQUFZLEVBQUVnRSxzQkFBVUUsTUFKUDtBQUtqQmhFLEVBQUFBLGtCQUFrQixFQUFFOEQsc0JBQVVFLE1BTGI7QUFNakJyRixFQUFBQSxLQUFLLEVBQUVtRixzQkFBVUUsTUFBVixDQUFpQkMsVUFOUDtBQU9qQnBFLEVBQUFBLGFBQWEsRUFBRWlFLHNCQUFVRSxNQUFWLENBQWlCQyxVQVBmO0FBUWpCbEQsRUFBQUEsZUFBZSxFQUFFK0Msc0JBQVVFO0FBUlYsQztpQ0FEUnpGLFMsa0JBcUJXO0FBQUVxQixFQUFBQSxPQUFPLEVBQUU7QUFBWCxDOztlQTRPVCx3QkFBV2hELE1BQVgsRUFBbUIyQixTQUFuQixDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IHsgY2hhcnRUeXBlcywgQ29uZmlndXJlQ2hhcnRQYW5lbCB9IGZyb20gJ0BwaWUtbGliL2NoYXJ0aW5nJztcbmltcG9ydCB7IHNldHRpbmdzLCBsYXlvdXQsIElucHV0Q29udGFpbmVyIH0gZnJvbSAnQHBpZS1saWIvY29uZmlnLXVpJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IFR5cG9ncmFwaHkgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvVHlwb2dyYXBoeSc7XG5pbXBvcnQgRWRpdGFibGVIdG1sIGZyb20gJ0BwaWUtbGliL2VkaXRhYmxlLWh0bWwnO1xuXG5pbXBvcnQgQ2hhcnRpbmdDb25maWcgZnJvbSAnLi9jaGFydGluZy1jb25maWcnO1xuaW1wb3J0IENvcnJlY3RSZXNwb25zZSBmcm9tICcuL2NvcnJlY3QtcmVzcG9uc2UnO1xuaW1wb3J0IHsgYXBwbHlDb25zdHJhaW50cywgZ2V0R3JpZFZhbHVlcywgZ2V0TGFiZWxWYWx1ZXMgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtZWxlbWVudDpncmFwaGluZzpjb25maWd1cmUnKTtcbmNvbnN0IHsgUGFuZWwsIHRvZ2dsZSwgcmFkaW8sIGRyb3Bkb3duLCB0ZXh0RmllbGQgfSA9IHNldHRpbmdzO1xuXG5jb25zdCBzdHlsZXMgPSAodGhlbWUpID0+ICh7XG4gIHRpdGxlOiB7XG4gICAgZm9udFNpemU6ICcxLjFyZW0nLFxuICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyLFxuICAgIG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZy51bml0LFxuICB9LFxuICBwcm9tcHRIb2xkZXI6IHtcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHBhZGRpbmdUb3A6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDIsXG4gICAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyLFxuICB9LFxuICBkZXNjcmlwdGlvbjoge1xuICAgIG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZy51bml0ICogMi41LFxuICB9LFxuICBlcnJvclRleHQ6IHtcbiAgICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSAtIDIsXG4gICAgY29sb3I6IHRoZW1lLnBhbGV0dGUuZXJyb3IubWFpbixcbiAgICBwYWRkaW5nVG9wOiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gIH0sXG59KTtcblxuY29uc3QgY2hhcnRzID0gW1xuICBjaGFydFR5cGVzLkJhcigpLFxuICBjaGFydFR5cGVzLkhpc3RvZ3JhbSgpLFxuICBjaGFydFR5cGVzLkxpbmVEb3QoKSxcbiAgY2hhcnRUeXBlcy5MaW5lQ3Jvc3MoKSxcbiAgY2hhcnRUeXBlcy5Eb3RQbG90KCksXG4gIGNoYXJ0VHlwZXMuTGluZVBsb3QoKSxcbl07XG5cbmV4cG9ydCBjbGFzcyBDb25maWd1cmUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9uTW9kZWxDaGFuZ2VkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGltYWdlU3VwcG9ydDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICB1cGxvYWRTb3VuZFN1cHBvcnQ6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBjb25maWd1cmF0aW9uOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgY2hhcnRpbmdPcHRpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIGNvbnN0IHsgcmFuZ2UgPSB7fSwgZ3JhcGggfSA9IHByb3BzLm1vZGVsIHx8IHt9O1xuICAgIGNvbnN0IGdyaWRWYWx1ZXMgPSB7IHJhbmdlOiBnZXRHcmlkVmFsdWVzKHJhbmdlLCBncmFwaC5oZWlnaHQsIHRydWUpIH07XG4gICAgY29uc3QgbGFiZWxWYWx1ZXMgPSB7IHJhbmdlOiBnZXRMYWJlbFZhbHVlcyhyYW5nZS5zdGVwIHx8IDEpIH07XG5cbiAgICB0aGlzLnN0YXRlID0geyBncmlkVmFsdWVzLCBsYWJlbFZhbHVlcyB9O1xuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHsgY2xhc3Nlczoge30gfTtcblxuICBvblJhdGlvbmFsZUNoYW5nZSA9IChyYXRpb25hbGUpID0+IHRoaXMucHJvcHMub25Nb2RlbENoYW5nZWQoeyAuLi50aGlzLnByb3BzLm1vZGVsLCByYXRpb25hbGUgfSk7XG5cbiAgb25Qcm9tcHRDaGFuZ2UgPSAocHJvbXB0KSA9PiB0aGlzLnByb3BzLm9uTW9kZWxDaGFuZ2VkKHsgLi4udGhpcy5wcm9wcy5tb2RlbCwgcHJvbXB0IH0pO1xuXG4gIG9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZSA9ICh0ZWFjaGVySW5zdHJ1Y3Rpb25zKSA9PlxuICAgIHRoaXMucHJvcHMub25Nb2RlbENoYW5nZWQoeyAuLi50aGlzLnByb3BzLm1vZGVsLCB0ZWFjaGVySW5zdHJ1Y3Rpb25zIH0pO1xuXG4gIG9uQ2hhcnRUeXBlQ2hhbmdlID0gKGNoYXJ0VHlwZSkgPT4gdGhpcy5wcm9wcy5vbk1vZGVsQ2hhbmdlZCh7IC4uLnRoaXMucHJvcHMubW9kZWwsIGNoYXJ0VHlwZSB9KTtcblxuICBvbkNvbmZpZ0NoYW5nZSA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCB7IG1vZGVsLCBvbk1vZGVsQ2hhbmdlZCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IGdyaWRWYWx1ZXM6IG9sZEdyaWRWYWx1ZXMsIGxhYmVsVmFsdWVzOiBvbGRMYWJlbFZhbHVlcyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLm1vZGVsLCAuLi5jb25maWcgfTtcbiAgICBjb25zdCB7IGdyYXBoLCByYW5nZSB9ID0gdXBkYXRlZE1vZGVsO1xuICAgIGNvbnN0IGdyaWRWYWx1ZXMgPSB7fTtcbiAgICBjb25zdCBsYWJlbFZhbHVlcyA9IHt9O1xuXG4gICAgY29uc3QgcmFuZ2VDb25zdHJhaW50cyA9IGFwcGx5Q29uc3RyYWludHMocmFuZ2UsIGdyYXBoLmhlaWdodCwgb2xkR3JpZFZhbHVlcy5yYW5nZSwgb2xkTGFiZWxWYWx1ZXMucmFuZ2UpO1xuXG4gICAgZ3JpZFZhbHVlcy5yYW5nZSA9IHJhbmdlQ29uc3RyYWludHMuZ3JpZFZhbHVlcztcbiAgICBsYWJlbFZhbHVlcy5yYW5nZSA9IHJhbmdlQ29uc3RyYWludHMubGFiZWxWYWx1ZXM7XG5cbiAgICB0aGlzLnNldFN0YXRlKHsgZ3JpZFZhbHVlcywgbGFiZWxWYWx1ZXMgfSk7XG4gICAgb25Nb2RlbENoYW5nZWQodXBkYXRlZE1vZGVsKTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBjbGFzc2VzLCBjb25maWd1cmF0aW9uLCBpbWFnZVN1cHBvcnQsIG1vZGVsLCBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkLCBvbk1vZGVsQ2hhbmdlZCwgdXBsb2FkU291bmRTdXBwb3J0IH0gPVxuICAgICAgdGhpcy5wcm9wcztcblxuICAgIGxvZygnW3JlbmRlcl0gbW9kZWwnLCBtb2RlbCk7XG5cbiAgICBjb25zdCB7IGdyYXBoIH0gPSBtb2RlbDtcbiAgICBjb25zdCB7XG4gICAgICBiYXNlSW5wdXRDb25maWd1cmF0aW9uID0ge30sXG4gICAgICBjb250ZW50RGltZW5zaW9ucyA9IHt9LFxuICAgICAgY2hhcnREaW1lbnNpb25zID0ge30sXG4gICAgICBhdXRob3JOZXdDYXRlZ29yeURlZmF1bHRzID0ge30sXG4gICAgICBsYWJlbHNQbGFjZWhvbGRlcnMgPSB7fSxcbiAgICAgIGluc3RydWN0aW9uID0ge30sXG4gICAgICBtYXhJbWFnZVdpZHRoID0ge30sXG4gICAgICBtYXhJbWFnZUhlaWdodCA9IHt9LFxuICAgICAgcHJvbXB0ID0ge30sXG4gICAgICByYXRpb25hbGUgPSB7fSxcbiAgICAgIHNjb3JpbmdUeXBlID0ge30sXG4gICAgICBzZXR0aW5nc1BhbmVsRGlzYWJsZWQsXG4gICAgICBzcGVsbENoZWNrID0ge30sXG4gICAgICBzdHVkZW50SW5zdHJ1Y3Rpb25zID0ge30sXG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zID0ge30sXG4gICAgICB0aXRsZVBsYWNlaG9sZGVyID0ge30sXG4gICAgICB3aXRoUnVicmljID0ge30sXG4gICAgICBjaGFydGluZ09wdGlvbnMgPSB7fSxcbiAgICAgIGF2YWlsYWJsZUNoYXJ0VHlwZXMgPSB7fSxcbiAgICAgIG1hdGhNbE9wdGlvbnMgPSB7fSxcbiAgICAgIGNoYXJ0VHlwZUxhYmVsLFxuICAgICAgbGFuZ3VhZ2UgPSB7fSxcbiAgICAgIGxhbmd1YWdlQ2hvaWNlcyA9IHt9LFxuICAgICAgbGFiZWxzQ2hhcmFjdGVyc0xpbWl0LFxuICAgIH0gPSBjb25maWd1cmF0aW9uIHx8IHt9O1xuICAgIGNvbnN0IHtcbiAgICAgIGVycm9ycyxcbiAgICAgIGV4dHJhQ1NTUnVsZXMsXG4gICAgICBwcm9tcHRFbmFibGVkLFxuICAgICAgcmF0aW9uYWxlRW5hYmxlZCxcbiAgICAgIHNwZWxsQ2hlY2tFbmFibGVkLFxuICAgICAgdGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQsXG4gICAgICBzdHVkZW50TmV3Q2F0ZWdvcnlEZWZhdWx0TGFiZWwsXG4gICAgfSA9IG1vZGVsIHx8IHt9O1xuICAgIGNvbnN0IHtcbiAgICAgIGNhdGVnb3J5RXJyb3JzLFxuICAgICAgY29ycmVjdEFuc3dlckVycm9ycyxcbiAgICAgIHByb21wdDogcHJvbXB0RXJyb3IsXG4gICAgICByYXRpb25hbGU6IHJhdGlvbmFsZUVycm9yLFxuICAgICAgdGVhY2hlckluc3RydWN0aW9uczogdGVhY2hlckluc3RydWN0aW9uc0Vycm9yLFxuICAgIH0gPSBlcnJvcnMgfHwge307XG4gICAgY29uc3QgeyBncmlkVmFsdWVzLCBsYWJlbFZhbHVlcyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBzaG93UGl4ZUd1aWRlcyA9IGNoYXJ0RGltZW5zaW9ucy5zaG93SW5Db25maWdQYW5lbCB8fCB0cnVlO1xuXG4gICAgY29uc3QgZGVmYXVsdEltYWdlTWF4V2lkdGggPSBtYXhJbWFnZVdpZHRoICYmIG1heEltYWdlV2lkdGgucHJvbXB0O1xuICAgIGNvbnN0IGRlZmF1bHRJbWFnZU1heEhlaWdodCA9IG1heEltYWdlSGVpZ2h0ICYmIG1heEltYWdlSGVpZ2h0LnByb21wdDtcblxuICAgIGNvbnN0IHBhbmVsSXRlbVR5cGUgPSB7XG4gICAgICBjaGFuZ2VJbnRlcmFjdGl2ZUVuYWJsZWQ6XG4gICAgICAgIGNoYXJ0aW5nT3B0aW9ucy5jaGFuZ2VJbnRlcmFjdGl2ZT8uc2V0dGluZ3MgJiYgdG9nZ2xlKGNoYXJ0aW5nT3B0aW9ucy5jaGFuZ2VJbnRlcmFjdGl2ZS5zZXR0aW5nc0xhYmVsKSxcbiAgICAgIGNoYW5nZUVkaXRhYmxlRW5hYmxlZDpcbiAgICAgICAgY2hhcnRpbmdPcHRpb25zLmNoYW5nZUVkaXRhYmxlPy5zZXR0aW5ncyAmJiB0b2dnbGUoY2hhcnRpbmdPcHRpb25zLmNoYW5nZUVkaXRhYmxlLnNldHRpbmdzTGFiZWwpLFxuICAgICAgY2hhbmdlQWRkQ2F0ZWdvcnlFbmFibGVkOlxuICAgICAgICBjaGFydGluZ09wdGlvbnMuYWRkQ2F0ZWdvcnk/LnNldHRpbmdzICYmIHRvZ2dsZShjaGFydGluZ09wdGlvbnMuYWRkQ2F0ZWdvcnkuc2V0dGluZ3NMYWJlbCksXG4gICAgfTtcblxuICAgIGNvbnN0IHBhbmVsUHJvcGVydGllcyA9IHtcbiAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkOiB0ZWFjaGVySW5zdHJ1Y3Rpb25zLnNldHRpbmdzICYmIHRvZ2dsZSh0ZWFjaGVySW5zdHJ1Y3Rpb25zLmxhYmVsKSxcbiAgICAgIHN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkOiBzdHVkZW50SW5zdHJ1Y3Rpb25zLnNldHRpbmdzICYmIHRvZ2dsZShzdHVkZW50SW5zdHJ1Y3Rpb25zLmxhYmVsKSxcbiAgICAgIHJhdGlvbmFsZUVuYWJsZWQ6IHJhdGlvbmFsZS5zZXR0aW5ncyAmJiB0b2dnbGUocmF0aW9uYWxlLmxhYmVsKSxcbiAgICAgIHNwZWxsQ2hlY2tFbmFibGVkOiBzcGVsbENoZWNrLnNldHRpbmdzICYmIHRvZ2dsZShzcGVsbENoZWNrLmxhYmVsKSxcbiAgICAgIHByb21wdEVuYWJsZWQ6IHByb21wdC5zZXR0aW5ncyAmJiB0b2dnbGUocHJvbXB0LmxhYmVsKSxcbiAgICAgIHNjb3JpbmdUeXBlOiBzY29yaW5nVHlwZS5zZXR0aW5ncyAmJiByYWRpbyhzY29yaW5nVHlwZS5sYWJlbCwgWydhbGwgb3Igbm90aGluZycsICdwYXJ0aWFsIHNjb3JpbmcnXSksXG4gICAgICBydWJyaWNFbmFibGVkOiB3aXRoUnVicmljPy5zZXR0aW5ncyAmJiB0b2dnbGUod2l0aFJ1YnJpYz8ubGFiZWwpLFxuICAgICAgJ2xhbmd1YWdlLmVuYWJsZWQnOiBsYW5ndWFnZS5zZXR0aW5ncyAmJiB0b2dnbGUobGFuZ3VhZ2UubGFiZWwsIHRydWUpLFxuICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlLnNldHRpbmdzICYmIGxhbmd1YWdlLmVuYWJsZWQgJiYgZHJvcGRvd24obGFuZ3VhZ2VDaG9pY2VzLmxhYmVsLCBsYW5ndWFnZUNob2ljZXMub3B0aW9ucyksXG4gICAgICBpbnN0cnVjdGlvbjogaW5zdHJ1Y3Rpb24uc2V0dGluZ3MgJiYgdGV4dEZpZWxkKGluc3RydWN0aW9uLmxhYmVsKSxcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0UGx1Z2luUHJvcHMgPSAocHJvcHMgPSB7fSkgPT4gKHtcbiAgICAgIC4uLmJhc2VJbnB1dENvbmZpZ3VyYXRpb24sXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8bGF5b3V0LkNvbmZpZ0xheW91dFxuICAgICAgICBleHRyYUNTU1J1bGVzPXtleHRyYUNTU1J1bGVzfVxuICAgICAgICBkaW1lbnNpb25zPXtjb250ZW50RGltZW5zaW9uc31cbiAgICAgICAgaGlkZVNldHRpbmdzPXtzZXR0aW5nc1BhbmVsRGlzYWJsZWR9XG4gICAgICAgIHNldHRpbmdzPXtcbiAgICAgICAgICA8UGFuZWxcbiAgICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249e2NvbmZpZ3VyYXRpb259XG4gICAgICAgICAgICBvbkNoYW5nZU1vZGVsPXtvbk1vZGVsQ2hhbmdlZH1cbiAgICAgICAgICAgIG9uQ2hhbmdlQ29uZmlndXJhdGlvbj17b25Db25maWd1cmF0aW9uQ2hhbmdlZH1cbiAgICAgICAgICAgIGdyb3Vwcz17e1xuICAgICAgICAgICAgICBTZXR0aW5nczogcGFuZWxJdGVtVHlwZSxcbiAgICAgICAgICAgICAgUHJvcGVydGllczogcGFuZWxQcm9wZXJ0aWVzLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA+XG4gICAgICAgIDxUeXBvZ3JhcGh5IGNvbXBvbmVudD1cImRpdlwiIHR5cGU9XCJib2R5MVwiIGNsYXNzTmFtZT17Y2xhc3Nlcy5kZXNjcmlwdGlvbn0+XG4gICAgICAgICAge2luc3RydWN0aW9uPy5sYWJlbCB8fCAnJ31cbiAgICAgICAgPC9UeXBvZ3JhcGh5PlxuXG4gICAgICAgIHt0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCAmJiAoXG4gICAgICAgICAgPElucHV0Q29udGFpbmVyIGxhYmVsPXt0ZWFjaGVySW5zdHJ1Y3Rpb25zLmxhYmVsfSBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0SG9sZGVyfT5cbiAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdH1cbiAgICAgICAgICAgICAgbWFya3VwPXttb2RlbC50ZWFjaGVySW5zdHJ1Y3Rpb25zIHx8ICcnfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2V9XG4gICAgICAgICAgICAgIGltYWdlU3VwcG9ydD17aW1hZ2VTdXBwb3J0fVxuICAgICAgICAgICAgICBub25FbXB0eT17ZmFsc2V9XG4gICAgICAgICAgICAgIGVycm9yPXt0ZWFjaGVySW5zdHJ1Y3Rpb25zRXJyb3J9XG4gICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICBwbHVnaW5Qcm9wcz17Z2V0UGx1Z2luUHJvcHModGVhY2hlckluc3RydWN0aW9ucz8uaW5wdXRDb25maWd1cmF0aW9uKX1cbiAgICAgICAgICAgICAgbWF4SW1hZ2VXaWR0aD17KG1heEltYWdlV2lkdGggJiYgbWF4SW1hZ2VXaWR0aC50ZWFjaGVySW5zdHJ1Y3Rpb25zKSB8fCBkZWZhdWx0SW1hZ2VNYXhXaWR0aH1cbiAgICAgICAgICAgICAgbWF4SW1hZ2VIZWlnaHQ9eyhtYXhJbWFnZUhlaWdodCAmJiBtYXhJbWFnZUhlaWdodC50ZWFjaGVySW5zdHJ1Y3Rpb25zKSB8fCBkZWZhdWx0SW1hZ2VNYXhIZWlnaHR9XG4gICAgICAgICAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydD17dXBsb2FkU291bmRTdXBwb3J0fVxuICAgICAgICAgICAgICBsYW5ndWFnZUNoYXJhY3RlcnNQcm9wcz17W3sgbGFuZ3VhZ2U6ICdzcGFuaXNoJyB9LCB7IGxhbmd1YWdlOiAnc3BlY2lhbCcgfV19XG4gICAgICAgICAgICAgIG1hdGhNbE9wdGlvbnM9e21hdGhNbE9wdGlvbnN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge3RlYWNoZXJJbnN0cnVjdGlvbnNFcnJvciAmJiA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5lcnJvclRleHR9Pnt0ZWFjaGVySW5zdHJ1Y3Rpb25zRXJyb3J9PC9kaXY+fVxuICAgICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICAgICl9XG5cbiAgICAgICAge3Byb21wdEVuYWJsZWQgJiYgKFxuICAgICAgICAgIDxJbnB1dENvbnRhaW5lciBsYWJlbD17cHJvbXB0LmxhYmVsfSBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0SG9sZGVyfT5cbiAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdH1cbiAgICAgICAgICAgICAgbWFya3VwPXttb2RlbC5wcm9tcHR9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uUHJvbXB0Q2hhbmdlfVxuICAgICAgICAgICAgICBpbWFnZVN1cHBvcnQ9e2ltYWdlU3VwcG9ydH1cbiAgICAgICAgICAgICAgbm9uRW1wdHk9e2ZhbHNlfVxuICAgICAgICAgICAgICBlcnJvcj17cHJvbXB0RXJyb3J9XG4gICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICBkaXNhYmxlVW5kZXJsaW5lXG4gICAgICAgICAgICAgIHBsdWdpblByb3BzPXtnZXRQbHVnaW5Qcm9wcyhwcm9tcHQ/LmlucHV0Q29uZmlndXJhdGlvbil9XG4gICAgICAgICAgICAgIG1heEltYWdlV2lkdGg9e2RlZmF1bHRJbWFnZU1heFdpZHRofVxuICAgICAgICAgICAgICBtYXhJbWFnZUhlaWdodD17ZGVmYXVsdEltYWdlTWF4SGVpZ2h0fVxuICAgICAgICAgICAgICB1cGxvYWRTb3VuZFN1cHBvcnQ9e3VwbG9hZFNvdW5kU3VwcG9ydH1cbiAgICAgICAgICAgICAgbGFuZ3VhZ2VDaGFyYWN0ZXJzUHJvcHM9e1t7IGxhbmd1YWdlOiAnc3BhbmlzaCcgfSwgeyBsYW5ndWFnZTogJ3NwZWNpYWwnIH1dfVxuICAgICAgICAgICAgICBtYXRoTWxPcHRpb25zPXttYXRoTWxPcHRpb25zfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtwcm9tcHRFcnJvciAmJiA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5lcnJvclRleHR9Pntwcm9tcHRFcnJvcn08L2Rpdj59XG4gICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgKX1cblxuICAgICAgICA8Q29uZmlndXJlQ2hhcnRQYW5lbFxuICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNvbmZpZ0NoYW5nZX1cbiAgICAgICAgICBncmlkVmFsdWVzPXtncmlkVmFsdWVzfVxuICAgICAgICAgIGxhYmVsVmFsdWVzPXtsYWJlbFZhbHVlc31cbiAgICAgICAgICBjaGFydERpbWVuc2lvbnM9e2NoYXJ0RGltZW5zaW9uc31cbiAgICAgICAgICBjaGFydHM9e2NoYXJ0c31cbiAgICAgICAgICBzdHVkZW50TmV3Q2F0ZWdvcnlEZWZhdWx0TGFiZWw9e3N0dWRlbnROZXdDYXRlZ29yeURlZmF1bHRMYWJlbH1cbiAgICAgICAgICBhdmFpbGFibGVDaGFydFR5cGVzPXthdmFpbGFibGVDaGFydFR5cGVzfVxuICAgICAgICAgIGNoYXJ0VHlwZUxhYmVsPXtjaGFydFR5cGVMYWJlbH1cbiAgICAgICAgLz5cblxuICAgICAgICA8Q2hhcnRpbmdDb25maWdcbiAgICAgICAgICBtb2RlbD17bW9kZWx9XG4gICAgICAgICAgb25DaGFuZ2U9e29uTW9kZWxDaGFuZ2VkfVxuICAgICAgICAgIGNoYXJ0cz17Y2hhcnRzfVxuICAgICAgICAgIGxhYmVsc1BsYWNlaG9sZGVycz17bGFiZWxzUGxhY2Vob2xkZXJzfVxuICAgICAgICAgIHRpdGxlUGxhY2Vob2xkZXI9e3RpdGxlUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgc2hvd1BpeGVsR3VpZGVzPXtzaG93UGl4ZUd1aWRlc31cbiAgICAgICAgICBhdXRob3JOZXdDYXRlZ29yeURlZmF1bHRzPXthdXRob3JOZXdDYXRlZ29yeURlZmF1bHRzfVxuICAgICAgICAgIGNoYXJ0aW5nT3B0aW9ucz17Y2hhcnRpbmdPcHRpb25zfVxuICAgICAgICAgIG1hdGhNbE9wdGlvbnM9e21hdGhNbE9wdGlvbnN9XG4gICAgICAgICAgbGFiZWxzQ2hhcmFjdGVyc0xpbWl0PXtsYWJlbHNDaGFyYWN0ZXJzTGltaXR9XG4gICAgICAgIC8+XG5cbiAgICAgICAgPENvcnJlY3RSZXNwb25zZVxuICAgICAgICAgIGNvbmZpZz17Z3JhcGh9XG4gICAgICAgICAgbW9kZWw9e21vZGVsfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbk1vZGVsQ2hhbmdlZH1cbiAgICAgICAgICBjaGFydHM9e2NoYXJ0c31cbiAgICAgICAgICBlcnJvcj17Y2F0ZWdvcnlFcnJvcnN9XG4gICAgICAgICAgY29ycmVjdEFuc3dlckVycm9ycz17Y29ycmVjdEFuc3dlckVycm9yc31cbiAgICAgICAgICBzdHVkZW50TmV3Q2F0ZWdvcnlEZWZhdWx0TGFiZWw9e3N0dWRlbnROZXdDYXRlZ29yeURlZmF1bHRMYWJlbH1cbiAgICAgICAgICBtYXRoTWxPcHRpb25zPXttYXRoTWxPcHRpb25zfVxuICAgICAgICAgIGxhYmVsc1BsYWNlaG9sZGVycz17bGFiZWxzUGxhY2Vob2xkZXJzfVxuICAgICAgICAvPlxuXG4gICAgICAgIHtyYXRpb25hbGVFbmFibGVkICYmIChcbiAgICAgICAgICA8SW5wdXRDb250YWluZXIgbGFiZWw9e3JhdGlvbmFsZS5sYWJlbCB8fCAnUmF0aW9uYWxlJ30gY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdEhvbGRlcn0+XG4gICAgICAgICAgICA8RWRpdGFibGVIdG1sXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5wcm9tcHR9XG4gICAgICAgICAgICAgIG1hcmt1cD17bW9kZWwucmF0aW9uYWxlIHx8ICcnfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vblJhdGlvbmFsZUNoYW5nZX1cbiAgICAgICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgICAgIGVycm9yPXtyYXRpb25hbGVFcnJvcn1cbiAgICAgICAgICAgICAgc3BlbGxDaGVjaz17c3BlbGxDaGVja0VuYWJsZWR9XG4gICAgICAgICAgICAgIHBsdWdpblByb3BzPXtnZXRQbHVnaW5Qcm9wcyhyYXRpb25hbGU/LmlucHV0Q29uZmlndXJhdGlvbil9XG4gICAgICAgICAgICAgIG1heEltYWdlV2lkdGg9eyhtYXhJbWFnZVdpZHRoICYmIG1heEltYWdlV2lkdGgucmF0aW9uYWxlKSB8fCBkZWZhdWx0SW1hZ2VNYXhXaWR0aH1cbiAgICAgICAgICAgICAgbWF4SW1hZ2VIZWlnaHQ9eyhtYXhJbWFnZUhlaWdodCAmJiBtYXhJbWFnZUhlaWdodC5yYXRpb25hbGUpIHx8IGRlZmF1bHRJbWFnZU1heEhlaWdodH1cbiAgICAgICAgICAgICAgdXBsb2FkU291bmRTdXBwb3J0PXt1cGxvYWRTb3VuZFN1cHBvcnR9XG4gICAgICAgICAgICAgIGxhbmd1YWdlQ2hhcmFjdGVyc1Byb3BzPXtbeyBsYW5ndWFnZTogJ3NwYW5pc2gnIH0sIHsgbGFuZ3VhZ2U6ICdzcGVjaWFsJyB9XX1cbiAgICAgICAgICAgICAgbWF0aE1sT3B0aW9ucz17bWF0aE1sT3B0aW9uc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7cmF0aW9uYWxlRXJyb3IgJiYgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuZXJyb3JUZXh0fT57cmF0aW9uYWxlRXJyb3J9PC9kaXY+fVxuICAgICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICAgICl9XG4gICAgICA8L2xheW91dC5Db25maWdMYXlvdXQ+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcykoQ29uZmlndXJlKTtcbiJdfQ==