@i-novus/n2o-components 7.26.4 → 7.26.5

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.
@@ -1,12 +1,12 @@
1
1
  /// <reference types="react" />
2
2
  import { TBaseInputProps, TBaseProps } from '../types';
3
3
  import '../styles/components/OutputList.scss';
4
- declare type OutputListProps = TBaseProps & TBaseInputProps<Array<Record<string, unknown>>> & {
4
+ declare type Props = TBaseProps & TBaseInputProps<Array<Record<string, unknown>>> & {
5
5
  direction?: 'row' | 'column';
6
6
  labelFieldId?: string;
7
7
  linkFieldId?: string;
8
8
  separator?: string;
9
9
  target?: string;
10
10
  };
11
- export declare const OutputList: ({ value, className, direction, ...rest }: OutputListProps) => JSX.Element;
11
+ export declare const OutputList: ({ className, direction, value, ...rest }: Props) => JSX.Element;
12
12
  export {};
@@ -15,25 +15,30 @@ var _react = _interopRequireDefault(require("react"));
15
15
 
16
16
  var _map = _interopRequireDefault(require("lodash/map"));
17
17
 
18
+ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
19
+
18
20
  var _classnames = _interopRequireDefault(require("classnames"));
19
21
 
20
22
  var _OutputListItem = require("./OutputListItem");
21
23
 
22
24
  require("../styles/components/OutputList.scss");
23
25
 
24
- var _excluded = ["value", "className", "direction"];
26
+ var _excluded = ["className", "direction", "value"];
25
27
 
26
28
  var OutputList = function OutputList(_ref) {
27
- var _ref$value = _ref.value,
28
- value = _ref$value === void 0 ? [] : _ref$value,
29
- className = _ref.className,
29
+ var className = _ref.className,
30
30
  _ref$direction = _ref.direction,
31
31
  direction = _ref$direction === void 0 ? 'column' : _ref$direction,
32
+ _ref$value = _ref.value,
33
+ value = _ref$value === void 0 ? [] : _ref$value,
32
34
  rest = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
33
- var directionClassName = "n2o-output-list--".concat(direction);
34
35
  return /*#__PURE__*/_react["default"].createElement("ul", {
35
- className: (0, _classnames["default"])('n2o-output-list', className, directionClassName)
36
+ className: (0, _classnames["default"])('n2o-output-list', className, "n2o-output-list--".concat(direction))
36
37
  }, (0, _map["default"])(value, function (item, index) {
38
+ if ((0, _isEmpty["default"])(item)) {
39
+ return null;
40
+ }
41
+
37
42
  return /*#__PURE__*/_react["default"].createElement(_OutputListItem.OutputListItem, (0, _extends2["default"])({
38
43
  key: index
39
44
  }, rest, item, {
@@ -43,4 +48,4 @@ var OutputList = function OutputList(_ref) {
43
48
  };
44
49
 
45
50
  exports.OutputList = OutputList;
46
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaXNwbGF5L091dHB1dExpc3QudHN4Il0sIm5hbWVzIjpbIk91dHB1dExpc3QiLCJ2YWx1ZSIsImNsYXNzTmFtZSIsImRpcmVjdGlvbiIsInJlc3QiLCJkaXJlY3Rpb25DbGFzc05hbWUiLCJpdGVtIiwiaW5kZXgiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFJQTs7QUFFQTs7OztBQVVPLElBQU1BLFVBQVUsR0FBRyxTQUFiQSxVQUFhLE9BQStFO0FBQUEsd0JBQTVFQyxLQUE0RTtBQUFBLE1BQTVFQSxLQUE0RSwyQkFBcEUsRUFBb0U7QUFBQSxNQUFoRUMsU0FBZ0UsUUFBaEVBLFNBQWdFO0FBQUEsNEJBQXJEQyxTQUFxRDtBQUFBLE1BQXJEQSxTQUFxRCwrQkFBekMsUUFBeUM7QUFBQSxNQUE1QkMsSUFBNEI7QUFDckcsTUFBTUMsa0JBQWtCLDhCQUF1QkYsU0FBdkIsQ0FBeEI7QUFFQSxzQkFDSTtBQUNJLElBQUEsU0FBUyxFQUFFLDRCQUFXLGlCQUFYLEVBQThCRCxTQUE5QixFQUF5Q0csa0JBQXpDO0FBRGYsS0FHSyxxQkFBSUosS0FBSixFQUFXLFVBQUNLLElBQUQsRUFBT0MsS0FBUDtBQUFBLHdCQUNSLGdDQUFDLDhCQUFEO0FBQ0ksTUFBQSxHQUFHLEVBQUVBO0FBRFQsT0FFUUgsSUFGUixFQUdRRSxJQUhSO0FBSUksTUFBQSxNQUFNLEVBQUVDLEtBQUssS0FBS04sS0FBSyxDQUFDTyxNQUFOLEdBQWU7QUFKckMsT0FEUTtBQUFBLEdBQVgsQ0FITCxDQURKO0FBY0gsQ0FqQk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgbWFwIGZyb20gJ2xvZGFzaC9tYXAnXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJ1xuXG5pbXBvcnQgeyBUQmFzZUlucHV0UHJvcHMsIFRCYXNlUHJvcHMgfSBmcm9tICcuLi90eXBlcydcblxuaW1wb3J0IHsgT3V0cHV0TGlzdEl0ZW0gfSBmcm9tICcuL091dHB1dExpc3RJdGVtJ1xuXG5pbXBvcnQgJy4uL3N0eWxlcy9jb21wb25lbnRzL091dHB1dExpc3Quc2NzcydcblxudHlwZSBPdXRwdXRMaXN0UHJvcHMgPSBUQmFzZVByb3BzICYgVEJhc2VJbnB1dFByb3BzPEFycmF5PFJlY29yZDxzdHJpbmcsIHVua25vd24+Pj4gJiB7XG4gICAgZGlyZWN0aW9uPzogJ3JvdycgfCAnY29sdW1uJyxcbiAgICBsYWJlbEZpZWxkSWQ/OiBzdHJpbmcsXG4gICAgbGlua0ZpZWxkSWQ/OiBzdHJpbmcsXG4gICAgc2VwYXJhdG9yPzogc3RyaW5nLFxuICAgIHRhcmdldD86IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgT3V0cHV0TGlzdCA9ICh7IHZhbHVlID0gW10sIGNsYXNzTmFtZSwgZGlyZWN0aW9uID0gJ2NvbHVtbicsIC4uLnJlc3QgfTogT3V0cHV0TGlzdFByb3BzKSA9PiB7XG4gICAgY29uc3QgZGlyZWN0aW9uQ2xhc3NOYW1lID0gYG4yby1vdXRwdXQtbGlzdC0tJHtkaXJlY3Rpb259YFxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ24yby1vdXRwdXQtbGlzdCcsIGNsYXNzTmFtZSwgZGlyZWN0aW9uQ2xhc3NOYW1lKX1cbiAgICAgICAgPlxuICAgICAgICAgICAge21hcCh2YWx1ZSwgKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgPE91dHB1dExpc3RJdGVtXG4gICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgIHsuLi5yZXN0fVxuICAgICAgICAgICAgICAgICAgICB7Li4uaXRlbX1cbiAgICAgICAgICAgICAgICAgICAgaXNMYXN0PXtpbmRleCA9PT0gdmFsdWUubGVuZ3RoIC0gMX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgIDwvdWw+XG4gICAgKVxufVxuIl19
51
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaXNwbGF5L091dHB1dExpc3QudHN4Il0sIm5hbWVzIjpbIk91dHB1dExpc3QiLCJjbGFzc05hbWUiLCJkaXJlY3Rpb24iLCJ2YWx1ZSIsInJlc3QiLCJpdGVtIiwiaW5kZXgiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFJQTs7QUFFQTs7OztBQVVPLElBQU1BLFVBQVUsR0FBRyxTQUFiQSxVQUFhO0FBQUEsTUFBR0MsU0FBSCxRQUFHQSxTQUFIO0FBQUEsNEJBQWNDLFNBQWQ7QUFBQSxNQUFjQSxTQUFkLCtCQUEwQixRQUExQjtBQUFBLHdCQUFvQ0MsS0FBcEM7QUFBQSxNQUFvQ0EsS0FBcEMsMkJBQTRDLEVBQTVDO0FBQUEsTUFBbURDLElBQW5EO0FBQUEsc0JBQ3RCO0FBQUksSUFBQSxTQUFTLEVBQUUsNEJBQVcsaUJBQVgsRUFBOEJILFNBQTlCLDZCQUE2REMsU0FBN0Q7QUFBZixLQUNLLHFCQUFJQyxLQUFKLEVBQVcsVUFBQ0UsSUFBRCxFQUFPQyxLQUFQLEVBQWlCO0FBQ3pCLFFBQUkseUJBQVFELElBQVIsQ0FBSixFQUFtQjtBQUFFLGFBQU8sSUFBUDtBQUFhOztBQUVsQyx3QkFBTyxnQ0FBQyw4QkFBRDtBQUFnQixNQUFBLEdBQUcsRUFBRUM7QUFBckIsT0FBZ0NGLElBQWhDLEVBQTBDQyxJQUExQztBQUFnRCxNQUFBLE1BQU0sRUFBRUMsS0FBSyxLQUFLSCxLQUFLLENBQUNJLE1BQU4sR0FBZTtBQUFqRixPQUFQO0FBQ0gsR0FKQSxDQURMLENBRHNCO0FBQUEsQ0FBbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgbWFwIGZyb20gJ2xvZGFzaC9tYXAnXG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSdcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnXG5cbmltcG9ydCB7IFRCYXNlSW5wdXRQcm9wcywgVEJhc2VQcm9wcyB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBPdXRwdXRMaXN0SXRlbSB9IGZyb20gJy4vT3V0cHV0TGlzdEl0ZW0nXG5cbmltcG9ydCAnLi4vc3R5bGVzL2NvbXBvbmVudHMvT3V0cHV0TGlzdC5zY3NzJ1xuXG50eXBlIFByb3BzID0gVEJhc2VQcm9wcyAmIFRCYXNlSW5wdXRQcm9wczxBcnJheTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4+ICYge1xuICAgIGRpcmVjdGlvbj86ICdyb3cnIHwgJ2NvbHVtbicsXG4gICAgbGFiZWxGaWVsZElkPzogc3RyaW5nLFxuICAgIGxpbmtGaWVsZElkPzogc3RyaW5nLFxuICAgIHNlcGFyYXRvcj86IHN0cmluZyxcbiAgICB0YXJnZXQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IE91dHB1dExpc3QgPSAoeyBjbGFzc05hbWUsIGRpcmVjdGlvbiA9ICdjb2x1bW4nLCB2YWx1ZSA9IFtdLCAuLi5yZXN0IH06IFByb3BzKSA9PiAoXG4gICAgPHVsIGNsYXNzTmFtZT17Y2xhc3NOYW1lcygnbjJvLW91dHB1dC1saXN0JywgY2xhc3NOYW1lLCBgbjJvLW91dHB1dC1saXN0LS0ke2RpcmVjdGlvbn1gKX0+XG4gICAgICAgIHttYXAodmFsdWUsIChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzRW1wdHkoaXRlbSkpIHsgcmV0dXJuIG51bGwgfVxuXG4gICAgICAgICAgICByZXR1cm4gPE91dHB1dExpc3RJdGVtIGtleT17aW5kZXh9IHsuLi5yZXN0fSB7Li4uaXRlbX0gaXNMYXN0PXtpbmRleCA9PT0gdmFsdWUubGVuZ3RoIC0gMX0gLz5cbiAgICAgICAgfSl9XG4gICAgPC91bD5cbilcbiJdfQ==
@@ -2,7 +2,7 @@
2
2
  import { TBaseProps } from '../types';
3
3
  declare type Props = TBaseProps & {
4
4
  format: string;
5
- preLine: boolean;
5
+ preLine?: boolean;
6
6
  text: string;
7
7
  };
8
8
  export declare function Text({ text, format, preLine, className, ...rest }: Props): JSX.Element;
@@ -35,4 +35,4 @@ function Text(_ref) {
35
35
  Text.defaultProps = {
36
36
  preLine: false
37
37
  };
38
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaXNwbGF5L1RleHQudHN4Il0sIm5hbWVzIjpbIlRleHQiLCJ0ZXh0IiwiZm9ybWF0IiwicHJlTGluZSIsImNsYXNzTmFtZSIsInJlc3QiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFJQTs7OztBQVNPLFNBQVNBLElBQVQsT0FBb0U7QUFBQSxNQUFwREMsSUFBb0QsUUFBcERBLElBQW9EO0FBQUEsTUFBOUNDLE1BQThDLFFBQTlDQSxNQUE4QztBQUFBLE1BQXRDQyxPQUFzQyxRQUF0Q0EsT0FBc0M7QUFBQSxNQUE3QkMsU0FBNkIsUUFBN0JBLFNBQTZCO0FBQUEsTUFBZkMsSUFBZTtBQUN2RSxzQkFDSTtBQUNJLElBQUEsU0FBUyxFQUFFLDRCQUFXLGFBQVgsRUFBMEJELFNBQTFCLEVBQXFDO0FBQzVDLDhCQUF3QkQ7QUFEb0IsS0FBckM7QUFEZixLQUlRRSxJQUpSLEdBTUssb0NBQWVKLElBQWYsRUFBcUJDLE1BQXJCLENBTkwsQ0FESjtBQVVIOztBQUVERixJQUFJLENBQUNNLFlBQUwsR0FBb0I7QUFDaEJILEVBQUFBLE9BQU8sRUFBRTtBQURPLENBQXBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcydcblxuaW1wb3J0IHsgVEJhc2VQcm9wcyB9IGZyb20gJy4uL3R5cGVzJ1xuLy8gQHRzLWlnbm9yZSBpbXBvcnQgZnJvbSBqcyBmaWxlXG5pbXBvcnQgeyBwYXJzZUZvcm1hdHRlciB9IGZyb20gJy4uL3V0aWxzL3BhcnNlRm9ybWF0dGVyJ1xuXG50eXBlIFByb3BzID0gVEJhc2VQcm9wcyAmIHtcbiAgICBmb3JtYXQ6IHN0cmluZyxcbiAgICAvLyDRhNC+0YDQvNCw0YIg0LLRgNC10LzQtdC90LhcbiAgICBwcmVMaW5lOiBib29sZWFuLFxuICAgIHRleHQ6IHN0cmluZyAvLyDRhNC70LDQsyDQv9C10YDQtdC90L7RgdCwINGC0LXQutGB0YLQsFxufVxuXG5leHBvcnQgZnVuY3Rpb24gVGV4dCh7IHRleHQsIGZvcm1hdCwgcHJlTGluZSwgY2xhc3NOYW1lLCAuLi5yZXN0IH06IFByb3BzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcygnbjJvLXNuaXBwZXQnLCBjbGFzc05hbWUsIHtcbiAgICAgICAgICAgICAgICAnd2hpdGUtc3BhY2UtcHJlLWxpbmUnOiBwcmVMaW5lLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgPlxuICAgICAgICAgICAge3BhcnNlRm9ybWF0dGVyKHRleHQsIGZvcm1hdCl9XG4gICAgICAgIDwvc3Bhbj5cbiAgICApXG59XG5cblRleHQuZGVmYXVsdFByb3BzID0ge1xuICAgIHByZUxpbmU6IGZhbHNlLFxufSBhcyBQcm9wc1xuIl19
38
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaXNwbGF5L1RleHQudHN4Il0sIm5hbWVzIjpbIlRleHQiLCJ0ZXh0IiwiZm9ybWF0IiwicHJlTGluZSIsImNsYXNzTmFtZSIsInJlc3QiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFJQTs7OztBQVNPLFNBQVNBLElBQVQsT0FBb0U7QUFBQSxNQUFwREMsSUFBb0QsUUFBcERBLElBQW9EO0FBQUEsTUFBOUNDLE1BQThDLFFBQTlDQSxNQUE4QztBQUFBLE1BQXRDQyxPQUFzQyxRQUF0Q0EsT0FBc0M7QUFBQSxNQUE3QkMsU0FBNkIsUUFBN0JBLFNBQTZCO0FBQUEsTUFBZkMsSUFBZTtBQUN2RSxzQkFDSTtBQUNJLElBQUEsU0FBUyxFQUFFLDRCQUFXLGFBQVgsRUFBMEJELFNBQTFCLEVBQXFDO0FBQzVDLDhCQUF3QkQ7QUFEb0IsS0FBckM7QUFEZixLQUlRRSxJQUpSLEdBTUssb0NBQWVKLElBQWYsRUFBcUJDLE1BQXJCLENBTkwsQ0FESjtBQVVIOztBQUVERixJQUFJLENBQUNNLFlBQUwsR0FBb0I7QUFDaEJILEVBQUFBLE9BQU8sRUFBRTtBQURPLENBQXBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcydcblxuaW1wb3J0IHsgVEJhc2VQcm9wcyB9IGZyb20gJy4uL3R5cGVzJ1xuLy8gQHRzLWlnbm9yZSBpbXBvcnQgZnJvbSBqcyBmaWxlXG5pbXBvcnQgeyBwYXJzZUZvcm1hdHRlciB9IGZyb20gJy4uL3V0aWxzL3BhcnNlRm9ybWF0dGVyJ1xuXG50eXBlIFByb3BzID0gVEJhc2VQcm9wcyAmIHtcbiAgICBmb3JtYXQ6IHN0cmluZyxcbiAgICAvLyDRhNC+0YDQvNCw0YIg0LLRgNC10LzQtdC90LhcbiAgICBwcmVMaW5lPzogYm9vbGVhbixcbiAgICB0ZXh0OiBzdHJpbmcgLy8g0YTQu9Cw0LMg0L/QtdGA0LXQvdC+0YHQsCDRgtC10LrRgdGC0LBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRleHQoeyB0ZXh0LCBmb3JtYXQsIHByZUxpbmUsIGNsYXNzTmFtZSwgLi4ucmVzdCB9OiBQcm9wcykge1xuICAgIHJldHVybiAoXG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ24yby1zbmlwcGV0JywgY2xhc3NOYW1lLCB7XG4gICAgICAgICAgICAgICAgJ3doaXRlLXNwYWNlLXByZS1saW5lJzogcHJlTGluZSxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgID5cbiAgICAgICAgICAgIHtwYXJzZUZvcm1hdHRlcih0ZXh0LCBmb3JtYXQpfVxuICAgICAgICA8L3NwYW4+XG4gICAgKVxufVxuXG5UZXh0LmRlZmF1bHRQcm9wcyA9IHtcbiAgICBwcmVMaW5lOiBmYWxzZSxcbn0gYXMgUHJvcHNcbiJdfQ==
@@ -19,6 +19,7 @@ export declare type Props = TBaseProps & TBaseInputProps<any> & {
19
19
  label?: string;
20
20
  onClick?(): void;
21
21
  tabIndex?: number;
22
+ forwardedRef?: React.RefObject<HTMLDivElement>;
22
23
  };
23
24
  export declare class Checkbox extends React.Component<Props> {
24
25
  state: {
@@ -81,11 +81,13 @@ var Checkbox = /*#__PURE__*/function (_React$Component) {
81
81
  onClick = _this$props.onClick,
82
82
  onFocus = _this$props.onFocus,
83
83
  onChange = _this$props.onChange,
84
- onBlur = _this$props.onBlur;
84
+ onBlur = _this$props.onBlur,
85
+ forwardedRef = _this$props.forwardedRef;
85
86
  var id = this.state.id;
86
87
  return /*#__PURE__*/_react["default"].createElement("div", {
88
+ ref: forwardedRef,
87
89
  style: style,
88
- className: (0, _classnames["default"])('custom-control', 'custom-checkbox', 'n2o-checkbox', className, {
90
+ className: (0, _classnames["default"])(className, 'custom-control', 'custom-checkbox', 'n2o-checkbox', {
89
91
  'custom-control-inline': inline,
90
92
  'd-flex': help
91
93
  }),
@@ -114,4 +116,4 @@ var Checkbox = /*#__PURE__*/function (_React$Component) {
114
116
  }(_react["default"].Component);
115
117
 
116
118
  exports.Checkbox = Checkbox;
117
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnB1dHMvQ2hlY2tib3gvQ2hlY2tib3gudHN4Il0sIm5hbWVzIjpbIkNoZWNrYm94IiwiaWQiLCJzZXRTdGF0ZSIsInByb3BzIiwiY2xhc3NOYW1lIiwibGFiZWwiLCJkaXNhYmxlZCIsInZhbHVlIiwiaW5saW5lIiwiY2hlY2tlZCIsImhlbHAiLCJ0YWJJbmRleCIsInN0eWxlIiwib25DbGljayIsIm9uRm9jdXMiLCJvbkNoYW5nZSIsIm9uQmx1ciIsInN0YXRlIiwiUmVhY3QiLCJDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBQ0E7Ozs7OztJQXlCYUEsUTs7Ozs7Ozs7Ozs7Ozs7OzhGQUNEO0FBQ0pDLE1BQUFBLEVBQUUsRUFBRTtBQURBLEs7Ozs7OztXQUlSLDZCQUEwQjtBQUN0QixXQUFLQyxRQUFMLENBQWM7QUFBRUQsUUFBQUEsRUFBRSxFQUFFLDBCQUFTLFdBQVQ7QUFBTixPQUFkO0FBQ0g7OztXQUVELGtCQUFTO0FBQ0wsd0JBYUksS0FBS0UsS0FiVDtBQUFBLFVBQVFDLFNBQVIsZUFBUUEsU0FBUjtBQUFBLFVBQ0lDLEtBREosZUFDSUEsS0FESjtBQUFBLFVBRUlDLFFBRkosZUFFSUEsUUFGSjtBQUFBLFVBR0lDLEtBSEosZUFHSUEsS0FISjtBQUFBLFVBSUlDLE1BSkosZUFJSUEsTUFKSjtBQUFBLFVBS0lDLE9BTEosZUFLSUEsT0FMSjtBQUFBLFVBTUlDLElBTkosZUFNSUEsSUFOSjtBQUFBLFVBT0lDLFFBUEosZUFPSUEsUUFQSjtBQUFBLFVBUUlDLEtBUkosZUFRSUEsS0FSSjtBQUFBLFVBU0lDLE9BVEosZUFTSUEsT0FUSjtBQUFBLFVBVUlDLE9BVkosZUFVSUEsT0FWSjtBQUFBLFVBV0lDLFFBWEosZUFXSUEsUUFYSjtBQUFBLFVBWUlDLE1BWkosZUFZSUEsTUFaSjtBQWVBLFVBQVFmLEVBQVIsR0FBZSxLQUFLZ0IsS0FBcEIsQ0FBUWhCLEVBQVI7QUFFQSwwQkFDSTtBQUNJLFFBQUEsS0FBSyxFQUFFVyxLQURYO0FBRUksUUFBQSxTQUFTLEVBQUUsNEJBQ1AsZ0JBRE8sRUFFUCxpQkFGTyxFQUdQLGNBSE8sRUFJUFIsU0FKTyxFQUtQO0FBQ0ksbUNBQXlCSSxNQUQ3QjtBQUVJLG9CQUFVRTtBQUZkLFNBTE8sQ0FGZjtBQVlJLFFBQUEsT0FBTyxFQUFFRztBQVpiLHNCQWNJLGdDQUFDLFlBQUQ7QUFDSSxRQUFBLEVBQUUsRUFBRVosRUFEUjtBQUVJLFFBQUEsU0FBUyxFQUFDLHNCQUZkO0FBR0ksUUFBQSxRQUFRLEVBQUVLLFFBSGQ7QUFJSSxRQUFBLElBQUksRUFBQyxVQUpUO0FBS0ksUUFBQSxLQUFLLEVBQUVDLEtBTFg7QUFNSSxRQUFBLE9BQU8sRUFBRSx1QkFBTUUsT0FBTixJQUFpQixDQUFDLENBQUNGLEtBQW5CLEdBQTJCRSxPQU54QztBQU9JLFFBQUEsUUFBUSxFQUFFTSxRQVBkO0FBUUksUUFBQSxPQUFPLEVBQUVELE9BUmI7QUFTSSxRQUFBLE1BQU0sRUFBRUUsTUFUWjtBQVVJLFFBQUEsUUFBUSxFQUFFTCxRQVZkO0FBV0ksUUFBQSxLQUFLLEVBQUVOO0FBWFgsUUFkSixlQTJCSTtBQUFPLFFBQUEsU0FBUyxFQUFDLHNCQUFqQjtBQUF3QyxRQUFBLE9BQU8sRUFBRUo7QUFBakQsU0FDS0ksS0FETCxDQTNCSixFQThCS0ssSUFBSSxpQkFBSSxnQ0FBQyx3QkFBRDtBQUFhLFFBQUEsSUFBSSxFQUFFQTtBQUFuQixRQTlCYixDQURKO0FBa0NIOzs7RUE3RHlCUSxrQkFBTUMsUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBpc05pbCBmcm9tICdsb2Rhc2gvaXNOaWwnXG5pbXBvcnQgdW5pcXVlSWQgZnJvbSAnbG9kYXNoL3VuaXF1ZUlkJ1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcydcblxuaW1wb3J0IHsgVEJhc2VJbnB1dFByb3BzLCBUQmFzZVByb3BzIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgeyBIZWxwUG9wb3ZlciB9IGZyb20gJy4uLy4uL2hlbHBlcnMvSGVscFBvcG92ZXInXG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJy4uL0lucHV0J1xuXG4vKipcbiAqINCQ0LvRjNGC0LXRgNC90LDRgtC40LLQvdGL0Lkg0YfQtdC60LHQvtC60YFcbiAqIEByZWFjdFByb3BzIHtzdHJpbmd8bnVtYmVyfSB2YWx1ZSAtINGD0L3QuNC60LDQu9GM0L3QviDQvtC/0YDQtdC00LXQu9GP0LXRgiDRjdC70LXQvNC10L3RglxuICogQHJlYWN0UHJvcHMge2Jvb2xlYW59IGNoZWNrZWQgLSDQvdCw0YfQsNC70YzQvdC+0LUg0LfQvdCw0YfQtdC90LjQtVxuICogQHJlYWN0UHJvcHMge2Jvb2xlYW59IGRpc2FibGVkIC0g0YLQvtC70YzQutC+INC00LvRjyDRh9GC0LXQvdC40Y8gLyDQvdC10YJcbiAqIEByZWFjdFByb3BzIHtmdW5jdGlvbn0gb25DaGFuZ2UgLSDQstGL0LfRi9Cy0LDQtdGC0YHRjyDQv9GA0Lgg0LjQt9C80LXQvdC10L3QuNC4INC30L3QsNGH0LXQvdC40Y9cbiAqIEByZWFjdFByb3BzIHtmdW5jdGlvbn0gb25DbGljayAtINGB0L7QsdGL0YLQuNC1INC60LvQuNC60LAg0L/QviDRh9C10LrQsdC+0LrRgdGDLFxuICogQHJlYWN0UHJvcHMge3N0cmluZ30gbGFiZWwgLSDQu9C10LnQsdC7XG4gKiBAcmVhY3RQcm9wcyB7c3RyaW5nfSBjbGFzc05hbWUgLSDQutC70LDRgdGBINC60L7Qv9C+0L3QtdC90YLQsCBDaGVja2JveE4yT1xuICogQHJlYWN0UHJvcHMge3N0cmluZ30gaGVscCAtINC/0L7QtNGB0LrQsNC30LrQsCDQsiBwb3BvdmVyXG4gKiBAcmVhY3RQcm9wcyB7Ym9vbGVhbn0gaW5saW5lIC0g0LIg0YDRj9C0XG4gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCB0eXBlIFByb3BzID0gVEJhc2VQcm9wcyAmIFRCYXNlSW5wdXRQcm9wczxhbnk+ICYge1xuICAgIGNoZWNrZWQ/OiBib29sZWFuLFxuICAgIGhlbHA/OiBzdHJpbmcsIC8vINCf0L7QtNGB0LrQsNC30LrQsCDQsiBwb3BvdmVyXG4gICAgaW5saW5lPzogYm9vbGVhbiwgLy8g0KTQu9Cw0LMg0YDQtdC90LTQtdGA0LAgbGFiZWwg0LIg0L7QtNC90YMg0YHRgtGA0L7QutGDINGBINC60L7QvdGC0YDQvtC70L7QvFxuICAgIGxhYmVsPzogc3RyaW5nLFxuICAgIG9uQ2xpY2s/KCk6IHZvaWQsXG4gICAgdGFiSW5kZXg/OiBudW1iZXJcbn1cblxuZXhwb3J0IGNsYXNzIENoZWNrYm94IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFByb3BzPiB7XG4gICAgc3RhdGUgPSB7XG4gICAgICAgIGlkOiAnJyxcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlkOiB1bmlxdWVJZCgnY2hlY2tib3gtJykgfSlcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHsgY2xhc3NOYW1lLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgaW5saW5lLFxuICAgICAgICAgICAgY2hlY2tlZCxcbiAgICAgICAgICAgIGhlbHAsXG4gICAgICAgICAgICB0YWJJbmRleCxcbiAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgb25DbGljayxcbiAgICAgICAgICAgIG9uRm9jdXMsXG4gICAgICAgICAgICBvbkNoYW5nZSxcbiAgICAgICAgICAgIG9uQmx1cixcbiAgICAgICAgfSA9IHRoaXMucHJvcHNcblxuICAgICAgICBjb25zdCB7IGlkIH0gPSB0aGlzLnN0YXRlXG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAgICAgICAgICAgICAnY3VzdG9tLWNvbnRyb2wnLFxuICAgICAgICAgICAgICAgICAgICAnY3VzdG9tLWNoZWNrYm94JyxcbiAgICAgICAgICAgICAgICAgICAgJ24yby1jaGVja2JveCcsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2N1c3RvbS1jb250cm9sLWlubGluZSc6IGlubGluZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdkLWZsZXgnOiBoZWxwLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjdXN0b20tY29udHJvbC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtpc05pbChjaGVja2VkKSA/ICEhdmFsdWUgOiBjaGVja2VkfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJjdXN0b20tY29udHJvbC1sYWJlbFwiIGh0bWxGb3I9e2lkfT5cbiAgICAgICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAge2hlbHAgJiYgPEhlbHBQb3BvdmVyIGhlbHA9e2hlbHB9IC8+fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIClcbiAgICB9XG59XG4iXX0=
119
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnB1dHMvQ2hlY2tib3gvQ2hlY2tib3gudHN4Il0sIm5hbWVzIjpbIkNoZWNrYm94IiwiaWQiLCJzZXRTdGF0ZSIsInByb3BzIiwiY2xhc3NOYW1lIiwibGFiZWwiLCJkaXNhYmxlZCIsInZhbHVlIiwiaW5saW5lIiwiY2hlY2tlZCIsImhlbHAiLCJ0YWJJbmRleCIsInN0eWxlIiwib25DbGljayIsIm9uRm9jdXMiLCJvbkNoYW5nZSIsIm9uQmx1ciIsImZvcndhcmRlZFJlZiIsInN0YXRlIiwiUmVhY3QiLCJDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBQ0E7Ozs7OztJQTBCYUEsUTs7Ozs7Ozs7Ozs7Ozs7OzhGQUNEO0FBQUVDLE1BQUFBLEVBQUUsRUFBRTtBQUFOLEs7Ozs7OztXQUVSLDZCQUEwQjtBQUN0QixXQUFLQyxRQUFMLENBQWM7QUFBRUQsUUFBQUEsRUFBRSxFQUFFLDBCQUFTLFdBQVQ7QUFBTixPQUFkO0FBQ0g7OztXQUVELGtCQUFTO0FBQ0wsd0JBY0ksS0FBS0UsS0FkVDtBQUFBLFVBQVFDLFNBQVIsZUFBUUEsU0FBUjtBQUFBLFVBQ0lDLEtBREosZUFDSUEsS0FESjtBQUFBLFVBRUlDLFFBRkosZUFFSUEsUUFGSjtBQUFBLFVBR0lDLEtBSEosZUFHSUEsS0FISjtBQUFBLFVBSUlDLE1BSkosZUFJSUEsTUFKSjtBQUFBLFVBS0lDLE9BTEosZUFLSUEsT0FMSjtBQUFBLFVBTUlDLElBTkosZUFNSUEsSUFOSjtBQUFBLFVBT0lDLFFBUEosZUFPSUEsUUFQSjtBQUFBLFVBUUlDLEtBUkosZUFRSUEsS0FSSjtBQUFBLFVBU0lDLE9BVEosZUFTSUEsT0FUSjtBQUFBLFVBVUlDLE9BVkosZUFVSUEsT0FWSjtBQUFBLFVBV0lDLFFBWEosZUFXSUEsUUFYSjtBQUFBLFVBWUlDLE1BWkosZUFZSUEsTUFaSjtBQUFBLFVBYUlDLFlBYkosZUFhSUEsWUFiSjtBQWdCQSxVQUFRaEIsRUFBUixHQUFlLEtBQUtpQixLQUFwQixDQUFRakIsRUFBUjtBQUVBLDBCQUNJO0FBQ0ksUUFBQSxHQUFHLEVBQUVnQixZQURUO0FBRUksUUFBQSxLQUFLLEVBQUVMLEtBRlg7QUFHSSxRQUFBLFNBQVMsRUFBRSw0QkFDUFIsU0FETyxFQUVQLGdCQUZPLEVBR1AsaUJBSE8sRUFJUCxjQUpPLEVBS1A7QUFDSSxtQ0FBeUJJLE1BRDdCO0FBRUksb0JBQVVFO0FBRmQsU0FMTyxDQUhmO0FBYUksUUFBQSxPQUFPLEVBQUVHO0FBYmIsc0JBZUksZ0NBQUMsWUFBRDtBQUNJLFFBQUEsRUFBRSxFQUFFWixFQURSO0FBRUksUUFBQSxTQUFTLEVBQUMsc0JBRmQ7QUFHSSxRQUFBLFFBQVEsRUFBRUssUUFIZDtBQUlJLFFBQUEsSUFBSSxFQUFDLFVBSlQ7QUFLSSxRQUFBLEtBQUssRUFBRUMsS0FMWDtBQU1JLFFBQUEsT0FBTyxFQUFFLHVCQUFNRSxPQUFOLElBQWlCLENBQUMsQ0FBQ0YsS0FBbkIsR0FBMkJFLE9BTnhDO0FBT0ksUUFBQSxRQUFRLEVBQUVNLFFBUGQ7QUFRSSxRQUFBLE9BQU8sRUFBRUQsT0FSYjtBQVNJLFFBQUEsTUFBTSxFQUFFRSxNQVRaO0FBVUksUUFBQSxRQUFRLEVBQUVMLFFBVmQ7QUFXSSxRQUFBLEtBQUssRUFBRU47QUFYWCxRQWZKLGVBNEJJO0FBQU8sUUFBQSxTQUFTLEVBQUMsc0JBQWpCO0FBQXdDLFFBQUEsT0FBTyxFQUFFSjtBQUFqRCxTQUFzREksS0FBdEQsQ0E1QkosRUE2QktLLElBQUksaUJBQUksZ0NBQUMsd0JBQUQ7QUFBYSxRQUFBLElBQUksRUFBRUE7QUFBbkIsUUE3QmIsQ0FESjtBQWlDSDs7O0VBM0R5QlMsa0JBQU1DLFMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgaXNOaWwgZnJvbSAnbG9kYXNoL2lzTmlsJ1xuaW1wb3J0IHVuaXF1ZUlkIGZyb20gJ2xvZGFzaC91bmlxdWVJZCdcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnXG5cbmltcG9ydCB7IFRCYXNlSW5wdXRQcm9wcywgVEJhc2VQcm9wcyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgSGVscFBvcG92ZXIgfSBmcm9tICcuLi8uLi9oZWxwZXJzL0hlbHBQb3BvdmVyJ1xuaW1wb3J0IHsgSW5wdXQgfSBmcm9tICcuLi9JbnB1dCdcblxuLyoqXG4gKiDQkNC70YzRgtC10YDQvdCw0YLQuNCy0L3Ri9C5INGH0LXQutCx0L7QutGBXG4gKiBAcmVhY3RQcm9wcyB7c3RyaW5nfG51bWJlcn0gdmFsdWUgLSDRg9C90LjQutCw0LvRjNC90L4g0L7Qv9GA0LXQtNC10LvRj9C10YIg0Y3Qu9C10LzQtdC90YJcbiAqIEByZWFjdFByb3BzIHtib29sZWFufSBjaGVja2VkIC0g0L3QsNGH0LDQu9GM0L3QvtC1INC30L3QsNGH0LXQvdC40LVcbiAqIEByZWFjdFByb3BzIHtib29sZWFufSBkaXNhYmxlZCAtINGC0L7Qu9GM0LrQviDQtNC70Y8g0YfRgtC10L3QuNGPIC8g0L3QtdGCXG4gKiBAcmVhY3RQcm9wcyB7ZnVuY3Rpb259IG9uQ2hhbmdlIC0g0LLRi9C30YvQstCw0LXRgtGB0Y8g0L/RgNC4INC40LfQvNC10L3QtdC90LjQuCDQt9C90LDRh9C10L3QuNGPXG4gKiBAcmVhY3RQcm9wcyB7ZnVuY3Rpb259IG9uQ2xpY2sgLSDRgdC+0LHRi9GC0LjQtSDQutC70LjQutCwINC/0L4g0YfQtdC60LHQvtC60YHRgyxcbiAqIEByZWFjdFByb3BzIHtzdHJpbmd9IGxhYmVsIC0g0LvQtdC50LHQu1xuICogQHJlYWN0UHJvcHMge3N0cmluZ30gY2xhc3NOYW1lIC0g0LrQu9Cw0YHRgSDQutC+0L/QvtC90LXQvdGC0LAgQ2hlY2tib3hOMk9cbiAqIEByZWFjdFByb3BzIHtzdHJpbmd9IGhlbHAgLSDQv9C+0LTRgdC60LDQt9C60LAg0LIgcG9wb3ZlclxuICogQHJlYWN0UHJvcHMge2Jvb2xlYW59IGlubGluZSAtINCyINGA0Y/QtFxuICovXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgdHlwZSBQcm9wcyA9IFRCYXNlUHJvcHMgJiBUQmFzZUlucHV0UHJvcHM8YW55PiAmIHtcbiAgICBjaGVja2VkPzogYm9vbGVhbixcbiAgICBoZWxwPzogc3RyaW5nLCAvLyDQn9C+0LTRgdC60LDQt9C60LAg0LIgcG9wb3ZlclxuICAgIGlubGluZT86IGJvb2xlYW4sIC8vINCk0LvQsNCzINGA0LXQvdC00LXRgNCwIGxhYmVsINCyINC+0LTQvdGDINGB0YLRgNC+0LrRgyDRgSDQutC+0L3RgtGA0L7Qu9C+0LxcbiAgICBsYWJlbD86IHN0cmluZyxcbiAgICBvbkNsaWNrPygpOiB2b2lkLFxuICAgIHRhYkluZGV4PzogbnVtYmVyLFxuICAgIGZvcndhcmRlZFJlZj86IFJlYWN0LlJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD4sXG59XG5cbmV4cG9ydCBjbGFzcyBDaGVja2JveCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxQcm9wcz4ge1xuICAgIHN0YXRlID0geyBpZDogJycgfVxuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBpZDogdW5pcXVlSWQoJ2NoZWNrYm94LScpIH0pXG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IGNsYXNzTmFtZSxcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIGlubGluZSxcbiAgICAgICAgICAgIGNoZWNrZWQsXG4gICAgICAgICAgICBoZWxwLFxuICAgICAgICAgICAgdGFiSW5kZXgsXG4gICAgICAgICAgICBzdHlsZSxcbiAgICAgICAgICAgIG9uQ2xpY2ssXG4gICAgICAgICAgICBvbkZvY3VzLFxuICAgICAgICAgICAgb25DaGFuZ2UsXG4gICAgICAgICAgICBvbkJsdXIsXG4gICAgICAgICAgICBmb3J3YXJkZWRSZWYsXG4gICAgICAgIH0gPSB0aGlzLnByb3BzXG5cbiAgICAgICAgY29uc3QgeyBpZCB9ID0gdGhpcy5zdGF0ZVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgICAgICAnY3VzdG9tLWNvbnRyb2wnLFxuICAgICAgICAgICAgICAgICAgICAnY3VzdG9tLWNoZWNrYm94JyxcbiAgICAgICAgICAgICAgICAgICAgJ24yby1jaGVja2JveCcsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdjdXN0b20tY29udHJvbC1pbmxpbmUnOiBpbmxpbmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAnZC1mbGV4JzogaGVscCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiY3VzdG9tLWNvbnRyb2wtaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17aXNOaWwoY2hlY2tlZCkgPyAhIXZhbHVlIDogY2hlY2tlZH1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgICAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiY3VzdG9tLWNvbnRyb2wtbGFiZWxcIiBodG1sRm9yPXtpZH0+e2xhYmVsfTwvbGFiZWw+XG4gICAgICAgICAgICAgICAge2hlbHAgJiYgPEhlbHBQb3BvdmVyIGhlbHA9e2hlbHB9IC8+fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIClcbiAgICB9XG59XG4iXX0=
@@ -154,7 +154,7 @@ var DateTimeControl = /*#__PURE__*/function (_React$Component) {
154
154
 
155
155
  var begin = inputs[_types.DateTimeControlName.BEGIN];
156
156
 
157
- if (date.isBefore(begin)) {
157
+ if (inputName === 'end' && date.isBefore(begin)) {
158
158
  var _inputs3;
159
159
 
160
160
  _this.setState({
@@ -484,4 +484,4 @@ var DateTimeControl = /*#__PURE__*/function (_React$Component) {
484
484
  }(_react["default"].Component);
485
485
 
486
486
  exports.DateTimeControl = DateTimeControl;
487
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnB1dHMvRGF0ZVBpY2tlci9EYXRlVGltZUNvbnRyb2wudHN4Il0sIm5hbWVzIjpbIkNvbnRyb2xUeXBlIiwiREFURV9QSUNLRVIiLCJEQVRFX0lOVEVSVkFMIiwiRGF0ZVRpbWVDb250cm9sIiwicHJvcHMiLCJpbnB1dE5hbWUiLCJpc1RpbWVTZXQiLCJzdGF0ZSIsInNldFN0YXRlIiwiaW5wdXRzIiwiRGF0ZVRpbWVDb250cm9sTmFtZSIsIkRFRkFVTFRfTkFNRSIsImRhdGVUb1N0cmluZyIsIkJFR0lOIiwiRU5EIiwib25DaGFuZ2UiLCJ2YWx1ZSIsImdldFZhbHVlIiwiZGF5IiwiY2xvc2UiLCJ0eXBlIiwiaXNTYW1lT3JBZnRlciIsImlucHV0VmFsdWUiLCJpc0FmdGVyIiwiaXNQb3BVcFZpc2libGUiLCJvbkJsdXIiLCJkYXRlIiwiY2FsbGJhY2siLCJzaW5nbGVEYXRlIiwidW5kZWZpbmVkIiwiZW5kIiwiYmVnaW4iLCJpc0JlZm9yZSIsIm9uSW5wdXRDaGFuZ2UiLCJ2aXNpYmxlIiwiaXNGb2N1cyIsImUiLCJ0YXJnZXQiLCJkYXRlUGlja2VyIiwiZGF0ZUlucHV0IiwiaW5wdXRHcm91cCIsImNsYXNzTmFtZSIsImluY2x1ZGVzIiwiY29udGFpbnMiLCJ2YWx1ZVRvQmx1ciIsInNldFZpc2liaWxpdHkiLCJvbkZvY3VzIiwicG9wcGVyUmVmIiwiciIsImVsIiwiY29udHJvbCIsImRhdGVGb3JtYXQiLCJjb25maWdMb2NhbGUiLCJ0aW1lRm9ybWF0IiwiZGF0ZURpdmlkZXIiLCJvdXRwdXRGb3JtYXQiLCJkZWZhdWx0VGltZSIsImZvcm1hdCIsInV0YyIsIkRhdGUiLCJ0b1N0cmluZyIsIm1vbWVudCIsIndpbmRvdyIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9uQ2xpY2tPdXRzaWRlIiwiYmluZCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyYW5nZSIsIl9mIiwibWF4IiwibWluIiwibWFya1RpbWVBc1NldCIsInBvcFVwIiwic2VsZWN0IiwicGFyc2VSYW5nZSIsImRpc2FibGVkIiwicGxhY2Vob2xkZXIiLCJhdXRvRm9jdXMiLCJvcGVuT25Gb2N1cyIsInBvcHVwUGxhY2VtZW50Iiwic3RyYXRlZ3kiLCJvbktleURvd24iLCJwaWNrZXIiLCJyZWYiLCJzZXRDb250cm9sUmVmIiwic2V0SW5wdXRSZWYiLCJvbklucHV0Qmx1ciIsInN0eWxlIiwicGxhY2VtZW50IiwicmVuZGVyUG9wVXAiLCJSZWFjdCIsIkNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFJQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFRQTs7Ozs7Ozs7OztBQThCTyxJQUFNQSxXQUFXLEdBQUc7QUFDdkJDLEVBQUFBLFdBQVcsRUFBRSxhQURVO0FBRXZCQyxFQUFBQSxhQUFhLEVBQUU7QUFGUSxDQUFwQjs7O0lBS01DLGU7Ozs7O0FBYVQsMkJBQVlDLEtBQVosRUFBeUM7QUFBQTs7QUFBQTtBQUNyQyw4QkFBTUEsS0FBTjtBQURxQyxtR0FSTCxJQVFLO0FBQUEsbUdBTkwsSUFNSztBQUFBLGdHQUpILElBSUc7QUFBQSw4RkFGaUIsSUFFakI7QUFBQSxzR0F5RXpCLFVBQUNDLFNBQUQsRUFBdUI7QUFDbkMsVUFBUUMsU0FBUixHQUFzQixNQUFLQyxLQUEzQixDQUFRRCxTQUFSOztBQUVBLFlBQUtFLFFBQUwsQ0FBYztBQUNWRixRQUFBQSxTQUFTLGtDQUFPQSxTQUFQLDRDQUFtQkQsU0FBbkIsRUFBK0IsSUFBL0I7QUFEQyxPQUFkO0FBR0gsS0EvRXdDO0FBQUEsaUdBb0c5QixVQUFDQSxTQUFELEVBQThFO0FBQ3JGLFVBQVFJLE1BQVIsR0FBbUIsTUFBS0YsS0FBeEIsQ0FBUUUsTUFBUjs7QUFFQSxVQUFJSixTQUFTLEtBQUtLLDJCQUFvQkMsWUFBdEMsRUFBb0Q7QUFDaEQsZUFBTyxNQUFLQyxZQUFMLENB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QVFBLEtBQVI7QUFBQSxZQUFlQyxTQUFmLFNBQWVBLFNBQWY7QUFBQSw0QkFDRztBQUNJLFVBQUEsR0FBRyxFQUFFTCxHQURUO0FBRUksVUFBQSxLQUFLLEVBQUVJLEtBRlg7QUFHSSw0QkFBZ0JDLFNBSHBCO0FBSUksVUFBQSxTQUFTLEVBQUM7QUFKZCxXQU1LLE1BQUksQ0FBQ0MsV0FBTCxFQU5MLENBREg7QUFBQSxPQUpMLENBekJSLENBUkosQ0FESixDQURKO0FBdURIOzs7RUFsY2dDQyxrQkFBTUMsUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBFbGVtZW50VHlwZSwgRm9jdXNFdmVudEhhbmRsZXIsIEtleWJvYXJkRXZlbnQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGZpbmRET01Ob2RlIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IGV2ZXJ5IGZyb20gJ2xvZGFzaC9ldmVyeSdcbmltcG9ydCBpc1VuZGVmaW5lZCBmcm9tICdsb2Rhc2gvaXNVbmRlZmluZWQnXG5pbXBvcnQgaXNGdW5jdGlvbiBmcm9tICdsb2Rhc2gvaXNGdW5jdGlvbidcbmltcG9ydCBpc051bGwgZnJvbSAnbG9kYXNoL2lzTnVsbCdcbmltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50L21vbWVudCdcbmltcG9ydCB7IE1hbmFnZXIsIFBvcHBlciwgUmVmZXJlbmNlLCBSZWZIYW5kbGVyIH0gZnJvbSAncmVhY3QtcG9wcGVyJ1xuaW1wb3J0IHsgV3JhcHBlckluc3RhbmNlIH0gZnJvbSAncmVhY3Qtb25jbGlja291dHNpZGUnXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnbG9kYXNoJ1xuXG5pbXBvcnQgeyBUQmFzZUlucHV0UHJvcHMsIFRCYXNlUHJvcHMgfSBmcm9tICcuLi8uLi90eXBlcydcblxuaW1wb3J0IHsgYnVpbGREYXRlRm9ybWF0LCBtYXBUb0RlZmF1bHRUaW1lLCBtYXBUb1ZhbHVlIH0gZnJvbSAnLi91dGlscydcbmltcG9ydCB7IERhdGVJbnB1dEdyb3VwIH0gZnJvbSAnLi9EYXRlSW5wdXRHcm91cCdcbmltcG9ydCB7IFBvcFVwIH0gZnJvbSAnLi9Qb3BVcCdcbmltcG9ydCB7XG4gICAgRGF0ZVRpbWVDb250cm9sTmFtZSwgRGF0ZVR5cGUsXG4gICAgRGF0ZVBpY2tlclZhbHVlLFxuICAgIE9uSW5wdXRDaGFuZ2VIYW5kbGVyLCBQb3BwZXJQbGFjZW1lbnQsXG4gICAgUG9wcGVyUG9zaXRpb25pbmdTdHJhdGVneSxcbiAgICBEZWZhdWx0VGltZSxcbn0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0ICcuLi8uLi9zdHlsZXMvY29tcG9uZW50cy9EYXRlUGlja2VyLnNjc3MnXG5cbnR5cGUgRGF0ZVRpbWVDb250cm9sUHJvcHMgPSBUQmFzZVByb3BzICYgT21pdDxUQmFzZUlucHV0UHJvcHM8RGF0ZVBpY2tlclZhbHVlPiwgJ29uQ2hhbmdlJyB8ICdvbkJsdXInPiAmIHtcbiAgICBjb25maWdMb2NhbGU/OiAnZW4nIHwgJ3J1JyxcbiAgICBkYXRlRGl2aWRlcj86IHN0cmluZyxcbiAgICBkYXRlRm9ybWF0Pzogc3RyaW5nLFxuICAgIGRlZmF1bHRUaW1lPzogc3RyaW5nLFxuICAgIG1heD86IHN0cmluZyxcbiAgICBtaW4/OiBzdHJpbmcsXG4gICAgb25CbHVyPyh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IEFycmF5PHN0cmluZyB8IG51bGw+KTogdm9pZCxcbiAgICBvbkNoYW5nZT8odmFsdWU6IHN0cmluZyB8IG51bGwgfCBBcnJheTxzdHJpbmcgfCBudWxsPik6IHZvaWQsXG4gICAgb25Gb2N1cz86IEZvY3VzRXZlbnRIYW5kbGVyLFxuICAgIG9uS2V5RG93bj8oZXZ0OiBLZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KTogdm9pZCxcbiAgICBvcGVuT25Gb2N1cz86IGJvb2xlYW4sXG4gICAgb3V0cHV0Rm9ybWF0Pzogc3RyaW5nLFxuICAgIHBvcHVwUGxhY2VtZW50PzogUG9wcGVyUGxhY2VtZW50LFxuICAgIHN0cmF0ZWd5OiBQb3BwZXJQb3NpdGlvbmluZ1N0cmF0ZWd5LFxuICAgIHRpbWVGb3JtYXQ/OiBzdHJpbmcsXG4gICAgdHlwZT86IHN0cmluZyxcbiAgICB1dGM/OiBib29sZWFuLFxuICAgIHZhbHVlOiBEYXRlUGlja2VyVmFsdWVcbn1cblxudHlwZSBEYXRlVGltZUNvbnRyb2xTdGF0ZSA9IHtcbiAgICBpbnB1dHM6IFJlY29yZDxzdHJpbmcsIE1vbWVudCB8IG51bGw+LFxuICAgIGlzRm9jdXM6IGJvb2xlYW4sXG4gICAgaXNQb3BVcFZpc2libGU6IGJvb2xlYW4sXG4gICAgaXNUaW1lU2V0OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuIHwgdW5kZWZpbmVkPlxufVxuXG5leHBvcnQgY29uc3QgQ29udHJvbFR5cGUgPSB7XG4gICAgREFURV9QSUNLRVI6ICdkYXRlLXBpY2tlcicsXG4gICAgREFURV9JTlRFUlZBTDogJ2RhdGUtaW50ZXJ2YWwnLFxufVxuXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVDb250cm9sIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PERhdGVUaW1lQ29udHJvbFByb3BzLCBEYXRlVGltZUNvbnRyb2xTdGF0ZT4ge1xuICAgIGZvcm1hdDogc3RyaW5nXG5cbiAgICBkZWZhdWx0VGltZTogRGVmYXVsdFRpbWVcblxuICAgIGRhdGVQaWNrZXI6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCA9IG51bGxcblxuICAgIGlucHV0R3JvdXA6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCA9IG51bGxcblxuICAgIHByaXZhdGUgY29udHJvbDogbnVsbCB8IEVsZW1lbnRUeXBlID0gbnVsbFxuXG4gICAgcHJpdmF0ZSBwb3BVcDogV3JhcHBlckluc3RhbmNlPHVua25vd24sIHVua25vd24+IHwgbnVsbCA9IG51bGxcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzOiBEYXRlVGltZUNvbnRyb2xQcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcylcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBkYXRlRm9ybWF0ID0gJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgY29uZmlnTG9jYWxlID0gJ3J1JyxcbiAgICAgICAgICAgIHRpbWVGb3JtYXQsXG4gICAgICAgICAgICBkYXRlRGl2aWRlciA9ICcgJyxcbiAgICAgICAgICAgIG91dHB1dEZvcm1hdCA9ICdERC5NTS5ZWVlZIEhIOm1tOnNzJyxcbiAgICAgICAgICAgIGRlZmF1bHRUaW1lID0gJzAwOjAwJyxcbiAgICAgICAgfSA9IHByb3BzXG5cbiAgICAgICAgdGhpcy5mb3JtYXQgPSBidWlsZERhdGVGb3JtYXQoZGF0ZUZvcm1hdCwgdGltZUZvcm1hdCwgZGF0ZURpdmlkZXIpXG5cbiAgICAgICAgdGhpcy5kZWZhdWx0VGltZSA9IG1hcFRvRGVmYXVsdFRpbWUoXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIGRlZmF1bHRUaW1lLFxuICAgICAgICAgICAgRGF0ZVRpbWVDb250cm9sTmFtZS5ERUZBVUxUX05BTUUsXG4gICAgICAgICAgICB0aW1lRm9ybWF0LFxuICAgICAgICApXG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIGlucHV0czogbWFwVG9WYWx1ZShcbiAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRUaW1lLFxuICAgICAgICAgICAgICAgIG91dHB1dEZvcm1hdCxcbiAgICAgICAgICAgICAgICBjb25maWdMb2NhbGUsXG4gICAgICAgICAgICAgICAgRGF0ZVRpbWVDb250cm9sTmFtZS5ERUZBVUxUX05BTUUsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgaXNQb3BVcFZpc2libGU6IGZhbHNlLFxuICAgICAgICAgICAgaXNUaW1lU2V0OiB7fSxcbiAgICAgICAgICAgIGlzRm9jdXM6IGZhbHNlLFxuICAgICAgICB9XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG4gICAgICAgIHRoaXMuY29udHJvbCA9IG51bGxcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0L7RgtC60LAg0L3QvtCy0YvRhSDQv9GA0L7Qv9GB0L7QslxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1kZXByZWNhdGVkXG4gICAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhwcm9wczogRGF0ZVRpbWVDb250cm9sUHJvcHMpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBkYXRlRm9ybWF0ID0gJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgY29uZmlnTG9jYWxlID0gJ3J1JyxcbiAgICAgICAgICAgIHRpbWVGb3JtYXQsXG4gICAgICAgICAgICBkYXRlRGl2aWRlciA9ICcgJyxcbiAgICAgICAgICAgIG91dHB1dEZvcm1hdCA9ICdERC5NTS5ZWVlZIEhIOm1tOnNzJyxcbiAgICAgICAgICAgIGRlZmF1bHRUaW1lID0gJzAwOjAwJyxcbiAgICAgICAgfSA9IHByb3BzXG5cbiAgICAgICAgdGhpcy5mb3JtYXQgPSBidWlsZERhdGVGb3JtYXQoZGF0ZUZvcm1hdCwgdGltZUZvcm1hdCwgZGF0ZURpdmlkZXIpXG5cbiAgICAgICAgdGhpcy5kZWZhdWx0VGltZSA9IG1hcFRvRGVmYXVsdFRpbWUoXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIGRlZmF1bHRUaW1lLFxuICAgICAgICAgICAgRGF0ZVRpbWVDb250cm9sTmFtZS5ERUZBVUxUX05BTUUsXG4gICAgICAgICAgICB0aW1lRm9ybWF0LFxuICAgICAgICApXG5cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBpbnB1dHM6IG1hcFRvVmFsdWUoXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0VGltZSxcbiAgICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQsXG4gICAgICAgICAgICAgICAgY29uZmlnTG9jYWxlLFxuICAgICAgICAgICAgICAgIERhdGVUaW1lQ29udHJvbE5hbWUuREVGQVVMVF9OQU1FLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBtYXJrVGltZUFzU2V0ID0gKGlucHV0TmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgaXNUaW1lU2V0IH0gPSB0aGlzLnN0YXRlXG5cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBpc1RpbWVTZXQ6IHsgLi4uaXNUaW1lU2V0LCBbaW5wdXROYW1lXTogdHJ1ZSB9LFxuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQuNCy0LXQtNC10L3QuNC1INC6INGB0YLRgNC+0LrQtVxuICAgICAqL1xuICAgIGRhdGVUb1N0cmluZyhkYXRlOiBEYXRlVHlwZSB8IG51bGwpIHtcbiAgICAgICAgY29uc3QgeyBvdXRwdXRGb3JtYXQgPSAnREQuTU0uWVlZWSBISDptbTpzcycsIHV0YyB9ID0gdGhpcy5wcm9wc1xuXG4gICAgICAgIGlmIChpc051bGwoZGF0ZSkgfHwgdHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZS50b1N0cmluZygpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdXRjXG4gICAgICAgICAgICA/IG1vbWVudC51dGMoZGF0ZSkuZm9ybWF0KG91dHB1dEZvcm1hdClcbiAgICAgICAgICAgIDogZGF0ZS5mb3JtYXQob3V0cHV0Rm9ybWF0KVxuICAgIH1cblxuICAgIGdldFZhbHVlID0gKGlucHV0TmFtZTogc3RyaW5nIHwgbnVsbCk6IFtzdHJpbmcgfCBudWxsLCBzdHJpbmcgfCBudWxsXSB8IHN0cmluZyB8IG51bGwgPT4ge1xuICAgICAgICBjb25zdCB7IGlucHV0cyB9ID0gdGhpcy5zdGF0ZVxuXG4gICAgICAgIGlmIChpbnB1dE5hbWUgPT09IERhdGVUaW1lQ29udHJvbE5hbWUuREVGQVVMVF9OQU1FKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlVG9TdHJpbmcoaW5wdXRzW2lucHV0TmFtZV0pXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdGhpcy5kYXRlVG9TdHJpbmcoaW5wdXRzW0RhdGVUaW1lQ29udHJvbE5hbWUuQkVHSU5dKSxcbiAgICAgICAgICAgIHRoaXMuZGF0ZVRvU3RyaW5nKGlucHV0c1tEYXRlVGltZUNvbnRyb2xOYW1lLkVORF0pLFxuICAgICAgICBdXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0LLRi9C30L7QsiBvbkNoYW5nZVxuICAgICAqL1xuICAgIG9uQ2hhbmdlID0gKGlucHV0TmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHNcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKGlucHV0TmFtZSlcblxuICAgICAgICBvbkNoYW5nZT8uKHZhbHVlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvQsdC+0YAg0LTQsNGC0YssINC/0YDQvtC60LjQtNGL0LLQsNC10YLRgdGPINCyINC60LDQu9C10L3QtNCw0YDRjFxuICAgICAqL1xuICAgIHNlbGVjdCA9IChkYXk6IE1vbWVudCB8IG51bGwsIGlucHV0TmFtZTogc3RyaW5nLCBjbG9zZSA9IHRydWUpID0+IHtcbiAgICAgICAgY29uc3QgeyBpbnB1dHMgfSA9IHRoaXMuc3RhdGVcbiAgICAgICAgY29uc3QgeyB0eXBlIH0gPSB0aGlzLnByb3BzXG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgaW5wdXROYW1lID09PSBEYXRlVGltZUNvbnRyb2xOYW1lLkRFRkFVTFRfTkFNRSB8fFxuICAgICAgICAgICAgaW5wdXROYW1lID09PSBEYXRlVGltZUNvbnRyb2xOYW1lLkJFR0lOIHx8XG4gICAgICAgICAgICAoaW5wdXROYW1lID09PSBEYXRlVGltZUNvbnRyb2xOYW1lLkVORCAmJlxuICAgICAgICAgICAgICAgICFpbnB1dHNbRGF0ZVRpbWVDb250cm9sTmFtZS5CRUdJTl0pIHx8XG4gICAgICAgICAgICAoaW5wdXROYW1lID09PSBEYXRlVGltZUNvbnRyb2xOYW1lLkVORCAmJlxuICAgICAgICAgICAgICAgIG1vbWVudChkYXkpLmlzU2FtZU9yQWZ0ZXIoaW5wdXRzW0RhdGVUaW1lQ29udHJvbE5hbWUuQkVHSU5dKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgaW5wdXROYW1lID09PSBEYXRlVGltZUNvbnRyb2xOYW1lLkJFR0lOICYmXG4gICAgICAgICAgICAgICAgICAgIGlucHV0c1tEYXRlVGltZUNvbnRyb2xOYW1lLkVORF0gJiZcbiAgICAgICAgICAgICAgICAgICAgbW9tZW50KGRheSkuaXNBZnRlcihpbnB1dHNbRGF0ZVRpbWVDb250cm9sTmFtZS5FTkRdKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2lucHV0TmFtZV06IGRheSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtEYXRlVGltZUNvbnRyb2xOYW1lLkVORF06IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBbaW5wdXROYW1lXTogZGF5LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgaW5wdXRzIH0gPSB0aGlzLnN0YXRlXG5cbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dHM6IHsgLi4uaW5wdXRzLCAuLi5pbnB1dFZhbHVlKCkgfSxcbiAgICAgICAgICAgICAgICAgICAgaXNQb3BVcFZpc2libGU6XG4gICAgICAgICAgICBpbnB1dE5hbWUgPT09IERhdGVUaW1lQ29udHJvbE5hbWUuQkVHSU4gfHxcbiAgICAgICAgICAgIGlucHV0TmFtZSA9PT0gRGF0ZVRpbWVDb250cm9sTmFtZS5FTkQgfHxcbiAgICAgICAgICAgICFjbG9zZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShpbnB1dE5hbWUpXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSBDb250cm9sVHlwZS5EQVRFX1BJQ0tFUikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBvbkJsdXIgfSA9IHRoaXMucHJvcHNcblxuICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPy4odGhpcy5nZXRWYWx1ZShpbnB1dE5hbWUpKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvQsdC+0YAg0LTQsNGC0YssINC/0YDQvtC60LjQtNGL0LLQsNC10YLRgdGPINCyINC40L3Qv9GD0YJcbiAgICAgKiBAdG9kbyDQvtCx0YrQtdC00LjQvdC40YLRjCDQvNC10YLQvtC00Ysgc2VsZWN0INC4IG9uSW5wdXRDaGFuZ2Ug0LIgMSDQvNC10YLQvtC0XG4gICAgICovXG4gICAgb25JbnB1dENoYW5nZTogT25JbnB1dENoYW5nZUhhbmRsZXIgPSAoZGF0ZSwgaW5wdXROYW1lLCBjYWxsYmFjaz8pID0+IHtcbiAgICAgICAgY29uc3QgeyBpbnB1dHMgfSA9IHRoaXMuc3RhdGVcblxuICAgICAgICBjb25zdCBzaW5nbGVEYXRlID0gaW5wdXRzW0RhdGVUaW1lQ29udHJvbE5hbWUuREVGQVVMVF9OQU1FXVxuXG4gICAgICAgIGlmIChkYXRlICYmIHNpbmdsZURhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKGlucHV0TmFtZSA9PT0gRGF0ZVRpbWVDb250cm9sTmFtZS5CRUdJTikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IGlucHV0c1tEYXRlVGltZUNvbnRyb2xOYW1lLkVORF1cblxuICAgICAgICAgICAgICAgIGlmIChkYXRlLmlzQWZ0ZXIoZW5kKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0czogeyBbRGF0ZVRpbWVDb250cm9sTmFtZS5CRUdJTl06IGRhdGUsIFtEYXRlVGltZUNvbnRyb2xOYW1lLkVORF06IG51bGwgfSxcbiAgICAgICAgICAgICAgICAgICAgfSwgKCkgPT4gdGhpcy5vbkNoYW5nZShpbnB1dE5hbWUpKVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgYmVnaW4gPSBpbnB1dHNbRGF0ZVRpbWVDb250cm9sTmFtZS5CRUdJTl1cblxuICAgICAgICAgICAgaWYgKGRhdGUuaXNCZWZvcmUoYmVnaW4pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0czogeyBbRGF0ZVRpbWVDb250cm9sTmFtZS5CRUdJTl06IG51bGwsIFtEYXRlVGltZUNvbnRyb2xOYW1lLkVORF06IGRhdGUgfSxcbiAgICAgICAgICAgICAgICB9LCAoKSA9PiB0aGlzLm9uQ2hhbmdlKGlucHV0TmFtZSkpXG5cbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaW5wdXRzOiB7IC4uLmlucHV0cywgW2lucHV0TmFtZV06IGRhdGUgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoKSA9PiAoaXNGdW5jdGlvbihjYWxsYmFjaykgPyBjYWxsYmFjaz8uKCkgOiB0aGlzLm9uQ2hhbmdlKGlucHV0TmFtZSkpLFxuICAgICAgICApXG4gICAgfVxuXG4gICAgb25JbnB1dEJsdXIgPSAoZGF0ZTogTW9tZW50IHwgbnVsbCwgaW5wdXROYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgeyBvbkJsdXIgfSA9IHRoaXMucHJvcHNcblxuICAgICAgICB0aGlzLm9uSW5wdXRDaGFuZ2UoZGF0ZSwgaW5wdXROYW1lLCAoKSA9PiBvbkJsdXI/Lih0aGlzLmdldFZhbHVlKGlucHV0TmFtZSkpKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0LjQtNC40LzQvtGB0YLRjCDQv9C+0L/QsNC/0LBcbiAgICAgKi9cbiAgICBzZXRWaXNpYmlsaXR5ID0gKHZpc2libGU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBpc1BvcFVwVmlzaWJsZTogdmlzaWJsZSxcbiAgICAgICAgICAgIGlzRm9jdXM6IHZpc2libGUsXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J3QsNCy0LXRiNC40LLQsNC90LjQtSDQu9C40YHRgtC10L3QtdGA0L7QsiDQtNC70Y8g0L/QvtGP0LLQu9C10L3QuNGPIC8g0LjRgdGH0LXQt9Cw0L3QuNGPINC/0L7Qv9Cw0L/QsFxuICAgICAqL1xuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25DbGlja091dHNpZGUuYmluZCh0aGlzKSlcbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLm9uQ2xpY2tPdXRzaWRlLmJpbmQodGhpcykpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9C10L3QuNC1INC70LjRgdGC0LXQvdC10YDQvtCyINC00LvRjyDQv9C+0Y/QstC70LXQvdC40Y8gLyDQuNGB0YfQtdC30LDQvdC40Y8g0L/QvtC/0LDQv9CwINC/0L7RgdC70LUg0LDQvdC80LDRg9C90YLQsFxuICAgICAqL1xuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25DbGlja091dHNpZGUuYmluZCh0aGlzKSlcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLm9uQ2xpY2tPdXRzaWRlLmJpbmQodGhpcykpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICAgIGNvbnN0IHsgaW5wdXRzIH0gPSB0aGlzLnN0YXRlXG4gICAgICAgIGNvbnN0IHsgYmVnaW4sIGVuZCB9ID0gaW5wdXRzXG5cbiAgICAgICAgaWYgKCFpc051bGwoYmVnaW4pICYmIG1vbWVudChiZWdpbikuaXNBZnRlcihtb21lbnQoZW5kKSkpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgIGlucHV0czogeyAuLi5pbnB1dHMsIGVuZDogbnVsbCB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHRgNCw0LHQvtGC0LrQsCDQutC70LjQutCwINC30LAg0L/RgNC10LTQtdC70LDQvNC4INC/0L7Qv9Cw0L/QsFxuICAgICAqL1xuICAgIG9uQ2xpY2tPdXRzaWRlOiBFdmVudExpc3RlbmVyID0gKGUpID0+IHtcbiAgICAgICAgY29uc3QgeyB0eXBlLCBvbkJsdXIgfSA9IHRoaXMucHJvcHNcbiAgICAgICAgY29uc3QgeyBpc0ZvY3VzLCBpc1BvcFVwVmlzaWJsZSB9ID0gdGhpcy5zdGF0ZVxuICAgICAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldCBhcyBIVE1MRWxlbWVudFxuXG4gICAgICAgIGlmIChpc1BvcFVwVmlzaWJsZSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWZpbmQtZG9tLW5vZGVcbiAgICAgICAgICAgIGNvbnN0IGRhdGVQaWNrZXIgPSBmaW5kRE9NTm9kZSh0aGlzLmRhdGVQaWNrZXIpXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tZmluZC1kb20tbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0ZUlucHV0ID0gZmluZERPTU5vZGUodGhpcy5pbnB1dEdyb3VwKVxuXG4gICAgICAgICAgICBpZiAoIWRhdGVQaWNrZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICB0YXJnZXQuY2xhc3NOYW1lLmluY2x1ZGVzKCduMm8tcG9wLXVwJykgfHxcbiAgICAgICAgICAgICAgICAoIWRhdGVQaWNrZXIuY29udGFpbnModGFyZ2V0KSAmJiAhZGF0ZUlucHV0Py5jb250YWlucyh0YXJnZXQpKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzRm9jdXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdkYXRlLWludGVydmFsJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWVUb0JsdXIgPSB0aGlzLmdldFZhbHVlKG51bGwpXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0FycmF5KHZhbHVlVG9CbHVyKSAmJiBldmVyeSh2YWx1ZVRvQmx1ciwgdmFsdWUgPT4gdmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPy4odmFsdWVUb0JsdXIpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI/Lih0aGlzLmdldFZhbHVlKERhdGVUaW1lQ29udHJvbE5hbWUuREVGQVVMVF9OQU1FKSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNldFZpc2liaWxpdHkoZmFsc2UpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQstC+0LTQuNGCIG1pbiwgbWF4INC6IG1vbWVudCDQvtCx0YrQtdC60YLRgywg0YLQtdC60YPRidC10LzRgyDRhNC+0YDQvNCw0YLRg1xuICAgICAqL1xuICAgIHBhcnNlUmFuZ2UocmFuZ2U/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgeyBkYXRlRm9ybWF0ID0gJ0RELk1NLllZWVknIH0gPSB0aGlzLnByb3BzXG5cbiAgICAgICAgLy8gQHRzLWlnbm9yZSBAZml4bWUg0L3QtSDQvtC/0YDQtdC00LXQu9GP0LXRgtGB0Y8g0LHQuNCx0LvQuNC+0YLQtdGH0L3Ri9C5INC80LXRgtC+0LRcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG4gICAgICAgIHJldHVybiAhaXNVbmRlZmluZWQobW9tZW50KHJhbmdlKS5fZilcbiAgICAgICAgICAgID8gbW9tZW50KHJhbmdlKVxuICAgICAgICAgICAgOiBtb21lbnQocmFuZ2UsIGRhdGVGb3JtYXQpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KDQtdC90LTQtdGAINC/0L7Qv9Cw0L/QsFxuICAgICAqL1xuICAgIHJlbmRlclBvcFVwKCkge1xuICAgICAgICBjb25zdCB7IG1heCwgbWluLCBjb25maWdMb2NhbGUgPSAncnUnLCB0aW1lRm9ybWF0LCBkYXRlRm9ybWF0ID0gJ0RELk1NLllZWVknLCB0eXBlIH0gPSB0aGlzLnByb3BzXG4gICAgICAgIGNvbnN0IHsgaW5wdXRzLCBpc1BvcFVwVmlzaWJsZSwgaXNUaW1lU2V0IH0gPSB0aGlzLnN0YXRlXG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGlzUG9wVXBWaXNpYmxlICYmIChcbiAgICAgICAgICAgICAgICA8UG9wVXBcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdD17ZGF0ZUZvcm1hdH1cbiAgICAgICAgICAgICAgICAgICAgdGltZT17dGhpcy5kZWZhdWx0VGltZX1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT17dHlwZX1cbiAgICAgICAgICAgICAgICAgICAgaXNUaW1lU2V0PXtpc1RpbWVTZXR9XG4gICAgICAgICAgICAgICAgICAgIG1hcmtUaW1lQXNTZXQ9e3RoaXMubWFya1RpbWVBc1NldH1cbiAgICAgICAgICAgICAgICAgICAgdGltZUZvcm1hdD17dGltZUZvcm1hdH1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXsocG9wVXApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9wVXAgPSBwb3BVcFxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcG9wVXBcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2lucHV0c31cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0PXt0aGlzLnNlbGVjdH1cbiAgICAgICAgICAgICAgICAgICAgbWF4PXt0aGlzLnBhcnNlUmFuZ2UobWF4KX1cbiAgICAgICAgICAgICAgICAgICAgbWluPXt0aGlzLnBhcnNlUmFuZ2UobWluKX1cbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlPXtjb25maWdMb2NhbGV9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgIH1cblxuICAgIG9uRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGUpID0+IHtcbiAgICAgICAgY29uc3QgeyBvbkZvY3VzIH0gPSB0aGlzLnByb3BzXG5cbiAgICAgICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpc0ZvY3VzOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICgpID0+IG9uRm9jdXM/LihlKSxcbiAgICAgICAgKVxuICAgIH1cblxuICAgIHNldElucHV0UmVmID0gKHBvcHBlclJlZjogUmVmSGFuZGxlcikgPT4gKHI6IEhUTUxEaXZFbGVtZW50KSA9PiB7XG4gICAgICAgIHRoaXMuaW5wdXRHcm91cCA9IHJcbiAgICAgICAgcG9wcGVyUmVmKHIpXG4gICAgfVxuXG4gICAgc2V0Q29udHJvbFJlZiA9IChlbDogRWxlbWVudFR5cGUpID0+IHtcbiAgICAgICAgdGhpcy5jb250cm9sID0gZWxcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICBhdXRvRm9jdXMsXG4gICAgICAgICAgICBvcGVuT25Gb2N1cyA9IGZhbHNlLFxuICAgICAgICAgICAgcG9wdXBQbGFjZW1lbnQgPSAnYm90dG9tLXN0YXJ0JyxcbiAgICAgICAgICAgIG91dHB1dEZvcm1hdCA9ICdERC5NTS5ZWVlZIEhIOm1tOnNzJyxcbiAgICAgICAgICAgIHN0cmF0ZWd5ID0gJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIG1heCxcbiAgICAgICAgICAgIG1pbixcbiAgICAgICAgICAgIG9uS2V5RG93bixcbiAgICAgICAgfSA9IHRoaXMucHJvcHNcblxuICAgICAgICBjb25zdCB7IGlucHV0cywgaXNQb3BVcFZpc2libGUgfSA9IHRoaXMuc3RhdGVcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuMm8tZGF0ZS1waWNrZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJuMm8tZGF0ZS1waWNrZXJcIlxuICAgICAgICAgICAgICAgICAgICByZWY9eyhwaWNrZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlciA9IHBpY2tlclxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGlja2VyXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8TWFuYWdlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxSZWZlcmVuY2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7IHJlZiB9KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEYXRlSW5wdXRHcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29udHJvbFJlZj17dGhpcy5zZXRDb250cm9sUmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXt0aGlzLnNldElucHV0UmVmKHJlZiBhcyBSZWZIYW5kbGVyKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQ9e3RoaXMuZm9ybWF0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2lucHV0c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uSW5wdXRDaGFuZ2U9e3RoaXMub25JbnB1dENoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0Q2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRWaXNpYmlsaXR5PXt0aGlzLnNldFZpc2liaWxpdHl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXt0aGlzLm9uRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e3RoaXMub25JbnB1dEJsdXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Blbk9uRm9jdXM9e29wZW5PbkZvY3VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PXtvdXRwdXRGb3JtYXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXg9e21heH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj17bWlufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1JlZmVyZW5jZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc1BvcFVwVmlzaWJsZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBvcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9e3BvcHVwUGxhY2VtZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJhdGVneT17c3RyYXRlZ3l9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHsgcmVmLCBzdHlsZSwgcGxhY2VtZW50IH0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wbGFjZW1lbnQ9e3BsYWNlbWVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJuMm8tcG9wLXVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJQb3BVcCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Qb3BwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L01hbmFnZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKVxuICAgIH1cbn1cbiJdfQ==
487
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnB1dHMvRGF0ZVBpY2tlci9EYXRlVGltZUNvbnRyb2wudHN4Il0sIm5hbWVzIjpbIkNvbnRyb2xUeXBlIiwiREFURV9QSUNLRVIiLCJEQVRFX0lOVEVSVkFMIiwiRGF0ZVRpbWVDb250cm9sIiwicHJvcHMiLCJpbnB1dE5hbWUiLCJpc1RpbWVTZXQiLCJzdGF0ZSIsInNldFN0YXRlIiwiaW5wdXRzIiwiRGF0ZVRpbWVDb250cm9sTmFtZSIsIkRFRkFVTFRfTkFNRSIsImRhdGVUb1N0cmluZyIsIkJFR0lOIiwiRU5EIiwib25DaGFuZ2UiLCJ2YWx1ZSIsImdldFZhbHVlIiwiZGF5IiwiY2xvc2UiLCJ0eXBlIiwiaXNTYW1lT3JBZnRlciIsImlucHV0VmFsdWUiLCJpc0FmdGVyIiwiaXNQb3BVcFZpc2libGUiLCJvbkJsdXIiLCJkYXRlIiwiY2FsbGJhY2siLCJzaW5nbGVEYXRlIiwidW5kZWZpbmVkIiwiZW5kIiwiYmVnaW4iLCJpc0JlZm9yZSIsIm9uSW5wdXRDaGFuZ2UiLCJ2aXNpYmxlIiwiaXNGb2N1cyIsImUiLCJ0YXJnZXQiLCJkYXRlUGlja2VyIiwiZGF0ZUlucHV0IiwiaW5wdXRHcm91cCIsImNsYXNzTmFtZSIsImluY2x1ZGVzIiwiY29udGFpbnMiLCJ2YWx1ZVRvQmx1ciIsInNldFZpc2liaWxpdHkiLCJvbkZvY3VzIiwicG9wcGVyUmVmIiwiciIsImVsIiwiY29udHJvbCIsImRhdGVGb3JtYXQiLCJjb25maWdMb2NhbGUiLCJ0aW1lRm9ybWF0IiwiZGF0ZURpdmlkZXIiLCJvdXRwdXRGb3JtYXQiLCJkZWZhdWx0VGltZSIsImZvcm1hdCIsInV0YyIsIkRhdGUiLCJ0b1N0cmluZyIsIm1vbWVudCIsIndpbmRvdyIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9uQ2xpY2tPdXRzaWRlIiwiYmluZCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyYW5nZSIsIl9mIiwibWF4IiwibWluIiwibWFya1RpbWVBc1NldCIsInBvcFVwIiwic2VsZWN0IiwicGFyc2VSYW5nZSIsImRpc2FibGVkIiwicGxhY2Vob2xkZXIiLCJhdXRvRm9jdXMiLCJvcGVuT25Gb2N1cyIsInBvcHVwUGxhY2VtZW50Iiwic3RyYXRlZ3kiLCJvbktleURvd24iLCJwaWNrZXIiLCJyZWYiLCJzZXRDb250cm9sUmVmIiwic2V0SW5wdXRSZWYiLCJvbklucHV0Qmx1ciIsInN0eWxlIiwicGxhY2VtZW50IiwicmVuZGVyUG9wVXAiLCJSZWFjdCIsIkNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFJQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFRQTs7Ozs7Ozs7OztBQThCTyxJQUFNQSxXQUFXLEdBQUc7QUFDdkJDLEVBQUFBLFdBQVcsRUFBRSxhQURVO0FBRXZCQyxFQUFBQSxhQUFhLEVBQUU7QUFGUSxDQUFwQjs7O0lBS01DLGU7Ozs7O0FBYVQsMkJBQVlDLEtBQVosRUFBeUM7QUFBQTs7QUFBQTtBQUNyQyw4QkFBTUEsS0FBTjtBQURxQyxtR0FSTCxJQVFLO0FBQUEsbUdBTkwsSUFNSztBQUFBLGdHQUpILElBSUc7QUFBQSw4RkFGaUIsSUFFakI7QUFBQSxzR0F5RXpCLFVBQUNDLFNBQUQsRUFBdUI7QUFDbkMsVUFBUUMsU0FBUixHQUFzQixNQUFLQyxLQUEzQixDQUFRRCxTQUFSOztBQUVBLFlBQUtFLFFBQUwsQ0FBYztBQUNWRixRQUFBQSxTQUFTLGtDQUFPQSxTQUFQLDRDQUFtQkQsU0FBbkIsRUFBK0IsSUFBL0I7QUFEQyxPQUFkO0FBR0gsS0EvRXdDO0FBQUEsaUdBb0c5QixVQUFDQSxTQUFELEVBQThFO0FBQ3JGLFVBQVFJLE1BQVIsR0FBbUIsTUFBS0YsS0FBeEIsQ0FBUUUsTUFBUjs7QUFFQSxVQUFJSixTQUFTLEtBQUtLLDJCQUFvQkMsWUFBdEMsRUFBb0Q7QUFDaEQsZUFBTyxNQUFLQyxZQUFMLENBQWtCSCxNQUFNLENBQUNKLFNBQUQsQ0FBeEIsQ0FBUDtBQUNIOztBQUVELGFBQU8sQ0FDSCxNQUFLTyxZQUFMLENBQWtCSCxNQUFNLENBQUNDLDJCQUFvQkcsS0FBckIsQ0FBeEIsQ0FERyxFQUVILE1BQUtELFlBQUwsQ0FBa0JILE1BQU0sQ0FBQ0MsMkJBQW9CSSxHQUFyQixDQUF4QixDQUZHLENBQVA7QUFJSCxLQS9Hd0M7QUFBQSxpR0FvSDlCLFVBQUNULFNBQUQsRUFBdUI7QUFDOUIsVUFBUVUsUUFBUixHQUFxQixNQUFLWCxLQUExQixDQUFRVyxRQUFSOztBQUNBLFVBQU1DLEtBQUssR0FBRyxNQUFLQyxRQUFMLENBQWNaLFNBQWQsQ0FBZDs7QUFFQVUsTUFBQUEsUUFBUSxTQUFSLElBQUFBLFFBQVEsV0FBUixZQUFBQSxRQUFRLENBQUdDLEtBQUgsQ0FBUjtBQUNILEtBekh3QztBQUFBLCtGQThIaEMsVUFBQ0UsR0FBRCxFQUFxQmIsU0FBckIsRUFBeUQ7QUFBQSxVQUFqQmMsS0FBaUIsdUVBQVQsSUFBUztBQUM5RCxVQUFRVixNQUFSLEdBQW1CLE1BQUtGLEtBQXhCLENBQVFFLE1BQVI7QUFDQSxVQUFRVyxJQUFSLEdBQWlCLE1BQUtoQixLQUF0QixDQUFRZ0IsSUFBUjs7QUFFQSxVQUNJZixTQUFTLEtBQUtLLDJCQUFvQkMsWUFBbEMsSUFDQU4sU0FBUyxLQUFLSywyQkFBb0JHLEtBRGxDLElBRUNSLFNBQVMsS0FBS0ssMkJBQW9CSSxHQUFsQyxJQUNHLENBQUNMLE1BQU0sQ0FBQ0MsMkJBQW9CRyxLQUFyQixDQUhYLElBSUNSLFNBQVMsS0FBS0ssMkJBQW9CSSxHQUFsQyxJQUNHLHdCQUFPSSxHQUFQLEVBQVlHLGFBQVosQ0FBMEJaLE1BQU0sQ0FBQ0MsMkJBQW9CRyxLQUFyQixDQUFoQyxDQU5SLEVBT0U7QUFDRSxZQUFNUyxVQUFVLEdBQUcsU0FBYkEsVUFBYSxHQUFNO0FBQ3JCLGNBQ0lqQixTQUFTLEtBQUtLLDJCQUFvQkcsS0FBbEMsSUFDQUosT0FBTSxDQUFDQywyQkFBb0JJLEdBQXJCLENBRE4sSUFFQSx3QkFBT0ksR0FBUCxFQUFZSyxPQUFaLENBQW9CZCxPQUFNLENBQUNDLDJCQUFvQkksR0FBckIsQ0FBMUIsQ0FISixFQUlFO0FBQUE7O0FBQ0UscUVBQ0tULFNBREwsRUFDaUJhLEdBRGpCLDBDQUVLUiwyQkFBb0JJLEdBRnpCLEVBRStCLElBRi9CO0FBSUg7O0FBRUQsc0RBQ0tULFNBREwsRUFDaUJhLEdBRGpCO0FBR0gsU0FmRDs7QUFnQkEsWUFBUVQsT0FBUixHQUFtQixNQUFLRixLQUF4QixDQUFRRSxNQUFSOztBQUVBLGNBQUtELFFBQUwsQ0FDSTtBQUNJQyxVQUFBQSxNQUFNLGtDQUFPQSxPQUFQLEdBQWtCYSxVQUFVLEVBQTVCLENBRFY7QUFFSUUsVUFBQUEsY0FBYyxFQUN0Qm5CLFNBQVMsS0FBS0ssMkJBQW9CRyxLQUFsQyxJQUNBUixTQUFTLEtBQUtLLDJCQUFvQkksR0FEbEMsSUFFQSxDQUFDSztBQUxHLFNBREosRUFRSSxZQUFNO0FBQ0YsZ0JBQUtKLFFBQUwsQ0FBY1YsU0FBZDs7QUFDQSxjQUFJZSxJQUFJLEtBQUtwQixXQUFXLENBQUNDLFdBQXpCLEVBQXNDO0FBQ2xDLGdCQUFRd0IsT0FBUixHQUFtQixNQUFLckIsS0FBeEIsQ0FBUXFCLE1BQVI7QUFFQUEsWUFBQUEsT0FBTSxTQUFOLElBQUFBLE9BQU0sV0FBTixZQUFBQSxPQUFNLENBQUcsTUFBS1IsUUFBTCxDQUFjWixTQUFkLENBQUgsQ0FBTjtBQUNIO0FBQ0osU0FmTDtBQWlCSDtBQUNKLEtBOUt3QztBQUFBLHNHQW9MSCxVQUFDcUIsSUFBRCxFQUFPckIsU0FBUCxFQUFrQnNCLFFBQWxCLEVBQWdDO0FBQ2xFLFVBQVFsQixNQUFSLEdBQW1CLE1BQUtGLEtBQXhCLENBQVFFLE1BQVI7QUFFQSxVQUFNbUIsVUFBVSxHQUFHbkIsTUFBTSxDQUFDQywyQkFBb0JDLFlBQXJCLENBQXpCOztBQUVBLFVBQUllLElBQUksSUFBSUUsVUFBVSxLQUFLQyxTQUEzQixFQUFzQztBQUNsQyxZQUFJeEIsU0FBUyxLQUFLSywyQkFBb0JHLEtBQXRDLEVBQTZDO0FBQ3pDLGNBQU1pQixHQUFHLEdBQUdyQixNQUFNLENBQUNDLDJCQUFvQkksR0FBckIsQ0FBbEI7O0FBRUEsY0FBSVksSUFBSSxDQUFDSCxPQUFMLENBQWFPLEdBQWIsQ0FBSixFQUF1QjtBQUFBOztBQUNuQixrQkFBS3RCLFFBQUwsQ0FBYztBQUNWQyxjQUFBQSxNQUFNLDZEQUFLQywyQkFBb0JHLEtBQXpCLEVBQWlDYSxJQUFqQyw4Q0FBd0NoQiwyQkFBb0JJLEdBQTVELEVBQWtFLElBQWxFO0FBREksYUFBZCxFQUVHO0FBQUEscUJBQU0sTUFBS0MsUUFBTCxDQUFjVixTQUFkLENBQU47QUFBQSxhQUZIOztBQUlBO0FBQ0g7QUFDSjs7QUFFRCxZQUFNMEIsS0FBSyxHQUFHdEIsTUFBTSxDQUFDQywyQkFBb0JHLEtBQXJCLENBQXBCOztBQUVBLFlBQUlSLFNBQVMsS0FBSyxLQUFkLElBQXVCcUIsSUFBSSxDQUFDTSxRQUFMLENBQWNELEtBQWQsQ0FBM0IsRUFBaUQ7QUFBQTs7QUFDN0MsZ0JBQUt2QixRQUFMLENBQWM7QUFDVkMsWUFBQUEsTUFBTSw2REFBS0MsMkJBQW9CRyxLQUF6QixFQUFpQyxJQUFqQyw4Q0FBd0NILDJCQUFvQkksR0FBNUQsRUFBa0VZLElBQWxFO0FBREksV0FBZCxFQUVHO0FBQUEsbUJBQU0sTUFBS1gsUUFBTCxDQUFjVixTQUFkLENBQU47QUFBQSxXQUZIOztBQUlBO0FBQ0g7QUFDSjs7QUFFRCxZQUFLRyxRQUFMLENBQ0k7QUFDSUMsUUFBQUEsTUFBTSxrQ0FBT0EsTUFBUCw0Q0FBZ0JKLFNBQWhCLEVBQTRCcUIsSUFBNUI7QUFEVixPQURKLEVBSUk7QUFBQSxlQUFPLDRCQUFXQyxRQUFYLElBQXVCQSxRQUF2QixhQUF1QkEsUUFBdkIsdUJBQXVCQSxRQUFRLEVBQS9CLEdBQXNDLE1BQUtaLFFBQUwsQ0FBY1YsU0FBZCxDQUE3QztBQUFBLE9BSko7QUFNSCxLQXZOd0M7QUFBQSxvR0F5TjNCLFVBQUNxQixJQUFELEVBQXNCckIsU0FBdEIsRUFBNEM7QUFDdEQsVUFBUW9CLE1BQVIsR0FBbUIsTUFBS3JCLEtBQXhCLENBQVFxQixNQUFSOztBQUVBLFlBQUtRLGFBQUwsQ0FBbUJQLElBQW5CLEVBQXlCckIsU0FBekIsRUFBb0M7QUFBQSxlQUFNb0IsTUFBTixhQUFNQSxNQUFOLHVCQUFNQSxNQUFNLENBQUcsTUFBS1IsUUFBTCxDQUFjWixTQUFkLENBQUgsQ0FBWjtBQUFBLE9BQXBDO0FBQ0gsS0E3TndDO0FBQUEsc0dBa096QixVQUFDNkIsT0FBRCxFQUFzQjtBQUNsQyxZQUFLMUIsUUFBTCxDQUFjO0FBQ1ZnQixRQUFBQSxjQUFjLEVBQUVVLE9BRE47QUFFVkMsUUFBQUEsT0FBTyxFQUFFRDtBQUZDLE9BQWQ7QUFJSCxLQXZPd0M7QUFBQSx1R0EyUVQsVUFBQ0UsQ0FBRCxFQUFPO0FBQ25DLHdCQUF5QixNQUFLaEMsS0FBOUI7QUFBQSxVQUFRZ0IsSUFBUixlQUFRQSxJQUFSO0FBQUEsVUFBY0ssTUFBZCxlQUFjQSxNQUFkO0FBQ0Esd0JBQW9DLE1BQUtsQixLQUF6QztBQUFBLFVBQVE0QixPQUFSLGVBQVFBLE9BQVI7QUFBQSxVQUFpQlgsY0FBakIsZUFBaUJBLGNBQWpCO0FBQ0EsVUFBTWEsTUFBTSxHQUFHRCxDQUFDLENBQUNDLE1BQWpCOztBQUVBLFVBQUliLGNBQUosRUFBb0I7QUFDaEI7QUFDQSxZQUFNYyxVQUFVLEdBQUcsMkJBQVksTUFBS0EsVUFBakIsQ0FBbkIsQ0FGZ0IsQ0FHaEI7O0FBQ0EsWUFBTUMsU0FBUyxHQUFHLDJCQUFZLE1BQUtDLFVBQWpCLENBQWxCOztBQUVBLFlBQUksQ0FBQ0YsVUFBTCxFQUFpQjtBQUNiO0FBQ0g7O0FBQ0QsWUFDSUQsTUFBTSxDQUFDSSxTQUFQLENBQWlCQyxRQUFqQixDQUEwQixZQUExQixLQUNDLENBQUNKLFVBQVUsQ0FBQ0ssUUFBWCxDQUFvQk4sTUFBcEIsQ0FBRCxJQUFnQyxFQUFDRSxTQUFELGFBQUNBLFNBQUQsZUFBQ0EsU0FBUyxDQUFFSSxRQUFYLENBQW9CTixNQUFwQixDQUFELENBRnJDLEVBR0U7QUFDRSxjQUFJRixPQUFKLEVBQWE7QUFDVCxnQkFBSWYsSUFBSSxLQUFLLGVBQWIsRUFBOEI7QUFDMUIsa0JBQU13QixXQUFXLEdBQUcsTUFBSzNCLFFBQUwsQ0FBYyxJQUFkLENBQXBCOztBQUVBLGtCQUFJLHFCQUFRMkIsV0FBUixLQUF3Qix1QkFBTUEsV0FBTixFQUFtQixVQUFBNUIsS0FBSztBQUFBLHVCQUFJQSxLQUFKO0FBQUEsZUFBeEIsQ0FBNUIsRUFBZ0U7QUFDNURTLGdCQUFBQSxNQUFNLFNBQU4sSUFBQUEsTUFBTSxXQUFOLFlBQUFBLE1BQU0sQ0FBR21CLFdBQUgsQ0FBTjtBQUNIO0FBQ0osYUFORCxNQU1PO0FBQ0huQixjQUFBQSxNQUFNLFNBQU4sSUFBQUEsTUFBTSxXQUFOLFlBQUFBLE1BQU0sQ0FBRyxNQUFLUixRQUFMLENBQWNQLDJCQUFvQkMsWUFBbEMsQ0FBSCxDQUFOO0FBQ0g7QUFDSjs7QUFDRCxnQkFBS2tDLGFBQUwsQ0FBbUIsS0FBbkI7QUFDSDtBQUNKO0FBQ0osS0EzU3dDO0FBQUEsZ0dBeVZNLFVBQUNULENBQUQsRUFBTztBQUNsRCxVQUFRVSxPQUFSLEdBQW9CLE1BQUsxQyxLQUF6QixDQUFRMEMsT0FBUjs7QUFFQSxZQUFLdEMsUUFBTCxDQUNJO0FBQ0kyQixRQUFBQSxPQUFPLEVBQUU7QUFEYixPQURKLEVBSUk7QUFBQSxlQUFNVyxPQUFOLGFBQU1BLE9BQU4sdUJBQU1BLE9BQU8sQ0FBR1YsQ0FBSCxDQUFiO0FBQUEsT0FKSjtBQU1ILEtBbFd3QztBQUFBLG9HQW9XM0IsVUFBQ1csU0FBRDtBQUFBLGFBQTJCLFVBQUNDLENBQUQsRUFBdUI7QUFDNUQsY0FBS1IsVUFBTCxHQUFrQlEsQ0FBbEI7QUFDQUQsUUFBQUEsU0FBUyxDQUFDQyxDQUFELENBQVQ7QUFDSCxPQUhhO0FBQUEsS0FwVzJCO0FBQUEsc0dBeVd6QixVQUFDQyxFQUFELEVBQXFCO0FBQ2pDLFlBQUtDLE9BQUwsR0FBZUQsRUFBZjtBQUNILEtBM1d3QztBQUVyQyxRQUNJakMsTUFESixHQVFJWixLQVJKLENBQ0lZLEtBREo7QUFBQSw0QkFRSVosS0FSSixDQUVJK0MsVUFGSjtBQUFBLFFBRUlBLFVBRkosa0NBRWlCLFlBRmpCO0FBQUEsOEJBUUkvQyxLQVJKLENBR0lnRCxZQUhKO0FBQUEsUUFHSUEsWUFISixvQ0FHbUIsSUFIbkI7QUFBQSxRQUlJQyxVQUpKLEdBUUlqRCxLQVJKLENBSUlpRCxVQUpKO0FBQUEsNkJBUUlqRCxLQVJKLENBS0lrRCxXQUxKO0FBQUEsUUFLSUEsV0FMSixtQ0FLa0IsR0FMbEI7QUFBQSw4QkFRSWxELEtBUkosQ0FNSW1ELFlBTko7QUFBQSxRQU1JQSxZQU5KLG9DQU1tQixxQkFObkI7QUFBQSw2QkFRSW5ELEtBUkosQ0FPSW9ELFdBUEo7QUFBQSxRQU9JQSxXQVBKLG1DQU9rQixPQVBsQjtBQVVBLFVBQUtDLE1BQUwsR0FBYyw0QkFBZ0JOLFVBQWhCLEVBQTRCRSxVQUE1QixFQUF3Q0MsV0FBeEMsQ0FBZDtBQUVBLFVBQUtFLFdBQUwsR0FBbUIsNkJBQ2Z4QyxNQURlLEVBRWZ3QyxXQUZlLEVBR2Y5QywyQkFBb0JDLFlBSEwsRUFJZjBDLFVBSmUsQ0FBbkI7QUFPQSxVQUFLOUMsS0FBTCxHQUFhO0FBQ1RFLE1BQUFBLE1BQU0sRUFBRSx1QkFDSk8sTUFESSxFQUVKLE1BQUt3QyxXQUZELEVBR0pELFlBSEksRUFJSkgsWUFKSSxFQUtKMUMsMkJBQW9CQyxZQUxoQixDQURDO0FBUVRhLE1BQUFBLGNBQWMsRUFBRSxLQVJQO0FBU1RsQixNQUFBQSxTQUFTLEVBQUUsRUFURjtBQVVUNkIsTUFBQUEsT0FBTyxFQUFFO0FBVkEsS0FBYixDQXJCcUMsQ0FrQ3JDOztBQUNBLFVBQUtlLE9BQUwsR0FBZSxJQUFmO0FBbkNxQztBQW9DeEM7QUFFRDtBQUNKO0FBQ0E7QUFDSTs7Ozs7V0FDQSxtQ0FBMEI5QyxLQUExQixFQUF1RDtBQUNuRCxVQUNJWSxLQURKLEdBUUlaLEtBUkosQ0FDSVksS0FESjtBQUFBLCtCQVFJWixLQVJKLENBRUkrQyxVQUZKO0FBQUEsVUFFSUEsVUFGSixtQ0FFaUIsWUFGakI7QUFBQSxpQ0FRSS9DLEtBUkosQ0FHSWdELFlBSEo7QUFBQSxVQUdJQSxZQUhKLHFDQUdtQixJQUhuQjtBQUFBLFVBSUlDLFVBSkosR0FRSWpELEtBUkosQ0FJSWlELFVBSko7QUFBQSxnQ0FRSWpELEtBUkosQ0FLSWtELFdBTEo7QUFBQSxVQUtJQSxXQUxKLG9DQUtrQixHQUxsQjtBQUFBLGlDQVFJbEQsS0FSSixDQU1JbUQsWUFOSjtBQUFBLFVBTUlBLFlBTkoscUNBTW1CLHFCQU5uQjtBQUFBLGdDQVFJbkQsS0FSSixDQU9Jb0QsV0FQSjtBQUFBLFVBT0lBLFdBUEosb0NBT2tCLE9BUGxCO0FBVUEsV0FBS0MsTUFBTCxHQUFjLDRCQUFnQk4sVUFBaEIsRUFBNEJFLFVBQTVCLEVBQXdDQyxXQUF4QyxDQUFkO0FBRUEsV0FBS0UsV0FBTCxHQUFtQiw2QkFDZnhDLEtBRGUsRUFFZndDLFdBRmUsRUFHZjlDLDJCQUFvQkMsWUFITCxFQUlmMEMsVUFKZSxDQUFuQjtBQU9BLFdBQUs3QyxRQUFMLENBQWM7QUFDVkMsUUFBQUEsTUFBTSxFQUFFLHVCQUNKTyxLQURJLEVBRUosS0FBS3dDLFdBRkQsRUFHSkQsWUFISSxFQUlKSCxZQUpJLEVBS0oxQywyQkFBb0JDLFlBTGhCO0FBREUsT0FBZDtBQVNIOzs7O0FBVUQ7QUFDSjtBQUNBO0FBQ0ksMEJBQWFlLElBQWIsRUFBb0M7QUFDaEMseUJBQXNELEtBQUt0QixLQUEzRDtBQUFBLCtDQUFRbUQsWUFBUjtBQUFBLFVBQVFBLFlBQVIsc0NBQXVCLHFCQUF2QjtBQUFBLFVBQThDRyxHQUE5QyxnQkFBOENBLEdBQTlDOztBQUVBLFVBQUksd0JBQU9oQyxJQUFQLEtBQWdCLE9BQU9BLElBQVAsS0FBZ0IsUUFBcEMsRUFBOEM7QUFDMUMsZUFBT0EsSUFBUDtBQUNIOztBQUVELFVBQUlBLElBQUksWUFBWWlDLElBQXBCLEVBQTBCO0FBQ3RCLGVBQU9qQyxJQUFJLENBQUNrQyxRQUFMLEVBQVA7QUFDSDs7QUFFRCxhQUFPRixHQUFHLEdBQ0pHLG1CQUFPSCxHQUFQLENBQVdoQyxJQUFYLEVBQWlCK0IsTUFBakIsQ0FBd0JGLFlBQXhCLENBREksR0FFSjdCLElBQUksQ0FBQytCLE1BQUwsQ0FBWUYsWUFBWixDQUZOO0FBR0g7Ozs7QUF1SUQ7QUFDSjtBQUNBO0FBQ0ksaUNBQW9CO0FBQ2hCLFVBQUksT0FBT08sTUFBUCxLQUFrQixXQUF0QixFQUFtQztBQUMvQkMsUUFBQUEsUUFBUSxDQUFDQyxnQkFBVCxDQUEwQixXQUExQixFQUF1QyxLQUFLQyxjQUFMLENBQW9CQyxJQUFwQixDQUF5QixJQUF6QixDQUF2QztBQUNBSCxRQUFBQSxRQUFRLENBQUNDLGdCQUFULENBQTBCLFlBQTFCLEVBQXdDLEtBQUtDLGNBQUwsQ0FBb0JDLElBQXBCLENBQXlCLElBQXpCLENBQXhDO0FBQ0g7QUFDSjtBQUVEO0FBQ0o7QUFDQTs7OztXQUNJLGdDQUF1QjtBQUNuQixVQUFJLE9BQU9KLE1BQVAsS0FBa0IsV0FBdEIsRUFBbUM7QUFDL0JDLFFBQUFBLFFBQVEsQ0FBQ0ksbUJBQVQsQ0FBNkIsV0FBN0IsRUFBMEMsS0FBS0YsY0FBTCxDQUFvQkMsSUFBcEIsQ0FBeUIsSUFBekIsQ0FBMUM7QUFDQUgsUUFBQUEsUUFBUSxDQUFDSSxtQkFBVCxDQUE2QixZQUE3QixFQUEyQyxLQUFLRixjQUFMLENBQW9CQyxJQUFwQixDQUF5QixJQUF6QixDQUEzQztBQUNIO0FBQ0o7OztXQUVELDhCQUFxQjtBQUNqQixVQUFRekQsTUFBUixHQUFtQixLQUFLRixLQUF4QixDQUFRRSxNQUFSO0FBQ0EsVUFBUXNCLEtBQVIsR0FBdUJ0QixNQUF2QixDQUFRc0IsS0FBUjtBQUFBLFVBQWVELEdBQWYsR0FBdUJyQixNQUF2QixDQUFlcUIsR0FBZjs7QUFFQSxVQUFJLENBQUMsd0JBQU9DLEtBQVAsQ0FBRCxJQUFrQix3QkFBT0EsS0FBUCxFQUFjUixPQUFkLENBQXNCLHdCQUFPTyxHQUFQLENBQXRCLENBQXRCLEVBQTBEO0FBQ3RELGFBQUt0QixRQUFMLENBQWM7QUFDVkMsVUFBQUEsTUFBTSxrQ0FBT0EsTUFBUDtBQUFlcUIsWUFBQUEsR0FBRyxFQUFFO0FBQXBCO0FBREksU0FBZDtBQUdIO0FBQ0o7QUFFRDtBQUNKO0FBQ0E7Ozs7O0FBbUNJO0FBQ0o7QUFDQTtBQUNJLHdCQUFXc0MsS0FBWCxFQUEyQjtBQUN2QixrQ0FBc0MsS0FBS2hFLEtBQTNDLENBQVErQyxVQUFSO0FBQUEsVUFBUUEsVUFBUixzQ0FBcUIsWUFBckIseUJBRHVCLENBR3ZCO0FBQ0E7O0FBQ0EsYUFBTyxDQUFDLDZCQUFZLHdCQUFPaUIsS0FBUCxFQUFjQyxFQUExQixDQUFELEdBQ0Qsd0JBQU9ELEtBQVAsQ0FEQyxHQUVELHdCQUFPQSxLQUFQLEVBQWNqQixVQUFkLENBRk47QUFHSDtBQUVEO0FBQ0o7QUFDQTs7OztXQUNJLHVCQUFjO0FBQUE7O0FBQ1YseUJBQXVGLEtBQUsvQyxLQUE1RjtBQUFBLFVBQVFrRSxHQUFSLGdCQUFRQSxHQUFSO0FBQUEsVUFBYUMsR0FBYixnQkFBYUEsR0FBYjtBQUFBLCtDQUFrQm5CLFlBQWxCO0FBQUEsVUFBa0JBLFlBQWxCLHNDQUFpQyxJQUFqQztBQUFBLFVBQXVDQyxVQUF2QyxnQkFBdUNBLFVBQXZDO0FBQUEsK0NBQW1ERixVQUFuRDtBQUFBLFVBQW1EQSxVQUFuRCxzQ0FBZ0UsWUFBaEU7QUFBQSxVQUE4RS9CLElBQTlFLGdCQUE4RUEsSUFBOUU7QUFDQSx5QkFBOEMsS0FBS2IsS0FBbkQ7QUFBQSxVQUFRRSxNQUFSLGdCQUFRQSxNQUFSO0FBQUEsVUFBZ0JlLGNBQWhCLGdCQUFnQkEsY0FBaEI7QUFBQSxVQUFnQ2xCLFNBQWhDLGdCQUFnQ0EsU0FBaEM7QUFFQSxhQUNJa0IsY0FBYyxpQkFDVixnQ0FBQyxZQUFEO0FBQ0ksUUFBQSxVQUFVLEVBQUUyQixVQURoQjtBQUVJLFFBQUEsSUFBSSxFQUFFLEtBQUtLLFdBRmY7QUFHSSxRQUFBLElBQUksRUFBRXBDLElBSFY7QUFJSSxRQUFBLFNBQVMsRUFBRWQsU0FKZjtBQUtJLFFBQUEsYUFBYSxFQUFFLEtBQUtrRSxhQUx4QjtBQU1JLFFBQUEsVUFBVSxFQUFFbkIsVUFOaEI7QUFPSSxRQUFBLEdBQUcsRUFBRSxhQUFDb0IsS0FBRCxFQUFXO0FBQ1osVUFBQSxNQUFJLENBQUNBLEtBQUwsR0FBYUEsS0FBYjtBQUVBLGlCQUFPQSxLQUFQO0FBQ0gsU0FYTDtBQVlJLFFBQUEsS0FBSyxFQUFFaEUsTUFaWDtBQWFJLFFBQUEsTUFBTSxFQUFFLEtBQUtpRSxNQWJqQjtBQWNJLFFBQUEsR0FBRyxFQUFFLEtBQUtDLFVBQUwsQ0FBZ0JMLEdBQWhCLENBZFQ7QUFlSSxRQUFBLEdBQUcsRUFBRSxLQUFLSyxVQUFMLENBQWdCSixHQUFoQixDQWZUO0FBZ0JJLFFBQUEsTUFBTSxFQUFFbkI7QUFoQlosUUFGUjtBQXNCSDs7O1dBc0JELGtCQUFTO0FBQUE7O0FBQ0wseUJBWUksS0FBS2hELEtBWlQ7QUFBQSxVQUNJd0UsUUFESixnQkFDSUEsUUFESjtBQUFBLFVBRUlDLFdBRkosZ0JBRUlBLFdBRko7QUFBQSxVQUdJcEMsU0FISixnQkFHSUEsU0FISjtBQUFBLFVBSUlxQyxTQUpKLGdCQUlJQSxTQUpKO0FBQUEsK0NBS0lDLFdBTEo7QUFBQSxVQUtJQSxXQUxKLHNDQUtrQixLQUxsQjtBQUFBLCtDQU1JQyxjQU5KO0FBQUEsVUFNSUEsY0FOSixzQ0FNcUIsY0FOckI7QUFBQSwrQ0FPSXpCLFlBUEo7QUFBQSxVQU9JQSxZQVBKLHNDQU9tQixxQkFQbkI7QUFBQSwrQ0FRSTBCLFFBUko7QUFBQSxVQVFJQSxRQVJKLHNDQVFlLFVBUmY7QUFBQSxVQVNJWCxHQVRKLGdCQVNJQSxHQVRKO0FBQUEsVUFVSUMsR0FWSixnQkFVSUEsR0FWSjtBQUFBLFVBV0lXLFNBWEosZ0JBV0lBLFNBWEo7QUFjQSx5QkFBbUMsS0FBSzNFLEtBQXhDO0FBQUEsVUFBUUUsTUFBUixnQkFBUUEsTUFBUjtBQUFBLFVBQWdCZSxjQUFoQixnQkFBZ0JBLGNBQWhCO0FBRUEsMEJBQ0k7QUFBSyxRQUFBLFNBQVMsRUFBQztBQUFmLHNCQUNJO0FBQ0ksUUFBQSxTQUFTLEVBQUMsaUJBRGQ7QUFFSSxRQUFBLEdBQUcsRUFBRSxhQUFDMkQsTUFBRCxFQUFZO0FBQ2IsVUFBQSxNQUFJLENBQUM3QyxVQUFMLEdBQWtCNkMsTUFBbEI7QUFFQSxpQkFBT0EsTUFBUDtBQUNIO0FBTkwsc0JBUUksZ0NBQUMsb0JBQUQscUJBQ0ksZ0NBQUMsc0JBQUQsUUFDSztBQUFBLFlBQUdDLEdBQUgsU0FBR0EsR0FBSDtBQUFBLDRCQUNHLGdDQUFDLDhCQUFEO0FBQ0ksVUFBQSxhQUFhLEVBQUUsTUFBSSxDQUFDQyxhQUR4QjtBQUVJLFVBQUEsR0FBRyxFQUFFLE1BQUksQ0FBQ0MsV0FBTCxDQUFpQkYsR0FBakIsQ0FGVDtBQUdJLFVBQUEsVUFBVSxFQUFFLE1BQUksQ0FBQzNCLE1BSHJCO0FBSUksVUFBQSxRQUFRLEVBQUVtQixRQUpkO0FBS0ksVUFBQSxXQUFXLEVBQUVDLFdBTGpCO0FBTUksVUFBQSxLQUFLLEVBQUVwRSxNQU5YO0FBT0ksVUFBQSxhQUFhLEVBQUUsTUFBSSxDQUFDd0IsYUFQeEI7QUFRSSxVQUFBLGNBQWMsRUFBRVEsU0FScEI7QUFTSSxVQUFBLGFBQWEsRUFBRSxNQUFJLENBQUNJLGFBVHhCO0FBVUksVUFBQSxPQUFPLEVBQUUsTUFBSSxDQUFDQyxPQVZsQjtBQVdJLFVBQUEsTUFBTSxFQUFFLE1BQUksQ0FBQ3lDLFdBWGpCO0FBWUksVUFBQSxTQUFTLEVBQUVMLFNBWmY7QUFhSSxVQUFBLFNBQVMsRUFBRUosU0FiZjtBQWNJLFVBQUEsV0FBVyxFQUFFQyxXQWRqQjtBQWVJLFVBQUEsWUFBWSxFQUFFeEIsWUFmbEI7QUFnQkksVUFBQSxHQUFHLEVBQUVlLEdBaEJUO0FBaUJJLFVBQUEsR0FBRyxFQUFFQztBQWpCVCxVQURIO0FBQUEsT0FETCxDQURKLEVBd0JLL0MsY0FBYyxpQkFDWCxnQ0FBQyxtQkFBRDtBQUNJLFFBQUEsU0FBUyxFQUFFd0QsY0FEZjtBQUVJLFFBQUEsUUFBUSxFQUFFQztBQUZkLFNBSUs7QUFBQSxZQUFHRyxHQUFILFNBQUdBLEdBQUg7QUFBQSxZQUFRSSxLQUFSLFNBQVFBLEtBQVI7QUFBQSxZQUFlQyxTQUFmLFNBQWVBLFNBQWY7QUFBQSw0QkFDRztBQUNJLFVBQUEsR0FBRyxFQUFFTCxHQURUO0FBRUksVUFBQSxLQUFLLEVBQUVJLEtBRlg7QUFHSSw0QkFBZ0JDLFNBSHBCO0FBSUksVUFBQSxTQUFTLEVBQUM7QUFKZCxXQU1LLE1BQUksQ0FBQ0MsV0FBTCxFQU5MLENBREg7QUFBQSxPQUpMLENBekJSLENBUkosQ0FESixDQURKO0FBdURIOzs7RUFsY2dDQyxrQkFBTUMsUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBFbGVtZW50VHlwZSwgRm9jdXNFdmVudEhhbmRsZXIsIEtleWJvYXJkRXZlbnQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGZpbmRET01Ob2RlIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IGV2ZXJ5IGZyb20gJ2xvZGFzaC9ldmVyeSdcbmltcG9ydCBpc1VuZGVmaW5lZCBmcm9tICdsb2Rhc2gvaXNVbmRlZmluZWQnXG5pbXBvcnQgaXNGdW5jdGlvbiBmcm9tICdsb2Rhc2gvaXNGdW5jdGlvbidcbmltcG9ydCBpc051bGwgZnJvbSAnbG9kYXNoL2lzTnVsbCdcbmltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50L21vbWVudCdcbmltcG9ydCB7IE1hbmFnZXIsIFBvcHBlciwgUmVmZXJlbmNlLCBSZWZIYW5kbGVyIH0gZnJvbSAncmVhY3QtcG9wcGVyJ1xuaW1wb3J0IHsgV3JhcHBlckluc3RhbmNlIH0gZnJvbSAncmVhY3Qtb25jbGlja291dHNpZGUnXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnbG9kYXNoJ1xuXG5pbXBvcnQgeyBUQmFzZUlucHV0UHJvcHMsIFRCYXNlUHJvcHMgfSBmcm9tICcuLi8uLi90eXBlcydcblxuaW1wb3J0IHsgYnVpbGREYXRlRm9ybWF0LCBtYXBUb0RlZmF1bHRUaW1lLCBtYXBUb1ZhbHVlIH0gZnJvbSAnLi91dGlscydcbmltcG9ydCB7IERhdGVJbnB1dEdyb3VwIH0gZnJvbSAnLi9EYXRlSW5wdXRHcm91cCdcbmltcG9ydCB7IFBvcFVwIH0gZnJvbSAnLi9Qb3BVcCdcbmltcG9ydCB7XG4gICAgRGF0ZVRpbWVDb250cm9sTmFtZSwgRGF0ZVR5cGUsXG4gICAgRGF0ZVBpY2tlclZhbHVlLFxuICAgIE9uSW5wdXRDaGFuZ2VIYW5kbGVyLCBQb3BwZXJQbGFjZW1lbnQsXG4gICAgUG9wcGVyUG9zaXRpb25pbmdTdHJhdGVneSxcbiAgICBEZWZhdWx0VGltZSxcbn0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0ICcuLi8uLi9zdHlsZXMvY29tcG9uZW50cy9EYXRlUGlja2VyLnNjc3MnXG5cbnR5cGUgRGF0ZVRpbWVDb250cm9sUHJvcHMgPSBUQmFzZVByb3BzICYgT21pdDxUQmFzZUlucHV0UHJvcHM8RGF0ZVBpY2tlclZhbHVlPiwgJ29uQ2hhbmdlJyB8ICdvbkJsdXInPiAmIHtcbiAgICBjb25maWdMb2NhbGU/OiAnZW4nIHwgJ3J1JyxcbiAgICBkYXRlRGl2aWRlcj86IHN0cmluZyxcbiAgICBkYXRlRm9ybWF0Pzogc3RyaW5nLFxuICAgIGRlZmF1bHRUaW1lPzogc3RyaW5nLFxuICAgIG1heD86IHN0cmluZyxcbiAgICBtaW4/OiBzdHJpbmcsXG4gICAgb25CbHVyPyh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IEFycmF5PHN0cmluZyB8IG51bGw+KTogdm9pZCxcbiAgICBvbkNoYW5nZT8odmFsdWU6IHN0cmluZyB8IG51bGwgfCBBcnJheTxzdHJpbmcgfCBudWxsPik6IHZvaWQsXG4gICAgb25Gb2N1cz86IEZvY3VzRXZlbnRIYW5kbGVyLFxuICAgIG9uS2V5RG93bj8oZXZ0OiBLZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KTogdm9pZCxcbiAgICBvcGVuT25Gb2N1cz86IGJvb2xlYW4sXG4gICAgb3V0cHV0Rm9ybWF0Pzogc3RyaW5nLFxuICAgIHBvcHVwUGxhY2VtZW50PzogUG9wcGVyUGxhY2VtZW50LFxuICAgIHN0cmF0ZWd5OiBQb3BwZXJQb3NpdGlvbmluZ1N0cmF0ZWd5LFxuICAgIHRpbWVGb3JtYXQ/OiBzdHJpbmcsXG4gICAgdHlwZT86IHN0cmluZyxcbiAgICB1dGM/OiBib29sZWFuLFxuICAgIHZhbHVlOiBEYXRlUGlja2VyVmFsdWVcbn1cblxudHlwZSBEYXRlVGltZUNvbnRyb2xTdGF0ZSA9IHtcbiAgICBpbnB1dHM6IFJlY29yZDxzdHJpbmcsIE1vbWVudCB8IG51bGw+LFxuICAgIGlzRm9jdXM6IGJvb2xlYW4sXG4gICAgaXNQb3BVcFZpc2libGU6IGJvb2xlYW4sXG4gICAgaXNUaW1lU2V0OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuIHwgdW5kZWZpbmVkPlxufVxuXG5leHBvcnQgY29uc3QgQ29udHJvbFR5cGUgPSB7XG4gICAgREFURV9QSUNLRVI6ICdkYXRlLXBpY2tlcicsXG4gICAgREFURV9JTlRFUlZBTDogJ2RhdGUtaW50ZXJ2YWwnLFxufVxuXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVDb250cm9sIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PERhdGVUaW1lQ29udHJvbFByb3BzLCBEYXRlVGltZUNvbnRyb2xTdGF0ZT4ge1xuICAgIGZvcm1hdDogc3RyaW5nXG5cbiAgICBkZWZhdWx0VGltZTogRGVmYXVsdFRpbWVcblxuICAgIGRhdGVQaWNrZXI6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCA9IG51bGxcblxuICAgIGlucHV0R3JvdXA6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCA9IG51bGxcblxuICAgIHByaXZhdGUgY29udHJvbDogbnVsbCB8IEVsZW1lbnRUeXBlID0gbnVsbFxuXG4gICAgcHJpdmF0ZSBwb3BVcDogV3JhcHBlckluc3RhbmNlPHVua25vd24sIHVua25vd24+IHwgbnVsbCA9IG51bGxcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzOiBEYXRlVGltZUNvbnRyb2xQcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcylcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBkYXRlRm9ybWF0ID0gJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgY29uZmlnTG9jYWxlID0gJ3J1JyxcbiAgICAgICAgICAgIHRpbWVGb3JtYXQsXG4gICAgICAgICAgICBkYXRlRGl2aWRlciA9ICcgJyxcbiAgICAgICAgICAgIG91dHB1dEZvcm1hdCA9ICdERC5NTS5ZWVlZIEhIOm1tOnNzJyxcbiAgICAgICAgICAgIGRlZmF1bHRUaW1lID0gJzAwOjAwJyxcbiAgICAgICAgfSA9IHByb3BzXG5cbiAgICAgICAgdGhpcy5mb3JtYXQgPSBidWlsZERhdGVGb3JtYXQoZGF0ZUZvcm1hdCwgdGltZUZvcm1hdCwgZGF0ZURpdmlkZXIpXG5cbiAgICAgICAgdGhpcy5kZWZhdWx0VGltZSA9IG1hcFRvRGVmYXVsdFRpbWUoXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIGRlZmF1bHRUaW1lLFxuICAgICAgICAgICAgRGF0ZVRpbWVDb250cm9sTmFtZS5ERUZBVUxUX05BTUUsXG4gICAgICAgICAgICB0aW1lRm9ybWF0LFxuICAgICAgICApXG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIGlucHV0czogbWFwVG9WYWx1ZShcbiAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRUaW1lLFxuICAgICAgICAgICAgICAgIG91dHB1dEZvcm1hdCxcbiAgICAgICAgICAgICAgICBjb25maWdMb2NhbGUsXG4gICAgICAgICAgICAgICAgRGF0ZVRpbWVDb250cm9sTmFtZS5ERUZBVUxUX05BTUUsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgaXNQb3BVcFZpc2libGU6IGZhbHNlLFxuICAgICAgICAgICAgaXNUaW1lU2V0OiB7fSxcbiAgICAgICAgICAgIGlzRm9jdXM6IGZhbHNlLFxuICAgICAgICB9XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG4gICAgICAgIHRoaXMuY29udHJvbCA9IG51bGxcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0L7RgtC60LAg0L3QvtCy0YvRhSDQv9GA0L7Qv9GB0L7QslxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1kZXByZWNhdGVkXG4gICAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhwcm9wczogRGF0ZVRpbWVDb250cm9sUHJvcHMpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBkYXRlRm9ybWF0ID0gJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgY29uZmlnTG9jYWxlID0gJ3J1JyxcbiAgICAgICAgICAgIHRpbWVGb3JtYXQsXG4gICAgICAgICAgICBkYXRlRGl2aWRlciA9ICcgJyxcbiAgICAgICAgICAgIG91dHB1dEZvcm1hdCA9ICdERC5NTS5ZWVlZIEhIOm1tOnNzJyxcbiAgICAgICAgICAgIGRlZmF1bHRUaW1lID0gJzAwOjAwJyxcbiAgICAgICAgfSA9IHByb3BzXG5cbiAgICAgICAgdGhpcy5mb3JtYXQgPSBidWlsZERhdGVGb3JtYXQoZGF0ZUZvcm1hdCwgdGltZUZvcm1hdCwgZGF0ZURpdmlkZXIpXG5cbiAgICAgICAgdGhpcy5kZWZhdWx0VGltZSA9IG1hcFRvRGVmYXVsdFRpbWUoXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIGRlZmF1bHRUaW1lLFxuICAgICAgICAgICAgRGF0ZVRpbWVDb250cm9sTmFtZS5ERUZBVUxUX05BTUUsXG4gICAgICAgICAgICB0aW1lRm9ybWF0LFxuICAgICAgICApXG5cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBpbnB1dHM6IG1hcFRvVmFsdWUoXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0VGltZSxcbiAgICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQsXG4gICAgICAgICAgICAgICAgY29uZmlnTG9jYWxlLFxuICAgICAgICAgICAgICAgIERhdGVUaW1lQ29udHJvbE5hbWUuREVGQVVMVF9OQU1FLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBtYXJrVGltZUFzU2V0ID0gKGlucHV0TmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgaXNUaW1lU2V0IH0gPSB0aGlzLnN0YXRlXG5cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBpc1RpbWVTZXQ6IHsgLi4uaXNUaW1lU2V0LCBbaW5wdXROYW1lXTogdHJ1ZSB9LFxuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQuNCy0LXQtNC10L3QuNC1INC6INGB0YLRgNC+0LrQtVxuICAgICAqL1xuICAgIGRhdGVUb1N0cmluZyhkYXRlOiBEYXRlVHlwZSB8IG51bGwpIHtcbiAgICAgICAgY29uc3QgeyBvdXRwdXRGb3JtYXQgPSAnREQuTU0uWVlZWSBISDptbTpzcycsIHV0YyB9ID0gdGhpcy5wcm9wc1xuXG4gICAgICAgIGlmIChpc051bGwoZGF0ZSkgfHwgdHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZS50b1N0cmluZygpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdXRjXG4gICAgICAgICAgICA/IG1vbWVudC51dGMoZGF0ZSkuZm9ybWF0KG91dHB1dEZvcm1hdClcbiAgICAgICAgICAgIDogZGF0ZS5mb3JtYXQob3V0cHV0Rm9ybWF0KVxuICAgIH1cblxuICAgIGdldFZhbHVlID0gKGlucHV0TmFtZTogc3RyaW5nIHwgbnVsbCk6IFtzdHJpbmcgfCBudWxsLCBzdHJpbmcgfCBudWxsXSB8IHN0cmluZyB8IG51bGwgPT4ge1xuICAgICAgICBjb25zdCB7IGlucHV0cyB9ID0gdGhpcy5zdGF0ZVxuXG4gICAgICAgIGlmIChpbnB1dE5hbWUgPT09IERhdGVUaW1lQ29udHJvbE5hbWUuREVGQVVMVF9OQU1FKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlVG9TdHJpbmcoaW5wdXRzW2lucHV0TmFtZV0pXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdGhpcy5kYXRlVG9TdHJpbmcoaW5wdXRzW0RhdGVUaW1lQ29udHJvbE5hbWUuQkVHSU5dKSxcbiAgICAgICAgICAgIHRoaXMuZGF0ZVRvU3RyaW5nKGlucHV0c1tEYXRlVGltZUNvbnRyb2xOYW1lLkVORF0pLFxuICAgICAgICBdXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0LLRi9C30L7QsiBvbkNoYW5nZVxuICAgICAqL1xuICAgIG9uQ2hhbmdlID0gKGlucHV0TmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHNcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKGlucHV0TmFtZSlcblxuICAgICAgICBvbkNoYW5nZT8uKHZhbHVlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvQsdC+0YAg0LTQsNGC0YssINC/0YDQvtC60LjQtNGL0LLQsNC10YLRgdGPINCyINC60LDQu9C10L3QtNCw0YDRjFxuICAgICAqL1xuICAgIHNlbGVjdCA9IChkYXk6IE1vbWVudCB8IG51bGwsIGlucHV0TmFtZTogc3RyaW5nLCBjbG9zZSA9IHRydWUpID0+IHtcbiAgICAgICAgY29uc3QgeyBpbnB1dHMgfSA9IHRoaXMuc3RhdGVcbiAgICAgICAgY29uc3QgeyB0eXBlIH0gPSB0aGlzLnByb3BzXG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgaW5wdXROYW1lID09PSBEYXRlVGltZUNvbnRyb2xOYW1lLkRFRkFVTFRfTkFNRSB8fFxuICAgICAgICAgICAgaW5wdXROYW1lID09PSBEYXRlVGltZUNvbnRyb2xOYW1lLkJFR0lOIHx8XG4gICAgICAgICAgICAoaW5wdXROYW1lID09PSBEYXRlVGltZUNvbnRyb2xOYW1lLkVORCAmJlxuICAgICAgICAgICAgICAgICFpbnB1dHNbRGF0ZVRpbWVDb250cm9sTmFtZS5CRUdJTl0pIHx8XG4gICAgICAgICAgICAoaW5wdXROYW1lID09PSBEYXRlVGltZUNvbnRyb2xOYW1lLkVORCAmJlxuICAgICAgICAgICAgICAgIG1vbWVudChkYXkpLmlzU2FtZU9yQWZ0ZXIoaW5wdXRzW0RhdGVUaW1lQ29udHJvbE5hbWUuQkVHSU5dKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgaW5wdXROYW1lID09PSBEYXRlVGltZUNvbnRyb2xOYW1lLkJFR0lOICYmXG4gICAgICAgICAgICAgICAgICAgIGlucHV0c1tEYXRlVGltZUNvbnRyb2xOYW1lLkVORF0gJiZcbiAgICAgICAgICAgICAgICAgICAgbW9tZW50KGRheSkuaXNBZnRlcihpbnB1dHNbRGF0ZVRpbWVDb250cm9sTmFtZS5FTkRdKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2lucHV0TmFtZV06IGRheSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtEYXRlVGltZUNvbnRyb2xOYW1lLkVORF06IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBbaW5wdXROYW1lXTogZGF5LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgaW5wdXRzIH0gPSB0aGlzLnN0YXRlXG5cbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dHM6IHsgLi4uaW5wdXRzLCAuLi5pbnB1dFZhbHVlKCkgfSxcbiAgICAgICAgICAgICAgICAgICAgaXNQb3BVcFZpc2libGU6XG4gICAgICAgICAgICBpbnB1dE5hbWUgPT09IERhdGVUaW1lQ29udHJvbE5hbWUuQkVHSU4gfHxcbiAgICAgICAgICAgIGlucHV0TmFtZSA9PT0gRGF0ZVRpbWVDb250cm9sTmFtZS5FTkQgfHxcbiAgICAgICAgICAgICFjbG9zZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShpbnB1dE5hbWUpXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSBDb250cm9sVHlwZS5EQVRFX1BJQ0tFUikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBvbkJsdXIgfSA9IHRoaXMucHJvcHNcblxuICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPy4odGhpcy5nZXRWYWx1ZShpbnB1dE5hbWUpKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvQsdC+0YAg0LTQsNGC0YssINC/0YDQvtC60LjQtNGL0LLQsNC10YLRgdGPINCyINC40L3Qv9GD0YJcbiAgICAgKiBAdG9kbyDQvtCx0YrQtdC00LjQvdC40YLRjCDQvNC10YLQvtC00Ysgc2VsZWN0INC4IG9uSW5wdXRDaGFuZ2Ug0LIgMSDQvNC10YLQvtC0XG4gICAgICovXG4gICAgb25JbnB1dENoYW5nZTogT25JbnB1dENoYW5nZUhhbmRsZXIgPSAoZGF0ZSwgaW5wdXROYW1lLCBjYWxsYmFjaz8pID0+IHtcbiAgICAgICAgY29uc3QgeyBpbnB1dHMgfSA9IHRoaXMuc3RhdGVcblxuICAgICAgICBjb25zdCBzaW5nbGVEYXRlID0gaW5wdXRzW0RhdGVUaW1lQ29udHJvbE5hbWUuREVGQVVMVF9OQU1FXVxuXG4gICAgICAgIGlmIChkYXRlICYmIHNpbmdsZURhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKGlucHV0TmFtZSA9PT0gRGF0ZVRpbWVDb250cm9sTmFtZS5CRUdJTikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IGlucHV0c1tEYXRlVGltZUNvbnRyb2xOYW1lLkVORF1cblxuICAgICAgICAgICAgICAgIGlmIChkYXRlLmlzQWZ0ZXIoZW5kKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0czogeyBbRGF0ZVRpbWVDb250cm9sTmFtZS5CRUdJTl06IGRhdGUsIFtEYXRlVGltZUNvbnRyb2xOYW1lLkVORF06IG51bGwgfSxcbiAgICAgICAgICAgICAgICAgICAgfSwgKCkgPT4gdGhpcy5vbkNoYW5nZShpbnB1dE5hbWUpKVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgYmVnaW4gPSBpbnB1dHNbRGF0ZVRpbWVDb250cm9sTmFtZS5CRUdJTl1cblxuICAgICAgICAgICAgaWYgKGlucHV0TmFtZSA9PT0gJ2VuZCcgJiYgZGF0ZS5pc0JlZm9yZShiZWdpbikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRzOiB7IFtEYXRlVGltZUNvbnRyb2xOYW1lLkJFR0lOXTogbnVsbCwgW0RhdGVUaW1lQ29udHJvbE5hbWUuRU5EXTogZGF0ZSB9LFxuICAgICAgICAgICAgICAgIH0sICgpID0+IHRoaXMub25DaGFuZ2UoaW5wdXROYW1lKSlcblxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpbnB1dHM6IHsgLi4uaW5wdXRzLCBbaW5wdXROYW1lXTogZGF0ZSB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICgpID0+IChpc0Z1bmN0aW9uKGNhbGxiYWNrKSA/IGNhbGxiYWNrPy4oKSA6IHRoaXMub25DaGFuZ2UoaW5wdXROYW1lKSksXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBvbklucHV0Qmx1ciA9IChkYXRlOiBNb21lbnQgfCBudWxsLCBpbnB1dE5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB7IG9uQmx1ciB9ID0gdGhpcy5wcm9wc1xuXG4gICAgICAgIHRoaXMub25JbnB1dENoYW5nZShkYXRlLCBpbnB1dE5hbWUsICgpID0+IG9uQmx1cj8uKHRoaXMuZ2V0VmFsdWUoaW5wdXROYW1lKSkpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLQuNC00LjQvNC+0YHRgtGMINC/0L7Qv9Cw0L/QsFxuICAgICAqL1xuICAgIHNldFZpc2liaWxpdHkgPSAodmlzaWJsZTogYm9vbGVhbikgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIGlzUG9wVXBWaXNpYmxlOiB2aXNpYmxlLFxuICAgICAgICAgICAgaXNGb2N1czogdmlzaWJsZSxcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQndCw0LLQtdGI0LjQstCw0L3QuNC1INC70LjRgdGC0LXQvdC10YDQvtCyINC00LvRjyDQv9C+0Y/QstC70LXQvdC40Y8gLyDQuNGB0YfQtdC30LDQvdC40Y8g0L/QvtC/0LDQv9CwXG4gICAgICovXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5vbkNsaWNrT3V0c2lkZS5iaW5kKHRoaXMpKVxuICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMub25DbGlja091dHNpZGUuYmluZCh0aGlzKSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LTQsNC70LXQvdC40LUg0LvQuNGB0YLQtdC90LXRgNC+0LIg0LTQu9GPINC/0L7Rj9Cy0LvQtdC90LjRjyAvINC40YHRh9C10LfQsNC90LjRjyDQv9C+0L/QsNC/0LAg0L/QvtGB0LvQtSDQsNC90LzQsNGD0L3RgtCwXG4gICAgICovXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5vbkNsaWNrT3V0c2lkZS5iaW5kKHRoaXMpKVxuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMub25DbGlja091dHNpZGUuYmluZCh0aGlzKSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgICAgY29uc3QgeyBpbnB1dHMgfSA9IHRoaXMuc3RhdGVcbiAgICAgICAgY29uc3QgeyBiZWdpbiwgZW5kIH0gPSBpbnB1dHNcblxuICAgICAgICBpZiAoIWlzTnVsbChiZWdpbikgJiYgbW9tZW50KGJlZ2luKS5pc0FmdGVyKG1vbWVudChlbmQpKSkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgaW5wdXRzOiB7IC4uLmlucHV0cywgZW5kOiBudWxsIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdGA0LDQsdC+0YLQutCwINC60LvQuNC60LAg0LfQsCDQv9GA0LXQtNC10LvQsNC80Lgg0L/QvtC/0LDQv9CwXG4gICAgICovXG4gICAgb25DbGlja091dHNpZGU6IEV2ZW50TGlzdGVuZXIgPSAoZSkgPT4ge1xuICAgICAgICBjb25zdCB7IHR5cGUsIG9uQmx1ciB9ID0gdGhpcy5wcm9wc1xuICAgICAgICBjb25zdCB7IGlzRm9jdXMsIGlzUG9wVXBWaXNpYmxlIH0gPSB0aGlzLnN0YXRlXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50XG5cbiAgICAgICAgaWYgKGlzUG9wVXBWaXNpYmxlKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tZmluZC1kb20tbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0ZVBpY2tlciA9IGZpbmRET01Ob2RlKHRoaXMuZGF0ZVBpY2tlcilcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1maW5kLWRvbS1ub2RlXG4gICAgICAgICAgICBjb25zdCBkYXRlSW5wdXQgPSBmaW5kRE9NTm9kZSh0aGlzLmlucHV0R3JvdXApXG5cbiAgICAgICAgICAgIGlmICghZGF0ZVBpY2tlcikge1xuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHRhcmdldC5jbGFzc05hbWUuaW5jbHVkZXMoJ24yby1wb3AtdXAnKSB8fFxuICAgICAgICAgICAgICAgICghZGF0ZVBpY2tlci5jb250YWlucyh0YXJnZXQpICYmICFkYXRlSW5wdXQ/LmNvbnRhaW5zKHRhcmdldCkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNGb2N1cykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2RhdGUtaW50ZXJ2YWwnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZVRvQmx1ciA9IHRoaXMuZ2V0VmFsdWUobnVsbClcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzQXJyYXkodmFsdWVUb0JsdXIpICYmIGV2ZXJ5KHZhbHVlVG9CbHVyLCB2YWx1ZSA9PiB2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI/Lih2YWx1ZVRvQmx1cilcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cj8uKHRoaXMuZ2V0VmFsdWUoRGF0ZVRpbWVDb250cm9sTmFtZS5ERUZBVUxUX05BTUUpKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmlzaWJpbGl0eShmYWxzZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQuNCy0L7QtNC40YIgbWluLCBtYXgg0LogbW9tZW50INC+0LHRitC10LrRgtGDLCDRgtC10LrRg9GJ0LXQvNGDINGE0L7RgNC80LDRgtGDXG4gICAgICovXG4gICAgcGFyc2VSYW5nZShyYW5nZT86IHN0cmluZykge1xuICAgICAgICBjb25zdCB7IGRhdGVGb3JtYXQgPSAnREQuTU0uWVlZWScgfSA9IHRoaXMucHJvcHNcblxuICAgICAgICAvLyBAdHMtaWdub3JlIEBmaXhtZSDQvdC1INC+0L/RgNC10LTQtdC70Y/QtdGC0YHRjyDQsdC40LHQu9C40L7RgtC10YfQvdGL0Lkg0LzQtdGC0L7QtFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICAgICAgcmV0dXJuICFpc1VuZGVmaW5lZChtb21lbnQocmFuZ2UpLl9mKVxuICAgICAgICAgICAgPyBtb21lbnQocmFuZ2UpXG4gICAgICAgICAgICA6IG1vbWVudChyYW5nZSwgZGF0ZUZvcm1hdClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQoNC10L3QtNC10YAg0L/QvtC/0LDQv9CwXG4gICAgICovXG4gICAgcmVuZGVyUG9wVXAoKSB7XG4gICAgICAgIGNvbnN0IHsgbWF4LCBtaW4sIGNvbmZpZ0xvY2FsZSA9ICdydScsIHRpbWVGb3JtYXQsIGRhdGVGb3JtYXQgPSAnREQuTU0uWVlZWScsIHR5cGUgfSA9IHRoaXMucHJvcHNcbiAgICAgICAgY29uc3QgeyBpbnB1dHMsIGlzUG9wVXBWaXNpYmxlLCBpc1RpbWVTZXQgfSA9IHRoaXMuc3RhdGVcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaXNQb3BVcFZpc2libGUgJiYgKFxuICAgICAgICAgICAgICAgIDxQb3BVcFxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0PXtkYXRlRm9ybWF0fVxuICAgICAgICAgICAgICAgICAgICB0aW1lPXt0aGlzLmRlZmF1bHRUaW1lfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPXt0eXBlfVxuICAgICAgICAgICAgICAgICAgICBpc1RpbWVTZXQ9e2lzVGltZVNldH1cbiAgICAgICAgICAgICAgICAgICAgbWFya1RpbWVBc1NldD17dGhpcy5tYXJrVGltZUFzU2V0fVxuICAgICAgICAgICAgICAgICAgICB0aW1lRm9ybWF0PXt0aW1lRm9ybWF0fVxuICAgICAgICAgICAgICAgICAgICByZWY9eyhwb3BVcCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3BVcCA9IHBvcFVwXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwb3BVcFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17aW5wdXRzfVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3Q9e3RoaXMuc2VsZWN0fVxuICAgICAgICAgICAgICAgICAgICBtYXg9e3RoaXMucGFyc2VSYW5nZShtYXgpfVxuICAgICAgICAgICAgICAgICAgICBtaW49e3RoaXMucGFyc2VSYW5nZShtaW4pfVxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU9e2NvbmZpZ0xvY2FsZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgfVxuXG4gICAgb25Gb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZSkgPT4ge1xuICAgICAgICBjb25zdCB7IG9uRm9jdXMgfSA9IHRoaXMucHJvcHNcblxuICAgICAgICB0aGlzLnNldFN0YXRlKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlzRm9jdXM6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKCkgPT4gb25Gb2N1cz8uKGUpLFxuICAgICAgICApXG4gICAgfVxuXG4gICAgc2V0SW5wdXRSZWYgPSAocG9wcGVyUmVmOiBSZWZIYW5kbGVyKSA9PiAocjogSFRNTERpdkVsZW1lbnQpID0+IHtcbiAgICAgICAgdGhpcy5pbnB1dEdyb3VwID0gclxuICAgICAgICBwb3BwZXJSZWYocilcbiAgICB9XG5cbiAgICBzZXRDb250cm9sUmVmID0gKGVsOiBFbGVtZW50VHlwZSkgPT4ge1xuICAgICAgICB0aGlzLmNvbnRyb2wgPSBlbFxuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcixcbiAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgIGF1dG9Gb2N1cyxcbiAgICAgICAgICAgIG9wZW5PbkZvY3VzID0gZmFsc2UsXG4gICAgICAgICAgICBwb3B1cFBsYWNlbWVudCA9ICdib3R0b20tc3RhcnQnLFxuICAgICAgICAgICAgb3V0cHV0Rm9ybWF0ID0gJ0RELk1NLllZWVkgSEg6bW06c3MnLFxuICAgICAgICAgICAgc3RyYXRlZ3kgPSAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgbWF4LFxuICAgICAgICAgICAgbWluLFxuICAgICAgICAgICAgb25LZXlEb3duLFxuICAgICAgICB9ID0gdGhpcy5wcm9wc1xuXG4gICAgICAgIGNvbnN0IHsgaW5wdXRzLCBpc1BvcFVwVmlzaWJsZSB9ID0gdGhpcy5zdGF0ZVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm4yby1kYXRlLXBpY2tlci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm4yby1kYXRlLXBpY2tlclwiXG4gICAgICAgICAgICAgICAgICAgIHJlZj17KHBpY2tlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyID0gcGlja2VyXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwaWNrZXJcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxNYW5hZ2VyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFJlZmVyZW5jZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHsgcmVmIH0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERhdGVJbnB1dEdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRDb250cm9sUmVmPXt0aGlzLnNldENvbnRyb2xSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e3RoaXMuc2V0SW5wdXRSZWYocmVmIGFzIFJlZkhhbmRsZXIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdD17dGhpcy5mb3JtYXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17aW5wdXRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25JbnB1dENoYW5nZT17dGhpcy5vbklucHV0Q2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRDbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFZpc2liaWxpdHk9e3RoaXMuc2V0VmlzaWJpbGl0eX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e3RoaXMub25Gb2N1c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cj17dGhpcy5vbklucHV0Qmx1cn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuT25Gb2N1cz17b3Blbk9uRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQ9e291dHB1dEZvcm1hdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heD17bWF4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPXttaW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUmVmZXJlbmNlPlxuICAgICAgICAgICAgICAgICAgICAgICAge2lzUG9wVXBWaXNpYmxlICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UG9wcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD17cG9wdXBQbGFjZW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmF0ZWd5PXtzdHJhdGVneX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyByZWYsIHN0eWxlLCBwbGFjZW1lbnQgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17cmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXBsYWNlbWVudD17cGxhY2VtZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm4yby1wb3AtdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnJlbmRlclBvcFVwKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1BvcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvTWFuYWdlcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApXG4gICAgfVxufVxuIl19
@@ -1,6 +1,5 @@
1
- import React, { KeyboardEvent } from 'react';
2
- import { BadgeType } from './PopupList';
3
- import { Filter, Ref, TOption, getSearchMinLengthHintType } from './types';
1
+ import React from 'react';
2
+ import { Ref, TOption, Props, State } from './types';
4
3
  /**
5
4
  * InputSelect
6
5
  * @reactProps {object} style - css стили
@@ -40,12 +39,10 @@ import { Filter, Ref, TOption, getSearchMinLengthHintType } from './types';
40
39
  */
41
40
  export declare class InputSelect extends React.Component<Props, State> {
42
41
  inputHeightRef: Ref;
43
- popUpItemRef: Ref;
44
42
  textAreaRef: Ref;
45
43
  inputRef: Ref | undefined;
46
44
  constructor(props: Props);
47
45
  componentWillReceiveProps(nextProps: Props): void;
48
- componentDidUpdate(prevProps: Props): void;
49
46
  /**
50
47
  * установить акстивный элемент дропдауна
51
48
  * @param activeValueId
@@ -149,159 +146,52 @@ export declare class InputSelect extends React.Component<Props, State> {
149
146
  render(): JSX.Element;
150
147
  static defaultProps: Props;
151
148
  }
152
- declare type Props = {
153
- alerts?: any[];
154
- /**
155
- * Авто фокусировка на селекте
156
- */
157
- autoFocus: boolean;
158
- /**
159
- * Данные для badge
160
- */
161
- badge?: BadgeType;
162
- /**
163
- * Флаг кэширования запросов,
164
- * если false лист при открытии селекта всегда запрашиватся заного т.е. с page = 1
165
- */
166
- caching?: boolean;
167
- className: string;
168
- /**
169
- * Флаг закрытия попапа при выборе
170
- */
171
- closePopupOnSelect: boolean;
172
- count?: number;
173
- datasource?: string;
174
- descriptionFieldId: string;
175
- /**
176
- * Флаг активности
177
- */
178
- disabled: boolean;
179
- /**
180
- * Неактивные данные
181
- */
182
- disabledValues: [];
183
- enabledFieldId: string;
184
- expandPopUp: boolean;
185
- getSearchMinLengthHint: getSearchMinLengthHintType;
186
- fetchData(extraParams: Record<string, unknown>, concat: boolean, cacheReset: boolean): void;
187
- /**
188
- * Варианты фильтрации
189
- */
190
- filter: Filter | boolean;
191
- /**
192
- * Формат
193
- */
194
- format?: string;
195
- /**
196
- * Поле для группировки
197
- */
198
- groupFieldId: string;
199
- /**
200
- * Флаг наличия чекбоксов в селекте
201
- */
202
- hasCheckboxes: boolean;
203
- /**
204
- * Ключ icon в данных
205
- */
206
- iconFieldId: string;
207
- /**
208
- * Ключ image в данных
209
- */
210
- imageFieldId: string;
211
- isExpanded?: boolean;
212
- /**
213
- * Ключ label в данных
214
- */
215
- labelFieldId: string;
216
- /**
217
- * Флаг загрузки
218
- */
219
- loading: boolean;
220
- /**
221
- * Максимальная длина текста в тэге, до усечения
222
- */
223
- maxTagTextLength?: number;
224
- maxTagCount?: number;
225
- model: Record<string, unknown>;
226
- models?: any;
227
- /**
228
- * Мульти выбор значений
229
- */
230
- multiSelect: boolean;
231
- onBlur(arg: TOption | TOption[] | null): void;
232
- /**
233
- * Callback на изменение
234
- */
235
- onChange(arg: TOption | TOption[] | null): void;
236
- /**
237
- * Callback на закрытие
238
- */
239
- onClose(): void;
240
- onDismiss(arg: string): void;
241
- onInput(input: State['input']): void;
242
- onKeyDown?(evt: KeyboardEvent<HTMLTextAreaElement | HTMLInputElement>): void;
243
- /**
244
- * Callback на поиск
245
- */
246
- onSearch(input: State['input'], delay: Props['throttleDelay']): void;
247
- /**
248
- * Callback на выбор
249
- */
250
- onSelect(item: TOption): void;
251
- /**
252
- * Callback на переключение
253
- */
254
- onToggle(arg: boolean): void;
255
- openOnFocus?: boolean;
256
- /**
257
- * Массив данных
258
- */
259
- options: TOption[];
260
- page?: number;
261
- /**
262
- * Placeholder контрола
263
- */
264
- placeholder?: string;
265
- /**
266
- * Флаг авто размера попапа
267
- */
268
- popupAutoSize: boolean;
269
- /**
270
- * Фича, при которой сбрасывается значение контрола, если оно не выбрано из popup
271
- */
272
- resetOnBlur: boolean;
273
- setFilter(arg: Pick<any, number | symbol>): void;
274
- size?: number;
275
- /**
276
- * Ключ сортировки в данных
277
- */
278
- sortFieldId: string;
279
- statusFieldId: string;
280
- style: object;
281
- throttleDelay?: number;
282
- /**
283
- * Значение
284
- */
285
- value: any;
286
- /**
287
- * Ключ id в данных
288
- */
289
- valueFieldId: string;
290
- quickSearchParam: string;
291
- searchMinLength?: number;
292
- };
293
- declare type State = {
294
- activeValueId?: string | number | null;
295
- caching?: boolean;
296
- input?: string;
297
- inputFocus?: boolean;
298
- isExpanded?: boolean;
299
- isInputSelected?: boolean;
300
- isPopupFocused?: boolean;
301
- options?: Props['options'];
302
- popUpMaxHeight?: number;
303
- prevModel?: Record<string, unknown>;
304
- value?: any[];
149
+ export declare const InputSelectComponent: {
150
+ new (props: Props | import("../Select/types").Props): {
151
+ popUpItemRef: Ref | null | undefined;
152
+ componentDidUpdate(prevProps: Props): void;
153
+ render(): JSX.Element;
154
+ context: any;
155
+ setState<K extends "popUpMaxHeight">(state: {
156
+ popUpMaxHeight: number;
157
+ } | ((prevState: Readonly<{
158
+ popUpMaxHeight: number;
159
+ }>, props: Readonly<Props | import("../Select/types").Props>) => {
160
+ popUpMaxHeight: number;
161
+ } | Pick<{
162
+ popUpMaxHeight: number;
163
+ }, K> | null) | Pick<{
164
+ popUpMaxHeight: number;
165
+ }, K> | null, callback?: (() => void) | undefined): void;
166
+ forceUpdate(callback?: (() => void) | undefined): void;
167
+ readonly props: Readonly<Props | import("../Select/types").Props> & Readonly<{
168
+ children?: React.ReactNode;
169
+ }>;
170
+ state: Readonly<{
171
+ popUpMaxHeight: number;
172
+ }>;
173
+ refs: {
174
+ [key: string]: React.ReactInstance;
175
+ };
176
+ componentDidMount?(): void;
177
+ shouldComponentUpdate?(nextProps: Readonly<Props | import("../Select/types").Props>, nextState: Readonly<{
178
+ popUpMaxHeight: number;
179
+ }>, nextContext: any): boolean;
180
+ componentWillUnmount?(): void;
181
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
182
+ getSnapshotBeforeUpdate?(prevProps: Readonly<Props | import("../Select/types").Props>, prevState: Readonly<{
183
+ popUpMaxHeight: number;
184
+ }>): any;
185
+ componentWillMount?(): void;
186
+ UNSAFE_componentWillMount?(): void;
187
+ componentWillReceiveProps?(nextProps: Readonly<Props | import("../Select/types").Props>, nextContext: any): void;
188
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Props | import("../Select/types").Props>, nextContext: any): void;
189
+ componentWillUpdate?(nextProps: Readonly<Props | import("../Select/types").Props>, nextState: Readonly<{
190
+ popUpMaxHeight: number;
191
+ }>, nextContext: any): void;
192
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<Props | import("../Select/types").Props>, nextState: Readonly<{
193
+ popUpMaxHeight: number;
194
+ }>, nextContext: any): void;
195
+ };
196
+ contextType?: React.Context<any> | undefined;
305
197
  };
306
- export declare const InputSelectComponent: import("react-onclickoutside").WrapperClass<Props, typeof InputSelect>;
307
- export {};