UNPKG

dygraphs

Version:

dygraphs is a fast, flexible open source JavaScript charting library.

123 lines (122 loc) 16.7 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var DygraphTickers = _interopRequireWildcard(require("./dygraph-tickers")); var _dygraphInteractionModel = _interopRequireDefault(require("./dygraph-interaction-model")); var _dygraphCanvas = _interopRequireDefault(require("./dygraph-canvas")); var utils = _interopRequireWildcard(require("./dygraph-utils")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } // Default attribute values. var DEFAULT_ATTRS = { highlightCircleSize: 3, highlightSeriesOpts: null, highlightSeriesBackgroundAlpha: 0.5, highlightSeriesBackgroundColor: 'rgb(255, 255, 255)', labelsSeparateLines: false, labelsShowZeroValues: true, labelsKMB: false, labelsKMG2: false, showLabelsOnHighlight: true, digitsAfterDecimal: 2, maxNumberWidth: 6, sigFigs: null, strokeWidth: 1.0, strokeBorderWidth: 0, strokeBorderColor: "white", axisTickSize: 3, axisLabelFontSize: 14, rightGap: 5, showRoller: false, xValueParser: undefined, delimiter: ',', sigma: 2.0, errorBars: false, fractions: false, wilsonInterval: true, // only relevant if fractions is true customBars: false, fillGraph: false, fillAlpha: 0.15, connectSeparatedPoints: false, stackedGraph: false, stackedGraphNaNFill: 'all', hideOverlayOnMouseOut: true, resizable: 'no', legend: 'onmouseover', legendFollowOffsetX: 50, legendFollowOffsetY: -50, stepPlot: false, xRangePad: 0, yRangePad: null, drawAxesAtZero: false, // Sizes of the various chart labels. titleHeight: 28, xLabelHeight: 18, yLabelWidth: 18, axisLineColor: "black", axisLineWidth: 0.3, gridLineWidth: 0.3, axisLabelWidth: 50, gridLineColor: "rgb(128,128,128)", interactionModel: _dygraphInteractionModel["default"].defaultModel, animatedZooms: false, // (for now) animateBackgroundFade: true, // Range selector options showRangeSelector: false, rangeSelectorHeight: 40, rangeSelectorPlotStrokeColor: "#808FAB", rangeSelectorPlotFillGradientColor: "white", rangeSelectorPlotFillColor: "#A7B1C4", rangeSelectorBackgroundStrokeColor: "gray", rangeSelectorBackgroundLineWidth: 1, rangeSelectorPlotLineWidth: 1.5, rangeSelectorForegroundStrokeColor: "black", rangeSelectorForegroundLineWidth: 1, rangeSelectorAlpha: 0.6, showInRangeSelector: null, // The ordering here ensures that central lines always appear above any // fill bars/error bars. plotter: [_dygraphCanvas["default"]._fillPlotter, _dygraphCanvas["default"]._errorPlotter, _dygraphCanvas["default"]._linePlotter], plugins: [], // per-axis options axes: { x: { pixelsPerLabel: 70, axisLabelWidth: 60, axisLabelFormatter: utils.dateAxisLabelFormatter, valueFormatter: utils.dateValueFormatter, drawGrid: true, drawAxis: true, independentTicks: true, ticker: DygraphTickers.dateTicker }, y: { axisLabelWidth: 50, pixelsPerLabel: 30, valueFormatter: utils.numberValueFormatter, axisLabelFormatter: utils.numberAxisLabelFormatter, drawGrid: true, drawAxis: true, independentTicks: true, ticker: DygraphTickers.numericTicks }, y2: { axisLabelWidth: 50, pixelsPerLabel: 30, valueFormatter: utils.numberValueFormatter, axisLabelFormatter: utils.numberAxisLabelFormatter, drawAxis: true, // only applies when there are two axes of data. drawGrid: false, independentTicks: false, ticker: DygraphTickers.numericTicks } } }; var _default = exports["default"] = DEFAULT_ATTRS; module.exports = exports.default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIkR5Z3JhcGhUaWNrZXJzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2R5Z3JhcGhJbnRlcmFjdGlvbk1vZGVsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9keWdyYXBoQ2FudmFzIiwidXRpbHMiLCJlIiwiX19lc01vZHVsZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIkRFRkFVTFRfQVRUUlMiLCJoaWdobGlnaHRDaXJjbGVTaXplIiwiaGlnaGxpZ2h0U2VyaWVzT3B0cyIsImhpZ2hsaWdodFNlcmllc0JhY2tncm91bmRBbHBoYSIsImhpZ2hsaWdodFNlcmllc0JhY2tncm91bmRDb2xvciIsImxhYmVsc1NlcGFyYXRlTGluZXMiLCJsYWJlbHNTaG93WmVyb1ZhbHVlcyIsImxhYmVsc0tNQiIsImxhYmVsc0tNRzIiLCJzaG93TGFiZWxzT25IaWdobGlnaHQiLCJkaWdpdHNBZnRlckRlY2ltYWwiLCJtYXhOdW1iZXJXaWR0aCIsInNpZ0ZpZ3MiLCJzdHJva2VXaWR0aCIsInN0cm9rZUJvcmRlcldpZHRoIiwic3Ryb2tlQm9yZGVyQ29sb3IiLCJheGlzVGlja1NpemUiLCJheGlzTGFiZWxGb250U2l6ZSIsInJpZ2h0R2FwIiwic2hvd1JvbGxlciIsInhWYWx1ZVBhcnNlciIsInVuZGVmaW5lZCIsImRlbGltaXRlciIsInNpZ21hIiwiZXJyb3JCYXJzIiwiZnJhY3Rpb25zIiwid2lsc29uSW50ZXJ2YWwiLCJjdXN0b21CYXJzIiwiZmlsbEdyYXBoIiwiZmlsbEFscGhhIiwiY29ubmVjdFNlcGFyYXRlZFBvaW50cyIsInN0YWNrZWRHcmFwaCIsInN0YWNrZWRHcmFwaE5hTkZpbGwiLCJoaWRlT3ZlcmxheU9uTW91c2VPdXQiLCJyZXNpemFibGUiLCJsZWdlbmQiLCJsZWdlbmRGb2xsb3dPZmZzZXRYIiwibGVnZW5kRm9sbG93T2Zmc2V0WSIsInN0ZXBQbG90IiwieFJhbmdlUGFkIiwieVJhbmdlUGFkIiwiZHJhd0F4ZXNBdFplcm8iLCJ0aXRsZUhlaWdodCIsInhMYWJlbEhlaWdodCIsInlMYWJlbFdpZHRoIiwiYXhpc0xpbmVDb2xvciIsImF4aXNMaW5lV2lkdGgiLCJncmlkTGluZVdpZHRoIiwiYXhpc0xhYmVsV2lkdGgiLCJncmlkTGluZUNvbG9yIiwiaW50ZXJhY3Rpb25Nb2RlbCIsIkR5Z3JhcGhJbnRlcmFjdGlvbiIsImRlZmF1bHRNb2RlbCIsImFuaW1hdGVkWm9vbXMiLCJhbmltYXRlQmFja2dyb3VuZEZhZGUiLCJzaG93UmFuZ2VTZWxlY3RvciIsInJhbmdlU2VsZWN0b3JIZWlnaHQiLCJyYW5nZVNlbGVjdG9yUGxvdFN0cm9rZUNvbG9yIiwicmFuZ2VTZWxlY3RvclBsb3RGaWxsR3JhZGllbnRDb2xvciIsInJhbmdlU2VsZWN0b3JQbG90RmlsbENvbG9yIiwicmFuZ2VTZWxlY3RvckJhY2tncm91bmRTdHJva2VDb2xvciIsInJhbmdlU2VsZWN0b3JCYWNrZ3JvdW5kTGluZVdpZHRoIiwicmFuZ2VTZWxlY3RvclBsb3RMaW5lV2lkdGgiLCJyYW5nZVNlbGVjdG9yRm9yZWdyb3VuZFN0cm9rZUNvbG9yIiwicmFuZ2VTZWxlY3RvckZvcmVncm91bmRMaW5lV2lkdGgiLCJyYW5nZVNlbGVjdG9yQWxwaGEiLCJzaG93SW5SYW5nZVNlbGVjdG9yIiwicGxvdHRlciIsIkR5Z3JhcGhDYW52YXNSZW5kZXJlciIsIl9maWxsUGxvdHRlciIsIl9lcnJvclBsb3R0ZXIiLCJfbGluZVBsb3R0ZXIiLCJwbHVnaW5zIiwiYXhlcyIsIngiLCJwaXhlbHNQZXJMYWJlbCIsImF4aXNMYWJlbEZvcm1hdHRlciIsImRhdGVBeGlzTGFiZWxGb3JtYXR0ZXIiLCJ2YWx1ZUZvcm1hdHRlciIsImRhdGVWYWx1ZUZvcm1hdHRlciIsImRyYXdHcmlkIiwiZHJhd0F4aXMiLCJpbmRlcGVuZGVudFRpY2tzIiwidGlja2VyIiwiZGF0ZVRpY2tlciIsInkiLCJudW1iZXJWYWx1ZUZvcm1hdHRlciIsIm51bWJlckF4aXNMYWJlbEZvcm1hdHRlciIsIm51bWVyaWNUaWNrcyIsInkyIiwiX2RlZmF1bHQiLCJtb2R1bGUiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2R5Z3JhcGgtZGVmYXVsdC1hdHRycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCAqIGFzIER5Z3JhcGhUaWNrZXJzIGZyb20gJy4vZHlncmFwaC10aWNrZXJzJztcbmltcG9ydCBEeWdyYXBoSW50ZXJhY3Rpb24gZnJvbSAnLi9keWdyYXBoLWludGVyYWN0aW9uLW1vZGVsJztcbmltcG9ydCBEeWdyYXBoQ2FudmFzUmVuZGVyZXIgZnJvbSAnLi9keWdyYXBoLWNhbnZhcyc7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuL2R5Z3JhcGgtdXRpbHMnO1xuXG4vLyBEZWZhdWx0IGF0dHJpYnV0ZSB2YWx1ZXMuXG52YXIgREVGQVVMVF9BVFRSUyA9IHtcbiAgaGlnaGxpZ2h0Q2lyY2xlU2l6ZTogMyxcbiAgaGlnaGxpZ2h0U2VyaWVzT3B0czogbnVsbCxcbiAgaGlnaGxpZ2h0U2VyaWVzQmFja2dyb3VuZEFscGhhOiAwLjUsXG4gIGhpZ2hsaWdodFNlcmllc0JhY2tncm91bmRDb2xvcjogJ3JnYigyNTUsIDI1NSwgMjU1KScsXG5cbiAgbGFiZWxzU2VwYXJhdGVMaW5lczogZmFsc2UsXG4gIGxhYmVsc1Nob3daZXJvVmFsdWVzOiB0cnVlLFxuICBsYWJlbHNLTUI6IGZhbHNlLFxuICBsYWJlbHNLTUcyOiBmYWxzZSxcbiAgc2hvd0xhYmVsc09uSGlnaGxpZ2h0OiB0cnVlLFxuXG4gIGRpZ2l0c0FmdGVyRGVjaW1hbDogMixcbiAgbWF4TnVtYmVyV2lkdGg6IDYsXG4gIHNpZ0ZpZ3M6IG51bGwsXG5cbiAgc3Ryb2tlV2lkdGg6IDEuMCxcbiAgc3Ryb2tlQm9yZGVyV2lkdGg6IDAsXG4gIHN0cm9rZUJvcmRlckNvbG9yOiBcIndoaXRlXCIsXG5cbiAgYXhpc1RpY2tTaXplOiAzLFxuICBheGlzTGFiZWxGb250U2l6ZTogMTQsXG4gIHJpZ2h0R2FwOiA1LFxuXG4gIHNob3dSb2xsZXI6IGZhbHNlLFxuICB4VmFsdWVQYXJzZXI6IHVuZGVmaW5lZCxcblxuICBkZWxpbWl0ZXI6ICcsJyxcblxuICBzaWdtYTogMi4wLFxuICBlcnJvckJhcnM6IGZhbHNlLFxuICBmcmFjdGlvbnM6IGZhbHNlLFxuICB3aWxzb25JbnRlcnZhbDogdHJ1ZSwgIC8vIG9ubHkgcmVsZXZhbnQgaWYgZnJhY3Rpb25zIGlzIHRydWVcbiAgY3VzdG9tQmFyczogZmFsc2UsXG4gIGZpbGxHcmFwaDogZmFsc2UsXG4gIGZpbGxBbHBoYTogMC4xNSxcbiAgY29ubmVjdFNlcGFyYXRlZFBvaW50czogZmFsc2UsXG5cbiAgc3RhY2tlZEdyYXBoOiBmYWxzZSxcbiAgc3RhY2tlZEdyYXBoTmFORmlsbDogJ2FsbCcsXG4gIGhpZGVPdmVybGF5T25Nb3VzZU91dDogdHJ1ZSxcbiAgcmVzaXphYmxlOiAnbm8nLFxuXG4gIGxlZ2VuZDogJ29ubW91c2VvdmVyJyxcbiAgbGVnZW5kRm9sbG93T2Zmc2V0WDogNTAsXG4gIGxlZ2VuZEZvbGxvd09mZnNldFk6IC01MCxcbiAgc3RlcFBsb3Q6IGZhbHNlLFxuICB4UmFuZ2VQYWQ6IDAsXG4gIHlSYW5nZVBhZDogbnVsbCxcbiAgZHJhd0F4ZXNBdFplcm86IGZhbHNlLFxuXG4gIC8vIFNpemVzIG9mIHRoZSB2YXJpb3VzIGNoYXJ0IGxhYmVscy5cbiAgdGl0bGVIZWlnaHQ6IDI4LFxuICB4TGFiZWxIZWlnaHQ6IDE4LFxuICB5TGFiZWxXaWR0aDogMTgsXG5cbiAgYXhpc0xpbmVDb2xvcjogXCJibGFja1wiLFxuICBheGlzTGluZVdpZHRoOiAwLjMsXG4gIGdyaWRMaW5lV2lkdGg6IDAuMyxcbiAgYXhpc0xhYmVsV2lkdGg6IDUwLFxuICBncmlkTGluZUNvbG9yOiBcInJnYigxMjgsMTI4LDEyOClcIixcblxuICBpbnRlcmFjdGlvbk1vZGVsOiBEeWdyYXBoSW50ZXJhY3Rpb24uZGVmYXVsdE1vZGVsLFxuICBhbmltYXRlZFpvb21zOiBmYWxzZSwgIC8vIChmb3Igbm93KVxuICBhbmltYXRlQmFja2dyb3VuZEZhZGU6IHRydWUsXG5cbiAgLy8gUmFuZ2Ugc2VsZWN0b3Igb3B0aW9uc1xuICBzaG93UmFuZ2VTZWxlY3RvcjogZmFsc2UsXG4gIHJhbmdlU2VsZWN0b3JIZWlnaHQ6IDQwLFxuICByYW5nZVNlbGVjdG9yUGxvdFN0cm9rZUNvbG9yOiBcIiM4MDhGQUJcIixcbiAgcmFuZ2VTZWxlY3RvclBsb3RGaWxsR3JhZGllbnRDb2xvcjogXCJ3aGl0ZVwiLFxuICByYW5nZVNlbGVjdG9yUGxvdEZpbGxDb2xvcjogXCIjQTdCMUM0XCIsXG4gIHJhbmdlU2VsZWN0b3JCYWNrZ3JvdW5kU3Ryb2tlQ29sb3I6IFwiZ3JheVwiLFxuICByYW5nZVNlbGVjdG9yQmFja2dyb3VuZExpbmVXaWR0aDogMSxcbiAgcmFuZ2VTZWxlY3RvclBsb3RMaW5lV2lkdGg6MS41LFxuICByYW5nZVNlbGVjdG9yRm9yZWdyb3VuZFN0cm9rZUNvbG9yOiBcImJsYWNrXCIsXG4gIHJhbmdlU2VsZWN0b3JGb3JlZ3JvdW5kTGluZVdpZHRoOiAxLFxuICByYW5nZVNlbGVjdG9yQWxwaGE6IDAuNixcbiAgc2hvd0luUmFuZ2VTZWxlY3RvcjogbnVsbCxcblxuICAvLyBUaGUgb3JkZXJpbmcgaGVyZSBlbnN1cmVzIHRoYXQgY2VudHJhbCBsaW5lcyBhbHdheXMgYXBwZWFyIGFib3ZlIGFueVxuICAvLyBmaWxsIGJhcnMvZXJyb3IgYmFycy5cbiAgcGxvdHRlcjogW1xuICAgIER5Z3JhcGhDYW52YXNSZW5kZXJlci5fZmlsbFBsb3R0ZXIsXG4gICAgRHlncmFwaENhbnZhc1JlbmRlcmVyLl9lcnJvclBsb3R0ZXIsXG4gICAgRHlncmFwaENhbnZhc1JlbmRlcmVyLl9saW5lUGxvdHRlclxuICBdLFxuXG4gIHBsdWdpbnM6IFsgXSxcblxuICAvLyBwZXItYXhpcyBvcHRpb25zXG4gIGF4ZXM6IHtcbiAgICB4OiB7XG4gICAgICBwaXhlbHNQZXJMYWJlbDogNzAsXG4gICAgICBheGlzTGFiZWxXaWR0aDogNjAsXG4gICAgICBheGlzTGFiZWxGb3JtYXR0ZXI6IHV0aWxzLmRhdGVBeGlzTGFiZWxGb3JtYXR0ZXIsXG4gICAgICB2YWx1ZUZvcm1hdHRlcjogdXRpbHMuZGF0ZVZhbHVlRm9ybWF0dGVyLFxuICAgICAgZHJhd0dyaWQ6IHRydWUsXG4gICAgICBkcmF3QXhpczogdHJ1ZSxcbiAgICAgIGluZGVwZW5kZW50VGlja3M6IHRydWUsXG4gICAgICB0aWNrZXI6IER5Z3JhcGhUaWNrZXJzLmRhdGVUaWNrZXJcbiAgICB9LFxuICAgIHk6IHtcbiAgICAgIGF4aXNMYWJlbFdpZHRoOiA1MCxcbiAgICAgIHBpeGVsc1BlckxhYmVsOiAzMCxcbiAgICAgIHZhbHVlRm9ybWF0dGVyOiB1dGlscy5udW1iZXJWYWx1ZUZvcm1hdHRlcixcbiAgICAgIGF4aXNMYWJlbEZvcm1hdHRlcjogdXRpbHMubnVtYmVyQXhpc0xhYmVsRm9ybWF0dGVyLFxuICAgICAgZHJhd0dyaWQ6IHRydWUsXG4gICAgICBkcmF3QXhpczogdHJ1ZSxcbiAgICAgIGluZGVwZW5kZW50VGlja3M6IHRydWUsXG4gICAgICB0aWNrZXI6IER5Z3JhcGhUaWNrZXJzLm51bWVyaWNUaWNrc1xuICAgIH0sXG4gICAgeTI6IHtcbiAgICAgIGF4aXNMYWJlbFdpZHRoOiA1MCxcbiAgICAgIHBpeGVsc1BlckxhYmVsOiAzMCxcbiAgICAgIHZhbHVlRm9ybWF0dGVyOiB1dGlscy5udW1iZXJWYWx1ZUZvcm1hdHRlcixcbiAgICAgIGF4aXNMYWJlbEZvcm1hdHRlcjogdXRpbHMubnVtYmVyQXhpc0xhYmVsRm9ybWF0dGVyLFxuICAgICAgZHJhd0F4aXM6IHRydWUsICAvLyBvbmx5IGFwcGxpZXMgd2hlbiB0aGVyZSBhcmUgdHdvIGF4ZXMgb2YgZGF0YS5cbiAgICAgIGRyYXdHcmlkOiBmYWxzZSxcbiAgICAgIGluZGVwZW5kZW50VGlja3M6IGZhbHNlLFxuICAgICAgdGlja2VyOiBEeWdyYXBoVGlja2Vycy5udW1lcmljVGlja3NcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IERFRkFVTFRfQVRUUlM7XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUNBLE1BQUEsQ0FBQUMsY0FBQSxDQUFBQyxPQUFBO0VBQUFDLEtBQUE7QUFBQTtBQUFBRCxPQUFBO0FBRWIsSUFBQUUsY0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsd0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGNBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUwsdUJBQUEsQ0FBQUMsT0FBQTtBQUF5QyxTQUFBRSx1QkFBQUcsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLGdCQUFBQSxDQUFBO0FBQUEsU0FBQU4sd0JBQUFNLENBQUEsRUFBQUUsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFULHVCQUFBLFlBQUFBLHdCQUFBTSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxTQUFBRCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFKLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFFLENBQUEsQ0FBQUksR0FBQSxDQUFBVixDQUFBLFVBQUFNLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxD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Q0FBa0MsRUFBRSxPQUFPO0VBQzNDQyxnQ0FBZ0MsRUFBRSxDQUFDO0VBQ25DQyxrQkFBa0IsRUFBRSxHQUFHO0VBQ3ZCQyxtQkFBbUIsRUFBRSxJQUFJO0VBRXpCO0VBQ0E7RUFDQUMsT0FBTyxFQUFFLENBQ1BDLHlCQUFxQixDQUFDQyxZQUFZLEVBQ2xDRCx5QkFBcUIsQ0FBQ0UsYUFBYSxFQUNuQ0YseUJBQXFCLENBQUNHLFlBQVksQ0FDbkM7RUFFREMsT0FBTyxFQUFFLEVBQUc7RUFFWjtFQUNBQyxJQUFJLEVBQUU7SUFDSkMsQ0FBQyxFQUFFO01BQ0RDLGNBQWMsRUFBRSxFQUFFO01BQ2xCM0IsY0FBYyxFQUFFLEVBQUU7TUFDbEI0QixrQkFBa0IsRUFBRTlGLEtBQUssQ0FBQytGLHNCQUFzQjtNQUNoREMsY0FBYyxFQUFFaEcsS0FBSyxDQUFDaUcsa0JBQWtCO01BQ3hDQyxRQUFRLEVBQUUsSUFBSTtNQUNkQyxRQUFRLEVBQUUsSUFBSTtNQUNkQyxnQkFBZ0IsRUFBRSxJQUFJO01BQ3RCQyxNQUFNLEVBQUUzRyxjQUFjLENBQUM0RztJQUN6QixDQUFDO0lBQ0RDLENBQUMsRUFBRTtNQUNEckMsY0FBYyxFQUFFLEVBQUU7TUFDbEIyQixjQUFjLEVBQUUsRUFBRTtNQUNsQkcsY0FBYyxFQUFFaEcsS0FBSyxDQUFDd0csb0JBQW9CO01BQzFDVixrQkFBa0IsRUFBRTlGLEtBQUssQ0FBQ3lHLHdCQUF3QjtNQUNsRFAsUUFBUSxFQUFFLElBQUk7TUFDZEMsUUFBUSxFQUFFLElBQUk7TUFDZEMsZ0JBQWdCLEVBQUUsSUFBSTtNQUN0QkMsTUFBTSxFQUFFM0csY0FBYyxDQUFDZ0g7SUFDekIsQ0FBQztJQUNEQyxFQUFFLEVBQUU7TUFDRnpDLGNBQWMsRUFBRSxFQUFFO01BQ2xCMkIsY0FBYyxFQUFFLEVBQUU7TUFDbEJHLGNBQWMsRUFBRWhHLEtBQUssQ0FBQ3dHLG9CQUFvQjtNQUMxQ1Ysa0JBQWtCLEVBQUU5RixLQUFLLENBQUN5Ryx3QkFBd0I7TUFDbEROLFFBQVEsRUFBRSxJQUFJO01BQUc7TUFDakJELFFBQVEsRUFBRSxLQUFLO01BQ2ZFLGdCQUFnQixFQUFFLEtBQUs7TUFDdkJDLE1BQU0sRUFBRTNHLGNBQWMsQ0FBQ2dIO0lBQ3pCO0VBQ0Y7QUFDRixDQUFDO0FBQUMsSUFBQUUsUUFBQSxHQUFBcEgsT0FBQSxjQUVhMEIsYUFBYTtBQUFBMkYsTUFBQSxDQUFBckgsT0FBQSxHQUFBQSxPQUFBLENBQUFzSCxPQUFBIiwiaWdub3JlTGlzdCI6W119