Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

eslint-plugin-import

Package Overview
Dependencies
Maintainers
1
Versions
131
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eslint-plugin-import - npm Package Compare versions

Comparing version 1.10.0 to 1.10.2

8

CHANGELOG.md

@@ -8,2 +8,7 @@ # Change Log

## [1.10.1] - 2016-07-02
### Added
- Officially support ESLint 3.x. (peerDependencies updated to `2.x - 3.x`)
## [1.10.0] - 2016-06-30

@@ -301,3 +306,4 @@ ### Added

[Unreleased]: https://github.com/benmosher/eslint-plugin-import/compare/v1.10.0...HEAD
[Unreleased]: https://github.com/benmosher/eslint-plugin-import/compare/v1.10.1...HEAD
[1.10.1]: https://github.com/benmosher/eslint-plugin-import/compare/v1.10.0...v1.10.1
[1.10.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.9.2...v1.10.0

@@ -304,0 +310,0 @@ [1.9.2]: https://github.com/benmosher/eslint-plugin-import/compare/v1.9.1...v1.9.2

2

lib/core/declaredScope.js

@@ -16,2 +16,2 @@ "use strict";

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvZGVjbGFyZWRTY29wZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7a0JBQXdCO0FBQVQsU0FBUyxhQUFULENBQXVCLE9BQXZCLEVBQWdDLElBQWhDLEVBQXNDO0FBQ25ELE1BQUksYUFBYSxRQUFRLFFBQVIsR0FBbUIsVUFBbkI7TUFDYixVQURKLENBRG1EO0FBR25ELE9BQUssSUFBSSxDQUFKLEVBQU8sSUFBSSxXQUFXLE1BQVgsRUFBbUIsR0FBbkMsRUFBd0M7QUFDdEMsUUFBSSxXQUFXLENBQVgsRUFBYyxVQUFkLENBQXlCLElBQXpCLEtBQWtDLElBQWxDLEVBQXdDO0FBQzFDLFlBRDBDO0tBQTVDO0dBREY7QUFLQSxNQUFJLENBQUMsV0FBVyxDQUFYLENBQUQsRUFBZ0IsT0FBTyxTQUFQLENBQXBCO0FBQ0EsU0FBTyxXQUFXLENBQVgsRUFBYyxRQUFkLENBQXVCLEtBQXZCLENBQTZCLElBQTdCLENBVDRDO0NBQXRDIiwiZmlsZSI6ImNvcmUvZGVjbGFyZWRTY29wZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRlY2xhcmVkU2NvcGUoY29udGV4dCwgbmFtZSkge1xuICBsZXQgcmVmZXJlbmNlcyA9IGNvbnRleHQuZ2V0U2NvcGUoKS5yZWZlcmVuY2VzXG4gICAgLCBpXG4gIGZvciAoaSA9IDA7IGkgPCByZWZlcmVuY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHJlZmVyZW5jZXNbaV0uaWRlbnRpZmllci5uYW1lID09PSBuYW1lKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuICBpZiAoIXJlZmVyZW5jZXNbaV0pIHJldHVybiB1bmRlZmluZWRcbiAgcmV0dXJuIHJlZmVyZW5jZXNbaV0ucmVzb2x2ZWQuc2NvcGUudHlwZVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvZGVjbGFyZWRTY29wZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7a0JBQXdCLGE7QUFBVCxTQUFTLGFBQVQsQ0FBdUIsT0FBdkIsRUFBZ0MsSUFBaEMsRUFBc0M7QUFDbkQsTUFBSSxhQUFhLFFBQVEsUUFBUixHQUFtQixVQUFwQztBQUFBLE1BQ0ksVUFESjtBQUVBLE9BQUssSUFBSSxDQUFULEVBQVksSUFBSSxXQUFXLE1BQTNCLEVBQW1DLEdBQW5DLEVBQXdDO0FBQ3RDLFFBQUksV0FBVyxDQUFYLEVBQWMsVUFBZCxDQUF5QixJQUF6QixLQUFrQyxJQUF0QyxFQUE0QztBQUMxQztBQUNEO0FBQ0Y7QUFDRCxNQUFJLENBQUMsV0FBVyxDQUFYLENBQUwsRUFBb0IsT0FBTyxTQUFQO0FBQ3BCLFNBQU8sV0FBVyxDQUFYLEVBQWMsUUFBZCxDQUF1QixLQUF2QixDQUE2QixJQUFwQztBQUNEIiwiZmlsZSI6ImNvcmUvZGVjbGFyZWRTY29wZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRlY2xhcmVkU2NvcGUoY29udGV4dCwgbmFtZSkge1xuICBsZXQgcmVmZXJlbmNlcyA9IGNvbnRleHQuZ2V0U2NvcGUoKS5yZWZlcmVuY2VzXG4gICAgLCBpXG4gIGZvciAoaSA9IDA7IGkgPCByZWZlcmVuY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHJlZmVyZW5jZXNbaV0uaWRlbnRpZmllci5uYW1lID09PSBuYW1lKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuICBpZiAoIXJlZmVyZW5jZXNbaV0pIHJldHVybiB1bmRlZmluZWRcbiAgcmV0dXJuIHJlZmVyZW5jZXNbaV0ucmVzb2x2ZWQuc2NvcGUudHlwZVxufVxuIl19

@@ -596,2 +596,2 @@ 'use strict';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvZ2V0RXhwb3J0cy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztRQTJiZ0I7O0FBM2JoQjs7QUFDQTs7OztBQUVBOztJQUFZOztBQUVaOztBQUNBOztJQUFZOztBQUVaOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOzs7Ozs7OztBQUVBLElBQU0sY0FBYyxzQkFBZDs7Ozs7Ozs7QUFRTixJQUFNLGFBQWEsSUFBSSxNQUFKLENBQVcsZ0NBQVgsQ0FBYjs7SUFFZTtBQUNuQixXQURtQixTQUNuQixDQUFZLElBQVosRUFBa0I7MEJBREMsV0FDRDs7QUFDaEIsU0FBSyxJQUFMLEdBQVksSUFBWixDQURnQjtBQUVoQixTQUFLLFNBQUwsR0FBaUIsc0JBQWpCOztBQUZnQixRQUloQixDQUFLLFNBQUwsR0FBaUIsc0JBQWpCLENBSmdCO0FBS2hCLFNBQUssWUFBTCxHQUFvQixzQkFBcEIsQ0FMZ0I7QUFNaEIsU0FBSyxNQUFMLEdBQWMsRUFBZCxDQU5nQjtHQUFsQjs7QUFEbUIsWUFrQlosbUJBQUksUUFBUSxTQUFTOztBQUUxQixRQUFJLE9BQU8sdUJBQVEsTUFBUixFQUFnQixPQUFoQixDQUFQLENBRnNCO0FBRzFCLFFBQUksUUFBUSxJQUFSLEVBQWMsT0FBTyxJQUFQLENBQWxCOztBQUVBLFdBQU8sVUFBVSxHQUFWLENBQWMsSUFBZCxFQUFvQixPQUFwQixDQUFQLENBTDBCOzs7QUFsQlQsWUEwQlosb0JBQUksTUFBTSxTQUFTO0FBQ3hCLFFBQUksa0JBQUosQ0FEd0I7O0FBR3hCLFFBQU0sV0FBVyxzQkFBVyx3QkFBVyxRQUFYLENBQVgsRUFBaUM7QUFDaEQsZ0JBQVUsUUFBUSxRQUFSO0FBQ1Ysa0JBQVksUUFBUSxVQUFSO0FBQ1oscUJBQWUsUUFBUSxhQUFSO0FBQ2YsZ0JBSmdEO0tBQWpDLEVBS2QsTUFMYyxDQUtQLEtBTE8sQ0FBWCxDQUhrQjs7QUFVeEIsZ0JBQVksWUFBWSxHQUFaLENBQWdCLFFBQWhCLENBQVo7OztBQVZ3QixRQWFwQixjQUFjLElBQWQsRUFBb0IsT0FBTyxJQUFQLENBQXhCOztBQUVBLFFBQU0sUUFBUSxHQUFHLFFBQUgsQ0FBWSxJQUFaLENBQVIsQ0Fma0I7QUFnQnhCLFFBQUksYUFBYSxJQUFiLEVBQW1COztBQUVyQixVQUFJLFVBQVUsS0FBVixHQUFrQixNQUFNLEtBQU4sS0FBZ0IsQ0FBbEMsRUFBcUM7QUFDdkMsZUFBTyxTQUFQLENBRHVDO09BQXpDOztBQUZxQixLQUF2Qjs7QUFRQSxRQUFNLFVBQVUsR0FBRyxZQUFILENBQWdCLElBQWhCLEVBQXNCLEVBQUUsVUFBVSxNQUFWLEVBQXhCLENBQVY7OztBQXhCa0IsUUEyQnBCLHNCQUFVLElBQVYsRUFBZ0IsT0FBaEIsS0FBNEIsQ0FBQyxXQUFXLElBQVgsQ0FBZ0IsT0FBaEIsQ0FBRCxFQUEyQjtBQUN6RCxrQkFBWSxHQUFaLENBQWdCLFFBQWhCLEVBQTBCLElBQTFCLEVBRHlEO0FBRXpELGFBQU8sSUFBUCxDQUZ5RDtLQUEzRDs7QUFLQSxnQkFBWSxVQUFVLEtBQVYsQ0FBZ0IsSUFBaEIsRUFBc0IsT0FBdEIsRUFBK0IsT0FBL0IsQ0FBWixDQWhDd0I7QUFpQ3hCLGNBQVUsS0FBVixHQUFrQixNQUFNLEtBQU4sQ0FqQ007O0FBbUN4QixnQkFBWSxHQUFaLENBQWdCLFFBQWhCLEVBQTBCLFNBQTFCLEVBbkN3QjtBQW9DeEIsV0FBTyxTQUFQLENBcEN3Qjs7O0FBMUJQLFlBaUVaLHVCQUFNLE1BQU0sU0FBUyxTQUFTO0FBQ25DLFFBQUksSUFBSSxJQUFJLFNBQUosQ0FBYyxJQUFkLENBQUosQ0FEK0I7O0FBR25DLFFBQUk7QUFDRixVQUFJLE1BQU0scUJBQU0sT0FBTixFQUFlLE9BQWYsQ0FBTixDQURGO0tBQUosQ0FFRSxPQUFPLEdBQVAsRUFBWTtBQUNaLFFBQUUsTUFBRixDQUFTLElBQVQsQ0FBYyxHQUFkLEVBRFk7QUFFWixhQUFPLENBQVA7QUFGWSxLQUFaOztBQUtGLFFBQU0sV0FBVyxPQUFDLENBQVEsUUFBUixJQUFvQixRQUFRLFFBQVIsQ0FBaUIsaUJBQWpCLENBQXBCLElBQTRELENBQUMsT0FBRCxDQUE3RCxDQVZrQjtBQVduQyxRQUFNLGtCQUFrQixFQUFsQixDQVg2QjtBQVluQyxhQUFTLE9BQVQsQ0FBaUIsaUJBQVM7QUFDeEIsc0JBQWdCLEtBQWhCLElBQXlCLHlCQUF5QixLQUF6QixDQUF6QixDQUR3QjtLQUFULENBQWpCOzs7QUFabUMsT0FpQm5DLENBQUksUUFBSixDQUFhLElBQWIsQ0FBa0IsYUFBSztBQUNyQixVQUFJLEVBQUUsSUFBRixLQUFXLE9BQVgsRUFBb0IsT0FBTyxLQUFQLENBQXhCO0FBQ0EsVUFBSTtBQUNGLFlBQU0sTUFBTSxTQUFTLEtBQVQsQ0FBZSxFQUFFLEtBQUYsRUFBUyxFQUFFLFFBQVEsSUFBUixFQUExQixDQUFOLENBREo7QUFFRixZQUFJLElBQUksSUFBSixDQUFTLElBQVQsQ0FBYztpQkFBSyxFQUFFLEtBQUYsS0FBWSxRQUFaO1NBQUwsQ0FBbEIsRUFBOEM7QUFDNUMsWUFBRSxHQUFGLEdBQVEsR0FBUixDQUQ0QztBQUU1QyxpQkFBTyxJQUFQLENBRjRDO1NBQTlDO09BRkYsQ0FNRSxPQUFPLEdBQVAsRUFBWSxjQUFaO0FBQ0YsYUFBTyxLQUFQLENBVHFCO0tBQUwsQ0FBbEIsQ0FqQm1DOztBQTZCbkMsUUFBTSxhQUFhLHNCQUFiLENBN0I2Qjs7QUErQm5DLGFBQVMsVUFBVCxDQUFvQixJQUFwQixFQUEwQjtBQUN4QixhQUFPLGtCQUFRLFFBQVIsQ0FBaUIsS0FBSyxNQUFMLENBQVksS0FBWixFQUFtQixJQUFwQyxFQUEwQyxRQUFRLFFBQVIsQ0FBakQsQ0FEd0I7S0FBMUI7O0FBSUEsYUFBUyxhQUFULENBQXVCLElBQXZCLEVBQTZCO0FBQzNCLFVBQU0sS0FBSyxXQUFXLElBQVgsQ0FBTCxDQURxQjtBQUUzQixVQUFJLE1BQU0sSUFBTixFQUFZLE9BQU8sSUFBUCxDQUFoQjtBQUNBLGFBQU8sVUFBVSxHQUFWLENBQWMsRUFBZCxFQUFrQixPQUFsQixDQUFQLENBSDJCO0tBQTdCOztBQU1BLGFBQVMsWUFBVCxDQUFzQixVQUF0QixFQUFrQztBQUNoQyxVQUFJLENBQUMsV0FBVyxHQUFYLENBQWUsV0FBVyxJQUFYLENBQWhCLEVBQWtDLE9BQXRDOztBQUVBLGFBQU8sWUFBWTtBQUNqQixlQUFPLGNBQWMsV0FBVyxHQUFYLENBQWUsV0FBVyxJQUFYLENBQTdCLENBQVAsQ0FEaUI7T0FBWixDQUh5QjtLQUFsQzs7QUFRQSxhQUFTLFlBQVQsQ0FBc0IsTUFBdEIsRUFBOEIsVUFBOUIsRUFBMEM7QUFDeEMsVUFBTSxPQUFPLGFBQWEsVUFBYixDQUFQLENBRGtDO0FBRXhDLFVBQUksSUFBSixFQUFVO0FBQ1IsZUFBTyxjQUFQLENBQXNCLE1BQXRCLEVBQThCLFdBQTlCLEVBQTJDLEVBQUUsS0FBSyxJQUFMLEVBQTdDLEVBRFE7T0FBVjs7QUFJQSxhQUFPLE1BQVAsQ0FOd0M7S0FBMUM7O0FBVUEsUUFBSSxJQUFKLENBQVMsT0FBVCxDQUFpQixVQUFVLENBQVYsRUFBYTs7QUFFNUIsVUFBSSxFQUFFLElBQUYsS0FBVywwQkFBWCxFQUF1QztBQUN6QyxZQUFNLGFBQWEsV0FBVyxlQUFYLEVBQTRCLENBQTVCLENBQWIsQ0FEbUM7QUFFekMsWUFBSSxFQUFFLFdBQUYsQ0FBYyxJQUFkLEtBQXVCLFlBQXZCLEVBQXFDO0FBQ3ZDLHVCQUFhLFVBQWIsRUFBeUIsRUFBRSxXQUFGLENBQXpCLENBRHVDO1NBQXpDO0FBR0EsVUFBRSxTQUFGLENBQVksR0FBWixDQUFnQixTQUFoQixFQUEyQixVQUEzQixFQUx5QztBQU16QyxlQU55QztPQUEzQzs7QUFTQSxVQUFJLEVBQUUsSUFBRixLQUFXLHNCQUFYLEVBQW1DOztBQUNyQyxjQUFJLFlBQVksV0FBVyxDQUFYLENBQVo7QUFDSixjQUFJLGFBQWEsSUFBYixFQUFtQjs7Y0FBdkI7QUFDQSxZQUFFLFlBQUYsQ0FBZSxHQUFmLENBQW1CLFNBQW5CLEVBQThCO21CQUFNLFVBQVUsR0FBVixDQUFjLFNBQWQsRUFBeUIsT0FBekI7V0FBTixDQUE5QjtBQUNBOzs7WUFKcUM7OztPQUF2Qzs7O0FBWDRCLFVBbUJ4QixFQUFFLElBQUYsS0FBVyxtQkFBWCxFQUFnQztBQUNsQyxZQUFJLFdBQUosQ0FEa0M7QUFFbEMsWUFBSSxFQUFFLFVBQUYsQ0FBYSxJQUFiLENBQWtCO2lCQUFLLEVBQUUsSUFBRixLQUFXLDBCQUFYLEtBQTBDLEtBQUssQ0FBTCxDQUExQztTQUFMLENBQXRCLEVBQStFO0FBQzdFLHFCQUFXLEdBQVgsQ0FBZSxHQUFHLEtBQUgsQ0FBUyxJQUFULEVBQWUsQ0FBOUIsRUFENkU7U0FBL0U7QUFHQSxlQUxrQztPQUFwQzs7QUFRQSxVQUFJLEVBQUUsSUFBRixLQUFXLHdCQUFYLEVBQW9DOztBQUV0QyxZQUFJLEVBQUUsV0FBRixJQUFpQixJQUFqQixFQUF1QjtBQUN6QixrQkFBUSxFQUFFLFdBQUYsQ0FBYyxJQUFkO0FBQ04saUJBQUsscUJBQUwsQ0FERjtBQUVFLGlCQUFLLGtCQUFMLENBRkY7QUFHRSxpQkFBSyxXQUFMOztBQUNFLGdCQUFFLFNBQUYsQ0FBWSxHQUFaLENBQWdCLEVBQUUsV0FBRixDQUFjLEVBQWQsQ0FBaUIsSUFBakIsRUFBdUIsV0FBVyxlQUFYLEVBQTRCLENBQTVCLENBQXZDLEVBREY7QUFFRSxvQkFGRjtBQUhGLGlCQU1PLHFCQUFMO0FBQ0UsZ0JBQUUsV0FBRixDQUFjLFlBQWQsQ0FBMkIsT0FBM0IsQ0FBbUMsVUFBQyxDQUFEO3VCQUNqQyx3QkFBd0IsRUFBRSxFQUFGLEVBQU07eUJBQzVCLEVBQUUsU0FBRixDQUFZLEdBQVosQ0FBZ0IsR0FBRyxJQUFILEVBQVMsV0FBVyxlQUFYLEVBQTRCLENBQTVCLEVBQStCLENBQS9CLENBQXpCO2lCQUQ0QjtlQURHLENBQW5DLENBREY7QUFJRSxvQkFKRjtBQU5GLFdBRHlCO1NBQTNCOztBQWVBLFVBQUUsVUFBRixDQUFhLE9BQWIsQ0FBcUIsVUFBQyxDQUFELEVBQU87QUFDMUIsY0FBTSxhQUFhLEVBQWIsQ0FEb0I7QUFFMUIsY0FBSSxjQUFKLENBRjBCOztBQUkxQixrQkFBUSxFQUFFLElBQUY7QUFDTixpQkFBSyx3QkFBTDtBQUNFLGtCQUFJLENBQUMsRUFBRSxNQUFGLEVBQVUsT0FBZjtBQUNBLHNCQUFRLFNBQVIsQ0FGRjtBQUdFLG9CQUhGO0FBREYsaUJBS08sMEJBQUw7QUFDRSxnQkFBRSxTQUFGLENBQVksR0FBWixDQUFnQixFQUFFLFFBQUYsQ0FBVyxJQUFYLEVBQWlCLE9BQU8sY0FBUCxDQUFzQixVQUF0QixFQUFrQyxXQUFsQyxFQUErQztBQUM5RSxvQ0FBTTtBQUFFLHlCQUFPLGNBQWMsQ0FBZCxDQUFQLENBQUY7aUJBRHdFO2VBQS9DLENBQWpDLEVBREY7QUFJRSxxQkFKRjtBQUxGLGlCQVVPLGlCQUFMO0FBQ0Usa0JBQUksQ0FBQyxFQUFFLE1BQUYsRUFBVTtBQUNiLGtCQUFFLFNBQUYsQ0FBWSxHQUFaLENBQWdCLEVBQUUsUUFBRixDQUFXLElBQVgsRUFBaUIsYUFBYSxVQUFiLEVBQXlCLEVBQUUsS0FBRixDQUExRCxFQURhO0FBRWIsdUJBRmE7ZUFBZjs7QUFYSjtBQWlCSSxzQkFBUSxFQUFFLEtBQUYsQ0FBUSxJQUFSLENBRFY7QUFFRSxvQkFGRjtBQWhCRjs7O0FBSjBCLFdBMEIxQixDQUFFLFNBQUYsQ0FBWSxHQUFaLENBQWdCLEVBQUUsUUFBRixDQUFXLElBQVgsRUFBaUIsRUFBRSxZQUFGLEVBQVMsV0FBVztxQkFBTSxjQUFjLENBQWQ7YUFBTixFQUFyRCxFQTFCMEI7U0FBUCxDQUFyQixDQWpCc0M7T0FBeEM7S0EzQmUsQ0FBakIsQ0EzRG1DOztBQXNJbkMsV0FBTyxDQUFQLENBdEltQzs7Ozs7Ozs7Ozs7O0FBakVsQixzQkFpTm5CLG1CQUFJLE1BQU07QUFDUixRQUFJLEtBQUssU0FBTCxDQUFlLEdBQWYsQ0FBbUIsSUFBbkIsQ0FBSixFQUE4QixPQUFPLElBQVAsQ0FBOUI7QUFDQSxRQUFJLEtBQUssU0FBTCxDQUFlLEdBQWYsQ0FBbUIsSUFBbkIsQ0FBSixFQUE4QixPQUFPLElBQVAsQ0FBOUI7OztBQUZRLFFBS0osU0FBUyxTQUFULEVBQW9CO0FBQ3RCLDJCQUFnQixLQUFLLFlBQUwsQ0FBa0IsTUFBbEIsZ0hBQWhCLElBQTRDOzs7Ozs7Ozs7Ozs7WUFBbkMsV0FBbUM7O0FBQzFDLFlBQUksV0FBVyxLQUFYOzs7QUFEc0MsWUFJdEMsQ0FBQyxRQUFELEVBQVcsU0FBZjs7QUFFQSxZQUFJLFNBQVMsR0FBVCxDQUFhLElBQWIsQ0FBSixFQUF3QixPQUFPLElBQVAsQ0FBeEI7T0FORjtLQURGOztBQVdBLFdBQU8sS0FBUCxDQWhCUTs7Ozs7Ozs7OztBQWpOUyxzQkF5T25CLDJCQUFRLE1BQU07QUFDWixRQUFJLEtBQUssU0FBTCxDQUFlLEdBQWYsQ0FBbUIsSUFBbkIsQ0FBSixFQUE4QixPQUFPLEVBQUUsT0FBTyxJQUFQLEVBQWEsTUFBTSxDQUFDLElBQUQsQ0FBTixFQUF0QixDQUE5Qjs7QUFFQSxRQUFJLEtBQUssU0FBTCxDQUFlLEdBQWYsQ0FBbUIsSUFBbkIsQ0FBSixFQUE4QjsyQkFDQyxLQUFLLFNBQUwsQ0FBZSxHQUFmLENBQW1CLElBQW5CLEVBREQ7O1VBQ3BCLDZCQURvQjtBQUN0QixVQUFTLG9DQUFULENBRHNCO0FBRXRCLHFCQUFXLFdBQVg7OztBQUZzQixVQUt4QixZQUFZLElBQVosRUFBa0IsT0FBTyxFQUFFLE9BQU8sSUFBUCxFQUFhLE1BQU0sQ0FBQyxJQUFELENBQU4sRUFBdEIsQ0FBdEI7OztBQUw0QixVQVF4QixTQUFTLElBQVQsS0FBa0IsS0FBSyxJQUFMLElBQWEsVUFBVSxJQUFWLEVBQWdCLE9BQU8sRUFBRSxPQUFPLEtBQVAsRUFBYyxNQUFNLENBQUMsSUFBRCxDQUFOLEVBQXZCLENBQW5EOztBQUVBLFVBQU0sT0FBTyxTQUFTLE9BQVQsQ0FBaUIsS0FBakIsQ0FBUCxDQVZzQjtBQVc1QixXQUFLLElBQUwsQ0FBVSxPQUFWLENBQWtCLElBQWxCLEVBWDRCOztBQWE1QixhQUFPLElBQVAsQ0FiNEI7S0FBOUI7OztBQUhZLFFBcUJSLFNBQVMsU0FBVCxFQUFvQjtBQUN0Qiw0QkFBZ0IsS0FBSyxZQUFMLENBQWtCLE1BQWxCLHVIQUFoQixJQUE0Qzs7Ozs7Ozs7Ozs7O1lBQW5DLFlBQW1DOztBQUMxQyxZQUFJLFdBQVcsS0FBWDs7QUFEc0MsWUFHdEMsQ0FBQyxRQUFELEVBQVcsU0FBZjs7O0FBSDBDLFlBTXRDLFNBQVMsSUFBVCxLQUFrQixLQUFLLElBQUwsRUFBVyxTQUFqQzs7QUFFQSxZQUFJLGFBQWEsU0FBUyxPQUFULENBQWlCLElBQWpCLENBQWIsQ0FSc0M7QUFTMUMsWUFBSSxXQUFXLEtBQVgsRUFBa0I7QUFDcEIscUJBQVcsSUFBWCxDQUFnQixPQUFoQixDQUF3QixJQUF4QixFQURvQjtBQUVwQixpQkFBTyxVQUFQLENBRm9CO1NBQXRCO09BVEY7S0FERjs7QUFpQkEsV0FBTyxFQUFFLE9BQU8sS0FBUCxFQUFjLE1BQU0sQ0FBQyxJQUFELENBQU4sRUFBdkIsQ0F0Q1k7OztBQXpPSyxzQkFrUm5CLG1CQUFJLE1BQU07QUFDUixRQUFJLEtBQUssU0FBTCxDQUFlLEdBQWYsQ0FBbUIsSUFBbkIsQ0FBSixFQUE4QixPQUFPLEtBQUssU0FBTCxDQUFlLEdBQWYsQ0FBbUIsSUFBbkIsQ0FBUCxDQUE5Qjs7QUFFQSxRQUFJLEtBQUssU0FBTCxDQUFlLEdBQWYsQ0FBbUIsSUFBbkIsQ0FBSixFQUE4Qjs0QkFDQyxLQUFLLFNBQUwsQ0FBZSxHQUFmLENBQW1CLElBQW5CLEVBREQ7O1VBQ3BCLDhCQURvQjtBQUN0QixVQUFTLHFDQUFULENBRHNCO0FBRXRCLHFCQUFXLFdBQVg7OztBQUZzQixVQUt4QixZQUFZLElBQVosRUFBa0IsT0FBTyxJQUFQLENBQXRCOzs7QUFMNEIsVUFReEIsU0FBUyxJQUFULEtBQWtCLEtBQUssSUFBTCxJQUFhLFVBQVUsSUFBVixFQUFnQixPQUFPLFNBQVAsQ0FBbkQ7O0FBRUEsYUFBTyxTQUFTLEdBQVQsQ0FBYSxLQUFiLENBQVAsQ0FWNEI7S0FBOUI7OztBQUhRLFFBaUJKLFNBQVMsU0FBVCxFQUFvQjtBQUN0Qiw0QkFBZ0IsS0FBSyxZQUFMLENBQWtCLE1BQWxCLHVIQUFoQixJQUE0Qzs7Ozs7Ozs7Ozs7O1lBQW5DLFlBQW1DOztBQUMxQyxZQUFJLFdBQVcsS0FBWDs7QUFEc0MsWUFHdEMsQ0FBQyxRQUFELEVBQVcsU0FBZjs7O0FBSDBDLFlBTXRDLFNBQVMsSUFBVCxLQUFrQixLQUFLLElBQUwsRUFBVyxTQUFqQzs7QUFFQSxZQUFJLGFBQWEsU0FBUyxHQUFULENBQWEsSUFBYixDQUFiLENBUnNDO0FBUzFDLFlBQUksZUFBZSxTQUFmLEVBQTBCLE9BQU8sVUFBUCxDQUE5QjtPQVRGO0tBREY7O0FBY0EsV0FBTyxTQUFQLENBL0JROzs7QUFsUlMsc0JBb1RuQiwyQkFBUSxVQUFVLFNBQVM7OztBQUN6QixTQUFLLFNBQUwsQ0FBZSxPQUFmLENBQXVCLFVBQUMsQ0FBRCxFQUFJLENBQUo7YUFDckIsU0FBUyxJQUFULENBQWMsT0FBZCxFQUF1QixDQUF2QixFQUEwQixDQUExQjtLQURxQixDQUF2QixDQUR5Qjs7QUFJekIsU0FBSyxTQUFMLENBQWUsT0FBZixDQUF1QixpQkFBdUIsSUFBdkIsRUFBZ0M7VUFBN0IsNEJBQTZCO1VBQWxCLG9CQUFrQjs7QUFDckQsVUFBTSxhQUFhLFdBQWI7O0FBRCtDLGNBR3JELENBQVMsSUFBVCxDQUFjLE9BQWQsRUFBdUIsY0FBYyxXQUFXLEdBQVgsQ0FBZSxLQUFmLENBQWQsRUFBcUMsSUFBNUQsU0FIcUQ7S0FBaEMsQ0FBdkIsQ0FKeUI7O0FBVXpCLFNBQUssWUFBTCxDQUFrQixPQUFsQixDQUEwQjthQUFPLE1BQU0sT0FBTixDQUFjLFVBQUMsQ0FBRCxFQUFJLENBQUo7ZUFDN0MsTUFBTSxTQUFOLElBQW1CLFNBQVMsSUFBVCxDQUFjLE9BQWQsRUFBdUIsQ0FBdkIsRUFBMEIsQ0FBMUIsUUFBbkI7T0FENkM7S0FBckIsQ0FBMUIsQ0FWeUI7Ozs7O0FBcFRSLHNCQW9VbkIscUNBQWEsU0FBUyxhQUFhO0FBQ2pDLFlBQVEsTUFBUixDQUFlO0FBQ2IsWUFBTSxZQUFZLE1BQVo7QUFDTixlQUFTLHVDQUFvQyxZQUFZLE1BQVosQ0FBbUIsS0FBbkIsU0FBcEMsU0FDTSxLQUFLLE1BQUwsQ0FDSSxHQURKLENBQ1E7ZUFBUSxFQUFFLE9BQUYsVUFBYyxFQUFFLFVBQUYsU0FBZ0IsRUFBRSxNQUFGO09BQXRDLENBRFIsQ0FFSSxJQUZKLENBRVMsSUFGVCxFQUROO0tBRlgsRUFEaUM7OztlQXBVaEI7O3dCQVVGO0FBQUUsYUFBTyxLQUFLLEdBQUwsQ0FBUyxTQUFULEtBQXVCLElBQXZCLENBQVQ7Ozs7O3dCQUVOO0FBQ1QsVUFBSSxPQUFPLEtBQUssU0FBTCxDQUFlLElBQWYsR0FBc0IsS0FBSyxTQUFMLENBQWUsSUFBZixDQUR4QjtBQUVULFdBQUssWUFBTCxDQUFrQixPQUFsQixDQUEwQjtlQUFPLFFBQVEsTUFBTSxJQUFOO09BQWYsQ0FBMUIsQ0FGUztBQUdULGFBQU8sSUFBUCxDQUhTOzs7O1NBWlE7Ozs7Ozs7Ozs7O0FBb1ZyQixTQUFTLFVBQVQsQ0FBb0IsZUFBcEIsRUFBK0M7QUFDN0MsTUFBTSxXQUFXLEVBQVg7OztBQUR1QztvQ0FBUDs7R0FBTzs7QUFJN0MsUUFBTSxJQUFOLENBQVcsYUFBSztBQUNkLFFBQUksQ0FBQyxFQUFFLGVBQUYsRUFBbUIsT0FBTyxLQUFQLENBQXhCOztBQUVBLFNBQUssSUFBSSxJQUFKLElBQVksZUFBakIsRUFBa0M7QUFDaEMsVUFBTSxNQUFNLGdCQUFnQixJQUFoQixFQUFzQixFQUFFLGVBQUYsQ0FBNUIsQ0FEMEI7QUFFaEMsVUFBSSxHQUFKLEVBQVM7QUFDUCxpQkFBUyxHQUFULEdBQWUsR0FBZixDQURPO09BQVQ7S0FGRjs7QUFPQSxXQUFPLElBQVAsQ0FWYztHQUFMLENBQVgsQ0FKNkM7O0FBaUI3QyxTQUFPLFFBQVAsQ0FqQjZDO0NBQS9DOztBQW9CQSxJQUFNLDJCQUEyQjtBQUMvQixTQUFPLFlBQVA7QUFDQSxVQUFRLGFBQVI7Q0FGSTs7Ozs7OztBQVVOLFNBQVMsWUFBVCxDQUFzQixRQUF0QixFQUFnQztBQUM5QixNQUFJLFlBQUo7OztBQUQ4QixVQUk5QixDQUFTLE9BQVQsQ0FBaUIsbUJBQVc7O0FBRTFCLFFBQUksUUFBUSxLQUFSLENBQWMsS0FBZCxDQUFvQixDQUFwQixFQUF1QixDQUF2QixNQUE4QixPQUE5QixFQUF1QyxPQUEzQztBQUNBLFFBQUk7QUFDRixZQUFNLFNBQVMsS0FBVCxDQUFlLFFBQVEsS0FBUixFQUFlLEVBQUUsUUFBUSxJQUFSLEVBQWhDLENBQU4sQ0FERTtLQUFKLENBRUUsT0FBTyxHQUFQLEVBQVk7O0tBQVo7R0FMYSxDQUFqQixDQUo4Qjs7QUFjOUIsU0FBTyxHQUFQLENBZDhCO0NBQWhDOzs7OztBQW9CQSxTQUFTLGFBQVQsQ0FBdUIsUUFBdkIsRUFBaUM7O0FBRS9CLE1BQU0sUUFBUSxFQUFSLENBRnlCO0FBRy9CLE9BQUssSUFBSSxJQUFJLENBQUosRUFBTyxJQUFJLFNBQVMsTUFBVCxFQUFpQixHQUFyQyxFQUEwQztBQUN4QyxRQUFNLFVBQVUsU0FBUyxDQUFULENBQVYsQ0FEa0M7QUFFeEMsUUFBSSxRQUFRLEtBQVIsQ0FBYyxLQUFkLENBQW9CLE9BQXBCLENBQUosRUFBa0MsTUFBbEM7QUFDQSxVQUFNLElBQU4sQ0FBVyxRQUFRLEtBQVIsQ0FBYyxJQUFkLEVBQVgsRUFId0M7R0FBMUM7OztBQUgrQixNQVV6QixjQUFjLE1BQU0sSUFBTixDQUFXLEdBQVgsRUFBZ0IsS0FBaEIsQ0FBc0IsdUNBQXRCLENBQWQsQ0FWeUI7QUFXL0IsTUFBSSxXQUFKLEVBQWlCO0FBQ2YsV0FBTztBQUNMLG1CQUFhLFlBQVksQ0FBWixDQUFiO0FBQ0EsWUFBTSxDQUFDO0FBQ0wsZUFBTyxZQUFZLENBQVosRUFBZSxXQUFmLEVBQVA7QUFDQSxxQkFBYSxZQUFZLENBQVosQ0FBYjtPQUZJLENBQU47S0FGRixDQURlO0dBQWpCO0NBWEY7Ozs7Ozs7OztBQTZCTyxTQUFTLHVCQUFULENBQWlDLE9BQWpDLEVBQTBDLFFBQTFDLEVBQW9EO0FBQ3pELFVBQVEsUUFBUSxJQUFSO0FBQ04sU0FBSyxZQUFMOztBQUNFLGVBQVMsT0FBVCxFQURGO0FBRUUsWUFGRjs7QUFERixTQUtPLGVBQUw7QUFDRSxjQUFRLFVBQVIsQ0FBbUIsT0FBbkIsQ0FBMkIsaUJBQWU7WUFBWixvQkFBWTs7QUFDeEMsZ0NBQXdCLEtBQXhCLEVBQStCLFFBQS9CLEVBRHdDO09BQWYsQ0FBM0IsQ0FERjtBQUlFLFlBSkY7O0FBTEYsU0FXTyxjQUFMO0FBQ0UsY0FBUSxRQUFSLENBQWlCLE9BQWpCLENBQXlCLFVBQUMsT0FBRCxFQUFhO0FBQ3BDLFlBQUksV0FBVyxJQUFYLEVBQWlCLE9BQXJCO0FBQ0EsZ0NBQXdCLE9BQXhCLEVBQWlDLFFBQWpDLEVBRm9DO09BQWIsQ0FBekIsQ0FERjtBQUtFLFlBTEY7QUFYRixHQUR5RDtDQUFwRCIsImZpbGUiOiJjb3JlL2dldEV4cG9ydHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ2VzNi1zeW1ib2wvaW1wbGVtZW50J1xuaW1wb3J0IE1hcCBmcm9tICdlczYtbWFwJ1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcydcblxuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0bydcbmltcG9ydCAqIGFzIGRvY3RyaW5lIGZyb20gJ2RvY3RyaW5lJ1xuXG5pbXBvcnQgcGFyc2UgZnJvbSAnLi9wYXJzZSdcbmltcG9ydCByZXNvbHZlIGZyb20gJy4vcmVzb2x2ZSdcbmltcG9ydCBpc0lnbm9yZWQgZnJvbSAnLi9pZ25vcmUnXG5cbmltcG9ydCB7IGhhc2hPYmplY3QgfSBmcm9tICcuL2hhc2gnXG5cbmNvbnN0IGV4cG9ydENhY2hlID0gbmV3IE1hcCgpXG5cbi8qKlxuICogZGV0ZWN0IGV4cG9ydHMgd2l0aG91dCBhIGZ1bGwgcGFyc2UuXG4gKiB1c2VkIHByaW1hcmlseSB0byBpZ25vcmUgdGhlIGltcG9ydC9pZ25vcmUgc2V0dGluZywgaWlmIGl0IGxvb2tzIGxpa2VcbiAqIHRoZXJlIG1pZ2h0IGJlIHNvbWV0aGluZyB0aGVyZSAoaS5lLiwganNuZXh0Om1haW4gaXMgc2V0KS5cbiAqIEB0eXBlIHtSZWdFeHB9XG4gKi9cbmNvbnN0IGhhc0V4cG9ydHMgPSBuZXcgUmVnRXhwKCcoXnxbXFxcXG47XSlcXFxccypleHBvcnRcXFxcc1tcXFxcd3sqXScpXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV4cG9ydE1hcCB7XG4gIGNvbnN0cnVjdG9yKHBhdGgpIHtcbiAgICB0aGlzLnBhdGggPSBwYXRoXG4gICAgdGhpcy5uYW1lc3BhY2UgPSBuZXcgTWFwKClcbiAgICAvLyB0b2RvOiByZXN0cnVjdHVyZSB0byBrZXkgb24gcGF0aCwgdmFsdWUgaXMgcmVzb2x2ZXIgKyBtYXAgb2YgbmFtZXNcbiAgICB0aGlzLnJlZXhwb3J0cyA9IG5ldyBNYXAoKVxuICAgIHRoaXMuZGVwZW5kZW5jaWVzID0gbmV3IE1hcCgpXG4gICAgdGhpcy5lcnJvcnMgPSBbXVxuICB9XG5cbiAgZ2V0IGhhc0RlZmF1bHQoKSB7IHJldHVybiB0aGlzLmdldCgnZGVmYXVsdCcpICE9IG51bGwgfSAvLyBzdHJvbmdlciB0aGFuIHRoaXMuaGFzXG5cbiAgZ2V0IHNpemUoKSB7XG4gICAgbGV0IHNpemUgPSB0aGlzLm5hbWVzcGFjZS5zaXplICsgdGhpcy5yZWV4cG9ydHMuc2l6ZVxuICAgIHRoaXMuZGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IHNpemUgKz0gZGVwKCkuc2l6ZSlcbiAgICByZXR1cm4gc2l6ZVxuICB9XG5cbiAgc3RhdGljIGdldChzb3VyY2UsIGNvbnRleHQpIHtcblxuICAgIHZhciBwYXRoID0gcmVzb2x2ZShzb3VyY2UsIGNvbnRleHQpXG4gICAgaWYgKHBhdGggPT0gbnVsbCkgcmV0dXJuIG51bGxcblxuICAgIHJldHVybiBFeHBvcnRNYXAuZm9yKHBhdGgsIGNvbnRleHQpXG4gIH1cblxuICBzdGF0aWMgZm9yKHBhdGgsIGNvbnRleHQpIHtcbiAgICBsZXQgZXhwb3J0TWFwXG5cbiAgICBjb25zdCBjYWNoZUtleSA9IGhhc2hPYmplY3QoY3JlYXRlSGFzaCgnc2hhMjU2JyksIHtcbiAgICAgIHNldHRpbmdzOiBjb250ZXh0LnNldHRpbmdzLFxuICAgICAgcGFyc2VyUGF0aDogY29udGV4dC5wYXJzZXJQYXRoLFxuICAgICAgcGFyc2VyT3B0aW9uczogY29udGV4dC5wYXJzZXJPcHRpb25zLFxuICAgICAgcGF0aCxcbiAgICB9KS5kaWdlc3QoJ2hleCcpXG5cbiAgICBleHBvcnRNYXAgPSBleHBvcnRDYWNoZS5nZXQoY2FjaGVLZXkpXG5cbiAgICAvLyByZXR1cm4gY2FjaGVkIGlnbm9yZVxuICAgIGlmIChleHBvcnRNYXAgPT09IG51bGwpIHJldHVybiBudWxsXG5cbiAgICBjb25zdCBzdGF0cyA9IGZzLnN0YXRTeW5jKHBhdGgpXG4gICAgaWYgKGV4cG9ydE1hcCAhPSBudWxsKSB7XG4gICAgICAvLyBkYXRlIGVxdWFsaXR5IGNoZWNrXG4gICAgICBpZiAoZXhwb3J0TWFwLm10aW1lIC0gc3RhdHMubXRpbWUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGV4cG9ydE1hcFxuICAgICAgfVxuICAgICAgLy8gZnV0dXJlOiBjaGVjayBjb250ZW50IGVxdWFsaXR5P1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMocGF0aCwgeyBlbmNvZGluZzogJ3V0ZjgnIH0pXG5cbiAgICAvLyBjaGVjayBmb3IgYW5kIGNhY2hlIGlnbm9yZVxuICAgIGlmIChpc0lnbm9yZWQocGF0aCwgY29udGV4dCkgJiYgIWhhc0V4cG9ydHMudGVzdChjb250ZW50KSkge1xuICAgICAgZXhwb3J0Q2FjaGUuc2V0KGNhY2hlS2V5LCBudWxsKVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBleHBvcnRNYXAgPSBFeHBvcnRNYXAucGFyc2UocGF0aCwgY29udGVudCwgY29udGV4dClcbiAgICBleHBvcnRNYXAubXRpbWUgPSBzdGF0cy5tdGltZVxuXG4gICAgZXhwb3J0Q2FjaGUuc2V0KGNhY2hlS2V5LCBleHBvcnRNYXApXG4gICAgcmV0dXJuIGV4cG9ydE1hcFxuICB9XG5cbiAgc3RhdGljIHBhcnNlKHBhdGgsIGNvbnRlbnQsIGNvbnRleHQpIHtcbiAgICB2YXIgbSA9IG5ldyBFeHBvcnRNYXAocGF0aClcblxuICAgIHRyeSB7XG4gICAgICB2YXIgYXN0ID0gcGFyc2UoY29udGVudCwgY29udGV4dClcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIG0uZXJyb3JzLnB1c2goZXJyKVxuICAgICAgcmV0dXJuIG0gLy8gY2FuJ3QgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBkb2NzdHlsZSA9IChjb250ZXh0LnNldHRpbmdzICYmIGNvbnRleHQuc2V0dGluZ3NbJ2ltcG9ydC9kb2NzdHlsZSddKSB8fCBbJ2pzZG9jJ11cbiAgICBjb25zdCBkb2NTdHlsZVBhcnNlcnMgPSB7fVxuICAgIGRvY3N0eWxlLmZvckVhY2goc3R5bGUgPT4ge1xuICAgICAgZG9jU3R5bGVQYXJzZXJzW3N0eWxlXSA9IGF2YWlsYWJsZURvY1N0eWxlUGFyc2Vyc1tzdHlsZV1cbiAgICB9KVxuXG4gICAgLy8gYXR0ZW1wdCB0byBjb2xsZWN0IG1vZHVsZSBkb2NcbiAgICBhc3QuY29tbWVudHMuc29tZShjID0+IHtcbiAgICAgIGlmIChjLnR5cGUgIT09ICdCbG9jaycpIHJldHVybiBmYWxzZVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZG9jID0gZG9jdHJpbmUucGFyc2UoYy52YWx1ZSwgeyB1bndyYXA6IHRydWUgfSlcbiAgICAgICAgaWYgKGRvYy50YWdzLnNvbWUodCA9PiB0LnRpdGxlID09PSAnbW9kdWxlJykpIHtcbiAgICAgICAgICBtLmRvYyA9IGRvY1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycikgeyAvKiBpZ25vcmUgKi8gfVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSlcblxuICAgIGNvbnN0IG5hbWVzcGFjZXMgPSBuZXcgTWFwKClcblxuICAgIGZ1bmN0aW9uIHJlbW90ZVBhdGgobm9kZSkge1xuICAgICAgcmV0dXJuIHJlc29sdmUucmVsYXRpdmUobm9kZS5zb3VyY2UudmFsdWUsIHBhdGgsIGNvbnRleHQuc2V0dGluZ3MpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZUltcG9ydChub2RlKSB7XG4gICAgICBjb25zdCBycCA9IHJlbW90ZVBhdGgobm9kZSlcbiAgICAgIGlmIChycCA9PSBudWxsKSByZXR1cm4gbnVsbFxuICAgICAgcmV0dXJuIEV4cG9ydE1hcC5mb3IocnAsIGNvbnRleHQpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0TmFtZXNwYWNlKGlkZW50aWZpZXIpIHtcbiAgICAgIGlmICghbmFtZXNwYWNlcy5oYXMoaWRlbnRpZmllci5uYW1lKSkgcmV0dXJuXG5cbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlSW1wb3J0KG5hbWVzcGFjZXMuZ2V0KGlkZW50aWZpZXIubmFtZSkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkTmFtZXNwYWNlKG9iamVjdCwgaWRlbnRpZmllcikge1xuICAgICAgY29uc3QgbnNmbiA9IGdldE5hbWVzcGFjZShpZGVudGlmaWVyKVxuICAgICAgaWYgKG5zZm4pIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwgJ25hbWVzcGFjZScsIHsgZ2V0OiBuc2ZuIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmplY3RcbiAgICB9XG5cblxuICAgIGFzdC5ib2R5LmZvckVhY2goZnVuY3Rpb24gKG4pIHtcblxuICAgICAgaWYgKG4udHlwZSA9PT0gJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbicpIHtcbiAgICAgICAgY29uc3QgZXhwb3J0TWV0YSA9IGNhcHR1cmVEb2MoZG9jU3R5bGVQYXJzZXJzLCBuKVxuICAgICAgICBpZiAobi5kZWNsYXJhdGlvbi50eXBlID09PSAnSWRlbnRpZmllcicpIHtcbiAgICAgICAgICBhZGROYW1lc3BhY2UoZXhwb3J0TWV0YSwgbi5kZWNsYXJhdGlvbilcbiAgICAgICAgfVxuICAgICAgICBtLm5hbWVzcGFjZS5zZXQoJ2RlZmF1bHQnLCBleHBvcnRNZXRhKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKG4udHlwZSA9PT0gJ0V4cG9ydEFsbERlY2xhcmF0aW9uJykge1xuICAgICAgICBsZXQgcmVtb3RlTWFwID0gcmVtb3RlUGF0aChuKVxuICAgICAgICBpZiAocmVtb3RlTWFwID09IG51bGwpIHJldHVyblxuICAgICAgICBtLmRlcGVuZGVuY2llcy5zZXQocmVtb3RlTWFwLCAoKSA9PiBFeHBvcnRNYXAuZm9yKHJlbW90ZU1hcCwgY29udGV4dCkpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBjYXB0dXJlIG5hbWVzcGFjZXMgaW4gY2FzZSBvZiBsYXRlciBleHBvcnRcbiAgICAgIGlmIChuLnR5cGUgPT09ICdJbXBvcnREZWNsYXJhdGlvbicpIHtcbiAgICAgICAgbGV0IG5zXG4gICAgICAgIGlmIChuLnNwZWNpZmllcnMuc29tZShzID0+IHMudHlwZSA9PT0gJ0ltcG9ydE5hbWVzcGFjZVNwZWNpZmllcicgJiYgKG5zID0gcykpKSB7XG4gICAgICAgICAgbmFtZXNwYWNlcy5zZXQobnMubG9jYWwubmFtZSwgbilcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKG4udHlwZSA9PT0gJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nKXtcbiAgICAgICAgLy8gY2FwdHVyZSBkZWNsYXJhdGlvblxuICAgICAgICBpZiAobi5kZWNsYXJhdGlvbiAhPSBudWxsKSB7XG4gICAgICAgICAgc3dpdGNoIChuLmRlY2xhcmF0aW9uLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Z1bmN0aW9uRGVjbGFyYXRpb24nOlxuICAgICAgICAgICAgY2FzZSAnQ2xhc3NEZWNsYXJhdGlvbic6XG4gICAgICAgICAgICBjYXNlICdUeXBlQWxpYXMnOiAvLyBmbG93dHlwZSB3aXRoIGJhYmVsLWVzbGludCBwYXJzZXJcbiAgICAgICAgICAgICAgbS5uYW1lc3BhY2Uuc2V0KG4uZGVjbGFyYXRpb24uaWQubmFtZSwgY2FwdHVyZURvYyhkb2NTdHlsZVBhcnNlcnMsIG4pKVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgY2FzZSAnVmFyaWFibGVEZWNsYXJhdGlvbic6XG4gICAgICAgICAgICAgIG4uZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zLmZvckVhY2goKGQpID0+XG4gICAgICAgICAgICAgICAgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUoZC5pZCwgaWQgPT5cbiAgICAgICAgICAgICAgICAgIG0ubmFtZXNwYWNlLnNldChpZC5uYW1lLCBjYXB0dXJlRG9jKGRvY1N0eWxlUGFyc2VycywgZCwgbikpKSlcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBuLnNwZWNpZmllcnMuZm9yRWFjaCgocykgPT4ge1xuICAgICAgICAgIGNvbnN0IGV4cG9ydE1ldGEgPSB7fVxuICAgICAgICAgIGxldCBsb2NhbFxuXG4gICAgICAgICAgc3dpdGNoIChzLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0V4cG9ydERlZmF1bHRTcGVjaWZpZXInOlxuICAgICAgICAgICAgICBpZiAoIW4uc291cmNlKSByZXR1cm5cbiAgICAgICAgICAgICAgbG9jYWwgPSAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIGNhc2UgJ0V4cG9ydE5hbWVzcGFjZVNwZWNpZmllcic6XG4gICAgICAgICAgICAgIG0ubmFtZXNwYWNlLnNldChzLmV4cG9ydGVkLm5hbWUsIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRNZXRhLCAnbmFtZXNwYWNlJywge1xuICAgICAgICAgICAgICAgIGdldCgpIHsgcmV0dXJuIHJlc29sdmVJbXBvcnQobikgfSxcbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgY2FzZSAnRXhwb3J0U3BlY2lmaWVyJzpcbiAgICAgICAgICAgICAgaWYgKCFuLnNvdXJjZSkge1xuICAgICAgICAgICAgICAgIG0ubmFtZXNwYWNlLnNldChzLmV4cG9ydGVkLm5hbWUsIGFkZE5hbWVzcGFjZShleHBvcnRNZXRhLCBzLmxvY2FsKSlcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvLyBlbHNlIGZhbGxzIHRocm91Z2hcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIGxvY2FsID0gcy5sb2NhbC5uYW1lXG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gdG9kbzogSlNEb2NcbiAgICAgICAgICBtLnJlZXhwb3J0cy5zZXQocy5leHBvcnRlZC5uYW1lLCB7IGxvY2FsLCBnZXRJbXBvcnQ6ICgpID0+IHJlc29sdmVJbXBvcnQobikgfSlcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIG1cbiAgfVxuXG4gIC8qKlxuICAgKiBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBjaGVjayBleHBsaWNpdGx5IHJlLWV4cG9ydGVkIG5hbWVzIGZvciBleGlzdGVuY2VcbiAgICogaW4gdGhlIGJhc2UgbmFtZXNwYWNlLCBidXQgaXQgd2lsbCBleHBhbmQgYWxsIGBleHBvcnQgKiBmcm9tICcuLi4nYCBleHBvcnRzXG4gICAqIGlmIG5vdCBmb3VuZCBpbiB0aGUgZXhwbGljaXQgbmFtZXNwYWNlLlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9ICBuYW1lXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgaWYgYG5hbWVgIGlzIGV4cG9ydGVkIGJ5IHRoaXMgbW9kdWxlLlxuICAgKi9cbiAgaGFzKG5hbWUpIHtcbiAgICBpZiAodGhpcy5uYW1lc3BhY2UuaGFzKG5hbWUpKSByZXR1cm4gdHJ1ZVxuICAgIGlmICh0aGlzLnJlZXhwb3J0cy5oYXMobmFtZSkpIHJldHVybiB0cnVlXG5cbiAgICAvLyBkZWZhdWx0IGV4cG9ydHMgbXVzdCBiZSBleHBsaWNpdGx5IHJlLWV4cG9ydGVkICgjMzI4KVxuICAgIGlmIChuYW1lICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgIGZvciAobGV0IGRlcCBvZiB0aGlzLmRlcGVuZGVuY2llcy52YWx1ZXMoKSkge1xuICAgICAgICBsZXQgaW5uZXJNYXAgPSBkZXAoKVxuXG4gICAgICAgIC8vIHRvZG86IHJlcG9ydCBhcyB1bnJlc29sdmVkP1xuICAgICAgICBpZiAoIWlubmVyTWFwKSBjb250aW51ZVxuXG4gICAgICAgIGlmIChpbm5lck1hcC5oYXMobmFtZSkpIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogZW5zdXJlIHRoYXQgaW1wb3J0ZWQgbmFtZSBmdWxseSByZXNvbHZlcy5cbiAgICogQHBhcmFtICB7W3R5cGVdfSAgbmFtZSBbZGVzY3JpcHRpb25dXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59ICAgICAgW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgaGFzRGVlcChuYW1lKSB7XG4gICAgaWYgKHRoaXMubmFtZXNwYWNlLmhhcyhuYW1lKSkgcmV0dXJuIHsgZm91bmQ6IHRydWUsIHBhdGg6IFt0aGlzXSB9XG5cbiAgICBpZiAodGhpcy5yZWV4cG9ydHMuaGFzKG5hbWUpKSB7XG4gICAgICBjb25zdCB7IGxvY2FsLCBnZXRJbXBvcnQgfSA9IHRoaXMucmVleHBvcnRzLmdldChuYW1lKVxuICAgICAgICAgICwgaW1wb3J0ZWQgPSBnZXRJbXBvcnQoKVxuXG4gICAgICAvLyBpZiBpbXBvcnQgaXMgaWdub3JlZCwgcmV0dXJuIGV4cGxpY2l0ICdudWxsJ1xuICAgICAgaWYgKGltcG9ydGVkID09IG51bGwpIHJldHVybiB7IGZvdW5kOiB0cnVlLCBwYXRoOiBbdGhpc10gfVxuXG4gICAgICAvLyBzYWZlZ3VhcmQgYWdhaW5zdCBjeWNsZXMsIG9ubHkgaWYgbmFtZSBtYXRjaGVzXG4gICAgICBpZiAoaW1wb3J0ZWQucGF0aCA9PT0gdGhpcy5wYXRoICYmIGxvY2FsID09PSBuYW1lKSByZXR1cm4geyBmb3VuZDogZmFsc2UsIHBhdGg6IFt0aGlzXSB9XG5cbiAgICAgIGNvbnN0IGRlZXAgPSBpbXBvcnRlZC5oYXNEZWVwKGxvY2FsKVxuICAgICAgZGVlcC5wYXRoLnVuc2hpZnQodGhpcylcblxuICAgICAgcmV0dXJuIGRlZXBcbiAgICB9XG5cblxuICAgIC8vIGRlZmF1bHQgZXhwb3J0cyBtdXN0IGJlIGV4cGxpY2l0bHkgcmUtZXhwb3J0ZWQgKCMzMjgpXG4gICAgaWYgKG5hbWUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgZm9yIChsZXQgZGVwIG9mIHRoaXMuZGVwZW5kZW5jaWVzLnZhbHVlcygpKSB7XG4gICAgICAgIGxldCBpbm5lck1hcCA9IGRlcCgpXG4gICAgICAgIC8vIHRvZG86IHJlcG9ydCBhcyB1bnJlc29sdmVkP1xuICAgICAgICBpZiAoIWlubmVyTWFwKSBjb250aW51ZVxuXG4gICAgICAgIC8vIHNhZmVndWFyZCBhZ2FpbnN0IGN5Y2xlc1xuICAgICAgICBpZiAoaW5uZXJNYXAucGF0aCA9PT0gdGhpcy5wYXRoKSBjb250aW51ZVxuXG4gICAgICAgIGxldCBpbm5lclZhbHVlID0gaW5uZXJNYXAuaGFzRGVlcChuYW1lKVxuICAgICAgICBpZiAoaW5uZXJWYWx1ZS5mb3VuZCkge1xuICAgICAgICAgIGlubmVyVmFsdWUucGF0aC51bnNoaWZ0KHRoaXMpXG4gICAgICAgICAgcmV0dXJuIGlubmVyVmFsdWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IGZvdW5kOiBmYWxzZSwgcGF0aDogW3RoaXNdIH1cbiAgfVxuXG4gIGdldChuYW1lKSB7XG4gICAgaWYgKHRoaXMubmFtZXNwYWNlLmhhcyhuYW1lKSkgcmV0dXJuIHRoaXMubmFtZXNwYWNlLmdldChuYW1lKVxuXG4gICAgaWYgKHRoaXMucmVleHBvcnRzLmhhcyhuYW1lKSkge1xuICAgICAgY29uc3QgeyBsb2NhbCwgZ2V0SW1wb3J0IH0gPSB0aGlzLnJlZXhwb3J0cy5nZXQobmFtZSlcbiAgICAgICAgICAsIGltcG9ydGVkID0gZ2V0SW1wb3J0KClcblxuICAgICAgLy8gaWYgaW1wb3J0IGlzIGlnbm9yZWQsIHJldHVybiBleHBsaWNpdCAnbnVsbCdcbiAgICAgIGlmIChpbXBvcnRlZCA9PSBudWxsKSByZXR1cm4gbnVsbFxuXG4gICAgICAvLyBzYWZlZ3VhcmQgYWdhaW5zdCBjeWNsZXMsIG9ubHkgaWYgbmFtZSBtYXRjaGVzXG4gICAgICBpZiAoaW1wb3J0ZWQucGF0aCA9PT0gdGhpcy5wYXRoICYmIGxvY2FsID09PSBuYW1lKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICAgIHJldHVybiBpbXBvcnRlZC5nZXQobG9jYWwpXG4gICAgfVxuXG4gICAgLy8gZGVmYXVsdCBleHBvcnRzIG11c3QgYmUgZXhwbGljaXRseSByZS1leHBvcnRlZCAoIzMyOClcbiAgICBpZiAobmFtZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICBmb3IgKGxldCBkZXAgb2YgdGhpcy5kZXBlbmRlbmNpZXMudmFsdWVzKCkpIHtcbiAgICAgICAgbGV0IGlubmVyTWFwID0gZGVwKClcbiAgICAgICAgLy8gdG9kbzogcmVwb3J0IGFzIHVucmVzb2x2ZWQ/XG4gICAgICAgIGlmICghaW5uZXJNYXApIGNvbnRpbnVlXG5cbiAgICAgICAgLy8gc2FmZWd1YXJkIGFnYWluc3QgY3ljbGVzXG4gICAgICAgIGlmIChpbm5lck1hcC5wYXRoID09PSB0aGlzLnBhdGgpIGNvbnRpbnVlXG5cbiAgICAgICAgbGV0IGlubmVyVmFsdWUgPSBpbm5lck1hcC5nZXQobmFtZSlcbiAgICAgICAgaWYgKGlubmVyVmFsdWUgIT09IHVuZGVmaW5lZCkgcmV0dXJuIGlubmVyVmFsdWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBmb3JFYWNoKGNhbGxiYWNrLCB0aGlzQXJnKSB7XG4gICAgdGhpcy5uYW1lc3BhY2UuZm9yRWFjaCgodiwgbikgPT5cbiAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdiwgbiwgdGhpcykpXG5cbiAgICB0aGlzLnJlZXhwb3J0cy5mb3JFYWNoKCh7IGdldEltcG9ydCwgbG9jYWwgfSwgbmFtZSkgPT4ge1xuICAgICAgY29uc3QgcmVleHBvcnRlZCA9IGdldEltcG9ydCgpXG4gICAgICAvLyBjYW4ndCBsb29rIHVwIG1ldGEgZm9yIGlnbm9yZWQgcmUtZXhwb3J0cyAoIzM0OClcbiAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgcmVleHBvcnRlZCAmJiByZWV4cG9ydGVkLmdldChsb2NhbCksIG5hbWUsIHRoaXMpXG4gICAgfSlcblxuICAgIHRoaXMuZGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IGRlcCgpLmZvckVhY2goKHYsIG4pID0+XG4gICAgICBuICE9PSAnZGVmYXVsdCcgJiYgY2FsbGJhY2suY2FsbCh0aGlzQXJnLCB2LCBuLCB0aGlzKSkpXG4gIH1cblxuICAvLyB0b2RvOiBrZXlzLCB2YWx1ZXMsIGVudHJpZXM/XG5cbiAgcmVwb3J0RXJyb3JzKGNvbnRleHQsIGRlY2xhcmF0aW9uKSB7XG4gICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgbm9kZTogZGVjbGFyYXRpb24uc291cmNlLFxuICAgICAgbWVzc2FnZTogYFBhcnNlIGVycm9ycyBpbiBpbXBvcnRlZCBtb2R1bGUgJyR7ZGVjbGFyYXRpb24uc291cmNlLnZhbHVlfSc6IGAgK1xuICAgICAgICAgICAgICAgICAgYCR7dGhpcy5lcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoZSA9PiBgJHtlLm1lc3NhZ2V9ICgke2UubGluZU51bWJlcn06JHtlLmNvbHVtbn0pYClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcsICcpfWAsXG4gICAgfSlcbiAgfVxufVxuXG4vKipcbiAqIHBhcnNlIGRvY3MgZnJvbSB0aGUgZmlyc3Qgbm9kZSB0aGF0IGhhcyBsZWFkaW5nIGNvbW1lbnRzXG4gKiBAcGFyYW0gIHsuLi5bdHlwZV19IG5vZGVzIFtkZXNjcmlwdGlvbl1cbiAqIEByZXR1cm4ge3tkb2M6IG9iamVjdH19XG4gKi9cbmZ1bmN0aW9uIGNhcHR1cmVEb2MoZG9jU3R5bGVQYXJzZXJzLCAuLi5ub2Rlcykge1xuICBjb25zdCBtZXRhZGF0YSA9IHt9XG5cbiAgLy8gJ3NvbWUnIHNob3J0LWNpcmN1aXRzIG9uIGZpcnN0ICd0cnVlJ1xuICBub2Rlcy5zb21lKG4gPT4ge1xuICAgIGlmICghbi5sZWFkaW5nQ29tbWVudHMpIHJldHVybiBmYWxzZVxuXG4gICAgZm9yIChsZXQgbmFtZSBpbiBkb2NTdHlsZVBhcnNlcnMpIHtcbiAgICAgIGNvbnN0IGRvYyA9IGRvY1N0eWxlUGFyc2Vyc1tuYW1lXShuLmxlYWRpbmdDb21tZW50cylcbiAgICAgIGlmIChkb2MpIHtcbiAgICAgICAgbWV0YWRhdGEuZG9jID0gZG9jXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfSlcblxuICByZXR1cm4gbWV0YWRhdGFcbn1cblxuY29uc3QgYXZhaWxhYmxlRG9jU3R5bGVQYXJzZXJzID0ge1xuICBqc2RvYzogY2FwdHVyZUpzRG9jLFxuICB0b21kb2M6IGNhcHR1cmVUb21Eb2MsXG59XG5cbi8qKlxuICogcGFyc2UgSlNEb2MgZnJvbSBsZWFkaW5nIGNvbW1lbnRzXG4gKiBAcGFyYW0gIHsuLi5bdHlwZV19IGNvbW1lbnRzIFtkZXNjcmlwdGlvbl1cbiAqIEByZXR1cm4ge3tkb2M6IG9iamVjdH19XG4gKi9cbmZ1bmN0aW9uIGNhcHR1cmVKc0RvYyhjb21tZW50cykge1xuICBsZXQgZG9jXG5cbiAgLy8gY2FwdHVyZSBYU0RvY1xuICBjb21tZW50cy5mb3JFYWNoKGNvbW1lbnQgPT4ge1xuICAgIC8vIHNraXAgbm9uLWJsb2NrIGNvbW1lbnRzXG4gICAgaWYgKGNvbW1lbnQudmFsdWUuc2xpY2UoMCwgNCkgIT09ICcqXFxuIConKSByZXR1cm5cbiAgICB0cnkge1xuICAgICAgZG9jID0gZG9jdHJpbmUucGFyc2UoY29tbWVudC52YWx1ZSwgeyB1bndyYXA6IHRydWUgfSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8qIGRvbid0IGNhcmUsIGZvciBub3c/IG1heWJlIGFkZCB0byBgZXJyb3JzP2AgKi9cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIGRvY1xufVxuXG4vKipcbiAgKiBwYXJzZSBUb21Eb2Mgc2VjdGlvbiBmcm9tIGNvbW1lbnRzXG4gICovXG5mdW5jdGlvbiBjYXB0dXJlVG9tRG9jKGNvbW1lbnRzKSB7XG4gIC8vIGNvbGxlY3QgbGluZXMgdXAgdG8gZmlyc3QgcGFyYWdyYXBoIGJyZWFrXG4gIGNvbnN0IGxpbmVzID0gW11cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb21tZW50cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNvbW1lbnQgPSBjb21tZW50c1tpXVxuICAgIGlmIChjb21tZW50LnZhbHVlLm1hdGNoKC9eXFxzKiQvKSkgYnJlYWtcbiAgICBsaW5lcy5wdXNoKGNvbW1lbnQudmFsdWUudHJpbSgpKVxuICB9XG5cbiAgLy8gcmV0dXJuIGRvY3RyaW5lLWxpa2Ugb2JqZWN0XG4gIGNvbnN0IHN0YXR1c01hdGNoID0gbGluZXMuam9pbignICcpLm1hdGNoKC9eKFB1YmxpY3xJbnRlcm5hbHxEZXByZWNhdGVkKTpcXHMqKC4rKS8pXG4gIGlmIChzdGF0dXNNYXRjaCkge1xuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmlwdGlvbjogc3RhdHVzTWF0Y2hbMl0sXG4gICAgICB0YWdzOiBbe1xuICAgICAgICB0aXRsZTogc3RhdHVzTWF0Y2hbMV0udG9Mb3dlckNhc2UoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHN0YXR1c01hdGNoWzJdLFxuICAgICAgfV0sXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVHJhdmVyc2UgYSBwYXR0ZXJuL2lkZW50aWZpZXIgbm9kZSwgY2FsbGluZyAnY2FsbGJhY2snXG4gKiBmb3IgZWFjaCBsZWFmIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0gIHtub2RlfSAgIHBhdHRlcm5cbiAqIEBwYXJhbSAge0Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHJldHVybiB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlY3Vyc2l2ZVBhdHRlcm5DYXB0dXJlKHBhdHRlcm4sIGNhbGxiYWNrKSB7XG4gIHN3aXRjaCAocGF0dGVybi50eXBlKSB7XG4gICAgY2FzZSAnSWRlbnRpZmllcic6IC8vIGJhc2UgY2FzZVxuICAgICAgY2FsbGJhY2socGF0dGVybilcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlICdPYmplY3RQYXR0ZXJuJzpcbiAgICAgIHBhdHRlcm4ucHJvcGVydGllcy5mb3JFYWNoKCh7IHZhbHVlIH0pID0+IHtcbiAgICAgICAgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUodmFsdWUsIGNhbGxiYWNrKVxuICAgICAgfSlcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlICdBcnJheVBhdHRlcm4nOlxuICAgICAgcGF0dGVybi5lbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50ID09IG51bGwpIHJldHVyblxuICAgICAgICByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShlbGVtZW50LCBjYWxsYmFjaylcbiAgICAgIH0pXG4gICAgICBicmVha1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,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QUE3QixFQUFxQyxHQUFyQyxFQUEwQztBQUN4QyxRQUFNLFVBQVUsU0FBUyxDQUFULENBQWhCO0FBQ0EsUUFBSSxRQUFRLEtBQVIsQ0FBYyxLQUFkLENBQW9CLE9BQXBCLENBQUosRUFBa0M7QUFDbEMsVUFBTSxJQUFOLENBQVcsUUFBUSxLQUFSLENBQWMsSUFBZCxFQUFYO0FBQ0Q7OztBQUdELE1BQU0sY0FBYyxNQUFNLElBQU4sQ0FBVyxHQUFYLEVBQWdCLEtBQWhCLENBQXNCLHVDQUF0QixDQUFwQjtBQUNBLE1BQUksV0FBSixFQUFpQjtBQUNmLFdBQU87QUFDTCxtQkFBYSxZQUFZLENBQVosQ0FEUjtBQUVMLFlBQU0sQ0FBQztBQUNMLGVBQU8sWUFBWSxDQUFaLEVBQWUsV0FBZixFQURGO0FBRUwscUJBQWEsWUFBWSxDQUFaO0FBRlIsT0FBRDtBQUZELEtBQVA7QUFPRDtBQUNGOzs7Ozs7Ozs7QUFTTSxTQUFTLHVCQUFULENBQWlDLE9BQWpDLEVBQTBDLFFBQTFDLEVBQW9EO0FBQ3pELFVBQVEsUUFBUSxJQUFoQjtBQUNFLFNBQUssWUFBTDs7QUFDRSxlQUFTLE9BQVQ7QUFDQTs7QUFFRixTQUFLLGVBQUw7QUFDRSxjQUFRLFVBQVIsQ0FBbUIsT0FBbkIsQ0FBMkIsaUJBQWU7QUFBQSxZQUFaLEtBQVksU0FBWixLQUFZOztBQUN4QyxnQ0FBd0IsS0FBeEIsRUFBK0IsUUFBL0I7QUFDRCxPQUZEO0FBR0E7O0FBRUYsU0FBSyxjQUFMO0FBQ0UsY0FBUSxRQUFSLENBQWlCLE9BQWpCLENBQXlCLFVBQUMsT0FBRCxFQUFhO0FBQ3BDLFlBQUksV0FBVyxJQUFmLEVBQXFCO0FBQ3JCLGdDQUF3QixPQUF4QixFQUFpQyxRQUFqQztBQUNELE9BSEQ7QUFJQTtBQWhCSjtBQWtCRCIsImZpbGUiOiJjb3JlL2dldEV4cG9ydHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ2VzNi1zeW1ib2wvaW1wbGVtZW50J1xuaW1wb3J0IE1hcCBmcm9tICdlczYtbWFwJ1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcydcblxuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0bydcbmltcG9ydCAqIGFzIGRvY3RyaW5lIGZyb20gJ2RvY3RyaW5lJ1xuXG5pbXBvcnQgcGFyc2UgZnJvbSAnLi9wYXJzZSdcbmltcG9ydCByZXNvbHZlIGZyb20gJy4vcmVzb2x2ZSdcbmltcG9ydCBpc0lnbm9yZWQgZnJvbSAnLi9pZ25vcmUnXG5cbmltcG9ydCB7IGhhc2hPYmplY3QgfSBmcm9tICcuL2hhc2gnXG5cbmNvbnN0IGV4cG9ydENhY2hlID0gbmV3IE1hcCgpXG5cbi8qKlxuICogZGV0ZWN0IGV4cG9ydHMgd2l0aG91dCBhIGZ1bGwgcGFyc2UuXG4gKiB1c2VkIHByaW1hcmlseSB0byBpZ25vcmUgdGhlIGltcG9ydC9pZ25vcmUgc2V0dGluZywgaWlmIGl0IGxvb2tzIGxpa2VcbiAqIHRoZXJlIG1pZ2h0IGJlIHNvbWV0aGluZyB0aGVyZSAoaS5lLiwganNuZXh0Om1haW4gaXMgc2V0KS5cbiAqIEB0eXBlIHtSZWdFeHB9XG4gKi9cbmNvbnN0IGhhc0V4cG9ydHMgPSBuZXcgUmVnRXhwKCcoXnxbXFxcXG47XSlcXFxccypleHBvcnRcXFxcc1tcXFxcd3sqXScpXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV4cG9ydE1hcCB7XG4gIGNvbnN0cnVjdG9yKHBhdGgpIHtcbiAgICB0aGlzLnBhdGggPSBwYXRoXG4gICAgdGhpcy5uYW1lc3BhY2UgPSBuZXcgTWFwKClcbiAgICAvLyB0b2RvOiByZXN0cnVjdHVyZSB0byBrZXkgb24gcGF0aCwgdmFsdWUgaXMgcmVzb2x2ZXIgKyBtYXAgb2YgbmFtZXNcbiAgICB0aGlzLnJlZXhwb3J0cyA9IG5ldyBNYXAoKVxuICAgIHRoaXMuZGVwZW5kZW5jaWVzID0gbmV3IE1hcCgpXG4gICAgdGhpcy5lcnJvcnMgPSBbXVxuICB9XG5cbiAgZ2V0IGhhc0RlZmF1bHQoKSB7IHJldHVybiB0aGlzLmdldCgnZGVmYXVsdCcpICE9IG51bGwgfSAvLyBzdHJvbmdlciB0aGFuIHRoaXMuaGFzXG5cbiAgZ2V0IHNpemUoKSB7XG4gICAgbGV0IHNpemUgPSB0aGlzLm5hbWVzcGFjZS5zaXplICsgdGhpcy5yZWV4cG9ydHMuc2l6ZVxuICAgIHRoaXMuZGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IHNpemUgKz0gZGVwKCkuc2l6ZSlcbiAgICByZXR1cm4gc2l6ZVxuICB9XG5cbiAgc3RhdGljIGdldChzb3VyY2UsIGNvbnRleHQpIHtcblxuICAgIHZhciBwYXRoID0gcmVzb2x2ZShzb3VyY2UsIGNvbnRleHQpXG4gICAgaWYgKHBhdGggPT0gbnVsbCkgcmV0dXJuIG51bGxcblxuICAgIHJldHVybiBFeHBvcnRNYXAuZm9yKHBhdGgsIGNvbnRleHQpXG4gIH1cblxuICBzdGF0aWMgZm9yKHBhdGgsIGNvbnRleHQpIHtcbiAgICBsZXQgZXhwb3J0TWFwXG5cbiAgICBjb25zdCBjYWNoZUtleSA9IGhhc2hPYmplY3QoY3JlYXRlSGFzaCgnc2hhMjU2JyksIHtcbiAgICAgIHNldHRpbmdzOiBjb250ZXh0LnNldHRpbmdzLFxuICAgICAgcGFyc2VyUGF0aDogY29udGV4dC5wYXJzZXJQYXRoLFxuICAgICAgcGFyc2VyT3B0aW9uczogY29udGV4dC5wYXJzZXJPcHRpb25zLFxuICAgICAgcGF0aCxcbiAgICB9KS5kaWdlc3QoJ2hleCcpXG5cbiAgICBleHBvcnRNYXAgPSBleHBvcnRDYWNoZS5nZXQoY2FjaGVLZXkpXG5cbiAgICAvLyByZXR1cm4gY2FjaGVkIGlnbm9yZVxuICAgIGlmIChleHBvcnRNYXAgPT09IG51bGwpIHJldHVybiBudWxsXG5cbiAgICBjb25zdCBzdGF0cyA9IGZzLnN0YXRTeW5jKHBhdGgpXG4gICAgaWYgKGV4cG9ydE1hcCAhPSBudWxsKSB7XG4gICAgICAvLyBkYXRlIGVxdWFsaXR5IGNoZWNrXG4gICAgICBpZiAoZXhwb3J0TWFwLm10aW1lIC0gc3RhdHMubXRpbWUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGV4cG9ydE1hcFxuICAgICAgfVxuICAgICAgLy8gZnV0dXJlOiBjaGVjayBjb250ZW50IGVxdWFsaXR5P1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMocGF0aCwgeyBlbmNvZGluZzogJ3V0ZjgnIH0pXG5cbiAgICAvLyBjaGVjayBmb3IgYW5kIGNhY2hlIGlnbm9yZVxuICAgIGlmIChpc0lnbm9yZWQocGF0aCwgY29udGV4dCkgJiYgIWhhc0V4cG9ydHMudGVzdChjb250ZW50KSkge1xuICAgICAgZXhwb3J0Q2FjaGUuc2V0KGNhY2hlS2V5LCBudWxsKVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBleHBvcnRNYXAgPSBFeHBvcnRNYXAucGFyc2UocGF0aCwgY29udGVudCwgY29udGV4dClcbiAgICBleHBvcnRNYXAubXRpbWUgPSBzdGF0cy5tdGltZVxuXG4gICAgZXhwb3J0Q2FjaGUuc2V0KGNhY2hlS2V5LCBleHBvcnRNYXApXG4gICAgcmV0dXJuIGV4cG9ydE1hcFxuICB9XG5cbiAgc3RhdGljIHBhcnNlKHBhdGgsIGNvbnRlbnQsIGNvbnRleHQpIHtcbiAgICB2YXIgbSA9IG5ldyBFeHBvcnRNYXAocGF0aClcblxuICAgIHRyeSB7XG4gICAgICB2YXIgYXN0ID0gcGFyc2UoY29udGVudCwgY29udGV4dClcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIG0uZXJyb3JzLnB1c2goZXJyKVxuICAgICAgcmV0dXJuIG0gLy8gY2FuJ3QgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBkb2NzdHlsZSA9IChjb250ZXh0LnNldHRpbmdzICYmIGNvbnRleHQuc2V0dGluZ3NbJ2ltcG9ydC9kb2NzdHlsZSddKSB8fCBbJ2pzZG9jJ11cbiAgICBjb25zdCBkb2NTdHlsZVBhcnNlcnMgPSB7fVxuICAgIGRvY3N0eWxlLmZvckVhY2goc3R5bGUgPT4ge1xuICAgICAgZG9jU3R5bGVQYXJzZXJzW3N0eWxlXSA9IGF2YWlsYWJsZURvY1N0eWxlUGFyc2Vyc1tzdHlsZV1cbiAgICB9KVxuXG4gICAgLy8gYXR0ZW1wdCB0byBjb2xsZWN0IG1vZHVsZSBkb2NcbiAgICBhc3QuY29tbWVudHMuc29tZShjID0+IHtcbiAgICAgIGlmIChjLnR5cGUgIT09ICdCbG9jaycpIHJldHVybiBmYWxzZVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZG9jID0gZG9jdHJpbmUucGFyc2UoYy52YWx1ZSwgeyB1bndyYXA6IHRydWUgfSlcbiAgICAgICAgaWYgKGRvYy50YWdzLnNvbWUodCA9PiB0LnRpdGxlID09PSAnbW9kdWxlJykpIHtcbiAgICAgICAgICBtLmRvYyA9IGRvY1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycikgeyAvKiBpZ25vcmUgKi8gfVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSlcblxuICAgIGNvbnN0IG5hbWVzcGFjZXMgPSBuZXcgTWFwKClcblxuICAgIGZ1bmN0aW9uIHJlbW90ZVBhdGgobm9kZSkge1xuICAgICAgcmV0dXJuIHJlc29sdmUucmVsYXRpdmUobm9kZS5zb3VyY2UudmFsdWUsIHBhdGgsIGNvbnRleHQuc2V0dGluZ3MpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZUltcG9ydChub2RlKSB7XG4gICAgICBjb25zdCBycCA9IHJlbW90ZVBhdGgobm9kZSlcbiAgICAgIGlmIChycCA9PSBudWxsKSByZXR1cm4gbnVsbFxuICAgICAgcmV0dXJuIEV4cG9ydE1hcC5mb3IocnAsIGNvbnRleHQpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0TmFtZXNwYWNlKGlkZW50aWZpZXIpIHtcbiAgICAgIGlmICghbmFtZXNwYWNlcy5oYXMoaWRlbnRpZmllci5uYW1lKSkgcmV0dXJuXG5cbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlSW1wb3J0KG5hbWVzcGFjZXMuZ2V0KGlkZW50aWZpZXIubmFtZSkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkTmFtZXNwYWNlKG9iamVjdCwgaWRlbnRpZmllcikge1xuICAgICAgY29uc3QgbnNmbiA9IGdldE5hbWVzcGFjZShpZGVudGlmaWVyKVxuICAgICAgaWYgKG5zZm4pIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwgJ25hbWVzcGFjZScsIHsgZ2V0OiBuc2ZuIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmplY3RcbiAgICB9XG5cblxuICAgIGFzdC5ib2R5LmZvckVhY2goZnVuY3Rpb24gKG4pIHtcblxuICAgICAgaWYgKG4udHlwZSA9PT0gJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbicpIHtcbiAgICAgICAgY29uc3QgZXhwb3J0TWV0YSA9IGNhcHR1cmVEb2MoZG9jU3R5bGVQYXJzZXJzLCBuKVxuICAgICAgICBpZiAobi5kZWNsYXJhdGlvbi50eXBlID09PSAnSWRlbnRpZmllcicpIHtcbiAgICAgICAgICBhZGROYW1lc3BhY2UoZXhwb3J0TWV0YSwgbi5kZWNsYXJhdGlvbilcbiAgICAgICAgfVxuICAgICAgICBtLm5hbWVzcGFjZS5zZXQoJ2RlZmF1bHQnLCBleHBvcnRNZXRhKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKG4udHlwZSA9PT0gJ0V4cG9ydEFsbERlY2xhcmF0aW9uJykge1xuICAgICAgICBsZXQgcmVtb3RlTWFwID0gcmVtb3RlUGF0aChuKVxuICAgICAgICBpZiAocmVtb3RlTWFwID09IG51bGwpIHJldHVyblxuICAgICAgICBtLmRlcGVuZGVuY2llcy5zZXQocmVtb3RlTWFwLCAoKSA9PiBFeHBvcnRNYXAuZm9yKHJlbW90ZU1hcCwgY29udGV4dCkpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBjYXB0dXJlIG5hbWVzcGFjZXMgaW4gY2FzZSBvZiBsYXRlciBleHBvcnRcbiAgICAgIGlmIChuLnR5cGUgPT09ICdJbXBvcnREZWNsYXJhdGlvbicpIHtcbiAgICAgICAgbGV0IG5zXG4gICAgICAgIGlmIChuLnNwZWNpZmllcnMuc29tZShzID0+IHMudHlwZSA9PT0gJ0ltcG9ydE5hbWVzcGFjZVNwZWNpZmllcicgJiYgKG5zID0gcykpKSB7XG4gICAgICAgICAgbmFtZXNwYWNlcy5zZXQobnMubG9jYWwubmFtZSwgbilcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKG4udHlwZSA9PT0gJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nKXtcbiAgICAgICAgLy8gY2FwdHVyZSBkZWNsYXJhdGlvblxuICAgICAgICBpZiAobi5kZWNsYXJhdGlvbiAhPSBudWxsKSB7XG4gICAgICAgICAgc3dpdGNoIChuLmRlY2xhcmF0aW9uLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Z1bmN0aW9uRGVjbGFyYXRpb24nOlxuICAgICAgICAgICAgY2FzZSAnQ2xhc3NEZWNsYXJhdGlvbic6XG4gICAgICAgICAgICBjYXNlICdUeXBlQWxpYXMnOiAvLyBmbG93dHlwZSB3aXRoIGJhYmVsLWVzbGludCBwYXJzZXJcbiAgICAgICAgICAgICAgbS5uYW1lc3BhY2Uuc2V0KG4uZGVjbGFyYXRpb24uaWQubmFtZSwgY2FwdHVyZURvYyhkb2NTdHlsZVBhcnNlcnMsIG4pKVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgY2FzZSAnVmFyaWFibGVEZWNsYXJhdGlvbic6XG4gICAgICAgICAgICAgIG4uZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zLmZvckVhY2goKGQpID0+XG4gICAgICAgICAgICAgICAgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUoZC5pZCwgaWQgPT5cbiAgICAgICAgICAgICAgICAgIG0ubmFtZXNwYWNlLnNldChpZC5uYW1lLCBjYXB0dXJlRG9jKGRvY1N0eWxlUGFyc2VycywgZCwgbikpKSlcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBuLnNwZWNpZmllcnMuZm9yRWFjaCgocykgPT4ge1xuICAgICAgICAgIGNvbnN0IGV4cG9ydE1ldGEgPSB7fVxuICAgICAgICAgIGxldCBsb2NhbFxuXG4gICAgICAgICAgc3dpdGNoIChzLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0V4cG9ydERlZmF1bHRTcGVjaWZpZXInOlxuICAgICAgICAgICAgICBpZiAoIW4uc291cmNlKSByZXR1cm5cbiAgICAgICAgICAgICAgbG9jYWwgPSAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIGNhc2UgJ0V4cG9ydE5hbWVzcGFjZVNwZWNpZmllcic6XG4gICAgICAgICAgICAgIG0ubmFtZXNwYWNlLnNldChzLmV4cG9ydGVkLm5hbWUsIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRNZXRhLCAnbmFtZXNwYWNlJywge1xuICAgICAgICAgICAgICAgIGdldCgpIHsgcmV0dXJuIHJlc29sdmVJbXBvcnQobikgfSxcbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgY2FzZSAnRXhwb3J0U3BlY2lmaWVyJzpcbiAgICAgICAgICAgICAgaWYgKCFuLnNvdXJjZSkge1xuICAgICAgICAgICAgICAgIG0ubmFtZXNwYWNlLnNldChzLmV4cG9ydGVkLm5hbWUsIGFkZE5hbWVzcGFjZShleHBvcnRNZXRhLCBzLmxvY2FsKSlcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvLyBlbHNlIGZhbGxzIHRocm91Z2hcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIGxvY2FsID0gcy5sb2NhbC5uYW1lXG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gdG9kbzogSlNEb2NcbiAgICAgICAgICBtLnJlZXhwb3J0cy5zZXQocy5leHBvcnRlZC5uYW1lLCB7IGxvY2FsLCBnZXRJbXBvcnQ6ICgpID0+IHJlc29sdmVJbXBvcnQobikgfSlcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIG1cbiAgfVxuXG4gIC8qKlxuICAgKiBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBjaGVjayBleHBsaWNpdGx5IHJlLWV4cG9ydGVkIG5hbWVzIGZvciBleGlzdGVuY2VcbiAgICogaW4gdGhlIGJhc2UgbmFtZXNwYWNlLCBidXQgaXQgd2lsbCBleHBhbmQgYWxsIGBleHBvcnQgKiBmcm9tICcuLi4nYCBleHBvcnRzXG4gICAqIGlmIG5vdCBmb3VuZCBpbiB0aGUgZXhwbGljaXQgbmFtZXNwYWNlLlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9ICBuYW1lXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgaWYgYG5hbWVgIGlzIGV4cG9ydGVkIGJ5IHRoaXMgbW9kdWxlLlxuICAgKi9cbiAgaGFzKG5hbWUpIHtcbiAgICBpZiAodGhpcy5uYW1lc3BhY2UuaGFzKG5hbWUpKSByZXR1cm4gdHJ1ZVxuICAgIGlmICh0aGlzLnJlZXhwb3J0cy5oYXMobmFtZSkpIHJldHVybiB0cnVlXG5cbiAgICAvLyBkZWZhdWx0IGV4cG9ydHMgbXVzdCBiZSBleHBsaWNpdGx5IHJlLWV4cG9ydGVkICgjMzI4KVxuICAgIGlmIChuYW1lICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgIGZvciAobGV0IGRlcCBvZiB0aGlzLmRlcGVuZGVuY2llcy52YWx1ZXMoKSkge1xuICAgICAgICBsZXQgaW5uZXJNYXAgPSBkZXAoKVxuXG4gICAgICAgIC8vIHRvZG86IHJlcG9ydCBhcyB1bnJlc29sdmVkP1xuICAgICAgICBpZiAoIWlubmVyTWFwKSBjb250aW51ZVxuXG4gICAgICAgIGlmIChpbm5lck1hcC5oYXMobmFtZSkpIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogZW5zdXJlIHRoYXQgaW1wb3J0ZWQgbmFtZSBmdWxseSByZXNvbHZlcy5cbiAgICogQHBhcmFtICB7W3R5cGVdfSAgbmFtZSBbZGVzY3JpcHRpb25dXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59ICAgICAgW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgaGFzRGVlcChuYW1lKSB7XG4gICAgaWYgKHRoaXMubmFtZXNwYWNlLmhhcyhuYW1lKSkgcmV0dXJuIHsgZm91bmQ6IHRydWUsIHBhdGg6IFt0aGlzXSB9XG5cbiAgICBpZiAodGhpcy5yZWV4cG9ydHMuaGFzKG5hbWUpKSB7XG4gICAgICBjb25zdCB7IGxvY2FsLCBnZXRJbXBvcnQgfSA9IHRoaXMucmVleHBvcnRzLmdldChuYW1lKVxuICAgICAgICAgICwgaW1wb3J0ZWQgPSBnZXRJbXBvcnQoKVxuXG4gICAgICAvLyBpZiBpbXBvcnQgaXMgaWdub3JlZCwgcmV0dXJuIGV4cGxpY2l0ICdudWxsJ1xuICAgICAgaWYgKGltcG9ydGVkID09IG51bGwpIHJldHVybiB7IGZvdW5kOiB0cnVlLCBwYXRoOiBbdGhpc10gfVxuXG4gICAgICAvLyBzYWZlZ3VhcmQgYWdhaW5zdCBjeWNsZXMsIG9ubHkgaWYgbmFtZSBtYXRjaGVzXG4gICAgICBpZiAoaW1wb3J0ZWQucGF0aCA9PT0gdGhpcy5wYXRoICYmIGxvY2FsID09PSBuYW1lKSByZXR1cm4geyBmb3VuZDogZmFsc2UsIHBhdGg6IFt0aGlzXSB9XG5cbiAgICAgIGNvbnN0IGRlZXAgPSBpbXBvcnRlZC5oYXNEZWVwKGxvY2FsKVxuICAgICAgZGVlcC5wYXRoLnVuc2hpZnQodGhpcylcblxuICAgICAgcmV0dXJuIGRlZXBcbiAgICB9XG5cblxuICAgIC8vIGRlZmF1bHQgZXhwb3J0cyBtdXN0IGJlIGV4cGxpY2l0bHkgcmUtZXhwb3J0ZWQgKCMzMjgpXG4gICAgaWYgKG5hbWUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgZm9yIChsZXQgZGVwIG9mIHRoaXMuZGVwZW5kZW5jaWVzLnZhbHVlcygpKSB7XG4gICAgICAgIGxldCBpbm5lck1hcCA9IGRlcCgpXG4gICAgICAgIC8vIHRvZG86IHJlcG9ydCBhcyB1bnJlc29sdmVkP1xuICAgICAgICBpZiAoIWlubmVyTWFwKSBjb250aW51ZVxuXG4gICAgICAgIC8vIHNhZmVndWFyZCBhZ2FpbnN0IGN5Y2xlc1xuICAgICAgICBpZiAoaW5uZXJNYXAucGF0aCA9PT0gdGhpcy5wYXRoKSBjb250aW51ZVxuXG4gICAgICAgIGxldCBpbm5lclZhbHVlID0gaW5uZXJNYXAuaGFzRGVlcChuYW1lKVxuICAgICAgICBpZiAoaW5uZXJWYWx1ZS5mb3VuZCkge1xuICAgICAgICAgIGlubmVyVmFsdWUucGF0aC51bnNoaWZ0KHRoaXMpXG4gICAgICAgICAgcmV0dXJuIGlubmVyVmFsdWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IGZvdW5kOiBmYWxzZSwgcGF0aDogW3RoaXNdIH1cbiAgfVxuXG4gIGdldChuYW1lKSB7XG4gICAgaWYgKHRoaXMubmFtZXNwYWNlLmhhcyhuYW1lKSkgcmV0dXJuIHRoaXMubmFtZXNwYWNlLmdldChuYW1lKVxuXG4gICAgaWYgKHRoaXMucmVleHBvcnRzLmhhcyhuYW1lKSkge1xuICAgICAgY29uc3QgeyBsb2NhbCwgZ2V0SW1wb3J0IH0gPSB0aGlzLnJlZXhwb3J0cy5nZXQobmFtZSlcbiAgICAgICAgICAsIGltcG9ydGVkID0gZ2V0SW1wb3J0KClcblxuICAgICAgLy8gaWYgaW1wb3J0IGlzIGlnbm9yZWQsIHJldHVybiBleHBsaWNpdCAnbnVsbCdcbiAgICAgIGlmIChpbXBvcnRlZCA9PSBudWxsKSByZXR1cm4gbnVsbFxuXG4gICAgICAvLyBzYWZlZ3VhcmQgYWdhaW5zdCBjeWNsZXMsIG9ubHkgaWYgbmFtZSBtYXRjaGVzXG4gICAgICBpZiAoaW1wb3J0ZWQucGF0aCA9PT0gdGhpcy5wYXRoICYmIGxvY2FsID09PSBuYW1lKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICAgIHJldHVybiBpbXBvcnRlZC5nZXQobG9jYWwpXG4gICAgfVxuXG4gICAgLy8gZGVmYXVsdCBleHBvcnRzIG11c3QgYmUgZXhwbGljaXRseSByZS1leHBvcnRlZCAoIzMyOClcbiAgICBpZiAobmFtZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICBmb3IgKGxldCBkZXAgb2YgdGhpcy5kZXBlbmRlbmNpZXMudmFsdWVzKCkpIHtcbiAgICAgICAgbGV0IGlubmVyTWFwID0gZGVwKClcbiAgICAgICAgLy8gdG9kbzogcmVwb3J0IGFzIHVucmVzb2x2ZWQ/XG4gICAgICAgIGlmICghaW5uZXJNYXApIGNvbnRpbnVlXG5cbiAgICAgICAgLy8gc2FmZWd1YXJkIGFnYWluc3QgY3ljbGVzXG4gICAgICAgIGlmIChpbm5lck1hcC5wYXRoID09PSB0aGlzLnBhdGgpIGNvbnRpbnVlXG5cbiAgICAgICAgbGV0IGlubmVyVmFsdWUgPSBpbm5lck1hcC5nZXQobmFtZSlcbiAgICAgICAgaWYgKGlubmVyVmFsdWUgIT09IHVuZGVmaW5lZCkgcmV0dXJuIGlubmVyVmFsdWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBmb3JFYWNoKGNhbGxiYWNrLCB0aGlzQXJnKSB7XG4gICAgdGhpcy5uYW1lc3BhY2UuZm9yRWFjaCgodiwgbikgPT5cbiAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdiwgbiwgdGhpcykpXG5cbiAgICB0aGlzLnJlZXhwb3J0cy5mb3JFYWNoKCh7IGdldEltcG9ydCwgbG9jYWwgfSwgbmFtZSkgPT4ge1xuICAgICAgY29uc3QgcmVleHBvcnRlZCA9IGdldEltcG9ydCgpXG4gICAgICAvLyBjYW4ndCBsb29rIHVwIG1ldGEgZm9yIGlnbm9yZWQgcmUtZXhwb3J0cyAoIzM0OClcbiAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgcmVleHBvcnRlZCAmJiByZWV4cG9ydGVkLmdldChsb2NhbCksIG5hbWUsIHRoaXMpXG4gICAgfSlcblxuICAgIHRoaXMuZGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IGRlcCgpLmZvckVhY2goKHYsIG4pID0+XG4gICAgICBuICE9PSAnZGVmYXVsdCcgJiYgY2FsbGJhY2suY2FsbCh0aGlzQXJnLCB2LCBuLCB0aGlzKSkpXG4gIH1cblxuICAvLyB0b2RvOiBrZXlzLCB2YWx1ZXMsIGVudHJpZXM/XG5cbiAgcmVwb3J0RXJyb3JzKGNvbnRleHQsIGRlY2xhcmF0aW9uKSB7XG4gICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgbm9kZTogZGVjbGFyYXRpb24uc291cmNlLFxuICAgICAgbWVzc2FnZTogYFBhcnNlIGVycm9ycyBpbiBpbXBvcnRlZCBtb2R1bGUgJyR7ZGVjbGFyYXRpb24uc291cmNlLnZhbHVlfSc6IGAgK1xuICAgICAgICAgICAgICAgICAgYCR7dGhpcy5lcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoZSA9PiBgJHtlLm1lc3NhZ2V9ICgke2UubGluZU51bWJlcn06JHtlLmNvbHVtbn0pYClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcsICcpfWAsXG4gICAgfSlcbiAgfVxufVxuXG4vKipcbiAqIHBhcnNlIGRvY3MgZnJvbSB0aGUgZmlyc3Qgbm9kZSB0aGF0IGhhcyBsZWFkaW5nIGNvbW1lbnRzXG4gKiBAcGFyYW0gIHsuLi5bdHlwZV19IG5vZGVzIFtkZXNjcmlwdGlvbl1cbiAqIEByZXR1cm4ge3tkb2M6IG9iamVjdH19XG4gKi9cbmZ1bmN0aW9uIGNhcHR1cmVEb2MoZG9jU3R5bGVQYXJzZXJzLCAuLi5ub2Rlcykge1xuICBjb25zdCBtZXRhZGF0YSA9IHt9XG5cbiAgLy8gJ3NvbWUnIHNob3J0LWNpcmN1aXRzIG9uIGZpcnN0ICd0cnVlJ1xuICBub2Rlcy5zb21lKG4gPT4ge1xuICAgIGlmICghbi5sZWFkaW5nQ29tbWVudHMpIHJldHVybiBmYWxzZVxuXG4gICAgZm9yIChsZXQgbmFtZSBpbiBkb2NTdHlsZVBhcnNlcnMpIHtcbiAgICAgIGNvbnN0IGRvYyA9IGRvY1N0eWxlUGFyc2Vyc1tuYW1lXShuLmxlYWRpbmdDb21tZW50cylcbiAgICAgIGlmIChkb2MpIHtcbiAgICAgICAgbWV0YWRhdGEuZG9jID0gZG9jXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfSlcblxuICByZXR1cm4gbWV0YWRhdGFcbn1cblxuY29uc3QgYXZhaWxhYmxlRG9jU3R5bGVQYXJzZXJzID0ge1xuICBqc2RvYzogY2FwdHVyZUpzRG9jLFxuICB0b21kb2M6IGNhcHR1cmVUb21Eb2MsXG59XG5cbi8qKlxuICogcGFyc2UgSlNEb2MgZnJvbSBsZWFkaW5nIGNvbW1lbnRzXG4gKiBAcGFyYW0gIHsuLi5bdHlwZV19IGNvbW1lbnRzIFtkZXNjcmlwdGlvbl1cbiAqIEByZXR1cm4ge3tkb2M6IG9iamVjdH19XG4gKi9cbmZ1bmN0aW9uIGNhcHR1cmVKc0RvYyhjb21tZW50cykge1xuICBsZXQgZG9jXG5cbiAgLy8gY2FwdHVyZSBYU0RvY1xuICBjb21tZW50cy5mb3JFYWNoKGNvbW1lbnQgPT4ge1xuICAgIC8vIHNraXAgbm9uLWJsb2NrIGNvbW1lbnRzXG4gICAgaWYgKGNvbW1lbnQudmFsdWUuc2xpY2UoMCwgNCkgIT09ICcqXFxuIConKSByZXR1cm5cbiAgICB0cnkge1xuICAgICAgZG9jID0gZG9jdHJpbmUucGFyc2UoY29tbWVudC52YWx1ZSwgeyB1bndyYXA6IHRydWUgfSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8qIGRvbid0IGNhcmUsIGZvciBub3c/IG1heWJlIGFkZCB0byBgZXJyb3JzP2AgKi9cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIGRvY1xufVxuXG4vKipcbiAgKiBwYXJzZSBUb21Eb2Mgc2VjdGlvbiBmcm9tIGNvbW1lbnRzXG4gICovXG5mdW5jdGlvbiBjYXB0dXJlVG9tRG9jKGNvbW1lbnRzKSB7XG4gIC8vIGNvbGxlY3QgbGluZXMgdXAgdG8gZmlyc3QgcGFyYWdyYXBoIGJyZWFrXG4gIGNvbnN0IGxpbmVzID0gW11cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb21tZW50cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNvbW1lbnQgPSBjb21tZW50c1tpXVxuICAgIGlmIChjb21tZW50LnZhbHVlLm1hdGNoKC9eXFxzKiQvKSkgYnJlYWtcbiAgICBsaW5lcy5wdXNoKGNvbW1lbnQudmFsdWUudHJpbSgpKVxuICB9XG5cbiAgLy8gcmV0dXJuIGRvY3RyaW5lLWxpa2Ugb2JqZWN0XG4gIGNvbnN0IHN0YXR1c01hdGNoID0gbGluZXMuam9pbignICcpLm1hdGNoKC9eKFB1YmxpY3xJbnRlcm5hbHxEZXByZWNhdGVkKTpcXHMqKC4rKS8pXG4gIGlmIChzdGF0dXNNYXRjaCkge1xuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmlwdGlvbjogc3RhdHVzTWF0Y2hbMl0sXG4gICAgICB0YWdzOiBbe1xuICAgICAgICB0aXRsZTogc3RhdHVzTWF0Y2hbMV0udG9Mb3dlckNhc2UoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHN0YXR1c01hdGNoWzJdLFxuICAgICAgfV0sXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVHJhdmVyc2UgYSBwYXR0ZXJuL2lkZW50aWZpZXIgbm9kZSwgY2FsbGluZyAnY2FsbGJhY2snXG4gKiBmb3IgZWFjaCBsZWFmIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0gIHtub2RlfSAgIHBhdHRlcm5cbiAqIEBwYXJhbSAge0Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHJldHVybiB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlY3Vyc2l2ZVBhdHRlcm5DYXB0dXJlKHBhdHRlcm4sIGNhbGxiYWNrKSB7XG4gIHN3aXRjaCAocGF0dGVybi50eXBlKSB7XG4gICAgY2FzZSAnSWRlbnRpZmllcic6IC8vIGJhc2UgY2FzZVxuICAgICAgY2FsbGJhY2socGF0dGVybilcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlICdPYmplY3RQYXR0ZXJuJzpcbiAgICAgIHBhdHRlcm4ucHJvcGVydGllcy5mb3JFYWNoKCh7IHZhbHVlIH0pID0+IHtcbiAgICAgICAgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUodmFsdWUsIGNhbGxiYWNrKVxuICAgICAgfSlcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlICdBcnJheVBhdHRlcm4nOlxuICAgICAgcGF0dGVybi5lbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50ID09IG51bGwpIHJldHVyblxuICAgICAgICByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShlbGVtZW50LCBjYWxsYmFjaylcbiAgICAgIH0pXG4gICAgICBicmVha1xuICB9XG59XG4iXX0=

@@ -49,2 +49,2 @@ 'use strict';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvaGFzaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7a0JBT3dCO1FBWVI7UUFXQTs7Ozs7O0FBekJoQixJQUFNLFlBQVksS0FBSyxTQUFMOztBQUVILFNBQVMsT0FBVCxDQUFpQixJQUFqQixFQUF1QixLQUF2QixFQUE4QjtBQUMzQyxNQUFJLGlCQUFpQixLQUFqQixFQUF3QjtBQUMxQixjQUFVLElBQVYsRUFBZ0IsS0FBaEIsRUFEMEI7R0FBNUIsTUFFTyxJQUFJLGlCQUFpQixNQUFqQixFQUF5QjtBQUNsQyxlQUFXLElBQVgsRUFBaUIsS0FBakIsRUFEa0M7R0FBN0IsTUFFQTtBQUNMLFNBQUssTUFBTCxDQUFZLFVBQVUsS0FBVixLQUFvQixXQUFwQixDQUFaLENBREs7R0FGQTs7QUFNUCxTQUFPLElBQVAsQ0FUMkM7Q0FBOUI7O0FBWVIsU0FBUyxTQUFULENBQW1CLElBQW5CLEVBQXlCLEtBQXpCLEVBQWdDO0FBQ3JDLE9BQUssTUFBTCxDQUFZLEdBQVosRUFEcUM7QUFFckMsT0FBSyxJQUFJLElBQUksQ0FBSixFQUFPLElBQUksTUFBTSxNQUFOLEVBQWMsR0FBbEMsRUFBdUM7QUFDckMsWUFBUSxJQUFSLEVBQWMsTUFBTSxDQUFOLENBQWQsRUFEcUM7QUFFckMsU0FBSyxNQUFMLENBQVksR0FBWixFQUZxQztHQUF2QztBQUlBLE9BQUssTUFBTCxDQUFZLEdBQVosRUFOcUM7O0FBUXJDLFNBQU8sSUFBUCxDQVJxQztDQUFoQzs7QUFXQSxTQUFTLFVBQVQsQ0FBb0IsSUFBcEIsRUFBMEIsTUFBMUIsRUFBa0M7QUFDdkMsT0FBSyxNQUFMLENBQVksR0FBWixFQUR1QztBQUV2QyxTQUFPLElBQVAsQ0FBWSxNQUFaLEVBQW9CLElBQXBCLEdBQTJCLE9BQTNCLENBQW1DLGVBQU87QUFDeEMsU0FBSyxNQUFMLENBQVksVUFBVSxHQUFWLENBQVosRUFEd0M7QUFFeEMsU0FBSyxNQUFMLENBQVksR0FBWixFQUZ3QztBQUd4QyxZQUFRLElBQVIsRUFBYyxPQUFPLEdBQVAsQ0FBZCxFQUh3QztBQUl4QyxTQUFLLE1BQUwsQ0FBWSxHQUFaLEVBSndDO0dBQVAsQ0FBbkMsQ0FGdUM7QUFRdkMsT0FBSyxNQUFMLENBQVksR0FBWixFQVJ1Qzs7QUFVdkMsU0FBTyxJQUFQLENBVnVDO0NBQWxDIiwiZmlsZSI6ImNvcmUvaGFzaC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogdXRpbGl0aWVzIGZvciBoYXNoaW5nIGNvbmZpZyBvYmplY3RzLlxuICogYmFzaWNhbGx5IGl0ZXJhdGl2ZWx5IHVwZGF0ZXMgaGFzaCB3aXRoIGEgSlNPTi1saWtlIGZvcm1hdFxuICovXG5cbmNvbnN0IHN0cmluZ2lmeSA9IEpTT04uc3RyaW5naWZ5XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGhhc2hpZnkoaGFzaCwgdmFsdWUpIHtcbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICBoYXNoQXJyYXkoaGFzaCwgdmFsdWUpXG4gIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICBoYXNoT2JqZWN0KGhhc2gsIHZhbHVlKVxuICB9IGVsc2Uge1xuICAgIGhhc2gudXBkYXRlKHN0cmluZ2lmeSh2YWx1ZSkgfHwgJ3VuZGVmaW5lZCcpXG4gIH1cblxuICByZXR1cm4gaGFzaFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzaEFycmF5KGhhc2gsIGFycmF5KSB7XG4gIGhhc2gudXBkYXRlKCdbJylcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgIGhhc2hpZnkoaGFzaCwgYXJyYXlbaV0pXG4gICAgaGFzaC51cGRhdGUoJywnKVxuICB9XG4gIGhhc2gudXBkYXRlKCddJylcblxuICByZXR1cm4gaGFzaFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzaE9iamVjdChoYXNoLCBvYmplY3QpIHtcbiAgaGFzaC51cGRhdGUoJ3snKVxuICBPYmplY3Qua2V5cyhvYmplY3QpLnNvcnQoKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgaGFzaC51cGRhdGUoc3RyaW5naWZ5KGtleSkpXG4gICAgaGFzaC51cGRhdGUoJzonKVxuICAgIGhhc2hpZnkoaGFzaCwgb2JqZWN0W2tleV0pXG4gICAgaGFzaC51cGRhdGUoJywnKVxuICB9KVxuICBoYXNoLnVwZGF0ZSgnfScpXG5cbiAgcmV0dXJuIGhhc2hcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvaGFzaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7a0JBT3dCLE87UUFZUixTLEdBQUEsUztRQVdBLFUsR0FBQSxVOzs7Ozs7QUF6QmhCLElBQU0sWUFBWSxLQUFLLFNBQXZCOztBQUVlLFNBQVMsT0FBVCxDQUFpQixJQUFqQixFQUF1QixLQUF2QixFQUE4QjtBQUMzQyxNQUFJLGlCQUFpQixLQUFyQixFQUE0QjtBQUMxQixjQUFVLElBQVYsRUFBZ0IsS0FBaEI7QUFDRCxHQUZELE1BRU8sSUFBSSxpQkFBaUIsTUFBckIsRUFBNkI7QUFDbEMsZUFBVyxJQUFYLEVBQWlCLEtBQWpCO0FBQ0QsR0FGTSxNQUVBO0FBQ0wsU0FBSyxNQUFMLENBQVksVUFBVSxLQUFWLEtBQW9CLFdBQWhDO0FBQ0Q7O0FBRUQsU0FBTyxJQUFQO0FBQ0Q7O0FBRU0sU0FBUyxTQUFULENBQW1CLElBQW5CLEVBQXlCLEtBQXpCLEVBQWdDO0FBQ3JDLE9BQUssTUFBTCxDQUFZLEdBQVo7QUFDQSxPQUFLLElBQUksSUFBSSxDQUFiLEVBQWdCLElBQUksTUFBTSxNQUExQixFQUFrQyxHQUFsQyxFQUF1QztBQUNyQyxZQUFRLElBQVIsRUFBYyxNQUFNLENBQU4sQ0FBZDtBQUNBLFNBQUssTUFBTCxDQUFZLEdBQVo7QUFDRDtBQUNELE9BQUssTUFBTCxDQUFZLEdBQVo7O0FBRUEsU0FBTyxJQUFQO0FBQ0Q7O0FBRU0sU0FBUyxVQUFULENBQW9CLElBQXBCLEVBQTBCLE1BQTFCLEVBQWtDO0FBQ3ZDLE9BQUssTUFBTCxDQUFZLEdBQVo7QUFDQSxTQUFPLElBQVAsQ0FBWSxNQUFaLEVBQW9CLElBQXBCLEdBQTJCLE9BQTNCLENBQW1DLGVBQU87QUFDeEMsU0FBSyxNQUFMLENBQVksVUFBVSxHQUFWLENBQVo7QUFDQSxTQUFLLE1BQUwsQ0FBWSxHQUFaO0FBQ0EsWUFBUSxJQUFSLEVBQWMsT0FBTyxHQUFQLENBQWQ7QUFDQSxTQUFLLE1BQUwsQ0FBWSxHQUFaO0FBQ0QsR0FMRDtBQU1BLE9BQUssTUFBTCxDQUFZLEdBQVo7O0FBRUEsU0FBTyxJQUFQO0FBQ0QiLCJmaWxlIjoiY29yZS9oYXNoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiB1dGlsaXRpZXMgZm9yIGhhc2hpbmcgY29uZmlnIG9iamVjdHMuXG4gKiBiYXNpY2FsbHkgaXRlcmF0aXZlbHkgdXBkYXRlcyBoYXNoIHdpdGggYSBKU09OLWxpa2UgZm9ybWF0XG4gKi9cblxuY29uc3Qgc3RyaW5naWZ5ID0gSlNPTi5zdHJpbmdpZnlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaGFzaGlmeShoYXNoLCB2YWx1ZSkge1xuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIGhhc2hBcnJheShoYXNoLCB2YWx1ZSlcbiAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgIGhhc2hPYmplY3QoaGFzaCwgdmFsdWUpXG4gIH0gZWxzZSB7XG4gICAgaGFzaC51cGRhdGUoc3RyaW5naWZ5KHZhbHVlKSB8fCAndW5kZWZpbmVkJylcbiAgfVxuXG4gIHJldHVybiBoYXNoXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNoQXJyYXkoaGFzaCwgYXJyYXkpIHtcbiAgaGFzaC51cGRhdGUoJ1snKVxuICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgaGFzaGlmeShoYXNoLCBhcnJheVtpXSlcbiAgICBoYXNoLnVwZGF0ZSgnLCcpXG4gIH1cbiAgaGFzaC51cGRhdGUoJ10nKVxuXG4gIHJldHVybiBoYXNoXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNoT2JqZWN0KGhhc2gsIG9iamVjdCkge1xuICBoYXNoLnVwZGF0ZSgneycpXG4gIE9iamVjdC5rZXlzKG9iamVjdCkuc29ydCgpLmZvckVhY2goa2V5ID0+IHtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdpZnkoa2V5KSlcbiAgICBoYXNoLnVwZGF0ZSgnOicpXG4gICAgaGFzaGlmeShoYXNoLCBvYmplY3Rba2V5XSlcbiAgICBoYXNoLnVwZGF0ZSgnLCcpXG4gIH0pXG4gIGhhc2gudXBkYXRlKCd9JylcblxuICByZXR1cm4gaGFzaFxufVxuIl19

@@ -51,2 +51,2 @@ 'use strict';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvaWdub3JlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztrQkFxQndCOztBQXJCeEI7O0FBQ0E7Ozs7Ozs7QUFHQSxJQUFJLGtCQUFKO0lBQWUscUJBQWY7QUFDQSxTQUFTLGVBQVQsT0FBdUM7TUFBWix5QkFBWTs7QUFDckMsTUFBSSxhQUFhLGFBQWEsWUFBYixFQUEyQjtBQUMxQyxXQUFPLFNBQVAsQ0FEMEM7R0FBNUM7OztBQURxQyxjQU1yQyxHQUFlLFFBQWY7OztBQU5xQyxXQVNyQyxHQUFZLHVCQUF1QixRQUF2QixHQUNSLHFCQUFRLFNBQVMsbUJBQVQsQ0FBUixDQURRLEdBRVIsRUFBRSxLQUFLO2FBQU07S0FBTixFQUZDOztBQVR5QixTQWE5QixTQUFQLENBYnFDO0NBQXZDOztBQWdCZSxTQUFTLE1BQVQsQ0FBZ0IsSUFBaEIsRUFBc0IsT0FBdEIsRUFBK0I7O0FBRTVDLE1BQU0sZ0JBQWdCLFFBQVEsUUFBUixDQUFpQixlQUFqQixJQUNsQixHQUFHLE1BQUgsQ0FBVSxRQUFRLFFBQVIsQ0FBaUIsZUFBakIsQ0FBVixDQURrQixHQUVsQixDQUFDLGNBQUQsQ0FGa0I7OztBQUZzQixNQU94QyxDQUFDLGdCQUFnQixPQUFoQixFQUF5QixHQUF6QixDQUE2QixtQkFBUSxJQUFSLENBQTdCLENBQUQsRUFBOEMsT0FBTyxJQUFQLENBQWxEOztBQUVBLE1BQUksY0FBYyxNQUFkLEtBQXlCLENBQXpCLEVBQTRCLE9BQU8sS0FBUCxDQUFoQzs7QUFFQSxPQUFLLElBQUksSUFBSSxDQUFKLEVBQU8sSUFBSSxjQUFjLE1BQWQsRUFBc0IsR0FBMUMsRUFBK0M7QUFDN0MsUUFBSSxRQUFRLElBQUksTUFBSixDQUFXLGNBQWMsQ0FBZCxDQUFYLENBQVIsQ0FEeUM7QUFFN0MsUUFBSSxNQUFNLElBQU4sQ0FBVyxJQUFYLENBQUosRUFBc0IsT0FBTyxJQUFQLENBQXRCO0dBRkY7O0FBS0EsU0FBTyxLQUFQLENBaEI0QztDQUEvQiIsImZpbGUiOiJjb3JlL2lnbm9yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4dG5hbWUgfSBmcm9tICdwYXRoJ1xuaW1wb3J0IFNldCBmcm9tICdlczYtc2V0J1xuXG4vLyBvbmUtc2hvdCBtZW1vaXplZFxubGV0IGNhY2hlZFNldCwgbGFzdFNldHRpbmdzXG5mdW5jdGlvbiB2YWxpZEV4dGVuc2lvbnMoeyBzZXR0aW5ncyB9KSB7XG4gIGlmIChjYWNoZWRTZXQgJiYgc2V0dGluZ3MgPT09IGxhc3RTZXR0aW5ncykge1xuICAgIHJldHVybiBjYWNoZWRTZXRcbiAgfVxuXG4gIC8vIHRvZG86IGFkZCAnbWpzJz9cbiAgbGFzdFNldHRpbmdzID0gc2V0dGluZ3NcbiAgLy8gYnJlYWtpbmc6IGRlZmF1bHQgdG8gJy5qcydcbiAgLy8gY2FjaGVkU2V0ID0gbmV3IFNldChzZXR0aW5nc1snaW1wb3J0L2V4dGVuc2lvbnMnXSB8fCBbICcuanMnIF0pXG4gIGNhY2hlZFNldCA9ICdpbXBvcnQvZXh0ZW5zaW9ucycgaW4gc2V0dGluZ3NcbiAgICA/IG5ldyBTZXQoc2V0dGluZ3NbJ2ltcG9ydC9leHRlbnNpb25zJ10pXG4gICAgOiB7IGhhczogKCkgPT4gdHJ1ZSB9IC8vIHRoZSBzZXQgb2YgYWxsIGVsZW1lbnRzXG5cbiAgcmV0dXJuIGNhY2hlZFNldFxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpZ25vcmUocGF0aCwgY29udGV4dCkge1xuICAvLyBpZ25vcmUgbm9kZV9tb2R1bGVzIGJ5IGRlZmF1bHRcbiAgY29uc3QgaWdub3JlU3RyaW5ncyA9IGNvbnRleHQuc2V0dGluZ3NbJ2ltcG9ydC9pZ25vcmUnXVxuICAgID8gW10uY29uY2F0KGNvbnRleHQuc2V0dGluZ3NbJ2ltcG9ydC9pZ25vcmUnXSlcbiAgICA6IFsnbm9kZV9tb2R1bGVzJ11cblxuICAvLyBjaGVjayBleHRlbnNpb24gd2hpdGVsaXN0IGZpcnN0IChjaGVhcClcbiAgaWYgKCF2YWxpZEV4dGVuc2lvbnMoY29udGV4dCkuaGFzKGV4dG5hbWUocGF0aCkpKSByZXR1cm4gdHJ1ZVxuXG4gIGlmIChpZ25vcmVTdHJpbmdzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpZ25vcmVTdHJpbmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cChpZ25vcmVTdHJpbmdzW2ldKVxuICAgIGlmIChyZWdleC50ZXN0KHBhdGgpKSByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvaWdub3JlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztrQkFxQndCLE07O0FBckJ4Qjs7QUFDQTs7Ozs7OztBQUdBLElBQUksa0JBQUo7QUFBQSxJQUFlLHFCQUFmO0FBQ0EsU0FBUyxlQUFULE9BQXVDO0FBQUEsTUFBWixRQUFZLFFBQVosUUFBWTs7QUFDckMsTUFBSSxhQUFhLGFBQWEsWUFBOUIsRUFBNEM7QUFDMUMsV0FBTyxTQUFQO0FBQ0Q7OztBQUdELGlCQUFlLFFBQWY7OztBQUdBLGNBQVksdUJBQXVCLFFBQXZCLEdBQ1IscUJBQVEsU0FBUyxtQkFBVCxDQUFSLENBRFEsR0FFUixFQUFFLEtBQUs7QUFBQSxhQUFNLElBQU47QUFBQSxLQUFQLEVBRkosQzs7QUFJQSxTQUFPLFNBQVA7QUFDRDs7QUFFYyxTQUFTLE1BQVQsQ0FBZ0IsSUFBaEIsRUFBc0IsT0FBdEIsRUFBK0I7O0FBRTVDLE1BQU0sZ0JBQWdCLFFBQVEsUUFBUixDQUFpQixlQUFqQixJQUNsQixHQUFHLE1BQUgsQ0FBVSxRQUFRLFFBQVIsQ0FBaUIsZUFBakIsQ0FBVixDQURrQixHQUVsQixDQUFDLGNBQUQsQ0FGSjs7O0FBS0EsTUFBSSxDQUFDLGdCQUFnQixPQUFoQixFQUF5QixHQUF6QixDQUE2QixtQkFBUSxJQUFSLENBQTdCLENBQUwsRUFBa0QsT0FBTyxJQUFQOztBQUVsRCxNQUFJLGNBQWMsTUFBZCxLQUF5QixDQUE3QixFQUFnQyxPQUFPLEtBQVA7O0FBRWhDLE9BQUssSUFBSSxJQUFJLENBQWIsRUFBZ0IsSUFBSSxjQUFjLE1BQWxDLEVBQTBDLEdBQTFDLEVBQStDO0FBQzdDLFFBQUksUUFBUSxJQUFJLE1BQUosQ0FBVyxjQUFjLENBQWQsQ0FBWCxDQUFaO0FBQ0EsUUFBSSxNQUFNLElBQU4sQ0FBVyxJQUFYLENBQUosRUFBc0IsT0FBTyxJQUFQO0FBQ3ZCOztBQUVELFNBQU8sS0FBUDtBQUNEIiwiZmlsZSI6ImNvcmUvaWdub3JlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0bmFtZSB9IGZyb20gJ3BhdGgnXG5pbXBvcnQgU2V0IGZyb20gJ2VzNi1zZXQnXG5cbi8vIG9uZS1zaG90IG1lbW9pemVkXG5sZXQgY2FjaGVkU2V0LCBsYXN0U2V0dGluZ3NcbmZ1bmN0aW9uIHZhbGlkRXh0ZW5zaW9ucyh7IHNldHRpbmdzIH0pIHtcbiAgaWYgKGNhY2hlZFNldCAmJiBzZXR0aW5ncyA9PT0gbGFzdFNldHRpbmdzKSB7XG4gICAgcmV0dXJuIGNhY2hlZFNldFxuICB9XG5cbiAgLy8gdG9kbzogYWRkICdtanMnP1xuICBsYXN0U2V0dGluZ3MgPSBzZXR0aW5nc1xuICAvLyBicmVha2luZzogZGVmYXVsdCB0byAnLmpzJ1xuICAvLyBjYWNoZWRTZXQgPSBuZXcgU2V0KHNldHRpbmdzWydpbXBvcnQvZXh0ZW5zaW9ucyddIHx8IFsgJy5qcycgXSlcbiAgY2FjaGVkU2V0ID0gJ2ltcG9ydC9leHRlbnNpb25zJyBpbiBzZXR0aW5nc1xuICAgID8gbmV3IFNldChzZXR0aW5nc1snaW1wb3J0L2V4dGVuc2lvbnMnXSlcbiAgICA6IHsgaGFzOiAoKSA9PiB0cnVlIH0gLy8gdGhlIHNldCBvZiBhbGwgZWxlbWVudHNcblxuICByZXR1cm4gY2FjaGVkU2V0XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlnbm9yZShwYXRoLCBjb250ZXh0KSB7XG4gIC8vIGlnbm9yZSBub2RlX21vZHVsZXMgYnkgZGVmYXVsdFxuICBjb25zdCBpZ25vcmVTdHJpbmdzID0gY29udGV4dC5zZXR0aW5nc1snaW1wb3J0L2lnbm9yZSddXG4gICAgPyBbXS5jb25jYXQoY29udGV4dC5zZXR0aW5nc1snaW1wb3J0L2lnbm9yZSddKVxuICAgIDogWydub2RlX21vZHVsZXMnXVxuXG4gIC8vIGNoZWNrIGV4dGVuc2lvbiB3aGl0ZWxpc3QgZmlyc3QgKGNoZWFwKVxuICBpZiAoIXZhbGlkRXh0ZW5zaW9ucyhjb250ZXh0KS5oYXMoZXh0bmFtZShwYXRoKSkpIHJldHVybiB0cnVlXG5cbiAgaWYgKGlnbm9yZVN0cmluZ3MubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2VcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGlnbm9yZVN0cmluZ3MubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcmVnZXggPSBuZXcgUmVnRXhwKGlnbm9yZVN0cmluZ3NbaV0pXG4gICAgaWYgKHJlZ2V4LnRlc3QocGF0aCkpIHJldHVybiB0cnVlXG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cbiJdfQ==

@@ -68,2 +68,2 @@ 'use strict';

}
//# sourceMappingURL=data:application/json;base64,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QUFkLENBQWpDLENBQVAsQ0FEdUQ7Q0FBMUMiLCJmaWxlIjoiY29yZS9pbXBvcnRUeXBlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbmQgZnJvbSAnbG9kYXNoLmNvbmQnXG5pbXBvcnQgYnVpbHRpbk1vZHVsZXMgZnJvbSAnYnVpbHRpbi1tb2R1bGVzJ1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnXG5cbmltcG9ydCByZXNvbHZlIGZyb20gJy4vcmVzb2x2ZSdcblxuZnVuY3Rpb24gY29uc3RhbnQodmFsdWUpIHtcbiAgcmV0dXJuICgpID0+IHZhbHVlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0J1aWx0SW4obmFtZSwgc2V0dGluZ3MpIHtcbiAgY29uc3QgZXh0cmFzID0gKHNldHRpbmdzICYmIHNldHRpbmdzWydpbXBvcnQvY29yZS1tb2R1bGVzJ10pIHx8IFtdXG4gIHJldHVybiBidWlsdGluTW9kdWxlcy5pbmRleE9mKG5hbWUpICE9PSAtMSB8fCBleHRyYXMuaW5kZXhPZihuYW1lKSA+IC0xXG59XG5cbmNvbnN0IGV4dGVybmFsTW9kdWxlUmVnRXhwID0gL15cXHcvXG5mdW5jdGlvbiBpc0V4dGVybmFsTW9kdWxlKG5hbWUsIHNldHRpbmdzLCBwYXRoKSB7XG4gIGlmICghZXh0ZXJuYWxNb2R1bGVSZWdFeHAudGVzdChuYW1lKSkgcmV0dXJuIGZhbHNlXG4gIHJldHVybiAoIXBhdGggfHwgLTEgPCBwYXRoLmluZGV4T2Yoam9pbignbm9kZV9tb2R1bGVzJywgbmFtZSkpKVxufVxuXG5jb25zdCBzY29wZWRSZWdFeHAgPSAvXkBcXHcrXFwvXFx3Ky9cbmZ1bmN0aW9uIGlzU2NvcGVkKG5hbWUpIHtcbiAgcmV0dXJuIHNjb3BlZFJlZ0V4cC50ZXN0KG5hbWUpXG59XG5cbmZ1bmN0aW9uIGlzSW50ZXJuYWxNb2R1bGUobmFtZSwgc2V0dGluZ3MsIHBhdGgpIHtcbiAgaWYgKCFleHRlcm5hbE1vZHVsZVJlZ0V4cC50ZXN0KG5hbWUpKSByZXR1cm4gZmFsc2VcbiAgcmV0dXJuIChwYXRoICYmIC0xID09PSBwYXRoLmluZGV4T2Yoam9pbignbm9kZV9tb2R1bGVzJywgbmFtZSkpKVxufVxuXG5mdW5jdGlvbiBpc1JlbGF0aXZlVG9QYXJlbnQobmFtZSkge1xuICByZXR1cm4gbmFtZS5pbmRleE9mKCcuLi8nKSA9PT0gMFxufVxuXG5jb25zdCBpbmRleEZpbGVzID0gWycuJywgJy4vJywgJy4vaW5kZXgnLCAnLi9pbmRleC5qcyddXG5mdW5jdGlvbiBpc0luZGV4KG5hbWUpIHtcbiAgcmV0dXJuIGluZGV4RmlsZXMuaW5kZXhPZihuYW1lKSAhPT0gLTFcbn1cblxuZnVuY3Rpb24gaXNSZWxhdGl2ZVRvU2libGluZyhuYW1lKSB7XG4gIHJldHVybiBuYW1lLmluZGV4T2YoJy4vJykgPT09IDBcbn1cblxuY29uc3QgdHlwZVRlc3QgPSBjb25kKFtcbiAgW2lzQnVpbHRJbiwgY29uc3RhbnQoJ2J1aWx0aW4nKV0sXG4gIFtpc0V4dGVybmFsTW9kdWxlLCBjb25zdGFudCgnZXh0ZXJuYWwnKV0sXG4gIFtpc1Njb3BlZCwgY29uc3RhbnQoJ2V4dGVybmFsJyldLFxuICBbaXNJbnRlcm5hbE1vZHVsZSwgY29uc3RhbnQoJ2ludGVybmFsJyldLFxuICBbaXNSZWxhdGl2ZVRvUGFyZW50LCBjb25zdGFudCgncGFyZW50JyldLFxuICBbaXNJbmRleCwgY29uc3RhbnQoJ2luZGV4JyldLFxuICBbaXNSZWxhdGl2ZVRvU2libGluZywgY29uc3RhbnQoJ3NpYmxpbmcnKV0sXG4gIFtjb25zdGFudCh0cnVlKSwgY29uc3RhbnQoJ3Vua25vd24nKV0sXG5dKVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXNvbHZlSW1wb3J0VHlwZShuYW1lLCBjb250ZXh0KSB7XG4gIHJldHVybiB0eXBlVGVzdChuYW1lLCBjb250ZXh0LnNldHRpbmdzLCByZXNvbHZlKG5hbWUsIGNvbnRleHQpKVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,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VHlwZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb25kIGZyb20gJ2xvZGFzaC5jb25kJ1xuaW1wb3J0IGJ1aWx0aW5Nb2R1bGVzIGZyb20gJ2J1aWx0aW4tbW9kdWxlcydcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICcuL3Jlc29sdmUnXG5cbmZ1bmN0aW9uIGNvbnN0YW50KHZhbHVlKSB7XG4gIHJldHVybiAoKSA9PiB2YWx1ZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCdWlsdEluKG5hbWUsIHNldHRpbmdzKSB7XG4gIGNvbnN0IGV4dHJhcyA9IChzZXR0aW5ncyAmJiBzZXR0aW5nc1snaW1wb3J0L2NvcmUtbW9kdWxlcyddKSB8fCBbXVxuICByZXR1cm4gYnVpbHRpbk1vZHVsZXMuaW5kZXhPZihuYW1lKSAhPT0gLTEgfHwgZXh0cmFzLmluZGV4T2YobmFtZSkgPiAtMVxufVxuXG5jb25zdCBleHRlcm5hbE1vZHVsZVJlZ0V4cCA9IC9eXFx3L1xuZnVuY3Rpb24gaXNFeHRlcm5hbE1vZHVsZShuYW1lLCBzZXR0aW5ncywgcGF0aCkge1xuICBpZiAoIWV4dGVybmFsTW9kdWxlUmVnRXhwLnRlc3QobmFtZSkpIHJldHVybiBmYWxzZVxuICByZXR1cm4gKCFwYXRoIHx8IC0xIDwgcGF0aC5pbmRleE9mKGpvaW4oJ25vZGVfbW9kdWxlcycsIG5hbWUpKSlcbn1cblxuY29uc3Qgc2NvcGVkUmVnRXhwID0gL15AXFx3K1xcL1xcdysvXG5mdW5jdGlvbiBpc1Njb3BlZChuYW1lKSB7XG4gIHJldHVybiBzY29wZWRSZWdFeHAudGVzdChuYW1lKVxufVxuXG5mdW5jdGlvbiBpc0ludGVybmFsTW9kdWxlKG5hbWUsIHNldHRpbmdzLCBwYXRoKSB7XG4gIGlmICghZXh0ZXJuYWxNb2R1bGVSZWdFeHAudGVzdChuYW1lKSkgcmV0dXJuIGZhbHNlXG4gIHJldHVybiAocGF0aCAmJiAtMSA9PT0gcGF0aC5pbmRleE9mKGpvaW4oJ25vZGVfbW9kdWxlcycsIG5hbWUpKSlcbn1cblxuZnVuY3Rpb24gaXNSZWxhdGl2ZVRvUGFyZW50KG5hbWUpIHtcbiAgcmV0dXJuIG5hbWUuaW5kZXhPZignLi4vJykgPT09IDBcbn1cblxuY29uc3QgaW5kZXhGaWxlcyA9IFsnLicsICcuLycsICcuL2luZGV4JywgJy4vaW5kZXguanMnXVxuZnVuY3Rpb24gaXNJbmRleChuYW1lKSB7XG4gIHJldHVybiBpbmRleEZpbGVzLmluZGV4T2YobmFtZSkgIT09IC0xXG59XG5cbmZ1bmN0aW9uIGlzUmVsYXRpdmVUb1NpYmxpbmcobmFtZSkge1xuICByZXR1cm4gbmFtZS5pbmRleE9mKCcuLycpID09PSAwXG59XG5cbmNvbnN0IHR5cGVUZXN0ID0gY29uZChbXG4gIFtpc0J1aWx0SW4sIGNvbnN0YW50KCdidWlsdGluJyldLFxuICBbaXNFeHRlcm5hbE1vZHVsZSwgY29uc3RhbnQoJ2V4dGVybmFsJyldLFxuICBbaXNTY29wZWQsIGNvbnN0YW50KCdleHRlcm5hbCcpXSxcbiAgW2lzSW50ZXJuYWxNb2R1bGUsIGNvbnN0YW50KCdpbnRlcm5hbCcpXSxcbiAgW2lzUmVsYXRpdmVUb1BhcmVudCwgY29uc3RhbnQoJ3BhcmVudCcpXSxcbiAgW2lzSW5kZXgsIGNvbnN0YW50KCdpbmRleCcpXSxcbiAgW2lzUmVsYXRpdmVUb1NpYmxpbmcsIGNvbnN0YW50KCdzaWJsaW5nJyldLFxuICBbY29uc3RhbnQodHJ1ZSksIGNvbnN0YW50KCd1bmtub3duJyldLFxuXSlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVzb2x2ZUltcG9ydFR5cGUobmFtZSwgY29udGV4dCkge1xuICByZXR1cm4gdHlwZVRlc3QobmFtZSwgY29udGV4dC5zZXR0aW5ncywgcmVzb2x2ZShuYW1lLCBjb250ZXh0KSlcbn1cbiJdfQ==

@@ -42,2 +42,2 @@ 'use strict';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvbW9kdWxlLXJlcXVpcmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O2tCQVd3Qjs7QUFYeEI7Ozs7QUFDQTs7SUFBWTs7Ozs7OztBQUdaLFNBQVMsWUFBVCxDQUFzQixRQUF0QixFQUFnQztBQUM5QixNQUFJLE1BQU0scUJBQVcsUUFBWCxDQUFOLENBRDBCO0FBRTlCLE1BQUksUUFBSixHQUFlLFFBQWYsQ0FGOEI7QUFHOUIsTUFBSSxLQUFKLEdBQVksaUJBQU8sZ0JBQVAsQ0FBd0IsS0FBSyxPQUFMLENBQWEsUUFBYixDQUF4QixDQUFaLENBSDhCO0FBSTlCLFNBQU8sR0FBUCxDQUo4QjtDQUFoQzs7QUFPZSxTQUFTLGFBQVQsQ0FBdUIsQ0FBdkIsRUFBMEI7QUFDdkMsTUFBSTs7QUFFRixRQUFNLGFBQWEsUUFBUSxPQUFSLENBQWdCLFFBQWhCLENBQWIsQ0FGSjtBQUdGLFFBQU0sZUFBZSxhQUFhLFVBQWIsQ0FBZixDQUhKO0FBSUYsV0FBTyxRQUFRLGlCQUFPLGdCQUFQLENBQXdCLENBQXhCLEVBQTJCLFlBQTNCLENBQVIsQ0FBUCxDQUpFO0dBQUosQ0FLRSxPQUFNLEdBQU4sRUFBVyxjQUFYOztBQUVGLE1BQUk7O0FBRUYsV0FBTyxRQUFRLElBQVIsQ0FBYSxPQUFiLENBQXFCLENBQXJCLENBQVAsQ0FGRTtHQUFKLENBR0UsT0FBTSxHQUFOLEVBQVc7OztBQUFYLFNBR0ssUUFBUSxDQUFSLENBQVAsQ0FkdUM7Q0FBMUIiLCJmaWxlIjoiY29yZS9tb2R1bGUtcmVxdWlyZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNb2R1bGUgZnJvbSAnbW9kdWxlJ1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xuXG4vLyBib3Jyb3dlZCBmcm9tIGJhYmVsLWVzbGludFxuZnVuY3Rpb24gY3JlYXRlTW9kdWxlKGZpbGVuYW1lKSB7XG4gIHZhciBtb2QgPSBuZXcgTW9kdWxlKGZpbGVuYW1lKVxuICBtb2QuZmlsZW5hbWUgPSBmaWxlbmFtZVxuICBtb2QucGF0aHMgPSBNb2R1bGUuX25vZGVNb2R1bGVQYXRocyhwYXRoLmRpcm5hbWUoZmlsZW5hbWUpKVxuICByZXR1cm4gbW9kXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1vZHVsZVJlcXVpcmUocCkge1xuICB0cnkge1xuICAgIC8vIGF0dGVtcHQgdG8gZ2V0IGVzcHJlZSByZWxhdGl2ZSB0byBlc2xpbnRcbiAgICBjb25zdCBlc2xpbnRQYXRoID0gcmVxdWlyZS5yZXNvbHZlKCdlc2xpbnQnKVxuICAgIGNvbnN0IGVzbGludE1vZHVsZSA9IGNyZWF0ZU1vZHVsZShlc2xpbnRQYXRoKVxuICAgIHJldHVybiByZXF1aXJlKE1vZHVsZS5fcmVzb2x2ZUZpbGVuYW1lKHAsIGVzbGludE1vZHVsZSkpXG4gIH0gY2F0Y2goZXJyKSB7IC8qIGlnbm9yZSAqLyB9XG5cbiAgdHJ5IHtcbiAgICAvLyB0cnkgcmVsYXRpdmUgdG8gZW50cnkgcG9pbnRcbiAgICByZXR1cm4gcmVxdWlyZS5tYWluLnJlcXVpcmUocClcbiAgfSBjYXRjaChlcnIpIHsgLyogaWdub3JlICovIH1cblxuICAvLyBmaW5hbGx5LCB0cnkgZnJvbSBoZXJlXG4gIHJldHVybiByZXF1aXJlKHApXG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvbW9kdWxlLXJlcXVpcmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O2tCQVd3QixhOztBQVh4Qjs7OztBQUNBOztJQUFZLEk7Ozs7Ozs7QUFHWixTQUFTLFlBQVQsQ0FBc0IsUUFBdEIsRUFBZ0M7QUFDOUIsTUFBSSxNQUFNLHFCQUFXLFFBQVgsQ0FBVjtBQUNBLE1BQUksUUFBSixHQUFlLFFBQWY7QUFDQSxNQUFJLEtBQUosR0FBWSxpQkFBTyxnQkFBUCxDQUF3QixLQUFLLE9BQUwsQ0FBYSxRQUFiLENBQXhCLENBQVo7QUFDQSxTQUFPLEdBQVA7QUFDRDs7QUFFYyxTQUFTLGFBQVQsQ0FBdUIsQ0FBdkIsRUFBMEI7QUFDdkMsTUFBSTs7QUFFRixRQUFNLGFBQWEsUUFBUSxPQUFSLENBQWdCLFFBQWhCLENBQW5CO0FBQ0EsUUFBTSxlQUFlLGFBQWEsVUFBYixDQUFyQjtBQUNBLFdBQU8sUUFBUSxpQkFBTyxnQkFBUCxDQUF3QixDQUF4QixFQUEyQixZQUEzQixDQUFSLENBQVA7QUFDRCxHQUxELENBS0UsT0FBTSxHQUFOLEVBQVcsQyxZQUFnQjs7QUFFN0IsTUFBSTs7QUFFRixXQUFPLFFBQVEsSUFBUixDQUFhLE9BQWIsQ0FBcUIsQ0FBckIsQ0FBUDtBQUNELEdBSEQsQ0FHRSxPQUFNLEdBQU4sRUFBVyxDQUFnQixDOzs7QUFHN0IsU0FBTyxRQUFRLENBQVIsQ0FBUDtBQUNEIiwiZmlsZSI6ImNvcmUvbW9kdWxlLXJlcXVpcmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTW9kdWxlIGZyb20gJ21vZHVsZSdcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCdcblxuLy8gYm9ycm93ZWQgZnJvbSBiYWJlbC1lc2xpbnRcbmZ1bmN0aW9uIGNyZWF0ZU1vZHVsZShmaWxlbmFtZSkge1xuICB2YXIgbW9kID0gbmV3IE1vZHVsZShmaWxlbmFtZSlcbiAgbW9kLmZpbGVuYW1lID0gZmlsZW5hbWVcbiAgbW9kLnBhdGhzID0gTW9kdWxlLl9ub2RlTW9kdWxlUGF0aHMocGF0aC5kaXJuYW1lKGZpbGVuYW1lKSlcbiAgcmV0dXJuIG1vZFxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtb2R1bGVSZXF1aXJlKHApIHtcbiAgdHJ5IHtcbiAgICAvLyBhdHRlbXB0IHRvIGdldCBlc3ByZWUgcmVsYXRpdmUgdG8gZXNsaW50XG4gICAgY29uc3QgZXNsaW50UGF0aCA9IHJlcXVpcmUucmVzb2x2ZSgnZXNsaW50JylcbiAgICBjb25zdCBlc2xpbnRNb2R1bGUgPSBjcmVhdGVNb2R1bGUoZXNsaW50UGF0aClcbiAgICByZXR1cm4gcmVxdWlyZShNb2R1bGUuX3Jlc29sdmVGaWxlbmFtZShwLCBlc2xpbnRNb2R1bGUpKVxuICB9IGNhdGNoKGVycikgeyAvKiBpZ25vcmUgKi8gfVxuXG4gIHRyeSB7XG4gICAgLy8gdHJ5IHJlbGF0aXZlIHRvIGVudHJ5IHBvaW50XG4gICAgcmV0dXJuIHJlcXVpcmUubWFpbi5yZXF1aXJlKHApXG4gIH0gY2F0Y2goZXJyKSB7IC8qIGlnbm9yZSAqLyB9XG5cbiAgLy8gZmluYWxseSwgdHJ5IGZyb20gaGVyZVxuICByZXR1cm4gcmVxdWlyZShwKVxufVxuIl19

@@ -37,2 +37,2 @@ 'use strict';

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvcGFyc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztrQkFHZSxVQUFVLE9BQVYsRUFBbUIsT0FBbkIsRUFBNEI7O0FBRXpDLE1BQUksV0FBVyxJQUFYLEVBQWlCLE1BQU0sSUFBSSxLQUFKLENBQVUsZ0NBQVYsQ0FBTixDQUFyQjs7TUFFTSxnQkFBOEIsUUFBOUIsY0FKbUM7TUFJcEIsYUFBZSxRQUFmLFdBSm9COzs7QUFNekMsTUFBSSxDQUFDLFVBQUQsRUFBYSxNQUFNLElBQUksS0FBSixDQUFVLHlCQUFWLENBQU4sQ0FBakI7OztBQU55QyxlQVN6QyxHQUFnQiw0QkFBTyxFQUFQLEVBQVcsYUFBWCxDQUFoQixDQVR5QztBQVV6QyxnQkFBYyxZQUFkLEdBQTZCLDRCQUFPLEVBQVAsRUFBVyxjQUFjLFlBQWQsQ0FBeEM7OztBQVZ5QyxlQWF6QyxDQUFjLGFBQWQsR0FBOEIsSUFBOUI7OztBQWJ5QyxNQWdCbkMsU0FBUyw2QkFBYyxVQUFkLENBQVQsQ0FoQm1DOztBQWtCekMsU0FBTyxPQUFPLEtBQVAsQ0FBYSxPQUFiLEVBQXNCLGFBQXRCLENBQVAsQ0FsQnlDO0NBQTVCOztBQUhmOzs7O0FBQ0EiLCJmaWxlIjoiY29yZS9wYXJzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2R1bGVSZXF1aXJlIGZyb20gJy4vbW9kdWxlLXJlcXVpcmUnXG5pbXBvcnQgYXNzaWduIGZyb20gJ29iamVjdC1hc3NpZ24nXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChjb250ZW50LCBjb250ZXh0KSB7XG5cbiAgaWYgKGNvbnRleHQgPT0gbnVsbCkgdGhyb3cgbmV3IEVycm9yKCduZWVkIGNvbnRleHQgdG8gcGFyc2UgcHJvcGVybHknKVxuXG4gIGxldCB7IHBhcnNlck9wdGlvbnMsIHBhcnNlclBhdGggfSA9IGNvbnRleHRcblxuICBpZiAoIXBhcnNlclBhdGgpIHRocm93IG5ldyBFcnJvcigncGFyc2VyUGF0aCBpcyByZXF1aXJlZCEnKVxuXG4gIC8vIGhhY2s6IGVzcHJlZSBibG93cyB1cCB3aXRoIGZyb3plbiBvcHRpb25zXG4gIHBhcnNlck9wdGlvbnMgPSBhc3NpZ24oe30sIHBhcnNlck9wdGlvbnMpXG4gIHBhcnNlck9wdGlvbnMuZWNtYUZlYXR1cmVzID0gYXNzaWduKHt9LCBwYXJzZXJPcHRpb25zLmVjbWFGZWF0dXJlcylcblxuICAvLyBhbHdheXMgYXR0YWNoIGNvbW1lbnRzXG4gIHBhcnNlck9wdGlvbnMuYXR0YWNoQ29tbWVudCA9IHRydWVcblxuICAvLyByZXF1aXJlIHRoZSBwYXJzZXIgcmVsYXRpdmUgdG8gdGhlIG1haW4gbW9kdWxlIChpLmUuLCBFU0xpbnQpXG4gIGNvbnN0IHBhcnNlciA9IG1vZHVsZVJlcXVpcmUocGFyc2VyUGF0aClcblxuICByZXR1cm4gcGFyc2VyLnBhcnNlKGNvbnRlbnQsIHBhcnNlck9wdGlvbnMpXG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvcGFyc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztrQkFHZSxVQUFVLE9BQVYsRUFBbUIsT0FBbkIsRUFBNEI7O0FBRXpDLE1BQUksV0FBVyxJQUFmLEVBQXFCLE1BQU0sSUFBSSxLQUFKLENBQVUsZ0NBQVYsQ0FBTjs7QUFGb0IsTUFJbkMsYUFKbUMsR0FJTCxPQUpLLENBSW5DLGFBSm1DO0FBQUEsTUFJcEIsVUFKb0IsR0FJTCxPQUpLLENBSXBCLFVBSm9COzs7QUFNekMsTUFBSSxDQUFDLFVBQUwsRUFBaUIsTUFBTSxJQUFJLEtBQUosQ0FBVSx5QkFBVixDQUFOOzs7QUFHakIsa0JBQWdCLDRCQUFPLEVBQVAsRUFBVyxhQUFYLENBQWhCO0FBQ0EsZ0JBQWMsWUFBZCxHQUE2Qiw0QkFBTyxFQUFQLEVBQVcsY0FBYyxZQUF6QixDQUE3Qjs7O0FBR0EsZ0JBQWMsYUFBZCxHQUE4QixJQUE5Qjs7O0FBR0EsTUFBTSxTQUFTLDZCQUFjLFVBQWQsQ0FBZjs7QUFFQSxTQUFPLE9BQU8sS0FBUCxDQUFhLE9BQWIsRUFBc0IsYUFBdEIsQ0FBUDtBQUNELEM7O0FBdEJEOzs7O0FBQ0EiLCJmaWxlIjoiY29yZS9wYXJzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2R1bGVSZXF1aXJlIGZyb20gJy4vbW9kdWxlLXJlcXVpcmUnXG5pbXBvcnQgYXNzaWduIGZyb20gJ29iamVjdC1hc3NpZ24nXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChjb250ZW50LCBjb250ZXh0KSB7XG5cbiAgaWYgKGNvbnRleHQgPT0gbnVsbCkgdGhyb3cgbmV3IEVycm9yKCduZWVkIGNvbnRleHQgdG8gcGFyc2UgcHJvcGVybHknKVxuXG4gIGxldCB7IHBhcnNlck9wdGlvbnMsIHBhcnNlclBhdGggfSA9IGNvbnRleHRcblxuICBpZiAoIXBhcnNlclBhdGgpIHRocm93IG5ldyBFcnJvcigncGFyc2VyUGF0aCBpcyByZXF1aXJlZCEnKVxuXG4gIC8vIGhhY2s6IGVzcHJlZSBibG93cyB1cCB3aXRoIGZyb3plbiBvcHRpb25zXG4gIHBhcnNlck9wdGlvbnMgPSBhc3NpZ24oe30sIHBhcnNlck9wdGlvbnMpXG4gIHBhcnNlck9wdGlvbnMuZWNtYUZlYXR1cmVzID0gYXNzaWduKHt9LCBwYXJzZXJPcHRpb25zLmVjbWFGZWF0dXJlcylcblxuICAvLyBhbHdheXMgYXR0YWNoIGNvbW1lbnRzXG4gIHBhcnNlck9wdGlvbnMuYXR0YWNoQ29tbWVudCA9IHRydWVcblxuICAvLyByZXF1aXJlIHRoZSBwYXJzZXIgcmVsYXRpdmUgdG8gdGhlIG1haW4gbW9kdWxlIChpLmUuLCBFU0xpbnQpXG4gIGNvbnN0IHBhcnNlciA9IG1vZHVsZVJlcXVpcmUocGFyc2VyUGF0aClcblxuICByZXR1cm4gcGFyc2VyLnBhcnNlKGNvbnRlbnQsIHBhcnNlck9wdGlvbnMpXG59XG4iXX0=

@@ -108,4 +108,3 @@ 'use strict';

var cacheSettings = (0, _objectAssign2.default)({
lifetime: 30 }, // seconds
settings['import/cache']);
lifetime: 30 }, settings['import/cache']);

@@ -264,2 +263,2 @@ // parse infinity

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvcmVzb2x2ZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O1FBdURnQjtrQkFvSVE7O0FBM0x4Qjs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOzs7O0FBQ0E7O0lBQVk7O0FBdU1aOzs7Ozs7QUFyTU8sSUFBTSxnREFBb0IsQ0FBQyxhQUFHLFVBQUgsQ0FBYyxLQUFLLElBQUwsQ0FBVSxTQUFWLEVBQXFCLFlBQXJCLENBQWQsQ0FBRDs7QUFFakMsSUFBTSxrQkFBa0Isc0JBQWxCOztBQUVOLFNBQVMsU0FBVCxDQUFtQixRQUFuQixFQUE2QixNQUE3QixFQUFxQztBQUNuQyxrQkFBZ0IsR0FBaEIsQ0FBb0IsUUFBcEIsRUFBOEIsRUFBRSxjQUFGLEVBQVUsVUFBVSxLQUFLLEdBQUwsRUFBVixFQUF4QyxFQURtQztDQUFyQzs7QUFJQSxTQUFTLFVBQVQsQ0FBb0IsUUFBcEIsUUFBNEM7TUFBWix5QkFBWTs7QUFDMUMsTUFBSSxnQkFBZ0IsR0FBaEIsQ0FBb0IsUUFBcEIsQ0FBSixFQUFtQzsrQkFDSixnQkFBZ0IsR0FBaEIsQ0FBb0IsUUFBcEIsRUFESTs7UUFDekIscUNBRHlCO1FBQ2pCOztBQURpQjtBQUdqQyxRQUFJLEtBQUssR0FBTCxLQUFhLFFBQWIsR0FBeUIsV0FBVyxJQUFYLEVBQWtCLE9BQU8sTUFBUCxDQUEvQztHQUhGOztBQUQwQyxTQU9uQyxTQUFQLENBUDBDO0NBQTVDOzs7QUFXQSxTQUFTLHNCQUFULENBQWdDLFFBQWhDLEVBQTBDLGFBQTFDLEVBQXlEOztBQUV2RCxNQUFJLGlCQUFKLEVBQXVCLE9BQU8sSUFBUCxDQUF2Qjs7O0FBRnVELE1BS25ELGFBQWEsSUFBYixFQUFtQixPQUFPLElBQVAsQ0FBdkI7O0FBRUEsTUFBTSxNQUFNLEtBQUssT0FBTCxDQUFhLFFBQWIsQ0FBTixDQVBpRDs7QUFTdkQsTUFBSSxTQUFTLFdBQVcsUUFBWCxFQUFxQixhQUFyQixDQUFULENBVG1EO0FBVXZELE1BQUksVUFBVSxJQUFWLEVBQWdCLE9BQU8sTUFBUCxDQUFwQjs7O0FBVnVELE1BYW5ELFFBQVEsR0FBUixJQUFlLFFBQVEsR0FBUixJQUFlLGNBQWMsSUFBZCxDQUFtQixHQUFuQixDQUE5QixFQUF1RDtBQUN6RCxhQUFTLElBQVQsQ0FEeUQ7R0FBM0QsTUFFTztBQUNMLFFBQU0sWUFBWSxhQUFHLFdBQUgsQ0FBZSxHQUFmLENBQVosQ0FERDtBQUVMLFFBQUksVUFBVSxPQUFWLENBQWtCLEtBQUssUUFBTCxDQUFjLFFBQWQsQ0FBbEIsTUFBK0MsQ0FBQyxDQUFELEVBQUk7QUFDckQsZUFBUyxLQUFULENBRHFEO0tBQXZELE1BRU87QUFDTCxlQUFTLHVCQUF1QixHQUF2QixFQUE0QixhQUE1QixDQUFULENBREs7S0FGUDtHQUpGO0FBVUEsWUFBVSxRQUFWLEVBQW9CLE1BQXBCLEVBdkJ1RDtBQXdCdkQsU0FBTyxNQUFQLENBeEJ1RDtDQUF6RDs7QUEyQk8sU0FBUyxRQUFULENBQWtCLFVBQWxCLEVBQThCLFVBQTlCLEVBQTBDLFFBQTFDLEVBQW9EO0FBQ3pELFNBQU8sWUFBWSxVQUFaLEVBQXdCLFVBQXhCLEVBQW9DLFFBQXBDLEVBQThDLElBQTlDLENBRGtEO0NBQXBEOztBQUlQLFNBQVMsV0FBVCxDQUFxQixVQUFyQixFQUFpQyxVQUFqQyxFQUE2QyxRQUE3QyxFQUF1RDs7QUFFckQsTUFBTSxVQUFVLHFCQUFRLFNBQVMscUJBQVQsQ0FBUixDQUFWLENBRitDO0FBR3JELE1BQUksV0FBVyxJQUFYLElBQW1CLFFBQVEsR0FBUixDQUFZLFVBQVosQ0FBbkIsRUFBNEMsT0FBTyxFQUFFLE9BQU8sSUFBUCxFQUFhLE1BQU0sSUFBTixFQUF0QixDQUFoRDs7QUFFQSxNQUFNLFlBQVksS0FBSyxPQUFMLENBQWEsVUFBYixDQUFaO01BQ0EsV0FBVyxZQUFZLFdBQVcsUUFBWCxDQUFaLEdBQW1DLFVBQW5DLENBTm9DOztBQVFyRCxNQUFNLGdCQUFnQiw0QkFBTztBQUMzQixjQUFVLEVBQVYsRUFEb0I7QUFFbkIsV0FBUyxjQUFULENBRm1CLENBQWhCOzs7QUFSK0MsTUFhakQsY0FBYyxRQUFkLEtBQTJCLEdBQTNCLElBQWtDLGNBQWMsUUFBZCxLQUEyQixVQUEzQixFQUF1QztBQUMzRSxrQkFBYyxRQUFkLEdBQXlCLFFBQXpCLENBRDJFO0dBQTdFOztBQUlBLE1BQU0sYUFBYSxXQUFXLFFBQVgsRUFBcUIsYUFBckIsQ0FBYixDQWpCK0M7QUFrQnJELE1BQUksZUFBZSxTQUFmLEVBQTBCLE9BQU8sRUFBRSxPQUFPLElBQVAsRUFBYSxNQUFNLFVBQU4sRUFBdEIsQ0FBOUI7O0FBRUEsV0FBUyxLQUFULENBQWUsWUFBZixFQUE2QjtBQUMzQixjQUFVLFFBQVYsRUFBb0IsWUFBcEIsRUFEMkI7R0FBN0I7O0FBSUEsV0FBUyxZQUFULENBQXNCLFFBQXRCLEVBQWdDLE1BQWhDLEVBQXdDOztBQUV0QyxhQUFTLEVBQVQsR0FBYztBQUNaLFVBQUk7QUFDRixZQUFNLFdBQVcsU0FBUyxhQUFULENBQXVCLFVBQXZCLEVBQW1DLFVBQW5DLEVBQStDLE1BQS9DLENBQVgsQ0FESjtBQUVGLFlBQUksYUFBYSxTQUFiLEVBQXdCLE9BQU8sRUFBRSxPQUFPLEtBQVAsRUFBVCxDQUE1QjtBQUNBLGVBQU8sRUFBRSxPQUFPLElBQVAsRUFBYSxNQUFNLFFBQU4sRUFBdEIsQ0FIRTtPQUFKLENBSUUsT0FBTyxHQUFQLEVBQVk7QUFDWixlQUFPLEVBQUUsT0FBTyxLQUFQLEVBQVQsQ0FEWTtPQUFaO0tBTEo7O0FBVUEsYUFBUyxFQUFULEdBQWM7QUFDWixhQUFPLFNBQVMsT0FBVCxDQUFpQixVQUFqQixFQUE2QixVQUE3QixFQUF5QyxNQUF6QyxDQUFQLENBRFk7S0FBZDs7QUFJQSxZQUFRLFNBQVMsZ0JBQVQ7QUFDTixXQUFLLENBQUw7QUFDRSxlQUFPLElBQVAsQ0FERjs7QUFERjtBQUtFLFdBQUssQ0FBTDtBQUNFLGVBQU8sSUFBUCxDQURGO0FBTEYsS0FoQnNDO0dBQXhDOztBQTBCQSxNQUFNLGtCQUFtQixTQUFTLGlCQUFULEtBQ3BCLEVBQUUsUUFBUSxTQUFTLGdCQUFULENBQVIsRUFEa0I7O0FBbEQ0QixNQXFEL0MsWUFBWSxnQkFBZ0IsZUFBaEIsRUFBaUMsc0JBQWpDLENBQVosQ0FyRCtDOztBQXVEckQsdUJBQTJCLHVIQUEzQixJQUFzQzs7Ozs7Ozs7Ozs7OztRQUE1QixnQkFBNEI7UUFBdEIsa0JBQXNCOztBQUNwQyxRQUFNLFdBQVcsZ0JBQWdCLElBQWhCLEVBQXNCLFVBQXRCLENBQVg7UUFDQSxXQUFXLGFBQWEsUUFBYixFQUF1QixNQUF2QixDQUFYLENBRjhCOztBQUlwQyxRQUFJLENBQUMsU0FBUyxLQUFULEVBQWdCLFNBQXJCOzs7QUFKb0MsUUFPaEMsQ0FBQyx1QkFBdUIsU0FBUyxJQUFULEVBQWUsYUFBdEMsQ0FBRCxFQUF1RCxTQUEzRDs7O0FBUG9DLFNBVXBDLENBQU0sU0FBUyxJQUFULENBQU4sQ0FWb0M7QUFXcEMsV0FBTyxRQUFQLENBWG9DO0dBQXRDOzs7O0FBdkRxRCxTQXVFOUMsRUFBRSxPQUFPLEtBQVAsRUFBVCxDQXZFcUQ7Q0FBdkQ7O0FBMEVBLFNBQVMsZUFBVCxDQUF5QixTQUF6QixFQUFvQyxHQUFwQyxFQUF5QztBQUN2QyxNQUFJLHFCQUFxQixLQUFyQixFQUE0QjtBQUM5QixjQUFVLE9BQVYsQ0FBa0I7YUFBSyxnQkFBZ0IsQ0FBaEIsRUFBbUIsR0FBbkI7S0FBTCxDQUFsQixDQUQ4QjtBQUU5QixXQUFPLEdBQVAsQ0FGOEI7R0FBaEM7O0FBS0EsTUFBSSxPQUFPLFNBQVAsS0FBcUIsUUFBckIsRUFBK0I7QUFDakMsUUFBSSxHQUFKLENBQVEsU0FBUixFQUFtQixJQUFuQixFQURpQztBQUVqQyxXQUFPLEdBQVAsQ0FGaUM7R0FBbkM7O0FBS0EsTUFBSSxRQUFPLDZEQUFQLEtBQXFCLFFBQXJCLEVBQStCO0FBQ2pDLFNBQUssSUFBSSxHQUFKLElBQVcsU0FBaEIsRUFBMkI7QUFDekIsVUFBSSxHQUFKLENBQVEsR0FBUixFQUFhLFVBQVUsR0FBVixDQUFiLEVBRHlCO0tBQTNCO0FBR0EsV0FBTyxHQUFQLENBSmlDO0dBQW5DOztBQU9BLFFBQU0sSUFBSSxLQUFKLENBQVUseUJBQVYsQ0FBTixDQWxCdUM7Q0FBekM7O0FBcUJBLFNBQVMsZUFBVCxDQUF5QixJQUF6QixFQUErQixVQUEvQixFQUEyQzs7QUFFekMsTUFBSTtBQUNGLFdBQU8sb0NBQWtDLElBQWxDLENBQVAsQ0FERTtHQUFKLENBRUUsT0FBTyxHQUFQLEVBQVk7OztBQUFaLE1BR0U7QUFDRixXQUFPLFFBQVEsSUFBUixDQUFQLENBREU7R0FBSixDQUVFLE9BQU8sR0FBUCxFQUFZOzs7O0FBQVosTUFJRTtBQUNGLFFBQU0sVUFBVSxpQkFBTyxJQUFQLENBQVksVUFBWixLQUEyQixRQUFRLEdBQVIsRUFBM0I7O0FBRGQsV0FHSyxRQUFRLEtBQUssT0FBTCxDQUFhLE9BQWIsRUFBc0IsSUFBdEIsQ0FBUixDQUFQLENBSEU7R0FBSixDQUlFLE9BQU8sR0FBUCxFQUFZOzs7QUFBWixRQUdJLElBQUksS0FBSiwrQkFBc0MsV0FBdEMsQ0FBTixDQXBCeUM7Q0FBM0M7O0FBdUJBLElBQU0sa0JBQWtCLHNCQUFsQjs7Ozs7Ozs7OztBQVVTLFNBQVMsT0FBVCxDQUFpQixDQUFqQixFQUFvQixPQUFwQixFQUE2QjtBQUMxQyxNQUFJO0FBQ0YsV0FBTyxTQUFVLENBQVYsRUFDVSxRQUFRLFdBQVIsRUFEVixFQUVVLFFBQVEsUUFBUixDQUZqQixDQURFO0dBQUosQ0FLRSxPQUFPLEdBQVAsRUFBWTtBQUNaLFFBQUksQ0FBQyxnQkFBZ0IsR0FBaEIsQ0FBb0IsT0FBcEIsQ0FBRCxFQUErQjtBQUNqQyxjQUFRLE1BQVIsQ0FBZTtBQUNiLHFDQUEyQixJQUFJLE9BQUo7QUFDM0IsYUFBSyxFQUFFLE1BQU0sQ0FBTixFQUFTLEtBQUssQ0FBTCxFQUFoQjtPQUZGLEVBRGlDO0FBS2pDLHNCQUFnQixHQUFoQixDQUFvQixPQUFwQixFQUxpQztLQUFuQztHQURBO0NBTlc7QUFnQmYsUUFBUSxRQUFSLEdBQW1CLFFBQW5COztBQUlBLFNBQVMsVUFBVCxDQUFvQixNQUFwQixFQUE0QjtBQUMxQixNQUFNLGlCQUFpQix3QkFBVyxNQUFYLENBQWpCLENBRG9CO0FBRTFCLGlCQUFlLE1BQWYsQ0FBc0IsS0FBSyxTQUFMLENBQWUsTUFBZixDQUF0QixFQUYwQjtBQUcxQixTQUFPLGVBQWUsTUFBZixDQUFzQixLQUF0QixDQUFQLENBSDBCO0NBQTVCIiwiZmlsZSI6ImNvcmUvcmVzb2x2ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnZXM2LXN5bWJvbC9pbXBsZW1lbnQnXG5pbXBvcnQgTWFwIGZyb20gJ2VzNi1tYXAnXG5pbXBvcnQgU2V0IGZyb20gJ2VzNi1zZXQnXG5pbXBvcnQgYXNzaWduIGZyb20gJ29iamVjdC1hc3NpZ24nXG5pbXBvcnQgcGtnRGlyIGZyb20gJ3BrZy1kaXInXG5cbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCdcblxuZXhwb3J0IGNvbnN0IENBU0VfU0VOU0lUSVZFX0ZTID0gIWZzLmV4aXN0c1N5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJ3JlU09MVkUuanMnKSlcblxuY29uc3QgZmlsZUV4aXN0c0NhY2hlID0gbmV3IE1hcCgpXG5cbmZ1bmN0aW9uIGNhY2hlUGF0aChjYWNoZUtleSwgcmVzdWx0KSB7XG4gIGZpbGVFeGlzdHNDYWNoZS5zZXQoY2FjaGVLZXksIHsgcmVzdWx0LCBsYXN0U2VlbjogRGF0ZS5ub3coKSB9KVxufVxuXG5mdW5jdGlvbiBjaGVja0NhY2hlKGNhY2hlS2V5LCB7IGxpZmV0aW1lIH0pIHtcbiAgaWYgKGZpbGVFeGlzdHNDYWNoZS5oYXMoY2FjaGVLZXkpKSB7XG4gICAgY29uc3QgeyByZXN1bHQsIGxhc3RTZWVuIH0gPSBmaWxlRXhpc3RzQ2FjaGUuZ2V0KGNhY2hlS2V5KVxuICAgIC8vIGNoZWNrIGZyZXNuZXNzXG4gICAgaWYgKERhdGUubm93KCkgLSBsYXN0U2VlbiA8IChsaWZldGltZSAqIDEwMDApKSByZXR1cm4gcmVzdWx0XG4gIH1cbiAgLy8gY2FjaGUgbWlzc1xuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbi8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzI3MzgyODM4XG5mdW5jdGlvbiBmaWxlRXhpc3RzV2l0aENhc2VTeW5jKGZpbGVwYXRoLCBjYWNoZVNldHRpbmdzKSB7XG4gIC8vIGRvbid0IGNhcmUgaWYgdGhlIEZTIGlzIGNhc2Utc2Vuc2l0aXZlXG4gIGlmIChDQVNFX1NFTlNJVElWRV9GUykgcmV0dXJuIHRydWVcblxuICAvLyBudWxsIG1lYW5zIGl0IHJlc29sdmVkIHRvIGEgYnVpbHRpblxuICBpZiAoZmlsZXBhdGggPT09IG51bGwpIHJldHVybiB0cnVlXG5cbiAgY29uc3QgZGlyID0gcGF0aC5kaXJuYW1lKGZpbGVwYXRoKVxuXG4gIGxldCByZXN1bHQgPSBjaGVja0NhY2hlKGZpbGVwYXRoLCBjYWNoZVNldHRpbmdzKVxuICBpZiAocmVzdWx0ICE9IG51bGwpIHJldHVybiByZXN1bHRcblxuICAvLyBiYXNlIGNhc2VcbiAgaWYgKGRpciA9PT0gJy8nIHx8IGRpciA9PT0gJy4nIHx8IC9eW0EtWl06XFxcXCQvaS50ZXN0KGRpcikpIHtcbiAgICByZXN1bHQgPSB0cnVlXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZmlsZW5hbWVzID0gZnMucmVhZGRpclN5bmMoZGlyKVxuICAgIGlmIChmaWxlbmFtZXMuaW5kZXhPZihwYXRoLmJhc2VuYW1lKGZpbGVwYXRoKSkgPT09IC0xKSB7XG4gICAgICByZXN1bHQgPSBmYWxzZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBmaWxlRXhpc3RzV2l0aENhc2VTeW5jKGRpciwgY2FjaGVTZXR0aW5ncylcbiAgICB9XG4gIH1cbiAgY2FjaGVQYXRoKGZpbGVwYXRoLCByZXN1bHQpXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbGF0aXZlKG1vZHVsZVBhdGgsIHNvdXJjZUZpbGUsIHNldHRpbmdzKSB7XG4gIHJldHVybiBmdWxsUmVzb2x2ZShtb2R1bGVQYXRoLCBzb3VyY2VGaWxlLCBzZXR0aW5ncykucGF0aFxufVxuXG5mdW5jdGlvbiBmdWxsUmVzb2x2ZShtb2R1bGVQYXRoLCBzb3VyY2VGaWxlLCBzZXR0aW5ncykge1xuICAvLyBjaGVjayBpZiB0aGlzIGlzIGEgYm9udXMgY29yZSBtb2R1bGVcbiAgY29uc3QgY29yZVNldCA9IG5ldyBTZXQoc2V0dGluZ3NbJ2ltcG9ydC9jb3JlLW1vZHVsZXMnXSlcbiAgaWYgKGNvcmVTZXQgIT0gbnVsbCAmJiBjb3JlU2V0Lmhhcyhtb2R1bGVQYXRoKSkgcmV0dXJuIHsgZm91bmQ6IHRydWUsIHBhdGg6IG51bGwgfVxuXG4gIGNvbnN0IHNvdXJjZURpciA9IHBhdGguZGlybmFtZShzb3VyY2VGaWxlKVxuICAgICAgLCBjYWNoZUtleSA9IHNvdXJjZURpciArIGhhc2hPYmplY3Qoc2V0dGluZ3MpICsgbW9kdWxlUGF0aFxuXG4gIGNvbnN0IGNhY2hlU2V0dGluZ3MgPSBhc3NpZ24oe1xuICAgIGxpZmV0aW1lOiAzMCwgIC8vIHNlY29uZHNcbiAgfSwgc2V0dGluZ3NbJ2ltcG9ydC9jYWNoZSddKVxuXG4gIC8vIHBhcnNlIGluZmluaXR5XG4gIGlmIChjYWNoZVNldHRpbmdzLmxpZmV0aW1lID09PSAn4oieJyB8fCBjYWNoZVNldHRpbmdzLmxpZmV0aW1lID09PSAnSW5maW5pdHknKSB7XG4gICAgY2FjaGVTZXR0aW5ncy5saWZldGltZSA9IEluZmluaXR5XG4gIH1cblxuICBjb25zdCBjYWNoZWRQYXRoID0gY2hlY2tDYWNoZShjYWNoZUtleSwgY2FjaGVTZXR0aW5ncylcbiAgaWYgKGNhY2hlZFBhdGggIT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgZm91bmQ6IHRydWUsIHBhdGg6IGNhY2hlZFBhdGggfVxuXG4gIGZ1bmN0aW9uIGNhY2hlKHJlc29sdmVkUGF0aCkge1xuICAgIGNhY2hlUGF0aChjYWNoZUtleSwgcmVzb2x2ZWRQYXRoKVxuICB9XG5cbiAgZnVuY3Rpb24gd2l0aFJlc29sdmVyKHJlc29sdmVyLCBjb25maWcpIHtcblxuICAgIGZ1bmN0aW9uIHYxKCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlci5yZXNvbHZlSW1wb3J0KG1vZHVsZVBhdGgsIHNvdXJjZUZpbGUsIGNvbmZpZylcbiAgICAgICAgaWYgKHJlc29sdmVkID09PSB1bmRlZmluZWQpIHJldHVybiB7IGZvdW5kOiBmYWxzZSB9XG4gICAgICAgIHJldHVybiB7IGZvdW5kOiB0cnVlLCBwYXRoOiByZXNvbHZlZCB9XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIHsgZm91bmQ6IGZhbHNlIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2MigpIHtcbiAgICAgIHJldHVybiByZXNvbHZlci5yZXNvbHZlKG1vZHVsZVBhdGgsIHNvdXJjZUZpbGUsIGNvbmZpZylcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHJlc29sdmVyLmludGVyZmFjZVZlcnNpb24pIHtcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgcmV0dXJuIHYyKClcblxuICAgICAgZGVmYXVsdDpcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgcmV0dXJuIHYxKClcbiAgICB9XG4gIH1cblxuICBjb25zdCBjb25maWdSZXNvbHZlcnMgPSAoc2V0dGluZ3NbJ2ltcG9ydC9yZXNvbHZlciddXG4gICAgfHwgeyAnbm9kZSc6IHNldHRpbmdzWydpbXBvcnQvcmVzb2x2ZSddIH0pIC8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcblxuICBjb25zdCByZXNvbHZlcnMgPSByZXNvbHZlclJlZHVjZXIoY29uZmlnUmVzb2x2ZXJzLCBuZXcgTWFwKCkpXG5cbiAgZm9yIChsZXQgW25hbWUsIGNvbmZpZ10gb2YgcmVzb2x2ZXJzKSB7XG4gICAgY29uc3QgcmVzb2x2ZXIgPSByZXF1aXJlUmVzb2x2ZXIobmFtZSwgc291cmNlRmlsZSlcbiAgICAgICAgLCByZXNvbHZlZCA9IHdpdGhSZXNvbHZlcihyZXNvbHZlciwgY29uZmlnKVxuXG4gICAgaWYgKCFyZXNvbHZlZC5mb3VuZCkgY29udGludWVcblxuICAgIC8vIHJlc29sdmVycyBpbXBseSBmaWxlIGV4aXN0ZW5jZSwgdGhpcyBkb3VibGUtY2hlY2sganVzdCBlbnN1cmVzIHRoZSBjYXNlIG1hdGNoZXNcbiAgICBpZiAoIWZpbGVFeGlzdHNXaXRoQ2FzZVN5bmMocmVzb2x2ZWQucGF0aCwgY2FjaGVTZXR0aW5ncykpIGNvbnRpbnVlXG5cbiAgICAvLyBlbHNlLCBjb3VudHNcbiAgICBjYWNoZShyZXNvbHZlZC5wYXRoKVxuICAgIHJldHVybiByZXNvbHZlZFxuICB9XG5cbiAgLy8gZmFpbGVkXG4gIC8vIGNhY2hlKHVuZGVmaW5lZClcbiAgcmV0dXJuIHsgZm91bmQ6IGZhbHNlIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZXJSZWR1Y2VyKHJlc29sdmVycywgbWFwKSB7XG4gIGlmIChyZXNvbHZlcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIHJlc29sdmVycy5mb3JFYWNoKHIgPT4gcmVzb2x2ZXJSZWR1Y2VyKHIsIG1hcCkpXG4gICAgcmV0dXJuIG1hcFxuICB9XG5cbiAgaWYgKHR5cGVvZiByZXNvbHZlcnMgPT09ICdzdHJpbmcnKSB7XG4gICAgbWFwLnNldChyZXNvbHZlcnMsIG51bGwpXG4gICAgcmV0dXJuIG1hcFxuICB9XG5cbiAgaWYgKHR5cGVvZiByZXNvbHZlcnMgPT09ICdvYmplY3QnKSB7XG4gICAgZm9yIChsZXQga2V5IGluIHJlc29sdmVycykge1xuICAgICAgbWFwLnNldChrZXksIHJlc29sdmVyc1trZXldKVxuICAgIH1cbiAgICByZXR1cm4gbWFwXG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgcmVzb2x2ZXIgY29uZmlnJylcbn1cblxuZnVuY3Rpb24gcmVxdWlyZVJlc29sdmVyKG5hbWUsIHNvdXJjZUZpbGUpIHtcbiAgLy8gVHJ5IHRvIHJlc29sdmUgcGFja2FnZSB3aXRoIGNvbnZlbnRpb25hbCBuYW1lXG4gIHRyeSB7XG4gICAgcmV0dXJuIHJlcXVpcmUoYGVzbGludC1pbXBvcnQtcmVzb2x2ZXItJHtuYW1lfWApXG4gIH0gY2F0Y2ggKGVycikgeyAvKiBjb250aW51ZSAqLyB9XG5cbiAgLy8gVHJ5IHRvIHJlc29sdmUgcGFja2FnZSB3aXRoIGN1c3RvbSBuYW1lIChAbXlvcmcvcmVzb2x2ZXItbmFtZSlcbiAgdHJ5IHtcbiAgICByZXR1cm4gcmVxdWlyZShuYW1lKVxuICB9IGNhdGNoIChlcnIpIHsgLyogY29udGludWUgKi8gfVxuXG4gIC8vIFRyeSB0byByZXNvbHZlIHBhY2thZ2Ugd2l0aCBwYXRoLCByZWxhdGl2ZSB0byBjbG9zZXN0IHBhY2thZ2UuanNvblxuICAvLyBvciBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5XG4gIHRyeSB7XG4gICAgY29uc3QgYmFzZURpciA9IHBrZ0Rpci5zeW5jKHNvdXJjZUZpbGUpIHx8IHByb2Nlc3MuY3dkKClcbiAgICAvLyBhYnNvbHV0ZSBwYXRocyBpZ25vcmUgYmFzZSwgc28gdGhpcyBjb3ZlcnMgYm90aFxuICAgIHJldHVybiByZXF1aXJlKHBhdGgucmVzb2x2ZShiYXNlRGlyLCBuYW1lKSlcbiAgfSBjYXRjaCAoZXJyKSB7IC8qIGNvbnRpbnVlICovIH1cblxuICAvLyBhbGwgZWxzZSBmYWlsZWRcbiAgdGhyb3cgbmV3IEVycm9yKGB1bmFibGUgdG8gbG9hZCByZXNvbHZlciBcIiR7bmFtZX1cIi5gKVxufVxuXG5jb25zdCBlcnJvcmVkQ29udGV4dHMgPSBuZXcgU2V0KClcblxuLyoqXG4gKiBHaXZlblxuICogQHBhcmFtICB7c3RyaW5nfSBwIC0gbW9kdWxlIHBhdGhcbiAqIEBwYXJhbSAge29iamVjdH0gY29udGV4dCAtIEVTTGludCBjb250ZXh0XG4gKiBAcmV0dXJuIHtzdHJpbmd9IC0gdGhlIGZ1bGwgbW9kdWxlIGZpbGVzeXN0ZW0gcGF0aDtcbiAqICAgICAgICAgICAgICAgICAgICBudWxsIGlmIHBhY2thZ2UgaXMgY29yZTtcbiAqICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQgaWYgbm90IGZvdW5kXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmUocCwgY29udGV4dCkge1xuICB0cnkge1xuICAgIHJldHVybiByZWxhdGl2ZSggcFxuICAgICAgICAgICAgICAgICAgICwgY29udGV4dC5nZXRGaWxlbmFtZSgpXG4gICAgICAgICAgICAgICAgICAgLCBjb250ZXh0LnNldHRpbmdzXG4gICAgICAgICAgICAgICAgICAgKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoIWVycm9yZWRDb250ZXh0cy5oYXMoY29udGV4dCkpIHtcbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgbWVzc2FnZTogYFJlc29sdmUgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCxcbiAgICAgICAgbG9jOiB7IGxpbmU6IDEsIGNvbDogMCB9LFxuICAgICAgfSlcbiAgICAgIGVycm9yZWRDb250ZXh0cy5hZGQoY29udGV4dClcbiAgICB9XG4gIH1cbn1cbnJlc29sdmUucmVsYXRpdmUgPSByZWxhdGl2ZVxuXG5cbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tICdjcnlwdG8nXG5mdW5jdGlvbiBoYXNoT2JqZWN0KG9iamVjdCkge1xuICBjb25zdCBzZXR0aW5nc1NoYXN1bSA9IGNyZWF0ZUhhc2goJ3NoYTEnKVxuICBzZXR0aW5nc1NoYXN1bS51cGRhdGUoSlNPTi5zdHJpbmdpZnkob2JqZWN0KSlcbiAgcmV0dXJuIHNldHRpbmdzU2hhc3VtLmRpZ2VzdCgnaGV4Jylcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,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QUNEIiwiZmlsZSI6ImNvcmUvcmVzb2x2ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnZXM2LXN5bWJvbC9pbXBsZW1lbnQnXG5pbXBvcnQgTWFwIGZyb20gJ2VzNi1tYXAnXG5pbXBvcnQgU2V0IGZyb20gJ2VzNi1zZXQnXG5pbXBvcnQgYXNzaWduIGZyb20gJ29iamVjdC1hc3NpZ24nXG5pbXBvcnQgcGtnRGlyIGZyb20gJ3BrZy1kaXInXG5cbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCdcblxuZXhwb3J0IGNvbnN0IENBU0VfU0VOU0lUSVZFX0ZTID0gIWZzLmV4aXN0c1N5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJ3JlU09MVkUuanMnKSlcblxuY29uc3QgZmlsZUV4aXN0c0NhY2hlID0gbmV3IE1hcCgpXG5cbmZ1bmN0aW9uIGNhY2hlUGF0aChjYWNoZUtleSwgcmVzdWx0KSB7XG4gIGZpbGVFeGlzdHNDYWNoZS5zZXQoY2FjaGVLZXksIHsgcmVzdWx0LCBsYXN0U2VlbjogRGF0ZS5ub3coKSB9KVxufVxuXG5mdW5jdGlvbiBjaGVja0NhY2hlKGNhY2hlS2V5LCB7IGxpZmV0aW1lIH0pIHtcbiAgaWYgKGZpbGVFeGlzdHNDYWNoZS5oYXMoY2FjaGVLZXkpKSB7XG4gICAgY29uc3QgeyByZXN1bHQsIGxhc3RTZWVuIH0gPSBmaWxlRXhpc3RzQ2FjaGUuZ2V0KGNhY2hlS2V5KVxuICAgIC8vIGNoZWNrIGZyZXNuZXNzXG4gICAgaWYgKERhdGUubm93KCkgLSBsYXN0U2VlbiA8IChsaWZldGltZSAqIDEwMDApKSByZXR1cm4gcmVzdWx0XG4gIH1cbiAgLy8gY2FjaGUgbWlzc1xuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbi8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzI3MzgyODM4XG5mdW5jdGlvbiBmaWxlRXhpc3RzV2l0aENhc2VTeW5jKGZpbGVwYXRoLCBjYWNoZVNldHRpbmdzKSB7XG4gIC8vIGRvbid0IGNhcmUgaWYgdGhlIEZTIGlzIGNhc2Utc2Vuc2l0aXZlXG4gIGlmIChDQVNFX1NFTlNJVElWRV9GUykgcmV0dXJuIHRydWVcblxuICAvLyBudWxsIG1lYW5zIGl0IHJlc29sdmVkIHRvIGEgYnVpbHRpblxuICBpZiAoZmlsZXBhdGggPT09IG51bGwpIHJldHVybiB0cnVlXG5cbiAgY29uc3QgZGlyID0gcGF0aC5kaXJuYW1lKGZpbGVwYXRoKVxuXG4gIGxldCByZXN1bHQgPSBjaGVja0NhY2hlKGZpbGVwYXRoLCBjYWNoZVNldHRpbmdzKVxuICBpZiAocmVzdWx0ICE9IG51bGwpIHJldHVybiByZXN1bHRcblxuICAvLyBiYXNlIGNhc2VcbiAgaWYgKGRpciA9PT0gJy8nIHx8IGRpciA9PT0gJy4nIHx8IC9eW0EtWl06XFxcXCQvaS50ZXN0KGRpcikpIHtcbiAgICByZXN1bHQgPSB0cnVlXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZmlsZW5hbWVzID0gZnMucmVhZGRpclN5bmMoZGlyKVxuICAgIGlmIChmaWxlbmFtZXMuaW5kZXhPZihwYXRoLmJhc2VuYW1lKGZpbGVwYXRoKSkgPT09IC0xKSB7XG4gICAgICByZXN1bHQgPSBmYWxzZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBmaWxlRXhpc3RzV2l0aENhc2VTeW5jKGRpciwgY2FjaGVTZXR0aW5ncylcbiAgICB9XG4gIH1cbiAgY2FjaGVQYXRoKGZpbGVwYXRoLCByZXN1bHQpXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbGF0aXZlKG1vZHVsZVBhdGgsIHNvdXJjZUZpbGUsIHNldHRpbmdzKSB7XG4gIHJldHVybiBmdWxsUmVzb2x2ZShtb2R1bGVQYXRoLCBzb3VyY2VGaWxlLCBzZXR0aW5ncykucGF0aFxufVxuXG5mdW5jdGlvbiBmdWxsUmVzb2x2ZShtb2R1bGVQYXRoLCBzb3VyY2VGaWxlLCBzZXR0aW5ncykge1xuICAvLyBjaGVjayBpZiB0aGlzIGlzIGEgYm9udXMgY29yZSBtb2R1bGVcbiAgY29uc3QgY29yZVNldCA9IG5ldyBTZXQoc2V0dGluZ3NbJ2ltcG9ydC9jb3JlLW1vZHVsZXMnXSlcbiAgaWYgKGNvcmVTZXQgIT0gbnVsbCAmJiBjb3JlU2V0Lmhhcyhtb2R1bGVQYXRoKSkgcmV0dXJuIHsgZm91bmQ6IHRydWUsIHBhdGg6IG51bGwgfVxuXG4gIGNvbnN0IHNvdXJjZURpciA9IHBhdGguZGlybmFtZShzb3VyY2VGaWxlKVxuICAgICAgLCBjYWNoZUtleSA9IHNvdXJjZURpciArIGhhc2hPYmplY3Qoc2V0dGluZ3MpICsgbW9kdWxlUGF0aFxuXG4gIGNvbnN0IGNhY2hlU2V0dGluZ3MgPSBhc3NpZ24oe1xuICAgIGxpZmV0aW1lOiAzMCwgIC8vIHNlY29uZHNcbiAgfSwgc2V0dGluZ3NbJ2ltcG9ydC9jYWNoZSddKVxuXG4gIC8vIHBhcnNlIGluZmluaXR5XG4gIGlmIChjYWNoZVNldHRpbmdzLmxpZmV0aW1lID09PSAn4oieJyB8fCBjYWNoZVNldHRpbmdzLmxpZmV0aW1lID09PSAnSW5maW5pdHknKSB7XG4gICAgY2FjaGVTZXR0aW5ncy5saWZldGltZSA9IEluZmluaXR5XG4gIH1cblxuICBjb25zdCBjYWNoZWRQYXRoID0gY2hlY2tDYWNoZShjYWNoZUtleSwgY2FjaGVTZXR0aW5ncylcbiAgaWYgKGNhY2hlZFBhdGggIT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgZm91bmQ6IHRydWUsIHBhdGg6IGNhY2hlZFBhdGggfVxuXG4gIGZ1bmN0aW9uIGNhY2hlKHJlc29sdmVkUGF0aCkge1xuICAgIGNhY2hlUGF0aChjYWNoZUtleSwgcmVzb2x2ZWRQYXRoKVxuICB9XG5cbiAgZnVuY3Rpb24gd2l0aFJlc29sdmVyKHJlc29sdmVyLCBjb25maWcpIHtcblxuICAgIGZ1bmN0aW9uIHYxKCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlci5yZXNvbHZlSW1wb3J0KG1vZHVsZVBhdGgsIHNvdXJjZUZpbGUsIGNvbmZpZylcbiAgICAgICAgaWYgKHJlc29sdmVkID09PSB1bmRlZmluZWQpIHJldHVybiB7IGZvdW5kOiBmYWxzZSB9XG4gICAgICAgIHJldHVybiB7IGZvdW5kOiB0cnVlLCBwYXRoOiByZXNvbHZlZCB9XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIHsgZm91bmQ6IGZhbHNlIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2MigpIHtcbiAgICAgIHJldHVybiByZXNvbHZlci5yZXNvbHZlKG1vZHVsZVBhdGgsIHNvdXJjZUZpbGUsIGNvbmZpZylcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHJlc29sdmVyLmludGVyZmFjZVZlcnNpb24pIHtcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgcmV0dXJuIHYyKClcblxuICAgICAgZGVmYXVsdDpcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgcmV0dXJuIHYxKClcbiAgICB9XG4gIH1cblxuICBjb25zdCBjb25maWdSZXNvbHZlcnMgPSAoc2V0dGluZ3NbJ2ltcG9ydC9yZXNvbHZlciddXG4gICAgfHwgeyAnbm9kZSc6IHNldHRpbmdzWydpbXBvcnQvcmVzb2x2ZSddIH0pIC8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcblxuICBjb25zdCByZXNvbHZlcnMgPSByZXNvbHZlclJlZHVjZXIoY29uZmlnUmVzb2x2ZXJzLCBuZXcgTWFwKCkpXG5cbiAgZm9yIChsZXQgW25hbWUsIGNvbmZpZ10gb2YgcmVzb2x2ZXJzKSB7XG4gICAgY29uc3QgcmVzb2x2ZXIgPSByZXF1aXJlUmVzb2x2ZXIobmFtZSwgc291cmNlRmlsZSlcbiAgICAgICAgLCByZXNvbHZlZCA9IHdpdGhSZXNvbHZlcihyZXNvbHZlciwgY29uZmlnKVxuXG4gICAgaWYgKCFyZXNvbHZlZC5mb3VuZCkgY29udGludWVcblxuICAgIC8vIHJlc29sdmVycyBpbXBseSBmaWxlIGV4aXN0ZW5jZSwgdGhpcyBkb3VibGUtY2hlY2sganVzdCBlbnN1cmVzIHRoZSBjYXNlIG1hdGNoZXNcbiAgICBpZiAoIWZpbGVFeGlzdHNXaXRoQ2FzZVN5bmMocmVzb2x2ZWQucGF0aCwgY2FjaGVTZXR0aW5ncykpIGNvbnRpbnVlXG5cbiAgICAvLyBlbHNlLCBjb3VudHNcbiAgICBjYWNoZShyZXNvbHZlZC5wYXRoKVxuICAgIHJldHVybiByZXNvbHZlZFxuICB9XG5cbiAgLy8gZmFpbGVkXG4gIC8vIGNhY2hlKHVuZGVmaW5lZClcbiAgcmV0dXJuIHsgZm91bmQ6IGZhbHNlIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZXJSZWR1Y2VyKHJlc29sdmVycywgbWFwKSB7XG4gIGlmIChyZXNvbHZlcnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIHJlc29sdmVycy5mb3JFYWNoKHIgPT4gcmVzb2x2ZXJSZWR1Y2VyKHIsIG1hcCkpXG4gICAgcmV0dXJuIG1hcFxuICB9XG5cbiAgaWYgKHR5cGVvZiByZXNvbHZlcnMgPT09ICdzdHJpbmcnKSB7XG4gICAgbWFwLnNldChyZXNvbHZlcnMsIG51bGwpXG4gICAgcmV0dXJuIG1hcFxuICB9XG5cbiAgaWYgKHR5cGVvZiByZXNvbHZlcnMgPT09ICdvYmplY3QnKSB7XG4gICAgZm9yIChsZXQga2V5IGluIHJlc29sdmVycykge1xuICAgICAgbWFwLnNldChrZXksIHJlc29sdmVyc1trZXldKVxuICAgIH1cbiAgICByZXR1cm4gbWFwXG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgcmVzb2x2ZXIgY29uZmlnJylcbn1cblxuZnVuY3Rpb24gcmVxdWlyZVJlc29sdmVyKG5hbWUsIHNvdXJjZUZpbGUpIHtcbiAgLy8gVHJ5IHRvIHJlc29sdmUgcGFja2FnZSB3aXRoIGNvbnZlbnRpb25hbCBuYW1lXG4gIHRyeSB7XG4gICAgcmV0dXJuIHJlcXVpcmUoYGVzbGludC1pbXBvcnQtcmVzb2x2ZXItJHtuYW1lfWApXG4gIH0gY2F0Y2ggKGVycikgeyAvKiBjb250aW51ZSAqLyB9XG5cbiAgLy8gVHJ5IHRvIHJlc29sdmUgcGFja2FnZSB3aXRoIGN1c3RvbSBuYW1lIChAbXlvcmcvcmVzb2x2ZXItbmFtZSlcbiAgdHJ5IHtcbiAgICByZXR1cm4gcmVxdWlyZShuYW1lKVxuICB9IGNhdGNoIChlcnIpIHsgLyogY29udGludWUgKi8gfVxuXG4gIC8vIFRyeSB0byByZXNvbHZlIHBhY2thZ2Ugd2l0aCBwYXRoLCByZWxhdGl2ZSB0byBjbG9zZXN0IHBhY2thZ2UuanNvblxuICAvLyBvciBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5XG4gIHRyeSB7XG4gICAgY29uc3QgYmFzZURpciA9IHBrZ0Rpci5zeW5jKHNvdXJjZUZpbGUpIHx8IHByb2Nlc3MuY3dkKClcbiAgICAvLyBhYnNvbHV0ZSBwYXRocyBpZ25vcmUgYmFzZSwgc28gdGhpcyBjb3ZlcnMgYm90aFxuICAgIHJldHVybiByZXF1aXJlKHBhdGgucmVzb2x2ZShiYXNlRGlyLCBuYW1lKSlcbiAgfSBjYXRjaCAoZXJyKSB7IC8qIGNvbnRpbnVlICovIH1cblxuICAvLyBhbGwgZWxzZSBmYWlsZWRcbiAgdGhyb3cgbmV3IEVycm9yKGB1bmFibGUgdG8gbG9hZCByZXNvbHZlciBcIiR7bmFtZX1cIi5gKVxufVxuXG5jb25zdCBlcnJvcmVkQ29udGV4dHMgPSBuZXcgU2V0KClcblxuLyoqXG4gKiBHaXZlblxuICogQHBhcmFtICB7c3RyaW5nfSBwIC0gbW9kdWxlIHBhdGhcbiAqIEBwYXJhbSAge29iamVjdH0gY29udGV4dCAtIEVTTGludCBjb250ZXh0XG4gKiBAcmV0dXJuIHtzdHJpbmd9IC0gdGhlIGZ1bGwgbW9kdWxlIGZpbGVzeXN0ZW0gcGF0aDtcbiAqICAgICAgICAgICAgICAgICAgICBudWxsIGlmIHBhY2thZ2UgaXMgY29yZTtcbiAqICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQgaWYgbm90IGZvdW5kXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmUocCwgY29udGV4dCkge1xuICB0cnkge1xuICAgIHJldHVybiByZWxhdGl2ZSggcFxuICAgICAgICAgICAgICAgICAgICwgY29udGV4dC5nZXRGaWxlbmFtZSgpXG4gICAgICAgICAgICAgICAgICAgLCBjb250ZXh0LnNldHRpbmdzXG4gICAgICAgICAgICAgICAgICAgKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoIWVycm9yZWRDb250ZXh0cy5oYXMoY29udGV4dCkpIHtcbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgbWVzc2FnZTogYFJlc29sdmUgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCxcbiAgICAgICAgbG9jOiB7IGxpbmU6IDEsIGNvbDogMCB9LFxuICAgICAgfSlcbiAgICAgIGVycm9yZWRDb250ZXh0cy5hZGQoY29udGV4dClcbiAgICB9XG4gIH1cbn1cbnJlc29sdmUucmVsYXRpdmUgPSByZWxhdGl2ZVxuXG5cbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tICdjcnlwdG8nXG5mdW5jdGlvbiBoYXNoT2JqZWN0KG9iamVjdCkge1xuICBjb25zdCBzZXR0aW5nc1NoYXN1bSA9IGNyZWF0ZUhhc2goJ3NoYTEnKVxuICBzZXR0aW5nc1NoYXN1bS51cGRhdGUoSlNPTi5zdHJpbmdpZnkob2JqZWN0KSlcbiAgcmV0dXJuIHNldHRpbmdzU2hhc3VtLmRpZ2VzdCgnaGV4Jylcbn1cbiJdfQ==

@@ -9,2 +9,2 @@ 'use strict';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvc3RhdGljUmVxdWlyZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7a0JBQ3dCOztBQUFULFNBQVMsZUFBVCxDQUF5QixJQUF6QixFQUErQjtBQUM1QyxTQUFPLFFBQ0wsS0FBSyxNQUFMLElBQ0EsS0FBSyxNQUFMLENBQVksSUFBWixLQUFxQixZQUFyQixJQUNBLEtBQUssTUFBTCxDQUFZLElBQVosS0FBcUIsU0FBckIsSUFDQSxLQUFLLFNBQUwsQ0FBZSxNQUFmLEtBQTBCLENBQTFCLElBQ0EsS0FBSyxTQUFMLENBQWUsQ0FBZixFQUFrQixJQUFsQixLQUEyQixTQUEzQixDQU4wQztDQUEvQiIsImZpbGUiOiJjb3JlL3N0YXRpY1JlcXVpcmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0b2RvOiBtZXJnZSB3aXRoIG1vZHVsZSB2aXNpdG9yXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1N0YXRpY1JlcXVpcmUobm9kZSkge1xuICByZXR1cm4gbm9kZSAmJlxuICAgIG5vZGUuY2FsbGVlICYmXG4gICAgbm9kZS5jYWxsZWUudHlwZSA9PT0gJ0lkZW50aWZpZXInICYmXG4gICAgbm9kZS5jYWxsZWUubmFtZSA9PT0gJ3JlcXVpcmUnICYmXG4gICAgbm9kZS5hcmd1bWVudHMubGVuZ3RoID09PSAxICYmXG4gICAgbm9kZS5hcmd1bWVudHNbMF0udHlwZSA9PT0gJ0xpdGVyYWwnXG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvc3RhdGljUmVxdWlyZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7a0JBQ3dCLGU7O0FBQVQsU0FBUyxlQUFULENBQXlCLElBQXpCLEVBQStCO0FBQzVDLFNBQU8sUUFDTCxLQUFLLE1BREEsSUFFTCxLQUFLLE1BQUwsQ0FBWSxJQUFaLEtBQXFCLFlBRmhCLElBR0wsS0FBSyxNQUFMLENBQVksSUFBWixLQUFxQixTQUhoQixJQUlMLEtBQUssU0FBTCxDQUFlLE1BQWYsS0FBMEIsQ0FKckIsSUFLTCxLQUFLLFNBQUwsQ0FBZSxDQUFmLEVBQWtCLElBQWxCLEtBQTJCLFNBTDdCO0FBTUQiLCJmaWxlIjoiY29yZS9zdGF0aWNSZXF1aXJlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdG9kbzogbWVyZ2Ugd2l0aCBtb2R1bGUgdmlzaXRvclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNTdGF0aWNSZXF1aXJlKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUgJiZcbiAgICBub2RlLmNhbGxlZSAmJlxuICAgIG5vZGUuY2FsbGVlLnR5cGUgPT09ICdJZGVudGlmaWVyJyAmJlxuICAgIG5vZGUuY2FsbGVlLm5hbWUgPT09ICdyZXF1aXJlJyAmJlxuICAgIG5vZGUuYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJlxuICAgIG5vZGUuYXJndW1lbnRzWzBdLnR5cGUgPT09ICdMaXRlcmFsJ1xufVxuIl19

@@ -7,2 +7,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltcG9ydERlY2xhcmF0aW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBLE9BQU8sT0FBUCxHQUFpQixTQUFTLGlCQUFULENBQTJCLE9BQTNCLEVBQW9DO0FBQ25ELE1BQUksWUFBWSxRQUFRLFlBQVIsRUFBWixDQUQrQztBQUVuRCxTQUFPLFVBQVUsVUFBVSxNQUFWLEdBQW1CLENBQW5CLENBQWpCLENBRm1EO0NBQXBDIiwiZmlsZSI6ImltcG9ydERlY2xhcmF0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW1wb3J0RGVjbGFyYXRpb24oY29udGV4dCkge1xuICB2YXIgYW5jZXN0b3JzID0gY29udGV4dC5nZXRBbmNlc3RvcnMoKVxuICByZXR1cm4gYW5jZXN0b3JzW2FuY2VzdG9ycy5sZW5ndGggLSAxXVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImltcG9ydERlY2xhcmF0aW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBLE9BQU8sT0FBUCxHQUFpQixTQUFTLGlCQUFULENBQTJCLE9BQTNCLEVBQW9DO0FBQ25ELE1BQUksWUFBWSxRQUFRLFlBQVIsRUFBaEI7QUFDQSxTQUFPLFVBQVUsVUFBVSxNQUFWLEdBQW1CLENBQTdCLENBQVA7QUFDRCxDQUhEIiwiZmlsZSI6ImltcG9ydERlY2xhcmF0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW1wb3J0RGVjbGFyYXRpb24oY29udGV4dCkge1xuICB2YXIgYW5jZXN0b3JzID0gY29udGV4dC5nZXRBbmNlc3RvcnMoKVxuICByZXR1cm4gYW5jZXN0b3JzW2FuY2VzdG9ycy5sZW5ndGggLSAxXVxufVxuIl19

@@ -44,2 +44,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFPLElBQU0sd0JBQVE7QUFDbkIsbUJBQWlCLFFBQVEsdUJBQVIsQ0FBakI7QUFDQSxXQUFTLFFBQVEsZUFBUixDQUFUO0FBQ0EsYUFBVyxRQUFRLGlCQUFSLENBQVg7QUFDQSxlQUFhLFFBQVEsbUJBQVIsQ0FBYjtBQUNBLGtCQUFnQixRQUFRLHNCQUFSLENBQWhCO0FBQ0EsWUFBVSxRQUFRLGdCQUFSLENBQVY7QUFDQSx3QkFBc0IsUUFBUSw0QkFBUixDQUF0QjtBQUNBLGdCQUFjLFFBQVEsb0JBQVIsQ0FBZDtBQUNBLHlCQUF1QixRQUFRLDZCQUFSLENBQXZCOztBQUVBLHlCQUF1QixRQUFRLDZCQUFSLENBQXZCO0FBQ0EsZ0NBQThCLFFBQVEsb0NBQVIsQ0FBOUI7O0FBRUEsaUJBQWUsUUFBUSxxQkFBUixDQUFmO0FBQ0EsWUFBVSxRQUFRLGdCQUFSLENBQVY7QUFDQSxtQkFBaUIsUUFBUSx1QkFBUixDQUFqQjtBQUNBLG1CQUFpQixRQUFRLHVCQUFSLENBQWpCO0FBQ0EsZ0NBQThCLFFBQVEsb0NBQVIsQ0FBOUI7QUFDQSx1QkFBcUIsUUFBUSwyQkFBUixDQUFyQjtBQUNBLFdBQVMsUUFBUSxlQUFSLENBQVQ7QUFDQSwwQkFBd0IsUUFBUSw4QkFBUixDQUF4QjtBQUNBLDJCQUF5QixRQUFRLCtCQUFSLENBQXpCOzs7QUFHQSxtQkFBaUIsUUFBUSx1QkFBUixDQUFqQjtDQXpCVzs7QUE0Qk4sSUFBTSw0QkFBVTtBQUNyQixZQUFVLFFBQVEsa0JBQVIsQ0FBVjtBQUNBLGNBQVksUUFBUSxvQkFBUixDQUFaOzs7QUFHQSxhQUFXLFFBQVEsbUJBQVIsQ0FBWDs7O0FBR0EsV0FBUyxRQUFRLGlCQUFSLENBQVQ7QUFDQSxrQkFBZ0IsUUFBUSx3QkFBUixDQUFoQjtBQUNBLGNBQVksUUFBUSxvQkFBUixDQUFaO0NBVlciLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcnVsZXMgPSB7XG4gICduby11bnJlc29sdmVkJzogcmVxdWlyZSgnLi9ydWxlcy9uby11bnJlc29sdmVkJyksXG4gICduYW1lZCc6IHJlcXVpcmUoJy4vcnVsZXMvbmFtZWQnKSxcbiAgJ2RlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL2RlZmF1bHQnKSxcbiAgJ25hbWVzcGFjZSc6IHJlcXVpcmUoJy4vcnVsZXMvbmFtZXNwYWNlJyksXG4gICduby1uYW1lc3BhY2UnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVzcGFjZScpLFxuICAnZXhwb3J0JzogcmVxdWlyZSgnLi9ydWxlcy9leHBvcnQnKSxcbiAgJ25vLW11dGFibGUtZXhwb3J0cyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tbXV0YWJsZS1leHBvcnRzJyksXG4gICdleHRlbnNpb25zJzogcmVxdWlyZSgnLi9ydWxlcy9leHRlbnNpb25zJyksXG4gICduby1yZXN0cmljdGVkLXBhdGhzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1yZXN0cmljdGVkLXBhdGhzJyksXG5cbiAgJ25vLW5hbWVkLWFzLWRlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQnKSxcbiAgJ25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyJzogcmVxdWlyZSgnLi9ydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlcicpLFxuXG4gICduby1jb21tb25qcyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tY29tbW9uanMnKSxcbiAgJ25vLWFtZCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tYW1kJyksXG4gICduby1kdXBsaWNhdGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1kdXBsaWNhdGVzJyksXG4gICdpbXBvcnRzLWZpcnN0JzogcmVxdWlyZSgnLi9ydWxlcy9pbXBvcnRzLWZpcnN0JyksXG4gICduby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMnKSxcbiAgJ25vLW5vZGVqcy1tb2R1bGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1ub2RlanMtbW9kdWxlcycpLFxuICAnb3JkZXInOiByZXF1aXJlKCcuL3J1bGVzL29yZGVyJyksXG4gICduZXdsaW5lLWFmdGVyLWltcG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbmV3bGluZS1hZnRlci1pbXBvcnQnKSxcbiAgJ3ByZWZlci1kZWZhdWx0LWV4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvcHJlZmVyLWRlZmF1bHQtZXhwb3J0JyksXG5cbiAgLy8gbWV0YWRhdGEtYmFzZWRcbiAgJ25vLWRlcHJlY2F0ZWQnOiByZXF1aXJlKCcuL3J1bGVzL25vLWRlcHJlY2F0ZWQnKSxcbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpZ3MgPSB7XG4gICdlcnJvcnMnOiByZXF1aXJlKCcuLi9jb25maWcvZXJyb3JzJyksXG4gICd3YXJuaW5ncyc6IHJlcXVpcmUoJy4uL2NvbmZpZy93YXJuaW5ncycpLFxuXG4gIC8vIHNoaGhoLi4uIHdvcmsgaW4gcHJvZ3Jlc3MgXCJzZWNyZXRcIiBydWxlc1xuICAnc3RhZ2UtMCc6IHJlcXVpcmUoJy4uL2NvbmZpZy9zdGFnZS0wJyksXG5cbiAgLy8gdXNlZnVsIHN0dWZmIGZvciBmb2xrcyB1c2luZyB2YXJpb3VzIGVudmlyb25tZW50c1xuICAncmVhY3QnOiByZXF1aXJlKCcuLi9jb25maWcvcmVhY3QnKSxcbiAgJ3JlYWN0LW5hdGl2ZSc6IHJlcXVpcmUoJy4uL2NvbmZpZy9yZWFjdC1uYXRpdmUnKSxcbiAgJ2VsZWN0cm9uJzogcmVxdWlyZSgnLi4vY29uZmlnL2VsZWN0cm9uJyksXG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFPLElBQU0sd0JBQVE7QUFDbkIsbUJBQWlCLFFBQVEsdUJBQVIsQ0FERTtBQUVuQixXQUFTLFFBQVEsZUFBUixDQUZVO0FBR25CLGFBQVcsUUFBUSxpQkFBUixDQUhRO0FBSW5CLGVBQWEsUUFBUSxtQkFBUixDQUpNO0FBS25CLGtCQUFnQixRQUFRLHNCQUFSLENBTEc7QUFNbkIsWUFBVSxRQUFRLGdCQUFSLENBTlM7QUFPbkIsd0JBQXNCLFFBQVEsNEJBQVIsQ0FQSDtBQVFuQixnQkFBYyxRQUFRLG9CQUFSLENBUks7QUFTbkIseUJBQXVCLFFBQVEsNkJBQVIsQ0FUSjs7QUFXbkIseUJBQXVCLFFBQVEsNkJBQVIsQ0FYSjtBQVluQixnQ0FBOEIsUUFBUSxvQ0FBUixDQVpYOztBQWNuQixpQkFBZSxRQUFRLHFCQUFSLENBZEk7QUFlbkIsWUFBVSxRQUFRLGdCQUFSLENBZlM7QUFnQm5CLG1CQUFpQixRQUFRLHVCQUFSLENBaEJFO0FBaUJuQixtQkFBaUIsUUFBUSx1QkFBUixDQWpCRTtBQWtCbkIsZ0NBQThCLFFBQVEsb0NBQVIsQ0FsQlg7QUFtQm5CLHVCQUFxQixRQUFRLDJCQUFSLENBbkJGO0FBb0JuQixXQUFTLFFBQVEsZUFBUixDQXBCVTtBQXFCbkIsMEJBQXdCLFFBQVEsOEJBQVIsQ0FyQkw7QUFzQm5CLDJCQUF5QixRQUFRLCtCQUFSLENBdEJOOzs7QUF5Qm5CLG1CQUFpQixRQUFRLHVCQUFSO0FBekJFLENBQWQ7O0FBNEJBLElBQU0sNEJBQVU7QUFDckIsWUFBVSxRQUFRLGtCQUFSLENBRFc7QUFFckIsY0FBWSxRQUFRLG9CQUFSLENBRlM7OztBQUtyQixhQUFXLFFBQVEsbUJBQVIsQ0FMVTs7O0FBUXJCLFdBQVMsUUFBUSxpQkFBUixDQVJZO0FBU3JCLGtCQUFnQixRQUFRLHdCQUFSLENBVEs7QUFVckIsY0FBWSxRQUFRLG9CQUFSO0FBVlMsQ0FBaEIiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcnVsZXMgPSB7XG4gICduby11bnJlc29sdmVkJzogcmVxdWlyZSgnLi9ydWxlcy9uby11bnJlc29sdmVkJyksXG4gICduYW1lZCc6IHJlcXVpcmUoJy4vcnVsZXMvbmFtZWQnKSxcbiAgJ2RlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL2RlZmF1bHQnKSxcbiAgJ25hbWVzcGFjZSc6IHJlcXVpcmUoJy4vcnVsZXMvbmFtZXNwYWNlJyksXG4gICduby1uYW1lc3BhY2UnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVzcGFjZScpLFxuICAnZXhwb3J0JzogcmVxdWlyZSgnLi9ydWxlcy9leHBvcnQnKSxcbiAgJ25vLW11dGFibGUtZXhwb3J0cyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tbXV0YWJsZS1leHBvcnRzJyksXG4gICdleHRlbnNpb25zJzogcmVxdWlyZSgnLi9ydWxlcy9leHRlbnNpb25zJyksXG4gICduby1yZXN0cmljdGVkLXBhdGhzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1yZXN0cmljdGVkLXBhdGhzJyksXG5cbiAgJ25vLW5hbWVkLWFzLWRlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQnKSxcbiAgJ25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyJzogcmVxdWlyZSgnLi9ydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlcicpLFxuXG4gICduby1jb21tb25qcyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tY29tbW9uanMnKSxcbiAgJ25vLWFtZCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tYW1kJyksXG4gICduby1kdXBsaWNhdGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1kdXBsaWNhdGVzJyksXG4gICdpbXBvcnRzLWZpcnN0JzogcmVxdWlyZSgnLi9ydWxlcy9pbXBvcnRzLWZpcnN0JyksXG4gICduby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMnKSxcbiAgJ25vLW5vZGVqcy1tb2R1bGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1ub2RlanMtbW9kdWxlcycpLFxuICAnb3JkZXInOiByZXF1aXJlKCcuL3J1bGVzL29yZGVyJyksXG4gICduZXdsaW5lLWFmdGVyLWltcG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbmV3bGluZS1hZnRlci1pbXBvcnQnKSxcbiAgJ3ByZWZlci1kZWZhdWx0LWV4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvcHJlZmVyLWRlZmF1bHQtZXhwb3J0JyksXG5cbiAgLy8gbWV0YWRhdGEtYmFzZWRcbiAgJ25vLWRlcHJlY2F0ZWQnOiByZXF1aXJlKCcuL3J1bGVzL25vLWRlcHJlY2F0ZWQnKSxcbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpZ3MgPSB7XG4gICdlcnJvcnMnOiByZXF1aXJlKCcuLi9jb25maWcvZXJyb3JzJyksXG4gICd3YXJuaW5ncyc6IHJlcXVpcmUoJy4uL2NvbmZpZy93YXJuaW5ncycpLFxuXG4gIC8vIHNoaGhoLi4uIHdvcmsgaW4gcHJvZ3Jlc3MgXCJzZWNyZXRcIiBydWxlc1xuICAnc3RhZ2UtMCc6IHJlcXVpcmUoJy4uL2NvbmZpZy9zdGFnZS0wJyksXG5cbiAgLy8gdXNlZnVsIHN0dWZmIGZvciBmb2xrcyB1c2luZyB2YXJpb3VzIGVudmlyb25tZW50c1xuICAncmVhY3QnOiByZXF1aXJlKCcuLi9jb25maWcvcmVhY3QnKSxcbiAgJ3JlYWN0LW5hdGl2ZSc6IHJlcXVpcmUoJy4uL2NvbmZpZy9yZWFjdC1uYXRpdmUnKSxcbiAgJ2VsZWN0cm9uJzogcmVxdWlyZSgnLi4vY29uZmlnL2VsZWN0cm9uJyksXG59XG4iXX0=

@@ -38,2 +38,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL2RlZmF1bHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0FBRUEsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjs7QUFFbEMsV0FBUyxZQUFULENBQXNCLGFBQXRCLEVBQXFDLElBQXJDLEVBQTJDOzs7QUFHekMsUUFBSSx5QkFBSixDQUh5QztBQUl6QyxTQUFLLFVBQUwsQ0FBZ0IsSUFBaEIsQ0FBcUIsVUFBQyxDQUFELEVBQU87QUFDMUIsVUFBSSxFQUFFLElBQUYsS0FBVyxhQUFYLEVBQTBCO0FBQzVCLDJCQUFtQixDQUFuQixDQUQ0QjtBQUU1QixlQUFPLElBQVAsQ0FGNEI7T0FBOUI7S0FEbUIsQ0FBckIsQ0FKeUM7O0FBV3pDLFFBQUksQ0FBQyxnQkFBRCxFQUFtQixPQUF2QjtBQUNBLFFBQUksVUFBVSxxQkFBUSxHQUFSLENBQVksS0FBSyxNQUFMLENBQVksS0FBWixFQUFtQixPQUEvQixDQUFWLENBWnFDO0FBYXpDLFFBQUksV0FBVyxJQUFYLEVBQWlCLE9BQXJCOztBQUVBLFFBQUksUUFBUSxNQUFSLENBQWUsTUFBZixFQUF1QjtBQUN6QixjQUFRLFlBQVIsQ0FBcUIsT0FBckIsRUFBOEIsSUFBOUIsRUFEeUI7S0FBM0IsTUFFTyxJQUFJLENBQUMsUUFBUSxHQUFSLENBQVksU0FBWixDQUFELEVBQXlCO0FBQ2xDLGNBQVEsTUFBUixDQUFlLGdCQUFmLEVBQWlDLG9DQUFqQyxFQURrQztLQUE3QjtHQWpCVDs7QUFzQkEsU0FBTztBQUNMLHlCQUFxQixhQUFhLElBQWIsQ0FBa0IsSUFBbEIsRUFBd0Isd0JBQXhCLENBQXJCO0FBQ0EsOEJBQTBCLGFBQWEsSUFBYixDQUFrQixJQUFsQixFQUF3Qix3QkFBeEIsQ0FBMUI7R0FGRixDQXhCa0M7Q0FBbkIiLCJmaWxlIjoicnVsZXMvZGVmYXVsdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeHBvcnRzIGZyb20gJy4uL2NvcmUvZ2V0RXhwb3J0cydcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuXG4gIGZ1bmN0aW9uIGNoZWNrRGVmYXVsdChzcGVjaWZpZXJUeXBlLCBub2RlKSB7XG5cbiAgICAvLyBwb29yIG1hbidzIEFycmF5LmZpbmRcbiAgICBsZXQgZGVmYXVsdFNwZWNpZmllclxuICAgIG5vZGUuc3BlY2lmaWVycy5zb21lKChuKSA9PiB7XG4gICAgICBpZiAobi50eXBlID09PSBzcGVjaWZpZXJUeXBlKSB7XG4gICAgICAgIGRlZmF1bHRTcGVjaWZpZXIgPSBuXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfSlcblxuICAgIGlmICghZGVmYXVsdFNwZWNpZmllcikgcmV0dXJuXG4gICAgdmFyIGltcG9ydHMgPSBFeHBvcnRzLmdldChub2RlLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm5cblxuICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIG5vZGUpXG4gICAgfSBlbHNlIGlmICghaW1wb3J0cy5nZXQoJ2RlZmF1bHQnKSkge1xuICAgICAgY29udGV4dC5yZXBvcnQoZGVmYXVsdFNwZWNpZmllciwgJ05vIGRlZmF1bHQgZXhwb3J0IGZvdW5kIGluIG1vZHVsZS4nKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJ0ltcG9ydERlY2xhcmF0aW9uJzogY2hlY2tEZWZhdWx0LmJpbmQobnVsbCwgJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInKSxcbiAgICAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbic6IGNoZWNrRGVmYXVsdC5iaW5kKG51bGwsICdFeHBvcnREZWZhdWx0U3BlY2lmaWVyJyksXG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL2RlZmF1bHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0FBRUEsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjs7QUFFbEMsV0FBUyxZQUFULENBQXNCLGFBQXRCLEVBQXFDLElBQXJDLEVBQTJDOzs7QUFHekMsUUFBSSx5QkFBSjtBQUNBLFNBQUssVUFBTCxDQUFnQixJQUFoQixDQUFxQixVQUFDLENBQUQsRUFBTztBQUMxQixVQUFJLEVBQUUsSUFBRixLQUFXLGFBQWYsRUFBOEI7QUFDNUIsMkJBQW1CLENBQW5CO0FBQ0EsZUFBTyxJQUFQO0FBQ0Q7QUFDRixLQUxEOztBQU9BLFFBQUksQ0FBQyxnQkFBTCxFQUF1QjtBQUN2QixRQUFJLFVBQVUscUJBQVEsR0FBUixDQUFZLEtBQUssTUFBTCxDQUFZLEtBQXhCLEVBQStCLE9BQS9CLENBQWQ7QUFDQSxRQUFJLFdBQVcsSUFBZixFQUFxQjs7QUFFckIsUUFBSSxRQUFRLE1BQVIsQ0FBZSxNQUFuQixFQUEyQjtBQUN6QixjQUFRLFlBQVIsQ0FBcUIsT0FBckIsRUFBOEIsSUFBOUI7QUFDRCxLQUZELE1BRU8sSUFBSSxDQUFDLFFBQVEsR0FBUixDQUFZLFNBQVosQ0FBTCxFQUE2QjtBQUNsQyxjQUFRLE1BQVIsQ0FBZSxnQkFBZixFQUFpQyxvQ0FBakM7QUFDRDtBQUNGOztBQUVELFNBQU87QUFDTCx5QkFBcUIsYUFBYSxJQUFiLENBQWtCLElBQWxCLEVBQXdCLHdCQUF4QixDQURoQjtBQUVMLDhCQUEwQixhQUFhLElBQWIsQ0FBa0IsSUFBbEIsRUFBd0Isd0JBQXhCO0FBRnJCLEdBQVA7QUFJRCxDQTVCRCIsImZpbGUiOiJydWxlcy9kZWZhdWx0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEV4cG9ydHMgZnJvbSAnLi4vY29yZS9nZXRFeHBvcnRzJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG5cbiAgZnVuY3Rpb24gY2hlY2tEZWZhdWx0KHNwZWNpZmllclR5cGUsIG5vZGUpIHtcblxuICAgIC8vIHBvb3IgbWFuJ3MgQXJyYXkuZmluZFxuICAgIGxldCBkZWZhdWx0U3BlY2lmaWVyXG4gICAgbm9kZS5zcGVjaWZpZXJzLnNvbWUoKG4pID0+IHtcbiAgICAgIGlmIChuLnR5cGUgPT09IHNwZWNpZmllclR5cGUpIHtcbiAgICAgICAgZGVmYXVsdFNwZWNpZmllciA9IG5cbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgaWYgKCFkZWZhdWx0U3BlY2lmaWVyKSByZXR1cm5cbiAgICB2YXIgaW1wb3J0cyA9IEV4cG9ydHMuZ2V0KG5vZGUuc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgIGlmIChpbXBvcnRzID09IG51bGwpIHJldHVyblxuXG4gICAgaWYgKGltcG9ydHMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgaW1wb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgbm9kZSlcbiAgICB9IGVsc2UgaWYgKCFpbXBvcnRzLmdldCgnZGVmYXVsdCcpKSB7XG4gICAgICBjb250ZXh0LnJlcG9ydChkZWZhdWx0U3BlY2lmaWVyLCAnTm8gZGVmYXVsdCBleHBvcnQgZm91bmQgaW4gbW9kdWxlLicpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAnSW1wb3J0RGVjbGFyYXRpb24nOiBjaGVja0RlZmF1bHQuYmluZChudWxsLCAnSW1wb3J0RGVmYXVsdFNwZWNpZmllcicpLFxuICAgICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJzogY2hlY2tEZWZhdWx0LmJpbmQobnVsbCwgJ0V4cG9ydERlZmF1bHRTcGVjaWZpZXInKSxcbiAgfVxufVxuIl19

@@ -133,2 +133,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,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RHNCO1dBQXhCLE1BRU8sUUFBUSxNQUFSLENBQWUsSUFBZixrQ0FBa0QsWUFBbEQsRUFGUDtTQURGO09BSEY7S0FEYztHQTNDbEIsQ0Fka0M7Q0FBbkIiLCJmaWxlIjoicnVsZXMvZXhwb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdlczYtc3ltYm9sL2ltcGxlbWVudCdcbmltcG9ydCBNYXAgZnJvbSAnZXM2LW1hcCdcbmltcG9ydCBTZXQgZnJvbSAnZXM2LXNldCdcblxuaW1wb3J0IEV4cG9ydE1hcCwgeyByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZSB9IGZyb20gJy4uL2NvcmUvZ2V0RXhwb3J0cydcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICBjb25zdCBuYW1lZCA9IG5ldyBNYXAoKVxuXG4gIGZ1bmN0aW9uIGFkZE5hbWVkKG5hbWUsIG5vZGUpIHtcbiAgICBsZXQgbm9kZXMgPSBuYW1lZC5nZXQobmFtZSlcblxuICAgIGlmIChub2RlcyA9PSBudWxsKSB7XG4gICAgICBub2RlcyA9IG5ldyBTZXQoKVxuICAgICAgbmFtZWQuc2V0KG5hbWUsIG5vZGVzKVxuICAgIH1cblxuICAgIG5vZGVzLmFkZChub2RlKVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJzogKG5vZGUpID0+IGFkZE5hbWVkKCdkZWZhdWx0Jywgbm9kZSksXG5cbiAgICAnRXhwb3J0U3BlY2lmaWVyJzogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIGFkZE5hbWVkKG5vZGUuZXhwb3J0ZWQubmFtZSwgbm9kZS5leHBvcnRlZClcbiAgICB9LFxuXG4gICAgJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24gPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLmlkICE9IG51bGwpIHtcbiAgICAgICAgYWRkTmFtZWQobm9kZS5kZWNsYXJhdGlvbi5pZC5uYW1lLCBub2RlLmRlY2xhcmF0aW9uLmlkKVxuICAgICAgfVxuXG4gICAgICBpZiAobm9kZS5kZWNsYXJhdGlvbi5kZWNsYXJhdGlvbnMgIT0gbnVsbCkge1xuICAgICAgICBmb3IgKGxldCBkZWNsYXJhdGlvbiBvZiBub2RlLmRlY2xhcmF0aW9uLmRlY2xhcmF0aW9ucykge1xuICAgICAgICAgIHJlY3Vyc2l2ZVBhdHRlcm5DYXB0dXJlKGRlY2xhcmF0aW9uLmlkLCB2ID0+IGFkZE5hbWVkKHYubmFtZSwgdikpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgJ0V4cG9ydEFsbERlY2xhcmF0aW9uJzogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLnNvdXJjZSA9PSBudWxsKSByZXR1cm4gLy8gbm90IHN1cmUgaWYgdGhpcyBpcyBldmVyIHRydWVcblxuICAgICAgY29uc3QgcmVtb3RlRXhwb3J0cyA9IEV4cG9ydE1hcC5nZXQobm9kZS5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgICBpZiAocmVtb3RlRXhwb3J0cyA9PSBudWxsKSByZXR1cm5cblxuICAgICAgaWYgKHJlbW90ZUV4cG9ydHMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICByZW1vdGVFeHBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBub2RlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGxldCBhbnkgPSBmYWxzZVxuICAgICAgcmVtb3RlRXhwb3J0cy5mb3JFYWNoKCh2LCBuYW1lKSA9PlxuICAgICAgICBuYW1lICE9PSAnZGVmYXVsdCcgJiZcbiAgICAgICAgKGFueSA9IHRydWUpICYmIC8vIHBvb3IgbWFuJ3MgZmlsdGVyXG4gICAgICAgIGFkZE5hbWVkKG5hbWUsIG5vZGUpKVxuXG4gICAgICBpZiAoIWFueSkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChub2RlLnNvdXJjZSxcbiAgICAgICAgICBgTm8gbmFtZWQgZXhwb3J0cyBmb3VuZCBpbiBtb2R1bGUgJyR7bm9kZS5zb3VyY2UudmFsdWV9Jy5gKVxuICAgICAgfVxuICAgIH0sXG5cbiAgICAnUHJvZ3JhbTpleGl0JzogZnVuY3Rpb24gKCkge1xuICAgICAgZm9yIChsZXQgW25hbWUsIG5vZGVzXSBvZiBuYW1lZCkge1xuICAgICAgICBpZiAobm9kZXMuc2l6ZSA8PSAxKSBjb250aW51ZVxuXG4gICAgICAgIGZvciAobGV0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAgICAgICBpZiAobmFtZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydChub2RlLCAnTXVsdGlwbGUgZGVmYXVsdCBleHBvcnRzLicpXG4gICAgICAgICAgfSBlbHNlIGNvbnRleHQucmVwb3J0KG5vZGUsIGBNdWx0aXBsZSBleHBvcnRzIG9mIG5hbWUgJyR7bmFtZX0nLmApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,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LG9CQUFRLE1BQVIsQ0FBZSxJQUFmLEVBQXFCLDJCQUFyQjtBQUNELFdBRkQsTUFFTyxRQUFRLE1BQVIsQ0FBZSxJQUFmLGtDQUFrRCxJQUFsRDtBQUNSO0FBQ0Y7QUFDRjtBQXJESSxHQUFQO0FBdURELENBckVEIiwiZmlsZSI6InJ1bGVzL2V4cG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnZXM2LXN5bWJvbC9pbXBsZW1lbnQnXG5pbXBvcnQgTWFwIGZyb20gJ2VzNi1tYXAnXG5pbXBvcnQgU2V0IGZyb20gJ2VzNi1zZXQnXG5cbmltcG9ydCBFeHBvcnRNYXAsIHsgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUgfSBmcm9tICcuLi9jb3JlL2dldEV4cG9ydHMnXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgY29uc3QgbmFtZWQgPSBuZXcgTWFwKClcblxuICBmdW5jdGlvbiBhZGROYW1lZChuYW1lLCBub2RlKSB7XG4gICAgbGV0IG5vZGVzID0gbmFtZWQuZ2V0KG5hbWUpXG5cbiAgICBpZiAobm9kZXMgPT0gbnVsbCkge1xuICAgICAgbm9kZXMgPSBuZXcgU2V0KClcbiAgICAgIG5hbWVkLnNldChuYW1lLCBub2RlcylcbiAgICB9XG5cbiAgICBub2Rlcy5hZGQobm9kZSlcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbic6IChub2RlKSA9PiBhZGROYW1lZCgnZGVmYXVsdCcsIG5vZGUpLFxuXG4gICAgJ0V4cG9ydFNwZWNpZmllcic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBhZGROYW1lZChub2RlLmV4cG9ydGVkLm5hbWUsIG5vZGUuZXhwb3J0ZWQpXG4gICAgfSxcblxuICAgICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJzogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uID09IG51bGwpIHJldHVyblxuXG4gICAgICBpZiAobm9kZS5kZWNsYXJhdGlvbi5pZCAhPSBudWxsKSB7XG4gICAgICAgIGFkZE5hbWVkKG5vZGUuZGVjbGFyYXRpb24uaWQubmFtZSwgbm9kZS5kZWNsYXJhdGlvbi5pZClcbiAgICAgIH1cblxuICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zICE9IG51bGwpIHtcbiAgICAgICAgZm9yIChsZXQgZGVjbGFyYXRpb24gb2Ygbm9kZS5kZWNsYXJhdGlvbi5kZWNsYXJhdGlvbnMpIHtcbiAgICAgICAgICByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShkZWNsYXJhdGlvbi5pZCwgdiA9PiBhZGROYW1lZCh2Lm5hbWUsIHYpKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcblxuICAgICdFeHBvcnRBbGxEZWNsYXJhdGlvbic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBpZiAobm9kZS5zb3VyY2UgPT0gbnVsbCkgcmV0dXJuIC8vIG5vdCBzdXJlIGlmIHRoaXMgaXMgZXZlciB0cnVlXG5cbiAgICAgIGNvbnN0IHJlbW90ZUV4cG9ydHMgPSBFeHBvcnRNYXAuZ2V0KG5vZGUuc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgICAgaWYgKHJlbW90ZUV4cG9ydHMgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgIGlmIChyZW1vdGVFeHBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgcmVtb3RlRXhwb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgbm9kZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBsZXQgYW55ID0gZmFsc2VcbiAgICAgIHJlbW90ZUV4cG9ydHMuZm9yRWFjaCgodiwgbmFtZSkgPT5cbiAgICAgICAgbmFtZSAhPT0gJ2RlZmF1bHQnICYmXG4gICAgICAgIChhbnkgPSB0cnVlKSAmJiAvLyBwb29yIG1hbidzIGZpbHRlclxuICAgICAgICBhZGROYW1lZChuYW1lLCBub2RlKSlcblxuICAgICAgaWYgKCFhbnkpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQobm9kZS5zb3VyY2UsXG4gICAgICAgICAgYE5vIG5hbWVkIGV4cG9ydHMgZm91bmQgaW4gbW9kdWxlICcke25vZGUuc291cmNlLnZhbHVlfScuYClcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGZvciAobGV0IFtuYW1lLCBub2Rlc10gb2YgbmFtZWQpIHtcbiAgICAgICAgaWYgKG5vZGVzLnNpemUgPD0gMSkgY29udGludWVcblxuICAgICAgICBmb3IgKGxldCBub2RlIG9mIG5vZGVzKSB7XG4gICAgICAgICAgaWYgKG5hbWUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQobm9kZSwgJ011bHRpcGxlIGRlZmF1bHQgZXhwb3J0cy4nKVxuICAgICAgICAgIH0gZWxzZSBjb250ZXh0LnJlcG9ydChub2RlLCBgTXVsdGlwbGUgZXhwb3J0cyBvZiBuYW1lICcke25hbWV9Jy5gKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgfVxufVxuIl19

@@ -86,2 +86,2 @@ 'use strict';

}];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL2V4dGVuc2lvbnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7O0FBRUEsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjtBQUNsQyxNQUFNLGdCQUFnQixRQUFRLE9BQVIsQ0FBZ0IsQ0FBaEIsS0FBc0IsT0FBdEIsQ0FEWTs7QUFHbEMsV0FBUyx3QkFBVCxDQUFrQyxTQUFsQyxFQUE2QztBQUMzQyxRQUFJLFFBQU8scUVBQVAsS0FBeUIsUUFBekIsRUFBbUM7QUFDckMsYUFBTyxjQUFjLFNBQWQsTUFBNkIsUUFBN0IsQ0FEOEI7S0FBdkM7O0FBSUEsV0FBTyxrQkFBa0IsUUFBbEIsQ0FMb0M7R0FBN0M7O0FBUUEsV0FBUyw0QkFBVCxDQUFzQyxJQUF0QyxFQUE0QztBQUMxQyxRQUFNLFlBQVksZUFBSyxPQUFMLENBQWEsSUFBYixDQUFaLENBRG9DO0FBRTFDLFFBQU0sdUJBQXVCLEtBQUssS0FBTCxDQUFXLENBQVgsRUFBYyxDQUFDLFVBQVUsTUFBVixDQUF0QyxDQUZvQztBQUcxQyxRQUFNLCtCQUErQix1QkFBUSxvQkFBUixFQUE4QixPQUE5QixDQUEvQixDQUhvQzs7QUFLMUMsV0FBTyxpQ0FBaUMsdUJBQVEsSUFBUixFQUFjLE9BQWQsQ0FBakMsQ0FMbUM7R0FBNUM7O0FBUUEsV0FBUyxrQkFBVCxDQUE0QixJQUE1QixFQUFrQztRQUN4QixTQUFXLEtBQVgsT0FEd0I7O0FBRWhDLFFBQU0sYUFBYSxPQUFPLEtBQVA7OztBQUZhLFFBSzVCLDJCQUFVLFVBQVYsRUFBc0IsUUFBUSxRQUFSLENBQTFCLEVBQTZDLE9BQTdDOztBQUVBLFFBQU0sZUFBZSx1QkFBUSxVQUFSLEVBQW9CLE9BQXBCLENBQWY7Ozs7QUFQMEIsUUFXMUIsWUFBWSxlQUFLLE9BQUwsQ0FBYSxnQkFBZ0IsVUFBaEIsQ0FBYixDQUF5QyxTQUF6QyxDQUFtRCxDQUFuRCxDQUFaLENBWDBCOztBQWFoQyxRQUFJLENBQUMsU0FBRCxJQUFjLENBQUMsc0JBQVMsVUFBVCxFQUFxQixTQUFyQixDQUFELEVBQWtDO0FBQ2xELFVBQUkseUJBQXlCLFNBQXpCLENBQUosRUFBeUM7QUFDdkMsZ0JBQVEsTUFBUixDQUFlO0FBQ2IsZ0JBQU0sTUFBTjtBQUNBLGdEQUM0QixrQkFBZ0IsZ0JBQWhCLEdBQWdDLEVBQWhDLGNBQTBDLGdCQUR0RTtTQUZGLEVBRHVDO09BQXpDO0tBREYsTUFRTyxJQUFJLFNBQUosRUFBZTtBQUNwQixVQUFJLENBQUMseUJBQXlCLFNBQXpCLENBQUQsSUFBd0MsNkJBQTZCLFVBQTdCLENBQXhDLEVBQWtGO0FBQ3BGLGdCQUFRLE1BQVIsQ0FBZTtBQUNiLGdCQUFNLE1BQU47QUFDQSwwREFBOEMsd0JBQW1CLGdCQUFqRTtTQUZGLEVBRG9GO09BQXRGO0tBREs7R0FyQlQ7O0FBK0JBLFNBQU87QUFDTCx1QkFBbUIsa0JBQW5CO0dBREYsQ0FsRGtDO0NBQW5COztBQXVEakIsT0FBTyxPQUFQLENBQWUsTUFBZixHQUF3QixDQUN0QjtBQUNFLFNBQU8sQ0FDTDtBQUNFLFVBQU0sQ0FBRSxRQUFGLEVBQVksT0FBWixDQUFOO0dBRkcsRUFJTDtBQUNFLFVBQU0sUUFBTjtBQUNBLHVCQUFtQjtBQUNqQixZQUFNLEVBQUUsTUFBTSxDQUFFLFFBQUYsRUFBWSxPQUFaLENBQU4sRUFBUjtLQURGO0dBTkcsQ0FBUDtDQUZvQixDQUF4QiIsImZpbGUiOiJydWxlcy9leHRlbnNpb25zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBlbmRzV2l0aCBmcm9tICdsb2Rhc2guZW5kc3dpdGgnXG5cbmltcG9ydCByZXNvbHZlIGZyb20gJy4uL2NvcmUvcmVzb2x2ZSdcbmltcG9ydCB7IGlzQnVpbHRJbiB9IGZyb20gJy4uL2NvcmUvaW1wb3J0VHlwZSdcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICBjb25zdCBjb25maWd1cmF0aW9uID0gY29udGV4dC5vcHRpb25zWzBdIHx8ICduZXZlcidcblxuICBmdW5jdGlvbiBpc1VzZU9mRXh0ZW5zaW9uRW5mb3JjZWQoZXh0ZW5zaW9uKSB7XG4gICAgaWYgKHR5cGVvZiBjb25maWd1cmF0aW9uID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb25bZXh0ZW5zaW9uXSA9PT0gJ2Fsd2F5cydcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZmlndXJhdGlvbiA9PT0gJ2Fsd2F5cydcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzUmVzb2x2YWJsZVdpdGhvdXRFeHRlbnNpb24oZmlsZSkge1xuICAgIGNvbnN0IGV4dGVuc2lvbiA9IHBhdGguZXh0bmFtZShmaWxlKVxuICAgIGNvbnN0IGZpbGVXaXRob3V0RXh0ZW5zaW9uID0gZmlsZS5zbGljZSgwLCAtZXh0ZW5zaW9uLmxlbmd0aClcbiAgICBjb25zdCByZXNvbHZlZEZpbGVXaXRob3V0RXh0ZW5zaW9uID0gcmVzb2x2ZShmaWxlV2l0aG91dEV4dGVuc2lvbiwgY29udGV4dClcblxuICAgIHJldHVybiByZXNvbHZlZEZpbGVXaXRob3V0RXh0ZW5zaW9uID09PSByZXNvbHZlKGZpbGUsIGNvbnRleHQpXG4gIH1cblxuICBmdW5jdGlvbiBjaGVja0ZpbGVFeHRlbnNpb24obm9kZSkge1xuICAgIGNvbnN0IHsgc291cmNlIH0gPSBub2RlXG4gICAgY29uc3QgaW1wb3J0UGF0aCA9IHNvdXJjZS52YWx1ZVxuXG4gICAgLy8gZG9uJ3QgZW5mb3JjZSBhbnl0aGluZyBvbiBidWlsdGluc1xuICAgIGlmIChpc0J1aWx0SW4oaW1wb3J0UGF0aCwgY29udGV4dC5zZXR0aW5ncykpIHJldHVyblxuXG4gICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gcmVzb2x2ZShpbXBvcnRQYXRoLCBjb250ZXh0KVxuXG4gICAgLy8gZ2V0IGV4dGVuc2lvbiBmcm9tIHJlc29sdmVkIHBhdGgsIGlmIHBvc3NpYmxlLlxuICAgIC8vIGZvciB1bnJlc29sdmVkLCB1c2Ugc291cmNlIHZhbHVlLlxuICAgIGNvbnN0IGV4dGVuc2lvbiA9IHBhdGguZXh0bmFtZShyZXNvbHZlZFBhdGggfHwgaW1wb3J0UGF0aCkuc3Vic3RyaW5nKDEpXG5cbiAgICBpZiAoIWV4dGVuc2lvbiB8fCAhZW5kc1dpdGgoaW1wb3J0UGF0aCwgZXh0ZW5zaW9uKSkge1xuICAgICAgaWYgKGlzVXNlT2ZFeHRlbnNpb25FbmZvcmNlZChleHRlbnNpb24pKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBub2RlOiBzb3VyY2UsXG4gICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgIGBNaXNzaW5nIGZpbGUgZXh0ZW5zaW9uICR7ZXh0ZW5zaW9uID8gYFwiJHtleHRlbnNpb259XCIgYCA6ICcnfWZvciBcIiR7aW1wb3J0UGF0aH1cImAsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChleHRlbnNpb24pIHtcbiAgICAgIGlmICghaXNVc2VPZkV4dGVuc2lvbkVuZm9yY2VkKGV4dGVuc2lvbikgJiYgaXNSZXNvbHZhYmxlV2l0aG91dEV4dGVuc2lvbihpbXBvcnRQYXRoKSkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZTogc291cmNlLFxuICAgICAgICAgIG1lc3NhZ2U6IGBVbmV4cGVjdGVkIHVzZSBvZiBmaWxlIGV4dGVuc2lvbiBcIiR7ZXh0ZW5zaW9ufVwiIGZvciBcIiR7aW1wb3J0UGF0aH1cImAsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBJbXBvcnREZWNsYXJhdGlvbjogY2hlY2tGaWxlRXh0ZW5zaW9uLFxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzLnNjaGVtYSA9IFtcbiAge1xuICAgIG9uZU9mOiBbXG4gICAgICB7XG4gICAgICAgIGVudW06IFsgJ2Fsd2F5cycsICduZXZlcicgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICBwYXR0ZXJuUHJvcGVydGllczoge1xuICAgICAgICAgICcuKic6IHsgZW51bTogWyAnYWx3YXlzJywgJ25ldmVyJyBdIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5dXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL2V4dGVuc2lvbnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7O0FBRUEsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjtBQUNsQyxNQUFNLGdCQUFnQixRQUFRLE9BQVIsQ0FBZ0IsQ0FBaEIsS0FBc0IsT0FBNUM7O0FBRUEsV0FBUyx3QkFBVCxDQUFrQyxTQUFsQyxFQUE2QztBQUMzQyxRQUFJLFFBQU8sYUFBUCx5Q0FBTyxhQUFQLE9BQXlCLFFBQTdCLEVBQXVDO0FBQ3JDLGFBQU8sY0FBYyxTQUFkLE1BQTZCLFFBQXBDO0FBQ0Q7O0FBRUQsV0FBTyxrQkFBa0IsUUFBekI7QUFDRDs7QUFFRCxXQUFTLDRCQUFULENBQXNDLElBQXRDLEVBQTRDO0FBQzFDLFFBQU0sWUFBWSxlQUFLLE9BQUwsQ0FBYSxJQUFiLENBQWxCO0FBQ0EsUUFBTSx1QkFBdUIsS0FBSyxLQUFMLENBQVcsQ0FBWCxFQUFjLENBQUMsVUFBVSxNQUF6QixDQUE3QjtBQUNBLFFBQU0sK0JBQStCLHVCQUFRLG9CQUFSLEVBQThCLE9BQTlCLENBQXJDOztBQUVBLFdBQU8saUNBQWlDLHVCQUFRLElBQVIsRUFBYyxPQUFkLENBQXhDO0FBQ0Q7O0FBRUQsV0FBUyxrQkFBVCxDQUE0QixJQUE1QixFQUFrQztBQUFBLFFBQ3hCLE1BRHdCLEdBQ2IsSUFEYSxDQUN4QixNQUR3Qjs7QUFFaEMsUUFBTSxhQUFhLE9BQU8sS0FBMUI7OztBQUdBLFFBQUksMkJBQVUsVUFBVixFQUFzQixRQUFRLFFBQTlCLENBQUosRUFBNkM7O0FBRTdDLFFBQU0sZUFBZSx1QkFBUSxVQUFSLEVBQW9CLE9BQXBCLENBQXJCOzs7O0FBSUEsUUFBTSxZQUFZLGVBQUssT0FBTCxDQUFhLGdCQUFnQixVQUE3QixFQUF5QyxTQUF6QyxDQUFtRCxDQUFuRCxDQUFsQjs7QUFFQSxRQUFJLENBQUMsU0FBRCxJQUFjLENBQUMsc0JBQVMsVUFBVCxFQUFxQixTQUFyQixDQUFuQixFQUFvRDtBQUNsRCxVQUFJLHlCQUF5QixTQUF6QixDQUFKLEVBQXlDO0FBQ3ZDLGdCQUFRLE1BQVIsQ0FBZTtBQUNiLGdCQUFNLE1BRE87QUFFYixnREFDNEIsa0JBQWdCLFNBQWhCLFVBQWdDLEVBRDVELGNBQ3NFLFVBRHRFO0FBRmEsU0FBZjtBQUtEO0FBQ0YsS0FSRCxNQVFPLElBQUksU0FBSixFQUFlO0FBQ3BCLFVBQUksQ0FBQyx5QkFBeUIsU0FBekIsQ0FBRCxJQUF3Qyw2QkFBNkIsVUFBN0IsQ0FBNUMsRUFBc0Y7QUFDcEYsZ0JBQVEsTUFBUixDQUFlO0FBQ2IsZ0JBQU0sTUFETztBQUViLDBEQUE4QyxTQUE5QyxlQUFpRSxVQUFqRTtBQUZhLFNBQWY7QUFJRDtBQUNGO0FBQ0Y7O0FBRUQsU0FBTztBQUNMLHVCQUFtQjtBQURkLEdBQVA7QUFHRCxDQXJERDs7QUF1REEsT0FBTyxPQUFQLENBQWUsTUFBZixHQUF3QixDQUN0QjtBQUNFLFNBQU8sQ0FDTDtBQUNFLFVBQU0sQ0FBRSxRQUFGLEVBQVksT0FBWjtBQURSLEdBREssRUFJTDtBQUNFLFVBQU0sUUFEUjtBQUVFLHVCQUFtQjtBQUNqQixZQUFNLEVBQUUsTUFBTSxDQUFFLFFBQUYsRUFBWSxPQUFaLENBQVI7QUFEVztBQUZyQixHQUpLO0FBRFQsQ0FEc0IsQ0FBeEIiLCJmaWxlIjoicnVsZXMvZXh0ZW5zaW9ucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgZW5kc1dpdGggZnJvbSAnbG9kYXNoLmVuZHN3aXRoJ1xuXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICcuLi9jb3JlL3Jlc29sdmUnXG5pbXBvcnQgeyBpc0J1aWx0SW4gfSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgY29uc3QgY29uZmlndXJhdGlvbiA9IGNvbnRleHQub3B0aW9uc1swXSB8fCAnbmV2ZXInXG5cbiAgZnVuY3Rpb24gaXNVc2VPZkV4dGVuc2lvbkVuZm9yY2VkKGV4dGVuc2lvbikge1xuICAgIGlmICh0eXBlb2YgY29uZmlndXJhdGlvbiA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBjb25maWd1cmF0aW9uW2V4dGVuc2lvbl0gPT09ICdhbHdheXMnXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZ3VyYXRpb24gPT09ICdhbHdheXMnXG4gIH1cblxuICBmdW5jdGlvbiBpc1Jlc29sdmFibGVXaXRob3V0RXh0ZW5zaW9uKGZpbGUpIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBwYXRoLmV4dG5hbWUoZmlsZSlcbiAgICBjb25zdCBmaWxlV2l0aG91dEV4dGVuc2lvbiA9IGZpbGUuc2xpY2UoMCwgLWV4dGVuc2lvbi5sZW5ndGgpXG4gICAgY29uc3QgcmVzb2x2ZWRGaWxlV2l0aG91dEV4dGVuc2lvbiA9IHJlc29sdmUoZmlsZVdpdGhvdXRFeHRlbnNpb24sIGNvbnRleHQpXG5cbiAgICByZXR1cm4gcmVzb2x2ZWRGaWxlV2l0aG91dEV4dGVuc2lvbiA9PT0gcmVzb2x2ZShmaWxlLCBjb250ZXh0KVxuICB9XG5cbiAgZnVuY3Rpb24gY2hlY2tGaWxlRXh0ZW5zaW9uKG5vZGUpIHtcbiAgICBjb25zdCB7IHNvdXJjZSB9ID0gbm9kZVxuICAgIGNvbnN0IGltcG9ydFBhdGggPSBzb3VyY2UudmFsdWVcblxuICAgIC8vIGRvbid0IGVuZm9yY2UgYW55dGhpbmcgb24gYnVpbHRpbnNcbiAgICBpZiAoaXNCdWlsdEluKGltcG9ydFBhdGgsIGNvbnRleHQuc2V0dGluZ3MpKSByZXR1cm5cblxuICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IHJlc29sdmUoaW1wb3J0UGF0aCwgY29udGV4dClcblxuICAgIC8vIGdldCBleHRlbnNpb24gZnJvbSByZXNvbHZlZCBwYXRoLCBpZiBwb3NzaWJsZS5cbiAgICAvLyBmb3IgdW5yZXNvbHZlZCwgdXNlIHNvdXJjZSB2YWx1ZS5cbiAgICBjb25zdCBleHRlbnNpb24gPSBwYXRoLmV4dG5hbWUocmVzb2x2ZWRQYXRoIHx8IGltcG9ydFBhdGgpLnN1YnN0cmluZygxKVxuXG4gICAgaWYgKCFleHRlbnNpb24gfHwgIWVuZHNXaXRoKGltcG9ydFBhdGgsIGV4dGVuc2lvbikpIHtcbiAgICAgIGlmIChpc1VzZU9mRXh0ZW5zaW9uRW5mb3JjZWQoZXh0ZW5zaW9uKSkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZTogc291cmNlLFxuICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICBgTWlzc2luZyBmaWxlIGV4dGVuc2lvbiAke2V4dGVuc2lvbiA/IGBcIiR7ZXh0ZW5zaW9ufVwiIGAgOiAnJ31mb3IgXCIke2ltcG9ydFBhdGh9XCJgLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZXh0ZW5zaW9uKSB7XG4gICAgICBpZiAoIWlzVXNlT2ZFeHRlbnNpb25FbmZvcmNlZChleHRlbnNpb24pICYmIGlzUmVzb2x2YWJsZVdpdGhvdXRFeHRlbnNpb24oaW1wb3J0UGF0aCkpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGU6IHNvdXJjZSxcbiAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCB1c2Ugb2YgZmlsZSBleHRlbnNpb24gXCIke2V4dGVuc2lvbn1cIiBmb3IgXCIke2ltcG9ydFBhdGh9XCJgLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgSW1wb3J0RGVjbGFyYXRpb246IGNoZWNrRmlsZUV4dGVuc2lvbixcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cy5zY2hlbWEgPSBbXG4gIHtcbiAgICBvbmVPZjogW1xuICAgICAge1xuICAgICAgICBlbnVtOiBbICdhbHdheXMnLCAnbmV2ZXInIF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcGF0dGVyblByb3BlcnRpZXM6IHtcbiAgICAgICAgICAnLionOiB7IGVudW06IFsgJ2Fsd2F5cycsICduZXZlcicgXSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXVxuIl19

@@ -46,2 +46,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL2ltcG9ydHMtZmlyc3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLE9BQVAsR0FBaUIsVUFBVSxPQUFWLEVBQW1CO0FBQ2xDLFdBQVMsbUJBQVQsQ0FBOEIsSUFBOUIsRUFBb0M7QUFDbEMsV0FBTyxLQUFLLElBQUwsS0FBYyxxQkFBZCxJQUNMLEtBQUssVUFBTCxDQUFnQixJQUFoQixLQUF5QixTQUF6QixJQUNBLE9BQU8sS0FBSyxVQUFMLENBQWdCLEtBQWhCLEtBQTBCLFFBQWpDLENBSGdDO0dBQXBDOztBQU1BLFNBQU87QUFDTCxlQUFXLGlCQUFVLENBQVYsRUFBYTtBQUN0QixVQUFNLE9BQU8sRUFBRSxJQUFGO1VBQ1AsZ0JBQWdCLFFBQVEsT0FBUixDQUFnQixDQUFoQixNQUF1QixnQkFBdkIsQ0FGQTtBQUd0QixVQUFJLGlCQUFpQixDQUFqQjtVQUNBLGlCQUFpQixLQUFqQjtVQUNBLGNBQWMsS0FBZCxDQUxrQjtBQU10QixXQUFLLE9BQUwsQ0FBYSxVQUFVLElBQVYsRUFBZTtBQUMxQixZQUFJLENBQUMsY0FBRCxJQUFtQixvQkFBb0IsSUFBcEIsQ0FBbkIsRUFBOEM7QUFDaEQsaUJBRGdEO1NBQWxEOztBQUlBLHlCQUFpQixJQUFqQixDQUwwQjs7QUFPMUIsWUFBSSxLQUFLLElBQUwsS0FBYyxtQkFBZCxFQUFtQztBQUNyQyxjQUFJLGFBQUosRUFBbUI7QUFDakIsZ0JBQUksTUFBTSxJQUFOLENBQVcsS0FBSyxNQUFMLENBQVksS0FBWixDQUFmLEVBQW1DO0FBQ2pDLDRCQUFjLElBQWQsQ0FEaUM7YUFBbkMsTUFFTyxJQUFJLFdBQUosRUFBaUI7QUFDdEIsc0JBQVEsTUFBUixDQUFlO0FBQ2Isc0JBQU0sS0FBSyxNQUFMO0FBQ04seUJBQVMsdURBQVQ7ZUFGRixFQURzQjthQUFqQjtXQUhUO0FBVUEsY0FBSSxpQkFBaUIsQ0FBakIsRUFBb0I7QUFDdEIsb0JBQVEsTUFBUixDQUFlO0FBQ2Isd0JBRGE7QUFFYix1QkFBUywyQ0FBVDthQUZGLEVBRHNCO1dBQXhCO1NBWEYsTUFpQk87QUFDTCwyQkFESztTQWpCUDtPQVBXLENBQWIsQ0FOc0I7S0FBYjtHQURiLENBUGtDO0NBQW5CIiwiZmlsZSI6InJ1bGVzL2ltcG9ydHMtZmlyc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIGZ1bmN0aW9uIGlzUG9zc2libGVEaXJlY3RpdmUgKG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS50eXBlID09PSAnRXhwcmVzc2lvblN0YXRlbWVudCcgJiZcbiAgICAgIG5vZGUuZXhwcmVzc2lvbi50eXBlID09PSAnTGl0ZXJhbCcgJiZcbiAgICAgIHR5cGVvZiBub2RlLmV4cHJlc3Npb24udmFsdWUgPT09ICdzdHJpbmcnXG4gIH1cblxuICByZXR1cm4ge1xuICAgICdQcm9ncmFtJzogZnVuY3Rpb24gKG4pIHtcbiAgICAgIGNvbnN0IGJvZHkgPSBuLmJvZHlcbiAgICAgICAgICAsIGFic29sdXRlRmlyc3QgPSBjb250ZXh0Lm9wdGlvbnNbMF0gPT09ICdhYnNvbHV0ZS1maXJzdCdcbiAgICAgIGxldCBub25JbXBvcnRDb3VudCA9IDBcbiAgICAgICAgLCBhbnlFeHByZXNzaW9ucyA9IGZhbHNlXG4gICAgICAgICwgYW55UmVsYXRpdmUgPSBmYWxzZVxuICAgICAgYm9keS5mb3JFYWNoKGZ1bmN0aW9uIChub2RlKXtcbiAgICAgICAgaWYgKCFhbnlFeHByZXNzaW9ucyAmJiBpc1Bvc3NpYmxlRGlyZWN0aXZlKG5vZGUpKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBhbnlFeHByZXNzaW9ucyA9IHRydWVcbiAgICAgICAgIFxuICAgICAgICBpZiAobm9kZS50eXBlID09PSAnSW1wb3J0RGVjbGFyYXRpb24nKSB7XG4gICAgICAgICAgaWYgKGFic29sdXRlRmlyc3QpIHtcbiAgICAgICAgICAgIGlmICgvXlxcLi8udGVzdChub2RlLnNvdXJjZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgYW55UmVsYXRpdmUgPSB0cnVlXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFueVJlbGF0aXZlKSB7XG4gICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICBub2RlOiBub2RlLnNvdXJjZSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnQWJzb2x1dGUgaW1wb3J0cyBzaG91bGQgY29tZSBiZWZvcmUgcmVsYXRpdmUgaW1wb3J0cy4nLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobm9uSW1wb3J0Q291bnQgPiAwKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdJbXBvcnQgaW4gYm9keSBvZiBtb2R1bGU7IHJlb3JkZXIgdG8gdG9wLicsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBub25JbXBvcnRDb3VudCsrXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSxcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL2ltcG9ydHMtZmlyc3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLE9BQVAsR0FBaUIsVUFBVSxPQUFWLEVBQW1CO0FBQ2xDLFdBQVMsbUJBQVQsQ0FBOEIsSUFBOUIsRUFBb0M7QUFDbEMsV0FBTyxLQUFLLElBQUwsS0FBYyxxQkFBZCxJQUNMLEtBQUssVUFBTCxDQUFnQixJQUFoQixLQUF5QixTQURwQixJQUVMLE9BQU8sS0FBSyxVQUFMLENBQWdCLEtBQXZCLEtBQWlDLFFBRm5DO0FBR0Q7O0FBRUQsU0FBTztBQUNMLGVBQVcsaUJBQVUsQ0FBVixFQUFhO0FBQ3RCLFVBQU0sT0FBTyxFQUFFLElBQWY7QUFBQSxVQUNNLGdCQUFnQixRQUFRLE9BQVIsQ0FBZ0IsQ0FBaEIsTUFBdUIsZ0JBRDdDO0FBRUEsVUFBSSxpQkFBaUIsQ0FBckI7QUFBQSxVQUNJLGlCQUFpQixLQURyQjtBQUFBLFVBRUksY0FBYyxLQUZsQjtBQUdBLFdBQUssT0FBTCxDQUFhLFVBQVUsSUFBVixFQUFlO0FBQzFCLFlBQUksQ0FBQyxjQUFELElBQW1CLG9CQUFvQixJQUFwQixDQUF2QixFQUFrRDtBQUNoRDtBQUNEOztBQUVELHlCQUFpQixJQUFqQjs7QUFFQSxZQUFJLEtBQUssSUFBTCxLQUFjLG1CQUFsQixFQUF1QztBQUNyQyxjQUFJLGFBQUosRUFBbUI7QUFDakIsZ0JBQUksTUFBTSxJQUFOLENBQVcsS0FBSyxNQUFMLENBQVksS0FBdkIsQ0FBSixFQUFtQztBQUNqQyw0QkFBYyxJQUFkO0FBQ0QsYUFGRCxNQUVPLElBQUksV0FBSixFQUFpQjtBQUN0QixzQkFBUSxNQUFSLENBQWU7QUFDYixzQkFBTSxLQUFLLE1BREU7QUFFYix5QkFBUztBQUZJLGVBQWY7QUFJRDtBQUNGO0FBQ0QsY0FBSSxpQkFBaUIsQ0FBckIsRUFBd0I7QUFDdEIsb0JBQVEsTUFBUixDQUFlO0FBQ2Isd0JBRGE7QUFFYix1QkFBUztBQUZJLGFBQWY7QUFJRDtBQUNGLFNBakJELE1BaUJPO0FBQ0w7QUFDRDtBQUNGLE9BM0JEO0FBNEJEO0FBbkNJLEdBQVA7QUFxQ0QsQ0E1Q0QiLCJmaWxlIjoicnVsZXMvaW1wb3J0cy1maXJzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgZnVuY3Rpb24gaXNQb3NzaWJsZURpcmVjdGl2ZSAobm9kZSkge1xuICAgIHJldHVybiBub2RlLnR5cGUgPT09ICdFeHByZXNzaW9uU3RhdGVtZW50JyAmJlxuICAgICAgbm9kZS5leHByZXNzaW9uLnR5cGUgPT09ICdMaXRlcmFsJyAmJlxuICAgICAgdHlwZW9mIG5vZGUuZXhwcmVzc2lvbi52YWx1ZSA9PT0gJ3N0cmluZydcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJ1Byb2dyYW0nOiBmdW5jdGlvbiAobikge1xuICAgICAgY29uc3QgYm9keSA9IG4uYm9keVxuICAgICAgICAgICwgYWJzb2x1dGVGaXJzdCA9IGNvbnRleHQub3B0aW9uc1swXSA9PT0gJ2Fic29sdXRlLWZpcnN0J1xuICAgICAgbGV0IG5vbkltcG9ydENvdW50ID0gMFxuICAgICAgICAsIGFueUV4cHJlc3Npb25zID0gZmFsc2VcbiAgICAgICAgLCBhbnlSZWxhdGl2ZSA9IGZhbHNlXG4gICAgICBib2R5LmZvckVhY2goZnVuY3Rpb24gKG5vZGUpe1xuICAgICAgICBpZiAoIWFueUV4cHJlc3Npb25zICYmIGlzUG9zc2libGVEaXJlY3RpdmUobm9kZSkpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGFueUV4cHJlc3Npb25zID0gdHJ1ZVxuICAgICAgICAgXG4gICAgICAgIGlmIChub2RlLnR5cGUgPT09ICdJbXBvcnREZWNsYXJhdGlvbicpIHtcbiAgICAgICAgICBpZiAoYWJzb2x1dGVGaXJzdCkge1xuICAgICAgICAgICAgaWYgKC9eXFwuLy50ZXN0KG5vZGUuc291cmNlLnZhbHVlKSkge1xuICAgICAgICAgICAgICBhbnlSZWxhdGl2ZSA9IHRydWVcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYW55UmVsYXRpdmUpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgIG5vZGU6IG5vZGUuc291cmNlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdBYnNvbHV0ZSBpbXBvcnRzIHNob3VsZCBjb21lIGJlZm9yZSByZWxhdGl2ZSBpbXBvcnRzLicsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChub25JbXBvcnRDb3VudCA+IDApIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ0ltcG9ydCBpbiBib2R5IG9mIG1vZHVsZTsgcmVvcmRlciB0byB0b3AuJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vbkltcG9ydENvdW50KytcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9LFxuICB9XG59XG4iXX0=

@@ -58,2 +58,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25hbWVkLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0lBQVk7O0FBQ1o7Ozs7Ozs7O0FBRUEsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjtBQUNsQyxXQUFTLGVBQVQsQ0FBeUIsR0FBekIsRUFBOEIsSUFBOUIsRUFBb0MsSUFBcEMsRUFBMEM7QUFDeEMsUUFBSSxLQUFLLE1BQUwsSUFBZSxJQUFmLEVBQXFCLE9BQXpCOztBQUR3QyxRQUdwQyxDQUFDLEtBQUssVUFBTCxDQUNFLElBREYsQ0FDTyxVQUFVLEVBQVYsRUFBYztBQUFFLGFBQU8sR0FBRyxJQUFILEtBQVksSUFBWixDQUFUO0tBQWQsQ0FEUixFQUNvRDtBQUN0RDtBQURzRCxLQUR4RDs7QUFLQSxRQUFNLFVBQVUscUJBQVEsR0FBUixDQUFZLEtBQUssTUFBTCxDQUFZLEtBQVosRUFBbUIsT0FBL0IsQ0FBVixDQVJrQztBQVN4QyxRQUFJLFdBQVcsSUFBWCxFQUFpQixPQUFyQjs7QUFFQSxRQUFJLFFBQVEsTUFBUixDQUFlLE1BQWYsRUFBdUI7QUFDekIsY0FBUSxZQUFSLENBQXFCLE9BQXJCLEVBQThCLElBQTlCLEVBRHlCO0FBRXpCLGFBRnlCO0tBQTNCOztBQUtBLFNBQUssVUFBTCxDQUFnQixPQUFoQixDQUF3QixVQUFVLEVBQVYsRUFBYztBQUNwQyxVQUFJLEdBQUcsSUFBSCxLQUFZLElBQVosRUFBa0IsT0FBdEI7O0FBRUEsVUFBTSxhQUFhLFFBQVEsT0FBUixDQUFnQixHQUFHLEdBQUgsRUFBUSxJQUFSLENBQTdCLENBSDhCOztBQUtwQyxVQUFJLENBQUMsV0FBVyxLQUFYLEVBQWtCO0FBQ3JCLFlBQUksV0FBVyxJQUFYLENBQWdCLE1BQWhCLEdBQXlCLENBQXpCLEVBQTRCO0FBQzlCLGNBQU0sV0FBVyxXQUFXLElBQVgsQ0FDZCxHQURjLENBQ1Y7bUJBQUssS0FBSyxRQUFMLENBQWMsS0FBSyxPQUFMLENBQWEsUUFBUSxXQUFSLEVBQWIsQ0FBZCxFQUFtRCxFQUFFLElBQUY7V0FBeEQsQ0FEVSxDQUVkLElBRmMsQ0FFVCxNQUZTLENBQVgsQ0FEd0I7O0FBSzlCLGtCQUFRLE1BQVIsQ0FBZSxHQUFHLEdBQUgsQ0FBZixFQUNLLEdBQUcsR0FBSCxFQUFRLElBQVIsdUJBQThCLFFBRG5DLEVBTDhCO1NBQWhDLE1BT087QUFDTCxrQkFBUSxNQUFSLENBQWUsR0FBRyxHQUFILENBQWYsRUFDRSxHQUFHLEdBQUgsRUFBUSxJQUFSLEdBQWUsa0JBQWYsR0FBb0MsS0FBSyxNQUFMLENBQVksS0FBWixHQUFvQixJQUF4RCxDQURGLENBREs7U0FQUDtPQURGO0tBTHNCLENBQXhCLENBaEJ3QztHQUExQzs7QUFxQ0EsU0FBTztBQUNMLHlCQUFxQixnQkFBZ0IsSUFBaEIsQ0FBc0IsSUFBdEIsRUFDc0IsVUFEdEIsRUFFc0IsaUJBRnRCLENBQXJCOztBQUtBLDhCQUEwQixnQkFBZ0IsSUFBaEIsQ0FBc0IsSUFBdEIsRUFDc0IsT0FEdEIsRUFFc0IsaUJBRnRCLENBQTFCO0dBTkYsQ0F0Q2tDO0NBQW5CIiwiZmlsZSI6InJ1bGVzL25hbWVkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IEV4cG9ydHMgZnJvbSAnLi4vY29yZS9nZXRFeHBvcnRzJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIGZ1bmN0aW9uIGNoZWNrU3BlY2lmaWVycyhrZXksIHR5cGUsIG5vZGUpIHtcbiAgICBpZiAobm9kZS5zb3VyY2UgPT0gbnVsbCkgcmV0dXJuIC8vIGxvY2FsIGV4cG9ydCwgaWdub3JlXG5cbiAgICBpZiAoIW5vZGUuc3BlY2lmaWVyc1xuICAgICAgICAgIC5zb21lKGZ1bmN0aW9uIChpbSkgeyByZXR1cm4gaW0udHlwZSA9PT0gdHlwZSB9KSkge1xuICAgICAgcmV0dXJuIC8vIG5vIG5hbWVkIGltcG9ydHMvZXhwb3J0c1xuICAgIH1cblxuICAgIGNvbnN0IGltcG9ydHMgPSBFeHBvcnRzLmdldChub2RlLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm5cblxuICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIG5vZGUpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBub2RlLnNwZWNpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAoaW0pIHtcbiAgICAgIGlmIChpbS50eXBlICE9PSB0eXBlKSByZXR1cm5cblxuICAgICAgY29uc3QgZGVlcExvb2t1cCA9IGltcG9ydHMuaGFzRGVlcChpbVtrZXldLm5hbWUpXG5cbiAgICAgIGlmICghZGVlcExvb2t1cC5mb3VuZCkge1xuICAgICAgICBpZiAoZGVlcExvb2t1cC5wYXRoLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBjb25zdCBkZWVwUGF0aCA9IGRlZXBMb29rdXAucGF0aFxuICAgICAgICAgICAgLm1hcChpID0+IHBhdGgucmVsYXRpdmUocGF0aC5kaXJuYW1lKGNvbnRleHQuZ2V0RmlsZW5hbWUoKSksIGkucGF0aCkpXG4gICAgICAgICAgICAuam9pbignIC0+ICcpXG5cbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChpbVtrZXldLFxuICAgICAgICAgICAgYCR7aW1ba2V5XS5uYW1lfSBub3QgZm91bmQgdmlhICR7ZGVlcFBhdGh9YClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChpbVtrZXldLFxuICAgICAgICAgICAgaW1ba2V5XS5uYW1lICsgJyBub3QgZm91bmQgaW4gXFwnJyArIG5vZGUuc291cmNlLnZhbHVlICsgJ1xcJycpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAnSW1wb3J0RGVjbGFyYXRpb24nOiBjaGVja1NwZWNpZmllcnMuYmluZCggbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAnaW1wb3J0ZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICdJbXBvcnRTcGVjaWZpZXInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuXG4gICAgJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nOiBjaGVja1NwZWNpZmllcnMuYmluZCggbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICdsb2NhbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAnRXhwb3J0U3BlY2lmaWVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICB9XG5cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25hbWVkLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0lBQVksSTs7QUFDWjs7Ozs7Ozs7QUFFQSxPQUFPLE9BQVAsR0FBaUIsVUFBVSxPQUFWLEVBQW1CO0FBQ2xDLFdBQVMsZUFBVCxDQUF5QixHQUF6QixFQUE4QixJQUE5QixFQUFvQyxJQUFwQyxFQUEwQztBQUN4QyxRQUFJLEtBQUssTUFBTCxJQUFlLElBQW5CLEVBQXlCLE87O0FBRXpCLFFBQUksQ0FBQyxLQUFLLFVBQUwsQ0FDRSxJQURGLENBQ08sVUFBVSxFQUFWLEVBQWM7QUFBRSxhQUFPLEdBQUcsSUFBSCxLQUFZLElBQW5CO0FBQXlCLEtBRGhELENBQUwsRUFDd0Q7QUFDdEQsYTtBQUNEOztBQUVELFFBQU0sVUFBVSxxQkFBUSxHQUFSLENBQVksS0FBSyxNQUFMLENBQVksS0FBeEIsRUFBK0IsT0FBL0IsQ0FBaEI7QUFDQSxRQUFJLFdBQVcsSUFBZixFQUFxQjs7QUFFckIsUUFBSSxRQUFRLE1BQVIsQ0FBZSxNQUFuQixFQUEyQjtBQUN6QixjQUFRLFlBQVIsQ0FBcUIsT0FBckIsRUFBOEIsSUFBOUI7QUFDQTtBQUNEOztBQUVELFNBQUssVUFBTCxDQUFnQixPQUFoQixDQUF3QixVQUFVLEVBQVYsRUFBYztBQUNwQyxVQUFJLEdBQUcsSUFBSCxLQUFZLElBQWhCLEVBQXNCOztBQUV0QixVQUFNLGFBQWEsUUFBUSxPQUFSLENBQWdCLEdBQUcsR0FBSCxFQUFRLElBQXhCLENBQW5COztBQUVBLFVBQUksQ0FBQyxXQUFXLEtBQWhCLEVBQXVCO0FBQ3JCLFlBQUksV0FBVyxJQUFYLENBQWdCLE1BQWhCLEdBQXlCLENBQTdCLEVBQWdDO0FBQzlCLGNBQU0sV0FBVyxXQUFXLElBQVgsQ0FDZCxHQURjLENBQ1Y7QUFBQSxtQkFBSyxLQUFLLFFBQUwsQ0FBYyxLQUFLLE9BQUwsQ0FBYSxRQUFRLFdBQVIsRUFBYixDQUFkLEVBQW1ELEVBQUUsSUFBckQsQ0FBTDtBQUFBLFdBRFUsRUFFZCxJQUZjLENBRVQsTUFGUyxDQUFqQjs7QUFJQSxrQkFBUSxNQUFSLENBQWUsR0FBRyxHQUFILENBQWYsRUFDSyxHQUFHLEdBQUgsRUFBUSxJQURiLHVCQUNtQyxRQURuQztBQUVELFNBUEQsTUFPTztBQUNMLGtCQUFRLE1BQVIsQ0FBZSxHQUFHLEdBQUgsQ0FBZixFQUNFLEdBQUcsR0FBSCxFQUFRLElBQVIsR0FBZSxrQkFBZixHQUFvQyxLQUFLLE1BQUwsQ0FBWSxLQUFoRCxHQUF3RCxJQUQxRDtBQUVEO0FBQ0Y7QUFDRixLQWxCRDtBQW1CRDs7QUFFRCxTQUFPO0FBQ0wseUJBQXFCLGdCQUFnQixJQUFoQixDQUFzQixJQUF0QixFQUNzQixVQUR0QixFQUVzQixpQkFGdEIsQ0FEaEI7O0FBTUwsOEJBQTBCLGdCQUFnQixJQUFoQixDQUFzQixJQUF0QixFQUNzQixPQUR0QixFQUVzQixpQkFGdEI7QUFOckIsR0FBUDtBQVlELENBbEREIiwiZmlsZSI6InJ1bGVzL25hbWVkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IEV4cG9ydHMgZnJvbSAnLi4vY29yZS9nZXRFeHBvcnRzJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIGZ1bmN0aW9uIGNoZWNrU3BlY2lmaWVycyhrZXksIHR5cGUsIG5vZGUpIHtcbiAgICBpZiAobm9kZS5zb3VyY2UgPT0gbnVsbCkgcmV0dXJuIC8vIGxvY2FsIGV4cG9ydCwgaWdub3JlXG5cbiAgICBpZiAoIW5vZGUuc3BlY2lmaWVyc1xuICAgICAgICAgIC5zb21lKGZ1bmN0aW9uIChpbSkgeyByZXR1cm4gaW0udHlwZSA9PT0gdHlwZSB9KSkge1xuICAgICAgcmV0dXJuIC8vIG5vIG5hbWVkIGltcG9ydHMvZXhwb3J0c1xuICAgIH1cblxuICAgIGNvbnN0IGltcG9ydHMgPSBFeHBvcnRzLmdldChub2RlLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm5cblxuICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIG5vZGUpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBub2RlLnNwZWNpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAoaW0pIHtcbiAgICAgIGlmIChpbS50eXBlICE9PSB0eXBlKSByZXR1cm5cblxuICAgICAgY29uc3QgZGVlcExvb2t1cCA9IGltcG9ydHMuaGFzRGVlcChpbVtrZXldLm5hbWUpXG5cbiAgICAgIGlmICghZGVlcExvb2t1cC5mb3VuZCkge1xuICAgICAgICBpZiAoZGVlcExvb2t1cC5wYXRoLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBjb25zdCBkZWVwUGF0aCA9IGRlZXBMb29rdXAucGF0aFxuICAgICAgICAgICAgLm1hcChpID0+IHBhdGgucmVsYXRpdmUocGF0aC5kaXJuYW1lKGNvbnRleHQuZ2V0RmlsZW5hbWUoKSksIGkucGF0aCkpXG4gICAgICAgICAgICAuam9pbignIC0+ICcpXG5cbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChpbVtrZXldLFxuICAgICAgICAgICAgYCR7aW1ba2V5XS5uYW1lfSBub3QgZm91bmQgdmlhICR7ZGVlcFBhdGh9YClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChpbVtrZXldLFxuICAgICAgICAgICAgaW1ba2V5XS5uYW1lICsgJyBub3QgZm91bmQgaW4gXFwnJyArIG5vZGUuc291cmNlLnZhbHVlICsgJ1xcJycpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAnSW1wb3J0RGVjbGFyYXRpb24nOiBjaGVja1NwZWNpZmllcnMuYmluZCggbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAnaW1wb3J0ZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICdJbXBvcnRTcGVjaWZpZXInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuXG4gICAgJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nOiBjaGVja1NwZWNpZmllcnMuYmluZCggbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICdsb2NhbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAnRXhwb3J0U3BlY2lmaWVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICB9XG5cbn1cbiJdfQ==

@@ -197,2 +197,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,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U0FBUyxLQUFULEVBQWdCLFVBQVUsR0FBVixDQUFjLFNBQVMsR0FBVCxDQUFhLElBQWIsQ0FBZCxDQUFpQyxTQUFqQyxFQUE0QyxJQUFwRSxFQW5CdUM7QUFvQnZDLGVBQUssR0FBTCxHQXBCdUM7U0FBekM7T0FMRjs7QUE2QkEsY0FBUSxFQUFSLEVBQVksV0FBVyxHQUFYLENBQWUsS0FBSyxJQUFMLENBQTNCLEVBdEM0QztLQUF4QjtHQXBHeEIsQ0FWa0M7Q0FBbkIiLCJmaWxlIjoicnVsZXMvbmFtZXNwYWNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdlczYtc3ltYm9sL2ltcGxlbWVudCdcbmltcG9ydCBNYXAgZnJvbSAnZXM2LW1hcCdcblxuaW1wb3J0IEV4cG9ydHMgZnJvbSAnLi4vY29yZS9nZXRFeHBvcnRzJ1xuaW1wb3J0IGltcG9ydERlY2xhcmF0aW9uIGZyb20gJy4uL2ltcG9ydERlY2xhcmF0aW9uJ1xuaW1wb3J0IGRlY2xhcmVkU2NvcGUgZnJvbSAnLi4vY29yZS9kZWNsYXJlZFNjb3BlJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG5cbiAgY29uc3QgbmFtZXNwYWNlcyA9IG5ldyBNYXAoKVxuXG4gIGZ1bmN0aW9uIG1ha2VNZXNzYWdlKGxhc3QsIG5hbWVwYXRoKSB7XG4gICAgIHJldHVybiBgJyR7bGFzdC5uYW1lfScgbm90IGZvdW5kIGluYCArXG4gICAgICAgICAgICAobmFtZXBhdGgubGVuZ3RoID4gMSA/ICcgZGVlcGx5ICcgOiAnICcpICtcbiAgICAgICAgICAgIGBpbXBvcnRlZCBuYW1lc3BhY2UgJyR7bmFtZXBhdGguam9pbignLicpfScuYFxuICB9XG5cbiAgcmV0dXJuIHtcblxuICAgIC8vIHBpY2sgdXAgYWxsIGltcG9ydHMgYXQgYm9keSBlbnRyeSB0aW1lLCB0byBwcm9wZXJseSByZXNwZWN0IGhvaXN0aW5nXG4gICAgJ1Byb2dyYW0nOiBmdW5jdGlvbiAoeyBib2R5IH0pIHtcbiAgICAgIGZ1bmN0aW9uIHByb2Nlc3NCb2R5U3RhdGVtZW50KGRlY2xhcmF0aW9uKSB7XG4gICAgICAgIGlmIChkZWNsYXJhdGlvbi50eXBlICE9PSAnSW1wb3J0RGVjbGFyYXRpb24nKSByZXR1cm5cblxuICAgICAgICBpZiAoZGVjbGFyYXRpb24uc3BlY2lmaWVycy5sZW5ndGggPT09IDApIHJldHVyblxuXG4gICAgICAgIGNvbnN0IGltcG9ydHMgPSBFeHBvcnRzLmdldChkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgICAgIGlmIChpbXBvcnRzID09IG51bGwpIHJldHVybiBudWxsXG5cbiAgICAgICAgaWYgKGltcG9ydHMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIGRlY2xhcmF0aW9uKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgc3BlY2lmaWVyIG9mIGRlY2xhcmF0aW9uLnNwZWNpZmllcnMpIHtcbiAgICAgICAgICBzd2l0Y2ggKHNwZWNpZmllci50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXInOlxuICAgICAgICAgICAgICBpZiAoIWltcG9ydHMuc2l6ZSkge1xuICAgICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHNwZWNpZmllcixcbiAgICAgICAgICAgICAgICAgIGBObyBleHBvcnRlZCBuYW1lcyBmb3VuZCBpbiBtb2R1bGUgJyR7ZGVjbGFyYXRpb24uc291cmNlLnZhbHVlfScuYClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBuYW1lc3BhY2VzLnNldChzcGVjaWZpZXIubG9jYWwubmFtZSwgaW1wb3J0cylcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIGNhc2UgJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInOlxuICAgICAgICAgICAgY2FzZSAnSW1wb3J0U3BlY2lmaWVyJzoge1xuICAgICAgICAgICAgICBjb25zdCBtZXRhID0gaW1wb3J0cy5nZXQoXG4gICAgICAgICAgICAgICAgLy8gZGVmYXVsdCB0byAnZGVmYXVsdCcgZm9yIGRlZmF1bHQgaHR0cDovL2kuaW1ndXIuY29tL25qNnFBV3kuanBnXG4gICAgICAgICAgICAgICAgc3BlY2lmaWVyLmltcG9ydGVkID8gc3BlY2lmaWVyLmltcG9ydGVkLm5hbWUgOiAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgIGlmICghbWV0YSB8fCAhbWV0YS5uYW1lc3BhY2UpIGJyZWFrXG4gICAgICAgICAgICAgIG5hbWVzcGFjZXMuc2V0KHNwZWNpZmllci5sb2NhbC5uYW1lLCBtZXRhLm5hbWVzcGFjZSlcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJvZHkuZm9yRWFjaChwcm9jZXNzQm9keVN0YXRlbWVudClcbiAgICB9LFxuXG4gICAgLy8gc2FtZSBhcyBhYm92ZSwgYnV0IGRvZXMgbm90IGFkZCBuYW1lcyB0byBsb2NhbCBtYXBcbiAgICAnRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyJzogZnVuY3Rpb24gKG5hbWVzcGFjZSkge1xuICAgICAgdmFyIGRlY2xhcmF0aW9uID0gaW1wb3J0RGVjbGFyYXRpb24oY29udGV4dClcblxuICAgICAgdmFyIGltcG9ydHMgPSBFeHBvcnRzLmdldChkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm4gbnVsbFxuXG4gICAgICBpZiAoaW1wb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIGRlY2xhcmF0aW9uKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKCFpbXBvcnRzLnNpemUpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQobmFtZXNwYWNlLFxuICAgICAgICAgIGBObyBleHBvcnRlZCBuYW1lcyBmb3VuZCBpbiBtb2R1bGUgJyR7ZGVjbGFyYXRpb24uc291cmNlLnZhbHVlfScuYClcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLy8gdG9kbzogY2hlY2sgZm9yIHBvc3NpYmxlIHJlZGVmaW5pdGlvblxuXG4gICAgJ01lbWJlckV4cHJlc3Npb24nOiBmdW5jdGlvbiAoZGVyZWZlcmVuY2UpIHtcbiAgICAgIGlmIChkZXJlZmVyZW5jZS5vYmplY3QudHlwZSAhPT0gJ0lkZW50aWZpZXInKSByZXR1cm5cbiAgICAgIGlmICghbmFtZXNwYWNlcy5oYXMoZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpKSByZXR1cm5cblxuICAgICAgaWYgKGRlcmVmZXJlbmNlLnBhcmVudC50eXBlID09PSAnQXNzaWdubWVudEV4cHJlc3Npb24nICYmXG4gICAgICAgICAgZGVyZWZlcmVuY2UucGFyZW50LmxlZnQgPT09IGRlcmVmZXJlbmNlKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoZGVyZWZlcmVuY2UucGFyZW50LFxuICAgICAgICAgICAgICBgQXNzaWdubWVudCB0byBtZW1iZXIgb2YgbmFtZXNwYWNlICcke2RlcmVmZXJlbmNlLm9iamVjdC5uYW1lfScuYClcbiAgICAgIH1cblxuICAgICAgLy8gZ28gZGVlcFxuICAgICAgdmFyIG5hbWVzcGFjZSA9IG5hbWVzcGFjZXMuZ2V0KGRlcmVmZXJlbmNlLm9iamVjdC5uYW1lKVxuICAgICAgdmFyIG5hbWVwYXRoID0gW2RlcmVmZXJlbmNlLm9iamVjdC5uYW1lXVxuICAgICAgLy8gd2hpbGUgcHJvcGVydHkgaXMgbmFtZXNwYWNlIGFuZCBwYXJlbnQgaXMgbWVtYmVyIGV4cHJlc3Npb24sIGtlZXAgdmFsaWRhdGluZ1xuICAgICAgd2hpbGUgKG5hbWVzcGFjZSBpbnN0YW5jZW9mIEV4cG9ydHMgJiZcbiAgICAgICAgICAgICBkZXJlZmVyZW5jZS50eXBlID09PSAnTWVtYmVyRXhwcmVzc2lvbicpIHtcblxuICAgICAgICBpZiAoZGVyZWZlcmVuY2UuY29tcHV0ZWQpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChkZXJlZmVyZW5jZS5wcm9wZXJ0eSxcbiAgICAgICAgICAgICdVbmFibGUgdG8gdmFsaWRhdGUgY29tcHV0ZWQgcmVmZXJlbmNlIHRvIGltcG9ydGVkIG5hbWVzcGFjZSBcXCcnICtcbiAgICAgICAgICAgIGRlcmVmZXJlbmNlLm9iamVjdC5uYW1lICsgJ1xcJy4nKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFuYW1lc3BhY2UuaGFzKGRlcmVmZXJlbmNlLnByb3BlcnR5Lm5hbWUpKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgICBkZXJlZmVyZW5jZS5wcm9wZXJ0eSxcbiAgICAgICAgICAgIG1ha2VNZXNzYWdlKGRlcmVmZXJlbmNlLnByb3BlcnR5LCBuYW1lcGF0aCkpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHN0YXNoIGFuZCBwb3BcbiAgICAgICAgbmFtZXBhdGgucHVzaChkZXJlZmVyZW5jZS5wcm9wZXJ0eS5uYW1lKVxuICAgICAgICBuYW1lc3BhY2UgPSBuYW1lc3BhY2UuZ2V0KGRlcmVmZXJlbmNlLnByb3BlcnR5Lm5hbWUpLm5hbWVzcGFjZVxuICAgICAgICBkZXJlZmVyZW5jZSA9IGRlcmVmZXJlbmNlLnBhcmVudFxuICAgICAgfVxuXG4gICAgfSxcblxuICAgICdWYXJpYWJsZURlY2xhcmF0b3InOiBmdW5jdGlvbiAoeyBpZCwgaW5pdCB9KSB7XG4gICAgICBpZiAoaW5pdCA9PSBudWxsKSByZXR1cm5cbiAgICAgIGlmIChpbml0LnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuXG4gICAgICBpZiAoIW5hbWVzcGFjZXMuaGFzKGluaXQubmFtZSkpIHJldHVyblxuXG4gICAgICAvLyBjaGVjayBmb3IgcmVkZWZpbml0aW9uIGluIGludGVybWVkaWF0ZSBzY29wZXNcbiAgICAgIGlmIChkZWNsYXJlZFNjb3BlKGNvbnRleHQsIGluaXQubmFtZSkgIT09ICdtb2R1bGUnKSByZXR1cm5cblxuICAgICAgLy8gREZTIHRyYXZlcnNlIGNoaWxkIG5hbWVzcGFjZXNcbiAgICAgIGZ1bmN0aW9uIHRlc3RLZXkocGF0dGVybiwgbmFtZXNwYWNlLCBwYXRoID0gW2luaXQubmFtZV0pIHtcbiAgICAgICAgaWYgKCEobmFtZXNwYWNlIGluc3RhbmNlb2YgRXhwb3J0cykpIHJldHVyblxuXG4gICAgICAgIGlmIChwYXR0ZXJuLnR5cGUgIT09ICdPYmplY3RQYXR0ZXJuJykgcmV0dXJuXG5cbiAgICAgICAgZm9yIChsZXQgcHJvcGVydHkgb2YgcGF0dGVybi5wcm9wZXJ0aWVzKSB7XG5cbiAgICAgICAgICBpZiAocHJvcGVydHkua2V5LnR5cGUgIT09ICdJZGVudGlmaWVyJykge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICBub2RlOiBwcm9wZXJ0eSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ09ubHkgZGVzdHJ1Y3R1cmUgdG9wLWxldmVsIG5hbWVzLicsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIW5hbWVzcGFjZS5oYXMocHJvcGVydHkua2V5Lm5hbWUpKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG5vZGU6IHByb3BlcnR5LFxuICAgICAgICAgICAgICBtZXNzYWdlOiBtYWtlTWVzc2FnZShwcm9wZXJ0eS5rZXksIHBhdGgpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcGF0aC5wdXNoKHByb3BlcnR5LmtleS5uYW1lKVxuICAgICAgICAgIHRlc3RLZXkocHJvcGVydHkudmFsdWUsIG5hbWVzcGFjZS5nZXQocHJvcGVydHkua2V5Lm5hbWUpLm5hbWVzcGFjZSwgcGF0aClcbiAgICAgICAgICBwYXRoLnBvcCgpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGVzdEtleShpZCwgbmFtZXNwYWNlcy5nZXQoaW5pdC5uYW1lKSlcbiAgICB9LFxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ2VzNi1zeW1ib2wvaW1wbGVtZW50J1xuaW1wb3J0IE1hcCBmcm9tICdlczYtbWFwJ1xuXG5pbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9jb3JlL2dldEV4cG9ydHMnXG5pbXBvcnQgaW1wb3J0RGVjbGFyYXRpb24gZnJvbSAnLi4vaW1wb3J0RGVjbGFyYXRpb24nXG5pbXBvcnQgZGVjbGFyZWRTY29wZSBmcm9tICcuLi9jb3JlL2RlY2xhcmVkU2NvcGUnXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcblxuICBjb25zdCBuYW1lc3BhY2VzID0gbmV3IE1hcCgpXG5cbiAgZnVuY3Rpb24gbWFrZU1lc3NhZ2UobGFzdCwgbmFtZXBhdGgpIHtcbiAgICAgcmV0dXJuIGAnJHtsYXN0Lm5hbWV9JyBub3QgZm91bmQgaW5gICtcbiAgICAgICAgICAgIChuYW1lcGF0aC5sZW5ndGggPiAxID8gJyBkZWVwbHkgJyA6ICcgJykgK1xuICAgICAgICAgICAgYGltcG9ydGVkIG5hbWVzcGFjZSAnJHtuYW1lcGF0aC5qb2luKCcuJyl9Jy5gXG4gIH1cblxuICByZXR1cm4ge1xuXG4gICAgLy8gcGljayB1cCBhbGwgaW1wb3J0cyBhdCBib2R5IGVudHJ5IHRpbWUsIHRvIHByb3Blcmx5IHJlc3BlY3QgaG9pc3RpbmdcbiAgICAnUHJvZ3JhbSc6IGZ1bmN0aW9uICh7IGJvZHkgfSkge1xuICAgICAgZnVuY3Rpb24gcHJvY2Vzc0JvZHlTdGF0ZW1lbnQoZGVjbGFyYXRpb24pIHtcbiAgICAgICAgaWYgKGRlY2xhcmF0aW9uLnR5cGUgIT09ICdJbXBvcnREZWNsYXJhdGlvbicpIHJldHVyblxuXG4gICAgICAgIGlmIChkZWNsYXJhdGlvbi5zcGVjaWZpZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuXG5cbiAgICAgICAgY29uc3QgaW1wb3J0cyA9IEV4cG9ydHMuZ2V0KGRlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICAgICAgaWYgKGltcG9ydHMgPT0gbnVsbCkgcmV0dXJuIG51bGxcblxuICAgICAgICBpZiAoaW1wb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgaW1wb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgZGVjbGFyYXRpb24pXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBzcGVjaWZpZXIgb2YgZGVjbGFyYXRpb24uc3BlY2lmaWVycykge1xuICAgICAgICAgIHN3aXRjaCAoc3BlY2lmaWVyLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0ltcG9ydE5hbWVzcGFjZVNwZWNpZmllcic6XG4gICAgICAgICAgICAgIGlmICghaW1wb3J0cy5zaXplKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoc3BlY2lmaWVyLFxuICAgICAgICAgICAgICAgICAgYE5vIGV4cG9ydGVkIG5hbWVzIGZvdW5kIGluIG1vZHVsZSAnJHtkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWV9Jy5gKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG5hbWVzcGFjZXMuc2V0KHNwZWNpZmllci5sb2NhbC5uYW1lLCBpbXBvcnRzKVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgY2FzZSAnSW1wb3J0RGVmYXVsdFNwZWNpZmllcic6XG4gICAgICAgICAgICBjYXNlICdJbXBvcnRTcGVjaWZpZXInOiB7XG4gICAgICAgICAgICAgIGNvbnN0IG1ldGEgPSBpbXBvcnRzLmdldChcbiAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IHRvICdkZWZhdWx0JyBmb3IgZGVmYXVsdCBodHRwOi8vaS5pbWd1ci5jb20vbmo2cUFXeS5qcGdcbiAgICAgICAgICAgICAgICBzcGVjaWZpZXIuaW1wb3J0ZWQgPyBzcGVjaWZpZXIuaW1wb3J0ZWQubmFtZSA6ICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgaWYgKCFtZXRhIHx8ICFtZXRhLm5hbWVzcGFjZSkgYnJlYWtcbiAgICAgICAgICAgICAgbmFtZXNwYWNlcy5zZXQoc3BlY2lmaWVyLmxvY2FsLm5hbWUsIG1ldGEubmFtZXNwYWNlKVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYm9keS5mb3JFYWNoKHByb2Nlc3NCb2R5U3RhdGVtZW50KVxuICAgIH0sXG5cbiAgICAvLyBzYW1lIGFzIGFib3ZlLCBidXQgZG9lcyBub3QgYWRkIG5hbWVzIHRvIGxvY2FsIG1hcFxuICAgICdFeHBvcnROYW1lc3BhY2VTcGVjaWZpZXInOiBmdW5jdGlvbiAobmFtZXNwYWNlKSB7XG4gICAgICB2YXIgZGVjbGFyYXRpb24gPSBpbXBvcnREZWNsYXJhdGlvbihjb250ZXh0KVxuXG4gICAgICB2YXIgaW1wb3J0cyA9IEV4cG9ydHMuZ2V0KGRlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICAgIGlmIChpbXBvcnRzID09IG51bGwpIHJldHVybiBudWxsXG5cbiAgICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgaW1wb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgZGVjbGFyYXRpb24pXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoIWltcG9ydHMuc2l6ZSkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChuYW1lc3BhY2UsXG4gICAgICAgICAgYE5vIGV4cG9ydGVkIG5hbWVzIGZvdW5kIGluIG1vZHVsZSAnJHtkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWV9Jy5gKVxuICAgICAgfVxuICAgIH0sXG5cbiAgICAvLyB0b2RvOiBjaGVjayBmb3IgcG9zc2libGUgcmVkZWZpbml0aW9uXG5cbiAgICAnTWVtYmVyRXhwcmVzc2lvbic6IGZ1bmN0aW9uIChkZXJlZmVyZW5jZSkge1xuICAgICAgaWYgKGRlcmVmZXJlbmNlLm9iamVjdC50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgaWYgKCFuYW1lc3BhY2VzLmhhcyhkZXJlZmVyZW5jZS5vYmplY3QubmFtZSkpIHJldHVyblxuXG4gICAgICBpZiAoZGVyZWZlcmVuY2UucGFyZW50LnR5cGUgPT09ICdBc3NpZ25tZW50RXhwcmVzc2lvbicgJiZcbiAgICAgICAgICBkZXJlZmVyZW5jZS5wYXJlbnQubGVmdCA9PT0gZGVyZWZlcmVuY2UpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChkZXJlZmVyZW5jZS5wYXJlbnQsXG4gICAgICAgICAgICAgIGBBc3NpZ25tZW50IHRvIG1lbWJlciBvZiBuYW1lc3BhY2UgJyR7ZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWV9Jy5gKVxuICAgICAgfVxuXG4gICAgICAvLyBnbyBkZWVwXG4gICAgICB2YXIgbmFtZXNwYWNlID0gbmFtZXNwYWNlcy5nZXQoZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpXG4gICAgICB2YXIgbmFtZXBhdGggPSBbZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWVdXG4gICAgICAvLyB3aGlsZSBwcm9wZXJ0eSBpcyBuYW1lc3BhY2UgYW5kIHBhcmVudCBpcyBtZW1iZXIgZXhwcmVzc2lvbiwga2VlcCB2YWxpZGF0aW5nXG4gICAgICB3aGlsZSAobmFtZXNwYWNlIGluc3RhbmNlb2YgRXhwb3J0cyAmJlxuICAgICAgICAgICAgIGRlcmVmZXJlbmNlLnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJykge1xuXG4gICAgICAgIGlmIChkZXJlZmVyZW5jZS5jb21wdXRlZCkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KGRlcmVmZXJlbmNlLnByb3BlcnR5LFxuICAgICAgICAgICAgJ1VuYWJsZSB0byB2YWxpZGF0ZSBjb21wdXRlZCByZWZlcmVuY2UgdG8gaW1wb3J0ZWQgbmFtZXNwYWNlIFxcJycgK1xuICAgICAgICAgICAgZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUgKyAnXFwnLicpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW5hbWVzcGFjZS5oYXMoZGVyZWZlcmVuY2UucHJvcGVydHkubmFtZSkpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChcbiAgICAgICAgICAgIGRlcmVmZXJlbmNlLnByb3BlcnR5LFxuICAgICAgICAgICAgbWFrZU1lc3NhZ2UoZGVyZWZlcmVuY2UucHJvcGVydHksIG5hbWVwYXRoKSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc3Rhc2ggYW5kIHBvcFxuICAgICAgICBuYW1lcGF0aC5wdXNoKGRlcmVmZXJlbmNlLnByb3BlcnR5Lm5hbWUpXG4gICAgICAgIG5hbWVzcGFjZSA9IG5hbWVzcGFjZS5nZXQoZGVyZWZlcmVuY2UucHJvcGVydHkubmFtZSkubmFtZXNwYWNlXG4gICAgICAgIGRlcmVmZXJlbmNlID0gZGVyZWZlcmVuY2UucGFyZW50XG4gICAgICB9XG5cbiAgICB9LFxuXG4gICAgJ1ZhcmlhYmxlRGVjbGFyYXRvcic6IGZ1bmN0aW9uICh7IGlkLCBpbml0IH0pIHtcbiAgICAgIGlmIChpbml0ID09IG51bGwpIHJldHVyblxuICAgICAgaWYgKGluaXQudHlwZSAhPT0gJ0lkZW50aWZpZXInKSByZXR1cm5cbiAgICAgIGlmICghbmFtZXNwYWNlcy5oYXMoaW5pdC5uYW1lKSkgcmV0dXJuXG5cbiAgICAgIC8vIGNoZWNrIGZvciByZWRlZmluaXRpb24gaW4gaW50ZXJtZWRpYXRlIHNjb3Blc1xuICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgaW5pdC5uYW1lKSAhPT0gJ21vZHVsZScpIHJldHVyblxuXG4gICAgICAvLyBERlMgdHJhdmVyc2UgY2hpbGQgbmFtZXNwYWNlc1xuICAgICAgZnVuY3Rpb24gdGVzdEtleShwYXR0ZXJuLCBuYW1lc3BhY2UsIHBhdGggPSBbaW5pdC5uYW1lXSkge1xuICAgICAgICBpZiAoIShuYW1lc3BhY2UgaW5zdGFuY2VvZiBFeHBvcnRzKSkgcmV0dXJuXG5cbiAgICAgICAgaWYgKHBhdHRlcm4udHlwZSAhPT0gJ09iamVjdFBhdHRlcm4nKSByZXR1cm5cblxuICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eSBvZiBwYXR0ZXJuLnByb3BlcnRpZXMpIHtcblxuICAgICAgICAgIGlmIChwcm9wZXJ0eS5rZXkudHlwZSAhPT0gJ0lkZW50aWZpZXInKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG5vZGU6IHByb3BlcnR5LFxuICAgICAgICAgICAgICBtZXNzYWdlOiAnT25seSBkZXN0cnVjdHVyZSB0b3AtbGV2ZWwgbmFtZXMuJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghbmFtZXNwYWNlLmhhcyhwcm9wZXJ0eS5rZXkubmFtZSkpIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgbm9kZTogcHJvcGVydHksXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IG1ha2VNZXNzYWdlKHByb3BlcnR5LmtleSwgcGF0aCksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBwYXRoLnB1c2gocHJvcGVydHkua2V5Lm5hbWUpXG4gICAgICAgICAgdGVzdEtleShwcm9wZXJ0eS52YWx1ZSwgbmFtZXNwYWNlLmdldChwcm9wZXJ0eS5rZXkubmFtZSkubmFtZXNwYWNlLCBwYXRoKVxuICAgICAgICAgIHBhdGgucG9wKClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0ZXN0S2V5KGlkLCBuYW1lc3BhY2VzLmdldChpbml0Lm5hbWUpKVxuICAgIH0sXG4gIH1cbn1cbiJdfQ==

@@ -124,2 +124,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25ld2xpbmUtYWZ0ZXItaW1wb3J0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0E7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsU0FBUyxtQkFBVCxDQUE2QixTQUE3QixFQUF3QyxTQUF4QyxFQUFtRDtBQUMvQyxTQUFPLFVBQVUsS0FBVixDQUFnQixDQUFoQixLQUFzQixVQUFVLEtBQVYsQ0FBZ0IsQ0FBaEIsQ0FBdEIsSUFBNEMsVUFBVSxLQUFWLENBQWdCLENBQWhCLEtBQXNCLFVBQVUsS0FBVixDQUFnQixDQUFoQixDQUF0QixDQURKO0NBQW5EOztBQUlBLFNBQVMsWUFBVCxDQUFzQixLQUF0QixFQUE2QjtBQUN6QixNQUFJLE1BQU0sS0FBTixDQUFZLElBQVosS0FBcUIsaUJBQXJCLEVBQXdDO0FBQzFDLFdBQU8sRUFBUCxDQUQwQztHQUE1Qzs7TUFJUSxPQUFTLE1BQU0sS0FBTixDQUFULEtBTGlCOztBQU16QixNQUFJLFFBQVEsS0FBSyxJQUFMLEtBQWMsZ0JBQWQsRUFBZ0M7QUFDeEMsV0FBTyxLQUFLLElBQUwsQ0FEaUM7R0FBNUM7O0FBSUEsU0FBTyxJQUFQLENBVnlCO0NBQTdCOztBQWFBLFNBQVMsd0JBQVQsQ0FBa0MsSUFBbEMsRUFBd0MsVUFBeEMsRUFBb0Q7QUFDaEQsU0FBTyxzQkFBVSxJQUFWLEVBQWdCLFVBQUMsSUFBRDtXQUFVLG9CQUFvQixJQUFwQixFQUEwQixVQUExQjtHQUFWLENBQXZCLENBRGdEO0NBQXBEOztBQUlBLFNBQVMsaUJBQVQsQ0FBMkIsSUFBM0IsRUFBaUMsUUFBakMsRUFBMkM7QUFDekMsU0FBTyxTQUFTLEdBQVQsQ0FBYSxLQUFiLENBQW1CLElBQW5CLEdBQTBCLEtBQUssR0FBTCxDQUFTLEdBQVQsQ0FBYSxJQUFiLENBRFE7Q0FBM0M7O0FBS0EsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjtBQUNsQyxNQUFNLFNBQVMsRUFBVCxDQUQ0QjtBQUVsQyxNQUFJLGFBQWEs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b250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIGVuZm9yY2UgbmV3IGxpbmUgYWZ0ZXIgaW1wb3J0IG5vdCBmb2xsb3dlZCBieSBhbm90aGVyIGltcG9ydC5cbiAqIEBhdXRob3IgUmFkZWsgQmVua2VsXG4gKi9cblxuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5pbXBvcnQgZmluZEluZGV4IGZyb20gJ2xvZGFzaC5maW5kaW5kZXgnXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSdWxlIERlZmluaXRpb25cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIGNvbnRhaW5zTm9kZU9yRXF1YWwob3V0ZXJOb2RlLCBpbm5lck5vZGUpIHtcbiAgICByZXR1cm4gb3V0ZXJOb2RlLnJhbmdlWzBdIDw9IGlubmVyTm9kZS5yYW5nZVswXSAmJiBvdXRlck5vZGUucmFuZ2VbMV0gPj0gaW5uZXJOb2RlLnJhbmdlWzFdXG59XG5cbmZ1bmN0aW9uIGdldFNjb3BlQm9keShzY29wZSkge1xuICAgIGlmIChzY29wZS5ibG9jay50eXBlID09PSAnU3dpdGNoU3RhdGVtZW50Jykge1xuICAgICAgcmV0dXJuIFtdXG4gICAgfVxuXG4gICAgY29uc3QgeyBib2R5IH0gPSBzY29wZS5ibG9ja1xuICAgIGlmIChib2R5ICYmIGJvZHkudHlwZSA9PT0gJ0Jsb2NrU3RhdGVtZW50Jykge1xuICAgICAgICByZXR1cm4gYm9keS5ib2R5XG4gICAgfVxuXG4gICAgcmV0dXJuIGJvZHlcbn1cblxuZnVuY3Rpb24gZmluZE5vZGVJbmRleEluU2NvcGVCb2R5KGJvZHksIG5vZGVUb0ZpbmQpIHtcbiAgICByZXR1cm4gZmluZEluZGV4KGJvZHksIChub2RlKSA9PiBjb250YWluc05vZGVPckVxdWFsKG5vZGUsIG5vZGVUb0ZpbmQpKVxufVxuXG5mdW5jdGlvbiBnZXRMaW5lRGlmZmVyZW5jZShub2RlLCBuZXh0Tm9kZSkge1xuICByZXR1cm4gbmV4dE5vZGUubG9jLnN0YXJ0LmxpbmUgLSBub2RlLmxvYy5lbmQubGluZVxufVxuXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgY29uc3Qgc2NvcGVzID0gW11cbiAgbGV0IHNjb3BlSW5kZXggPSAwXG5cbiAgZnVuY3Rpb24gY2hlY2tGb3JOZXdMaW5lKG5vZGUsIG5leHROb2RlLCB0eXBlKSB7XG4gICAgaWYgKGdldExpbmVEaWZmZXJlbmNlKG5vZGUsIG5leHROb2RlKSA8IDIpIHtcbiAgICAgIGxldCBjb2x1bW4gPSBub2RlLmxvYy5zdGFydC5jb2x1bW5cblxuICAgICAgaWYgKG5vZGUubG9jLnN0YXJ0LmxpbmUgIT09IG5vZGUubG9jLmVuZC5saW5lKSB7XG4gICAgICAgIGNvbHVtbiA9IDBcbiAgICAgIH1cblxuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBsb2M6IHtcbiAgICAgICAgICBsaW5lOiBub2RlLmxvYy5lbmQubGluZSxcbiAgICAgICAgICBjb2x1bW4sXG4gICAgICAgIH0sXG4gICAgICAgIG1lc3NhZ2U6IGBFeHBlY3RlZCBlbXB0eSBsaW5lIGFmdGVyICR7dHlwZX0gc3RhdGVtZW50IG5vdCBmb2xsb3dlZCBieSBhbm90aGVyICR7dHlwZX0uYCxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBJbXBvcnREZWNsYXJhdGlvbjogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIGNvbnN0IHsgcGFyZW50IH0gPSBub2RlXG4gICAgICBjb25zdCBub2RlUG9zaXRpb24gPSBwYXJlbnQuYm9keS5pbmRleE9mKG5vZGUpXG4gICAgICBjb25zdCBuZXh0Tm9kZSA9IHBhcmVudC5ib2R5W25vZGVQb3NpdGlvbiArIDFdXG5cbiAgICAgIGlmIChuZXh0Tm9kZSAmJiBuZXh0Tm9kZS50eXBlICE9PSAnSW1wb3J0RGVjbGFyYXRpb24nKSB7XG4gICAgICAgIGNoZWNrRm9yTmV3TGluZShub2RlLCBuZXh0Tm9kZSwgJ2ltcG9ydCcpXG4gICAgICB9XG4gICAgfSxcbiAgICBQcm9ncmFtOiBmdW5jdGlvbiAoKSB7XG4gICAgICBzY29wZXMucHVzaCh7IHNjb3BlOiBjb250ZXh0LmdldFNjb3BlKCksIHJlcXVpcmVDYWxsczogW10gfSlcbiAgICB9LFxuICAgIENhbGxFeHByZXNzaW9uOiBmdW5jdGlvbihub2RlKSB7XG4gICAgICBjb25zdCBzY29wZSA9IGNvbnRleHQuZ2V0U2NvcGUoKVxuICAgICAgaWYgKGlzU3RhdGljUmVxdWlyZShub2RlKSkge1xuICAgICAgICBjb25zdCBjdXJyZW50U2NvcGUgPSBzY29wZXNbc2NvcGVJbmRleF1cblxuICAgICAgICBpZiAoc2NvcGUgPT09IGN1cnJlbnRTY29wZS5zY29wZSkge1xuICAgICAgICAgIGN1cnJlbnRTY29wZS5yZXF1aXJlQ2FsbHMucHVzaChub2RlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNjb3Blcy5wdXNoKHsgc2NvcGUsIHJlcXVpcmVDYWxsczogWyBub2RlIF0gfSlcbiAgICAgICAgICBzY29wZUluZGV4ICs9IDFcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHNjb3Blcy5mb3JFYWNoKGZ1bmN0aW9uICh7IHNjb3BlLCByZXF1aXJlQ2FsbHMgfSkge1xuICAgICAgICByZXF1aXJlQ2FsbHMuZm9yRWFjaChmdW5jdGlvbiAobm9kZSwgaW5kZXgpIHtcbiAgICAgICAgICBjb25zdCBzY29wZUJvZHkgPSBnZXRTY29wZUJvZHkoc2NvcGUpXG4gICAgICAgICAgY29uc3Qgbm9kZVBvc2l0aW9uID0gZmluZE5vZGVJbmRleEluU2NvcGVCb2R5KHNjb3BlQm9keSwgbm9kZSlcbiAgICAgICAgICBjb25zdCBzdGF0ZW1lbnRXaXRoUmVxdWlyZUNhbGwgPSBzY29wZUJvZHlbbm9kZVBvc2l0aW9uXVxuICAgICAgICAgIGNvbnN0IG5leHRTdGF0ZW1lbnQgPSBzY29wZUJvZHlbbm9kZVBvc2l0aW9uICsgMV1cbiAgICAgICAgICBjb25zdCBuZXh0UmVxdWlyZUNhbGwgPSByZXF1aXJlQ2FsbHNbaW5kZXggKyAxXVxuXG4gICAgICAgICAgaWYgKG5leHRSZXF1aXJlQ2FsbCAmJiBjb250YWluc05vZGVPckVxdWFsKHN0YXRlbWVudFdpdGhSZXF1aXJlQ2FsbCwgbmV4dFJlcXVpcmVDYWxsKSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG5leHRTdGF0ZW1lbnQgJiZcbiAgICAgICAgICAgICAoIW5leHRSZXF1aXJlQ2FsbCB8fCAhY29udGFpbnNOb2RlT3JFcXVhbChuZXh0U3RhdGVtZW50LCBuZXh0UmVxdWlyZUNhbGwpKSkge1xuXG4gICAgICAgICAgICBjaGVja0Zvck5ld0xpbmUoc3RhdGVtZW50V2l0aFJlcXVpcmVDYWxsLCBuZXh0U3RhdGVtZW50LCAncmVxdWlyZScpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9LFxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25ld2xpbmUtYWZ0ZXItaW1wb3J0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0E7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsU0FBUyxtQkFBVCxDQUE2QixTQUE3QixFQUF3QyxTQUF4QyxFQUFtRDtBQUMvQyxTQUFPLFVBQVUsS0FBVixDQUFnQixDQUFoQixLQUFzQixVQUFVLEtBQVYsQ0FBZ0IsQ0FBaEIsQ0FBdEIsSUFBNEMsVUFBVSxLQUFWLENBQWdCLENBQWhCLEtBQXNCLFVBQVUsS0FBVixDQUFnQixDQUFoQixDQUF6RTtBQUNIOztBQUVELFNBQVMsWUFBVCxDQUFzQixLQUF0QixFQUE2QjtBQUN6QixNQUFJLE1BQU0sS0FBTixDQUFZLElBQVosS0FBcUIsaUJBQXpCLEVBQTRDO0FBQzFDLFdBQU8sRUFBUDtBQUNEOztBQUh3QixNQUtqQixJQUxpQixHQUtSLE1BQU0sS0FMRSxDQUtqQixJQUxpQjs7QUFNekIsTUFBSSxRQUFRLEtBQUssSUFBTCxLQUFjLGdCQUExQixFQUE0QztBQUN4QyxXQUFPLEtBQUssSUFBWjtBQUNIOztBQUVELFNBQU8sSUFBUDtBQUNIOztBQUVELFNBQVMsd0JBQVQsQ0FBa0MsSUFBbEMsRUFBd0MsVUFBeEMsRUFBb0Q7QUFDaEQsU0FBTyxzQkFBVSxJQUFWLEVBQWdCLFVBQUMsSUFBRDtBQUFBLFdBQVUsb0JBQW9CLElBQXBCLEVBQTBCLFVBQTFCLENBQVY7QUFBQSxHQUFoQixDQUFQO0FBQ0g7O0FBRUQsU0FBUyxpQkFBVCxDQUEyQixJQUEzQixFQUFpQyxRQUFqQyxFQUEyQztBQUN6QyxTQUFPLFNBQVMsR0FBVCxDQUFhLEtBQWIsQ0FBbUIsSUFBbkIsR0FBMEIsS0FBSyxHQUFMLENBQVMsR0FBVCxDQUFhLElBQTlDO0FBQ0Q7O0FBR0QsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjtBQUNsQyxNQUFNLFNBQVMsRUFBZjtBQUNBLE1BQUksYUFBYSxDQUFqQjs7QUFFQSxXQUFTLGVBQVQsQ0FBeUIsSUFBekIsRUFBK0IsUUFBL0IsRUFBeUMsSUFBekMsRUFBK0M7QUFDN0MsUUFBSSxrQkFBa0IsSUFBbEIsRUFBd0IsUUFBeEIsSUFBb0MsQ0FBeEMsRUFBMkM7QUFDekMsVUFBSSxTQUFTLEtBQUssR0FBTCxDQUFTLEtBQVQsQ0FBZSxNQUE1Qjs7QUFFQSxVQUFJLEtBQUssR0FBTCxDQUFTLEtBQVQsQ0FBZSxJQUFmLEtBQXdCLEtBQUssR0FBTCxDQUFTLEdBQVQsQ0FBYSxJQUF6QyxFQUErQztBQUM3QyxpQkFBUyxDQUFUO0FBQ0Q7O0FBRUQsY0FBUSxNQUFSLENBQWU7QUFDYixhQUFLO0FBQ0gsZ0JBQU0sS0FBSyxHQUFMLENBQVMsR0FBVCxDQUFhLElBRGhCO0FBRUg7QUFGRyxTQURRO0FBS2IsZ0RBQXNDLElBQXRDLDJDQUFnRixJQUFoRjtBQUxhLE9BQWY7QUFPRDtBQUNGOztBQUVELFNBQU87QUFDTCx1QkFBbUIsMkJBQVUsSUFBVixFQUFnQjtBQUFBLFVBQ3pCLE1BRHlCLEdBQ2QsSUFEYyxDQUN6QixNQUR5Qjs7QUFFakMsVUFBTSxlQUFlLE9BQU8sSUFBUCxDQUFZLE9BQVosQ0FBb0IsSUFBcEIsQ0FBckI7QUFDQSxVQUFNLFdBQVcsT0FBTyxJQUFQLENBQVksZUFBZSxDQUEzQixDQUFqQjs7QUFFQSxVQUFJLFlBQVksU0FBUyxJQUFULEtBQWtCLG1CQUFsQyxFQUF1RDtBQUNyRCx3QkFBZ0IsSUFBaEIsRUFBc0IsUUFBdEIsRUFBZ0MsUUFBaEM7QUFDRDtBQUNGLEtBVEk7QUFVTCxhQUFTLG1CQUFZO0FBQ25CLGFBQU8sSUFBUCxDQUFZLEVBQUUsT0FBTyxRQUFRLFFBQVIsRUFBVCxFQUE2QixjQUFjLEVBQTNDLEVBQVo7QUFDRCxLQVpJO0FBYUwsb0JBQWdCLHdCQUFTLElBQVQsRUFBZTtBQUM3QixVQUFNLFFBQVEsUUFBUSxRQUFSLEVBQWQ7QUFDQSxVQUFJLDZCQUFnQixJQUFoQixDQUFKLEVBQTJCO0FBQ3pCLFlBQU0sZUFBZSxPQUFPLFVBQVAsQ0FBckI7O0FBRUEsWUFBSSxVQUFVLGFBQWEsS0FBM0IsRUFBa0M7QUFDaEMsdUJBQWEsWUFBYixDQUEwQixJQUExQixDQUErQixJQUEvQjtBQUNELFNBRkQsTUFFTztBQUNMLGlCQUFPLElBQVAsQ0FBWSxFQUFFLFlBQUYsRUFBUyxjQUFjLENBQUUsSUFBRixDQUF2QixFQUFaO0FBQ0Esd0JBQWMsQ0FBZDtBQUNEO0FBQ0Y7QUFDRixLQXpCSTtBQTBCTCxvQkFBZ0IsdUJBQVk7QUFDMUIsYUFBTyxPQUFQLENBQWUsZ0JBQW1DO0FBQUEsWUFBdkIsS0FBdUIsUUFBdkIsS0FBdUI7QUFBQSxZQUFoQixZQUFnQixRQUFoQixZQUFnQjs7QUFDaEQscUJBQWEsT0FBYixDQUFxQixVQUFVLElBQVYsRUFBZ0IsS0FBaEIsRUFBdUI7QUFDMUMsY0FBTSxZQUFZLGFBQWEsS0FBYixDQUFsQjtBQUNBLGNBQU0sZUFBZSx5QkFBeUIsU0FBekIsRUFBb0MsSUFBcEMsQ0FBckI7QUFDQSxjQUFNLDJCQUEyQixVQUFVLFlBQVYsQ0FBakM7QUFDQSxjQUFNLGdCQUFnQixVQUFVLGVBQWUsQ0FBekIsQ0FBdEI7QUFDQSxjQUFNLGtCQUFrQixhQUFhLFFBQVEsQ0FBckIsQ0FBeEI7O0FBRUEsY0FBSSxtQkFBbUIsb0JBQW9CLHdCQUFwQixFQUE4QyxlQUE5QyxDQUF2QixFQUF1RjtBQUNyRjtBQUNEOztBQUVELGNBQUksa0JBQ0EsQ0FBQyxlQUFELElBQW9CLENBQUMsb0JBQW9CLGFBQXBCLEVBQW1DLGVBQW5DLENBRHJCLENBQUosRUFDK0U7O0FBRTdFLDRCQUFnQix3QkFBaEIsRUFBMEMsYUFBMUMsRUFBeUQsU0FBekQ7QUFDRDtBQUNGLFNBaEJEO0FBaUJELE9BbEJEO0FBbUJEO0FBOUNJLEdBQVA7QUFnREQsQ0F0RUQiLCJmaWxlIjoicnVsZXMvbmV3bGluZS1hZnRlci1pbXBvcnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlb3ZlcnZpZXcgUnVsZSB0byBlbmZvcmNlIG5ldyBsaW5lIGFmdGVyIGltcG9ydCBub3QgZm9sbG93ZWQgYnkgYW5vdGhlciBpbXBvcnQuXG4gKiBAYXV0aG9yIFJhZGVrIEJlbmtlbFxuICovXG5cbmltcG9ydCBpc1N0YXRpY1JlcXVpcmUgZnJvbSAnLi4vY29yZS9zdGF0aWNSZXF1aXJlJ1xuaW1wb3J0IGZpbmRJbmRleCBmcm9tICdsb2Rhc2guZmluZGluZGV4J1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUnVsZSBEZWZpbml0aW9uXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBjb250YWluc05vZGVPckVxdWFsKG91dGVyTm9kZSwgaW5uZXJOb2RlKSB7XG4gICAgcmV0dXJuIG91dGVyTm9kZS5yYW5nZVswXSA8PSBpbm5lck5vZGUucmFuZ2VbMF0gJiYgb3V0ZXJOb2RlLnJhbmdlWzFdID49IGlubmVyTm9kZS5yYW5nZVsxXVxufVxuXG5mdW5jdGlvbiBnZXRTY29wZUJvZHkoc2NvcGUpIHtcbiAgICBpZiAoc2NvcGUuYmxvY2sudHlwZSA9PT0gJ1N3aXRjaFN0YXRlbWVudCcpIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH1cblxuICAgIGNvbnN0IHsgYm9keSB9ID0gc2NvcGUuYmxvY2tcbiAgICBpZiAoYm9keSAmJiBib2R5LnR5cGUgPT09ICdCbG9ja1N0YXRlbWVudCcpIHtcbiAgICAgICAgcmV0dXJuIGJvZHkuYm9keVxuICAgIH1cblxuICAgIHJldHVybiBib2R5XG59XG5cbmZ1bmN0aW9uIGZpbmROb2RlSW5kZXhJblNjb3BlQm9keShib2R5LCBub2RlVG9GaW5kKSB7XG4gICAgcmV0dXJuIGZpbmRJbmRleChib2R5LCAobm9kZSkgPT4gY29udGFpbnNOb2RlT3JFcXVhbChub2RlLCBub2RlVG9GaW5kKSlcbn1cblxuZnVuY3Rpb24gZ2V0TGluZURpZmZlcmVuY2Uobm9kZSwgbmV4dE5vZGUpIHtcbiAgcmV0dXJuIG5leHROb2RlLmxvYy5zdGFydC5saW5lIC0gbm9kZS5sb2MuZW5kLmxpbmVcbn1cblxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIGNvbnN0IHNjb3BlcyA9IFtdXG4gIGxldCBzY29wZUluZGV4ID0gMFxuXG4gIGZ1bmN0aW9uIGNoZWNrRm9yTmV3TGluZShub2RlLCBuZXh0Tm9kZSwgdHlwZSkge1xuICAgIGlmIChnZXRMaW5lRGlmZmVyZW5jZShub2RlLCBuZXh0Tm9kZSkgPCAyKSB7XG4gICAgICBsZXQgY29sdW1uID0gbm9kZS5sb2Muc3RhcnQuY29sdW1uXG5cbiAgICAgIGlmIChub2RlLmxvYy5zdGFydC5saW5lICE9PSBub2RlLmxvYy5lbmQubGluZSkge1xuICAgICAgICBjb2x1bW4gPSAwXG4gICAgICB9XG5cbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgbG9jOiB7XG4gICAgICAgICAgbGluZTogbm9kZS5sb2MuZW5kLmxpbmUsXG4gICAgICAgICAgY29sdW1uLFxuICAgICAgICB9LFxuICAgICAgICBtZXNzYWdlOiBgRXhwZWN0ZWQgZW1wdHkgbGluZSBhZnRlciAke3R5cGV9IHN0YXRlbWVudCBub3QgZm9sbG93ZWQgYnkgYW5vdGhlciAke3R5cGV9LmAsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgSW1wb3J0RGVjbGFyYXRpb246IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBjb25zdCB7IHBhcmVudCB9ID0gbm9kZVxuICAgICAgY29uc3Qgbm9kZVBvc2l0aW9uID0gcGFyZW50LmJvZHkuaW5kZXhPZihub2RlKVxuICAgICAgY29uc3QgbmV4dE5vZGUgPSBwYXJlbnQuYm9keVtub2RlUG9zaXRpb24gKyAxXVxuXG4gICAgICBpZiAobmV4dE5vZGUgJiYgbmV4dE5vZGUudHlwZSAhPT0gJ0ltcG9ydERlY2xhcmF0aW9uJykge1xuICAgICAgICBjaGVja0Zvck5ld0xpbmUobm9kZSwgbmV4dE5vZGUsICdpbXBvcnQnKVxuICAgICAgfVxuICAgIH0sXG4gICAgUHJvZ3JhbTogZnVuY3Rpb24gKCkge1xuICAgICAgc2NvcGVzLnB1c2goeyBzY29wZTogY29udGV4dC5nZXRTY29wZSgpLCByZXF1aXJlQ2FsbHM6IFtdIH0pXG4gICAgfSxcbiAgICBDYWxsRXhwcmVzc2lvbjogZnVuY3Rpb24obm9kZSkge1xuICAgICAgY29uc3Qgc2NvcGUgPSBjb250ZXh0LmdldFNjb3BlKClcbiAgICAgIGlmIChpc1N0YXRpY1JlcXVpcmUobm9kZSkpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFNjb3BlID0gc2NvcGVzW3Njb3BlSW5kZXhdXG5cbiAgICAgICAgaWYgKHNjb3BlID09PSBjdXJyZW50U2NvcGUuc2NvcGUpIHtcbiAgICAgICAgICBjdXJyZW50U2NvcGUucmVxdWlyZUNhbGxzLnB1c2gobm9kZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzY29wZXMucHVzaCh7IHNjb3BlLCByZXF1aXJlQ2FsbHM6IFsgbm9kZSBdIH0pXG4gICAgICAgICAgc2NvcGVJbmRleCArPSAxXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgICdQcm9ncmFtOmV4aXQnOiBmdW5jdGlvbiAoKSB7XG4gICAgICBzY29wZXMuZm9yRWFjaChmdW5jdGlvbiAoeyBzY29wZSwgcmVxdWlyZUNhbGxzIH0pIHtcbiAgICAgICAgcmVxdWlyZUNhbGxzLmZvckVhY2goZnVuY3Rpb24gKG5vZGUsIGluZGV4KSB7XG4gICAgICAgICAgY29uc3Qgc2NvcGVCb2R5ID0gZ2V0U2NvcGVCb2R5KHNjb3BlKVxuICAgICAgICAgIGNvbnN0IG5vZGVQb3NpdGlvbiA9IGZpbmROb2RlSW5kZXhJblNjb3BlQm9keShzY29wZUJvZHksIG5vZGUpXG4gICAgICAgICAgY29uc3Qgc3RhdGVtZW50V2l0aFJlcXVpcmVDYWxsID0gc2NvcGVCb2R5W25vZGVQb3NpdGlvbl1cbiAgICAgICAgICBjb25zdCBuZXh0U3RhdGVtZW50ID0gc2NvcGVCb2R5W25vZGVQb3NpdGlvbiArIDFdXG4gICAgICAgICAgY29uc3QgbmV4dFJlcXVpcmVDYWxsID0gcmVxdWlyZUNhbGxzW2luZGV4ICsgMV1cblxuICAgICAgICAgIGlmIChuZXh0UmVxdWlyZUNhbGwgJiYgY29udGFpbnNOb2RlT3JFcXVhbChzdGF0ZW1lbnRXaXRoUmVxdWlyZUNhbGwsIG5leHRSZXF1aXJlQ2FsbCkpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChuZXh0U3RhdGVtZW50ICYmXG4gICAgICAgICAgICAgKCFuZXh0UmVxdWlyZUNhbGwgfHwgIWNvbnRhaW5zTm9kZU9yRXF1YWwobmV4dFN0YXRlbWVudCwgbmV4dFJlcXVpcmVDYWxsKSkpIHtcblxuICAgICAgICAgICAgY2hlY2tGb3JOZXdMaW5lKHN0YXRlbWVudFdpdGhSZXF1aXJlQ2FsbCwgbmV4dFN0YXRlbWVudCwgJ3JlcXVpcmUnKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfSxcbiAgfVxufVxuIl19

@@ -34,2 +34,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWFtZC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQVNBLE9BQU8sT0FBUCxHQUFpQixVQUFVLE9BQVYsRUFBbUI7O0FBRW5DLFNBQU87O0FBRU4sc0JBQWtCLHdCQUFVLElBQVYsRUFBZ0I7QUFDOUIsVUFBSSxRQUFRLFFBQVIsR0FBbUIsSUFBbkIsS0FBNEIsUUFBNUIsRUFBc0MsT0FBMUM7O0FBRUEsVUFBSSxLQUFLLE1BQUwsQ0FBWSxJQUFaLEtBQXFCLFlBQXJCLEVBQW1DLE9BQXZDO0FBQ0EsVUFBSSxLQUFLLE1BQUwsQ0FBWSxJQUFaLEtBQXFCLFNBQXJCLElBQ0EsS0FBSyxNQUFMLENBQVksSUFBWixLQUFxQixRQUFyQixFQUErQixPQURuQzs7O0FBSjhCLFVBUTFCLEtBQUssU0FBTCxDQUFlLE1BQWYsS0FBMEIsQ0FBMUIsRUFBNkIsT0FBakM7O0FBRUEsVUFBTSxVQUFVLEtBQUssU0FBTCxDQUFlLENBQWYsQ0FBVixDQVZ3QjtBQVc5QixVQUFJLFFBQVEsSUFBUixLQUFpQixpQkFBakIsRUFBb0MsT0FBeEM7Ozs7QUFYOEIsYUFlakMsQ0FBUSxNQUFSLENBQWUsSUFBZix1Q0FBd0QsS0FBSyxNQUFMLENBQVksSUFBWixRQUF4RCxFQWZpQztLQUFoQjtHQUZuQixDQUZtQztDQUFuQiIsImZpbGUiOiJydWxlcy9uby1hbWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlb3ZlcnZpZXcgUnVsZSB0byBwcmVmZXIgaW1wb3J0cyB0byBBTURcbiAqIEBhdXRob3IgSmFtdW5kIEZlcmd1c29uXG4gKi9cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJ1bGUgRGVmaW5pdGlvblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuXG5cdHJldHVybiB7XG5cblx0XHQnQ2FsbEV4cHJlc3Npb24nOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgaWYgKGNvbnRleHQuZ2V0U2NvcGUoKS50eXBlICE9PSAnbW9kdWxlJykgcmV0dXJuXG5cbiAgICAgIGlmIChub2RlLmNhbGxlZS50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgaWYgKG5vZGUuY2FsbGVlLm5hbWUgIT09ICdyZXF1aXJlJyAmJlxuICAgICAgICAgIG5vZGUuY2FsbGVlLm5hbWUgIT09ICdkZWZpbmUnKSByZXR1cm5cblxuICAgICAgLy8gdG9kbzogY2FwdHVyZSBkZWZpbmUoKHJlcXVpcmUsIG1vZHVsZSwgZXhwb3J0cykgPT4ge30pIGZvcm0/XG4gICAgICBpZiAobm9kZS5hcmd1bWVudHMubGVuZ3RoICE9PSAyKSByZXR1cm5cblxuICAgICAgY29uc3QgbW9kdWxlcyA9IG5vZGUuYXJndW1lbnRzWzBdXG4gICAgICBpZiAobW9kdWxlcy50eXBlICE9PSAnQXJyYXlFeHByZXNzaW9uJykgcmV0dXJuXG5cbiAgICAgIC8vIHRvZG86IGNoZWNrIHNlY29uZCBhcmcgdHlwZT8gKGlkZW50aWZpZXIgb3IgY2FsbGJhY2spXG5cblx0XHRcdGNvbnRleHQucmVwb3J0KG5vZGUsIGBFeHBlY3RlZCBpbXBvcnRzIGluc3RlYWQgb2YgQU1EICR7bm9kZS5jYWxsZWUubmFtZX0oKS5gKVxuXHRcdH0sXG5cdH1cblxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWFtZC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQVNBLE9BQU8sT0FBUCxHQUFpQixVQUFVLE9BQVYsRUFBbUI7O0FBRW5DLFNBQU87O0FBRU4sc0JBQWtCLHdCQUFVLElBQVYsRUFBZ0I7QUFDOUIsVUFBSSxRQUFRLFFBQVIsR0FBbUIsSUFBbkIsS0FBNEIsUUFBaEMsRUFBMEM7O0FBRTFDLFVBQUksS0FBSyxNQUFMLENBQVksSUFBWixLQUFxQixZQUF6QixFQUF1QztBQUN2QyxVQUFJLEtBQUssTUFBTCxDQUFZLElBQVosS0FBcUIsU0FBckIsSUFDQSxLQUFLLE1BQUwsQ0FBWSxJQUFaLEtBQXFCLFFBRHpCLEVBQ21DOzs7QUFHbkMsVUFBSSxLQUFLLFNBQUwsQ0FBZSxNQUFmLEtBQTBCLENBQTlCLEVBQWlDOztBQUVqQyxVQUFNLFVBQVUsS0FBSyxTQUFMLENBQWUsQ0FBZixDQUFoQjtBQUNBLFVBQUksUUFBUSxJQUFSLEtBQWlCLGlCQUFyQixFQUF3Qzs7OztBQUkzQyxjQUFRLE1BQVIsQ0FBZSxJQUFmLHVDQUF3RCxLQUFLLE1BQUwsQ0FBWSxJQUFwRTtBQUNBO0FBbEJLLEdBQVA7QUFxQkEsQ0F2QkQiLCJmaWxlIjoicnVsZXMvbm8tYW1kLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZW92ZXJ2aWV3IFJ1bGUgdG8gcHJlZmVyIGltcG9ydHMgdG8gQU1EXG4gKiBAYXV0aG9yIEphbXVuZCBGZXJndXNvblxuICovXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSdWxlIERlZmluaXRpb25cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcblxuXHRyZXR1cm4ge1xuXG5cdFx0J0NhbGxFeHByZXNzaW9uJzogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIGlmIChjb250ZXh0LmdldFNjb3BlKCkudHlwZSAhPT0gJ21vZHVsZScpIHJldHVyblxuXG4gICAgICBpZiAobm9kZS5jYWxsZWUudHlwZSAhPT0gJ0lkZW50aWZpZXInKSByZXR1cm5cbiAgICAgIGlmIChub2RlLmNhbGxlZS5uYW1lICE9PSAncmVxdWlyZScgJiZcbiAgICAgICAgICBub2RlLmNhbGxlZS5uYW1lICE9PSAnZGVmaW5lJykgcmV0dXJuXG5cbiAgICAgIC8vIHRvZG86IGNhcHR1cmUgZGVmaW5lKChyZXF1aXJlLCBtb2R1bGUsIGV4cG9ydHMpID0+IHt9KSBmb3JtP1xuICAgICAgaWYgKG5vZGUuYXJndW1lbnRzLmxlbmd0aCAhPT0gMikgcmV0dXJuXG5cbiAgICAgIGNvbnN0IG1vZHVsZXMgPSBub2RlLmFyZ3VtZW50c1swXVxuICAgICAgaWYgKG1vZHVsZXMudHlwZSAhPT0gJ0FycmF5RXhwcmVzc2lvbicpIHJldHVyblxuXG4gICAgICAvLyB0b2RvOiBjaGVjayBzZWNvbmQgYXJnIHR5cGU/IChpZGVudGlmaWVyIG9yIGNhbGxiYWNrKVxuXG5cdFx0XHRjb250ZXh0LnJlcG9ydChub2RlLCBgRXhwZWN0ZWQgaW1wb3J0cyBpbnN0ZWFkIG9mIEFNRCAke25vZGUuY2FsbGVlLm5hbWV9KCkuYClcblx0XHR9LFxuXHR9XG5cbn1cbiJdfQ==

@@ -59,2 +59,2 @@ 'use strict';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWNvbW1vbmpzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFLQSxJQUFNLGlCQUFpQix1Q0FBakI7SUFDQSxpQkFBaUIsMENBQWpCOzs7Ozs7QUFPTixPQUFPLE9BQVAsR0FBaUIsVUFBVSxPQUFWLEVBQW1COztBQUVsQyxTQUFPOztBQUVMLHdCQUFvQiwwQkFBVSxJQUFWLEVBQWdCOzs7QUFHbEMsVUFBSSxLQUFLLE1BQUwsQ0FBWSxJQUFaLEtBQXFCLFFBQXJCLElBQWlDLEtBQUssUUFBTCxDQUFjLElBQWQsS0FBdUIsU0FBdkIsRUFBa0M7QUFDckUsWUFBSSxlQUFlLElBQWYsRUFBcUIsT0FBckIsQ0FBSixFQUFtQyxPQUFuQztBQUNBLGdCQUFRLE1BQVIsQ0FBZSxFQUFFLFVBQUYsRUFBUSxTQUFTLGNBQVQsRUFBdkIsRUFGcUU7T0FBdkU7OztBQUhrQyxVQVM5QixLQUFLLE1BQUwsQ0FBWSxJQUFaLEtBQXFCLFNBQXJCLEVBQWdDO0FBQ2xDLGdCQUFRLE1BQVIsQ0FBZSxFQUFFLFVBQUYsRUFBUSxTQUFTLGNBQVQsRUFBdkIsRUFEa0M7T0FBcEM7S0FUa0I7QUFjcEIsc0JBQWtCLHdCQUFVLElBQVYsRUFBZ0I7QUFDaEMsVUFBSSxRQUFRLFFBQVIsR0FBbUIsSUFBbkIsS0FBNEIsUUFBNUIsRUFBc0MsT0FBMUM7O0FBRUEsVUFBSSxLQUFLLE1BQUwsQ0FBWSxJQUFaLEtBQXFCLFlBQXJCLEVBQW1DLE9BQXZDO0FBQ0EsVUFBSSxLQUFLLE1BQUwsQ0FBWSxJQUFaLEtBQXFCLFNBQXJCLEVBQWdDLE9BQXBDOztBQUVBLFVBQUksS0FBSyxTQUFMLENBQWUsTUFBZixLQUEwQixDQUExQixFQUE2QixPQUFqQztBQUNBLFVBQUksU0FBUyxLQUFLLFNBQUwsQ0FBZSxDQUFmLENBQVQsQ0FQNEI7O0FBU2hDLFVBQUksT0FBTyxJQUFQLEtBQWdCLFNBQWhCLEVBQTJCLE9BQS9CO0FBQ0EsVUFBSSxPQUFPLE9BQU8sS0FBUCxLQUFpQixRQUF4QixFQUFrQyxPQUF0Qzs7O0FBVmdDLGFBYWhDLENBQVEsTUFBUixDQUFlO0FBQ2IsY0FBTSxLQUFLLE1BQUw7QUFDTixpQkFBUyxjQUFUO09BRkYsRUFiZ0M7S0FBaEI7R0FoQnBCLENBRmtDO0NBQW5COzs7QUF5Q2pCLFNBQVMsY0FBVCxDQUF3QixJQUF4QixFQUE4QixPQUE5QixFQUF1QztBQUNyQyxNQUFJLFFBQVEsT0FBUixDQUFnQixPQUFoQixDQUF3Qix5QkFBeEIsSUFBcUQsQ0FBckQsRUFBd0QsT0FBTyxLQUFQLENBQTVEO0FBQ0EsTUFBSSxLQUFLLE1BQUwsQ0FBWSxJQUFaLEtBQXFCLHNCQUFyQixFQUE2QyxPQUFPLEtBQVAsQ0FBakQ7QUFDQSxTQUFRLEtBQUssTUFBTCxDQUFZLEtBQVosQ0FBa0IsSUFBbEIsS0FBMkIsa0JBQTNCLENBSDZCO0NBQXZDIiwiZmlsZSI6InJ1bGVzL25vLWNvbW1vbmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZW92ZXJ2aWV3IFJ1bGUgdG8gcHJlZmVyIEVTNiB0byBDSlNcbiAqIEBhdXRob3IgSmFtdW5kIEZlcmd1c29uXG4gKi9cblxuY29uc3QgRVhQT1JUX01FU1NBR0UgPSAnRXhwZWN0ZWQgXCJleHBvcnRcIiBvciBcImV4cG9ydCBkZWZhdWx0XCInXG4gICAgLCBJTVBPUlRfTUVTU0FHRSA9ICdFeHBlY3RlZCBcImltcG9ydFwiIGluc3RlYWQgb2YgXCJyZXF1aXJlKClcIidcblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJ1bGUgRGVmaW5pdGlvblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG5cbiAgcmV0dXJuIHtcblxuICAgICdNZW1iZXJFeHByZXNzaW9uJzogZnVuY3Rpb24gKG5vZGUpIHtcblxuICAgICAgLy8gbW9kdWxlLmV4cG9ydHNcbiAgICAgIGlmIChub2RlLm9iamVjdC5uYW1lID09PSAnbW9kdWxlJyAmJiBub2RlLnByb3BlcnR5Lm5hbWUgPT09ICdleHBvcnRzJykge1xuICAgICAgICBpZiAoYWxsb3dQcmltaXRpdmUobm9kZSwgY29udGV4dCkpIHJldHVyblxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2U6IEVYUE9SVF9NRVNTQUdFIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIGV4cG9ydHMuXG4gICAgICBpZiAobm9kZS5vYmplY3QubmFtZSA9PT0gJ2V4cG9ydHMnKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZTogRVhQT1JUX01FU1NBR0UgfSlcbiAgICAgIH1cblxuICAgIH0sXG4gICAgJ0NhbGxFeHByZXNzaW9uJzogZnVuY3Rpb24gKGNhbGwpIHtcbiAgICAgIGlmIChjb250ZXh0LmdldFNjb3BlKCkudHlwZSAhPT0gJ21vZHVsZScpIHJldHVyblxuXG4gICAgICBpZiAoY2FsbC5jYWxsZWUudHlwZSAhPT0gJ0lkZW50aWZpZXInKSByZXR1cm5cbiAgICAgIGlmIChjYWxsLmNhbGxlZS5uYW1lICE9PSAncmVxdWlyZScpIHJldHVyblxuXG4gICAgICBpZiAoY2FsbC5hcmd1bWVudHMubGVuZ3RoICE9PSAxKSByZXR1cm5cbiAgICAgIHZhciBtb2R1bGUgPSBjYWxsLmFyZ3VtZW50c1swXVxuXG4gICAgICBpZiAobW9kdWxlLnR5cGUgIT09ICdMaXRlcmFsJykgcmV0dXJuXG4gICAgICBpZiAodHlwZW9mIG1vZHVsZS52YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVyblxuXG4gICAgICAvLyBrZWVwaW5nIGl0IHNpbXBsZTogYWxsIDEtc3RyaW5nLWFyZyBgcmVxdWlyZWAgY2FsbHMgYXJlIHJlcG9ydGVkXG4gICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgIG5vZGU6IGNhbGwuY2FsbGVlLFxuICAgICAgICBtZXNzYWdlOiBJTVBPUlRfTUVTU0FHRSxcbiAgICAgIH0pXG4gICAgfSxcbiAgfVxuXG59XG5cbiAgLy8gYWxsb3cgbm9uLW9iamVjdHMgYXMgbW9kdWxlLmV4cG9ydHNcbmZ1bmN0aW9uIGFsbG93UHJpbWl0aXZlKG5vZGUsIGNvbnRleHQpIHtcbiAgaWYgKGNvbnRleHQub3B0aW9ucy5pbmRleE9mKCdhbGxvdy1wcmltaXRpdmUtbW9kdWxlcycpIDwgMCkgcmV0dXJuIGZhbHNlXG4gIGlmIChub2RlLnBhcmVudC50eXBlICE9PSAnQXNzaWdubWVudEV4cHJlc3Npb24nKSByZXR1cm4gZmFsc2VcbiAgcmV0dXJuIChub2RlLnBhcmVudC5yaWdodC50eXBlICE9PSAnT2JqZWN0RXhwcmVzc2lvbicpXG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWNvbW1vbmpzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFLQSxJQUFNLGlCQUFpQix1Q0FBdkI7QUFBQSxJQUNNLGlCQUFpQiwwQ0FEdkI7Ozs7OztBQVFBLE9BQU8sT0FBUCxHQUFpQixVQUFVLE9BQVYsRUFBbUI7O0FBRWxDLFNBQU87O0FBRUwsd0JBQW9CLDBCQUFVLElBQVYsRUFBZ0I7OztBQUdsQyxVQUFJLEtBQUssTUFBTCxDQUFZLElBQVosS0FBcUIsUUFBckIsSUFBaUMsS0FBSyxRQUFMLENBQWMsSUFBZCxLQUF1QixTQUE1RCxFQUF1RTtBQUNyRSxZQUFJLGVBQWUsSUFBZixFQUFxQixPQUFyQixDQUFKLEVBQW1DO0FBQ25DLGdCQUFRLE1BQVIsQ0FBZSxFQUFFLFVBQUYsRUFBUSxTQUFTLGNBQWpCLEVBQWY7QUFDRDs7O0FBR0QsVUFBSSxLQUFLLE1BQUwsQ0FBWSxJQUFaLEtBQXFCLFNBQXpCLEVBQW9DO0FBQ2xDLGdCQUFRLE1BQVIsQ0FBZSxFQUFFLFVBQUYsRUFBUSxTQUFTLGNBQWpCLEVBQWY7QUFDRDtBQUVGLEtBZkk7QUFnQkwsc0JBQWtCLHdCQUFVLElBQVYsRUFBZ0I7QUFDaEMsVUFBSSxRQUFRLFFBQVIsR0FBbUIsSUFBbkIsS0FBNEIsUUFBaEMsRUFBMEM7O0FBRTFDLFVBQUksS0FBSyxNQUFMLENBQVksSUFBWixLQUFxQixZQUF6QixFQUF1QztBQUN2QyxVQUFJLEtBQUssTUFBTCxDQUFZLElBQVosS0FBcUIsU0FBekIsRUFBb0M7O0FBRXBDLFVBQUksS0FBSyxTQUFMLENBQWUsTUFBZixLQUEwQixDQUE5QixFQUFpQztBQUNqQyxVQUFJLFNBQVMsS0FBSyxTQUFMLENBQWUsQ0FBZixDQUFiOztBQUVBLFVBQUksT0FBTyxJQUFQLEtBQWdCLFNBQXBCLEVBQStCO0FBQy9CLFVBQUksT0FBTyxPQUFPLEtBQWQsS0FBd0IsUUFBNUIsRUFBc0M7OztBQUd0QyxjQUFRLE1BQVIsQ0FBZTtBQUNiLGNBQU0sS0FBSyxNQURFO0FBRWIsaUJBQVM7QUFGSSxPQUFmO0FBSUQ7QUFqQ0ksR0FBUDtBQW9DRCxDQXRDRDs7O0FBeUNBLFNBQVMsY0FBVCxDQUF3QixJQUF4QixFQUE4QixPQUE5QixFQUF1QztBQUNyQyxNQUFJLFFBQVEsT0FBUixDQUFnQixPQUFoQixDQUF3Qix5QkFBeEIsSUFBcUQsQ0FBekQsRUFBNEQsT0FBTyxLQUFQO0FBQzVELE1BQUksS0FBSyxNQUFMLENBQVksSUFBWixLQUFxQixzQkFBekIsRUFBaUQsT0FBTyxLQUFQO0FBQ2pELFNBQVEsS0FBSyxNQUFMLENBQVksS0FBWixDQUFrQixJQUFsQixLQUEyQixrQkFBbkM7QUFDRCIsImZpbGUiOiJydWxlcy9uby1jb21tb25qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIHByZWZlciBFUzYgdG8gQ0pTXG4gKiBAYXV0aG9yIEphbXVuZCBGZXJndXNvblxuICovXG5cbmNvbnN0IEVYUE9SVF9NRVNTQUdFID0gJ0V4cGVjdGVkIFwiZXhwb3J0XCIgb3IgXCJleHBvcnQgZGVmYXVsdFwiJ1xuICAgICwgSU1QT1JUX01FU1NBR0UgPSAnRXhwZWN0ZWQgXCJpbXBvcnRcIiBpbnN0ZWFkIG9mIFwicmVxdWlyZSgpXCInXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSdWxlIERlZmluaXRpb25cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuXG4gIHJldHVybiB7XG5cbiAgICAnTWVtYmVyRXhwcmVzc2lvbic6IGZ1bmN0aW9uIChub2RlKSB7XG5cbiAgICAgIC8vIG1vZHVsZS5leHBvcnRzXG4gICAgICBpZiAobm9kZS5vYmplY3QubmFtZSA9PT0gJ21vZHVsZScgJiYgbm9kZS5wcm9wZXJ0eS5uYW1lID09PSAnZXhwb3J0cycpIHtcbiAgICAgICAgaWYgKGFsbG93UHJpbWl0aXZlKG5vZGUsIGNvbnRleHQpKSByZXR1cm5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlOiBFWFBPUlRfTUVTU0FHRSB9KVxuICAgICAgfVxuXG4gICAgICAvLyBleHBvcnRzLlxuICAgICAgaWYgKG5vZGUub2JqZWN0Lm5hbWUgPT09ICdleHBvcnRzJykge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2U6IEVYUE9SVF9NRVNTQUdFIH0pXG4gICAgICB9XG5cbiAgICB9LFxuICAgICdDYWxsRXhwcmVzc2lvbic6IGZ1bmN0aW9uIChjYWxsKSB7XG4gICAgICBpZiAoY29udGV4dC5nZXRTY29wZSgpLnR5cGUgIT09ICdtb2R1bGUnKSByZXR1cm5cblxuICAgICAgaWYgKGNhbGwuY2FsbGVlLnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuXG4gICAgICBpZiAoY2FsbC5jYWxsZWUubmFtZSAhPT0gJ3JlcXVpcmUnKSByZXR1cm5cblxuICAgICAgaWYgKGNhbGwuYXJndW1lbnRzLmxlbmd0aCAhPT0gMSkgcmV0dXJuXG4gICAgICB2YXIgbW9kdWxlID0gY2FsbC5hcmd1bWVudHNbMF1cblxuICAgICAgaWYgKG1vZHVsZS50eXBlICE9PSAnTGl0ZXJhbCcpIHJldHVyblxuICAgICAgaWYgKHR5cGVvZiBtb2R1bGUudmFsdWUgIT09ICdzdHJpbmcnKSByZXR1cm5cblxuICAgICAgLy8ga2VlcGluZyBpdCBzaW1wbGU6IGFsbCAxLXN0cmluZy1hcmcgYHJlcXVpcmVgIGNhbGxzIGFyZSByZXBvcnRlZFxuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBub2RlOiBjYWxsLmNhbGxlZSxcbiAgICAgICAgbWVzc2FnZTogSU1QT1JUX01FU1NBR0UsXG4gICAgICB9KVxuICAgIH0sXG4gIH1cblxufVxuXG4gIC8vIGFsbG93IG5vbi1vYmplY3RzIGFzIG1vZHVsZS5leHBvcnRzXG5mdW5jdGlvbiBhbGxvd1ByaW1pdGl2ZShub2RlLCBjb250ZXh0KSB7XG4gIGlmIChjb250ZXh0Lm9wdGlvbnMuaW5kZXhPZignYWxsb3ctcHJpbWl0aXZlLW1vZHVsZXMnKSA8IDApIHJldHVybiBmYWxzZVxuICBpZiAobm9kZS5wYXJlbnQudHlwZSAhPT0gJ0Fzc2lnbm1lbnRFeHByZXNzaW9uJykgcmV0dXJuIGZhbHNlXG4gIHJldHVybiAobm9kZS5wYXJlbnQucmlnaHQudHlwZSAhPT0gJ09iamVjdEV4cHJlc3Npb24nKVxufVxuIl19

@@ -152,2 +152,2 @@ 'use strict';

}
//# sourceMappingURL=data:application/json;base64,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QjtBQUNmLGtCQUFRLE1BQVIsQ0FBZSxFQUFFLE1BQU0sWUFBWSxRQUFaLEVBQXNCLFNBQVMsUUFBUSxXQUFSLENBQVQsRUFBN0MsRUFEZTtTQUFqQjs7O0FBVjhDLGdCQWU5QyxDQUFTLElBQVQsQ0FBYyxZQUFZLFFBQVosQ0FBcUIsSUFBckIsQ0FBZCxDQWY4QztBQWdCOUMsb0JBQVksU0FBUyxTQUFULENBaEJrQztBQWlCOUMsc0JBQWMsWUFBWSxNQUFaLENBakJnQztPQURoRDtLQVZrQjtHQXBCdEIsQ0EvRGtDO0NBQW5COztBQXFIakIsU0FBUyxPQUFULENBQWlCLFdBQWpCLEVBQThCO0FBQzVCLFNBQU8sZ0JBQWdCLFlBQVksV0FBWixHQUEwQixPQUFPLFlBQVksV0FBWixHQUEwQixHQUEzRCxDQUFoQixDQURxQjtDQUE5Qjs7QUFJQSxTQUFTLGNBQVQsQ0FBd0IsUUFBeEIsRUFBa0M7QUFDaEMsTUFBSSxDQUFDLFFBQUQsSUFBYSxDQUFDLFNBQVMsR0FBVCxFQUFjLE9BQWhDOztBQUVBLE1BQUksb0JBQUosQ0FIZ0M7QUFJaEMsTUFBSSxTQUFTLEdBQVQsQ0FBYSxJQUFiLENBQWtCLElBQWxCLENBQXVCO1dBQUssRUFBRSxLQUFGLEtBQVksWUFBWixLQUE2QixjQUFjLENBQWQsQ0FBN0I7R0FBTCxDQUEzQixFQUFnRjtBQUM5RSxXQUFPLFdBQVAsQ0FEOEU7R0FBaEY7Q0FKRiIsImZpbGUiOiJydWxlcy9uby1kZXByZWNhdGVkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hcCBmcm9tICdlczYtbWFwJ1xuXG5pbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9jb3JlL2dldEV4cG9ydHMnXG5pbXBvcnQgZGVjbGFyZWRTY29wZSBmcm9tICcuLi9jb3JlL2RlY2xhcmVkU2NvcGUnXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgY29uc3QgZGVwcmVjYXRlZCA9IG5ldyBNYXAoKVxuICAgICAgLCBuYW1lc3BhY2VzID0gbmV3IE1hcCgpXG5cbiAgZnVuY3Rpb24gY2hlY2tTcGVjaWZpZXJzKG5vZGUpIHtcbiAgICBpZiAobm9kZS50eXBlICE9PSAnSW1wb3J0RGVjbGFyYXRpb24nKSByZXR1cm5cbiAgICBpZiAobm9kZS5zb3VyY2UgPT0gbnVsbCkgcmV0dXJuIC8vIGxvY2FsIGV4cG9ydCwgaWdub3JlXG5cbiAgICBjb25zdCBpbXBvcnRzID0gRXhwb3J0cy5nZXQobm9kZS5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgaWYgKGltcG9ydHMgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICBsZXQgbW9kdWxlRGVwcmVjYXRpb25cbiAgICBpZiAoaW1wb3J0cy5kb2MgJiZcbiAgICAgICAgaW1wb3J0cy5kb2MudGFncy5zb21lKHQgPT4gdC50aXRsZSA9PT0gJ2RlcHJlY2F0ZWQnICYmIChtb2R1bGVEZXByZWNhdGlvbiA9IHQpKSkge1xuICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlOiBtZXNzYWdlKG1vZHVsZURlcHJlY2F0aW9uKSB9KVxuICAgIH1cblxuICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIG5vZGUpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBub2RlLnNwZWNpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAoaW0pIHtcbiAgICAgIGxldCBpbXBvcnRlZCwgbG9jYWxcbiAgICAgIHN3aXRjaCAoaW0udHlwZSkge1xuXG5cbiAgICAgICAgY2FzZSAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJzp7XG4gICAgICAgICAgaWYgKCFpbXBvcnRzLnNpemUpIHJldHVyblxuICAgICAgICAgIG5hbWVzcGFjZXMuc2V0KGltLmxvY2FsLm5hbWUsIGltcG9ydHMpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjYXNlICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJzpcbiAgICAgICAgICBpbXBvcnRlZCA9ICdkZWZhdWx0J1xuICAgICAgICAgIGxvY2FsID0gaW0ubG9jYWwubmFtZVxuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnSW1wb3J0U3BlY2lmaWVyJzpcbiAgICAgICAgICBpbXBvcnRlZCA9IGltLmltcG9ydGVkLm5hbWVcbiAgICAgICAgICBsb2NhbCA9IGltLmxvY2FsLm5hbWVcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGRlZmF1bHQ6IHJldHVybiAvLyBjYW4ndCBoYW5kbGUgdGhpcyBvbmVcbiAgICAgIH1cblxuICAgICAgLy8gdW5rbm93biB0aGluZyBjYW4ndCBiZSBkZXByZWNhdGVkXG4gICAgICBjb25zdCBleHBvcnRlZCA9IGltcG9ydHMuZ2V0KGltcG9ydGVkKVxuICAgICAgaWYgKGV4cG9ydGVkID09IG51bGwpIHJldHVyblxuXG4gICAgICAvLyBjYXB0dXJlIGltcG9ydCBvZiBkZWVwIG5hbWVzcGFjZVxuICAgICAgaWYgKGV4cG9ydGVkLm5hbWVzcGFjZSkgbmFtZXNwYWNlcy5zZXQobG9jYWwsIGV4cG9ydGVkLm5hbWVzcGFjZSlcblxuICAgICAgY29uc3QgZGVwcmVjYXRpb24gPSBnZXREZXByZWNhdGlvbihpbXBvcnRzLmdldChpbXBvcnRlZCkpXG4gICAgICBpZiAoIWRlcHJlY2F0aW9uKSByZXR1cm5cblxuICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlOiBpbSwgbWVzc2FnZTogbWVzc2FnZShkZXByZWNhdGlvbikgfSlcblxuICAgICAgZGVwcmVjYXRlZC5zZXQobG9jYWwsIGRlcHJlY2F0aW9uKVxuXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJ1Byb2dyYW0nOiAoeyBib2R5IH0pID0+IGJvZHkuZm9yRWFjaChjaGVja1NwZWNpZmllcnMpLFxuXG4gICAgJ0lkZW50aWZpZXInOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgaWYgKG5vZGUucGFyZW50LnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJyAmJiBub2RlLnBhcmVudC5wcm9wZXJ0eSA9PT0gbm9kZSkge1xuICAgICAgICByZXR1cm4gLy8gaGFuZGxlZCBieSBNZW1iZXJFeHByZXNzaW9uXG4gICAgICB9XG5cbiAgICAgIC8vIGlnbm9yZSBzcGVjaWZpZXIgaWRlbnRpZmllcnNcbiAgICAgIGlmIChub2RlLnBhcmVudC50eXBlLnNsaWNlKDAsIDYpID09PSAnSW1wb3J0JykgcmV0dXJuXG5cbiAgICAgIGlmICghZGVwcmVjYXRlZC5oYXMobm9kZS5uYW1lKSkgcmV0dXJuXG5cbiAgICAgIGlmIChkZWNsYXJlZFNjb3BlKGNvbnRleHQsIG5vZGUubmFtZSkgIT09ICdtb2R1bGUnKSByZXR1cm5cbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgbm9kZSxcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZShkZXByZWNhdGVkLmdldChub2RlLm5hbWUpKSxcbiAgICAgIH0pXG4gICAgfSxcblxuICAgICdNZW1iZXJFeHByZXNzaW9uJzogZnVuY3Rpb24gKGRlcmVmZXJlbmNlKSB7XG4gICAgICBpZiAoZGVyZWZlcmVuY2Uub2JqZWN0LnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuXG4gICAgICBpZiAoIW5hbWVzcGFjZXMuaGFzKGRlcmVmZXJlbmNlLm9iamVjdC5uYW1lKSkgcmV0dXJuXG5cbiAgICAgIGlmIChkZWNsYXJlZFNjb3BlKGNvbnRleHQsIGRlcmVmZXJlbmNlLm9iamVjdC5uYW1lKSAhPT0gJ21vZHVsZScpIHJldHVyblxuXG4gICAgICAvLyBnbyBkZWVwXG4gICAgICB2YXIgbmFtZXNwYWNlID0gbmFtZXNwYWNlcy5nZXQoZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpXG4gICAgICB2YXIgbmFtZXBhdGggPSBbZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWVdXG4gICAgICAvLyB3aGlsZSBwcm9wZXJ0eSBpcyBuYW1lc3BhY2UgYW5kIHBhcmVudCBpcyBtZW1iZXIgZXhwcmVzc2lvbiwga2VlcCB2YWxpZGF0aW5nXG4gICAgICB3aGlsZSAobmFtZXNwYWNlIGluc3RhbmNlb2YgRXhwb3J0cyAmJlxuICAgICAgICAgICAgIGRlcmVmZXJlbmNlLnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJykge1xuXG4gICAgICAgIC8vIGlnbm9yZSBjb21wdXRlZCBwYXJ0cyBmb3Igbm93XG4gICAgICAgIGlmIChkZXJlZmVyZW5jZS5jb21wdXRlZCkgcmV0dXJuXG5cbiAgICAgICAgY29uc3QgbWV0YWRhdGEgPSBuYW1lc3BhY2UuZ2V0KGRlcmVmZXJlbmNlLnByb3BlcnR5Lm5hbWUpXG5cbiAgICAgICAgaWYgKCFtZXRhZGF0YSkgYnJlYWtcbiAgICAgICAgY29uc3QgZGVwcmVjYXRpb24gPSBnZXREZXByZWNhdGlvbihtZXRhZGF0YSlcblxuICAgICAgICBpZiAoZGVwcmVjYXRpb24pIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGU6IGRlcmVmZXJlbmNlLnByb3BlcnR5LCBtZXNzYWdlOiBtZXNzYWdlKGRlcHJlY2F0aW9uKSB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc3Rhc2ggYW5kIHBvcFxuICAgICAgICBuYW1lcGF0aC5wdXNoKGRlcmVmZXJlbmNlLnByb3BlcnR5Lm5hbWUpXG4gICAgICAgIG5hbWVzcGFjZSA9IG1ldGFkYXRhLm5hbWVzcGFjZVxuICAgICAgICBkZXJlZmVyZW5jZSA9IGRlcmVmZXJlbmNlLnBhcmVudFxuICAgICAgfVxuICAgIH0sXG4gIH1cbn1cblxuZnVuY3Rpb24gbWVzc2FnZShkZXByZWNhdGlvbikge1xuICByZXR1cm4gJ0RlcHJlY2F0ZWQnICsgKGRlcHJlY2F0aW9uLmRlc2NyaXB0aW9uID8gJzogJyArIGRlcHJlY2F0aW9uLmRlc2NyaXB0aW9uIDogJy4nKVxufVxuXG5mdW5jdGlvbiBnZXREZXByZWNhdGlvbihtZXRhZGF0YSkge1xuICBpZiAoIW1ldGFkYXRhIHx8ICFtZXRhZGF0YS5kb2MpIHJldHVyblxuXG4gIGxldCBkZXByZWNhdGlvblxuICBpZiAobWV0YWRhdGEuZG9jLnRhZ3Muc29tZSh0ID0+IHQudGl0bGUgPT09ICdkZXByZWNhdGVkJyAmJiAoZGVwcmVjYXRpb24gPSB0KSkpIHtcbiAgICByZXR1cm4gZGVwcmVjYXRpb25cbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWRlcHJlY2F0ZWQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7OztBQUVBOzs7O0FBQ0E7Ozs7OztBQUVBLE9BQU8sT0FBUCxHQUFpQixVQUFVLE9BQVYsRUFBbUI7QUFDbEMsTUFBTSxhQUFhLHNCQUFuQjtBQUFBLE1BQ00sYUFBYSxzQkFEbkI7O0FBR0EsV0FBUyxlQUFULENBQXlCLElBQXpCLEVBQStCO0FBQzdCLFFBQUksS0FBSyxJQUFMLEtBQWMsbUJBQWxCLEVBQXVDO0FBQ3ZDLFFBQUksS0FBSyxNQUFMLElBQWUsSUFBbkIsRUFBeUIsTzs7QUFFekIsUUFBTSxVQUFVLHFCQUFRLEdBQVIsQ0FBWSxLQUFLLE1BQUwsQ0FBWSxLQUF4QixFQUErQixPQUEvQixDQUFoQjtBQUNBLFFBQUksV0FBVyxJQUFmLEVBQXFCOztBQUVyQixRQUFJLDBCQUFKO0FBQ0EsUUFBSSxRQUFRLEdBQVIsSUFDQSxRQUFRLEdBQVIsQ0FBWSxJQUFaLENBQWlCLElBQWpCLENBQXNCO0FBQUEsYUFBSyxFQUFFLEtBQUYsS0FBWSxZQUFaLEtBQTZCLG9CQUFvQixDQUFqRCxDQUFMO0FBQUEsS0FBdEIsQ0FESixFQUNxRjtBQUNuRixjQUFRLE1BQVIsQ0FBZSxFQUFFLFVBQUYsRUFBUSxTQUFTLFFBQVEsaUJBQVIsQ0FBakIsRUFBZjtBQUNEOztBQUVELFFBQUksUUFBUSxNQUFSLENBQWUsTUFBbkIsRUFBMkI7QUFDekIsY0FBUSxZQUFSLENBQXFCLE9BQXJCLEVBQThCLElBQTlCO0FBQ0E7QUFDRDs7QUFFRCxTQUFLLFVBQUwsQ0FBZ0IsT0FBaEIsQ0FBd0IsVUFBVSxFQUFWLEVBQWM7QUFDcEMsVUFBSSxpQkFBSjtBQUFBLFVBQWMsY0FBZDtBQUNBLGNBQVEsR0FBRyxJQUFYOztBQUdFLGFBQUssMEJBQUw7QUFBZ0M7QUFDOUIsZ0JBQUksQ0FBQyxRQUFRLElBQWIsRUFBbUI7QUFDbkIsdUJBQVcsR0FBWCxDQUFlLEdBQUcsS0FBSCxDQUFTLElBQXhCLEVBQThCLE9BQTlCO0FBQ0E7QUFDRDs7QUFFRCxhQUFLLHdCQUFMO0FBQ0UscUJBQVcsU0FBWDtBQUNBLGtCQUFRLEdBQUcsS0FBSCxDQUFTLElBQWpCO0FBQ0E7O0FBRUYsYUFBSyxpQkFBTDtBQUNFLHFCQUFXLEdBQUcsUUFBSCxDQUFZLElBQXZCO0FBQ0Esa0JBQVEsR0FBRyxLQUFILENBQVMsSUFBakI7QUFDQTs7QUFFRjtBQUFTLGlCO0FBbkJYOzs7QUF1QkEsVUFBTSxXQUFXLFFBQVEsR0FBUixDQUFZLFFBQVosQ0FBakI7QUFDQSxVQUFJLFlBQVksSUFBaEIsRUFBc0I7OztBQUd0QixVQUFJLFNBQVMsU0FBYixFQUF3QixXQUFXLEdBQVgsQ0FBZSxLQUFmLEVBQXNCLFNBQVMsU0FBL0I7O0FBRXhCLFVBQU0sY0FBYyxlQUFlLFFBQVEsR0FBUixDQUFZLFFBQVosQ0FBZixDQUFwQjtBQUNBLFVBQUksQ0FBQyxXQUFMLEVBQWtCOztBQUVsQixjQUFRLE1BQVIsQ0FBZSxFQUFFLE1BQU0sRUFBUixFQUFZLFNBQVMsUUFBUSxXQUFSLENBQXJCLEVBQWY7O0FBRUEsaUJBQVcsR0FBWCxDQUFlLEtBQWYsRUFBc0IsV0FBdEI7QUFFRCxLQXRDRDtBQXVDRDs7QUFFRCxTQUFPO0FBQ0wsZUFBVztBQUFBLFVBQUcsSUFBSCxRQUFHLElBQUg7QUFBQSxhQUFjLEtBQUssT0FBTCxDQUFhLGVBQWIsQ0FBZDtBQUFBLEtBRE47O0FBR0wsa0JBQWMsb0JBQVUsSUFBVixFQUFnQjtBQUM1QixVQUFJLEtBQUssTUFBTCxDQUFZLElBQVosS0FBcUIsa0JBQXJCLElBQTJDLEtBQUssTUFBTCxDQUFZLFFBQVosS0FBeUIsSUFBeEUsRUFBOEU7QUFDNUUsZTtBQUNEOzs7QUFHRCxVQUFJLEtBQUssTUFBTCxDQUFZLElBQVosQ0FBaUIsS0FBakIsQ0FBdUIsQ0FBdkIsRUFBMEIsQ0FBMUIsTUFBaUMsUUFBckMsRUFBK0M7O0FBRS9DLFVBQUksQ0FBQyxXQUFXLEdBQVgsQ0FBZSxLQUFLLElBQXBCLENBQUwsRUFBZ0M7O0FBRWhDLFVBQUksNkJBQWMsT0FBZCxFQUF1QixLQUFLLElBQTVCLE1BQXNDLFFBQTFDLEVBQW9EO0FBQ3BELGNBQVEsTUFBUixDQUFlO0FBQ2Isa0JBRGE7QUFFYixpQkFBUyxRQUFRLFdBQVcsR0FBWCxDQUFlLEtBQUssSUFBcEIsQ0FBUjtBQUZJLE9BQWY7QUFJRCxLQWxCSTs7QUFvQkwsd0JBQW9CLDBCQUFVLFdBQVYsRUFBdUI7QUFDekMsVUFBSSxZQUFZLE1BQVosQ0FBbUIsSUFBbkIsS0FBNEIsWUFBaEMsRUFBOEM7QUFDOUMsVUFBSSxDQUFDLFdBQVcsR0FBWCxDQUFlLFlBQVksTUFBWixDQUFtQixJQUFsQyxDQUFMLEVBQThDOztBQUU5QyxVQUFJLDZCQUFjLE9BQWQsRUFBdUIsWUFBWSxNQUFaLENBQW1CLElBQTFDLE1BQW9ELFFBQXhELEVBQWtFOzs7QUFHbEUsVUFBSSxZQUFZLFdBQVcsR0FBWCxDQUFlLFlBQVksTUFBWixDQUFtQixJQUFsQyxDQUFoQjtBQUNBLFVBQUksV0FBVyxDQUFDLFlBQVksTUFBWixDQUFtQixJQUFwQixDQUFmOztBQUVBLGFBQU8sNkNBQ0EsWUFBWSxJQUFaLEtBQXFCLGtCQUQ1QixFQUNnRDs7O0FBRzlDLFlBQUksWUFBWSxRQUFoQixFQUEwQjs7QUFFMUIsWUFBTSxXQUFXLFVBQVUsR0FBVixDQUFjLFlBQVksUUFBWixDQUFxQixJQUFuQyxDQUFqQjs7QUFFQSxZQUFJLENBQUMsUUFBTCxFQUFlO0FBQ2YsWUFBTSxjQUFjLGVBQWUsUUFBZixDQUFwQjs7QUFFQSxZQUFJLFdBQUosRUFBaUI7QUFDZixrQkFBUSxNQUFSLENBQWUsRUFBRSxNQUFNLFlBQVksUUFBcEIsRUFBOEIsU0FBUyxRQUFRLFdBQVIsQ0FBdkMsRUFBZjtBQUNEOzs7QUFHRCxpQkFBUyxJQUFULENBQWMsWUFBWSxRQUFaLENBQXFCLElBQW5DO0FBQ0Esb0JBQVksU0FBUyxTQUFyQjtBQUNBLHNCQUFjLFlBQVksTUFBMUI7QUFDRDtBQUNGO0FBbERJLEdBQVA7QUFvREQsQ0FuSEQ7O0FBcUhBLFNBQVMsT0FBVCxDQUFpQixXQUFqQixFQUE4QjtBQUM1QixTQUFPLGdCQUFnQixZQUFZLFdBQVosR0FBMEIsT0FBTyxZQUFZLFdBQTdDLEdBQTJELEdBQTNFLENBQVA7QUFDRDs7QUFFRCxTQUFTLGNBQVQsQ0FBd0IsUUFBeEIsRUFBa0M7QUFDaEMsTUFBSSxDQUFDLFFBQUQsSUFBYSxDQUFDLFNBQVMsR0FBM0IsRUFBZ0M7O0FBRWhDLE1BQUksb0JBQUo7QUFDQSxNQUFJLFNBQVMsR0FBVCxDQUFhLElBQWIsQ0FBa0IsSUFBbEIsQ0FBdUI7QUFBQSxXQUFLLEVBQUUsS0FBRixLQUFZLFlBQVosS0FBNkIsY0FBYyxDQUEzQyxDQUFMO0FBQUEsR0FBdkIsQ0FBSixFQUFnRjtBQUM5RSxXQUFPLFdBQVA7QUFDRDtBQUNGIiwiZmlsZSI6InJ1bGVzL25vLWRlcHJlY2F0ZWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWFwIGZyb20gJ2VzNi1tYXAnXG5cbmltcG9ydCBFeHBvcnRzIGZyb20gJy4uL2NvcmUvZ2V0RXhwb3J0cydcbmltcG9ydCBkZWNsYXJlZFNjb3BlIGZyb20gJy4uL2NvcmUvZGVjbGFyZWRTY29wZSdcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICBjb25zdCBkZXByZWNhdGVkID0gbmV3IE1hcCgpXG4gICAgICAsIG5hbWVzcGFjZXMgPSBuZXcgTWFwKClcblxuICBmdW5jdGlvbiBjaGVja1NwZWNpZmllcnMobm9kZSkge1xuICAgIGlmIChub2RlLnR5cGUgIT09ICdJbXBvcnREZWNsYXJhdGlvbicpIHJldHVyblxuICAgIGlmIChub2RlLnNvdXJjZSA9PSBudWxsKSByZXR1cm4gLy8gbG9jYWwgZXhwb3J0LCBpZ25vcmVcblxuICAgIGNvbnN0IGltcG9ydHMgPSBFeHBvcnRzLmdldChub2RlLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm5cblxuICAgIGxldCBtb2R1bGVEZXByZWNhdGlvblxuICAgIGlmIChpbXBvcnRzLmRvYyAmJlxuICAgICAgICBpbXBvcnRzLmRvYy50YWdzLnNvbWUodCA9PiB0LnRpdGxlID09PSAnZGVwcmVjYXRlZCcgJiYgKG1vZHVsZURlcHJlY2F0aW9uID0gdCkpKSB7XG4gICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2U6IG1lc3NhZ2UobW9kdWxlRGVwcmVjYXRpb24pIH0pXG4gICAgfVxuXG4gICAgaWYgKGltcG9ydHMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgaW1wb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgbm9kZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIG5vZGUuc3BlY2lmaWVycy5mb3JFYWNoKGZ1bmN0aW9uIChpbSkge1xuICAgICAgbGV0IGltcG9ydGVkLCBsb2NhbFxuICAgICAgc3dpdGNoIChpbS50eXBlKSB7XG5cblxuICAgICAgICBjYXNlICdJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXInOntcbiAgICAgICAgICBpZiAoIWltcG9ydHMuc2l6ZSkgcmV0dXJuXG4gICAgICAgICAgbmFtZXNwYWNlcy5zZXQoaW0ubG9jYWwubmFtZSwgaW1wb3J0cylcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInOlxuICAgICAgICAgIGltcG9ydGVkID0gJ2RlZmF1bHQnXG4gICAgICAgICAgbG9jYWwgPSBpbS5sb2NhbC5uYW1lXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICdJbXBvcnRTcGVjaWZpZXInOlxuICAgICAgICAgIGltcG9ydGVkID0gaW0uaW1wb3J0ZWQubmFtZVxuICAgICAgICAgIGxvY2FsID0gaW0ubG9jYWwubmFtZVxuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgZGVmYXVsdDogcmV0dXJuIC8vIGNhbid0IGhhbmRsZSB0aGlzIG9uZVxuICAgICAgfVxuXG4gICAgICAvLyB1bmtub3duIHRoaW5nIGNhbid0IGJlIGRlcHJlY2F0ZWRcbiAgICAgIGNvbnN0IGV4cG9ydGVkID0gaW1wb3J0cy5nZXQoaW1wb3J0ZWQpXG4gICAgICBpZiAoZXhwb3J0ZWQgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgIC8vIGNhcHR1cmUgaW1wb3J0IG9mIGRlZXAgbmFtZXNwYWNlXG4gICAgICBpZiAoZXhwb3J0ZWQubmFtZXNwYWNlKSBuYW1lc3BhY2VzLnNldChsb2NhbCwgZXhwb3J0ZWQubmFtZXNwYWNlKVxuXG4gICAgICBjb25zdCBkZXByZWNhdGlvbiA9IGdldERlcHJlY2F0aW9uKGltcG9ydHMuZ2V0KGltcG9ydGVkKSlcbiAgICAgIGlmICghZGVwcmVjYXRpb24pIHJldHVyblxuXG4gICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGU6IGltLCBtZXNzYWdlOiBtZXNzYWdlKGRlcHJlY2F0aW9uKSB9KVxuXG4gICAgICBkZXByZWNhdGVkLnNldChsb2NhbCwgZGVwcmVjYXRpb24pXG5cbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAnUHJvZ3JhbSc6ICh7IGJvZHkgfSkgPT4gYm9keS5mb3JFYWNoKGNoZWNrU3BlY2lmaWVycyksXG5cbiAgICAnSWRlbnRpZmllcic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBpZiAobm9kZS5wYXJlbnQudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nICYmIG5vZGUucGFyZW50LnByb3BlcnR5ID09PSBub2RlKSB7XG4gICAgICAgIHJldHVybiAvLyBoYW5kbGVkIGJ5IE1lbWJlckV4cHJlc3Npb25cbiAgICAgIH1cblxuICAgICAgLy8gaWdub3JlIHNwZWNpZmllciBpZGVudGlmaWVyc1xuICAgICAgaWYgKG5vZGUucGFyZW50LnR5cGUuc2xpY2UoMCwgNikgPT09ICdJbXBvcnQnKSByZXR1cm5cblxuICAgICAgaWYgKCFkZXByZWNhdGVkLmhhcyhub2RlLm5hbWUpKSByZXR1cm5cblxuICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgbm9kZS5uYW1lKSAhPT0gJ21vZHVsZScpIHJldHVyblxuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBub2RlLFxuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlKGRlcHJlY2F0ZWQuZ2V0KG5vZGUubmFtZSkpLFxuICAgICAgfSlcbiAgICB9LFxuXG4gICAgJ01lbWJlckV4cHJlc3Npb24nOiBmdW5jdGlvbiAoZGVyZWZlcmVuY2UpIHtcbiAgICAgIGlmIChkZXJlZmVyZW5jZS5vYmplY3QudHlwZSAhPT0gJ0lkZW50aWZpZXInKSByZXR1cm5cbiAgICAgIGlmICghbmFtZXNwYWNlcy5oYXMoZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpKSByZXR1cm5cblxuICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpICE9PSAnbW9kdWxlJykgcmV0dXJuXG5cbiAgICAgIC8vIGdvIGRlZXBcbiAgICAgIHZhciBuYW1lc3BhY2UgPSBuYW1lc3BhY2VzLmdldChkZXJlZmVyZW5jZS5vYmplY3QubmFtZSlcbiAgICAgIHZhciBuYW1lcGF0aCA9IFtkZXJlZmVyZW5jZS5vYmplY3QubmFtZV1cbiAgICAgIC8vIHdoaWxlIHByb3BlcnR5IGlzIG5hbWVzcGFjZSBhbmQgcGFyZW50IGlzIG1lbWJlciBleHByZXNzaW9uLCBrZWVwIHZhbGlkYXRpbmdcbiAgICAgIHdoaWxlIChuYW1lc3BhY2UgaW5zdGFuY2VvZiBFeHBvcnRzICYmXG4gICAgICAgICAgICAgZGVyZWZlcmVuY2UudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nKSB7XG5cbiAgICAgICAgLy8gaWdub3JlIGNvbXB1dGVkIHBhcnRzIGZvciBub3dcbiAgICAgICAgaWYgKGRlcmVmZXJlbmNlLmNvbXB1dGVkKSByZXR1cm5cblxuICAgICAgICBjb25zdCBtZXRhZGF0YSA9IG5hbWVzcGFjZS5nZXQoZGVyZWZlcmVuY2UucHJvcGVydHkubmFtZSlcblxuICAgICAgICBpZiAoIW1ldGFkYXRhKSBicmVha1xuICAgICAgICBjb25zdCBkZXByZWNhdGlvbiA9IGdldERlcHJlY2F0aW9uKG1ldGFkYXRhKVxuXG4gICAgICAgIGlmIChkZXByZWNhdGlvbikge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZTogZGVyZWZlcmVuY2UucHJvcGVydHksIG1lc3NhZ2U6IG1lc3NhZ2UoZGVwcmVjYXRpb24pIH0pXG4gICAgICAgIH1cblxuICAgICAgICAvLyBzdGFzaCBhbmQgcG9wXG4gICAgICAgIG5hbWVwYXRoLnB1c2goZGVyZWZlcmVuY2UucHJvcGVydHkubmFtZSlcbiAgICAgICAgbmFtZXNwYWNlID0gbWV0YWRhdGEubmFtZXNwYWNlXG4gICAgICAgIGRlcmVmZXJlbmNlID0gZGVyZWZlcmVuY2UucGFyZW50XG4gICAgICB9XG4gICAgfSxcbiAgfVxufVxuXG5mdW5jdGlvbiBtZXNzYWdlKGRlcHJlY2F0aW9uKSB7XG4gIHJldHVybiAnRGVwcmVjYXRlZCcgKyAoZGVwcmVjYXRpb24uZGVzY3JpcHRpb24gPyAnOiAnICsgZGVwcmVjYXRpb24uZGVzY3JpcHRpb24gOiAnLicpXG59XG5cbmZ1bmN0aW9uIGdldERlcHJlY2F0aW9uKG1ldGFkYXRhKSB7XG4gIGlmICghbWV0YWRhdGEgfHwgIW1ldGFkYXRhLmRvYykgcmV0dXJuXG5cbiAgbGV0IGRlcHJlY2F0aW9uXG4gIGlmIChtZXRhZGF0YS5kb2MudGFncy5zb21lKHQgPT4gdC50aXRsZSA9PT0gJ2RlcHJlY2F0ZWQnICYmIChkZXByZWNhdGlvbiA9IHQpKSkge1xuICAgIHJldHVybiBkZXByZWNhdGlvblxuICB9XG59XG4iXX0=

@@ -79,2 +79,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWR1cGxpY2F0ZXMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFDQTs7OztBQUNBOzs7O0FBRUE7Ozs7OztBQUVBLFNBQVMsWUFBVCxDQUFzQixRQUF0QixFQUFnQyxPQUFoQyxFQUF5QztBQUN2Qyx1QkFBNEIsU0FBUyxPQUFULGdIQUE1QixJQUFnRDs7Ozs7Ozs7Ozs7OztRQUF0QyxtQkFBc0M7UUFBOUIsaUJBQThCOztBQUM5QyxRQUFJLE1BQU0sSUFBTixHQUFhLENBQWIsRUFBZ0I7QUFDbEIsNEJBQWlCLDBIQUFqQixJQUF3Qjs7Ozs7Ozs7Ozs7O1lBQWYsYUFBZTs7QUFDdEIsZ0JBQVEsTUFBUixDQUFlLElBQWYsU0FBeUIsdUNBQXpCLEVBRHNCO09BQXhCO0tBREY7R0FERjtDQURGOztBQVVBLE9BQU8sT0FBUCxHQUFpQixVQUFVLE9BQVYsRUFBbUI7QUFDbEMsTUFBTSxXQUFXLHNCQUFYLENBRDRCO0FBRWxDLE1BQU0sZ0JBQWdCLHNCQUFoQixDQUY0QjtBQUdsQyxTQUFPO0FBQ0wseUJBQXFCLDJCQUFVLENBQVYsRUFBYTs7QUFFaEMsVUFBTSxlQUFlLHVCQUFRLEVBQUUsTUFBRixDQUFTLEtBQVQsRUFBZ0IsT0FBeEIsS0FBb0MsRUFBRSxNQUFGLENBQVMsS0FBVCxDQUZ6QjtBQUdoQyxVQUFNLFlBQVksRUFBRSxVQUFGLEtBQWlCLE1BQWpCLEdBQTBCLGFBQTFCLEdBQTBDLFFBQTFDLENBSGM7O0FBS2hDLFVBQUksVUFBVSxHQUFWLENBQWMsWUFBZCxDQUFKLEVBQWlDO0FBQy9CLGtCQUFVLEdBQVYsQ0FBYyxZQUFkLEVBQTRCLEdBQTVCLENBQWdDLEVBQUUsTUFBRixDQUFoQyxDQUQrQjtPQUFqQyxNQUVPO0FBQ0wsa0JBQVUsR0FBVixDQUFjLFlBQWQsRUFBNEIscUJBQVEsQ0FBQyxFQUFFLE1BQUYsQ0FBVCxDQUE1QixFQURLO09BRlA7S0FMbUI7O0FBWXJCLG9CQUFnQix1QkFBWTtBQUMxQixtQkFBYSxRQUFiLEVBQXVCLE9BQXZCLEVBRDBCO0FBRTFCLG1CQUFhLGFBQWIsRUFBNEIsT0FBNUIsRUFGMEI7S0FBWjtHQWJsQixDQUhrQztDQUFuQiIsImZpbGUiOiJydWxlcy9uby1kdXBsaWNhdGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdlczYtc3ltYm9sL2ltcGxlbWVudCdcbmltcG9ydCBNYXAgZnJvbSAnZXM2LW1hcCdcbmltcG9ydCBTZXQgZnJvbSAnZXM2LXNldCdcblxuaW1wb3J0IHJlc29sdmUgZnJvbSAnLi4vY29yZS9yZXNvbHZlJ1xuXG5mdW5jdGlvbiBjaGVja0ltcG9ydHMoaW1wb3J0ZWQsIGNvbnRleHQpIHtcbiAgZm9yIChsZXQgW21vZHVsZSwgbm9kZXNdIG9mIGltcG9ydGVkLmVudHJpZXMoKSkge1xuICAgIGlmIChub2Rlcy5zaXplID4gMSkge1xuICAgICAgZm9yIChsZXQgbm9kZSBvZiBub2Rlcykge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChub2RlLCBgJyR7bW9kdWxlfScgaW1wb3J0ZWQgbXVsdGlwbGUgdGltZXMuYClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICBjb25zdCBpbXBvcnRlZCA9IG5ldyBNYXAoKVxuICBjb25zdCB0eXBlc0ltcG9ydGVkID0gbmV3IE1hcCgpXG4gIHJldHVybiB7XG4gICAgJ0ltcG9ydERlY2xhcmF0aW9uJzogZnVuY3Rpb24gKG4pIHtcbiAgICAgIC8vIHJlc29sdmVkIHBhdGggd2lsbCBjb3ZlciBhbGlhc2VkIGR1cGxpY2F0ZXNcbiAgICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IHJlc29sdmUobi5zb3VyY2UudmFsdWUsIGNvbnRleHQpIHx8IG4uc291cmNlLnZhbHVlXG4gICAgICBjb25zdCBpbXBvcnRNYXAgPSBuLmltcG9ydEtpbmQgPT09ICd0eXBlJyA/IHR5cGVzSW1wb3J0ZWQgOiBpbXBvcnRlZFxuXG4gICAgICBpZiAoaW1wb3J0TWFwLmhhcyhyZXNvbHZlZFBhdGgpKSB7XG4gICAgICAgIGltcG9ydE1hcC5nZXQocmVzb2x2ZWRQYXRoKS5hZGQobi5zb3VyY2UpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbXBvcnRNYXAuc2V0KHJlc29sdmVkUGF0aCwgbmV3IFNldChbbi5zb3VyY2VdKSlcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGNoZWNrSW1wb3J0cyhpbXBvcnRlZCwgY29udGV4dClcbiAgICAgIGNoZWNrSW1wb3J0cyh0eXBlc0ltcG9ydGVkLCBjb250ZXh0KVxuICAgIH0sXG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWR1cGxpY2F0ZXMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFDQTs7OztBQUNBOzs7O0FBRUE7Ozs7OztBQUVBLFNBQVMsWUFBVCxDQUFzQixRQUF0QixFQUFnQyxPQUFoQyxFQUF5QztBQUN2Qyx1QkFBNEIsU0FBUyxPQUFULEVBQTVCLGtIQUFnRDtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQSxRQUF0QyxPQUFzQztBQUFBLFFBQTlCLEtBQThCOztBQUM5QyxRQUFJLE1BQU0sSUFBTixHQUFhLENBQWpCLEVBQW9CO0FBQ2xCLDRCQUFpQixLQUFqQix5SEFBd0I7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBLFlBQWYsSUFBZTs7QUFDdEIsZ0JBQVEsTUFBUixDQUFlLElBQWYsU0FBeUIsT0FBekI7QUFDRDtBQUNGO0FBQ0Y7QUFDRjs7QUFFRCxPQUFPLE9BQVAsR0FBaUIsVUFBVSxPQUFWLEVBQW1CO0FBQ2xDLE1BQU0sV0FBVyxzQkFBakI7QUFDQSxNQUFNLGdCQUFnQixzQkFBdEI7QUFDQSxTQUFPO0FBQ0wseUJBQXFCLDJCQUFVLENBQVYsRUFBYTs7QUFFaEMsVUFBTSxlQUFlLHVCQUFRLEVBQUUsTUFBRixDQUFTLEtBQWpCLEVBQXdCLE9BQXhCLEtBQW9DLEVBQUUsTUFBRixDQUFTLEtBQWxFO0FBQ0EsVUFBTSxZQUFZLEVBQUUsVUFBRixLQUFpQixNQUFqQixHQUEwQixhQUExQixHQUEwQyxRQUE1RDs7QUFFQSxVQUFJLFVBQVUsR0FBVixDQUFjLFlBQWQsQ0FBSixFQUFpQztBQUMvQixrQkFBVSxHQUFWLENBQWMsWUFBZCxFQUE0QixHQUE1QixDQUFnQyxFQUFFLE1BQWxDO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsa0JBQVUsR0FBVixDQUFjLFlBQWQsRUFBNEIscUJBQVEsQ0FBQyxFQUFFLE1BQUgsQ0FBUixDQUE1QjtBQUNEO0FBQ0YsS0FYSTs7QUFhTCxvQkFBZ0IsdUJBQVk7QUFDMUIsbUJBQWEsUUFBYixFQUF1QixPQUF2QjtBQUNBLG1CQUFhLGFBQWIsRUFBNEIsT0FBNUI7QUFDRDtBQWhCSSxHQUFQO0FBa0JELENBckJEIiwiZmlsZSI6InJ1bGVzL25vLWR1cGxpY2F0ZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ2VzNi1zeW1ib2wvaW1wbGVtZW50J1xuaW1wb3J0IE1hcCBmcm9tICdlczYtbWFwJ1xuaW1wb3J0IFNldCBmcm9tICdlczYtc2V0J1xuXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICcuLi9jb3JlL3Jlc29sdmUnXG5cbmZ1bmN0aW9uIGNoZWNrSW1wb3J0cyhpbXBvcnRlZCwgY29udGV4dCkge1xuICBmb3IgKGxldCBbbW9kdWxlLCBub2Rlc10gb2YgaW1wb3J0ZWQuZW50cmllcygpKSB7XG4gICAgaWYgKG5vZGVzLnNpemUgPiAxKSB7XG4gICAgICBmb3IgKGxldCBub2RlIG9mIG5vZGVzKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KG5vZGUsIGAnJHttb2R1bGV9JyBpbXBvcnRlZCBtdWx0aXBsZSB0aW1lcy5gKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIGNvbnN0IGltcG9ydGVkID0gbmV3IE1hcCgpXG4gIGNvbnN0IHR5cGVzSW1wb3J0ZWQgPSBuZXcgTWFwKClcbiAgcmV0dXJuIHtcbiAgICAnSW1wb3J0RGVjbGFyYXRpb24nOiBmdW5jdGlvbiAobikge1xuICAgICAgLy8gcmVzb2x2ZWQgcGF0aCB3aWxsIGNvdmVyIGFsaWFzZWQgZHVwbGljYXRlc1xuICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gcmVzb2x2ZShuLnNvdXJjZS52YWx1ZSwgY29udGV4dCkgfHwgbi5zb3VyY2UudmFsdWVcbiAgICAgIGNvbnN0IGltcG9ydE1hcCA9IG4uaW1wb3J0S2luZCA9PT0gJ3R5cGUnID8gdHlwZXNJbXBvcnRlZCA6IGltcG9ydGVkXG5cbiAgICAgIGlmIChpbXBvcnRNYXAuaGFzKHJlc29sdmVkUGF0aCkpIHtcbiAgICAgICAgaW1wb3J0TWFwLmdldChyZXNvbHZlZFBhdGgpLmFkZChuLnNvdXJjZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGltcG9ydE1hcC5zZXQocmVzb2x2ZWRQYXRoLCBuZXcgU2V0KFtuLnNvdXJjZV0pKVxuICAgICAgfVxuICAgIH0sXG5cbiAgICAnUHJvZ3JhbTpleGl0JzogZnVuY3Rpb24gKCkge1xuICAgICAgY2hlY2tJbXBvcnRzKGltcG9ydGVkLCBjb250ZXh0KVxuICAgICAgY2hlY2tJbXBvcnRzKHR5cGVzSW1wb3J0ZWQsIGNvbnRleHQpXG4gICAgfSxcbiAgfVxufVxuIl19

@@ -110,2 +110,2 @@ 'use strict';

}];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBLFNBQVMsZUFBVCxDQUF5QixPQUF6QixFQUFrQztBQUNoQyxNQUFNLFdBQVcsZ0JBQU0sSUFBTixDQUFXLFFBQVEsV0FBUixFQUFYLENBQVgsQ0FEMEI7QUFFaEMsTUFBSSxDQUFDLFFBQUQsRUFBVztBQUNiLFdBQU8sSUFBUCxDQURhO0dBQWY7O0FBSUEsTUFBSTtBQUNGLFFBQU0saUJBQWlCLEtBQUssS0FBTCxDQUFXLGFBQUcsWUFBSCxDQUFnQixRQUFoQixFQUEwQixNQUExQixDQUFYLENBQWpCLENBREo7QUFFRixXQUFPO0FBQ0wsb0JBQWMsZUFBZSxZQUFmLElBQStCLEVBQS9CO0FBQ2QsdUJBQWlCLGVBQWUsZUFBZixJQUFrQyxFQUFsQztBQUNqQiw0QkFBc0IsZUFBZSxvQkFBZixJQUF1QyxFQUF2QztLQUh4QixDQUZFO0dBQUosQ0FPRSxPQUFPLENBQVAsRUFBVTtBQUNWLFdBQU8sSUFBUCxDQURVO0dBQVY7Q0FiSjs7QUFrQkEsU0FBUyxtQkFBVCxDQUE2QixXQUE3QixFQUEwQztBQUN4QyxTQUFPLE9BQUksb0VBQUosd0JBQ1ksNkJBRFosQ0FEaUM7Q0FBMUM7O0FBS0EsU0FBUyxrQkFBVCxDQUE0QixXQUE1QixFQUF5QztBQUN2QyxnQkFBVyx3RkFBWCxDQUR1QztDQUF6Qzs7QUFJQSxTQUFTLGtCQUFULENBQTRCLFdBQTVCLEVBQXlDO0FBQ3ZDLFNBQU8sT0FBSSxvRUFBSiw4QkFBUCxDQUR1QztDQUF6Qzs7QUFLQSxTQUFTLGVBQVQsQ0FBeUIsT0FBekIsRUFBa0MsSUFBbEMsRUFBd0MsWUFBeEMsRUFBc0QsWUFBdEQsRUFBb0UsSUFBcEUsRUFBMEUsSUFBMUUsRUFBZ0Y7QUFDOUUsTUFBSSwwQkFBVyxJQUFYLEVBQWlCLE9BQWpCLE1BQThCLFVBQTlCLEVBQTBDO0FBQzVDLFdBRDRDO0dBQTlDO0FBR0EsTUFBTSxZQUFZLEtBQUssS0FBTCxDQUFXLEdBQVgsQ0FBWixDQUp3RTtBQUs5RSxNQUFNLGNBQWMsVUFBVSxDQUFWLEVBQWEsQ0FBYixNQUFvQixHQUFwQixHQUNoQixVQUFVLEtBQVYsQ0FBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkIsRUFBc0IsSUFBdEIsQ0FBMkIsR0FBM0IsQ0FEZ0IsR0FFaEIsVUFBVSxDQUFWLENBRmdCLENBTDBEOztBQVM5RSxNQUFNLFdBQVcsS0FBSyxZQUFMLENBQWtCLFdBQWxCLE1BQW1DLFNBQW5DLENBVDZEO0FBVTlFLE1BQU0sY0FBYyxLQUFLLGVBQUwsQ0FBcUIsV0FBckIsTUFBc0MsU0FBdEMsQ0FWMEQ7QUFXOUUsTUFBTSxjQUFjLEtBQUssb0JBQUwsQ0FBMEIsV0FBMUIsTUFBMkMsU0FBM0MsQ0FYMEQ7O0FBYTlFLE1BQUksWUFDRCxnQkFBZ0IsV0FBaEIsSUFDQSxnQkFBZ0IsV0FBaEIsRUFDRDtBQUNBLFdBREE7R0FIRjs7QUFPQSxNQUFJLGVBQWUsQ0FBQyxZQUFELEVBQWU7QUFDaEMsWUFBUSxNQUFSLENBQWUsSUFBZixFQUFxQixtQkFBbUIsV0FBbkIsQ0FBckIsRUFEZ0M7QUFFaEMsV0FGZ0M7R0FBbEM7O0FBS0EsTUFBSSxlQUFlLENBQUMsWUFBRCxFQUFlO0FBQ2hDLFlBQVEsTUFBUixDQUFlLElBQWYsRUFBcUIsbUJBQW1CLFdBQW5CLENBQXJCLEVBRGdDO0FBRWhDLFdBRmdDO0dBQWxDOztBQUtBLFVBQVEsTUFBUixDQUFlLElBQWYsRUFBcUIsb0JBQW9CLFdBQXBCLENBQXJCLEVBOUI4RTtDQUFoRjs7QUFpQ0EsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjtBQUNsQyxNQUFNLFVBQVUsUUFBUSxPQUFSLENBQWdCLENBQWhCLEtBQXNCLEVBQXRCLENBRGtCO0FBRWxDLE1BQU0sZUFBZSxRQUFRLGVBQVIsS0FBNEIsS0FBNUIsQ0FGYTtBQUdsQyxNQUFNLGVBQWUsUUFBUSxvQkFBUixLQUFpQyxLQUFqQyxDQUhhO0FBSWxDLE1BQU0sT0FBTyxnQkFBZ0IsT0FBaEIsQ0FBUCxDQUo0Qjs7QUFNbEMsTUFBSSxDQUFDLElBQUQsRUFBTztBQUNULFdBQU8sRUFBUCxDQURTO0dBQVg7OztBQU5rQyxTQVczQjtBQUNMLHVCQUFtQiwyQkFBVSxJQUFWLEVBQWdCO0FBQ2pDLHNCQUFnQixPQUFoQixFQUF5QixJQUF6QixFQUErQixZQUEvQixFQUE2QyxZQUE3QyxFQUEyRCxJQUEzRCxFQUFpRSxLQUFLLE1BQUwsQ0FBWSxLQUFaLENBQWpFLENBRGlDO0tBQWhCO0FBR25CLG9CQUFnQixTQUFTLGNBQVQsQ0FBd0IsSUFBeEIsRUFBOEI7QUFDNUMsVUFBSSw2QkFBZ0IsSUFBaEIsQ0FBSixFQUEyQjtBQUN6Qix3QkFBZ0IsT0FBaEIsRUFBeUIsSUFBekIsRUFBK0IsWUFBL0IsRUFBNkMsWUFBN0MsRUFBMkQsSUFBM0QsRUFBaUUsS0FBSyxTQUFMLENBQWUsQ0FBZixFQUFrQixLQUFsQixDQUFqRSxDQUR5QjtPQUEzQjtLQURjO0dBSmxCLENBWGtDO0NBQW5COztBQXVCakIsT0FBTyxPQUFQLENBQWUsTUFBZixHQUF3QixDQUN0QjtBQUNFLFVBQVEsUUFBUjtBQUNBLGdCQUFjO0FBQ1osdUJBQW1CLEVBQUUsUUFBUSxTQUFSLEVBQXJCO0FBQ0EsNEJBQXdCLEVBQUUsUUFBUSxTQUFSLEVBQTFCO0dBRkY7QUFJQSwwQkFBd0IsS0FBeEI7Q0FQb0IsQ0FBeEIiLCJmaWxlIjoicnVsZXMvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgcGtnVXAgZnJvbSAncGtnLXVwJ1xuaW1wb3J0IGltcG9ydFR5cGUgZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJ1xuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5cbmZ1bmN0aW9uIGdldERlcGVuZGVuY2llcyhjb250ZXh0KSB7XG4gIGNvbnN0IGZpbGVwYXRoID0gcGtnVXAuc3luYyhjb250ZXh0LmdldEZpbGVuYW1lKCkpXG4gIGlmICghZmlsZXBhdGgpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBwYWNrYWdlQ29udGVudCA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGZpbGVwYXRoLCAndXRmOCcpKVxuICAgIHJldHVybiB7XG4gICAgICBkZXBlbmRlbmNpZXM6IHBhY2thZ2VDb250ZW50LmRlcGVuZGVuY2llcyB8fCB7fSxcbiAgICAgIGRldkRlcGVuZGVuY2llczogcGFja2FnZUNvbnRlbnQuZGV2RGVwZW5kZW5jaWVzIHx8IHt9LFxuICAgICAgb3B0aW9uYWxEZXBlbmRlbmNpZXM6IHBhY2thZ2VDb250ZW50Lm9wdGlvbmFsRGVwZW5kZW5jaWVzIHx8IHt9LFxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuZnVuY3Rpb24gbWlzc2luZ0Vycm9yTWVzc2FnZShwYWNrYWdlTmFtZSkge1xuICByZXR1cm4gYCcke3BhY2thZ2VOYW1lfScgc2hvdWxkIGJlIGxpc3RlZCBpbiB0aGUgcHJvamVjdCdzIGRlcGVuZGVuY2llcy4gYCArXG4gICAgYFJ1biAnbnBtIGkgLVMgJHtwYWNrYWdlTmFtZX0nIHRvIGFkZCBpdGBcbn1cblxuZnVuY3Rpb24gZGV2RGVwRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSB7XG4gIHJldHVybiBgJyR7cGFja2FnZU5hbWV9JyBzaG91bGQgYmUgbGlzdGVkIGluIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jaWVzLCBub3QgZGV2RGVwZW5kZW5jaWVzLmBcbn1cblxuZnVuY3Rpb24gb3B0RGVwRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSB7XG4gIHJldHVybiBgJyR7cGFja2FnZU5hbWV9JyBzaG91bGQgYmUgbGlzdGVkIGluIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jaWVzLCBgICtcbiAgICBgbm90IG9wdGlvbmFsRGVwZW5kZW5jaWVzLmBcbn1cblxuZnVuY3Rpb24gcmVwb3J0SWZNaXNzaW5nKGNvbnRleHQsIGRlcHMsIGFsbG93RGV2RGVwcywgYWxsb3dPcHREZXBzLCBub2RlLCBuYW1lKSB7XG4gIGlmIChpbXBvcnRUeXBlKG5hbWUsIGNvbnRleHQpICE9PSAnZXh0ZXJuYWwnKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgY29uc3Qgc3BsaXROYW1lID0gbmFtZS5zcGxpdCgnLycpXG4gIGNvbnN0IHBhY2thZ2VOYW1lID0gc3BsaXROYW1lWzBdWzBdID09PSAnQCdcbiAgICA/IHNwbGl0TmFtZS5zbGljZSgwLCAyKS5qb2luKCcvJylcbiAgICA6IHNwbGl0TmFtZVswXVxuXG4gIGNvbnN0IGlzSW5EZXBzID0gZGVwcy5kZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdICE9PSB1bmRlZmluZWRcbiAgY29uc3QgaXNJbkRldkRlcHMgPSBkZXBzLmRldkRlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0gIT09IHVuZGVmaW5lZFxuICBjb25zdCBpc0luT3B0RGVwcyA9IGRlcHMub3B0aW9uYWxEZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdICE9PSB1bmRlZmluZWRcblxuICBpZiAoaXNJbkRlcHMgfHxcbiAgICAoYWxsb3dEZXZEZXBzICYmIGlzSW5EZXZEZXBzKSB8fFxuICAgIChhbGxvd09wdERlcHMgJiYgaXNJbk9wdERlcHMpXG4gICkge1xuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKGlzSW5EZXZEZXBzICYmICFhbGxvd0RldkRlcHMpIHtcbiAgICBjb250ZXh0LnJlcG9ydChub2RlLCBkZXZEZXBFcnJvck1lc3NhZ2UocGFja2FnZU5hbWUpKVxuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKGlzSW5PcHREZXBzICYmICFhbGxvd09wdERlcHMpIHtcbiAgICBjb250ZXh0LnJlcG9ydChub2RlLCBvcHREZXBFcnJvck1lc3NhZ2UocGFja2FnZU5hbWUpKVxuICAgIHJldHVyblxuICB9XG5cbiAgY29udGV4dC5yZXBvcnQobm9kZSwgbWlzc2luZ0Vycm9yTWVzc2FnZShwYWNrYWdlTmFtZSkpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQub3B0aW9uc1swXSB8fCB7fVxuICBjb25zdCBhbGxvd0RldkRlcHMgPSBvcHRpb25zLmRldkRlcGVuZGVuY2llcyAhPT0gZmFsc2VcbiAgY29uc3QgYWxsb3dPcHREZXBzID0gb3B0aW9ucy5vcHRpb25hbERlcGVuZGVuY2llcyAhPT0gZmFsc2VcbiAgY29uc3QgZGVwcyA9IGdldERlcGVuZGVuY2llcyhjb250ZXh0KVxuXG4gIGlmICghZGVwcykge1xuICAgIHJldHVybiB7fVxuICB9XG5cbiAgLy8gdG9kbzogdXNlIG1vZHVsZSB2aXNpdG9yIGZyb20gbW9kdWxlLXV0aWxzIGNvcmVcbiAgcmV0dXJuIHtcbiAgICBJbXBvcnREZWNsYXJhdGlvbjogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHJlcG9ydElmTWlzc2luZyhjb250ZXh0LCBkZXBzLCBhbGxvd0RldkRlcHMsIGFsbG93T3B0RGVwcywgbm9kZSwgbm9kZS5zb3VyY2UudmFsdWUpXG4gICAgfSxcbiAgICBDYWxsRXhwcmVzc2lvbjogZnVuY3Rpb24gaGFuZGxlUmVxdWlyZXMobm9kZSkge1xuICAgICAgaWYgKGlzU3RhdGljUmVxdWlyZShub2RlKSkge1xuICAgICAgICByZXBvcnRJZk1pc3NpbmcoY29udGV4dCwgZGVwcywgYWxsb3dEZXZEZXBzLCBhbGxvd09wdERlcHMsIG5vZGUsIG5vZGUuYXJndW1lbnRzWzBdLnZhbHVlKVxuICAgICAgfVxuICAgIH0sXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMuc2NoZW1hID0gW1xuICB7XG4gICAgJ3R5cGUnOiAnb2JqZWN0JyxcbiAgICAncHJvcGVydGllcyc6IHtcbiAgICAgICdkZXZEZXBlbmRlbmNpZXMnOiB7ICd0eXBlJzogJ2Jvb2xlYW4nIH0sXG4gICAgICAnb3B0aW9uYWxEZXBlbmRlbmNpZXMnOiB7ICd0eXBlJzogJ2Jvb2xlYW4nIH0sXG4gICAgfSxcbiAgICAnYWRkaXRpb25hbFByb3BlcnRpZXMnOiBmYWxzZSxcbiAgfSxcbl1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBLFNBQVMsZUFBVCxDQUF5QixPQUF6QixFQUFrQztBQUNoQyxNQUFNLFdBQVcsZ0JBQU0sSUFBTixDQUFXLFFBQVEsV0FBUixFQUFYLENBQWpCO0FBQ0EsTUFBSSxDQUFDLFFBQUwsRUFBZTtBQUNiLFdBQU8sSUFBUDtBQUNEOztBQUVELE1BQUk7QUFDRixRQUFNLGlCQUFpQixLQUFLLEtBQUwsQ0FBVyxhQUFHLFlBQUgsQ0FBZ0IsUUFBaEIsRUFBMEIsTUFBMUIsQ0FBWCxDQUF2QjtBQUNBLFdBQU87QUFDTCxvQkFBYyxlQUFlLFlBQWYsSUFBK0IsRUFEeEM7QUFFTCx1QkFBaUIsZUFBZSxlQUFmLElBQWtDLEVBRjlDO0FBR0wsNEJBQXNCLGVBQWUsb0JBQWYsSUFBdUM7QUFIeEQsS0FBUDtBQUtELEdBUEQsQ0FPRSxPQUFPLENBQVAsRUFBVTtBQUNWLFdBQU8sSUFBUDtBQUNEO0FBQ0Y7O0FBRUQsU0FBUyxtQkFBVCxDQUE2QixXQUE3QixFQUEwQztBQUN4QyxTQUFPLE9BQUksV0FBSixpRkFDWSxXQURaLGtCQUFQO0FBRUQ7O0FBRUQsU0FBUyxrQkFBVCxDQUE0QixXQUE1QixFQUF5QztBQUN2QyxnQkFBVyxXQUFYO0FBQ0Q7O0FBRUQsU0FBUyxrQkFBVCxDQUE0QixXQUE1QixFQUF5QztBQUN2QyxTQUFPLE9BQUksV0FBSix1RkFBUDtBQUVEOztBQUVELFNBQVMsZUFBVCxDQUF5QixPQUF6QixFQUFrQyxJQUFsQyxFQUF3QyxZQUF4QyxFQUFzRCxZQUF0RCxFQUFvRSxJQUFwRSxFQUEwRSxJQUExRSxFQUFnRjtBQUM5RSxNQUFJLDBCQUFXLElBQVgsRUFBaUIsT0FBakIsTUFBOEIsVUFBbEMsRUFBOEM7QUFDNUM7QUFDRDtBQUNELE1BQU0sWUFBWSxLQUFLLEtBQUwsQ0FBVyxHQUFYLENBQWxCO0FBQ0EsTUFBTSxjQUFjLFVBQVUsQ0FBVixFQUFhLENBQWIsTUFBb0IsR0FBcEIsR0FDaEIsVUFBVSxLQUFWLENBQWdCLENBQWhCLEVBQW1CLENBQW5CLEVBQXNCLElBQXRCLENBQTJCLEdBQTNCLENBRGdCLEdBRWhCLFVBQVUsQ0FBVixDQUZKOztBQUlBLE1BQU0sV0FBVyxLQUFLLFlBQUwsQ0FBa0IsV0FBbEIsTUFBbUMsU0FBcEQ7QUFDQSxNQUFNLGNBQWMsS0FBSyxlQUFMLENBQXFCLFdBQXJCLE1BQXNDLFNBQTFEO0FBQ0EsTUFBTSxjQUFjLEtBQUssb0JBQUwsQ0FBMEIsV0FBMUIsTUFBMkMsU0FBL0Q7O0FBRUEsTUFBSSxZQUNELGdCQUFnQixXQURmLElBRUQsZ0JBQWdCLFdBRm5CLEVBR0U7QUFDQTtBQUNEOztBQUVELE1BQUksZUFBZSxDQUFDLFlBQXBCLEVBQWtDO0FBQ2hDLFlBQVEsTUFBUixDQUFlLElBQWYsRUFBcUIsbUJBQW1CLFdBQW5CLENBQXJCO0FBQ0E7QUFDRDs7QUFFRCxNQUFJLGVBQWUsQ0FBQyxZQUFwQixFQUFrQztBQUNoQyxZQUFRLE1BQVIsQ0FBZSxJQUFmLEVBQXFCLG1CQUFtQixXQUFuQixDQUFyQjtBQUNBO0FBQ0Q7O0FBRUQsVUFBUSxNQUFSLENBQWUsSUFBZixFQUFxQixvQkFBb0IsV0FBcEIsQ0FBckI7QUFDRDs7QUFFRCxPQUFPLE9BQVAsR0FBaUIsVUFBVSxPQUFWLEVBQW1CO0FBQ2xDLE1BQU0sVUFBVSxRQUFRLE9BQVIsQ0FBZ0IsQ0FBaEIsS0FBc0IsRUFBdEM7QUFDQSxNQUFNLGVBQWUsUUFBUSxlQUFSLEtBQTRCLEtBQWpEO0FBQ0EsTUFBTSxlQUFlLFFBQVEsb0JBQVIsS0FBaUMsS0FBdEQ7QUFDQSxNQUFNLE9BQU8sZ0JBQWdCLE9BQWhCLENBQWI7O0FBRUEsTUFBSSxDQUFDLElBQUwsRUFBVztBQUNULFdBQU8sRUFBUDtBQUNEOzs7QUFHRCxTQUFPO0FBQ0wsdUJBQW1CLDJCQUFVLElBQVYsRUFBZ0I7QUFDakMsc0JBQWdCLE9BQWhCLEVBQXlCLElBQXpCLEVBQStCLFlBQS9CLEVBQTZDLFlBQTdDLEVBQTJELElBQTNELEVBQWlFLEtBQUssTUFBTCxDQUFZLEtBQTdFO0FBQ0QsS0FISTtBQUlMLG9CQUFnQixTQUFTLGNBQVQsQ0FBd0IsSUFBeEIsRUFBOEI7QUFDNUMsVUFBSSw2QkFBZ0IsSUFBaEIsQ0FBSixFQUEyQjtBQUN6Qix3QkFBZ0IsT0FBaEIsRUFBeUIsSUFBekIsRUFBK0IsWUFBL0IsRUFBNkMsWUFBN0MsRUFBMkQsSUFBM0QsRUFBaUUsS0FBSyxTQUFMLENBQWUsQ0FBZixFQUFrQixLQUFuRjtBQUNEO0FBQ0Y7QUFSSSxHQUFQO0FBVUQsQ0FyQkQ7O0FBdUJBLE9BQU8sT0FBUCxDQUFlLE1BQWYsR0FBd0IsQ0FDdEI7QUFDRSxVQUFRLFFBRFY7QUFFRSxnQkFBYztBQUNaLHVCQUFtQixFQUFFLFFBQVEsU0FBVixFQURQO0FBRVosNEJBQXdCLEVBQUUsUUFBUSxTQUFWO0FBRlosR0FGaEI7QUFNRSwwQkFBd0I7QUFOMUIsQ0FEc0IsQ0FBeEIiLCJmaWxlIjoicnVsZXMvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgcGtnVXAgZnJvbSAncGtnLXVwJ1xuaW1wb3J0IGltcG9ydFR5cGUgZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJ1xuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5cbmZ1bmN0aW9uIGdldERlcGVuZGVuY2llcyhjb250ZXh0KSB7XG4gIGNvbnN0IGZpbGVwYXRoID0gcGtnVXAuc3luYyhjb250ZXh0LmdldEZpbGVuYW1lKCkpXG4gIGlmICghZmlsZXBhdGgpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBwYWNrYWdlQ29udGVudCA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGZpbGVwYXRoLCAndXRmOCcpKVxuICAgIHJldHVybiB7XG4gICAgICBkZXBlbmRlbmNpZXM6IHBhY2thZ2VDb250ZW50LmRlcGVuZGVuY2llcyB8fCB7fSxcbiAgICAgIGRldkRlcGVuZGVuY2llczogcGFja2FnZUNvbnRlbnQuZGV2RGVwZW5kZW5jaWVzIHx8IHt9LFxuICAgICAgb3B0aW9uYWxEZXBlbmRlbmNpZXM6IHBhY2thZ2VDb250ZW50Lm9wdGlvbmFsRGVwZW5kZW5jaWVzIHx8IHt9LFxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuZnVuY3Rpb24gbWlzc2luZ0Vycm9yTWVzc2FnZShwYWNrYWdlTmFtZSkge1xuICByZXR1cm4gYCcke3BhY2thZ2VOYW1lfScgc2hvdWxkIGJlIGxpc3RlZCBpbiB0aGUgcHJvamVjdCdzIGRlcGVuZGVuY2llcy4gYCArXG4gICAgYFJ1biAnbnBtIGkgLVMgJHtwYWNrYWdlTmFtZX0nIHRvIGFkZCBpdGBcbn1cblxuZnVuY3Rpb24gZGV2RGVwRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSB7XG4gIHJldHVybiBgJyR7cGFja2FnZU5hbWV9JyBzaG91bGQgYmUgbGlzdGVkIGluIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jaWVzLCBub3QgZGV2RGVwZW5kZW5jaWVzLmBcbn1cblxuZnVuY3Rpb24gb3B0RGVwRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSB7XG4gIHJldHVybiBgJyR7cGFja2FnZU5hbWV9JyBzaG91bGQgYmUgbGlzdGVkIGluIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jaWVzLCBgICtcbiAgICBgbm90IG9wdGlvbmFsRGVwZW5kZW5jaWVzLmBcbn1cblxuZnVuY3Rpb24gcmVwb3J0SWZNaXNzaW5nKGNvbnRleHQsIGRlcHMsIGFsbG93RGV2RGVwcywgYWxsb3dPcHREZXBzLCBub2RlLCBuYW1lKSB7XG4gIGlmIChpbXBvcnRUeXBlKG5hbWUsIGNvbnRleHQpICE9PSAnZXh0ZXJuYWwnKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgY29uc3Qgc3BsaXROYW1lID0gbmFtZS5zcGxpdCgnLycpXG4gIGNvbnN0IHBhY2thZ2VOYW1lID0gc3BsaXROYW1lWzBdWzBdID09PSAnQCdcbiAgICA/IHNwbGl0TmFtZS5zbGljZSgwLCAyKS5qb2luKCcvJylcbiAgICA6IHNwbGl0TmFtZVswXVxuXG4gIGNvbnN0IGlzSW5EZXBzID0gZGVwcy5kZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdICE9PSB1bmRlZmluZWRcbiAgY29uc3QgaXNJbkRldkRlcHMgPSBkZXBzLmRldkRlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0gIT09IHVuZGVmaW5lZFxuICBjb25zdCBpc0luT3B0RGVwcyA9IGRlcHMub3B0aW9uYWxEZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdICE9PSB1bmRlZmluZWRcblxuICBpZiAoaXNJbkRlcHMgfHxcbiAgICAoYWxsb3dEZXZEZXBzICYmIGlzSW5EZXZEZXBzKSB8fFxuICAgIChhbGxvd09wdERlcHMgJiYgaXNJbk9wdERlcHMpXG4gICkge1xuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKGlzSW5EZXZEZXBzICYmICFhbGxvd0RldkRlcHMpIHtcbiAgICBjb250ZXh0LnJlcG9ydChub2RlLCBkZXZEZXBFcnJvck1lc3NhZ2UocGFja2FnZU5hbWUpKVxuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKGlzSW5PcHREZXBzICYmICFhbGxvd09wdERlcHMpIHtcbiAgICBjb250ZXh0LnJlcG9ydChub2RlLCBvcHREZXBFcnJvck1lc3NhZ2UocGFja2FnZU5hbWUpKVxuICAgIHJldHVyblxuICB9XG5cbiAgY29udGV4dC5yZXBvcnQobm9kZSwgbWlzc2luZ0Vycm9yTWVzc2FnZShwYWNrYWdlTmFtZSkpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQub3B0aW9uc1swXSB8fCB7fVxuICBjb25zdCBhbGxvd0RldkRlcHMgPSBvcHRpb25zLmRldkRlcGVuZGVuY2llcyAhPT0gZmFsc2VcbiAgY29uc3QgYWxsb3dPcHREZXBzID0gb3B0aW9ucy5vcHRpb25hbERlcGVuZGVuY2llcyAhPT0gZmFsc2VcbiAgY29uc3QgZGVwcyA9IGdldERlcGVuZGVuY2llcyhjb250ZXh0KVxuXG4gIGlmICghZGVwcykge1xuICAgIHJldHVybiB7fVxuICB9XG5cbiAgLy8gdG9kbzogdXNlIG1vZHVsZSB2aXNpdG9yIGZyb20gbW9kdWxlLXV0aWxzIGNvcmVcbiAgcmV0dXJuIHtcbiAgICBJbXBvcnREZWNsYXJhdGlvbjogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHJlcG9ydElmTWlzc2luZyhjb250ZXh0LCBkZXBzLCBhbGxvd0RldkRlcHMsIGFsbG93T3B0RGVwcywgbm9kZSwgbm9kZS5zb3VyY2UudmFsdWUpXG4gICAgfSxcbiAgICBDYWxsRXhwcmVzc2lvbjogZnVuY3Rpb24gaGFuZGxlUmVxdWlyZXMobm9kZSkge1xuICAgICAgaWYgKGlzU3RhdGljUmVxdWlyZShub2RlKSkge1xuICAgICAgICByZXBvcnRJZk1pc3NpbmcoY29udGV4dCwgZGVwcywgYWxsb3dEZXZEZXBzLCBhbGxvd09wdERlcHMsIG5vZGUsIG5vZGUuYXJndW1lbnRzWzBdLnZhbHVlKVxuICAgICAgfVxuICAgIH0sXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMuc2NoZW1hID0gW1xuICB7XG4gICAgJ3R5cGUnOiAnb2JqZWN0JyxcbiAgICAncHJvcGVydGllcyc6IHtcbiAgICAgICdkZXZEZXBlbmRlbmNpZXMnOiB7ICd0eXBlJzogJ2Jvb2xlYW4nIH0sXG4gICAgICAnb3B0aW9uYWxEZXBlbmRlbmNpZXMnOiB7ICd0eXBlJzogJ2Jvb2xlYW4nIH0sXG4gICAgfSxcbiAgICAnYWRkaXRpb25hbFByb3BlcnRpZXMnOiBmYWxzZSxcbiAgfSxcbl1cbiJdfQ==

@@ -90,2 +90,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLW11dGFibGUtZXhwb3J0cy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sT0FBUCxHQUFpQixVQUFVLE9BQVYsRUFBbUI7QUFDbEMsV0FBUyxnQkFBVCxDQUEwQixJQUExQixFQUFnQztRQUN2QixPQUFRLEtBQVIsS0FEdUI7O0FBRTlCLFFBQUksU0FBUyxLQUFULElBQWtCLFNBQVMsS0FBVCxFQUFnQjtBQUNwQyxjQUFRLE1BQVIsQ0FBZSxJQUFmLDJCQUEyQywyQ0FBM0MsRUFEb0M7S0FBdEM7R0FGRjs7QUFPQSxXQUFTLHdCQUFULE9BQStDLElBQS9DLEVBQXFEO1FBQWxCLDJCQUFrQjs7QUFDbkQseUJBQXFCLHVIQUFyQixJQUFnQzs7Ozs7Ozs7Ozs7O1VBQXZCLGlCQUF1Qjs7QUFDOUIsVUFBSSxTQUFTLElBQVQsS0FBa0IsSUFBbEIsRUFBd0I7QUFDMUIsOEJBQWdCLFNBQVMsSUFBVCxxSEFBaEIsSUFBK0I7Ozs7Ozs7Ozs7OztjQUF0QixZQUFzQjs7QUFDN0IsY0FBSSxJQUFJLElBQUosS0FBYSxVQUFiLEVBQXlCO0FBQzNCLDZCQUFpQixJQUFJLE1BQUosQ0FBakIsQ0FEMkI7V0FBN0I7U0FERjtPQURGO0tBREY7R0FERjs7QUFZQSxXQUFTLG1CQUFULENBQTZCLElBQTdCLEVBQW1DO0FBQ2pDLFFBQU0sUUFBUSxRQUFRLFFBQVIsRUFBUixDQUQyQjs7QUFHakMsUUFBSSxLQUFLLFdBQUwsQ0FBaUIsSUFBakIsRUFBdUI7QUFDekIsK0JBQXlCLEtBQXpCLEVBQWdDLEtBQUssV0FBTCxDQUFpQixJQUFqQixDQUFoQyxDQUR5QjtLQUEzQjtHQUhGOztBQVFBLFdBQVMsaUJBQVQsQ0FBMkIsSUFBM0IsRUFBaUM7QUFDL0IsUUFBTSxRQUFRLFFBQVEsUUFBUixFQUFSLENBRHlCOztBQUcvQixRQUFJLEtBQUssV0FBTCxFQUFtQjtBQUNyQix1QkFBaUIsS0FBSyxXQUFMLENBQWpCLENBRHFCO0tBQXZCLE1BRU8sSUFBSSxDQUFDLEtBQUssTUFBTCxFQUFhO0FBQ3ZCLDRCQUFzQixLQUFLLFVBQUwscUhBQXRCLElBQXVDOzs7Ozs7Ozs7Ozs7WUFBOUIsa0JBQThCOztBQUNyQyxpQ0FBeUIsS0FBekIsRUFBZ0MsVUFBVSxLQUFWLENBQWdCLElBQWhCLENBQWhDLENBRHFDO09BQXZDO0tBREs7R0FMVDs7QUFZQSxTQUFPO0FBQ0wsZ0NBQTRCLG1CQUE1QjtBQUNBLDhCQUEwQixpQkFBMUI7R0FGRixDQXhDa0M7Q0FBbkIiLCJmaWxlIjoicnVsZXMvbm8tbXV0YWJsZS1leHBvcnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICBmdW5jdGlvbiBjaGVja0RlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICBjb25zdCB7a2luZH0gPSBub2RlXG4gICAgaWYgKGtpbmQgPT09ICd2YXInIHx8IGtpbmQgPT09ICdsZXQnKSB7XG4gICAgICBjb250ZXh0LnJlcG9ydChub2RlLCBgRXhwb3J0aW5nIG11dGFibGUgJyR7a2luZH0nIGJpbmRpbmcsIHVzZSAnY29uc3QnIGluc3RlYWQuYClcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBjaGVja0RlY2xhcmF0aW9uc0luU2NvcGUoe3ZhcmlhYmxlc30sIG5hbWUpIHtcbiAgICBmb3IgKGxldCB2YXJpYWJsZSBvZiB2YXJpYWJsZXMpIHtcbiAgICAgIGlmICh2YXJpYWJsZS5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgIGZvciAobGV0IGRlZiBvZiB2YXJpYWJsZS5kZWZzKSB7XG4gICAgICAgICAgaWYgKGRlZi50eXBlID09PSAnVmFyaWFibGUnKSB7XG4gICAgICAgICAgICBjaGVja0RlY2xhcmF0aW9uKGRlZi5wYXJlbnQpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlRXhwb3J0RGVmYXVsdChub2RlKSB7XG4gICAgY29uc3Qgc2NvcGUgPSBjb250ZXh0LmdldFNjb3BlKClcblxuICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLm5hbWUpIHtcbiAgICAgIGNoZWNrRGVjbGFyYXRpb25zSW5TY29wZShzY29wZSwgbm9kZS5kZWNsYXJhdGlvbi5uYW1lKVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUV4cG9ydE5hbWVkKG5vZGUpIHtcbiAgICBjb25zdCBzY29wZSA9IGNvbnRleHQuZ2V0U2NvcGUoKVxuXG4gICAgaWYgKG5vZGUuZGVjbGFyYXRpb24pICB7XG4gICAgICBjaGVja0RlY2xhcmF0aW9uKG5vZGUuZGVjbGFyYXRpb24pXG4gICAgfSBlbHNlIGlmICghbm9kZS5zb3VyY2UpIHtcbiAgICAgIGZvciAobGV0IHNwZWNpZmllciBvZiBub2RlLnNwZWNpZmllcnMpIHtcbiAgICAgICAgY2hlY2tEZWNsYXJhdGlvbnNJblNjb3BlKHNjb3BlLCBzcGVjaWZpZXIubG9jYWwubmFtZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgICdFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24nOiBoYW5kbGVFeHBvcnREZWZhdWx0LFxuICAgICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJzogaGFuZGxlRXhwb3J0TmFtZWQsXG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLW11dGFibGUtZXhwb3J0cy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sT0FBUCxHQUFpQixVQUFVLE9BQVYsRUFBbUI7QUFDbEMsV0FBUyxnQkFBVCxDQUEwQixJQUExQixFQUFnQztBQUFBLFFBQ3ZCLElBRHVCLEdBQ2YsSUFEZSxDQUN2QixJQUR1Qjs7QUFFOUIsUUFBSSxTQUFTLEtBQVQsSUFBa0IsU0FBUyxLQUEvQixFQUFzQztBQUNwQyxjQUFRLE1BQVIsQ0FBZSxJQUFmLDJCQUEyQyxJQUEzQztBQUNEO0FBQ0Y7O0FBRUQsV0FBUyx3QkFBVCxPQUErQyxJQUEvQyxFQUFxRDtBQUFBLFFBQWxCLFNBQWtCLFFBQWxCLFNBQWtCOztBQUNuRCx5QkFBcUIsU0FBckIsa0hBQWdDO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQSxVQUF2QixRQUF1Qjs7QUFDOUIsVUFBSSxTQUFTLElBQVQsS0FBa0IsSUFBdEIsRUFBNEI7QUFDMUIsOEJBQWdCLFNBQVMsSUFBekIseUhBQStCO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQSxjQUF0QixHQUFzQjs7QUFDN0IsY0FBSSxJQUFJLElBQUosS0FBYSxVQUFqQixFQUE2QjtBQUMzQiw2QkFBaUIsSUFBSSxNQUFyQjtBQUNEO0FBQ0Y7QUFDRjtBQUNGO0FBQ0Y7O0FBRUQsV0FBUyxtQkFBVCxDQUE2QixJQUE3QixFQUFtQztBQUNqQyxRQUFNLFFBQVEsUUFBUSxRQUFSLEVBQWQ7O0FBRUEsUUFBSSxLQUFLLFdBQUwsQ0FBaUIsSUFBckIsRUFBMkI7QUFDekIsK0JBQXlCLEtBQXpCLEVBQWdDLEtBQUssV0FBTCxDQUFpQixJQUFqRDtBQUNEO0FBQ0Y7O0FBRUQsV0FBUyxpQkFBVCxDQUEyQixJQUEzQixFQUFpQztBQUMvQixRQUFNLFFBQVEsUUFBUSxRQUFSLEVBQWQ7O0FBRUEsUUFBSSxLQUFLLFdBQVQsRUFBdUI7QUFDckIsdUJBQWlCLEtBQUssV0FBdEI7QUFDRCxLQUZELE1BRU8sSUFBSSxDQUFDLEtBQUssTUFBVixFQUFrQjtBQUN2Qiw0QkFBc0IsS0FBSyxVQUEzQix5SEFBdUM7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBLFlBQTlCLFNBQThCOztBQUNyQyxpQ0FBeUIsS0FBekIsRUFBZ0MsVUFBVSxLQUFWLENBQWdCLElBQWhEO0FBQ0Q7QUFDRjtBQUNGOztBQUVELFNBQU87QUFDTCxnQ0FBNEIsbUJBRHZCO0FBRUwsOEJBQTBCO0FBRnJCLEdBQVA7QUFJRCxDQTVDRCIsImZpbGUiOiJydWxlcy9uby1tdXRhYmxlLWV4cG9ydHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIGZ1bmN0aW9uIGNoZWNrRGVjbGFyYXRpb24obm9kZSkge1xuICAgIGNvbnN0IHtraW5kfSA9IG5vZGVcbiAgICBpZiAoa2luZCA9PT0gJ3ZhcicgfHwga2luZCA9PT0gJ2xldCcpIHtcbiAgICAgIGNvbnRleHQucmVwb3J0KG5vZGUsIGBFeHBvcnRpbmcgbXV0YWJsZSAnJHtraW5kfScgYmluZGluZywgdXNlICdjb25zdCcgaW5zdGVhZC5gKVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGNoZWNrRGVjbGFyYXRpb25zSW5TY29wZSh7dmFyaWFibGVzfSwgbmFtZSkge1xuICAgIGZvciAobGV0IHZhcmlhYmxlIG9mIHZhcmlhYmxlcykge1xuICAgICAgaWYgKHZhcmlhYmxlLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgZm9yIChsZXQgZGVmIG9mIHZhcmlhYmxlLmRlZnMpIHtcbiAgICAgICAgICBpZiAoZGVmLnR5cGUgPT09ICdWYXJpYWJsZScpIHtcbiAgICAgICAgICAgIGNoZWNrRGVjbGFyYXRpb24oZGVmLnBhcmVudClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVFeHBvcnREZWZhdWx0KG5vZGUpIHtcbiAgICBjb25zdCBzY29wZSA9IGNvbnRleHQuZ2V0U2NvcGUoKVxuXG4gICAgaWYgKG5vZGUuZGVjbGFyYXRpb24ubmFtZSkge1xuICAgICAgY2hlY2tEZWNsYXJhdGlvbnNJblNjb3BlKHNjb3BlLCBub2RlLmRlY2xhcmF0aW9uLm5hbWUpXG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlRXhwb3J0TmFtZWQobm9kZSkge1xuICAgIGNvbnN0IHNjb3BlID0gY29udGV4dC5nZXRTY29wZSgpXG5cbiAgICBpZiAobm9kZS5kZWNsYXJhdGlvbikgIHtcbiAgICAgIGNoZWNrRGVjbGFyYXRpb24obm9kZS5kZWNsYXJhdGlvbilcbiAgICB9IGVsc2UgaWYgKCFub2RlLnNvdXJjZSkge1xuICAgICAgZm9yIChsZXQgc3BlY2lmaWVyIG9mIG5vZGUuc3BlY2lmaWVycykge1xuICAgICAgICBjaGVja0RlY2xhcmF0aW9uc0luU2NvcGUoc2NvcGUsIHNwZWNpZmllci5sb2NhbC5uYW1lKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbic6IGhhbmRsZUV4cG9ydERlZmF1bHQsXG4gICAgJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nOiBoYW5kbGVFeHBvcnROYW1lZCxcbiAgfVxufVxuIl19

@@ -126,2 +126,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0E7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLE9BQU8sT0FBUCxHQUFpQixVQUFTLE9BQVQsRUFBa0I7O0FBRWpDLE1BQU0sY0FBYyxzQkFBZCxDQUYyQjtBQUdqQyxNQUFNLHFCQUFxQixzQkFBckIsQ0FIMkI7O0FBS2pDLFdBQVMsbUJBQVQsQ0FBNkIsSUFBN0IsRUFBbUM7QUFDakMsUUFBTSxjQUFjLGlDQUFrQixPQUFsQixDQUFkLENBRDJCO0FBRWpDLFFBQU0sWUFBWSxxQkFBUSxHQUFSLENBQVksWUFBWSxNQUFaLENBQW1CLEtBQW5CLEVBQTBCLE9BQXRDLENBQVosQ0FGMkI7QUFHakMsUUFBSSxhQUFhLElBQWIsRUFBbUIsT0FBdkI7O0FBRUEsUUFBSSxVQUFVLE1BQVYsQ0FBaUIsTUFBakIsRUFBeUI7QUFDM0IsZ0JBQVUsWUFBVixDQUF1QixPQUF2QixFQUFnQyxXQUFoQyxFQUQyQjtBQUUzQixhQUYyQjtLQUE3Qjs7QUFLQSxnQkFBWSxHQUFaLENBQWdCLEtBQUssS0FBTCxDQUFXLElBQVgsRUFBaUI7QUFDL0IsMEJBRCtCO0FBRS9CLGtCQUFZLFlBQVksTUFBWixDQUFtQixLQUFuQjtLQUZkLEVBVmlDO0dBQW5DOztBQWdCQSxXQUFTLG1CQUFULENBQTZCLFVBQTdCLEVBQXlDLFFBQXpDLEVBQW1ELElBQW5ELEVBQXlEO0FBQ3ZELFFBQU0sVUFBVSxtQkFBbUIsR0FBbkIsQ0FBdUIsVUFBdkIsS0FBc0MsRUFBdEMsQ0FEdUM7QUFFdkQsWUFBUSxJQUFSLENBQWEsRUFBQyxVQUFELEVBQU8sa0JBQVAsRUFBYixFQUZ1RDtBQUd2RCx1QkFBbUIsR0FBbkIsQ0FBdUIsVUFBdkIsRUFBbUMsT0FBbkMsRUFIdUQ7R0FBekQ7O0FBTUEsV0FBUyxnQkFBVCxDQUEwQixJQUExQixFQUFnQztBQUM5QixRQUFNLGFBQWEsS0FBSyxNQUFMLENBQVksSUFBWixDQURXO0FBRTlCLFFBQU0sV0FBVyxLQUFLLFFBQUwsQ0FBYyxJQUFkLENBRmE7QUFHOUIsd0JBQW9CLFVBQXBCLEVBQWdDLFFBQWhDLEVBQTBDLElBQTFDLEVBSDhCO0dBQWhDOztBQU1BLFdBQVMsNkJBQVQsQ0FBdUMsSUFBdkMsRUFBNkM7QUFDM0MsUUFBTSxnQkFDSixLQUFLLEVBQUwsQ0FBUSxJQUFSLEtBQWlCLGVBQWpCLElBQ0EsS0FBSyxJQUFMLElBQWEsSUFBYixJQUNBLEtBQUssSUFBTCxDQUFVLElBQVYsS0FBbUIsWUFBbkIsQ0FKeUM7QUFNM0MsUUFBSSxDQUFDLGFBQUQsRUFBZ0IsT0FBcEI7O0FBRUEsUUFBTSxhQUFhLEtBQUssSUFBTCxDQUFVLElBQVYsQ0FSd0I7QUFTM0MseUJBQXNCLEtBQUssRUFBTCxDQUFRLFVBQVIsOEdBQXRCLElBQTBDOzs7Ozs7Ozs7Ozs7O1VBQTdCLGdCQUE2Qjs7QUFDeEMsVUFBSSxPQUFPLElBQVAsRUFBYSxTQUFqQjtBQUR3Qyx5QkFFeEMsQ0FBb0IsVUFBcEIsRUFBZ0MsSUFBSSxJQUFKLEVBQVUsR0FBMUMsRUFGd0M7S0FBMUM7R0FURjs7QUFlQSxXQUFTLGlCQUFULEdBQTZCO0FBQzNCLHVCQUFtQixPQUFuQixDQUEyQixVQUFDLE9BQUQsRUFBVSxVQUFWLEVBQXlCO0FBQ2xELFVBQU0sYUFBYSxZQUFZLEdBQVosQ0FBZ0IsVUFBaEIsQ0FBYixDQUQ0QztBQUVsRCxVQUFJLGNBQWMsSUFBZCxFQUFvQixPQUF4Qjs7QUFFQSw0QkFBK0IsNEhBQS9CLElBQXdDOzs7Ozs7Ozs7Ozs7O1lBQTVCLDBCQUE0QjtZQUFsQixrQkFBa0I7O0FBQ3RDLFlBQUksQ0FBQyxXQUFXLFNBQVgsQ0FBcUIsU0FBckIsQ0FBK0IsR0FBL0IsQ0FBbUMsUUFBbkMsQ0FBRCxFQUErQyxTQUFuRDs7QUFFQSxnQkFBUSxNQUFSLENBQWU7QUFDYixvQkFEYTtBQUViLG1CQUNFLGVBQWMseUNBQWQsVUFDSyw2Q0FETCxrQkFFYSx5QkFBbUIsV0FBVyxVQUFYLFVBRmhDLEdBR0EsVUFIQTtTQUhKLEVBSHNDO09BQXhDO0tBSnlCLENBQTNCLENBRDJCO0dBQTdCOztBQXFCQSxTQUFPO0FBQ0wsOEJBQTBCLG1CQUExQjtBQUNBLHdCQUFvQixnQkFBcEI7QUFDQSwwQkFBc0IsNkJBQXRCO0FBQ0Esb0JBQWdCLGlCQUFoQjtHQUpGLENBckVpQztDQUFsQiIsImZpbGUiOiJydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIHdhcm4gYWJvdXQgcG90ZW50aWFsbHkgY29uZnVzZWQgdXNlIG9mIG5hbWUgZXhwb3J0c1xuICogQGF1dGhvciBEZXNtb25kIEJyYW5kXG4gKiBAY29weXJpZ2h0IDIwMTYgRGVzbW9uZCBCcmFuZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFNlZSBMSUNFTlNFIGluIHJvb3QgZGlyZWN0b3J5IGZvciBmdWxsIGxpY2Vuc2UuXG4gKi9cblxuaW1wb3J0ICdlczYtc3ltYm9sL2ltcGxlbWVudCdcbmltcG9ydCBNYXAgZnJvbSAnZXM2LW1hcCdcblxuaW1wb3J0IEV4cG9ydHMgZnJvbSAnLi4vY29yZS9nZXRFeHBvcnRzJ1xuaW1wb3J0IGltcG9ydERlY2xhcmF0aW9uIGZyb20gJy4uL2ltcG9ydERlY2xhcmF0aW9uJ1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUnVsZSBEZWZpbml0aW9uXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGNvbnRleHQpIHtcblxuICBjb25zdCBmaWxlSW1wb3J0cyA9IG5ldyBNYXAoKVxuICBjb25zdCBhbGxQcm9wZXJ0eUxvb2t1cHMgPSBuZXcgTWFwKClcblxuICBmdW5jdGlvbiBoYW5kbGVJbXBvcnREZWZhdWx0KG5vZGUpIHtcbiAgICBjb25zdCBkZWNsYXJhdGlvbiA9IGltcG9ydERlY2xhcmF0aW9uKGNvbnRleHQpXG4gICAgY29uc3QgZXhwb3J0TWFwID0gRXhwb3J0cy5nZXQoZGVjbGFyYXRpb24uc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgIGlmIChleHBvcnRNYXAgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICBpZiAoZXhwb3J0TWFwLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIGV4cG9ydE1hcC5yZXBvcnRFcnJvcnMoY29udGV4dCwgZGVjbGFyYXRpb24pXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBmaWxlSW1wb3J0cy5zZXQobm9kZS5sb2NhbC5uYW1lLCB7XG4gICAgICBleHBvcnRNYXAsXG4gICAgICBzb3VyY2VQYXRoOiBkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsXG4gICAgfSlcbiAgfVxuXG4gIGZ1bmN0aW9uIHN0b3JlUHJvcGVydHlMb29rdXAob2JqZWN0TmFtZSwgcHJvcE5hbWUsIG5vZGUpIHtcbiAgICBjb25zdCBsb29rdXBzID0gYWxsUHJvcGVydHlMb29rdXBzLmdldChvYmplY3ROYW1lKSB8fCBbXVxuICAgIGxvb2t1cHMucHVzaCh7bm9kZSwgcHJvcE5hbWV9KVxuICAgIGFsbFByb3BlcnR5TG9va3Vwcy5zZXQob2JqZWN0TmFtZSwgbG9va3VwcylcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZVByb3BMb29rdXAobm9kZSkge1xuICAgIGNvbnN0IG9iamVjdE5hbWUgPSBub2RlLm9iamVjdC5uYW1lXG4gICAgY29uc3QgcHJvcE5hbWUgPSBub2RlLnByb3BlcnR5Lm5hbWVcbiAgICBzdG9yZVByb3BlcnR5TG9va3VwKG9iamVjdE5hbWUsIHByb3BOYW1lLCBub2RlKVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlRGVzdHJ1Y3R1cmluZ0Fzc2lnbm1lbnQobm9kZSkge1xuICAgIGNvbnN0IGlzRGVzdHJ1Y3R1cmUgPSAoXG4gICAgICBub2RlLmlkLnR5cGUgPT09ICdPYmplY3RQYXR0ZXJuJyAmJlxuICAgICAgbm9kZS5pbml0ICE9IG51bGwgJiZcbiAgICAgIG5vZGUuaW5pdC50eXBlID09PSAnSWRlbnRpZmllcidcbiAgICApXG4gICAgaWYgKCFpc0Rlc3RydWN0dXJlKSByZXR1cm5cblxuICAgIGNvbnN0IG9iamVjdE5hbWUgPSBub2RlLmluaXQubmFtZVxuICAgIGZvciAoY29uc3QgeyBrZXkgfSBvZiBub2RlLmlkLnByb3BlcnRpZXMpIHtcbiAgICAgIGlmIChrZXkgPT0gbnVsbCkgY29udGludWUgIC8vIHRydWUgZm9yIHJlc3QgcHJvcGVydGllc1xuICAgICAgc3RvcmVQcm9wZXJ0eUxvb2t1cChvYmplY3ROYW1lLCBrZXkubmFtZSwga2V5KVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZVByb2dyYW1FeGl0KCkge1xuICAgIGFsbFByb3BlcnR5TG9va3Vwcy5mb3JFYWNoKChsb29rdXBzLCBvYmplY3ROYW1lKSA9PiB7XG4gICAgICBjb25zdCBmaWxlSW1wb3J0ID0gZmlsZUltcG9ydHMuZ2V0KG9iamVjdE5hbWUpXG4gICAgICBpZiAoZmlsZUltcG9ydCA9PSBudWxsKSByZXR1cm5cblxuICAgICAgZm9yIChjb25zdCB7cHJvcE5hbWUsIG5vZGV9IG9mIGxvb2t1cHMpIHtcbiAgICAgICAgaWYgKCFmaWxlSW1wb3J0LmV4cG9ydE1hcC5uYW1lc3BhY2UuaGFzKHByb3BOYW1lKSkgY29udGludWVcblxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgICBtZXNzYWdlOiAoXG4gICAgICAgICAgICBgQ2F1dGlvbjogXFxgJHtvYmplY3ROYW1lfVxcYCBhbHNvIGhhcyBhIG5hbWVkIGV4cG9ydCBgICtcbiAgICAgICAgICAgIGBcXGAke3Byb3BOYW1lfVxcYC4gQ2hlY2sgaWYgeW91IG1lYW50IHRvIHdyaXRlIGAgK1xuICAgICAgICAgICAgYFxcYGltcG9ydCB7JHtwcm9wTmFtZX19IGZyb20gJyR7ZmlsZUltcG9ydC5zb3VyY2VQYXRofSdcXGAgYCArXG4gICAgICAgICAgICAnaW5zdGVhZC4nXG4gICAgICAgICAgKSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAnSW1wb3J0RGVmYXVsdFNwZWNpZmllcic6IGhhbmRsZUltcG9ydERlZmF1bHQsXG4gICAgJ01lbWJlckV4cHJlc3Npb24nOiBoYW5kbGVQcm9wTG9va3VwLFxuICAgICdWYXJpYWJsZURlY2xhcmF0b3InOiBoYW5kbGVEZXN0cnVjdHVyaW5nQXNzaWdubWVudCxcbiAgICAnUHJvZ3JhbTpleGl0JzogaGFuZGxlUHJvZ3JhbUV4aXQsXG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0E7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLE9BQU8sT0FBUCxHQUFpQixVQUFTLE9BQVQsRUFBa0I7O0FBRWpDLE1BQU0sY0FBYyxzQkFBcEI7QUFDQSxNQUFNLHFCQUFxQixzQkFBM0I7O0FBRUEsV0FBUyxtQkFBVCxDQUE2QixJQUE3QixFQUFtQztBQUNqQyxRQUFNLGNBQWMsaUNBQWtCLE9BQWxCLENBQXBCO0FBQ0EsUUFBTSxZQUFZLHFCQUFRLEdBQVIsQ0FBWSxZQUFZLE1BQVosQ0FBbUIsS0FBL0IsRUFBc0MsT0FBdEMsQ0FBbEI7QUFDQSxRQUFJLGFBQWEsSUFBakIsRUFBdUI7O0FBRXZCLFFBQUksVUFBVSxNQUFWLENBQWlCLE1BQXJCLEVBQTZCO0FBQzNCLGdCQUFVLFlBQVYsQ0FBdUIsT0FBdkIsRUFBZ0MsV0FBaEM7QUFDQTtBQUNEOztBQUVELGdCQUFZLEdBQVosQ0FBZ0IsS0FBSyxLQUFMLENBQVcsSUFBM0IsRUFBaUM7QUFDL0IsMEJBRCtCO0FBRS9CLGtCQUFZLFlBQVksTUFBWixDQUFtQjtBQUZBLEtBQWpDO0FBSUQ7O0FBRUQsV0FBUyxtQkFBVCxDQUE2QixVQUE3QixFQUF5QyxRQUF6QyxFQUFtRCxJQUFuRCxFQUF5RDtBQUN2RCxRQUFNLFVBQVUsbUJBQW1CLEdBQW5CLENBQXVCLFVBQXZCLEtBQXNDLEVBQXREO0FBQ0EsWUFBUSxJQUFSLENBQWEsRUFBQyxVQUFELEVBQU8sa0JBQVAsRUFBYjtBQUNBLHVCQUFtQixHQUFuQixDQUF1QixVQUF2QixFQUFtQyxPQUFuQztBQUNEOztBQUVELFdBQVMsZ0JBQVQsQ0FBMEIsSUFBMUIsRUFBZ0M7QUFDOUIsUUFBTSxhQUFhLEtBQUssTUFBTCxDQUFZLElBQS9CO0FBQ0EsUUFBTSxXQUFXLEtBQUssUUFBTCxDQUFjLElBQS9CO0FBQ0Esd0JBQW9CLFVBQXBCLEVBQWdDLFFBQWhDLEVBQTBDLElBQTFDO0FBQ0Q7O0FBRUQsV0FBUyw2QkFBVCxDQUF1QyxJQUF2QyxFQUE2QztBQUMzQyxRQUFNLGdCQUNKLEtBQUssRUFBTCxDQUFRLElBQVIsS0FBaUIsZUFBakIsSUFDQSxLQUFLLElBQUwsSUFBYSxJQURiLElBRUEsS0FBSyxJQUFMLENBQVUsSUFBVixLQUFtQixZQUhyQjtBQUtBLFFBQUksQ0FBQyxhQUFMLEVBQW9COztBQUVwQixRQUFNLGFBQWEsS0FBSyxJQUFMLENBQVUsSUFBN0I7QUFDQSx5QkFBc0IsS0FBSyxFQUFMLENBQVEsVUFBOUIsa0hBQTBDO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBLFVBQTdCLEdBQTZCLFNBQTdCLEdBQTZCOztBQUN4QyxVQUFJLE9BQU8sSUFBWCxFQUFpQixTO0FBQ2pCLDBCQUFvQixVQUFwQixFQUFnQyxJQUFJLElBQXBDLEVBQTBDLEdBQTFDO0FBQ0Q7QUFDRjs7QUFFRCxXQUFTLGlCQUFULEdBQTZCO0FBQzNCLHVCQUFtQixPQUFuQixDQUEyQixVQUFDLE9BQUQsRUFBVSxVQUFWLEVBQXlCO0FBQ2xELFVBQU0sYUFBYSxZQUFZLEdBQVosQ0FBZ0IsVUFBaEIsQ0FBbkI7QUFDQSxVQUFJLGNBQWMsSUFBbEIsRUFBd0I7O0FBRXhCLDRCQUErQixPQUEvQix5SEFBd0M7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEsWUFBNUIsUUFBNEIsU0FBNUIsUUFBNEI7QUFBQSxZQUFsQixJQUFrQixTQUFsQixJQUFrQjs7QUFDdEMsWUFBSSxDQUFDLFdBQVcsU0FBWCxDQUFxQixTQUFyQixDQUErQixHQUEvQixDQUFtQyxRQUFuQyxDQUFMLEVBQW1EOztBQUVuRCxnQkFBUSxNQUFSLENBQWU7QUFDYixvQkFEYTtBQUViLG1CQUNFLGVBQWMsVUFBZCx5Q0FDSyxRQURMLHVEQUVhLFFBRmIsaUJBRWdDLFdBQVcsVUFGM0MsYUFHQTtBQU5XLFNBQWY7QUFTRDtBQUNGLEtBakJEO0FBa0JEOztBQUVELFNBQU87QUFDTCw4QkFBMEIsbUJBRHJCO0FBRUwsd0JBQW9CLGdCQUZmO0FBR0wsMEJBQXNCLDZCQUhqQjtBQUlMLG9CQUFnQjtBQUpYLEdBQVA7QUFNRCxDQTNFRCIsImZpbGUiOiJydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIHdhcm4gYWJvdXQgcG90ZW50aWFsbHkgY29uZnVzZWQgdXNlIG9mIG5hbWUgZXhwb3J0c1xuICogQGF1dGhvciBEZXNtb25kIEJyYW5kXG4gKiBAY29weXJpZ2h0IDIwMTYgRGVzbW9uZCBCcmFuZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFNlZSBMSUNFTlNFIGluIHJvb3QgZGlyZWN0b3J5IGZvciBmdWxsIGxpY2Vuc2UuXG4gKi9cblxuaW1wb3J0ICdlczYtc3ltYm9sL2ltcGxlbWVudCdcbmltcG9ydCBNYXAgZnJvbSAnZXM2LW1hcCdcblxuaW1wb3J0IEV4cG9ydHMgZnJvbSAnLi4vY29yZS9nZXRFeHBvcnRzJ1xuaW1wb3J0IGltcG9ydERlY2xhcmF0aW9uIGZyb20gJy4uL2ltcG9ydERlY2xhcmF0aW9uJ1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUnVsZSBEZWZpbml0aW9uXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGNvbnRleHQpIHtcblxuICBjb25zdCBmaWxlSW1wb3J0cyA9IG5ldyBNYXAoKVxuICBjb25zdCBhbGxQcm9wZXJ0eUxvb2t1cHMgPSBuZXcgTWFwKClcblxuICBmdW5jdGlvbiBoYW5kbGVJbXBvcnREZWZhdWx0KG5vZGUpIHtcbiAgICBjb25zdCBkZWNsYXJhdGlvbiA9IGltcG9ydERlY2xhcmF0aW9uKGNvbnRleHQpXG4gICAgY29uc3QgZXhwb3J0TWFwID0gRXhwb3J0cy5nZXQoZGVjbGFyYXRpb24uc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgIGlmIChleHBvcnRNYXAgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICBpZiAoZXhwb3J0TWFwLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIGV4cG9ydE1hcC5yZXBvcnRFcnJvcnMoY29udGV4dCwgZGVjbGFyYXRpb24pXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBmaWxlSW1wb3J0cy5zZXQobm9kZS5sb2NhbC5uYW1lLCB7XG4gICAgICBleHBvcnRNYXAsXG4gICAgICBzb3VyY2VQYXRoOiBkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsXG4gICAgfSlcbiAgfVxuXG4gIGZ1bmN0aW9uIHN0b3JlUHJvcGVydHlMb29rdXAob2JqZWN0TmFtZSwgcHJvcE5hbWUsIG5vZGUpIHtcbiAgICBjb25zdCBsb29rdXBzID0gYWxsUHJvcGVydHlMb29rdXBzLmdldChvYmplY3ROYW1lKSB8fCBbXVxuICAgIGxvb2t1cHMucHVzaCh7bm9kZSwgcHJvcE5hbWV9KVxuICAgIGFsbFByb3BlcnR5TG9va3Vwcy5zZXQob2JqZWN0TmFtZSwgbG9va3VwcylcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZVByb3BMb29rdXAobm9kZSkge1xuICAgIGNvbnN0IG9iamVjdE5hbWUgPSBub2RlLm9iamVjdC5uYW1lXG4gICAgY29uc3QgcHJvcE5hbWUgPSBub2RlLnByb3BlcnR5Lm5hbWVcbiAgICBzdG9yZVByb3BlcnR5TG9va3VwKG9iamVjdE5hbWUsIHByb3BOYW1lLCBub2RlKVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlRGVzdHJ1Y3R1cmluZ0Fzc2lnbm1lbnQobm9kZSkge1xuICAgIGNvbnN0IGlzRGVzdHJ1Y3R1cmUgPSAoXG4gICAgICBub2RlLmlkLnR5cGUgPT09ICdPYmplY3RQYXR0ZXJuJyAmJlxuICAgICAgbm9kZS5pbml0ICE9IG51bGwgJiZcbiAgICAgIG5vZGUuaW5pdC50eXBlID09PSAnSWRlbnRpZmllcidcbiAgICApXG4gICAgaWYgKCFpc0Rlc3RydWN0dXJlKSByZXR1cm5cblxuICAgIGNvbnN0IG9iamVjdE5hbWUgPSBub2RlLmluaXQubmFtZVxuICAgIGZvciAoY29uc3QgeyBrZXkgfSBvZiBub2RlLmlkLnByb3BlcnRpZXMpIHtcbiAgICAgIGlmIChrZXkgPT0gbnVsbCkgY29udGludWUgIC8vIHRydWUgZm9yIHJlc3QgcHJvcGVydGllc1xuICAgICAgc3RvcmVQcm9wZXJ0eUxvb2t1cChvYmplY3ROYW1lLCBrZXkubmFtZSwga2V5KVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZVByb2dyYW1FeGl0KCkge1xuICAgIGFsbFByb3BlcnR5TG9va3Vwcy5mb3JFYWNoKChsb29rdXBzLCBvYmplY3ROYW1lKSA9PiB7XG4gICAgICBjb25zdCBmaWxlSW1wb3J0ID0gZmlsZUltcG9ydHMuZ2V0KG9iamVjdE5hbWUpXG4gICAgICBpZiAoZmlsZUltcG9ydCA9PSBudWxsKSByZXR1cm5cblxuICAgICAgZm9yIChjb25zdCB7cHJvcE5hbWUsIG5vZGV9IG9mIGxvb2t1cHMpIHtcbiAgICAgICAgaWYgKCFmaWxlSW1wb3J0LmV4cG9ydE1hcC5uYW1lc3BhY2UuaGFzKHByb3BOYW1lKSkgY29udGludWVcblxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgICBtZXNzYWdlOiAoXG4gICAgICAgICAgICBgQ2F1dGlvbjogXFxgJHtvYmplY3ROYW1lfVxcYCBhbHNvIGhhcyBhIG5hbWVkIGV4cG9ydCBgICtcbiAgICAgICAgICAgIGBcXGAke3Byb3BOYW1lfVxcYC4gQ2hlY2sgaWYgeW91IG1lYW50IHRvIHdyaXRlIGAgK1xuICAgICAgICAgICAgYFxcYGltcG9ydCB7JHtwcm9wTmFtZX19IGZyb20gJyR7ZmlsZUltcG9ydC5zb3VyY2VQYXRofSdcXGAgYCArXG4gICAgICAgICAgICAnaW5zdGVhZC4nXG4gICAgICAgICAgKSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAnSW1wb3J0RGVmYXVsdFNwZWNpZmllcic6IGhhbmRsZUltcG9ydERlZmF1bHQsXG4gICAgJ01lbWJlckV4cHJlc3Npb24nOiBoYW5kbGVQcm9wTG9va3VwLFxuICAgICdWYXJpYWJsZURlY2xhcmF0b3InOiBoYW5kbGVEZXN0cnVjdHVyaW5nQXNzaWdubWVudCxcbiAgICAnUHJvZ3JhbTpleGl0JzogaGFuZGxlUHJvZ3JhbUV4aXQsXG4gIH1cbn1cbiJdfQ==

@@ -35,2 +35,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7OztBQUNBOzs7Ozs7QUFFQSxPQUFPLE9BQVAsR0FBaUIsVUFBVSxPQUFWLEVBQW1CO0FBQ2xDLFdBQVMsWUFBVCxDQUFzQixPQUF0QixFQUErQixnQkFBL0IsRUFBaUQ7QUFDL0MsUUFBSSxjQUFjLGlDQUFrQixPQUFsQixDQUFkLENBRDJDOztBQUcvQyxRQUFJLFVBQVUscUJBQVEsR0FBUixDQUFZLFlBQVksTUFBWixDQUFtQixLQUFuQixFQUEwQixPQUF0QyxDQUFWLENBSDJDO0FBSS9DLFFBQUksV0FBVyxJQUFYLEVBQWlCLE9BQXJCOztBQUVBLFFBQUksUUFBUSxNQUFSLENBQWUsTUFBZixFQUF1QjtBQUN6QixjQUFRLFlBQVIsQ0FBcUIsT0FBckIsRUFBOEIsV0FBOUIsRUFEeUI7QUFFekIsYUFGeUI7S0FBM0I7O0FBS0EsUUFBSSxRQUFRLEdBQVIsQ0FBWSxTQUFaLEtBQ0EsUUFBUSxHQUFSLENBQVksaUJBQWlCLE9BQWpCLEVBQTBCLElBQTFCLENBRFosRUFDNkM7O0FBRS9DLGNBQVEsTUFBUixDQUFlLGdCQUFmLEVBQ0UsMkJBQTJCLGlCQUFpQixPQUFqQixFQUEwQixJQUExQixHQUMzQixzQ0FEQSxDQURGLENBRitDO0tBRGpEO0dBWEY7QUFvQkEsU0FBTztBQUNMLDhCQUEwQixhQUFhLElBQWIsQ0FBa0IsSUFBbEIsRUFBd0IsT0FBeEIsQ0FBMUI7QUFDQSw4QkFBMEIsYUFBYSxJQUFiLENBQWtCLElBQWxCLEVBQXdCLFVBQXhCLENBQTFCO0dBRkYsQ0FyQmtDO0NBQW5CIiwiZmlsZSI6InJ1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9jb3JlL2dldEV4cG9ydHMnXG5pbXBvcnQgaW1wb3J0RGVjbGFyYXRpb24gZnJvbSAnLi4vaW1wb3J0RGVjbGFyYXRpb24nXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgZnVuY3Rpb24gY2hlY2tEZWZhdWx0KG5hbWVLZXksIGRlZmF1bHRTcGVjaWZpZXIpIHtcbiAgICB2YXIgZGVjbGFyYXRpb24gPSBpbXBvcnREZWNsYXJhdGlvbihjb250ZXh0KVxuXG4gICAgdmFyIGltcG9ydHMgPSBFeHBvcnRzLmdldChkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgaWYgKGltcG9ydHMgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICBpZiAoaW1wb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICBpbXBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBkZWNsYXJhdGlvbilcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChpbXBvcnRzLmhhcygnZGVmYXVsdCcpICYmXG4gICAgICAgIGltcG9ydHMuaGFzKGRlZmF1bHRTcGVjaWZpZXJbbmFtZUtleV0ubmFtZSkpIHtcblxuICAgICAgY29udGV4dC5yZXBvcnQoZGVmYXVsdFNwZWNpZmllcixcbiAgICAgICAgJ1VzaW5nIGV4cG9ydGVkIG5hbWUgXFwnJyArIGRlZmF1bHRTcGVjaWZpZXJbbmFtZUtleV0ubmFtZSArXG4gICAgICAgICdcXCcgYXMgaWRlbnRpZmllciBmb3IgZGVmYXVsdCBleHBvcnQuJylcblxuICAgIH1cbiAgfVxuICByZXR1cm4ge1xuICAgICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJzogY2hlY2tEZWZhdWx0LmJpbmQobnVsbCwgJ2xvY2FsJyksXG4gICAgJ0V4cG9ydERlZmF1bHRTcGVjaWZpZXInOiBjaGVja0RlZmF1bHQuYmluZChudWxsLCAnZXhwb3J0ZWQnKSxcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7OztBQUNBOzs7Ozs7QUFFQSxPQUFPLE9BQVAsR0FBaUIsVUFBVSxPQUFWLEVBQW1CO0FBQ2xDLFdBQVMsWUFBVCxDQUFzQixPQUF0QixFQUErQixnQkFBL0IsRUFBaUQ7QUFDL0MsUUFBSSxjQUFjLGlDQUFrQixPQUFsQixDQUFsQjs7QUFFQSxRQUFJLFVBQVUscUJBQVEsR0FBUixDQUFZLFlBQVksTUFBWixDQUFtQixLQUEvQixFQUFzQyxPQUF0QyxDQUFkO0FBQ0EsUUFBSSxXQUFXLElBQWYsRUFBcUI7O0FBRXJCLFFBQUksUUFBUSxNQUFSLENBQWUsTUFBbkIsRUFBMkI7QUFDekIsY0FBUSxZQUFSLENBQXFCLE9BQXJCLEVBQThCLFdBQTlCO0FBQ0E7QUFDRDs7QUFFRCxRQUFJLFFBQVEsR0FBUixDQUFZLFNBQVosS0FDQSxRQUFRLEdBQVIsQ0FBWSxpQkFBaUIsT0FBakIsRUFBMEIsSUFBdEMsQ0FESixFQUNpRDs7QUFFL0MsY0FBUSxNQUFSLENBQWUsZ0JBQWYsRUFDRSwyQkFBMkIsaUJBQWlCLE9BQWpCLEVBQTBCLElBQXJELEdBQ0Esc0NBRkY7QUFJRDtBQUNGO0FBQ0QsU0FBTztBQUNMLDhCQUEwQixhQUFhLElBQWIsQ0FBa0IsSUFBbEIsRUFBd0IsT0FBeEIsQ0FEckI7QUFFTCw4QkFBMEIsYUFBYSxJQUFiLENBQWtCLElBQWxCLEVBQXdCLFVBQXhCO0FBRnJCLEdBQVA7QUFJRCxDQXpCRCIsImZpbGUiOiJydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEV4cG9ydHMgZnJvbSAnLi4vY29yZS9nZXRFeHBvcnRzJ1xuaW1wb3J0IGltcG9ydERlY2xhcmF0aW9uIGZyb20gJy4uL2ltcG9ydERlY2xhcmF0aW9uJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIGZ1bmN0aW9uIGNoZWNrRGVmYXVsdChuYW1lS2V5LCBkZWZhdWx0U3BlY2lmaWVyKSB7XG4gICAgdmFyIGRlY2xhcmF0aW9uID0gaW1wb3J0RGVjbGFyYXRpb24oY29udGV4dClcblxuICAgIHZhciBpbXBvcnRzID0gRXhwb3J0cy5nZXQoZGVjbGFyYXRpb24uc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgIGlmIChpbXBvcnRzID09IG51bGwpIHJldHVyblxuXG4gICAgaWYgKGltcG9ydHMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgaW1wb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgZGVjbGFyYXRpb24pXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoaW1wb3J0cy5oYXMoJ2RlZmF1bHQnKSAmJlxuICAgICAgICBpbXBvcnRzLmhhcyhkZWZhdWx0U3BlY2lmaWVyW25hbWVLZXldLm5hbWUpKSB7XG5cbiAgICAgIGNvbnRleHQucmVwb3J0KGRlZmF1bHRTcGVjaWZpZXIsXG4gICAgICAgICdVc2luZyBleHBvcnRlZCBuYW1lIFxcJycgKyBkZWZhdWx0U3BlY2lmaWVyW25hbWVLZXldLm5hbWUgK1xuICAgICAgICAnXFwnIGFzIGlkZW50aWZpZXIgZm9yIGRlZmF1bHQgZXhwb3J0LicpXG5cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAnSW1wb3J0RGVmYXVsdFNwZWNpZmllcic6IGNoZWNrRGVmYXVsdC5iaW5kKG51bGwsICdsb2NhbCcpLFxuICAgICdFeHBvcnREZWZhdWx0U3BlY2lmaWVyJzogY2hlY2tEZWZhdWx0LmJpbmQobnVsbCwgJ2V4cG9ydGVkJyksXG4gIH1cbn1cbiJdfQ==

@@ -19,2 +19,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLW5hbWVzcGFjZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQVVBLE9BQU8sT0FBUCxHQUFpQixVQUFVLE9BQVYsRUFBbUI7QUFDbEMsU0FBTztBQUNMLGdDQUE0QixrQ0FBVSxJQUFWLEVBQWdCO0FBQzFDLGNBQVEsTUFBUixDQUFlLElBQWYsa0NBRDBDO0tBQWhCO0dBRDlCLENBRGtDO0NBQW5CIiwiZmlsZSI6InJ1bGVzL25vLW5hbWVzcGFjZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIGRpc2FsbG93IG5hbWVzcGFjZSBpbXBvcnRcbiAqIEBhdXRob3IgUmFkZWsgQmVua2VsXG4gKi9cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJ1bGUgRGVmaW5pdGlvblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIHJldHVybiB7XG4gICAgJ0ltcG9ydE5hbWVzcGFjZVNwZWNpZmllcic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBjb250ZXh0LnJlcG9ydChub2RlLCBgVW5leHBlY3RlZCBuYW1lc3BhY2UgaW1wb3J0LmApXG4gICAgfSxcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLW5hbWVzcGFjZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQVVBLE9BQU8sT0FBUCxHQUFpQixVQUFVLE9BQVYsRUFBbUI7QUFDbEMsU0FBTztBQUNMLGdDQUE0QixrQ0FBVSxJQUFWLEVBQWdCO0FBQzFDLGNBQVEsTUFBUixDQUFlLElBQWY7QUFDRDtBQUhJLEdBQVA7QUFLRCxDQU5EIiwiZmlsZSI6InJ1bGVzL25vLW5hbWVzcGFjZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIGRpc2FsbG93IG5hbWVzcGFjZSBpbXBvcnRcbiAqIEBhdXRob3IgUmFkZWsgQmVua2VsXG4gKi9cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJ1bGUgRGVmaW5pdGlvblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIHJldHVybiB7XG4gICAgJ0ltcG9ydE5hbWVzcGFjZVNwZWNpZmllcic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBjb250ZXh0LnJlcG9ydChub2RlLCBgVW5leHBlY3RlZCBuYW1lc3BhY2UgaW1wb3J0LmApXG4gICAgfSxcbiAgfVxufVxuIl19

@@ -31,2 +31,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLW5vZGVqcy1tb2R1bGVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7QUFDQTs7Ozs7O0FBRUEsU0FBUyxlQUFULENBQXlCLE9BQXpCLEVBQWtDLElBQWxDLEVBQXdDLElBQXhDLEVBQThDO0FBQzVDLE1BQUksMEJBQVcsSUFBWCxFQUFpQixPQUFqQixNQUE4QixTQUE5QixFQUF5QztBQUMzQyxZQUFRLE1BQVIsQ0FBZSxJQUFmLEVBQXFCLHVDQUFyQixFQUQyQztHQUE3QztDQURGOztBQU1BLE9BQU8sT0FBUCxHQUFpQixVQUFVLE9BQVYsRUFBbUI7QUFDbEMsU0FBTztBQUNMLHVCQUFtQixTQUFTLGFBQVQsQ0FBdUIsSUFBdkIsRUFBNkI7QUFDOUMsc0JBQWdCLE9BQWhCLEVBQXlCLElBQXpCLEVBQStCLEtBQUssTUFBTCxDQUFZLEtBQVosQ0FBL0IsQ0FEOEM7S0FBN0I7QUFHbkIsb0JBQWdCLFNBQVMsY0FBVCxDQUF3QixJQUF4QixFQUE4QjtBQUM1QyxVQUFJLDZCQUFnQixJQUFoQixDQUFKLEVBQTJCO0FBQ3pCLHdCQUFnQixPQUFoQixFQUF5QixJQUF6QixFQUErQixLQUFLLFNBQUwsQ0FBZSxDQUFmLEVBQWtCLEtBQWxCLENBQS9CLENBRHlCO09BQTNCO0tBRGM7R0FKbEIsQ0FEa0M7Q0FBbkIiLCJmaWxlIjoicnVsZXMvbm8tbm9kZWpzLW1vZHVsZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaW1wb3J0VHlwZSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnXG5pbXBvcnQgaXNTdGF0aWNSZXF1aXJlIGZyb20gJy4uL2NvcmUvc3RhdGljUmVxdWlyZSdcblxuZnVuY3Rpb24gcmVwb3J0SWZNaXNzaW5nKGNvbnRleHQsIG5vZGUsIG5hbWUpIHtcbiAgaWYgKGltcG9ydFR5cGUobmFtZSwgY29udGV4dCkgPT09ICdidWlsdGluJykge1xuICAgIGNvbnRleHQucmVwb3J0KG5vZGUsICdEbyBub3QgaW1wb3J0IE5vZGUuanMgYnVpbHRpbiBtb2R1bGVzJylcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIHJldHVybiB7XG4gICAgSW1wb3J0RGVjbGFyYXRpb246IGZ1bmN0aW9uIGhhbmRsZUltcG9ydHMobm9kZSkge1xuICAgICAgcmVwb3J0SWZNaXNzaW5nKGNvbnRleHQsIG5vZGUsIG5vZGUuc291cmNlLnZhbHVlKVxuICAgIH0sXG4gICAgQ2FsbEV4cHJlc3Npb246IGZ1bmN0aW9uIGhhbmRsZVJlcXVpcmVzKG5vZGUpIHtcbiAgICAgIGlmIChpc1N0YXRpY1JlcXVpcmUobm9kZSkpIHtcbiAgICAgICAgcmVwb3J0SWZNaXNzaW5nKGNvbnRleHQsIG5vZGUsIG5vZGUuYXJndW1lbnRzWzBdLnZhbHVlKVxuICAgICAgfVxuICAgIH0sXG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLW5vZGVqcy1tb2R1bGVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7QUFDQTs7Ozs7O0FBRUEsU0FBUyxlQUFULENBQXlCLE9BQXpCLEVBQWtDLElBQWxDLEVBQXdDLElBQXhDLEVBQThDO0FBQzVDLE1BQUksMEJBQVcsSUFBWCxFQUFpQixPQUFqQixNQUE4QixTQUFsQyxFQUE2QztBQUMzQyxZQUFRLE1BQVIsQ0FBZSxJQUFmLEVBQXFCLHVDQUFyQjtBQUNEO0FBQ0Y7O0FBRUQsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjtBQUNsQyxTQUFPO0FBQ0wsdUJBQW1CLFNBQVMsYUFBVCxDQUF1QixJQUF2QixFQUE2QjtBQUM5QyxzQkFBZ0IsT0FBaEIsRUFBeUIsSUFBekIsRUFBK0IsS0FBSyxNQUFMLENBQVksS0FBM0M7QUFDRCxLQUhJO0FBSUwsb0JBQWdCLFNBQVMsY0FBVCxDQUF3QixJQUF4QixFQUE4QjtBQUM1QyxVQUFJLDZCQUFnQixJQUFoQixDQUFKLEVBQTJCO0FBQ3pCLHdCQUFnQixPQUFoQixFQUF5QixJQUF6QixFQUErQixLQUFLLFNBQUwsQ0FBZSxDQUFmLEVBQWtCLEtBQWpEO0FBQ0Q7QUFDRjtBQVJJLEdBQVA7QUFVRCxDQVhEIiwiZmlsZSI6InJ1bGVzL25vLW5vZGVqcy1tb2R1bGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGltcG9ydFR5cGUgZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJ1xuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5cbmZ1bmN0aW9uIHJlcG9ydElmTWlzc2luZyhjb250ZXh0LCBub2RlLCBuYW1lKSB7XG4gIGlmIChpbXBvcnRUeXBlKG5hbWUsIGNvbnRleHQpID09PSAnYnVpbHRpbicpIHtcbiAgICBjb250ZXh0LnJlcG9ydChub2RlLCAnRG8gbm90IGltcG9ydCBOb2RlLmpzIGJ1aWx0aW4gbW9kdWxlcycpXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICByZXR1cm4ge1xuICAgIEltcG9ydERlY2xhcmF0aW9uOiBmdW5jdGlvbiBoYW5kbGVJbXBvcnRzKG5vZGUpIHtcbiAgICAgIHJlcG9ydElmTWlzc2luZyhjb250ZXh0LCBub2RlLCBub2RlLnNvdXJjZS52YWx1ZSlcbiAgICB9LFxuICAgIENhbGxFeHByZXNzaW9uOiBmdW5jdGlvbiBoYW5kbGVSZXF1aXJlcyhub2RlKSB7XG4gICAgICBpZiAoaXNTdGF0aWNSZXF1aXJlKG5vZGUpKSB7XG4gICAgICAgIHJlcG9ydElmTWlzc2luZyhjb250ZXh0LCBub2RlLCBub2RlLmFyZ3VtZW50c1swXS52YWx1ZSlcbiAgICAgIH1cbiAgICB9LFxuICB9XG59XG4iXX0=

@@ -86,2 +86,2 @@ 'use strict';

}];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLXJlc3RyaWN0ZWQtcGF0aHMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7OztBQUNBOzs7O0FBRUE7Ozs7QUFDQTs7Ozs7O0FBRUEsT0FBTyxPQUFQLEdBQWlCLFNBQVMsaUJBQVQsQ0FBMkIsT0FBM0IsRUFBb0M7QUFDbkQsTUFBTSxVQUFVLFFBQVEsT0FBUixDQUFnQixDQUFoQixLQUFzQixFQUF0QixDQURtQztBQUVuRCxNQUFNLGtCQUFrQixRQUFRLEtBQVIsSUFBaUIsRUFBakIsQ0FGMkI7QUFHbkQsTUFBTSxXQUFXLFFBQVEsUUFBUixJQUFvQixRQUFRLEdBQVIsRUFBcEIsQ0FIa0M7QUFJbkQsTUFBTSxrQkFBa0IsUUFBUSxXQUFSLEVBQWxCLENBSjZDO0FBS25ELE1BQU0sZ0JBQWdCLGdCQUFnQixNQUFoQixDQUF1QixVQUFDLElBQUQsRUFBVTtBQUNyRCxRQUFNLGFBQWEsZUFBSyxPQUFMLENBQWEsUUFBYixFQUF1QixLQUFLLE1BQUwsQ0FBcEMsQ0FEK0M7O0FBR3JELFdBQU8sNEJBQWEsZUFBYixFQUE4QixVQUE5QixDQUFQLENBSHFEO0dBQVYsQ0FBdkMsQ0FMNkM7O0FBV25ELFdBQVMsNEJBQVQsQ0FBc0MsVUFBdEMsRUFBa0QsSUFBbEQsRUFBd0Q7QUFDcEQsUUFBTSxxQkFBcUIsdUJBQVEsVUFBUixFQUFvQixPQUFwQixDQUFyQixDQUQ4Qzs7QUFHcEQsUUFBSSxDQUFDLGtCQUFELEVBQXFCO0FBQ3ZCLGFBRHVCO0tBQXpCOztBQUlBLGtCQUFjLE9BQWQsQ0FBc0IsVUFBQyxJQUFELEVBQVU7QUFDOUIsVUFBTSxlQUFlLGVBQUssT0FBTCxDQUFhLFFBQWIsRUFBdUIsS0FBSyxJQUFMLENBQXRDLENBRHdCOztBQUc5QixVQUFJLDRCQUFhLGtCQUFiLEVBQWlDLFlBQWpDLENBQUosRUFBb0Q7QUFDbEQsZ0JBQVEsTUFBUixDQUFlO0FBQ2Isb0JBRGE7QUFFYix5Q0FBNkIsNkNBQTdCO1NBRkYsRUFEa0Q7T0FBcEQ7S0FIb0IsQ0FBdEIsQ0FQb0Q7R0FBeEQ7O0FBbUJBLFNBQU87QUFDTCxrREFBa0IsTUFBTTtBQUN0QixtQ0FBNkIsS0FBSyxNQUFMLENBQVksS0FBWixFQUFtQixLQUFLLE1BQUwsQ0FBaEQsQ0FEc0I7S0FEbkI7QUFJTCw0Q0FBZSxNQUFNO0FBQ25CLFVBQUksNkJBQWdCLElBQWhCLENBQUosRUFBMkI7OEJBQ0MsS0FBSyxTQUFMLENBREQ7WUFDakIsbUNBRGlCOzs7QUFHekIscUNBQTZCLGNBQWMsS0FBZCxFQUFxQixhQUFsRCxFQUh5QjtPQUEzQjtLQUxHO0dBQVAsQ0E5Qm1EO0NBQXBDOztBQTRDakIsT0FBTyxPQUFQLENBQWUsTUFBZixHQUF3QixDQUN0QjtBQUNFLFFBQU0sUUFBTjtBQUNBLGNBQVk7QUFDVixXQUFPO0FBQ0wsWUFBTSxPQUFOO0FBQ0EsZ0JBQVUsQ0FBVjtBQUNBLGFBQU87QUFDTCxjQUFNLFFBQU47QUFDQSxvQkFBWTtBQUNWLGtCQUFRLEVBQUUsTUFBTSxRQUFOLEVBQVY7QUFDQSxnQkFBTSxFQUFFLE1BQU0sUUFBTixFQUFSO1NBRkY7QUFJQSw4QkFBc0IsS0FBdEI7T0FORjtLQUhGO0FBWUEsY0FBVSxFQUFFLE1BQU0sUUFBTixFQUFaO0dBYkY7QUFlQSx3QkFBc0IsS0FBdEI7Q0FsQm9CLENBQXhCIiwiZmlsZSI6InJ1bGVzL25vLXJlc3RyaWN0ZWQtcGF0aHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29udGFpbnNQYXRoIGZyb20gJ2NvbnRhaW5zLXBhdGgnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICcuLi9jb3JlL3Jlc29sdmUnXG5pbXBvcnQgaXNTdGF0aWNSZXF1aXJlIGZyb20gJy4uL2NvcmUvc3RhdGljUmVxdWlyZSdcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBub1Jlc3RyaWN0ZWRQYXRocyhjb250ZXh0KSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge31cbiAgY29uc3QgcmVzdHJpY3RlZFBhdGhzID0gb3B0aW9ucy56b25lcyB8fCBbXVxuICBjb25zdCBiYXNlUGF0aCA9IG9wdGlvbnMuYmFzZVBhdGggfHwgcHJvY2Vzcy5jd2QoKVxuICBjb25zdCBjdXJyZW50RmlsZW5hbWUgPSBjb250ZXh0LmdldEZpbGVuYW1lKClcbiAgY29uc3QgbWF0Y2hpbmdab25lcyA9IHJlc3RyaWN0ZWRQYXRocy5maWx0ZXIoKHpvbmUpID0+IHtcbiAgICBjb25zdCB0YXJnZXRQYXRoID0gcGF0aC5yZXNvbHZlKGJhc2VQYXRoLCB6b25lLnRhcmdldClcblxuICAgIHJldHVybiBjb250YWluc1BhdGgoY3VycmVudEZpbGVuYW1lLCB0YXJnZXRQYXRoKVxuICB9KVxuXG4gIGZ1bmN0aW9uIGNoZWNrRm9yUmVzdHJpY3RlZEltcG9ydFBhdGgoaW1wb3J0UGF0aCwgbm9kZSkge1xuICAgICAgY29uc3QgYWJzb2x1dGVJbXBvcnRQYXRoID0gcmVzb2x2ZShpbXBvcnRQYXRoLCBjb250ZXh0KVxuXG4gICAgICBpZiAoIWFic29sdXRlSW1wb3J0UGF0aCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgbWF0Y2hpbmdab25lcy5mb3JFYWNoKCh6b25lKSA9PiB7XG4gICAgICAgIGNvbnN0IGFic29sdXRlRnJvbSA9IHBhdGgucmVzb2x2ZShiYXNlUGF0aCwgem9uZS5mcm9tKVxuXG4gICAgICAgIGlmIChjb250YWluc1BhdGgoYWJzb2x1dGVJbXBvcnRQYXRoLCBhYnNvbHV0ZUZyb20pKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGBVbmV4cGVjdGVkIHBhdGggXCIke2ltcG9ydFBhdGh9XCIgaW1wb3J0ZWQgaW4gcmVzdHJpY3RlZCB6b25lLmAsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgSW1wb3J0RGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgY2hlY2tGb3JSZXN0cmljdGVkSW1wb3J0UGF0aChub2RlLnNvdXJjZS52YWx1ZSwgbm9kZS5zb3VyY2UpXG4gICAgfSxcbiAgICBDYWxsRXhwcmVzc2lvbihub2RlKSB7XG4gICAgICBpZiAoaXNTdGF0aWNSZXF1aXJlKG5vZGUpKSB7XG4gICAgICAgIGNvbnN0IFsgZmlyc3RBcmd1bWVudCBdID0gbm9kZS5hcmd1bWVudHNcblxuICAgICAgICBjaGVja0ZvclJlc3RyaWN0ZWRJbXBvcnRQYXRoKGZpcnN0QXJndW1lbnQudmFsdWUsIGZpcnN0QXJndW1lbnQpXG4gICAgICB9XG4gICAgfSxcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cy5zY2hlbWEgPSBbXG4gIHtcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICB6b25lczoge1xuICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICBtaW5JdGVtczogMSxcbiAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB0YXJnZXQ6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICAgIGZyb206IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBiYXNlUGF0aDogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgIH0sXG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICB9LFxuXVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLXJlc3RyaWN0ZWQtcGF0aHMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7OztBQUNBOzs7O0FBRUE7Ozs7QUFDQTs7Ozs7O0FBRUEsT0FBTyxPQUFQLEdBQWlCLFNBQVMsaUJBQVQsQ0FBMkIsT0FBM0IsRUFBb0M7QUFDbkQsTUFBTSxVQUFVLFFBQVEsT0FBUixDQUFnQixDQUFoQixLQUFzQixFQUF0QztBQUNBLE1BQU0sa0JBQWtCLFFBQVEsS0FBUixJQUFpQixFQUF6QztBQUNBLE1BQU0sV0FBVyxRQUFRLFFBQVIsSUFBb0IsUUFBUSxHQUFSLEVBQXJDO0FBQ0EsTUFBTSxrQkFBa0IsUUFBUSxXQUFSLEVBQXhCO0FBQ0EsTUFBTSxnQkFBZ0IsZ0JBQWdCLE1BQWhCLENBQXVCLFVBQUMsSUFBRCxFQUFVO0FBQ3JELFFBQU0sYUFBYSxlQUFLLE9BQUwsQ0FBYSxRQUFiLEVBQXVCLEtBQUssTUFBNUIsQ0FBbkI7O0FBRUEsV0FBTyw0QkFBYSxlQUFiLEVBQThCLFVBQTlCLENBQVA7QUFDRCxHQUpxQixDQUF0Qjs7QUFNQSxXQUFTLDRCQUFULENBQXNDLFVBQXRDLEVBQWtELElBQWxELEVBQXdEO0FBQ3BELFFBQU0scUJBQXFCLHVCQUFRLFVBQVIsRUFBb0IsT0FBcEIsQ0FBM0I7O0FBRUEsUUFBSSxDQUFDLGtCQUFMLEVBQXlCO0FBQ3ZCO0FBQ0Q7O0FBRUQsa0JBQWMsT0FBZCxDQUFzQixVQUFDLElBQUQsRUFBVTtBQUM5QixVQUFNLGVBQWUsZUFBSyxPQUFMLENBQWEsUUFBYixFQUF1QixLQUFLLElBQTVCLENBQXJCOztBQUVBLFVBQUksNEJBQWEsa0JBQWIsRUFBaUMsWUFBakMsQ0FBSixFQUFvRDtBQUNsRCxnQkFBUSxNQUFSLENBQWU7QUFDYixvQkFEYTtBQUViLHlDQUE2QixVQUE3QjtBQUZhLFNBQWY7QUFJRDtBQUNGLEtBVEQ7QUFVSDs7QUFFRCxTQUFPO0FBQ0wscUJBREssNkJBQ2EsSUFEYixFQUNtQjtBQUN0QixtQ0FBNkIsS0FBSyxNQUFMLENBQVksS0FBekMsRUFBZ0QsS0FBSyxNQUFyRDtBQUNELEtBSEk7QUFJTCxrQkFKSywwQkFJVSxJQUpWLEVBSWdCO0FBQ25CLFVBQUksNkJBQWdCLElBQWhCLENBQUosRUFBMkI7QUFBQSw4QkFDQyxLQUFLLFNBRE47QUFBQSxZQUNqQixhQURpQjs7O0FBR3pCLHFDQUE2QixjQUFjLEtBQTNDLEVBQWtELGFBQWxEO0FBQ0Q7QUFDRjtBQVZJLEdBQVA7QUFZRCxDQTFDRDs7QUE0Q0EsT0FBTyxPQUFQLENBQWUsTUFBZixHQUF3QixDQUN0QjtBQUNFLFFBQU0sUUFEUjtBQUVFLGNBQVk7QUFDVixXQUFPO0FBQ0wsWUFBTSxPQUREO0FBRUwsZ0JBQVUsQ0FGTDtBQUdMLGFBQU87QUFDTCxjQUFNLFFBREQ7QUFFTCxvQkFBWTtBQUNWLGtCQUFRLEVBQUUsTUFBTSxRQUFSLEVBREU7QUFFVixnQkFBTSxFQUFFLE1BQU0sUUFBUjtBQUZJLFNBRlA7QUFNTCw4QkFBc0I7QUFOakI7QUFIRixLQURHO0FBYVYsY0FBVSxFQUFFLE1BQU0sUUFBUjtBQWJBLEdBRmQ7QUFpQkUsd0JBQXNCO0FBakJ4QixDQURzQixDQUF4QiIsImZpbGUiOiJydWxlcy9uby1yZXN0cmljdGVkLXBhdGhzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbnRhaW5zUGF0aCBmcm9tICdjb250YWlucy1wYXRoJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcblxuaW1wb3J0IHJlc29sdmUgZnJvbSAnLi4vY29yZS9yZXNvbHZlJ1xuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gbm9SZXN0cmljdGVkUGF0aHMoY29udGV4dCkge1xuICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9XG4gIGNvbnN0IHJlc3RyaWN0ZWRQYXRocyA9IG9wdGlvbnMuem9uZXMgfHwgW11cbiAgY29uc3QgYmFzZVBhdGggPSBvcHRpb25zLmJhc2VQYXRoIHx8IHByb2Nlc3MuY3dkKClcbiAgY29uc3QgY3VycmVudEZpbGVuYW1lID0gY29udGV4dC5nZXRGaWxlbmFtZSgpXG4gIGNvbnN0IG1hdGNoaW5nWm9uZXMgPSByZXN0cmljdGVkUGF0aHMuZmlsdGVyKCh6b25lKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0UGF0aCA9IHBhdGgucmVzb2x2ZShiYXNlUGF0aCwgem9uZS50YXJnZXQpXG5cbiAgICByZXR1cm4gY29udGFpbnNQYXRoKGN1cnJlbnRGaWxlbmFtZSwgdGFyZ2V0UGF0aClcbiAgfSlcblxuICBmdW5jdGlvbiBjaGVja0ZvclJlc3RyaWN0ZWRJbXBvcnRQYXRoKGltcG9ydFBhdGgsIG5vZGUpIHtcbiAgICAgIGNvbnN0IGFic29sdXRlSW1wb3J0UGF0aCA9IHJlc29sdmUoaW1wb3J0UGF0aCwgY29udGV4dClcblxuICAgICAgaWYgKCFhYnNvbHV0ZUltcG9ydFBhdGgpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIG1hdGNoaW5nWm9uZXMuZm9yRWFjaCgoem9uZSkgPT4ge1xuICAgICAgICBjb25zdCBhYnNvbHV0ZUZyb20gPSBwYXRoLnJlc29sdmUoYmFzZVBhdGgsIHpvbmUuZnJvbSlcblxuICAgICAgICBpZiAoY29udGFpbnNQYXRoKGFic29sdXRlSW1wb3J0UGF0aCwgYWJzb2x1dGVGcm9tKSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCBwYXRoIFwiJHtpbXBvcnRQYXRofVwiIGltcG9ydGVkIGluIHJlc3RyaWN0ZWQgem9uZS5gLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gIH1cblxuICByZXR1cm4ge1xuICAgIEltcG9ydERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgIGNoZWNrRm9yUmVzdHJpY3RlZEltcG9ydFBhdGgobm9kZS5zb3VyY2UudmFsdWUsIG5vZGUuc291cmNlKVxuICAgIH0sXG4gICAgQ2FsbEV4cHJlc3Npb24obm9kZSkge1xuICAgICAgaWYgKGlzU3RhdGljUmVxdWlyZShub2RlKSkge1xuICAgICAgICBjb25zdCBbIGZpcnN0QXJndW1lbnQgXSA9IG5vZGUuYXJndW1lbnRzXG5cbiAgICAgICAgY2hlY2tGb3JSZXN0cmljdGVkSW1wb3J0UGF0aChmaXJzdEFyZ3VtZW50LnZhbHVlLCBmaXJzdEFyZ3VtZW50KVxuICAgICAgfVxuICAgIH0sXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMuc2NoZW1hID0gW1xuICB7XG4gICAgdHlwZTogJ29iamVjdCcsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgem9uZXM6IHtcbiAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgbWluSXRlbXM6IDEsXG4gICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdGFyZ2V0OiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgICAgICBmcm9tOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgYmFzZVBhdGg6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICB9LFxuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgfSxcbl1cbiJdfQ==

@@ -126,2 +126,2 @@ 'use strict';

}];
//# sourceMappingURL=data:application/json;base64,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QStEbEMsTUFBSSxRQUFRLE9BQVIsQ0FBZ0IsQ0FBaEIsS0FBc0IsSUFBdEIsRUFBNEI7OzhCQUNKLFFBQVEsT0FBUixDQUFnQixDQUFoQjtVQUFsQjtVQUFVOzs7QUFFbEIsVUFBSSxZQUFZLEdBQVosRUFBaUI7QUFDbkIsaUJBQVMsZ0JBQVQsSUFBNkIsVUFBVSxJQUFWLEVBQWdCO0FBQzNDLGNBQUksUUFBSixFQUFjLFlBQVksSUFBWixFQUFkO0FBQ0EsY0FBSSxHQUFKLEVBQVMsU0FBUyxJQUFULEVBQVQ7U0FGMkIsQ0FEVjtPQUFyQjtTQUg4QjtHQUFoQzs7QUFXQSxTQUFPLFFBQVAsQ0ExRWtDO0NBQW5COztBQTZFakIsT0FBTyxPQUFQLENBQWUsTUFBZixHQUF3QixDQUN0QjtBQUNFLFVBQVEsUUFBUjtBQUNBLGdCQUFjO0FBQ1osZ0JBQVksRUFBRSxRQUFRLFNBQVIsRUFBZDtBQUNBLFdBQU8sRUFBRSxRQUFRLFNBQVIsRUFBVDtBQUNBLGNBQVU7QUFDUixjQUFRLE9BQVI7QUFDQSxrQkFBWSxDQUFaO0FBQ0EsZUFBUyxFQUFFLFFBQVEsUUFBUixFQUFYO0FBQ0EscUJBQWUsSUFBZjtLQUpGO0dBSEY7QUFVQSwwQkFBd0IsS0FBeEI7Q0Fib0IsQ0FBeEIiLCJmaWxlIjoicnVsZXMvbm8tdW5yZXNvbHZlZC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVPdmVydmlldyBFbnN1cmVzIHRoYXQgYW4gaW1wb3J0ZWQgcGF0aCBleGlzdHMsIGdpdmVuIHJlc29sdXRpb24gcnVsZXMuXG4gKiBAYXV0aG9yIEJlbiBNb3NoZXJcbiAqL1xuXG5pbXBvcnQgJ2VzNi1zeW1ib2wvaW1wbGVtZW50J1xuXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICcuLi9jb3JlL3Jlc29sdmUnXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcblxuICBsZXQgaWdub3JlUmVnRXhwcyA9IFtdXG4gIGlmIChjb250ZXh0Lm9wdGlvbnNbMF0gIT0gbnVsbCAmJiBjb250ZXh0Lm9wdGlvbnNbMF0uaWdub3JlICE9IG51bGwpIHtcbiAgICBpZ25vcmVSZWdFeHBzID0gY29udGV4dC5vcHRpb25zWzBdLmlnbm9yZS5tYXAocCA9PiBuZXcgUmVnRXhwKHApKVxuICB9XG5cbiAgZnVuY3Rpb24gY2hlY2tTb3VyY2VWYWx1ZShzb3VyY2UpIHtcbiAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVyblxuXG4gICAgaWYgKGlnbm9yZVJlZ0V4cHMuc29tZShyZSA9PiByZS50ZXN0KHNvdXJjZS52YWx1ZSkpKSByZXR1cm5cblxuICAgIGlmIChyZXNvbHZlKHNvdXJjZS52YWx1ZSwgY29udGV4dCkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29udGV4dC5yZXBvcnQoc291cmNlLFxuICAgICAgICAnVW5hYmxlIHRvIHJlc29sdmUgcGF0aCB0byBtb2R1bGUgXFwnJyArIHNvdXJjZS52YWx1ZSArICdcXCcuJylcbiAgICB9XG4gIH1cblxuICAvLyBmb3IgaW1wb3J0LXkgZGVjbGFyYXRpb25zXG4gIGZ1bmN0aW9uIGNoZWNrU291cmNlKG5vZGUpIHtcbiAgICBjaGVja1NvdXJjZVZhbHVlKG5vZGUuc291cmNlKVxuICB9XG5cbiAgLy8gZm9yIENvbW1vbkpTIGByZXF1aXJlYCBjYWxsc1xuICAvLyBhZGFwdGVkIGZyb20gQG1jdGVwOiBodHRwOi8vZ2l0LmlvL3Y0ckF1XG4gIGZ1bmN0aW9uIGNoZWNrQ29tbW9uKGNhbGwpIHtcbiAgICBpZiAoY2FsbC5jYWxsZWUudHlwZSAhPT0gJ0lkZW50aWZpZXInKSByZXR1cm5cbiAgICBpZiAoY2FsbC5jYWxsZWUubmFtZSAhPT0gJ3JlcXVpcmUnKSByZXR1cm5cbiAgICBpZiAoY2FsbC5hcmd1bWVudHMubGVuZ3RoICE9PSAxKSByZXR1cm5cblxuICAgIGNvbnN0IG1vZHVsZVBhdGggPSBjYWxsLmFyZ3VtZW50c1swXVxuICAgIGlmIChtb2R1bGVQYXRoLnR5cGUgIT09ICdMaXRlcmFsJykgcmV0dXJuXG4gICAgaWYgKHR5cGVvZiBtb2R1bGVQYXRoLnZhbHVlICE9PSAnc3RyaW5nJykgcmV0dXJuXG5cbiAgICBjaGVja1NvdXJjZVZhbHVlKG1vZHVsZVBhdGgpXG4gIH1cblxuICBmdW5jdGlvbiBjaGVja0FNRChjYWxsKSB7XG4gICAgaWYgKGNhbGwuY2FsbGVlLnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuXG4gICAgaWYgKGNhbGwuY2FsbGVlLm5hbWUgIT09ICdyZXF1aXJlJyAmJlxuICAgICAgICBjYWxsLmNhbGxlZS5uYW1lICE9PSAnZGVmaW5lJykgcmV0dXJuXG4gICAgaWYgKGNhbGwuYXJndW1lbnRzLmxlbmd0aCAhPT0gMikgcmV0dXJuXG5cbiAgICBjb25zdCBtb2R1bGVzID0gY2FsbC5hcmd1bWVudHNbMF1cbiAgICBpZiAobW9kdWxlcy50eXBlICE9PSAnQXJyYXlFeHByZXNzaW9uJykgcmV0dXJuXG5cbiAgICBmb3IgKGxldCBlbGVtZW50IG9mIG1vZHVsZXMuZWxlbWVudHMpIHtcbiAgICAgIGlmIChlbGVtZW50LnR5cGUgIT09ICdMaXRlcmFsJykgY29udGludWVcbiAgICAgIGlmICh0eXBlb2YgZWxlbWVudC52YWx1ZSAhPT0gJ3N0cmluZycpIGNvbnRpbnVlXG5cbiAgICAgIGlmIChlbGVtZW50LnZhbHVlID09PSAncmVxdWlyZScgfHxcbiAgICAgICAgICBlbGVtZW50LnZhbHVlID09PSAnZXhwb3J0cycpIGNvbnRpbnVlIC8vIG1hZ2ljIG1vZHVsZXM6IGh0dHA6Ly9naXQuaW8vdkJ5YW5cblxuICAgICAgY2hlY2tTb3VyY2VWYWx1ZShlbGVtZW50KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHZpc2l0b3JzID0ge1xuICAgICdJbXBvcnREZWNsYXJhdGlvbic6IGNoZWNrU291cmNlLFxuICAgICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJzogY2hlY2tTb3VyY2UsXG4gICAgJ0V4cG9ydEFsbERlY2xhcmF0aW9uJzogY2hlY2tTb3VyY2UsXG4gIH1cblxuICBpZiAoY29udGV4dC5vcHRpb25zWzBdICE9IG51bGwpIHtcbiAgICBjb25zdCB7IGNvbW1vbmpzLCBhbWQgfSA9IGNvbnRleHQub3B0aW9uc1swXVxuXG4gICAgaWYgKGNvbW1vbmpzIHx8IGFtZCkge1xuICAgICAgdmlzaXRvcnNbJ0NhbGxFeHByZXNzaW9uJ10gPSBmdW5jdGlvbiAoY2FsbCkge1xuICAgICAgICBpZiAoY29tbW9uanMpIGNoZWNrQ29tbW9uKGNhbGwpXG4gICAgICAgIGlmIChhbWQpIGNoZWNrQU1EKGNhbGwpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZpc2l0b3JzXG59XG5cbm1vZHVsZS5leHBvcnRzLnNjaGVtYSA9IFtcbiAge1xuICAgICd0eXBlJzogJ29iamVjdCcsXG4gICAgJ3Byb3BlcnRpZXMnOiB7XG4gICAgICAnY29tbW9uanMnOiB7ICd0eXBlJzogJ2Jvb2xlYW4nIH0sXG4gICAgICAnYW1kJzogeyAndHlwZSc6ICdib29sZWFuJyB9LFxuICAgICAgJ2lnbm9yZSc6IHtcbiAgICAgICAgJ3R5cGUnOiAnYXJyYXknLFxuICAgICAgICAnbWluSXRlbXMnOiAxLFxuICAgICAgICAnaXRlbXMnOiB7ICd0eXBlJzogJ3N0cmluZycgfSxcbiAgICAgICAgJ3VuaXF1ZUl0ZW1zJzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICAnYWRkaXRpb25hbFByb3BlcnRpZXMnOiBmYWxzZSxcbiAgfSxcbl1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,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QixDQURJO0FBQUEsVUFDdEIsUUFEc0IscUJBQ3RCLFFBRHNCO0FBQUEsVUFDWixHQURZLHFCQUNaLEdBRFk7OztBQUc5QixVQUFJLFlBQVksR0FBaEIsRUFBcUI7QUFDbkIsaUJBQVMsZ0JBQVQsSUFBNkIsVUFBVSxJQUFWLEVBQWdCO0FBQzNDLGNBQUksUUFBSixFQUFjLFlBQVksSUFBWjtBQUNkLGNBQUksR0FBSixFQUFTLFNBQVMsSUFBVDtBQUNWLFNBSEQ7QUFJRDtBQVI2QjtBQVMvQjs7QUFFRCxTQUFPLFFBQVA7QUFDRCxDQTNFRDs7QUE2RUEsT0FBTyxPQUFQLENBQWUsTUFBZixHQUF3QixDQUN0QjtBQUNFLFVBQVEsUUFEVjtBQUVFLGdCQUFjO0FBQ1osZ0JBQVksRUFBRSxRQUFRLFNBQVYsRUFEQTtBQUVaLFdBQU8sRUFBRSxRQUFRLFNBQVYsRUFGSztBQUdaLGNBQVU7QUFDUixjQUFRLE9BREE7QUFFUixrQkFBWSxDQUZKO0FBR1IsZUFBUyxFQUFFLFFBQVEsUUFBVixFQUhEO0FBSVIscUJBQWU7QUFKUDtBQUhFLEdBRmhCO0FBWUUsMEJBQXdCO0FBWjFCLENBRHNCLENBQXhCIiwiZmlsZSI6InJ1bGVzL25vLXVucmVzb2x2ZWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlT3ZlcnZpZXcgRW5zdXJlcyB0aGF0IGFuIGltcG9ydGVkIHBhdGggZXhpc3RzLCBnaXZlbiByZXNvbHV0aW9uIHJ1bGVzLlxuICogQGF1dGhvciBCZW4gTW9zaGVyXG4gKi9cblxuaW1wb3J0ICdlczYtc3ltYm9sL2ltcGxlbWVudCdcblxuaW1wb3J0IHJlc29sdmUgZnJvbSAnLi4vY29yZS9yZXNvbHZlJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG5cbiAgbGV0IGlnbm9yZVJlZ0V4cHMgPSBbXVxuICBpZiAoY29udGV4dC5vcHRpb25zWzBdICE9IG51bGwgJiYgY29udGV4dC5vcHRpb25zWzBdLmlnbm9yZSAhPSBudWxsKSB7XG4gICAgaWdub3JlUmVnRXhwcyA9IGNvbnRleHQub3B0aW9uc1swXS5pZ25vcmUubWFwKHAgPT4gbmV3IFJlZ0V4cChwKSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGNoZWNrU291cmNlVmFsdWUoc291cmNlKSB7XG4gICAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm5cblxuICAgIGlmIChpZ25vcmVSZWdFeHBzLnNvbWUocmUgPT4gcmUudGVzdChzb3VyY2UudmFsdWUpKSkgcmV0dXJuXG5cbiAgICBpZiAocmVzb2x2ZShzb3VyY2UudmFsdWUsIGNvbnRleHQpID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnRleHQucmVwb3J0KHNvdXJjZSxcbiAgICAgICAgJ1VuYWJsZSB0byByZXNvbHZlIHBhdGggdG8gbW9kdWxlIFxcJycgKyBzb3VyY2UudmFsdWUgKyAnXFwnLicpXG4gICAgfVxuICB9XG5cbiAgLy8gZm9yIGltcG9ydC15IGRlY2xhcmF0aW9uc1xuICBmdW5jdGlvbiBjaGVja1NvdXJjZShub2RlKSB7XG4gICAgY2hlY2tTb3VyY2VWYWx1ZShub2RlLnNvdXJjZSlcbiAgfVxuXG4gIC8vIGZvciBDb21tb25KUyBgcmVxdWlyZWAgY2FsbHNcbiAgLy8gYWRhcHRlZCBmcm9tIEBtY3RlcDogaHR0cDovL2dpdC5pby92NHJBdVxuICBmdW5jdGlvbiBjaGVja0NvbW1vbihjYWxsKSB7XG4gICAgaWYgKGNhbGwuY2FsbGVlLnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuXG4gICAgaWYgKGNhbGwuY2FsbGVlLm5hbWUgIT09ICdyZXF1aXJlJykgcmV0dXJuXG4gICAgaWYgKGNhbGwuYXJndW1lbnRzLmxlbmd0aCAhPT0gMSkgcmV0dXJuXG5cbiAgICBjb25zdCBtb2R1bGVQYXRoID0gY2FsbC5hcmd1bWVudHNbMF1cbiAgICBpZiAobW9kdWxlUGF0aC50eXBlICE9PSAnTGl0ZXJhbCcpIHJldHVyblxuICAgIGlmICh0eXBlb2YgbW9kdWxlUGF0aC52YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVyblxuXG4gICAgY2hlY2tTb3VyY2VWYWx1ZShtb2R1bGVQYXRoKVxuICB9XG5cbiAgZnVuY3Rpb24gY2hlY2tBTUQoY2FsbCkge1xuICAgIGlmIChjYWxsLmNhbGxlZS50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVyblxuICAgIGlmIChjYWxsLmNhbGxlZS5uYW1lICE9PSAncmVxdWlyZScgJiZcbiAgICAgICAgY2FsbC5jYWxsZWUubmFtZSAhPT0gJ2RlZmluZScpIHJldHVyblxuICAgIGlmIChjYWxsLmFyZ3VtZW50cy5sZW5ndGggIT09IDIpIHJldHVyblxuXG4gICAgY29uc3QgbW9kdWxlcyA9IGNhbGwuYXJndW1lbnRzWzBdXG4gICAgaWYgKG1vZHVsZXMudHlwZSAhPT0gJ0FycmF5RXhwcmVzc2lvbicpIHJldHVyblxuXG4gICAgZm9yIChsZXQgZWxlbWVudCBvZiBtb2R1bGVzLmVsZW1lbnRzKSB7XG4gICAgICBpZiAoZWxlbWVudC50eXBlICE9PSAnTGl0ZXJhbCcpIGNvbnRpbnVlXG4gICAgICBpZiAodHlwZW9mIGVsZW1lbnQudmFsdWUgIT09ICdzdHJpbmcnKSBjb250aW51ZVxuXG4gICAgICBpZiAoZWxlbWVudC52YWx1ZSA9PT0gJ3JlcXVpcmUnIHx8XG4gICAgICAgICAgZWxlbWVudC52YWx1ZSA9PT0gJ2V4cG9ydHMnKSBjb250aW51ZSAvLyBtYWdpYyBtb2R1bGVzOiBodHRwOi8vZ2l0LmlvL3ZCeWFuXG5cbiAgICAgIGNoZWNrU291cmNlVmFsdWUoZWxlbWVudClcbiAgICB9XG4gIH1cblxuICBjb25zdCB2aXNpdG9ycyA9IHtcbiAgICAnSW1wb3J0RGVjbGFyYXRpb24nOiBjaGVja1NvdXJjZSxcbiAgICAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbic6IGNoZWNrU291cmNlLFxuICAgICdFeHBvcnRBbGxEZWNsYXJhdGlvbic6IGNoZWNrU291cmNlLFxuICB9XG5cbiAgaWYgKGNvbnRleHQub3B0aW9uc1swXSAhPSBudWxsKSB7XG4gICAgY29uc3QgeyBjb21tb25qcywgYW1kIH0gPSBjb250ZXh0Lm9wdGlvbnNbMF1cblxuICAgIGlmIChjb21tb25qcyB8fCBhbWQpIHtcbiAgICAgIHZpc2l0b3JzWydDYWxsRXhwcmVzc2lvbiddID0gZnVuY3Rpb24gKGNhbGwpIHtcbiAgICAgICAgaWYgKGNvbW1vbmpzKSBjaGVja0NvbW1vbihjYWxsKVxuICAgICAgICBpZiAoYW1kKSBjaGVja0FNRChjYWxsKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2aXNpdG9yc1xufVxuXG5tb2R1bGUuZXhwb3J0cy5zY2hlbWEgPSBbXG4gIHtcbiAgICAndHlwZSc6ICdvYmplY3QnLFxuICAgICdwcm9wZXJ0aWVzJzoge1xuICAgICAgJ2NvbW1vbmpzJzogeyAndHlwZSc6ICdib29sZWFuJyB9LFxuICAgICAgJ2FtZCc6IHsgJ3R5cGUnOiAnYm9vbGVhbicgfSxcbiAgICAgICdpZ25vcmUnOiB7XG4gICAgICAgICd0eXBlJzogJ2FycmF5JyxcbiAgICAgICAgJ21pbkl0ZW1zJzogMSxcbiAgICAgICAgJ2l0ZW1zJzogeyAndHlwZSc6ICdzdHJpbmcnIH0sXG4gICAgICAgICd1bmlxdWVJdGVtcyc6IHRydWUsXG4gICAgICB9LFxuICAgIH0sXG4gICAgJ2FkZGl0aW9uYWxQcm9wZXJ0aWVzJzogZmFsc2UsXG4gIH0sXG5dXG4iXX0=

@@ -218,2 +218,2 @@ 'use strict';

}];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL29yZGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUEsSUFBTSxnQkFBZ0IsQ0FBQyxTQUFELEVBQVksVUFBWixFQUF3QixRQUF4QixFQUFrQyxTQUFsQyxFQUE2QyxPQUE3QyxDQUFoQjs7OztBQUlOLFNBQVMsT0FBVCxDQUFpQixLQUFqQixFQUF3QjtBQUN0QixTQUFPLE1BQU0sR0FBTixDQUFVLFVBQVUsQ0FBVixFQUFhO0FBQzVCLFdBQU87QUFDTCxZQUFNLEVBQUUsSUFBRjtBQUNOLFlBQU0sQ0FBQyxFQUFFLElBQUY7QUFDUCxZQUFNLEVBQUUsSUFBRjtLQUhSLENBRDRCO0dBQWIsQ0FBVixDQU1KLE9BTkksRUFBUCxDQURzQjtDQUF4Qjs7QUFVQSxTQUFTLGNBQVQsQ0FBd0IsUUFBeEIsRUFBa0M7QUFDaEMsTUFBSSxTQUFTLE1BQVQsS0FBb0IsQ0FBcEIsRUFBdUI7QUFDekIsV0FBTyxFQUFQLENBRHlCO0dBQTNCO0FBR0EsTUFBSSxrQkFBa0IsU0FBUyxDQUFULENBQWxCLENBSjRCO0FBS2hDLFNBQU8sU0FBUyxNQUFULENBQWdCLFVBQVUsY0FBVixFQUEwQjtBQUMvQyxRQUFNLE1BQU0sZUFBZSxJQUFmLEdBQXNCLGdCQUFnQixJQUFoQixDQURhO0FBRS9DLFFBQUksZ0JBQWdCLElBQWhCLEdBQXVCLGVBQWUsSUFBZixFQUFxQjtBQUM5Qyx3QkFBa0IsY0FBbEIsQ0FEOEM7S0FBaEQ7QUFHQSxXQUFPLEdBQVAsQ0FMK0M7R0FBMUIsQ0FBdkIsQ0FMZ0M7Q0FBbEM7O0FBY0EsU0FBUyxnQkFBVCxDQUEwQixPQUExQixFQUFtQyxRQUFuQyxFQUE2QyxVQUE3QyxFQUF5RCxLQUF6RCxFQUFnRTtBQUM5RCxhQUFXLE9BQVgsQ0FBbUIsVUFBVSxHQUFWLEVBQWU7QUFDaEMsUUFBTSxRQUFRLHNCQUFLLFFBQUwsRUFBZSxTQUFTLGFBQVQsQ0FBdUIsWUFBdkIsRUFBcUM7QUFDaEUsYUFBTyxhQUFhLElBQWIsR0FBb0IsSUFBSSxJQUFKLENBRHFDO0tBQXJDLENBQXZCLENBRDBCO0FBSWhDLFlBQVEsTUFBUixDQUFlLElBQUksSUFBSixFQUFVLE1BQU0sSUFBSSxJQUFKLEdBQVcsd0JBQWpCLEdBQTRDLEtBQTVDLEdBQ3ZCLGNBRHVCLEdBQ04sTUFBTSxJQUFOLEdBQWEsR0FEUCxDQUF6QixDQUpnQztHQUFmLENBQW5CLENBRDhEO0NBQWhFOztBQVVBLFNBQVMsb0JBQVQsQ0FBOEIsT0FBOUIsRUFBdUMsUUFBdkMsRUFBaUQ7QUFDL0MsTUFBTSxhQUFhLGVBQWUsUUFBZixDQUFiLENBRHlDO0FBRS9DLE1BQUksQ0FBQyxXQUFXLE1BQVgsRUFBbUI7QUFDdEIsV0FEc0I7R0FBeEI7O0FBRitDLE1BTXpDLG1CQUFtQixRQUFRLFFBQVIsQ0FBbkIsQ0FOeUM7QUFPL0MsTUFBTSxnQkFBZ0IsZUFBZSxnQkFBZixDQUFoQixDQVB5QztBQVEvQyxNQUFJLGNBQWMsTUFBZCxHQUF1QixXQUFXLE1BQVgsRUFBbUI7QUFDNUMscUJBQWlCLE9BQWpCLEVBQTBCLGdCQUExQixFQUE0QyxhQUE1QyxFQUEyRCxPQUEzRCxFQUQ0QztBQUU1QyxXQUY0QztHQUE5QztBQUlBLG1CQUFpQixPQUFqQixFQUEwQixRQUExQixFQUFvQyxVQUFwQyxFQUFnRCxRQUFoRCxFQVorQztDQUFqRDs7OztBQWlCQSxTQUFTLFdBQVQsQ0FBcUIsT0FBckIsRUFBOEIsS0FBOUIsRUFBcUMsSUFBckMsRUFBMkMsSUFBM0MsRUFBaUQ7QUFDL0MsU0FBTyxNQUFNLDBCQUFXLElBQVgsRUFBaUIsT0FBakIsQ0FBTixLQUNKLFNBQVMsUUFBVCxHQUFvQixDQUFwQixHQUF3QixHQUF4QixDQURJLENBRHdDO0NBQWpEOztBQUtBLFNBQVMsWUFBVCxDQUFzQixPQUF0QixFQUErQixJQUEvQixFQUFxQyxJQUFyQyxFQUEyQyxJQUEzQyxFQUFpRCxLQUFqRCxFQUF3RCxRQUF4RCxFQUFrRTtBQUNoRSxNQUFNLE9BQU8sWUFBWSxPQUFaLEVBQXFCLEtBQXJCLEVBQTRCLElBQTVCLEVBQWtDLElBQWxDLENBQVAsQ0FEMEQ7QUFFaEUsTUFBSSxTQUFTLENBQUMsQ0FBRCxFQUFJO0FBQ2YsYUFBUyxJQUFULENBQWMsRUFBQyxVQUFELEVBQU8sVUFBUCxFQUFhLFVBQWIsRUFBZCxFQURlO0dBQWpCO0NBRkY7O0FBT0EsU0FBUyxzQkFBVCxDQUFnQyxJQUFoQyxFQUFzQztBQUNwQyxTQUFPLFNBQ0osS0FBSyxJQUFMLEtBQWMsb0JBQWQsSUFBc0MsdUJBQXVCLEtBQUssTUFBTCxDQUE3RCxDQURJLENBRDZCO0NBQXRDOztBQUtBLElBQU0sUUFBUSxDQUFDLFNBQUQsRUFBWSxVQUFaLEVBQXdCLFVBQXhCLEVBQW9DLFFBQXBDLEVBQThDLFNBQTlDLEVBQXlELE9BQXpELENBQVI7Ozs7O0FBS04sU0FBUyxvQkFBVCxDQUE4QixNQUE5QixFQUFzQztBQUNwQyxNQUFNLGFBQWEsT0FBTyxNQUFQLENBQWMsVUFBUyxHQUFULEVBQWMsS0FBZCxFQUFxQixLQUFyQixFQUE0QjtBQUMzRCxRQUFJLE9BQU8sS0FBUCxLQUFpQixRQUFqQixFQUEyQjtBQUM3QixjQUFRLENBQUMsS0FBRCxDQUFSLENBRDZCO0tBQS9CO0FBR0EsVUFBTSxPQUFOLENBQWMsVUFBUyxTQUFULEVBQW9CO0FBQ2hDLFVBQUksTUFBTSxPQUFOLENBQWMsU0FBZCxNQUE2QixDQUFDLENBQUQsRUFBSTtBQUNuQyxjQUFNLElBQUksS0FBSixDQUFVLHdEQUNkLEtBQUssU0FBTCxDQUFlLFNBQWYsQ0FEYyxHQUNjLEdBRGQsQ0FBaEIsQ0FEbUM7T0FBckM7QUFJQSxVQUFJLElBQUksU0FBSixNQUFtQixTQUFuQixFQUE4QjtBQUNoQyxjQUFNLElBQUksS0FBSixDQUFVLDJDQUEyQyxTQUEzQyxHQUF1RCxpQkFBdkQsQ0FBaEIsQ0FEZ0M7T0FBbEM7QUFHQSxVQUFJLFNBQUosSUFBaUIsS0FBakIsQ0FSZ0M7S0FBcEIsQ0FBZCxDQUoyRDtBQWMzRCxXQUFPLEdBQVAsQ0FkMkQ7R0FBNUIsRUFlOUIsRUFmZ0IsQ0FBYixDQUQ4Qjs7QUFrQnBDLE1BQU0sZUFBZSxNQUFNLE1BQU4sQ0FBYSxVQUFTLElBQVQsRUFBZTtBQUMvQyxXQUFPLFdBQVcsSUFBWCxNQUFxQixTQUFyQixDQUR3QztHQUFmLENBQTVCLENBbEI4Qjs7QUFzQnBDLFNBQU8sYUFBYSxNQUFiLENBQW9CLFVBQVMsR0FBVCxFQUFjLElBQWQsRUFBb0I7QUFDN0MsUUFBSSxJQUFKLElBQVksT0FBTyxNQUFQLENBRGlDO0FBRTdDLFdBQU8sR0FBUCxDQUY2QztHQUFwQixFQUd4QixVQUhJLENBQVAsQ0F0Qm9DO0NBQXRDOztBQTRCQSxTQUFTLHlCQUFULENBQW9DLE9BQXBDLEVBQTZDLFFBQTdDLEVBQXVELHNCQUF2RCxFQUErRTtBQUM3RSxNQUFNLCtCQUErQixTQUEvQiw0QkFBK0IsQ0FBQyxhQUFELEVBQWdCLGNBQWhCLEVBQW1DO0FBQ3RFLFFBQU0sc0JBQXNCLFFBQVEsYUFBUixHQUF3QixLQUF4QixDQUE4QixLQUE5QixDQUMxQixlQUFlLElBQWYsQ0FBb0IsR0FBcEIsQ0FBd0IsR0FBeEIsQ0FBNEIsSUFBNUIsRUFDQSxjQUFjLElBQWQsQ0FBbUIsR0FBbkIsQ0FBdUIsS0FBdkIsQ0FBNkIsSUFBN0IsR0FBb0MsQ0FBcEMsQ0FGSSxDQURnRTs7QUFNdEUsV0FBTyxvQkFBb0IsTUFBcEIsQ0FBMkIsVUFBQyxJQUFEO2FBQVUsQ0FBQyxLQUFLLElBQUwsR0FBWSxNQUFaO0tBQVgsQ0FBM0IsQ0FBMEQsTUFBMUQsQ0FOK0Q7R0FBbkMsQ0FEd0M7QUFTN0UsTUFBSSxpQkFBaUIsU0FBUyxDQUFULENBQWpCLENBVHlFOztBQVc3RSxXQUFTLEtBQVQsQ0FBZSxDQUFmLEVBQWtCLE9BQWxCLENBQTBCLFVBQVMsYUFBVCxFQUF3QjtBQUNoRCxRQUFJLDJCQUEyQixRQUEzQixFQUFxQztBQUN2QyxVQUFJLGNBQWMsSUFBZCxLQUF1QixlQUFlLElBQWYsSUFDdEIsNkJBQTZCLGFBQTdCLEVBQTRDLGNBQTVDLE1BQWdFLENBQWhFLEVBQ0w7QUFDRSxnQkFBUSxNQUFSLENBQ0UsZUFBZSxJQUFmLEVBQXFCLCtEQUR2QixFQURGO09BRkEsTUFNTyxJQUFJLGNBQWMsSUFBZCxLQUF1QixlQUFlLElBQWYsSUFDN0IsNkJBQTZCLGFBQTdCLEVBQTRDLGNBQTVDLElBQThELENBQTlELEVBQ0w7QUFDRSxnQkFBUSxNQUFSLENBQ0UsZUFBZSxJQUFmLEVBQXFCLG1EQUR2QixFQURGO09BRk87S0FQVCxNQWNPO0FBQ0wsVUFBSSw2QkFBNkIsYUFBN0IsRUFBNEMsY0FBNUMsSUFBOEQsQ0FBOUQsRUFBaUU7QUFDbkUsZ0JBQVEsTUFBUixDQUFlLGVBQWUsSUFBZixFQUFxQixxREFBcEMsRUFEbUU7T0FBckU7S0FmRjs7QUFvQkEscUJBQWlCLGFBQWpCLENBckJnRDtHQUF4QixDQUExQixDQVg2RTtDQUEvRTs7QUFvQ0EsT0FBTyxPQUFQLEdBQWlCLFNBQVMsZUFBVCxDQUEwQixPQUExQixFQUFtQztBQUNsRCxNQUFNLFVBQVUsUUFBUSxPQUFSLENBQWdCLENBQWhCLEtBQXNCLEVBQXRCLENBRGtDO0FBRWxELE1BQUksY0FBSixDQUZrRDs7QUFJbEQsTUFBSTtBQUNGLFlBQVEscUJBQXFCLFFBQVEsTUFBUixJQUFrQixhQUFsQixDQUE3QixDQURFO0dBQUosQ0FFRSxPQUFPLEtBQVAsRUFBYzs7QUFFZCxXQUFPO0FBQ0wsZUFBUyxpQkFBUyxJQUFULEVBQWU7QUFDdEIsZ0JBQVEsTUFBUixDQUFlLElBQWYsRUFBcUIsTUFBTSxPQUFOLENBQXJCLENBRHNCO09BQWY7S0FEWCxDQUZjO0dBQWQ7QUFRRixNQUFJLFdBQVcsRUFBWCxDQWQ4QztBQWVsRCxNQUFJLFFBQVEsQ0FBUixDQWY4Qzs7QUFpQmxELFdBQVMsY0FBVCxHQUEwQjtBQUN4QixZQUR3QjtHQUExQjtBQUdBLFdBQVMsY0FBVCxHQUEwQjtBQUN4QixZQUR3QjtHQUExQjs7QUFJQSxTQUFPO0FBQ0wsdUJBQW1CLFNBQVMsYUFBVCxDQUF1QixJQUF2QixFQUE2QjtBQUM5QyxVQUFJLEtBQUssVUFBTCxDQUFnQixNQUFoQixFQUF3Qjs7QUFDMUIsWUFBTSxPQUFPLEtBQUssTUFBTCxDQUFZLEtBQVosQ0FEYTtBQUUxQixxQkFBYSxPQUFiLEVBQXNCLElBQXRCLEVBQTRCLElBQTVCLEVBQWtDLFFBQWxDLEVBQTRDLEtBQTVDLEVBQW1ELFFBQW5ELEVBRjBCO09BQTVCO0tBRGlCO0FBTW5CLG9CQUFnQixTQUFTLGNBQVQsQ0FBd0IsSUFBeEIsRUFBOEI7QUFDNUMsVUFBSSxVQUFVLENBQVYsSUFBZSxDQUFDLDZCQUFnQixJQUFoQixDQUFELElBQTBCLENBQUMsdUJBQXVCLEtBQUssTUFBTCxDQUF4QixFQUFzQztBQUNqRixlQURpRjtPQUFuRjtBQUdBLFVBQU0sT0FBTyxLQUFLLFNBQUwsQ0FBZSxDQUFmLEVBQWtCLEtBQWxCLENBSitCO0FBSzVDLG1CQUFhLE9BQWIsRUFBc0IsSUFBdEIsRUFBNEIsSUFBNUIsRUFBa0MsU0FBbEMsRUFBNkMsS0FBN0MsRUFBb0QsUUFBcEQsRUFMNEM7S0FBOUI7QUFPaEIsb0JBQWdCLFNBQVMsY0FBVCxHQUEwQjtBQUN4QywyQkFBcUIsT0FBckIsRUFBOEIsUUFBOUIsRUFEd0M7O0FBR3hDLFVBQUksc0JBQXNCLE9BQXRCLEVBQStCO0FBQ2pDLGtDQUEwQixPQUExQixFQUFtQyxRQUFuQyxFQUE2QyxRQUFRLGtCQUFSLENBQTdDLEVBRGlDO09BQW5DOztBQUlBLGlCQUFXLEVBQVgsQ0FQd0M7S0FBMUI7QUFTaEIseUJBQXFCLGNBQXJCO0FBQ0Esd0JBQW9CLGNBQXBCO0FBQ0EsNkJBQXlCLGNBQXpCO0FBQ0Esb0JBQWdCLGNBQWhCO0FBQ0Esc0JBQWtCLGNBQWxCO0FBQ0EsZ0NBQTRCLGNBQTVCO0FBQ0EsK0JBQTJCLGNBQTNCO0FBQ0Esb0NBQWdDLGNBQWhDO0FBQ0EsMkJBQXVCLGNBQXZCO0FBQ0EsNkJBQXlCLGNBQXpCO0dBaENGLENBeEJrRDtDQUFuQzs7QUE0RGpCLE9BQU8sT0FBUCxDQUFlLE1BQWYsR0FBd0IsQ0FDdEI7QUFDRSxRQUFNLFFBQU47QUFDQSxjQUFZO0FBQ1YsWUFBUTtBQUNOLFlBQU0sT0FBTjtLQURGO0FBR0Esd0JBQW9CO0FBQ2xCLFlBQU0sQ0FBRSxRQUFGLEVBQVksT0FBWixDQUFOO0tBREY7R0FKRjtBQVFBLHdCQUFzQixLQUF0QjtDQVhvQixDQUF4QiIsImZpbGUiOiJydWxlcy9vcmRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5pbXBvcnQgZmluZCBmcm9tICdsb2Rhc2guZmluZCdcbmltcG9ydCBpbXBvcnRUeXBlIGZyb20gJy4uL2NvcmUvaW1wb3J0VHlwZSdcbmltcG9ydCBpc1N0YXRpY1JlcXVpcmUgZnJvbSAnLi4vY29yZS9zdGF0aWNSZXF1aXJlJ1xuXG5jb25zdCBkZWZhdWx0R3JvdXBzID0gWydidWlsdGluJywgJ2V4dGVybmFsJywgJ3BhcmVudCcsICdzaWJsaW5nJywgJ2luZGV4J11cblxuLy8gUkVQT1JUSU5HXG5cbmZ1bmN0aW9uIHJldmVyc2UoYXJyYXkpIHtcbiAgcmV0dXJuIGFycmF5Lm1hcChmdW5jdGlvbiAodikge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB2Lm5hbWUsXG4gICAgICByYW5rOiAtdi5yYW5rLFxuICAgICAgbm9kZTogdi5ub2RlLFxuICAgIH1cbiAgfSkucmV2ZXJzZSgpXG59XG5cbmZ1bmN0aW9uIGZpbmRPdXRPZk9yZGVyKGltcG9ydGVkKSB7XG4gIGlmIChpbXBvcnRlZC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW11cbiAgfVxuICBsZXQgbWF4U2VlblJhbmtOb2RlID0gaW1wb3J0ZWRbMF1cbiAgcmV0dXJuIGltcG9ydGVkLmZpbHRlcihmdW5jdGlvbiAoaW1wb3J0ZWRNb2R1bGUpIHtcbiAgICBjb25zdCByZXMgPSBpbXBvcnRlZE1vZHVsZS5yYW5rIDwgbWF4U2VlblJhbmtOb2RlLnJhbmtcbiAgICBpZiAobWF4U2VlblJhbmtOb2RlLnJhbmsgPCBpbXBvcnRlZE1vZHVsZS5yYW5rKSB7XG4gICAgICBtYXhTZWVuUmFua05vZGUgPSBpbXBvcnRlZE1vZHVsZVxuICAgIH1cbiAgICByZXR1cm4gcmVzXG4gIH0pXG59XG5cbmZ1bmN0aW9uIHJlcG9ydE91dE9mT3JkZXIoY29udGV4dCwgaW1wb3J0ZWQsIG91dE9mT3JkZXIsIG9yZGVyKSB7XG4gIG91dE9mT3JkZXIuZm9yRWFjaChmdW5jdGlvbiAoaW1wKSB7XG4gICAgY29uc3QgZm91bmQgPSBmaW5kKGltcG9ydGVkLCBmdW5jdGlvbiBoYXNIaWdoZXJSYW5rKGltcG9ydGVkSXRlbSkge1xuICAgICAgcmV0dXJuIGltcG9ydGVkSXRlbS5yYW5rID4gaW1wLnJhbmtcbiAgICB9KVxuICAgIGNvbnRleHQucmVwb3J0KGltcC5ub2RlLCAnYCcgKyBpbXAubmFtZSArICdgIGltcG9ydCBzaG91bGQgb2NjdXIgJyArIG9yZGVyICtcbiAgICAgICcgaW1wb3J0IG9mIGAnICsgZm91bmQubmFtZSArICdgJylcbiAgfSlcbn1cblxuZnVuY3Rpb24gbWFrZU91dE9mT3JkZXJSZXBvcnQoY29udGV4dCwgaW1wb3J0ZWQpIHtcbiAgY29uc3Qgb3V0T2ZPcmRlciA9IGZpbmRPdXRPZk9yZGVyKGltcG9ydGVkKVxuICBpZiAoIW91dE9mT3JkZXIubGVuZ3RoKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgLy8gVGhlcmUgYXJlIHRoaW5ncyB0byByZXBvcnQuIFRyeSB0byBtaW5pbWl6ZSB0aGUgbnVtYmVyIG9mIHJlcG9ydGVkIGVycm9ycy5cbiAgY29uc3QgcmV2ZXJzZWRJbXBvcnRlZCA9IHJldmVyc2UoaW1wb3J0ZWQpXG4gIGNvbnN0IHJldmVyc2VkT3JkZXIgPSBmaW5kT3V0T2ZPcmRlcihyZXZlcnNlZEltcG9ydGVkKVxuICBpZiAocmV2ZXJzZWRPcmRlci5sZW5ndGggPCBvdXRPZk9yZGVyLmxlbmd0aCkge1xuICAgIHJlcG9ydE91dE9mT3JkZXIoY29udGV4dCwgcmV2ZXJzZWRJbXBvcnRlZCwgcmV2ZXJzZWRPcmRlciwgJ2FmdGVyJylcbiAgICByZXR1cm5cbiAgfVxuICByZXBvcnRPdXRPZk9yZGVyKGNvbnRleHQsIGltcG9ydGVkLCBvdXRPZk9yZGVyLCAnYmVmb3JlJylcbn1cblxuLy8gREVURUNUSU5HXG5cbmZ1bmN0aW9uIGNvbXB1dGVSYW5rKGNvbnRleHQsIHJhbmtzLCBuYW1lLCB0eXBlKSB7XG4gIHJldHVybiByYW5rc1tpbXBvcnRUeXBlKG5hbWUsIGNvbnRleHQpXSArXG4gICAgKHR5cGUgPT09ICdpbXBvcnQnID8gMCA6IDEwMClcbn1cblxuZnVuY3Rpb24gcmVnaXN0ZXJOb2RlKGNvbnRleHQsIG5vZGUsIG5hbWUsIHR5cGUsIHJhbmtzLCBpbXBvcnRlZCkge1xuICBjb25zdCByYW5rID0gY29tcHV0ZVJhbmsoY29udGV4dCwgcmFua3MsIG5hbWUsIHR5cGUpXG4gIGlmIChyYW5rICE9PSAtMSkge1xuICAgIGltcG9ydGVkLnB1c2goe25hbWUsIHJhbmssIG5vZGV9KVxuICB9XG59XG5cbmZ1bmN0aW9uIGlzSW5WYXJpYWJsZURlY2xhcmF0b3Iobm9kZSkge1xuICByZXR1cm4gbm9kZSAmJlxuICAgIChub2RlLnR5cGUgPT09ICdWYXJpYWJsZURlY2xhcmF0b3InIHx8IGlzSW5WYXJpYWJsZURlY2xhcmF0b3Iobm9kZS5wYXJlbnQpKVxufVxuXG5jb25zdCB0eXBlcyA9IFsnYnVpbHRpbicsICdleHRlcm5hbCcsICdpbnRlcm5hbCcsICdwYXJlbnQnLCAnc2libGluZycsICdpbmRleCddXG5cbi8vIENyZWF0ZXMgYW4gb2JqZWN0IHdpdGggdHlwZS1yYW5rIHBhaXJzLlxuLy8gRXhhbXBsZTogeyBpbmRleDogMCwgc2libGluZzogMSwgcGFyZW50OiAxLCBleHRlcm5hbDogMSwgYnVpbHRpbjogMiwgaW50ZXJuYWw6IDIgfVxuLy8gV2lsbCB0aHJvdyBhbiBlcnJvciBpZiBpdCBjb250YWlucyBhIHR5cGUgdGhhdCBkb2VzIG5vdCBleGlzdCwgb3IgaGFzIGEgZHVwbGljYXRlXG5mdW5jdGlvbiBjb252ZXJ0R3JvdXBzVG9SYW5rcyhncm91cHMpIHtcbiAgY29uc3QgcmFua09iamVjdCA9IGdyb3Vwcy5yZWR1Y2UoZnVuY3Rpb24ocmVzLCBncm91cCwgaW5kZXgpIHtcbiAgICBpZiAodHlwZW9mIGdyb3VwID09PSAnc3RyaW5nJykge1xuICAgICAgZ3JvdXAgPSBbZ3JvdXBdXG4gICAgfVxuICAgIGdyb3VwLmZvckVhY2goZnVuY3Rpb24oZ3JvdXBJdGVtKSB7XG4gICAgICBpZiAodHlwZXMuaW5kZXhPZihncm91cEl0ZW0pID09PSAtMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luY29ycmVjdCBjb25maWd1cmF0aW9uIG9mIHRoZSBydWxlOiBVbmtub3duIHR5cGUgYCcgK1xuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGdyb3VwSXRlbSkgKyAnYCcpXG4gICAgICB9XG4gICAgICBpZiAocmVzW2dyb3VwSXRlbV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luY29ycmVjdCBjb25maWd1cmF0aW9uIG9mIHRoZSBydWxlOiBgJyArIGdyb3VwSXRlbSArICdgIGlzIGR1cGxpY2F0ZWQnKVxuICAgICAgfVxuICAgICAgcmVzW2dyb3VwSXRlbV0gPSBpbmRleFxuICAgIH0pXG4gICAgcmV0dXJuIHJlc1xuICB9LCB7fSlcblxuICBjb25zdCBvbWl0dGVkVHlwZXMgPSB0eXBlcy5maWx0ZXIoZnVuY3Rpb24odHlwZSkge1xuICAgIHJldHVybiByYW5rT2JqZWN0W3R5cGVdID09PSB1bmRlZmluZWRcbiAgfSlcblxuICByZXR1cm4gb21pdHRlZFR5cGVzLnJlZHVjZShmdW5jdGlvbihyZXMsIHR5cGUpIHtcbiAgICByZXNbdHlwZV0gPSBncm91cHMubGVuZ3RoXG4gICAgcmV0dXJuIHJlc1xuICB9LCByYW5rT2JqZWN0KVxufVxuXG5mdW5jdGlvbiBtYWtlTmV3bGluZXNCZXR3ZWVuUmVwb3J0IChjb250ZXh0LCBpbXBvcnRlZCwgbmV3bGluZXNCZXR3ZWVuSW1wb3J0cykge1xuICBjb25zdCBnZXROdW1iZXJPZkVtcHR5TGluZXNCZXR3ZWVuID0gKGN1cnJlbnRJbXBvcnQsIHByZXZpb3VzSW1wb3J0KSA9PiB7XG4gICAgY29uc3QgbGluZXNCZXR3ZWVuSW1wb3J0cyA9IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpLmxpbmVzLnNsaWNlKFxuICAgICAgcHJldmlvdXNJbXBvcnQubm9kZS5sb2MuZW5kLmxpbmUsXG4gICAgICBjdXJyZW50SW1wb3J0Lm5vZGUubG9jLnN0YXJ0LmxpbmUgLSAxXG4gICAgKVxuXG4gICAgcmV0dXJuIGxpbmVzQmV0d2VlbkltcG9ydHMuZmlsdGVyKChsaW5lKSA9PiAhbGluZS50cmltKCkubGVuZ3RoKS5sZW5ndGhcbiAgfVxuICBsZXQgcHJldmlvdXNJbXBvcnQgPSBpbXBvcnRlZFswXVxuXG4gIGltcG9ydGVkLnNsaWNlKDEpLmZvckVhY2goZnVuY3Rpb24oY3VycmVudEltcG9ydCkge1xuICAgIGlmIChuZXdsaW5lc0JldHdlZW5JbXBvcnRzID09PSAnYWx3YXlzJykge1xuICAgICAgaWYgKGN1cnJlbnRJbXBvcnQucmFuayAhPT0gcHJldmlvdXNJbXBvcnQucmFua1xuICAgICAgICAmJiBnZXROdW1iZXJPZkVtcHR5TGluZXNCZXR3ZWVuKGN1cnJlbnRJbXBvcnQsIHByZXZpb3VzSW1wb3J0KSA9PT0gMClcbiAgICAgIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgcHJldmlvdXNJbXBvcnQubm9kZSwgJ1RoZXJlIHNob3VsZCBiZSBhdCBsZWFzdCBvbmUgZW1wdHkgbGluZSBiZXR3ZWVuIGltcG9ydCBncm91cHMnXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSBpZiAoY3VycmVudEltcG9ydC5yYW5rID09PSBwcmV2aW91c0ltcG9ydC5yYW5rXG4gICAgICAgICYmIGdldE51bWJlck9mRW1wdHlMaW5lc0JldHdlZW4oY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpID4gMClcbiAgICAgIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgcHJldmlvdXNJbXBvcnQubm9kZSwgJ1RoZXJlIHNob3VsZCBiZSBubyBlbXB0eSBsaW5lIHdpdGhpbiBpbXBvcnQgZ3JvdXAnXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGdldE51bWJlck9mRW1wdHlMaW5lc0JldHdlZW4oY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpID4gMCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChwcmV2aW91c0ltcG9ydC5ub2RlLCAnVGhlcmUgc2hvdWxkIGJlIG5vIGVtcHR5IGxpbmUgYmV0d2VlbiBpbXBvcnQgZ3JvdXBzJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcmV2aW91c0ltcG9ydCA9IGN1cnJlbnRJbXBvcnRcbiAgfSlcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbXBvcnRPcmRlclJ1bGUgKGNvbnRleHQpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQub3B0aW9uc1swXSB8fCB7fVxuICBsZXQgcmFua3NcblxuICB0cnkge1xuICAgIHJhbmtzID0gY29udmVydEdyb3Vwc1RvUmFua3Mob3B0aW9ucy5ncm91cHMgfHwgZGVmYXVsdEdyb3VwcylcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBNYWxmb3JtZWQgY29uZmlndXJhdGlvblxuICAgIHJldHVybiB7XG4gICAgICBQcm9ncmFtOiBmdW5jdGlvbihub2RlKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KG5vZGUsIGVycm9yLm1lc3NhZ2UpXG4gICAgICB9LFxuICAgIH1cbiAgfVxuICBsZXQgaW1wb3J0ZWQgPSBbXVxuICBsZXQgbGV2ZWwgPSAwXG5cbiAgZnVuY3Rpb24gaW5jcmVtZW50TGV2ZWwoKSB7XG4gICAgbGV2ZWwrK1xuICB9XG4gIGZ1bmN0aW9uIGRlY3JlbWVudExldmVsKCkge1xuICAgIGxldmVsLS1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgSW1wb3J0RGVjbGFyYXRpb246IGZ1bmN0aW9uIGhhbmRsZUltcG9ydHMobm9kZSkge1xuICAgICAgaWYgKG5vZGUuc3BlY2lmaWVycy5sZW5ndGgpIHsgLy8gSWdub3JpbmcgdW5hc3NpZ25lZCBpbXBvcnRzXG4gICAgICAgIGNvbnN0IG5hbWUgPSBub2RlLnNvdXJjZS52YWx1ZVxuICAgICAgICByZWdpc3Rlck5vZGUoY29udGV4dCwgbm9kZSwgbmFtZSwgJ2ltcG9ydCcsIHJhbmtzLCBpbXBvcnRlZClcbiAgICAgIH1cbiAgICB9LFxuICAgIENhbGxFeHByZXNzaW9uOiBmdW5jdGlvbiBoYW5kbGVSZXF1aXJlcyhub2RlKSB7XG4gICAgICBpZiAobGV2ZWwgIT09IDAgfHwgIWlzU3RhdGljUmVxdWlyZShub2RlKSB8fCAhaXNJblZhcmlhYmxlRGVjbGFyYXRvcihub2RlLnBhcmVudCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjb25zdCBuYW1lID0gbm9kZS5hcmd1bWVudHNbMF0udmFsdWVcbiAgICAgIHJlZ2lzdGVyTm9kZShjb250ZXh0LCBub2RlLCBuYW1lLCAncmVxdWlyZScsIHJhbmtzLCBpbXBvcnRlZClcbiAgICB9LFxuICAgICdQcm9ncmFtOmV4aXQnOiBmdW5jdGlvbiByZXBvcnRBbmRSZXNldCgpIHtcbiAgICAgIG1ha2VPdXRPZk9yZGVyUmVwb3J0KGNvbnRleHQsIGltcG9ydGVkKVxuXG4gICAgICBpZiAoJ25ld2xpbmVzLWJldHdlZW4nIGluIG9wdGlvbnMpIHtcbiAgICAgICAgbWFrZU5ld2xpbmVzQmV0d2VlblJlcG9ydChjb250ZXh0LCBpbXBvcnRlZCwgb3B0aW9uc1snbmV3bGluZXMtYmV0d2VlbiddKVxuICAgICAgfVxuXG4gICAgICBpbXBvcnRlZCA9IFtdXG4gICAgfSxcbiAgICBGdW5jdGlvbkRlY2xhcmF0aW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICBGdW5jdGlvbkV4cHJlc3Npb246IGluY3JlbWVudExldmVsLFxuICAgIEFycm93RnVuY3Rpb25FeHByZXNzaW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICBCbG9ja1N0YXRlbWVudDogaW5jcmVtZW50TGV2ZWwsXG4gICAgT2JqZWN0RXhwcmVzc2lvbjogaW5jcmVtZW50TGV2ZWwsXG4gICAgJ0Z1bmN0aW9uRGVjbGFyYXRpb246ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICdGdW5jdGlvbkV4cHJlc3Npb246ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICdBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgJ0Jsb2NrU3RhdGVtZW50OmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgICAnT2JqZWN0RXhwcmVzc2lvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMuc2NoZW1hID0gW1xuICB7XG4gICAgdHlwZTogJ29iamVjdCcsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgZ3JvdXBzOiB7XG4gICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICB9LFxuICAgICAgJ25ld2xpbmVzLWJldHdlZW4nOiB7XG4gICAgICAgIGVudW06IFsgJ2Fsd2F5cycsICduZXZlcicgXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gIH0sXG5dXG4iXX0=
//# sourceMappingURL=data:application/json;base64,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TSxPQUFPLEtBQUssU0FBTCxDQUFlLENBQWYsRUFBa0IsS0FBL0I7QUFDQSxtQkFBYSxPQUFiLEVBQXNCLElBQXRCLEVBQTRCLElBQTVCLEVBQWtDLFNBQWxDLEVBQTZDLEtBQTdDLEVBQW9ELFFBQXBEO0FBQ0QsS0FiSTtBQWNMLG9CQUFnQixTQUFTLGNBQVQsR0FBMEI7QUFDeEMsMkJBQXFCLE9BQXJCLEVBQThCLFFBQTlCOztBQUVBLFVBQUksc0JBQXNCLE9BQTFCLEVBQW1DO0FBQ2pDLGtDQUEwQixPQUExQixFQUFtQyxRQUFuQyxFQUE2QyxRQUFRLGtCQUFSLENBQTdDO0FBQ0Q7O0FBRUQsaUJBQVcsRUFBWDtBQUNELEtBdEJJO0FBdUJMLHlCQUFxQixjQXZCaEI7QUF3Qkwsd0JBQW9CLGNBeEJmO0FBeUJMLDZCQUF5QixjQXpCcEI7QUEwQkwsb0JBQWdCLGNBMUJYO0FBMkJMLHNCQUFrQixjQTNCYjtBQTRCTCxnQ0FBNEIsY0E1QnZCO0FBNkJMLCtCQUEyQixjQTdCdEI7QUE4Qkwsb0NBQWdDLGNBOUIzQjtBQStCTCwyQkFBdUIsY0EvQmxCO0FBZ0NMLDZCQUF5QjtBQWhDcEIsR0FBUDtBQWtDRCxDQTFERDs7QUE0REEsT0FBTyxPQUFQLENBQWUsTUFBZixHQUF3QixDQUN0QjtBQUNFLFFBQU0sUUFEUjtBQUVFLGNBQVk7QUFDVixZQUFRO0FBQ04sWUFBTTtBQURBLEtBREU7QUFJVix3QkFBb0I7QUFDbEIsWUFBTSxDQUFFLFFBQUYsRUFBWSxPQUFaO0FBRFk7QUFKVixHQUZkO0FBVUUsd0JBQXNCO0FBVnhCLENBRHNCLENBQXhCIiwiZmlsZSI6InJ1bGVzL29yZGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBmaW5kIGZyb20gJ2xvZGFzaC5maW5kJ1xuaW1wb3J0IGltcG9ydFR5cGUgZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJ1xuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5cbmNvbnN0IGRlZmF1bHRHcm91cHMgPSBbJ2J1aWx0aW4nLCAnZXh0ZXJuYWwnLCAncGFyZW50JywgJ3NpYmxpbmcnLCAnaW5kZXgnXVxuXG4vLyBSRVBPUlRJTkdcblxuZnVuY3Rpb24gcmV2ZXJzZShhcnJheSkge1xuICByZXR1cm4gYXJyYXkubWFwKGZ1bmN0aW9uICh2KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHYubmFtZSxcbiAgICAgIHJhbms6IC12LnJhbmssXG4gICAgICBub2RlOiB2Lm5vZGUsXG4gICAgfVxuICB9KS5yZXZlcnNlKClcbn1cblxuZnVuY3Rpb24gZmluZE91dE9mT3JkZXIoaW1wb3J0ZWQpIHtcbiAgaWYgKGltcG9ydGVkLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXVxuICB9XG4gIGxldCBtYXhTZWVuUmFua05vZGUgPSBpbXBvcnRlZFswXVxuICByZXR1cm4gaW1wb3J0ZWQuZmlsdGVyKGZ1bmN0aW9uIChpbXBvcnRlZE1vZHVsZSkge1xuICAgIGNvbnN0IHJlcyA9IGltcG9ydGVkTW9kdWxlLnJhbmsgPCBtYXhTZWVuUmFua05vZGUucmFua1xuICAgIGlmIChtYXhTZWVuUmFua05vZGUucmFuayA8IGltcG9ydGVkTW9kdWxlLnJhbmspIHtcbiAgICAgIG1heFNlZW5SYW5rTm9kZSA9IGltcG9ydGVkTW9kdWxlXG4gICAgfVxuICAgIHJldHVybiByZXNcbiAgfSlcbn1cblxuZnVuY3Rpb24gcmVwb3J0T3V0T2ZPcmRlcihjb250ZXh0LCBpbXBvcnRlZCwgb3V0T2ZPcmRlciwgb3JkZXIpIHtcbiAgb3V0T2ZPcmRlci5mb3JFYWNoKGZ1bmN0aW9uIChpbXApIHtcbiAgICBjb25zdCBmb3VuZCA9IGZpbmQoaW1wb3J0ZWQsIGZ1bmN0aW9uIGhhc0hpZ2hlclJhbmsoaW1wb3J0ZWRJdGVtKSB7XG4gICAgICByZXR1cm4gaW1wb3J0ZWRJdGVtLnJhbmsgPiBpbXAucmFua1xuICAgIH0pXG4gICAgY29udGV4dC5yZXBvcnQoaW1wLm5vZGUsICdgJyArIGltcC5uYW1lICsgJ2AgaW1wb3J0IHNob3VsZCBvY2N1ciAnICsgb3JkZXIgK1xuICAgICAgJyBpbXBvcnQgb2YgYCcgKyBmb3VuZC5uYW1lICsgJ2AnKVxuICB9KVxufVxuXG5mdW5jdGlvbiBtYWtlT3V0T2ZPcmRlclJlcG9ydChjb250ZXh0LCBpbXBvcnRlZCkge1xuICBjb25zdCBvdXRPZk9yZGVyID0gZmluZE91dE9mT3JkZXIoaW1wb3J0ZWQpXG4gIGlmICghb3V0T2ZPcmRlci5sZW5ndGgpIHtcbiAgICByZXR1cm5cbiAgfVxuICAvLyBUaGVyZSBhcmUgdGhpbmdzIHRvIHJlcG9ydC4gVHJ5IHRvIG1pbmltaXplIHRoZSBudW1iZXIgb2YgcmVwb3J0ZWQgZXJyb3JzLlxuICBjb25zdCByZXZlcnNlZEltcG9ydGVkID0gcmV2ZXJzZShpbXBvcnRlZClcbiAgY29uc3QgcmV2ZXJzZWRPcmRlciA9IGZpbmRPdXRPZk9yZGVyKHJldmVyc2VkSW1wb3J0ZWQpXG4gIGlmIChyZXZlcnNlZE9yZGVyLmxlbmd0aCA8IG91dE9mT3JkZXIubGVuZ3RoKSB7XG4gICAgcmVwb3J0T3V0T2ZPcmRlcihjb250ZXh0LCByZXZlcnNlZEltcG9ydGVkLCByZXZlcnNlZE9yZGVyLCAnYWZ0ZXInKVxuICAgIHJldHVyblxuICB9XG4gIHJlcG9ydE91dE9mT3JkZXIoY29udGV4dCwgaW1wb3J0ZWQsIG91dE9mT3JkZXIsICdiZWZvcmUnKVxufVxuXG4vLyBERVRFQ1RJTkdcblxuZnVuY3Rpb24gY29tcHV0ZVJhbmsoY29udGV4dCwgcmFua3MsIG5hbWUsIHR5cGUpIHtcbiAgcmV0dXJuIHJhbmtzW2ltcG9ydFR5cGUobmFtZSwgY29udGV4dCldICtcbiAgICAodHlwZSA9PT0gJ2ltcG9ydCcgPyAwIDogMTAwKVxufVxuXG5mdW5jdGlvbiByZWdpc3Rlck5vZGUoY29udGV4dCwgbm9kZSwgbmFtZSwgdHlwZSwgcmFua3MsIGltcG9ydGVkKSB7XG4gIGNvbnN0IHJhbmsgPSBjb21wdXRlUmFuayhjb250ZXh0LCByYW5rcywgbmFtZSwgdHlwZSlcbiAgaWYgKHJhbmsgIT09IC0xKSB7XG4gICAgaW1wb3J0ZWQucHVzaCh7bmFtZSwgcmFuaywgbm9kZX0pXG4gIH1cbn1cblxuZnVuY3Rpb24gaXNJblZhcmlhYmxlRGVjbGFyYXRvcihub2RlKSB7XG4gIHJldHVybiBub2RlICYmXG4gICAgKG5vZGUudHlwZSA9PT0gJ1ZhcmlhYmxlRGVjbGFyYXRvcicgfHwgaXNJblZhcmlhYmxlRGVjbGFyYXRvcihub2RlLnBhcmVudCkpXG59XG5cbmNvbnN0IHR5cGVzID0gWydidWlsdGluJywgJ2V4dGVybmFsJywgJ2ludGVybmFsJywgJ3BhcmVudCcsICdzaWJsaW5nJywgJ2luZGV4J11cblxuLy8gQ3JlYXRlcyBhbiBvYmplY3Qgd2l0aCB0eXBlLXJhbmsgcGFpcnMuXG4vLyBFeGFtcGxlOiB7IGluZGV4OiAwLCBzaWJsaW5nOiAxLCBwYXJlbnQ6IDEsIGV4dGVybmFsOiAxLCBidWlsdGluOiAyLCBpbnRlcm5hbDogMiB9XG4vLyBXaWxsIHRocm93IGFuIGVycm9yIGlmIGl0IGNvbnRhaW5zIGEgdHlwZSB0aGF0IGRvZXMgbm90IGV4aXN0LCBvciBoYXMgYSBkdXBsaWNhdGVcbmZ1bmN0aW9uIGNvbnZlcnRHcm91cHNUb1JhbmtzKGdyb3Vwcykge1xuICBjb25zdCByYW5rT2JqZWN0ID0gZ3JvdXBzLnJlZHVjZShmdW5jdGlvbihyZXMsIGdyb3VwLCBpbmRleCkge1xuICAgIGlmICh0eXBlb2YgZ3JvdXAgPT09ICdzdHJpbmcnKSB7XG4gICAgICBncm91cCA9IFtncm91cF1cbiAgICB9XG4gICAgZ3JvdXAuZm9yRWFjaChmdW5jdGlvbihncm91cEl0ZW0pIHtcbiAgICAgIGlmICh0eXBlcy5pbmRleE9mKGdyb3VwSXRlbSkgPT09IC0xKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHJ1bGU6IFVua25vd24gdHlwZSBgJyArXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZ3JvdXBJdGVtKSArICdgJylcbiAgICAgIH1cbiAgICAgIGlmIChyZXNbZ3JvdXBJdGVtXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHJ1bGU6IGAnICsgZ3JvdXBJdGVtICsgJ2AgaXMgZHVwbGljYXRlZCcpXG4gICAgICB9XG4gICAgICByZXNbZ3JvdXBJdGVtXSA9IGluZGV4XG4gICAgfSlcbiAgICByZXR1cm4gcmVzXG4gIH0sIHt9KVxuXG4gIGNvbnN0IG9taXR0ZWRUeXBlcyA9IHR5cGVzLmZpbHRlcihmdW5jdGlvbih0eXBlKSB7XG4gICAgcmV0dXJuIHJhbmtPYmplY3RbdHlwZV0gPT09IHVuZGVmaW5lZFxuICB9KVxuXG4gIHJldHVybiBvbWl0dGVkVHlwZXMucmVkdWNlKGZ1bmN0aW9uKHJlcywgdHlwZSkge1xuICAgIHJlc1t0eXBlXSA9IGdyb3Vwcy5sZW5ndGhcbiAgICByZXR1cm4gcmVzXG4gIH0sIHJhbmtPYmplY3QpXG59XG5cbmZ1bmN0aW9uIG1ha2VOZXdsaW5lc0JldHdlZW5SZXBvcnQgKGNvbnRleHQsIGltcG9ydGVkLCBuZXdsaW5lc0JldHdlZW5JbXBvcnRzKSB7XG4gIGNvbnN0IGdldE51bWJlck9mRW1wdHlMaW5lc0JldHdlZW4gPSAoY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpID0+IHtcbiAgICBjb25zdCBsaW5lc0JldHdlZW5JbXBvcnRzID0gY29udGV4dC5nZXRTb3VyY2VDb2RlKCkubGluZXMuc2xpY2UoXG4gICAgICBwcmV2aW91c0ltcG9ydC5ub2RlLmxvYy5lbmQubGluZSxcbiAgICAgIGN1cnJlbnRJbXBvcnQubm9kZS5sb2Muc3RhcnQubGluZSAtIDFcbiAgICApXG5cbiAgICByZXR1cm4gbGluZXNCZXR3ZWVuSW1wb3J0cy5maWx0ZXIoKGxpbmUpID0+ICFsaW5lLnRyaW0oKS5sZW5ndGgpLmxlbmd0aFxuICB9XG4gIGxldCBwcmV2aW91c0ltcG9ydCA9IGltcG9ydGVkWzBdXG5cbiAgaW1wb3J0ZWQuc2xpY2UoMSkuZm9yRWFjaChmdW5jdGlvbihjdXJyZW50SW1wb3J0KSB7XG4gICAgaWYgKG5ld2xpbmVzQmV0d2VlbkltcG9ydHMgPT09ICdhbHdheXMnKSB7XG4gICAgICBpZiAoY3VycmVudEltcG9ydC5yYW5rICE9PSBwcmV2aW91c0ltcG9ydC5yYW5rXG4gICAgICAgICYmIGdldE51bWJlck9mRW1wdHlMaW5lc0JldHdlZW4oY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpID09PSAwKVxuICAgICAge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChcbiAgICAgICAgICBwcmV2aW91c0ltcG9ydC5ub2RlLCAnVGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0IG9uZSBlbXB0eSBsaW5lIGJldHdlZW4gaW1wb3J0IGdyb3VwcydcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIGlmIChjdXJyZW50SW1wb3J0LnJhbmsgPT09IHByZXZpb3VzSW1wb3J0LnJhbmtcbiAgICAgICAgJiYgZ2V0TnVtYmVyT2ZFbXB0eUxpbmVzQmV0d2VlbihjdXJyZW50SW1wb3J0LCBwcmV2aW91c0ltcG9ydCkgPiAwKVxuICAgICAge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChcbiAgICAgICAgICBwcmV2aW91c0ltcG9ydC5ub2RlLCAnVGhlcmUgc2hvdWxkIGJlIG5vIGVtcHR5IGxpbmUgd2l0aGluIGltcG9ydCBncm91cCdcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZ2V0TnVtYmVyT2ZFbXB0eUxpbmVzQmV0d2VlbihjdXJyZW50SW1wb3J0LCBwcmV2aW91c0ltcG9ydCkgPiAwKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHByZXZpb3VzSW1wb3J0Lm5vZGUsICdUaGVyZSBzaG91bGQgYmUgbm8gZW1wdHkgbGluZSBiZXR3ZWVuIGltcG9ydCBncm91cHMnKVxuICAgICAgfVxuICAgIH1cblxuICAgIHByZXZpb3VzSW1wb3J0ID0gY3VycmVudEltcG9ydFxuICB9KVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGltcG9ydE9yZGVyUnVsZSAoY29udGV4dCkge1xuICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9XG4gIGxldCByYW5rc1xuXG4gIHRyeSB7XG4gICAgcmFua3MgPSBjb252ZXJ0R3JvdXBzVG9SYW5rcyhvcHRpb25zLmdyb3VwcyB8fCBkZWZhdWx0R3JvdXBzKVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIE1hbGZvcm1lZCBjb25maWd1cmF0aW9uXG4gICAgcmV0dXJuIHtcbiAgICAgIFByb2dyYW06IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQobm9kZSwgZXJyb3IubWVzc2FnZSlcbiAgICAgIH0sXG4gICAgfVxuICB9XG4gIGxldCBpbXBvcnRlZCA9IFtdXG4gIGxldCBsZXZlbCA9IDBcblxuICBmdW5jdGlvbiBpbmNyZW1lbnRMZXZlbCgpIHtcbiAgICBsZXZlbCsrXG4gIH1cbiAgZnVuY3Rpb24gZGVjcmVtZW50TGV2ZWwoKSB7XG4gICAgbGV2ZWwtLVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBJbXBvcnREZWNsYXJhdGlvbjogZnVuY3Rpb24gaGFuZGxlSW1wb3J0cyhub2RlKSB7XG4gICAgICBpZiAobm9kZS5zcGVjaWZpZXJzLmxlbmd0aCkgeyAvLyBJZ25vcmluZyB1bmFzc2lnbmVkIGltcG9ydHNcbiAgICAgICAgY29uc3QgbmFtZSA9IG5vZGUuc291cmNlLnZhbHVlXG4gICAgICAgIHJlZ2lzdGVyTm9kZShjb250ZXh0LCBub2RlLCBuYW1lLCAnaW1wb3J0JywgcmFua3MsIGltcG9ydGVkKVxuICAgICAgfVxuICAgIH0sXG4gICAgQ2FsbEV4cHJlc3Npb246IGZ1bmN0aW9uIGhhbmRsZVJlcXVpcmVzKG5vZGUpIHtcbiAgICAgIGlmIChsZXZlbCAhPT0gMCB8fCAhaXNTdGF0aWNSZXF1aXJlKG5vZGUpIHx8ICFpc0luVmFyaWFibGVEZWNsYXJhdG9yKG5vZGUucGFyZW50KSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IG5hbWUgPSBub2RlLmFyZ3VtZW50c1swXS52YWx1ZVxuICAgICAgcmVnaXN0ZXJOb2RlKGNvbnRleHQsIG5vZGUsIG5hbWUsICdyZXF1aXJlJywgcmFua3MsIGltcG9ydGVkKVxuICAgIH0sXG4gICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uIHJlcG9ydEFuZFJlc2V0KCkge1xuICAgICAgbWFrZU91dE9mT3JkZXJSZXBvcnQoY29udGV4dCwgaW1wb3J0ZWQpXG5cbiAgICAgIGlmICgnbmV3bGluZXMtYmV0d2VlbicgaW4gb3B0aW9ucykge1xuICAgICAgICBtYWtlTmV3bGluZXNCZXR3ZWVuUmVwb3J0KGNvbnRleHQsIGltcG9ydGVkLCBvcHRpb25zWyduZXdsaW5lcy1iZXR3ZWVuJ10pXG4gICAgICB9XG5cbiAgICAgIGltcG9ydGVkID0gW11cbiAgICB9LFxuICAgIEZ1bmN0aW9uRGVjbGFyYXRpb246IGluY3JlbWVudExldmVsLFxuICAgIEZ1bmN0aW9uRXhwcmVzc2lvbjogaW5jcmVtZW50TGV2ZWwsXG4gICAgQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246IGluY3JlbWVudExldmVsLFxuICAgIEJsb2NrU3RhdGVtZW50OiBpbmNyZW1lbnRMZXZlbCxcbiAgICBPYmplY3RFeHByZXNzaW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICAnRnVuY3Rpb25EZWNsYXJhdGlvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgJ0Z1bmN0aW9uRXhwcmVzc2lvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgJ0Fycm93RnVuY3Rpb25FeHByZXNzaW9uOmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgICAnQmxvY2tTdGF0ZW1lbnQ6ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICdPYmplY3RFeHByZXNzaW9uOmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cy5zY2hlbWEgPSBbXG4gIHtcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBncm91cHM6IHtcbiAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIH0sXG4gICAgICAnbmV3bGluZXMtYmV0d2Vlbic6IHtcbiAgICAgICAgZW51bTogWyAnYWx3YXlzJywgJ25ldmVyJyBdLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgfSxcbl1cbiJdfQ==

@@ -62,2 +62,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL3ByZWZlci1kZWZhdWx0LWV4cG9ydC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSxPQUFPLE9BQVAsR0FBaUIsVUFBUyxPQUFULEVBQWtCO0FBQ2pDLE1BQUksdUJBQXVCLENBQXZCLENBRDZCO0FBRWpDLE1BQUksbUJBQW1CLEtBQW5CLENBRjZCO0FBR2pDLE1BQUksZ0JBQWdCLEtBQWhCLENBSDZCO0FBSWpDLE1BQUksa0JBQWtCLElBQWxCLENBSjZCOztBQU1qQyxTQUFPO0FBQ0wsdUJBQW1CLHlCQUFTLElBQVQsRUFBZTtBQUNoQyxVQUFJLEtBQUssUUFBTCxDQUFjLElBQWQsS0FBdUIsU0FBdkIsRUFBa0M7QUFDcEMsMkJBQW1CLElBQW5CLENBRG9DO09BQXRDLE1BRU87QUFDTCwrQkFESztBQUVMLDBCQUFrQixJQUFsQixDQUZLO09BRlA7S0FEaUI7O0FBU25CLDhCQUEwQixnQ0FBUyxJQUFULEVBQWU7O0FBRXZDLFVBQUksQ0FBQyxLQUFLLFdBQUwsRUFBa0IsT0FBdkI7O0FBRUEsZUFBUyxrQkFBVCxDQUE0QixtQkFBNUIsRUFBaUQ7QUFDL0MsWUFBSSxvQkFBb0IsSUFBcEIsS0FBNkIsZUFBN0IsRUFBOEM7O0FBRWhELDhCQUFvQixVQUFwQixDQUNHLE9BREgsQ0FDVyxVQUFTLFFBQVQsRUFBbUI7QUFDMUIsK0JBQW1CLFNBQVMsS0FBVCxDQUFuQixDQUQwQjtXQUFuQixDQURYLENBRmdEO1NBQWxELE1BTU87O0FBRUwsaUNBRks7U0FOUDtPQURGOztBQWFBLFVBQUksS0FBSyxXQUFMLENBQWlCLFlBQWpCLEVBQStCO0FBQ2pDLGFBQUssV0FBTCxDQUFpQixZQUFqQixDQUE4QixPQUE5QixDQUFzQyxVQUFTLFdBQVQsRUFBc0I7QUFDMUQsNkJBQW1CLFlBQVksRUFBWixDQUFuQixDQUQwRDtTQUF0QixDQUF0QyxDQURpQztPQUFuQyxNQUtLOztBQUVILCtCQUZHO09BTEw7O0FBVUEsd0JBQWtCLElBQWxCLENBM0J1QztLQUFmOztBQThCMUIsZ0NBQTRCLG9DQUFXO0FBQ3JDLHlCQUFtQixJQUFuQixDQURxQztLQUFYOztBQUk1Qiw0QkFBd0IsZ0NBQVc7QUFDakMsc0JBQWdCLElBQWhCLENBRGlDO0tBQVg7O0FBSXhCLG9CQUFnQix1QkFBVztBQUN6QixVQUFJLHlCQUF5QixDQUF6QixJQUE4QixDQUFDLGdCQUFELElBQXFCLENBQUMsYUFBRCxFQUFnQjtBQUNyRSxnQkFBUSxNQUFSLENBQWUsZUFBZixFQUFnQyx3QkFBaEMsRUFEcUU7T0FBdkU7S0FEYztHQWhEbEIsQ0FOaUM7Q0FBbEIiLCJmaWxlIjoicnVsZXMvcHJlZmVyLWRlZmF1bHQtZXhwb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oY29udGV4dCkge1xuICBsZXQgc3BlY2lmaWVyRXhwb3J0Q291bnQgPSAwXG4gIGxldCBoYXNEZWZhdWx0RXhwb3J0ID0gZmFsc2VcbiAgbGV0IGhhc1N0YXJFeHBvcnQgPSBmYWxzZVxuICBsZXQgbmFtZWRFeHBvcnROb2RlID0gbnVsbFxuXG4gIHJldHVybiB7XG4gICAgJ0V4cG9ydFNwZWNpZmllcic6IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLmV4cG9ydGVkLm5hbWUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICBoYXNEZWZhdWx0RXhwb3J0ID0gdHJ1ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3BlY2lmaWVyRXhwb3J0Q291bnQrK1xuICAgICAgICBuYW1lZEV4cG9ydE5vZGUgPSBub2RlXG4gICAgICB9XG4gICAgfSxcblxuICAgICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJzogZnVuY3Rpb24obm9kZSkge1xuICAgICAgLy8gaWYgdGhlcmUgYXJlIHNwZWNpZmllcnMsIG5vZGUuZGVjbGFyYXRpb24gc2hvdWxkIGJlIG51bGxcbiAgICAgIGlmICghbm9kZS5kZWNsYXJhdGlvbikgcmV0dXJuXG5cbiAgICAgIGZ1bmN0aW9uIGNhcHR1cmVEZWNsYXJhdGlvbihpZGVudGlmaWVyT3JQYXR0ZXJuKSB7XG4gICAgICAgIGlmIChpZGVudGlmaWVyT3JQYXR0ZXJuLnR5cGUgPT09ICdPYmplY3RQYXR0ZXJuJykge1xuICAgICAgICAgIC8vIHJlY3Vyc2l2ZWx5IGNhcHR1cmVcbiAgICAgICAgICBpZGVudGlmaWVyT3JQYXR0ZXJuLnByb3BlcnRpZXNcbiAgICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uKHByb3BlcnR5KSB7XG4gICAgICAgICAgICAgIGNhcHR1cmVEZWNsYXJhdGlvbihwcm9wZXJ0eS52YWx1ZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGFzc3VtZSBpdCdzIGEgc2luZ2xlIHN0YW5kYXJkIGlkZW50aWZpZXJcbiAgICAgICAgICBzcGVjaWZpZXJFeHBvcnRDb3VudCsrXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zKSB7XG4gICAgICAgIG5vZGUuZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zLmZvckVhY2goZnVuY3Rpb24oZGVjbGFyYXRpb24pIHtcbiAgICAgICAgICBjYXB0dXJlRGVjbGFyYXRpb24oZGVjbGFyYXRpb24uaWQpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgLy8gY2FwdHVyZXMgJ2V4cG9ydCBmdW5jdGlvbiBmb28oKSB7fScgc3ludGF4XG4gICAgICAgIHNwZWNpZmllckV4cG9ydENvdW50KytcbiAgICAgIH1cblxuICAgICAgbmFtZWRFeHBvcnROb2RlID0gbm9kZVxuICAgIH0sXG5cbiAgICAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJzogZnVuY3Rpb24oKSB7XG4gICAgICBoYXNEZWZhdWx0RXhwb3J0ID0gdHJ1ZVxuICAgIH0sXG5cbiAgICAnRXhwb3J0QWxsRGVjbGFyYXRpb24nOiBmdW5jdGlvbigpIHtcbiAgICAgIGhhc1N0YXJFeHBvcnQgPSB0cnVlXG4gICAgfSxcblxuICAgICdQcm9ncmFtOmV4aXQnOiBmdW5jdGlvbigpIHtcbiAgICAgIGlmIChzcGVjaWZpZXJFeHBvcnRDb3VudCA9PT0gMSAmJiAhaGFzRGVmYXVsdEV4cG9ydCAmJiAhaGFzU3RhckV4cG9ydCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChuYW1lZEV4cG9ydE5vZGUsICdQcmVmZXIgZGVmYXVsdCBleHBvcnQuJylcbiAgICAgIH1cbiAgICB9LFxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL3ByZWZlci1kZWZhdWx0LWV4cG9ydC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSxPQUFPLE9BQVAsR0FBaUIsVUFBUyxPQUFULEVBQWtCO0FBQ2pDLE1BQUksdUJBQXVCLENBQTNCO0FBQ0EsTUFBSSxtQkFBbUIsS0FBdkI7QUFDQSxNQUFJLGdCQUFnQixLQUFwQjtBQUNBLE1BQUksa0JBQWtCLElBQXRCOztBQUVBLFNBQU87QUFDTCx1QkFBbUIseUJBQVMsSUFBVCxFQUFlO0FBQ2hDLFVBQUksS0FBSyxRQUFMLENBQWMsSUFBZCxLQUF1QixTQUEzQixFQUFzQztBQUNwQywyQkFBbUIsSUFBbkI7QUFDRCxPQUZELE1BRU87QUFDTDtBQUNBLDBCQUFrQixJQUFsQjtBQUNEO0FBQ0YsS0FSSTs7QUFVTCw4QkFBMEIsZ0NBQVMsSUFBVCxFQUFlOztBQUV2QyxVQUFJLENBQUMsS0FBSyxXQUFWLEVBQXVCOztBQUV2QixlQUFTLGtCQUFULENBQTRCLG1CQUE1QixFQUFpRDtBQUMvQyxZQUFJLG9CQUFvQixJQUFwQixLQUE2QixlQUFqQyxFQUFrRDs7QUFFaEQsOEJBQW9CLFVBQXBCLENBQ0csT0FESCxDQUNXLFVBQVMsUUFBVCxFQUFtQjtBQUMxQiwrQkFBbUIsU0FBUyxLQUE1QjtBQUNELFdBSEg7QUFJRCxTQU5ELE1BTU87O0FBRUw7QUFDRDtBQUNGOztBQUVELFVBQUksS0FBSyxXQUFMLENBQWlCLFlBQXJCLEVBQW1DO0FBQ2pDLGFBQUssV0FBTCxDQUFpQixZQUFqQixDQUE4QixPQUE5QixDQUFzQyxVQUFTLFdBQVQsRUFBc0I7QUFDMUQsNkJBQW1CLFlBQVksRUFBL0I7QUFDRCxTQUZEO0FBR0QsT0FKRCxNQUtLOztBQUVIO0FBQ0Q7O0FBRUQsd0JBQWtCLElBQWxCO0FBQ0QsS0F0Q0k7O0FBd0NMLGdDQUE0QixvQ0FBVztBQUNyQyx5QkFBbUIsSUFBbkI7QUFDRCxLQTFDSTs7QUE0Q0wsNEJBQXdCLGdDQUFXO0FBQ2pDLHNCQUFnQixJQUFoQjtBQUNELEtBOUNJOztBQWdETCxvQkFBZ0IsdUJBQVc7QUFDekIsVUFBSSx5QkFBeUIsQ0FBekIsSUFBOEIsQ0FBQyxnQkFBL0IsSUFBbUQsQ0FBQyxhQUF4RCxFQUF1RTtBQUNyRSxnQkFBUSxNQUFSLENBQWUsZUFBZixFQUFnQyx3QkFBaEM7QUFDRDtBQUNGO0FBcERJLEdBQVA7QUFzREQsQ0E1REQiLCJmaWxlIjoicnVsZXMvcHJlZmVyLWRlZmF1bHQtZXhwb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oY29udGV4dCkge1xuICBsZXQgc3BlY2lmaWVyRXhwb3J0Q291bnQgPSAwXG4gIGxldCBoYXNEZWZhdWx0RXhwb3J0ID0gZmFsc2VcbiAgbGV0IGhhc1N0YXJFeHBvcnQgPSBmYWxzZVxuICBsZXQgbmFtZWRFeHBvcnROb2RlID0gbnVsbFxuXG4gIHJldHVybiB7XG4gICAgJ0V4cG9ydFNwZWNpZmllcic6IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLmV4cG9ydGVkLm5hbWUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICBoYXNEZWZhdWx0RXhwb3J0ID0gdHJ1ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3BlY2lmaWVyRXhwb3J0Q291bnQrK1xuICAgICAgICBuYW1lZEV4cG9ydE5vZGUgPSBub2RlXG4gICAgICB9XG4gICAgfSxcblxuICAgICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJzogZnVuY3Rpb24obm9kZSkge1xuICAgICAgLy8gaWYgdGhlcmUgYXJlIHNwZWNpZmllcnMsIG5vZGUuZGVjbGFyYXRpb24gc2hvdWxkIGJlIG51bGxcbiAgICAgIGlmICghbm9kZS5kZWNsYXJhdGlvbikgcmV0dXJuXG5cbiAgICAgIGZ1bmN0aW9uIGNhcHR1cmVEZWNsYXJhdGlvbihpZGVudGlmaWVyT3JQYXR0ZXJuKSB7XG4gICAgICAgIGlmIChpZGVudGlmaWVyT3JQYXR0ZXJuLnR5cGUgPT09ICdPYmplY3RQYXR0ZXJuJykge1xuICAgICAgICAgIC8vIHJlY3Vyc2l2ZWx5IGNhcHR1cmVcbiAgICAgICAgICBpZGVudGlmaWVyT3JQYXR0ZXJuLnByb3BlcnRpZXNcbiAgICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uKHByb3BlcnR5KSB7XG4gICAgICAgICAgICAgIGNhcHR1cmVEZWNsYXJhdGlvbihwcm9wZXJ0eS52YWx1ZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGFzc3VtZSBpdCdzIGEgc2luZ2xlIHN0YW5kYXJkIGlkZW50aWZpZXJcbiAgICAgICAgICBzcGVjaWZpZXJFeHBvcnRDb3VudCsrXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zKSB7XG4gICAgICAgIG5vZGUuZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zLmZvckVhY2goZnVuY3Rpb24oZGVjbGFyYXRpb24pIHtcbiAgICAgICAgICBjYXB0dXJlRGVjbGFyYXRpb24oZGVjbGFyYXRpb24uaWQpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgLy8gY2FwdHVyZXMgJ2V4cG9ydCBmdW5jdGlvbiBmb28oKSB7fScgc3ludGF4XG4gICAgICAgIHNwZWNpZmllckV4cG9ydENvdW50KytcbiAgICAgIH1cblxuICAgICAgbmFtZWRFeHBvcnROb2RlID0gbm9kZVxuICAgIH0sXG5cbiAgICAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJzogZnVuY3Rpb24oKSB7XG4gICAgICBoYXNEZWZhdWx0RXhwb3J0ID0gdHJ1ZVxuICAgIH0sXG5cbiAgICAnRXhwb3J0QWxsRGVjbGFyYXRpb24nOiBmdW5jdGlvbigpIHtcbiAgICAgIGhhc1N0YXJFeHBvcnQgPSB0cnVlXG4gICAgfSxcblxuICAgICdQcm9ncmFtOmV4aXQnOiBmdW5jdGlvbigpIHtcbiAgICAgIGlmIChzcGVjaWZpZXJFeHBvcnRDb3VudCA9PT0gMSAmJiAhaGFzRGVmYXVsdEV4cG9ydCAmJiAhaGFzU3RhckV4cG9ydCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChuYW1lZEV4cG9ydE5vZGUsICdQcmVmZXIgZGVmYXVsdCBleHBvcnQuJylcbiAgICAgIH1cbiAgICB9LFxuICB9XG59XG4iXX0=
{
"name": "eslint-plugin-import",
"version": "1.10.0",
"version": "1.10.2",
"description": "Import with sanity.",

@@ -51,3 +51,3 @@ "main": "lib/index.js",

"cross-env": "^1.0.7",
"eslint": "2.x",
"eslint": "3.x",
"eslint-import-resolver-node": "file:./resolvers/node",

@@ -66,3 +66,3 @@ "eslint-import-resolver-webpack": "file:./resolvers/webpack",

"peerDependencies": {
"eslint": "2.x"
"eslint": "2.x - 3.x"
},

@@ -69,0 +69,0 @@ "dependencies": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc