@kando-env/kando-ui 1.2.128 → 1.2.130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Widgets/Map/events/EventIndicator.js +3 -2
- package/lib/Widgets/Map/events/EventUtils.js +2 -1
- package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +2 -2
- package/lib/macros/getVersion.js +1 -1
- package/lib/pages/EventsPage/events/events_list/EventsList.js +4 -2
- package/package.json +1 -1
|
@@ -228,6 +228,7 @@ var EventIndicator = function EventIndicator(props) {
|
|
|
228
228
|
weight: 1
|
|
229
229
|
}).addTo(map);
|
|
230
230
|
tailLine['kando_object'] = 'Decorator';
|
|
231
|
+
tailDash.bringToFront();
|
|
231
232
|
eventParts.push(_eventTail, tailDash, tailLine);
|
|
232
233
|
}
|
|
233
234
|
}
|
|
@@ -239,7 +240,7 @@ var EventIndicator = function EventIndicator(props) {
|
|
|
239
240
|
(0, _useUpdateEventBodyTail.default)(event !== null ? global_data.current_time : 0, event, edges_data, event.hovered);
|
|
240
241
|
(0, _react.useEffect)(function () {
|
|
241
242
|
renderEventIndicator();
|
|
242
|
-
}, [paths]);
|
|
243
|
+
}, [paths, global_data.current_time]);
|
|
243
244
|
return /*#__PURE__*/_react.default.createElement("div", null);
|
|
244
245
|
};
|
|
245
246
|
|
|
@@ -248,4 +249,4 @@ var connector = (0, _reactRedux.connect)(mapStateToProps);
|
|
|
248
249
|
var _default = connector(EventIndicator);
|
|
249
250
|
|
|
250
251
|
exports.default = _default;
|
|
251
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRJbmRpY2F0b3IudHN4Il0sIm5hbWVzIjpbIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJnbG9iYWxfZGF0YSIsImVkZ2VzX2RhdGEiLCJFdmVudEluZGljYXRvciIsInByb3BzIiwiTCIsIm1hcCIsImV2ZW50IiwicGF0aHMiLCJldmVudEluZGljYXRvciIsImRpc3BhdGNoIiwiZXZlbnRQYXJ0cyIsInJlbW92ZUV4aXN0aW5nSW5kaWNhdG9yIiwiZWFjaExheWVyIiwibGF5ZXIiLCJyZW1vdmVMYXllciIsIm1ha2VQYWlycyIsImFycmF5IiwicGFpcnMiLCJpIiwibGVuZ3RoIiwicHVzaCIsImNhbGN1bGF0ZUJvZHlBbmRUYWlsIiwic2VnbWVudCIsImJvZHlTdGFydCIsImJvZHlFbmQiLCJ0YWlsUGF0aCIsImJvZHlQYXRoIiwiZm91bmRCb2R5U3RhcnQiLCJldmVudEJvZHlTdGFydE1hcmtlciIsIl9sYXRsbmciLCJldmVudEJvZHlFbmRNYXJrZXIiLCJzdWJTZWdtZW50cyIsIl9sYXRsbmdzIiwic2hvdWxkQ29udGludWUiLCJmb3VuZEJvZHlTdGFydE9uQ3VycmVudFN1YlNlZ21lbnQiLCJiZWdpbm5pbmdPZkJvZHkiLCJyZW5kZXJFdmVudEluZGljYXRvciIsInBhdGgiLCJ1bmRlZmluZWQiLCJldmVudF9ib2R5X3BhcnQiLCJldmVudEJvZHlTdGFydCIsIm1hcmtlciIsImV2ZW50X3RhaWxfcGFydCIsImxhdExuZyIsImljb24iLCJkaXZJY29uIiwiaWNvbkFuY2hvciIsImljb25TaXplIiwib3BhY2l0eSIsImFkZFRvIiwiaWQiLCJldmVudEJvZHlFbmQiLCJldmVudFRhaWwiLCJwb2x5bGluZSIsImNvbG9yIiwid2VpZ2h0IiwiY2xhc3NOYW1lIiwiZXZlbnRCb2R5IiwiYnJpbmdUb0Zyb250IiwidGFpbERhc2giLCJwb2x5bGluZURlY29yYXRvciIsInBhdHRlcm5zIiwib2Zmc2V0IiwicmVwZWF0Iiwic3ltYm9sIiwiU3ltYm9sIiwiYXJyb3dIZWFkIiwicGl4ZWxTaXplIiwicG9seWdvbiIsInBhdGhPcHRpb25zIiwic3Ryb2tlIiwiYm9keUxpbmUiLCJ0YWlsTGluZSIsImxheWVyR3JvdXAiLCJjdXJyZW50X3RpbWUiLCJob3ZlcmVkIiwiY29ubmVjdG9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBOzs7Ozs7QUFSQTtBQVVBLFNBQVNBLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQTJDO0FBQ3pDLE1BQVFDLFdBQVIsR0FBaURELEtBQWpELENBQVFDLFdBQVI7QUFBQSxNQUFxQkMsV0FBckIsR0FBaURGLEtBQWpELENBQXFCRSxXQUFyQjtBQUFBLE1BQWtDQyxVQUFsQyxHQUFpREgsS0FBakQsQ0FBa0NHLFVBQWxDO0FBRUEsU0FBTztBQUNMRixJQUFBQSxXQUFXLEVBQVhBLFdBREs7QUFFTEMsSUFBQUEsV0FBVyxFQUFYQSxXQUZLO0FBR0xDLElBQUFBLFVBQVUsRUFBVkE7QUFISyxHQUFQO0FBS0Q7O0FBU0QsSUFBTUMsY0FBZ0MsR0FBRyxTQUFuQ0EsY0FBbUMsQ0FBQ0MsS0FBRCxFQUFXO0FBQ2xELE1BQVFDLENBQVIsR0FBdUVELEtBQXZFLENBQVFDLENBQVI7QUFBQSxNQUFXQyxHQUFYLEdBQXVFRixLQUF2RSxDQUFXRSxHQUFYO0FBQUEsTUFBZ0JOLFdBQWhCLEdBQXVFSSxLQUF2RSxDQUFnQkosV0FBaEI7QUFBQSxNQUE2QkUsVUFBN0IsR0FBdUVFLEtBQXZFLENBQTZCRixVQUE3QjtBQUFBLE1BQXlDRCxXQUF6QyxHQUF1RUcsS0FBdkUsQ0FBeUNILFdBQXpDO0FBQUEsTUFBc0RNLEtBQXRELEdBQXVFSCxLQUF2RSxDQUFzREcsS0FBdEQ7QUFBQSxNQUE2REMsS0FBN0QsR0FBdUVKLEtBQXZFLENBQTZESSxLQUE3RDtBQUNBLE1BQVFDLGNBQVIsR0FBMkJULFdBQTNCLENB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QXFDYSxRQUFyQztBQUNEO0FBQ0Y7O0FBRUQvRCxNQUFBQSxRQUFRLENBQUMsZ0NBQWtCTCxDQUFDLENBQUNxRSxVQUFGLENBQWEvRCxVQUFiLENBQWxCLENBQUQsQ0FBUjtBQUNEO0FBQ0YsR0FqTEQ7O0FBbUxBLHVDQUNFSixLQUFLLEtBQUssSUFBVixHQUFpQk4sV0FBVyxDQUFDMEUsWUFBN0IsR0FBNEMsQ0FEOUMsRUFFRXBFLEtBRkYsRUFHRUwsVUFIRixFQUlFSyxLQUFLLENBQUNxRSxPQUpSO0FBT0Esd0JBQVUsWUFBTTtBQUNkdkMsSUFBQUEsb0JBQW9CO0FBQ3JCLEdBRkQsRUFFRyxDQUFDN0IsS0FBRCxDQUZIO0FBSUEsc0JBQU8seUNBQVA7QUFDRCxDQXBSRDs7QUFzUkEsSUFBTXFFLFNBQVMsR0FBRyx5QkFBUS9FLGVBQVIsQ0FBbEI7O2VBQ2UrRSxTQUFTLENBQUMxRSxjQUFELEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBpbnRlcnBvbGF0ZU9uTGluZSwgYmVsb25nc1NlZ21lbnQgfSBmcm9tICdsZWFmbGV0LWdlb21ldHJ5dXRpbCc7XG5pbXBvcnQgJ2xlYWZsZXQtcG9seWxpbmVkZWNvcmF0b3InO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHNldEV2ZW50SW5kaWNhdG9yIH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgdXNlVXBkYXRlRXZlbnRCb2R5VGFpbCBmcm9tICdzcmMvaG9va3MvdXNlVXBkYXRlRXZlbnRCb2R5VGFpbCc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgZXZlbnRzX2RhdGEsIGdsb2JhbF9kYXRhLCBlZGdlc19kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGV2ZW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICAgIGVkZ2VzX2RhdGEsXG4gIH07XG59XG5cbnR5cGUgSVByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIEw6IGFueTtcbiAgbWFwOiBhbnk7XG4gIHBhdGhzOiBhbnk7XG4gIGV2ZW50OiBJRXZlbnQ7XG59O1xuXG5jb25zdCBFdmVudEluZGljYXRvcjogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IEwsIG1hcCwgZXZlbnRzX2RhdGEsIGVkZ2VzX2RhdGEsIGdsb2JhbF9kYXRhLCBldmVudCwgcGF0aHMgfSA9IHByb3BzO1xuICBjb25zdCB7IGV2ZW50SW5kaWNhdG9yIH0gPSBldmVudHNfZGF0YTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBsZXQgZXZlbnRQYXJ0czogYW55W10gPSBbXTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGV0Yy9uby1jb21tZW50ZWQtb3V0LWNvZGVcblxuICBjb25zdCByZW1vdmVFeGlzdGluZ0luZGljYXRvciA9ICgpID0+IHtcbiAgICBpZiAoZXZlbnRJbmRpY2F0b3IgIT09IG51bGwpIHtcbiAgICAgIGV2ZW50SW5kaWNhdG9yLmVhY2hMYXllcigobGF5ZXI6IGFueSkgPT4ge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXIpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG1ha2VQYWlycyA9IChhcnJheTogW10pID0+IHtcbiAgICBsZXQgcGFpcnM6IGFueVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGkgPCBhcnJheS5sZW5ndGggLSAxKSB7XG4gICAgICAgIHBhaXJzLnB1c2goW2FycmF5W2ldLCBhcnJheVtpICsgMV1dKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGFpcnM7XG4gIH07XG5cbiAgY29uc3QgY2FsY3VsYXRlQm9keUFuZFRhaWwgPSAoc2VnbWVudDogYW55LCBib2R5U3RhcnQ6IGFueSwgYm9keUVuZDogYW55KSA9PiB7XG4gICAgbGV0IHRhaWxQYXRoOiBhbnlbXSA9IFtdO1xuICAgIGxldCBib2R5UGF0aDogYW55W10gPSBbXTtcbiAgICBsZXQgZm91bmRCb2R5U3RhcnQgPSBmYWxzZTtcbiAgICBsZXQgZXZlbnRCb2R5U3RhcnRNYXJrZXIgPSBib2R5U3RhcnQuX2xhdGxuZztcbiAgICBsZXQgZXZlbnRCb2R5RW5kTWFya2VyID0gYm9keUVuZC5fbGF0bG5nO1xuICAgIGxldCBzdWJTZWdtZW50cyA9IG1ha2VQYWlycyhzZWdtZW50Ll9sYXRsbmdzKTtcbiAgICBsZXQgc2hvdWxkQ29udGludWUgPSB0cnVlO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJTZWdtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IGZvdW5kQm9keVN0YXJ0T25DdXJyZW50U3ViU2VnbWVudCA9IGZhbHNlO1xuXG4gICAgICBpZiAoc2hvdWxkQ29udGludWUgJiYgIWZvdW5kQm9keVN0YXJ0KSB7XG4gICAgICAgIC8vIGlmIGJvZHlTdGFydE1hcmtlciBleGlzdCBvbiBzdWJTZWdtZW50XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGJlbG9uZ3NTZWdtZW50KFxuICAgICAgICAgICAgZXZlbnRCb2R5U3RhcnRNYXJrZXIsXG4gICAgICAgICAgICBzdWJTZWdtZW50c1tpXVswXSxcbiAgICAgICAgICAgIHN1YlNlZ21lbnRzW2ldWzFdLFxuICAgICAgICAgICAgMC4wMDAwMDAxLFxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGFpbFBhdGgucHVzaChbc3ViU2VnbWVudHNbaV1bMF0sIGV2ZW50Qm9keVN0YXJ0TWFya2VyXSk7XG5cbiAgICAgICAgICBmb3VuZEJvZHlTdGFydCA9IHRydWU7XG4gICAgICAgICAgZm91bmRCb2R5U3RhcnRPbkN1cnJlbnRTdWJTZWdtZW50ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YWlsUGF0aC5wdXNoKFtzdWJTZWdtZW50c1tpXVswXSwgc3ViU2VnbWVudHNbaV1bMV1dKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc2hvdWxkQ29udGludWUgJiYgZm91bmRCb2R5U3RhcnQpIHtcbiAgICAgICAgbGV0IGJlZ2lubmluZ09mQm9keSA9IGZvdW5kQm9keVN0YXJ0T25DdXJyZW50U3ViU2VnbWVudFxuICAgICAgICAgID8gZXZlbnRCb2R5U3RhcnRNYXJrZXJcbiAgICAgICAgICA6IHN1YlNlZ21lbnRzW2ldWzBdO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBiZWxvbmdzU2VnbWVudChcbiAgICAgICAgICAgIGV2ZW50Qm9keUVuZE1hcmtlcixcbiAgICAgICAgICAgIHN1YlNlZ21lbnRzW2ldWzBdLFxuICAgICAgICAgICAgc3ViU2VnbWVudHNbaV1bMV0sXG4gICAgICAgICAgICAwLjAwMDAwMDEsXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICBib2R5UGF0aC5wdXNoKFtiZWdpbm5pbmdPZkJvZHksIGV2ZW50Qm9keUVuZE1hcmtlcl0pO1xuICAgICAgICAgIHNob3VsZENvbnRpbnVlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYm9keVBhdGgucHVzaChbYmVnaW5uaW5nT2ZCb2R5LCBzdWJTZWdtZW50c1tpXVsxXV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRhaWxQYXRoOiB0YWlsUGF0aCxcbiAgICAgIGJvZHlQYXRoOiBib2R5UGF0aCxcbiAgICB9O1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckV2ZW50SW5kaWNhdG9yID0gKCkgPT4ge1xuICAgIGlmIChldmVudCAhPT0gbnVsbCAmJiBldmVudC5wYXRoLmxlbmd0aCA+PSAxKSB7XG4gICAgICByZW1vdmVFeGlzdGluZ0luZGljYXRvcigpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBldmVudC5wYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBldmVudC5wYXRoW2ldICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X2JvZHlfcGFydCA8PSAxMDAgJiZcbiAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X2JvZHlfcGFydCA+IDAgJiZcbiAgICAgICAgICBwYXRoc1tpXSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgIGxldCBldmVudEJvZHlTdGFydCA9IEwubWFya2VyKFxuICAgICAgICAgICAgaW50ZXJwb2xhdGVPbkxpbmUoXG4gICAgICAgICAgICAgIG1hcCxcbiAgICAgICAgICAgICAgcGF0aHNbaV0uX2xhdGxuZ3MsXG4gICAgICAgICAgICAgIGV2ZW50LnBhdGhbaV0uZXZlbnRfdGFpbF9wYXJ0IC8gMTAwLFxuICAgICAgICAgICAgKS5sYXRMbmcsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGljb246IEwuZGl2SWNvbih7XG4gICAgICAgICAgICAgICAgaWNvbkFuY2hvcjogWzAsIDBdLFxuICAgICAgICAgICAgICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApLmFkZFRvKG1hcCk7XG4gICAgICAgICAgZXZlbnRCb2R5U3RhcnRbJ2thbmRvX29iamVjdF9pZCddID0gZXZlbnQuaWQ7XG4gICAgICAgICAgZXZlbnRCb2R5U3RhcnRbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50Qm9keVN0YXJ0JztcblxuICAgICAgICAgIGxldCBldmVudEJvZHlFbmQgPSBMLm1hcmtlcihcbiAgICAgICAgICAgIGludGVycG9sYXRlT25MaW5lKFxuICAgICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICAgIHBhdGhzW2ldLl9sYXRsbmdzLFxuICAgICAgICAgICAgICAoZXZlbnQucGF0aFtpXS5ldmVudF9ib2R5X3BhcnQgKyBldmVudC5wYXRoW2ldLmV2ZW50X3RhaWxfcGFydCkgL1xuICAgICAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgICkubGF0TG5nLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpY29uOiBMLmRpdkljb24oe1xuICAgICAgICAgICAgICAgIGljb25BbmNob3I6IFswLCAwXSxcbiAgICAgICAgICAgICAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKS5hZGRUbyhtYXApO1xuICAgICAgICAgIGV2ZW50Qm9keUVuZFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudEJvZHlFbmRbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50Qm9keUVuZCc7XG5cbiAgICAgICAgICBsZXQgcGF0aCA9IGNhbGN1bGF0ZUJvZHlBbmRUYWlsKFxuICAgICAgICAgICAgcGF0aHNbaV0sXG4gICAgICAgICAgICBldmVudEJvZHlTdGFydCxcbiAgICAgICAgICAgIGV2ZW50Qm9keUVuZCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgbGV0IGV2ZW50VGFpbCA9IEwucG9seWxpbmUocGF0aC50YWlsUGF0aCwge1xuICAgICAgICAgICAgY29sb3I6ICcjZjUwYjU2JyxcbiAgICAgICAgICAgIHdlaWdodDogMTIsXG4gICAgICAgICAgICBjbGFzc05hbWU6ICdldmVudC10YWlsJyxcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMyxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIGV2ZW50VGFpbFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudFRhaWxbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50VGFpbCc7XG5cbiAgICAgICAgICBsZXQgZXZlbnRCb2R5ID0gTC5wb2x5bGluZShwYXRoLmJvZHlQYXRoLCB7XG4gICAgICAgICAgICBjb2xvcjogJyNmNTBiNTYnLFxuICAgICAgICAgICAgd2VpZ2h0OiAxMixcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2V2ZW50LWJvZHknLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgZXZlbnRCb2R5WydrYW5kb19vYmplY3RfaWQnXSA9IGV2ZW50LmlkO1xuICAgICAgICAgIGV2ZW50Qm9keVsna2FuZG9fb2JqZWN0J10gPSAnRXZlbnRCb2R5JztcbiAgICAgICAgICBldmVudEJvZHkuYnJpbmdUb0Zyb250KCk7XG5cbiAgICAgICAgICB2YXIgdGFpbERhc2ggPSBMLnBvbHlsaW5lRGVjb3JhdG9yKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICAgICAgLy8gZGVmaW5lcyBhIHBhdHRlcm4gb2YgMTBweC13aWRlIGRhc2hlcywgcmVwZWF0ZWQgZXZlcnkgMjBweCBvbiB0aGUgbGluZVxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxNSxcbiAgICAgICAgICAgICAgICByZXBlYXQ6IDI1LFxuICAgICAgICAgICAgICAgIHN5bWJvbDogTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgICAgIHBpeGVsU2l6ZTogMyxcbiAgICAgICAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMSknLFxuICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIHRhaWxEYXNoWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuXG4gICAgICAgICAgdmFyIGJvZHlMaW5lID0gTC5wb2x5bGluZShldmVudEJvZHkuX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAuNiknLFxuICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgYm9keUxpbmVbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICB2YXIgdGFpbExpbmUgPSBMLnBvbHlsaW5lKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwgMjU1LCAyNTUpJyxcbiAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIHRhaWxMaW5lWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuXG4gICAgICAgICAgdmFyIGFycm93SGVhZCA9IEwucG9seWxpbmVEZWNvcmF0b3IoZXZlbnRCb2R5LCB7XG4gICAgICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgICAgICAvLyBkZWZpbmVzIGEgcGF0dGVybiBvZiAxMHB4LXdpZGUgZGFzaGVzLCByZXBlYXRlZCBldmVyeSAyMHB4IG9uIHRoZSBsaW5lXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDUsXG4gICAgICAgICAgICAgICAgcmVwZWF0OiAyNSxcbiAgICAgICAgICAgICAgICBzeW1ib2w6IEwuU3ltYm9sLmFycm93SGVhZCh7XG4gICAgICAgICAgICAgICAgICBwaXhlbFNpemU6IDMsXG4gICAgICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIHBhdGhPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDEpJyxcbiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICBhcnJvd0hlYWRbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICBldmVudFBhcnRzLnB1c2goXG4gICAgICAgICAgICBldmVudEJvZHksXG4gICAgICAgICAgICBldmVudFRhaWwsXG4gICAgICAgICAgICB0YWlsRGFzaCxcbiAgICAgICAgICAgIGJvZHlMaW5lLFxuICAgICAgICAgICAgYXJyb3dIZWFkLFxuICAgICAgICAgICAgdGFpbExpbmUsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBldmVudC5wYXRoW2ldICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X2JvZHlfcGFydCA9PT0gMCAmJlxuICAgICAgICAgIGV2ZW50LnBhdGhbaV0uZXZlbnRfdGFpbF9wYXJ0ID4gMCAmJlxuICAgICAgICAgIHBhdGhzW2ldICE9PSB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgbGV0IGV2ZW50VGFpbCA9IEwucG9seWxpbmUocGF0aHNbaV0uX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgIGNvbG9yOiAnI2Y1MGI1NicsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEyLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtdGFpbCcsXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjMsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcblxuICAgICAgICAgIGV2ZW50VGFpbFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudFRhaWxbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50VGFpbCc7XG5cbiAgICAgICAgICB0YWlsRGFzaCA9IEwucG9seWxpbmVEZWNvcmF0b3IoZXZlbnRUYWlsLl9sYXRsbmdzLCB7XG4gICAgICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgICAgICAvLyBkZWZpbmVzIGEgcGF0dGVybiBvZiAxMHB4LXdpZGUgZGFzaGVzLCByZXBlYXRlZCBldmVyeSAyMHB4IG9uIHRoZSBsaW5lXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDE1LFxuICAgICAgICAgICAgICAgIHJlcGVhdDogMjUsXG4gICAgICAgICAgICAgICAgc3ltYm9sOiBMLlN5bWJvbC5hcnJvd0hlYWQoe1xuICAgICAgICAgICAgICAgICAgcGl4ZWxTaXplOiAzLFxuICAgICAgICAgICAgICAgICAgcG9seWdvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBwYXRoT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBzdHJva2U6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwxKScsXG4gICAgICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgdGFpbERhc2hbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICB0YWlsTGluZSA9IEwucG9seWxpbmUoZXZlbnRUYWlsLl9sYXRsbmdzLCB7XG4gICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LCAyNTUsIDI1NSknLFxuICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgdGFpbExpbmVbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICBldmVudFBhcnRzLnB1c2goZXZlbnRUYWlsLCB0YWlsRGFzaCwgdGFpbExpbmUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRpc3BhdGNoKHNldEV2ZW50SW5kaWNhdG9yKEwubGF5ZXJHcm91cChldmVudFBhcnRzKSkpO1xuICAgIH1cbiAgfTtcblxuICB1c2VVcGRhdGVFdmVudEJvZHlUYWlsKFxuICAgIGV2ZW50ICE9PSBudWxsID8gZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lIDogMCxcbiAgICBldmVudCxcbiAgICBlZGdlc19kYXRhLFxuICAgIGV2ZW50LmhvdmVyZWQsXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZW5kZXJFdmVudEluZGljYXRvcigpO1xuICB9LCBbcGF0aHNdKTtcblxuICByZXR1cm4gPGRpdj48L2Rpdj47XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoRXZlbnRJbmRpY2F0b3IpO1xuIl19
|
|
252
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRJbmRpY2F0b3IudHN4Il0sIm5hbWVzIjpbIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJnbG9iYWxfZGF0YSIsImVkZ2VzX2RhdGEiLCJFdmVudEluZGljYXRvciIsInByb3BzIiwiTCIsIm1hcCIsImV2ZW50IiwicGF0aHMiLCJldmVudEluZGljYXRvciIsImRpc3BhdGNoIiwiZXZlbnRQYXJ0cyIsInJlbW92ZUV4aXN0aW5nSW5kaWNhdG9yIiwiZWFjaExheWVyIiwibGF5ZXIiLCJyZW1vdmVMYXllciIsIm1ha2VQYWlycyIsImFycmF5IiwicGFpcnMiLCJpIiwibGVuZ3RoIiwicHVzaCIsImNhbGN1bGF0ZUJvZHlBbmRUYWlsIiwic2VnbWVudCIsImJvZHlTdGFydCIsImJvZHlFbmQiLCJ0YWlsUGF0aCIsImJvZHlQYXRoIiwiZm91bmRCb2R5U3RhcnQiLCJldmVudEJvZHlTdGFydE1hcmtlciIsIl9sYXRsbmciLCJldmVudEJvZHlFbmRNYXJrZXIiLCJzdWJTZWdtZW50cyIsIl9sYXRsbmdzIiwic2hvdWxkQ29udGludWUiLCJmb3VuZEJvZHlTdGFydE9uQ3VycmVudFN1YlNlZ21lbnQiLCJiZWdpbm5pbmdPZkJvZHkiLCJyZW5kZXJFdmVudEluZGljYXRvciIsInBhdGgiLCJ1bmRlZmluZWQiLCJldmVudF9ib2R5X3BhcnQiLCJldmVudEJvZHlTdGFydCIsIm1hcmtlciIsImV2ZW50X3RhaWxfcGFydCIsImxhdExuZyIsImljb24iLCJkaXZJY29uIiwiaWNvbkFuY2hvciIsImljb25TaXplIiwib3BhY2l0eSIsImFkZFRvIiwiaWQiLCJldmVudEJvZHlFbmQiLCJldmVudFRhaWwiLCJwb2x5bGluZSIsImNvbG9yIiwid2VpZ2h0IiwiY2xhc3NOYW1lIiwiZXZlbnRCb2R5IiwiYnJpbmdUb0Zyb250IiwidGFpbERhc2giLCJwb2x5bGluZURlY29yYXRvciIsInBhdHRlcm5zIiwib2Zmc2V0IiwicmVwZWF0Iiwic3ltYm9sIiwiU3ltYm9sIiwiYXJyb3dIZWFkIiwicGl4ZWxTaXplIiwicG9seWdvbiIsInBhdGhPcHRpb25zIiwic3Ryb2tlIiwiYm9keUxpbmUiLCJ0YWlsTGluZSIsImxheWVyR3JvdXAiLCJjdXJyZW50X3RpbWUiLCJob3ZlcmVkIiwiY29ubmVjdG9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBOzs7Ozs7QUFSQTtBQVVBLFNBQVNBLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQTJDO0FBQ3pDLE1BQVFDLFdBQVIsR0FBaURELEtBQWpELENBQVFDLFdBQVI7QUFBQSxNQUFxQkMsV0FBckIsR0FBaURGLEtBQWpELENBQXFCRSxXQUFyQjtBQUFBLE1BQWtDQyxVQUFsQyxHQUFpREgsS0FBakQsQ0FBa0NHLFVBQWxDO0FBRUEsU0FBTztBQUNMRixJQUFBQSxXQUFXLEVBQVhBLFdBREs7QUFFTEMsSUFBQUEsV0FBVyxFQUFYQSxXQUZLO0FBR0xDLElBQUFBLFVBQVUsRUFBVkE7QUFISyxHQUFQO0FBS0Q7O0FBU0QsSUFBTUMsY0FBZ0MsR0FBRyxTQUFuQ0EsY0FBbUMsQ0FBQ0MsS0FBRCxFQUFXO0FBQ2xELE1BQVFDLENBQVIsR0FBdUVELEtBQXZFLENBQVFDLENBQVI7QUFBQSxNQUFXQyxHQUFYLEdBQXVFRixLQUF2RSxDQUFXRSxHQUFYO0FBQUEsTUFBZ0JOLFdBQWhCLEdBQXVFSSxLQUF2RSxDQUFnQkosV0FBaEI7QUFBQSxNQUE2QkUsVUFBN0IsR0FBdUVFLEtBQXZFLENBQTZCRixVQUE3QjtBQUFBLE1BQXlDRCxXQUF6QyxHQUF1RUcsS0FBdkUsQ0FBeUNILFdBQXpDO0FBQUEsTUFBc0RNLEtBQXRELEdBQXVFSCxLQUF2RSxDQUFzREcsS0FBdEQ7QUFBQSxNQUE2REMsS0FBN0QsR0FBdUVKLEtBQXZFLENBQTZESSxLQUE3RDtBQUNBLE1BQVFDLGNBQVIsR0FBMkJULFdBQTNCLENBQVFTLGNBQVI7QUFDQSxNQUFNQyxRQUFRLEdBQUcsOEJBQWpCO0FBQ0EsTUFBSUMsVUFBaUIsR0FBRyxFQUF4QixDQUprRCxDQUtsRDs7QUFFQSxNQUFNQyx1QkFBdUIsR0FBRyxTQUExQkEsdUJBQTBCLEdBQU07QUFDcEMsUUFBSUgsY0FBYyxLQUFLLElBQXZCLEVBQTZCO0FBQzNCQSxNQUFBQSxjQUFjLENBQUNJLFNBQWYsQ0FBeUIsVUFBQ0MsS0FBRCxFQUFnQjtBQUN2Q1IsUUFBQUEsR0FBRyxDQUFDUyxXQUFKLENBQWdCRCxLQUFoQjtBQUNELE9BRkQ7QUFHRDtBQUNGLEdBTkQ7O0FBUUEsTUFBTUUsU0FBUyxHQUFHLFNBQVpBLFNBQVksQ0FBQ0MsS0FBRCxFQUFlO0FBQy9CLFFBQUlDLEtBQVksR0FBRyxFQUFuQjs7QUFDQSxTQUFLLElBQUlDLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdGLEtBQUssQ0FBQ0csTUFBMUIsRUFBa0NELENBQUMsRUFBbkMsRUFBdUM7QUFDckMsVUFBSUEsQ0FBQyxHQUFHRixLQUFLLENBQUNHLE1BQU4sR0FBZSxDQUF2QixFQUEwQjtBQUN4QkYsUUFBQUEsS0FBSyxDQUFDRyxJQUFOLENBQVcsQ0FBQ0osS0FBSyxDQUFDRSxDQUFELENBQU4sRUFBV0YsS0FBSyxDQUFDRSxDQUFDLEdBQUcsQ0FBTCxDQUFoQixDQUFYO0FBQ0Q7QUFDRjs7QUFFRCxXQUFPRCxLQUFQO0FBQ0QsR0FURDs7QUFXQSxNQUFNSSxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQXVCLENBQUNDLE9BQUQsRUFBZUMsU0FBZixFQUErQkMsT0FBL0IsRUFBZ0Q7QUFDM0UsUUFBSUMsUUFBZSxHQUFHLEVBQXRCO0FBQ0EsUUFBSUMsUUFBZSxHQUFHLEVBQXRCO0FBQ0EsUUFBSUMsY0FBYyxHQUFHLEtBQXJCO0FBQ0EsUUFBSUMsb0JBQW9CLEdBQUdMLFNBQVMsQ0FBQ00sT0FBckM7QUFDQSxRQUFJQyxrQkFBa0IsR0FBR04sT0FBTyxDQUFDSyxPQUFqQztBQUNBLFFBQUlFLFdBQVcsR0FBR2hCLFNBQVMsQ0FBQ08sT0FBTyxDQUFDVSxRQUFULENBQTNCO0FBQ0EsUUFBSUMsY0FBYyxHQUFHLElBQXJCOztBQUVBLFNBQUssSUFBSWYsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR2EsV0FBVyxDQUFDWixNQUFoQyxFQUF3Q0QsQ0FBQyxFQUF6QyxFQUE2QztBQUMzQyxVQUFJZ0IsaUNBQWlDLEdBQUcsS0FBeEM7O0FBRUEsVUFBSUQsY0FBYyxJQUFJLENBQUNOLGNBQXZCLEVBQXVDO0FBQ3JDO0FBRUEsWUFDRSx5Q0FDRUMsb0JBREYsRUFFRUcsV0FBVyxDQUFDYixDQUFELENBQVgsQ0FBZSxDQUFmLENBRkYsRUFHRWEsV0FBVyxDQUFDYixDQUFELENBQVgsQ0FBZSxDQUFmLENBSEYsRUFJRSxTQUpGLENBREYsRUFPRTtBQUNBTyxVQUFBQSxRQUFRLENBQUNMLElBQVQsQ0FBYyxDQUFDVyxXQUFXLENBQUNiLENBQUQsQ0FBWCxDQUFlLENBQWYsQ0FBRCxFQUFvQlUsb0JBQXBCLENBQWQ7QUFFQUQsVUFBQUEsY0FBYyxHQUFHLElBQWpCO0FBQ0FPLFVBQUFBLGlDQUFpQyxHQUFHLElBQXBDO0FBQ0QsU0FaRCxNQVlPO0FBQ0xULFVBQUFBLFFBQVEsQ0FBQ0wsSUFBVCxDQUFjLENBQUNXLFdBQVcsQ0FBQ2IsQ0FBRCxDQUFYLENBQWUsQ0FBZixDQUFELEVBQW9CYSxXQUFXLENBQUNiLENBQUQsQ0FBWCxDQUFlLENBQWYsQ0FBcEIsQ0FBZDtBQUNEO0FBQ0Y7O0FBRUQsVUFBSWUsY0FBYyxJQUFJTixjQUF0QixFQUFzQztBQUNwQyxZQUFJUSxlQUFlLEdBQUdELGlDQUFpQyxHQUNuRE4sb0JBRG1ELEdBRW5ERyxXQUFXLENBQUNiLENBQUQsQ0FBWCxDQUFlLENBQWYsQ0FGSjs7QUFJQSxZQUNFLHlDQUNFWSxrQkFERixFQUVFQyxXQUFXLENBQUNiLENBQUQsQ0FBWCxDQUFlLENBQWYsQ0FGRixFQUdFYSxXQUFXLENBQUNiLENBQUQsQ0FBWCxDQUFlLENBQWYsQ0FIRixFQUlFLFNBSkYsQ0FERixFQU9FO0FBQ0FRLFVBQUFBLFFBQVEsQ0FBQ04sSUFBVCxDQUFjLENBQUNlLGVBQUQsRUFBa0JMLGtCQUFsQixDQUFkO0FBQ0FHLFVBQUFBLGNBQWMsR0FBRyxLQUFqQjtBQUNELFNBVkQsTUFVTztBQUNMUCxVQUFBQSxRQUFRLENBQUNOLElBQVQsQ0FBYyxDQUFDZSxlQUFELEVBQWtCSixXQUFXLENBQUNiLENBQUQsQ0FBWCxDQUFlLENBQWYsQ0FBbEIsQ0FBZDtBQUNEO0FBQ0Y7QUFDRjs7QUFFRCxXQUFPO0FBQ0xPLE1BQUFBLFFBQVEsRUFBRUEsUUFETDtBQUVMQyxNQUFBQSxRQUFRLEVBQUVBO0FBRkwsS0FBUDtBQUlELEdBekREOztBQTJEQSxNQUFNVSxvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQXVCLEdBQU07QUFDakMsUUFBSTlCLEtBQUssS0FBSyxJQUFWLElBQWtCQSxLQUFLLENBQUMrQixJQUFOLENBQVdsQixNQUFYLElBQXFCLENBQTNDLEVBQThDO0FBQzVDUixNQUFBQSx1QkFBdUI7O0FBQ3ZCLFdBQUssSUFBSU8sQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR1osS0FBSyxDQUFDK0IsSUFBTixDQUFXbEIsTUFBL0IsRUFBdUNELENBQUMsRUFBeEMsRUFBNEM7QUFDMUMsWUFDRVosS0FBSyxDQUFDK0IsSUFBTixDQUFXbkIsQ0FBWCxNQUFrQm9CLFNBQWxCLElBQ0FoQyxLQUFLLENBQUMrQixJQUFOLENBQVduQixDQUFYLEVBQWNxQixlQUFkLElBQWlDLEdBRGpDLElBRUFqQyxLQUFLLENBQUMrQixJQUFOLENBQVduQixDQUFYLEVBQWNxQixlQUFkLEdBQWdDLENBRmhDLElBR0FoQyxLQUFLLENBQUNXLENBQUQsQ0FBTCxLQUFhb0IsU0FKZixFQUtFO0FBQ0EsY0FBSUUsY0FBYyxHQUFHcEMsQ0FBQyxDQUFDcUMsTUFBRixDQUNuQiw0Q0FDRXBDLEdBREYsRUFFRUUsS0FBSyxDQUFDVyxDQUFELENBQUwsQ0FBU2MsUUFGWCxFQUdFMUIsS0FBSyxDQUFDK0IsSUFBTixDQUFXbkIsQ0FBWCxFQUFjd0IsZUFBZCxHQUFnQyxHQUhsQyxFQUlFQyxNQUxpQixFQU1uQjtBQUNFQyxZQUFBQSxJQUFJLEVBQUV4QyxDQUFDLENBQUN5QyxPQUFGLENBQVU7QUFDZEMsY0FBQUEsVUFBVSxFQUFFLENBQUMsQ0FBRCxFQUFJLENBQUosQ0FERTtBQUVkQyxjQUFBQSxRQUFRLEVBQUUsQ0FBQyxDQUFELEVBQUksQ0FBSjtBQUZJLGFBQVYsQ0FEUjtBQUtFQyxZQUFBQSxPQUFPLEVBQUU7QUFMWCxXQU5tQixFQWFuQkMsS0FibUIsQ0FhYjVDLEdBYmEsQ0FBckI7QUFjQW1DLFVBQUFBLGNBQWMsQ0FBQyxpQkFBRCxDQUFkLEdBQW9DbEMsS0FBSyxDQUFDNEMsRUFBMUM7QUFDQVYsVUFBQUEsY0FBYyxDQUFDLGNBQUQsQ0FBZCxHQUFpQyxnQkFBakM7QUFFQSxjQUFJVyxZQUFZLEdBQUcvQyxDQUFDLENBQUNxQyxNQUFGLENBQ2pCLDRDQUNFcEMsR0FERixFQUVFRSxLQUFLLENBQUNXLENBQUQsQ0FBTCxDQUFTYyxRQUZYLEVBR0UsQ0FBQzFCLEtBQUssQ0FBQytCLElBQU4sQ0FBV25CLENBQVgsRUFBY3FCLGVBQWQsR0FBZ0NqQyxLQUFLLENBQUMrQixJQUFOLENBQVduQixDQUFYLEVBQWN3QixlQUEvQyxJQUNFLEdBSkosRUFLRUMsTUFOZSxFQU9qQjtBQUNFQyxZQUFBQSxJQUFJLEVBQUV4QyxDQUFDLENBQUN5QyxPQUFGLENBQVU7QUFDZEMsY0FBQUEsVUFBVSxFQUFFLENBQUMsQ0FBRCxFQUFJLENBQUosQ0FERTtBQUVkQyxjQUFBQSxRQUFRLEVBQUUsQ0FBQyxDQUFELEVBQUksQ0FBSjtBQUZJLGFBQVYsQ0FEUjtBQUtFQyxZQUFBQSxPQUFPLEVBQUU7QUFMWCxXQVBpQixFQWNqQkMsS0FkaUIsQ0FjWDVDLEdBZFcsQ0FBbkI7QUFlQThDLFVBQUFBLFlBQVksQ0FBQyxpQkFBRCxDQUFaLEdBQWtDN0MsS0FBSyxDQUFDNEMsRUFBeEM7QUFDQUMsVUFBQUEsWUFBWSxDQUFDLGNBQUQsQ0FBWixHQUErQixjQUEvQjtBQUVBLGNBQUlkLElBQUksR0FBR2hCLG9CQUFvQixDQUM3QmQsS0FBSyxDQUFDVyxDQUFELENBRHdCLEVBRTdCc0IsY0FGNkIsRUFHN0JXLFlBSDZCLENBQS9CO0FBTUEsY0FBSUMsU0FBUyxHQUFHaEQsQ0FBQyxDQUFDaUQsUUFBRixDQUFXaEIsSUFBSSxDQUFDWixRQUFoQixFQUEwQjtBQUN4QzZCLFlBQUFBLEtBQUssRUFBRSxTQURpQztBQUV4Q0MsWUFBQUEsTUFBTSxFQUFFLEVBRmdDO0FBR3hDQyxZQUFBQSxTQUFTLEVBQUUsWUFINkI7QUFJeENSLFlBQUFBLE9BQU8sRUFBRTtBQUorQixXQUExQixFQUtiQyxLQUxhLENBS1A1QyxHQUxPLENBQWhCO0FBTUErQyxVQUFBQSxTQUFTLENBQUMsaUJBQUQsQ0FBVCxHQUErQjlDLEtBQUssQ0FBQzRDLEVBQXJDO0FBQ0FFLFVBQUFBLFNBQVMsQ0FBQyxjQUFELENBQVQsR0FBNEIsV0FBNUI7QUFFQSxjQUFJSyxTQUFTLEdBQUdyRCxDQUFDLENBQUNpRCxRQUFGLENBQVdoQixJQUFJLENBQUNYLFFBQWhCLEVBQTBCO0FBQ3hDNEIsWUFBQUEsS0FBSyxFQUFFLFNBRGlDO0FBRXhDQyxZQUFBQSxNQUFNLEVBQUUsRUFGZ0M7QUFHeENDLFlBQUFBLFNBQVMsRUFBRTtBQUg2QixXQUExQixFQUliUCxLQUphLENBSVA1QyxHQUpPLENBQWhCO0FBS0FvRCxVQUFBQSxTQUFTLENBQUMsaUJBQUQsQ0FBVCxHQUErQm5ELEtBQUssQ0FBQzRDLEVBQXJDO0FBQ0FPLFVBQUFBLFNBQVMsQ0FBQyxjQUFELENBQVQsR0FBNEIsV0FBNUI7QUFDQUEsVUFBQUEsU0FBUyxDQUFDQyxZQUFWO0FBRUEsY0FBSUMsUUFBUSxHQUFHdkQsQ0FBQyxDQUFDd0QsaUJBQUYsQ0FBb0JSLFNBQVMsQ0FBQ3BCLFFBQTlCLEVBQXdDO0FBQ3JENkIsWUFBQUEsUUFBUSxFQUFFLENBQ1I7QUFDQTtBQUNFQyxjQUFBQSxNQUFNLEVBQUUsRUFEVjtBQUVFQyxjQUFBQSxNQUFNLEVBQUUsRUFGVjtBQUdFQyxjQUFBQSxNQUFNLEVBQUU1RCxDQUFDLENBQUM2RCxNQUFGLENBQVNDLFNBQVQsQ0FBbUI7QUFDekJDLGdCQUFBQSxTQUFTLEVBQUUsQ0FEYztBQUV6QkMsZ0JBQUFBLE9BQU8sRUFBRSxLQUZnQjtBQUd6QkMsZ0JBQUFBLFdBQVcsRUFBRTtBQUNYQyxrQkFBQUEsTUFBTSxFQUFFLElBREc7QUFFWGhCLGtCQUFBQSxLQUFLLEVBQUUscUJBRkk7QUFHWEMsa0JBQUFBLE1BQU0sRUFBRTtBQUhHO0FBSFksZUFBbkI7QUFIVixhQUZRO0FBRDJDLFdBQXhDLEVBaUJaTixLQWpCWSxDQWlCTjVDLEdBakJNLENBQWY7QUFrQkFzRCxVQUFBQSxRQUFRLENBQUMsY0FBRCxDQUFSLEdBQTJCLFdBQTNCO0FBRUEsY0FBSVksUUFBUSxHQUFHbkUsQ0FBQyxDQUFDaUQsUUFBRixDQUFXSSxTQUFTLENBQUN6QixRQUFyQixFQUErQjtBQUM1Q3NCLFlBQUFBLEtBQUssRUFBRSx5QkFEcUM7QUFFNUNDLFlBQUFBLE1BQU0sRUFBRTtBQUZvQyxXQUEvQixFQUdaTixLQUhZLENBR041QyxHQUhNLENBQWY7QUFJQWtFLFVBQUFBLFFBQVEsQ0FBQyxjQUFELENBQVIsR0FBMkIsV0FBM0I7QUFFQSxjQUFJQyxRQUFRLEdBQUdwRSxDQUFDLENBQUNpRCxRQUFGLENBQVdELFNBQVMsQ0FBQ3BCLFFBQXJCLEVBQStCO0FBQzVDc0IsWUFBQUEsS0FBSyxFQUFFLHFCQURxQztBQUU1Q0MsWUFBQUEsTUFBTSxFQUFFO0FBRm9DLFdBQS9CLEVBR1pOLEtBSFksQ0FHTjVDLEdBSE0sQ0FBZjtBQUlBbUUsVUFBQUEsUUFBUSxDQUFDLGNBQUQsQ0FBUixHQUEyQixXQUEzQjtBQUVBLGNBQUlOLFNBQVMsR0FBRzlELENBQUMsQ0FBQ3dELGlCQUFGLENBQW9CSCxTQUFwQixFQUErQjtBQUM3Q0ksWUFBQUEsUUFBUSxFQUFFLENBQ1I7QUFDQTtBQUNFQyxjQUFBQSxNQUFNLEVBQUUsQ0FEVjtBQUVFQyxjQUFBQSxNQUFNLEVBQUUsRUFGVjtBQUdFQyxjQUFBQSxNQUFNLEVBQUU1RCxDQUFDLENBQUM2RCxNQUFGLENBQVNDLFNBQVQsQ0FBbUI7QUFDekJDLGdCQUFBQSxTQUFTLEVBQUUsQ0FEYztBQUV6QkMsZ0JBQUFBLE9BQU8sRUFBRSxLQUZnQjtBQUd6QkMsZ0JBQUFBLFdBQVcsRUFBRTtBQUNYQyxrQkFBQUEsTUFBTSxFQUFFLElBREc7QUFFWGhCLGtCQUFBQSxLQUFLLEVBQUUscUJBRkk7QUFHWEMsa0JBQUFBLE1BQU0sRUFBRTtBQUhHO0FBSFksZUFBbkI7QUFIVixhQUZRO0FBRG1DLFdBQS9CLEVBaUJiTixLQWpCYSxDQWlCUDVDLEdBakJPLENBQWhCO0FBa0JBNkQsVUFBQUEsU0FBUyxDQUFDLGNBQUQsQ0FBVCxHQUE0QixXQUE1QjtBQUVBeEQsVUFBQUEsVUFBVSxDQUFDVSxJQUFYLENBQ0VxQyxTQURGLEVBRUVMLFNBRkYsRUFHRU8sUUFIRixFQUlFWSxRQUpGLEVBS0VMLFNBTEYsRUFNRU0sUUFORjtBQVFELFNBN0hELE1BNkhPLElBQ0xsRSxLQUFLLENBQUMrQixJQUFOLENBQVduQixDQUFYLE1BQWtCb0IsU0FBbEIsSUFDQWhDLEtBQUssQ0FBQytCLElBQU4sQ0FBV25CLENBQVgsRUFBY3FCLGVBQWQsS0FBa0MsQ0FEbEMsSUFFQWpDLEtBQUssQ0FBQytCLElBQU4sQ0FBV25CLENBQVgsRUFBY3dCLGVBQWQsR0FBZ0MsQ0FGaEMsSUFHQW5DLEtBQUssQ0FBQ1csQ0FBRCxDQUFMLEtBQWFvQixTQUpSLEVBS0w7QUFDQSxjQUFJYyxVQUFTLEdBQUdoRCxDQUFDLENBQUNpRCxRQUFGLENBQVc5QyxLQUFLLENBQUNXLENBQUQsQ0FBTCxDQUFTYyxRQUFwQixFQUE4QjtBQUM1Q3NCLFlBQUFBLEtBQUssRUFBRSxTQURxQztBQUU1Q0MsWUFBQUEsTUFBTSxFQUFFLEVBRm9DO0FBRzVDQyxZQUFBQSxTQUFTLEVBQUUsWUFIaUM7QUFJNUNSLFlBQUFBLE9BQU8sRUFBRTtBQUptQyxXQUE5QixFQUtiQyxLQUxhLENBS1A1QyxHQUxPLENBQWhCOztBQU9BK0MsVUFBQUEsVUFBUyxDQUFDLGlCQUFELENBQVQsR0FBK0I5QyxLQUFLLENBQUM0QyxFQUFyQztBQUNBRSxVQUFBQSxVQUFTLENBQUMsY0FBRCxDQUFULEdBQTRCLFdBQTVCO0FBRUFPLFVBQUFBLFFBQVEsR0FBR3ZELENBQUMsQ0FBQ3dELGlCQUFGLENBQW9CUixVQUFTLENBQUNwQixRQUE5QixFQUF3QztBQUNqRDZCLFlBQUFBLFFBQVEsRUFBRSxDQUNSO0FBQ0E7QUFDRUMsY0FBQUEsTUFBTSxFQUFFLEVBRFY7QUFFRUMsY0FBQUEsTUFBTSxFQUFFLEVBRlY7QUFHRUMsY0FBQUEsTUFBTSxFQUFFNUQsQ0FBQyxDQUFDNkQsTUFBRixDQUFTQyxTQUFULENBQW1CO0FBQ3pCQyxnQkFBQUEsU0FBUyxFQUFFLENBRGM7QUFFekJDLGdCQUFBQSxPQUFPLEVBQUUsS0FGZ0I7QUFHekJDLGdCQUFBQSxXQUFXLEVBQUU7QUFDWEMsa0JBQUFBLE1BQU0sRUFBRSxJQURHO0FBRVhoQixrQkFBQUEsS0FBSyxFQUFFLHFCQUZJO0FBR1hDLGtCQUFBQSxNQUFNLEVBQUU7QUFIRztBQUhZLGVBQW5CO0FBSFYsYUFGUTtBQUR1QyxXQUF4QyxFQWlCUk4sS0FqQlEsQ0FpQkY1QyxHQWpCRSxDQUFYO0FBa0JBc0QsVUFBQUEsUUFBUSxDQUFDLGNBQUQsQ0FBUixHQUEyQixXQUEzQjtBQUVBYSxVQUFBQSxRQUFRLEdBQUdwRSxDQUFDLENBQUNpRCxRQUFGLENBQVdELFVBQVMsQ0FBQ3BCLFFBQXJCLEVBQStCO0FBQ3hDc0IsWUFBQUEsS0FBSyxFQUFFLHFCQURpQztBQUV4Q0MsWUFBQUEsTUFBTSxFQUFFO0FBRmdDLFdBQS9CLEVBR1JOLEtBSFEsQ0FHRjVDLEdBSEUsQ0FBWDtBQUlBbUUsVUFBQUEsUUFBUSxDQUFDLGNBQUQsQ0FBUixHQUEyQixXQUEzQjtBQUNBYixVQUFBQSxRQUFRLENBQUNELFlBQVQ7QUFFQWhELFVBQUFBLFVBQVUsQ0FBQ1UsSUFBWCxDQUFnQmdDLFVBQWhCLEVBQTJCTyxRQUEzQixFQUFxQ2EsUUFBckM7QUFDRDtBQUNGOztBQUVEL0QsTUFBQUEsUUFBUSxDQUFDLGdDQUFrQkwsQ0FBQyxDQUFDcUUsVUFBRixDQUFhL0QsVUFBYixDQUFsQixDQUFELENBQVI7QUFDRDtBQUNGLEdBbExEOztBQW9MQSx1Q0FDRUosS0FBSyxLQUFLLElBQVYsR0FBaUJOLFdBQVcsQ0FBQzBFLFlBQTdCLEdBQTRDLENBRDlDLEVBRUVwRSxLQUZGLEVBR0VMLFVBSEYsRUFJRUssS0FBSyxDQUFDcUUsT0FKUjtBQU9BLHdCQUFVLFlBQU07QUFDZHZDLElBQUFBLG9CQUFvQjtBQUNyQixHQUZELEVBRUcsQ0FBQzdCLEtBQUQsRUFBUVAsV0FBVyxDQUFDMEUsWUFBcEIsQ0FGSDtBQUlBLHNCQUFPLHlDQUFQO0FBQ0QsQ0FyUkQ7O0FBdVJBLElBQU1FLFNBQVMsR0FBRyx5QkFBUS9FLGVBQVIsQ0FBbEI7O2VBQ2UrRSxTQUFTLENBQUMxRSxjQUFELEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBpbnRlcnBvbGF0ZU9uTGluZSwgYmVsb25nc1NlZ21lbnQgfSBmcm9tICdsZWFmbGV0LWdlb21ldHJ5dXRpbCc7XG5pbXBvcnQgJ2xlYWZsZXQtcG9seWxpbmVkZWNvcmF0b3InO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHNldEV2ZW50SW5kaWNhdG9yIH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgdXNlVXBkYXRlRXZlbnRCb2R5VGFpbCBmcm9tICdzcmMvaG9va3MvdXNlVXBkYXRlRXZlbnRCb2R5VGFpbCc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgZXZlbnRzX2RhdGEsIGdsb2JhbF9kYXRhLCBlZGdlc19kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGV2ZW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICAgIGVkZ2VzX2RhdGEsXG4gIH07XG59XG5cbnR5cGUgSVByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIEw6IGFueTtcbiAgbWFwOiBhbnk7XG4gIHBhdGhzOiBhbnk7XG4gIGV2ZW50OiBJRXZlbnQ7XG59O1xuXG5jb25zdCBFdmVudEluZGljYXRvcjogUmVhY3QuRkM8SVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IEwsIG1hcCwgZXZlbnRzX2RhdGEsIGVkZ2VzX2RhdGEsIGdsb2JhbF9kYXRhLCBldmVudCwgcGF0aHMgfSA9IHByb3BzO1xuICBjb25zdCB7IGV2ZW50SW5kaWNhdG9yIH0gPSBldmVudHNfZGF0YTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBsZXQgZXZlbnRQYXJ0czogYW55W10gPSBbXTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGV0Yy9uby1jb21tZW50ZWQtb3V0LWNvZGVcblxuICBjb25zdCByZW1vdmVFeGlzdGluZ0luZGljYXRvciA9ICgpID0+IHtcbiAgICBpZiAoZXZlbnRJbmRpY2F0b3IgIT09IG51bGwpIHtcbiAgICAgIGV2ZW50SW5kaWNhdG9yLmVhY2hMYXllcigobGF5ZXI6IGFueSkgPT4ge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXIpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG1ha2VQYWlycyA9IChhcnJheTogW10pID0+IHtcbiAgICBsZXQgcGFpcnM6IGFueVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGkgPCBhcnJheS5sZW5ndGggLSAxKSB7XG4gICAgICAgIHBhaXJzLnB1c2goW2FycmF5W2ldLCBhcnJheVtpICsgMV1dKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGFpcnM7XG4gIH07XG5cbiAgY29uc3QgY2FsY3VsYXRlQm9keUFuZFRhaWwgPSAoc2VnbWVudDogYW55LCBib2R5U3RhcnQ6IGFueSwgYm9keUVuZDogYW55KSA9PiB7XG4gICAgbGV0IHRhaWxQYXRoOiBhbnlbXSA9IFtdO1xuICAgIGxldCBib2R5UGF0aDogYW55W10gPSBbXTtcbiAgICBsZXQgZm91bmRCb2R5U3RhcnQgPSBmYWxzZTtcbiAgICBsZXQgZXZlbnRCb2R5U3RhcnRNYXJrZXIgPSBib2R5U3RhcnQuX2xhdGxuZztcbiAgICBsZXQgZXZlbnRCb2R5RW5kTWFya2VyID0gYm9keUVuZC5fbGF0bG5nO1xuICAgIGxldCBzdWJTZWdtZW50cyA9IG1ha2VQYWlycyhzZWdtZW50Ll9sYXRsbmdzKTtcbiAgICBsZXQgc2hvdWxkQ29udGludWUgPSB0cnVlO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJTZWdtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IGZvdW5kQm9keVN0YXJ0T25DdXJyZW50U3ViU2VnbWVudCA9IGZhbHNlO1xuXG4gICAgICBpZiAoc2hvdWxkQ29udGludWUgJiYgIWZvdW5kQm9keVN0YXJ0KSB7XG4gICAgICAgIC8vIGlmIGJvZHlTdGFydE1hcmtlciBleGlzdCBvbiBzdWJTZWdtZW50XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGJlbG9uZ3NTZWdtZW50KFxuICAgICAgICAgICAgZXZlbnRCb2R5U3RhcnRNYXJrZXIsXG4gICAgICAgICAgICBzdWJTZWdtZW50c1tpXVswXSxcbiAgICAgICAgICAgIHN1YlNlZ21lbnRzW2ldWzFdLFxuICAgICAgICAgICAgMC4wMDAwMDAxLFxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGFpbFBhdGgucHVzaChbc3ViU2VnbWVudHNbaV1bMF0sIGV2ZW50Qm9keVN0YXJ0TWFya2VyXSk7XG5cbiAgICAgICAgICBmb3VuZEJvZHlTdGFydCA9IHRydWU7XG4gICAgICAgICAgZm91bmRCb2R5U3RhcnRPbkN1cnJlbnRTdWJTZWdtZW50ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YWlsUGF0aC5wdXNoKFtzdWJTZWdtZW50c1tpXVswXSwgc3ViU2VnbWVudHNbaV1bMV1dKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc2hvdWxkQ29udGludWUgJiYgZm91bmRCb2R5U3RhcnQpIHtcbiAgICAgICAgbGV0IGJlZ2lubmluZ09mQm9keSA9IGZvdW5kQm9keVN0YXJ0T25DdXJyZW50U3ViU2VnbWVudFxuICAgICAgICAgID8gZXZlbnRCb2R5U3RhcnRNYXJrZXJcbiAgICAgICAgICA6IHN1YlNlZ21lbnRzW2ldWzBdO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBiZWxvbmdzU2VnbWVudChcbiAgICAgICAgICAgIGV2ZW50Qm9keUVuZE1hcmtlcixcbiAgICAgICAgICAgIHN1YlNlZ21lbnRzW2ldWzBdLFxuICAgICAgICAgICAgc3ViU2VnbWVudHNbaV1bMV0sXG4gICAgICAgICAgICAwLjAwMDAwMDEsXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICBib2R5UGF0aC5wdXNoKFtiZWdpbm5pbmdPZkJvZHksIGV2ZW50Qm9keUVuZE1hcmtlcl0pO1xuICAgICAgICAgIHNob3VsZENvbnRpbnVlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYm9keVBhdGgucHVzaChbYmVnaW5uaW5nT2ZCb2R5LCBzdWJTZWdtZW50c1tpXVsxXV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRhaWxQYXRoOiB0YWlsUGF0aCxcbiAgICAgIGJvZHlQYXRoOiBib2R5UGF0aCxcbiAgICB9O1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckV2ZW50SW5kaWNhdG9yID0gKCkgPT4ge1xuICAgIGlmIChldmVudCAhPT0gbnVsbCAmJiBldmVudC5wYXRoLmxlbmd0aCA+PSAxKSB7XG4gICAgICByZW1vdmVFeGlzdGluZ0luZGljYXRvcigpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBldmVudC5wYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBldmVudC5wYXRoW2ldICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X2JvZHlfcGFydCA8PSAxMDAgJiZcbiAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X2JvZHlfcGFydCA+IDAgJiZcbiAgICAgICAgICBwYXRoc1tpXSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgIGxldCBldmVudEJvZHlTdGFydCA9IEwubWFya2VyKFxuICAgICAgICAgICAgaW50ZXJwb2xhdGVPbkxpbmUoXG4gICAgICAgICAgICAgIG1hcCxcbiAgICAgICAgICAgICAgcGF0aHNbaV0uX2xhdGxuZ3MsXG4gICAgICAgICAgICAgIGV2ZW50LnBhdGhbaV0uZXZlbnRfdGFpbF9wYXJ0IC8gMTAwLFxuICAgICAgICAgICAgKS5sYXRMbmcsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGljb246IEwuZGl2SWNvbih7XG4gICAgICAgICAgICAgICAgaWNvbkFuY2hvcjogWzAsIDBdLFxuICAgICAgICAgICAgICAgIGljb25TaXplOiBbMCwgMF0sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApLmFkZFRvKG1hcCk7XG4gICAgICAgICAgZXZlbnRCb2R5U3RhcnRbJ2thbmRvX29iamVjdF9pZCddID0gZXZlbnQuaWQ7XG4gICAgICAgICAgZXZlbnRCb2R5U3RhcnRbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50Qm9keVN0YXJ0JztcblxuICAgICAgICAgIGxldCBldmVudEJvZHlFbmQgPSBMLm1hcmtlcihcbiAgICAgICAgICAgIGludGVycG9sYXRlT25MaW5lKFxuICAgICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICAgIHBhdGhzW2ldLl9sYXRsbmdzLFxuICAgICAgICAgICAgICAoZXZlbnQucGF0aFtpXS5ldmVudF9ib2R5X3BhcnQgKyBldmVudC5wYXRoW2ldLmV2ZW50X3RhaWxfcGFydCkgL1xuICAgICAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgICkubGF0TG5nLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpY29uOiBMLmRpdkljb24oe1xuICAgICAgICAgICAgICAgIGljb25BbmNob3I6IFswLCAwXSxcbiAgICAgICAgICAgICAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKS5hZGRUbyhtYXApO1xuICAgICAgICAgIGV2ZW50Qm9keUVuZFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudEJvZHlFbmRbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50Qm9keUVuZCc7XG5cbiAgICAgICAgICBsZXQgcGF0aCA9IGNhbGN1bGF0ZUJvZHlBbmRUYWlsKFxuICAgICAgICAgICAgcGF0aHNbaV0sXG4gICAgICAgICAgICBldmVudEJvZHlTdGFydCxcbiAgICAgICAgICAgIGV2ZW50Qm9keUVuZCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgbGV0IGV2ZW50VGFpbCA9IEwucG9seWxpbmUocGF0aC50YWlsUGF0aCwge1xuICAgICAgICAgICAgY29sb3I6ICcjZjUwYjU2JyxcbiAgICAgICAgICAgIHdlaWdodDogMTIsXG4gICAgICAgICAgICBjbGFzc05hbWU6ICdldmVudC10YWlsJyxcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMyxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIGV2ZW50VGFpbFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudFRhaWxbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50VGFpbCc7XG5cbiAgICAgICAgICBsZXQgZXZlbnRCb2R5ID0gTC5wb2x5bGluZShwYXRoLmJvZHlQYXRoLCB7XG4gICAgICAgICAgICBjb2xvcjogJyNmNTBiNTYnLFxuICAgICAgICAgICAgd2VpZ2h0OiAxMixcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2V2ZW50LWJvZHknLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgZXZlbnRCb2R5WydrYW5kb19vYmplY3RfaWQnXSA9IGV2ZW50LmlkO1xuICAgICAgICAgIGV2ZW50Qm9keVsna2FuZG9fb2JqZWN0J10gPSAnRXZlbnRCb2R5JztcbiAgICAgICAgICBldmVudEJvZHkuYnJpbmdUb0Zyb250KCk7XG5cbiAgICAgICAgICB2YXIgdGFpbERhc2ggPSBMLnBvbHlsaW5lRGVjb3JhdG9yKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICAgICAgLy8gZGVmaW5lcyBhIHBhdHRlcm4gb2YgMTBweC13aWRlIGRhc2hlcywgcmVwZWF0ZWQgZXZlcnkgMjBweCBvbiB0aGUgbGluZVxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxNSxcbiAgICAgICAgICAgICAgICByZXBlYXQ6IDI1LFxuICAgICAgICAgICAgICAgIHN5bWJvbDogTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgICAgIHBpeGVsU2l6ZTogMyxcbiAgICAgICAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMSknLFxuICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIHRhaWxEYXNoWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuXG4gICAgICAgICAgdmFyIGJvZHlMaW5lID0gTC5wb2x5bGluZShldmVudEJvZHkuX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAuNiknLFxuICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgYm9keUxpbmVbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICB2YXIgdGFpbExpbmUgPSBMLnBvbHlsaW5lKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwgMjU1LCAyNTUpJyxcbiAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIHRhaWxMaW5lWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuXG4gICAgICAgICAgdmFyIGFycm93SGVhZCA9IEwucG9seWxpbmVEZWNvcmF0b3IoZXZlbnRCb2R5LCB7XG4gICAgICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgICAgICAvLyBkZWZpbmVzIGEgcGF0dGVybiBvZiAxMHB4LXdpZGUgZGFzaGVzLCByZXBlYXRlZCBldmVyeSAyMHB4IG9uIHRoZSBsaW5lXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDUsXG4gICAgICAgICAgICAgICAgcmVwZWF0OiAyNSxcbiAgICAgICAgICAgICAgICBzeW1ib2w6IEwuU3ltYm9sLmFycm93SGVhZCh7XG4gICAgICAgICAgICAgICAgICBwaXhlbFNpemU6IDMsXG4gICAgICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIHBhdGhPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDEpJyxcbiAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICBhcnJvd0hlYWRbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICBldmVudFBhcnRzLnB1c2goXG4gICAgICAgICAgICBldmVudEJvZHksXG4gICAgICAgICAgICBldmVudFRhaWwsXG4gICAgICAgICAgICB0YWlsRGFzaCxcbiAgICAgICAgICAgIGJvZHlMaW5lLFxuICAgICAgICAgICAgYXJyb3dIZWFkLFxuICAgICAgICAgICAgdGFpbExpbmUsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBldmVudC5wYXRoW2ldICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X2JvZHlfcGFydCA9PT0gMCAmJlxuICAgICAgICAgIGV2ZW50LnBhdGhbaV0uZXZlbnRfdGFpbF9wYXJ0ID4gMCAmJlxuICAgICAgICAgIHBhdGhzW2ldICE9PSB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgbGV0IGV2ZW50VGFpbCA9IEwucG9seWxpbmUocGF0aHNbaV0uX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgIGNvbG9yOiAnI2Y1MGI1NicsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEyLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtdGFpbCcsXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjMsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcblxuICAgICAgICAgIGV2ZW50VGFpbFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudFRhaWxbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50VGFpbCc7XG5cbiAgICAgICAgICB0YWlsRGFzaCA9IEwucG9seWxpbmVEZWNvcmF0b3IoZXZlbnRUYWlsLl9sYXRsbmdzLCB7XG4gICAgICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgICAgICAvLyBkZWZpbmVzIGEgcGF0dGVybiBvZiAxMHB4LXdpZGUgZGFzaGVzLCByZXBlYXRlZCBldmVyeSAyMHB4IG9uIHRoZSBsaW5lXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDE1LFxuICAgICAgICAgICAgICAgIHJlcGVhdDogMjUsXG4gICAgICAgICAgICAgICAgc3ltYm9sOiBMLlN5bWJvbC5hcnJvd0hlYWQoe1xuICAgICAgICAgICAgICAgICAgcGl4ZWxTaXplOiAzLFxuICAgICAgICAgICAgICAgICAgcG9seWdvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBwYXRoT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBzdHJva2U6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwxKScsXG4gICAgICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgdGFpbERhc2hbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICB0YWlsTGluZSA9IEwucG9seWxpbmUoZXZlbnRUYWlsLl9sYXRsbmdzLCB7XG4gICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LCAyNTUsIDI1NSknLFxuICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgdGFpbExpbmVbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG4gICAgICAgICAgdGFpbERhc2guYnJpbmdUb0Zyb250KCk7XG5cbiAgICAgICAgICBldmVudFBhcnRzLnB1c2goZXZlbnRUYWlsLCB0YWlsRGFzaCwgdGFpbExpbmUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRpc3BhdGNoKHNldEV2ZW50SW5kaWNhdG9yKEwubGF5ZXJHcm91cChldmVudFBhcnRzKSkpO1xuICAgIH1cbiAgfTtcblxuICB1c2VVcGRhdGVFdmVudEJvZHlUYWlsKFxuICAgIGV2ZW50ICE9PSBudWxsID8gZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lIDogMCxcbiAgICBldmVudCxcbiAgICBlZGdlc19kYXRhLFxuICAgIGV2ZW50LmhvdmVyZWQsXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZW5kZXJFdmVudEluZGljYXRvcigpO1xuICB9LCBbcGF0aHMsIGdsb2JhbF9kYXRhLmN1cnJlbnRfdGltZV0pO1xuXG4gIHJldHVybiA8ZGl2PjwvZGl2Pjtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihFdmVudEluZGljYXRvcik7XG4iXX0=
|
|
@@ -201,6 +201,7 @@ var drawNetwork = function drawNetwork(edges, points, dispatch, map) {
|
|
|
201
201
|
polylineBack['kando_object_id'] = edge.id;
|
|
202
202
|
polylineBack['kando_object'] = 'HoveredEdge';
|
|
203
203
|
polylineBack.bringToFront();
|
|
204
|
+
tailDash.bringToFront();
|
|
204
205
|
|
|
205
206
|
var polylineFront = _leaflet.default.polyline(latlngs, {
|
|
206
207
|
color: 'rgb(29,29,29)',
|
|
@@ -248,4 +249,4 @@ var pointIsWWTP = function pointIsWWTP(point) {
|
|
|
248
249
|
};
|
|
249
250
|
|
|
250
251
|
exports.pointIsWWTP = pointIsWWTP;
|
|
251
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRVdGlscy50cyJdLCJuYW1lcyI6WyJkcmF3TWFuaG9sZUljb24iLCJzb3VyY2VQb2ludCIsIm1hcCIsInBvaW50SWNvbiIsIkwiLCJpY29uIiwiaWNvblVybCIsIndoaXRlUG9pbnQiLCJpY29uU2l6ZSIsImljb25BbmNob3IiLCJtYW5ob2xlSWNvbiIsIm1hcmtlciIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwicmlzZU9uSG92ZXIiLCJhZGRUbyIsImJpbmRUb29sdGlwIiwiZ3JvdXAiLCJuYW1lIiwic2VjdG9yX25hbWUiLCJpZCIsImdldEZpcnN0RWRnZU9mRXZlbnRQYXRoIiwiZWRnZXMiLCJldmVudCIsInBhdGgiLCJ1bmRlZmluZWQiLCJmaW5kIiwiZWRnZSIsImVkZ2VfaWQiLCJmaW5kRWRnZXMiLCJuZXh0VXBzdHJlYW1MZXZlbElkcyIsImZpbHRlciIsImluY2x1ZGVzIiwidGFyZ2V0X3BvaW50X2lkIiwicmVjdXJzaXZlVXBzdHJlYW1TZWFyY2giLCJuZXh0TGV2ZWwiLCJtYXBBbGxFZGdlc05lc3RpbmciLCJhbGxVcHN0cmVhbUVkZ2VzIiwic291cmNlX3BvaW50X2lkIiwibGVuZ3RoIiwicHVzaCIsIm1hcHBlZCIsImZvckVhY2giLCJnZXRVcHN0cmVhbUVkZ2VzIiwiZmlyc3RFZGdlIiwiZmlyc3RVcHN0cmVhbUxldmVsIiwiZmluZFVwc3RyZWFtRWRnZXNUb0RyYXciLCJ1cHN0cmVhbUVkZ2VzIiwiZWRnZXNUb0RyYXciLCJwb2ludHMiLCJ1cHN0cmVhbUVkZ2UiLCJwb2ludCIsImNvbm5lY3Rpb25FZGdlIiwiZmluZERvd25zdHJlYW1FZGdlc1RvRHJhdyIsImRvd25zdHJlYW1OZXR3b3JrIiwicmVjdXJzaXZlRG93blN0cmVhbVNlYXJjaCIsImRvd25TdHJlYW1FZGdlIiwibGFzdERvd25TdHJlYW1FZGdlIiwibmV4dExldmVsRG93blN0cmVhbSIsImZpbmRFZGdlc0Zyb21FdmVudFBhdGhUb0RyYXciLCJwYXJ0IiwibWF0Y2hlZFBhcnQiLCJkcmF3TmV0d29yayIsImRpc3BhdGNoIiwibGF0bG5ncyIsInNoYXBlX2RhdGEiLCJkYXRhIiwibGF0IiwibG5nIiwicG9seWxpbmVCYWNrIiwicG9seWxpbmUiLCJjb2xvciIsIndlaWdodCIsIm9wYWNpdHkiLCJ0YWlsRGFzaCIsInBvbHlsaW5lRGVjb3JhdG9yIiwiX2xhdGxuZ3MiLCJwYXR0ZXJucyIsIm9mZnNldCIsInJlcGVhdCIsInN5bWJvbCIsIlN5bWJvbCIsImFycm93SGVhZCIsInBpeGVsU2l6ZSIsInBvbHlnb24iLCJwYXRoT3B0aW9ucyIsInN0cm9rZSIsInRhcmdldFBvaW50IiwiYmluZFBvcHVwIiwiZGlzdGFuY2UiLCJoYXNfZGV2aWNlIiwicG9pbnRJc1dXVFAiLCJicmluZ1RvRnJvbnQiLCJwb2x5bGluZUZyb250IiwiZmluZEFuZERyYXdFdmVudE5ldHdvcmtFZGdlcyIsInBvaW50SXNPYnNlcnZhdGlvbiIsIm9ic2VydmF0aW9ucyIsIm9icyIsInBvaW50X2lkIiwidHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBSUE7O0FBQ0E7O0FBRU8sSUFBTUEsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDQyxXQUFELEVBQXNCQyxHQUF0QixFQUFxQztBQUNsRSxNQUFJQyxTQUFTLEdBQUdDLGlCQUFFQyxJQUFGLENBQU87QUFDckJDLElBQUFBLE9BQU8sRUFBRUMsbUJBRFk7QUFFckJDLElBQUFBLFFBQVEsRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLENBRlc7QUFHckJDLElBQUFBLFVBQVUsRUFBRSxDQUFDLEdBQUQsRUFBTSxHQUFOO0FBSFMsR0FBUCxDQUFoQjs7QUFNQSxNQUFJQyxXQUFnQixHQUFHTixpQkFBRU8sTUFBRixDQUNyQixDQUFDVixXQUFXLENBQUNXLFFBQWIsRUFBdUJYLFdBQVcsQ0FBQ1ksU0FBbkMsQ0FEcUIsRUFFckI7QUFDRVIsSUFBQUEs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QWhDO0FBQUEsR0FBeEIsQ0FBUDtBQUNELENBRk07Ozs7QUFJQSxJQUFNdUUsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ3hDLEtBQUQsRUFBbUI7QUFDNUMsU0FBT0EsS0FBSyxDQUFDbEMsS0FBTixDQUFZa0YsSUFBWixLQUFxQixrQ0FBNUI7QUFDRCxDQUZNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdsZWFmbGV0LXBvbHlsaW5lZGVjb3JhdG9yJztcbmltcG9ydCBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IHdoaXRlUG9pbnQgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3doaXRlLXBvaW50LnBuZyc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBzZXRIb3ZlcmVkRWRnZVBhdGhzIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgY3JlYXRlQnViYmxlUG9pbnQgfSBmcm9tICcuLi9wb2ludHMvUG9pbnRVdGlscyc7XG5cbmV4cG9ydCBjb25zdCBkcmF3TWFuaG9sZUljb24gPSAoc291cmNlUG9pbnQ6IElQb2ludCwgbWFwOiBMLk1hcCkgPT4ge1xuICBsZXQgcG9pbnRJY29uID0gTC5pY29uKHtcbiAgICBpY29uVXJsOiB3aGl0ZVBvaW50LFxuICAgIGljb25TaXplOiBbOSwgOV0sXG4gICAgaWNvbkFuY2hvcjogWzQuNSwgNC41XSxcbiAgfSk7XG5cbiAgbGV0IG1hbmhvbGVJY29uOiBhbnkgPSBMLm1hcmtlcihcbiAgICBbc291cmNlUG9pbnQubGF0aXR1ZGUsIHNvdXJjZVBvaW50LmxvbmdpdHVkZV0sXG4gICAge1xuICAgICAgaWNvbjogcG9pbnRJY29uLFxuICAgICAgcmlzZU9uSG92ZXI6IHRydWUsXG4gICAgfSxcbiAgKS5hZGRUbyhtYXApO1xuICBtYW5ob2xlSWNvbi5iaW5kVG9vbHRpcChcbiAgICBgJHtzb3VyY2VQb2ludC5ncm91cC5uYW1lfSAoJHtzb3VyY2VQb2ludC5ncm91cC5zZWN0b3JfbmFtZX0pYCxcbiAgKTtcbiAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdF9pZCddID0gc291cmNlUG9pbnQuaWQ7XG4gIG1hbmhvbGVJY29uWydrYW5kb19vYmplY3QnXSA9ICdVcHN0cmVhbVBvaW50Jztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdEVkZ2VPZkV2ZW50UGF0aCA9IChlZGdlczogSUVkZ2VbXSwgZXZlbnQ6IElFdmVudCkgPT4ge1xuICBpZiAoZXZlbnQucGF0aFswXSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gIHJldHVybiBlZGdlcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBldmVudC5wYXRoWzBdLmVkZ2VfaWQpO1xufTtcblxuY29uc3QgZmluZEVkZ2VzID0gKGVkZ2VzLCBuZXh0VXBzdHJlYW1MZXZlbElkcykgPT4ge1xuICByZXR1cm4gZWRnZXMuZmlsdGVyKChlZGdlOiBJRWRnZSkgPT5cbiAgICBuZXh0VXBzdHJlYW1MZXZlbElkcy5pbmNsdWRlcyhlZGdlLnRhcmdldF9wb2ludF9pZCksXG4gICk7XG59O1xuXG5jb25zdCByZWN1cnNpdmVVcHN0cmVhbVNlYXJjaCA9IChcbiAgbmV4dExldmVsLFxuICBlZGdlcyxcbiAgbWFwQWxsRWRnZXNOZXN0aW5nLFxuICBhbGxVcHN0cmVhbUVkZ2VzLFxuKSA9PiB7XG4gIGxldCBuZXh0VXBzdHJlYW1MZXZlbElkcyA9IG5leHRMZXZlbC5tYXAoKGVkZ2UpID0+IGVkZ2Uuc291cmNlX3BvaW50X2lkKTtcblxuICBpZiAoZmluZEVkZ2VzKGVkZ2VzLCBuZXh0VXBzdHJlYW1MZXZlbElkcykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG1hcEFsbEVkZ2VzTmVzdGluZyhhbGxVcHN0cmVhbUVkZ2VzKTtcbiAgfSBlbHNlIHtcbiAgICBhbGxVcHN0cmVhbUVkZ2VzLnB1c2goZmluZEVkZ2VzKGVkZ2VzLCBuZXh0VXBzdHJlYW1MZXZlbElkcykpO1xuICAgIHJlY3Vyc2l2ZVVwc3RyZWFtU2VhcmNoKFxuICAgICAgZmluZEVkZ2VzKGVkZ2VzLCBuZXh0VXBzdHJlYW1MZXZlbElkcyksXG4gICAgICBlZGdlcyxcbiAgICAgIG1hcEFsbEVkZ2VzTmVzdGluZyxcbiAgICAgIGFsbFVwc3RyZWFtRWRnZXMsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBtYXBBbGxFZGdlc05lc3RpbmcoYWxsVXBzdHJlYW1FZGdlcyk7XG59O1xuXG5jb25zdCBtYXBBbGxFZGdlc05lc3RpbmcgPSAoYWxsVXBzdHJlYW1FZGdlcykgPT4ge1xuICBsZXQgbWFwcGVkOiBhbnlbXSA9IFtdO1xuICBhbGxVcHN0cmVhbUVkZ2VzLmZvckVhY2goKGVkZ2VzKSA9PiB7XG4gICAgZWRnZXMuZm9yRWFjaCgoZWRnZSkgPT4ge1xuICAgICAgbWFwcGVkLnB1c2goZWRnZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiBtYXBwZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXBzdHJlYW1FZGdlcyA9IChmaXJzdEVkZ2U6IElFZGdlLCBlZGdlczogSUVkZ2VbXSkgPT4ge1xuICBsZXQgYWxsVXBzdHJlYW1FZGdlczogYW55W10gPSBbXTtcbiAgbGV0IGZpcnN0VXBzdHJlYW1MZXZlbDogSUVkZ2VbXSA9IGVkZ2VzLmZpbHRlcihcbiAgICAoZWRnZSkgPT4gZWRnZS50YXJnZXRfcG9pbnRfaWQgPT09IGZpcnN0RWRnZSEuc291cmNlX3BvaW50X2lkLFxuICApO1xuXG4gIHJldHVybiByZWN1cnNpdmVVcHN0cmVhbVNlYXJjaChcbiAgICBmaXJzdFVwc3RyZWFtTGV2ZWwsXG4gICAgZWRnZXMsXG4gICAgbWFwQWxsRWRnZXNOZXN0aW5nLFxuICAgIGFsbFVwc3RyZWFtRWRnZXMsXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZFVwc3RyZWFtRWRnZXNUb0RyYXcgPSAoXG4gIHVwc3RyZWFtRWRnZXM6IElFZGdlW10sXG4gIGVkZ2VzVG9EcmF3OiBJRWRnZVtdLFxuICBwb2ludHM6IElQb2ludFtdLFxuICBlZGdlczogSUVkZ2VbXSxcbikgPT4ge1xuICB1cHN0cmVhbUVkZ2VzLmZvckVhY2goKHVwc3RyZWFtRWRnZSkgPT4ge1xuICAgIGlmICh1cHN0cmVhbUVkZ2UpIHtcbiAgICAgIGxldCBzb3VyY2VQb2ludCA9IHBvaW50cy5maW5kKFxuICAgICAgICAocG9pbnQpID0+IHBvaW50LmlkID09PSB1cHN0cmVhbUVkZ2UhLnNvdXJjZV9wb2ludF9pZCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChzb3VyY2VQb2ludCkgZWRnZXNUb0RyYXcucHVzaCh1cHN0cmVhbUVkZ2UpO1xuICAgIH1cbiAgfSk7XG5cbiAgbGV0IGNvbm5lY3Rpb25FZGdlID0gZWRnZXMuZmluZChcbiAgICAoZWRnZSkgPT4gZWRnZS5zb3VyY2VfcG9pbnRfaWQgPT09IHVwc3RyZWFtRWRnZXNbMF0udGFyZ2V0X3BvaW50X2lkLFxuICApO1xuICBpZiAoY29ubmVjdGlvbkVkZ2UgIT09IHVuZGVmaW5lZCkgZWRnZXNUb0RyYXcucHVzaChjb25uZWN0aW9uRWRnZSk7XG4gIHJldHVybiBlZGdlc1RvRHJhdztcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kRG93bnN0cmVhbUVkZ2VzVG9EcmF3ID0gKFxuICBmaXJzdEVkZ2U6IElFZGdlLFxuICBlZGdlczogSUVkZ2VbXSxcbiAgZG93bnN0cmVhbU5ldHdvcmssXG4gIGVkZ2VzVG9EcmF3LFxuKSA9PiB7XG4gIHJlY3Vyc2l2ZURvd25TdHJlYW1TZWFyY2goZG93bnN0cmVhbU5ldHdvcmssIGVkZ2VzKS5mb3JFYWNoKFxuICAgIChkb3duU3RyZWFtRWRnZSkgPT4ge1xuICAgICAgZWRnZXNUb0RyYXcucHVzaChkb3duU3RyZWFtRWRnZSk7XG4gICAgfSxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZWN1cnNpdmVEb3duU3RyZWFtU2VhcmNoID0gKFxuICBkb3duc3RyZWFtTmV0d29yazogSUVkZ2VbXSxcbiAgZWRnZXM6IElFZGdlW10sXG4pID0+IHtcbiAgbGV0IGxhc3REb3duU3RyZWFtRWRnZSA9IGRvd25zdHJlYW1OZXR3b3JrW2Rvd25zdHJlYW1OZXR3b3JrLmxlbmd0aCAtIDFdO1xuXG4gIGlmIChuZXh0TGV2ZWxEb3duU3RyZWFtKGxhc3REb3duU3RyZWFtRWRnZSwgZWRnZXMpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBkb3duc3RyZWFtTmV0d29yaztcbiAgfSBlbHNlIHtcbiAgICBuZXh0TGV2ZWxEb3duU3RyZWFtKGxhc3REb3duU3RyZWFtRWRnZSwgZWRnZXMpLmZvckVhY2goKGVkZ2UpID0+IHtcbiAgICAgIGRvd25zdHJlYW1OZXR3b3JrLnB1c2goZWRnZSk7XG4gICAgICByZWN1cnNpdmVEb3duU3RyZWFtU2VhcmNoKGRvd25zdHJlYW1OZXR3b3JrLCBlZGdlcyk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZG93bnN0cmVhbU5ldHdvcms7XG59O1xuXG5leHBvcnQgY29uc3QgbmV4dExldmVsRG93blN0cmVhbSA9IChmaXJzdEVkZ2U6IElFZGdlLCBlZGdlczogSUVkZ2VbXSkgPT4ge1xuICByZXR1cm4gZWRnZXMuZmlsdGVyKFxuICAgIChlZGdlKSA9PiBlZGdlLnNvdXJjZV9wb2ludF9pZCA9PT0gZmlyc3RFZGdlLnRhcmdldF9wb2ludF9pZCxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kRWRnZXNGcm9tRXZlbnRQYXRoVG9EcmF3ID0gKFxuICBlZGdlc1RvRHJhdzogSUVkZ2VbXSxcbiAgZXZlbnQ6IElFdmVudCxcbiAgZWRnZXM6IElFZGdlW10sXG4pID0+IHtcbiAgZXZlbnQucGF0aC5mb3JFYWNoKChwYXJ0KSA9PiB7XG4gICAgbGV0IG1hdGNoZWRQYXJ0ID0gZWRnZXMuZmluZCgoZWRnZSkgPT4gZWRnZS5pZCA9PT0gcGFydC5lZGdlX2lkKTtcbiAgICBpZiAobWF0Y2hlZFBhcnQgIT09IHVuZGVmaW5lZCkgZWRnZXNUb0RyYXcucHVzaChtYXRjaGVkUGFydCk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGRyYXdOZXR3b3JrID0gKFxuICBlZGdlczogSUVkZ2VbXSxcbiAgcG9pbnRzOiBJUG9pbnRbXSxcbiAgZGlzcGF0Y2gsXG4gIG1hcCxcbikgPT4ge1xuICBsZXQgbGF0bG5nczogYW55ID0gW107XG4gIGVkZ2VzLmZvckVhY2goKGVkZ2UpID0+IHtcbiAgICBlZGdlLnNoYXBlX2RhdGEuZm9yRWFjaCgoZGF0YTogYW55KSA9PiB7XG4gICAgICBsYXRsbmdzLnB1c2goW2RhdGEubGF0LCBkYXRhLmxuZ10pO1xuICAgIH0pO1xuXG4gICAgbGV0IHBvbHlsaW5lQmFjazogYW55ID0gTC5wb2x5bGluZShsYXRsbmdzLCB7XG4gICAgICBjb2xvcjogJ3JnYigyMjcsMjI3LDIyNyknLFxuICAgICAgd2VpZ2h0OiA2LFxuICAgICAgb3BhY2l0eTogMSxcbiAgICB9KS5hZGRUbyhtYXApO1xuXG4gICAgbGV0IHRhaWxEYXNoID0gTC5wb2x5bGluZURlY29yYXRvcihwb2x5bGluZUJhY2suX2xhdGxuZ3MsIHtcbiAgICAgIHBhdHRlcm5zOiBbXG4gICAgICAgIC8vIGRlZmluZXMgYSBwYXR0ZXJuIG9mIDEwcHgtd2lkZSBkYXNoZXMsIHJlcGVhdGVkIGV2ZXJ5IDIwcHggb24gdGhlIGxpbmVcbiAgICAgICAge1xuICAgICAgICAgIG9mZnNldDogMTUsXG4gICAgICAgICAgcmVwZWF0OiAyNSxcbiAgICAgICAgICBzeW1ib2w6IEwuU3ltYm9sLmFycm93SGVhZCh7XG4gICAgICAgICAgICBwaXhlbFNpemU6IDMsXG4gICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgIHBhdGhPcHRpb25zOiB7XG4gICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDAsMCwwKScsXG4gICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgdGFpbERhc2hbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICBpZiAocG9pbnRzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgbGV0IHNvdXJjZVBvaW50ID0gcG9pbnRzLmZpbmQoXG4gICAgICAgIChwb2ludDogSVBvaW50KSA9PiBwb2ludC5pZCA9PT0gZWRnZS5zb3VyY2VfcG9pbnRfaWQsXG4gICAgICApO1xuICAgICAgbGV0IHRhcmdldFBvaW50ID0gcG9pbnRzLmZpbmQoXG4gICAgICAgIChwb2ludDogSVBvaW50KSA9PiBwb2ludC5pZCA9PT0gZWRnZS50YXJnZXRfcG9pbnRfaWQsXG4gICAgICApO1xuICAgICAgaWYgKHNvdXJjZVBvaW50ICE9PSB1bmRlZmluZWQgJiYgdGFyZ2V0UG9pbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwb2x5bGluZUJhY2suYmluZFBvcHVwKGBFZGdlIElEOiAke2VkZ2UuaWR9LDxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU291cmNlIHBvaW50OiAke3NvdXJjZVBvaW50Lmdyb3VwLm5hbWV9LDxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0IHBvaW50OiAke3RhcmdldFBvaW50Lmdyb3VwLm5hbWV9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXN0YW5jZTogJHtlZGdlLmRpc3RhbmNlfWApO1xuICAgICAgfVxuXG4gICAgICBpZiAoc291cmNlUG9pbnQpIGRyYXdNYW5ob2xlSWNvbihzb3VyY2VQb2ludCwgbWFwKTtcbiAgICAgIGlmICh0YXJnZXRQb2ludCkgZHJhd01hbmhvbGVJY29uKHRhcmdldFBvaW50LCBtYXApO1xuICAgICAgaWYgKHNvdXJjZVBvaW50ICYmIChzb3VyY2VQb2ludC5oYXNfZGV2aWNlIHx8IHBvaW50SXNXV1RQKHNvdXJjZVBvaW50KSkpXG4gICAgICAgIGNyZWF0ZUJ1YmJsZVBvaW50KFxuICAgICAgICAgIFtzb3VyY2VQb2ludC5sYXRpdHVkZSwgc291cmNlUG9pbnQubG9uZ2l0dWRlXSxcbiAgICAgICAgICBzb3VyY2VQb2ludCxcbiAgICAgICAgICBtYXAsXG4gICAgICAgICk7XG4gICAgICBpZiAodGFyZ2V0UG9pbnQgJiYgKHRhcmdldFBvaW50Lmhhc19kZXZpY2UgfHwgcG9pbnRJc1dXVFAodGFyZ2V0UG9pbnQpKSlcbiAgICAgICAgY3JlYXRlQnViYmxlUG9pbnQoXG4gICAgICAgICAgW3RhcmdldFBvaW50LmxhdGl0dWRlLCB0YXJnZXRQb2ludC5sb25naXR1ZGVdLFxuICAgICAgICAgIHRhcmdldFBvaW50LFxuICAgICAgICAgIG1hcCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwb2x5bGluZUJhY2tbJ2thbmRvX29iamVjdF9pZCddID0gZWRnZS5pZDtcbiAgICBwb2x5bGluZUJhY2tbJ2thbmRvX29iamVjdCddID0gJ0hvdmVyZWRFZGdlJztcblxuICAgIHBvbHlsaW5lQmFjay5icmluZ1RvRnJvbnQoKTtcblxuICAgIGxldCBwb2x5bGluZUZyb250OiBhbnkgPSBMLnBvbHlsaW5lKGxhdGxuZ3MsIHtcbiAgICAgIGNvbG9yOiAncmdiKDI5LDI5LDI5KScsXG4gICAgICB3ZWlnaHQ6IDEsXG4gICAgICBvcGFjaXR5OiAxLFxuICAgIH0pLmFkZFRvKG1hcCk7XG5cbiAgICBwb2x5bGluZUZyb250WydrYW5kb19vYmplY3RfaWQnXSA9IGVkZ2UuaWQ7XG4gICAgcG9seWxpbmVGcm9udFsna2FuZG9fb2JqZWN0J10gPSAnSG92ZXJlZEVkZ2VGcm9udCc7XG5cbiAgICBwb2x5bGluZUZyb250LmJyaW5nVG9Gcm9udCgpO1xuICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFZGdlUGF0aHMoW3BvbHlsaW5lQmFjaywgcG9seWxpbmVGcm9udF0pKTtcbiAgICBsYXRsbmdzID0gW107XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRBbmREcmF3RXZlbnROZXR3b3JrRWRnZXMgPSAoXG4gIGVkZ2VzOiBJRWRnZVtdLFxuICBldmVudDogSUV2ZW50LFxuICBwb2ludHM6IElQb2ludFtdLFxuICBkaXNwYXRjaCxcbiAgbWFwLFxuKSA9PiB7XG4gIGxldCBlZGdlc1RvRHJhdzogSUVkZ2VbXSA9IFtdO1xuICBsZXQgZmlyc3RFZGdlID0gZ2V0Rmlyc3RFZGdlT2ZFdmVudFBhdGgoZWRnZXMsIGV2ZW50KTtcblxuICBpZiAoZmlyc3RFZGdlICE9PSB1bmRlZmluZWQpIHtcbiAgICBsZXQgZG93bnN0cmVhbU5ldHdvcms6IElFZGdlW10gPSBbZmlyc3RFZGdlXTtcbiAgICBsZXQgdXBzdHJlYW1FZGdlcyA9IGdldFVwc3RyZWFtRWRnZXMoZmlyc3RFZGdlLCBlZGdlcyk7XG4gICAgaWYgKHVwc3RyZWFtRWRnZXMgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgIGlmICh1cHN0cmVhbUVkZ2VzLmxlbmd0aCAhPT0gMClcbiAgICAgIGZpbmRVcHN0cmVhbUVkZ2VzVG9EcmF3KHVwc3RyZWFtRWRnZXMsIGVkZ2VzVG9EcmF3LCBwb2ludHMsIGVkZ2VzKTtcbiAgICBmaW5kRG93bnN0cmVhbUVkZ2VzVG9EcmF3KGZpcnN0RWRnZSwgZWRnZXMsIGRvd25zdHJlYW1OZXR3b3JrLCBlZGdlc1RvRHJhdyk7XG4gIH1cblxuICBkcmF3TmV0d29yayhlZGdlc1RvRHJhdywgcG9pbnRzLCBkaXNwYXRjaCwgbWFwKTtcbn07XG5cbmV4cG9ydCBjb25zdCBwb2ludElzT2JzZXJ2YXRpb24gPSAoZXZlbnQ6IElFdmVudCwgcG9pbnQ6IElQb2ludCkgPT4ge1xuICByZXR1cm4gZXZlbnQub2JzZXJ2YXRpb25zLmZpbmQoKG9icykgPT4gb2JzLnBvaW50X2lkID09PSBwb2ludC5pZCk7XG59O1xuXG5leHBvcnQgY29uc3QgcG9pbnRJc1dXVFAgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICByZXR1cm4gcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50Jztcbn07XG4iXX0=
|
|
252
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRVdGlscy50cyJdLCJuYW1lcyI6WyJkcmF3TWFuaG9sZUljb24iLCJzb3VyY2VQb2ludCIsIm1hcCIsInBvaW50SWNvbiIsIkwiLCJpY29uIiwiaWNvblVybCIsIndoaXRlUG9pbnQiLCJpY29uU2l6ZSIsImljb25BbmNob3IiLCJtYW5ob2xlSWNvbiIsIm1hcmtlciIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwicmlzZU9uSG92ZXIiLCJhZGRUbyIsImJpbmRUb29sdGlwIiwiZ3JvdXAiLCJuYW1lIiwic2VjdG9yX25hbWUiLCJpZCIsImdldEZpcnN0RWRnZU9mRXZlbnRQYXRoIiwiZWRnZXMiLCJldmVudCIsInBhdGgiLCJ1bmRlZmluZWQiLCJmaW5kIiwiZWRnZSIsImVkZ2VfaWQiLCJmaW5kRWRnZXMiLCJuZXh0VXBzdHJlYW1MZXZlbElkcyIsImZpbHRlciIsImluY2x1ZGVzIiwidGFyZ2V0X3BvaW50X2lkIiwicmVjdXJzaXZlVXBzdHJlYW1TZWFyY2giLCJuZXh0TGV2ZWwiLCJtYXBBbGxFZGdlc05lc3RpbmciLCJhbGxVcHN0cmVhbUVkZ2VzIiwic291cmNlX3BvaW50X2lkIiwibGVuZ3RoIiwicHVzaCIsIm1hcHBlZCIsImZvckVhY2giLCJnZXRVcHN0cmVhbUVkZ2VzIiwiZmlyc3RFZGdlIiwiZmlyc3RVcHN0cmVhbUxldmVsIiwiZmluZFVwc3RyZWFtRWRnZXNUb0RyYXciLCJ1cHN0cmVhbUVkZ2VzIiwiZWRnZXNUb0RyYXciLCJwb2ludHMiLCJ1cHN0cmVhbUVkZ2UiLCJwb2ludCIsImNvbm5lY3Rpb25FZGdlIiwiZmluZERvd25zdHJlYW1FZGdlc1RvRHJhdyIsImRvd25zdHJlYW1OZXR3b3JrIiwicmVjdXJzaXZlRG93blN0cmVhbVNlYXJjaCIsImRvd25TdHJlYW1FZGdlIiwibGFzdERvd25TdHJlYW1FZGdlIiwibmV4dExldmVsRG93blN0cmVhbSIsImZpbmRFZGdlc0Zyb21FdmVudFBhdGhUb0RyYXciLCJwYXJ0IiwibWF0Y2hlZFBhcnQiLCJkcmF3TmV0d29yayIsImRpc3BhdGNoIiwibGF0bG5ncyIsInNoYXBlX2RhdGEiLCJkYXRhIiwibGF0IiwibG5nIiwicG9seWxpbmVCYWNrIiwicG9seWxpbmUiLCJjb2xvciIsIndlaWdodCIsIm9wYWNpdHkiLCJ0YWlsRGFzaCIsInBvbHlsaW5lRGVjb3JhdG9yIiwiX2xhdGxuZ3MiLCJwYXR0ZXJucyIsIm9mZnNldCIsInJlcGVhdCIsInN5bWJvbCIsIlN5bWJvbCIsImFycm93SGVhZCIsInBpeGVsU2l6ZSIsInBvbHlnb24iLCJwYXRoT3B0aW9ucyIsInN0cm9rZSIsInRhcmdldFBvaW50IiwiYmluZFBvcHVwIiwiZGlzdGFuY2UiLCJoYXNfZGV2aWNlIiwicG9pbnRJc1dXVFAiLCJicmluZ1RvRnJvbnQiLCJwb2x5bGluZUZyb250IiwiZmluZEFuZERyYXdFdmVudE5ldHdvcmtFZGdlcyIsInBvaW50SXNPYnNlcnZhdGlvbiIsIm9ic2VydmF0aW9ucyIsIm9icyIsInBvaW50X2lkIiwidHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBSUE7O0FBQ0E7O0FBRU8sSUFBTUEsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDQyxXQUFELEVBQXNCQyxHQUF0QixFQUFxQztBQUNsRSxNQUFJQyxTQUFTLEdBQUdDLGlCQUFFQyxJQUFGLENBQU87QUFDckJDLElBQUFBLE9BQU8sRUFBRUMsbUJBRFk7QUFFckJDLElBQUFBLFFBQVEsRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLENBRlc7QUFHckJDLElBQUFBLFVBQVUsRUFBRSxDQUFDLEdBQUQsRUFBTSxHQUFOO0FBSFMsR0FBUCxDQUFoQjs7QUFNQSxNQUFJQyxXQUFnQixHQUFHTixpQkFBRU8sTUFBRixDQUNyQixDQUFDVixXQUFXLENBQUNXLFFBQWIsRUFBdUJYLFdBQVcsQ0FBQ1ksU0FBbkMsQ0FEcUIsRUFFckI7QUFDRVIsSUFBQUEs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Q0MsUUFBSixLQUFpQi9DLEtBQUssQ0FBQy9CLEVBQWhDO0FBQUEsR0FBeEIsQ0FBUDtBQUNELENBRk07Ozs7QUFJQSxJQUFNdUUsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ3hDLEtBQUQsRUFBbUI7QUFDNUMsU0FBT0EsS0FBSyxDQUFDbEMsS0FBTixDQUFZa0YsSUFBWixLQUFxQixrQ0FBNUI7QUFDRCxDQUZNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdsZWFmbGV0LXBvbHlsaW5lZGVjb3JhdG9yJztcbmltcG9ydCBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IHdoaXRlUG9pbnQgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3doaXRlLXBvaW50LnBuZyc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBzZXRIb3ZlcmVkRWRnZVBhdGhzIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgY3JlYXRlQnViYmxlUG9pbnQgfSBmcm9tICcuLi9wb2ludHMvUG9pbnRVdGlscyc7XG5cbmV4cG9ydCBjb25zdCBkcmF3TWFuaG9sZUljb24gPSAoc291cmNlUG9pbnQ6IElQb2ludCwgbWFwOiBMLk1hcCkgPT4ge1xuICBsZXQgcG9pbnRJY29uID0gTC5pY29uKHtcbiAgICBpY29uVXJsOiB3aGl0ZVBvaW50LFxuICAgIGljb25TaXplOiBbOSwgOV0sXG4gICAgaWNvbkFuY2hvcjogWzQuNSwgNC41XSxcbiAgfSk7XG5cbiAgbGV0IG1hbmhvbGVJY29uOiBhbnkgPSBMLm1hcmtlcihcbiAgICBbc291cmNlUG9pbnQubGF0aXR1ZGUsIHNvdXJjZVBvaW50LmxvbmdpdHVkZV0sXG4gICAge1xuICAgICAgaWNvbjogcG9pbnRJY29uLFxuICAgICAgcmlzZU9uSG92ZXI6IHRydWUsXG4gICAgfSxcbiAgKS5hZGRUbyhtYXApO1xuICBtYW5ob2xlSWNvbi5iaW5kVG9vbHRpcChcbiAgICBgJHtzb3VyY2VQb2ludC5ncm91cC5uYW1lfSAoJHtzb3VyY2VQb2ludC5ncm91cC5zZWN0b3JfbmFtZX0pYCxcbiAgKTtcbiAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdF9pZCddID0gc291cmNlUG9pbnQuaWQ7XG4gIG1hbmhvbGVJY29uWydrYW5kb19vYmplY3QnXSA9ICdVcHN0cmVhbVBvaW50Jztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdEVkZ2VPZkV2ZW50UGF0aCA9IChlZGdlczogSUVkZ2VbXSwgZXZlbnQ6IElFdmVudCkgPT4ge1xuICBpZiAoZXZlbnQucGF0aFswXSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gIHJldHVybiBlZGdlcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBldmVudC5wYXRoWzBdLmVkZ2VfaWQpO1xufTtcblxuY29uc3QgZmluZEVkZ2VzID0gKGVkZ2VzLCBuZXh0VXBzdHJlYW1MZXZlbElkcykgPT4ge1xuICByZXR1cm4gZWRnZXMuZmlsdGVyKChlZGdlOiBJRWRnZSkgPT5cbiAgICBuZXh0VXBzdHJlYW1MZXZlbElkcy5pbmNsdWRlcyhlZGdlLnRhcmdldF9wb2ludF9pZCksXG4gICk7XG59O1xuXG5jb25zdCByZWN1cnNpdmVVcHN0cmVhbVNlYXJjaCA9IChcbiAgbmV4dExldmVsLFxuICBlZGdlcyxcbiAgbWFwQWxsRWRnZXNOZXN0aW5nLFxuICBhbGxVcHN0cmVhbUVkZ2VzLFxuKSA9PiB7XG4gIGxldCBuZXh0VXBzdHJlYW1MZXZlbElkcyA9IG5leHRMZXZlbC5tYXAoKGVkZ2UpID0+IGVkZ2Uuc291cmNlX3BvaW50X2lkKTtcblxuICBpZiAoZmluZEVkZ2VzKGVkZ2VzLCBuZXh0VXBzdHJlYW1MZXZlbElkcykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG1hcEFsbEVkZ2VzTmVzdGluZyhhbGxVcHN0cmVhbUVkZ2VzKTtcbiAgfSBlbHNlIHtcbiAgICBhbGxVcHN0cmVhbUVkZ2VzLnB1c2goZmluZEVkZ2VzKGVkZ2VzLCBuZXh0VXBzdHJlYW1MZXZlbElkcykpO1xuICAgIHJlY3Vyc2l2ZVVwc3RyZWFtU2VhcmNoKFxuICAgICAgZmluZEVkZ2VzKGVkZ2VzLCBuZXh0VXBzdHJlYW1MZXZlbElkcyksXG4gICAgICBlZGdlcyxcbiAgICAgIG1hcEFsbEVkZ2VzTmVzdGluZyxcbiAgICAgIGFsbFVwc3RyZWFtRWRnZXMsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBtYXBBbGxFZGdlc05lc3RpbmcoYWxsVXBzdHJlYW1FZGdlcyk7XG59O1xuXG5jb25zdCBtYXBBbGxFZGdlc05lc3RpbmcgPSAoYWxsVXBzdHJlYW1FZGdlcykgPT4ge1xuICBsZXQgbWFwcGVkOiBhbnlbXSA9IFtdO1xuICBhbGxVcHN0cmVhbUVkZ2VzLmZvckVhY2goKGVkZ2VzKSA9PiB7XG4gICAgZWRnZXMuZm9yRWFjaCgoZWRnZSkgPT4ge1xuICAgICAgbWFwcGVkLnB1c2goZWRnZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiBtYXBwZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXBzdHJlYW1FZGdlcyA9IChmaXJzdEVkZ2U6IElFZGdlLCBlZGdlczogSUVkZ2VbXSkgPT4ge1xuICBsZXQgYWxsVXBzdHJlYW1FZGdlczogYW55W10gPSBbXTtcbiAgbGV0IGZpcnN0VXBzdHJlYW1MZXZlbDogSUVkZ2VbXSA9IGVkZ2VzLmZpbHRlcihcbiAgICAoZWRnZSkgPT4gZWRnZS50YXJnZXRfcG9pbnRfaWQgPT09IGZpcnN0RWRnZSEuc291cmNlX3BvaW50X2lkLFxuICApO1xuXG4gIHJldHVybiByZWN1cnNpdmVVcHN0cmVhbVNlYXJjaChcbiAgICBmaXJzdFVwc3RyZWFtTGV2ZWwsXG4gICAgZWRnZXMsXG4gICAgbWFwQWxsRWRnZXNOZXN0aW5nLFxuICAgIGFsbFVwc3RyZWFtRWRnZXMsXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZFVwc3RyZWFtRWRnZXNUb0RyYXcgPSAoXG4gIHVwc3RyZWFtRWRnZXM6IElFZGdlW10sXG4gIGVkZ2VzVG9EcmF3OiBJRWRnZVtdLFxuICBwb2ludHM6IElQb2ludFtdLFxuICBlZGdlczogSUVkZ2VbXSxcbikgPT4ge1xuICB1cHN0cmVhbUVkZ2VzLmZvckVhY2goKHVwc3RyZWFtRWRnZSkgPT4ge1xuICAgIGlmICh1cHN0cmVhbUVkZ2UpIHtcbiAgICAgIGxldCBzb3VyY2VQb2ludCA9IHBvaW50cy5maW5kKFxuICAgICAgICAocG9pbnQpID0+IHBvaW50LmlkID09PSB1cHN0cmVhbUVkZ2UhLnNvdXJjZV9wb2ludF9pZCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChzb3VyY2VQb2ludCkgZWRnZXNUb0RyYXcucHVzaCh1cHN0cmVhbUVkZ2UpO1xuICAgIH1cbiAgfSk7XG5cbiAgbGV0IGNvbm5lY3Rpb25FZGdlID0gZWRnZXMuZmluZChcbiAgICAoZWRnZSkgPT4gZWRnZS5zb3VyY2VfcG9pbnRfaWQgPT09IHVwc3RyZWFtRWRnZXNbMF0udGFyZ2V0X3BvaW50X2lkLFxuICApO1xuICBpZiAoY29ubmVjdGlvbkVkZ2UgIT09IHVuZGVmaW5lZCkgZWRnZXNUb0RyYXcucHVzaChjb25uZWN0aW9uRWRnZSk7XG4gIHJldHVybiBlZGdlc1RvRHJhdztcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kRG93bnN0cmVhbUVkZ2VzVG9EcmF3ID0gKFxuICBmaXJzdEVkZ2U6IElFZGdlLFxuICBlZGdlczogSUVkZ2VbXSxcbiAgZG93bnN0cmVhbU5ldHdvcmssXG4gIGVkZ2VzVG9EcmF3LFxuKSA9PiB7XG4gIHJlY3Vyc2l2ZURvd25TdHJlYW1TZWFyY2goZG93bnN0cmVhbU5ldHdvcmssIGVkZ2VzKS5mb3JFYWNoKFxuICAgIChkb3duU3RyZWFtRWRnZSkgPT4ge1xuICAgICAgZWRnZXNUb0RyYXcucHVzaChkb3duU3RyZWFtRWRnZSk7XG4gICAgfSxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZWN1cnNpdmVEb3duU3RyZWFtU2VhcmNoID0gKFxuICBkb3duc3RyZWFtTmV0d29yazogSUVkZ2VbXSxcbiAgZWRnZXM6IElFZGdlW10sXG4pID0+IHtcbiAgbGV0IGxhc3REb3duU3RyZWFtRWRnZSA9IGRvd25zdHJlYW1OZXR3b3JrW2Rvd25zdHJlYW1OZXR3b3JrLmxlbmd0aCAtIDFdO1xuXG4gIGlmIChuZXh0TGV2ZWxEb3duU3RyZWFtKGxhc3REb3duU3RyZWFtRWRnZSwgZWRnZXMpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBkb3duc3RyZWFtTmV0d29yaztcbiAgfSBlbHNlIHtcbiAgICBuZXh0TGV2ZWxEb3duU3RyZWFtKGxhc3REb3duU3RyZWFtRWRnZSwgZWRnZXMpLmZvckVhY2goKGVkZ2UpID0+IHtcbiAgICAgIGRvd25zdHJlYW1OZXR3b3JrLnB1c2goZWRnZSk7XG4gICAgICByZWN1cnNpdmVEb3duU3RyZWFtU2VhcmNoKGRvd25zdHJlYW1OZXR3b3JrLCBlZGdlcyk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZG93bnN0cmVhbU5ldHdvcms7XG59O1xuXG5leHBvcnQgY29uc3QgbmV4dExldmVsRG93blN0cmVhbSA9IChmaXJzdEVkZ2U6IElFZGdlLCBlZGdlczogSUVkZ2VbXSkgPT4ge1xuICByZXR1cm4gZWRnZXMuZmlsdGVyKFxuICAgIChlZGdlKSA9PiBlZGdlLnNvdXJjZV9wb2ludF9pZCA9PT0gZmlyc3RFZGdlLnRhcmdldF9wb2ludF9pZCxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kRWRnZXNGcm9tRXZlbnRQYXRoVG9EcmF3ID0gKFxuICBlZGdlc1RvRHJhdzogSUVkZ2VbXSxcbiAgZXZlbnQ6IElFdmVudCxcbiAgZWRnZXM6IElFZGdlW10sXG4pID0+IHtcbiAgZXZlbnQucGF0aC5mb3JFYWNoKChwYXJ0KSA9PiB7XG4gICAgbGV0IG1hdGNoZWRQYXJ0ID0gZWRnZXMuZmluZCgoZWRnZSkgPT4gZWRnZS5pZCA9PT0gcGFydC5lZGdlX2lkKTtcbiAgICBpZiAobWF0Y2hlZFBhcnQgIT09IHVuZGVmaW5lZCkgZWRnZXNUb0RyYXcucHVzaChtYXRjaGVkUGFydCk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGRyYXdOZXR3b3JrID0gKFxuICBlZGdlczogSUVkZ2VbXSxcbiAgcG9pbnRzOiBJUG9pbnRbXSxcbiAgZGlzcGF0Y2gsXG4gIG1hcCxcbikgPT4ge1xuICBsZXQgbGF0bG5nczogYW55ID0gW107XG4gIGVkZ2VzLmZvckVhY2goKGVkZ2UpID0+IHtcbiAgICBlZGdlLnNoYXBlX2RhdGEuZm9yRWFjaCgoZGF0YTogYW55KSA9PiB7XG4gICAgICBsYXRsbmdzLnB1c2goW2RhdGEubGF0LCBkYXRhLmxuZ10pO1xuICAgIH0pO1xuXG4gICAgbGV0IHBvbHlsaW5lQmFjazogYW55ID0gTC5wb2x5bGluZShsYXRsbmdzLCB7XG4gICAgICBjb2xvcjogJ3JnYigyMjcsMjI3LDIyNyknLFxuICAgICAgd2VpZ2h0OiA2LFxuICAgICAgb3BhY2l0eTogMSxcbiAgICB9KS5hZGRUbyhtYXApO1xuXG4gICAgbGV0IHRhaWxEYXNoID0gTC5wb2x5bGluZURlY29yYXRvcihwb2x5bGluZUJhY2suX2xhdGxuZ3MsIHtcbiAgICAgIHBhdHRlcm5zOiBbXG4gICAgICAgIC8vIGRlZmluZXMgYSBwYXR0ZXJuIG9mIDEwcHgtd2lkZSBkYXNoZXMsIHJlcGVhdGVkIGV2ZXJ5IDIwcHggb24gdGhlIGxpbmVcbiAgICAgICAge1xuICAgICAgICAgIG9mZnNldDogMTUsXG4gICAgICAgICAgcmVwZWF0OiAyNSxcbiAgICAgICAgICBzeW1ib2w6IEwuU3ltYm9sLmFycm93SGVhZCh7XG4gICAgICAgICAgICBwaXhlbFNpemU6IDMsXG4gICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgIHBhdGhPcHRpb25zOiB7XG4gICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDAsMCwwKScsXG4gICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgdGFpbERhc2hbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICBpZiAocG9pbnRzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgbGV0IHNvdXJjZVBvaW50ID0gcG9pbnRzLmZpbmQoXG4gICAgICAgIChwb2ludDogSVBvaW50KSA9PiBwb2ludC5pZCA9PT0gZWRnZS5zb3VyY2VfcG9pbnRfaWQsXG4gICAgICApO1xuICAgICAgbGV0IHRhcmdldFBvaW50ID0gcG9pbnRzLmZpbmQoXG4gICAgICAgIChwb2ludDogSVBvaW50KSA9PiBwb2ludC5pZCA9PT0gZWRnZS50YXJnZXRfcG9pbnRfaWQsXG4gICAgICApO1xuICAgICAgaWYgKHNvdXJjZVBvaW50ICE9PSB1bmRlZmluZWQgJiYgdGFyZ2V0UG9pbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwb2x5bGluZUJhY2suYmluZFBvcHVwKGBFZGdlIElEOiAke2VkZ2UuaWR9LDxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU291cmNlIHBvaW50OiAke3NvdXJjZVBvaW50Lmdyb3VwLm5hbWV9LDxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0IHBvaW50OiAke3RhcmdldFBvaW50Lmdyb3VwLm5hbWV9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXN0YW5jZTogJHtlZGdlLmRpc3RhbmNlfWApO1xuICAgICAgfVxuXG4gICAgICBpZiAoc291cmNlUG9pbnQpIGRyYXdNYW5ob2xlSWNvbihzb3VyY2VQb2ludCwgbWFwKTtcbiAgICAgIGlmICh0YXJnZXRQb2ludCkgZHJhd01hbmhvbGVJY29uKHRhcmdldFBvaW50LCBtYXApO1xuICAgICAgaWYgKHNvdXJjZVBvaW50ICYmIChzb3VyY2VQb2ludC5oYXNfZGV2aWNlIHx8IHBvaW50SXNXV1RQKHNvdXJjZVBvaW50KSkpXG4gICAgICAgIGNyZWF0ZUJ1YmJsZVBvaW50KFxuICAgICAgICAgIFtzb3VyY2VQb2ludC5sYXRpdHVkZSwgc291cmNlUG9pbnQubG9uZ2l0dWRlXSxcbiAgICAgICAgICBzb3VyY2VQb2ludCxcbiAgICAgICAgICBtYXAsXG4gICAgICAgICk7XG4gICAgICBpZiAodGFyZ2V0UG9pbnQgJiYgKHRhcmdldFBvaW50Lmhhc19kZXZpY2UgfHwgcG9pbnRJc1dXVFAodGFyZ2V0UG9pbnQpKSlcbiAgICAgICAgY3JlYXRlQnViYmxlUG9pbnQoXG4gICAgICAgICAgW3RhcmdldFBvaW50LmxhdGl0dWRlLCB0YXJnZXRQb2ludC5sb25naXR1ZGVdLFxuICAgICAgICAgIHRhcmdldFBvaW50LFxuICAgICAgICAgIG1hcCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwb2x5bGluZUJhY2tbJ2thbmRvX29iamVjdF9pZCddID0gZWRnZS5pZDtcbiAgICBwb2x5bGluZUJhY2tbJ2thbmRvX29iamVjdCddID0gJ0hvdmVyZWRFZGdlJztcblxuICAgIHBvbHlsaW5lQmFjay5icmluZ1RvRnJvbnQoKTtcbiAgICB0YWlsRGFzaC5icmluZ1RvRnJvbnQoKTtcblxuICAgIGxldCBwb2x5bGluZUZyb250OiBhbnkgPSBMLnBvbHlsaW5lKGxhdGxuZ3MsIHtcbiAgICAgIGNvbG9yOiAncmdiKDI5LDI5LDI5KScsXG4gICAgICB3ZWlnaHQ6IDEsXG4gICAgICBvcGFjaXR5OiAxLFxuICAgIH0pLmFkZFRvKG1hcCk7XG5cbiAgICBwb2x5bGluZUZyb250WydrYW5kb19vYmplY3RfaWQnXSA9IGVkZ2UuaWQ7XG4gICAgcG9seWxpbmVGcm9udFsna2FuZG9fb2JqZWN0J10gPSAnSG92ZXJlZEVkZ2VGcm9udCc7XG5cbiAgICBwb2x5bGluZUZyb250LmJyaW5nVG9Gcm9udCgpO1xuICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFZGdlUGF0aHMoW3BvbHlsaW5lQmFjaywgcG9seWxpbmVGcm9udF0pKTtcbiAgICBsYXRsbmdzID0gW107XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRBbmREcmF3RXZlbnROZXR3b3JrRWRnZXMgPSAoXG4gIGVkZ2VzOiBJRWRnZVtdLFxuICBldmVudDogSUV2ZW50LFxuICBwb2ludHM6IElQb2ludFtdLFxuICBkaXNwYXRjaCxcbiAgbWFwLFxuKSA9PiB7XG4gIGxldCBlZGdlc1RvRHJhdzogSUVkZ2VbXSA9IFtdO1xuICBsZXQgZmlyc3RFZGdlID0gZ2V0Rmlyc3RFZGdlT2ZFdmVudFBhdGgoZWRnZXMsIGV2ZW50KTtcblxuICBpZiAoZmlyc3RFZGdlICE9PSB1bmRlZmluZWQpIHtcbiAgICBsZXQgZG93bnN0cmVhbU5ldHdvcms6IElFZGdlW10gPSBbZmlyc3RFZGdlXTtcbiAgICBsZXQgdXBzdHJlYW1FZGdlcyA9IGdldFVwc3RyZWFtRWRnZXMoZmlyc3RFZGdlLCBlZGdlcyk7XG4gICAgaWYgKHVwc3RyZWFtRWRnZXMgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgIGlmICh1cHN0cmVhbUVkZ2VzLmxlbmd0aCAhPT0gMClcbiAgICAgIGZpbmRVcHN0cmVhbUVkZ2VzVG9EcmF3KHVwc3RyZWFtRWRnZXMsIGVkZ2VzVG9EcmF3LCBwb2ludHMsIGVkZ2VzKTtcbiAgICBmaW5kRG93bnN0cmVhbUVkZ2VzVG9EcmF3KGZpcnN0RWRnZSwgZWRnZXMsIGRvd25zdHJlYW1OZXR3b3JrLCBlZGdlc1RvRHJhdyk7XG4gIH1cblxuICBkcmF3TmV0d29yayhlZGdlc1RvRHJhdywgcG9pbnRzLCBkaXNwYXRjaCwgbWFwKTtcbn07XG5cbmV4cG9ydCBjb25zdCBwb2ludElzT2JzZXJ2YXRpb24gPSAoZXZlbnQ6IElFdmVudCwgcG9pbnQ6IElQb2ludCkgPT4ge1xuICByZXR1cm4gZXZlbnQub2JzZXJ2YXRpb25zLmZpbmQoKG9icykgPT4gb2JzLnBvaW50X2lkID09PSBwb2ludC5pZCk7XG59O1xuXG5leHBvcnQgY29uc3QgcG9pbnRJc1dXVFAgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICByZXR1cm4gcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50Jztcbn07XG4iXX0=
|
|
@@ -32,7 +32,7 @@ var NetworkForSpecificEvent = function NetworkForSpecificEvent(_ref) {
|
|
|
32
32
|
var layers = map._layers;
|
|
33
33
|
|
|
34
34
|
for (var property in layers) {
|
|
35
|
-
if (layers[property].kando_object !== undefined && layers[property].kando_object === 'UpstreamPoint') {
|
|
35
|
+
if (layers[property].kando_object !== undefined && (layers[property].kando_object === 'UpstreamPoint' || layers[property].kando_object === 'Point')) {
|
|
36
36
|
map.removeLayer(layers[property]);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -48,4 +48,4 @@ var NetworkForSpecificEvent = function NetworkForSpecificEvent(_ref) {
|
|
|
48
48
|
};
|
|
49
49
|
|
|
50
50
|
exports.NetworkForSpecificEvent = NetworkForSpecificEvent;
|
|
51
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvTmV0d29ya0ZvclNwZWNpZmljRXZlbnQudHN4Il0sIm5hbWVzIjpbIk5ldHdvcmtGb3JTcGVjaWZpY0V2ZW50IiwiZXZlbnQiLCJlZGdlcyIsInBvaW50cyIsIm1hcCIsImRpc3BhdGNoIiwiY2xlYW51cExvZ2ljIiwibGF5ZXJzIiwiX2xheWVycyIsInByb3BlcnR5Iiwia2FuZG9fb2JqZWN0IiwidW5kZWZpbmVkIiwicmVtb3ZlTGF5ZXIiLCJjbGVhbnVwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFJQTs7Ozs7O0FBUkE7QUFpQk8sSUFBTUEsdUJBQXlDLEdBQUcsU0FBNUNBLHVCQUE0QyxPQUtuRDtBQUFBLE1BSkpDLEtBSUksUUFKSkEsS0FJSTtBQUFBLE1BSEpDLEtBR0ksUUFISkEsS0FHSTtBQUFBLE1BRkpDLE1BRUksUUFGSkEsTUFFSTtBQUFBLE1BREpDLEdBQ0ksUUFESkEsR0FDSTtBQUNKLE1BQU1DLFFBQVEsR0FBRyw4QkFBakI7O0FBQ0EsTUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQWUsR0FBTTtBQUN6QkQsSUFBQUEsUUFBUSxDQUFDLGtDQUFvQixFQUFwQixDQUFELENBQVI7QUFDQSxRQUFJRSxNQUFNLEdBQUdILEdBQUcsQ0FBQ0ksT0FBakI7O0FBQ0EsU0FBSyxJQUFNQyxRQUFYLElBQXVCRixNQUF2QixFQUErQjtBQUM3QixVQUNFQSxNQUFNLENBQUNFLFFBQUQsQ0FBTixDQUFpQkMsWUFBakIsS0FBa0NDLFNBQWxDLEtBQ0NKLE1BQU0sQ0FBQ0UsUUFBRCxDQUFOLENBQWlCQyxZQUFqQixLQUFrQyxlQUFsQyxJQUNDSCxNQUFNLENBQUNFLFFBQUQsQ0FBTixDQUFpQkMsWUFBakIsS0FBa0MsT0FGcEMsQ0FERixFQUlFO0FBQ0FOLFFBQUFBLEdBQUcsQ0FBQ1EsV0FBSixDQUFnQkwsTUFBTSxDQUFDRSxRQUFELENBQXRCO0FBQ0Q7QUFDRjtBQUNGLEdBWkQ7O0FBY0Esd0JBQVUsWUFBTTtBQUNkLGtEQUE2QlAsS0FBN0IsRUFBb0NELEtBQXBDLEVBQTJDRSxNQUEzQyxFQUFtREUsUUFBbkQsRUFBNkRELEdBQTdEO0FBRUEsV0FBTyxTQUFTUyxPQUFULEdBQW1CO0FBQ3hCUCxNQUFBQSxZQUFZO0FBQ2IsS0FGRDtBQUdELEdBTkQsRUFNRyxDQUFDTCxLQUFELENBTkg7QUFRQSxzQkFBTywyREFBUDtBQUNELENBOUJNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgTWFwIGFzIExlYWZsZXRNYXAgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHNldEhvdmVyZWRFZGdlUGF0aHMgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IGZpbmRBbmREcmF3RXZlbnROZXR3b3JrRWRnZXMgfSBmcm9tICcuL0V2ZW50VXRpbHMnO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgZXZlbnQ6IElFdmVudDtcbiAgZWRnZXM6IElFZGdlW107XG4gIHBvaW50czogSVBvaW50W107XG4gIG1hcDogTGVhZmxldE1hcCB8IGFueTtcbn07XG5cbmV4cG9ydCBjb25zdCBOZXR3b3JrRm9yU3BlY2lmaWNFdmVudDogUmVhY3QuRkM8SVByb3BzPiA9ICh7XG4gIGV2ZW50LFxuICBlZGdlcyxcbiAgcG9pbnRzLFxuICBtYXAsXG59KSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgY2xlYW51cExvZ2ljID0gKCkgPT4ge1xuICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFZGdlUGF0aHMoW10pKTtcbiAgICBsZXQgbGF5ZXJzID0gbWFwLl9sYXllcnM7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBsYXllcnMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAobGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdVcHN0cmVhbVBvaW50JyB8fFxuICAgICAgICAgIGxheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0ID09PSAnUG9pbnQnKVxuICAgICAgKSB7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihsYXllcnNbcHJvcGVydHldKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmaW5kQW5kRHJhd0V2ZW50TmV0d29ya0VkZ2VzKGVkZ2VzLCBldmVudCwgcG9pbnRzLCBkaXNwYXRjaCwgbWFwKTtcblxuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgY2xlYW51cExvZ2ljKCk7XG4gICAgfTtcbiAgfSwgW2V2ZW50XSk7XG5cbiAgcmV0dXJuIDw+PC8+O1xufTtcbiJdfQ==
|
package/lib/macros/getVersion.js
CHANGED
|
@@ -330,7 +330,9 @@ var EventsList = function EventsList(_ref) {
|
|
|
330
330
|
dispatch((0, _actions.fetchEvents)(waterAuthorityId, getKQLValuesFromURL() || 'DEFAULT'));
|
|
331
331
|
}, [global_data.waterAuthorityId, global_data.eventFilterParam]);
|
|
332
332
|
(0, _react.useEffect)(function () {
|
|
333
|
-
|
|
333
|
+
if (!events_data.isFetching && !edges_data.isFetching && !points_data.isFetching && !areas_data.isFetching) {
|
|
334
|
+
setFocusedEventIfFoundInParams();
|
|
335
|
+
}
|
|
334
336
|
}, [events_data.isFetching, edges_data.isFetching, points_data.isFetching, areas_data.isFetching, global_data.eventFilterParam]);
|
|
335
337
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
336
338
|
className: 'sidenav ' + (sidenavExpanded ? '' : 'sidenav--collapsed')
|
|
@@ -427,4 +429,4 @@ var connector = (0, _reactRedux.connect)(mapStateToProps);
|
|
|
427
429
|
var _default = connector(EventsList);
|
|
428
430
|
|
|
429
431
|
exports.default = _default;
|
|
430
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9FdmVudHNMaXN0LnRzeCJdLCJuYW1lcyI6WyJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJlZGdlc19kYXRhIiwicG9pbnRzX2RhdGEiLCJhcmVhc19kYXRhIiwibmF2X2NvbnRleHRfZGF0YSIsIkV2ZW50c0xpc3QiLCJzaWRlbmF2RXhwYW5kZWQiLCJkaXNwYXRjaCIsIml0ZW1zIiwiaXNGZXRjaGluZyIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsImhvdmVyZWRFdmVudFBhdGhzIiwiaG92ZXJlZEVkZ2VQYXRocyIsIndhdGVyQXV0aG9yaXR5SWQiLCJtYXAiLCJmaWx0ZXJQb3B1cE9wZW4iLCJzZXRGaWx0ZXJQb3B1cE9wZW4iLCJtZXNzYWdlcyIsIm1lc3NhZ2UiLCJldmVudF9pZCIsImV2ZW50X2lkcyIsImV4Y2VwdGlvbkFsZXJ0Iiwic2V0RXhjZXB0aW9uQWxlcnQiLCJsYXN0VmlzaXRlZCIsInVzZVF1ZXJ5IiwiVVJMU2VhcmNoUGFyYW1zIiwic2VhcmNoIiwiaGlzdG9yeSIsInF1ZXJ5IiwiZ2V0S1FMVmFsdWVzRnJvbVVSTCIsImdldCIsImdldEV2ZW50SWRGcm9tVVJMIiwibG9hZGVyIiwibGVuZ3RoIiwibmV3QXJlYXMiLCJoYW5kbGVFeHBhbnNpb25Ub2dnbGUiLCJhcHBseURlZmF1bHRGaWx0ZXIiLCJwdXNoIiwibmF2Q29udGV4dCIsIm5hbWUiLCJsb2NhbGUiLCJ2YWxpZGF0ZUV2ZW50IiwiZXZlbnQiLCJpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXMiLCJvYnNlcnZhdGlvbnMiLCJmb3JFYWNoIiwib2JzZXJ2YXRpb24iLCJwb2ludF9pc19yb290IiwiZWRnZSIsImZpbmQiLCJzb3VyY2VfcG9pbnRfaWQiLCJwb2ludF9pZCIsInVuZGVmaW5lZCIsInBvaW50X25hbWUiLCJpbmRleCIsImZpbmRJbmRleCIsIm1zZyIsImlkIiwiaTE4biIsInQiLCJpbnZhbGlkUGF0aE1lc3NhZ2VzIiwicGF0aCIsImVkZ2VfaWQiLCJjb25zb2xlIiwiZXJyb3IiLCJsYXN0X29ic2VydmF0aW9uX2lkIiwibGFzdE9ic2VydmF0aW9uUG9pbnQiLCJoYW5kbGVFdmVudEl0ZW1DbGljayIsInJlZiIsIm9uTW91c2VMZWF2ZUV2ZW50Iiwic2V0VGltZW91dCIsImV2ZW50RmlsdGVyUGFyYW0iLCJvbk1vdXNlRW50ZXJFdmVudCIsInJlbW92ZUxheWVyIiwibGF5ZXJzIiwiX2xheWVycyIsInByb3BlcnR5Iiwia2FuZG9fb2JqZWN0IiwiaW5jbHVkZXMiLCJzZXRGb2N1c2VkRXZlbnRJZkZvdW5kSW5QYXJhbXMiLCJlIiwicGFyc2VJbnQiLCJ2YWxpZEV2ZW50IiwidG9TdHJpbmciLCJ0cmlnZ2VyU29ydCIsInNvcnQiLCJhY3RpdmVGaWx0ZXIiLCJLUUwiLCJVUkwiLCJjYWxjRXZlbnRzUmVhbEFtb3VudCIsImV2ZW50c0NvdW50IiwiZXZlbnRzX2NvdW50IiwibW9yZUluZm8iLCJhY3RpdmUiLCJmYUNhcmV0TGVmdCIsImZhQ2FyZXRSaWdodCIsImZhQXJyb3dMZWZ0IiwiTGVmdEFycm93SWNvbiIsIk5vRXZlbnRzSW1hZ2UiLCJjb25uZWN0b3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUtBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7OztBQUlBOztBQUVBOztBQUNBOztBQVFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUEvQkE7QUFpQ0EsU0FBU0EsZUFBVCxDQUF5QkMsS0FBekIsRUFBMkM7QUFDekMsTUFDRUMsV0FERixHQU9JRCxLQVBKLENBQ0VDLFdBREY7QUFBQSxNQUVFQyxXQUZGLEdBT0lGLEtBUEosQ0FFRUUsV0FGRjtBQUFBLE1BR0VDLFVBSEYsR0FPSUgsS0FQSixDQUdFRyxVQUhGO0FBQUEsTUFJRUMsV0FK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LENBTk4sRUFrQkdwRCxLQUFLLENBQUMwQixNQUFOLEtBQWlCLENBQWpCLElBQ0MsQ0FBQy9CLFVBQVUsQ0FBQ00sVUFEYixJQUVDLENBQUNQLFdBQVcsQ0FBQ08sVUFGZCxJQUdDLENBQUNSLFVBQVUsQ0FBQ1EsVUFIYixpQkFJRztBQUFJLElBQUEsU0FBUyxFQUFDO0FBQWQsS0FDR0QsS0FBSyxDQUFDTyxHQUFOLENBQVUsVUFBQzRCLEtBQUQ7QUFBQSx3QkFDVDtBQUFJLE1BQUEsR0FBRyxFQUFFQSxLQUFLLENBQUNlLEVBQWY7QUFBbUIsTUFBQSxTQUFTLEVBQUMsT0FBN0I7QUFBcUMsdUJBQWVmLEtBQUssQ0FBQ2U7QUFBMUQsb0JBQ0UsNkJBQUMsd0JBQUQ7QUFDRSxNQUFBLEtBQUssRUFBRWYsS0FEVDtBQUVFLE1BQUEsV0FBVyxFQUFFeUIsb0JBRmY7QUFHRSxNQUFBLGlCQUFpQixFQUFFSyxpQkFIckI7QUFJRSxNQUFBLGlCQUFpQixFQUFFSCxpQkFKckI7QUFLRSxNQUFBLGFBQWEsRUFBRTVCLGFBTGpCO0FBTUUsTUFBQSxjQUFjLEVBQUVwQjtBQU5sQixNQURGLENBRFM7QUFBQSxHQUFWLENBREgsQ0F0Qk4sQ0F4RkYsQ0FERjtBQWlJRCxDQTFiRDs7QUE0YkEsSUFBTThFLFNBQVMsR0FBRyx5QkFBUXZHLGVBQVIsQ0FBbEI7O2VBQ2V1RyxTQUFTLENBQUMvRixVQUFELEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBldGMvbm8tY29tbWVudGVkLW91dC1jb2RlICovXG5pbXBvcnQge1xuICBmYUFycm93TGVmdCxcbiAgZmFDYXJldExlZnQsXG4gIGZhQ2FyZXRSaWdodCxcbn0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lSWNvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9yZWFjdC1mb250YXdlc29tZSc7XG5pbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0LCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29ubmVjdCwgQ29ubmVjdGVkUHJvcHMsIHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgTGluaywgdXNlSGlzdG9yeSwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMZWZ0QXJyb3dJY29uIGZyb20gJ3NyYy9hc3NldHMvaWNvbnMvYXJyb3ctbGVmdC5zdmcnO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgRmlsdGVySWNvbiB9IGZyb20gJ3NyYy9hc3NldHMvaWNvbnMvZnVubmVsLnN2Zyc7XG5pbXBvcnQgTm9FdmVudHNJbWFnZSBmcm9tICdzcmMvYXNzZXRzL25vX2V2ZW50cy5zdmcnO1xuaW1wb3J0IHsgU2V2ZXJlRXZlbnQgfSBmcm9tICdzcmMvY29tcG9uZW50cy9TZXZlcmVFdmVudC9TZXZlcmVFdmVudCc7XG5pbXBvcnQgeyBJQXBwU3RhdGUgfSBmcm9tICdzcmMvbW9kZWxzL0lBcHBTdGF0ZSc7XG5pbXBvcnQgeyB1c2VMYXN0VmlzaXRlZCB9IGZyb20gJ3NyYy9wcm92aWRlcnMvVXJsSGlzdG9yeSc7XG5pbXBvcnQge1xuICBmZXRjaEV2ZW50cyxcbiAgc2V0Rm9jdXNlZEV2ZW50LFxuICBzZXRIb3ZlcmVkRWRnZVBhdGhzLFxuICBzZXRIb3ZlcmVkRXZlbnQsXG4gIHNldEhvdmVyZWRFdmVudFBhdGhzLFxufSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IHNldEV2ZW50RmlsdGVyUGFyYW0sIHNpZGVOYXZFeHBhbmRlZCB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgYnVpbGRLUUxRdWVyeSB9IGZyb20gJ3NyYy91dGlsaXRpZXMva3FsJztcbmltcG9ydCAnLi4vRXZlbnRzU3R5bGUuc2Nzcyc7XG5pbXBvcnQgRXZlbnRJbmZvIGZyb20gJy4uL2V2ZW50X2luZm8vRXZlbnRJbmZvJztcbmltcG9ydCBNb3JlSW5mbyBmcm9tICcuLi9Nb3JlSW5mbyc7XG5pbXBvcnQgRmlsdGVyQ29udGFpbmVyIGZyb20gJy4vRmlsdGVyL0ZpbHRlckNvbnRhaW5lcic7XG5pbXBvcnQgU29ydCBmcm9tICcuL1NvcnQnO1xuXG5mdW5jdGlvbiBtYXBTdGF0ZVRvUHJvcHMoc3RhdGU6IElBcHBTdGF0ZSkge1xuICBjb25zdCB7XG4gICAgZXZlbnRzX2RhdGEsXG4gICAgZ2xvYmFsX2RhdGEsXG4gICAgZWRnZXNfZGF0YSxcbiAgICBwb2ludHNfZGF0YSxcbiAgICBhcmVhc19kYXRhLFxuICAgIG5hdl9jb250ZXh0X2RhdGEsXG4gIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGV2ZW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICAgIGVkZ2VzX2RhdGEsXG4gICAgcG9pbnRzX2RhdGEsXG4gICAgYXJlYXNfZGF0YSxcbiAgICBuYXZfY29udGV4dF9kYXRhLFxuICB9O1xufVxuXG50eXBlIElQcm9wcyA9IENvbm5lY3RlZFByb3BzPHR5cGVvZiBjb25uZWN0b3I+ICYge1xuICBzaWRlbmF2RXhwYW5kZWQ6IGJvb2xlYW47XG59O1xuXG5jb25zdCBFdmVudHNMaXN0OiBSZWFjdC5GQzxJUHJvcHM+ID0gKHtcbiAgYXJlYXNfZGF0YSxcbiAgcG9pbnRzX2RhdGEsXG4gIGVkZ2VzX2RhdGEsXG4gIGdsb2JhbF9kYXRhLFxuICBzaWRlbmF2RXhwYW5kZWQsXG4gIGV2ZW50c19kYXRhLFxuICBuYXZfY29udGV4dF9kYXRhLFxufSkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IHtcbiAgICBpdGVtcyxcbiAgICBpc0ZldGNoaW5nLFxuICAgIGZvY3VzZWRFdmVudCxcbiAgICBob3ZlcmVkRXZlbnQsXG4gICAgaG92ZXJlZEV2ZW50UGF0aHMsXG4gICAgaG92ZXJlZEVkZ2VQYXRocyxcbiAgfSA9IGV2ZW50c19kYXRhO1xuICBjb25zdCB7IHdhdGVyQXV0aG9yaXR5SWQsIG1hcCB9ID0gZ2xvYmFsX2RhdGE7XG4gIGNvbnN0IFtmaWx0ZXJQb3B1cE9wZW4sIHNldEZpbHRlclBvcHVwT3Blbl0gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgW2V4Y2VwdGlvbkFsZXJ0LCBzZXRFeGNlcHRpb25BbGVydF0gPSB1c2VTdGF0ZTx7XG4gICAgbWVzc2FnZXM6IHsgbWVzc2FnZTogYW55OyBldmVudF9pZDogbnVtYmVyIH1bXTtcbiAgICBldmVudF9pZHM6IG51bWJlcltdO1xuICB9Pih7IG1lc3NhZ2VzOiBbeyBtZXNzYWdlOiAnJywgZXZlbnRfaWQ6IDAgfV0sIGV2ZW50X2lkczogW10gfSk7XG4gIGNvbnN0IGxhc3RWaXNpdGVkID0gdXNlTGFzdFZpc2l0ZWQoKTtcblxuICBjb25zdCB1c2VRdWVyeSA9ICgpID0+IHtcbiAgICByZXR1cm4gbmV3IFVSTFNlYXJjaFBhcmFtcyh1c2VMb2NhdGlvbigpLnNlYXJjaCk7XG4gIH07XG4gIGNvbnN0IGhpc3RvcnkgPSB1c2VIaXN0b3J5KCk7XG4gIGNvbnN0IHF1ZXJ5ID0gdXNlUXVlcnkoKTtcbiAgY29uc3QgZ2V0S1FMVmFsdWVzRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCd2YWx1ZXNGcm9tS1FMJyk7XG4gIH07XG4gIGNvbnN0IGdldEV2ZW50SWRGcm9tVVJMID0gKCkgPT4ge1xuICAgIHJldHVybiBxdWVyeS5nZXQoJ2V2ZW50SWQnKTtcbiAgfTtcblxuICBjb25zdCBsb2FkZXIgPSAoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgKGlzRmV0Y2hpbmcgJiYgaXRlbXMubGVuZ3RoID09PSAwKSB8fFxuICAgICAgYXJlYXNfZGF0YS5uZXdBcmVhcy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHBvaW50c19kYXRhLmlzRmV0Y2hpbmcgfHxcbiAgICAgIGVkZ2VzX2RhdGEuaXNGZXRjaGluZ1xuICAgICkge1xuICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPXsnbG9hZGVyJ30+PC9kaXY+O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uVG9nZ2xlID0gKCkgPT4ge1xuICAgIGRpc3BhdGNoKHNpZGVOYXZFeHBhbmRlZCghc2lkZW5hdkV4cGFuZGVkKSk7XG4gIH07XG5cbiAgY29uc3QgYXBwbHlEZWZhdWx0RmlsdGVyID0gKCkgPT4ge1xuICAgIGhpc3RvcnkucHVzaChcbiAgICAgIGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mdmFsdWVzRnJvbUtRTD1gLFxuICAgICk7XG4gICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbSgnJykpO1xuICB9O1xuXG4gIGNvbnN0IHZhbGlkYXRlRXZlbnQgPSAoZXZlbnQ6IElFdmVudCkgPT4ge1xuICAgIC8vIGNoZWNrIHRoYXQgYWxsIG9ic2VydmF0aW9ucycgZWRnZXMgZXhpc3RzLiBJZiB0aGV5IGFyZSBub3QgZXhpc3RzIGl0J3MgaW5kaWNhdGVzIHRoYXQgdGhlaXIgcG9pbnRzIGFyZVxuICAgIC8vIG5vdCBpbiB0aGUgaGllcmFyY2h5IG9yIGRvZXNuJ3QgaGF2ZSBsYXQvbG5nLlxuICAgIGxldCBpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXM6IGFueSA9IFtdO1xuICAgIGV2ZW50Lm9ic2VydmF0aW9ucy5mb3JFYWNoKChvYnNlcnZhdGlvbjogYW55KSA9PiB7XG4gICAgICAvLyBpZiBvYnNlcnZhdGlvbiBpcyByb290IChleC4gV1dUUCkgdGhlcmUgaXMgbm8gZWRnZSB0aGF0IGl0cyBhIHNvdXJjZS4gc28gd2UgY2FuIHNraXAgdGhpcyBjaGVja1xuICAgICAgaWYgKCFvYnNlcnZhdGlvbi5wb2ludF9pc19yb290KSB7XG4gICAgICAgIGxldCBlZGdlID0gZWRnZXNfZGF0YS5pdGVtcy5maW5kKFxuICAgICAgICAgIChlZGdlKSA9PiBlZGdlLnNvdXJjZV9wb2ludF9pZCA9PT0gb2JzZXJ2YXRpb24ucG9pbnRfaWQsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChlZGdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXMucHVzaChcbiAgICAgICAgICAgIGAke29ic2VydmF0aW9uLnBvaW50X25hbWV9ICgke29ic2VydmF0aW9uLnBvaW50X2lkfSkgYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW52YWxpZE9ic2VydmF0aW9uc01lc3NhZ2VzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgbGV0IGluZGV4ID0gZXhjZXB0aW9uQWxlcnQubWVzc2FnZXMuZmluZEluZGV4KFxuICAgICAgICAobXNnKSA9PiBtc2cuZXZlbnRfaWQgPT09IGV2ZW50LmlkLFxuICAgICAgKTtcblxuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBzZXRFeGNlcHRpb25BbGVydCh7XG4gICAgICAgICAgbWVzc2FnZXM6IFtcbiAgICAgICAgICAgIC4uLmV4Y2VwdGlvbkFsZXJ0Lm1lc3NhZ2VzLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtZXNzYWdlOiAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIDxwPntpMThuLnQoJ2V2ZW50c19vdmVydmlldy5ldmVudF9kYXRhX21pc3NpbmcnKX08L3A+XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGV2ZW50X2lkOiBldmVudC5pZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBldmVudF9pZHM6IFsuLi5leGNlcHRpb25BbGVydC5ldmVudF9pZHMsIGV2ZW50LmlkXSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gc2FtZSBjaGVjayBhcyBhYm92ZSBidXQgdGhpcyB0aW1lIGZvciB0aGUgZXZlbnQgcGF0aC4gSWYgZWRnZSBkb2Vzbid0IGV4aXN0LCBpdCdzIGluZGljYXRlcyB0aGF0IG9uZSBvZiB0aGVcbiAgICAvLyBwb2ludHMgZG93bnN0cmVhbSBkb2Vzbid0IGhhdmUgbGF0L2xuZy5cbiAgICBsZXQgaW52YWxpZFBhdGhNZXNzYWdlczogYW55ID0gW107XG4gICAgZXZlbnQucGF0aC5mb3JFYWNoKChwYXRoOiBhbnkpID0+IHtcbiAgICAgIGxldCBlZGdlID0gZWRnZXNfZGF0YS5pdGVtcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBwYXRoLmVkZ2VfaWQpO1xuICAgICAgaWYgKGVkZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBlZGdlICR7cGF0aC5lZGdlX2lkfSBjYW4gbm90IGJlIGZvdW5kYCk7XG4gICAgICAgIGxldCBvYnNlcnZhdGlvbiA9IGV2ZW50Lm9ic2VydmF0aW9ucy5maW5kKFxuICAgICAgICAgIChvYnNlcnZhdGlvbikgPT4gb2JzZXJ2YXRpb24uaWQgPT09IHBhdGgubGFzdF9vYnNlcnZhdGlvbl9pZCxcbiAgICAgICAgKTtcbiAgICAgICAgbGV0IGxhc3RPYnNlcnZhdGlvblBvaW50ID0gJ05vdCBmb3VuZCc7XG4gICAgICAgIGlmIChvYnNlcnZhdGlvbikge1xuICAgICAgICAgIGxhc3RPYnNlcnZhdGlvblBvaW50ID0gb2JzZXJ2YXRpb24ucG9pbnRfbmFtZTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdsYXN0T2JzZXJ2YXRpb25Qb2ludCcsIGxhc3RPYnNlcnZhdGlvblBvaW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGludmFsaWRQYXRoTWVzc2FnZXMucHVzaChgJHtsYXN0T2JzZXJ2YXRpb25Qb2ludH0gYCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW52YWxpZFBhdGhNZXNzYWdlcy5sZW5ndGggIT09IDApIHtcbiAgICAgIHNldEV4Y2VwdGlvbkFsZXJ0KHtcbiAgICAgICAgbWVzc2FnZXM6IFtcbiAgICAgICAgICAuLi5leGNlcHRpb25BbGVydC5tZXNzYWdlcyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPHA+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmV2ZW50X3ZlcmlmeV9jb29yZGluYXRlcycpfTwvcD5cbiAgICAgICAgICAgICAgICA8c3Bhbj57aW52YWxpZFBhdGhNZXNzYWdlc308L3NwYW4+XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGV2ZW50X2lkOiBldmVudC5pZCxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBldmVudF9pZHM6IFsuLi5leGNlcHRpb25BbGVydC5ldmVudF9pZHMsIGV2ZW50LmlkXSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUV2ZW50SXRlbUNsaWNrID0gKFxuICAgIGV2ZW50OiBJRXZlbnQsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+IHwgbnVsbCxcbiAgKSA9PiB7XG4gICAgaWYgKHJlZiAhPT0gbnVsbCkgb25Nb3VzZUxlYXZlRXZlbnQoKTtcbiAgICAvLyBpZiAoaG92ZXJlZEV2ZW50UGF0aHMgJiYgbWFwKSB7XG4gICAgLy8gICAgIGhvdmVyZWRFdmVudFBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAvLyAgICAgICAgIG1hcC5yZW1vdmVMYXllcihwYXRoKTtcbiAgICAvLyAgICAgfSk7XG4gICAgLy8gfVxuICAgIC8vIGRpc3BhdGNoKHNldEhvdmVyZWRFdmVudFBhdGhzKFtdKSk7XG4gICAgLy8gZGlzcGF0Y2goc2V0SG92ZXJFdmVudEluZGljYXRvcihudWxsKSk7XG4gICAgZGlzcGF0Y2goc2V0Rm9jdXNlZEV2ZW50KGV2ZW50KSk7XG4gICAgc2V0RmlsdGVyUG9wdXBPcGVuKGZhbHNlKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGhpc3RvcnkucHVzaChcbiAgICAgICAgYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXG4gICAgICAgIH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mZXZlbnRJZD0ke1xuICAgICAgICAgIGV2ZW50LmlkXG4gICAgICAgIH0mdmFsdWVzRnJvbUtRTD0ke1xuICAgICAgICAgIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1cbiAgICAgICAgfSZ2YWxpZEV2ZW50PSR7dmFsaWRhdGVFdmVudChldmVudCl9YCxcbiAgICAgICk7XG4gICAgfSwgNTAwKTtcbiAgfTtcblxuICBjb25zdCBvbk1vdXNlRW50ZXJFdmVudCA9IChldmVudCkgPT4ge1xuICAgIGlmICghZm9jdXNlZEV2ZW50ICYmICFob3ZlcmVkRXZlbnQgJiYgdmFsaWRhdGVFdmVudChldmVudCkpIHtcbiAgICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFdmVudChldmVudCkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvbk1vdXNlTGVhdmVFdmVudCA9ICgpID0+IHtcbiAgICBpZiAoaG92ZXJlZEV2ZW50ICYmIGhvdmVyZWRFdmVudFBhdGhzICYmIG1hcCkge1xuICAgICAgaG92ZXJlZEV2ZW50UGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIocGF0aCk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKGhvdmVyZWRFZGdlUGF0aHMpIHtcbiAgICAgICAgaG92ZXJlZEVkZ2VQYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBhdGgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgbGV0IGxheWVycyA9IG1hcC5fbGF5ZXJzO1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBsYXllcnMpIHtcbiAgICAgICAgY29uc3Qga2FuZG9fb2JqZWN0ID0gbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3Q7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBrYW5kb19vYmplY3Q/LmluY2x1ZGVzKCdFdmVudEJvZHknKSB8fFxuICAgICAgICAgIFtcbiAgICAgICAgICAgICdFdmVudFRhaWwnLFxuICAgICAgICAgICAgJ1NhbXBsaW5nUG9pbnQnLFxuICAgICAgICAgICAgJ0RlY29yYXRvcicsXG4gICAgICAgICAgICAnSG92ZXJlZEVkZ2UnLFxuICAgICAgICAgICAgJ0hvdmVyZWRFZGdlRnJvbnQnLFxuICAgICAgICAgIF0uaW5jbHVkZXMoa2FuZG9fb2JqZWN0KVxuICAgICAgICApIHtcbiAgICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXJzW3Byb3BlcnR5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50KG51bGwpKTtcbiAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRXZlbnRQYXRocyhbXSkpO1xuICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFZGdlUGF0aHMoW10pKTtcbiAgfTtcblxuICBjb25zdCBzZXRGb2N1c2VkRXZlbnRJZkZvdW5kSW5QYXJhbXMgPSAoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgZ2V0RXZlbnRJZEZyb21VUkwoKSAhPT0gbnVsbCAmJlxuICAgICAgZ2V0RXZlbnRJZEZyb21VUkwoKSAhPT0gJ251bGwnICYmXG4gICAgICBmb2N1c2VkRXZlbnQgPT09IG51bGwgJiZcbiAgICAgIGl0ZW1zLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgIWlzRmV0Y2hpbmcgJiZcbiAgICAgICFhcmVhc19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICFwb2ludHNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nXG4gICAgKSB7XG4gICAgICBsZXQgZXZlbnQgPSBldmVudHNfZGF0YS5pdGVtcy5maW5kKFxuICAgICAgICAoZTogSUV2ZW50KSA9PiBlLmlkID09PSBwYXJzZUludChnZXRFdmVudElkRnJvbVVSTCgpISksXG4gICAgICApO1xuICAgICAgaWYgKGV2ZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaGFuZGxlRXZlbnRJdGVtQ2xpY2soZXZlbnQsIG51bGwpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCB2YWxpZEV2ZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgbGV0IGV2ZW50ID0gZXZlbnRzX2RhdGEuaXRlbXMuZmluZChcbiAgICAgIChlKSA9PiBlLmlkLnRvU3RyaW5nKCkgPT09IGdldEV2ZW50SWRGcm9tVVJMKCksXG4gICAgKTtcblxuICAgIGlmIChldmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdmFsaWRhdGVFdmVudChldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSwgW2V2ZW50c19kYXRhLmZvY3VzZWRFdmVudF0pO1xuXG4gIGNvbnN0IHRyaWdnZXJTb3J0ID0gKHNvcnQ6IG51bWJlcikgPT4ge1xuICAgIGlmIChnbG9iYWxfZGF0YS5hY3RpdmVGaWx0ZXIgIT09IG51bGwpIHtcbiAgICAgIGxldCBLUUw7XG4gICAgICBsZXQgVVJMO1xuICAgICAgc3dpdGNoIChzb3J0KSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBLUUwgPSBgJHtidWlsZEtRTFF1ZXJ5KGdsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlciwgJ25ld2VzdCcpfWA7XG4gICAgICAgICAgVVJMID0gYC8ke1xuICAgICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWVcbiAgICAgICAgICB9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke1xuICAgICAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZFxuICAgICAgICAgIH0mZXZlbnRJZD0ke2dldEV2ZW50SWRGcm9tVVJMKCl9JmxvY2FsZT0ke1xuICAgICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZVxuICAgICAgICAgIH0mdmFsdWVzRnJvbUtRTD0ke0tRTH0mdmFsaWRFdmVudD0ke3ZhbGlkRXZlbnR9YDtcbiAgICAgICAgICBoaXN0b3J5LnB1c2goVVJMKTtcbiAgICAgICAgICBkaXNwYXRjaChzZXRFdmVudEZpbHRlclBhcmFtKEtRTCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgS1FMID0gYCR7YnVpbGRLUUxRdWVyeShnbG9iYWxfZGF0YS5hY3RpdmVGaWx0ZXIsICdvbGRlc3QnKX1gO1xuICAgICAgICAgIFVSTCA9IGAvJHtcbiAgICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lXG4gICAgICAgICAgfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRcbiAgICAgICAgICB9JmV2ZW50SWQ9JHtnZXRFdmVudElkRnJvbVVSTCgpfSZsb2NhbGU9JHtcbiAgICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGVcbiAgICAgICAgICB9JnZhbHVlc0Zyb21LUUw9JHtLUUx9JnZhbGlkRXZlbnQ9JHt2YWxpZEV2ZW50fWA7XG4gICAgICAgICAgaGlzdG9yeS5wdXNoKFVSTCk7XG4gICAgICAgICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbShLUUwpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIEtRTCA9IGAke2J1aWxkS1FMUXVlcnkoZ2xvYmFsX2RhdGEuYWN0aXZlRmlsdGVyLCAnc2V2ZXJpdHknKX1gO1xuICAgICAgICAgIFVSTCA9IGAvJHtcbiAgICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lXG4gICAgICAgICAgfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRcbiAgICAgICAgICB9JmV2ZW50SWQ9JHtnZXRFdmVudElkRnJvbVVSTCgpfSZsb2NhbGU9JHtcbiAgICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGVcbiAgICAgICAgICB9JnZhbHVlc0Zyb21LUUw9JHtLUUx9JnZhbGlkRXZlbnQ9JHt2YWxpZEV2ZW50fWA7XG4gICAgICAgICAgaGlzdG9yeS5wdXNoKFVSTCk7XG4gICAgICAgICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbShLUUwpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgY2FsY0V2ZW50c1JlYWxBbW91bnQgPSAoKSA9PiB7XG4gICAgbGV0IGV2ZW50c0NvdW50OiBudW1iZXIgfCBzdHJpbmcgPSAwO1xuICAgIGV2ZW50c0NvdW50ID0gZXZlbnRzX2RhdGEuZXZlbnRzX2NvdW50O1xuICAgIGlmIChldmVudHNDb3VudCA+IDUwKVxuICAgICAgZXZlbnRzQ291bnQgPSBgJHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5tb3JlX3RoYW4nKX0gNTBgO1xuXG4gICAgcmV0dXJuIGV2ZW50c0NvdW50O1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hFdmVudHMod2F0ZXJBdXRob3JpdHlJZCwgZ2V0S1FMVmFsdWVzRnJvbVVSTCgpIHx8ICdERUZBVUxUJykpO1xuICB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCwgZ2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0Rm9jdXNlZEV2ZW50SWZGb3VuZEluUGFyYW1zKCk7XG4gIH0sIFtcbiAgICBldmVudHNfZGF0YS5pc0ZldGNoaW5nLFxuICAgIGVkZ2VzX2RhdGEuaXNGZXRjaGluZyxcbiAgICBwb2ludHNfZGF0YS5pc0ZldGNoaW5nLFxuICAgIGFyZWFzX2RhdGEuaXNGZXRjaGluZyxcbiAgICBnbG9iYWxfZGF0YS5ldmVudEZpbHRlclBhcmFtLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXsnc2lkZW5hdiAnICsgKHNpZGVuYXZFeHBhbmRlZCA/ICcnIDogJ3NpZGVuYXYtLWNvbGxhcHNlZCcpfT5cbiAgICAgIHtnbG9iYWxfZGF0YS5tb3JlSW5mbyAhPT0gdW5kZWZpbmVkICYmIGdsb2JhbF9kYXRhLm1vcmVJbmZvLmFjdGl2ZSAmJiAoXG4gICAgICAgIDxNb3JlSW5mbyAvPlxuICAgICAgKX1cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICdldmVudC1pbmZvICcgK1xuICAgICAgICAgICghaG92ZXJlZEV2ZW50ICYmIGZvY3VzZWRFdmVudCAhPT0gbnVsbFxuICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgOiAnZXZlbnQtaW5mby0tY29sbGFwc2VkJylcbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICB7IWhvdmVyZWRFdmVudCAmJiBmb2N1c2VkRXZlbnQgIT09IG51bGwgJiYgKFxuICAgICAgICAgIDxFdmVudEluZm9cbiAgICAgICAgICAgIGV2ZW50PXtmb2N1c2VkRXZlbnR9XG4gICAgICAgICAgICByZU9wZW5GaWx0ZXI9eygpID0+IHNldEZpbHRlclBvcHVwT3Blbih0cnVlKX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cInRvZ2dsZS1leHBhbnNpb24tYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIGhhbmRsZUV4cGFuc2lvblRvZ2dsZSgpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5hdi1leHBhbnNpb24taWNvblwiPlxuICAgICAgICAgIDxGb250QXdlc29tZUljb25cbiAgICAgICAgICAgIGljb249e3NpZGVuYXZFeHBhbmRlZCA/IGZhQ2FyZXRMZWZ0IDogZmFDYXJldFJpZ2h0fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17J3RvZ2dsZS1leHBhbnNpb24tYnV0dG9uLW1vYmlsZSd9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBoYW5kbGVFeHBhbnNpb25Ub2dnbGUoKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGEgaHJlZj1cIiNcIj5cbiAgICAgICAgICA8Rm9udEF3ZXNvbWVJY29uIGljb249e2ZhQXJyb3dMZWZ0fSAvPlxuICAgICAgICAgIDxzcGFuPiB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuYmFja190b19kZXRhaWxzJyl9PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXZlbnRzLWhlYWRlclwiPlxuICAgICAgICB7bGFzdFZpc2l0ZWQgJiYgIWlzRmV0Y2hpbmcgJiYgKFxuICAgICAgICAgIDxMaW5rIGNsYXNzTmFtZT1cImJhY2tcIiB0bz17bGFzdFZpc2l0ZWR9PlxuICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgc3JjPXtMZWZ0QXJyb3dJY29ufVxuICAgICAgICAgICAgICBoZWlnaHQ9XCIxMHB4XCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxMnB4XCJcbiAgICAgICAgICAgICAgYWx0PVwiYmFja1wiXG4gICAgICAgICAgICAvPnsnICd9XG4gICAgICAgICAgICB7aTE4bi50KCdhcmVhX3NjcmVlbi5iYWNrJyl9XG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICApfVxuICAgICAgICA8aDQ+XG4gICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmV2ZW50c19saXN0Jyl9XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsnZXZlbnRzLWhlYWRlcl9fZXZlbnRzX2Ftb3VudCd9PlxuICAgICAgICAgICAgKHtjYWxjRXZlbnRzUmVhbEFtb3VudCgpfSlcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvaDQ+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyaW5nXCI+XG4gICAgICAgICAge2V2ZW50c19kYXRhLml0ZW1zLmxlbmd0aCAhPT0gMCAmJiAoXG4gICAgICAgICAgICA8U29ydFxuICAgICAgICAgICAgICB0cmlnZ2VyU29ydD17dHJpZ2dlclNvcnR9XG4gICAgICAgICAgICAgIGV2ZW50cz17ZXZlbnRzX2RhdGEuaXRlbXN9XG4gICAgICAgICAgICAgIGV2ZW50c0ZldGNoaW5nPXtldmVudHNfZGF0YS5pc0ZldGNoaW5nfVxuICAgICAgICAgICAgICBhY3RpdmVGaWx0ZXI9e2dsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlcn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImljb25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZpbHRlclwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEZpbHRlclBvcHVwT3BlbighZmlsdGVyUG9wdXBPcGVuKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEZpbHRlckljb24gd2lkdGg9XCIxN3B4XCIgaGVpZ2h0PVwiMTdweFwiIGZpbGw9XCIjZjYwMDRmXCIgLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICB7cG9pbnRzX2RhdGEuaXRlbXMubGVuZ3RoICE9PSAwICYmICFmb2N1c2VkRXZlbnQgJiYgKFxuICAgICAgICAgIDxGaWx0ZXJDb250YWluZXJcbiAgICAgICAgICAgIGZpbHRlclBvcHVwT3Blbj17ZmlsdGVyUG9wdXBPcGVufVxuICAgICAgICAgICAgZmV0Y2hUeXBlPXsnRXZlbnRGaWx0ZXInfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXZlbnRzLWNvbnRhaW5lciBzY3JvbGxiYXIgXCI+XG4gICAgICAgIHtsb2FkZXIoKX1cbiAgICAgICAgeyFpc0ZldGNoaW5nICYmXG4gICAgICAgICAgaXRlbXMubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgIXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZXZlbnRzX19ibGFua3NsYXRlJ30+XG4gICAgICAgICAgICAgIDxpbWcgc3JjPXtOb0V2ZW50c0ltYWdlfSBhbHQ9XCJOb0V2ZW50c0ljb25cIiAvPlxuICAgICAgICAgICAgICA8aDI+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5ibGFua3NsYXRlLmhlYWRlcicpfTwvaDI+XG4gICAgICAgICAgICAgIDxwPntpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuYmxhbmtzbGF0ZS5ib2R5Jyl9PC9wPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17J2FwcGx5X2RlZmF1bHRfZmlsdGVyX2J1dHRvbid9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gYXBwbHlEZWZhdWx0RmlsdGVyKCl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmJsYW5rc2xhdGUuYnV0dG9uJyl9XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIHtpdGVtcy5sZW5ndGggIT09IDAgJiZcbiAgICAgICAgICAhYXJlYXNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAgICAgIXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nICYmIChcbiAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJldmVudHMgXCI+XG4gICAgICAgICAgICAgIHtpdGVtcy5tYXAoKGV2ZW50OiBhbnkpID0+IChcbiAgICAgICAgICAgICAgICA8bGkga2V5PXtldmVudC5pZH0gY2xhc3NOYW1lPVwiZXZlbnRcIiBkYXRhLWV2ZW50LWlkPXtldmVudC5pZH0+XG4gICAgICAgICAgICAgICAgICA8U2V2ZXJlRXZlbnRcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQ9e2V2ZW50fVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVDbGljaz17aGFuZGxlRXZlbnRJdGVtQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlckV2ZW50PXtvbk1vdXNlRW50ZXJFdmVudH1cbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlRXZlbnQ9e29uTW91c2VMZWF2ZUV2ZW50fVxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZUV2ZW50PXt2YWxpZGF0ZUV2ZW50fVxuICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25BbGVydD17ZXhjZXB0aW9uQWxlcnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoRXZlbnRzTGlzdCk7XG4iXX0=
|
|
432
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9FdmVudHNQYWdlL2V2ZW50cy9ldmVudHNfbGlzdC9FdmVudHNMaXN0LnRzeCJdLCJuYW1lcyI6WyJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJlZGdlc19kYXRhIiwicG9pbnRzX2RhdGEiLCJhcmVhc19kYXRhIiwibmF2X2NvbnRleHRfZGF0YSIsIkV2ZW50c0xpc3QiLCJzaWRlbmF2RXhwYW5kZWQiLCJkaXNwYXRjaCIsIml0ZW1zIiwiaXNGZXRjaGluZyIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsImhvdmVyZWRFdmVudFBhdGhzIiwiaG92ZXJlZEVkZ2VQYXRocyIsIndhdGVyQXV0aG9yaXR5SWQiLCJtYXAiLCJmaWx0ZXJQb3B1cE9wZW4iLCJzZXRGaWx0ZXJQb3B1cE9wZW4iLCJtZXNzYWdlcyIsIm1lc3NhZ2UiLCJldmVudF9pZCIsImV2ZW50X2lkcyIsImV4Y2VwdGlvbkFsZXJ0Iiwic2V0RXhjZXB0aW9uQWxlcnQiLCJsYXN0VmlzaXRlZCIsInVzZVF1ZXJ5IiwiVVJMU2VhcmNoUGFyYW1zIiwic2VhcmNoIiwiaGlzdG9yeSIsInF1ZXJ5IiwiZ2V0S1FMVmFsdWVzRnJvbVVSTCIsImdldCIsImdldEV2ZW50SWRGcm9tVVJMIiwibG9hZGVyIiwibGVuZ3RoIiwibmV3QXJlYXMiLCJoYW5kbGVFeHBhbnNpb25Ub2dnbGUiLCJhcHBseURlZmF1bHRGaWx0ZXIiLCJwdXNoIiwibmF2Q29udGV4dCIsIm5hbWUiLCJsb2NhbGUiLCJ2YWxpZGF0ZUV2ZW50IiwiZXZlbnQiLCJpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXMiLCJvYnNlcnZhdGlvbnMiLCJmb3JFYWNoIiwib2JzZXJ2YXRpb24iLCJwb2ludF9pc19yb290IiwiZWRnZSIsImZpbmQiLCJzb3VyY2VfcG9pbnRfaWQiLCJwb2ludF9pZCIsInVuZGVmaW5lZCIsInBvaW50X25hbWUiLCJpbmRleCIsImZpbmRJbmRleCIsIm1zZyIsImlkIiwiaTE4biIsInQiLCJpbnZhbGlkUGF0aE1lc3NhZ2VzIiwicGF0aCIsImVkZ2VfaWQiLCJjb25zb2xlIiwiZXJyb3IiLCJsYXN0X29ic2VydmF0aW9uX2lkIiwibGFzdE9ic2VydmF0aW9uUG9pbnQiLCJoYW5kbGVFdmVudEl0ZW1DbGljayIsInJlZiIsIm9uTW91c2VMZWF2ZUV2ZW50Iiwic2V0VGltZW91dCIsImV2ZW50RmlsdGVyUGFyYW0iLCJvbk1vdXNlRW50ZXJFdmVudCIsInJlbW92ZUxheWVyIiwibGF5ZXJzIiwiX2xheWVycyIsInByb3BlcnR5Iiwia2FuZG9fb2JqZWN0IiwiaW5jbHVkZXMiLCJzZXRGb2N1c2VkRXZlbnRJZkZvdW5kSW5QYXJhbXMiLCJlIiwicGFyc2VJbnQiLCJ2YWxpZEV2ZW50IiwidG9TdHJpbmciLCJ0cmlnZ2VyU29ydCIsInNvcnQiLCJhY3RpdmVGaWx0ZXIiLCJLUUwiLCJVUkwiLCJjYWxjRXZlbnRzUmVhbEFtb3VudCIsImV2ZW50c0NvdW50IiwiZXZlbnRzX2NvdW50IiwibW9yZUluZm8iLCJhY3RpdmUiLCJmYUNhcmV0TGVmdCIsImZhQ2FyZXRSaWdodCIsImZhQXJyb3dMZWZ0IiwiTGVmdEFycm93SWNvbiIsIk5vRXZlbnRzSW1hZ2UiLCJjb25uZWN0b3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUtBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7OztBQUlBOztBQUVBOztBQUNBOztBQVFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUEvQkE7QUFpQ0EsU0FBU0EsZUFBVCxDQUF5QkMsS0FBekIsRUFBMkM7QUFDekMsTUFDRUMsV0FERixHQU9JRCxLQVBKLENBQ0VDLFdBREY7QUFBQSxNQUVFQyxXQUZGLEdBT0lGLEtBUEosQ0FFRUUsV0FGRjtBQUFBLE1BR0VDLFVBSEYsR0FPSUgsS0FQSixDQUdFRyxVQUhGO0FBQUEsTUFJRUMsV0FK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RixlQUlFO0FBQ0UsSUFBQSxTQUFTLEVBQUUsNkJBRGI7QUFFRSxJQUFBLE9BQU8sRUFBRTtBQUFBLGFBQU12QixrQkFBa0IsRUFBeEI7QUFBQTtBQUZYLEtBSUdzQixjQUFLQyxDQUFMLENBQU8sMENBQVAsQ0FKSCxDQUpGLENBTk4sRUFrQkdwRCxLQUFLLENBQUMwQixNQUFOLEtBQWlCLENBQWpCLElBQ0MsQ0FBQy9CLFVBQVUsQ0FBQ00sVUFEYixJQUVDLENBQUNQLFdBQVcsQ0FBQ08sVUFGZCxJQUdDLENBQUNSLFVBQVUsQ0FBQ1EsVUFIYixpQkFJRztBQUFJLElBQUEsU0FBUyxFQUFDO0FBQWQsS0FDR0QsS0FBSyxDQUFDTyxHQUFOLENBQVUsVUFBQzRCLEtBQUQ7QUFBQSx3QkFDVDtBQUFJLE1BQUEsR0FBRyxFQUFFQSxLQUFLLENBQUNlLEVBQWY7QUFBbUIsTUFBQSxTQUFTLEVBQUMsT0FBN0I7QUFBcUMsdUJBQWVmLEtBQUssQ0FBQ2U7QUFBMUQsb0JBQ0UsNkJBQUMsd0JBQUQ7QUFDRSxNQUFBLEtBQUssRUFBRWYsS0FEVDtBQUVFLE1BQUEsV0FBVyxFQUFFeUIsb0JBRmY7QUFHRSxNQUFBLGlCQUFpQixFQUFFSyxpQkFIckI7QUFJRSxNQUFBLGlCQUFpQixFQUFFSCxpQkFKckI7QUFLRSxNQUFBLGFBQWEsRUFBRTVCLGFBTGpCO0FBTUUsTUFBQSxjQUFjLEVBQUVwQjtBQU5sQixNQURGLENBRFM7QUFBQSxHQUFWLENBREgsQ0F0Qk4sQ0F4RkYsQ0FERjtBQWlJRCxDQWpjRDs7QUFtY0EsSUFBTThFLFNBQVMsR0FBRyx5QkFBUXZHLGVBQVIsQ0FBbEI7O2VBQ2V1RyxTQUFTLENBQUMvRixVQUFELEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBldGMvbm8tY29tbWVudGVkLW91dC1jb2RlICovXG5pbXBvcnQge1xuICBmYUFycm93TGVmdCxcbiAgZmFDYXJldExlZnQsXG4gIGZhQ2FyZXRSaWdodCxcbn0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lSWNvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9yZWFjdC1mb250YXdlc29tZSc7XG5pbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0LCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29ubmVjdCwgQ29ubmVjdGVkUHJvcHMsIHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgTGluaywgdXNlSGlzdG9yeSwgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMZWZ0QXJyb3dJY29uIGZyb20gJ3NyYy9hc3NldHMvaWNvbnMvYXJyb3ctbGVmdC5zdmcnO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgRmlsdGVySWNvbiB9IGZyb20gJ3NyYy9hc3NldHMvaWNvbnMvZnVubmVsLnN2Zyc7XG5pbXBvcnQgTm9FdmVudHNJbWFnZSBmcm9tICdzcmMvYXNzZXRzL25vX2V2ZW50cy5zdmcnO1xuaW1wb3J0IHsgU2V2ZXJlRXZlbnQgfSBmcm9tICdzcmMvY29tcG9uZW50cy9TZXZlcmVFdmVudC9TZXZlcmVFdmVudCc7XG5pbXBvcnQgeyBJQXBwU3RhdGUgfSBmcm9tICdzcmMvbW9kZWxzL0lBcHBTdGF0ZSc7XG5pbXBvcnQgeyB1c2VMYXN0VmlzaXRlZCB9IGZyb20gJ3NyYy9wcm92aWRlcnMvVXJsSGlzdG9yeSc7XG5pbXBvcnQge1xuICBmZXRjaEV2ZW50cyxcbiAgc2V0Rm9jdXNlZEV2ZW50LFxuICBzZXRIb3ZlcmVkRWRnZVBhdGhzLFxuICBzZXRIb3ZlcmVkRXZlbnQsXG4gIHNldEhvdmVyZWRFdmVudFBhdGhzLFxufSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50JztcbmltcG9ydCB7IHNldEV2ZW50RmlsdGVyUGFyYW0sIHNpZGVOYXZFeHBhbmRlZCB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvYWN0aW9ucyc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgYnVpbGRLUUxRdWVyeSB9IGZyb20gJ3NyYy91dGlsaXRpZXMva3FsJztcbmltcG9ydCAnLi4vRXZlbnRzU3R5bGUuc2Nzcyc7XG5pbXBvcnQgRXZlbnRJbmZvIGZyb20gJy4uL2V2ZW50X2luZm8vRXZlbnRJbmZvJztcbmltcG9ydCBNb3JlSW5mbyBmcm9tICcuLi9Nb3JlSW5mbyc7XG5pbXBvcnQgRmlsdGVyQ29udGFpbmVyIGZyb20gJy4vRmlsdGVyL0ZpbHRlckNvbnRhaW5lcic7XG5pbXBvcnQgU29ydCBmcm9tICcuL1NvcnQnO1xuXG5mdW5jdGlvbiBtYXBTdGF0ZVRvUHJvcHMoc3RhdGU6IElBcHBTdGF0ZSkge1xuICBjb25zdCB7XG4gICAgZXZlbnRzX2RhdGEsXG4gICAgZ2xvYmFsX2RhdGEsXG4gICAgZWRnZXNfZGF0YSxcbiAgICBwb2ludHNfZGF0YSxcbiAgICBhcmVhc19kYXRhLFxuICAgIG5hdl9jb250ZXh0X2RhdGEsXG4gIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGV2ZW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICAgIGVkZ2VzX2RhdGEsXG4gICAgcG9pbnRzX2RhdGEsXG4gICAgYXJlYXNfZGF0YSxcbiAgICBuYXZfY29udGV4dF9kYXRhLFxuICB9O1xufVxuXG50eXBlIElQcm9wcyA9IENvbm5lY3RlZFByb3BzPHR5cGVvZiBjb25uZWN0b3I+ICYge1xuICBzaWRlbmF2RXhwYW5kZWQ6IGJvb2xlYW47XG59O1xuXG5jb25zdCBFdmVudHNMaXN0OiBSZWFjdC5GQzxJUHJvcHM+ID0gKHtcbiAgYXJlYXNfZGF0YSxcbiAgcG9pbnRzX2RhdGEsXG4gIGVkZ2VzX2RhdGEsXG4gIGdsb2JhbF9kYXRhLFxuICBzaWRlbmF2RXhwYW5kZWQsXG4gIGV2ZW50c19kYXRhLFxuICBuYXZfY29udGV4dF9kYXRhLFxufSkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IHtcbiAgICBpdGVtcyxcbiAgICBpc0ZldGNoaW5nLFxuICAgIGZvY3VzZWRFdmVudCxcbiAgICBob3ZlcmVkRXZlbnQsXG4gICAgaG92ZXJlZEV2ZW50UGF0aHMsXG4gICAgaG92ZXJlZEVkZ2VQYXRocyxcbiAgfSA9IGV2ZW50c19kYXRhO1xuICBjb25zdCB7IHdhdGVyQXV0aG9yaXR5SWQsIG1hcCB9ID0gZ2xvYmFsX2RhdGE7XG4gIGNvbnN0IFtmaWx0ZXJQb3B1cE9wZW4sIHNldEZpbHRlclBvcHVwT3Blbl0gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgW2V4Y2VwdGlvbkFsZXJ0LCBzZXRFeGNlcHRpb25BbGVydF0gPSB1c2VTdGF0ZTx7XG4gICAgbWVzc2FnZXM6IHsgbWVzc2FnZTogYW55OyBldmVudF9pZDogbnVtYmVyIH1bXTtcbiAgICBldmVudF9pZHM6IG51bWJlcltdO1xuICB9Pih7IG1lc3NhZ2VzOiBbeyBtZXNzYWdlOiAnJywgZXZlbnRfaWQ6IDAgfV0sIGV2ZW50X2lkczogW10gfSk7XG4gIGNvbnN0IGxhc3RWaXNpdGVkID0gdXNlTGFzdFZpc2l0ZWQoKTtcblxuICBjb25zdCB1c2VRdWVyeSA9ICgpID0+IHtcbiAgICByZXR1cm4gbmV3IFVSTFNlYXJjaFBhcmFtcyh1c2VMb2NhdGlvbigpLnNlYXJjaCk7XG4gIH07XG4gIGNvbnN0IGhpc3RvcnkgPSB1c2VIaXN0b3J5KCk7XG4gIGNvbnN0IHF1ZXJ5ID0gdXNlUXVlcnkoKTtcbiAgY29uc3QgZ2V0S1FMVmFsdWVzRnJvbVVSTCA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCd2YWx1ZXNGcm9tS1FMJyk7XG4gIH07XG4gIGNvbnN0IGdldEV2ZW50SWRGcm9tVVJMID0gKCkgPT4ge1xuICAgIHJldHVybiBxdWVyeS5nZXQoJ2V2ZW50SWQnKTtcbiAgfTtcblxuICBjb25zdCBsb2FkZXIgPSAoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgKGlzRmV0Y2hpbmcgJiYgaXRlbXMubGVuZ3RoID09PSAwKSB8fFxuICAgICAgYXJlYXNfZGF0YS5uZXdBcmVhcy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHBvaW50c19kYXRhLmlzRmV0Y2hpbmcgfHxcbiAgICAgIGVkZ2VzX2RhdGEuaXNGZXRjaGluZ1xuICAgICkge1xuICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPXsnbG9hZGVyJ30+PC9kaXY+O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRXhwYW5zaW9uVG9nZ2xlID0gKCkgPT4ge1xuICAgIGRpc3BhdGNoKHNpZGVOYXZFeHBhbmRlZCghc2lkZW5hdkV4cGFuZGVkKSk7XG4gIH07XG5cbiAgY29uc3QgYXBwbHlEZWZhdWx0RmlsdGVyID0gKCkgPT4ge1xuICAgIGhpc3RvcnkucHVzaChcbiAgICAgIGAvJHtuYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQubmFtZX0vaW5kZXg/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mdmFsdWVzRnJvbUtRTD1gLFxuICAgICk7XG4gICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbSgnJykpO1xuICB9O1xuXG4gIGNvbnN0IHZhbGlkYXRlRXZlbnQgPSAoZXZlbnQ6IElFdmVudCkgPT4ge1xuICAgIC8vIGNoZWNrIHRoYXQgYWxsIG9ic2VydmF0aW9ucycgZWRnZXMgZXhpc3RzLiBJZiB0aGV5IGFyZSBub3QgZXhpc3RzIGl0J3MgaW5kaWNhdGVzIHRoYXQgdGhlaXIgcG9pbnRzIGFyZVxuICAgIC8vIG5vdCBpbiB0aGUgaGllcmFyY2h5IG9yIGRvZXNuJ3QgaGF2ZSBsYXQvbG5nLlxuICAgIGxldCBpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXM6IGFueSA9IFtdO1xuICAgIGV2ZW50Lm9ic2VydmF0aW9ucy5mb3JFYWNoKChvYnNlcnZhdGlvbjogYW55KSA9PiB7XG4gICAgICAvLyBpZiBvYnNlcnZhdGlvbiBpcyByb290IChleC4gV1dUUCkgdGhlcmUgaXMgbm8gZWRnZSB0aGF0IGl0cyBhIHNvdXJjZS4gc28gd2UgY2FuIHNraXAgdGhpcyBjaGVja1xuICAgICAgaWYgKCFvYnNlcnZhdGlvbi5wb2ludF9pc19yb290KSB7XG4gICAgICAgIGxldCBlZGdlID0gZWRnZXNfZGF0YS5pdGVtcy5maW5kKFxuICAgICAgICAgIChlZGdlKSA9PiBlZGdlLnNvdXJjZV9wb2ludF9pZCA9PT0gb2JzZXJ2YXRpb24ucG9pbnRfaWQsXG4gICAgICAgICk7XG4gICAgICAgIGlmIChlZGdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpbnZhbGlkT2JzZXJ2YXRpb25zTWVzc2FnZXMucHVzaChcbiAgICAgICAgICAgIGAke29ic2VydmF0aW9uLnBvaW50X25hbWV9ICgke29ic2VydmF0aW9uLnBvaW50X2lkfSkgYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW52YWxpZE9ic2VydmF0aW9uc01lc3NhZ2VzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgbGV0IGluZGV4ID0gZXhjZXB0aW9uQWxlcnQubWVzc2FnZXMuZmluZEluZGV4KFxuICAgICAgICAobXNnKSA9PiBtc2cuZXZlbnRfaWQgPT09IGV2ZW50LmlkLFxuICAgICAgKTtcblxuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBzZXRFeGNlcHRpb25BbGVydCh7XG4gICAgICAgICAgbWVzc2FnZXM6IFtcbiAgICAgICAgICAgIC4uLmV4Y2VwdGlvbkFsZXJ0Lm1lc3NhZ2VzLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtZXNzYWdlOiAoXG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgIDxwPntpMThuLnQoJ2V2ZW50c19vdmVydmlldy5ldmVudF9kYXRhX21pc3NpbmcnKX08L3A+XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGV2ZW50X2lkOiBldmVudC5pZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBldmVudF9pZHM6IFsuLi5leGNlcHRpb25BbGVydC5ldmVudF9pZHMsIGV2ZW50LmlkXSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gc2FtZSBjaGVjayBhcyBhYm92ZSBidXQgdGhpcyB0aW1lIGZvciB0aGUgZXZlbnQgcGF0aC4gSWYgZWRnZSBkb2Vzbid0IGV4aXN0LCBpdCdzIGluZGljYXRlcyB0aGF0IG9uZSBvZiB0aGVcbiAgICAvLyBwb2ludHMgZG93bnN0cmVhbSBkb2Vzbid0IGhhdmUgbGF0L2xuZy5cbiAgICBsZXQgaW52YWxpZFBhdGhNZXNzYWdlczogYW55ID0gW107XG4gICAgZXZlbnQucGF0aC5mb3JFYWNoKChwYXRoOiBhbnkpID0+IHtcbiAgICAgIGxldCBlZGdlID0gZWRnZXNfZGF0YS5pdGVtcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBwYXRoLmVkZ2VfaWQpO1xuICAgICAgaWYgKGVkZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBlZGdlICR7cGF0aC5lZGdlX2lkfSBjYW4gbm90IGJlIGZvdW5kYCk7XG4gICAgICAgIGxldCBvYnNlcnZhdGlvbiA9IGV2ZW50Lm9ic2VydmF0aW9ucy5maW5kKFxuICAgICAgICAgIChvYnNlcnZhdGlvbikgPT4gb2JzZXJ2YXRpb24uaWQgPT09IHBhdGgubGFzdF9vYnNlcnZhdGlvbl9pZCxcbiAgICAgICAgKTtcbiAgICAgICAgbGV0IGxhc3RPYnNlcnZhdGlvblBvaW50ID0gJ05vdCBmb3VuZCc7XG4gICAgICAgIGlmIChvYnNlcnZhdGlvbikge1xuICAgICAgICAgIGxhc3RPYnNlcnZhdGlvblBvaW50ID0gb2JzZXJ2YXRpb24ucG9pbnRfbmFtZTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdsYXN0T2JzZXJ2YXRpb25Qb2ludCcsIGxhc3RPYnNlcnZhdGlvblBvaW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGludmFsaWRQYXRoTWVzc2FnZXMucHVzaChgJHtsYXN0T2JzZXJ2YXRpb25Qb2ludH0gYCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW52YWxpZFBhdGhNZXNzYWdlcy5sZW5ndGggIT09IDApIHtcbiAgICAgIHNldEV4Y2VwdGlvbkFsZXJ0KHtcbiAgICAgICAgbWVzc2FnZXM6IFtcbiAgICAgICAgICAuLi5leGNlcHRpb25BbGVydC5tZXNzYWdlcyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPHA+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmV2ZW50X3ZlcmlmeV9jb29yZGluYXRlcycpfTwvcD5cbiAgICAgICAgICAgICAgICA8c3Bhbj57aW52YWxpZFBhdGhNZXNzYWdlc308L3NwYW4+XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGV2ZW50X2lkOiBldmVudC5pZCxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBldmVudF9pZHM6IFsuLi5leGNlcHRpb25BbGVydC5ldmVudF9pZHMsIGV2ZW50LmlkXSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUV2ZW50SXRlbUNsaWNrID0gKFxuICAgIGV2ZW50OiBJRXZlbnQsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+IHwgbnVsbCxcbiAgKSA9PiB7XG4gICAgaWYgKHJlZiAhPT0gbnVsbCkgb25Nb3VzZUxlYXZlRXZlbnQoKTtcbiAgICAvLyBpZiAoaG92ZXJlZEV2ZW50UGF0aHMgJiYgbWFwKSB7XG4gICAgLy8gICAgIGhvdmVyZWRFdmVudFBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAvLyAgICAgICAgIG1hcC5yZW1vdmVMYXllcihwYXRoKTtcbiAgICAvLyAgICAgfSk7XG4gICAgLy8gfVxuICAgIC8vIGRpc3BhdGNoKHNldEhvdmVyZWRFdmVudFBhdGhzKFtdKSk7XG4gICAgLy8gZGlzcGF0Y2goc2V0SG92ZXJFdmVudEluZGljYXRvcihudWxsKSk7XG4gICAgZGlzcGF0Y2goc2V0Rm9jdXNlZEV2ZW50KGV2ZW50KSk7XG4gICAgc2V0RmlsdGVyUG9wdXBPcGVuKGZhbHNlKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGhpc3RvcnkucHVzaChcbiAgICAgICAgYC8ke25hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkXG4gICAgICAgIH0mbG9jYWxlPSR7bmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZX0mZXZlbnRJZD0ke1xuICAgICAgICAgIGV2ZW50LmlkXG4gICAgICAgIH0mdmFsdWVzRnJvbUtRTD0ke1xuICAgICAgICAgIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1cbiAgICAgICAgfSZ2YWxpZEV2ZW50PSR7dmFsaWRhdGVFdmVudChldmVudCl9YCxcbiAgICAgICk7XG4gICAgfSwgNTAwKTtcbiAgfTtcblxuICBjb25zdCBvbk1vdXNlRW50ZXJFdmVudCA9IChldmVudCkgPT4ge1xuICAgIGlmICghZm9jdXNlZEV2ZW50ICYmICFob3ZlcmVkRXZlbnQgJiYgdmFsaWRhdGVFdmVudChldmVudCkpIHtcbiAgICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFdmVudChldmVudCkpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvbk1vdXNlTGVhdmVFdmVudCA9ICgpID0+IHtcbiAgICBpZiAoaG92ZXJlZEV2ZW50ICYmIGhvdmVyZWRFdmVudFBhdGhzICYmIG1hcCkge1xuICAgICAgaG92ZXJlZEV2ZW50UGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIocGF0aCk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKGhvdmVyZWRFZGdlUGF0aHMpIHtcbiAgICAgICAgaG92ZXJlZEVkZ2VQYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICAgICAgbWFwLnJlbW92ZUxheWVyKHBhdGgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgbGV0IGxheWVycyA9IG1hcC5fbGF5ZXJzO1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBsYXllcnMpIHtcbiAgICAgICAgY29uc3Qga2FuZG9fb2JqZWN0ID0gbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3Q7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBrYW5kb19vYmplY3Q/LmluY2x1ZGVzKCdFdmVudEJvZHknKSB8fFxuICAgICAgICAgIFtcbiAgICAgICAgICAgICdFdmVudFRhaWwnLFxuICAgICAgICAgICAgJ1NhbXBsaW5nUG9pbnQnLFxuICAgICAgICAgICAgJ0RlY29yYXRvcicsXG4gICAgICAgICAgICAnSG92ZXJlZEVkZ2UnLFxuICAgICAgICAgICAgJ0hvdmVyZWRFZGdlRnJvbnQnLFxuICAgICAgICAgIF0uaW5jbHVkZXMoa2FuZG9fb2JqZWN0KVxuICAgICAgICApIHtcbiAgICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXJzW3Byb3BlcnR5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZGlzcGF0Y2goc2V0SG92ZXJlZEV2ZW50KG51bGwpKTtcbiAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRXZlbnRQYXRocyhbXSkpO1xuICAgIGRpc3BhdGNoKHNldEhvdmVyZWRFZGdlUGF0aHMoW10pKTtcbiAgfTtcblxuICBjb25zdCBzZXRGb2N1c2VkRXZlbnRJZkZvdW5kSW5QYXJhbXMgPSAoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgZ2V0RXZlbnRJZEZyb21VUkwoKSAhPT0gbnVsbCAmJlxuICAgICAgZ2V0RXZlbnRJZEZyb21VUkwoKSAhPT0gJ251bGwnICYmXG4gICAgICBmb2N1c2VkRXZlbnQgPT09IG51bGwgJiZcbiAgICAgIGl0ZW1zLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgIWlzRmV0Y2hpbmcgJiZcbiAgICAgICFhcmVhc19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICFwb2ludHNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nXG4gICAgKSB7XG4gICAgICBsZXQgZXZlbnQgPSBldmVudHNfZGF0YS5pdGVtcy5maW5kKFxuICAgICAgICAoZTogSUV2ZW50KSA9PiBlLmlkID09PSBwYXJzZUludChnZXRFdmVudElkRnJvbVVSTCgpISksXG4gICAgICApO1xuICAgICAgaWYgKGV2ZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaGFuZGxlRXZlbnRJdGVtQ2xpY2soZXZlbnQsIG51bGwpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCB2YWxpZEV2ZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgbGV0IGV2ZW50ID0gZXZlbnRzX2RhdGEuaXRlbXMuZmluZChcbiAgICAgIChlKSA9PiBlLmlkLnRvU3RyaW5nKCkgPT09IGdldEV2ZW50SWRGcm9tVVJMKCksXG4gICAgKTtcblxuICAgIGlmIChldmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdmFsaWRhdGVFdmVudChldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSwgW2V2ZW50c19kYXRhLmZvY3VzZWRFdmVudF0pO1xuXG4gIGNvbnN0IHRyaWdnZXJTb3J0ID0gKHNvcnQ6IG51bWJlcikgPT4ge1xuICAgIGlmIChnbG9iYWxfZGF0YS5hY3RpdmVGaWx0ZXIgIT09IG51bGwpIHtcbiAgICAgIGxldCBLUUw7XG4gICAgICBsZXQgVVJMO1xuICAgICAgc3dpdGNoIChzb3J0KSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBLUUwgPSBgJHtidWlsZEtRTFF1ZXJ5KGdsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlciwgJ25ld2VzdCcpfWA7XG4gICAgICAgICAgVVJMID0gYC8ke1xuICAgICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0Lm5hbWVcbiAgICAgICAgICB9L2luZGV4P3dhdGVyX2F1dGhvcml0eV9pZD0ke1xuICAgICAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZFxuICAgICAgICAgIH0mZXZlbnRJZD0ke2dldEV2ZW50SWRGcm9tVVJMKCl9JmxvY2FsZT0ke1xuICAgICAgICAgICAgbmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZVxuICAgICAgICAgIH0mdmFsdWVzRnJvbUtRTD0ke0tRTH0mdmFsaWRFdmVudD0ke3ZhbGlkRXZlbnR9YDtcbiAgICAgICAgICBoaXN0b3J5LnB1c2goVVJMKTtcbiAgICAgICAgICBkaXNwYXRjaChzZXRFdmVudEZpbHRlclBhcmFtKEtRTCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgS1FMID0gYCR7YnVpbGRLUUxRdWVyeShnbG9iYWxfZGF0YS5hY3RpdmVGaWx0ZXIsICdvbGRlc3QnKX1gO1xuICAgICAgICAgIFVSTCA9IGAvJHtcbiAgICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lXG4gICAgICAgICAgfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRcbiAgICAgICAgICB9JmV2ZW50SWQ9JHtnZXRFdmVudElkRnJvbVVSTCgpfSZsb2NhbGU9JHtcbiAgICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGVcbiAgICAgICAgICB9JnZhbHVlc0Zyb21LUUw9JHtLUUx9JnZhbGlkRXZlbnQ9JHt2YWxpZEV2ZW50fWA7XG4gICAgICAgICAgaGlzdG9yeS5wdXNoKFVSTCk7XG4gICAgICAgICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbShLUUwpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIEtRTCA9IGAke2J1aWxkS1FMUXVlcnkoZ2xvYmFsX2RhdGEuYWN0aXZlRmlsdGVyLCAnc2V2ZXJpdHknKX1gO1xuICAgICAgICAgIFVSTCA9IGAvJHtcbiAgICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5uYW1lXG4gICAgICAgICAgfS9pbmRleD93YXRlcl9hdXRob3JpdHlfaWQ9JHtcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRcbiAgICAgICAgICB9JmV2ZW50SWQ9JHtnZXRFdmVudElkRnJvbVVSTCgpfSZsb2NhbGU9JHtcbiAgICAgICAgICAgIG5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGVcbiAgICAgICAgICB9JnZhbHVlc0Zyb21LUUw9JHtLUUx9JnZhbGlkRXZlbnQ9JHt2YWxpZEV2ZW50fWA7XG4gICAgICAgICAgaGlzdG9yeS5wdXNoKFVSTCk7XG4gICAgICAgICAgZGlzcGF0Y2goc2V0RXZlbnRGaWx0ZXJQYXJhbShLUUwpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgY2FsY0V2ZW50c1JlYWxBbW91bnQgPSAoKSA9PiB7XG4gICAgbGV0IGV2ZW50c0NvdW50OiBudW1iZXIgfCBzdHJpbmcgPSAwO1xuICAgIGV2ZW50c0NvdW50ID0gZXZlbnRzX2RhdGEuZXZlbnRzX2NvdW50O1xuICAgIGlmIChldmVudHNDb3VudCA+IDUwKVxuICAgICAgZXZlbnRzQ291bnQgPSBgJHtpMThuLnQoJ2V2ZW50c19vdmVydmlldy5tb3JlX3RoYW4nKX0gNTBgO1xuXG4gICAgcmV0dXJuIGV2ZW50c0NvdW50O1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hFdmVudHMod2F0ZXJBdXRob3JpdHlJZCwgZ2V0S1FMVmFsdWVzRnJvbVVSTCgpIHx8ICdERUZBVUxUJykpO1xuICB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCwgZ2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgIWV2ZW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICFlZGdlc19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICFwb2ludHNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAhYXJlYXNfZGF0YS5pc0ZldGNoaW5nXG4gICAgKSB7XG4gICAgICBzZXRGb2N1c2VkRXZlbnRJZkZvdW5kSW5QYXJhbXMoKTtcbiAgICB9XG4gIH0sIFtcbiAgICBldmVudHNfZGF0YS5pc0ZldGNoaW5nLFxuICAgIGVkZ2VzX2RhdGEuaXNGZXRjaGluZyxcbiAgICBwb2ludHNfZGF0YS5pc0ZldGNoaW5nLFxuICAgIGFyZWFzX2RhdGEuaXNGZXRjaGluZyxcbiAgICBnbG9iYWxfZGF0YS5ldmVudEZpbHRlclBhcmFtLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXsnc2lkZW5hdiAnICsgKHNpZGVuYXZFeHBhbmRlZCA/ICcnIDogJ3NpZGVuYXYtLWNvbGxhcHNlZCcpfT5cbiAgICAgIHtnbG9iYWxfZGF0YS5tb3JlSW5mbyAhPT0gdW5kZWZpbmVkICYmIGdsb2JhbF9kYXRhLm1vcmVJbmZvLmFjdGl2ZSAmJiAoXG4gICAgICAgIDxNb3JlSW5mbyAvPlxuICAgICAgKX1cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICdldmVudC1pbmZvICcgK1xuICAgICAgICAgICghaG92ZXJlZEV2ZW50ICYmIGZvY3VzZWRFdmVudCAhPT0gbnVsbFxuICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgOiAnZXZlbnQtaW5mby0tY29sbGFwc2VkJylcbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICB7IWhvdmVyZWRFdmVudCAmJiBmb2N1c2VkRXZlbnQgIT09IG51bGwgJiYgKFxuICAgICAgICAgIDxFdmVudEluZm9cbiAgICAgICAgICAgIGV2ZW50PXtmb2N1c2VkRXZlbnR9XG4gICAgICAgICAgICByZU9wZW5GaWx0ZXI9eygpID0+IHNldEZpbHRlclBvcHVwT3Blbih0cnVlKX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cInRvZ2dsZS1leHBhbnNpb24tYnV0dG9uXCJcbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIGhhbmRsZUV4cGFuc2lvblRvZ2dsZSgpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5hdi1leHBhbnNpb24taWNvblwiPlxuICAgICAgICAgIDxGb250QXdlc29tZUljb25cbiAgICAgICAgICAgIGljb249e3NpZGVuYXZFeHBhbmRlZCA/IGZhQ2FyZXRMZWZ0IDogZmFDYXJldFJpZ2h0fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17J3RvZ2dsZS1leHBhbnNpb24tYnV0dG9uLW1vYmlsZSd9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICBoYW5kbGVFeHBhbnNpb25Ub2dnbGUoKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGEgaHJlZj1cIiNcIj5cbiAgICAgICAgICA8Rm9udEF3ZXNvbWVJY29uIGljb249e2ZhQXJyb3dMZWZ0fSAvPlxuICAgICAgICAgIDxzcGFuPiB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuYmFja190b19kZXRhaWxzJyl9PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXZlbnRzLWhlYWRlclwiPlxuICAgICAgICB7bGFzdFZpc2l0ZWQgJiYgIWlzRmV0Y2hpbmcgJiYgKFxuICAgICAgICAgIDxMaW5rIGNsYXNzTmFtZT1cImJhY2tcIiB0bz17bGFzdFZpc2l0ZWR9PlxuICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgc3JjPXtMZWZ0QXJyb3dJY29ufVxuICAgICAgICAgICAgICBoZWlnaHQ9XCIxMHB4XCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxMnB4XCJcbiAgICAgICAgICAgICAgYWx0PVwiYmFja1wiXG4gICAgICAgICAgICAvPnsnICd9XG4gICAgICAgICAgICB7aTE4bi50KCdhcmVhX3NjcmVlbi5iYWNrJyl9XG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICApfVxuICAgICAgICA8aDQ+XG4gICAgICAgICAge2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmV2ZW50c19saXN0Jyl9XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsnZXZlbnRzLWhlYWRlcl9fZXZlbnRzX2Ftb3VudCd9PlxuICAgICAgICAgICAgKHtjYWxjRXZlbnRzUmVhbEFtb3VudCgpfSlcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvaDQ+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyaW5nXCI+XG4gICAgICAgICAge2V2ZW50c19kYXRhLml0ZW1zLmxlbmd0aCAhPT0gMCAmJiAoXG4gICAgICAgICAgICA8U29ydFxuICAgICAgICAgICAgICB0cmlnZ2VyU29ydD17dHJpZ2dlclNvcnR9XG4gICAgICAgICAgICAgIGV2ZW50cz17ZXZlbnRzX2RhdGEuaXRlbXN9XG4gICAgICAgICAgICAgIGV2ZW50c0ZldGNoaW5nPXtldmVudHNfZGF0YS5pc0ZldGNoaW5nfVxuICAgICAgICAgICAgICBhY3RpdmVGaWx0ZXI9e2dsb2JhbF9kYXRhLmFjdGl2ZUZpbHRlcn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImljb25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZpbHRlclwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEZpbHRlclBvcHVwT3BlbighZmlsdGVyUG9wdXBPcGVuKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEZpbHRlckljb24gd2lkdGg9XCIxN3B4XCIgaGVpZ2h0PVwiMTdweFwiIGZpbGw9XCIjZjYwMDRmXCIgLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICB7cG9pbnRzX2RhdGEuaXRlbXMubGVuZ3RoICE9PSAwICYmICFmb2N1c2VkRXZlbnQgJiYgKFxuICAgICAgICAgIDxGaWx0ZXJDb250YWluZXJcbiAgICAgICAgICAgIGZpbHRlclBvcHVwT3Blbj17ZmlsdGVyUG9wdXBPcGVufVxuICAgICAgICAgICAgZmV0Y2hUeXBlPXsnRXZlbnRGaWx0ZXInfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXZlbnRzLWNvbnRhaW5lciBzY3JvbGxiYXIgXCI+XG4gICAgICAgIHtsb2FkZXIoKX1cbiAgICAgICAgeyFpc0ZldGNoaW5nICYmXG4gICAgICAgICAgaXRlbXMubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgIXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZXZlbnRzX19ibGFua3NsYXRlJ30+XG4gICAgICAgICAgICAgIDxpbWcgc3JjPXtOb0V2ZW50c0ltYWdlfSBhbHQ9XCJOb0V2ZW50c0ljb25cIiAvPlxuICAgICAgICAgICAgICA8aDI+e2kxOG4udCgnZXZlbnRzX292ZXJ2aWV3LmZpbHRlci5ibGFua3NsYXRlLmhlYWRlcicpfTwvaDI+XG4gICAgICAgICAgICAgIDxwPntpMThuLnQoJ2V2ZW50c19vdmVydmlldy5maWx0ZXIuYmxhbmtzbGF0ZS5ib2R5Jyl9PC9wPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17J2FwcGx5X2RlZmF1bHRfZmlsdGVyX2J1dHRvbid9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gYXBwbHlEZWZhdWx0RmlsdGVyKCl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdldmVudHNfb3ZlcnZpZXcuZmlsdGVyLmJsYW5rc2xhdGUuYnV0dG9uJyl9XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIHtpdGVtcy5sZW5ndGggIT09IDAgJiZcbiAgICAgICAgICAhYXJlYXNfZGF0YS5pc0ZldGNoaW5nICYmXG4gICAgICAgICAgIXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiZcbiAgICAgICAgICAhZWRnZXNfZGF0YS5pc0ZldGNoaW5nICYmIChcbiAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJldmVudHMgXCI+XG4gICAgICAgICAgICAgIHtpdGVtcy5tYXAoKGV2ZW50OiBhbnkpID0+IChcbiAgICAgICAgICAgICAgICA8bGkga2V5PXtldmVudC5pZH0gY2xhc3NOYW1lPVwiZXZlbnRcIiBkYXRhLWV2ZW50LWlkPXtldmVudC5pZH0+XG4gICAgICAgICAgICAgICAgICA8U2V2ZXJlRXZlbnRcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQ9e2V2ZW50fVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVDbGljaz17aGFuZGxlRXZlbnRJdGVtQ2xpY2t9XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlckV2ZW50PXtvbk1vdXNlRW50ZXJFdmVudH1cbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlRXZlbnQ9e29uTW91c2VMZWF2ZUV2ZW50fVxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZUV2ZW50PXt2YWxpZGF0ZUV2ZW50fVxuICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25BbGVydD17ZXhjZXB0aW9uQWxlcnR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoRXZlbnRzTGlzdCk7XG4iXX0=
|