@vizzly/dashboard 0.14.4-dev-0abc1d1609628ad0eebc796ece9793889262bc2f → 0.14.4-dev-28ace990f8935dcd353f0b09527a2a1b32940e13
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/charts/src/v2/components/Axis/AxisBottom.d.ts +16 -0
- package/dist/charts/src/v2/components/Axis/AxisLeft.d.ts +14 -0
- package/dist/charts/src/v2/components/Axis/shared.d.ts +2 -0
- package/dist/charts/src/v2/components/ChartWrapper/ChartWrapper.d.ts +9 -0
- package/dist/charts/src/v2/components/GoalLine/GoalLines.d.ts +11 -0
- package/dist/charts/src/v2/components/GridRows/GridRows.d.ts +10 -0
- package/dist/charts/src/v2/utils/buildMargin.d.ts +2 -1
- package/dist/dashboard.cjs.development.js +310 -322
- package/dist/dashboard.cjs.production.min.js +1 -1
- package/dist/dashboard.esm.js +311 -320
- package/dist/shared-logic/src/BarChartV2/types.d.ts +3 -15
- package/dist/shared-logic/src/ChartsV2/types.d.ts +16 -0
- package/dist/shared-logic/src/LineChartV2/types.d.ts +3 -15
- package/package.json +1 -1
package/dist/dashboard.esm.js
CHANGED
|
@@ -48,12 +48,12 @@ import { useWindowWidth } from '@react-hook/window-size';
|
|
|
48
48
|
import copy from 'copy-to-clipboard';
|
|
49
49
|
import html2canvas from 'html2canvas';
|
|
50
50
|
import jsPDF from 'jspdf';
|
|
51
|
-
import { Text } from '@visx/text';
|
|
52
|
-
import { AxisBottom, AxisLeft } from '@visx/axis';
|
|
53
|
-
import { GridRows } from '@visx/grid';
|
|
54
51
|
import { RectClipPath } from '@visx/clip-path';
|
|
55
52
|
import { localPoint } from '@visx/event';
|
|
56
53
|
import { bisector } from '@visx/vendor/d3-array';
|
|
54
|
+
import { AxisBottom as AxisBottom$1, AxisLeft as AxisLeft$1 } from '@visx/axis';
|
|
55
|
+
import { Text } from '@visx/text';
|
|
56
|
+
import { GridRows as GridRows$1 } from '@visx/grid';
|
|
57
57
|
import '@visx/point';
|
|
58
58
|
import { WaterfallChart as WaterfallChart$4 } from './charts/src/v2/components/WaterfallChart';
|
|
59
59
|
import VisibilitySensor from 'react-visibility-sensor';
|
|
@@ -40994,72 +40994,6 @@ var Legend$1 = function Legend(_ref) {
|
|
|
40994
40994
|
});
|
|
40995
40995
|
};
|
|
40996
40996
|
|
|
40997
|
-
var GoalLine = function GoalLine(_ref) {
|
|
40998
|
-
var goalLine = _ref.goalLine,
|
|
40999
|
-
innerWidth = _ref.innerWidth,
|
|
41000
|
-
y = _ref.y,
|
|
41001
|
-
margin = _ref.margin;
|
|
41002
|
-
var textRef = useRef(null);
|
|
41003
|
-
var _useState = useState(0),
|
|
41004
|
-
labelWidth = _useState[0],
|
|
41005
|
-
setLabelWidth = _useState[1];
|
|
41006
|
-
useEffect(function () {
|
|
41007
|
-
if (textRef.current) {
|
|
41008
|
-
var bbox = textRef.current.getBBox();
|
|
41009
|
-
setLabelWidth(bbox.width + 16);
|
|
41010
|
-
}
|
|
41011
|
-
}, [goalLine.formattedValue]);
|
|
41012
|
-
var height = 16;
|
|
41013
|
-
var triangleWidth = 8;
|
|
41014
|
-
return jsxs("g", {
|
|
41015
|
-
style: {
|
|
41016
|
-
position: 'relative'
|
|
41017
|
-
},
|
|
41018
|
-
children: [jsx(Line, {
|
|
41019
|
-
from: {
|
|
41020
|
-
x: margin.left,
|
|
41021
|
-
y: margin.top + y
|
|
41022
|
-
},
|
|
41023
|
-
to: {
|
|
41024
|
-
x: margin.left + innerWidth,
|
|
41025
|
-
y: margin.top + y
|
|
41026
|
-
},
|
|
41027
|
-
stroke: goalLine.color,
|
|
41028
|
-
strokeDasharray: goalLine.strokeStyle == 'dashed' ? goalLine.strokeWidth * 2.5 + "," + goalLine.strokeWidth * 2.5 : undefined,
|
|
41029
|
-
strokeWidth: goalLine.strokeWidth,
|
|
41030
|
-
strokeLinecap: "round",
|
|
41031
|
-
shapeRendering: "smooth"
|
|
41032
|
-
}), jsxs("g", {
|
|
41033
|
-
transform: "translate(" + (margin.left + innerWidth - labelWidth) + "," + (y + margin.top + height / 2) + ")",
|
|
41034
|
-
children: [jsx("path", {
|
|
41035
|
-
d: "M 0,0\n l " + -triangleWidth + "," + -height / 2 + " \n l " + triangleWidth + "," + -height / 2 + " \n h " + labelWidth + " \n a 3,3 0 0 1 3,3 \n v " + (height - 6) + " \n a 3,3 0 0 1 -3,3 \n h " + -labelWidth + " z",
|
|
41036
|
-
fill: goalLine.color
|
|
41037
|
-
}), jsx("text", {
|
|
41038
|
-
ref: textRef,
|
|
41039
|
-
x: labelWidth / 2,
|
|
41040
|
-
y: -1,
|
|
41041
|
-
dy: -4,
|
|
41042
|
-
textAnchor: "middle",
|
|
41043
|
-
fontFamily: "Arial, sans-serif",
|
|
41044
|
-
fontSize: 9,
|
|
41045
|
-
fill: '#fff',
|
|
41046
|
-
children: goalLine.formattedValue
|
|
41047
|
-
})]
|
|
41048
|
-
})]
|
|
41049
|
-
});
|
|
41050
|
-
};
|
|
41051
|
-
|
|
41052
|
-
/*
|
|
41053
|
-
const strokeWidth = 2;
|
|
41054
|
-
const height = 16;
|
|
41055
|
-
const triangleWidth = 8;
|
|
41056
|
-
|
|
41057
|
-
|
|
41058
|
-
|
|
41059
|
-
|
|
41060
|
-
|
|
41061
|
-
*/
|
|
41062
|
-
|
|
41063
40997
|
var ASSUMED_AVERAGE_CHAR_WIDTH = 8.8;
|
|
41064
40998
|
function calculateWordWidth(word, avgCharWidth) {
|
|
41065
40999
|
if (avgCharWidth === void 0) {
|
|
@@ -41150,25 +41084,253 @@ function useFlattenedData(xScaleKey, xScaleDataType, chart) {
|
|
|
41150
41084
|
}, [chart.data, xScaleKey, xScaleDataType, chart.y.keys]);
|
|
41151
41085
|
}
|
|
41152
41086
|
|
|
41153
|
-
var
|
|
41154
|
-
|
|
41087
|
+
var GoalLine = function GoalLine(_ref) {
|
|
41088
|
+
var goalLine = _ref.goalLine,
|
|
41089
|
+
innerWidth = _ref.innerWidth,
|
|
41090
|
+
y = _ref.y,
|
|
41091
|
+
margin = _ref.margin;
|
|
41092
|
+
var textRef = useRef(null);
|
|
41093
|
+
var _useState = useState(0),
|
|
41094
|
+
labelWidth = _useState[0],
|
|
41095
|
+
setLabelWidth = _useState[1];
|
|
41096
|
+
useEffect(function () {
|
|
41097
|
+
if (textRef.current) {
|
|
41098
|
+
var bbox = textRef.current.getBBox();
|
|
41099
|
+
setLabelWidth(bbox.width + 16);
|
|
41100
|
+
}
|
|
41101
|
+
}, [goalLine.formattedValue]);
|
|
41102
|
+
var height = 16;
|
|
41103
|
+
var triangleWidth = 8;
|
|
41104
|
+
return jsxs("g", {
|
|
41105
|
+
style: {
|
|
41106
|
+
position: 'relative'
|
|
41107
|
+
},
|
|
41108
|
+
children: [jsx(Line, {
|
|
41109
|
+
from: {
|
|
41110
|
+
x: margin.left,
|
|
41111
|
+
y: margin.top + y
|
|
41112
|
+
},
|
|
41113
|
+
to: {
|
|
41114
|
+
x: margin.left + innerWidth,
|
|
41115
|
+
y: margin.top + y
|
|
41116
|
+
},
|
|
41117
|
+
stroke: goalLine.color,
|
|
41118
|
+
strokeDasharray: goalLine.strokeStyle == 'dashed' ? goalLine.strokeWidth * 2.5 + "," + goalLine.strokeWidth * 2.5 : undefined,
|
|
41119
|
+
strokeWidth: goalLine.strokeWidth,
|
|
41120
|
+
strokeLinecap: "round",
|
|
41121
|
+
shapeRendering: "smooth"
|
|
41122
|
+
}), jsxs("g", {
|
|
41123
|
+
transform: "translate(" + (margin.left + innerWidth - labelWidth) + "," + (y + margin.top + height / 2) + ")",
|
|
41124
|
+
children: [jsx("path", {
|
|
41125
|
+
d: "M 0,0\n l " + -triangleWidth + "," + -height / 2 + " \n l " + triangleWidth + "," + -height / 2 + " \n h " + labelWidth + " \n a 3,3 0 0 1 3,3 \n v " + (height - 6) + " \n a 3,3 0 0 1 -3,3 \n h " + -labelWidth + " z",
|
|
41126
|
+
fill: goalLine.color
|
|
41127
|
+
}), jsx("text", {
|
|
41128
|
+
ref: textRef,
|
|
41129
|
+
x: labelWidth / 2,
|
|
41130
|
+
y: -1,
|
|
41131
|
+
dy: -4,
|
|
41132
|
+
textAnchor: "middle",
|
|
41133
|
+
fontFamily: "Arial, sans-serif",
|
|
41134
|
+
fontSize: 9,
|
|
41135
|
+
fill: '#fff',
|
|
41136
|
+
children: goalLine.formattedValue
|
|
41137
|
+
})]
|
|
41138
|
+
})]
|
|
41139
|
+
});
|
|
41140
|
+
};
|
|
41141
|
+
|
|
41142
|
+
/*
|
|
41143
|
+
const strokeWidth = 2;
|
|
41144
|
+
const height = 16;
|
|
41145
|
+
const triangleWidth = 8;
|
|
41146
|
+
|
|
41147
|
+
|
|
41148
|
+
|
|
41149
|
+
|
|
41150
|
+
|
|
41151
|
+
*/
|
|
41152
|
+
|
|
41153
|
+
var shouldUpdate$1 = function shouldUpdate(previousProps, nextProps) {
|
|
41154
|
+
return JSON.stringify(previousProps) == JSON.stringify(nextProps);
|
|
41155
|
+
};
|
|
41156
|
+
var GoalLines = function GoalLines(_ref) {
|
|
41157
|
+
var goalLines = _ref.goalLines,
|
|
41158
|
+
margin = _ref.margin,
|
|
41159
|
+
y = _ref.y,
|
|
41160
|
+
width = _ref.width;
|
|
41161
|
+
return jsx(Fragment, {
|
|
41162
|
+
children: goalLines.map(function (goalLine) {
|
|
41163
|
+
return jsx(GoalLine, {
|
|
41164
|
+
innerWidth: width,
|
|
41165
|
+
y: y(goalLine.value),
|
|
41166
|
+
goalLine: goalLine,
|
|
41167
|
+
margin: margin
|
|
41168
|
+
}, goalLine.value);
|
|
41169
|
+
})
|
|
41170
|
+
});
|
|
41171
|
+
};
|
|
41172
|
+
var GoalLines$1 = /*#__PURE__*/memo(GoalLines, shouldUpdate$1);
|
|
41173
|
+
|
|
41155
41174
|
var AXIS_TITLE_STYLES = {
|
|
41156
41175
|
opacity: '0.75',
|
|
41157
41176
|
fontWeight: 'bold'
|
|
41158
41177
|
};
|
|
41159
41178
|
|
|
41160
|
-
|
|
41161
|
-
|
|
41162
|
-
|
|
41163
|
-
|
|
41164
|
-
|
|
41165
|
-
|
|
41166
|
-
|
|
41167
|
-
|
|
41168
|
-
|
|
41179
|
+
var _excluded$e = ["formattedValue"];
|
|
41180
|
+
var AxisBottom = function AxisBottom(_ref) {
|
|
41181
|
+
var _x$ticks;
|
|
41182
|
+
var x = _ref.x,
|
|
41183
|
+
margin = _ref.margin,
|
|
41184
|
+
themeCSS = _ref.themeCSS,
|
|
41185
|
+
show = _ref.show,
|
|
41186
|
+
removeStroke = _ref.removeStroke,
|
|
41187
|
+
xScaleDataType = _ref.xScaleDataType,
|
|
41188
|
+
xScale = _ref.xScale,
|
|
41189
|
+
height = _ref.height;
|
|
41190
|
+
var tickFormat = useCallback(function (value) {
|
|
41191
|
+
var tick = null;
|
|
41192
|
+
if (xScaleDataType === 'date_time' && value instanceof Date) {
|
|
41193
|
+
var matchingTickValue = x.ticks.find(function (tickValue) {
|
|
41194
|
+
return tickValue.scaleValue && new Date(tickValue.scaleValue).valueOf() === value.valueOf();
|
|
41195
|
+
});
|
|
41196
|
+
tick = matchingTickValue || null;
|
|
41197
|
+
} else {
|
|
41198
|
+
var _matchingTickValue = x.ticks.find(function (tickValue) {
|
|
41199
|
+
return tickValue.scaleValue === value;
|
|
41200
|
+
});
|
|
41201
|
+
tick = _matchingTickValue || null;
|
|
41202
|
+
}
|
|
41203
|
+
if (tick) {
|
|
41204
|
+
if (tick.formattedValue) {
|
|
41205
|
+
return tick.formattedValue;
|
|
41206
|
+
}
|
|
41207
|
+
return tick.value.toString();
|
|
41208
|
+
}
|
|
41209
|
+
return '';
|
|
41210
|
+
}, [x.ticks, xScaleDataType]);
|
|
41211
|
+
if (!show) return null;
|
|
41212
|
+
if (!xScale) return null;
|
|
41213
|
+
return jsx(AxisBottom$1, {
|
|
41214
|
+
label: x.title || undefined,
|
|
41215
|
+
labelProps: {
|
|
41216
|
+
style: AXIS_TITLE_STYLES
|
|
41217
|
+
},
|
|
41218
|
+
labelOffset: margin.bottomTitleOffset,
|
|
41219
|
+
hideTicks: true,
|
|
41220
|
+
top: height,
|
|
41221
|
+
scale: xScale,
|
|
41222
|
+
tickFormat: tickFormat,
|
|
41223
|
+
tickValues: ((_x$ticks = x.ticks) == null ? void 0 : _x$ticks.length) > 0 ? x.ticks.map(function (tick) {
|
|
41224
|
+
return (tick == null ? void 0 : tick.scaleValue) !== null ? tick == null ? void 0 : tick.scaleValue : 0;
|
|
41225
|
+
}) : undefined,
|
|
41226
|
+
tickComponent: function tickComponent(_ref2) {
|
|
41227
|
+
var formattedValue = _ref2.formattedValue,
|
|
41228
|
+
tickProps = _objectWithoutPropertiesLoose(_ref2, _excluded$e);
|
|
41229
|
+
return jsx(Text, _extends({
|
|
41230
|
+
style: themeCSS.labels
|
|
41231
|
+
}, tickProps, {
|
|
41232
|
+
children: formattedValue
|
|
41233
|
+
}));
|
|
41234
|
+
},
|
|
41235
|
+
stroke: themeCSS.axis.stroke,
|
|
41236
|
+
strokeWidth: removeStroke ? 0 : 1
|
|
41237
|
+
});
|
|
41238
|
+
};
|
|
41239
|
+
|
|
41240
|
+
var _excluded$f = ["formattedValue"];
|
|
41241
|
+
var AxisLeft = function AxisLeft(_ref) {
|
|
41242
|
+
var show = _ref.show,
|
|
41243
|
+
y = _ref.y,
|
|
41244
|
+
margin = _ref.margin,
|
|
41245
|
+
themeCSS = _ref.themeCSS,
|
|
41246
|
+
yScale = _ref.yScale,
|
|
41247
|
+
ticks = _ref.ticks,
|
|
41248
|
+
stroke = _ref.stroke;
|
|
41249
|
+
var tickFormat = useCallback(function (value) {
|
|
41250
|
+
var item = y.ticks.filter(function (tick) {
|
|
41251
|
+
return tick.value === value;
|
|
41252
|
+
})[0];
|
|
41253
|
+
if (item) {
|
|
41254
|
+
if (item.formattedValue) {
|
|
41255
|
+
return item.formattedValue;
|
|
41256
|
+
} else {
|
|
41257
|
+
return item.value.toString();
|
|
41258
|
+
}
|
|
41259
|
+
} else {
|
|
41260
|
+
return '';
|
|
41261
|
+
}
|
|
41262
|
+
}, [y.ticks]);
|
|
41263
|
+
if (!show) return null;
|
|
41264
|
+
return jsx(AxisLeft$1, {
|
|
41265
|
+
labelOffset: margin.leftTitleOffset,
|
|
41266
|
+
label: y.title || undefined,
|
|
41267
|
+
labelProps: {
|
|
41268
|
+
style: AXIS_TITLE_STYLES
|
|
41269
|
+
},
|
|
41270
|
+
hideTicks: true,
|
|
41271
|
+
left: 0,
|
|
41272
|
+
top: 0,
|
|
41273
|
+
scale: yScale,
|
|
41274
|
+
tickFormat: tickFormat,
|
|
41275
|
+
tickValues: ticks,
|
|
41276
|
+
tickComponent: function tickComponent(_ref2) {
|
|
41277
|
+
var formattedValue = _ref2.formattedValue,
|
|
41278
|
+
tickProps = _objectWithoutPropertiesLoose(_ref2, _excluded$f);
|
|
41279
|
+
return jsx(Text, _extends({
|
|
41280
|
+
width: 10,
|
|
41281
|
+
style: themeCSS.labels
|
|
41282
|
+
}, tickProps, {
|
|
41283
|
+
children: formattedValue
|
|
41284
|
+
}));
|
|
41285
|
+
},
|
|
41286
|
+
stroke: stroke != null ? stroke : 'transparent'
|
|
41287
|
+
});
|
|
41288
|
+
};
|
|
41289
|
+
|
|
41290
|
+
var GridRows = function GridRows(_ref) {
|
|
41291
|
+
var ticks = _ref.ticks,
|
|
41292
|
+
yScale = _ref.yScale,
|
|
41293
|
+
removeStroke = _ref.removeStroke,
|
|
41294
|
+
width = _ref.width,
|
|
41295
|
+
height = _ref.height,
|
|
41296
|
+
themeCSS = _ref.themeCSS;
|
|
41297
|
+
return jsx(GridRows$1, {
|
|
41298
|
+
tickValues: ticks.length > 0 ? ticks : undefined,
|
|
41299
|
+
scale: yScale,
|
|
41300
|
+
width: width,
|
|
41301
|
+
height: height,
|
|
41302
|
+
pointerEvents: "none",
|
|
41303
|
+
strokeDasharray: "0.5 5",
|
|
41304
|
+
strokeWidth: removeStroke ? 0 : 2,
|
|
41305
|
+
lineStyle: {
|
|
41306
|
+
strokeLinecap: 'round',
|
|
41307
|
+
stroke: themeCSS.grid.stroke
|
|
41308
|
+
}
|
|
41309
|
+
});
|
|
41310
|
+
};
|
|
41311
|
+
|
|
41312
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__$7() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
41313
|
+
var ChartWrapper$1 = function ChartWrapper(props) {
|
|
41314
|
+
return jsx("svg", {
|
|
41315
|
+
width: props.width,
|
|
41316
|
+
height: props.height - (props.showLegend ? 40 : 0),
|
|
41317
|
+
onMouseMove: props.onMouseMove,
|
|
41318
|
+
onMouseLeave: props.onMouseLeave,
|
|
41319
|
+
className: /*#__PURE__*/css$1(process.env.NODE_ENV === "production" ? {
|
|
41320
|
+
name: "4zleql",
|
|
41321
|
+
styles: "display:block"
|
|
41322
|
+
} : {
|
|
41323
|
+
name: "fx4tbw-ChartWrapper",
|
|
41324
|
+
styles: "display:block;label:ChartWrapper;",
|
|
41325
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXJ0V3JhcHBlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0JpQiIsImZpbGUiOiJDaGFydFdyYXBwZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY3NzJztcblxuZXhwb3J0IGNvbnN0IENoYXJ0V3JhcHBlciA9IChwcm9wczoge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgc2hvd0xlZ2VuZDogYm9vbGVhbjtcbiAgb25Nb3VzZU1vdmU/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxTVkdTVkdFbGVtZW50PjtcbiAgb25Nb3VzZUxlYXZlPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8U1ZHU1ZHRWxlbWVudD47XG59KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgd2lkdGg9e3Byb3BzLndpZHRofVxuICAgICAgaGVpZ2h0PXtwcm9wcy5oZWlnaHQgLSAocHJvcHMuc2hvd0xlZ2VuZCA/IDQwIDogMCl9XG4gICAgICBvbk1vdXNlTW92ZT17cHJvcHMub25Nb3VzZU1vdmV9XG4gICAgICBvbk1vdXNlTGVhdmU9e3Byb3BzLm9uTW91c2VMZWF2ZX1cbiAgICAgIGNsYXNzTmFtZT17Y3NzKHsgZGlzcGxheTogJ2Jsb2NrJyB9KX1cbiAgICA+XG4gICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgPC9zdmc+XG4gICk7XG59O1xuIl19 */",
|
|
41326
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$7
|
|
41327
|
+
}),
|
|
41328
|
+
children: props.children
|
|
41329
|
+
});
|
|
41330
|
+
};
|
|
41169
41331
|
|
|
41170
41332
|
var LineChart$5 = function LineChart(_ref) {
|
|
41171
|
-
var _theme$axis
|
|
41333
|
+
var _theme$axis;
|
|
41172
41334
|
var chart = _ref.chart,
|
|
41173
41335
|
options = _ref.options,
|
|
41174
41336
|
theme = _ref.theme,
|
|
@@ -41238,21 +41400,6 @@ var LineChart$5 = function LineChart(_ref) {
|
|
|
41238
41400
|
});
|
|
41239
41401
|
}, [innerHeight, chart.y]);
|
|
41240
41402
|
var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart);
|
|
41241
|
-
var goalLines = useMemo(function () {
|
|
41242
|
-
return chart.goalLines.map(function (goalLine) {
|
|
41243
|
-
return jsx(GoalLine, {
|
|
41244
|
-
innerWidth: innerWidth,
|
|
41245
|
-
y: yScale(goalLine.value),
|
|
41246
|
-
goalLine: goalLine,
|
|
41247
|
-
margin: {
|
|
41248
|
-
top: margin.top,
|
|
41249
|
-
left: margin.left,
|
|
41250
|
-
right: margin.right,
|
|
41251
|
-
bottom: margin.bottom
|
|
41252
|
-
}
|
|
41253
|
-
}, goalLine.value);
|
|
41254
|
-
});
|
|
41255
|
-
}, [chart.goalLines, margin, innerWidth, yScale]);
|
|
41256
41403
|
var handleMouseMove = useCallback(function (event) {
|
|
41257
41404
|
if (!xKey || !xScaleKey || xScale === null) return;
|
|
41258
41405
|
var tooltipData = getTooltipData({
|
|
@@ -41279,112 +41426,39 @@ var LineChart$5 = function LineChart(_ref) {
|
|
|
41279
41426
|
return Number(tick.value);
|
|
41280
41427
|
});
|
|
41281
41428
|
return jsxs(React__default.Fragment, {
|
|
41282
|
-
children: [jsxs(
|
|
41429
|
+
children: [jsxs(ChartWrapper$1, {
|
|
41283
41430
|
width: width,
|
|
41284
|
-
height: height
|
|
41431
|
+
height: height,
|
|
41432
|
+
showLegend: options.showLegend,
|
|
41285
41433
|
onMouseMove: handleMouseMove,
|
|
41286
41434
|
onMouseLeave: handleMouseLeave,
|
|
41287
|
-
style: {
|
|
41288
|
-
display: 'block'
|
|
41289
|
-
},
|
|
41290
41435
|
children: [jsxs(Group$2, {
|
|
41291
41436
|
left: margin.left,
|
|
41292
41437
|
top: margin.top,
|
|
41293
41438
|
children: [jsx(GridRows, {
|
|
41294
|
-
|
|
41295
|
-
|
|
41439
|
+
ticks: yTickValues,
|
|
41440
|
+
yScale: yScale,
|
|
41296
41441
|
width: innerWidth,
|
|
41297
41442
|
height: innerHeight,
|
|
41298
|
-
|
|
41299
|
-
|
|
41300
|
-
|
|
41301
|
-
|
|
41302
|
-
|
|
41303
|
-
|
|
41304
|
-
|
|
41305
|
-
|
|
41306
|
-
|
|
41307
|
-
|
|
41308
|
-
|
|
41309
|
-
|
|
41310
|
-
|
|
41311
|
-
|
|
41312
|
-
|
|
41313
|
-
|
|
41314
|
-
|
|
41315
|
-
|
|
41316
|
-
|
|
41317
|
-
// if chart.x.scale.key !== chart.x.key, use tickValue.scaleValue NOT tickValuevalue
|
|
41318
|
-
var matchingTickValue = chart.x.ticks.find(function (tickValue) {
|
|
41319
|
-
return tickValue.scaleValue && new Date(tickValue.scaleValue).valueOf() === value.valueOf();
|
|
41320
|
-
});
|
|
41321
|
-
tick = matchingTickValue || null;
|
|
41322
|
-
} else {
|
|
41323
|
-
var _matchingTickValue = chart.x.ticks.find(function (tickValue) {
|
|
41324
|
-
return tickValue.scaleValue === value;
|
|
41325
|
-
});
|
|
41326
|
-
tick = _matchingTickValue || null;
|
|
41327
|
-
}
|
|
41328
|
-
if (tick) {
|
|
41329
|
-
if (tick.formattedValue) {
|
|
41330
|
-
return tick.formattedValue;
|
|
41331
|
-
} else {
|
|
41332
|
-
return tick.value.toString();
|
|
41333
|
-
}
|
|
41334
|
-
} else {
|
|
41335
|
-
return ''; // ?
|
|
41336
|
-
}
|
|
41337
|
-
},
|
|
41338
|
-
tickValues: chart.x.ticks.length > 0 ? chart.x.ticks.map(function (tick) {
|
|
41339
|
-
return tick.scaleValue !== null ? tick.scaleValue : 0;
|
|
41340
|
-
}) : undefined,
|
|
41341
|
-
tickComponent: function tickComponent(_ref2) {
|
|
41342
|
-
var formattedValue = _ref2.formattedValue,
|
|
41343
|
-
tickProps = _objectWithoutPropertiesLoose(_ref2, _excluded$e);
|
|
41344
|
-
return jsx(Text, _extends({
|
|
41345
|
-
style: themeCSS.labels
|
|
41346
|
-
}, tickProps, {
|
|
41347
|
-
children: formattedValue
|
|
41348
|
-
}));
|
|
41349
|
-
},
|
|
41350
|
-
stroke: themeCSS.axis.stroke,
|
|
41351
|
-
strokeWidth: options.removeStroke ? 0 : 1
|
|
41352
|
-
}), options.axis.showYAxisLabels && jsx(AxisLeft, {
|
|
41353
|
-
labelOffset: margin.leftTitleOffset,
|
|
41354
|
-
label: chart.y.title || undefined,
|
|
41355
|
-
labelProps: {
|
|
41356
|
-
style: AXIS_TITLE_STYLES
|
|
41357
|
-
},
|
|
41358
|
-
hideTicks: true,
|
|
41359
|
-
left: 0,
|
|
41360
|
-
top: 0,
|
|
41361
|
-
scale: yScale,
|
|
41362
|
-
tickFormat: function tickFormat(value) {
|
|
41363
|
-
var item = chart.y.ticks.filter(function (tick) {
|
|
41364
|
-
return tick.value === value;
|
|
41365
|
-
})[0];
|
|
41366
|
-
if (item) {
|
|
41367
|
-
if (item.formattedValue) {
|
|
41368
|
-
return item.formattedValue;
|
|
41369
|
-
} else {
|
|
41370
|
-
return item.value.toString();
|
|
41371
|
-
}
|
|
41372
|
-
} else {
|
|
41373
|
-
return '';
|
|
41374
|
-
}
|
|
41375
|
-
},
|
|
41376
|
-
tickValues: yTickValues,
|
|
41377
|
-
tickComponent: function tickComponent(_ref3) {
|
|
41378
|
-
var formattedValue = _ref3.formattedValue,
|
|
41379
|
-
tickProps = _objectWithoutPropertiesLoose(_ref3, _excluded2$4);
|
|
41380
|
-
return jsx(Text, _extends({
|
|
41381
|
-
width: 10,
|
|
41382
|
-
style: themeCSS.labels
|
|
41383
|
-
}, tickProps, {
|
|
41384
|
-
children: formattedValue
|
|
41385
|
-
}));
|
|
41386
|
-
},
|
|
41387
|
-
stroke: (_theme$axis$stroke = theme == null || (_theme$axis = theme.axis) == null ? void 0 : _theme$axis.stroke) != null ? _theme$axis$stroke : 'transparent'
|
|
41443
|
+
removeStroke: options.removeStroke,
|
|
41444
|
+
themeCSS: themeCSS
|
|
41445
|
+
}), jsx(AxisBottom, {
|
|
41446
|
+
x: chart.x,
|
|
41447
|
+
margin: margin,
|
|
41448
|
+
themeCSS: themeCSS,
|
|
41449
|
+
show: options.axis.showXAxisLabels,
|
|
41450
|
+
removeStroke: options.removeStroke,
|
|
41451
|
+
xScaleDataType: xScaleDataType,
|
|
41452
|
+
xScale: xScale,
|
|
41453
|
+
height: innerHeight
|
|
41454
|
+
}), jsx(AxisLeft, {
|
|
41455
|
+
show: options.axis.showYAxisLabels,
|
|
41456
|
+
y: chart.y,
|
|
41457
|
+
margin: margin,
|
|
41458
|
+
themeCSS: themeCSS,
|
|
41459
|
+
yScale: yScale,
|
|
41460
|
+
ticks: yTickValues,
|
|
41461
|
+
stroke: theme == null || (_theme$axis = theme.axis) == null ? void 0 : _theme$axis.stroke
|
|
41388
41462
|
}), jsxs(Group$2, {
|
|
41389
41463
|
children: [chart.y.keys.map(function (yKey) {
|
|
41390
41464
|
var _chart$lines$filter$;
|
|
@@ -41514,7 +41588,14 @@ var LineChart$5 = function LineChart(_ref) {
|
|
|
41514
41588
|
return null;
|
|
41515
41589
|
}
|
|
41516
41590
|
})]
|
|
41517
|
-
}),
|
|
41591
|
+
}), jsx(GoalLines$1, {
|
|
41592
|
+
goalLines: chart.goalLines,
|
|
41593
|
+
y: function y(d) {
|
|
41594
|
+
return yScale(d);
|
|
41595
|
+
},
|
|
41596
|
+
margin: margin,
|
|
41597
|
+
width: innerWidth
|
|
41598
|
+
})]
|
|
41518
41599
|
}), options.showLegend && jsx(Legend$1, {
|
|
41519
41600
|
legendItems: chart.lines,
|
|
41520
41601
|
visibleYKeys: visibleYKeys,
|
|
@@ -41562,20 +41643,14 @@ function getBarFill(bars, conditionalFormattingRules, barKey, barValues) {
|
|
|
41562
41643
|
return fill;
|
|
41563
41644
|
}
|
|
41564
41645
|
|
|
41565
|
-
|
|
41566
|
-
_excluded2$5 = ["formattedValue"];
|
|
41567
|
-
function _EMOTION_STRINGIFIED_CSS_ERROR__$7() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
41568
|
-
var AXIS_TITLE_STYLES$1 = {
|
|
41569
|
-
opacity: '0.75',
|
|
41570
|
-
fontWeight: 'bold'
|
|
41571
|
-
};
|
|
41646
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__$8() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
41572
41647
|
var BAR_RADIUS = 2;
|
|
41573
41648
|
var PADDING = {
|
|
41574
41649
|
paddingOuter: 0.05,
|
|
41575
41650
|
paddingInner: 0.3
|
|
41576
41651
|
};
|
|
41577
41652
|
var BarChart$5 = function BarChart(_ref) {
|
|
41578
|
-
var
|
|
41653
|
+
var _theme$axis;
|
|
41579
41654
|
var chart = _ref.chart,
|
|
41580
41655
|
width = _ref.width,
|
|
41581
41656
|
height = _ref.height,
|
|
@@ -41648,21 +41723,6 @@ var BarChart$5 = function BarChart(_ref) {
|
|
|
41648
41723
|
return undefined;
|
|
41649
41724
|
}, [xScale, yScaleKeys, options.stacked, xScaleDataType]);
|
|
41650
41725
|
var dataFlattened = useFlattenedData(xScaleKey, xScaleDataType, chart);
|
|
41651
|
-
var goalLines = useMemo(function () {
|
|
41652
|
-
return chart.goalLines.map(function (goalLine) {
|
|
41653
|
-
return jsx(GoalLine, {
|
|
41654
|
-
innerWidth: innerWidth,
|
|
41655
|
-
y: yScale(goalLine.value),
|
|
41656
|
-
goalLine: goalLine,
|
|
41657
|
-
margin: {
|
|
41658
|
-
top: margin.top,
|
|
41659
|
-
left: margin.left,
|
|
41660
|
-
right: margin.right,
|
|
41661
|
-
bottom: margin.bottom
|
|
41662
|
-
}
|
|
41663
|
-
}, goalLine.value);
|
|
41664
|
-
});
|
|
41665
|
-
}, [chart.goalLines, margin, innerWidth, yScale]);
|
|
41666
41726
|
var handleMouseMove = useCallback(function (event) {
|
|
41667
41727
|
if (!xKey || !xScaleKey || xScale === null) return;
|
|
41668
41728
|
var tooltipData = getTooltipData({
|
|
@@ -41708,115 +41768,39 @@ var BarChart$5 = function BarChart(_ref) {
|
|
|
41708
41768
|
return Number(tick.value);
|
|
41709
41769
|
});
|
|
41710
41770
|
return jsxs(Fragment, {
|
|
41711
|
-
children: [jsxs(
|
|
41771
|
+
children: [jsxs(ChartWrapper$1, {
|
|
41712
41772
|
width: width,
|
|
41713
|
-
height: height
|
|
41773
|
+
height: height,
|
|
41714
41774
|
onMouseMove: handleMouseMove,
|
|
41715
41775
|
onMouseLeave: handleMouseLeave,
|
|
41716
|
-
|
|
41717
|
-
display: 'block'
|
|
41718
|
-
},
|
|
41776
|
+
showLegend: options.showLegend,
|
|
41719
41777
|
children: [jsxs(Group$2, {
|
|
41720
41778
|
left: margin.left,
|
|
41721
41779
|
top: margin.top,
|
|
41722
41780
|
children: [jsx(GridRows, {
|
|
41723
|
-
|
|
41724
|
-
|
|
41781
|
+
ticks: yTickValues,
|
|
41782
|
+
yScale: yScale,
|
|
41725
41783
|
width: innerWidth,
|
|
41726
41784
|
height: innerHeight,
|
|
41727
|
-
|
|
41728
|
-
|
|
41729
|
-
|
|
41730
|
-
|
|
41731
|
-
|
|
41732
|
-
|
|
41733
|
-
|
|
41734
|
-
|
|
41735
|
-
|
|
41736
|
-
|
|
41737
|
-
|
|
41738
|
-
|
|
41739
|
-
|
|
41740
|
-
|
|
41741
|
-
|
|
41742
|
-
|
|
41743
|
-
,
|
|
41744
|
-
|
|
41745
|
-
|
|
41746
|
-
var tick = null;
|
|
41747
|
-
if (xScaleDataType === 'date_time' && value instanceof Date) {
|
|
41748
|
-
// if chart.x.scale.key !== chart.x.key, use tickValue.scaleValue NOT tickValuevalue
|
|
41749
|
-
var matchingTickValue = chart.x.ticks.find(function (tickValue) {
|
|
41750
|
-
return tickValue.scaleValue && new Date(tickValue.scaleValue).valueOf() === value.valueOf();
|
|
41751
|
-
});
|
|
41752
|
-
tick = matchingTickValue || null;
|
|
41753
|
-
} else {
|
|
41754
|
-
var _chart$x;
|
|
41755
|
-
var _matchingTickValue = chart == null || (_chart$x = chart.x) == null ? void 0 : _chart$x.ticks.find(function (tickValue) {
|
|
41756
|
-
return ((tickValue == null ? void 0 : tickValue.scaleValue) !== null ? tickValue == null ? void 0 : tickValue.scaleValue : 0) === value;
|
|
41757
|
-
});
|
|
41758
|
-
tick = _matchingTickValue || null;
|
|
41759
|
-
}
|
|
41760
|
-
if (tick) {
|
|
41761
|
-
if (tick.formattedValue) {
|
|
41762
|
-
return tick.formattedValue;
|
|
41763
|
-
} else {
|
|
41764
|
-
return tick.value.toString();
|
|
41765
|
-
}
|
|
41766
|
-
} else {
|
|
41767
|
-
return ''; // ?
|
|
41768
|
-
}
|
|
41769
|
-
},
|
|
41770
|
-
tickValues: (chart == null || (_chart$x2 = chart.x) == null || (_chart$x2 = _chart$x2.ticks) == null ? void 0 : _chart$x2.length) > 0 ? chart.x.ticks.map(function (tick) {
|
|
41771
|
-
return (tick == null ? void 0 : tick.scaleValue) !== null ? tick == null ? void 0 : tick.scaleValue : 0;
|
|
41772
|
-
}) : undefined,
|
|
41773
|
-
tickComponent: function tickComponent(_ref2) {
|
|
41774
|
-
var formattedValue = _ref2.formattedValue,
|
|
41775
|
-
tickProps = _objectWithoutPropertiesLoose(_ref2, _excluded$f);
|
|
41776
|
-
return jsx(Text, _extends({
|
|
41777
|
-
style: themeCSS.labels
|
|
41778
|
-
}, tickProps, {
|
|
41779
|
-
children: formattedValue
|
|
41780
|
-
}));
|
|
41781
|
-
},
|
|
41782
|
-
stroke: themeCSS.axis.stroke,
|
|
41783
|
-
strokeWidth: options.removeStroke ? 0 : 1
|
|
41784
|
-
}), options.axis.showYAxisLabels && jsx(AxisLeft, {
|
|
41785
|
-
labelOffset: margin.leftTitleOffset,
|
|
41786
|
-
label: chart.y.title || undefined,
|
|
41787
|
-
labelProps: {
|
|
41788
|
-
style: AXIS_TITLE_STYLES$1
|
|
41789
|
-
},
|
|
41790
|
-
hideTicks: true,
|
|
41791
|
-
left: 0,
|
|
41792
|
-
top: 0,
|
|
41793
|
-
scale: yScale,
|
|
41794
|
-
tickFormat: function tickFormat(value) {
|
|
41795
|
-
var item = chart.y.ticks.filter(function (tick) {
|
|
41796
|
-
return tick.value === value;
|
|
41797
|
-
})[0];
|
|
41798
|
-
if (item) {
|
|
41799
|
-
if (item.formattedValue) {
|
|
41800
|
-
return item.formattedValue;
|
|
41801
|
-
} else {
|
|
41802
|
-
return item.value.toString();
|
|
41803
|
-
}
|
|
41804
|
-
} else {
|
|
41805
|
-
return '';
|
|
41806
|
-
}
|
|
41807
|
-
},
|
|
41808
|
-
tickValues: yTickValues,
|
|
41809
|
-
tickComponent: function tickComponent(_ref3) {
|
|
41810
|
-
var formattedValue = _ref3.formattedValue,
|
|
41811
|
-
tickProps = _objectWithoutPropertiesLoose(_ref3, _excluded2$5);
|
|
41812
|
-
return jsx(Text, _extends({
|
|
41813
|
-
width: 10,
|
|
41814
|
-
style: themeCSS.labels
|
|
41815
|
-
}, tickProps, {
|
|
41816
|
-
children: formattedValue
|
|
41817
|
-
}));
|
|
41818
|
-
},
|
|
41819
|
-
stroke: (_theme$axis$stroke = theme == null || (_theme$axis = theme.axis) == null ? void 0 : _theme$axis.stroke) != null ? _theme$axis$stroke : 'transparent'
|
|
41785
|
+
removeStroke: options.removeStroke,
|
|
41786
|
+
themeCSS: themeCSS
|
|
41787
|
+
}), jsx(AxisBottom, {
|
|
41788
|
+
x: chart.x,
|
|
41789
|
+
margin: margin,
|
|
41790
|
+
themeCSS: themeCSS,
|
|
41791
|
+
show: options.axis.showXAxisLabels,
|
|
41792
|
+
removeStroke: options.removeStroke,
|
|
41793
|
+
xScaleDataType: xScaleDataType,
|
|
41794
|
+
xScale: xScale,
|
|
41795
|
+
height: innerHeight
|
|
41796
|
+
}), jsx(AxisLeft, {
|
|
41797
|
+
show: options.axis.showYAxisLabels,
|
|
41798
|
+
y: chart.y,
|
|
41799
|
+
margin: margin,
|
|
41800
|
+
themeCSS: themeCSS,
|
|
41801
|
+
yScale: yScale,
|
|
41802
|
+
ticks: yTickValues,
|
|
41803
|
+
stroke: theme == null || (_theme$axis = theme.axis) == null ? void 0 : _theme$axis.stroke
|
|
41820
41804
|
}), jsxs(Group$2, {
|
|
41821
41805
|
children: [!options.stacked && jsx(BarGroup$1, {
|
|
41822
41806
|
data: dataFlattened,
|
|
@@ -41916,7 +41900,14 @@ var BarChart$5 = function BarChart(_ref) {
|
|
|
41916
41900
|
pointerEvents: "none",
|
|
41917
41901
|
opacity: 0.8
|
|
41918
41902
|
})
|
|
41919
|
-
}),
|
|
41903
|
+
}), jsx(GoalLines$1, {
|
|
41904
|
+
goalLines: chart.goalLines,
|
|
41905
|
+
y: function y(d) {
|
|
41906
|
+
return yScale(d);
|
|
41907
|
+
},
|
|
41908
|
+
margin: margin,
|
|
41909
|
+
width: innerWidth
|
|
41910
|
+
})]
|
|
41920
41911
|
}), options.showLegend && jsx(Legend$1, {
|
|
41921
41912
|
legendItems: chart.bars,
|
|
41922
41913
|
visibleYKeys: chart.bars.map(function (legendItem) {
|
|
@@ -41967,8 +41958,8 @@ var Bar = function Bar(props) {
|
|
|
41967
41958
|
} : {
|
|
41968
41959
|
name: "4nk3o1-Bar",
|
|
41969
41960
|
styles: "cursor:pointer;label:Bar;",
|
|
41970
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhckNoYXJ0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4ZHFDIiwiZmlsZSI6IkJhckNoYXJ0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhckNoYXJ0UmVwcmVzZW50YXRpb24gfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0JhckNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQ2hhcnRUaGVtZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSAnQHZpc3gvZ3JvdXAnO1xuaW1wb3J0IHsgZ2V0Q2hhcnRUaGVtZUNTUywgZ2V0VG9vbHRpcERhdGEgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBBeGlzTGVmdCwgQXhpc0JvdHRvbSB9IGZyb20gJ0B2aXN4L2F4aXMnO1xuaW1wb3J0IHsgR3JpZFJvd3MgfSBmcm9tICdAdmlzeC9ncmlkJztcbmltcG9ydCB7IEZyYWdtZW50LCB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnLi4vVG9vbHRpcCc7XG5pbXBvcnQgeyB1c2VUb29sdGlwIH0gZnJvbSAnQHZpc3gvdG9vbHRpcCc7XG5pbXBvcnQgeyBMZWdlbmQgfSBmcm9tICcuLi9MZWdlbmQnO1xuaW1wb3J0IHsgR29hbExpbmUgfSBmcm9tICcuLi9Hb2FsTGluZSc7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnQHZpc3gvdGV4dCc7XG5pbXBvcnQgeyBCYXJHcm91cCwgQmFyU3RhY2ssIExpbmUgfSBmcm9tICdAdmlzeC9zaGFwZSc7XG5pbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvRmllbGQvdHlwZXMnO1xuaW1wb3J0IHsgc2NhbGVMaW5lYXIsIHNjYWxlQmFuZCB9IGZyb20gJ0B2aXN4L3NjYWxlJztcbmltcG9ydCB7IGdldEJhckZpbGwgfSBmcm9tICcuL2dldEJhckZpbGwnO1xuaW1wb3J0IHsgYnVpbGRNYXJnaW4gfSBmcm9tICcuLi8uLi91dGlscy9idWlsZE1hcmdpbic7XG5pbXBvcnQgeyBDaGFydE9uVmlld0NsaWNrLCBEYXRhSXRlbSwgVGljayB9IGZyb20gJ3NoYXJlZC1sb2dpYy9zcmMvQ2hhcnRzVjIvdHlwZXMnO1xuaW1wb3J0IHsgbGlnaHRlbkNvbG9yIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbG9yLmZ1bmN0aW9ucyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9jc3MnO1xuaW1wb3J0IHsgQmFyR3JvdXBCYXIsIEJhckdyb3VwIGFzIEJhckdyb3VwVHlwZSB9IGZyb20gJ0B2aXN4L3NoYXBlL2xpYi90eXBlcyc7XG5pbXBvcnQgeyB1c2VGbGF0dGVuZWREYXRhIH0gZnJvbSAnLi4vaG9va3MvdXNlRmxhdHRlbmVkRGF0YSc7XG5cbi8vIE5lZWQgdG8gbG9vayBhdCB1cGRhdGluZyBCYXJDaGFydCB0byB1c2UgdGhpcyB0eXBlIG1ldGhvZCBvZiByZW5kZXJpbmcgLSBodHRwczovL2NvZGVzYW5kYm94LmlvL3Avc2FuZGJveC92aXN4LWJhci1jaGFydC1qOXNtcGo/ZmlsZT0lMkZFeGFtcGxlLnRzeFxuLy8gQ3VycmVudGx5IGl0J3MgdXNpbmcgU3RhY2tlZCBDaGFydCB3aGljaCBpc24ndCB0ZWNobmljYWxseSBjb3JyZWN0XG5cbmNvbnN0IEFYSVNfVElUTEVfU1RZTEVTOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0geyBvcGFjaXR5OiAnMC43NScsIGZvbnRXZWlnaHQ6ICdib2xkJyB9O1xuXG5leHBvcnQgdHlwZSBCYXJDaGFydFByb3BzID0ge1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgdGhlbWU/OiBDaGFydFRoZW1lO1xuICBjaGFydDogQmFyQ2hhcnRSZXByZXNlbnRhdGlvbjtcbiAgb3B0aW9uczoge1xuICAgIHN0YWNrZWQ6IGJvb2xlYW47XG4gICAgc2hvd1JvdW5kZWRUb3RhbDogYm9vbGVhbjtcbiAgICBzaG93TGVnZW5kOiBib29sZWFuO1xuICAgIHJlbW92ZVN0cm9rZTogYm9vbGVhbjtcbiAgICBheGlzOiB7XG4gICAgICBzaG93WEF4aXNMYWJlbHM6IGJvb2xlYW47XG4gICAgICBzaG93WUF4aXNMYWJlbHM6IGJvb2xlYW47XG4gICAgfTtcbiAgfTtcbiAgb25DbGljazogKHBhcmFtczogQ2hhcnRPblZpZXdDbGljaykgPT4gdm9pZDtcbiAgZW5hYmxlSG92ZXI/OiBib29sZWFuO1xufTtcblxuY29uc3QgQkFSX1JBRElVUyA9IDI7XG5cbmNvbnN0IFBBRERJTkcgPSB7XG4gIHBhZGRpbmdPdXRlcjogMC4wNSxcbiAgcGFkZGluZ0lubmVyOiAwLjMsXG59O1xuXG5leHBvcnQgY29uc3QgQmFyQ2hhcnQgPSAoeyBjaGFydCwgd2lkdGgsIGhlaWdodCwgb3B0aW9ucywgdGhlbWUsIG9uQ2xpY2ssIGVuYWJsZUhvdmVyIH06IEJhckNoYXJ0UHJvcHMpID0+IHtcbiAgY29uc3QgeyB0b29sdGlwT3BlbiwgdG9vbHRpcExlZnQgPSAwLCB0b29sdGlwVG9wID0gMCwgdG9vbHRpcERhdGEsIGhpZGVUb29sdGlwLCBzaG93VG9vbHRpcCB9ID0gdXNlVG9vbHRpcDx7XG4gICAgW2tleUlkOiBzdHJpbmddOiBEYXRhSXRlbTtcbiAgfSB8IG51bGw+KCk7XG5cbiAgY29uc3QgbWFyZ2luID0gYnVpbGRNYXJnaW4oY2hhcnQueS50aWNrcywgb3B0aW9ucy5heGlzLnNob3dZQXhpc0xhYmVscywgY2hhcnQueS50aXRsZSAhPSBudWxsLCBjaGFydC54LnRpdGxlICE9IG51bGwpO1xuXG4gIC8vIGNvbnN0IFt2aXNpYmxlWUtleXMsIHNldFZpc2libGVZS2V5c10gPSB1c2VTdGF0ZShjaGFydC5iYXJzLm1hcCgobGVnZW5kSXRlbSkgPT4gbGVnZW5kSXRlbS55S2V5KSk7XG5cbiAgY29uc3QgaW5uZXJXaWR0aCA9IHdpZHRoIC0gbWFyZ2luLmxlZnQgLSBtYXJnaW4ucmlnaHQ7XG4gIGNvbnN0IGlubmVySGVpZ2h0ID0gaGVpZ2h0IC0gbWFyZ2luLnRvcCAtIG1hcmdpbi5ib3R0b20gLSAob3B0aW9ucy5zaG93TGVnZW5kID8gNDAgOiAwKTtcbiAgY29uc3QgeEtleSA9IGNoYXJ0Lngua2V5O1xuICBjb25zdCB4U2NhbGVLZXkgPSBjaGFydC54LnNjYWxlLmtleTtcbiAgY29uc3QgeVNjYWxlS2V5cyA9IGNoYXJ0Lnkua2V5cztcbiAgY29uc3QgeFNjYWxlRGF0YVR5cGU6IERhdGFUeXBlID0gY2hhcnQueC5zY2FsZS5kYXRhVHlwZTtcblxuICBjb25zdCB4U2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoeFNjYWxlRGF0YVR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gc2NhbGVCYW5kPHN0cmluZz4oe1xuICAgICAgICByYW5nZTogWzAsIGlubmVyV2lkdGhdLFxuICAgICAgICBkb21haW46IHhTY2FsZUtleVxuICAgICAgICAgID8gWy4uLmNoYXJ0LmRhdGEubWFwKGQgPT4gKGRbeFNjYWxlS2V5XSAmJiBkW3hTY2FsZUtleV0udmFsdWUgIT09IG51bGwgPyBTdHJpbmcoZFt4U2NhbGVLZXldLnZhbHVlKSA6ICcnKSldXG4gICAgICAgICAgOiBbXSxcbiAgICAgICAgLi4uUEFERElORyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh4U2NhbGVEYXRhVHlwZSA9PT0gJ2RhdGVfdGltZScgJiYgeFNjYWxlS2V5KSB7XG4gICAgICByZXR1cm4gc2NhbGVCYW5kPERhdGU+KHtcbiAgICAgICAgcmFuZ2U6IFswLCBpbm5lcldpZHRoXSxcbiAgICAgICAgZG9tYWluOiBjaGFydC5kYXRhLm1hcChkID0+IG5ldyBEYXRlKGRbeFNjYWxlS2V5XS52YWx1ZSBhcyBzdHJpbmcpKSxcbiAgICAgICAgLi4uUEFERElORyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh4U2NhbGVEYXRhVHlwZSA9PT0gJ251bWJlcicgJiYgeFNjYWxlS2V5KSB7XG4gICAgICByZXR1cm4gc2NhbGVCYW5kPG51bWJlcj4oe1xuICAgICAgICByYW5nZTogWzAsIGlubmVyV2lkdGhdLFxuICAgICAgICBkb21haW46IGNoYXJ0LmRhdGEubWFwKGQgPT4gKGRbeFNjYWxlS2V5XSAmJiBkW3hTY2FsZUtleV0udmFsdWUgIT09IG51bGwgPyBOdW1iZXIoZFt4U2NhbGVLZXldLnZhbHVlKSA6IDApKSxcbiAgICAgICAgLi4uUEFERElORyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9LCBbaW5uZXJXaWR0aCwgY2hhcnQueCwgY2hhcnQuZGF0YV0pO1xuXG4gIGNvbnN0IHlTY2FsZSA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIHNjYWxlTGluZWFyPG51bWJlcj4oe1xuICAgICAgICByYW5nZTogW2lubmVySGVpZ2h0LCAwXSxcbiAgICAgICAgZG9tYWluOlxuICAgICAgICAgIGNoYXJ0Lnkuc2NhbGUub3JkZXJpbmcgPT09ICdhc2MnXG4gICAgICAgICAgICA/IFtjaGFydC55LnNjYWxlLm1pbiBhcyBudW1iZXIsIGNoYXJ0Lnkuc2NhbGUubWF4IGFzIG51bWJlcl1cbiAgICAgICAgICAgIDogW2NoYXJ0Lnkuc2NhbGUubWF4IGFzIG51bWJlciwgY2hhcnQueS5zY2FsZS5taW4gYXMgbnVtYmVyXSxcbiAgICAgICAgbmljZTogdHJ1ZSxcbiAgICAgICAgcm91bmQ6IHRydWUsXG4gICAgICB9KSxcbiAgICBbaW5uZXJIZWlnaHQsIGNoYXJ0LnldXG4gICk7XG5cbiAgY29uc3QgaW5uZXJYU2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIW9wdGlvbnMuc3RhY2tlZCAmJiB4U2NhbGUgJiYgJ2JhbmR3aWR0aCcgaW4geFNjYWxlKSB7XG4gICAgICByZXR1cm4gc2NhbGVCYW5kPHN0cmluZz4oe1xuICAgICAgICByYW5nZTogWzAsIHhTY2FsZT8uYmFuZHdpZHRoKCldLFxuICAgICAgICBkb21haW46IHlTY2FsZUtleXMsXG4gICAgICAgIHBhZGRpbmc6IDAuMSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0sIFt4U2NhbGUsIHlTY2FsZUtleXMsIG9wdGlvbnMuc3RhY2tlZCwgeFNjYWxlRGF0YVR5cGVdKTtcblxuICBjb25zdCBkYXRhRmxhdHRlbmVkID0gdXNlRmxhdHRlbmVkRGF0YTxCYXJDaGFydFJlcHJlc2VudGF0aW9uPih4U2NhbGVLZXksIHhTY2FsZURhdGFUeXBlLCBjaGFydCk7XG5cbiAgY29uc3QgZ29hbExpbmVzID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgY2hhcnQuZ29hbExpbmVzLm1hcChnb2FsTGluZSA9PiAoXG4gICAgICAgIDxHb2FsTGluZVxuICAgICAgICAgIGtleT17Z29hbExpbmUudmFsdWV9XG4gICAgICAgICAgaW5uZXJXaWR0aD17aW5uZXJXaWR0aH1cbiAgICAgICAgICB5PXt5U2NhbGUoZ29hbExpbmUudmFsdWUpfVxuICAgICAgICAgIGdvYWxMaW5lPXtnb2FsTGluZX1cbiAgICAgICAgICBtYXJnaW49e3tcbiAgICAgICAgICAgIHRvcDogbWFyZ2luLnRvcCxcbiAgICAgICAgICAgIGxlZnQ6IG1hcmdpbi5sZWZ0LFxuICAgICAgICAgICAgcmlnaHQ6IG1hcmdpbi5yaWdodCxcbiAgICAgICAgICAgIGJvdHRvbTogbWFyZ2luLmJvdHRvbSxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKSksXG4gICAgW2NoYXJ0LmdvYWxMaW5lcywgbWFyZ2luLCBpbm5lcldpZHRoLCB5U2NhbGVdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlTW91c2VNb3ZlID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PFNWR0VsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAoIXhLZXkgfHwgIXhTY2FsZUtleSB8fCB4U2NhbGUgPT09IG51bGwpIHJldHVybjtcblxuICAgICAgY29uc3QgdG9vbHRpcERhdGEgPSBnZXRUb29sdGlwRGF0YSh7XG4gICAgICAgIGRhdGE6IGNoYXJ0LmRhdGEsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBtYXJnaW4sXG4gICAgICAgIHhTY2FsZUtleSxcbiAgICAgICAgeFNjYWxlRGF0YVR5cGUsXG4gICAgICAgIHhPcmRlcmluZzogY2hhcnQueC5zY2FsZS5vcmRlcmluZyxcbiAgICAgICAgeFNjYWxlLFxuICAgICAgICBjaGFydFR5cGU6ICdiYXInLFxuICAgICAgfSk7XG5cbiAgICAgIHNob3dUb29sdGlwKHtcbiAgICAgICAgdG9vbHRpcExlZnQ6IHRvb2x0aXBEYXRhPy50b29sdGlwTGVmdCxcbiAgICAgICAgdG9vbHRpcFRvcDogdG9vbHRpcERhdGE/LnRvb2x0aXBUb3AsXG4gICAgICAgIHRvb2x0aXBEYXRhOiB0b29sdGlwRGF0YT8udG9vbHRpcERhdGEsXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtzaG93VG9vbHRpcCwgeFNjYWxlLCBtYXJnaW4sIHhLZXksIHhTY2FsZUtleSwgeFNjYWxlRGF0YVR5cGUsIGNoYXJ0Lnguc2NhbGUub3JkZXJpbmcsIGNoYXJ0LmRhdGFdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlTW91c2VMZWF2ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBoaWRlVG9vbHRpcCgpO1xuICB9LCBbaGlkZVRvb2x0aXBdKTtcblxuICBjb25zdCBoYW5kbGVPbkJhckNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PFNWR1JlY3RFbGVtZW50LCBNb3VzZUV2ZW50PiwgYmFyR3JvdXA6IEJhckdyb3VwVHlwZTxzdHJpbmc+LCBiYXI6IEJhckdyb3VwQmFyPHN0cmluZz4pID0+IHtcbiAgICAgIG9uQ2xpY2soe1xuICAgICAgICBjbGlja2VkVmFsdWU6IHtcbiAgICAgICAgICBpbmRleDogYmFyR3JvdXAuaW5kZXgsXG4gICAgICAgICAgeToge1xuICAgICAgICAgICAga2V5OiBiYXIua2V5LFxuICAgICAgICAgICAgdmFsdWU6IGJhci52YWx1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHg6IHtcbiAgICAgICAgICAgIC4uLmNoYXJ0LngudGlja3NbYmFyR3JvdXAuaW5kZXhdLFxuICAgICAgICAgICAgdmFsdWU6IGNoYXJ0LmRhdGFbYmFyR3JvdXAuaW5kZXhdW3hLZXldLnZhbHVlID8/ICcnLFxuICAgICAgICAgICAga2V5OiB4S2V5LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNsaWNrRXZlbnQ6IGV2ZW50LFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBbb25DbGljaywgY2hhcnQuZGF0YSwgeEtleV1cbiAgKTtcblxuICBjb25zdCB0aGVtZUNTUyA9IHVzZU1lbW8oKCkgPT4gZ2V0Q2hhcnRUaGVtZUNTUyh0aGVtZSksIFt0aGVtZV0pO1xuXG4gIGNvbnN0IHlUaWNrVmFsdWVzID0gY2hhcnQueS50aWNrcy5tYXAodGljayA9PiBOdW1iZXIodGljay52YWx1ZSkpO1xuXG4gIHJldHVybiAoXG4gICAgPEZyYWdtZW50PlxuICAgICAgey8qIHdpZHRoL2hlaWdodCAxMDAlIHJlcXVpcmVkIG9yIHVzZVBhcmVudFNpemUoKSBjb250aW51b3VzbHkgc2NhbGVzIGFzIHBhcmVudCBlbGVtZW50IGhhcyBubyBzcGVjaWZpZWQgaGVpZ2h0ICovfVxuICAgICAgPHN2Z1xuICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgIGhlaWdodD17aGVpZ2h0IC0gKG9wdGlvbnMuc2hvd0xlZ2VuZCA/IDQwIDogMCl9XG4gICAgICAgIG9uTW91c2VNb3ZlPXtoYW5kbGVNb3VzZU1vdmV9XG4gICAgICAgIG9uTW91c2VMZWF2ZT17aGFuZGxlTW91c2VMZWF2ZX1cbiAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogJ2Jsb2NrJyB9fVxuICAgICAgPlxuICAgICAgICA8R3JvdXAgbGVmdD17bWFyZ2luLmxlZnR9IHRvcD17bWFyZ2luLnRvcH0+XG4gICAgICAgICAgPEdyaWRSb3dzXG4gICAgICAgICAgICB0aWNrVmFsdWVzPXt5VGlja1ZhbHVlcy5sZW5ndGggPiAwID8geVRpY2tWYWx1ZXMgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBzY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgd2lkdGg9e2lubmVyV2lkdGh9XG4gICAgICAgICAgICBoZWlnaHQ9e2lubmVySGVpZ2h0fVxuICAgICAgICAgICAgcG9pbnRlckV2ZW50cz1cIm5vbmVcIlxuICAgICAgICAgICAgc3Ryb2tlRGFzaGFycmF5PVwiMC41IDVcIlxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg9e29wdGlvbnMucmVtb3ZlU3Ryb2tlID8gMCA6IDJ9XG4gICAgICAgICAgICBsaW5lU3R5bGU9e3tcbiAgICAgICAgICAgICAgc3Ryb2tlTGluZWNhcDogJ3JvdW5kJyxcbiAgICAgICAgICAgICAgc3Ryb2tlOiB0aGVtZUNTUy5ncmlkLnN0cm9rZSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7b3B0aW9ucy5heGlzLnNob3dYQXhpc0xhYmVscyAmJiAoXG4gICAgICAgICAgICA8QXhpc0JvdHRvbVxuICAgICAgICAgICAgICBsYWJlbD17Y2hhcnQueC50aXRsZSB8fCB1bmRlZmluZWR9XG4gICAgICAgICAgICAgIGxhYmVsUHJvcHM9e3sgc3R5bGU6IEFYSVNfVElUTEVfU1RZTEVTIH19XG4gICAgICAgICAgICAgIGxhYmVsT2Zmc2V0PXttYXJnaW4uYm90dG9tVGl0bGVPZmZzZXR9XG4gICAgICAgICAgICAgIGhpZGVUaWNrc1xuICAgICAgICAgICAgICB0b3A9e2lubmVySGVpZ2h0fVxuICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgIHNjYWxlPXt4U2NhbGV9XG4gICAgICAgICAgICAgIHRpY2tGb3JtYXQ9e3ZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdGljazogVGljazxEYXRlIHwgc3RyaW5nIHwgbnVtYmVyPiB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnZGF0ZV90aW1lJyAmJiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICAgIC8vIGlmIGNoYXJ0Lnguc2NhbGUua2V5ICE9PSBjaGFydC54LmtleSwgdXNlIHRpY2tWYWx1ZS5zY2FsZVZhbHVlIE5PVCB0aWNrVmFsdWV2YWx1ZVxuICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdUaWNrVmFsdWUgPSBjaGFydC54LnRpY2tzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIHRpY2tWYWx1ZSA9PiB0aWNrVmFsdWUuc2NhbGVWYWx1ZSAmJiBuZXcgRGF0ZSh0aWNrVmFsdWUuc2NhbGVWYWx1ZSkudmFsdWVPZigpID09PSB2YWx1ZS52YWx1ZU9mKClcbiAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgIHRpY2sgPSBtYXRjaGluZ1RpY2tWYWx1ZSB8fCBudWxsO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ1RpY2tWYWx1ZSA9IGNoYXJ0Py54Py50aWNrcy5maW5kKFxuICAgICAgICAgICAgICAgICAgICB0aWNrVmFsdWUgPT4gKHRpY2tWYWx1ZT8uc2NhbGVWYWx1ZSAhPT0gbnVsbCA/IHRpY2tWYWx1ZT8uc2NhbGVWYWx1ZSA6IDApID09PSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIHRpY2sgPSBtYXRjaGluZ1RpY2tWYWx1ZSB8fCBudWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aWNrKSB7XG4gICAgICAgICAgICAgICAgICBpZiAodGljay5mb3JtYXR0ZWRWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGljay5mb3JtYXR0ZWRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aWNrLnZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiAnJzsgLy8gP1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgdGlja1ZhbHVlcz17XG4gICAgICAgICAgICAgICAgY2hhcnQ/Lng/LnRpY2tzPy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgICA/IGNoYXJ0LngudGlja3MubWFwKHRpY2sgPT4gKHRpY2s/LnNjYWxlVmFsdWUgIT09IG51bGwgPyB0aWNrPy5zY2FsZVZhbHVlIDogMCkpXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRpY2tDb21wb25lbnQ9eyh7IGZvcm1hdHRlZFZhbHVlLCAuLi50aWNrUHJvcHMgfSkgPT4gKFxuICAgICAgICAgICAgICAgIDxUZXh0IHN0eWxlPXt0aGVtZUNTUy5sYWJlbHN9IHsuLi50aWNrUHJvcHN9PlxuICAgICAgICAgICAgICAgICAge2Zvcm1hdHRlZFZhbHVlfVxuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgc3Ryb2tlPXt0aGVtZUNTUy5heGlzLnN0cm9rZX1cbiAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9e29wdGlvbnMucmVtb3ZlU3Ryb2tlID8gMCA6IDF9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge29wdGlvbnMuYXhpcy5zaG93WUF4aXNMYWJlbHMgJiYgKFxuICAgICAgICAgICAgPEF4aXNMZWZ0XG4gICAgICAgICAgICAgIGxhYmVsT2Zmc2V0PXttYXJnaW4ubGVmdFRpdGxlT2Zmc2V0fVxuICAgICAgICAgICAgICBsYWJlbD17Y2hhcnQueS50aXRsZSB8fCB1bmRlZmluZWR9XG4gICAgICAgICAgICAgIGxhYmVsUHJvcHM9e3sgc3R5bGU6IEFYSVNfVElUTEVfU1RZTEVTIH19XG4gICAgICAgICAgICAgIGhpZGVUaWNrc1xuICAgICAgICAgICAgICBsZWZ0PXswfVxuICAgICAgICAgICAgICB0b3A9ezB9XG4gICAgICAgICAgICAgIHNjYWxlPXt5U2NhbGV9XG4gICAgICAgICAgICAgIHRpY2tGb3JtYXQ9e3ZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gY2hhcnQueS50aWNrcy5maWx0ZXIodGljayA9PiB0aWNrLnZhbHVlID09PSB2YWx1ZSlbMF07XG5cbiAgICAgICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uZm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZm9ybWF0dGVkVmFsdWU7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS52YWx1ZS50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICB0aWNrVmFsdWVzPXt5VGlja1ZhbHVlc31cbiAgICAgICAgICAgICAgdGlja0NvbXBvbmVudD17KHsgZm9ybWF0dGVkVmFsdWUsIC4uLnRpY2tQcm9wcyB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPFRleHQgd2lkdGg9ezEwfSBzdHlsZT17dGhlbWVDU1MubGFiZWxzfSB7Li4udGlja1Byb3BzfT5cbiAgICAgICAgICAgICAgICAgIHtmb3JtYXR0ZWRWYWx1ZX1cbiAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHN0cm9rZT17dGhlbWU/LmF4aXM/LnN0cm9rZSA/PyAndHJhbnNwYXJlbnQnfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxHcm91cD5cbiAgICAgICAgICAgIHshb3B0aW9ucy5zdGFja2VkICYmIChcbiAgICAgICAgICAgICAgPEJhckdyb3VwXG4gICAgICAgICAgICAgICAgZGF0YT17ZGF0YUZsYXR0ZW5lZH1cbiAgICAgICAgICAgICAgICBrZXlzPXt5U2NhbGVLZXlzfVxuICAgICAgICAgICAgICAgIGhlaWdodD17aW5uZXJIZWlnaHR9XG4gICAgICAgICAgICAgICAgeDA9e2QgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgY29uc3QgeFZhbHVlID0gZFt4U2NhbGVLZXldO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoeFNjYWxlRGF0YVR5cGUgPT09ICdzdHJpbmcnKSByZXR1cm4geFZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICBjb25zdCB4VmFsdWVBZGp1c3RlZCA9XG4gICAgICAgICAgICAgICAgICAgIHhTY2FsZURhdGFUeXBlID09PSAnZGF0ZV90aW1lJ1xuICAgICAgICAgICAgICAgICAgICAgID8gbmV3IERhdGUoeFZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgIDogeFNjYWxlRGF0YVR5cGUgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgICAgICAgPyBOdW1iZXIoeFZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgIDogU3RyaW5nKHhWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICByZXR1cm4geFZhbHVlQWRqdXN0ZWQ7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgeDBTY2FsZT17eFNjYWxlfVxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICB4MVNjYWxlPXtpbm5lclhTY2FsZX1cbiAgICAgICAgICAgICAgICB5U2NhbGU9e3lTY2FsZX1cbiAgICAgICAgICAgICAgICBjb2xvcj17KCkgPT4gJyd9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7YmFyR3JvdXBzID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBiYXJHcm91cHMubWFwKGJhckdyb3VwID0+IChcbiAgICAgICAgICAgICAgICAgICAgPEdyb3VwIGtleT17YGJhci1ncm91cC0ke2Jhckdyb3VwLmluZGV4fS0ke2Jhckdyb3VwLngwfWB9IGxlZnQ9e2Jhckdyb3VwLngwfT5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFyR3JvdXAuYmFycy5tYXAoYmFyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiYXIudmFsdWUgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJhci5oZWlnaHQgPCAwIHx8IGJhci53aWR0aCA8IDApIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YGJhci1ncm91cC1iYXItJHtiYXJHcm91cC5pbmRleH0tJHtiYXIuaW5kZXh9LSR7YmFyLnZhbHVlfS0ke2Jhci5rZXl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4PXtiYXIueH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5PXtiYXIueX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17YmFyLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17YmFyLmhlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPXtnZXRCYXJGaWxsKGNoYXJ0LmJhcnMsIGNoYXJ0LmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzLCBiYXIua2V5LCBiYXIudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gaGFuZGxlT25CYXJDbGljayhlLCBiYXJHcm91cCwgYmFyKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVIb3Zlcj17ZW5hYmxlSG92ZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9CYXJHcm91cD5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHsvKiBIb3cgdG8gd2UgZ2V0ICdzY2FsZVZhbHVlJyBoZXJlPyBXaWxsIHdlIG5lZWQgdG8gc3RhcnQgc3RvcmluZyBzY2FsZUtleSBhcyB3ZWxsIGFzIHhLZXk/ICovfVxuICAgICAgICAgICAge29wdGlvbnMuc3RhY2tlZCAmJiAoXG4gICAgICAgICAgICAgIDxCYXJTdGFja1xuICAgICAgICAgICAgICAgIHg9e2QgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgY29uc3QgeFZhbHVlID0gZFt4U2NhbGVLZXldO1xuICAgICAgICAgICAgICAgICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnc3RyaW5nJykgcmV0dXJuIHhWYWx1ZTtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgeFZhbHVlQWRqdXN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICB4U2NhbGVEYXRhVHlwZSA9PT0gJ2RhdGVfdGltZSdcbiAgICAgICAgICAgICAgICAgICAgICA/IG5ldyBEYXRlKHhWYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICA6IHhTY2FsZURhdGFUeXBlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgICAgICAgID8gTnVtYmVyKHhWYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICA6IFN0cmluZyh4VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHhWYWx1ZUFkanVzdGVkO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHhTY2FsZT17eFNjYWxlfVxuICAgICAgICAgICAgICAgIHlTY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgICAgIGRhdGE9e2RhdGFGbGF0dGVuZWR9XG4gICAgICAgICAgICAgICAga2V5cz17Y2hhcnQueS5rZXlzfVxuICAgICAgICAgICAgICAgIGNvbG9yPXsoKSA9PiAnJ31cbiAgICAgICAgICAgICAgICBoZWlnaHQ9e2lubmVySGVpZ2h0fVxuICAgICAgICAgICAgICAgIHdpZHRoPXtpbm5lcldpZHRofVxuICAgICAgICAgICAgICAgIG9mZnNldD1cIm5vbmVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhclN0YWNrcyA9PlxuICAgICAgICAgICAgICAgICAgYmFyU3RhY2tzLm1hcChiYXJTdGFjayA9PlxuICAgICAgICAgICAgICAgICAgICBiYXJTdGFjay5iYXJzLm1hcChiYXIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChiYXIuaGVpZ2h0IDwgMykgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgQkFSX1BBRERJTkcgPSAxLjU7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YGJhci1zdGFjay0ke2JhclN0YWNrLmluZGV4fS0ke2Jhci5pbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB4PXtiYXIueH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgeT17YmFyLnl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXtiYXIud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17YmFyLmhlaWdodCAtIEJBUl9QQURESU5HfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPXtnZXRCYXJGaWxsKGNoYXJ0LmJhcnMsIGNoYXJ0LmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzLCBiYXIua2V5LCBiYXIuYmFyLmRhdGEpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICByeD17QkFSX1JBRElVU31cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvQmFyU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvR3JvdXA+XG4gICAgICAgIDwvR3JvdXA+XG4gICAgICAgIHsvKiAtLS0tLSBUT09MVElQIENST1NTSEFJUiAtLS0tLSAqL31cbiAgICAgICAge3Rvb2x0aXBEYXRhICYmIChcbiAgICAgICAgICA8Zz5cbiAgICAgICAgICAgIDxMaW5lXG4gICAgICAgICAgICAgIGZyb209e3sgeDogdG9vbHRpcExlZnQsIHk6IG1hcmdpbi50b3AgfX1cbiAgICAgICAgICAgICAgdG89e3sgeDogdG9vbHRpcExlZnQsIHk6IGlubmVySGVpZ2h0ICsgbWFyZ2luLnRvcCB9fVxuICAgICAgICAgICAgICBzdHJva2U9eycjYWFhJ31cbiAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezJ9XG4gICAgICAgICAgICAgIHBvaW50ZXJFdmVudHM9XCJub25lXCJcbiAgICAgICAgICAgICAgb3BhY2l0eT17MC44fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2c+XG4gICAgICAgICl9XG4gICAgICAgIHsvKiAtLS0tLSBHT0FMIExJTkVTIC0tLS0tLSAqL31cbiAgICAgICAge2dvYWxMaW5lc31cbiAgICAgIDwvc3ZnPlxuICAgICAgey8qIC0tLS0tIExFR0VORCAtLS0tLSAqL31cbiAgICAgIHtvcHRpb25zLnNob3dMZWdlbmQgJiYgKFxuICAgICAgICA8TGVnZW5kXG4gICAgICAgICAgbGVnZW5kSXRlbXM9e2NoYXJ0LmJhcnN9XG4gICAgICAgICAgdmlzaWJsZVlLZXlzPXtjaGFydC5iYXJzLm1hcChsZWdlbmRJdGVtID0+IGxlZ2VuZEl0ZW0ueUtleSl9XG4gICAgICAgICAgc2V0VmlzaWJsZVlLZXlzPXsoKSA9PiB7fX1cbiAgICAgICAgICBrZXlzPXtjaGFydC5rZXlzfVxuICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzPXtjaGFydC5jb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlc31cbiAgICAgICAgICBtYXJnaW5MZWZ0PXttYXJnaW4ubGVmdCAtIG1hcmdpbi5sZWZ0VGl0bGVPZmZzZXR9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAgey8qIC0tLS0tIFRPT0xUSVAgLS0tLS0gKi99XG4gICAgICB7dG9vbHRpcE9wZW4gJiYgdG9vbHRpcERhdGEgJiYgeEtleSAmJiAoXG4gICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgdG9vbHRpcERhdGE9e3Rvb2x0aXBEYXRhfVxuICAgICAgICAgIHRvb2x0aXBMZWZ0PXt0b29sdGlwTGVmdH1cbiAgICAgICAgICB0b29sdGlwVG9wPXt0b29sdGlwVG9wfVxuICAgICAgICAgIHhLZXk9e3hLZXl9XG4gICAgICAgICAga2V5cz17Y2hhcnQua2V5c31cbiAgICAgICAgICB2aXNpYmxlWUtleXM9e2NoYXJ0LmJhcnMubWFwKGxlZ2VuZEl0ZW0gPT4gbGVnZW5kSXRlbS55S2V5KX1cbiAgICAgICAgICB5S2V5cz17Y2hhcnQueS5rZXlzfVxuICAgICAgICAgIGxlZ2VuZEl0ZW1zPXtjaGFydC5iYXJzfVxuICAgICAgICAgIHNob3dSb3VuZGVkVG90YWw9e29wdGlvbnMuc2hvd1JvdW5kZWRUb3RhbH1cbiAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcz17Y2hhcnQuY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXN9XG4gICAgICAgICAgdGhlbWU9e3RoZW1lQ1NTLnBvcG92ZXJNZW51c31cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9GcmFnbWVudD5cbiAgKTtcbn07XG5cbmNvbnN0IEJhciA9IChwcm9wczoge1xuICBvbkNsaWNrOiAoZTogUmVhY3QuTW91c2VFdmVudDxTVkdSZWN0RWxlbWVudCwgTW91c2VFdmVudD4pID0+IHZvaWQ7XG4gIGZpbGw/OiBzdHJpbmc7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAga2V5OiBzdHJpbmc7XG4gIGVuYWJsZUhvdmVyPzogYm9vbGVhbjtcbn0pID0+IHtcbiAgY29uc3QgW2ZpbGxDb2xvciwgc2V0RmlsbENvbG9yXSA9IHVzZVN0YXRlKHByb3BzLmZpbGwpO1xuICByZXR1cm4gKFxuICAgIDxyZWN0XG4gICAgICBrZXk9e3Byb3BzLmtleX1cbiAgICAgIHg9e3Byb3BzLnh9XG4gICAgICB5PXtwcm9wcy55fVxuICAgICAgd2lkdGg9e3Byb3BzLndpZHRofVxuICAgICAgaGVpZ2h0PXtwcm9wcy5oZWlnaHR9XG4gICAgICBmaWxsPXtmaWxsQ29sb3J9XG4gICAgICByeD17QkFSX1JBRElVU31cbiAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICBvbk1vdXNlRW50ZXI9eygpID0+IHByb3BzLmVuYWJsZUhvdmVyICYmIHNldEZpbGxDb2xvcihsaWdodGVuQ29sb3IocHJvcHMuZmlsbCwgMC44KSl9XG4gICAgICBvbk1vdXNlTGVhdmU9eygpID0+IHByb3BzLmVuYWJsZUhvdmVyICYmIHNldEZpbGxDb2xvcihwcm9wcy5maWxsKX1cbiAgICAgIGNsYXNzTmFtZT17cHJvcHMuZW5hYmxlSG92ZXIgPyBjc3MoeyBjdXJzb3I6ICdwb2ludGVyJyB9KSA6ICcnfVxuICAgIC8+XG4gICk7XG59O1xuIl19 */",
|
|
41971
|
-
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$
|
|
41961
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhckNoYXJ0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1WXFDIiwiZmlsZSI6IkJhckNoYXJ0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhckNoYXJ0UmVwcmVzZW50YXRpb24gfSBmcm9tICdzaGFyZWQtbG9naWMvc3JjL0JhckNoYXJ0VjIvdHlwZXMnO1xuaW1wb3J0IHsgQ2hhcnRUaGVtZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSAnQHZpc3gvZ3JvdXAnO1xuaW1wb3J0IHsgZ2V0Q2hhcnRUaGVtZUNTUywgZ2V0VG9vbHRpcERhdGEgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBGcmFnbWVudCwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJy4uL1Rvb2x0aXAnO1xuaW1wb3J0IHsgdXNlVG9vbHRpcCB9IGZyb20gJ0B2aXN4L3Rvb2x0aXAnO1xuaW1wb3J0IHsgTGVnZW5kIH0gZnJvbSAnLi4vTGVnZW5kJztcbmltcG9ydCB7IEJhckdyb3VwLCBCYXJTdGFjaywgTGluZSB9IGZyb20gJ0B2aXN4L3NoYXBlJztcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9GaWVsZC90eXBlcyc7XG5pbXBvcnQgeyBzY2FsZUxpbmVhciwgc2NhbGVCYW5kIH0gZnJvbSAnQHZpc3gvc2NhbGUnO1xuaW1wb3J0IHsgZ2V0QmFyRmlsbCB9IGZyb20gJy4vZ2V0QmFyRmlsbCc7XG5pbXBvcnQgeyBidWlsZE1hcmdpbiB9IGZyb20gJy4uLy4uL3V0aWxzL2J1aWxkTWFyZ2luJztcbmltcG9ydCB7IENoYXJ0T25WaWV3Q2xpY2ssIERhdGFJdGVtLCBUaWNrIH0gZnJvbSAnc2hhcmVkLWxvZ2ljL3NyYy9DaGFydHNWMi90eXBlcyc7XG5pbXBvcnQgeyBsaWdodGVuQ29sb3IgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29sb3IuZnVuY3Rpb25zJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBCYXJHcm91cEJhciwgQmFyR3JvdXAgYXMgQmFyR3JvdXBUeXBlIH0gZnJvbSAnQHZpc3gvc2hhcGUvbGliL3R5cGVzJztcbmltcG9ydCB7IHVzZUZsYXR0ZW5lZERhdGEgfSBmcm9tICcuLi9ob29rcy91c2VGbGF0dGVuZWREYXRhJztcbmltcG9ydCBHb2FsTGluZXMgZnJvbSAnLi4vR29hbExpbmUvR29hbExpbmVzJztcbmltcG9ydCB7IEF4aXNCb3R0b20gfSBmcm9tICcuLi9BeGlzL0F4aXNCb3R0b20nO1xuaW1wb3J0IHsgQXhpc0xlZnQgfSBmcm9tICcuLi9BeGlzL0F4aXNMZWZ0JztcbmltcG9ydCB7IEdyaWRSb3dzIH0gZnJvbSAnLi4vR3JpZFJvd3MvR3JpZFJvd3MnO1xuaW1wb3J0IHsgQ2hhcnRXcmFwcGVyIH0gZnJvbSAnLi4vQ2hhcnRXcmFwcGVyL0NoYXJ0V3JhcHBlcic7XG5cbi8vIE5lZWQgdG8gbG9vayBhdCB1cGRhdGluZyBCYXJDaGFydCB0byB1c2UgdGhpcyB0eXBlIG1ldGhvZCBvZiByZW5kZXJpbmcgLSBodHRwczovL2NvZGVzYW5kYm94LmlvL3Avc2FuZGJveC92aXN4LWJhci1jaGFydC1qOXNtcGo/ZmlsZT0lMkZFeGFtcGxlLnRzeFxuLy8gQ3VycmVudGx5IGl0J3MgdXNpbmcgU3RhY2tlZCBDaGFydCB3aGljaCBpc24ndCB0ZWNobmljYWxseSBjb3JyZWN0XG5cbmV4cG9ydCB0eXBlIEJhckNoYXJ0UHJvcHMgPSB7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICB0aGVtZT86IENoYXJ0VGhlbWU7XG4gIGNoYXJ0OiBCYXJDaGFydFJlcHJlc2VudGF0aW9uO1xuICBvcHRpb25zOiB7XG4gICAgc3RhY2tlZDogYm9vbGVhbjtcbiAgICBzaG93Um91bmRlZFRvdGFsOiBib29sZWFuO1xuICAgIHNob3dMZWdlbmQ6IGJvb2xlYW47XG4gICAgcmVtb3ZlU3Ryb2tlOiBib29sZWFuO1xuICAgIGF4aXM6IHtcbiAgICAgIHNob3dYQXhpc0xhYmVsczogYm9vbGVhbjtcbiAgICAgIHNob3dZQXhpc0xhYmVsczogYm9vbGVhbjtcbiAgICB9O1xuICB9O1xuICBvbkNsaWNrOiAocGFyYW1zOiBDaGFydE9uVmlld0NsaWNrKSA9PiB2b2lkO1xuICBlbmFibGVIb3Zlcj86IGJvb2xlYW47XG59O1xuXG5jb25zdCBCQVJfUkFESVVTID0gMjtcblxuY29uc3QgUEFERElORyA9IHtcbiAgcGFkZGluZ091dGVyOiAwLjA1LFxuICBwYWRkaW5nSW5uZXI6IDAuMyxcbn07XG5cbmV4cG9ydCBjb25zdCBCYXJDaGFydCA9ICh7IGNoYXJ0LCB3aWR0aCwgaGVpZ2h0LCBvcHRpb25zLCB0aGVtZSwgb25DbGljaywgZW5hYmxlSG92ZXIgfTogQmFyQ2hhcnRQcm9wcykgPT4ge1xuICBjb25zdCB7IHRvb2x0aXBPcGVuLCB0b29sdGlwTGVmdCA9IDAsIHRvb2x0aXBUb3AgPSAwLCB0b29sdGlwRGF0YSwgaGlkZVRvb2x0aXAsIHNob3dUb29sdGlwIH0gPSB1c2VUb29sdGlwPHtcbiAgICBba2V5SWQ6IHN0cmluZ106IERhdGFJdGVtO1xuICB9IHwgbnVsbD4oKTtcblxuICBjb25zdCBtYXJnaW4gPSBidWlsZE1hcmdpbihjaGFydC55LnRpY2tzLCBvcHRpb25zLmF4aXMuc2hvd1lBeGlzTGFiZWxzLCBjaGFydC55LnRpdGxlICE9IG51bGwsIGNoYXJ0LngudGl0bGUgIT0gbnVsbCk7XG5cbiAgLy8gY29uc3QgW3Zpc2libGVZS2V5cywgc2V0VmlzaWJsZVlLZXlzXSA9IHVzZVN0YXRlKGNoYXJ0LmJhcnMubWFwKChsZWdlbmRJdGVtKSA9PiBsZWdlbmRJdGVtLnlLZXkpKTtcblxuICBjb25zdCBpbm5lcldpZHRoID0gd2lkdGggLSBtYXJnaW4ubGVmdCAtIG1hcmdpbi5yaWdodDtcbiAgY29uc3QgaW5uZXJIZWlnaHQgPSBoZWlnaHQgLSBtYXJnaW4udG9wIC0gbWFyZ2luLmJvdHRvbSAtIChvcHRpb25zLnNob3dMZWdlbmQgPyA0MCA6IDApO1xuICBjb25zdCB4S2V5ID0gY2hhcnQueC5rZXk7XG4gIGNvbnN0IHhTY2FsZUtleSA9IGNoYXJ0Lnguc2NhbGUua2V5O1xuICBjb25zdCB5U2NhbGVLZXlzID0gY2hhcnQueS5rZXlzO1xuICBjb25zdCB4U2NhbGVEYXRhVHlwZTogRGF0YVR5cGUgPSBjaGFydC54LnNjYWxlLmRhdGFUeXBlO1xuXG4gIGNvbnN0IHhTY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICh4U2NhbGVEYXRhVHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8c3RyaW5nPih7XG4gICAgICAgIHJhbmdlOiBbMCwgaW5uZXJXaWR0aF0sXG4gICAgICAgIGRvbWFpbjogeFNjYWxlS2V5XG4gICAgICAgICAgPyBbLi4uY2hhcnQuZGF0YS5tYXAoZCA9PiAoZFt4U2NhbGVLZXldICYmIGRbeFNjYWxlS2V5XS52YWx1ZSAhPT0gbnVsbCA/IFN0cmluZyhkW3hTY2FsZUtleV0udmFsdWUpIDogJycpKV1cbiAgICAgICAgICA6IFtdLFxuICAgICAgICAuLi5QQURESU5HLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnZGF0ZV90aW1lJyAmJiB4U2NhbGVLZXkpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8RGF0ZT4oe1xuICAgICAgICByYW5nZTogWzAsIGlubmVyV2lkdGhdLFxuICAgICAgICBkb21haW46IGNoYXJ0LmRhdGEubWFwKGQgPT4gbmV3IERhdGUoZFt4U2NhbGVLZXldLnZhbHVlIGFzIHN0cmluZykpLFxuICAgICAgICAuLi5QQURESU5HLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnbnVtYmVyJyAmJiB4U2NhbGVLZXkpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8bnVtYmVyPih7XG4gICAgICAgIHJhbmdlOiBbMCwgaW5uZXJXaWR0aF0sXG4gICAgICAgIGRvbWFpbjogY2hhcnQuZGF0YS5tYXAoZCA9PiAoZFt4U2NhbGVLZXldICYmIGRbeFNjYWxlS2V5XS52YWx1ZSAhPT0gbnVsbCA/IE51bWJlcihkW3hTY2FsZUtleV0udmFsdWUpIDogMCkpLFxuICAgICAgICAuLi5QQURESU5HLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH0sIFtpbm5lcldpZHRoLCBjaGFydC54LCBjaGFydC5kYXRhXSk7XG5cbiAgY29uc3QgeVNjYWxlID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgc2NhbGVMaW5lYXI8bnVtYmVyPih7XG4gICAgICAgIHJhbmdlOiBbaW5uZXJIZWlnaHQsIDBdLFxuICAgICAgICBkb21haW46XG4gICAgICAgICAgY2hhcnQueS5zY2FsZS5vcmRlcmluZyA9PT0gJ2FzYydcbiAgICAgICAgICAgID8gW2NoYXJ0Lnkuc2NhbGUubWluIGFzIG51bWJlciwgY2hhcnQueS5zY2FsZS5tYXggYXMgbnVtYmVyXVxuICAgICAgICAgICAgOiBbY2hhcnQueS5zY2FsZS5tYXggYXMgbnVtYmVyLCBjaGFydC55LnNjYWxlLm1pbiBhcyBudW1iZXJdLFxuICAgICAgICBuaWNlOiB0cnVlLFxuICAgICAgICByb3VuZDogdHJ1ZSxcbiAgICAgIH0pLFxuICAgIFtpbm5lckhlaWdodCwgY2hhcnQueV1cbiAgKTtcblxuICBjb25zdCBpbm5lclhTY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghb3B0aW9ucy5zdGFja2VkICYmIHhTY2FsZSAmJiAnYmFuZHdpZHRoJyBpbiB4U2NhbGUpIHtcbiAgICAgIHJldHVybiBzY2FsZUJhbmQ8c3RyaW5nPih7XG4gICAgICAgIHJhbmdlOiBbMCwgeFNjYWxlPy5iYW5kd2lkdGgoKV0sXG4gICAgICAgIGRvbWFpbjogeVNjYWxlS2V5cyxcbiAgICAgICAgcGFkZGluZzogMC4xLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSwgW3hTY2FsZSwgeVNjYWxlS2V5cywgb3B0aW9ucy5zdGFja2VkLCB4U2NhbGVEYXRhVHlwZV0pO1xuXG4gIGNvbnN0IGRhdGFGbGF0dGVuZWQgPSB1c2VGbGF0dGVuZWREYXRhPEJhckNoYXJ0UmVwcmVzZW50YXRpb24+KHhTY2FsZUtleSwgeFNjYWxlRGF0YVR5cGUsIGNoYXJ0KTtcblxuICBjb25zdCBoYW5kbGVNb3VzZU1vdmUgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8U1ZHRWxlbWVudD4pID0+IHtcbiAgICAgIGlmICgheEtleSB8fCAheFNjYWxlS2V5IHx8IHhTY2FsZSA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICBjb25zdCB0b29sdGlwRGF0YSA9IGdldFRvb2x0aXBEYXRhKHtcbiAgICAgICAgZGF0YTogY2hhcnQuZGF0YSxcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIG1hcmdpbixcbiAgICAgICAgeFNjYWxlS2V5LFxuICAgICAgICB4U2NhbGVEYXRhVHlwZSxcbiAgICAgICAgeE9yZGVyaW5nOiBjaGFydC54LnNjYWxlLm9yZGVyaW5nLFxuICAgICAgICB4U2NhbGUsXG4gICAgICAgIGNoYXJ0VHlwZTogJ2JhcicsXG4gICAgICB9KTtcblxuICAgICAgc2hvd1Rvb2x0aXAoe1xuICAgICAgICB0b29sdGlwTGVmdDogdG9vbHRpcERhdGE/LnRvb2x0aXBMZWZ0LFxuICAgICAgICB0b29sdGlwVG9wOiB0b29sdGlwRGF0YT8udG9vbHRpcFRvcCxcbiAgICAgICAgdG9vbHRpcERhdGE6IHRvb2x0aXBEYXRhPy50b29sdGlwRGF0YSxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW3Nob3dUb29sdGlwLCB4U2NhbGUsIG1hcmdpbiwgeEtleSwgeFNjYWxlS2V5LCB4U2NhbGVEYXRhVHlwZSwgY2hhcnQueC5zY2FsZS5vcmRlcmluZywgY2hhcnQuZGF0YV1cbiAgKTtcblxuICBjb25zdCBoYW5kbGVNb3VzZUxlYXZlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGhpZGVUb29sdGlwKCk7XG4gIH0sIFtoaWRlVG9vbHRpcF0pO1xuXG4gIGNvbnN0IGhhbmRsZU9uQmFyQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8U1ZHUmVjdEVsZW1lbnQsIE1vdXNlRXZlbnQ+LCBiYXJHcm91cDogQmFyR3JvdXBUeXBlPHN0cmluZz4sIGJhcjogQmFyR3JvdXBCYXI8c3RyaW5nPikgPT4ge1xuICAgICAgb25DbGljayh7XG4gICAgICAgIGNsaWNrZWRWYWx1ZToge1xuICAgICAgICAgIGluZGV4OiBiYXJHcm91cC5pbmRleCxcbiAgICAgICAgICB5OiB7XG4gICAgICAgICAgICBrZXk6IGJhci5rZXksXG4gICAgICAgICAgICB2YWx1ZTogYmFyLnZhbHVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeDoge1xuICAgICAgICAgICAgLi4uY2hhcnQueC50aWNrc1tiYXJHcm91cC5pbmRleF0sXG4gICAgICAgICAgICB2YWx1ZTogY2hhcnQuZGF0YVtiYXJHcm91cC5pbmRleF1beEtleV0udmFsdWUgPz8gJycsXG4gICAgICAgICAgICBrZXk6IHhLZXksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xpY2tFdmVudDogZXZlbnQsXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtvbkNsaWNrLCBjaGFydC5kYXRhLCB4S2V5XVxuICApO1xuXG4gIGNvbnN0IHRoZW1lQ1NTID0gdXNlTWVtbygoKSA9PiBnZXRDaGFydFRoZW1lQ1NTKHRoZW1lKSwgW3RoZW1lXSk7XG5cbiAgY29uc3QgeVRpY2tWYWx1ZXMgPSBjaGFydC55LnRpY2tzLm1hcCh0aWNrID0+IE51bWJlcih0aWNrLnZhbHVlKSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RnJhZ21lbnQ+XG4gICAgICB7Lyogd2lkdGgvaGVpZ2h0IDEwMCUgcmVxdWlyZWQgb3IgdXNlUGFyZW50U2l6ZSgpIGNvbnRpbnVvdXNseSBzY2FsZXMgYXMgcGFyZW50IGVsZW1lbnQgaGFzIG5vIHNwZWNpZmllZCBoZWlnaHQgKi99XG4gICAgICA8Q2hhcnRXcmFwcGVyXG4gICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgaGVpZ2h0PXtoZWlnaHR9XG4gICAgICAgIG9uTW91c2VNb3ZlPXtoYW5kbGVNb3VzZU1vdmV9XG4gICAgICAgIG9uTW91c2VMZWF2ZT17aGFuZGxlTW91c2VMZWF2ZX1cbiAgICAgICAgc2hvd0xlZ2VuZD17b3B0aW9ucy5zaG93TGVnZW5kfVxuICAgICAgPlxuICAgICAgICA8R3JvdXAgbGVmdD17bWFyZ2luLmxlZnR9IHRvcD17bWFyZ2luLnRvcH0+XG4gICAgICAgICAgPEdyaWRSb3dzXG4gICAgICAgICAgICB0aWNrcz17eVRpY2tWYWx1ZXN9XG4gICAgICAgICAgICB5U2NhbGU9e3lTY2FsZX1cbiAgICAgICAgICAgIHdpZHRoPXtpbm5lcldpZHRofVxuICAgICAgICAgICAgaGVpZ2h0PXtpbm5lckhlaWdodH1cbiAgICAgICAgICAgIHJlbW92ZVN0cm9rZT17b3B0aW9ucy5yZW1vdmVTdHJva2V9XG4gICAgICAgICAgICB0aGVtZUNTUz17dGhlbWVDU1N9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QXhpc0JvdHRvbVxuICAgICAgICAgICAgeD17Y2hhcnQueH1cbiAgICAgICAgICAgIG1hcmdpbj17bWFyZ2lufVxuICAgICAgICAgICAgdGhlbWVDU1M9e3RoZW1lQ1NTfVxuICAgICAgICAgICAgc2hvdz17b3B0aW9ucy5heGlzLnNob3dYQXhpc0xhYmVsc31cbiAgICAgICAgICAgIHJlbW92ZVN0cm9rZT17b3B0aW9ucy5yZW1vdmVTdHJva2V9XG4gICAgICAgICAgICB4U2NhbGVEYXRhVHlwZT17eFNjYWxlRGF0YVR5cGV9XG4gICAgICAgICAgICB4U2NhbGU9e3hTY2FsZX1cbiAgICAgICAgICAgIGhlaWdodD17aW5uZXJIZWlnaHR9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QXhpc0xlZnRcbiAgICAgICAgICAgIHNob3c9e29wdGlvbnMuYXhpcy5zaG93WUF4aXNMYWJlbHN9XG4gICAgICAgICAgICB5PXtjaGFydC55fVxuICAgICAgICAgICAgbWFyZ2luPXttYXJnaW59XG4gICAgICAgICAgICB0aGVtZUNTUz17dGhlbWVDU1N9XG4gICAgICAgICAgICB5U2NhbGU9e3lTY2FsZX1cbiAgICAgICAgICAgIHRpY2tzPXt5VGlja1ZhbHVlc31cbiAgICAgICAgICAgIHN0cm9rZT17dGhlbWU/LmF4aXM/LnN0cm9rZX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxHcm91cD5cbiAgICAgICAgICAgIHshb3B0aW9ucy5zdGFja2VkICYmIChcbiAgICAgICAgICAgICAgPEJhckdyb3VwXG4gICAgICAgICAgICAgICAgZGF0YT17ZGF0YUZsYXR0ZW5lZH1cbiAgICAgICAgICAgICAgICBrZXlzPXt5U2NhbGVLZXlzfVxuICAgICAgICAgICAgICAgIGhlaWdodD17aW5uZXJIZWlnaHR9XG4gICAgICAgICAgICAgICAgeDA9e2QgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgY29uc3QgeFZhbHVlID0gZFt4U2NhbGVLZXldO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoeFNjYWxlRGF0YVR5cGUgPT09ICdzdHJpbmcnKSByZXR1cm4geFZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICBjb25zdCB4VmFsdWVBZGp1c3RlZCA9XG4gICAgICAgICAgICAgICAgICAgIHhTY2FsZURhdGFUeXBlID09PSAnZGF0ZV90aW1lJ1xuICAgICAgICAgICAgICAgICAgICAgID8gbmV3IERhdGUoeFZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgIDogeFNjYWxlRGF0YVR5cGUgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgICAgICAgPyBOdW1iZXIoeFZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgIDogU3RyaW5nKHhWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgICByZXR1cm4geFZhbHVlQWRqdXN0ZWQ7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgeDBTY2FsZT17eFNjYWxlfVxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICB4MVNjYWxlPXtpbm5lclhTY2FsZX1cbiAgICAgICAgICAgICAgICB5U2NhbGU9e3lTY2FsZX1cbiAgICAgICAgICAgICAgICBjb2xvcj17KCkgPT4gJyd9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7YmFyR3JvdXBzID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBiYXJHcm91cHMubWFwKGJhckdyb3VwID0+IChcbiAgICAgICAgICAgICAgICAgICAgPEdyb3VwIGtleT17YGJhci1ncm91cC0ke2Jhckdyb3VwLmluZGV4fS0ke2Jhckdyb3VwLngwfWB9IGxlZnQ9e2Jhckdyb3VwLngwfT5cbiAgICAgICAgICAgICAgICAgICAgICB7YmFyR3JvdXAuYmFycy5tYXAoYmFyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiYXIudmFsdWUgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJhci5oZWlnaHQgPCAwIHx8IGJhci53aWR0aCA8IDApIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YGJhci1ncm91cC1iYXItJHtiYXJHcm91cC5pbmRleH0tJHtiYXIuaW5kZXh9LSR7YmFyLnZhbHVlfS0ke2Jhci5rZXl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4PXtiYXIueH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5PXtiYXIueX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17YmFyLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17YmFyLmhlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPXtnZXRCYXJGaWxsKGNoYXJ0LmJhcnMsIGNoYXJ0LmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzLCBiYXIua2V5LCBiYXIudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gaGFuZGxlT25CYXJDbGljayhlLCBiYXJHcm91cCwgYmFyKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVIb3Zlcj17ZW5hYmxlSG92ZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICA8L0dyb3VwPlxuICAgICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9CYXJHcm91cD5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHsvKiBIb3cgdG8gd2UgZ2V0ICdzY2FsZVZhbHVlJyBoZXJlPyBXaWxsIHdlIG5lZWQgdG8gc3RhcnQgc3RvcmluZyBzY2FsZUtleSBhcyB3ZWxsIGFzIHhLZXk/ICovfVxuICAgICAgICAgICAge29wdGlvbnMuc3RhY2tlZCAmJiAoXG4gICAgICAgICAgICAgIDxCYXJTdGFja1xuICAgICAgICAgICAgICAgIHg9e2QgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgY29uc3QgeFZhbHVlID0gZFt4U2NhbGVLZXldO1xuICAgICAgICAgICAgICAgICAgaWYgKHhTY2FsZURhdGFUeXBlID09PSAnc3RyaW5nJykgcmV0dXJuIHhWYWx1ZTtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgeFZhbHVlQWRqdXN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICB4U2NhbGVEYXRhVHlwZSA9PT0gJ2RhdGVfdGltZSdcbiAgICAgICAgICAgICAgICAgICAgICA/IG5ldyBEYXRlKHhWYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICA6IHhTY2FsZURhdGFUeXBlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgICAgICAgID8gTnVtYmVyKHhWYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICA6IFN0cmluZyh4VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHhWYWx1ZUFkanVzdGVkO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHhTY2FsZT17eFNjYWxlfVxuICAgICAgICAgICAgICAgIHlTY2FsZT17eVNjYWxlfVxuICAgICAgICAgICAgICAgIGRhdGE9e2RhdGFGbGF0dGVuZWR9XG4gICAgICAgICAgICAgICAga2V5cz17Y2hhcnQueS5rZXlzfVxuICAgICAgICAgICAgICAgIGNvbG9yPXsoKSA9PiAnJ31cbiAgICAgICAgICAgICAgICBoZWlnaHQ9e2lubmVySGVpZ2h0fVxuICAgICAgICAgICAgICAgIHdpZHRoPXtpbm5lcldpZHRofVxuICAgICAgICAgICAgICAgIG9mZnNldD1cIm5vbmVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2JhclN0YWNrcyA9PlxuICAgICAgICAgICAgICAgICAgYmFyU3RhY2tzLm1hcChiYXJTdGFjayA9PlxuICAgICAgICAgICAgICAgICAgICBiYXJTdGFjay5iYXJzLm1hcChiYXIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChiYXIuaGVpZ2h0IDwgMykgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgQkFSX1BBRERJTkcgPSAxLjU7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YGJhci1zdGFjay0ke2JhclN0YWNrLmluZGV4fS0ke2Jhci5pbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB4PXtiYXIueH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgeT17YmFyLnl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXtiYXIud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17YmFyLmhlaWdodCAtIEJBUl9QQURESU5HfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPXtnZXRCYXJGaWxsKGNoYXJ0LmJhcnMsIGNoYXJ0LmNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzLCBiYXIua2V5LCBiYXIuYmFyLmRhdGEpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICByeD17QkFSX1JBRElVU31cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvQmFyU3RhY2s+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvR3JvdXA+XG4gICAgICAgIDwvR3JvdXA+XG4gICAgICAgIHsvKiAtLS0tLSBUT09MVElQIENST1NTSEFJUiAtLS0tLSAqL31cbiAgICAgICAge3Rvb2x0aXBEYXRhICYmIChcbiAgICAgICAgICA8Zz5cbiAgICAgICAgICAgIDxMaW5lXG4gICAgICAgICAgICAgIGZyb209e3sgeDogdG9vbHRpcExlZnQsIHk6IG1hcmdpbi50b3AgfX1cbiAgICAgICAgICAgICAgdG89e3sgeDogdG9vbHRpcExlZnQsIHk6IGlubmVySGVpZ2h0ICsgbWFyZ2luLnRvcCB9fVxuICAgICAgICAgICAgICBzdHJva2U9eycjYWFhJ31cbiAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezJ9XG4gICAgICAgICAgICAgIHBvaW50ZXJFdmVudHM9XCJub25lXCJcbiAgICAgICAgICAgICAgb3BhY2l0eT17MC44fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2c+XG4gICAgICAgICl9XG4gICAgICAgIHsvKiAtLS0tLSBHT0FMIExJTkVTIC0tLS0tLSAqL31cbiAgICAgICAgPEdvYWxMaW5lcyBnb2FsTGluZXM9e2NoYXJ0LmdvYWxMaW5lc30geT17ZCA9PiB5U2NhbGUoZCl9IG1hcmdpbj17bWFyZ2lufSB3aWR0aD17aW5uZXJXaWR0aH0gLz5cbiAgICAgIDwvQ2hhcnRXcmFwcGVyPlxuICAgICAgey8qIC0tLS0tIExFR0VORCAtLS0tLSAqL31cbiAgICAgIHtvcHRpb25zLnNob3dMZWdlbmQgJiYgKFxuICAgICAgICA8TGVnZW5kXG4gICAgICAgICAgbGVnZW5kSXRlbXM9e2NoYXJ0LmJhcnN9XG4gICAgICAgICAgdmlzaWJsZVlLZXlzPXtjaGFydC5iYXJzLm1hcChsZWdlbmRJdGVtID0+IGxlZ2VuZEl0ZW0ueUtleSl9XG4gICAgICAgICAgc2V0VmlzaWJsZVlLZXlzPXsoKSA9PiB7fX1cbiAgICAgICAgICBrZXlzPXtjaGFydC5rZXlzfVxuICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0dGluZ1J1bGVzPXtjaGFydC5jb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlc31cbiAgICAgICAgICBtYXJnaW5MZWZ0PXttYXJnaW4ubGVmdCAtIG1hcmdpbi5sZWZ0VGl0bGVPZmZzZXR9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAgey8qIC0tLS0tIFRPT0xUSVAgLS0tLS0gKi99XG4gICAgICB7dG9vbHRpcE9wZW4gJiYgdG9vbHRpcERhdGEgJiYgeEtleSAmJiAoXG4gICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgdG9vbHRpcERhdGE9e3Rvb2x0aXBEYXRhfVxuICAgICAgICAgIHRvb2x0aXBMZWZ0PXt0b29sdGlwTGVmdH1cbiAgICAgICAgICB0b29sdGlwVG9wPXt0b29sdGlwVG9wfVxuICAgICAgICAgIHhLZXk9e3hLZXl9XG4gICAgICAgICAga2V5cz17Y2hhcnQua2V5c31cbiAgICAgICAgICB2aXNpYmxlWUtleXM9e2NoYXJ0LmJhcnMubWFwKGxlZ2VuZEl0ZW0gPT4gbGVnZW5kSXRlbS55S2V5KX1cbiAgICAgICAgICB5S2V5cz17Y2hhcnQueS5rZXlzfVxuICAgICAgICAgIGxlZ2VuZEl0ZW1zPXtjaGFydC5iYXJzfVxuICAgICAgICAgIHNob3dSb3VuZGVkVG90YWw9e29wdGlvbnMuc2hvd1JvdW5kZWRUb3RhbH1cbiAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHRpbmdSdWxlcz17Y2hhcnQuY29uZGl0aW9uYWxGb3JtYXR0aW5nUnVsZXN9XG4gICAgICAgICAgdGhlbWU9e3RoZW1lQ1NTLnBvcG92ZXJNZW51c31cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9GcmFnbWVudD5cbiAgKTtcbn07XG5cbmNvbnN0IEJhciA9IChwcm9wczoge1xuICBvbkNsaWNrOiAoZTogUmVhY3QuTW91c2VFdmVudDxTVkdSZWN0RWxlbWVudCwgTW91c2VFdmVudD4pID0+IHZvaWQ7XG4gIGZpbGw/OiBzdHJpbmc7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAga2V5OiBzdHJpbmc7XG4gIGVuYWJsZUhvdmVyPzogYm9vbGVhbjtcbn0pID0+IHtcbiAgY29uc3QgW2ZpbGxDb2xvciwgc2V0RmlsbENvbG9yXSA9IHVzZVN0YXRlKHByb3BzLmZpbGwpO1xuICByZXR1cm4gKFxuICAgIDxyZWN0XG4gICAgICBrZXk9e3Byb3BzLmtleX1cbiAgICAgIHg9e3Byb3BzLnh9XG4gICAgICB5PXtwcm9wcy55fVxuICAgICAgd2lkdGg9e3Byb3BzLndpZHRofVxuICAgICAgaGVpZ2h0PXtwcm9wcy5oZWlnaHR9XG4gICAgICBmaWxsPXtmaWxsQ29sb3J9XG4gICAgICByeD17QkFSX1JBRElVU31cbiAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xpY2t9XG4gICAgICBvbk1vdXNlRW50ZXI9eygpID0+IHByb3BzLmVuYWJsZUhvdmVyICYmIHNldEZpbGxDb2xvcihsaWdodGVuQ29sb3IocHJvcHMuZmlsbCwgMC44KSl9XG4gICAgICBvbk1vdXNlTGVhdmU9eygpID0+IHByb3BzLmVuYWJsZUhvdmVyICYmIHNldEZpbGxDb2xvcihwcm9wcy5maWxsKX1cbiAgICAgIGNsYXNzTmFtZT17cHJvcHMuZW5hYmxlSG92ZXIgPyBjc3MoeyBjdXJzb3I6ICdwb2ludGVyJyB9KSA6ICcnfVxuICAgIC8+XG4gICk7XG59O1xuIl19 */",
|
|
41962
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$8
|
|
41972
41963
|
}) : ''
|
|
41973
41964
|
}, props.key);
|
|
41974
41965
|
};
|