Comparing version 0.3.9 to 0.3.10
@@ -79,2 +79,2 @@ 'use strict'; | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9maWx0ZXIuanMiXSwibmFtZXMiOlsiZmlsdGVyIiwibGl2ZVNldCIsImNiIiwicmVhZCIsInJldCIsInZhbHVlcyIsImZvckVhY2giLCJ2YWx1ZSIsImFkZCIsImxpc3RlbiIsInNldFZhbHVlcyIsImNvbnRyb2xsZXIiLCJwYXNzZWRGaWx0ZXIiLCJzdWIiLCJzdWJzY3JpYmUiLCJzdGFydCIsImluaXRpYWxWYWx1ZXMiLCJuZXh0IiwiY2hhbmdlcyIsImNoYW5nZSIsInR5cGUiLCJoYXMiLCJkZWxldGUiLCJyZW1vdmUiLCJlcnJvciIsImVyciIsImNvbXBsZXRlIiwiZW5kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O2tCQVd3QkEsTTs7QUFSeEI7Ozs7OztBQUtBOztBQUVBO0FBQ2UsU0FBU0EsTUFBVCxDQUFtQkMsT0FBbkIsRUFBd0NDLEVBQXhDLEVBQTJFO0FBQ3hGLFNBQU8sZUFBWTtBQUNqQkMsUUFEaUIsa0JBQ1Y7QUFDTCxVQUFNQyxNQUFNLG1CQUFaO0FBQ0FILGNBQVFJLE1BQVIsR0FBaUJDLE9BQWpCLENBQXlCLGlCQUFTO0FBQ2hDLFlBQUlKLEdBQUdLLEtBQUgsQ0FBSixFQUFlO0FBQ2JILGNBQUlJLEdBQUosQ0FBUUQsS0FBUjtBQUNEO0FBQ0YsT0FKRDtBQUtBLGFBQU9ILEdBQVA7QUFDRCxLQVRnQjtBQVVqQkssVUFWaUIsa0JBVVZDLFNBVlUsRUFVQ0MsVUFWRCxFQVVhO0FBQzVCLFVBQU1DLGVBQWUsbUJBQXJCOztBQUVBLFVBQU1DLE1BQU1aLFFBQVFhLFNBQVIsQ0FBa0I7QUFDNUJDLGFBRDRCLG1CQUNwQjtBQUNOLGNBQU1DLGdCQUFnQixtQkFBdEI7QUFDQWYsa0JBQVFJLE1BQVIsR0FBaUJDLE9BQWpCLENBQXlCLGlCQUFTO0FBQ2hDLGdCQUFJSixHQUFHSyxLQUFILENBQUosRUFBZTtBQUNiSywyQkFBYUosR0FBYixDQUFpQkQsS0FBakI7QUFDQVMsNEJBQWNSLEdBQWQsQ0FBa0JELEtBQWxCO0FBQ0Q7QUFDRixXQUxEO0FBTUFHLG9CQUFVTSxhQUFWO0FBQ0QsU0FWMkI7QUFXNUJDLFlBWDRCLGdCQVd2QkMsT0FYdUIsRUFXZDtBQUNaQSxrQkFBUVosT0FBUixDQUFnQixrQkFBVTtBQUN4QixnQkFBSWEsT0FBT0MsSUFBUCxLQUFnQixLQUFwQixFQUEyQjtBQUN6QixrQkFBSWxCLEdBQUdpQixPQUFPWixLQUFWLENBQUosRUFBc0I7QUFDcEJLLDZCQUFhSixHQUFiLENBQWlCVyxPQUFPWixLQUF4QjtBQUNBSSwyQkFBV0gsR0FBWCxDQUFlVyxPQUFPWixLQUF0QjtBQUNEO0FBQ0YsYUFMRCxNQUtPLElBQUlZLE9BQU9DLElBQVAsS0FBZ0IsUUFBcEIsRUFBOEI7QUFDbkMsa0JBQUlSLGFBQWFTLEdBQWIsQ0FBaUJGLE9BQU9aLEtBQXhCLENBQUosRUFBb0M7QUFDbENLLDZCQUFhVSxNQUFiLENBQW9CSCxPQUFPWixLQUEzQjtBQUNBSSwyQkFBV1ksTUFBWCxDQUFrQkosT0FBT1osS0FBekI7QUFDRDtBQUNGO0FBQ0YsV0FaRDtBQWFELFNBekIyQjtBQTBCNUJpQixhQTFCNEIsaUJBMEJ0QkMsR0ExQnNCLEVBMEJqQjtBQUNUZCxxQkFBV2EsS0FBWCxDQUFpQkMsR0FBakI7QUFDRCxTQTVCMkI7QUE2QjVCQyxnQkE3QjRCLHNCQTZCakI7QUFDVGYscUJBQVdnQixHQUFYO0FBQ0Q7QUEvQjJCLE9BQWxCLENBQVo7O0FBa0NBLGFBQU9kLEdBQVA7QUFDRDtBQWhEZ0IsR0FBWixDQUFQO0FBa0REO0FBQ0Q7O0FBOURBIiwiZmlsZSI6ImZpbHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycywgbm8tcmVkZWNsYXJlICovXG5cbmltcG9ydCBMaXZlU2V0IGZyb20gJy4nO1xuXG5kZWNsYXJlIGZ1bmN0aW9uIGZpbHRlcjxUPihsaXZlU2V0OiBMaXZlU2V0PFQ+LCBjYjogdHlwZW9mIEJvb2xlYW4pOiBMaXZlU2V0PCROb25NYXliZVR5cGU8VD4+O1xuZGVjbGFyZSBmdW5jdGlvbiBmaWx0ZXI8VD4obGl2ZVNldDogTGl2ZVNldDxUPiwgY2I6ICh2YWx1ZTogVCkgPT4gYW55KTogTGl2ZVNldDxUPjtcblxuLyo6OiBleHBvcnQgZGVmYXVsdCBmaWx0ZXI7ICovXG5cbi8qOjogYCAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZmlsdGVyPFQ+KGxpdmVTZXQ6IExpdmVTZXQ8VD4sIGNiOiAodmFsdWU6IFQpID0+IGFueSk6IExpdmVTZXQ8VD4ge1xuICByZXR1cm4gbmV3IExpdmVTZXQoe1xuICAgIHJlYWQoKSB7XG4gICAgICBjb25zdCByZXQgPSBuZXcgU2V0KCk7XG4gICAgICBsaXZlU2V0LnZhbHVlcygpLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICBpZiAoY2IodmFsdWUpKSB7XG4gICAgICAgICAgcmV0LmFkZCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9LFxuICAgIGxpc3RlbihzZXRWYWx1ZXMsIGNvbnRyb2xsZXIpIHtcbiAgICAgIGNvbnN0IHBhc3NlZEZpbHRlciA9IG5ldyBTZXQoKTtcblxuICAgICAgY29uc3Qgc3ViID0gbGl2ZVNldC5zdWJzY3JpYmUoe1xuICAgICAgICBzdGFydCgpIHtcbiAgICAgICAgICBjb25zdCBpbml0aWFsVmFsdWVzID0gbmV3IFNldCgpO1xuICAgICAgICAgIGxpdmVTZXQudmFsdWVzKCkuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBpZiAoY2IodmFsdWUpKSB7XG4gICAgICAgICAgICAgIHBhc3NlZEZpbHRlci5hZGQodmFsdWUpO1xuICAgICAgICAgICAgICBpbml0aWFsVmFsdWVzLmFkZCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc2V0VmFsdWVzKGluaXRpYWxWYWx1ZXMpO1xuICAgICAgICB9LFxuICAgICAgICBuZXh0KGNoYW5nZXMpIHtcbiAgICAgICAgICBjaGFuZ2VzLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2UudHlwZSA9PT0gJ2FkZCcpIHtcbiAgICAgICAgICAgICAgaWYgKGNiKGNoYW5nZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBwYXNzZWRGaWx0ZXIuYWRkKGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5hZGQoY2hhbmdlLnZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UudHlwZSA9PT0gJ3JlbW92ZScpIHtcbiAgICAgICAgICAgICAgaWYgKHBhc3NlZEZpbHRlci5oYXMoY2hhbmdlLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHBhc3NlZEZpbHRlci5kZWxldGUoY2hhbmdlLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLnJlbW92ZShjaGFuZ2UudmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yKGVycikge1xuICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGUoKSB7XG4gICAgICAgICAgY29udHJvbGxlci5lbmQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBzdWI7XG4gICAgfVxuICB9KTtcbn1cbi8qOjogYCAqL1xuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9maWx0ZXIuanMiXSwibmFtZXMiOlsiZmlsdGVyIiwibGl2ZVNldCIsImNiIiwicmVhZCIsInJldCIsInZhbHVlcyIsImZvckVhY2giLCJ2YWx1ZSIsImFkZCIsImxpc3RlbiIsInNldFZhbHVlcyIsImNvbnRyb2xsZXIiLCJwYXNzZWRGaWx0ZXIiLCJzdWIiLCJzdWJzY3JpYmUiLCJzdGFydCIsImluaXRpYWxWYWx1ZXMiLCJuZXh0IiwiY2hhbmdlcyIsImNoYW5nZSIsInR5cGUiLCJoYXMiLCJkZWxldGUiLCJyZW1vdmUiLCJlcnJvciIsImVyciIsImNvbXBsZXRlIiwiZW5kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O2tCQVd3QkEsTTs7QUFSeEI7Ozs7OztBQUtBOztBQUVBO0FBQ2UsU0FBU0EsTUFBVCxDQUFtQkMsT0FBbkIsRUFBd0NDLEVBQXhDLEVBQTJFO0FBQ3hGLFNBQU8sZUFBWTtBQUNqQkMsUUFEaUIsa0JBQ1Y7QUFDTCxVQUFNQyxNQUFNLG1CQUFaO0FBQ0FILGNBQVFJLE1BQVIsR0FBaUJDLE9BQWpCLENBQXlCLGlCQUFTO0FBQ2hDLFlBQUlKLEdBQUdLLEtBQUgsQ0FBSixFQUFlO0FBQ2JILGNBQUlJLEdBQUosQ0FBUUQsS0FBUjtBQUNEO0FBQ0YsT0FKRDtBQUtBLGFBQU9ILEdBQVA7QUFDRCxLQVRnQjtBQVVqQkssVUFWaUIsa0JBVVZDLFNBVlUsRUFVQ0MsVUFWRCxFQVVhO0FBQzVCLFVBQU1DLGVBQWUsbUJBQXJCOztBQUVBLFVBQU1DLE1BQU1aLFFBQVFhLFNBQVIsQ0FBa0I7QUFDNUJDLGFBRDRCLG1CQUNwQjtBQUNOLGNBQU1DLGdCQUFnQixtQkFBdEI7QUFDQWYsa0JBQVFJLE1BQVIsR0FBaUJDLE9BQWpCLENBQXlCLGlCQUFTO0FBQ2hDLGdCQUFJSixHQUFHSyxLQUFILENBQUosRUFBZTtBQUNiSywyQkFBYUosR0FBYixDQUFpQkQsS0FBakI7QUFDQVMsNEJBQWNSLEdBQWQsQ0FBa0JELEtBQWxCO0FBQ0Q7QUFDRixXQUxEO0FBTUFHLG9CQUFVTSxhQUFWO0FBQ0QsU0FWMkI7QUFXNUJDLFlBWDRCLGdCQVd2QkMsT0FYdUIsRUFXZDtBQUNaQSxrQkFBUVosT0FBUixDQUFnQixrQkFBVTtBQUN4QixnQkFBSWEsT0FBT0MsSUFBUCxLQUFnQixLQUFwQixFQUEyQjtBQUN6QixrQkFBSWxCLEdBQUdpQixPQUFPWixLQUFWLENBQUosRUFBc0I7QUFDcEJLLDZCQUFhSixHQUFiLENBQWlCVyxPQUFPWixLQUF4QjtBQUNBSSwyQkFBV0gsR0FBWCxDQUFlVyxPQUFPWixLQUF0QjtBQUNEO0FBQ0YsYUFMRCxNQUtPLElBQUlZLE9BQU9DLElBQVAsS0FBZ0IsUUFBcEIsRUFBOEI7QUFDbkMsa0JBQUlSLGFBQWFTLEdBQWIsQ0FBaUJGLE9BQU9aLEtBQXhCLENBQUosRUFBb0M7QUFDbENLLDZCQUFhVSxNQUFiLENBQW9CSCxPQUFPWixLQUEzQjtBQUNBSSwyQkFBV1ksTUFBWCxDQUFrQkosT0FBT1osS0FBekI7QUFDRDtBQUNGO0FBQ0YsV0FaRDtBQWFELFNBekIyQjtBQTBCNUJpQixhQTFCNEIsaUJBMEJ0QkMsR0ExQnNCLEVBMEJqQjtBQUNUZCxxQkFBV2EsS0FBWCxDQUFpQkMsR0FBakI7QUFDRCxTQTVCMkI7QUE2QjVCQyxnQkE3QjRCLHNCQTZCakI7QUFDVGYscUJBQVdnQixHQUFYO0FBQ0Q7QUEvQjJCLE9BQWxCLENBQVo7O0FBa0NBLGFBQU9kLEdBQVA7QUFDRDtBQWhEZ0IsR0FBWixDQUFQO0FBa0REO0FBQ0Q7O0FBOURBIiwiZmlsZSI6ImZpbHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycywgbm8tcmVkZWNsYXJlICovXG5cbmltcG9ydCBMaXZlU2V0IGZyb20gJy4nO1xuXG5kZWNsYXJlIGZ1bmN0aW9uIGZpbHRlcjxUPihsaXZlU2V0OiBMaXZlU2V0PFQ+LCBjYjogdHlwZW9mIEJvb2xlYW4pOiBMaXZlU2V0PCROb25NYXliZVR5cGU8VD4+O1xuZGVjbGFyZSBmdW5jdGlvbiBmaWx0ZXI8VD4obGl2ZVNldDogTGl2ZVNldDxUPiwgY2I6ICh2YWx1ZTogVCkgPT4gYW55KTogTGl2ZVNldDxUPjtcblxuLyo6OiBleHBvcnQgZGVmYXVsdCBmaWx0ZXI7ICovXG5cbi8qOjogYCAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZmlsdGVyPFQ+KGxpdmVTZXQ6IExpdmVTZXQ8VD4sIGNiOiAodmFsdWU6IFQpID0+IGFueSk6IExpdmVTZXQ8VD4ge1xuICByZXR1cm4gbmV3IExpdmVTZXQoe1xuICAgIHJlYWQoKSB7XG4gICAgICBjb25zdCByZXQgPSBuZXcgU2V0KCk7XG4gICAgICBsaXZlU2V0LnZhbHVlcygpLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICBpZiAoY2IodmFsdWUpKSB7XG4gICAgICAgICAgcmV0LmFkZCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9LFxuICAgIGxpc3RlbihzZXRWYWx1ZXMsIGNvbnRyb2xsZXIpIHtcbiAgICAgIGNvbnN0IHBhc3NlZEZpbHRlciA9IG5ldyBTZXQoKTtcblxuICAgICAgY29uc3Qgc3ViID0gbGl2ZVNldC5zdWJzY3JpYmUoe1xuICAgICAgICBzdGFydCgpIHtcbiAgICAgICAgICBjb25zdCBpbml0aWFsVmFsdWVzID0gbmV3IFNldCgpO1xuICAgICAgICAgIGxpdmVTZXQudmFsdWVzKCkuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBpZiAoY2IodmFsdWUpKSB7XG4gICAgICAgICAgICAgIHBhc3NlZEZpbHRlci5hZGQodmFsdWUpO1xuICAgICAgICAgICAgICBpbml0aWFsVmFsdWVzLmFkZCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc2V0VmFsdWVzKGluaXRpYWxWYWx1ZXMpO1xuICAgICAgICB9LFxuICAgICAgICBuZXh0KGNoYW5nZXMpIHtcbiAgICAgICAgICBjaGFuZ2VzLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2UudHlwZSA9PT0gJ2FkZCcpIHtcbiAgICAgICAgICAgICAgaWYgKGNiKGNoYW5nZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBwYXNzZWRGaWx0ZXIuYWRkKGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5hZGQoY2hhbmdlLnZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UudHlwZSA9PT0gJ3JlbW92ZScpIHtcbiAgICAgICAgICAgICAgaWYgKHBhc3NlZEZpbHRlci5oYXMoY2hhbmdlLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHBhc3NlZEZpbHRlci5kZWxldGUoY2hhbmdlLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLnJlbW92ZShjaGFuZ2UudmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yKGVycikge1xuICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGUoKSB7XG4gICAgICAgICAgY29udHJvbGxlci5lbmQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBzdWI7XG4gICAgfVxuICB9KTtcbn1cbi8qOjogYCAqL1xuIl19 |
@@ -49,29 +49,36 @@ 'use strict'; | ||
function childSetSubscribe(childSet) { | ||
childSet.subscribe({ | ||
start: function start(sub) { | ||
childSetSubs.set(childSet, sub); | ||
childSet.values().forEach(function (value) { | ||
controller.add(value); | ||
}); | ||
}, | ||
next: function next(changes) { | ||
nextHasFired = true; | ||
changes.forEach(function (change) { | ||
if (change.type === 'add') { | ||
controller.add(change.value); | ||
} else if (change.type === 'remove') { | ||
controller.remove(change.value); | ||
if (childSet.isEnded()) { | ||
// optimization | ||
childSet.values().forEach(function (value) { | ||
controller.add(value); | ||
}); | ||
} else { | ||
childSet.subscribe({ | ||
start: function start(sub) { | ||
childSetSubs.set(childSet, sub); | ||
childSet.values().forEach(function (value) { | ||
controller.add(value); | ||
}); | ||
}, | ||
next: function next(changes) { | ||
nextHasFired = true; | ||
changes.forEach(function (change) { | ||
if (change.type === 'add') { | ||
controller.add(change.value); | ||
} else if (change.type === 'remove') { | ||
controller.remove(change.value); | ||
} | ||
}); | ||
}, | ||
error: function error(err) { | ||
controller.error(err); | ||
}, | ||
complete: function complete() { | ||
childSetSubs.delete(childSet); | ||
if (mainSubCompleted && childSetSubs.size === 0) { | ||
controller.end(); | ||
} | ||
}); | ||
}, | ||
error: function error(err) { | ||
controller.error(err); | ||
}, | ||
complete: function complete() { | ||
childSetSubs.delete(childSet); | ||
if (mainSubCompleted && childSetSubs.size === 0) { | ||
controller.end(); | ||
} | ||
} | ||
}); | ||
}); | ||
} | ||
} | ||
@@ -155,2 +162,2 @@ | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9mbGF0TWFwLmpzIl0sIm5hbWVzIjpbImZsYXRNYXAiLCJsaXZlU2V0IiwiY2IiLCJpc1JlYWRpbmciLCJyZWFkIiwiRXJyb3IiLCJzIiwidmFsdWVzIiwiZm9yRWFjaCIsImNoaWxkU2V0IiwidmFsdWUiLCJhZGQiLCJsaXN0ZW4iLCJzZXRWYWx1ZXMiLCJjb250cm9sbGVyIiwibWFpblN1YkNvbXBsZXRlZCIsImhhc1N1YnNjcmliZWRUb0NoaWxkcmVuIiwibmV4dEhhc0ZpcmVkIiwiY2hpbGRTZXRTdWJzIiwiY2hpbGRTZXRTdWJzY3JpYmUiLCJzdWJzY3JpYmUiLCJzdGFydCIsInN1YiIsInNldCIsIm5leHQiLCJjaGFuZ2VzIiwiY2hhbmdlIiwidHlwZSIsInJlbW92ZSIsImVycm9yIiwiZXJyIiwiY29tcGxldGUiLCJkZWxldGUiLCJzaXplIiwiZW5kIiwiY2hpbGRTZXRzIiwibWFpblN1YiIsImdldCIsImNoaWxkU2V0U3ViIiwidW5zdWJzY3JpYmUiLCJpc1B1bGxpbmdDaGFuZ2VzIiwiY2xlYXIiLCJwdWxsQ2hhbmdlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7a0JBS3dCQSxPOztBQUh4Qjs7Ozs7O0FBR2UsU0FBU0EsT0FBVCxDQUFzQkMsT0FBdEIsRUFBMkNDLEVBQTNDLEVBQXFGO0FBQ2xHLE1BQUlDLFlBQVksS0FBaEI7O0FBRUEsU0FBTyxlQUFZO0FBQ2pCQyxRQURpQixrQkFDVjtBQUNMLFVBQUlELFNBQUosRUFBZTtBQUNiLGNBQU0sSUFBSUUsS0FBSixDQUFVLGlFQUFWLENBQU47QUFDRDtBQUNERixrQkFBWSxJQUFaO0FBQ0EsVUFBTUcsSUFBSSxtQkFBVjtBQUNBTCxjQUFRTSxNQUFSLEdBQWlCQyxPQUFqQixDQUF5QixpQkFBUztBQUNoQyxZQUFNQyxXQUFXUCxHQUFHUSxLQUFILENBQWpCO0FBQ0FELGlCQUFTRixNQUFULEdBQWtCQyxPQUFsQixDQUEwQixpQkFBUztBQUNqQ0YsWUFBRUssR0FBRixDQUFNRCxL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Q0FBaUI1QixTQUFqQixDQUFwQjtBQUNBLGtCQUFJNkIsV0FBSixFQUFpQjtBQUNmO0FBQ0FBLDRCQUFZQyxXQUFaO0FBQ0FyQiw2QkFBYWMsTUFBYixDQUFvQnZCLFNBQXBCO0FBQ0Q7QUFDRjtBQUNGLFdBbkJEO0FBb0JELFNBL0IrQjtBQWdDaENvQixhQWhDZ0MsaUJBZ0MxQkMsR0FoQzBCLEVBZ0NyQjtBQUNUaEIscUJBQVdlLEtBQVgsQ0FBaUJDLEdBQWpCO0FBQ0QsU0FsQytCO0FBbUNoQ0MsZ0JBbkNnQyxzQkFtQ3JCO0FBQ1RoQiw2QkFBbUIsSUFBbkI7QUFDQSxjQUFJQywyQkFBMkJFLGFBQWFlLElBQWIsS0FBc0IsQ0FBckQsRUFBd0Q7QUFDdERuQix1QkFBV29CLEdBQVg7QUFDRDtBQUNGO0FBeEMrQixPQUFsQixDQUFoQjs7QUEyQ0EsVUFBSU0sbUJBQW1CLEtBQXZCO0FBQ0EsYUFBTztBQUNMRCxtQkFESyx5QkFDUztBQUNaSCxrQkFBUUcsV0FBUjtBQUNBckIsdUJBQWFWLE9BQWIsQ0FBcUIsZUFBTztBQUMxQmMsZ0JBQUlpQixXQUFKO0FBQ0QsV0FGRDtBQUdBSixvQkFBVU0sS0FBVjtBQUNBdkIsdUJBQWF1QixLQUFiO0FBQ0QsU0FSSTtBQVNMQyxtQkFUSyx5QkFTUztBQUNaLGNBQUlGLGdCQUFKLEVBQXNCO0FBQ3RCQSw2QkFBbUIsSUFBbkI7O0FBRUEsYUFBRztBQUNEdkIsMkJBQWUsS0FBZjtBQUNBbUIsb0JBQVFNLFdBQVI7QUFDQXhCLHlCQUFhVixPQUFiLENBQXFCLGVBQU87QUFDMUJjLGtCQUFJb0IsV0FBSjtBQUNELGFBRkQ7QUFHRCxXQU5ELFFBTVN6QixZQU5UOztBQVFBdUIsNkJBQW1CLEtBQW5CO0FBQ0Q7QUF0QkksT0FBUDtBQXdCRDtBQTNIZ0IsR0FBWixDQUFQO0FBNkhEIiwiZmlsZSI6ImZsYXRNYXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgTGl2ZVNldCBmcm9tICcuJztcbmltcG9ydCB0eXBlIHtMaXZlU2V0U3Vic2NyaXB0aW9ufSBmcm9tICcuJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZmxhdE1hcDxULFU+KGxpdmVTZXQ6IExpdmVTZXQ8VD4sIGNiOiAodmFsdWU6IFQpID0+IExpdmVTZXQ8VT4pOiBMaXZlU2V0PFU+IHtcbiAgbGV0IGlzUmVhZGluZyA9IGZhbHNlO1xuXG4gIHJldHVybiBuZXcgTGl2ZVNldCh7XG4gICAgcmVhZCgpIHtcbiAgICAgIGlmIChpc1JlYWRpbmcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdyZWFkaW5nIGluYWN0aXZlIHJlY3Vyc2l2ZWx5LWZsYXRNYXBwZWQgc3RyZWFtIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICAgIH1cbiAgICAgIGlzUmVhZGluZyA9IHRydWU7XG4gICAgICBjb25zdCBzID0gbmV3IFNldCgpO1xuICAgICAgbGl2ZVNldC52YWx1ZXMoKS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgY29uc3QgY2hpbGRTZXQgPSBjYih2YWx1ZSk7XG4gICAgICAgIGNoaWxkU2V0LnZhbHVlcygpLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICAgIHMuYWRkKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIGlzUmVhZGluZyA9IGZhbHNlO1xuICAgICAgcmV0dXJuIHM7XG4gICAgfSxcbiAgICBsaXN0ZW4oc2V0VmFsdWVzLCBjb250cm9sbGVyKSB7XG4gICAgICBsZXQgbWFpblN1YkNvbXBsZXRlZCA9IGZhbHNlO1xuICAgICAgbGV0IGhhc1N1YnNjcmliZWRUb0NoaWxkcmVuID0gZmFsc2U7XG4gICAgICBsZXQgbmV4dEhhc0ZpcmVkID0gZmFsc2U7XG4gICAgICBjb25zdCBjaGlsZFNldFN1YnM6IE1hcDxMaXZlU2V0PFU+LCBMaXZlU2V0U3Vic2NyaXB0aW9uPiA9IG5ldyBNYXAoKTtcblxuICAgICAgZnVuY3Rpb24gY2hpbGRTZXRTdWJzY3JpYmUoY2hpbGRTZXQ6IExpdmVTZXQ8VT4pIHtcbiAgICAgICAgY2hpbGRTZXQuc3Vic2NyaWJlKHtcbiAgICAgICAgICBzdGFydChzdWIpIHtcbiAgICAgICAgICAgIGNoaWxkU2V0U3Vicy5zZXQoY2hpbGRTZXQsIHN1Yik7XG4gICAgICAgICAgICBjaGlsZFNldC52YWx1ZXMoKS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgY29udHJvbGxlci5hZGQodmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBuZXh0KGNoYW5nZXMpIHtcbiAgICAgICAgICAgIG5leHRIYXNGaXJlZCA9IHRydWU7XG4gICAgICAgICAgICBjaGFuZ2VzLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgICAgICAgaWYgKGNoYW5nZS50eXBlID09PSAnYWRkJykge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuYWRkKGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLnR5cGUgPT09ICdyZW1vdmUnKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5yZW1vdmUoY2hhbmdlLnZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcihlcnIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNvbXBsZXRlKCkge1xuICAgICAgICAgICAgY2hpbGRTZXRTdWJzLmRlbGV0ZShjaGlsZFNldCk7XG4gICAgICAgICAgICBpZiAobWFpblN1YkNvbXBsZXRlZCAmJiBjaGlsZFNldFN1YnMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgICBjb250cm9sbGVyLmVuZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHNldFZhbHVlcyhuZXcgU2V0KCkpO1xuICAgICAgY29uc3QgY2hpbGRTZXRzOiBNYXA8VCwgTGl2ZVNldDxVPj4gPSBuZXcgTWFwKCk7XG5cbiAgICAgIGNvbnN0IG1haW5TdWIgPSBsaXZlU2V0LnN1YnNjcmliZSh7XG4gICAgICAgIHN0YXJ0KCkge1xuICAgICAgICAgIGxpdmVTZXQudmFsdWVzKCkuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZFNldCA9IGNiKHZhbHVlKTtcbiAgICAgICAgICAgIGNoaWxkU2V0cy5zZXQodmFsdWUsIGNoaWxkU2V0KTtcbiAgICAgICAgICAgIGNoaWxkU2V0U3Vic2NyaWJlKGNoaWxkU2V0KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBoYXNTdWJzY3JpYmVkVG9DaGlsZHJlbiA9IHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIG5leHQoY2hhbmdlcykge1xuICAgICAgICAgIG5leHRIYXNGaXJlZCA9IHRydWU7XG4gICAgICAgICAgY2hhbmdlcy5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlLnR5cGUgPT09ICdhZGQnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNoaWxkU2V0ID0gY2IoY2hhbmdlLnZhbHVlKTtcbiAgICAgICAgICAgICAgY2hpbGRTZXRzLnNldChjaGFuZ2UudmFsdWUsIGNoaWxkU2V0KTtcbiAgICAgICAgICAgICAgY2hpbGRTZXRTdWJzY3JpYmUoY2hpbGRTZXQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UudHlwZSA9PT0gJ3JlbW92ZScpIHtcbiAgICAgICAgICAgICAgY29uc3QgY2hpbGRTZXQgPSBjaGlsZFNldHMuZ2V0KGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgICAgIGlmICghY2hpbGRTZXQpIHRocm93IG5ldyBFcnJvcigncmVtb3ZlZCB2YWx1ZSBub3QgaW4gbGl2ZXNldCcpO1xuICAgICAgICAgICAgICBjaGlsZFNldC52YWx1ZXMoKS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLnJlbW92ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBjaGlsZFNldHMuZGVsZXRlKGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgICAgIGNvbnN0IGNoaWxkU2V0U3ViID0gY2hpbGRTZXRTdWJzLmdldChjaGlsZFNldCk7XG4gICAgICAgICAgICAgIGlmIChjaGlsZFNldFN1Yikge1xuICAgICAgICAgICAgICAgIC8vIFdlIHdvbid0IGhhdmUgdGhlIHN1YnNjcmlwdGlvbiBpZiB0aGUgY2hpbGRTZXQgZW5kZWQgYWxyZWFkeVxuICAgICAgICAgICAgICAgIGNoaWxkU2V0U3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgY2hpbGRTZXRTdWJzLmRlbGV0ZShjaGlsZFNldCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3IoZXJyKSB7XG4gICAgICAgICAgY29udHJvbGxlci5lcnJvcihlcnIpO1xuICAgICAgICB9LFxuICAgICAgICBjb21wbGV0ZSgpIHtcbiAgICAgICAgICBtYWluU3ViQ29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgICBpZiAoaGFzU3Vic2NyaWJlZFRvQ2hpbGRyZW4gJiYgY2hpbGRTZXRTdWJzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5kKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgbGV0IGlzUHVsbGluZ0NoYW5nZXMgPSBmYWxzZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHVuc3Vic2NyaWJlKCkge1xuICAgICAgICAgIG1haW5TdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBjaGlsZFNldFN1YnMuZm9yRWFjaChzdWIgPT4ge1xuICAgICAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY2hpbGRTZXRzLmNsZWFyKCk7XG4gICAgICAgICAgY2hpbGRTZXRTdWJzLmNsZWFyKCk7XG4gICAgICAgIH0sXG4gICAgICAgIHB1bGxDaGFuZ2VzKCkge1xuICAgICAgICAgIGlmIChpc1B1bGxpbmdDaGFuZ2VzKSByZXR1cm47XG4gICAgICAgICAgaXNQdWxsaW5nQ2hhbmdlcyA9IHRydWU7XG5cbiAgICAgICAgICBkbyB7XG4gICAgICAgICAgICBuZXh0SGFzRmlyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIG1haW5TdWIucHVsbENoYW5nZXMoKTtcbiAgICAgICAgICAgIGNoaWxkU2V0U3Vicy5mb3JFYWNoKHN1YiA9PiB7XG4gICAgICAgICAgICAgIHN1Yi5wdWxsQ2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSB3aGlsZSAobmV4dEhhc0ZpcmVkKTtcblxuICAgICAgICAgIGlzUHVsbGluZ0NoYW5nZXMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH0pO1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9mbGF0TWFwLmpzIl0sIm5hbWVzIjpbImZsYXRNYXAiLCJsaXZlU2V0IiwiY2IiLCJpc1JlYWRpbmciLCJyZWFkIiwiRXJyb3IiLCJzIiwidmFsdWVzIiwiZm9yRWFjaCIsImNoaWxkU2V0IiwidmFsdWUiLCJhZGQiLCJsaXN0ZW4iLCJzZXRWYWx1ZXMiLCJjb250cm9sbGVyIiwibWFpblN1YkNvbXBsZXRlZCIsImhhc1N1YnNjcmliZWRUb0NoaWxkcmVuIiwibmV4dEhhc0ZpcmVkIiwiY2hpbGRTZXRTdWJzIiwiY2hpbGRTZXRTdWJzY3JpYmUiLCJpc0VuZGVkIiwic3Vic2NyaWJlIiwic3RhcnQiLCJzdWIiLCJzZXQiLCJuZXh0IiwiY2hhbmdlcyIsImNoYW5nZSIsInR5cGUiLCJyZW1vdmUiLCJlcnJvciIsImVyciIsImNvbXBsZXRlIiwiZGVsZXRlIiwic2l6ZSIsImVuZCIsImNoaWxkU2V0cyIsIm1haW5TdWIiLCJnZXQiLCJjaGlsZFNldFN1YiIsInVuc3Vic2NyaWJlIiwiaXNQdWxsaW5nQ2hhbmdlcyIsImNsZWFyIiwicHVsbENoYW5nZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O2tCQUt3QkEsTzs7QUFIeEI7Ozs7OztBQUdlLFNBQVNBLE9BQVQsQ0FBc0JDLE9BQXRCLEVBQTJDQyxFQUEzQyxFQUFxRjtBQUNsRyxNQUFJQyxZQUFZLEtBQWhCOztBQUVBLFNBQU8sZUFBWTtBQUNqQkMsUUFEaUIsa0JBQ1Y7QUFDTCxVQUFJRCxTQUFKLEVBQWU7QUFDYixjQUFNLElBQUlFLEtBQUosQ0FBVSxpRUFBVixDQUFOO0FBQ0Q7QUFDREYsa0JBQVksSUFBWjtBQUNBLFVBQU1HLElBQUksbUJBQVY7QUFDQUwsY0FBUU0sTUFBUixHQUFpQkMsT0FBakIsQ0FBeUIsaUJBQVM7QUFDaEMsWUFBTUMsV0FBV1AsR0FBR1EsS0FBSCxDQUFqQjtBQUNBRCxpQkFBU0YsTUFBVCxHQUFrQkMsT0FBbEIsQ0FBMEIsaUJBQVM7QUFDakNGLFlBQUVLLEdB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QkFBbUIsS0FBbkI7QUFDRDtBQXRCSSxPQUFQO0FBd0JEO0FBaklnQixHQUFaLENBQVA7QUFtSUQiLCJmaWxlIjoiZmxhdE1hcC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCBMaXZlU2V0IGZyb20gJy4nO1xuaW1wb3J0IHR5cGUge0xpdmVTZXRTdWJzY3JpcHRpb259IGZyb20gJy4nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBmbGF0TWFwPFQsVT4obGl2ZVNldDogTGl2ZVNldDxUPiwgY2I6ICh2YWx1ZTogVCkgPT4gTGl2ZVNldDxVPik6IExpdmVTZXQ8VT4ge1xuICBsZXQgaXNSZWFkaW5nID0gZmFsc2U7XG5cbiAgcmV0dXJuIG5ldyBMaXZlU2V0KHtcbiAgICByZWFkKCkge1xuICAgICAgaWYgKGlzUmVhZGluZykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlYWRpbmcgaW5hY3RpdmUgcmVjdXJzaXZlbHktZmxhdE1hcHBlZCBzdHJlYW0gaXMgbm90IHN1cHBvcnRlZCcpO1xuICAgICAgfVxuICAgICAgaXNSZWFkaW5nID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHMgPSBuZXcgU2V0KCk7XG4gICAgICBsaXZlU2V0LnZhbHVlcygpLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICBjb25zdCBjaGlsZFNldCA9IGNiKHZhbHVlKTtcbiAgICAgICAgY2hpbGRTZXQudmFsdWVzKCkuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgcy5hZGQodmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgaXNSZWFkaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm4gcztcbiAgICB9LFxuICAgIGxpc3RlbihzZXRWYWx1ZXMsIGNvbnRyb2xsZXIpIHtcbiAgICAgIGxldCBtYWluU3ViQ29tcGxldGVkID0gZmFsc2U7XG4gICAgICBsZXQgaGFzU3Vic2NyaWJlZFRvQ2hpbGRyZW4gPSBmYWxzZTtcbiAgICAgIGxldCBuZXh0SGFzRmlyZWQgPSBmYWxzZTtcbiAgICAgIGNvbnN0IGNoaWxkU2V0U3ViczogTWFwPExpdmVTZXQ8VT4sIExpdmVTZXRTdWJzY3JpcHRpb24+ID0gbmV3IE1hcCgpO1xuXG4gICAgICBmdW5jdGlvbiBjaGlsZFNldFN1YnNjcmliZShjaGlsZFNldDogTGl2ZVNldDxVPikge1xuICAgICAgICBpZiAoY2hpbGRTZXQuaXNFbmRlZCgpKSB7IC8vIG9wdGltaXphdGlvblxuICAgICAgICAgIGNoaWxkU2V0LnZhbHVlcygpLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICAgICAgY29udHJvbGxlci5hZGQodmFsdWUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNoaWxkU2V0LnN1YnNjcmliZSh7XG4gICAgICAgICAgICBzdGFydChzdWIpIHtcbiAgICAgICAgICAgICAgY2hpbGRTZXRTdWJzLnNldChjaGlsZFNldCwgc3ViKTtcbiAgICAgICAgICAgICAgY2hpbGRTZXQudmFsdWVzKCkuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5hZGQodmFsdWUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0KGNoYW5nZXMpIHtcbiAgICAgICAgICAgICAgbmV4dEhhc0ZpcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgY2hhbmdlcy5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNoYW5nZS50eXBlID09PSAnYWRkJykge1xuICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5hZGQoY2hhbmdlLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZS50eXBlID09PSAncmVtb3ZlJykge1xuICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5yZW1vdmUoY2hhbmdlLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yKGVycikge1xuICAgICAgICAgICAgICBjb250cm9sbGVyLmVycm9yKGVycik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29tcGxldGUoKSB7XG4gICAgICAgICAgICAgIGNoaWxkU2V0U3Vicy5kZWxldGUoY2hpbGRTZXQpO1xuICAgICAgICAgICAgICBpZiAobWFpblN1YkNvbXBsZXRlZCAmJiBjaGlsZFNldFN1YnMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5kKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzZXRWYWx1ZXMobmV3IFNldCgpKTtcbiAgICAgIGNvbnN0IGNoaWxkU2V0czogTWFwPFQsIExpdmVTZXQ8VT4+ID0gbmV3IE1hcCgpO1xuXG4gICAgICBjb25zdCBtYWluU3ViID0gbGl2ZVNldC5zdWJzY3JpYmUoe1xuICAgICAgICBzdGFydCgpIHtcbiAgICAgICAgICBsaXZlU2V0LnZhbHVlcygpLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRTZXQgPSBjYih2YWx1ZSk7XG4gICAgICAgICAgICBjaGlsZFNldHMuc2V0KHZhbHVlLCBjaGlsZFNldCk7XG4gICAgICAgICAgICBjaGlsZFNldFN1YnNjcmliZShjaGlsZFNldCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaGFzU3Vic2NyaWJlZFRvQ2hpbGRyZW4gPSB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICBuZXh0KGNoYW5nZXMpIHtcbiAgICAgICAgICBuZXh0SGFzRmlyZWQgPSB0cnVlO1xuICAgICAgICAgIGNoYW5nZXMuZm9yRWFjaChjaGFuZ2UgPT4ge1xuICAgICAgICAgICAgaWYgKGNoYW5nZS50eXBlID09PSAnYWRkJykge1xuICAgICAgICAgICAgICBjb25zdCBjaGlsZFNldCA9IGNiKGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgICAgIGNoaWxkU2V0cy5zZXQoY2hhbmdlLnZhbHVlLCBjaGlsZFNldCk7XG4gICAgICAgICAgICAgIGNoaWxkU2V0U3Vic2NyaWJlKGNoaWxkU2V0KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLnR5cGUgPT09ICdyZW1vdmUnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNoaWxkU2V0ID0gY2hpbGRTZXRzLmdldChjaGFuZ2UudmFsdWUpO1xuICAgICAgICAgICAgICBpZiAoIWNoaWxkU2V0KSB0aHJvdyBuZXcgRXJyb3IoJ3JlbW92ZWQgdmFsdWUgbm90IGluIGxpdmVzZXQnKTtcbiAgICAgICAgICAgICAgY2hpbGRTZXQudmFsdWVzKCkuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5yZW1vdmUodmFsdWUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgY2hpbGRTZXRzLmRlbGV0ZShjaGFuZ2UudmFsdWUpO1xuICAgICAgICAgICAgICBjb25zdCBjaGlsZFNldFN1YiA9IGNoaWxkU2V0U3Vicy5nZXQoY2hpbGRTZXQpO1xuICAgICAgICAgICAgICBpZiAoY2hpbGRTZXRTdWIpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSB3b24ndCBoYXZlIHRoZSBzdWJzY3JpcHRpb24gaWYgdGhlIGNoaWxkU2V0IGVuZGVkIGFscmVhZHlcbiAgICAgICAgICAgICAgICBjaGlsZFNldFN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIGNoaWxkU2V0U3Vicy5kZWxldGUoY2hpbGRTZXQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yKGVycikge1xuICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGUoKSB7XG4gICAgICAgICAgbWFpblN1YkNvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgICAgaWYgKGhhc1N1YnNjcmliZWRUb0NoaWxkcmVuICYmIGNoaWxkU2V0U3Vicy5zaXplID09PSAwKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVuZCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGxldCBpc1B1bGxpbmdDaGFuZ2VzID0gZmFsc2U7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB1bnN1YnNjcmliZSgpIHtcbiAgICAgICAgICBtYWluU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgY2hpbGRTZXRTdWJzLmZvckVhY2goc3ViID0+IHtcbiAgICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNoaWxkU2V0cy5jbGVhcigpO1xuICAgICAgICAgIGNoaWxkU2V0U3Vicy5jbGVhcigpO1xuICAgICAgICB9LFxuICAgICAgICBwdWxsQ2hhbmdlcygpIHtcbiAgICAgICAgICBpZiAoaXNQdWxsaW5nQ2hhbmdlcykgcmV0dXJuO1xuICAgICAgICAgIGlzUHVsbGluZ0NoYW5nZXMgPSB0cnVlO1xuXG4gICAgICAgICAgZG8ge1xuICAgICAgICAgICAgbmV4dEhhc0ZpcmVkID0gZmFsc2U7XG4gICAgICAgICAgICBtYWluU3ViLnB1bGxDaGFuZ2VzKCk7XG4gICAgICAgICAgICBjaGlsZFNldFN1YnMuZm9yRWFjaChzdWIgPT4ge1xuICAgICAgICAgICAgICBzdWIucHVsbENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gd2hpbGUgKG5leHRIYXNGaXJlZCk7XG5cbiAgICAgICAgICBpc1B1bGxpbmdDaGFuZ2VzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9KTtcbn1cbiJdfQ== |
210
index.js
@@ -7,6 +7,2 @@ 'use strict'; | ||
var _typeof2 = require('babel-runtime/helpers/typeof'); | ||
var _typeof3 = _interopRequireDefault(_typeof2); | ||
var _set = require('babel-runtime/core-js/set'); | ||
@@ -155,31 +151,25 @@ | ||
if (this._ended) { | ||
var _ret = function () { | ||
var subscription = { | ||
closed: false, | ||
unsubscribe: function unsubscribe() { | ||
subscription.closed = true; | ||
}, | ||
pullChanges: function pullChanges() {} | ||
}; | ||
if (observer.start) { | ||
observer.start(subscription); | ||
} | ||
if (!subscription.closed) { | ||
if (_this2._endedWithError) { | ||
if (observer.error) { | ||
observer.error(_this2._error); | ||
} | ||
} else { | ||
if (observer.complete) { | ||
observer.complete(); | ||
} | ||
var _subscription = { | ||
closed: false, | ||
unsubscribe: function unsubscribe() { | ||
_subscription.closed = true; | ||
}, | ||
pullChanges: function pullChanges() {} | ||
}; | ||
if (observer.start) { | ||
observer.start(_subscription); | ||
} | ||
if (!_subscription.closed) { | ||
if (this._endedWithError) { | ||
if (observer.error) { | ||
observer.error(this._error); | ||
} | ||
} else { | ||
if (observer.complete) { | ||
observer.complete(); | ||
} | ||
} | ||
subscription.closed = true; | ||
return { | ||
v: subscription | ||
}; | ||
}(); | ||
if ((typeof _ret === 'undefined' ? 'undefined' : (0, _typeof3.default)(_ret)) === "object") return _ret.v; | ||
} | ||
_subscription.closed = true; | ||
return _subscription; | ||
} | ||
@@ -226,82 +216,70 @@ | ||
if (!this._active) { | ||
(function () { | ||
var controller = { | ||
// Flow doesn't support getters and setters yet | ||
/*:: closed: false&&` */get closed() { | ||
return !liveSet._active || liveSet._active.controller !== this; | ||
} /*:: ` */ | ||
, add: function add(value) { | ||
var values = _this2._values; | ||
if (!values) throw new Error('setValue must be called before controller is used'); | ||
if (!_this2._ended && !values.has(value)) { | ||
values.add(value); | ||
_this2._queueChange({ type: 'add', value: value }); | ||
} | ||
}, | ||
remove: function remove(value) { | ||
var values = _this2._values; | ||
if (!values) throw new Error('setValue must be called before controller is used'); | ||
if (!_this2._ended && values.has(value)) { | ||
values.delete(value); | ||
_this2._queueChange({ type: 'remove', value: value }); | ||
} | ||
}, | ||
error: function error(err) { | ||
if (_this2._ended) return; | ||
_this2._ended = true; | ||
_this2._endedWithError = true; | ||
_this2._error = err; | ||
_this2._queueChange(); | ||
_this2._deactivate(); | ||
}, | ||
end: function end() { | ||
if (_this2._ended) return; | ||
_this2._ended = true; | ||
_this2._queueChange(); | ||
_this2._deactivate(); | ||
var _controller2 = { | ||
// Flow doesn't support getters and setters yet | ||
/*:: closed: false&&` */get closed() { | ||
return !liveSet._active || liveSet._active.controller !== this; | ||
} /*:: ` */ | ||
, add: function add(value) { | ||
var values = _this2._values; | ||
if (!values) throw new Error('setValue must be called before controller is used'); | ||
if (!_this2._ended && !values.has(value)) { | ||
values.add(value); | ||
_this2._queueChange({ type: 'add', value: value }); | ||
} | ||
}; | ||
var active = _this2._active = { | ||
controller: controller, | ||
listenHandler: { | ||
unsubscribe: function unsubscribe() {} | ||
}, | ||
remove: function remove(value) { | ||
var values = _this2._values; | ||
if (!values) throw new Error('setValue must be called before controller is used'); | ||
if (!_this2._ended && values.has(value)) { | ||
values.delete(value); | ||
_this2._queueChange({ type: 'remove', value: value }); | ||
} | ||
}; | ||
var setValuesError = function setValuesError() { | ||
throw new Error('setValues must be called once during listen'); | ||
}; | ||
var setValues = function (_setValues) { | ||
function setValues(_x) { | ||
return _setValues.apply(this, arguments); | ||
} | ||
setValues.toString = function () { | ||
return _setValues.toString(); | ||
}; | ||
return setValues; | ||
}(function (values) { | ||
setValues = setValuesError; | ||
_this2._values = values; | ||
}); | ||
var listenHandlerOrFunction = _this2._init.listen(function (values) { | ||
return setValues(values); | ||
}, controller); | ||
if (!_this2._values) { | ||
setValuesError(); | ||
}, | ||
error: function error(err) { | ||
if (_this2._ended) return; | ||
_this2._ended = true; | ||
_this2._endedWithError = true; | ||
_this2._error = err; | ||
_this2._queueChange(); | ||
_this2._deactivate(); | ||
}, | ||
end: function end() { | ||
if (_this2._ended) return; | ||
_this2._ended = true; | ||
_this2._queueChange(); | ||
_this2._deactivate(); | ||
} | ||
if (typeof listenHandlerOrFunction === 'function') { | ||
active.listenHandler = { | ||
unsubscribe: listenHandlerOrFunction | ||
}; | ||
} else if (listenHandlerOrFunction != null && typeof listenHandlerOrFunction.unsubscribe === 'function') { | ||
active.listenHandler = listenHandlerOrFunction; | ||
} else if (listenHandlerOrFunction != null) { | ||
throw new TypeError('listen must return object with unsubscribe method, a function, or null'); | ||
}; | ||
var active = this._active = { | ||
controller: _controller2, | ||
listenHandler: { | ||
unsubscribe: function unsubscribe() {} | ||
} | ||
if (controller.closed) { | ||
_this2._active = active; | ||
_this2._deactivate(); | ||
} | ||
})(); | ||
}; | ||
var setValuesError = function setValuesError() { | ||
throw new Error('setValues must be called once during listen'); | ||
}; | ||
var _setValues2 = function _setValues(values) { | ||
_setValues2 = setValuesError; | ||
_this2._values = values; | ||
}; | ||
var listenHandlerOrFunction = this._init.listen(function (values) { | ||
return _setValues2(values); | ||
}, _controller2); | ||
if (!this._values) { | ||
setValuesError(); | ||
} | ||
if (typeof listenHandlerOrFunction === 'function') { | ||
active.listenHandler = { | ||
unsubscribe: listenHandlerOrFunction | ||
}; | ||
} else if (listenHandlerOrFunction != null && typeof listenHandlerOrFunction.unsubscribe === 'function') { | ||
active.listenHandler = listenHandlerOrFunction; | ||
} else if (listenHandlerOrFunction != null) { | ||
throw new TypeError('listen must return object with unsubscribe method, a function, or null'); | ||
} | ||
if (_controller2.closed) { | ||
this._active = active; | ||
this._deactivate(); | ||
} | ||
} | ||
@@ -341,8 +319,12 @@ | ||
value: function constant(values) { | ||
var _LiveSet$active = LiveSet.active(values), | ||
liveSet = _LiveSet$active.liveSet, | ||
controller = _LiveSet$active.controller; | ||
controller.end(); | ||
return liveSet; | ||
var shouldNotHappen = function shouldNotHappen() { | ||
throw new Error('Should not happen'); | ||
}; | ||
var ls = new LiveSet({ | ||
read: shouldNotHappen, | ||
listen: shouldNotHappen | ||
}); | ||
ls._ended = true; | ||
ls._values = values; | ||
return ls; | ||
} | ||
@@ -362,2 +344,2 @@ }]); | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJMaXZlU2V0IiwiaW5pdCIsIl92YWx1ZXMiLCJfYWN0aXZlIiwiX2VuZGVkIiwiX2VuZGVkV2l0aEVycm9yIiwiX2Vycm9yIiwiX3F1ZXVlZENhbGwiLCJfY2hhbmdlUXVldWUiLCJfb2JzZXJ2ZXJzIiwiX2luaXQiLCJyZWNvcmQiLCJwdXNoIiwiY2hhbmdlcyIsIm9ic2VydmVyc1RvQ2FsbCIsImVuZGVkIiwic2xpY2UiLCJmb3JFYWNoIiwib2JzZXJ2ZXIiLCJpZ25vcmUiLCJvYnNlcnZlck5leHQiLCJuZXh0IiwiY2FsbCIsImNoYW5nZXNUb0RlbGl2ZXIiLCJsZW5ndGgiLCJlcnJvciIsImNvbXBsZXRlIiwiRXJyb3IiLCJsaXN0ZW5IYW5kbGVyIiwidW5zdWJzY3JpYmUiLCJ2YWx1ZXMiLCJwdWxsQ2hhbmdlcyIsInJlYWQiLCJvYnNlcnZlck9yT25OZXh0Iiwib25FcnJvciIsIm9uQ29tcGxldGUiLCJsaXZlU2V0Iiwic3Vic2NyaXB0aW9uIiwiY2xvc2VkIiwic3RhcnQiLCJvYnNlcnZlclJlY29yZCIsImlzU3RhcnRpbmciLCJ1bnN1YnNjcmliZWRJblN0YXJ0IiwiaW5kZXhPZiIsIml4Iiwic3BsaWNlIiwiX2RlYWN0aXZhdGUiLCJjaGFuZ2VRdWV1ZUxlbmd0aCIsIm9yaWdpbmFsTmV4dCIsImNvbnRyb2xsZXIiLCJhZGQiLCJoYXMiLCJ2YWx1ZSIsIl9xdWV1ZUNoYW5nZSIsInR5cGUiLCJyZW1vdmUiLCJkZWxldGUiLCJlcnIiLCJlbmQiLCJhY3RpdmUiLCJzZXRWYWx1ZXNFcnJvciIsInNldFZhbHVlcyIsImxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uIiwibGlzdGVuIiwiVHlwZUVycm9yIiwiaW5pdGlhbFZhbHVlcyIsInNldCIsIl9jb250cm9sbGVyIiwic3Vic2NyaWJlIiwicHJvdG90eXBlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7Ozs7QUFDQTs7Ozs7O0lB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QUFMeUIsT0FBWixDQUFoQjtBQU9BL0IsY0FBUWdDLFNBQVIsQ0FBa0IsRUFBbEI7QUFDQSxhQUFPLEVBQUNoQyxnQkFBRCxFQUFVYSxZQUFhQSxVQUF2QixFQUFQO0FBQ0Q7Ozs2QkFFa0JuQixNLEVBQTRCO0FBQUEsNEJBQ2Y5QixRQUFRMkQsTUFBUixDQUFlN0IsTUFBZixDQURlO0FBQUEsVUFDdENNLE9BRHNDLG1CQUN0Q0EsT0FEc0M7QUFBQSxVQUM3QmEsVUFENkIsbUJBQzdCQSxVQUQ2Qjs7QUFFN0NBLGlCQUFXUyxHQUFYO0FBQ0EsYUFBT3RCLE9BQVA7QUFDRDs7Ozs7QUFnUEg7QUFDQTs7O2tCQXRScUJwQyxPO0FBdVJwQkEsT0FBRCxDQUFjcUUsU0FBZCwrQkFBd0MsWUFBVztBQUNqRCxTQUFPLElBQVA7QUFDRCxDQUZEIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cblxuaW1wb3J0IGFzYXAgZnJvbSAnYXNhcCc7XG5pbXBvcnQgJCRvYnNlcnZhYmxlIGZyb20gJ3N5bWJvbC1vYnNlcnZhYmxlJztcblxuZXhwb3J0IHR5cGUgTGl2ZVNldENoYW5nZVJlY29yZDxUPiA9XG4gIHt0eXBlOiAnYWRkJywgdmFsdWU6IFR9IHxcbiAge3R5cGU6ICdyZW1vdmUnLCB2YWx1ZTogVH0gfFxuICB7dHlwZTogJ2VuZCd9O1xuXG5leHBvcnQgdHlwZSBMaXZlU2V0Q29udHJvbGxlcjxUPiA9IHtcbiAgY2xvc2VkOiBib29sZWFuO1xuICBhZGQoaXRlbTogVCk6IHZvaWQ7XG4gIHJlbW92ZShpdGVtOiBUKTogdm9pZDtcbiAgZXJyb3IoZXJyOiBhbnkpOiB2b2lkO1xuICBlbmQoKTogdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIExpc3RlbkhhbmRsZXIgPSB7XG4gIHVuc3Vic2NyaWJlKCk6IHZvaWQ7XG4gICtwdWxsQ2hhbmdlcz86ID8oKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTGl2ZVNldEluaXQ8VD4gPSB7XG4gIHJlYWQoKTogU2V0PFQ+O1xuICBsaXN0ZW4oXG4gICAgc2V0VmFsdWVzOiB7ICh2YWx1ZXM6IFNldDxUPik6IHZvaWQgfSxcbiAgICBjb250cm9sbGVyOiBMaXZlU2V0Q29udHJvbGxlcjxUPlxuICApOiA/TGlzdGVuSGFuZGxlcnwoKT0+dm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIExpdmVTZXRTdWJzY3JpYmVyPFQ+ID0gKGNoYW5nZXM6IEFycmF5PExpdmVTZXRDaGFuZ2VSZWNvcmQ8VD4+KSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBMaXZlU2V0U3Vic2NyaXB0aW9uID0ge1xuICBjbG9zZWQ6IGJvb2xlYW47XG4gIHVuc3Vic2NyaWJlKCk6IHZvaWQ7XG4gIHB1bGxDaGFuZ2VzKCk6IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBMaXZlU2V0T2JzZXJ2ZXI8VD4gPSB7XG4gIHN0YXJ0PzogPyhzdWJzY3JpcHRpb246IExpdmVTZXRTdWJzY3JpcHRpb24pID0+IHZvaWQ7XG4gIG5leHQ/OiA/KGNoYW5nZXM6IEFycmF5PExpdmVTZXRDaGFuZ2VSZWNvcmQ8VD4+KSA9PiB2b2lkO1xuICBlcnJvcj86ID8oZXJyOiBhbnkpID0+IHZvaWQ7XG4gIGNvbXBsZXRlPzogPygpID0+IHZvaWQ7XG59O1xuXG50eXBlIExpdmVTZXRPYnNlcnZlclJlY29yZDxUPiA9IHtcbiAgaWdub3JlOiBudW1iZXI7XG4gIG9ic2VydmVyOiBMaXZlU2V0T2JzZXJ2ZXI8VD47XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaXZlU2V0PFQ+IHtcbiAgX2luaXQ6IExpdmVTZXRJbml0PFQ+O1xuXG4gIF92YWx1ZXM6ID9TZXQ8VD4gPSBudWxsO1xuICBfYWN0aXZlOiA/e1xuICAgIGNvbnRyb2xsZXI6IExpdmVTZXRDb250cm9sbGVyPFQ+O1xuICAgIGxpc3RlbkhhbmRsZXI6IExpc3RlbkhhbmRsZXI7XG4gIH0gPSBudWxsO1xuICBfZW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgX2VuZGVkV2l0aEVycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIF9lcnJvcjogYW55ID0gbnVsbDtcbiAgX3F1ZXVlZENhbGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgX2NoYW5nZVF1ZXVlOiBBcnJheTxMaXZlU2V0Q2hhbmdlUmVjb3JkPFQ+PiA9IFtdO1xuICBfb2JzZXJ2ZXJzOiBBcnJheTxMaXZlU2V0T2JzZXJ2ZXJSZWNvcmQ8VD4+ID0gW107XG5cbiAgY29uc3RydWN0b3IoaW5pdDogTGl2ZVNldEluaXQ8VD4pIHtcbiAgICB0aGlzLl9pbml0ID0gaW5pdDtcbiAgfVxuXG4gIHN0YXRpYyBhY3RpdmU8VD4oaW5pdGlhbFZhbHVlczogP1NldDxUPik6IHtsaXZlU2V0OiBMaXZlU2V0PFQ+LCBjb250cm9sbGVyOiBMaXZlU2V0Q29udHJvbGxlcjxUPn0ge1xuICAgIGNvbnN0IHNldCA9IGluaXRpYWxWYWx1ZXMgfHwgbmV3IFNldCgpO1xuICAgIGxldCBjb250cm9sbGVyO1xuICAgIGNvbnN0IGxpdmVTZXQgPSBuZXcgTGl2ZVNldCh7XG4gICAgICByZWFkOiAoKSA9PiBzZXQsXG4gICAgICBsaXN0ZW46IChzZXRWYWx1ZXMsIF9jb250cm9sbGVyKSA9PiB7XG4gICAgICAgIHNldFZhbHVlcyhzZXQpO1xuICAgICAgICBjb250cm9sbGVyID0gX2NvbnRyb2xsZXI7XG4gICAgICB9XG4gICAgfSk7XG4gICAgbGl2ZVNldC5zdWJzY3JpYmUoe30pO1xuICAgIHJldHVybiB7bGl2ZVNldCwgY29udHJvbGxlcjogKGNvbnRyb2xsZXI6IGFueSl9O1xuICB9XG5cbiAgc3RhdGljIGNvbnN0YW50PFQ+KHZhbHVlczogU2V0PFQ+KTogTGl2ZVNldDxUPiB7XG4gICAgY29uc3Qge2xpdmVTZXQsIGNvbnRyb2xsZXJ9ID0gTGl2ZVNldC5hY3RpdmUodmFsdWVzKTtcbiAgICBjb250cm9sbGVyLmVuZCgpO1xuICAgIHJldHVybiBsaXZlU2V0O1xuICB9XG5cbiAgX3F1ZXVlQ2hhbmdlKHJlY29yZDogP0xpdmVTZXRDaGFuZ2VSZWNvcmQ8VD4pIHtcbiAgICBpZiAocmVjb3JkKSB7XG4gICAgICB0aGlzLl9jaGFuZ2VRdWV1ZS5wdXNoKHJlY29yZCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fcXVldWVkQ2FsbCkge1xuICAgICAgdGhpcy5fcXVldWVkQ2FsbCA9IHRydWU7XG4gICAgICBhc2FwKCgpID0+IHtcbiAgICAgICAgdGhpcy5fcXVldWVkQ2FsbCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5fY2hhbmdlUXVldWU7XG4gICAgICAgIHRoaXMuX2NoYW5nZVF1ZXVlID0gW107XG4gICAgICAgIGxldCBvYnNlcnZlcnNUb0NhbGw7XG4gICAgICAgIGNvbnN0IGVuZGVkID0gdGhpcy5fZW5kZWQ7XG4gICAgICAgIGlmIChlbmRlZCkge1xuICAgICAgICAgIG9ic2VydmVyc1RvQ2FsbCA9IHRoaXMuX29ic2VydmVycztcbiAgICAgICAgICB0aGlzLl9vYnNlcnZlcnMgPSBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYnNlcnZlcnNUb0NhbGwgPSB0aGlzLl9vYnNlcnZlcnMuc2xpY2UoKTtcbiAgICAgICAgfVxuICAgICAgICBvYnNlcnZlcnNUb0NhbGwuZm9yRWFjaChyZWNvcmQgPT4ge1xuICAgICAgICAgIGNvbnN0IHtvYnNlcnZlciwgaWdub3JlfSA9IHJlY29yZDtcbiAgICAgICAgICBjb25zdCBvYnNlcnZlck5leHQgPSBvYnNlcnZlci5uZXh0O1xuICAgICAgICAgIGlmIChvYnNlcnZlck5leHQpIHtcbiAgICAgICAgICAgIGlmIChpZ25vcmUgPT09IDApIHtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXJOZXh0LmNhbGwob2JzZXJ2ZXIsIGNoYW5nZXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVjb3JkLmlnbm9yZSA9IDA7XG4gICAgICAgICAgICAgIGNvbnN0IGNoYW5nZXNUb0RlbGl2ZXIgPSBjaGFuZ2VzLnNsaWNlKGlnbm9yZSk7XG4gICAgICAgICAgICAgIGlmIChjaGFuZ2VzVG9EZWxpdmVyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyTmV4dC5jYWxsKG9ic2VydmVyLCBjaGFuZ2VzVG9EZWxpdmVyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZW5kZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9lbmRlZFdpdGhFcnJvcikge1xuICAgICAgICAgICAgICBpZiAob2JzZXJ2ZXIuZXJyb3IpIG9ic2VydmVyLmVycm9yKHRoaXMuX2Vycm9yKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmIChvYnNlcnZlci5jb21wbGV0ZSkgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgX2RlYWN0aXZhdGUoKSB7XG4gICAgaWYgKCF0aGlzLl9hY3RpdmUpIHRocm93IG5ldyBFcnJvcignYWxyZWFkeSBpbmFjdGl2ZScpO1xuICAgIGNvbnN0IHtsaXN0ZW5IYW5kbGVyfSA9IHRoaXMuX2FjdGl2ZTtcbiAgICB0aGlzLl9hY3RpdmUgPSBudWxsO1xuICAgIGlmIChsaXN0ZW5IYW5kbGVyKSB7XG4gICAgICBsaXN0ZW5IYW5kbGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgdmFsdWVzKCk6IFNldDxUPiB7XG4gICAgaWYgKHRoaXMuX3ZhbHVlcykge1xuICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5fdmFsdWVzO1xuICAgICAgaWYgKHRoaXMuX2FjdGl2ZSkge1xuICAgICAgICBjb25zdCB7bGlzdGVuSGFuZGxlcn0gPSB0aGlzLl9hY3RpdmU7XG4gICAgICAgIGlmIChsaXN0ZW5IYW5kbGVyLnB1bGxDaGFuZ2VzKSB7XG4gICAgICAgICAgbGlzdGVuSGFuZGxlci5wdWxsQ2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IFNldCh2YWx1ZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5fYWN0aXZlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndHJpZWQgdG8gY2FsbCB2YWx1ZXMoKSBvbiBsaXZlc2V0IGR1cmluZyBzdWJzY3JpcHRpb24gYmVmb3JlIHNldFZhbHVlcyB3YXMgY2FsbGVkJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5faW5pdC5yZWFkKCk7XG4gICAgfVxuICB9XG5cbiAgaXNFbmRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW5kZWQ7XG4gIH1cblxuICBzdWJzY3JpYmUob2JzZXJ2ZXJPck9uTmV4dDogTGl2ZVNldE9ic2VydmVyPFQ+IHwgKGNoYW5nZXM6IEFycmF5PExpdmVTZXRDaGFuZ2VSZWNvcmQ8VD4+KSA9PiB2b2lkLCBvbkVycm9yOiA/KGVycjogYW55KSA9PiB2b2lkLCBvbkNvbXBsZXRlOiA/KCkgPT4gdm9pZCk6IExpdmVTZXRTdWJzY3JpcHRpb24ge1xuICAgIGNvbnN0IGxpdmVTZXQgPSB0aGlzO1xuXG4gICAgbGV0IG9ic2VydmVyO1xuICAgIGlmICh0eXBlb2Ygb2JzZXJ2ZXJPck9uTmV4dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgb2JzZXJ2ZXIgPSB7XG4gICAgICAgIG5leHQ6IG9ic2VydmVyT3JPbk5leHQsXG4gICAgICAgIGVycm9yOiBvbkVycm9yLFxuICAgICAgICBjb21wbGV0ZTogb25Db21wbGV0ZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JzZXJ2ZXIgPSBvYnNlcnZlck9yT25OZXh0O1xuICAgIH1cblxuICAgIChvYnNlcnZlcjogTGl2ZVNldE9ic2VydmVyPFQ+KTtcblxuICAgIGlmICh0aGlzLl9lbmRlZCkge1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0ge1xuICAgICAgICBjbG9zZWQ6IGZhbHNlLFxuICAgICAgICB1bnN1YnNjcmliZTogKCkgPT4ge1xuICAgICAgICAgIHN1YnNjcmlwdGlvbi5jbG9zZWQgPSB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICBwdWxsQ2hhbmdlczogKCkgPT4ge31cbiAgICAgIH07XG4gICAgICBpZiAob2JzZXJ2ZXIuc3RhcnQpIHtcbiAgICAgICAgb2JzZXJ2ZXIuc3RhcnQoc3Vic2NyaXB0aW9uKTtcbiAgICAgIH1cbiAgICAgIGlmICghc3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgICBpZiAodGhpcy5fZW5kZWRXaXRoRXJyb3IpIHtcbiAgICAgICAgICBpZiAob2JzZXJ2ZXIuZXJyb3IpIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHRoaXMuX2Vycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKG9ic2VydmVyLmNvbXBsZXRlKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3Vic2NyaXB0aW9uLmNsb3NlZCA9IHRydWU7XG4gICAgICByZXR1cm4gc3Vic2NyaXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IG9ic2VydmVyUmVjb3JkID0ge29ic2VydmVyLCBpZ25vcmU6IHRoaXMuX2NoYW5nZVF1ZXVlLmxlbmd0aH07XG5cbiAgICBsZXQgaXNTdGFydGluZyA9IHRydWU7XG4gICAgbGV0IHVuc3Vic2NyaWJlZEluU3RhcnQgPSBmYWxzZTtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB7XG4gICAgICAvKjo6IGNsb3NlZDogZmFsc2UmJmAgKi8gZ2V0IGNsb3NlZCgpIHtcbiAgICAgICAgcmV0dXJuICFpc1N0YXJ0aW5nICYmIGxpdmVTZXQuX29ic2VydmVycy5pbmRleE9mKG9ic2VydmVyUmVjb3JkKSA8IDA7XG4gICAgICB9Lyo6OiBgICovLFxuICAgICAgdW5zdWJzY3JpYmU6ICgpID0+IHtcbiAgICAgICAgaWYgKGlzU3RhcnRpbmcpIHtcbiAgICAgICAgICB1bnN1YnNjcmliZWRJblN0YXJ0ID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXggPSB0aGlzLl9vYnNlcnZlcnMuaW5kZXhPZihvYnNlcnZlclJlY29yZCk7XG4gICAgICAgIGlmIChpeCA+PSAwKSB7XG4gICAgICAgICAgdGhpcy5fb2JzZXJ2ZXJzLnNwbGljZShpeCwgMSk7XG4gICAgICAgICAgaWYgKCF0aGlzLl9lbmRlZCAmJiB0aGlzLl9vYnNlcnZlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZXMgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5fZGVhY3RpdmF0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHB1bGxDaGFuZ2VzOiAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmUgJiYgdGhpcy5fYWN0aXZlLmxpc3RlbkhhbmRsZXIgJiYgdGhpcy5fYWN0aXZlLmxpc3RlbkhhbmRsZXIucHVsbENoYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLl9hY3RpdmUubGlzdGVuSGFuZGxlci5wdWxsQ2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNoYW5nZVF1ZXVlTGVuZ3RoID0gdGhpcy5fY2hhbmdlUXVldWUubGVuZ3RoO1xuICAgICAgICBjb25zdCBvcmlnaW5hbE5leHQgPSBvYnNlcnZlci5uZXh0O1xuICAgICAgICBpZiAoY2hhbmdlUXVldWVMZW5ndGggIT09IDAgJiYgb3JpZ2luYWxOZXh0KSB7XG4gICAgICAgICAgY29uc3QgY2hhbmdlc1RvRGVsaXZlciA9IHRoaXMuX2NoYW5nZVF1ZXVlLnNsaWNlKG9ic2VydmVyUmVjb3JkLmlnbm9yZSk7XG4gICAgICAgICAgaWYgKGNoYW5nZXNUb0RlbGl2ZXIubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICBvYnNlcnZlclJlY29yZC5pZ25vcmUgPSBjaGFuZ2VRdWV1ZUxlbmd0aDtcbiAgICAgICAgICAgIG9yaWdpbmFsTmV4dC5jYWxsKG9ic2VydmVyLCBjaGFuZ2VzVG9EZWxpdmVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLl9hY3RpdmUpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXI6IExpdmVTZXRDb250cm9sbGVyPFQ+ID0ge1xuICAgICAgICAvLyBGbG93IGRvZXNuJ3Qgc3VwcG9ydCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIHlldFxuICAgICAgICAvKjo6IGNsb3NlZDogZmFsc2UmJmAgKi8gZ2V0IGNsb3NlZCgpIHtcbiAgICAgICAgICByZXR1cm4gIWxpdmVTZXQuX2FjdGl2ZSB8fCBsaXZlU2V0Ll9hY3RpdmUuY29udHJvbGxlciAhPT0gdGhpcztcbiAgICAgICAgfS8qOjogYCAqLyxcbiAgICAgICAgYWRkOiB2YWx1ZSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5fdmFsdWVzO1xuICAgICAgICAgIGlmICghdmFsdWVzKSB0aHJvdyBuZXcgRXJyb3IoJ3NldFZhbHVlIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBjb250cm9sbGVyIGlzIHVzZWQnKTtcbiAgICAgICAgICBpZiAoIXRoaXMuX2VuZGVkICYmICF2YWx1ZXMuaGFzKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWVzLmFkZCh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9xdWV1ZUNoYW5nZSh7dHlwZTogJ2FkZCcsIHZhbHVlfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZW1vdmU6IHZhbHVlID0+IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLl92YWx1ZXM7XG4gICAgICAgICAgaWYgKCF2YWx1ZXMpIHRocm93IG5ldyBFcnJvcignc2V0VmFsdWUgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGNvbnRyb2xsZXIgaXMgdXNlZCcpO1xuICAgICAgICAgIGlmICghdGhpcy5fZW5kZWQgJiYgdmFsdWVzLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlcy5kZWxldGUodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fcXVldWVDaGFuZ2Uoe3R5cGU6ICdyZW1vdmUnLCB2YWx1ZX0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX2VuZGVkKSByZXR1cm47XG4gICAgICAgICAgdGhpcy5fZW5kZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuX2VuZGVkV2l0aEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLl9lcnJvciA9IGVycjtcbiAgICAgICAgICB0aGlzLl9xdWV1ZUNoYW5nZSgpO1xuICAgICAgICAgIHRoaXMuX2RlYWN0aXZhdGUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5kOiAoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX2VuZGVkKSByZXR1cm47XG4gICAgICAgICAgdGhpcy5fZW5kZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuX3F1ZXVlQ2hhbmdlKCk7XG4gICAgICAgICAgdGhpcy5fZGVhY3RpdmF0ZSgpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgY29uc3QgYWN0aXZlID0gdGhpcy5fYWN0aXZlID0ge1xuICAgICAgICBjb250cm9sbGVyLFxuICAgICAgICBsaXN0ZW5IYW5kbGVyOiB7XG4gICAgICAgICAgdW5zdWJzY3JpYmU6ICgpID0+IHt9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBjb25zdCBzZXRWYWx1ZXNFcnJvciA9ICgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzZXRWYWx1ZXMgbXVzdCBiZSBjYWxsZWQgb25jZSBkdXJpbmcgbGlzdGVuJyk7XG4gICAgICB9O1xuICAgICAgbGV0IHNldFZhbHVlcyA9IHZhbHVlcyA9PiB7XG4gICAgICAgIHNldFZhbHVlcyA9IHNldFZhbHVlc0Vycm9yO1xuICAgICAgICB0aGlzLl92YWx1ZXMgPSB2YWx1ZXM7XG4gICAgICB9O1xuICAgICAgY29uc3QgbGlzdGVuSGFuZGxlck9yRnVuY3Rpb24gPSB0aGlzLl9pbml0Lmxpc3Rlbih2YWx1ZXMgPT4gc2V0VmFsdWVzKHZhbHVlcyksIGNvbnRyb2xsZXIpO1xuICAgICAgaWYgKCF0aGlzLl92YWx1ZXMpIHtcbiAgICAgICAgc2V0VmFsdWVzRXJyb3IoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgbGlzdGVuSGFuZGxlck9yRnVuY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgYWN0aXZlLmxpc3RlbkhhbmRsZXIgPSB7XG4gICAgICAgICAgdW5zdWJzY3JpYmU6IGxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uICE9IG51bGwgJiYgdHlwZW9mIGxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uLnVuc3Vic2NyaWJlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGFjdGl2ZS5saXN0ZW5IYW5kbGVyID0gbGlzdGVuSGFuZGxlck9yRnVuY3Rpb247XG4gICAgICB9IGVsc2UgaWYgKGxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uICE9IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbGlzdGVuIG11c3QgcmV0dXJuIG9iamVjdCB3aXRoIHVuc3Vic2NyaWJlIG1ldGhvZCwgYSBmdW5jdGlvbiwgb3IgbnVsbCcpO1xuICAgICAgfVxuICAgICAgaWYgKGNvbnRyb2xsZXIuY2xvc2VkKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZSA9IGFjdGl2ZTtcbiAgICAgICAgdGhpcy5fZGVhY3RpdmF0ZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvYnNlcnZlci5zdGFydCkge1xuICAgICAgb2JzZXJ2ZXIuc3RhcnQoc3Vic2NyaXB0aW9uKTtcbiAgICB9XG4gICAgaXNTdGFydGluZyA9IGZhbHNlO1xuXG4gICAgb2JzZXJ2ZXJSZWNvcmQuaWdub3JlID0gdGhpcy5fY2hhbmdlUXVldWUubGVuZ3RoO1xuICAgIGlmICghdW5zdWJzY3JpYmVkSW5TdGFydCkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXJzLnB1c2gob2JzZXJ2ZXJSZWNvcmQpO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJzY3JpcHRpb247XG4gIH1cbn1cblxuLy8gQXNzaWduIGhlcmUgYmVjYXVzZSBGbG93IGRvZXNuJ3Qgc3VwcG9ydCBjb21wdXRlZCBwcm9wZXJ0eSBrZXlzIG9uIGNsYXNzZXM6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svZmxvdy9pc3N1ZXMvMjI4NlxuKExpdmVTZXQ6YW55KS5wcm90b3R5cGVbJCRvYnNlcnZhYmxlXSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcztcbn07XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJMaXZlU2V0IiwiaW5pdCIsIl92YWx1ZXMiLCJfYWN0aXZlIiwiX2VuZGVkIiwiX2VuZGVkV2l0aEVycm9yIiwiX2Vycm9yIiwiX3F1ZXVlZENhbGwiLCJfY2hhbmdlUXVldWUiLCJfb2JzZXJ2ZXJzIiwiX2luaXQiLCJyZWNvcmQiLCJwdXNoIiwiY2hhbmdlcyIsIm9ic2VydmVyc1RvQ2FsbCIsImVuZGVkIiwic2xpY2UiLCJmb3JFYWNoIiwib2JzZXJ2ZXIiLCJpZ25vcmUiLCJvYnNlcnZlck5leHQiLCJuZXh0IiwiY2FsbCIsImNoYW5nZXNUb0RlbGl2ZXIiLCJsZW5ndGgiLCJlcnJvciIsImNvbXBsZXRlIiwiRXJyb3IiLCJsaXN0ZW5IYW5kbGVyIiwidW5zdWJzY3JpYmUiLCJ2YWx1ZXMiLCJwdWxsQ2hhbmdlcyIsInJlYWQiLCJvYnNlcnZlck9yT25OZXh0Iiwib25FcnJvciIsIm9uQ29tcGxldGUiLCJsaXZlU2V0Iiwic3Vic2NyaXB0aW9uIiwiY2xvc2VkIiwic3RhcnQiLCJvYnNlcnZlclJlY29yZCIsImlzU3RhcnRpbmciLCJ1bnN1YnNjcmliZWRJblN0YXJ0IiwiaW5kZXhPZiIsIml4Iiwic3BsaWNlIiwiX2RlYWN0aXZhdGUiLCJjaGFuZ2VRdWV1ZUxlbmd0aCIsIm9yaWdpbmFsTmV4dCIsImNvbnRyb2xsZXIiLCJhZGQiLCJoYXMiLCJ2YWx1ZSIsIl9xdWV1ZUNoYW5nZSIsInR5cGUiLCJyZW1vdmUiLCJkZWxldGUiLCJlcnIiLCJlbmQiLCJhY3RpdmUiLCJzZXRWYWx1ZXNFcnJvciIsInNldFZhbHVlcyIsImxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uIiwibGlzdGVuIiwiVHlwZUVycm9yIiwiaW5pdGlhbFZhbHVlcyIsInNldCIsIl9jb250cm9sbGVyIiwic3Vic2NyaWJlIiwic2hvdWxkTm90SGFwcGVuIiwibHMiLCJwcm90b3R5cGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztB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RCxFQUFVYSxZQUFhQSxVQUF2QixFQUFQO0FBQ0Q7Ozs2QkFFa0JuQixNLEVBQTRCO0FBQzdDLFVBQU11QyxrQkFBa0IsU0FBbEJBLGVBQWtCLEdBQU07QUFDNUIsY0FBTSxJQUFJMUMsS0FBSixDQUFVLG1CQUFWLENBQU47QUFDRCxPQUZEO0FBR0EsVUFBTTJDLEtBQUssSUFBSXRFLE9BQUosQ0FBWTtBQUNyQmdDLGNBQU1xQyxlQURlO0FBRXJCTixnQkFBUU07QUFGYSxPQUFaLENBQVg7QUFJQUMsU0FBR2xFLE1BQUgsR0FBWSxJQUFaO0FBQ0FrRSxTQUFHcEUsT0FBSCxHQUFhNEIsTUFBYjtBQUNBLGFBQU93QyxFQUFQO0FBQ0Q7Ozs7O0FBZ1BIO0FBQ0E7OztrQkE3UnFCdEUsTztBQThScEJBLE9BQUQsQ0FBY3VFLFNBQWQsK0JBQXdDLFlBQVc7QUFDakQsU0FBTyxJQUFQO0FBQ0QsQ0FGRCIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCBhc2FwIGZyb20gJ2FzYXAnO1xuaW1wb3J0ICQkb2JzZXJ2YWJsZSBmcm9tICdzeW1ib2wtb2JzZXJ2YWJsZSc7XG5cbmV4cG9ydCB0eXBlIExpdmVTZXRDaGFuZ2VSZWNvcmQ8VD4gPVxuICB7dHlwZTogJ2FkZCcsIHZhbHVlOiBUfSB8XG4gIHt0eXBlOiAncmVtb3ZlJywgdmFsdWU6IFR9IHxcbiAge3R5cGU6ICdlbmQnfTtcblxuZXhwb3J0IHR5cGUgTGl2ZVNldENvbnRyb2xsZXI8VD4gPSB7XG4gIGNsb3NlZDogYm9vbGVhbjtcbiAgYWRkKGl0ZW06IFQpOiB2b2lkO1xuICByZW1vdmUoaXRlbTogVCk6IHZvaWQ7XG4gIGVycm9yKGVycjogYW55KTogdm9pZDtcbiAgZW5kKCk6IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBMaXN0ZW5IYW5kbGVyID0ge1xuICB1bnN1YnNjcmliZSgpOiB2b2lkO1xuICArcHVsbENoYW5nZXM/OiA/KCkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIExpdmVTZXRJbml0PFQ+ID0ge1xuICByZWFkKCk6IFNldDxUPjtcbiAgbGlzdGVuKFxuICAgIHNldFZhbHVlczogeyAodmFsdWVzOiBTZXQ8VD4pOiB2b2lkIH0sXG4gICAgY29udHJvbGxlcjogTGl2ZVNldENvbnRyb2xsZXI8VD5cbiAgKTogP0xpc3RlbkhhbmRsZXJ8KCk9PnZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBMaXZlU2V0U3Vic2NyaWJlcjxUPiA9IChjaGFuZ2VzOiBBcnJheTxMaXZlU2V0Q2hhbmdlUmVjb3JkPFQ+PikgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgTGl2ZVNldFN1YnNjcmlwdGlvbiA9IHtcbiAgY2xvc2VkOiBib29sZWFuO1xuICB1bnN1YnNjcmliZSgpOiB2b2lkO1xuICBwdWxsQ2hhbmdlcygpOiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTGl2ZVNldE9ic2VydmVyPFQ+ID0ge1xuICBzdGFydD86ID8oc3Vic2NyaXB0aW9uOiBMaXZlU2V0U3Vic2NyaXB0aW9uKSA9PiB2b2lkO1xuICBuZXh0PzogPyhjaGFuZ2VzOiBBcnJheTxMaXZlU2V0Q2hhbmdlUmVjb3JkPFQ+PikgPT4gdm9pZDtcbiAgZXJyb3I/OiA/KGVycjogYW55KSA9PiB2b2lkO1xuICBjb21wbGV0ZT86ID8oKSA9PiB2b2lkO1xufTtcblxudHlwZSBMaXZlU2V0T2JzZXJ2ZXJSZWNvcmQ8VD4gPSB7XG4gIGlnbm9yZTogbnVtYmVyO1xuICBvYnNlcnZlcjogTGl2ZVNldE9ic2VydmVyPFQ+O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGl2ZVNldDxUPiB7XG4gIF9pbml0OiBMaXZlU2V0SW5pdDxUPjtcblxuICBfdmFsdWVzOiA/U2V0PFQ+ID0gbnVsbDtcbiAgX2FjdGl2ZTogP3tcbiAgICBjb250cm9sbGVyOiBMaXZlU2V0Q29udHJvbGxlcjxUPjtcbiAgICBsaXN0ZW5IYW5kbGVyOiBMaXN0ZW5IYW5kbGVyO1xuICB9ID0gbnVsbDtcbiAgX2VuZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIF9lbmRlZFdpdGhFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBfZXJyb3I6IGFueSA9IG51bGw7XG4gIF9xdWV1ZWRDYWxsOiBib29sZWFuID0gZmFsc2U7XG4gIF9jaGFuZ2VRdWV1ZTogQXJyYXk8TGl2ZVNldENoYW5nZVJlY29yZDxUPj4gPSBbXTtcbiAgX29ic2VydmVyczogQXJyYXk8TGl2ZVNldE9ic2VydmVyUmVjb3JkPFQ+PiA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKGluaXQ6IExpdmVTZXRJbml0PFQ+KSB7XG4gICAgdGhpcy5faW5pdCA9IGluaXQ7XG4gIH1cblxuICBzdGF0aWMgYWN0aXZlPFQ+KGluaXRpYWxWYWx1ZXM6ID9TZXQ8VD4pOiB7bGl2ZVNldDogTGl2ZVNldDxUPiwgY29udHJvbGxlcjogTGl2ZVNldENvbnRyb2xsZXI8VD59IHtcbiAgICBjb25zdCBzZXQgPSBpbml0aWFsVmFsdWVzIHx8IG5ldyBTZXQoKTtcbiAgICBsZXQgY29udHJvbGxlcjtcbiAgICBjb25zdCBsaXZlU2V0ID0gbmV3IExpdmVTZXQoe1xuICAgICAgcmVhZDogKCkgPT4gc2V0LFxuICAgICAgbGlzdGVuOiAoc2V0VmFsdWVzLCBfY29udHJvbGxlcikgPT4ge1xuICAgICAgICBzZXRWYWx1ZXMoc2V0KTtcbiAgICAgICAgY29udHJvbGxlciA9IF9jb250cm9sbGVyO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGxpdmVTZXQuc3Vic2NyaWJlKHt9KTtcbiAgICByZXR1cm4ge2xpdmVTZXQsIGNvbnRyb2xsZXI6IChjb250cm9sbGVyOiBhbnkpfTtcbiAgfVxuXG4gIHN0YXRpYyBjb25zdGFudDxUPih2YWx1ZXM6IFNldDxUPik6IExpdmVTZXQ8VD4ge1xuICAgIGNvbnN0IHNob3VsZE5vdEhhcHBlbiA9ICgpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIG5vdCBoYXBwZW4nKTtcbiAgICB9O1xuICAgIGNvbnN0IGxzID0gbmV3IExpdmVTZXQoe1xuICAgICAgcmVhZDogc2hvdWxkTm90SGFwcGVuLFxuICAgICAgbGlzdGVuOiBzaG91bGROb3RIYXBwZW5cbiAgICB9KTtcbiAgICBscy5fZW5kZWQgPSB0cnVlO1xuICAgIGxzLl92YWx1ZXMgPSB2YWx1ZXM7XG4gICAgcmV0dXJuIGxzO1xuICB9XG5cbiAgX3F1ZXVlQ2hhbmdlKHJlY29yZDogP0xpdmVTZXRDaGFuZ2VSZWNvcmQ8VD4pIHtcbiAgICBpZiAocmVjb3JkKSB7XG4gICAgICB0aGlzLl9jaGFuZ2VRdWV1ZS5wdXNoKHJlY29yZCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fcXVldWVkQ2FsbCkge1xuICAgICAgdGhpcy5fcXVldWVkQ2FsbCA9IHRydWU7XG4gICAgICBhc2FwKCgpID0+IHtcbiAgICAgICAgdGhpcy5fcXVldWVkQ2FsbCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5fY2hhbmdlUXVldWU7XG4gICAgICAgIHRoaXMuX2NoYW5nZVF1ZXVlID0gW107XG4gICAgICAgIGxldCBvYnNlcnZlcnNUb0NhbGw7XG4gICAgICAgIGNvbnN0IGVuZGVkID0gdGhpcy5fZW5kZWQ7XG4gICAgICAgIGlmIChlbmRlZCkge1xuICAgICAgICAgIG9ic2VydmVyc1RvQ2FsbCA9IHRoaXMuX29ic2VydmVycztcbiAgICAgICAgICB0aGlzLl9vYnNlcnZlcnMgPSBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYnNlcnZlcnNUb0NhbGwgPSB0aGlzLl9vYnNlcnZlcnMuc2xpY2UoKTtcbiAgICAgICAgfVxuICAgICAgICBvYnNlcnZlcnNUb0NhbGwuZm9yRWFjaChyZWNvcmQgPT4ge1xuICAgICAgICAgIGNvbnN0IHtvYnNlcnZlciwgaWdub3JlfSA9IHJlY29yZDtcbiAgICAgICAgICBjb25zdCBvYnNlcnZlck5leHQgPSBvYnNlcnZlci5uZXh0O1xuICAgICAgICAgIGlmIChvYnNlcnZlck5leHQpIHtcbiAgICAgICAgICAgIGlmIChpZ25vcmUgPT09IDApIHtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXJOZXh0LmNhbGwob2JzZXJ2ZXIsIGNoYW5nZXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVjb3JkLmlnbm9yZSA9IDA7XG4gICAgICAgICAgICAgIGNvbnN0IGNoYW5nZXNUb0RlbGl2ZXIgPSBjaGFuZ2VzLnNsaWNlKGlnbm9yZSk7XG4gICAgICAgICAgICAgIGlmIChjaGFuZ2VzVG9EZWxpdmVyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyTmV4dC5jYWxsKG9ic2VydmVyLCBjaGFuZ2VzVG9EZWxpdmVyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZW5kZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9lbmRlZFdpdGhFcnJvcikge1xuICAgICAgICAgICAgICBpZiAob2JzZXJ2ZXIuZXJyb3IpIG9ic2VydmVyLmVycm9yKHRoaXMuX2Vycm9yKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmIChvYnNlcnZlci5jb21wbGV0ZSkgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgX2RlYWN0aXZhdGUoKSB7XG4gICAgaWYgKCF0aGlzLl9hY3RpdmUpIHRocm93IG5ldyBFcnJvcignYWxyZWFkeSBpbmFjdGl2ZScpO1xuICAgIGNvbnN0IHtsaXN0ZW5IYW5kbGVyfSA9IHRoaXMuX2FjdGl2ZTtcbiAgICB0aGlzLl9hY3RpdmUgPSBudWxsO1xuICAgIGlmIChsaXN0ZW5IYW5kbGVyKSB7XG4gICAgICBsaXN0ZW5IYW5kbGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgdmFsdWVzKCk6IFNldDxUPiB7XG4gICAgaWYgKHRoaXMuX3ZhbHVlcykge1xuICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5fdmFsdWVzO1xuICAgICAgaWYgKHRoaXMuX2FjdGl2ZSkge1xuICAgICAgICBjb25zdCB7bGlzdGVuSGFuZGxlcn0gPSB0aGlzLl9hY3RpdmU7XG4gICAgICAgIGlmIChsaXN0ZW5IYW5kbGVyLnB1bGxDaGFuZ2VzKSB7XG4gICAgICAgICAgbGlzdGVuSGFuZGxlci5wdWxsQ2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IFNldCh2YWx1ZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5fYWN0aXZlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndHJpZWQgdG8gY2FsbCB2YWx1ZXMoKSBvbiBsaXZlc2V0IGR1cmluZyBzdWJzY3JpcHRpb24gYmVmb3JlIHNldFZhbHVlcyB3YXMgY2FsbGVkJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5faW5pdC5yZWFkKCk7XG4gICAgfVxuICB9XG5cbiAgaXNFbmRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW5kZWQ7XG4gIH1cblxuICBzdWJzY3JpYmUob2JzZXJ2ZXJPck9uTmV4dDogTGl2ZVNldE9ic2VydmVyPFQ+IHwgKGNoYW5nZXM6IEFycmF5PExpdmVTZXRDaGFuZ2VSZWNvcmQ8VD4+KSA9PiB2b2lkLCBvbkVycm9yOiA/KGVycjogYW55KSA9PiB2b2lkLCBvbkNvbXBsZXRlOiA/KCkgPT4gdm9pZCk6IExpdmVTZXRTdWJzY3JpcHRpb24ge1xuICAgIGNvbnN0IGxpdmVTZXQgPSB0aGlzO1xuXG4gICAgbGV0IG9ic2VydmVyO1xuICAgIGlmICh0eXBlb2Ygb2JzZXJ2ZXJPck9uTmV4dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgb2JzZXJ2ZXIgPSB7XG4gICAgICAgIG5leHQ6IG9ic2VydmVyT3JPbk5leHQsXG4gICAgICAgIGVycm9yOiBvbkVycm9yLFxuICAgICAgICBjb21wbGV0ZTogb25Db21wbGV0ZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JzZXJ2ZXIgPSBvYnNlcnZlck9yT25OZXh0O1xuICAgIH1cblxuICAgIChvYnNlcnZlcjogTGl2ZVNldE9ic2VydmVyPFQ+KTtcblxuICAgIGlmICh0aGlzLl9lbmRlZCkge1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0ge1xuICAgICAgICBjbG9zZWQ6IGZhbHNlLFxuICAgICAgICB1bnN1YnNjcmliZTogKCkgPT4ge1xuICAgICAgICAgIHN1YnNjcmlwdGlvbi5jbG9zZWQgPSB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICBwdWxsQ2hhbmdlczogKCkgPT4ge31cbiAgICAgIH07XG4gICAgICBpZiAob2JzZXJ2ZXIuc3RhcnQpIHtcbiAgICAgICAgb2JzZXJ2ZXIuc3RhcnQoc3Vic2NyaXB0aW9uKTtcbiAgICAgIH1cbiAgICAgIGlmICghc3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgICBpZiAodGhpcy5fZW5kZWRXaXRoRXJyb3IpIHtcbiAgICAgICAgICBpZiAob2JzZXJ2ZXIuZXJyb3IpIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHRoaXMuX2Vycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKG9ic2VydmVyLmNvbXBsZXRlKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3Vic2NyaXB0aW9uLmNsb3NlZCA9IHRydWU7XG4gICAgICByZXR1cm4gc3Vic2NyaXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IG9ic2VydmVyUmVjb3JkID0ge29ic2VydmVyLCBpZ25vcmU6IHRoaXMuX2NoYW5nZVF1ZXVlLmxlbmd0aH07XG5cbiAgICBsZXQgaXNTdGFydGluZyA9IHRydWU7XG4gICAgbGV0IHVuc3Vic2NyaWJlZEluU3RhcnQgPSBmYWxzZTtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB7XG4gICAgICAvKjo6IGNsb3NlZDogZmFsc2UmJmAgKi8gZ2V0IGNsb3NlZCgpIHtcbiAgICAgICAgcmV0dXJuICFpc1N0YXJ0aW5nICYmIGxpdmVTZXQuX29ic2VydmVycy5pbmRleE9mKG9ic2VydmVyUmVjb3JkKSA8IDA7XG4gICAgICB9Lyo6OiBgICovLFxuICAgICAgdW5zdWJzY3JpYmU6ICgpID0+IHtcbiAgICAgICAgaWYgKGlzU3RhcnRpbmcpIHtcbiAgICAgICAgICB1bnN1YnNjcmliZWRJblN0YXJ0ID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXggPSB0aGlzLl9vYnNlcnZlcnMuaW5kZXhPZihvYnNlcnZlclJlY29yZCk7XG4gICAgICAgIGlmIChpeCA+PSAwKSB7XG4gICAgICAgICAgdGhpcy5fb2JzZXJ2ZXJzLnNwbGljZShpeCwgMSk7XG4gICAgICAgICAgaWYgKCF0aGlzLl9lbmRlZCAmJiB0aGlzLl9vYnNlcnZlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZXMgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5fZGVhY3RpdmF0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHB1bGxDaGFuZ2VzOiAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmUgJiYgdGhpcy5fYWN0aXZlLmxpc3RlbkhhbmRsZXIgJiYgdGhpcy5fYWN0aXZlLmxpc3RlbkhhbmRsZXIucHVsbENoYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLl9hY3RpdmUubGlzdGVuSGFuZGxlci5wdWxsQ2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNoYW5nZVF1ZXVlTGVuZ3RoID0gdGhpcy5fY2hhbmdlUXVldWUubGVuZ3RoO1xuICAgICAgICBjb25zdCBvcmlnaW5hbE5leHQgPSBvYnNlcnZlci5uZXh0O1xuICAgICAgICBpZiAoY2hhbmdlUXVldWVMZW5ndGggIT09IDAgJiYgb3JpZ2luYWxOZXh0KSB7XG4gICAgICAgICAgY29uc3QgY2hhbmdlc1RvRGVsaXZlciA9IHRoaXMuX2NoYW5nZVF1ZXVlLnNsaWNlKG9ic2VydmVyUmVjb3JkLmlnbm9yZSk7XG4gICAgICAgICAgaWYgKGNoYW5nZXNUb0RlbGl2ZXIubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICBvYnNlcnZlclJlY29yZC5pZ25vcmUgPSBjaGFuZ2VRdWV1ZUxlbmd0aDtcbiAgICAgICAgICAgIG9yaWdpbmFsTmV4dC5jYWxsKG9ic2VydmVyLCBjaGFuZ2VzVG9EZWxpdmVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLl9hY3RpdmUpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXI6IExpdmVTZXRDb250cm9sbGVyPFQ+ID0ge1xuICAgICAgICAvLyBGbG93IGRvZXNuJ3Qgc3VwcG9ydCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIHlldFxuICAgICAgICAvKjo6IGNsb3NlZDogZmFsc2UmJmAgKi8gZ2V0IGNsb3NlZCgpIHtcbiAgICAgICAgICByZXR1cm4gIWxpdmVTZXQuX2FjdGl2ZSB8fCBsaXZlU2V0Ll9hY3RpdmUuY29udHJvbGxlciAhPT0gdGhpcztcbiAgICAgICAgfS8qOjogYCAqLyxcbiAgICAgICAgYWRkOiB2YWx1ZSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5fdmFsdWVzO1xuICAgICAgICAgIGlmICghdmFsdWVzKSB0aHJvdyBuZXcgRXJyb3IoJ3NldFZhbHVlIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBjb250cm9sbGVyIGlzIHVzZWQnKTtcbiAgICAgICAgICBpZiAoIXRoaXMuX2VuZGVkICYmICF2YWx1ZXMuaGFzKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWVzLmFkZCh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9xdWV1ZUNoYW5nZSh7dHlwZTogJ2FkZCcsIHZhbHVlfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZW1vdmU6IHZhbHVlID0+IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLl92YWx1ZXM7XG4gICAgICAgICAgaWYgKCF2YWx1ZXMpIHRocm93IG5ldyBFcnJvcignc2V0VmFsdWUgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGNvbnRyb2xsZXIgaXMgdXNlZCcpO1xuICAgICAgICAgIGlmICghdGhpcy5fZW5kZWQgJiYgdmFsdWVzLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlcy5kZWxldGUodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fcXVldWVDaGFuZ2Uoe3R5cGU6ICdyZW1vdmUnLCB2YWx1ZX0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX2VuZGVkKSByZXR1cm47XG4gICAgICAgICAgdGhpcy5fZW5kZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuX2VuZGVkV2l0aEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLl9lcnJvciA9IGVycjtcbiAgICAgICAgICB0aGlzLl9xdWV1ZUNoYW5nZSgpO1xuICAgICAgICAgIHRoaXMuX2RlYWN0aXZhdGUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5kOiAoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX2VuZGVkKSByZXR1cm47XG4gICAgICAgICAgdGhpcy5fZW5kZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuX3F1ZXVlQ2hhbmdlKCk7XG4gICAgICAgICAgdGhpcy5fZGVhY3RpdmF0ZSgpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgY29uc3QgYWN0aXZlID0gdGhpcy5fYWN0aXZlID0ge1xuICAgICAgICBjb250cm9sbGVyLFxuICAgICAgICBsaXN0ZW5IYW5kbGVyOiB7XG4gICAgICAgICAgdW5zdWJzY3JpYmU6ICgpID0+IHt9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBjb25zdCBzZXRWYWx1ZXNFcnJvciA9ICgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzZXRWYWx1ZXMgbXVzdCBiZSBjYWxsZWQgb25jZSBkdXJpbmcgbGlzdGVuJyk7XG4gICAgICB9O1xuICAgICAgbGV0IHNldFZhbHVlcyA9IHZhbHVlcyA9PiB7XG4gICAgICAgIHNldFZhbHVlcyA9IHNldFZhbHVlc0Vycm9yO1xuICAgICAgICB0aGlzLl92YWx1ZXMgPSB2YWx1ZXM7XG4gICAgICB9O1xuICAgICAgY29uc3QgbGlzdGVuSGFuZGxlck9yRnVuY3Rpb24gPSB0aGlzLl9pbml0Lmxpc3Rlbih2YWx1ZXMgPT4gc2V0VmFsdWVzKHZhbHVlcyksIGNvbnRyb2xsZXIpO1xuICAgICAgaWYgKCF0aGlzLl92YWx1ZXMpIHtcbiAgICAgICAgc2V0VmFsdWVzRXJyb3IoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgbGlzdGVuSGFuZGxlck9yRnVuY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgYWN0aXZlLmxpc3RlbkhhbmRsZXIgPSB7XG4gICAgICAgICAgdW5zdWJzY3JpYmU6IGxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uICE9IG51bGwgJiYgdHlwZW9mIGxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uLnVuc3Vic2NyaWJlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGFjdGl2ZS5saXN0ZW5IYW5kbGVyID0gbGlzdGVuSGFuZGxlck9yRnVuY3Rpb247XG4gICAgICB9IGVsc2UgaWYgKGxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uICE9IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbGlzdGVuIG11c3QgcmV0dXJuIG9iamVjdCB3aXRoIHVuc3Vic2NyaWJlIG1ldGhvZCwgYSBmdW5jdGlvbiwgb3IgbnVsbCcpO1xuICAgICAgfVxuICAgICAgaWYgKGNvbnRyb2xsZXIuY2xvc2VkKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZSA9IGFjdGl2ZTtcbiAgICAgICAgdGhpcy5fZGVhY3RpdmF0ZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvYnNlcnZlci5zdGFydCkge1xuICAgICAgb2JzZXJ2ZXIuc3RhcnQoc3Vic2NyaXB0aW9uKTtcbiAgICB9XG4gICAgaXNTdGFydGluZyA9IGZhbHNlO1xuXG4gICAgb2JzZXJ2ZXJSZWNvcmQuaWdub3JlID0gdGhpcy5fY2hhbmdlUXVldWUubGVuZ3RoO1xuICAgIGlmICghdW5zdWJzY3JpYmVkSW5TdGFydCkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXJzLnB1c2gob2JzZXJ2ZXJSZWNvcmQpO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJzY3JpcHRpb247XG4gIH1cbn1cblxuLy8gQXNzaWduIGhlcmUgYmVjYXVzZSBGbG93IGRvZXNuJ3Qgc3VwcG9ydCBjb21wdXRlZCBwcm9wZXJ0eSBrZXlzIG9uIGNsYXNzZXM6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svZmxvdy9pc3N1ZXMvMjI4NlxuKExpdmVTZXQ6YW55KS5wcm90b3R5cGVbJCRvYnNlcnZhYmxlXSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcztcbn07XG4iXX0= |
@@ -73,2 +73,2 @@ 'use strict'; | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tYXAuanMiXSwibmFtZXMiOlsibWFwIiwibGl2ZVNldCIsImNiIiwicmVhZCIsInMiLCJ2YWx1ZXMiLCJmb3JFYWNoIiwiYWRkIiwidmFsdWUiLCJsaXN0ZW4iLCJzZXRWYWx1ZXMiLCJjb250cm9sbGVyIiwibSIsInN1YiIsInN1YnNjcmliZSIsInN0YXJ0IiwibmV3VmFsdWUiLCJzZXQiLCJuZXh0IiwiY2hhbmdlcyIsImNoYW5nZSIsInR5cGUiLCJnZXQiLCJFcnJvciIsImRlbGV0ZSIsInJlbW92ZSIsImVycm9yIiwiZXJyIiwiY29tcGxldGUiLCJlbmQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O2tCQUl3QkEsRzs7QUFGeEI7Ozs7OztBQUVlLFNBQVNBLEdBQVQsQ0FBa0JDLE9BQWxCLEVBQXVDQyxFQUF2QyxFQUF3RTtBQUNyRixTQUFPLGVBQVk7QUFDakJDLFFBRGlCLGtCQUNWO0FBQ0wsVUFBTUMsSUFBSSxtQkFBVjtBQUNBSCxjQUFRSSxNQUFSLEdBQWlCQyxPQUFqQixDQUF5QixpQkFBUztBQUNoQ0YsVUFBRUcsR0FBRixDQUFNTCxHQUFHTSxLQUFILENBQU47QUFDRCxPQUZEO0FBR0EsYUFBT0osQ0FBUDtBQUNELEtBUGdCO0FBUWpCSyxVQVJpQixrQkFRVkMsU0FSVSxFQVFDQyxVQVJELEVBUWE7QUFDNUIsVUFBTUMsSUFBYyxtQkFBcEI7O0FBRUEsVUFBTUMsTUFBTVosUUFBUWEsU0FBUixDQUFrQjtBQUM1QkMsYUFENEIsbUJBQ3BCO0FBQ04sY0FBTVgsSUFBSSxtQkFBVjtBQUNBSCxrQkFBUUksTUFBUixHQUFpQkMsT0FBakIsQ0FBeUIsaUJBQVM7QUFDaEMsZ0JBQU1VLFdBQVdkLEdBQUdNLEtBQUgsQ0FBakI7QUFDQUksY0FBRUssR0FBRixDQUFNVCxLQUFOLEVBQWFRLFFBQWI7QUFDQVosY0FBRUcsR0FBRixDQUFNUyxRQUFOO0FBQ0QsV0FKRDtBQUtBTixvQkFBVU4sQ0FBVjtBQUNELFNBVDJCO0FBVTVCYyxZQVY0QixnQkFVdkJDLE9BVnVCLEVBVWQ7QUFDWkEsa0JBQVFiLE9BQVIsQ0FBZ0Isa0JBQVU7QUFDeEIsZ0JBQUljLE9BQU9DLElBQVAsS0FBZ0IsS0FBcEIsRUFBMkI7QUFDekIsa0JBQU1MLFdBQVdkLEdBQUdrQixPQUFPWixLQUFWLENBQWpCO0FBQ0FJLGdCQUFFSyxHQUFGLENBQU1HLE9BQU9aLEtBQWIsRUFBb0JRLFFBQXBCO0FBQ0FMLHlCQUFXSixHQUFYLENBQWVTLFFBQWY7QUFDRCxhQUpELE1BSU8sSUFBSUksT0FBT0MsSUFBUCxLQUFnQixRQUFwQixFQUE4QjtBQUNuQyxrQkFBTUwsWUFBV0osRUFBRVUsR0FBRixDQUFNRixPQUFPWixLQUFiLENBQWpCO0FBQ0Esa0JBQUksQ0FBQ1EsU0FBTCxFQUFlLE1BQU0sSUFBSU8sS0FBSixDQUFVLDZCQUFWLENBQU47QUFDZlgsZ0JBQUVZLE1BQUYsQ0FBU0osT0FBT1osS0FBaEI7QUFDQUcseUJBQVdjLE1BQVgsQ0FBa0JULFNBQWxCO0FBQ0Q7QUFDRixXQVhEO0FBWUQsU0F2QjJCO0FBd0I1QlUsYUF4QjRCLGlCQXdCdEJDLEdBeEJzQixFQXdCakI7QUFDVGhCLHFCQUFXZSxLQUFYLENBQWlCQyxHQUFqQjtBQUNELFNBMUIyQjtBQTJCNUJDLGdCQTNCNEIsc0JBMkJqQjtBQUNUakIscUJBQVdrQixHQUFYO0FBQ0Q7QUE3QjJCLE9BQWxCLENBQVo7O0FBZ0NBLGFBQU9oQixHQUFQO0FBQ0Q7QUE1Q2dCLEdBQVosQ0FBUDtBQThDRCIsImZpbGUiOiJtYXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgTGl2ZVNldCBmcm9tICcuJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWFwPFQsVT4obGl2ZVNldDogTGl2ZVNldDxUPiwgY2I6ICh2YWx1ZTogVCkgPT4gVSk6IExpdmVTZXQ8VT4ge1xuICByZXR1cm4gbmV3IExpdmVTZXQoe1xuICAgIHJlYWQoKSB7XG4gICAgICBjb25zdCBzID0gbmV3IFNldCgpO1xuICAgICAgbGl2ZVNldC52YWx1ZXMoKS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgcy5hZGQoY2IodmFsdWUpKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHM7XG4gICAgfSxcbiAgICBsaXN0ZW4oc2V0VmFsdWVzLCBjb250cm9sbGVyKSB7XG4gICAgICBjb25zdCBtOiBNYXA8VCxVPiA9IG5ldyBNYXAoKTtcblxuICAgICAgY29uc3Qgc3ViID0gbGl2ZVNldC5zdWJzY3JpYmUoe1xuICAgICAgICBzdGFydCgpIHtcbiAgICAgICAgICBjb25zdCBzID0gbmV3IFNldCgpO1xuICAgICAgICAgIGxpdmVTZXQudmFsdWVzKCkuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGNiKHZhbHVlKTtcbiAgICAgICAgICAgIG0uc2V0KHZhbHVlLCBuZXdWYWx1ZSk7XG4gICAgICAgICAgICBzLmFkZChuZXdWYWx1ZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc2V0VmFsdWVzKHMpO1xuICAgICAgICB9LFxuICAgICAgICBuZXh0KGNoYW5nZXMpIHtcbiAgICAgICAgICBjaGFuZ2VzLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2UudHlwZSA9PT0gJ2FkZCcpIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBjYihjaGFuZ2UudmFsdWUpO1xuICAgICAgICAgICAgICBtLnNldChjaGFuZ2UudmFsdWUsIG5ld1ZhbHVlKTtcbiAgICAgICAgICAgICAgY29udHJvbGxlci5hZGQobmV3VmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UudHlwZSA9PT0gJ3JlbW92ZScpIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBtLmdldChjaGFuZ2UudmFsdWUpO1xuICAgICAgICAgICAgICBpZiAoIW5ld1ZhbHVlKSB0aHJvdyBuZXcgRXJyb3IoJ3JlbW92ZWQgaXRlbSBub3QgaW4gbGl2ZXNldCcpO1xuICAgICAgICAgICAgICBtLmRlbGV0ZShjaGFuZ2UudmFsdWUpO1xuICAgICAgICAgICAgICBjb250cm9sbGVyLnJlbW92ZShuZXdWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yKGVycikge1xuICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGUoKSB7XG4gICAgICAgICAgY29udHJvbGxlci5lbmQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBzdWI7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tYXAuanMiXSwibmFtZXMiOlsibWFwIiwibGl2ZVNldCIsImNiIiwicmVhZCIsInMiLCJ2YWx1ZXMiLCJmb3JFYWNoIiwiYWRkIiwidmFsdWUiLCJsaXN0ZW4iLCJzZXRWYWx1ZXMiLCJjb250cm9sbGVyIiwibSIsInN1YiIsInN1YnNjcmliZSIsInN0YXJ0IiwibmV3VmFsdWUiLCJzZXQiLCJuZXh0IiwiY2hhbmdlcyIsImNoYW5nZSIsInR5cGUiLCJnZXQiLCJFcnJvciIsImRlbGV0ZSIsInJlbW92ZSIsImVycm9yIiwiZXJyIiwiY29tcGxldGUiLCJlbmQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O2tCQUl3QkEsRzs7QUFGeEI7Ozs7OztBQUVlLFNBQVNBLEdBQVQsQ0FBa0JDLE9BQWxCLEVBQXVDQyxFQUF2QyxFQUF3RTtBQUNyRixTQUFPLGVBQVk7QUFDakJDLFFBRGlCLGtCQUNWO0FBQ0wsVUFBTUMsSUFBSSxtQkFBVjtBQUNBSCxjQUFRSSxNQUFSLEdBQWlCQyxPQUFqQixDQUF5QixpQkFBUztBQUNoQ0YsVUFBRUcsR0FBRixDQUFNTCxHQUFHTSxLQUFILENBQU47QUFDRCxPQUZEO0FBR0EsYUFBT0osQ0FBUDtBQUNELEtBUGdCO0FBUWpCSyxVQVJpQixrQkFRVkMsU0FSVSxFQVFDQyxVQVJELEVBUWE7QUFDNUIsVUFBTUMsSUFBYyxtQkFBcEI7O0FBRUEsVUFBTUMsTUFBTVosUUFBUWEsU0FBUixDQUFrQjtBQUM1QkMsYUFENEIsbUJBQ3BCO0FBQ04sY0FBTVgsSUFBSSxtQkFBVjtBQUNBSCxrQkFBUUksTUFBUixHQUFpQkMsT0FBakIsQ0FBeUIsaUJBQVM7QUFDaEMsZ0JBQU1VLFdBQVdkLEdBQUdNLEtBQUgsQ0FBakI7QUFDQUksY0FBRUssR0FBRixDQUFNVCxLQUFOLEVBQWFRLFFBQWI7QUFDQVosY0FBRUcsR0FBRixDQUFNUyxRQUFOO0FBQ0QsV0FKRDtBQUtBTixvQkFBVU4sQ0FBVjtBQUNELFNBVDJCO0FBVTVCYyxZQVY0QixnQkFVdkJDLE9BVnVCLEVBVWQ7QUFDWkEsa0JBQVFiLE9BQVIsQ0FBZ0Isa0JBQVU7QUFDeEIsZ0JBQUljLE9BQU9DLElBQVAsS0FBZ0IsS0FBcEIsRUFBMkI7QUFDekIsa0JBQU1MLFdBQVdkLEdBQUdrQixPQUFPWixLQUFWLENBQWpCO0FBQ0FJLGdCQUFFSyxHQUFGLENBQU1HLE9BQU9aLEtBQWIsRUFBb0JRLFFBQXBCO0FBQ0FMLHlCQUFXSixHQUFYLENBQWVTLFFBQWY7QUFDRCxhQUpELE1BSU8sSUFBSUksT0FBT0MsSUFBUCxLQUFnQixRQUFwQixFQUE4QjtBQUNuQyxrQkFBTUwsWUFBV0osRUFBRVUsR0FBRixDQUFNRixPQUFPWixLQUFiLENBQWpCO0FBQ0Esa0JBQUksQ0FBQ1EsU0FBTCxFQUFlLE1BQU0sSUFBSU8sS0FBSixDQUFVLDZCQUFWLENBQU47QUFDZlgsZ0JBQUVZLE1BQUYsQ0FBU0osT0FBT1osS0FBaEI7QUFDQUcseUJBQVdjLE1BQVgsQ0FBa0JULFNBQWxCO0FBQ0Q7QUFDRixXQVhEO0FBWUQsU0F2QjJCO0FBd0I1QlUsYUF4QjRCLGlCQXdCdEJDLEdBeEJzQixFQXdCakI7QUFDVGhCLHFCQUFXZSxLQUFYLENBQWlCQyxHQUFqQjtBQUNELFNBMUIyQjtBQTJCNUJDLGdCQTNCNEIsc0JBMkJqQjtBQUNUakIscUJBQVdrQixHQUFYO0FBQ0Q7QUE3QjJCLE9BQWxCLENBQVo7O0FBZ0NBLGFBQU9oQixHQUFQO0FBQ0Q7QUE1Q2dCLEdBQVosQ0FBUDtBQThDRCIsImZpbGUiOiJtYXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgTGl2ZVNldCBmcm9tICcuJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWFwPFQsVT4obGl2ZVNldDogTGl2ZVNldDxUPiwgY2I6ICh2YWx1ZTogVCkgPT4gVSk6IExpdmVTZXQ8VT4ge1xuICByZXR1cm4gbmV3IExpdmVTZXQoe1xuICAgIHJlYWQoKSB7XG4gICAgICBjb25zdCBzID0gbmV3IFNldCgpO1xuICAgICAgbGl2ZVNldC52YWx1ZXMoKS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgcy5hZGQoY2IodmFsdWUpKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHM7XG4gICAgfSxcbiAgICBsaXN0ZW4oc2V0VmFsdWVzLCBjb250cm9sbGVyKSB7XG4gICAgICBjb25zdCBtOiBNYXA8VCxVPiA9IG5ldyBNYXAoKTtcblxuICAgICAgY29uc3Qgc3ViID0gbGl2ZVNldC5zdWJzY3JpYmUoe1xuICAgICAgICBzdGFydCgpIHtcbiAgICAgICAgICBjb25zdCBzID0gbmV3IFNldCgpO1xuICAgICAgICAgIGxpdmVTZXQudmFsdWVzKCkuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGNiKHZhbHVlKTtcbiAgICAgICAgICAgIG0uc2V0KHZhbHVlLCBuZXdWYWx1ZSk7XG4gICAgICAgICAgICBzLmFkZChuZXdWYWx1ZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc2V0VmFsdWVzKHMpO1xuICAgICAgICB9LFxuICAgICAgICBuZXh0KGNoYW5nZXMpIHtcbiAgICAgICAgICBjaGFuZ2VzLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2UudHlwZSA9PT0gJ2FkZCcpIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBjYihjaGFuZ2UudmFsdWUpO1xuICAgICAgICAgICAgICBtLnNldChjaGFuZ2UudmFsdWUsIG5ld1ZhbHVlKTtcbiAgICAgICAgICAgICAgY29udHJvbGxlci5hZGQobmV3VmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UudHlwZSA9PT0gJ3JlbW92ZScpIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBtLmdldChjaGFuZ2UudmFsdWUpO1xuICAgICAgICAgICAgICBpZiAoIW5ld1ZhbHVlKSB0aHJvdyBuZXcgRXJyb3IoJ3JlbW92ZWQgaXRlbSBub3QgaW4gbGl2ZXNldCcpO1xuICAgICAgICAgICAgICBtLmRlbGV0ZShjaGFuZ2UudmFsdWUpO1xuICAgICAgICAgICAgICBjb250cm9sbGVyLnJlbW92ZShuZXdWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yKGVycikge1xuICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGUoKSB7XG4gICAgICAgICAgY29udHJvbGxlci5lbmQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBzdWI7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ== |
@@ -100,2 +100,2 @@ 'use strict'; | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tYXBXaXRoUmVtb3ZhbC5qcyJdLCJuYW1lcyI6WyJtYXBXaXRoUmVtb3ZhbCIsImlucHV0IiwiY2IiLCJvdXRwdXQiLCJyZWFkIiwiRXJyb3IiLCJsaXN0ZW4iLCJzZXRWYWx1ZXMiLCJjb250cm9sbGVyIiwibSIsInN1YiIsInN1YnNjcmliZSIsInN0YXJ0IiwicyIsInZhbHVlcyIsImZvckVhY2giLCJyZXNvbHZlIiwicmVtb3ZhbCIsIl9yZXNvbHZlIiwibmV3VmFsdWUiLCJ2YWx1ZSIsInNldCIsImFkZCIsIm5leHQiLCJjaGFuZ2VzIiwiY2hhbmdlIiwidHlwZSIsImVudHJ5IiwiZ2V0IiwiZGVsZXRlIiwicmVtb3ZlIiwiZXJyb3IiLCJlcnIiLCJjb21wbGV0ZSIsImVuZCIsInVuc3Vic2NyaWJlIiwicHVsbENoYW5nZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkFJd0JBLGM7O0FBRnhCOzs7Ozs7QUFFZSxTQUFTQSxjQUFULENBQTZCQyxLQUE3QixFQUFnREMsRUFBaEQsRUFBeUc7QUFDdEgsTUFBTUMsU0FBUyxlQUFZO0FBQ3pCQyxRQUR5QixrQkFDbEI7QUFDTCxZQUFNLElBQUlDLEtBQUosQ0FBVSx1REFBVixDQUFOO0FBQ0QsS0FId0I7QUFJekJDLFVBSnlCLGtCQUlsQkMsU0FKa0IsRUFJUEMsVUFKTyxFQUlLO0FBQzVCLFVBQU1DLElBQThDLG1CQUFwRDs7QUFFQSxVQUFNQyxNQUFNVCxNQUFNVSxTQUFOLENBQWdCO0FBQzFCQyxhQUQwQixtQkFDbEI7QUFDTixjQUFNQyxJQUFJLG1CQUFWO0FBQ0FaLGdCQUFNYSxNQUFOLEdBQWVDLE9BQWYsQ0FBdUIsaUJBQVM7QUFDOUIsZ0JBQUlDLGdCQUFKO0FBQ0EsZ0JBQU1DLFVBQXlCLHNCQUFZLG9CQUFZO0FBQ3JERCx3QkFBVUUsUUFBVjtBQUNELGFBRjhCLENBQS9CO0FBR0E7QUFDQSxnQkFBTUMsV0FBV2pCLEdBQUdrQixLQUFILEVBQVVILE9BQVYsQ0FBakI7QUFDQVIsY0FBRVksR0FBRixDQUFNRCxLQUFOLEVBQWEsRUFBQ0Qsa0JBQUQsRUFBV0gsZ0JBQVgsRUFBYjtBQUNBSCxjQUFFUyxHQUFGLENBQU1ILFFBQU47QUFDRCxXQVREO0FBVUFaLG9CQUFVTSxDQUFWO0FBQ0QsU0FkeUI7QUFlMUJVLFlBZjBCLGdCQWVyQkMsT0FmcUIsRUFlWjtBQUNaQSxrQkFBUVQsT0FBUixDQUFnQixrQkFBVTtBQUN4QixnQkFBSVUsT0FBT0MsSUFBUCxLQUFnQixLQUFwQixFQUEyQjtBQUN6QixrQkFBSVYsa0JBQUo7QUFDQSxrQkFBTUMsV0FBeUIsc0JBQVksb0JBQVk7QUFDckRELDRCQUFVRSxRQUFWO0FBQ0QsZUFGOEIsQ0FBL0I7QUFHQTtBQUNBLGtCQUFNQyxZQUFXakIsR0FBR3VCLE9BQU9MLEtBQVYsRUFBaUJILFFBQWpCLENBQWpCO0FBQ0FSLGdCQUFFWSxHQUFGLENBQU1JLE9BQU9MLEtBQWIsRUFBb0IsRUFBQ0QsbUJBQUQsRUFBV0gsa0JBQVgsRUFBcEI7QUFDQVIseUJBQVdjLEdBQVgsQ0FBZUgsU0FBZjtBQUNELGFBVEQsTUFTTyxJQUFJTSxPQUFPQyxJQUFQLEtBQWdCLFFBQXBCLEVBQThCO0FBQ25DLGtCQUFNQyxRQUFRbEIsRUFBRW1CLEdBQUYsQ0FBTUgsT0FBT0wsS0FBYixDQUFkO0FBQ0Esa0JBQUksQ0FBQ08sS0FBTCxFQUFZLE1BQU0sSUFBSXRCLEtBQUosQ0FBVSw2QkFBVixDQUFOO0FBRnVCLGtCQUc1QmMsVUFINEIsR0FHUFEsS0FITyxDQUc1QlIsUUFINEI7QUFBQSxrQkFHbEJILFNBSGtCLEdBR1BXLEtBSE8sQ0FHbEJYLE9BSGtCOztBQUluQ0E7QUFDQVAsZ0JBQUVvQixNQUFGLENBQVNKLE9BQU9MLEtBQWhCO0FBQ0FaLHlCQUFXc0IsTUFBWCxDQUFrQlgsVUFBbEI7QUFDRDtBQUNGLFdBbEJEO0FBbUJELFNBbkN5QjtBQW9DMUJZLGFBcEMwQixpQkFvQ3BCQyxHQXBDb0IsRUFvQ2Y7QUFDVHhCLHFCQUFXdUIsS0FBWCxDQUFpQkMsR0FBakI7QUFDRCxTQXRDeUI7QUF1QzFCQyxnQkF2QzBCLHNCQXVDZjtBQUNUekIscUJBQVcwQixHQUFYO0FBQ0Q7QUF6Q3lCLE9BQWhCLENBQVo7O0FBNENBLGFBQU87QUFDTEMsbUJBREsseUJBQ1M7QUFDWnpCLGNBQUl5QixXQUFKO0FBQ0ExQixZQUFFTSxPQUFGLENBQVUsZ0JBQWU7QUFBQSxnQkFBYkMsT0FBYSxRQUFiQSxPQUFhOztBQUN2QkE7QUFDRCxXQUZEO0FBR0QsU0FOSTtBQU9Mb0IsbUJBUEsseUJBT1M7QUFDWjFCLGNBQUkwQixXQUFKO0FBQ0Q7QUFUSSxPQUFQO0FBV0Q7QUE5RHdCLEdBQVosQ0FBZjtBQWdFQSxTQUFPakMsTUFBUDtBQUNEIiwiZmlsZSI6Im1hcFdpdGhSZW1vdmFsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cblxuaW1wb3J0IExpdmVTZXQgZnJvbSAnLic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1hcFdpdGhSZW1vdmFsPFQsVT4oaW5wdXQ6IExpdmVTZXQ8VD4sIGNiOiAodmFsdWU6IFQsIHJlbW92YWw6IFByb21pc2U8dm9pZD4pID0+IFUpOiBMaXZlU2V0PFU+IHtcbiAgY29uc3Qgb3V0cHV0ID0gbmV3IExpdmVTZXQoe1xuICAgIHJlYWQoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hcFdpdGhSZW1vdmFsIGxpdmVzZXQgbWF5IG5vdCBiZSByZWFkIHdoaWxlIGluYWN0aXZlJyk7XG4gICAgfSxcbiAgICBsaXN0ZW4oc2V0VmFsdWVzLCBjb250cm9sbGVyKSB7XG4gICAgICBjb25zdCBtOiBNYXA8VCwge25ld1ZhbHVlOiBVLCByZXNvbHZlOiBGdW5jdGlvbn0+ID0gbmV3IE1hcCgpO1xuXG4gICAgICBjb25zdCBzdWIgPSBpbnB1dC5zdWJzY3JpYmUoe1xuICAgICAgICBzdGFydCgpIHtcbiAgICAgICAgICBjb25zdCBzID0gbmV3IFNldCgpO1xuICAgICAgICAgIGlucHV0LnZhbHVlcygpLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc29sdmU7XG4gICAgICAgICAgICBjb25zdCByZW1vdmFsOiBQcm9taXNlPHZvaWQ+ID0gbmV3IFByb21pc2UoX3Jlc29sdmUgPT4ge1xuICAgICAgICAgICAgICByZXNvbHZlID0gX3Jlc29sdmU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8qOjogaWYgKCFyZXNvbHZlKSB0aHJvdyBuZXcgRXJyb3IoKTsgKi9cbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY2IodmFsdWUsIHJlbW92YWwpO1xuICAgICAgICAgICAgbS5zZXQodmFsdWUsIHtuZXdWYWx1ZSwgcmVzb2x2ZX0pO1xuICAgICAgICAgICAgcy5hZGQobmV3VmFsdWUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHNldFZhbHVlcyhzKTtcbiAgICAgICAgfSxcbiAgICAgICAgbmV4dChjaGFuZ2VzKSB7XG4gICAgICAgICAgY2hhbmdlcy5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlLnR5cGUgPT09ICdhZGQnKSB7XG4gICAgICAgICAgICAgIGxldCByZXNvbHZlO1xuICAgICAgICAgICAgICBjb25zdCByZW1vdmFsOiBQcm9taXNlPHZvaWQ+ID0gbmV3IFByb21pc2UoX3Jlc29sdmUgPT4ge1xuICAgICAgICAgICAgICAgIHJlc29sdmUgPSBfcmVzb2x2ZTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIC8qOjogaWYgKCFyZXNvbHZlKSB0aHJvdyBuZXcgRXJyb3IoKTsgKi9cbiAgICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBjYihjaGFuZ2UudmFsdWUsIHJlbW92YWwpO1xuICAgICAgICAgICAgICBtLnNldChjaGFuZ2UudmFsdWUsIHtuZXdWYWx1ZSwgcmVzb2x2ZX0pO1xuICAgICAgICAgICAgICBjb250cm9sbGVyLmFkZChuZXdWYWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZS50eXBlID09PSAncmVtb3ZlJykge1xuICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IG0uZ2V0KGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgICAgIGlmICghZW50cnkpIHRocm93IG5ldyBFcnJvcigncmVtb3ZlZCBpdGVtIG5vdCBpbiBsaXZlc2V0Jyk7XG4gICAgICAgICAgICAgIGNvbnN0IHtuZXdWYWx1ZSwgcmVzb2x2ZX0gPSBlbnRyeTtcbiAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICBtLmRlbGV0ZShjaGFuZ2UudmFsdWUpO1xuICAgICAgICAgICAgICBjb250cm9sbGVyLnJlbW92ZShuZXdWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yKGVycikge1xuICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGUoKSB7XG4gICAgICAgICAgY29udHJvbGxlci5lbmQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHVuc3Vic2NyaWJlKCkge1xuICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIG0uZm9yRWFjaCgoe3Jlc29sdmV9KSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHB1bGxDaGFuZ2VzKCkge1xuICAgICAgICAgIHN1Yi5wdWxsQ2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBvdXRwdXQ7XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tYXBXaXRoUmVtb3ZhbC5qcyJdLCJuYW1lcyI6WyJtYXBXaXRoUmVtb3ZhbCIsImlucHV0IiwiY2IiLCJvdXRwdXQiLCJyZWFkIiwiRXJyb3IiLCJsaXN0ZW4iLCJzZXRWYWx1ZXMiLCJjb250cm9sbGVyIiwibSIsInN1YiIsInN1YnNjcmliZSIsInN0YXJ0IiwicyIsInZhbHVlcyIsImZvckVhY2giLCJyZXNvbHZlIiwicmVtb3ZhbCIsIl9yZXNvbHZlIiwibmV3VmFsdWUiLCJ2YWx1ZSIsInNldCIsImFkZCIsIm5leHQiLCJjaGFuZ2VzIiwiY2hhbmdlIiwidHlwZSIsImVudHJ5IiwiZ2V0IiwiZGVsZXRlIiwicmVtb3ZlIiwiZXJyb3IiLCJlcnIiLCJjb21wbGV0ZSIsImVuZCIsInVuc3Vic2NyaWJlIiwicHVsbENoYW5nZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkFJd0JBLGM7O0FBRnhCOzs7Ozs7QUFFZSxTQUFTQSxjQUFULENBQTZCQyxLQUE3QixFQUFnREMsRUFBaEQsRUFBeUc7QUFDdEgsTUFBTUMsU0FBUyxlQUFZO0FBQ3pCQyxRQUR5QixrQkFDbEI7QUFDTCxZQUFNLElBQUlDLEtBQUosQ0FBVSx1REFBVixDQUFOO0FBQ0QsS0FId0I7QUFJekJDLFVBSnlCLGtCQUlsQkMsU0FKa0IsRUFJUEMsVUFKTyxFQUlLO0FBQzVCLFVBQU1DLElBQThDLG1CQUFwRDs7QUFFQSxVQUFNQyxNQUFNVCxNQUFNVSxTQUFOLENBQWdCO0FBQzFCQyxhQUQwQixtQkFDbEI7QUFDTixjQUFNQyxJQUFJLG1CQUFWO0FBQ0FaLGdCQUFNYSxNQUFOLEdBQWVDLE9BQWYsQ0FBdUIsaUJBQVM7QUFDOUIsZ0JBQUlDLGdCQUFKO0FBQ0EsZ0JBQU1DLFVBQXlCLHNCQUFZLG9CQUFZO0FBQ3JERCx3QkFBVUUsUUFBVjtBQUNELGFBRjhCLENBQS9CO0FBR0E7QUFDQSxnQkFBTUMsV0FBV2pCLEdBQUdrQixLQUFILEVBQVVILE9BQVYsQ0FBakI7QUFDQVIsY0FBRVksR0FBRixDQUFNRCxLQUFOLEVBQWEsRUFBQ0Qsa0JBQUQsRUFBV0gsZ0JBQVgsRUFBYjtBQUNBSCxjQUFFUyxHQUFGLENBQU1ILFFBQU47QUFDRCxXQVREO0FBVUFaLG9CQUFVTSxDQUFWO0FBQ0QsU0FkeUI7QUFlMUJVLFlBZjBCLGdCQWVyQkMsT0FmcUIsRUFlWjtBQUNaQSxrQkFBUVQsT0FBUixDQUFnQixrQkFBVTtBQUN4QixnQkFBSVUsT0FBT0MsSUFBUCxLQUFnQixLQUFwQixFQUEyQjtBQUN6QixrQkFBSVYsa0JBQUo7QUFDQSxrQkFBTUMsV0FBeUIsc0JBQVksb0JBQVk7QUFDckRELDRCQUFVRSxRQUFWO0FBQ0QsZUFGOEIsQ0FBL0I7QUFHQTtBQUNBLGtCQUFNQyxZQUFXakIsR0FBR3VCLE9BQU9MLEtBQVYsRUFBaUJILFFBQWpCLENBQWpCO0FBQ0FSLGdCQUFFWSxHQUFGLENBQU1JLE9BQU9MLEtBQWIsRUFBb0IsRUFBQ0QsbUJBQUQsRUFBV0gsa0JBQVgsRUFBcEI7QUFDQVIseUJBQVdjLEdBQVgsQ0FBZUgsU0FBZjtBQUNELGFBVEQsTUFTTyxJQUFJTSxPQUFPQyxJQUFQLEtBQWdCLFFBQXBCLEVBQThCO0FBQ25DLGtCQUFNQyxRQUFRbEIsRUFBRW1CLEdBQUYsQ0FBTUgsT0FBT0wsS0FBYixDQUFkO0FBQ0Esa0JBQUksQ0FBQ08sS0FBTCxFQUFZLE1BQU0sSUFBSXRCLEtBQUosQ0FBVSw2QkFBVixDQUFOO0FBRnVCLGtCQUc1QmMsVUFINEIsR0FHUFEsS0FITyxDQUc1QlIsUUFINEI7QUFBQSxrQkFHbEJILFNBSGtCLEdBR1BXLEtBSE8sQ0FHbEJYLE9BSGtCOztBQUluQ0E7QUFDQVAsZ0JBQUVvQixNQUFGLENBQVNKLE9BQU9MLEtBQWhCO0FBQ0FaLHlCQUFXc0IsTUFBWCxDQUFrQlgsVUFBbEI7QUFDRDtBQUNGLFdBbEJEO0FBbUJELFNBbkN5QjtBQW9DMUJZLGFBcEMwQixpQkFvQ3BCQyxHQXBDb0IsRUFvQ2Y7QUFDVHhCLHFCQUFXdUIsS0FBWCxDQUFpQkMsR0FBakI7QUFDRCxTQXRDeUI7QUF1QzFCQyxnQkF2QzBCLHNCQXVDZjtBQUNUekIscUJBQVcwQixHQUFYO0FBQ0Q7QUF6Q3lCLE9BQWhCLENBQVo7O0FBNENBLGFBQU87QUFDTEMsbUJBREsseUJBQ1M7QUFDWnpCLGNBQUl5QixXQUFKO0FBQ0ExQixZQUFFTSxPQUFGLENBQVUsZ0JBQWU7QUFBQSxnQkFBYkMsT0FBYSxRQUFiQSxPQUFhOztBQUN2QkE7QUFDRCxXQUZEO0FBR0QsU0FOSTtBQU9Mb0IsbUJBUEsseUJBT1M7QUFDWjFCLGNBQUkwQixXQUFKO0FBQ0Q7QUFUSSxPQUFQO0FBV0Q7QUE5RHdCLEdBQVosQ0FBZjtBQWdFQSxTQUFPakMsTUFBUDtBQUNEIiwiZmlsZSI6Im1hcFdpdGhSZW1vdmFsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cblxuaW1wb3J0IExpdmVTZXQgZnJvbSAnLic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1hcFdpdGhSZW1vdmFsPFQsVT4oaW5wdXQ6IExpdmVTZXQ8VD4sIGNiOiAodmFsdWU6IFQsIHJlbW92YWw6IFByb21pc2U8dm9pZD4pID0+IFUpOiBMaXZlU2V0PFU+IHtcbiAgY29uc3Qgb3V0cHV0ID0gbmV3IExpdmVTZXQoe1xuICAgIHJlYWQoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hcFdpdGhSZW1vdmFsIGxpdmVzZXQgbWF5IG5vdCBiZSByZWFkIHdoaWxlIGluYWN0aXZlJyk7XG4gICAgfSxcbiAgICBsaXN0ZW4oc2V0VmFsdWVzLCBjb250cm9sbGVyKSB7XG4gICAgICBjb25zdCBtOiBNYXA8VCwge25ld1ZhbHVlOiBVLCByZXNvbHZlOiBGdW5jdGlvbn0+ID0gbmV3IE1hcCgpO1xuXG4gICAgICBjb25zdCBzdWIgPSBpbnB1dC5zdWJzY3JpYmUoe1xuICAgICAgICBzdGFydCgpIHtcbiAgICAgICAgICBjb25zdCBzID0gbmV3IFNldCgpO1xuICAgICAgICAgIGlucHV0LnZhbHVlcygpLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc29sdmU7XG4gICAgICAgICAgICBjb25zdCByZW1vdmFsOiBQcm9taXNlPHZvaWQ+ID0gbmV3IFByb21pc2UoX3Jlc29sdmUgPT4ge1xuICAgICAgICAgICAgICByZXNvbHZlID0gX3Jlc29sdmU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8qOjogaWYgKCFyZXNvbHZlKSB0aHJvdyBuZXcgRXJyb3IoKTsgKi9cbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY2IodmFsdWUsIHJlbW92YWwpO1xuICAgICAgICAgICAgbS5zZXQodmFsdWUsIHtuZXdWYWx1ZSwgcmVzb2x2ZX0pO1xuICAgICAgICAgICAgcy5hZGQobmV3VmFsdWUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHNldFZhbHVlcyhzKTtcbiAgICAgICAgfSxcbiAgICAgICAgbmV4dChjaGFuZ2VzKSB7XG4gICAgICAgICAgY2hhbmdlcy5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlLnR5cGUgPT09ICdhZGQnKSB7XG4gICAgICAgICAgICAgIGxldCByZXNvbHZlO1xuICAgICAgICAgICAgICBjb25zdCByZW1vdmFsOiBQcm9taXNlPHZvaWQ+ID0gbmV3IFByb21pc2UoX3Jlc29sdmUgPT4ge1xuICAgICAgICAgICAgICAgIHJlc29sdmUgPSBfcmVzb2x2ZTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIC8qOjogaWYgKCFyZXNvbHZlKSB0aHJvdyBuZXcgRXJyb3IoKTsgKi9cbiAgICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBjYihjaGFuZ2UudmFsdWUsIHJlbW92YWwpO1xuICAgICAgICAgICAgICBtLnNldChjaGFuZ2UudmFsdWUsIHtuZXdWYWx1ZSwgcmVzb2x2ZX0pO1xuICAgICAgICAgICAgICBjb250cm9sbGVyLmFkZChuZXdWYWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZS50eXBlID09PSAncmVtb3ZlJykge1xuICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IG0uZ2V0KGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgICAgIGlmICghZW50cnkpIHRocm93IG5ldyBFcnJvcigncmVtb3ZlZCBpdGVtIG5vdCBpbiBsaXZlc2V0Jyk7XG4gICAgICAgICAgICAgIGNvbnN0IHtuZXdWYWx1ZSwgcmVzb2x2ZX0gPSBlbnRyeTtcbiAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICBtLmRlbGV0ZShjaGFuZ2UudmFsdWUpO1xuICAgICAgICAgICAgICBjb250cm9sbGVyLnJlbW92ZShuZXdWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yKGVycikge1xuICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGUoKSB7XG4gICAgICAgICAgY29udHJvbGxlci5lbmQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHVuc3Vic2NyaWJlKCkge1xuICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIG0uZm9yRWFjaCgoe3Jlc29sdmV9KSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHB1bGxDaGFuZ2VzKCkge1xuICAgICAgICAgIHN1Yi5wdWxsQ2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBvdXRwdXQ7XG59XG4iXX0= |
@@ -88,2 +88,2 @@ 'use strict'; | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tZXJnZS5qcyJdLCJuYW1lcyI6WyJtZXJnZSIsImxpdmVTZXRzIiwicmVhZCIsInMiLCJmb3JFYWNoIiwibGl2ZVNldCIsInZhbHVlcyIsImFkZCIsInZhbHVlIiwibGlzdGVuIiwic2V0VmFsdWVzIiwiY29udHJvbGxlciIsImluaXRpYWxWYWx1ZXMiLCJzdWJzIiwiZG9uZVN1YnNjcmliaW5nIiwic3ViIiwic3Vic2NyaWJlIiwic3RhcnQiLCJfc3ViIiwibmV4dCIsImNoYW5nZXMiLCJjaGFuZ2UiLCJ0eXBlIiwicmVtb3ZlIiwiZXJyb3IiLCJlcnIiLCJjb21wbGV0ZSIsImRlbGV0ZSIsInNpemUiLCJlbmQiLCJ1bnN1YnNjcmliZSIsInB1bGxDaGFuZ2VzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O2tCQUl3QkEsSzs7QUFGeEI7Ozs7OztBQUVlLFNBQVNBLEtBQVQsQ0FBa0JDLFFBQWxCLEVBQTJEO0FBQ3hFLFNBQU8sZUFBWTtBQUNqQkMsUUFEaUIsa0JBQ1Y7QUFDTCxVQUFNQyxJQUFJLG1CQUFWO0FBQ0FGLGVBQVNHLE9BQVQsQ0FBaUIsbUJBQVc7QUFDMUJDLGdCQUFRQyxNQUFSLEdBQWlCRixPQUFqQixDQUF5QixpQkFBUztBQUNoQ0QsWUFBRUksR0FBRixDQUFNQyxLQUFOO0FBQ0QsU0FGRDtBQUdELE9BSkQ7QUFLQSxhQUFPTCxDQUFQO0FBQ0QsS0FUZ0I7QUFVakJNLFVBVmlCLGtCQVVWQyxTQVZVLEVBVUNDLFVBVkQsRUFVYTtBQUM1QixVQUFNQyxnQkFBZ0IsbUJBQXRCO0FBQ0EsVUFBTUMsT0FBTyxtQkFBYjtBQUNBLFVBQUlDLGtCQUFrQixLQUF0QjtBQUNBYixlQUFTRyxPQUFULENBQWlCLG1CQUFXO0FBQzFCLFlBQUlXLFlBQUo7QUFDQVYsZ0JBQVFXLFNBQVIsQ0FBa0I7QUFDaEJDLGVBRGdCLGlCQUNWQyxJQURVLEVBQ0o7QUFDVkgsa0JBQU1HLElBQU47QUFDQUwsaUJBQUtOLEdBQUwsQ0FBU1EsR0FBVDtBQUNBVixvQkFBUUMsTUFBUixHQUFpQkYsT0FBakIsQ0FBeUIsaUJBQVM7QUFDaENRLDRCQUFjTCxHQUFkLENBQWtCQyxLQUFsQjtBQUNELGFBRkQ7QUFHRCxXQVBlO0FBUWhCVyxjQVJnQixnQkFRWEMsT0FSVyxFQVFGO0FBQ1pBLG9CQUFRaEIsT0FBUixDQUFnQixrQkFBVTtBQUN4QixrQkFBSWlCLE9BQU9DLElBQVAsS0FBZ0IsS0FBcEIsRUFBMkI7QUFDekJYLDJCQUFXSixHQUFYLENBQWVjLE9BQU9iLEtBQXRCO0FBQ0QsZUFGRCxNQUVPLElBQUlhLE9BQU9DLElBQVAsS0FBZ0IsUUFBcEIsRUFBOEI7QUFDbkNYLDJCQUFXWSxNQUFYLENBQWtCRixPQUFPYixLQUF6QjtBQUNEO0FBQ0YsYUFORDtBQU9ELFdBaEJlO0FBaUJoQmdCLGVBakJnQixpQkFpQlZDLEdBakJVLEVBaUJMO0FBQ1RkLHVCQUFXYSxLQUFYLENBQWlCQyxHQUFqQjtBQUNELFdBbkJlO0FBb0JoQkMsa0JBcEJnQixzQkFvQkw7QUFDVGIsaUJBQUtjLE1BQUwsQ0FBWVosR0FBWjtBQUNBLGdCQUFJRCxtQkFBbUJELEtBQUtlLElBQUwsS0FBYyxDQUFyQyxFQUF3QztBQUN0Q2pCLHlCQUFXa0IsR0FBWDtBQUNEO0FBQ0Y7QUF6QmUsU0FBbEI7QUEyQkQsT0E3QkQ7O0FBK0JBbkIsZ0JBQVVFLGFBQVY7O0FBRUFFLHdCQUFrQixJQUFsQjtBQUNBLFVBQUlELEtBQUtlLElBQUwsS0FBYyxDQUFsQixFQUFxQjtBQUNuQmpCLG1CQUFXa0IsR0FBWDtBQUNEO0FBQ0QsYUFBTztBQUNMQyxtQkFESyx5QkFDUztBQUNaakIsZUFBS1QsT0FBTCxDQUFhLGVBQU87QUFDbEJXLGdCQUFJZSxXQUFKO0FBQ0QsV0FGRDtBQUdELFNBTEk7QUFNTEMsbUJBTksseUJBTVM7QUFDWmxCLGVBQUtULE9BQUwsQ0FBYSxlQUFPO0FBQ2xCVyxnQkFBSWdCLFdBQUo7QUFDRCxXQUZEO0FBR0Q7QUFWSSxPQUFQO0FBWUQ7QUEvRGdCLEdBQVosQ0FBUDtBQWlFRCIsImZpbGUiOiJtZXJnZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCBMaXZlU2V0IGZyb20gJy4nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtZXJnZTxUPihsaXZlU2V0czogQXJyYXk8TGl2ZVNldDxUPj4pOiBMaXZlU2V0PFQ+IHtcbiAgcmV0dXJuIG5ldyBMaXZlU2V0KHtcbiAgICByZWFkKCkge1xuICAgICAgY29uc3QgcyA9IG5ldyBTZXQoKTtcbiAgICAgIGxpdmVTZXRzLmZvckVhY2gobGl2ZVNldCA9PiB7XG4gICAgICAgIGxpdmVTZXQudmFsdWVzKCkuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgcy5hZGQodmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHM7XG4gICAgfSxcbiAgICBsaXN0ZW4oc2V0VmFsdWVzLCBjb250cm9sbGVyKSB7XG4gICAgICBjb25zdCBpbml0aWFsVmFsdWVzID0gbmV3IFNldCgpO1xuICAgICAgY29uc3Qgc3VicyA9IG5ldyBTZXQoKTtcbiAgICAgIGxldCBkb25lU3Vic2NyaWJpbmcgPSBmYWxzZTtcbiAgICAgIGxpdmVTZXRzLmZvckVhY2gobGl2ZVNldCA9PiB7XG4gICAgICAgIGxldCBzdWI7XG4gICAgICAgIGxpdmVTZXQuc3Vic2NyaWJlKHtcbiAgICAgICAgICBzdGFydChfc3ViKSB7XG4gICAgICAgICAgICBzdWIgPSBfc3ViO1xuICAgICAgICAgICAgc3Vicy5hZGQoc3ViKTtcbiAgICAgICAgICAgIGxpdmVTZXQudmFsdWVzKCkuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgIGluaXRpYWxWYWx1ZXMuYWRkKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgbmV4dChjaGFuZ2VzKSB7XG4gICAgICAgICAgICBjaGFuZ2VzLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgICAgICAgaWYgKGNoYW5nZS50eXBlID09PSAnYWRkJykge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuYWRkKGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLnR5cGUgPT09ICdyZW1vdmUnKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5yZW1vdmUoY2hhbmdlLnZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcihlcnIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNvbXBsZXRlKCkge1xuICAgICAgICAgICAgc3Vicy5kZWxldGUoc3ViKTtcbiAgICAgICAgICAgIGlmIChkb25lU3Vic2NyaWJpbmcgJiYgc3Vicy5zaXplID09PSAwKSB7XG4gICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5kKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBzZXRWYWx1ZXMoaW5pdGlhbFZhbHVlcyk7XG5cbiAgICAgIGRvbmVTdWJzY3JpYmluZyA9IHRydWU7XG4gICAgICBpZiAoc3Vicy5zaXplID09PSAwKSB7XG4gICAgICAgIGNvbnRyb2xsZXIuZW5kKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICB1bnN1YnNjcmliZSgpIHtcbiAgICAgICAgICBzdWJzLmZvckVhY2goc3ViID0+IHtcbiAgICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwdWxsQ2hhbmdlcygpIHtcbiAgICAgICAgICBzdWJzLmZvckVhY2goc3ViID0+IHtcbiAgICAgICAgICAgIHN1Yi5wdWxsQ2hhbmdlcygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfSk7XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tZXJnZS5qcyJdLCJuYW1lcyI6WyJtZXJnZSIsImxpdmVTZXRzIiwicmVhZCIsInMiLCJmb3JFYWNoIiwibGl2ZVNldCIsInZhbHVlcyIsImFkZCIsInZhbHVlIiwibGlzdGVuIiwic2V0VmFsdWVzIiwiY29udHJvbGxlciIsImluaXRpYWxWYWx1ZXMiLCJzdWJzIiwiZG9uZVN1YnNjcmliaW5nIiwic3ViIiwic3Vic2NyaWJlIiwic3RhcnQiLCJfc3ViIiwibmV4dCIsImNoYW5nZXMiLCJjaGFuZ2UiLCJ0eXBlIiwicmVtb3ZlIiwiZXJyb3IiLCJlcnIiLCJjb21wbGV0ZSIsImRlbGV0ZSIsInNpemUiLCJlbmQiLCJ1bnN1YnNjcmliZSIsInB1bGxDaGFuZ2VzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O2tCQUl3QkEsSzs7QUFGeEI7Ozs7OztBQUVlLFNBQVNBLEtBQVQsQ0FBa0JDLFFBQWxCLEVBQTJEO0FBQ3hFLFNBQU8sZUFBWTtBQUNqQkMsUUFEaUIsa0JBQ1Y7QUFDTCxVQUFNQyxJQUFJLG1CQUFWO0FBQ0FGLGVBQVNHLE9BQVQsQ0FBaUIsbUJBQVc7QUFDMUJDLGdCQUFRQyxNQUFSLEdBQWlCRixPQUFqQixDQUF5QixpQkFBUztBQUNoQ0QsWUFBRUksR0FBRixDQUFNQyxLQUFOO0FBQ0QsU0FGRDtBQUdELE9BSkQ7QUFLQSxhQUFPTCxDQUFQO0FBQ0QsS0FUZ0I7QUFVakJNLFVBVmlCLGtCQVVWQyxTQVZVLEVBVUNDLFVBVkQsRUFVYTtBQUM1QixVQUFNQyxnQkFBZ0IsbUJBQXRCO0FBQ0EsVUFBTUMsT0FBTyxtQkFBYjtBQUNBLFVBQUlDLGtCQUFrQixLQUF0QjtBQUNBYixlQUFTRyxPQUFULENBQWlCLG1CQUFXO0FBQzFCLFlBQUlXLFlBQUo7QUFDQVYsZ0JBQVFXLFNBQVIsQ0FBa0I7QUFDaEJDLGVBRGdCLGlCQUNWQyxJQURVLEVBQ0o7QUFDVkgsa0JBQU1HLElBQU47QUFDQUwsaUJBQUtOLEdBQUwsQ0FBU1EsR0FBVDtBQUNBVixvQkFBUUMsTUFBUixHQUFpQkYsT0FBakIsQ0FBeUIsaUJBQVM7QUFDaENRLDRCQUFjTCxHQUFkLENBQWtCQyxLQUFsQjtBQUNELGFBRkQ7QUFHRCxXQVBlO0FBUWhCVyxjQVJnQixnQkFRWEMsT0FSVyxFQVFGO0FBQ1pBLG9CQUFRaEIsT0FBUixDQUFnQixrQkFBVTtBQUN4QixrQkFBSWlCLE9BQU9DLElBQVAsS0FBZ0IsS0FBcEIsRUFBMkI7QUFDekJYLDJCQUFXSixHQUFYLENBQWVjLE9BQU9iLEtBQXRCO0FBQ0QsZUFGRCxNQUVPLElBQUlhLE9BQU9DLElBQVAsS0FBZ0IsUUFBcEIsRUFBOEI7QUFDbkNYLDJCQUFXWSxNQUFYLENBQWtCRixPQUFPYixLQUF6QjtBQUNEO0FBQ0YsYUFORDtBQU9ELFdBaEJlO0FBaUJoQmdCLGVBakJnQixpQkFpQlZDLEdBakJVLEVBaUJMO0FBQ1RkLHVCQUFXYSxLQUFYLENBQWlCQyxHQUFqQjtBQUNELFdBbkJlO0FBb0JoQkMsa0JBcEJnQixzQkFvQkw7QUFDVGIsaUJBQUtjLE1BQUwsQ0FBWVosR0FBWjtBQUNBLGdCQUFJRCxtQkFBbUJELEtBQUtlLElBQUwsS0FBYyxDQUFyQyxFQUF3QztBQUN0Q2pCLHlCQUFXa0IsR0FBWDtBQUNEO0FBQ0Y7QUF6QmUsU0FBbEI7QUEyQkQsT0E3QkQ7O0FBK0JBbkIsZ0JBQVVFLGFBQVY7O0FBRUFFLHdCQUFrQixJQUFsQjtBQUNBLFVBQUlELEtBQUtlLElBQUwsS0FBYyxDQUFsQixFQUFxQjtBQUNuQmpCLG1CQUFXa0IsR0FBWDtBQUNEO0FBQ0QsYUFBTztBQUNMQyxtQkFESyx5QkFDUztBQUNaakIsZUFBS1QsT0FBTCxDQUFhLGVBQU87QUFDbEJXLGdCQUFJZSxXQUFKO0FBQ0QsV0FGRDtBQUdELFNBTEk7QUFNTEMsbUJBTksseUJBTVM7QUFDWmxCLGVBQUtULE9BQUwsQ0FBYSxlQUFPO0FBQ2xCVyxnQkFBSWdCLFdBQUo7QUFDRCxXQUZEO0FBR0Q7QUFWSSxPQUFQO0FBWUQ7QUEvRGdCLEdBQVosQ0FBUDtBQWlFRCIsImZpbGUiOiJtZXJnZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCBMaXZlU2V0IGZyb20gJy4nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtZXJnZTxUPihsaXZlU2V0czogQXJyYXk8TGl2ZVNldDxUPj4pOiBMaXZlU2V0PFQ+IHtcbiAgcmV0dXJuIG5ldyBMaXZlU2V0KHtcbiAgICByZWFkKCkge1xuICAgICAgY29uc3QgcyA9IG5ldyBTZXQoKTtcbiAgICAgIGxpdmVTZXRzLmZvckVhY2gobGl2ZVNldCA9PiB7XG4gICAgICAgIGxpdmVTZXQudmFsdWVzKCkuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgcy5hZGQodmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHM7XG4gICAgfSxcbiAgICBsaXN0ZW4oc2V0VmFsdWVzLCBjb250cm9sbGVyKSB7XG4gICAgICBjb25zdCBpbml0aWFsVmFsdWVzID0gbmV3IFNldCgpO1xuICAgICAgY29uc3Qgc3VicyA9IG5ldyBTZXQoKTtcbiAgICAgIGxldCBkb25lU3Vic2NyaWJpbmcgPSBmYWxzZTtcbiAgICAgIGxpdmVTZXRzLmZvckVhY2gobGl2ZVNldCA9PiB7XG4gICAgICAgIGxldCBzdWI7XG4gICAgICAgIGxpdmVTZXQuc3Vic2NyaWJlKHtcbiAgICAgICAgICBzdGFydChfc3ViKSB7XG4gICAgICAgICAgICBzdWIgPSBfc3ViO1xuICAgICAgICAgICAgc3Vicy5hZGQoc3ViKTtcbiAgICAgICAgICAgIGxpdmVTZXQudmFsdWVzKCkuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgIGluaXRpYWxWYWx1ZXMuYWRkKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgbmV4dChjaGFuZ2VzKSB7XG4gICAgICAgICAgICBjaGFuZ2VzLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgICAgICAgaWYgKGNoYW5nZS50eXBlID09PSAnYWRkJykge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuYWRkKGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLnR5cGUgPT09ICdyZW1vdmUnKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5yZW1vdmUoY2hhbmdlLnZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcihlcnIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNvbXBsZXRlKCkge1xuICAgICAgICAgICAgc3Vicy5kZWxldGUoc3ViKTtcbiAgICAgICAgICAgIGlmIChkb25lU3Vic2NyaWJpbmcgJiYgc3Vicy5zaXplID09PSAwKSB7XG4gICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5kKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBzZXRWYWx1ZXMoaW5pdGlhbFZhbHVlcyk7XG5cbiAgICAgIGRvbmVTdWJzY3JpYmluZyA9IHRydWU7XG4gICAgICBpZiAoc3Vicy5zaXplID09PSAwKSB7XG4gICAgICAgIGNvbnRyb2xsZXIuZW5kKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICB1bnN1YnNjcmliZSgpIHtcbiAgICAgICAgICBzdWJzLmZvckVhY2goc3ViID0+IHtcbiAgICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwdWxsQ2hhbmdlcygpIHtcbiAgICAgICAgICBzdWJzLmZvckVhY2goc3ViID0+IHtcbiAgICAgICAgICAgIHN1Yi5wdWxsQ2hhbmdlcygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfSk7XG59XG4iXX0= |
{ | ||
"name": "live-set", | ||
"version": "0.3.9", | ||
"version": "0.3.10", | ||
"description": "Class representing a changing and transformable collection of items.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -106,2 +106,2 @@ 'use strict'; | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy90b1ZhbHVlT2JzZXJ2YWJsZS5qcyJdLCJuYW1lcyI6WyJ0b1ZhbHVlT2JzZXJ2YWJsZSIsImxpdmVTZXQiLCJyZXNvbHZlcnMiLCJhZGRlZEl0ZW0iLCJ2YWx1ZSIsInJlc29sdmUiLCJyZW1vdmFsIiwiX3Jlc29sdmUiLCJzZXQiLCJ2YWx1ZVdpdGhSZW1vdmFsIiwib2JzZXJ2ZXIiLCJuZXh0IiwicmVtb3ZlZEl0ZW0iLCJyZXNvbHZlciIsImdldCIsIkVycm9yIiwiZGVsZXRlIiwic3ViIiwic3Vic2NyaWJlIiwic3RhcnQiLCJ2YWx1ZXMiLCJjbG9zZWQiLCJjaGFuZ2VzIiwiZm9yRWFjaCIsImNoYW5nZSIsInR5cGUiLCJlcnJvciIsImVyciIsImNvbXBsZXRlIiwidW5zdWJzY3JpYmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkFVd0JBLGlCOztBQVJ4Qjs7OztBQUNBOzs7Ozs7QUFPZSxTQUFTQSxpQkFBVCxDQUE4QkMsT0FBOUIsRUFBbUQ7QUFDaEUsU0FBTyw0QkFBZSxvQkFBWTtBQUNoQyxRQUFNQyxZQUE4QixtQkFBcEM7O0FBRUEsYUFBU0MsU0FBVCxDQUFtQkMsS0FBbkIsRUFBNkI7QUFDM0IsVUFBSUMsZ0JBQUo7QUFDQSxVQUFNQyxVQUF5QixzQkFBWSxvQkFBWTtBQUNyREQsa0JBQVVFLFFBQVY7QUFDRCxPQUY4QixDQUEvQjtBQUdBTCxnQkFBVU0sR0FBVixDQUFjSixLQUFkLEVBQXNCQyxPQUF0QjtBQUNBLFVBQU1JLG1CQUF3QyxFQUFDTCxZQUFELEVBQVFFLGdCQUFSLEVBQTlDO0FBQ0FJLGVBQVNDLElBQVQsQ0FBY0YsZ0JBQWQ7QUFDRDs7QUFFRCxhQUFTRyxXQUFULENBQXFCUixLQUFyQixFQUErQjtBQUM3QixVQUFNUyxXQUFXWCxVQUFVWSxHQUFWLENBQWNWLEtBQWQsQ0FBakI7QUFDQSxVQUFJLENBQUNTLFFBQUwsRUFBZSxNQUFNLElBQUlFLEtBQUosQ0FBVSxxQ0FBVixDQUFOO0FBQ2ZiLGdCQUFVYyxNQUFWLENBQWlCWixLQUFqQjtBQUNBUztBQUNEOztBQUVELFFBQU1JLE1BQU1oQixRQUFRaUIsU0FBUixDQUFrQjtBQUM1QkMsV0FENEIsaUJBQ3RCRixHQURzQixFQUNqQjtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUNULDBEQUFrQmhCLFFBQVFtQixNQUFSLEVBQWxCLDRHQUFvQztBQUFBLGdCQUEzQmhCLE1BQTJCOztBQUNsQyxnQkFBSWEsSUFBSUksTUFBUixFQUFnQjtBQUNoQmxCLHNCQUFVQyxNQUFWO0FBQ0Q7QUFKUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS1YsT0FOMkI7QUFPNUJPLFVBUDRCLGdCQU92QlcsT0FQdUIsRUFPZDtBQUNaQSxnQkFBUUMsT0FBUixDQUFnQixrQkFBVTtBQUN4QixjQUFJQyxPQUFPQyxJQUFQLEtBQWdCLEtBQXBCLEVBQTJCO0FBQ3pCdEIsc0JBQVVxQixPQUFPcEIsS0FBakI7QUFDRCxXQUZELE1BRU8sSUFBSW9CLE9BQU9DLElBQVAsS0FBZ0IsUUFBcEIsRUFBOEI7QUFDbkNiLHdCQUFZWSxPQUFPcEIsS0FBbkI7QUFDRDtBQUNGLFNBTkQ7QUFPRCxPQWYyQjtBQWdCNUJzQixXQWhCNEIsaUJBZ0J0QkMsR0FoQnNCLEVBZ0JqQjtBQUNUakIsaUJBQVNnQixLQUFULENBQWVDLEdBQWY7QUFDRCxPQWxCMkI7QUFtQjVCQyxjQW5CNEIsc0JBbUJqQjtBQUNUbEIsaUJBQVNrQixRQUFUO0FBQ0Q7QUFyQjJCLEtBQWxCLENBQVo7O0FBd0JBLFdBQU8sWUFBTTtBQUNYWCxVQUFJWSxXQUFKO0FBQ0EzQixnQkFBVXFCLE9BQVYsQ0FBa0Isb0JBQVk7QUFDNUJWO0FBQ0QsT0FGRDtBQUdELEtBTEQ7QUFNRCxHQWxETSxDQUFQO0FBbUREIiwiZmlsZSI6InRvVmFsdWVPYnNlcnZhYmxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cblxuaW1wb3J0IExpdmVTZXQgZnJvbSAnLic7XG5pbXBvcnQgT2JzZXJ2YWJsZSBmcm9tICd6ZW4tb2JzZXJ2YWJsZSc7XG5cbmV4cG9ydCB0eXBlIFZhbHVlV2l0aFJlbW92YWw8VD4gPSB7XG4gIHZhbHVlOiBUO1xuICByZW1vdmFsOiBQcm9taXNlPHZvaWQ+O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdG9WYWx1ZU9ic2VydmFibGU8VD4obGl2ZVNldDogTGl2ZVNldDxUPikge1xuICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgIGNvbnN0IHJlc29sdmVyczogTWFwPFQsICgpPT52b2lkPiA9IG5ldyBNYXAoKTtcblxuICAgIGZ1bmN0aW9uIGFkZGVkSXRlbSh2YWx1ZTogVCkge1xuICAgICAgbGV0IHJlc29sdmU7XG4gICAgICBjb25zdCByZW1vdmFsOiBQcm9taXNlPHZvaWQ+ID0gbmV3IFByb21pc2UoX3Jlc29sdmUgPT4ge1xuICAgICAgICByZXNvbHZlID0gX3Jlc29sdmU7XG4gICAgICB9KTtcbiAgICAgIHJlc29sdmVycy5zZXQodmFsdWUsIChyZXNvbHZlOmFueSkpO1xuICAgICAgY29uc3QgdmFsdWVXaXRoUmVtb3ZhbDogVmFsdWVXaXRoUmVtb3ZhbDxUPiA9IHt2YWx1ZSwgcmVtb3ZhbH07XG4gICAgICBvYnNlcnZlci5uZXh0KHZhbHVlV2l0aFJlbW92YWwpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbW92ZWRJdGVtKHZhbHVlOiBUKSB7XG4gICAgICBjb25zdCByZXNvbHZlciA9IHJlc29sdmVycy5nZXQodmFsdWUpO1xuICAgICAgaWYgKCFyZXNvbHZlcikgdGhyb3cgbmV3IEVycm9yKCdSZXNvbHZlciBub3QgZm91bmQgaW4gbWFwIGZvciB2YWx1ZScpO1xuICAgICAgcmVzb2x2ZXJzLmRlbGV0ZSh2YWx1ZSk7XG4gICAgICByZXNvbHZlcigpO1xuICAgIH1cblxuICAgIGNvbnN0IHN1YiA9IGxpdmVTZXQuc3Vic2NyaWJlKHtcbiAgICAgIHN0YXJ0KHN1Yikge1xuICAgICAgICBmb3IgKGxldCB2YWx1ZSBvZiBsaXZlU2V0LnZhbHVlcygpKSB7XG4gICAgICAgICAgaWYgKHN1Yi5jbG9zZWQpIGJyZWFrO1xuICAgICAgICAgIGFkZGVkSXRlbSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBuZXh0KGNoYW5nZXMpIHtcbiAgICAgICAgY2hhbmdlcy5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgaWYgKGNoYW5nZS50eXBlID09PSAnYWRkJykge1xuICAgICAgICAgICAgYWRkZWRJdGVtKGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UudHlwZSA9PT0gJ3JlbW92ZScpIHtcbiAgICAgICAgICAgIHJlbW92ZWRJdGVtKGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcihlcnIpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgIH0sXG4gICAgICBjb21wbGV0ZSgpIHtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgIHJlc29sdmVycy5mb3JFYWNoKHJlc29sdmVyID0+IHtcbiAgICAgICAgcmVzb2x2ZXIoKTtcbiAgICAgIH0pO1xuICAgIH07XG4gIH0pO1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy90b1ZhbHVlT2JzZXJ2YWJsZS5qcyJdLCJuYW1lcyI6WyJ0b1ZhbHVlT2JzZXJ2YWJsZSIsImxpdmVTZXQiLCJyZXNvbHZlcnMiLCJhZGRlZEl0ZW0iLCJ2YWx1ZSIsInJlc29sdmUiLCJyZW1vdmFsIiwiX3Jlc29sdmUiLCJzZXQiLCJ2YWx1ZVdpdGhSZW1vdmFsIiwib2JzZXJ2ZXIiLCJuZXh0IiwicmVtb3ZlZEl0ZW0iLCJyZXNvbHZlciIsImdldCIsIkVycm9yIiwiZGVsZXRlIiwic3ViIiwic3Vic2NyaWJlIiwic3RhcnQiLCJ2YWx1ZXMiLCJjbG9zZWQiLCJjaGFuZ2VzIiwiZm9yRWFjaCIsImNoYW5nZSIsInR5cGUiLCJlcnJvciIsImVyciIsImNvbXBsZXRlIiwidW5zdWJzY3JpYmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkFVd0JBLGlCOztBQVJ4Qjs7OztBQUNBOzs7Ozs7QUFPZSxTQUFTQSxpQkFBVCxDQUE4QkMsT0FBOUIsRUFBbUQ7QUFDaEUsU0FBTyw0QkFBZSxvQkFBWTtBQUNoQyxRQUFNQyxZQUE4QixtQkFBcEM7O0FBRUEsYUFBU0MsU0FBVCxDQUFtQkMsS0FBbkIsRUFBNkI7QUFDM0IsVUFBSUMsZ0JBQUo7QUFDQSxVQUFNQyxVQUF5QixzQkFBWSxvQkFBWTtBQUNyREQsa0JBQVVFLFFBQVY7QUFDRCxPQUY4QixDQUEvQjtBQUdBTCxnQkFBVU0sR0FBVixDQUFjSixLQUFkLEVBQXNCQyxPQUF0QjtBQUNBLFVBQU1JLG1CQUF3QyxFQUFDTCxZQUFELEVBQVFFLGdCQUFSLEVBQTlDO0FBQ0FJLGVBQVNDLElBQVQsQ0FBY0YsZ0JBQWQ7QUFDRDs7QUFFRCxhQUFTRyxXQUFULENBQXFCUixLQUFyQixFQUErQjtBQUM3QixVQUFNUyxXQUFXWCxVQUFVWSxHQUFWLENBQWNWLEtBQWQsQ0FBakI7QUFDQSxVQUFJLENBQUNTLFFBQUwsRUFBZSxNQUFNLElBQUlFLEtBQUosQ0FBVSxxQ0FBVixDQUFOO0FBQ2ZiLGdCQUFVYyxNQUFWLENBQWlCWixLQUFqQjtBQUNBUztBQUNEOztBQUVELFFBQU1JLE1BQU1oQixRQUFRaUIsU0FBUixDQUFrQjtBQUM1QkMsV0FENEIsaUJBQ3RCRixHQURzQixFQUNqQjtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUNULDBEQUFrQmhCLFFBQVFtQixNQUFSLEVBQWxCLDRHQUFvQztBQUFBLGdCQUEzQmhCLE1BQTJCOztBQUNsQyxnQkFBSWEsSUFBSUksTUFBUixFQUFnQjtBQUNoQmxCLHNCQUFVQyxNQUFWO0FBQ0Q7QUFKUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS1YsT0FOMkI7QUFPNUJPLFVBUDRCLGdCQU92QlcsT0FQdUIsRUFPZDtBQUNaQSxnQkFBUUMsT0FBUixDQUFnQixrQkFBVTtBQUN4QixjQUFJQyxPQUFPQyxJQUFQLEtBQWdCLEtBQXBCLEVBQTJCO0FBQ3pCdEIsc0JBQVVxQixPQUFPcEIsS0FBakI7QUFDRCxXQUZELE1BRU8sSUFBSW9CLE9BQU9DLElBQVAsS0FBZ0IsUUFBcEIsRUFBOEI7QUFDbkNiLHdCQUFZWSxPQUFPcEIsS0FBbkI7QUFDRDtBQUNGLFNBTkQ7QUFPRCxPQWYyQjtBQWdCNUJzQixXQWhCNEIsaUJBZ0J0QkMsR0FoQnNCLEVBZ0JqQjtBQUNUakIsaUJBQVNnQixLQUFULENBQWVDLEdBQWY7QUFDRCxPQWxCMkI7QUFtQjVCQyxjQW5CNEIsc0JBbUJqQjtBQUNUbEIsaUJBQVNrQixRQUFUO0FBQ0Q7QUFyQjJCLEtBQWxCLENBQVo7O0FBd0JBLFdBQU8sWUFBTTtBQUNYWCxVQUFJWSxXQUFKO0FBQ0EzQixnQkFBVXFCLE9BQVYsQ0FBa0Isb0JBQVk7QUFDNUJWO0FBQ0QsT0FGRDtBQUdELEtBTEQ7QUFNRCxHQWxETSxDQUFQO0FBbUREIiwiZmlsZSI6InRvVmFsdWVPYnNlcnZhYmxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cblxuaW1wb3J0IExpdmVTZXQgZnJvbSAnLic7XG5pbXBvcnQgT2JzZXJ2YWJsZSBmcm9tICd6ZW4tb2JzZXJ2YWJsZSc7XG5cbmV4cG9ydCB0eXBlIFZhbHVlV2l0aFJlbW92YWw8VD4gPSB7XG4gIHZhbHVlOiBUO1xuICByZW1vdmFsOiBQcm9taXNlPHZvaWQ+O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdG9WYWx1ZU9ic2VydmFibGU8VD4obGl2ZVNldDogTGl2ZVNldDxUPikge1xuICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgIGNvbnN0IHJlc29sdmVyczogTWFwPFQsICgpPT52b2lkPiA9IG5ldyBNYXAoKTtcblxuICAgIGZ1bmN0aW9uIGFkZGVkSXRlbSh2YWx1ZTogVCkge1xuICAgICAgbGV0IHJlc29sdmU7XG4gICAgICBjb25zdCByZW1vdmFsOiBQcm9taXNlPHZvaWQ+ID0gbmV3IFByb21pc2UoX3Jlc29sdmUgPT4ge1xuICAgICAgICByZXNvbHZlID0gX3Jlc29sdmU7XG4gICAgICB9KTtcbiAgICAgIHJlc29sdmVycy5zZXQodmFsdWUsIChyZXNvbHZlOmFueSkpO1xuICAgICAgY29uc3QgdmFsdWVXaXRoUmVtb3ZhbDogVmFsdWVXaXRoUmVtb3ZhbDxUPiA9IHt2YWx1ZSwgcmVtb3ZhbH07XG4gICAgICBvYnNlcnZlci5uZXh0KHZhbHVlV2l0aFJlbW92YWwpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbW92ZWRJdGVtKHZhbHVlOiBUKSB7XG4gICAgICBjb25zdCByZXNvbHZlciA9IHJlc29sdmVycy5nZXQodmFsdWUpO1xuICAgICAgaWYgKCFyZXNvbHZlcikgdGhyb3cgbmV3IEVycm9yKCdSZXNvbHZlciBub3QgZm91bmQgaW4gbWFwIGZvciB2YWx1ZScpO1xuICAgICAgcmVzb2x2ZXJzLmRlbGV0ZSh2YWx1ZSk7XG4gICAgICByZXNvbHZlcigpO1xuICAgIH1cblxuICAgIGNvbnN0IHN1YiA9IGxpdmVTZXQuc3Vic2NyaWJlKHtcbiAgICAgIHN0YXJ0KHN1Yikge1xuICAgICAgICBmb3IgKGxldCB2YWx1ZSBvZiBsaXZlU2V0LnZhbHVlcygpKSB7XG4gICAgICAgICAgaWYgKHN1Yi5jbG9zZWQpIGJyZWFrO1xuICAgICAgICAgIGFkZGVkSXRlbSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBuZXh0KGNoYW5nZXMpIHtcbiAgICAgICAgY2hhbmdlcy5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgaWYgKGNoYW5nZS50eXBlID09PSAnYWRkJykge1xuICAgICAgICAgICAgYWRkZWRJdGVtKGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2UudHlwZSA9PT0gJ3JlbW92ZScpIHtcbiAgICAgICAgICAgIHJlbW92ZWRJdGVtKGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcihlcnIpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgIH0sXG4gICAgICBjb21wbGV0ZSgpIHtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgIHJlc29sdmVycy5mb3JFYWNoKHJlc29sdmVyID0+IHtcbiAgICAgICAgcmVzb2x2ZXIoKTtcbiAgICAgIH0pO1xuICAgIH07XG4gIH0pO1xufVxuIl19 |
@@ -172,2 +172,2 @@ 'use strict'; | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy90cmFuc2R1Y2UuanMiXSwibmFtZXMiOlsidHJhbnNkdWNlIiwiYXJyYXlYZiIsInJlcyIsImlucHV0IiwicHVzaCIsImxpdmVTZXQiLCJ0cmFuc2R1Y2VyIiwic3RlcCIsInhmb3JtIiwiaW5wdXRWYWx1ZSIsImFkZHNDb21wbGV0ZSIsIm91dHB1dFZhbHVlcyIsInJldCIsInZhbHVlc0FuZENvbnRleHQiLCJpbnB1dFRvT3V0cHV0VmFsdWVzIiwidmFsdWVzIiwidmFsdWUiLCJfYWRkc0NvbXBsZXRlIiwic2V0IiwiaSIsImxlbiIsImxlbmd0aCIsImFkZCIsImZvckVhY2giLCJyZWFkIiwibGlzdGVuIiwic2V0VmFsdWVzIiwiY29udHJvbGxlciIsInN1YiIsInN1YnNjcmliZSIsInN0YXJ0IiwibmV4dCIsImNoYW5nZXMiLCJjaGFuZ2UiLCJ0eXBlIiwiZW5kVmFsdWUiLCJsaXN0IiwiZ2V0IiwiRXJyb3IiLCJyZW1vdmUiLCJ0cmFuc2Zvcm1lZFZhbHVlIiwiZGVsZXRlIiwiZXJyb3IiLCJlcnIiLCJjb21wbGV0ZSIsImVuZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQWlCd0JBLFM7O0FBZnhCOzs7Ozs7QUFFQSxJQUFNQyxVQUFVO0FBQ2QscUJBRGMsNEJBQ1E7QUFDcEIsV0FBTyxFQUFQO0FBQ0QsR0FIYTtBQUlkLHFCQUpjLDBCQUlNQyxHQUpOLEVBSVdDLEtBSlgsRUFJa0I7QUFDOUJELFFBQUlFLElBQUosQ0FBU0QsS0FBVDtBQUNBLFdBQU9ELEdBQVA7QUFDRCxHQVBhO0FBUWQsdUJBUmMsNEJBUVFDLEtBUlIsRUFRZTtBQUMzQixXQUFPQSxLQUFQO0FBQ0Q7QUFWYSxDQUFoQjs7QUFhZSxTQUFTSCxTQUFULENBQW1CSyxPQUFuQixFQUEwQ0MsVUFBMUMsRUFBOEU7QUFDM0YsV0FBU0MsSUFBVCxDQUFjQyxLQUFkLEVBQTZCQyxVQUE3QixFQUdFO0FBQ0EsUUFBSUMsZUFBZSxLQUFuQjtBQUNBLFFBQUlDLHFCQUFK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QUFJUSxLQUFFLENBQU4sRUFBUUMsT0FBSVQsYUFBYVUsTUFBOUIsRUFBc0NGLEtBQUVDLElBQXhDLEVBQTZDRCxJQUE3QyxFQUFrRDtBQUNoRFEsNkJBQVdMLEdBQVgsQ0FBZVgsYUFBYVEsRUFBYixDQUFmO0FBQ0Q7QUFDRCxvQkFBSUYsYUFBSixFQUFtQjtBQUNqQlAsaUNBQWUsSUFBZjtBQUNBRix3QkFBTSxxQkFBTixFQUE2QixFQUE3QixFQUFpQ2UsT0FBakMsQ0FBeUMsb0JBQVk7QUFDbkRJLCtCQUFXTCxHQUFYLENBQWVhLFFBQWY7QUFDRCxtQkFGRDtBQUdEO0FBQ0Y7QUFDRixhQWZELE1BZU8sSUFBSUYsT0FBT0MsSUFBUCxLQUFnQixRQUFwQixFQUE4QjtBQUFBLGtCQUM1QmxCLE1BRDRCLEdBQ25CaUIsTUFEbUIsQ0FDNUJqQixLQUQ0Qjs7QUFFbkMsa0JBQU1vQixPQUFPdEIsb0JBQW9CdUIsR0FBcEIsQ0FBd0JyQixNQUF4QixDQUFiO0FBQ0Esa0JBQUksQ0FBQ29CLElBQUwsRUFBVyxNQUFNLElBQUlFLEtBQUosQ0FBVSwwQkFBVixDQUFOO0FBQ1hGLG1CQUFLYixPQUFMLENBQWEsNEJBQW9CO0FBQy9CSSwyQkFBV1ksTUFBWCxDQUFrQkMsZ0JBQWxCO0FBQ0QsZUFGRDtBQUdBMUIsa0NBQW9CMkIsTUFBcEIsQ0FBMkJ6QixNQUEzQjtBQUNEO0FBQ0Y7QUFDRixTQXBDMkI7QUFxQzVCMEIsYUFyQzRCLGlCQXFDdEJDLEdBckNzQixFQXFDakI7QUFDVGhCLHFCQUFXZSxLQUFYLENBQWlCQyxHQUFqQjtBQUNELFNBdkMyQjtBQXdDNUJDLGdCQXhDNEIsc0JBd0NqQjtBQUNUakIscUJBQVdrQixHQUFYO0FBQ0Q7QUExQzJCLE9BQWxCLENBQVo7O0FBNkNBLGFBQU9qQixHQUFQO0FBQ0Q7QUFsRGdCLEdBQVosQ0FBUDtBQW9ERCIsImZpbGUiOiJ0cmFuc2R1Y2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgTGl2ZVNldCBmcm9tICcuJztcblxuY29uc3QgYXJyYXlYZiA9IHtcbiAgJ0BAdHJhbnNkdWNlci9pbml0JygpIHtcbiAgICByZXR1cm4gW107XG4gIH0sXG4gICdAQHRyYW5zZHVjZXIvc3RlcCcocmVzLCBpbnB1dCkge1xuICAgIHJlcy5wdXNoKGlucHV0KTtcbiAgICByZXR1cm4gcmVzO1xuICB9LFxuICAnQEB0cmFuc2R1Y2VyL3Jlc3VsdCcoaW5wdXQpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRyYW5zZHVjZShsaXZlU2V0OiBMaXZlU2V0PGFueT4sIHRyYW5zZHVjZXI6IEZ1bmN0aW9uKTogTGl2ZVNldDxhbnk+IHtcbiAgZnVuY3Rpb24gc3RlcCh4Zm9ybTogT2JqZWN0LCBpbnB1dFZhbHVlOiBhbnkpOiB7XG4gICAgb3V0cHV0VmFsdWVzOiBBcnJheTxhbnk+O1xuICAgIGFkZHNDb21wbGV0ZTogYm9vbGVhbjtcbiAgfSB7XG4gICAgbGV0IGFkZHNDb21wbGV0ZSA9IGZhbHNlO1xuICAgIGxldCBvdXRwdXRWYWx1ZXM7XG4gICAgY29uc3QgcmV0ID0geGZvcm1bJ0BAdHJhbnNkdWNlci9zdGVwJ10oW10sIGlucHV0VmFsdWUpO1xuICAgIGlmIChyZXQgJiYgcmV0WydAQHRyYW5zZHVjZXIvcmVkdWNlZCddKSB7XG4gICAgICBvdXRwdXRWYWx1ZXMgPSByZXRbJ0BAdHJhbnNkdWNlci92YWx1ZSddO1xuICAgICAgYWRkc0NvbXBsZXRlID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0cHV0VmFsdWVzID0gcmV0O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgb3V0cHV0VmFsdWVzLFxuICAgICAgYWRkc0NvbXBsZXRlXG4gICAgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHZhbHVlc0FuZENvbnRleHQoKToge1xuICAgIHZhbHVlczogU2V0PGFueT47XG4gICAgaW5wdXRUb091dHB1dFZhbHVlczogTWFwPGFueSwgQXJyYXk8YW55Pj47XG4gICAgeGZvcm06IE9iamVjdDtcbiAgICBhZGRzQ29tcGxldGU6IGJvb2xlYW47XG4gIH0ge1xuICAgIGNvbnN0IGlucHV0VG9PdXRwdXRWYWx1ZXMgPSBuZXcgTWFwKCk7XG4gICAgY29uc3QgeGZvcm0gPSB0cmFuc2R1Y2VyKGFycmF5WGYpO1xuICAgIGxldCBhZGRzQ29tcGxldGUgPSBmYWxzZTtcbiAgICBjb25zdCB2YWx1ZXMgPSBuZXcgU2V0KHhmb3JtWydAQHRyYW5zZHVjZXIvaW5pdCddKCkpO1xuICAgIGZvciAobGV0IHZhbHVlIG9mIGxpdmVTZXQudmFsdWVzKCkpIHtcbiAgICAgIGNvbnN0IHtvdXRwdXRWYWx1ZXMsIGFkZHNDb21wbGV0ZTogX2FkZHNDb21wbGV0ZX0gPSBzdGVwKHhmb3JtLCB2YWx1ZSk7XG4gICAgICBpbnB1dFRvT3V0cHV0VmFsdWVzLnNldCh2YWx1ZSwgb3V0cHV0VmFsdWVzKTtcbiAgICAgIGZvciAobGV0IGk9MCxsZW49b3V0cHV0VmFsdWVzLmxlbmd0aDsgaTxsZW47IGkrKykge1xuICAgICAgICB2YWx1ZXMuYWRkKG91dHB1dFZhbHVlc1tpXSk7XG4gICAgICB9XG4gICAgICBpZiAoX2FkZHNDb21wbGV0ZSkge1xuICAgICAgICBhZGRzQ29tcGxldGUgPSB0cnVlO1xuICAgICAgICB4Zm9ybVsnQEB0cmFuc2R1Y2VyL3Jlc3VsdCddKFtdKS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgICB2YWx1ZXMuYWRkKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWVzLFxuICAgICAgaW5wdXRUb091dHB1dFZhbHVlcyxcbiAgICAgIHhmb3JtLFxuICAgICAgYWRkc0NvbXBsZXRlXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBuZXcgTGl2ZVNldCh7XG4gICAgcmVhZDogKCkgPT4gdmFsdWVzQW5kQ29udGV4dCgpLnZhbHVlcyxcbiAgICBsaXN0ZW4oc2V0VmFsdWVzLCBjb250cm9sbGVyKSB7XG4gICAgICBsZXQgaW5wdXRUb091dHB1dFZhbHVlcywgeGZvcm0sIGFkZHNDb21wbGV0ZTtcbiAgICAgIGNvbnN0IHN1YiA9IGxpdmVTZXQuc3Vic2NyaWJlKHtcbiAgICAgICAgc3RhcnQoKSB7XG4gICAgICAgICAgY29uc3QgcmV0ID0gdmFsdWVzQW5kQ29udGV4dCgpO1xuICAgICAgICAgIHNldFZhbHVlcyhyZXQudmFsdWVzKTtcbiAgICAgICAgICBpbnB1dFRvT3V0cHV0VmFsdWVzID0gcmV0LmlucHV0VG9PdXRwdXRWYWx1ZXM7XG4gICAgICAgICAgeGZvcm0gPSByZXQueGZvcm07XG4gICAgICAgICAgYWRkc0NvbXBsZXRlID0gcmV0LmFkZHNDb21wbGV0ZTtcbiAgICAgICAgfSxcbiAgICAgICAgbmV4dChjaGFuZ2VzKSB7XG4gICAgICAgICAgZm9yIChsZXQgaT0wLGxlbj1jaGFuZ2VzLmxlbmd0aDsgaTxsZW47IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlID0gY2hhbmdlc1tpXTtcbiAgICAgICAgICAgIGlmIChjaGFuZ2UudHlwZSA9PT0gJ2FkZCcpIHtcbiAgICAgICAgICAgICAgaWYgKCFhZGRzQ29tcGxldGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7dmFsdWV9ID0gY2hhbmdlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHtvdXRwdXRWYWx1ZXMsIGFkZHNDb21wbGV0ZTogX2FkZHNDb21wbGV0ZX0gPSBzdGVwKHhmb3JtLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgaW5wdXRUb091dHB1dFZhbHVlcy5zZXQodmFsdWUsIG91dHB1dFZhbHVlcyk7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaT0wLGxlbj1vdXRwdXRWYWx1ZXMubGVuZ3RoOyBpPGxlbjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmFkZChvdXRwdXRWYWx1ZXNbaV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoX2FkZHNDb21wbGV0ZSkge1xuICAgICAgICAgICAgICAgICAgYWRkc0NvbXBsZXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIHhmb3JtWydAQHRyYW5zZHVjZXIvcmVzdWx0J10oW10pLmZvckVhY2goZW5kVmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmFkZChlbmRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLnR5cGUgPT09ICdyZW1vdmUnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHt2YWx1ZX0gPSBjaGFuZ2U7XG4gICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBpbnB1dFRvT3V0cHV0VmFsdWVzLmdldCh2YWx1ZSk7XG4gICAgICAgICAgICAgIGlmICghbGlzdCkgdGhyb3cgbmV3IEVycm9yKCd2YWx1ZSBoYWQgbm90IGJlZW4gYWRkZWQnKTtcbiAgICAgICAgICAgICAgbGlzdC5mb3JFYWNoKHRyYW5zZm9ybWVkVmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIucmVtb3ZlKHRyYW5zZm9ybWVkVmFsdWUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgaW5wdXRUb091dHB1dFZhbHVlcy5kZWxldGUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3IoZXJyKSB7XG4gICAgICAgICAgY29udHJvbGxlci5lcnJvcihlcnIpO1xuICAgICAgICB9LFxuICAgICAgICBjb21wbGV0ZSgpIHtcbiAgICAgICAgICBjb250cm9sbGVyLmVuZCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHN1YjtcbiAgICB9XG4gIH0pO1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy90cmFuc2R1Y2UuanMiXSwibmFtZXMiOlsidHJhbnNkdWNlIiwiYXJyYXlYZiIsInJlcyIsImlucHV0IiwicHVzaCIsImxpdmVTZXQiLCJ0cmFuc2R1Y2VyIiwic3RlcCIsInhmb3JtIiwiaW5wdXRWYWx1ZSIsImFkZHNDb21wbGV0ZSIsIm91dHB1dFZhbHVlcyIsInJldCIsInZhbHVlc0FuZENvbnRleHQiLCJpbnB1dFRvT3V0cHV0VmFsdWVzIiwidmFsdWVzIiwidmFsdWUiLCJfYWRkc0NvbXBsZXRlIiwic2V0IiwiaSIsImxlbiIsImxlbmd0aCIsImFkZCIsImZvckVhY2giLCJyZWFkIiwibGlzdGVuIiwic2V0VmFsdWVzIiwiY29udHJvbGxlciIsInN1YiIsInN1YnNjcmliZSIsInN0YXJ0IiwibmV4dCIsImNoYW5nZXMiLCJjaGFuZ2UiLCJ0eXBlIiwiZW5kVmFsdWUiLCJsaXN0IiwiZ2V0IiwiRXJyb3IiLCJyZW1vdmUiLCJ0cmFuc2Zvcm1lZFZhbHVlIiwiZGVsZXRlIiwiZXJyb3IiLCJlcnIiLCJjb21wbGV0ZSIsImVuZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQWlCd0JBLFM7O0FBZnhCOzs7Ozs7QUFFQSxJQUFNQyxVQUFVO0FBQ2QscUJBRGMsNEJBQ1E7QUFDcEIsV0FBTyxFQUFQO0FBQ0QsR0FIYTtBQUlkLHFCQUpjLDBCQUlNQyxHQUpOLEVBSVdDLEtBSlgsRUFJa0I7QUFDOUJELFFBQUlFLElBQUosQ0FBU0QsS0FBVDtBQUNBLFdBQU9ELEdBQVA7QUFDRCxHQVBhO0FBUWQsdUJBUmMsNEJBUVFDLEtBUlIsRUFRZTtBQUMzQixXQUFPQSxLQUFQO0FBQ0Q7QUFWYSxDQUFoQjs7QUFhZSxTQUFTSCxTQUFULENBQW1CSyxPQUFuQixFQUEwQ0MsVUFBMUMsRUFBOEU7QUFDM0YsV0FBU0MsSUFBVCxDQUFjQyxLQUFkLEVBQTZCQyxVQUE3QixFQUdFO0FBQ0EsUUFBSUMsZUFBZSxLQUFuQjtBQUNBLFFBQUlDLHFCQUFK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QUFJUSxLQUFFLENBQU4sRUFBUUMsT0FBSVQsYUFBYVUsTUFBOUIsRUFBc0NGLEtBQUVDLElBQXhDLEVBQTZDRCxJQUE3QyxFQUFrRDtBQUNoRFEsNkJBQVdMLEdBQVgsQ0FBZVgsYUFBYVEsRUFBYixDQUFmO0FBQ0Q7QUFDRCxvQkFBSUYsYUFBSixFQUFtQjtBQUNqQlAsaUNBQWUsSUFBZjtBQUNBRix3QkFBTSxxQkFBTixFQUE2QixFQUE3QixFQUFpQ2UsT0FBakMsQ0FBeUMsb0JBQVk7QUFDbkRJLCtCQUFXTCxHQUFYLENBQWVhLFFBQWY7QUFDRCxtQkFGRDtBQUdEO0FBQ0Y7QUFDRixhQWZELE1BZU8sSUFBSUYsT0FBT0MsSUFBUCxLQUFnQixRQUFwQixFQUE4QjtBQUFBLGtCQUM1QmxCLE1BRDRCLEdBQ25CaUIsTUFEbUIsQ0FDNUJqQixLQUQ0Qjs7QUFFbkMsa0JBQU1vQixPQUFPdEIsb0JBQW9CdUIsR0FBcEIsQ0FBd0JyQixNQUF4QixDQUFiO0FBQ0Esa0JBQUksQ0FBQ29CLElBQUwsRUFBVyxNQUFNLElBQUlFLEtBQUosQ0FBVSwwQkFBVixDQUFOO0FBQ1hGLG1CQUFLYixPQUFMLENBQWEsNEJBQW9CO0FBQy9CSSwyQkFBV1ksTUFBWCxDQUFrQkMsZ0JBQWxCO0FBQ0QsZUFGRDtBQUdBMUIsa0NBQW9CMkIsTUFBcEIsQ0FBMkJ6QixNQUEzQjtBQUNEO0FBQ0Y7QUFDRixTQXBDMkI7QUFxQzVCMEIsYUFyQzRCLGlCQXFDdEJDLEdBckNzQixFQXFDakI7QUFDVGhCLHFCQUFXZSxLQUFYLENBQWlCQyxHQUFqQjtBQUNELFNBdkMyQjtBQXdDNUJDLGdCQXhDNEIsc0JBd0NqQjtBQUNUakIscUJBQVdrQixHQUFYO0FBQ0Q7QUExQzJCLE9BQWxCLENBQVo7O0FBNkNBLGFBQU9qQixHQUFQO0FBQ0Q7QUFsRGdCLEdBQVosQ0FBUDtBQW9ERCIsImZpbGUiOiJ0cmFuc2R1Y2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgTGl2ZVNldCBmcm9tICcuJztcblxuY29uc3QgYXJyYXlYZiA9IHtcbiAgJ0BAdHJhbnNkdWNlci9pbml0JygpIHtcbiAgICByZXR1cm4gW107XG4gIH0sXG4gICdAQHRyYW5zZHVjZXIvc3RlcCcocmVzLCBpbnB1dCkge1xuICAgIHJlcy5wdXNoKGlucHV0KTtcbiAgICByZXR1cm4gcmVzO1xuICB9LFxuICAnQEB0cmFuc2R1Y2VyL3Jlc3VsdCcoaW5wdXQpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRyYW5zZHVjZShsaXZlU2V0OiBMaXZlU2V0PGFueT4sIHRyYW5zZHVjZXI6IEZ1bmN0aW9uKTogTGl2ZVNldDxhbnk+IHtcbiAgZnVuY3Rpb24gc3RlcCh4Zm9ybTogT2JqZWN0LCBpbnB1dFZhbHVlOiBhbnkpOiB7XG4gICAgb3V0cHV0VmFsdWVzOiBBcnJheTxhbnk+O1xuICAgIGFkZHNDb21wbGV0ZTogYm9vbGVhbjtcbiAgfSB7XG4gICAgbGV0IGFkZHNDb21wbGV0ZSA9IGZhbHNlO1xuICAgIGxldCBvdXRwdXRWYWx1ZXM7XG4gICAgY29uc3QgcmV0ID0geGZvcm1bJ0BAdHJhbnNkdWNlci9zdGVwJ10oW10sIGlucHV0VmFsdWUpO1xuICAgIGlmIChyZXQgJiYgcmV0WydAQHRyYW5zZHVjZXIvcmVkdWNlZCddKSB7XG4gICAgICBvdXRwdXRWYWx1ZXMgPSByZXRbJ0BAdHJhbnNkdWNlci92YWx1ZSddO1xuICAgICAgYWRkc0NvbXBsZXRlID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0cHV0VmFsdWVzID0gcmV0O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgb3V0cHV0VmFsdWVzLFxuICAgICAgYWRkc0NvbXBsZXRlXG4gICAgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHZhbHVlc0FuZENvbnRleHQoKToge1xuICAgIHZhbHVlczogU2V0PGFueT47XG4gICAgaW5wdXRUb091dHB1dFZhbHVlczogTWFwPGFueSwgQXJyYXk8YW55Pj47XG4gICAgeGZvcm06IE9iamVjdDtcbiAgICBhZGRzQ29tcGxldGU6IGJvb2xlYW47XG4gIH0ge1xuICAgIGNvbnN0IGlucHV0VG9PdXRwdXRWYWx1ZXMgPSBuZXcgTWFwKCk7XG4gICAgY29uc3QgeGZvcm0gPSB0cmFuc2R1Y2VyKGFycmF5WGYpO1xuICAgIGxldCBhZGRzQ29tcGxldGUgPSBmYWxzZTtcbiAgICBjb25zdCB2YWx1ZXMgPSBuZXcgU2V0KHhmb3JtWydAQHRyYW5zZHVjZXIvaW5pdCddKCkpO1xuICAgIGZvciAobGV0IHZhbHVlIG9mIGxpdmVTZXQudmFsdWVzKCkpIHtcbiAgICAgIGNvbnN0IHtvdXRwdXRWYWx1ZXMsIGFkZHNDb21wbGV0ZTogX2FkZHNDb21wbGV0ZX0gPSBzdGVwKHhmb3JtLCB2YWx1ZSk7XG4gICAgICBpbnB1dFRvT3V0cHV0VmFsdWVzLnNldCh2YWx1ZSwgb3V0cHV0VmFsdWVzKTtcbiAgICAgIGZvciAobGV0IGk9MCxsZW49b3V0cHV0VmFsdWVzLmxlbmd0aDsgaTxsZW47IGkrKykge1xuICAgICAgICB2YWx1ZXMuYWRkKG91dHB1dFZhbHVlc1tpXSk7XG4gICAgICB9XG4gICAgICBpZiAoX2FkZHNDb21wbGV0ZSkge1xuICAgICAgICBhZGRzQ29tcGxldGUgPSB0cnVlO1xuICAgICAgICB4Zm9ybVsnQEB0cmFuc2R1Y2VyL3Jlc3VsdCddKFtdKS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgICB2YWx1ZXMuYWRkKHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWVzLFxuICAgICAgaW5wdXRUb091dHB1dFZhbHVlcyxcbiAgICAgIHhmb3JtLFxuICAgICAgYWRkc0NvbXBsZXRlXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBuZXcgTGl2ZVNldCh7XG4gICAgcmVhZDogKCkgPT4gdmFsdWVzQW5kQ29udGV4dCgpLnZhbHVlcyxcbiAgICBsaXN0ZW4oc2V0VmFsdWVzLCBjb250cm9sbGVyKSB7XG4gICAgICBsZXQgaW5wdXRUb091dHB1dFZhbHVlcywgeGZvcm0sIGFkZHNDb21wbGV0ZTtcbiAgICAgIGNvbnN0IHN1YiA9IGxpdmVTZXQuc3Vic2NyaWJlKHtcbiAgICAgICAgc3RhcnQoKSB7XG4gICAgICAgICAgY29uc3QgcmV0ID0gdmFsdWVzQW5kQ29udGV4dCgpO1xuICAgICAgICAgIHNldFZhbHVlcyhyZXQudmFsdWVzKTtcbiAgICAgICAgICBpbnB1dFRvT3V0cHV0VmFsdWVzID0gcmV0LmlucHV0VG9PdXRwdXRWYWx1ZXM7XG4gICAgICAgICAgeGZvcm0gPSByZXQueGZvcm07XG4gICAgICAgICAgYWRkc0NvbXBsZXRlID0gcmV0LmFkZHNDb21wbGV0ZTtcbiAgICAgICAgfSxcbiAgICAgICAgbmV4dChjaGFuZ2VzKSB7XG4gICAgICAgICAgZm9yIChsZXQgaT0wLGxlbj1jaGFuZ2VzLmxlbmd0aDsgaTxsZW47IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlID0gY2hhbmdlc1tpXTtcbiAgICAgICAgICAgIGlmIChjaGFuZ2UudHlwZSA9PT0gJ2FkZCcpIHtcbiAgICAgICAgICAgICAgaWYgKCFhZGRzQ29tcGxldGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7dmFsdWV9ID0gY2hhbmdlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHtvdXRwdXRWYWx1ZXMsIGFkZHNDb21wbGV0ZTogX2FkZHNDb21wbGV0ZX0gPSBzdGVwKHhmb3JtLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgaW5wdXRUb091dHB1dFZhbHVlcy5zZXQodmFsdWUsIG91dHB1dFZhbHVlcyk7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaT0wLGxlbj1vdXRwdXRWYWx1ZXMubGVuZ3RoOyBpPGxlbjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmFkZChvdXRwdXRWYWx1ZXNbaV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoX2FkZHNDb21wbGV0ZSkge1xuICAgICAgICAgICAgICAgICAgYWRkc0NvbXBsZXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIHhmb3JtWydAQHRyYW5zZHVjZXIvcmVzdWx0J10oW10pLmZvckVhY2goZW5kVmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmFkZChlbmRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLnR5cGUgPT09ICdyZW1vdmUnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHt2YWx1ZX0gPSBjaGFuZ2U7XG4gICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBpbnB1dFRvT3V0cHV0VmFsdWVzLmdldCh2YWx1ZSk7XG4gICAgICAgICAgICAgIGlmICghbGlzdCkgdGhyb3cgbmV3IEVycm9yKCd2YWx1ZSBoYWQgbm90IGJlZW4gYWRkZWQnKTtcbiAgICAgICAgICAgICAgbGlzdC5mb3JFYWNoKHRyYW5zZm9ybWVkVmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIucmVtb3ZlKHRyYW5zZm9ybWVkVmFsdWUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgaW5wdXRUb091dHB1dFZhbHVlcy5kZWxldGUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3IoZXJyKSB7XG4gICAgICAgICAgY29udHJvbGxlci5lcnJvcihlcnIpO1xuICAgICAgICB9LFxuICAgICAgICBjb21wbGV0ZSgpIHtcbiAgICAgICAgICBjb250cm9sbGVyLmVuZCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHN1YjtcbiAgICB9XG4gIH0pO1xufVxuIl19 |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
128130
964