@mkrause/react-form
Advanced tools
+2
-2
@@ -464,3 +464,3 @@ "use strict"; | ||
| if (!hasAccessor(accessor, _this2.state.meta) || !selectWithAccessor(accessor, _this2.state.meta).touched) { | ||
| var meta = updateWithAccessor(accessor, _this2.state.meta, function (fieldMeta) { | ||
| var meta = setWithAccessor(accessor, _this2.state.meta, function (fieldMeta) { | ||
| return _objectSpread({}, fieldMeta || {}, { | ||
@@ -533,2 +533,2 @@ touched: true | ||
| exports.withForm = withForm; | ||
| //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJDb250ZXh0IiwiUmVhY3QiLCJjcmVhdGVDb250ZXh0IiwiaGFzQWNjZXNzb3IiLCJhY2Nlc3NvciIsImJ1ZmZlciIsIlR5cGVFcnJvciIsInNwbGl0IiwicmVkdWNlIiwia2V5IiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiJG1zZyIsInNlbGVjdFdpdGhBY2Nlc3NvciIsInNldFdpdGhBY2Nlc3NvciIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwicGF0aCIsImJ1ZmZlckFzT2JqZWN0IiwibGVuZ3RoIiwidXBkYXRlZFZhbHVlIiwicHJvcCIsInVwZGF0ZVdpdGhBY2Nlc3NvciIsImdldEVycm9yIiwibWV0YSIsImVycm9ycyIsInN1Ym1pdHRlZCIsImZpZWxkTWV0YSIsInRvdWNoZWQiLCJzaG91bGRTaG93TWVzc2FnZSIsImUiLCJGaWVsZCIsImNoaWxkcmVuIiwiY29tcG9uZW50IiwiRmllbGRDb21wb25lbnQiLCJwcm9wcyIsInVwZGF0ZUJ1ZmZlciIsInVwZGF0ZU1ldGEiLCJmb3JtTWV0YSIsImZpZWxkRXJyb3IiLCJmaWVsZFByb3BzIiwib25DaGFuZ2UiLCJldnQiLCJ0YXJnZXQiLCJjaGVja2VkIiwib25CbHVyIiwibWV0YVVwZGF0ZWQiLCJTdHJpbmciLCJhY3Rpb25zIiwidXBkYXRlIiwiRmllbGRzIiwiVGV4dCIsIkVycm9yTWVzc2FnZSIsIkVycm9yQ29tcG9uZW50IiwiRnJhZ21lbnQiLCJlcnJvciIsIlByb3ZpZGVyIiwicHJpc3RpbmUiLCJ2YWxpZGF0ZSIsInNldFN0YXRlIiwicHJldlByb3BzIiwicHJldlN0YXRlIiwiZm9ybVByb3BzIiwidXBkYXRlZEJ1ZmZlciIsIm9uVXBkYXRlIiwic3RhdGUiLCJzdWJtaXQiLCJrZXlzIiwib25TdWJtaXQiLCJQdXJlQ29tcG9uZW50Iiwid2l0aEZvcm0iLCJDb21wb25lbnQiLCJXaXRoRm9ybSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOztBQUVBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdPLElBQU1BLE9BQU8sR0FBR0MsS0FBSyxDQUFDQyxhQUFOLEVBQWhCLEMsQ0FFUDs7OztBQUNPLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNDLFFBQUQsRUFBV0MsTUFBWCxFQUFzQjtBQUM3QyxNQUFJLE9BQU9ELFFBQVAsS0FBb0IsVUFBeEIsRUFBb0M7QUFDaEMsVUFBTSxJQUFJRSxTQUFKLENBQWMsTUFBZCxDQUFOO0FBQ0gsR0FGRCxNQUVPLElBQUksT0FBT0YsUUFBUCxLQUFvQixRQUF4QixFQUFrQztBQUNyQyxXQUFPQSxRQUFRLENBQUNHLEtBQVQsQ0FBZSxHQUFmLEVBQ0ZDLE1BREUsQ0FFQyxVQUFDSCxNQUFELEVBQVNJLEdBQVQsRUFBaUI7QUFDYixVQUFJLFFBQU9KLE1BQVAsTUFBa0IsUUFBbEIsSUFBOEJBLE1BQU0sS0FBSyxJQUE3QyxFQUFtRDtBQUMvQyxlQUFPLEtBQVA7QUFDSCxPQUZELE1BRU8sSUFBSSxDQUFDSyxNQUFNLENBQUNDLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDQyxJQUFoQyxDQUFxQ1IsTUFBckMsRUFBNkNJLEdBQTdDLENBQUwsRUFBd0Q7QUFDM0QsZUFBTyxLQUFQO0FBQ0gsT0FGTSxNQUVBO0FBQ0gsZUFBTyxJQUFQO0FBQ0g7QUFDSixLQVZGLEVBV0NKLE1BWEQsQ0FBUDtBQWFILEdBZE0sTUFjQTtBQUNILFVBQU0sSUFBSUMsU0FBSixLQUFjUSxtQkFBZCxxQkFBMkNWLFFBQTNDLEVBQU47QUFDSDtBQUNKLENBcEJNLEMsQ0FzQlA7Ozs7O0FBQ08sSUFBTVcsa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFxQixDQUFDWCxRQUFELEVBQVdDLE1BQVgsRUFBc0I7QUFDcEQsTUFBSSxPQUFPRCxRQUFQLEtBQW9CLFVBQXhCLEVBQW9DO0FBQ2hDLFdBQU9BLFFBQVEsQ0FBQ0MsTUFBRCxDQUFmO0FBQ0gsR0FGRCxNQUVPLElBQUksT0FBT0QsUUFBUCxLQUFvQixRQUF4QixFQUFrQztBQUNyQyxXQUFPQSxRQUFRLENBQUNHLEtBQVQsQ0FBZSxHQUFmLEVBQ0ZDLE1BREUsQ0FFQyxVQUFDSCxNQUFELEVBQVNJLEdBQVQsRUFBaUI7QUFDYixVQUFJLFFBQU9KLE1BQVAsTUFBa0IsUUFBbEIsSUFBOEJBLE1BQU0sS0FBSyxJQUE3QyxFQUFtRDtBQUMvQyxjQUFNLElBQUlDLFNBQUosS0FBY1EsbUJBQWQsc0JBQW1DTCxHQUFuQyxFQUF3REosTUFBeEQsRUFBTjtBQUNILE9BRkQsTUFFTyxJQUFJLENBQUNLLE1BQU0sQ0FBQ0MsU0FBUCxDQUFpQkMsY0FBakIsQ0FBZ0NDLElBQWhDLENBQXFDUixNQUFyQyxFQUE2Q0ksR0FBN0MsQ0FBTCxFQUF3RDtBQUMzRCxjQUFNLElBQUlILFNBQUosS0FBY1EsbUJBQWQsc0JBQWlDTCxHQUFqQyxFQUFrREosTUFBbEQsRUFBTjtBQUNILE9BRk0sTUFFQTtBQUNILGVBQU9BLE1BQU0sQ0FBQ0ksR0FBRCxDQUFiO0FBQ0g7QUFDSixLQVZGLEVBV0NKLE1BWEQsQ0FBUDtBQWFILEdBZE0sTUFjQTtBQUNILFVBQU0sSUFBSUMsU0FBSixLQUFjUSxtQkFBZCxzQkFBMkNWLFFBQTNDLEVBQU47QUFDSDtBQUNKLENBcEJNLEMsQ0FzQlA7Ozs7O0FBQ08sSUFBTVksZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDWixRQUFELEVBQVdDLE1BQVgsRUFBbUJZLEtBQW5CLEVBQTZCO0FBQ3hELE1BQUksT0FBT2IsUUFBUCxLQUFvQixVQUF4QixFQUFvQztBQUNoQyxVQUFNLElBQUlFLFNBQUosQ0FBYyxNQUFkLENBQU4sQ0FEZ0MsQ0FDSDtBQUNoQyxHQUZELE1BRU8sSUFBSSxPQUFPRixRQUFQLEtBQW9CLFFBQXhCLEVBQWtDO0FBQ3JDLFdBQU9ZLGVBQWUsQ0FBQ1osUUFBUSxDQUFDRyxLQUFULENBQWUsR0FBZixDQUFELEVBQXNCRixNQUF0QixFQUE4QlksS0FBOUIsQ0FBdEI7QUFDSCxHQUZNLE1BRUEsSUFBSUMsS0FBSyxDQUFDQyxPQUFOLENBQWNmLFFBQWQsQ0FBSixFQUE2QjtBQUFBLDZCQUNUQSxRQURTO0FBQUEsUUFDekJLLEdBRHlCO0FBQUEsUUFDakJXLElBRGlCOztBQUdoQyxRQUFNQyxjQUFjLEdBQUcsUUFBT2hCLE1BQVAsTUFBa0IsUUFBbEIsSUFBOEJBLE1BQU0sS0FBSyxJQUF6QyxHQUNqQkEsTUFEaUIsR0FFakIsRUFGTjs7QUFJQSxRQUFJZSxJQUFJLENBQUNFLE1BQUwsS0FBZ0IsQ0FBcEIsRUFBdUI7QUFDbkIsVUFBTUMsWUFBWSxHQUFHLE9BQU9OLEtBQVAsS0FBaUIsVUFBakIsR0FDZkEsS0FBSyxDQUFDSSxjQUFjLENBQUNaLEdBQUQsQ0FBZixDQURVLEdBRWZRLEtBRk47QUFJQSwrQkFBWUksY0FBWixzQkFBNkJaLEdBQTdCLEVBQW1DYyxZQUFuQztBQUNILEtBTkQsTUFNTztBQUNILFVBQU1DLElBQUksR0FBR2QsTUFBTSxDQUFDQyxTQUFQLENBQWlCQyxjQUFqQixDQUFnQ0MsSUFBaEMsQ0FBcUNRLGNBQXJDLEVBQXFEWixHQUFyRCxJQUNQWSxjQUFjLENBQUNaLEdBQUQsQ0FEUCxHQUVQLEVBRk47QUFJQSwrQkFBWVksY0FBWixzQkFBNkJaLEdBQTdCLEVBQW1DTyxlQUFlLENBQUNJLElBQUQsRUFBT0ksSUFBUCxFQUFhUCxLQUFiLENBQWxEO0FBQ0g7QUFDSixHQXBCTSxNQW9CQTtBQUNILFVBQU0sSUFBSVgsU0FBSixLQUFjUSxtQkFBZCxzQkFBMkNWLFFBQTNDLEVBQU47QUFDSDtBQUNKLENBNUJNLEMsQ0E4QlA7Ozs7O0FBQ08sSUFBTXFCLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBcUIsQ0FBQ3JCLFFBQUQsRUFBV0MsTUFBWCxFQUFtQlksS0FBbkIsRUFBNkI7QUFDM0QsTUFBSSxPQUFPYixRQUFQLEtBQW9CLFVBQXhCLEVBQW9DO0FBQ2hDLFVBQU0sSUFBSUUsU0FBSixDQUFjLE1BQWQsQ0FBTixDQURnQyxDQUNIO0FBQ2hDLEdBRkQsTUFFTyxJQUFJLE9BQU9GLFFBQVAsS0FBb0IsUUFBeEIsRUFBa0M7QUFDckMsV0FBT3FCLGtCQUFrQixDQUFDckIsUUFBUSxDQUFDRyxLQUFULENBQWUsR0FBZixDQUFELEVBQXNCRixNQUF0QixFQUE4QlksS0FBOUIsQ0FBekI7QUFDSCxHQUZNLE1BRUEsSUFBSUMsS0FBSyxDQUFDQyxPQUFOLENBQWNmLFFBQWQsQ0FBSixFQUE2QjtBQUFBLDhCQUNUQSxRQURTO0FBQUEsUUFDekJLLEdBRHlCO0FBQUEsUUFDakJXLElBRGlCOztBQUdoQyxRQUFJLFFBQU9mLE1BQVAsTUFBa0IsUUFBbEIsSUFBOEJBLE1BQU0sS0FBSyxJQUE3QyxFQUFtRDtBQUMvQyxZQUFNLElBQUlDLFNBQUosS0FBY1EsbUJBQWQsc0JBQW1DTCxHQUFuQyxFQUF3REosTUFBeEQsRUFBTjtBQUNILEtBRkQsTUFFTyxJQUFJLENBQUNLLE1BQU0sQ0FBQ0MsU0FBUCxDQUFpQkMsY0FBakIsQ0FBZ0NDLElBQWhDLENBQXFDUixNQUFyQyxFQUE2Q0ksR0FBN0MsQ0FBTCxFQUF3RDtBQUMzRCxZQUFNLElBQUlILFNBQUosS0FBY1EsbUJBQWQsc0JBQWlDTCxHQUFqQyxFQUFrREosTUFBbEQsRUFBTjtBQUNIOztBQUVELFFBQUllLElBQUksQ0FBQ0UsTUFBTCxLQUFnQixDQUFwQixFQUF1QjtBQUNuQixVQUFNQyxZQUFZLEdBQUcsT0FBT04sS0FBUCxLQUFpQixVQUFqQixHQUNmQSxLQUFLLENBQUNaLE1BQU0sQ0FBQ0ksR0FBRCxDQUFQLENBRFUsR0FFZlEsS0FGTjtBQUlBLCtCQUFZWixNQUFaLHNCQUFxQkksR0FBckIsRUFBMkJjLFlBQTNCO0FBQ0gsS0FORCxNQU1PO0FBQ0gsK0JBQVlsQixNQUFaLHNCQUFxQkksR0FBckIsRUFBMkJnQixrQkFBa0IsQ0FBQ0wsSUFBRCxFQUFPZixNQUFNLENBQUNJLEdBQUQsQ0FBYixFQUFvQlEsS0FBcEIsQ0FBN0M7QUFDSDtBQUNKLEdBbEJNLE1Ba0JBO0FBQ0gsVUFBTSxJQUFJWCxTQUFKLEtBQWNRLG1CQUFkLHNCQUEyQ1YsUUFBM0MsRUFBTjtBQUNIO0FBQ0osQ0ExQk07Ozs7QUE0QlAsSUFBTXNCLFFBQVEsR0FBRyxTQUFYQSxRQUFXLE9BQThCdEIsUUFBOUIsRUFBMkM7QUFBQSxNQUF4Q3VCLElBQXdDLFFBQXhDQSxJQUF3QztBQUFBLE1BQWxDQyxNQUFrQyxRQUFsQ0EsTUFBa0M7QUFBQSxNQUExQkMsU0FBMEIsUUFBMUJBLFNBQTBCO0FBQ3hELE1BQU1DLFNBQVMsR0FBRzNCLFdBQVcsQ0FBQ0MsUUFBRCxFQUFXdUIsSUFBWCxDQUFYLEdBQ1paLGtCQUFrQixDQUFDWCxRQUFELEVBQVd1QixJQUFYLENBRE4sR0FFWjtBQUFFSSxJQUFBQSxPQUFPLEVBQUU7QUFBWCxHQUZOLENBRHdELENBS3hEOztBQUNBLE1BQU1DLGlCQUFpQixHQUNuQkgsU0FBUyxJQUNOQyxTQUFTLENBQUNDLE9BRmpCOztBQUlBLE1BQUksQ0FBQ0MsaUJBQUwsRUFBd0I7QUFDcEIsV0FBTyxJQUFQO0FBQ0g7O0FBRUQsTUFBSTtBQUNBLFdBQU9qQixrQkFBa0IsQ0FBQ1gsUUFBRCxFQUFXd0IsTUFBWCxDQUF6QjtBQUNILEdBRkQsQ0FFRSxPQUFPSyxDQUFQLEVBQVU7QUFDUjtBQUNBLFdBQU8sSUFBUDtBQUNIO0FBQ0osQ0FwQkQ7O0FBc0JPLElBQU1DLEtBQUssR0FBRyxTQUFSQSxLQUFRO0FBQUEsa0ZBQXlFLEVBQXpFOztBQUFBLE1BQUdDLFFBQUgsU0FBR0EsUUFBSDtBQUFBLDhCQUFhQyxTQUFiO0FBQUEsTUFBd0JDLGNBQXhCLGdDQUF5QyxPQUF6QztBQUFBLE1BQWtEakMsUUFBbEQsU0FBa0RBLFFBQWxEO0FBQUEsTUFBK0RrQyxLQUEvRDs7QUFBQSxTQUNqQixvQkFBQyxPQUFELENBQVMsUUFBVCxRQUNLLGlCQUFtRTtBQUFBLFFBQWhFakMsTUFBZ0UsU0FBaEVBLE1BQWdFO0FBQUEsUUFBeERrQyxZQUF3RCxTQUF4REEsWUFBd0Q7QUFBQSxRQUExQ1osSUFBMEMsU0FBMUNBLElBQTBDO0FBQUEsUUFBcENhLFVBQW9DLFNBQXBDQSxVQUFvQztBQUFBLFFBQXhCWixNQUF3QixTQUF4QkEsTUFBd0I7QUFBQSxRQUFoQkMsU0FBZ0IsU0FBaEJBLFNBQWdCO0FBQ2hFLFFBQU1aLEtBQUssR0FBR0Ysa0JBQWtCLENBQUNYLFFBQUQsRUFBV0MsTUFBWCxDQUFoQztBQUVBLFFBQU1vQyxRQUFRLEdBQUc7QUFDYlosTUFBQUEsU0FBUyxFQUFUQTtBQURhLEtBQWpCO0FBSUEsUUFBTUMsU0FBUyxHQUFHM0IsV0FBVyxDQUFDQyxRQUFELEVBQVd1QixJQUFYLENBQVgsR0FBOEJaLGtCQUFrQixDQUFDWCxRQUFELEVBQVd1QixJQUFYLENBQWhELEdBQW1FO0FBQ2pGSSxNQUFBQSxPQUFPLEVBQUU7QUFEd0UsS0FBckY7QUFJQSxRQUFNVyxVQUFVLEdBQUdoQixRQUFRLENBQUM7QUFBRUMsTUFBQUEsSUFBSSxFQUFKQSxJQUFGO0FBQVFDLE1BQUFBLE1BQU0sRUFBTkEsTUFBUjtBQUFnQkMsTUFBQUEsU0FBUyxFQUFUQTtBQUFoQixLQUFELEVBQThCekIsUUFBOUIsQ0FBM0I7O0FBRUEsUUFBTXVDLFVBQVU7QUFDWkMsTUFBQUEsUUFBUSxFQUFFLGtCQUFBQyxHQUFHLEVBQUk7QUFDYixZQUFJNUIsS0FBSyxHQUFHNEIsR0FBRyxDQUFDQyxNQUFKLENBQVc3QixLQUF2Qjs7QUFDQSxZQUFJNEIsR0FBRyxDQUFDQyxNQUFKLENBQVdsQyxjQUFYLENBQTBCLFNBQTFCLENBQUosRUFBMEM7QUFDdENLLFVBQUFBLEtBQUssR0FBRzRCLEdBQUcsQ0FBQ0MsTUFBSixDQUFXQyxPQUFuQjtBQUNIOztBQUVEUixRQUFBQSxZQUFZLENBQUNuQyxRQUFELEVBQVdhLEtBQVgsQ0FBWjtBQUNILE9BUlc7QUFTWitCLE1BQUFBLE1BQU0sRUFBRSxnQkFBQUgsR0FBRyxFQUFJO0FBQ1gsWUFBSSxDQUFDMUMsV0FBVyxDQUFDQyxRQUFELEVBQVd1QixJQUFYLENBQVosSUFBZ0MsQ0FBQ1osa0JBQWtCLENBQUNYLFFBQUQsRUFBV3VCLElBQVgsQ0FBbEIsQ0FBbUNJLE9BQXhFLEVBQWlGO0FBQzdFLGNBQU1rQixXQUFXLEdBQUdqQyxlQUFlLENBQUNaLFFBQUQsRUFBV3VCLElBQVgsRUFDL0IsVUFBQUcsU0FBUztBQUFBLHFDQUFXQSxTQUFTLElBQUksRUFBeEI7QUFBNkJDLGNBQUFBLE9BQU8sRUFBRTtBQUF0QztBQUFBLFdBRHNCLENBQW5DO0FBSUFTLFVBQUFBLFVBQVUsQ0FBQ1MsV0FBRCxDQUFWO0FBQ0g7QUFDSjtBQWpCVyxPQWtCVFgsS0FsQlMsQ0FBaEI7O0FBb0JBLFFBQUksT0FBT3JCLEtBQVAsS0FBaUIsUUFBckIsRUFBK0I7QUFDM0IwQixNQUFBQSxVQUFVLENBQUMxQixLQUFYLEdBQW1CQSxLQUFuQjtBQUNILEtBRkQsTUFFTyxJQUFJLE9BQU9BLEtBQVAsS0FBaUIsUUFBckIsRUFBK0I7QUFDbEMwQixNQUFBQSxVQUFVLENBQUMxQixLQUFYLEdBQW1CaUMsTUFBTSxDQUFDakMsS0FBRCxDQUF6QjtBQUNILEtBRk0sTUFFQSxJQUFJLE9BQU9BLEtBQVAsS0FBaUIsU0FBckIsRUFBZ0M7QUFDbkMwQixNQUFBQSxVQUFVLENBQUNJLE9BQVgsR0FBcUI5QixLQUFyQjtBQUNILEtBRk0sTUFFQTtBQUNILFlBQU0sSUFBSVgsU0FBSixLQUFjUSxtQkFBZCxzQkFBeUNHLEtBQXpDLEVBQU47QUFDSDs7QUFFRCxRQUFJLE9BQU9rQixRQUFQLEtBQW9CLFdBQXhCLEVBQXFDO0FBQ2pDLFVBQU1nQixPQUFPLEdBQUc7QUFDWkMsUUFBQUEsTUFBTSxFQUFFLGdCQUFBbkMsS0FBSyxFQUFJO0FBQUVzQixVQUFBQSxZQUFZLENBQUNuQyxRQUFELEVBQVdhLEtBQVgsQ0FBWjtBQUFnQztBQUR2QyxPQUFoQjtBQUlBLGFBQU8sT0FBT2tCLFFBQVAsS0FBb0IsVUFBcEIsR0FDREEsUUFBUSxDQUFDO0FBQUVNLFFBQUFBLFFBQVEsRUFBUkEsUUFBRjtBQUFZRSxRQUFBQSxVQUFVLEVBQVZBLFVBQVo7QUFBd0JiLFFBQUFBLFNBQVMsRUFBVEEsU0FBeEI7QUFBbUNZLFFBQUFBLFVBQVUsRUFBVkE7QUFBbkMsT0FBRCxFQUFrRFMsT0FBbEQsQ0FEUCxHQUVEaEIsUUFGTjtBQUdIOztBQUVELFdBQ0ksb0JBQUMsY0FBRCxFQUFvQlEsVUFBcEIsQ0FESjtBQUdILEdBekRMLENBRGlCO0FBQUEsQ0FBZDs7O0FBNkRBLElBQU1VLE1BQU0sR0FBRztBQUNsQkMsRUFBQUEsSUFBSSxFQUFFLGNBQUFoQixLQUFLO0FBQUEsV0FDUCxvQkFBQyxPQUFELENBQVMsUUFBVCxRQUNLO0FBQUEsVUFBR2pDLE1BQUgsU0FBR0EsTUFBSDtBQUFBLGFBQ0csa0NBREg7QUFBQSxLQURMLENBRWlCO0FBRmpCLEtBRE87QUFBQTtBQURPLENBQWY7OztBQVNBLElBQU1rRCxZQUFZLEdBQUcsU0FBZkEsWUFBZTtBQUFBLE1BQUdwQixRQUFILFNBQUdBLFFBQUg7QUFBQSw4QkFBYUMsU0FBYjtBQUFBLE1BQXdCb0IsY0FBeEIsZ0NBQXlDdkQsS0FBSyxDQUFDd0QsUUFBL0M7QUFBQSxNQUF5RHJELFFBQXpELFNBQXlEQSxRQUF6RDtBQUFBLE1BQXNFa0MsS0FBdEU7O0FBQUEsU0FDeEIsb0JBQUMsT0FBRCxDQUFTLFFBQVQsUUFDSyxpQkFBaUM7QUFBQSxRQUE5QlgsSUFBOEIsU0FBOUJBLElBQThCO0FBQUEsUUFBeEJDLE1BQXdCLFNBQXhCQSxNQUF3QjtBQUFBLFFBQWhCQyxTQUFnQixTQUFoQkEsU0FBZ0I7QUFDOUIsUUFBTTZCLEtBQUssR0FBR2hDLFFBQVEsQ0FBQztBQUFFQyxNQUFBQSxJQUFJLEVBQUpBLElBQUY7QUFBUUMsTUFBQUEsTUFBTSxFQUFOQSxNQUFSO0FBQWdCQyxNQUFBQSxTQUFTLEVBQVRBO0FBQWhCLEtBQUQsRUFBOEJ6QixRQUE5QixDQUF0Qjs7QUFFQSxRQUFJc0QsS0FBSyxLQUFLLElBQWQsRUFBb0I7QUFDaEIsYUFBTyxJQUFQO0FBQ0g7O0FBRUQsUUFBSSxPQUFPdkIsUUFBUCxLQUFvQixXQUF4QixFQUFxQztBQUNqQyxhQUFPLE9BQU9BLFFBQVAsS0FBb0IsVUFBcEIsR0FDREEsUUFBUSxDQUFDdUIsS0FBRCxDQURQLEdBRUR2QixRQUZOO0FBR0gsS0FKRCxNQUlPO0FBQ0gsYUFBTyxvQkFBQyxjQUFELEVBQW9CRyxLQUFwQixFQUE0Qm9CLEtBQTVCLENBQVA7QUFDSDtBQUNKLEdBZkwsQ0FEd0I7QUFBQSxDQUFyQjs7OztJQW1CTUMsUTs7Ozs7Ozs7Ozs7Ozs7Ozs7O29GQVFEO0FBQ0ovQixNQUFBQSxNQUFNLEVBQUUsRUFESjtBQUVKZ0MsTUFBQUEsUUFBUSxFQUFFLElBRk47QUFHSi9CLE1BQUFBLFNBQVMsRUFBRSxLQUhQO0FBSUpGLE1BQUFBLElBQUksRUFBRTtBQUpGLEs7O3VGQU9HLFVBQUF0QixNQUFNLEVBQUk7QUFDakIsVUFBSSxDQUFDLE1BQUtpQyxLQUFMLENBQVd1QixRQUFoQixFQUEwQjtBQUN0QjtBQUNIOztBQUVELFVBQU1qQyxNQUFNLEdBQUcsTUFBS1UsS0FBTCxDQUFXdUIsUUFBWCxDQUFvQnhELE1BQXBCLEtBQStCLEVBQTlDOztBQUVBLFlBQUt5RCxRQUFMLENBQWM7QUFBRWxDLFFBQUFBLE1BQU0sRUFBTkE7QUFBRixPQUFkO0FBQ0gsSzs7Ozs7Ozt3Q0FFbUI7QUFDaEIsV0FBS2lDLFFBQUwsQ0FBYyxLQUFLdkIsS0FBTCxDQUFXakMsTUFBekI7QUFDSDs7O3VDQUVrQjBELFMsRUFBV0MsUyxFQUFXO0FBQ3JDLFVBQUlELFNBQVMsQ0FBQzFELE1BQVYsS0FBcUIsS0FBS2lDLEtBQUwsQ0FBV2pDLE1BQXBDLEVBQTRDO0FBQ3hDLGFBQUt3RCxRQUFMLENBQWMsS0FBS3ZCLEtBQUwsQ0FBV2pDLE1BQXpCO0FBQ0g7QUFDSjs7OzZCQUVRO0FBQUE7O0FBQUEsVUFDR0EsTUFESCxHQUNjLEtBQUtpQyxLQURuQixDQUNHakMsTUFESDtBQUdMLFVBQU00RCxTQUFTLEdBQUc7QUFDZDVELFFBQUFBLE1BQU0sRUFBTkEsTUFEYztBQUVka0MsUUFBQUEsWUFBWSxFQUFFLHNCQUFDbkMsUUFBRCxFQUFXYSxLQUFYLEVBQXFCO0FBQy9CLGNBQU1pRCxhQUFhLEdBQUd6QyxrQkFBa0IsQ0FBQ3JCLFFBQUQsRUFBV0MsTUFBWCxFQUFtQlksS0FBbkIsQ0FBeEM7O0FBRUEsVUFBQSxNQUFJLENBQUNxQixLQUFMLENBQVc2QixRQUFYLENBQW9CRCxhQUFwQjs7QUFFQSxjQUFJLE1BQUksQ0FBQ0UsS0FBTCxDQUFXUixRQUFmLEVBQXlCO0FBQ3JCLFlBQUEsTUFBSSxDQUFDRSxRQUFMLENBQWM7QUFBRUYsY0FBQUEsUUFBUSxFQUFFO0FBQVosYUFBZDtBQUNIOztBQUVELGNBQUksQ0FBQ3pELFdBQVcsQ0FBQ0MsUUFBRCxFQUFXLE1BQUksQ0FBQ2dFLEtBQUwsQ0FBV3pDLElBQXRCLENBQVosSUFBMkMsQ0FBQ1osa0JBQWtCLENBQUNYLFFBQUQsRUFBVyxNQUFJLENBQUNnRSxLQUFMLENBQVd6QyxJQUF0QixDQUFsQixDQUE4Q0ksT0FBOUYsRUFBdUc7QUFDbkcsZ0JBQU1KLElBQUksR0FBR0Ysa0JBQWtCLENBQUNyQixRQUFELEVBQVcsTUFBSSxDQUFDZ0UsS0FBTCxDQUFXekMsSUFBdEIsRUFDM0IsVUFBQUcsU0FBUztBQUFBLHVDQUFXQSxTQUFTLElBQUksRUFBeEI7QUFBNkJDLGdCQUFBQSxPQUFPLEVBQUU7QUFBdEM7QUFBQSxhQURrQixDQUEvQjs7QUFJQSxZQUFBLE1BQUksQ0FBQytCLFFBQUwsQ0FBYztBQUFFbkMsY0FBQUEsSUFBSSxFQUFKQTtBQUFGLGFBQWQ7QUFDSDs7QUFFRCxVQUFBLE1BQUksQ0FBQ2tDLFFBQUwsQ0FBY0ssYUFBZDtBQUNILFNBcEJhO0FBc0JkTixRQUFBQSxRQUFRLEVBQUUsS0FBS1EsS0FBTCxDQUFXUixRQXRCUDtBQXVCZC9CLFFBQUFBLFNBQVMsRUFBRSxLQUFLdUMsS0FBTCxDQUFXdkMsU0F2QlI7QUF5QmRELFFBQUFBLE1BQU0sRUFBRSxLQUFLd0MsS0FBTCxDQUFXeEMsTUF6Qkw7QUEwQmQ7QUFDQTtBQUNBO0FBRUFELFFBQUFBLElBQUksRUFBRSxLQUFLeUMsS0FBTCxDQUFXekMsSUE5Qkg7QUErQmRhLFFBQUFBLFVBQVUsRUFBRSxvQkFBQWIsSUFBSSxFQUFJO0FBQ2xCLFVBQUEsTUFBSSxDQUFDbUMsUUFBTCxDQUFjO0FBQUVuQyxZQUFBQSxJQUFJLEVBQUpBO0FBQUYsV0FBZDtBQUNELFNBakNhO0FBbUNkMEMsUUFBQUEsTUFBTSxFQUFFLGtCQUFNO0FBQ1YsVUFBQSxNQUFJLENBQUNQLFFBQUwsQ0FBYztBQUNWRixZQUFBQSxRQUFRLEVBQUUsS0FEQTtBQUVWL0IsWUFBQUEsU0FBUyxFQUFFO0FBRkQsV0FBZCxFQUdHLFlBQU07QUFDTCxnQkFBSW5CLE1BQU0sQ0FBQzRELElBQVAsQ0FBWSxNQUFJLENBQUNGLEtBQUwsQ0FBV3hDLE1BQXZCLEVBQStCTixNQUEvQixHQUF3QyxDQUE1QyxFQUErQztBQUMzQztBQUNIOztBQUVELFlBQUEsTUFBSSxDQUFDZ0IsS0FBTCxDQUFXaUMsUUFBWDtBQUNILFdBVEQ7QUFVSDtBQTlDYSxPQUFsQjtBQWlEQSxhQUNJLG9CQUFDLE9BQUQsQ0FBUyxRQUFUO0FBQWtCLFFBQUEsS0FBSyxFQUFFTjtBQUF6QixTQUNLLE9BQU8sS0FBSzNCLEtBQUwsQ0FBV0gsUUFBbEIsS0FBK0IsVUFBL0IsR0FDSyxLQUFLRyxLQUFMLENBQVdILFFBQVgsQ0FBb0I4QixTQUFwQixDQURMLEdBRUssS0FBSzNCLEtBQUwsQ0FBV0gsUUFIckIsQ0FESjtBQVFIOzs7O0VBL0Z5QmxDLEtBQUssQ0FBQ3VFLGE7Ozs7QUFrRzdCLElBQU1DLFFBQVEsR0FBRyxTQUFYQSxRQUFXLENBQUFDLFNBQVMsRUFBSTtBQUNqQyxNQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFBckMsS0FBSztBQUFBLFdBQ2xCLG9CQUFDLE9BQUQsQ0FBUyxRQUFULFFBQ0s7QUFBQSxVQUFHakMsTUFBSCxTQUFHQSxNQUFIO0FBQUEsVUFBV2tDLFlBQVgsU0FBV0EsWUFBWDtBQUFBLFVBQXlCQyxVQUF6QixTQUF5QkEsVUFBekI7QUFBQSxhQUNHLG9CQUFDLFNBQUQsZUFBZUYsS0FBZjtBQUFzQixRQUFBLE1BQU0sRUFBRWpDLE1BQTlCO0FBQXNDLFFBQUEsWUFBWSxFQUFFa0MsWUFBcEQ7QUFBa0UsUUFBQSxVQUFVLEVBQUVDO0FBQTlFLFNBREg7QUFBQSxLQURMLENBRGtCO0FBQUEsR0FBdEI7O0FBT0EscUNBQXFCbUMsUUFBckIsRUFBK0JELFNBQS9CO0FBRUEsU0FBT0MsUUFBUDtBQUNILENBWE0iLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCAkbXNnIGZyb20gJ21lc3NhZ2UtdGFnJztcblxuaW1wb3J0IGhvaXN0Tm9uUmVhY3RTdGF0aWNzIGZyb20gJ2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcblxuXG5leHBvcnQgY29uc3QgQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoKTtcblxuLy8gQ2hlY2sgaWYgdGhlIGdpdmVuIGJ1ZmZlciBoYXMgdGhlIGdpdmVuIGFjY2Vzc29yXG5leHBvcnQgY29uc3QgaGFzQWNjZXNzb3IgPSAoYWNjZXNzb3IsIGJ1ZmZlcikgPT4ge1xuICAgIGlmICh0eXBlb2YgYWNjZXNzb3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVE9ETycpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGFjY2Vzc29yID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gYWNjZXNzb3Iuc3BsaXQoJy4nKVxuICAgICAgICAgICAgLnJlZHVjZShcbiAgICAgICAgICAgICAgICAoYnVmZmVyLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBidWZmZXIgIT09ICdvYmplY3QnIHx8IGJ1ZmZlciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYnVmZmVyLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYnVmZmVyXG4gICAgICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJG1zZ2BVbmtub3duIGFjY2Vzc29yIHR5cGUgJHthY2Nlc3Nvcn1gKTtcbiAgICB9XG59O1xuXG4vLyBTZWxlY3QgdGhlIHZhbHVlIGF0IHRoZSBnaXZlbiBhY2Nlc3NvclxuZXhwb3J0IGNvbnN0IHNlbGVjdFdpdGhBY2Nlc3NvciA9IChhY2Nlc3NvciwgYnVmZmVyKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBhY2Nlc3NvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gYWNjZXNzb3IoYnVmZmVyKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBhY2Nlc3NvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGFjY2Vzc29yLnNwbGl0KCcuJylcbiAgICAgICAgICAgIC5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKGJ1ZmZlciwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgYnVmZmVyICE9PSAnb2JqZWN0JyB8fCBidWZmZXIgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJG1zZ2BDYW5ub3QgYWNjZXNzICR7a2V5fSBvbiBub24tb2JqZWN0ICR7YnVmZmVyfWApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYnVmZmVyLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCRtc2dgTWlzc2luZyBrZXkgJHtrZXl9IG9uIG9iamVjdCAke2J1ZmZlcn1gKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXJba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYnVmZmVyXG4gICAgICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJG1zZ2BVbmtub3duIGFjY2Vzc29yIHR5cGUgJHthY2Nlc3Nvcn1gKTtcbiAgICB9XG59O1xuXG4vLyBSZXR1cm4gYW4gdXBkYXRlZCB2ZXJzaW9uIG9mIHRoZSBnaXZlbiBidWZmZXIgKHdoZXJlIHRoZSBwcm9wZXJ0eSBtYXkgbm90IGFscmVhZHkgZXhpc3QpXG5leHBvcnQgY29uc3Qgc2V0V2l0aEFjY2Vzc29yID0gKGFjY2Vzc29yLCBidWZmZXIsIHZhbHVlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBhY2Nlc3NvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUT0RPJyk7IC8vIElkZWE6IHVzZSB7IGhhcywgZ2V0LCBzZXQgfSBvYmplY3QgaW5zdGVhZD9cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBhY2Nlc3NvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHNldFdpdGhBY2Nlc3NvcihhY2Nlc3Nvci5zcGxpdCgnLicpLCBidWZmZXIsIHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYWNjZXNzb3IpKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIC4uLnBhdGhdID0gYWNjZXNzb3I7XG4gICAgICAgIFxuICAgICAgICBjb25zdCBidWZmZXJBc09iamVjdCA9IHR5cGVvZiBidWZmZXIgPT09ICdvYmplY3QnICYmIGJ1ZmZlciAhPT0gbnVsbFxuICAgICAgICAgICAgPyBidWZmZXJcbiAgICAgICAgICAgIDoge307XG4gICAgICAgIFxuICAgICAgICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRWYWx1ZSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgID8gdmFsdWUoYnVmZmVyQXNPYmplY3Rba2V5XSlcbiAgICAgICAgICAgICAgICA6IHZhbHVlO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICByZXR1cm4geyAuLi5idWZmZXJBc09iamVjdCwgW2tleV06IHVwZGF0ZWRWYWx1ZSB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChidWZmZXJBc09iamVjdCwga2V5KVxuICAgICAgICAgICAgICAgID8gYnVmZmVyQXNPYmplY3Rba2V5XVxuICAgICAgICAgICAgICAgIDoge307XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmJ1ZmZlckFzT2JqZWN0LCBba2V5XTogc2V0V2l0aEFjY2Vzc29yKHBhdGgsIHByb3AsIHZhbHVlKSB9O1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigkbXNnYFVua25vd24gYWNjZXNzb3IgdHlwZSAke2FjY2Vzc29yfWApO1xuICAgIH1cbn07XG5cbi8vIFJldHVybiBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIGdpdmVuIGJ1ZmZlciAod2hlcmUgdGhlIHByb3BlcnR5IGlzIGFzc3VtZWQgdG8gZXhpc3QpXG5leHBvcnQgY29uc3QgdXBkYXRlV2l0aEFjY2Vzc29yID0gKGFjY2Vzc29yLCBidWZmZXIsIHZhbHVlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBhY2Nlc3NvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUT0RPJyk7IC8vIElkZWE6IHVzZSB7IGhhcywgZ2V0LCBzZXQgfSBvYmplY3QgaW5zdGVhZD9cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBhY2Nlc3NvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVdpdGhBY2Nlc3NvcihhY2Nlc3Nvci5zcGxpdCgnLicpLCBidWZmZXIsIHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYWNjZXNzb3IpKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIC4uLnBhdGhdID0gYWNjZXNzb3I7XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIGJ1ZmZlciAhPT0gJ29iamVjdCcgfHwgYnVmZmVyID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCRtc2dgQ2Fubm90IGFjY2VzcyAke2tleX0gb24gbm9uLW9iamVjdCAke2J1ZmZlcn1gKTtcbiAgICAgICAgfSBlbHNlIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGJ1ZmZlciwga2V5KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigkbXNnYE1pc3Npbmcga2V5ICR7a2V5fSBvbiBvYmplY3QgJHtidWZmZXJ9YCk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgPyB2YWx1ZShidWZmZXJba2V5XSlcbiAgICAgICAgICAgICAgICA6IHZhbHVlO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICByZXR1cm4geyAuLi5idWZmZXIsIFtrZXldOiB1cGRhdGVkVmFsdWUgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmJ1ZmZlciwgW2tleV06IHVwZGF0ZVdpdGhBY2Nlc3NvcihwYXRoLCBidWZmZXJba2V5XSwgdmFsdWUpIH07XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCRtc2dgVW5rbm93biBhY2Nlc3NvciB0eXBlICR7YWNjZXNzb3J9YCk7XG4gICAgfVxufTtcblxuY29uc3QgZ2V0RXJyb3IgPSAoeyBtZXRhLCBlcnJvcnMsIHN1Ym1pdHRlZCB9LCBhY2Nlc3NvcikgPT4ge1xuICAgIGNvbnN0IGZpZWxkTWV0YSA9IGhhc0FjY2Vzc29yKGFjY2Vzc29yLCBtZXRhKVxuICAgICAgICA/IHNlbGVjdFdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgbWV0YSlcbiAgICAgICAgOiB7IHRvdWNoZWQ6IGZhbHNlIH07XG4gICAgXG4gICAgLy8gT25seSBzaG93IHRoZSBlcnJvciBtZXNzYWdlIGlmIHRoZSB1c2VyIGhhcyBpbnRlcmFjdGVkIHdpdGggdGhlIGZvcm0vZmllbGQgc29tZWhvd1xuICAgIGNvbnN0IHNob3VsZFNob3dNZXNzYWdlID1cbiAgICAgICAgc3VibWl0dGVkXG4gICAgICAgIHx8IGZpZWxkTWV0YS50b3VjaGVkO1xuICAgIFxuICAgIGlmICghc2hvdWxkU2hvd01lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBzZWxlY3RXaXRoQWNjZXNzb3IoYWNjZXNzb3IsIGVycm9ycyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBObyBlcnJvclxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgRmllbGQgPSAoeyBjaGlsZHJlbiwgY29tcG9uZW50OiBGaWVsZENvbXBvbmVudCA9ICdpbnB1dCcsIGFjY2Vzc29yLCAuLi5wcm9wcyB9ID0ge30pID0+XG4gICAgPENvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgIHsoeyBidWZmZXIsIHVwZGF0ZUJ1ZmZlciwgbWV0YSwgdXBkYXRlTWV0YSwgZXJyb3JzLCBzdWJtaXR0ZWQgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBzZWxlY3RXaXRoQWNjZXNzb3IoYWNjZXNzb3IsIGJ1ZmZlcik7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGNvbnN0IGZvcm1NZXRhID0ge1xuICAgICAgICAgICAgICAgIHN1Ym1pdHRlZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkTWV0YSA9IGhhc0FjY2Vzc29yKGFjY2Vzc29yLCBtZXRhKSA/IHNlbGVjdFdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgbWV0YSkgOiB7XG4gICAgICAgICAgICAgICAgdG91Y2hlZDogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjb25zdCBmaWVsZEVycm9yID0gZ2V0RXJyb3IoeyBtZXRhLCBlcnJvcnMsIHN1Ym1pdHRlZCB9LCBhY2Nlc3Nvcik7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkUHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U6IGV2dCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldnQudGFyZ2V0Lmhhc093blByb3BlcnR5KCdjaGVja2VkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZXZ0LnRhcmdldC5jaGVja2VkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVCdWZmZXIoYWNjZXNzb3IsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9uQmx1cjogZXZ0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFoYXNBY2Nlc3NvcihhY2Nlc3NvciwgbWV0YSkgfHwgIXNlbGVjdFdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgbWV0YSkudG91Y2hlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWV0YVVwZGF0ZWQgPSBzZXRXaXRoQWNjZXNzb3IoYWNjZXNzb3IsIG1ldGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRNZXRhID0+ICh7IC4uLihmaWVsZE1ldGEgfHwge30pLCB0b3VjaGVkOiB0cnVlIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVNZXRhKG1ldGFVcGRhdGVkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGZpZWxkUHJvcHMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIGZpZWxkUHJvcHMudmFsdWUgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgIGZpZWxkUHJvcHMuY2hlY2tlZCA9IHZhbHVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCRtc2dgVW5rbm93biB2YWx1ZSB0eXBlOiAke3ZhbHVlfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNoaWxkcmVuICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZTogdmFsdWUgPT4geyB1cGRhdGVCdWZmZXIoYWNjZXNzb3IsIHZhbHVlKTsgfSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICAgICAgPyBjaGlsZHJlbih7IGZvcm1NZXRhLCBmaWVsZFByb3BzLCBmaWVsZE1ldGEsIGZpZWxkRXJyb3IgfSwgYWN0aW9ucylcbiAgICAgICAgICAgICAgICAgICAgOiBjaGlsZHJlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8RmllbGRDb21wb25lbnQgey4uLmZpZWxkUHJvcHN9Lz5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH19XG4gICAgPC9Db250ZXh0LkNvbnN1bWVyPjtcblxuZXhwb3J0IGNvbnN0IEZpZWxkcyA9IHtcbiAgICBUZXh0OiBwcm9wcyA9PlxuICAgICAgICA8Q29udGV4dC5Db25zdW1lcj5cbiAgICAgICAgICAgIHsoeyBidWZmZXIgfSkgPT5cbiAgICAgICAgICAgICAgICA8aW5wdXQvPiAvLyBUT0RPXG4gICAgICAgICAgICB9XG4gICAgICAgIDwvQ29udGV4dC5Db25zdW1lcj4sXG59O1xuXG5leHBvcnQgY29uc3QgRXJyb3JNZXNzYWdlID0gKHsgY2hpbGRyZW4sIGNvbXBvbmVudDogRXJyb3JDb21wb25lbnQgPSBSZWFjdC5GcmFnbWVudCwgYWNjZXNzb3IsIC4uLnByb3BzIH0pID0+XG4gICAgPENvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgIHsoeyBtZXRhLCBlcnJvcnMsIHN1Ym1pdHRlZCB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IGdldEVycm9yKHsgbWV0YSwgZXJyb3JzLCBzdWJtaXR0ZWQgfSwgYWNjZXNzb3IpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAoZXJyb3IgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgICAgID8gY2hpbGRyZW4oZXJyb3IpXG4gICAgICAgICAgICAgICAgICAgIDogY2hpbGRyZW47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiA8RXJyb3JDb21wb25lbnQgey4uLnByb3BzfT57ZXJyb3J9PC9FcnJvckNvbXBvbmVudD47XG4gICAgICAgICAgICB9XG4gICAgICAgIH19XG4gICAgPC9Db250ZXh0LkNvbnN1bWVyPjtcblxuZXhwb3J0IGNsYXNzIFByb3ZpZGVyIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gICAgLy8gcHJvcHMgOiB7XG4gICAgLy8gICBidWZmZXIgOiBhbnksXG4gICAgLy8gICBvblVwZGF0ZSA6IEZ1bmN0aW9uLFxuICAgIC8vICAgdmFsaWRhdGUgPzogRnVuY3Rpb24sXG4gICAgLy8gICBvblN1Ym1pdCA6IEZ1bmN0aW9uLFxuICAgIC8vIH07XG4gICAgXG4gICAgc3RhdGUgPSB7XG4gICAgICAgIGVycm9yczoge30sXG4gICAgICAgIHByaXN0aW5lOiB0cnVlLFxuICAgICAgICBzdWJtaXR0ZWQ6IGZhbHNlLFxuICAgICAgICBtZXRhOiB7fSxcbiAgICB9O1xuICAgIFxuICAgIHZhbGlkYXRlID0gYnVmZmVyID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLnZhbGlkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGNvbnN0IGVycm9ycyA9IHRoaXMucHJvcHMudmFsaWRhdGUoYnVmZmVyKSB8fCB7fTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJvcnMgfSk7XG4gICAgfTtcbiAgICBcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZSh0aGlzLnByb3BzLmJ1ZmZlcik7XG4gICAgfVxuICAgIFxuICAgIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMsIHByZXZTdGF0ZSkge1xuICAgICAgICBpZiAocHJldlByb3BzLmJ1ZmZlciAhPT0gdGhpcy5wcm9wcy5idWZmZXIpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGUodGhpcy5wcm9wcy5idWZmZXIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBidWZmZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIFxuICAgICAgICBjb25zdCBmb3JtUHJvcHMgPSB7XG4gICAgICAgICAgICBidWZmZXIsXG4gICAgICAgICAgICB1cGRhdGVCdWZmZXI6IChhY2Nlc3NvciwgdmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQnVmZmVyID0gdXBkYXRlV2l0aEFjY2Vzc29yKGFjY2Vzc29yLCBidWZmZXIsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uVXBkYXRlKHVwZGF0ZWRCdWZmZXIpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnByaXN0aW5lKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBwcmlzdGluZTogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGlmICghaGFzQWNjZXNzb3IoYWNjZXNzb3IsIHRoaXMuc3RhdGUubWV0YSkgfHwgIXNlbGVjdFdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgdGhpcy5zdGF0ZS5tZXRhKS50b3VjaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1ldGEgPSB1cGRhdGVXaXRoQWNjZXNzb3IoYWNjZXNzb3IsIHRoaXMuc3RhdGUubWV0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkTWV0YSA9PiAoeyAuLi4oZmllbGRNZXRhIHx8IHt9KSwgdG91Y2hlZDogdHJ1ZSB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG1ldGEgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGUodXBkYXRlZEJ1ZmZlcik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXG4gICAgICAgICAgICBwcmlzdGluZTogdGhpcy5zdGF0ZS5wcmlzdGluZSxcbiAgICAgICAgICAgIHN1Ym1pdHRlZDogdGhpcy5zdGF0ZS5zdWJtaXR0ZWQsXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGVycm9yczogdGhpcy5zdGF0ZS5lcnJvcnMsXG4gICAgICAgICAgICAvLyB1cGRhdGVFcnJvcjogKGFjY2Vzc29yLCBlcnJvcikgPT4ge1xuICAgICAgICAgICAgLy8gICB0aGlzLnNldFN0YXRlKHsgZXJyb3JzOiB1cGRhdGVXaXRoQWNjZXNzb3IoYWNjZXNzb3IsIHRoaXMuc3RhdGUuZXJyb3JzLCBlcnJvcikgfSk7XG4gICAgICAgICAgICAvLyB9LFxuICAgICAgICAgICAgXG4gICAgICAgICAgICBtZXRhOiB0aGlzLnN0YXRlLm1ldGEsXG4gICAgICAgICAgICB1cGRhdGVNZXRhOiBtZXRhID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG1ldGEgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXG4gICAgICAgICAgICBzdWJtaXQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgcHJpc3RpbmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBzdWJtaXR0ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgfSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5zdGF0ZS5lcnJvcnMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblN1Ym1pdCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17Zm9ybVByb3BzfT5cbiAgICAgICAgICAgICAgICB7dHlwZW9mIHRoaXMucHJvcHMuY2hpbGRyZW4gPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnByb3BzLmNoaWxkcmVuKGZvcm1Qcm9wcylcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnByb3BzLmNoaWxkcmVuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9Db250ZXh0LlByb3ZpZGVyPlxuICAgICAgICApO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhGb3JtID0gQ29tcG9uZW50ID0+IHtcbiAgICBjb25zdCBXaXRoRm9ybSA9IHByb3BzID0+XG4gICAgICAgIDxDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICAgICAgeyh7IGJ1ZmZlciwgdXBkYXRlQnVmZmVyLCB1cGRhdGVNZXRhIH0pID0+XG4gICAgICAgICAgICAgICAgPENvbXBvbmVudCB7Li4ucHJvcHN9IGJ1ZmZlcj17YnVmZmVyfSB1cGRhdGVCdWZmZXI9e3VwZGF0ZUJ1ZmZlcn0gdXBkYXRlTWV0YT17dXBkYXRlTWV0YX0vPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0NvbnRleHQuQ29uc3VtZXI+O1xuICAgIFxuICAgIGhvaXN0Tm9uUmVhY3RTdGF0aWNzKFdpdGhGb3JtLCBDb21wb25lbnQpO1xuICAgIFxuICAgIHJldHVybiBXaXRoRm9ybTtcbn07XG4iXX0= | ||
| //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJDb250ZXh0IiwiUmVhY3QiLCJjcmVhdGVDb250ZXh0IiwiaGFzQWNjZXNzb3IiLCJhY2Nlc3NvciIsImJ1ZmZlciIsIlR5cGVFcnJvciIsInNwbGl0IiwicmVkdWNlIiwia2V5IiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiJG1zZyIsInNlbGVjdFdpdGhBY2Nlc3NvciIsInNldFdpdGhBY2Nlc3NvciIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwicGF0aCIsImJ1ZmZlckFzT2JqZWN0IiwibGVuZ3RoIiwidXBkYXRlZFZhbHVlIiwicHJvcCIsInVwZGF0ZVdpdGhBY2Nlc3NvciIsImdldEVycm9yIiwibWV0YSIsImVycm9ycyIsInN1Ym1pdHRlZCIsImZpZWxkTWV0YSIsInRvdWNoZWQiLCJzaG91bGRTaG93TWVzc2FnZSIsImUiLCJGaWVsZCIsImNoaWxkcmVuIiwiY29tcG9uZW50IiwiRmllbGRDb21wb25lbnQiLCJwcm9wcyIsInVwZGF0ZUJ1ZmZlciIsInVwZGF0ZU1ldGEiLCJmb3JtTWV0YSIsImZpZWxkRXJyb3IiLCJmaWVsZFByb3BzIiwib25DaGFuZ2UiLCJldnQiLCJ0YXJnZXQiLCJjaGVja2VkIiwib25CbHVyIiwibWV0YVVwZGF0ZWQiLCJTdHJpbmciLCJhY3Rpb25zIiwidXBkYXRlIiwiRmllbGRzIiwiVGV4dCIsIkVycm9yTWVzc2FnZSIsIkVycm9yQ29tcG9uZW50IiwiRnJhZ21lbnQiLCJlcnJvciIsIlByb3ZpZGVyIiwicHJpc3RpbmUiLCJ2YWxpZGF0ZSIsInNldFN0YXRlIiwicHJldlByb3BzIiwicHJldlN0YXRlIiwiZm9ybVByb3BzIiwidXBkYXRlZEJ1ZmZlciIsIm9uVXBkYXRlIiwic3RhdGUiLCJzdWJtaXQiLCJrZXlzIiwib25TdWJtaXQiLCJQdXJlQ29tcG9uZW50Iiwid2l0aEZvcm0iLCJDb21wb25lbnQiLCJXaXRoRm9ybSJd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WUFBWCxTQUFXQSxZQUFYO0FBQUEsVUFBeUJDLFVBQXpCLFNBQXlCQSxVQUF6QjtBQUFBLGFBQ0csb0JBQUMsU0FBRCxlQUFlRixLQUFmO0FBQXNCLFFBQUEsTUFBTSxFQUFFakMsTUFBOUI7QUFBc0MsUUFBQSxZQUFZLEVBQUVrQyxZQUFwRDtBQUFrRSxRQUFBLFVBQVUsRUFBRUM7QUFBOUUsU0FESDtBQUFBLEtBREwsQ0FEa0I7QUFBQSxHQUF0Qjs7QUFPQSxxQ0FBcUJtQyxRQUFyQixFQUErQkQsU0FBL0I7QUFFQSxTQUFPQyxRQUFQO0FBQ0gsQ0FYTSIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0ICRtc2cgZnJvbSAnbWVzc2FnZS10YWcnO1xuXG5pbXBvcnQgaG9pc3ROb25SZWFjdFN0YXRpY3MgZnJvbSAnaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5cbmV4cG9ydCBjb25zdCBDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCgpO1xuXG4vLyBDaGVjayBpZiB0aGUgZ2l2ZW4gYnVmZmVyIGhhcyB0aGUgZ2l2ZW4gYWNjZXNzb3JcbmV4cG9ydCBjb25zdCBoYXNBY2Nlc3NvciA9IChhY2Nlc3NvciwgYnVmZmVyKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBhY2Nlc3NvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUT0RPJyk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYWNjZXNzb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBhY2Nlc3Nvci5zcGxpdCgnLicpXG4gICAgICAgICAgICAucmVkdWNlKFxuICAgICAgICAgICAgICAgIChidWZmZXIsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGJ1ZmZlciAhPT0gJ29iamVjdCcgfHwgYnVmZmVyID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChidWZmZXIsIGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBidWZmZXJcbiAgICAgICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigkbXNnYFVua25vd24gYWNjZXNzb3IgdHlwZSAke2FjY2Vzc29yfWApO1xuICAgIH1cbn07XG5cbi8vIFNlbGVjdCB0aGUgdmFsdWUgYXQgdGhlIGdpdmVuIGFjY2Vzc29yXG5leHBvcnQgY29uc3Qgc2VsZWN0V2l0aEFjY2Vzc29yID0gKGFjY2Vzc29yLCBidWZmZXIpID0+IHtcbiAgICBpZiAodHlwZW9mIGFjY2Vzc29yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBhY2Nlc3NvcihidWZmZXIpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGFjY2Vzc29yID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gYWNjZXNzb3Iuc3BsaXQoJy4nKVxuICAgICAgICAgICAgLnJlZHVjZShcbiAgICAgICAgICAgICAgICAoYnVmZmVyLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBidWZmZXIgIT09ICdvYmplY3QnIHx8IGJ1ZmZlciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigkbXNnYENhbm5vdCBhY2Nlc3MgJHtrZXl9IG9uIG5vbi1vYmplY3QgJHtidWZmZXJ9YCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChidWZmZXIsIGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJG1zZ2BNaXNzaW5nIGtleSAke2tleX0gb24gb2JqZWN0ICR7YnVmZmVyfWApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcltrZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBidWZmZXJcbiAgICAgICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigkbXNnYFVua25vd24gYWNjZXNzb3IgdHlwZSAke2FjY2Vzc29yfWApO1xuICAgIH1cbn07XG5cbi8vIFJldHVybiBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIGdpdmVuIGJ1ZmZlciAod2hlcmUgdGhlIHByb3BlcnR5IG1heSBub3QgYWxyZWFkeSBleGlzdClcbmV4cG9ydCBjb25zdCBzZXRXaXRoQWNjZXNzb3IgPSAoYWNjZXNzb3IsIGJ1ZmZlciwgdmFsdWUpID0+IHtcbiAgICBpZiAodHlwZW9mIGFjY2Vzc29yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RPRE8nKTsgLy8gSWRlYTogdXNlIHsgaGFzLCBnZXQsIHNldCB9IG9iamVjdCBpbnN0ZWFkP1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGFjY2Vzc29yID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gc2V0V2l0aEFjY2Vzc29yKGFjY2Vzc29yLnNwbGl0KCcuJyksIGJ1ZmZlciwgdmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShhY2Nlc3NvcikpIHtcbiAgICAgICAgY29uc3QgW2tleSwgLi4ucGF0aF0gPSBhY2Nlc3NvcjtcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IGJ1ZmZlckFzT2JqZWN0ID0gdHlwZW9mIGJ1ZmZlciA9PT0gJ29iamVjdCcgJiYgYnVmZmVyICE9PSBudWxsXG4gICAgICAgICAgICA/IGJ1ZmZlclxuICAgICAgICAgICAgOiB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgPyB2YWx1ZShidWZmZXJBc09iamVjdFtrZXldKVxuICAgICAgICAgICAgICAgIDogdmFsdWU7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmJ1ZmZlckFzT2JqZWN0LCBba2V5XTogdXBkYXRlZFZhbHVlIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGJ1ZmZlckFzT2JqZWN0LCBrZXkpXG4gICAgICAgICAgICAgICAgPyBidWZmZXJBc09iamVjdFtrZXldXG4gICAgICAgICAgICAgICAgOiB7fTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgcmV0dXJuIHsgLi4uYnVmZmVyQXNPYmplY3QsIFtrZXldOiBzZXRXaXRoQWNjZXNzb3IocGF0aCwgcHJvcCwgdmFsdWUpIH07XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCRtc2dgVW5rbm93biBhY2Nlc3NvciB0eXBlICR7YWNjZXNzb3J9YCk7XG4gICAgfVxufTtcblxuLy8gUmV0dXJuIGFuIHVwZGF0ZWQgdmVyc2lvbiBvZiB0aGUgZ2l2ZW4gYnVmZmVyICh3aGVyZSB0aGUgcHJvcGVydHkgaXMgYXNzdW1lZCB0byBleGlzdClcbmV4cG9ydCBjb25zdCB1cGRhdGVXaXRoQWNjZXNzb3IgPSAoYWNjZXNzb3IsIGJ1ZmZlciwgdmFsdWUpID0+IHtcbiAgICBpZiAodHlwZW9mIGFjY2Vzc29yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RPRE8nKTsgLy8gSWRlYTogdXNlIHsgaGFzLCBnZXQsIHNldCB9IG9iamVjdCBpbnN0ZWFkP1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGFjY2Vzc29yID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdXBkYXRlV2l0aEFjY2Vzc29yKGFjY2Vzc29yLnNwbGl0KCcuJyksIGJ1ZmZlciwgdmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShhY2Nlc3NvcikpIHtcbiAgICAgICAgY29uc3QgW2tleSwgLi4ucGF0aF0gPSBhY2Nlc3NvcjtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgYnVmZmVyICE9PSAnb2JqZWN0JyB8fCBidWZmZXIgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJG1zZ2BDYW5ub3QgYWNjZXNzICR7a2V5fSBvbiBub24tb2JqZWN0ICR7YnVmZmVyfWApO1xuICAgICAgICB9IGVsc2UgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYnVmZmVyLCBrZXkpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCRtc2dgTWlzc2luZyBrZXkgJHtrZXl9IG9uIG9iamVjdCAke2J1ZmZlcn1gKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkVmFsdWUgPSB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IHZhbHVlKGJ1ZmZlcltrZXldKVxuICAgICAgICAgICAgICAgIDogdmFsdWU7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmJ1ZmZlciwgW2tleV06IHVwZGF0ZWRWYWx1ZSB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uYnVmZmVyLCBba2V5XTogdXBkYXRlV2l0aEFjY2Vzc29yKHBhdGgsIGJ1ZmZlcltrZXldLCB2YWx1ZSkgfTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJG1zZ2BVbmtub3duIGFjY2Vzc29yIHR5cGUgJHthY2Nlc3Nvcn1gKTtcbiAgICB9XG59O1xuXG5jb25zdCBnZXRFcnJvciA9ICh7IG1ldGEsIGVycm9ycywgc3VibWl0dGVkIH0sIGFjY2Vzc29yKSA9PiB7XG4gICAgY29uc3QgZmllbGRNZXRhID0gaGFzQWNjZXNzb3IoYWNjZXNzb3IsIG1ldGEpXG4gICAgICAgID8gc2VsZWN0V2l0aEFjY2Vzc29yKGFjY2Vzc29yLCBtZXRhKVxuICAgICAgICA6IHsgdG91Y2hlZDogZmFsc2UgfTtcbiAgICBcbiAgICAvLyBPbmx5IHNob3cgdGhlIGVycm9yIG1lc3NhZ2UgaWYgdGhlIHVzZXIgaGFzIGludGVyYWN0ZWQgd2l0aCB0aGUgZm9ybS9maWVsZCBzb21laG93XG4gICAgY29uc3Qgc2hvdWxkU2hvd01lc3NhZ2UgPVxuICAgICAgICBzdWJtaXR0ZWRcbiAgICAgICAgfHwgZmllbGRNZXRhLnRvdWNoZWQ7XG4gICAgXG4gICAgaWYgKCFzaG91bGRTaG93TWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHNlbGVjdFdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgZXJyb3JzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIE5vIGVycm9yXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBGaWVsZCA9ICh7IGNoaWxkcmVuLCBjb21wb25lbnQ6IEZpZWxkQ29tcG9uZW50ID0gJ2lucHV0JywgYWNjZXNzb3IsIC4uLnByb3BzIH0gPSB7fSkgPT5cbiAgICA8Q29udGV4dC5Db25zdW1lcj5cbiAgICAgICAgeyh7IGJ1ZmZlciwgdXBkYXRlQnVmZmVyLCBtZXRhLCB1cGRhdGVNZXRhLCBlcnJvcnMsIHN1Ym1pdHRlZCB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHNlbGVjdFdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgYnVmZmVyKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY29uc3QgZm9ybU1ldGEgPSB7XG4gICAgICAgICAgICAgICAgc3VibWl0dGVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY29uc3QgZmllbGRNZXRhID0gaGFzQWNjZXNzb3IoYWNjZXNzb3IsIG1ldGEpID8gc2VsZWN0V2l0aEFjY2Vzc29yKGFjY2Vzc29yLCBtZXRhKSA6IHtcbiAgICAgICAgICAgICAgICB0b3VjaGVkOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkRXJyb3IgPSBnZXRFcnJvcih7IG1ldGEsIGVycm9ycywgc3VibWl0dGVkIH0sIGFjY2Vzc29yKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY29uc3QgZmllbGRQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogZXZ0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gZXZ0LnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC50YXJnZXQuaGFzT3duUHJvcGVydHkoJ2NoZWNrZWQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBldnQudGFyZ2V0LmNoZWNrZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUJ1ZmZlcihhY2Nlc3NvciwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb25CbHVyOiBldnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc0FjY2Vzc29yKGFjY2Vzc29yLCBtZXRhKSB8fCAhc2VsZWN0V2l0aEFjY2Vzc29yKGFjY2Vzc29yLCBtZXRhKS50b3VjaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXRhVXBkYXRlZCA9IHNldFdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgbWV0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE1ldGEgPT4gKHsgLi4uKGZpZWxkTWV0YSB8fCB7fSksIHRvdWNoZWQ6IHRydWUgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZU1ldGEobWV0YVVwZGF0ZWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgZmllbGRQcm9wcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgZmllbGRQcm9wcy52YWx1ZSA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgZmllbGRQcm9wcy5jaGVja2VkID0gdmFsdWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJG1zZ2BVbmtub3duIHZhbHVlIHR5cGU6ICR7dmFsdWV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlOiB2YWx1ZSA9PiB7IHVwZGF0ZUJ1ZmZlcihhY2Nlc3NvciwgdmFsdWUpOyB9LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICA/IGNoaWxkcmVuKHsgZm9ybU1ldGEsIGZpZWxkUHJvcHMsIGZpZWxkTWV0YSwgZmllbGRFcnJvciB9LCBhY3Rpb25zKVxuICAgICAgICAgICAgICAgICAgICA6IGNoaWxkcmVuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxGaWVsZENvbXBvbmVudCB7Li4uZmllbGRQcm9wc30vPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfX1cbiAgICA8L0NvbnRleHQuQ29uc3VtZXI+O1xuXG5leHBvcnQgY29uc3QgRmllbGRzID0ge1xuICAgIFRleHQ6IHByb3BzID0+XG4gICAgICAgIDxDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICAgICAgeyh7IGJ1ZmZlciB9KSA9PlxuICAgICAgICAgICAgICAgIDxpbnB1dC8+IC8vIFRPRE9cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9Db250ZXh0LkNvbnN1bWVyPixcbn07XG5cbmV4cG9ydCBjb25zdCBFcnJvck1lc3NhZ2UgPSAoeyBjaGlsZHJlbiwgY29tcG9uZW50OiBFcnJvckNvbXBvbmVudCA9IFJlYWN0LkZyYWdtZW50LCBhY2Nlc3NvciwgLi4ucHJvcHMgfSkgPT5cbiAgICA8Q29udGV4dC5Db25zdW1lcj5cbiAgICAgICAgeyh7IG1ldGEsIGVycm9ycywgc3VibWl0dGVkIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gZ2V0RXJyb3IoeyBtZXRhLCBlcnJvcnMsIHN1Ym1pdHRlZCB9LCBhY2Nlc3Nvcik7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIChlcnJvciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNoaWxkcmVuICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICAgICAgPyBjaGlsZHJlbihlcnJvcilcbiAgICAgICAgICAgICAgICAgICAgOiBjaGlsZHJlbjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxFcnJvckNvbXBvbmVudCB7Li4ucHJvcHN9PntlcnJvcn08L0Vycm9yQ29tcG9uZW50PjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICA8L0NvbnRleHQuQ29uc3VtZXI+O1xuXG5leHBvcnQgY2xhc3MgUHJvdmlkZXIgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgICAvLyBwcm9wcyA6IHtcbiAgICAvLyAgIGJ1ZmZlciA6IGFueSxcbiAgICAvLyAgIG9uVXBkYXRlIDogRnVuY3Rpb24sXG4gICAgLy8gICB2YWxpZGF0ZSA/OiBGdW5jdGlvbixcbiAgICAvLyAgIG9uU3VibWl0IDogRnVuY3Rpb24sXG4gICAgLy8gfTtcbiAgICBcbiAgICBzdGF0ZSA9IHtcbiAgICAgICAgZXJyb3JzOiB7fSxcbiAgICAgICAgcHJpc3RpbmU6IHRydWUsXG4gICAgICAgIHN1Ym1pdHRlZDogZmFsc2UsXG4gICAgICAgIG1ldGE6IHt9LFxuICAgIH07XG4gICAgXG4gICAgdmFsaWRhdGUgPSBidWZmZXIgPT4ge1xuICAgICAgICBpZiAoIXRoaXMucHJvcHMudmFsaWRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgY29uc3QgZXJyb3JzID0gdGhpcy5wcm9wcy52YWxpZGF0ZShidWZmZXIpIHx8IHt9O1xuICAgICAgICBcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVycm9ycyB9KTtcbiAgICB9O1xuICAgIFxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlKHRoaXMucHJvcHMuYnVmZmVyKTtcbiAgICB9XG4gICAgXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcywgcHJldlN0YXRlKSB7XG4gICAgICAgIGlmIChwcmV2UHJvcHMuYnVmZmVyICE9PSB0aGlzLnByb3BzLmJ1ZmZlcikge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZSh0aGlzLnByb3BzLmJ1ZmZlcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IGJ1ZmZlciB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IGZvcm1Qcm9wcyA9IHtcbiAgICAgICAgICAgIGJ1ZmZlcixcbiAgICAgICAgICAgIHVwZGF0ZUJ1ZmZlcjogKGFjY2Vzc29yLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRCdWZmZXIgPSB1cGRhdGVXaXRoQWNjZXNzb3IoYWNjZXNzb3IsIGJ1ZmZlciwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25VcGRhdGUodXBkYXRlZEJ1ZmZlcik7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUucHJpc3RpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHByaXN0aW5lOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgaWYgKCFoYXNBY2Nlc3NvcihhY2Nlc3NvciwgdGhpcy5zdGF0ZS5tZXRhKSB8fCAhc2VsZWN0V2l0aEFjY2Vzc29yKGFjY2Vzc29yLCB0aGlzLnN0YXRlLm1ldGEpLnRvdWNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWV0YSA9IHNldFdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgdGhpcy5zdGF0ZS5tZXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRNZXRhID0+ICh7IC4uLihmaWVsZE1ldGEgfHwge30pLCB0b3VjaGVkOiB0cnVlIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbWV0YSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZSh1cGRhdGVkQnVmZmVyKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHByaXN0aW5lOiB0aGlzLnN0YXRlLnByaXN0aW5lLFxuICAgICAgICAgICAgc3VibWl0dGVkOiB0aGlzLnN0YXRlLnN1Ym1pdHRlZCxcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgZXJyb3JzOiB0aGlzLnN0YXRlLmVycm9ycyxcbiAgICAgICAgICAgIC8vIHVwZGF0ZUVycm9yOiAoYWNjZXNzb3IsIGVycm9yKSA9PiB7XG4gICAgICAgICAgICAvLyAgIHRoaXMuc2V0U3RhdGUoeyBlcnJvcnM6IHVwZGF0ZVdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgdGhpcy5zdGF0ZS5lcnJvcnMsIGVycm9yKSB9KTtcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIG1ldGE6IHRoaXMuc3RhdGUubWV0YSxcbiAgICAgICAgICAgIHVwZGF0ZU1ldGE6IG1ldGEgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbWV0YSB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHN1Ym1pdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgICAgICBwcmlzdGluZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHN1Ym1pdHRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLnN0YXRlLmVycm9ycykubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uU3VibWl0KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtmb3JtUHJvcHN9PlxuICAgICAgICAgICAgICAgIHt0eXBlb2YgdGhpcy5wcm9wcy5jaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICA/IHRoaXMucHJvcHMuY2hpbGRyZW4oZm9ybVByb3BzKVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L0NvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3Qgd2l0aEZvcm0gPSBDb21wb25lbnQgPT4ge1xuICAgIGNvbnN0IFdpdGhGb3JtID0gcHJvcHMgPT5cbiAgICAgICAgPENvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgICAgICB7KHsgYnVmZmVyLCB1cGRhdGVCdWZmZXIsIHVwZGF0ZU1ldGEgfSkgPT5cbiAgICAgICAgICAgICAgICA8Q29tcG9uZW50IHsuLi5wcm9wc30gYnVmZmVyPXtidWZmZXJ9IHVwZGF0ZUJ1ZmZlcj17dXBkYXRlQnVmZmVyfSB1cGRhdGVNZXRhPXt1cGRhdGVNZXRhfS8+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvQ29udGV4dC5Db25zdW1lcj47XG4gICAgXG4gICAgaG9pc3ROb25SZWFjdFN0YXRpY3MoV2l0aEZvcm0sIENvbXBvbmVudCk7XG4gICAgXG4gICAgcmV0dXJuIFdpdGhGb3JtO1xufTtcbiJdfQ== |
+2
-2
@@ -430,3 +430,3 @@ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } | ||
| if (!hasAccessor(accessor, _this2.state.meta) || !selectWithAccessor(accessor, _this2.state.meta).touched) { | ||
| var meta = updateWithAccessor(accessor, _this2.state.meta, function (fieldMeta) { | ||
| var meta = setWithAccessor(accessor, _this2.state.meta, function (fieldMeta) { | ||
| return _objectSpread({}, fieldMeta || {}, { | ||
@@ -494,2 +494,2 @@ touched: true | ||
| }; | ||
| //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyIkbXNnIiwiaG9pc3ROb25SZWFjdFN0YXRpY3MiLCJSZWFjdCIsIkNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwiaGFzQWNjZXNzb3IiLCJhY2Nlc3NvciIsImJ1ZmZlciIsIlR5cGVFcnJvciIsInNwbGl0IiwicmVkdWNlIiwia2V5IiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwic2VsZWN0V2l0aEFjY2Vzc29yIiwic2V0V2l0aEFjY2Vzc29yIiwidmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJwYXRoIiwiYnVmZmVyQXNPYmplY3QiLCJsZW5ndGgiLCJ1cGRhdGVkVmFsdWUiLCJwcm9wIiwidXBkYXRlV2l0aEFjY2Vzc29yIiwiZ2V0RXJyb3IiLCJtZXRhIiwiZXJyb3JzIiwic3VibWl0dGVkIiwiZmllbGRNZXRhIiwidG91Y2hlZCIsInNob3VsZFNob3dNZXNzYWdlIiwiZSIsIkZpZWxkIiwiY2hpbGRyZW4iLCJjb21wb25lbnQiLCJGaWVsZENvbXBvbmVudCIsInByb3BzIiwidXBkYXRlQnVmZmVyIiwidXBkYXRlTWV0YSIsImZvcm1NZXRhIiwiZmllbGRFcnJvciIsImZpZWxkUHJvcHMiLCJvbkNoYW5nZSIsImV2dCIsInRhcmdldCIsImNoZWNrZWQiLCJvbkJsdXIiLCJtZXRhVXBkYXRlZCIsIlN0cmluZyIsImFjdGlvbnMiLCJ1cGRhdGUiLCJGaWVsZHMiLCJUZXh0IiwiRXJyb3JNZXNzYWdlIiwiRXJyb3JDb21wb25lbnQiLCJGcmFnbWVudCIsImVycm9yIiwiUHJvdmlkZXIiLCJwcmlzdGluZSIsInZhbGlkYXRlIiwic2V0U3RhdGUiLCJwcmV2UHJvcHMiLCJwcmV2U3RhdGUiLCJmb3JtUHJvcHMiLCJ1cGRhdGVkQnVmZmVyIiwib25VcGRhdGUiLCJzdGF0ZSIsInN1Ym1pdCIsImtleXMiLCJvblN1Ym1pdCIsIlB1cmVDb21wb25lbnQiLCJ3aXRoRm9ybSIs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QUFLM0IsS0FBTCxDQUFXSCxRQUhyQixDQURKO0FBUUg7QUEvRkw7O0FBQUE7QUFBQSxFQUE4QmxDLEtBQUssQ0FBQ3VFLGFBQXBDO0FBa0dBLE9BQU8sSUFBTUMsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQUMsU0FBUyxFQUFJO0FBQ2pDLE1BQU1DLFFBQVEsR0FBRyxTQUFYQSxRQUFXLENBQUFyQyxLQUFLO0FBQUEsV0FDbEIsb0JBQUMsT0FBRCxDQUFTLFFBQVQsUUFDSztBQUFBLFVBQUdoQyxNQUFILFNBQUdBLE1BQUg7QUFBQSxVQUFXaUMsWUFBWCxTQUFXQSxZQUFYO0FBQUEsVUFBeUJDLFVBQXpCLFNBQXlCQSxVQUF6QjtBQUFBLGFBQ0csb0JBQUMsU0FBRCxlQUFlRixLQUFmO0FBQXNCLFFBQUEsTUFBTSxFQUFFaEMsTUFBOUI7QUFBc0MsUUFBQSxZQUFZLEVBQUVpQyxZQUFwRDtBQUFrRSxRQUFBLFVBQVUsRUFBRUM7QUFBOUUsU0FESDtBQUFBLEtBREwsQ0FEa0I7QUFBQSxHQUF0Qjs7QUFPQXhDLEVBQUFBLG9CQUFvQixDQUFDMkUsUUFBRCxFQUFXRCxTQUFYLENBQXBCO0FBRUEsU0FBT0MsUUFBUDtBQUNILENBWE0iLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCAkbXNnIGZyb20gJ21lc3NhZ2UtdGFnJztcblxuaW1wb3J0IGhvaXN0Tm9uUmVhY3RTdGF0aWNzIGZyb20gJ2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcblxuXG5leHBvcnQgY29uc3QgQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoKTtcblxuLy8gQ2hlY2sgaWYgdGhlIGdpdmVuIGJ1ZmZlciBoYXMgdGhlIGdpdmVuIGFjY2Vzc29yXG5leHBvcnQgY29uc3QgaGFzQWNjZXNzb3IgPSAoYWNjZXNzb3IsIGJ1ZmZlcikgPT4ge1xuICAgIGlmICh0eXBlb2YgYWNjZXNzb3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVE9ETycpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGFjY2Vzc29yID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gYWNjZXNzb3Iuc3BsaXQoJy4nKVxuICAgICAgICAgICAgLnJlZHVjZShcbiAgICAgICAgICAgICAgICAoYnVmZmVyLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBidWZmZXIgIT09ICdvYmplY3QnIHx8IGJ1ZmZlciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYnVmZmVyLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYnVmZmVyXG4gICAgICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJG1zZ2BVbmtub3duIGFjY2Vzc29yIHR5cGUgJHthY2Nlc3Nvcn1gKTtcbiAgICB9XG59O1xuXG4vLyBTZWxlY3QgdGhlIHZhbHVlIGF0IHRoZSBnaXZlbiBhY2Nlc3NvclxuZXhwb3J0IGNvbnN0IHNlbGVjdFdpdGhBY2Nlc3NvciA9IChhY2Nlc3NvciwgYnVmZmVyKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBhY2Nlc3NvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gYWNjZXNzb3IoYnVmZmVyKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBhY2Nlc3NvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGFjY2Vzc29yLnNwbGl0KCcuJylcbiAgICAgICAgICAgIC5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKGJ1ZmZlciwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgYnVmZmVyICE9PSAnb2JqZWN0JyB8fCBidWZmZXIgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJG1zZ2BDYW5ub3QgYWNjZXNzICR7a2V5fSBvbiBub24tb2JqZWN0ICR7YnVmZmVyfWApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYnVmZmVyLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCRtc2dgTWlzc2luZyBrZXkgJHtrZXl9IG9uIG9iamVjdCAke2J1ZmZlcn1gKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXJba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYnVmZmVyXG4gICAgICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJG1zZ2BVbmtub3duIGFjY2Vzc29yIHR5cGUgJHthY2Nlc3Nvcn1gKTtcbiAgICB9XG59O1xuXG4vLyBSZXR1cm4gYW4gdXBkYXRlZCB2ZXJzaW9uIG9mIHRoZSBnaXZlbiBidWZmZXIgKHdoZXJlIHRoZSBwcm9wZXJ0eSBtYXkgbm90IGFscmVhZHkgZXhpc3QpXG5leHBvcnQgY29uc3Qgc2V0V2l0aEFjY2Vzc29yID0gKGFjY2Vzc29yLCBidWZmZXIsIHZhbHVlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBhY2Nlc3NvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUT0RPJyk7IC8vIElkZWE6IHVzZSB7IGhhcywgZ2V0LCBzZXQgfSBvYmplY3QgaW5zdGVhZD9cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBhY2Nlc3NvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHNldFdpdGhBY2Nlc3NvcihhY2Nlc3Nvci5zcGxpdCgnLicpLCBidWZmZXIsIHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYWNjZXNzb3IpKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIC4uLnBhdGhdID0gYWNjZXNzb3I7XG4gICAgICAgIFxuICAgICAgICBjb25zdCBidWZmZXJBc09iamVjdCA9IHR5cGVvZiBidWZmZXIgPT09ICdvYmplY3QnICYmIGJ1ZmZlciAhPT0gbnVsbFxuICAgICAgICAgICAgPyBidWZmZXJcbiAgICAgICAgICAgIDoge307XG4gICAgICAgIFxuICAgICAgICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRWYWx1ZSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgID8gdmFsdWUoYnVmZmVyQXNPYmplY3Rba2V5XSlcbiAgICAgICAgICAgICAgICA6IHZhbHVlO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICByZXR1cm4geyAuLi5idWZmZXJBc09iamVjdCwgW2tleV06IHVwZGF0ZWRWYWx1ZSB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChidWZmZXJBc09iamVjdCwga2V5KVxuICAgICAgICAgICAgICAgID8gYnVmZmVyQXNPYmplY3Rba2V5XVxuICAgICAgICAgICAgICAgIDoge307XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmJ1ZmZlckFzT2JqZWN0LCBba2V5XTogc2V0V2l0aEFjY2Vzc29yKHBhdGgsIHByb3AsIHZhbHVlKSB9O1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigkbXNnYFVua25vd24gYWNjZXNzb3IgdHlwZSAke2FjY2Vzc29yfWApO1xuICAgIH1cbn07XG5cbi8vIFJldHVybiBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIGdpdmVuIGJ1ZmZlciAod2hlcmUgdGhlIHByb3BlcnR5IGlzIGFzc3VtZWQgdG8gZXhpc3QpXG5leHBvcnQgY29uc3QgdXBkYXRlV2l0aEFjY2Vzc29yID0gKGFjY2Vzc29yLCBidWZmZXIsIHZhbHVlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBhY2Nlc3NvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUT0RPJyk7IC8vIElkZWE6IHVzZSB7IGhhcywgZ2V0LCBzZXQgfSBvYmplY3QgaW5zdGVhZD9cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBhY2Nlc3NvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVdpdGhBY2Nlc3NvcihhY2Nlc3Nvci5zcGxpdCgnLicpLCBidWZmZXIsIHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYWNjZXNzb3IpKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIC4uLnBhdGhdID0gYWNjZXNzb3I7XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIGJ1ZmZlciAhPT0gJ29iamVjdCcgfHwgYnVmZmVyID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCRtc2dgQ2Fubm90IGFjY2VzcyAke2tleX0gb24gbm9uLW9iamVjdCAke2J1ZmZlcn1gKTtcbiAgICAgICAgfSBlbHNlIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGJ1ZmZlciwga2V5KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigkbXNnYE1pc3Npbmcga2V5ICR7a2V5fSBvbiBvYmplY3QgJHtidWZmZXJ9YCk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgPyB2YWx1ZShidWZmZXJba2V5XSlcbiAgICAgICAgICAgICAgICA6IHZhbHVlO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICByZXR1cm4geyAuLi5idWZmZXIsIFtrZXldOiB1cGRhdGVkVmFsdWUgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmJ1ZmZlciwgW2tleV06IHVwZGF0ZVdpdGhBY2Nlc3NvcihwYXRoLCBidWZmZXJba2V5XSwgdmFsdWUpIH07XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCRtc2dgVW5rbm93biBhY2Nlc3NvciB0eXBlICR7YWNjZXNzb3J9YCk7XG4gICAgfVxufTtcblxuY29uc3QgZ2V0RXJyb3IgPSAoeyBtZXRhLCBlcnJvcnMsIHN1Ym1pdHRlZCB9LCBhY2Nlc3NvcikgPT4ge1xuICAgIGNvbnN0IGZpZWxkTWV0YSA9IGhhc0FjY2Vzc29yKGFjY2Vzc29yLCBtZXRhKVxuICAgICAgICA/IHNlbGVjdFdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgbWV0YSlcbiAgICAgICAgOiB7IHRvdWNoZWQ6IGZhbHNlIH07XG4gICAgXG4gICAgLy8gT25seSBzaG93IHRoZSBlcnJvciBtZXNzYWdlIGlmIHRoZSB1c2VyIGhhcyBpbnRlcmFjdGVkIHdpdGggdGhlIGZvcm0vZmllbGQgc29tZWhvd1xuICAgIGNvbnN0IHNob3VsZFNob3dNZXNzYWdlID1cbiAgICAgICAgc3VibWl0dGVkXG4gICAgICAgIHx8IGZpZWxkTWV0YS50b3VjaGVkO1xuICAgIFxuICAgIGlmICghc2hvdWxkU2hvd01lc3NhZ2UpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBzZWxlY3RXaXRoQWNjZXNzb3IoYWNjZXNzb3IsIGVycm9ycyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBObyBlcnJvclxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgRmllbGQgPSAoeyBjaGlsZHJlbiwgY29tcG9uZW50OiBGaWVsZENvbXBvbmVudCA9ICdpbnB1dCcsIGFjY2Vzc29yLCAuLi5wcm9wcyB9ID0ge30pID0+XG4gICAgPENvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgIHsoeyBidWZmZXIsIHVwZGF0ZUJ1ZmZlciwgbWV0YSwgdXBkYXRlTWV0YSwgZXJyb3JzLCBzdWJtaXR0ZWQgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBzZWxlY3RXaXRoQWNjZXNzb3IoYWNjZXNzb3IsIGJ1ZmZlcik7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGNvbnN0IGZvcm1NZXRhID0ge1xuICAgICAgICAgICAgICAgIHN1Ym1pdHRlZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkTWV0YSA9IGhhc0FjY2Vzc29yKGFjY2Vzc29yLCBtZXRhKSA/IHNlbGVjdFdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgbWV0YSkgOiB7XG4gICAgICAgICAgICAgICAgdG91Y2hlZDogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjb25zdCBmaWVsZEVycm9yID0gZ2V0RXJyb3IoeyBtZXRhLCBlcnJvcnMsIHN1Ym1pdHRlZCB9LCBhY2Nlc3Nvcik7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkUHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U6IGV2dCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldnQudGFyZ2V0Lmhhc093blByb3BlcnR5KCdjaGVja2VkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZXZ0LnRhcmdldC5jaGVja2VkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVCdWZmZXIoYWNjZXNzb3IsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9uQmx1cjogZXZ0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFoYXNBY2Nlc3NvcihhY2Nlc3NvciwgbWV0YSkgfHwgIXNlbGVjdFdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgbWV0YSkudG91Y2hlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWV0YVVwZGF0ZWQgPSBzZXRXaXRoQWNjZXNzb3IoYWNjZXNzb3IsIG1ldGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRNZXRhID0+ICh7IC4uLihmaWVsZE1ldGEgfHwge30pLCB0b3VjaGVkOiB0cnVlIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVNZXRhKG1ldGFVcGRhdGVkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGZpZWxkUHJvcHMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIGZpZWxkUHJvcHMudmFsdWUgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgIGZpZWxkUHJvcHMuY2hlY2tlZCA9IHZhbHVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCRtc2dgVW5rbm93biB2YWx1ZSB0eXBlOiAke3ZhbHVlfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNoaWxkcmVuICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZTogdmFsdWUgPT4geyB1cGRhdGVCdWZmZXIoYWNjZXNzb3IsIHZhbHVlKTsgfSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICAgICAgPyBjaGlsZHJlbih7IGZvcm1NZXRhLCBmaWVsZFByb3BzLCBmaWVsZE1ldGEsIGZpZWxkRXJyb3IgfSwgYWN0aW9ucylcbiAgICAgICAgICAgICAgICAgICAgOiBjaGlsZHJlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8RmllbGRDb21wb25lbnQgey4uLmZpZWxkUHJvcHN9Lz5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH19XG4gICAgPC9Db250ZXh0LkNvbnN1bWVyPjtcblxuZXhwb3J0IGNvbnN0IEZpZWxkcyA9IHtcbiAgICBUZXh0OiBwcm9wcyA9PlxuICAgICAgICA8Q29udGV4dC5Db25zdW1lcj5cbiAgICAgICAgICAgIHsoeyBidWZmZXIgfSkgPT5cbiAgICAgICAgICAgICAgICA8aW5wdXQvPiAvLyBUT0RPXG4gICAgICAgICAgICB9XG4gICAgICAgIDwvQ29udGV4dC5Db25zdW1lcj4sXG59O1xuXG5leHBvcnQgY29uc3QgRXJyb3JNZXNzYWdlID0gKHsgY2hpbGRyZW4sIGNvbXBvbmVudDogRXJyb3JDb21wb25lbnQgPSBSZWFjdC5GcmFnbWVudCwgYWNjZXNzb3IsIC4uLnByb3BzIH0pID0+XG4gICAgPENvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgIHsoeyBtZXRhLCBlcnJvcnMsIHN1Ym1pdHRlZCB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IGdldEVycm9yKHsgbWV0YSwgZXJyb3JzLCBzdWJtaXR0ZWQgfSwgYWNjZXNzb3IpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAoZXJyb3IgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgICAgID8gY2hpbGRyZW4oZXJyb3IpXG4gICAgICAgICAgICAgICAgICAgIDogY2hpbGRyZW47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiA8RXJyb3JDb21wb25lbnQgey4uLnByb3BzfT57ZXJyb3J9PC9FcnJvckNvbXBvbmVudD47XG4gICAgICAgICAgICB9XG4gICAgICAgIH19XG4gICAgPC9Db250ZXh0LkNvbnN1bWVyPjtcblxuZXhwb3J0IGNsYXNzIFByb3ZpZGVyIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gICAgLy8gcHJvcHMgOiB7XG4gICAgLy8gICBidWZmZXIgOiBhbnksXG4gICAgLy8gICBvblVwZGF0ZSA6IEZ1bmN0aW9uLFxuICAgIC8vICAgdmFsaWRhdGUgPzogRnVuY3Rpb24sXG4gICAgLy8gICBvblN1Ym1pdCA6IEZ1bmN0aW9uLFxuICAgIC8vIH07XG4gICAgXG4gICAgc3RhdGUgPSB7XG4gICAgICAgIGVycm9yczoge30sXG4gICAgICAgIHByaXN0aW5lOiB0cnVlLFxuICAgICAgICBzdWJtaXR0ZWQ6IGZhbHNlLFxuICAgICAgICBtZXRhOiB7fSxcbiAgICB9O1xuICAgIFxuICAgIHZhbGlkYXRlID0gYnVmZmVyID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLnZhbGlkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGNvbnN0IGVycm9ycyA9IHRoaXMucHJvcHMudmFsaWRhdGUoYnVmZmVyKSB8fCB7fTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJvcnMgfSk7XG4gICAgfTtcbiAgICBcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZSh0aGlzLnByb3BzLmJ1ZmZlcik7XG4gICAgfVxuICAgIFxuICAgIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMsIHByZXZTdGF0ZSkge1xuICAgICAgICBpZiAocHJldlByb3BzLmJ1ZmZlciAhPT0gdGhpcy5wcm9wcy5idWZmZXIpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGUodGhpcy5wcm9wcy5idWZmZXIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBidWZmZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIFxuICAgICAgICBjb25zdCBmb3JtUHJvcHMgPSB7XG4gICAgICAgICAgICBidWZmZXIsXG4gICAgICAgICAgICB1cGRhdGVCdWZmZXI6IChhY2Nlc3NvciwgdmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQnVmZmVyID0gdXBkYXRlV2l0aEFjY2Vzc29yKGFjY2Vzc29yLCBidWZmZXIsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uVXBkYXRlKHVwZGF0ZWRCdWZmZXIpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnByaXN0aW5lKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBwcmlzdGluZTogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGlmICghaGFzQWNjZXNzb3IoYWNjZXNzb3IsIHRoaXMuc3RhdGUubWV0YSkgfHwgIXNlbGVjdFdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgdGhpcy5zdGF0ZS5tZXRhKS50b3VjaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1ldGEgPSB1cGRhdGVXaXRoQWNjZXNzb3IoYWNjZXNzb3IsIHRoaXMuc3RhdGUubWV0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkTWV0YSA9PiAoeyAuLi4oZmllbGRNZXRhIHx8IHt9KSwgdG91Y2hlZDogdHJ1ZSB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG1ldGEgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGUodXBkYXRlZEJ1ZmZlcik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXG4gICAgICAgICAgICBwcmlzdGluZTogdGhpcy5zdGF0ZS5wcmlzdGluZSxcbiAgICAgICAgICAgIHN1Ym1pdHRlZDogdGhpcy5zdGF0ZS5zdWJtaXR0ZWQsXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGVycm9yczogdGhpcy5zdGF0ZS5lcnJvcnMsXG4gICAgICAgICAgICAvLyB1cGRhdGVFcnJvcjogKGFjY2Vzc29yLCBlcnJvcikgPT4ge1xuICAgICAgICAgICAgLy8gICB0aGlzLnNldFN0YXRlKHsgZXJyb3JzOiB1cGRhdGVXaXRoQWNjZXNzb3IoYWNjZXNzb3IsIHRoaXMuc3RhdGUuZXJyb3JzLCBlcnJvcikgfSk7XG4gICAgICAgICAgICAvLyB9LFxuICAgICAgICAgICAgXG4gICAgICAgICAgICBtZXRhOiB0aGlzLnN0YXRlLm1ldGEsXG4gICAgICAgICAgICB1cGRhdGVNZXRhOiBtZXRhID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG1ldGEgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXG4gICAgICAgICAgICBzdWJtaXQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgcHJpc3RpbmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBzdWJtaXR0ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgfSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5zdGF0ZS5lcnJvcnMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblN1Ym1pdCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17Zm9ybVByb3BzfT5cbiAgICAgICAgICAgICAgICB7dHlwZW9mIHRoaXMucHJvcHMuY2hpbGRyZW4gPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnByb3BzLmNoaWxkcmVuKGZvcm1Qcm9wcylcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnByb3BzLmNoaWxkcmVuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9Db250ZXh0LlByb3ZpZGVyPlxuICAgICAgICApO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhGb3JtID0gQ29tcG9uZW50ID0+IHtcbiAgICBjb25zdCBXaXRoRm9ybSA9IHByb3BzID0+XG4gICAgICAgIDxDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICAgICAgeyh7IGJ1ZmZlciwgdXBkYXRlQnVmZmVyLCB1cGRhdGVNZXRhIH0pID0+XG4gICAgICAgICAgICAgICAgPENvbXBvbmVudCB7Li4ucHJvcHN9IGJ1ZmZlcj17YnVmZmVyfSB1cGRhdGVCdWZmZXI9e3VwZGF0ZUJ1ZmZlcn0gdXBkYXRlTWV0YT17dXBkYXRlTWV0YX0vPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0NvbnRleHQuQ29uc3VtZXI+O1xuICAgIFxuICAgIGhvaXN0Tm9uUmVhY3RTdGF0aWNzKFdpdGhGb3JtLCBDb21wb25lbnQpO1xuICAgIFxuICAgIHJldHVybiBXaXRoRm9ybTtcbn07XG4iXX0= | ||
| //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyIkbXNnIiwiaG9pc3ROb25SZWFjdFN0YXRpY3MiLCJSZWFjdCIsIkNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwiaGFzQWNjZXNzb3IiLCJhY2Nlc3NvciIsImJ1ZmZlciIsIlR5cGVFcnJvciIsInNwbGl0IiwicmVkdWNlIiwia2V5IiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwic2VsZWN0V2l0aEFjY2Vzc29yIiwic2V0V2l0aEFjY2Vzc29yIiwidmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJwYXRoIiwiYnVmZmVyQXNPYmplY3QiLCJsZW5ndGgiLCJ1cGRhdGVkVmFsdWUiLCJwcm9wIiwidXBkYXRlV2l0aEFjY2Vzc29yIiwiZ2V0RXJyb3IiLCJtZXRhIiwiZXJyb3JzIiwic3VibWl0dGVkIiwiZmllbGRNZXRhIiwidG91Y2hlZCIsInNob3VsZFNob3dNZXNzYWdlIiwiZSIsIkZpZWxkIiwiY2hpbGRyZW4iLCJjb21wb25lbnQiLCJGaWVsZENvbXBvbmVudCIsInByb3BzIiwidXBkYXRlQnVmZmVyIiwidXBkYXRlTWV0YSIsImZvcm1NZXRhIiwiZmllbGRFcnJvciIsImZpZWxkUHJvcHMiLCJvbkNoYW5nZSIsImV2dCIsInRhcmdldCIsImNoZWNrZWQiLCJvbkJsdXIiLCJtZXRhVXBkYXRlZCIsIlN0cmluZyIsImFjdGlvbnMiLCJ1cGRhdGUiLCJGaWVsZHMiLCJUZXh0IiwiRXJyb3JNZXNzYWdlIiwiRXJyb3JDb21wb25lbnQiLCJGcmFnbWVudCIsImVycm9yIiwiUHJvdmlkZXIiLCJwcmlzdGluZSIsInZhbGlkYXRlIiwic2V0U3RhdGUiLCJwcmV2UHJvcHMiLCJwcmV2U3RhdGUiLCJmb3JtUHJvcHMiLCJ1cGRhdGVkQnVmZmVyIiwib25VcGRhdGUiLCJzdGF0ZSIsInN1Ym1pdCIsImtleXMiLCJvblN1Ym1pdCIsIlB1cmVDb21wb25lbnQiLCJ3aXRoRm9ybSIs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QixLQUFMLENBQVdILFFBSHJCLENBREo7QUFRSDtBQS9GTDs7QUFBQTtBQUFBLEVBQThCbEMsS0FBSyxDQUFDdUUsYUFBcEM7QUFrR0EsT0FBTyxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFBQyxTQUFTLEVBQUk7QUFDakMsTUFBTUMsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQXJDLEtBQUs7QUFBQSxXQUNsQixvQkFBQyxPQUFELENBQVMsUUFBVCxRQUNLO0FBQUEsVUFBR2hDLE1BQUgsU0FBR0EsTUFBSDtBQUFBLFVBQVdpQyxZQUFYLFNBQVdBLFlBQVg7QUFBQSxVQUF5QkMsVUFBekIsU0FBeUJBLFVBQXpCO0FBQUEsYUFDRyxvQkFBQyxTQUFELGVBQWVGLEtBQWY7QUFBc0IsUUFBQSxNQUFNLEVBQUVoQyxNQUE5QjtBQUFzQyxRQUFBLFlBQVksRUFBRWlDLFlBQXBEO0FBQWtFLFFBQUEsVUFBVSxFQUFFQztBQUE5RSxTQURIO0FBQUEsS0FETCxDQURrQjtBQUFBLEdBQXRCOztBQU9BeEMsRUFBQUEsb0JBQW9CLENBQUMyRSxRQUFELEVBQVdELFNBQVgsQ0FBcEI7QUFFQSxTQUFPQyxRQUFQO0FBQ0gsQ0FYTSIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0ICRtc2cgZnJvbSAnbWVzc2FnZS10YWcnO1xuXG5pbXBvcnQgaG9pc3ROb25SZWFjdFN0YXRpY3MgZnJvbSAnaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5cbmV4cG9ydCBjb25zdCBDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCgpO1xuXG4vLyBDaGVjayBpZiB0aGUgZ2l2ZW4gYnVmZmVyIGhhcyB0aGUgZ2l2ZW4gYWNjZXNzb3JcbmV4cG9ydCBjb25zdCBoYXNBY2Nlc3NvciA9IChhY2Nlc3NvciwgYnVmZmVyKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBhY2Nlc3NvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUT0RPJyk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYWNjZXNzb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBhY2Nlc3Nvci5zcGxpdCgnLicpXG4gICAgICAgICAgICAucmVkdWNlKFxuICAgICAgICAgICAgICAgIChidWZmZXIsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGJ1ZmZlciAhPT0gJ29iamVjdCcgfHwgYnVmZmVyID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChidWZmZXIsIGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBidWZmZXJcbiAgICAgICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigkbXNnYFVua25vd24gYWNjZXNzb3IgdHlwZSAke2FjY2Vzc29yfWApO1xuICAgIH1cbn07XG5cbi8vIFNlbGVjdCB0aGUgdmFsdWUgYXQgdGhlIGdpdmVuIGFjY2Vzc29yXG5leHBvcnQgY29uc3Qgc2VsZWN0V2l0aEFjY2Vzc29yID0gKGFjY2Vzc29yLCBidWZmZXIpID0+IHtcbiAgICBpZiAodHlwZW9mIGFjY2Vzc29yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBhY2Nlc3NvcihidWZmZXIpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGFjY2Vzc29yID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gYWNjZXNzb3Iuc3BsaXQoJy4nKVxuICAgICAgICAgICAgLnJlZHVjZShcbiAgICAgICAgICAgICAgICAoYnVmZmVyLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBidWZmZXIgIT09ICdvYmplY3QnIHx8IGJ1ZmZlciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigkbXNnYENhbm5vdCBhY2Nlc3MgJHtrZXl9IG9uIG5vbi1vYmplY3QgJHtidWZmZXJ9YCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChidWZmZXIsIGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJG1zZ2BNaXNzaW5nIGtleSAke2tleX0gb24gb2JqZWN0ICR7YnVmZmVyfWApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcltrZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBidWZmZXJcbiAgICAgICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigkbXNnYFVua25vd24gYWNjZXNzb3IgdHlwZSAke2FjY2Vzc29yfWApO1xuICAgIH1cbn07XG5cbi8vIFJldHVybiBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIGdpdmVuIGJ1ZmZlciAod2hlcmUgdGhlIHByb3BlcnR5IG1heSBub3QgYWxyZWFkeSBleGlzdClcbmV4cG9ydCBjb25zdCBzZXRXaXRoQWNjZXNzb3IgPSAoYWNjZXNzb3IsIGJ1ZmZlciwgdmFsdWUpID0+IHtcbiAgICBpZiAodHlwZW9mIGFjY2Vzc29yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RPRE8nKTsgLy8gSWRlYTogdXNlIHsgaGFzLCBnZXQsIHNldCB9IG9iamVjdCBpbnN0ZWFkP1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGFjY2Vzc29yID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gc2V0V2l0aEFjY2Vzc29yKGFjY2Vzc29yLnNwbGl0KCcuJyksIGJ1ZmZlciwgdmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShhY2Nlc3NvcikpIHtcbiAgICAgICAgY29uc3QgW2tleSwgLi4ucGF0aF0gPSBhY2Nlc3NvcjtcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IGJ1ZmZlckFzT2JqZWN0ID0gdHlwZW9mIGJ1ZmZlciA9PT0gJ29iamVjdCcgJiYgYnVmZmVyICE9PSBudWxsXG4gICAgICAgICAgICA/IGJ1ZmZlclxuICAgICAgICAgICAgOiB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgPyB2YWx1ZShidWZmZXJBc09iamVjdFtrZXldKVxuICAgICAgICAgICAgICAgIDogdmFsdWU7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmJ1ZmZlckFzT2JqZWN0LCBba2V5XTogdXBkYXRlZFZhbHVlIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGJ1ZmZlckFzT2JqZWN0LCBrZXkpXG4gICAgICAgICAgICAgICAgPyBidWZmZXJBc09iamVjdFtrZXldXG4gICAgICAgICAgICAgICAgOiB7fTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgcmV0dXJuIHsgLi4uYnVmZmVyQXNPYmplY3QsIFtrZXldOiBzZXRXaXRoQWNjZXNzb3IocGF0aCwgcHJvcCwgdmFsdWUpIH07XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCRtc2dgVW5rbm93biBhY2Nlc3NvciB0eXBlICR7YWNjZXNzb3J9YCk7XG4gICAgfVxufTtcblxuLy8gUmV0dXJuIGFuIHVwZGF0ZWQgdmVyc2lvbiBvZiB0aGUgZ2l2ZW4gYnVmZmVyICh3aGVyZSB0aGUgcHJvcGVydHkgaXMgYXNzdW1lZCB0byBleGlzdClcbmV4cG9ydCBjb25zdCB1cGRhdGVXaXRoQWNjZXNzb3IgPSAoYWNjZXNzb3IsIGJ1ZmZlciwgdmFsdWUpID0+IHtcbiAgICBpZiAodHlwZW9mIGFjY2Vzc29yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RPRE8nKTsgLy8gSWRlYTogdXNlIHsgaGFzLCBnZXQsIHNldCB9IG9iamVjdCBpbnN0ZWFkP1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGFjY2Vzc29yID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdXBkYXRlV2l0aEFjY2Vzc29yKGFjY2Vzc29yLnNwbGl0KCcuJyksIGJ1ZmZlciwgdmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShhY2Nlc3NvcikpIHtcbiAgICAgICAgY29uc3QgW2tleSwgLi4ucGF0aF0gPSBhY2Nlc3NvcjtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgYnVmZmVyICE9PSAnb2JqZWN0JyB8fCBidWZmZXIgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJG1zZ2BDYW5ub3QgYWNjZXNzICR7a2V5fSBvbiBub24tb2JqZWN0ICR7YnVmZmVyfWApO1xuICAgICAgICB9IGVsc2UgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYnVmZmVyLCBrZXkpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCRtc2dgTWlzc2luZyBrZXkgJHtrZXl9IG9uIG9iamVjdCAke2J1ZmZlcn1gKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkVmFsdWUgPSB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IHZhbHVlKGJ1ZmZlcltrZXldKVxuICAgICAgICAgICAgICAgIDogdmFsdWU7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmJ1ZmZlciwgW2tleV06IHVwZGF0ZWRWYWx1ZSB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uYnVmZmVyLCBba2V5XTogdXBkYXRlV2l0aEFjY2Vzc29yKHBhdGgsIGJ1ZmZlcltrZXldLCB2YWx1ZSkgfTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJG1zZ2BVbmtub3duIGFjY2Vzc29yIHR5cGUgJHthY2Nlc3Nvcn1gKTtcbiAgICB9XG59O1xuXG5jb25zdCBnZXRFcnJvciA9ICh7IG1ldGEsIGVycm9ycywgc3VibWl0dGVkIH0sIGFjY2Vzc29yKSA9PiB7XG4gICAgY29uc3QgZmllbGRNZXRhID0gaGFzQWNjZXNzb3IoYWNjZXNzb3IsIG1ldGEpXG4gICAgICAgID8gc2VsZWN0V2l0aEFjY2Vzc29yKGFjY2Vzc29yLCBtZXRhKVxuICAgICAgICA6IHsgdG91Y2hlZDogZmFsc2UgfTtcbiAgICBcbiAgICAvLyBPbmx5IHNob3cgdGhlIGVycm9yIG1lc3NhZ2UgaWYgdGhlIHVzZXIgaGFzIGludGVyYWN0ZWQgd2l0aCB0aGUgZm9ybS9maWVsZCBzb21laG93XG4gICAgY29uc3Qgc2hvdWxkU2hvd01lc3NhZ2UgPVxuICAgICAgICBzdWJtaXR0ZWRcbiAgICAgICAgfHwgZmllbGRNZXRhLnRvdWNoZWQ7XG4gICAgXG4gICAgaWYgKCFzaG91bGRTaG93TWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHNlbGVjdFdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgZXJyb3JzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIE5vIGVycm9yXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBGaWVsZCA9ICh7IGNoaWxkcmVuLCBjb21wb25lbnQ6IEZpZWxkQ29tcG9uZW50ID0gJ2lucHV0JywgYWNjZXNzb3IsIC4uLnByb3BzIH0gPSB7fSkgPT5cbiAgICA8Q29udGV4dC5Db25zdW1lcj5cbiAgICAgICAgeyh7IGJ1ZmZlciwgdXBkYXRlQnVmZmVyLCBtZXRhLCB1cGRhdGVNZXRhLCBlcnJvcnMsIHN1Ym1pdHRlZCB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHNlbGVjdFdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgYnVmZmVyKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY29uc3QgZm9ybU1ldGEgPSB7XG4gICAgICAgICAgICAgICAgc3VibWl0dGVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY29uc3QgZmllbGRNZXRhID0gaGFzQWNjZXNzb3IoYWNjZXNzb3IsIG1ldGEpID8gc2VsZWN0V2l0aEFjY2Vzc29yKGFjY2Vzc29yLCBtZXRhKSA6IHtcbiAgICAgICAgICAgICAgICB0b3VjaGVkOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkRXJyb3IgPSBnZXRFcnJvcih7IG1ldGEsIGVycm9ycywgc3VibWl0dGVkIH0sIGFjY2Vzc29yKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY29uc3QgZmllbGRQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogZXZ0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gZXZ0LnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC50YXJnZXQuaGFzT3duUHJvcGVydHkoJ2NoZWNrZWQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBldnQudGFyZ2V0LmNoZWNrZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUJ1ZmZlcihhY2Nlc3NvciwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb25CbHVyOiBldnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc0FjY2Vzc29yKGFjY2Vzc29yLCBtZXRhKSB8fCAhc2VsZWN0V2l0aEFjY2Vzc29yKGFjY2Vzc29yLCBtZXRhKS50b3VjaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXRhVXBkYXRlZCA9IHNldFdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgbWV0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE1ldGEgPT4gKHsgLi4uKGZpZWxkTWV0YSB8fCB7fSksIHRvdWNoZWQ6IHRydWUgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZU1ldGEobWV0YVVwZGF0ZWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgZmllbGRQcm9wcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgZmllbGRQcm9wcy52YWx1ZSA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgZmllbGRQcm9wcy5jaGVja2VkID0gdmFsdWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJG1zZ2BVbmtub3duIHZhbHVlIHR5cGU6ICR7dmFsdWV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2hpbGRyZW4gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlOiB2YWx1ZSA9PiB7IHVwZGF0ZUJ1ZmZlcihhY2Nlc3NvciwgdmFsdWUpOyB9LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICA/IGNoaWxkcmVuKHsgZm9ybU1ldGEsIGZpZWxkUHJvcHMsIGZpZWxkTWV0YSwgZmllbGRFcnJvciB9LCBhY3Rpb25zKVxuICAgICAgICAgICAgICAgICAgICA6IGNoaWxkcmVuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxGaWVsZENvbXBvbmVudCB7Li4uZmllbGRQcm9wc30vPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfX1cbiAgICA8L0NvbnRleHQuQ29uc3VtZXI+O1xuXG5leHBvcnQgY29uc3QgRmllbGRzID0ge1xuICAgIFRleHQ6IHByb3BzID0+XG4gICAgICAgIDxDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICAgICAgeyh7IGJ1ZmZlciB9KSA9PlxuICAgICAgICAgICAgICAgIDxpbnB1dC8+IC8vIFRPRE9cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9Db250ZXh0LkNvbnN1bWVyPixcbn07XG5cbmV4cG9ydCBjb25zdCBFcnJvck1lc3NhZ2UgPSAoeyBjaGlsZHJlbiwgY29tcG9uZW50OiBFcnJvckNvbXBvbmVudCA9IFJlYWN0LkZyYWdtZW50LCBhY2Nlc3NvciwgLi4ucHJvcHMgfSkgPT5cbiAgICA8Q29udGV4dC5Db25zdW1lcj5cbiAgICAgICAgeyh7IG1ldGEsIGVycm9ycywgc3VibWl0dGVkIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gZ2V0RXJyb3IoeyBtZXRhLCBlcnJvcnMsIHN1Ym1pdHRlZCB9LCBhY2Nlc3Nvcik7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIChlcnJvciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNoaWxkcmVuICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICAgICAgPyBjaGlsZHJlbihlcnJvcilcbiAgICAgICAgICAgICAgICAgICAgOiBjaGlsZHJlbjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxFcnJvckNvbXBvbmVudCB7Li4ucHJvcHN9PntlcnJvcn08L0Vycm9yQ29tcG9uZW50PjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICA8L0NvbnRleHQuQ29uc3VtZXI+O1xuXG5leHBvcnQgY2xhc3MgUHJvdmlkZXIgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgICAvLyBwcm9wcyA6IHtcbiAgICAvLyAgIGJ1ZmZlciA6IGFueSxcbiAgICAvLyAgIG9uVXBkYXRlIDogRnVuY3Rpb24sXG4gICAgLy8gICB2YWxpZGF0ZSA/OiBGdW5jdGlvbixcbiAgICAvLyAgIG9uU3VibWl0IDogRnVuY3Rpb24sXG4gICAgLy8gfTtcbiAgICBcbiAgICBzdGF0ZSA9IHtcbiAgICAgICAgZXJyb3JzOiB7fSxcbiAgICAgICAgcHJpc3RpbmU6IHRydWUsXG4gICAgICAgIHN1Ym1pdHRlZDogZmFsc2UsXG4gICAgICAgIG1ldGE6IHt9LFxuICAgIH07XG4gICAgXG4gICAgdmFsaWRhdGUgPSBidWZmZXIgPT4ge1xuICAgICAgICBpZiAoIXRoaXMucHJvcHMudmFsaWRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgY29uc3QgZXJyb3JzID0gdGhpcy5wcm9wcy52YWxpZGF0ZShidWZmZXIpIHx8IHt9O1xuICAgICAgICBcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVycm9ycyB9KTtcbiAgICB9O1xuICAgIFxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlKHRoaXMucHJvcHMuYnVmZmVyKTtcbiAgICB9XG4gICAgXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcywgcHJldlN0YXRlKSB7XG4gICAgICAgIGlmIChwcmV2UHJvcHMuYnVmZmVyICE9PSB0aGlzLnByb3BzLmJ1ZmZlcikge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZSh0aGlzLnByb3BzLmJ1ZmZlcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IGJ1ZmZlciB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IGZvcm1Qcm9wcyA9IHtcbiAgICAgICAgICAgIGJ1ZmZlcixcbiAgICAgICAgICAgIHVwZGF0ZUJ1ZmZlcjogKGFjY2Vzc29yLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRCdWZmZXIgPSB1cGRhdGVXaXRoQWNjZXNzb3IoYWNjZXNzb3IsIGJ1ZmZlciwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25VcGRhdGUodXBkYXRlZEJ1ZmZlcik7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUucHJpc3RpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHByaXN0aW5lOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgaWYgKCFoYXNBY2Nlc3NvcihhY2Nlc3NvciwgdGhpcy5zdGF0ZS5tZXRhKSB8fCAhc2VsZWN0V2l0aEFjY2Vzc29yKGFjY2Vzc29yLCB0aGlzLnN0YXRlLm1ldGEpLnRvdWNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWV0YSA9IHNldFdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgdGhpcy5zdGF0ZS5tZXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRNZXRhID0+ICh7IC4uLihmaWVsZE1ldGEgfHwge30pLCB0b3VjaGVkOiB0cnVlIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbWV0YSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZSh1cGRhdGVkQnVmZmVyKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHByaXN0aW5lOiB0aGlzLnN0YXRlLnByaXN0aW5lLFxuICAgICAgICAgICAgc3VibWl0dGVkOiB0aGlzLnN0YXRlLnN1Ym1pdHRlZCxcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgZXJyb3JzOiB0aGlzLnN0YXRlLmVycm9ycyxcbiAgICAgICAgICAgIC8vIHVwZGF0ZUVycm9yOiAoYWNjZXNzb3IsIGVycm9yKSA9PiB7XG4gICAgICAgICAgICAvLyAgIHRoaXMuc2V0U3RhdGUoeyBlcnJvcnM6IHVwZGF0ZVdpdGhBY2Nlc3NvcihhY2Nlc3NvciwgdGhpcy5zdGF0ZS5lcnJvcnMsIGVycm9yKSB9KTtcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIG1ldGE6IHRoaXMuc3RhdGUubWV0YSxcbiAgICAgICAgICAgIHVwZGF0ZU1ldGE6IG1ldGEgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbWV0YSB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHN1Ym1pdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgICAgICBwcmlzdGluZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHN1Ym1pdHRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLnN0YXRlLmVycm9ycykubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uU3VibWl0KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtmb3JtUHJvcHN9PlxuICAgICAgICAgICAgICAgIHt0eXBlb2YgdGhpcy5wcm9wcy5jaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICA/IHRoaXMucHJvcHMuY2hpbGRyZW4oZm9ybVByb3BzKVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L0NvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3Qgd2l0aEZvcm0gPSBDb21wb25lbnQgPT4ge1xuICAgIGNvbnN0IFdpdGhGb3JtID0gcHJvcHMgPT5cbiAgICAgICAgPENvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgICAgICB7KHsgYnVmZmVyLCB1cGRhdGVCdWZmZXIsIHVwZGF0ZU1ldGEgfSkgPT5cbiAgICAgICAgICAgICAgICA8Q29tcG9uZW50IHsuLi5wcm9wc30gYnVmZmVyPXtidWZmZXJ9IHVwZGF0ZUJ1ZmZlcj17dXBkYXRlQnVmZmVyfSB1cGRhdGVNZXRhPXt1cGRhdGVNZXRhfS8+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvQ29udGV4dC5Db25zdW1lcj47XG4gICAgXG4gICAgaG9pc3ROb25SZWFjdFN0YXRpY3MoV2l0aEZvcm0sIENvbXBvbmVudCk7XG4gICAgXG4gICAgcmV0dXJuIFdpdGhGb3JtO1xufTtcbiJdfQ== |
+1
-1
| { | ||
| "name": "@mkrause/react-form", | ||
| "version": "0.0.4", | ||
| "version": "0.0.5", | ||
| "description": "React form component", | ||
@@ -5,0 +5,0 @@ "author": "mkrause", |
+1
-1
@@ -277,3 +277,3 @@ | ||
| if (!hasAccessor(accessor, this.state.meta) || !selectWithAccessor(accessor, this.state.meta).touched) { | ||
| const meta = updateWithAccessor(accessor, this.state.meta, | ||
| const meta = setWithAccessor(accessor, this.state.meta, | ||
| fieldMeta => ({ ...(fieldMeta || {}), touched: true }) | ||
@@ -280,0 +280,0 @@ ); |
131382
-0.02%