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

deck.gl

Package Overview
Dependencies
Maintainers
3
Versions
674
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

deck.gl - npm Package Compare versions

Comparing version 2.2.2 to 2.2.3

2

dist/attribute-manager.js

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

exports.default = AttributeManager;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hdHRyaWJ1dGUtbWFuYWdlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7OztJQUtxQixnQjs7Ozs7Ozs7Ozs7OztBQVluQixrQ0FBdUI7QUFBQSx1QkFBVixFQUFVO0FBQUEsUUFBVixFQUFVLDJCQUFMLEVBQUs7O0FBQUE7O0FBQ3JCLFNBQUssRUFBTCxHQUFVLEVBQVY7QUFDQSxTQUFLLFVBQUwsR0FBa0IsRUFBbEI7QUFDQSxTQUFLLG1CQUFMLEdBQTJCLEVBQTNCO0FBQ0EsU0FBSyxnQkFBTCxHQUF3QixDQUFDLENBQXpCO0FBQ0EsU0FBSyxXQUFMLEdBQW1CLElBQW5CO0FBQ0EsU0FBSyxRQUFMLEdBQWdCLEVBQWhCOztBQUVBLFdBQU8sSUFBUCxDQUFZLElBQVo7QUFDRDs7Ozs7OztvQ0FHZTtBQUNkLGFBQU8sS0FBSyxVQUFaO0FBQ0Q7Ozs7OzswQ0FHMkI7QUFBQSxVQUFaLFNBQVksU0FBWixTQUFZOztBQUMxQixVQUFNLGNBQWMsS0FBSyxXQUF6QjtBQUNBLFVBQUksU0FBSixFQUFlO0FBQ2IsYUFBSyxXQUFMLEdBQW1CLEtBQW5CO0FBQ0Q7QUFDRCxhQUFPLFdBQVA7QUFDRDs7Ozs7O3dCQUdHLFUsRUFBWSxRLEVBQVU7QUFDeEIsVUFBTSxnQkFBZ0IsS0FBSyxJQUFMLENBQVUsVUFBVixFQUFzQixRQUF0QixFQUFnQyxFQUFoQyxDQUF0QjtBQUNBLGFBQU8sTUFBUCxDQUFjLEtBQUssVUFBbkIsRUFBK0IsYUFBL0I7QUFDRDs7Ozs7OytCQUdVLFUsRUFBWSxRLEVBQVU7QUFDL0IsVUFBTSxnQkFBZ0IsS0FBSyxJQUFMLENBQVUsVUFBVixFQUFzQixRQUF0QixFQUFnQztBQUNwRCxvQkFBWTtBQUR3QyxPQUFoQyxDQUF0QjtBQUdBLGFBQU8sTUFBUCxDQUFjLEtBQUssVUFBbkIsRUFBK0IsYUFBL0I7QUFDRDs7Ozs7O2lDQUdZLFUsRUFBWSxRLEVBQVU7QUFD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UyxFQUFXLE8sRUFBUztBQUMzQyw0QkFBTyxPQUFPLFVBQVUsSUFBakIsS0FBMEIsUUFBakMsZ0NBQzhCLGFBRDlCOzs7QUFJQSw0QkFBTyxPQUFPLFVBQVUsQ0FBVixDQUFQLEtBQXdCLFFBQS9CLGdDQUM4QixhQUQ5QjtBQUVBLFVBQUksVUFBVSxJQUFWLElBQWtCLENBQXRCLEVBQXlCO0FBQ3ZCLDhCQUFPLE9BQU8sVUFBVSxDQUFWLENBQVAsS0FBd0IsUUFBL0IsZ0NBQzhCLGFBRDlCO0FBRUQ7QUFDRCxVQUFJLFVBQVUsSUFBVixJQUFrQixDQUF0QixFQUF5QjtBQUN2Qiw4QkFBTyxPQUFPLFVBQVUsQ0FBVixDQUFQLEtBQXdCLFFBQS9CLGdDQUM4QixhQUQ5QjtBQUVEO0FBQ0QsVUFBSSxVQUFVLElBQVYsSUFBa0IsQ0FBdEIsRUFBeUI7QUFDdkIsOEJBQU8sT0FBTyxVQUFVLENBQVYsQ0FBUCxLQUF3QixRQUEvQixnQ0FDOEIsYUFEOUI7QUFFRDs7O0FBR0QsNEJBQU8sQ0FBQyxPQUFELElBQVksT0FBTyxRQUFRLE1BQWYsS0FBMEIsVUFBN0MsNkJBQzJCLGFBRDNCO0FBRUQ7Ozs7OztrQkEvUWtCLGdCIiwiZmlsZSI6ImF0dHJpYnV0ZS1tYW5hZ2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgZ3VhcmQtZm9yLWluICovXG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuLy8gYXV0bzogLVxuLy8gaW5zdGFuY2VkOiAtIGltcGxpZXMgYXV0b1xuLy9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF0dHJpYnV0ZU1hbmFnZXIge1xuXG4gIC8qKlxuICAgKiBAY2xhc3NkZXNjXG4gICAqIE1hbmFnZXMgYSBsaXN0IG9mIGF0dHJpYnV0ZXMgYW5kIGFuIGluc3RhbmNlIGNvdW50XG4gICAqIEF1dG8gYWxsb2NhdGVzIGFuZCB1cGRhdGVzIFwiaW5zdGFuY2VkXCIgYXR0cmlidXRlcyBhcyBuZWNlc3NhcnlcbiAgICpcbiAgICogLSBrZWVwcyB0cmFjayBvZiB2YWxpZCBzdGF0ZSBmb3IgZWFjaCBhdHRyaWJ1dGVcbiAgICogLSBhdXRvIHJlYWxsb2NhdGVzIGF0dHJpYnV0ZXMgd2hlbiBuZWVkZWRcbiAgICogLSBhdXRvIHVwZGF0ZXMgYXR0cmlidXRlcyB3aXRoIHJlZ2lzdGVyZWQgdXBkYXRlciBmdW5jdGlvbnNcbiAgICogLSBhbGxvd3Mgb3ZlcnJpZGluZyB3aXRoIGFwcGxpY2F0aW9uIHN1cHBsaWVkIGJ1ZmZlcnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHtpZCA9ICcnfSkge1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLmF0dHJpYnV0ZXMgPSB7fTtcbiAgICB0aGlzLmluc3RhbmNlZEF0dHJpYnV0ZXMgPSB7fTtcbiAgICB0aGlzLmFsbG9jZWRJbnN0YW5jZXMgPSAtMTtcbiAgICB0aGlzLm5lZWRzUmVkcmF3ID0gdHJ1ZTtcbiAgICB0aGlzLnVzZXJEYXRhID0ge307XG4gICAgLy8gRm9yIGRlYnVnZ2luZyBzYW5pdHksIHByZXZlbnQgdW5pbml0aWFsaXplZCBtZW1iZXJzXG4gICAgT2JqZWN0LnNlYWwodGhpcyk7XG4gIH1cblxuICAvLyBSZXR1cm5zIGF0dHJpYnV0ZXMgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIHVzZSB3aXRoIEx1bWEuZ2wgTW9kZWwvUHJvZ3JhbVxuICBnZXRBdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXM7XG4gIH1cblxuICAvLyBSZXR1cm5zIHRoZSByZWRyYXcgZmxhZ1xuICBnZXROZWVkc1JlZHJhdyh7Y2xlYXJGbGFnfSkge1xuICAgIGNvbnN0IG5lZWRzUmVkcmF3ID0gdGhpcy5uZWVkc1JlZHJhdztcbiAgICBpZiAoY2xlYXJGbGFnKSB7XG4gICAgICB0aGlzLm5lZWRzUmVkcmF3ID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBuZWVkc1JlZHJhdztcbiAgfVxuXG4gIC8vIEFkZHMgYSBzdGF0aWMgYXR0cmlidXRlICh0aGF0IGlzIG5vdCBhdXRvIHVwZGF0ZWQpXG4gIGFkZChhdHRyaWJ1dGVzLCB1cGRhdGVycykge1xuICAgIGNvbnN0IG5ld0F0dHJpYnV0ZXMgPSB0aGlzLl9hZGQoYXR0cmlidXRlcywgdXBkYXRlcnMsIHt9KTtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuYXR0cmlidXRlcywgbmV3QXR0cmlidXRlcyk7XG4gIH1cblxuICAvLyBBZGRzIGEgZHluYW1pYyBhdHRyaWJ1dGUsIHRoYXQgaXMgYXV0b3VwZGF0ZWRcbiAgYWRkRHluYW1pYyhhdHRyaWJ1dGVzLCB1cGRhdGVycykge1xuICAgIGNvbnN0IG5ld0F0dHJpYnV0ZXMgPSB0aGlzLl9hZGQoYXR0cmlidXRlcywgdXBkYXRlcnMsIHtcbiAgICAgIGF1dG9VcGRhdGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuYXR0cmlidXRlcywgbmV3QXR0cmlidXRlcyk7XG4gIH1cblxuICAvLyBBZGRzIGFuIGluc3RhbmNlZCBhdHRyaWJ1dGUgdGhhdCBpcyBhdXRvdXBkYXRlZFxuICBhZGRJbnN0YW5jZWQoYXR0cmlidXRlcywgdXBkYXRlcnMpIHtcbiAgICBjb25zdCBuZXdBdHRyaWJ1dGVzID0gdGhpcy5fYWRkKGF0dHJpYnV0ZXMsIHVwZGF0ZXJzLCB7XG4gICAgICBpbnN0YW5jZWQ6IDEsXG4gICAgICBhdXRvVXBkYXRlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLmF0dHJpYnV0ZXMsIG5ld0F0dHJpYnV0ZXMpO1xuICAgIC8vIGFuZCBpbnN0YW5jZWRBdHRyaWJ1dGVzIChmb3IgdXBkYXRpbmcgd2hlbiBkYXRhIGNoYW5nZXMpXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLmluc3RhbmNlZEF0dHJpYnV0ZXMsIG5ld0F0dHJpYnV0ZXMpO1xuICB9XG5cbiAgLy8gTWFya3MgYW4gYXR0cmlidXRlIGZvciB1cGRhdGVcbiAgaW52YWxpZGF0ZShhdHRyaWJ1dGVOYW1lKSB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZXN9ID0gdGhpcztcbiAgICBjb25zdCBhdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdO1xuICAgIGFzc2VydChhdHRyaWJ1dGUpO1xuICAgIGF0dHJpYnV0ZS5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gIH1cblxuICBpbnZhbGlkYXRlQWxsKCkge1xuICAgIGNvbnN0IHthdHRyaWJ1dGVzfSA9IHRoaXM7XG4gICAgZm9yIChjb25zdCBhdHRyaWJ1dGVOYW1lIGluIGF0dHJpYnV0ZXMpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV07XG4gICAgICBhdHRyaWJ1dGUubmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIEVuc3VyZSBhbGwgYXR0cmlidXRlIGJ1ZmZlcnMgYXJlIHVwZGF0ZWQgZnJvbSBwcm9wcyBvciBkYXRhXG4gIHVwZGF0ZSh7bnVtSW5zdGFuY2VzLCBidWZmZXJzID0ge30sIGNvbnRleHQsIGRhdGEsIGdldFZhbHVlLCAuLi5vcHRzfSA9IHt9KSB7XG4gICAgdGhpcy5fY2hlY2tCdWZmZXJzKGJ1ZmZlcnMsIG9wdHMpO1xuICAgIHRoaXMuX3NldEJ1ZmZlcnMoYnVmZmVycyk7XG4gICAgdGhpcy5fYWxsb2NhdGVCdWZmZXJzKHtudW1JbnN0YW5jZXN9KTtcbiAgICB0aGlzLl91cGRhdGVCdWZmZXJzKHtudW1JbnN0YW5jZXMsIGNvbnRleHQsIGRhdGEsIGdldFZhbHVlfSk7XG4gIH1cblxuICAvLyBTZXQgdGhlIGJ1ZmZlcnMgZm9yIHRoZSBzdXBwbGllZCBhdHRyaWJ1dGVzXG4gIC8vIFVwZGF0ZSBhdHRyaWJ1dGUgYnVmZmVycyBmcm9tIGFueSBhdHRyaWJ1dGVzIGluIHByb3BzXG4gIC8vIERldGFjaCBhbnkgcHJldmlvdXNseSBzZXQgYnVmZmVycywgbWFya2luZyBhbGxcbiAgLy8gQXR0cmlidXRlcyBmb3IgYXV0byBhbGxvY2F0aW9uXG4gIF9zZXRCdWZmZXJzKGJ1ZmZlck1hcCwgb3B0KSB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZXN9ID0gdGhpcztcblxuICAgIC8vIENvcHkgdGhlIHJlZnMgb2YgYW55IHN1cHBsaWVkIGJ1ZmZlcnMgaW4gdGhlIHByb3BzXG4gICAgZm9yIChjb25zdCBhdHRyaWJ1dGVOYW1lIGluIGF0dHJpYnV0ZXMpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV07XG4gICAgICBjb25zdCBidWZmZXIgPSBidWZmZXJNYXBbYXR0cmlidXRlTmFtZV07XG4gICAgICBpZiAoYnVmZmVyKSB7XG4gICAgICAgIGF0dHJpYnV0ZS5pc0V4dGVybmFsQnVmZmVyID0gdHJ1ZTtcbiAgICAgICAgYXR0cmlidXRlLm5lZWRzVXBkYXRlID0gZmFsc2U7XG4gICAgICAgIGlmIChhdHRyaWJ1dGUudmFsdWUgIT09IGJ1ZmZlcikge1xuICAgICAgICAgIGF0dHJpYnV0ZS52YWx1ZSA9IGJ1ZmZlcjtcbiAgICAgICAgICB0aGlzLm5lZWRzUmVkcmF3ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXR0cmlidXRlLmlzRXh0ZXJuYWxCdWZmZXIgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBBdXRvIGFsbG9jYXRlcyBidWZmZXJzIGZvciBhdHRyaWJ1dGVzXG4gIC8vIE5vdGU6IFRvIHJlZHVjZSBhbGxvY2F0aW9ucywgb25seSBncm93cyBidWZmZXJzXG4gIC8vIE5vdGU6IE9ubHkgYWxsb2NhdGVzIGJ1ZmZlcnMgbm90IHNldCBieSBzZXRCdWZmZXJcbiAgX2FsbG9jYXRlQnVmZmVycyh7bnVtSW5zdGFuY2VzfSkge1xuICAgIGNvbnN0IHthbGxvY2VkSW5zdGFuY2VzLCBhdHRyaWJ1dGVzfSA9IHRoaXM7XG4gICAgYXNzZXJ0KG51bUluc3RhbmNlcyAhPT0gdW5kZWZpbmVkKTtcblxuICAgIGlmIChudW1JbnN0YW5jZXMgPiBhbGxvY2VkSW5zdGFuY2VzKSB7XG4gICAgICAvLyBBbGxvY2F0ZSBhdCBsZWFzdCBvbmUgZWxlbWVudCB0byBlbnN1cmUgYSB2YWxpZCBidWZmZXJcbiAgICAgIGNvbnN0IGFsbG9jQ291bnQgPSBNYXRoLm1heChudW1JbnN0YW5jZXMsIDEpO1xuICAgICAgZm9yIChjb25zdCBhdHRyaWJ1dGVOYW1lIGluIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgICAgY29uc3Qge3NpemUsIGlzRXh0ZXJuYWxCdWZmZXIsIGF1dG9VcGRhdGV9ID0gYXR0cmlidXRlO1xuICAgICAgICBpZiAoIWlzRXh0ZXJuYWxCdWZmZXIgJiYgYXV0b1VwZGF0ZSkge1xuICAgICAgICAgIGNvbnN0IEFycmF5VHlwZSA9IGF0dHJpYnV0ZS50eXBlIHx8IEZsb2F0MzJBcnJheTtcbiAgICAgICAgICBhdHRyaWJ1dGUudmFsdWUgPSBuZXcgQXJyYXlUeXBlKHNpemUgKiBhbGxvY0NvdW50KTtcbiAgICAgICAgICBhdHRyaWJ1dGUubmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgICAgICAgIGxvZygyLCBgYXV0b2FsbG9jYXRlZCAke2FsbG9jQ291bnR9ICR7YXR0cmlidXRlTmFtZX0gZm9yICR7dGhpcy5pZH1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5hbGxvY2VkSW5zdGFuY2VzID0gYWxsb2NDb3VudDtcbiAgICB9XG4gIH1cblxuICBfdXBkYXRlQnVmZmVycyh7bnVtSW5zdGFuY2VzLCBkYXRhLCBnZXRWYWx1ZSwgY29udGV4dH0pIHtcbiAgICBjb25zdCB7YXR0cmlidXRlc30gPSB0aGlzO1xuXG4gICAgLy8gSWYgYXBwIHN1cHBsaWVkIGFsbCBhdHRyaWJ1dGVzLCBubyBuZWVkIHRvIGl0ZXJhdGUgb3ZlciBkYXRhXG5cbiAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZU5hbWUgaW4gYXR0cmlidXRlcykge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgIGNvbnN0IHt1cGRhdGV9ID0gYXR0cmlidXRlO1xuICAgICAgaWYgKGF0dHJpYnV0ZS5uZWVkc1VwZGF0ZSAmJiBhdHRyaWJ1dGUuYXV0b1VwZGF0ZSkge1xuICAgICAgICBpZiAodXBkYXRlKSB7XG4gICAgICAgICAgbG9nKDIsXG4gICAgICAgICAgICBgYXV0b3VwZGF0aW5nICR7bnVtSW5zdGFuY2VzfSAke2F0dHJpYnV0ZU5hbWV9IGZvciAke3RoaXMuaWR9YCk7XG4gICAgICAgICAgdXBkYXRlLmNhbGwoY29udGV4dCwgYXR0cmlidXRlLCBudW1JbnN0YW5jZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZygyLFxuICAgICAgICAgICAgYGF1dG9jYWxjdWxhdGluZyAke251bUluc3RhbmNlc30gJHthdHRyaWJ1dGVOYW1lfSBmb3IgJHt0aGlzLmlkfWApO1xuICAgICAgICAgIHRoaXMuX3VwZGF0ZUF0dHJpYnV0ZUZyb21EYXRhKGF0dHJpYnV0ZSwgZGF0YSwgZ2V0VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGF0dHJpYnV0ZS5uZWVkc1VwZGF0ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm5lZWRzUmVkcmF3ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfdXBkYXRlQXR0cmlidXRlRnJvbURhdGEoYXR0cmlidXRlLCBkYXRhID0gW10sIGdldFZhbHVlID0geCA9PiB4KSB7XG5cbiAgICBsZXQgaSA9IDA7XG4gICAgZm9yIChjb25zdCBvYmplY3Qgb2YgZGF0YSkge1xuICAgICAgY29uc3QgdmFsdWVzID0gZ2V0VmFsdWUob2JqZWN0KTtcbiAgICAgIC8vIElmIHRoaXMgYXR0cmlidXRlJ3MgYnVmZmVyIHdhc24ndCBjb3BpZWQgZnJvbSBwcm9wcywgaW5pdGlhbGl6ZSBpdFxuICAgICAgaWYgKCFhdHRyaWJ1dGUuaXNFeHRlcm5hbEJ1ZmZlcikge1xuICAgICAgICBjb25zdCB7dmFsdWUsIHNpemV9ID0gYXR0cmlidXRlO1xuICAgICAgICB2YWx1ZVtpICogc2l6ZSArIDBdID0gdmFsdWVzW2F0dHJpYnV0ZVswXV07XG4gICAgICAgIGlmIChzaXplID49IDIpIHtcbiAgICAgICAgICB2YWx1ZVtpICogc2l6ZSArIDFdID0gdmFsdWVzW2F0dHJpYnV0ZVswXV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNpemUgPj0gMykge1xuICAgICAgICAgIHZhbHVlW2kgKiBzaXplICsgMl0gPSB2YWx1ZXNbYXR0cmlidXRlWzBdXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2l6ZSA+PSA0KSB7XG4gICAgICAgICAgdmFsdWVbaSAqIHNpemUgKyAzXSA9IHZhbHVlc1thdHRyaWJ1dGVbMF1dO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpKys7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2tzIHRoYXQgYW55IGF0dHJpYnV0ZSBidWZmZXJzIGluIHByb3BzIGFyZSB2YWxpZFxuICAvLyBOb3RlOiBUaGlzIGlzIGp1c3QgdG8gaGVscCBhcHAgY2F0Y2ggbWlzdGFrZXNcbiAgX2NoZWNrQnVmZmVycyhidWZmZXJNYXAgPSB7fSwgb3B0cyA9IHt9KSB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZXMsIG51bUluc3RhbmNlc30gPSB0aGlzO1xuXG4gICAgZm9yIChjb25zdCBhdHRyaWJ1dGVOYW1lIGluIGJ1ZmZlck1hcCkge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgIGNvbnN0IGJ1ZmZlciA9IGJ1ZmZlck1hcFthdHRyaWJ1dGVOYW1lXTtcbiAgICAgIGlmICghYXR0cmlidXRlICYmICFvcHRzLmlnbm9yZVVua25vd25BdHRyaWJ1dGVzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBhdHRyaWJ1dGUgcHJvcCAke2F0dHJpYnV0ZU5hbWV9YCk7XG4gICAgICB9XG4gICAgICBpZiAoYXR0cmlidXRlKSB7XG4gICAgICAgIGlmICghKGJ1ZmZlciBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dHJpYnV0ZSBwcm9wZXJ0aWVzIG11c3QgYmUgb2YgdHlwZSBGbG9hdDMyQXJyYXknKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXR0cmlidXRlLmF1dG8gJiYgYnVmZmVyLmxlbmd0aCA8PSBudW1JbnN0YW5jZXMgKiBhdHRyaWJ1dGUuc2l6ZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQXR0cmlidXRlIHByb3AgYXJyYXkgbXVzdCBtYXRjaCBsZW5ndGggYW5kIHNpemUnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFVzZWQgdG8gcmVnaXN0ZXIgYW4gYXR0cmlidXRlXG4gIF9hZGQoYXR0cmlidXRlcywgdXBkYXRlcnMsIF9leHRyYVByb3BzID0ge30pIHtcblxuICAgIGNvbnN0IG5ld0F0dHJpYnV0ZXMgPSB7fTtcblxuICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBpbiBhdHRyaWJ1dGVzKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdO1xuICAgICAgY29uc3QgdXBkYXRlciA9IHVwZGF0ZXJzICYmIHVwZGF0ZXJzW2F0dHJpYnV0ZU5hbWVdO1xuXG4gICAgICAvLyBDaGVjayBhbGwgZmllbGRzIGFuZCBnZW5lcmF0ZSBoZWxwZnVsIGVycm9yIG1lc3NhZ2VzXG4gICAgICB0aGlzLl92YWxpZGF0ZShhdHRyaWJ1dGVOYW1lLCBhdHRyaWJ1dGUsIHVwZGF0ZXIpO1xuXG4gICAgICAvLyBJbml0aWFsaXplIHRoZSBhdHRyaWJ1dGUgZGVzY3JpcHRvciwgd2l0aCBXZWJHTCBhbmQgbWV0YWRhdGEgZmllbGRzXG4gICAgICBjb25zdCBhdHRyaWJ1dGVEYXRhID0ge1xuICAgICAgICAvLyBFbnN1cmUgdGhhdCBmaWVsZHMgYXJlIHByZXNlbnQgYmVmb3JlIE9iamVjdC5zZWFsKClcbiAgICAgICAgdGFyZ2V0OiB1bmRlZmluZWQsXG4gICAgICAgIGlzSW5kZXhlZDogZmFsc2UsXG5cbiAgICAgICAgLy8gUmVzZXJ2ZWQgZm9yIGFwcGxpY2F0aW9uXG4gICAgICAgIHVzZXJEYXRhOiB7fSxcblxuICAgICAgICAvLyBNZXRhZGF0YVxuICAgICAgICAuLi5hdHRyaWJ1dGUsXG4gICAgICAgIC4uLnVwZGF0ZXIsXG5cbiAgICAgICAgLy8gU3RhdGVcbiAgICAgICAgaXNFeHRlcm5hbEJ1ZmZlcjogZmFsc2UsXG4gICAgICAgIG5lZWRzVXBkYXRlOiB0cnVlLFxuXG4gICAgICAgIC8vIFdlYkdMIGZpZWxkc1xuICAgICAgICBzaXplOiBhdHRyaWJ1dGUuc2l6ZSxcbiAgICAgICAgdmFsdWU6IGF0dHJpYnV0ZS52YWx1ZSB8fCBudWxsLFxuXG4gICAgICAgIC4uLl9leHRyYVByb3BzXG4gICAgICB9O1xuICAgICAgLy8gU2FuaXR5IC0gbm8gYXBwIGZpZWxkcyBvbiBvdXIgYXR0cmlidXRlcy4gVXNlIHVzZXJEYXRhIGluc3RlYWQuXG4gICAgICBPYmplY3Quc2VhbChhdHRyaWJ1dGVEYXRhKTtcblxuICAgICAgLy8gQWRkIHRvIGJvdGggYXR0cmlidXRlcyBsaXN0IChmb3IgcmVnaXN0cmF0aW9uIHdpdGggbW9kZWwpXG4gICAgICB0aGlzLmF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV0gPSBhdHRyaWJ1dGVEYXRhO1xuICAgIH1cblxuICAgIHJldHVybiBuZXdBdHRyaWJ1dGVzO1xuICB9XG5cbiAgX3ZhbGlkYXRlKGF0dHJpYnV0ZU5hbWUsIGF0dHJpYnV0ZSwgdXBkYXRlcikge1xuICAgIGFzc2VydCh0eXBlb2YgYXR0cmlidXRlLnNpemUgPT09ICdudW1iZXInLFxuICAgICAgYEF0dHJpYnV0ZSBkZWZpbml0aW9uIGZvciAke2F0dHJpYnV0ZU5hbWV9IG1pc3Npbmcgc2l6ZWApO1xuXG4gICAgLy8gQ2hlY2sgdGhhdCB2YWx1ZSBleHRyYWN0aW9uIGtleXMgYXJlIHNldFxuICAgIGFzc2VydCh0eXBlb2YgYXR0cmlidXRlWzBdID09PSAnc3RyaW5nJyxcbiAgICAgIGBBdHRyaWJ1dGUgZGVmaW5pdGlvbiBmb3IgJHthdHRyaWJ1dGVOYW1lfSBtaXNzaW5nIGtleSAwYCk7XG4gICAgaWYgKGF0dHJpYnV0ZS5zaXplID49IDIpIHtcbiAgICAgIGFzc2VydCh0eXBlb2YgYXR0cmlidXRlWzFdID09PSAnc3RyaW5nJyxcbiAgICAgICAgYEF0dHJpYnV0ZSBkZWZpbml0aW9uIGZvciAke2F0dHJpYnV0ZU5hbWV9IG1pc3Npbmcga2V5IDFgKTtcbiAgICB9XG4gICAgaWYgKGF0dHJpYnV0ZS5zaXplID49IDMpIHtcbiAgICAgIGFzc2VydCh0eXBlb2YgYXR0cmlidXRlWzJdID09PSAnc3RyaW5nJyxcbiAgICAgICAgYEF0dHJpYnV0ZSBkZWZpbml0aW9uIGZvciAke2F0dHJpYnV0ZU5hbWV9IG1pc3Npbmcga2V5IDJgKTtcbiAgICB9XG4gICAgaWYgKGF0dHJpYnV0ZS5zaXplID49IDQpIHtcbiAgICAgIGFzc2VydCh0eXBlb2YgYXR0cmlidXRlWzNdID09PSAnc3RyaW5nJyxcbiAgICAgICAgYEF0dHJpYnV0ZSBkZWZpbml0aW9uIGZvciAke2F0dHJpYnV0ZU5hbWV9IG1pc3Npbmcga2V5IDNgKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayB0aGUgdXBkYXRlclxuICAgIGFzc2VydCghdXBkYXRlciB8fCB0eXBlb2YgdXBkYXRlci51cGRhdGUgPT09ICdmdW5jdGlvbicsXG4gICAgICBgQXR0cmlidXRlIHVwZGF0ZXIgZm9yICR7YXR0cmlidXRlTmFtZX0gbWlzc2luZyB1cGRhdGUgbWV0aG9kYCk7XG4gIH1cblxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hdHRyaWJ1dGUtbWFuYWdlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7b2pCQUFBOzs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBOztJQUNxQixnQjs7QUFFbkI7Ozs7Ozs7Ozs7O0FBVUEsa0NBQXVCO0FBQUEsdUJBQVYsRUFBVTtBQUFBLFFBQVYsRUFBVSwyQkFBTCxFQUFLOztBQUFBOztBQUNyQixTQUFLLEVBQUwsR0FBVSxFQUFWO0FBQ0EsU0FBSyxVQUFMLEdBQWtCLEVBQWxCO0FBQ0EsU0FBSyxtQkFBTCxHQUEyQixFQUEzQjtBQUNBLFNBQUssZ0JBQUwsR0FBd0IsQ0FBQyxDQUF6QjtBQUNBLFNBQUssV0FBTCxHQUFtQixJQUFuQjtBQUNBLFNBQUssUUFBTCxHQUFnQixFQUFoQjtBQUNBO0FBQ0EsV0FBTyxJQUFQLENBQVksSUFBWjtBQUNEOztBQUVEOzs7OztvQ0FDZ0I7QUFDZCxhQUFPLEtBQUssVUFBWjtBQUNEOztBQUVEOzs7OzBDQUM0QjtBQUFBLFVBQVosU0FBWSxTQUFaLFNBQVk7O0FBQzFCLFVBQU0sY0FBYyxLQUFLLFdBQXpCO0FBQ0EsVUFBSSxTQUFKLEVBQWU7QUFDYixhQUFLLFdBQUwsR0FBbUIsS0FBbkI7QUFDRDtBQUNELGFBQU8sV0FBUDtBQUNEOztBQUVEOzs7O3dCQUNJLFUsRUFBWSxRLEVBQVU7QUFDeEIsVUFBTSxnQkFBZ0IsS0FBSyxJQUFMLENBQVUsVUFBVixFQUFzQixRQUF0QixFQUFnQyxFQUFoQyxDQUF0QjtBQUNBLGFBQU8sTUFBUCxDQUFjLEtBQUssVUFBbkIsRUFBK0IsYUFBL0I7QUFDRDs7QUFFRDs7OzsrQkFDVyxVLEVBQVksUSxFQUFVO0FBQy9CLFVBQU0sZ0JBQWdCLEtBQUssSUFBTCxDQUFVLFVBQVYsRUFBc0IsUUFBdEIsRUFBZ0M7QUFDcEQsb0JBQVk7QUFEd0MsT0FBaEMsQ0FBdEI7QUFHQSxhQUFPLE1BQVAsQ0FBYyxLQUFLLFVBQW5CLEVB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QUFtQjs7QUFsQnRCLFdBb0JELFdBcEJDLENBQU47QUFzQkE7QUFDQSxlQUFPLElBQVAsQ0FBWSxhQUFaOztBQUVBO0FBQ0EsYUFBSyxVQUFMLENBQWdCLGFBQWhCLElBQWlDLGFBQWpDO0FBQ0Q7O0FBRUQsYUFBTyxhQUFQO0FBQ0Q7Ozs4QkFFUyxhLEVBQWUsUyxFQUFXLE8sRUFBUztBQUMzQyw0QkFBTyxPQUFPLFVBQVUsSUFBakIsS0FBMEIsUUFBakMsZ0NBQzhCLGFBRDlCOztBQUdBO0FBQ0EsNEJBQU8sT0FBTyxVQUFVLENBQVYsQ0FBUCxLQUF3QixRQUEvQixnQ0FDOEIsYUFEOUI7QUFFQSxVQUFJLFVBQVUsSUFBVixJQUFrQixDQUF0QixFQUF5QjtBQUN2Qiw4QkFBTyxPQUFPLFVBQVUsQ0FBVixDQUFQLEtBQXdCLFFBQS9CLGdDQUM4QixhQUQ5QjtBQUVEO0FBQ0QsVUFBSSxVQUFVLElBQVYsSUFBa0IsQ0FBdEIsRUFBeUI7QUFDdkIsOEJBQU8sT0FBTyxVQUFVLENBQVYsQ0FBUCxLQUF3QixRQUEvQixnQ0FDOEIsYUFEOUI7QUFFRDtBQUNELFVBQUksVUFBVSxJQUFWLElBQWtCLENBQXRCLEVBQXlCO0FBQ3ZCLDhCQUFPLE9BQU8sVUFBVSxDQUFWLENBQVAsS0FBd0IsUUFBL0IsZ0NBQzhCLGFBRDlCO0FBRUQ7O0FBRUQ7QUFDQSw0QkFBTyxDQUFDLE9BQUQsSUFBWSxPQUFPLFFBQVEsTUFBZixLQUEwQixVQUE3Qyw2QkFDMkIsYUFEM0I7QUFFRDs7Ozs7O2tCQS9Ra0IsZ0IiLCJmaWxlIjoiYXR0cmlidXRlLW1hbmFnZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBndWFyZC1mb3ItaW4gKi9cbmltcG9ydCBsb2cgZnJvbSAnLi9sb2cnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG4vLyBhdXRvOiAtXG4vLyBpbnN0YW5jZWQ6IC0gaW1wbGllcyBhdXRvXG4vL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXR0cmlidXRlTWFuYWdlciB7XG5cbiAgLyoqXG4gICAqIEBjbGFzc2Rlc2NcbiAgICogTWFuYWdlcyBhIGxpc3Qgb2YgYXR0cmlidXRlcyBhbmQgYW4gaW5zdGFuY2UgY291bnRcbiAgICogQXV0byBhbGxvY2F0ZXMgYW5kIHVwZGF0ZXMgXCJpbnN0YW5jZWRcIiBhdHRyaWJ1dGVzIGFzIG5lY2Vzc2FyeVxuICAgKlxuICAgKiAtIGtlZXBzIHRyYWNrIG9mIHZhbGlkIHN0YXRlIGZvciBlYWNoIGF0dHJpYnV0ZVxuICAgKiAtIGF1dG8gcmVhbGxvY2F0ZXMgYXR0cmlidXRlcyB3aGVuIG5lZWRlZFxuICAgKiAtIGF1dG8gdXBkYXRlcyBhdHRyaWJ1dGVzIHdpdGggcmVnaXN0ZXJlZCB1cGRhdGVyIGZ1bmN0aW9uc1xuICAgKiAtIGFsbG93cyBvdmVycmlkaW5nIHdpdGggYXBwbGljYXRpb24gc3VwcGxpZWQgYnVmZmVyc1xuICAgKi9cbiAgY29uc3RydWN0b3Ioe2lkID0gJyd9KSB7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMuYXR0cmlidXRlcyA9IHt9O1xuICAgIHRoaXMuaW5zdGFuY2VkQXR0cmlidXRlcyA9IHt9O1xuICAgIHRoaXMuYWxsb2NlZEluc3RhbmNlcyA9IC0xO1xuICAgIHRoaXMubmVlZHNSZWRyYXcgPSB0cnVlO1xuICAgIHRoaXMudXNlckRhdGEgPSB7fTtcbiAgICAvLyBGb3IgZGVidWdnaW5nIHNhbml0eSwgcHJldmVudCB1bmluaXRpYWxpemVkIG1lbWJlcnNcbiAgICBPYmplY3Quc2VhbCh0aGlzKTtcbiAgfVxuXG4gIC8vIFJldHVybnMgYXR0cmlidXRlcyBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgdXNlIHdpdGggTHVtYS5nbCBNb2RlbC9Qcm9ncmFtXG4gIGdldEF0dHJpYnV0ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXR0cmlidXRlcztcbiAgfVxuXG4gIC8vIFJldHVybnMgdGhlIHJlZHJhdyBmbGFnXG4gIGdldE5lZWRzUmVkcmF3KHtjbGVhckZsYWd9KSB7XG4gICAgY29uc3QgbmVlZHNSZWRyYXcgPSB0aGlzLm5lZWRzUmVkcmF3O1xuICAgIGlmIChjbGVhckZsYWcpIHtcbiAgICAgIHRoaXMubmVlZHNSZWRyYXcgPSBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIG5lZWRzUmVkcmF3O1xuICB9XG5cbiAgLy8gQWRkcyBhIHN0YXRpYyBhdHRyaWJ1dGUgKHRoYXQgaXMgbm90IGF1dG8gdXBkYXRlZClcbiAgYWRkKGF0dHJpYnV0ZXMsIHVwZGF0ZXJzKSB7XG4gICAgY29uc3QgbmV3QXR0cmlidXRlcyA9IHRoaXMuX2FkZChhdHRyaWJ1dGVzLCB1cGRhdGVycywge30pO1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy5hdHRyaWJ1dGVzLCBuZXdBdHRyaWJ1dGVzKTtcbiAgfVxuXG4gIC8vIEFkZHMgYSBkeW5hbWljIGF0dHJpYnV0ZSwgdGhhdCBpcyBhdXRvdXBkYXRlZFxuICBhZGREeW5hbWljKGF0dHJpYnV0ZXMsIHVwZGF0ZXJzKSB7XG4gICAgY29uc3QgbmV3QXR0cmlidXRlcyA9IHRoaXMuX2FkZChhdHRyaWJ1dGVzLCB1cGRhdGVycywge1xuICAgICAgYXV0b1VwZGF0ZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy5hdHRyaWJ1dGVzLCBuZXdBdHRyaWJ1dGVzKTtcbiAgfVxuXG4gIC8vIEFkZHMgYW4gaW5zdGFuY2VkIGF0dHJpYnV0ZSB0aGF0IGlzIGF1dG91cGRhdGVkXG4gIGFkZEluc3RhbmNlZChhdHRyaWJ1dGVzLCB1cGRhdGVycykge1xuICAgIGNvbnN0IG5ld0F0dHJpYnV0ZXMgPSB0aGlzLl9hZGQoYXR0cmlidXRlcywgdXBkYXRlcnMsIHtcbiAgICAgIGluc3RhbmNlZDogMSxcbiAgICAgIGF1dG9VcGRhdGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuYXR0cmlidXRlcywgbmV3QXR0cmlidXRlcyk7XG4gICAgLy8gYW5kIGluc3RhbmNlZEF0dHJpYnV0ZXMgKGZvciB1cGRhdGluZyB3aGVuIGRhdGEgY2hhbmdlcylcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuaW5zdGFuY2VkQXR0cmlidXRlcywgbmV3QXR0cmlidXRlcyk7XG4gIH1cblxuICAvLyBNYXJrcyBhbiBhdHRyaWJ1dGUgZm9yIHVwZGF0ZVxuICBpbnZhbGlkYXRlKGF0dHJpYnV0ZU5hbWUpIHtcbiAgICBjb25zdCB7YXR0cmlidXRlc30gPSB0aGlzO1xuICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV07XG4gICAgYXNzZXJ0KGF0dHJpYnV0ZSk7XG4gICAgYXR0cmlidXRlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgfVxuXG4gIGludmFsaWRhdGVBbGwoKSB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZXN9ID0gdGhpcztcbiAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZU5hbWUgaW4gYXR0cmlidXRlcykge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgIGF0dHJpYnV0ZS5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gRW5zdXJlIGFsbCBhdHRyaWJ1dGUgYnVmZmVycyBhcmUgdXBkYXRlZCBmcm9tIHByb3BzIG9yIGRhdGFcbiAgdXBkYXRlKHtudW1JbnN0YW5jZXMsIGJ1ZmZlcnMgPSB7fSwgY29udGV4dCwgZGF0YSwgZ2V0VmFsdWUsIC4uLm9wdHN9ID0ge30pIHtcbiAgICB0aGlzLl9jaGVja0J1ZmZlcnMoYnVmZmVycywgb3B0cyk7XG4gICAgdGhpcy5fc2V0QnVmZmVycyhidWZmZXJzKTtcbiAgICB0aGlzLl9hbGxvY2F0ZUJ1ZmZlcnMoe251bUluc3RhbmNlc30pO1xuICAgIHRoaXMuX3VwZGF0ZUJ1ZmZlcnMoe251bUluc3RhbmNlcywgY29udGV4dCwgZGF0YSwgZ2V0VmFsdWV9KTtcbiAgfVxuXG4gIC8vIFNldCB0aGUgYnVmZmVycyBmb3IgdGhlIHN1cHBsaWVkIGF0dHJpYnV0ZXNcbiAgLy8gVXBkYXRlIGF0dHJpYnV0ZSBidWZmZXJzIGZyb20gYW55IGF0dHJpYnV0ZXMgaW4gcHJvcHNcbiAgLy8gRGV0YWNoIGFueSBwcmV2aW91c2x5IHNldCBidWZmZXJzLCBtYXJraW5nIGFsbFxuICAvLyBBdHRyaWJ1dGVzIGZvciBhdXRvIGFsbG9jYXRpb25cbiAgX3NldEJ1ZmZlcnMoYnVmZmVyTWFwLCBvcHQpIHtcbiAgICBjb25zdCB7YXR0cmlidXRlc30gPSB0aGlzO1xuXG4gICAgLy8gQ29weSB0aGUgcmVmcyBvZiBhbnkgc3VwcGxpZWQgYnVmZmVycyBpbiB0aGUgcHJvcHNcbiAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZU5hbWUgaW4gYXR0cmlidXRlcykge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgIGNvbnN0IGJ1ZmZlciA9IGJ1ZmZlck1hcFthdHRyaWJ1dGVOYW1lXTtcbiAgICAgIGlmIChidWZmZXIpIHtcbiAgICAgICAgYXR0cmlidXRlLmlzRXh0ZXJuYWxCdWZmZXIgPSB0cnVlO1xuICAgICAgICBhdHRyaWJ1dGUubmVlZHNVcGRhdGUgPSBmYWxzZTtcbiAgICAgICAgaWYgKGF0dHJpYnV0ZS52YWx1ZSAhPT0gYnVmZmVyKSB7XG4gICAgICAgICAgYXR0cmlidXRlLnZhbHVlID0gYnVmZmVyO1xuICAgICAgICAgIHRoaXMubmVlZHNSZWRyYXcgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhdHRyaWJ1dGUuaXNFeHRlcm5hbEJ1ZmZlciA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEF1dG8gYWxsb2NhdGVzIGJ1ZmZlcnMgZm9yIGF0dHJpYnV0ZXNcbiAgLy8gTm90ZTogVG8gcmVkdWNlIGFsbG9jYXRpb25zLCBvbmx5IGdyb3dzIGJ1ZmZlcnNcbiAgLy8gTm90ZTogT25seSBhbGxvY2F0ZXMgYnVmZmVycyBub3Qgc2V0IGJ5IHNldEJ1ZmZlclxuICBfYWxsb2NhdGVCdWZmZXJzKHtudW1JbnN0YW5jZXN9KSB7XG4gICAgY29uc3Qge2FsbG9jZWRJbnN0YW5jZXMsIGF0dHJpYnV0ZXN9ID0gdGhpcztcbiAgICBhc3NlcnQobnVtSW5zdGFuY2VzICE9PSB1bmRlZmluZWQpO1xuXG4gICAgaWYgKG51bUluc3RhbmNlcyA+IGFsbG9jZWRJbnN0YW5jZXMpIHtcbiAgICAgIC8vIEFsbG9jYXRlIGF0IGxlYXN0IG9uZSBlbGVtZW50IHRvIGVuc3VyZSBhIHZhbGlkIGJ1ZmZlclxuICAgICAgY29uc3QgYWxsb2NDb3VudCA9IE1hdGgubWF4KG51bUluc3RhbmNlcywgMSk7XG4gICAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZU5hbWUgaW4gYXR0cmlidXRlcykge1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdO1xuICAgICAgICBjb25zdCB7c2l6ZSwgaXNFeHRlcm5hbEJ1ZmZlciwgYXV0b1VwZGF0ZX0gPSBhdHRyaWJ1dGU7XG4gICAgICAgIGlmICghaXNFeHRlcm5hbEJ1ZmZlciAmJiBhdXRvVXBkYXRlKSB7XG4gICAgICAgICAgY29uc3QgQXJyYXlUeXBlID0gYXR0cmlidXRlLnR5cGUgfHwgRmxvYXQzMkFycmF5O1xuICAgICAgICAgIGF0dHJpYnV0ZS52YWx1ZSA9IG5ldyBBcnJheVR5cGUoc2l6ZSAqIGFsbG9jQ291bnQpO1xuICAgICAgICAgIGF0dHJpYnV0ZS5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgICAgICAgbG9nKDIsIGBhdXRvYWxsb2NhdGVkICR7YWxsb2NDb3VudH0gJHthdHRyaWJ1dGVOYW1lfSBmb3IgJHt0aGlzLmlkfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmFsbG9jZWRJbnN0YW5jZXMgPSBhbGxvY0NvdW50O1xuICAgIH1cbiAgfVxuXG4gIF91cGRhdGVCdWZmZXJzKHtudW1JbnN0YW5jZXMsIGRhdGEsIGdldFZhbHVlLCBjb250ZXh0fSkge1xuICAgIGNvbnN0IHthdHRyaWJ1dGVzfSA9IHRoaXM7XG5cbiAgICAvLyBJZiBhcHAgc3VwcGxpZWQgYWxsIGF0dHJpYnV0ZXMsIG5vIG5lZWQgdG8gaXRlcmF0ZSBvdmVyIGRhdGFcblxuICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBpbiBhdHRyaWJ1dGVzKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdO1xuICAgICAgY29uc3Qge3VwZGF0ZX0gPSBhdHRyaWJ1dGU7XG4gICAgICBpZiAoYXR0cmlidXRlLm5lZWRzVXBkYXRlICYmIGF0dHJpYnV0ZS5hdXRvVXBkYXRlKSB7XG4gICAgICAgIGlmICh1cGRhdGUpIHtcbiAgICAgICAgICBsb2coMixcbiAgICAgICAgICAgIGBhdXRvdXBkYXRpbmcgJHtudW1JbnN0YW5jZXN9ICR7YXR0cmlidXRlTmFtZX0gZm9yICR7dGhpcy5pZH1gKTtcbiAgICAgICAgICB1cGRhdGUuY2FsbChjb250ZXh0LCBhdHRyaWJ1dGUsIG51bUluc3RhbmNlcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nKDIsXG4gICAgICAgICAgICBgYXV0b2NhbGN1bGF0aW5nICR7bnVtSW5zdGFuY2VzfSAke2F0dHJpYnV0ZU5hbWV9IGZvciAke3RoaXMuaWR9YCk7XG4gICAgICAgICAgdGhpcy5fdXBkYXRlQXR0cmlidXRlRnJvbURhdGEoYXR0cmlidXRlLCBkYXRhLCBnZXRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgYXR0cmlidXRlLm5lZWRzVXBkYXRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMubmVlZHNSZWRyYXcgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF91cGRhdGVBdHRyaWJ1dGVGcm9tRGF0YShhdHRyaWJ1dGUsIGRhdGEgPSBbXSwgZ2V0VmFsdWUgPSB4ID0+IHgpIHtcblxuICAgIGxldCBpID0gMDtcbiAgICBmb3IgKGNvbnN0IG9iamVjdCBvZiBkYXRhKSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBnZXRWYWx1ZShvYmplY3QpO1xuICAgICAgLy8gSWYgdGhpcyBhdHRyaWJ1dGUncyBidWZmZXIgd2Fzbid0IGNvcGllZCBmcm9tIHByb3BzLCBpbml0aWFsaXplIGl0XG4gICAgICBpZiAoIWF0dHJpYnV0ZS5pc0V4dGVybmFsQnVmZmVyKSB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgc2l6ZX0gPSBhdHRyaWJ1dGU7XG4gICAgICAgIHZhbHVlW2kgKiBzaXplICsgMF0gPSB2YWx1ZXNbYXR0cmlidXRlWzBdXTtcbiAgICAgICAgaWYgKHNpemUgPj0gMikge1xuICAgICAgICAgIHZhbHVlW2kgKiBzaXplICsgMV0gPSB2YWx1ZXNbYXR0cmlidXRlWzBdXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2l6ZSA+PSAzKSB7XG4gICAgICAgICAgdmFsdWVbaSAqIHNpemUgKyAyXSA9IHZhbHVlc1thdHRyaWJ1dGVbMF1dO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzaXplID49IDQpIHtcbiAgICAgICAgICB2YWx1ZVtpICogc2l6ZSArIDNdID0gdmFsdWVzW2F0dHJpYnV0ZVswXV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGkrKztcbiAgICB9XG4gIH1cblxuICAvLyBDaGVja3MgdGhhdCBhbnkgYXR0cmlidXRlIGJ1ZmZlcnMgaW4gcHJvcHMgYXJlIHZhbGlkXG4gIC8vIE5vdGU6IFRoaXMgaXMganVzdCB0byBoZWxwIGFwcCBjYXRjaCBtaXN0YWtlc1xuICBfY2hlY2tCdWZmZXJzKGJ1ZmZlck1hcCA9IHt9LCBvcHRzID0ge30pIHtcbiAgICBjb25zdCB7YXR0cmlidXRlcywgbnVtSW5zdGFuY2VzfSA9IHRoaXM7XG5cbiAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZU5hbWUgaW4gYnVmZmVyTWFwKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdO1xuICAgICAgY29uc3QgYnVmZmVyID0gYnVmZmVyTWFwW2F0dHJpYnV0ZU5hbWVdO1xuICAgICAgaWYgKCFhdHRyaWJ1dGUgJiYgIW9wdHMuaWdub3JlVW5rbm93bkF0dHJpYnV0ZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGF0dHJpYnV0ZSBwcm9wICR7YXR0cmlidXRlTmFtZX1gKTtcbiAgICAgIH1cbiAgICAgIGlmIChhdHRyaWJ1dGUpIHtcbiAgICAgICAgaWYgKCEoYnVmZmVyIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQXR0cmlidXRlIHByb3BlcnRpZXMgbXVzdCBiZSBvZiB0eXBlIEZsb2F0MzJBcnJheScpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhdHRyaWJ1dGUuYXV0byAmJiBidWZmZXIubGVuZ3RoIDw9IG51bUluc3RhbmNlcyAqIGF0dHJpYnV0ZS5zaXplKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdHRyaWJ1dGUgcHJvcCBhcnJheSBtdXN0IG1hdGNoIGxlbmd0aCBhbmQgc2l6ZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVXNlZCB0byByZWdpc3RlciBhbiBhdHRyaWJ1dGVcbiAgX2FkZChhdHRyaWJ1dGVzLCB1cGRhdGVycywgX2V4dHJhUHJvcHMgPSB7fSkge1xuXG4gICAgY29uc3QgbmV3QXR0cmlidXRlcyA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBhdHRyaWJ1dGVOYW1lIGluIGF0dHJpYnV0ZXMpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV07XG4gICAgICBjb25zdCB1cGRhdGVyID0gdXBkYXRlcnMgJiYgdXBkYXRlcnNbYXR0cmlidXRlTmFtZV07XG5cbiAgICAgIC8vIENoZWNrIGFsbCBmaWVsZHMgYW5kIGdlbmVyYXRlIGhlbHBmdWwgZXJyb3IgbWVzc2FnZXNcbiAgICAgIHRoaXMuX3ZhbGlkYXRlKGF0dHJpYnV0ZU5hbWUsIGF0dHJpYnV0ZSwgdXBkYXRlcik7XG5cbiAgICAgIC8vIEluaXRpYWxpemUgdGhlIGF0dHJpYnV0ZSBkZXNjcmlwdG9yLCB3aXRoIFdlYkdMIGFuZCBtZXRhZGF0YSBmaWVsZHNcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZURhdGEgPSB7XG4gICAgICAgIC8vIEVuc3VyZSB0aGF0IGZpZWxkcyBhcmUgcHJlc2VudCBiZWZvcmUgT2JqZWN0LnNlYWwoKVxuICAgICAgICB0YXJnZXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgaXNJbmRleGVkOiBmYWxzZSxcblxuICAgICAgICAvLyBSZXNlcnZlZCBmb3IgYXBwbGljYXRpb25cbiAgICAgICAgdXNlckRhdGE6IHt9LFxuXG4gICAgICAgIC8vIE1ldGFkYXRhXG4gICAgICAgIC4uLmF0dHJpYnV0ZSxcbiAgICAgICAgLi4udXBkYXRlcixcblxuICAgICAgICAvLyBTdGF0ZVxuICAgICAgICBpc0V4dGVybmFsQnVmZmVyOiBmYWxzZSxcbiAgICAgICAgbmVlZHNVcGRhdGU6IHRydWUsXG5cbiAgICAgICAgLy8gV2ViR0wgZmllbGRzXG4gICAgICAgIHNpemU6IGF0dHJpYnV0ZS5zaXplLFxuICAgICAgICB2YWx1ZTogYXR0cmlidXRlLnZhbHVlIHx8IG51bGwsXG5cbiAgICAgICAgLi4uX2V4dHJhUHJvcHNcbiAgICAgIH07XG4gICAgICAvLyBTYW5pdHkgLSBubyBhcHAgZmllbGRzIG9uIG91ciBhdHRyaWJ1dGVzLiBVc2UgdXNlckRhdGEgaW5zdGVhZC5cbiAgICAgIE9iamVjdC5zZWFsKGF0dHJpYnV0ZURhdGEpO1xuXG4gICAgICAvLyBBZGQgdG8gYm90aCBhdHRyaWJ1dGVzIGxpc3QgKGZvciByZWdpc3RyYXRpb24gd2l0aCBtb2RlbClcbiAgICAgIHRoaXMuYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXSA9IGF0dHJpYnV0ZURhdGE7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld0F0dHJpYnV0ZXM7XG4gIH1cblxuICBfdmFsaWRhdGUoYXR0cmlidXRlTmFtZSwgYXR0cmlidXRlLCB1cGRhdGVyKSB7XG4gICAgYXNzZXJ0KHR5cGVvZiBhdHRyaWJ1dGUuc2l6ZSA9PT0gJ251bWJlcicsXG4gICAgICBgQXR0cmlidXRlIGRlZmluaXRpb24gZm9yICR7YXR0cmlidXRlTmFtZX0gbWlzc2luZyBzaXplYCk7XG5cbiAgICAvLyBDaGVjayB0aGF0IHZhbHVlIGV4dHJhY3Rpb24ga2V5cyBhcmUgc2V0XG4gICAgYXNzZXJ0KHR5cGVvZiBhdHRyaWJ1dGVbMF0gPT09ICdzdHJpbmcnLFxuICAgICAgYEF0dHJpYnV0ZSBkZWZpbml0aW9uIGZvciAke2F0dHJpYnV0ZU5hbWV9IG1pc3Npbmcga2V5IDBgKTtcbiAgICBpZiAoYXR0cmlidXRlLnNpemUgPj0gMikge1xuICAgICAgYXNzZXJ0KHR5cGVvZiBhdHRyaWJ1dGVbMV0gPT09ICdzdHJpbmcnLFxuICAgICAgICBgQXR0cmlidXRlIGRlZmluaXRpb24gZm9yICR7YXR0cmlidXRlTmFtZX0gbWlzc2luZyBrZXkgMWApO1xuICAgIH1cbiAgICBpZiAoYXR0cmlidXRlLnNpemUgPj0gMykge1xuICAgICAgYXNzZXJ0KHR5cGVvZiBhdHRyaWJ1dGVbMl0gPT09ICdzdHJpbmcnLFxuICAgICAgICBgQXR0cmlidXRlIGRlZmluaXRpb24gZm9yICR7YXR0cmlidXRlTmFtZX0gbWlzc2luZyBrZXkgMmApO1xuICAgIH1cbiAgICBpZiAoYXR0cmlidXRlLnNpemUgPj0gNCkge1xuICAgICAgYXNzZXJ0KHR5cGVvZiBhdHRyaWJ1dGVbM10gPT09ICdzdHJpbmcnLFxuICAgICAgICBgQXR0cmlidXRlIGRlZmluaXRpb24gZm9yICR7YXR0cmlidXRlTmFtZX0gbWlzc2luZyBrZXkgM2ApO1xuICAgIH1cblxuICAgIC8vIENoZWNrIHRoZSB1cGRhdGVyXG4gICAgYXNzZXJ0KCF1cGRhdGVyIHx8IHR5cGVvZiB1cGRhdGVyLnVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJyxcbiAgICAgIGBBdHRyaWJ1dGUgdXBkYXRlciBmb3IgJHthdHRyaWJ1dGVOYW1lfSBtaXNzaW5nIHVwZGF0ZSBtZXRob2RgKTtcbiAgfVxuXG59XG4iXX0=

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

})();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9idW5kbGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQTs7QUFDQTs7SUFBWSxNOzs7Ozs7Ozs7QUFFWCxVQUFTLGNBQVQsR0FBMEI7QUFDekIsTUFBSSxPQUFPLE1BQVAsS0FBa0IsV0FBdEIsRUFBbUM7QUFDakMsV0FBTyxNQUFQLEdBQWdCLE1BQWhCO0FBQ0Q7QUFDRixDQUpBLEdBQUQiLCJmaWxlIjoiYnVuZGxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogR2VuZXJhdGUgc2NyaXB0IHRoYXQgY2FuIGJlIHVzZWQgaW4gYnJvd3NlciB3aXRob3V0IGJyb3dzZXJpZnkgKi9cblxuLyogZ2xvYmFsIHdpbmRvdyAqL1xuaW1wb3J0ICdiYWJlbC1wb2x5ZmlsbCc7XG5pbXBvcnQgKiBhcyBEZWNrR0wgZnJvbSAnLi9pbmRleCc7XG5cbihmdW5jdGlvbiBleHBvc2VBc0dsb2JhbCgpIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgd2luZG93LkRlY2tHTCA9IERlY2tHTDtcbiAgfVxufSgpKTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9idW5kbGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQTs7QUFDQTs7SUFBWSxNOzs7O0FBSlo7O0FBRUE7OztBQUlDLFVBQVMsY0FBVCxHQUEwQjtBQUN6QixNQUFJLE9BQU8sTUFBUCxLQUFrQixXQUF0QixFQUFtQztBQUNqQyxXQUFPLE1BQVAsR0FBZ0IsTUFBaEI7QUFDRDtBQUNGLENBSkEsR0FBRCIsImZpbGUiOiJidW5kbGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBHZW5lcmF0ZSBzY3JpcHQgdGhhdCBjYW4gYmUgdXNlZCBpbiBicm93c2VyIHdpdGhvdXQgYnJvd3NlcmlmeSAqL1xuXG4vKiBnbG9iYWwgd2luZG93ICovXG5pbXBvcnQgJ2JhYmVsLXBvbHlmaWxsJztcbmltcG9ydCAqIGFzIERlY2tHTCBmcm9tICcuL2luZGV4JztcblxuKGZ1bmN0aW9uIGV4cG9zZUFzR2xvYmFsKCkge1xuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB3aW5kb3cuRGVja0dMID0gRGVja0dMO1xuICB9XG59KCkpO1xuIl19

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

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CTyxJQUFNLDhDQUFtQjtBQUM5QixVQUFRLElBRHNCO0FBRTlCLFdBQVMsRUFBQyxHQUFHLEdBQUosRUFBUyxHQUFHLEdBQVosRUFBaUIsR0FBRyxHQUFwQixFQUZxQjtBQUc5QixVQUFRLENBQUM7QUFDUCxhQUFTLEVBQUMsR0FBRyxHQUFKLEVBQVMsR0FBRyxHQUFaLEVBQWlCLEdBQUcsR0FBcEIsRUFERjtBQUVQLGNBQVUsRUFBQyxHQUFHLEdBQUosRUFBUyxHQUFHLEdBQVosRUFBaUIsR0FBRyxHQUFwQixFQUZIO0FBR1AsY0FBVSxDQUFDLEdBQUQsRUFBTSxHQUFOLEVBQVcsQ0FBWDtBQUhILEdBQUQ7QUFIc0IsQ0FBekI7O0FBVUEsSUFBTSw4REFBMkIsRUFBQyxHQUFHLENBQUosRUFBTyxHQUFHLENBQVYsRUFBYSxHQUFHLENBQWhCLEVBQW1CLEdBQUcsQ0FBdEIsRUFBakM7O0FBRUEsSUFBTSw4Q0FBbUI7QUFDOUIsVUFBUSxJQURzQjtBQUU5QixhQUFXLENBQUMsV0FBRCxFQUFjLHFCQUFkLENBRm1CO0FBRzlCLGlCQUFlO0FBSGUsQ0FBekIiLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDE2IFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTElHSFRJTkcgPSB7XG4gIGVuYWJsZTogdHJ1ZSxcbiAgYW1iaWVudDoge3I6IDEuMCwgZzogMS4wLCBiOiAxLjB9LFxuICBwb2ludHM6IFt7XG4gICAgZGlmZnVzZToge3I6IDAuOCwgZzogMC44LCBiOiAwLjh9LFxuICAgIHNwZWN1bGFyOiB7cjogMC42LCBnOiAwLjYsIGI6IDAuNn0sXG4gICAgcG9zaXRpb246IFswLjUsIDAuNSwgM11cbiAgfV1cbn07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0tHUk9VTkRfQ09MT1IgPSB7cjogMCwgZzogMCwgYjogMCwgYTogMH07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JMRU5ESU5HID0ge1xuICBlbmFibGU6IHRydWUsXG4gIGJsZW5kRnVuYzogWydTUkNfQUxQSEEnLCAnT05FX01JTlVTX1NSQ19BTFBIQSddLFxuICBibGVuZEVxdWF0aW9uOiAnRlVOQ19BREQnXG59O1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFTyxJQUFNLDhDQUFtQjtBQUM5QixVQUFRLElBRHNCO0FBRTlCLFdBQVMsRUFBQyxHQUFHLEdBQUosRUFBUyxHQUFHLEdBQVosRUFBaUIsR0FBRyxHQUFwQixFQUZxQjtBQUc5QixVQUFRLENBQUM7QUFDUCxhQUFTLEVBQUMsR0FBRyxHQUFKLEVBQVMsR0FBRyxHQUFaLEVBQWlCLEdBQUcsR0FBcEIsRUFERjtBQUVQLGNBQVUsRUFBQyxHQUFHLEdBQUosRUFBUyxHQUFHLEdBQVosRUFBaUIsR0FBRyxHQUFwQixFQUZIO0FBR1AsY0FBVSxDQUFDLEdBQUQsRUFBTSxHQUFOLEVBQVcsQ0FBWDtBQUhILEdBQUQ7QUFIc0IsQ0FBekI7O0FBVUEsSUFBTSw4REFBMkIsRUFBQyxHQUFHLENBQUosRUFBTyxHQUFHLENBQVYsRUFBYSxHQUFHLENBQWhCLEVBQW1CLEdBQUcsQ0FBdEIsRUFBakM7O0FBRUEsSUFBTSw4Q0FBbUI7QUFDOUIsVUFBUSxJQURzQjtBQUU5QixhQUFXLENBQUMsV0FBRCxFQUFjLHFCQUFkLENBRm1CO0FBRzlCLGlCQUFlO0FBSGUsQ0FBekIiLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDE2IFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTElHSFRJTkcgPSB7XG4gIGVuYWJsZTogdHJ1ZSxcbiAgYW1iaWVudDoge3I6IDEuMCwgZzogMS4wLCBiOiAxLjB9LFxuICBwb2ludHM6IFt7XG4gICAgZGlmZnVzZToge3I6IDAuOCwgZzogMC44LCBiOiAwLjh9LFxuICAgIHNwZWN1bGFyOiB7cjogMC42LCBnOiAwLjYsIGI6IDAuNn0sXG4gICAgcG9zaXRpb246IFswLjUsIDAuNSwgM11cbiAgfV1cbn07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0tHUk9VTkRfQ09MT1IgPSB7cjogMCwgZzogMCwgYjogMCwgYTogMH07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JMRU5ESU5HID0ge1xuICBlbmFibGU6IHRydWUsXG4gIGJsZW5kRnVuYzogWydTUkNfQUxQSEEnLCAnT05FX01JTlVTX1NSQ19BTFBIQSddLFxuICBibGVuZEVxdWF0aW9uOiAnRlVOQ19BREQnXG59O1xuIl19

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

exports.default = DeckGLOverlay;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWNrZ2wtb3ZlcmxheS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQkE7Ozs7QUFDQTs7OztBQUVBOzs7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBTSxzQkFDSixPQUFPLE1BQVAsS0FBa0IsV0FBbEIsR0FBZ0MsT0FBTyxnQkFBdkMsR0FBMEQsQ0FENUQ7O0FBR0EsSUFBTSxhQUFhO0FBQ2pCLFNBQU8saUJBQVUsTUFBVixDQUFpQixVQURQO0FBRWpCLFVBQVEsaUJBQVUsTUFBVixDQUFpQixVQUZSO0FBR2pCLFVBQVEsaUJBQVUsS0FBVixDQUFnQixVQUhQO0FBSWpCLFlBQVUsaUJBQVUsTUFKSDtBQUtqQixVQUFRLGlCQUFVLFVBQVYsY0FMUztBQU1qQixjQUFZLGlCQUFVLE1BTkw7QUFPakIsc0JBQW9CLGlCQUFVO0FBUGIsQ0FBbkI7O0FBVUEsSUFBTSxnQkFBZ0I7QUFDcEIsb0NBRG9CO0FBRXBCLFVBQVEsSUFGWTtBQUdwQixjQUFZLG1CQUhRO0FBSXBCLHNCQUFvQiw4QkFBTSxDQUFFO0FBSlIsQ0FBdEI7O0lBT3FCLGE7Ozs7O3dCQUVJO0FBQ3JCLGFBQU8sVUFBUDtBQUNEOzs7d0JBRXlCO0FBQ3hCLGFBQU8sYUFBUDtBQUNEOzs7QUFFRCx5QkFBWSxLQUFaLEVBQW1CO0FBQUE7O0FBQUEsaUdBQ1gsS0FEVzs7QUFFakIsVUFBSyxLQUFMLEdBQWEsRUFBYjtBQUNBLFVBQUssV0FBTCxHQUFtQixJQUFuQjtBQUhpQjtBQUlsQjs7Ozs4Q0FFeUIsUyxFQUFXO0FBQUEsbUJBQ2YsS0FBSyxLQURVO0FBQUEsVUFDNUIsRUFENEIsVUFDNUIsRUFENEI7QUFBQSxVQUN4QixLQUR3QixVQUN4QixLQUR3Qjs7QUFFbkMsc0NBQWE7QUFDWCxtQkFBVyxLQUFLLEtBQUwsQ0FB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QzhCO0FBRDlCLFNBQWIsQ0FBakI7O0FBSUEsaUJBQVMsNkJBQVQ7QUFDQSxlQUFPLElBQVAsR0FBYyxpQkFBVyxFQUFYLEVBQWQ7QUFDQSxzQkFBYyxPQUFPLFVBQXJCLEVBQWlDLFNBQVMsbUJBQVQsRUFBakM7QUFDRDs7QUFFRCxhQUNFLG9FQUNPLFVBRFA7O0FBR0UsZUFBUSxLQUhWO0FBSUUsZ0JBQVMsTUFKWDs7QUFNRSxrQkFBVyxFQUFDLEdBQUcsQ0FBSixFQUFPLEdBQUcsQ0FBVixFQUFhLFlBQWIsRUFBb0IsY0FBcEIsRUFOYjtBQU9FLGdCQUFTLE1BUFg7QUFRRSxlQUFRLEtBUlY7QUFTRSxrQkFBVyxRQVRiO0FBVUUsb0JBQWEsVUFWZjs7QUFZRSwrQkFBd0IsS0FBSyxzQkFaL0I7QUFhRSxzQkFBZSxLQUFLLGtCQWJ0QjtBQWNFLHFCQUFjLEtBQUssWUFkckI7QUFlRSxpQkFBVSxLQUFLLFFBZmpCLElBREY7QUFrQkQ7Ozs7RUFuSHdDLGdCQUFNLFM7a0JBQTVCLGEiLCJmaWxlIjoiZGVja2dsLW92ZXJsYXkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMTUgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG4vKiBnbG9iYWwgd2luZG93ICovXG5pbXBvcnQgUmVhY3QsIHtQcm9wVHlwZXN9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBhdXRvYmluZCBmcm9tICdhdXRvYmluZC1kZWNvcmF0b3InO1xuXG5pbXBvcnQgV2ViR0xSZW5kZXJlciBmcm9tICcuL3dlYmdsLXJlbmRlcmVyJztcbmltcG9ydCB7U2NlbmUsIENhbWVyYSwgUGVyc3BlY3RpdmVDYW1lcmEsIE1hdDR9IGZyb20gJ2x1bWEuZ2wnO1xuaW1wb3J0IHtERUZBVUxUX0xJR0hUSU5HLCBERUZBVUxUX0JMRU5ESU5HLCBERUZBVUxUX0JBQ0tHUk9VTkRfQ09MT1J9XG4gIGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7dXBkYXRlTGF5ZXJzLCBsYXllcnNOZWVkUmVkcmF3fSBmcm9tICcuL2xheWVyLW1hbmFnZXInO1xuLy8gVE9ETyBtb3ZlIHRoaXMgdG8gcmVhY3QtbWFwLWdsIHV0aWxpdHlcbmltcG9ydCBWaWV3cG9ydCBmcm9tICcuL3ZpZXdwb3J0JztcblxuLy8gVE9ETyAtIG1vdmUgZGVmYXVsdCB0byBXZWJHTCByZW5kZXJlclxuY29uc3QgREVGQVVMVF9QSVhFTF9SQVRJTyA9XG4gIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LmRldmljZVBpeGVsUmF0aW8gOiAxO1xuXG5jb25zdCBQUk9QX1RZUEVTID0ge1xuICB3aWR0aDogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICBoZWlnaHQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgbGF5ZXJzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgYmxlbmRpbmc6IFByb3BUeXBlcy5vYmplY3QsXG4gIGNhbWVyYTogUHJvcFR5cGVzLmluc3RhbmNlT2YoQ2FtZXJhKSxcbiAgcGl4ZWxSYXRpbzogUHJvcFR5cGVzLm51bWJlcixcbiAgb25XZWJHTEluaXRpYWxpemVkOiBQcm9wVHlwZXMuZnVuY1xufTtcblxuY29uc3QgREVGQVVMVF9QUk9QUyA9IHtcbiAgYmxlbmRpbmc6IERFRkFVTFRfQkxFTkRJTkcsXG4gIGNhbWVyYTogbnVsbCxcbiAgcGl4ZWxSYXRpbzogREVGQVVMVF9QSVhFTF9SQVRJTyxcbiAgb25XZWJHTEluaXRpYWxpemVkOiAoKSA9PiB7fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGVja0dMT3ZlcmxheSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgc3RhdGljIGdldCBwcm9wVHlwZXMoKSB7XG4gICAgcmV0dXJuIFBST1BfVFlQRVM7XG4gIH1cblxuICBzdGF0aWMgZ2V0IGRlZmF1bHRQcm9wcygpIHtcbiAgICByZXR1cm4gREVGQVVMVF9QUk9QUztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7fTtcbiAgICB0aGlzLm5lZWRzUmVkcmF3ID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgY29uc3Qge2dsLCBzY2VuZX0gPSB0aGlzLnN0YXRlO1xuICAgIHVwZGF0ZUxheWVycyh7XG4gICAgICBvbGRMYXllcnM6IHRoaXMucHJvcHMubGF5ZXJzLFxuICAgICAgbmV3TGF5ZXJzOiBuZXh0UHJvcHMubGF5ZXJzLFxuICAgICAgZ2wsXG4gICAgICBzY2VuZVxuICAgIH0pO1xuICB9XG5cbiAgQGF1dG9iaW5kIF9vblJlbmRlcmVySW5pdGlhbGl6ZWQoe2dsfSkge1xuICAgIHRoaXMucHJvcHMub25XZWJHTEluaXRpYWxpemVkKGdsKTtcbiAgICBjb25zdCBzY2VuZSA9IG5ldyBTY2VuZShnbCwge1xuICAgICAgbGlnaHRzOiBERUZBVUxUX0xJR0hUSU5HLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBERUZBVUxUX0JBQ0tHUk9VTkRfQ09MT1JcbiAgICB9KTtcbiAgICAvLyBOb3RlOiBUcmlnZ2VycyBSZWFjdCBjb21wb25lbnQgdXBkYXRlLCByZXJlbmRpbmcgdXBkYXRlZCBsYXllcnNcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGdsLFxuICAgICAgc2NlbmVcbiAgICB9KTtcbiAgICAvLyBOb3RlOiB0aHJvd3Mgb24gZXJyb3IsIGRvbid0IGFkanVzdCBzdGF0ZSBhZnRlciB0aGlzIGNhbGxcbiAgICB1cGRhdGVMYXllcnMoe1xuICAgICAgb2xkTGF5ZXJzOiBbXSxcbiAgICAgIG5ld0xheWVyczogdGhpcy5wcm9wcy5sYXllcnMsXG4gICAgICBnbCxcbiAgICAgIHNjZW5lXG4gICAgfSk7XG4gIH1cblxuICAvLyBSb3V0ZSBldmVudHMgdG8gbGF5ZXJzXG4gIEBhdXRvYmluZCBfb25DbGljayhpbmZvKSB7XG4gICAgY29uc3Qge3BpY2tlZH0gPSBpbmZvO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBwaWNrZWQpIHtcbiAgICAgIGlmIChpdGVtLm1vZGVsLnVzZXJEYXRhLmxheWVyLm9uQ2xpY2soe2NvbG9yOiBpdGVtLmNvbG9yLCAuLi5pbmZvfSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICAgLy8gUm91dGUgZXZlbnRzIHRvIGxheWVyc1xuICBAYXV0b2JpbmQgX29uTW91c2VNb3ZlKGluZm8pIHtcbiAgICBjb25zdCB7cGlja2VkfSA9IGluZm87XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHBpY2tlZCkge1xuICAgICAgaWYgKGl0ZW0ubW9kZWwudXNlckRhdGEubGF5ZXIub25Ib3Zlcih7Y29sb3I6IGl0ZW0uY29sb3IsIC4uLmluZm99KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGF1dG9iaW5kIF9jaGVja0lmTmVlZFJlZHJhdygpIHtcbiAgICBjb25zdCB7bGF5ZXJzfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGxheWVyc05lZWRSZWRyYXcobGF5ZXJzLCB7Y2xlYXJGbGFnOiB0cnVlfSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgd2lkdGgsIGhlaWdodCwgbGF5ZXJzLCBibGVuZGluZywgcGl4ZWxSYXRpbyxcbiAgICAgIGxhdGl0dWRlLCBsb25naXR1ZGUsIHpvb20sIHBpdGNoLCBiZWFyaW5nLCBhbHRpdHVkZSxcbiAgICAgIC4uLm90aGVyUHJvcHNcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBsZXQge2NhbWVyYX0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHtzY2VuZX0gPSB0aGlzLnN0YXRlO1xuXG4gICAgZnVuY3Rpb24gY29udmVydFRvTWF0NCh0b01hdHJpeCwgZnJvbU1hdHJpeCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmcm9tTWF0cml4Lmxlbmd0aDsgKytpKSB7XG4gICAgICAgIHRvTWF0cml4W2ldID0gZnJvbU1hdHJpeFtpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYSBcImRpc3Bvc2FibGVcIiBjYW1lcmEgYW5kIG92ZXJ3cml0ZSBtYXRyaWNlc1xuICAgIGlmICghY2FtZXJhKSB7XG4gICAgICBjb25zdCB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydCh7XG4gICAgICAgIHdpZHRoLCBoZWlnaHQsIGxhdGl0dWRlLCBsb25naXR1ZGUsIHpvb20sIHBpdGNoLCBiZWFyaW5nLCBhbHRpdHVkZVxuICAgICAgfSk7XG5cbiAgICAgIGNhbWVyYSA9IG5ldyBQZXJzcGVjdGl2ZUNhbWVyYSgpO1xuICAgICAgY2FtZXJhLnZpZXcgPSBuZXcgTWF0NCgpLmlkKCk7XG4gICAgICBjb252ZXJ0VG9NYXQ0KGNhbWVyYS5wcm9qZWN0aW9uLCB2aWV3cG9ydC5nZXRQcm9qZWN0aW9uTWF0cml4KCkpO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8V2ViR0xSZW5kZXJlclxuICAgICAgICB7IC4uLm90aGVyUHJvcHMgfVxuXG4gICAgICAgIHdpZHRoPXsgd2lkdGggfVxuICAgICAgICBoZWlnaHQ9eyBoZWlnaHQgfVxuXG4gICAgICAgIHZpZXdwb3J0PXsge3g6IDAsIHk6IDAsIHdpZHRoLCBoZWlnaHR9IH1cbiAgICAgICAgY2FtZXJhPXsgY2FtZXJhIH1cbiAgICAgICAgc2NlbmU9eyBzY2VuZSB9XG4gICAgICAgIGJsZW5kaW5nPXsgYmxlbmRpbmcgfVxuICAgICAgICBwaXhlbFJhdGlvPXsgcGl4ZWxSYXRpbyB9XG5cbiAgICAgICAgb25SZW5kZXJlckluaXRpYWxpemVkPXsgdGhpcy5fb25SZW5kZXJlckluaXRpYWxpemVkIH1cbiAgICAgICAgb25OZWVkUmVkcmF3PXsgdGhpcy5fY2hlY2tJZk5lZWRSZWRyYXcgfVxuICAgICAgICBvbk1vdXNlTW92ZT17IHRoaXMuX29uTW91c2VNb3ZlIH1cbiAgICAgICAgb25DbGljaz17IHRoaXMuX29uQ2xpY2sgfS8+XG4gICAgKTtcbiAgfVxuXG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWNrZ2wtb3ZlcmxheS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OzswQkFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFTQTs7O0FBUkE7Ozs7QUFDQTs7OztBQUVBOzs7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTtBQUNBLElBQU0sc0JBQ0osT0FBTyxNQUFQLEtBQWtCLFdBQWxCLEdBQWdDLE9BQU8sZ0JBQXZDLEdBQTBELENBRDVEOztBQUdBLElBQU0sYUFBYTtBQUNqQixTQUFPLGlCQUFVLE1BQVYsQ0FBaUIsVUFEUDtBQUVqQixVQUFRLGlCQUFVLE1BQVYsQ0FBaUIsVUFGUjtBQUdqQixVQUFRLGlCQUFVLEtBQVYsQ0FBZ0IsVUFIUDtBQUlqQixZQUFVLGlCQUFVLE1BSkg7QUFLakIsVUFBUSxpQkFBVSxVQUFWLGNBTFM7QUFNakIsY0FBWSxpQkFBVSxNQU5MO0FBT2pCLHNCQUFvQixpQkFBVTtBQVBiLENBQW5COztBQVVBLElBQU0sZ0JBQWdCO0FBQ3BCLG9DQURvQjtBQUVwQixVQUFRLElBRlk7QUFHcEIsY0FBWSxtQkFIUTtBQUlwQixzQkFBb0IsOEJBQU0sQ0FBRTtBQUpSLENBQXRCOztJQU9xQixhOzs7Ozt3QkFFSTtBQUNyQixhQUFPLFVBQVA7QUFDRDs7O3dCQUV5QjtBQUN4QixhQUFPLGFBQVA7QUFDRDs7O0FBRUQseUJBQVksS0FBWixFQUFtQjtBQUFBOztBQUFBLGlHQUNYLEtBRFc7O0FBRWpCLFVBQUssS0FBTCxHQUFhLEVBQWI7QUFDQSxVQUFLLFdBQUwsR0FBbUIsSUFBbkI7QUFIaUI7QUFJbEI7Ozs7OENBRXlCLFMsRUFBVztBQUFBLG1CQUNmLEtBQUssS0FEVTtBQUFBLFVB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RUFBYTtBQUNYLFlBQU0sV0FBVyx1QkFBYTtBQUM1QixzQkFENEIsRUFDckIsY0FEcUIsRUFDYixrQkFEYSxFQUNILG9CQURHLEVBQ1EsVUFEUixFQUNjLFlBRGQsRUFDcUIsZ0JBRHJCLEVBQzhCO0FBRDlCLFNBQWIsQ0FBakI7O0FBSUEsaUJBQVMsNkJBQVQ7QUFDQSxlQUFPLElBQVAsR0FBYyxpQkFBVyxFQUFYLEVBQWQ7QUFDQSxzQkFBYyxPQUFPLFVBQXJCLEVBQWlDLFNBQVMsbUJBQVQsRUFBakM7QUFDRDs7QUFFRCxhQUNFLG9FQUNPLFVBRFA7O0FBR0UsZUFBUSxLQUhWO0FBSUUsZ0JBQVMsTUFKWDs7QUFNRSxrQkFBVyxFQUFDLEdBQUcsQ0FBSixFQUFPLEdBQUcsQ0FBVixFQUFhLFlBQWIsRUFBb0IsY0FBcEIsRUFOYjtBQU9FLGdCQUFTLE1BUFg7QUFRRSxlQUFRLEtBUlY7QUFTRSxrQkFBVyxRQVRiO0FBVUUsb0JBQWEsVUFWZjs7QUFZRSwrQkFBd0IsS0FBSyxzQkFaL0I7QUFhRSxzQkFBZSxLQUFLLGtCQWJ0QjtBQWNFLHFCQUFjLEtBQUssWUFkckI7QUFlRSxpQkFBVSxLQUFLLFFBZmpCLElBREY7QUFrQkQ7Ozs7RUFuSHdDLGdCQUFNLFM7a0JBQTVCLGEiLCJmaWxlIjoiZGVja2dsLW92ZXJsYXkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMTUgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG4vKiBnbG9iYWwgd2luZG93ICovXG5pbXBvcnQgUmVhY3QsIHtQcm9wVHlwZXN9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBhdXRvYmluZCBmcm9tICdhdXRvYmluZC1kZWNvcmF0b3InO1xuXG5pbXBvcnQgV2ViR0xSZW5kZXJlciBmcm9tICcuL3dlYmdsLXJlbmRlcmVyJztcbmltcG9ydCB7U2NlbmUsIENhbWVyYSwgUGVyc3BlY3RpdmVDYW1lcmEsIE1hdDR9IGZyb20gJ2x1bWEuZ2wnO1xuaW1wb3J0IHtERUZBVUxUX0xJR0hUSU5HLCBERUZBVUxUX0JMRU5ESU5HLCBERUZBVUxUX0JBQ0tHUk9VTkRfQ09MT1J9XG4gIGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7dXBkYXRlTGF5ZXJzLCBsYXllcnNOZWVkUmVkcmF3fSBmcm9tICcuL2xheWVyLW1hbmFnZXInO1xuLy8gVE9ETyBtb3ZlIHRoaXMgdG8gcmVhY3QtbWFwLWdsIHV0aWxpdHlcbmltcG9ydCBWaWV3cG9ydCBmcm9tICcuL3ZpZXdwb3J0JztcblxuLy8gVE9ETyAtIG1vdmUgZGVmYXVsdCB0byBXZWJHTCByZW5kZXJlclxuY29uc3QgREVGQVVMVF9QSVhFTF9SQVRJTyA9XG4gIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LmRldmljZVBpeGVsUmF0aW8gOiAxO1xuXG5jb25zdCBQUk9QX1RZUEVTID0ge1xuICB3aWR0aDogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICBoZWlnaHQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgbGF5ZXJzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgYmxlbmRpbmc6IFByb3BUeXBlcy5vYmplY3QsXG4gIGNhbWVyYTogUHJvcFR5cGVzLmluc3RhbmNlT2YoQ2FtZXJhKSxcbiAgcGl4ZWxSYXRpbzogUHJvcFR5cGVzLm51bWJlcixcbiAgb25XZWJHTEluaXRpYWxpemVkOiBQcm9wVHlwZXMuZnVuY1xufTtcblxuY29uc3QgREVGQVVMVF9QUk9QUyA9IHtcbiAgYmxlbmRpbmc6IERFRkFVTFRfQkxFTkRJTkcsXG4gIGNhbWVyYTogbnVsbCxcbiAgcGl4ZWxSYXRpbzogREVGQVVMVF9QSVhFTF9SQVRJTyxcbiAgb25XZWJHTEluaXRpYWxpemVkOiAoKSA9PiB7fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGVja0dMT3ZlcmxheSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgc3RhdGljIGdldCBwcm9wVHlwZXMoKSB7XG4gICAgcmV0dXJuIFBST1BfVFlQRVM7XG4gIH1cblxuICBzdGF0aWMgZ2V0IGRlZmF1bHRQcm9wcygpIHtcbiAgICByZXR1cm4gREVGQVVMVF9QUk9QUztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7fTtcbiAgICB0aGlzLm5lZWRzUmVkcmF3ID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgY29uc3Qge2dsLCBzY2VuZX0gPSB0aGlzLnN0YXRlO1xuICAgIHVwZGF0ZUxheWVycyh7XG4gICAgICBvbGRMYXllcnM6IHRoaXMucHJvcHMubGF5ZXJzLFxuICAgICAgbmV3TGF5ZXJzOiBuZXh0UHJvcHMubGF5ZXJzLFxuICAgICAgZ2wsXG4gICAgICBzY2VuZVxuICAgIH0pO1xuICB9XG5cbiAgQGF1dG9iaW5kIF9vblJlbmRlcmVySW5pdGlhbGl6ZWQoe2dsfSkge1xuICAgIHRoaXMucHJvcHMub25XZWJHTEluaXRpYWxpemVkKGdsKTtcbiAgICBjb25zdCBzY2VuZSA9IG5ldyBTY2VuZShnbCwge1xuICAgICAgbGlnaHRzOiBERUZBVUxUX0xJR0hUSU5HLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBERUZBVUxUX0JBQ0tHUk9VTkRfQ09MT1JcbiAgICB9KTtcbiAgICAvLyBOb3RlOiBUcmlnZ2VycyBSZWFjdCBjb21wb25lbnQgdXBkYXRlLCByZXJlbmRpbmcgdXBkYXRlZCBsYXllcnNcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGdsLFxuICAgICAgc2NlbmVcbiAgICB9KTtcbiAgICAvLyBOb3RlOiB0aHJvd3Mgb24gZXJyb3IsIGRvbid0IGFkanVzdCBzdGF0ZSBhZnRlciB0aGlzIGNhbGxcbiAgICB1cGRhdGVMYXllcnMoe1xuICAgICAgb2xkTGF5ZXJzOiBbXSxcbiAgICAgIG5ld0xheWVyczogdGhpcy5wcm9wcy5sYXllcnMsXG4gICAgICBnbCxcbiAgICAgIHNjZW5lXG4gICAgfSk7XG4gIH1cblxuICAvLyBSb3V0ZSBldmVudHMgdG8gbGF5ZXJzXG4gIEBhdXRvYmluZCBfb25DbGljayhpbmZvKSB7XG4gICAgY29uc3Qge3BpY2tlZH0gPSBpbmZvO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBwaWNrZWQpIHtcbiAgICAgIGlmIChpdGVtLm1vZGVsLnVzZXJEYXRhLmxheWVyLm9uQ2xpY2soe2NvbG9yOiBpdGVtLmNvbG9yLCAuLi5pbmZvfSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICAgLy8gUm91dGUgZXZlbnRzIHRvIGxheWVyc1xuICBAYXV0b2JpbmQgX29uTW91c2VNb3ZlKGluZm8pIHtcbiAgICBjb25zdCB7cGlja2VkfSA9IGluZm87XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHBpY2tlZCkge1xuICAgICAgaWYgKGl0ZW0ubW9kZWwudXNlckRhdGEubGF5ZXIub25Ib3Zlcih7Y29sb3I6IGl0ZW0uY29sb3IsIC4uLmluZm99KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGF1dG9iaW5kIF9jaGVja0lmTmVlZFJlZHJhdygpIHtcbiAgICBjb25zdCB7bGF5ZXJzfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGxheWVyc05lZWRSZWRyYXcobGF5ZXJzLCB7Y2xlYXJGbGFnOiB0cnVlfSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgd2lkdGgsIGhlaWdodCwgbGF5ZXJzLCBibGVuZGluZywgcGl4ZWxSYXRpbyxcbiAgICAgIGxhdGl0dWRlLCBsb25naXR1ZGUsIHpvb20sIHBpdGNoLCBiZWFyaW5nLCBhbHRpdHVkZSxcbiAgICAgIC4uLm90aGVyUHJvcHNcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBsZXQge2NhbWVyYX0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHtzY2VuZX0gPSB0aGlzLnN0YXRlO1xuXG4gICAgZnVuY3Rpb24gY29udmVydFRvTWF0NCh0b01hdHJpeCwgZnJvbU1hdHJpeCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmcm9tTWF0cml4Lmxlbmd0aDsgKytpKSB7XG4gICAgICAgIHRvTWF0cml4W2ldID0gZnJvbU1hdHJpeFtpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYSBcImRpc3Bvc2FibGVcIiBjYW1lcmEgYW5kIG92ZXJ3cml0ZSBtYXRyaWNlc1xuICAgIGlmICghY2FtZXJhKSB7XG4gICAgICBjb25zdCB2aWV3cG9ydCA9IG5ldyBWaWV3cG9ydCh7XG4gICAgICAgIHdpZHRoLCBoZWlnaHQsIGxhdGl0dWRlLCBsb25naXR1ZGUsIHpvb20sIHBpdGNoLCBiZWFyaW5nLCBhbHRpdHVkZVxuICAgICAgfSk7XG5cbiAgICAgIGNhbWVyYSA9IG5ldyBQZXJzcGVjdGl2ZUNhbWVyYSgpO1xuICAgICAgY2FtZXJhLnZpZXcgPSBuZXcgTWF0NCgpLmlkKCk7XG4gICAgICBjb252ZXJ0VG9NYXQ0KGNhbWVyYS5wcm9qZWN0aW9uLCB2aWV3cG9ydC5nZXRQcm9qZWN0aW9uTWF0cml4KCkpO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8V2ViR0xSZW5kZXJlclxuICAgICAgICB7IC4uLm90aGVyUHJvcHMgfVxuXG4gICAgICAgIHdpZHRoPXsgd2lkdGggfVxuICAgICAgICBoZWlnaHQ9eyBoZWlnaHQgfVxuXG4gICAgICAgIHZpZXdwb3J0PXsge3g6IDAsIHk6IDAsIHdpZHRoLCBoZWlnaHR9IH1cbiAgICAgICAgY2FtZXJhPXsgY2FtZXJhIH1cbiAgICAgICAgc2NlbmU9eyBzY2VuZSB9XG4gICAgICAgIGJsZW5kaW5nPXsgYmxlbmRpbmcgfVxuICAgICAgICBwaXhlbFJhdGlvPXsgcGl4ZWxSYXRpbyB9XG5cbiAgICAgICAgb25SZW5kZXJlckluaXRpYWxpemVkPXsgdGhpcy5fb25SZW5kZXJlckluaXRpYWxpemVkIH1cbiAgICAgICAgb25OZWVkUmVkcmF3PXsgdGhpcy5fY2hlY2tJZk5lZWRSZWRyYXcgfVxuICAgICAgICBvbk1vdXNlTW92ZT17IHRoaXMuX29uTW91c2VNb3ZlIH1cbiAgICAgICAgb25DbGljaz17IHRoaXMuX29uQ2xpY2sgfS8+XG4gICAgKTtcbiAgfVxuXG59XG4iXX0=

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

// THE SOFTWARE.
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW9CQTs7OztBQUVBOzs7O0FBRUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUEsT0FBTyxPQUFQLEdBQWlCO0FBQ2Ysd0NBRGU7QUFFZix3QkFGZTtBQUdmLHNDQUhlO0FBSWYsNENBSmU7QUFLZiw4Q0FMZTtBQU1mLGdDQU5lO0FBT2Y7QUFQZSxDQUFqQixDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDE1IFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IERlY2tHTE92ZXJsYXkgZnJvbSAnLi9kZWNrZ2wtb3ZlcmxheSc7XG5cbmltcG9ydCBMYXllciBmcm9tICcuL2xheWVyJztcblxuaW1wb3J0IEhleGFnb25MYXllciBmcm9tICcuL2xheWVycy9oZXhhZ29uLWxheWVyJztcbmltcG9ydCBDaG9yb3BsZXRoTGF5ZXIgZnJvbSAnLi9sYXllcnMvY2hvcm9wbGV0aC1sYXllcic7XG5pbXBvcnQgU2NhdHRlcnBsb3RMYXllciBmcm9tICcuL2xheWVycy9zY2F0dGVycGxvdC1sYXllcic7XG5pbXBvcnQgR3JpZExheWVyIGZyb20gJy4vbGF5ZXJzL2dyaWQtbGF5ZXInO1xuaW1wb3J0IEFyY0xheWVyIGZyb20gJy4vbGF5ZXJzL2FyYy1sYXllcic7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBEZWNrR0xPdmVybGF5LFxuICBMYXllcixcbiAgSGV4YWdvbkxheWVyLFxuICBDaG9yb3BsZXRoTGF5ZXIsXG4gIFNjYXR0ZXJwbG90TGF5ZXIsXG4gIEdyaWRMYXllcixcbiAgQXJjTGF5ZXJcbn07XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW9CQTs7OztBQUVBOzs7O0FBRUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUEsT0FBTyxPQUFQLEdBQWlCO0FBQ2Ysd0NBRGU7QUFFZix3QkFGZTtBQUdmLHNDQUhlO0FBSWYsNENBSmU7QUFLZiw4Q0FMZTtBQU1mLGdDQU5lO0FBT2Y7QUFQZSxDQUFqQixDQTlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxNSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBEZWNrR0xPdmVybGF5IGZyb20gJy4vZGVja2dsLW92ZXJsYXknO1xuXG5pbXBvcnQgTGF5ZXIgZnJvbSAnLi9sYXllcic7XG5cbmltcG9ydCBIZXhhZ29uTGF5ZXIgZnJvbSAnLi9sYXllcnMvaGV4YWdvbi1sYXllcic7XG5pbXBvcnQgQ2hvcm9wbGV0aExheWVyIGZyb20gJy4vbGF5ZXJzL2Nob3JvcGxldGgtbGF5ZXInO1xuaW1wb3J0IFNjYXR0ZXJwbG90TGF5ZXIgZnJvbSAnLi9sYXllcnMvc2NhdHRlcnBsb3QtbGF5ZXInO1xuaW1wb3J0IEdyaWRMYXllciBmcm9tICcuL2xheWVycy9ncmlkLWxheWVyJztcbmltcG9ydCBBcmNMYXllciBmcm9tICcuL2xheWVycy9hcmMtbGF5ZXInO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgRGVja0dMT3ZlcmxheSxcbiAgTGF5ZXIsXG4gIEhleGFnb25MYXllcixcbiAgQ2hvcm9wbGV0aExheWVyLFxuICBTY2F0dGVycGxvdExheWVyLFxuICBHcmlkTGF5ZXIsXG4gIEFyY0xheWVyXG59O1xuIl19

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

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sYXllci1tYW5hZ2VyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O1FBNEJnQixZLEdBQUEsWTtRQWNBLGdCLEdBQUEsZ0I7O0FBakJoQjs7OztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFTyxTQUFTLFlBQVQsT0FBeUQ7QUFBQSxNQUFsQyxTQUFrQyxRQUFsQyxTQUFrQztBQUFBLE1BQXZCLFNBQXVCLFFBQXZCLFNBQXVCO0FBQUEsTUFBWixFQUFZLFFBQVosRUFBWTtBQUFBLE1BQVIsS0FBUSxRQUFSLEtBQVE7OztBQUU5RCxNQUFNLFNBQVMsWUFBWSxTQUFaLEVBQXVCLFNBQXZCLENBQWY7QUFDQSxNQUFNLFNBQVMsa0JBQWtCLFNBQWxCLENBQWY7QUFDQSxNQUFNLFNBQVMsb0JBQW9CLFNBQXBCLENBQWY7QUFDQSxNQUFNLFNBQVMsb0JBQW9CLFNBQXBCLEVBQStCLEVBQUMsTUFBRCxFQUEvQixDQUFmO0FBQ0EsbUJBQWlCLFNBQWpCLEVBQTRCLEtBQTVCOztBQUVBLE1BQU0sUUFBUSxVQUFVLE1BQVYsSUFBb0IsTUFBcEIsSUFBOEIsTUFBNUM7QUFDQSxNQUFJLEtBQUosRUFBVztBQUNULFVBQU0sS0FBTjtBQUNEO0FBQ0Y7O0FBRU0sU0FBUyxnQkFBVCxDQUEwQixNQUExQixTQUErQztBQUFBLE1BQVosU0FBWSxTQUFaLFNBQVk7O0FBQ3BELE1BQUksYUFBYSxLQUFqQjtBQURvRDtBQUFBO0FBQUE7O0FBQUE7QUFFcEQseUJBQW9CLE1BQXBCLDhIQUE0QjtBQUFBLFVBQWpCLEtBQWlCOztBQUMxQixtQkFBYSxjQUFjLE1BQU0sY0FBTixDQUFxQixFQUFDLG9CQUFELEVBQXJCLENBQTNCO0FBQ0Q7QUFKbUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFLcEQsU0FBTyxVQUFQO0FBQ0Q7O0FBRUQsU0FBUyxTQUFULENBQW1C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R0FDYixLQURhLENBQ3RCLEtBRHNCOztBQUU3QixVQUFJLEtBQUosRUFBVztBQUNULFlBQUk7QUFDRixnQkFBTSxhQUFOO0FBQ0QsU0FGRCxDQUVFLE9BQU8sR0FBUCxFQUFZO0FBQ1osa0JBQVEsS0FBUiwyQ0FDMEMsVUFBVSxLQUFWLENBRDFDLEVBQzhELEdBRDlEOztBQUdBLGtCQUFRLFNBQVMsR0FBakI7QUFDRDtBQUNELGNBQU0sS0FBTixHQUFjLElBQWQ7QUFDQSwyQkFBSSxDQUFKLGtCQUFxQixVQUFVLEtBQVYsQ0FBckI7QUFDRDtBQUNGO0FBakJtQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQWtCcEMsU0FBTyxLQUFQO0FBQ0Q7O0FBRUQsU0FBUyxnQkFBVCxDQUEwQixNQUExQixFQUFrQyxLQUFsQyxFQUF5QztBQUN2QyxNQUFJLENBQUMsS0FBTCxFQUFZO0FBQ1Y7QUFDRDs7QUFFRCxRQUFNLFNBQU47QUFMdUM7QUFBQTtBQUFBOztBQUFBO0FBTXZDLDBCQUFvQixNQUFwQixtSUFBNEI7QUFBQSxVQUFqQixLQUFpQjs7O0FBRTFCLFVBQUksTUFBTSxLQUFOLENBQVksS0FBaEIsRUFBdUI7QUFDckIsY0FBTSxHQUFOLENBQVUsTUFBTSxLQUFOLENBQVksS0FBdEI7QUFDRDtBQUNGO0FBWHNDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZeEMiLCJmaWxlIjoibGF5ZXItbWFuYWdlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gSU1MRU1FTlRBVElPTiBOT1RFUzogV2h5IG5ldyBsYXllcnMgYXJlIGNyZWF0ZWQgb24gZXZlcnkgcmVuZGVyXG4vL1xuLy8gVGhlIGtleSBoZXJlIGlzIHRvIHVuZGVyc3RhbmQgdGhlIGRlY2xhcmF0aXZlIC8gZnVuY3Rpb25hbFxuLy8gcHJvZ3JhbW1pbmcgbmF0dXJlIG9mIFJlYWN0LlxuLy9cbi8vIC0gSW4gUmVhY3QsIHRoZSBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlbnRpcmUgXCJVSSB0cmVlXCIgaXMgcmUtcmVuZGVyZWRcbi8vICAgZXZlcnkgdGltZSBzb21ldGhpbmcgY2hhbmdlcy5cbi8vIC0gUmVhY3QgdGhlbiBkaWZmcyB0aGUgcmVuZGVyZWQgdHJlZSBvZiBcIlJlYWN0RWxlbWVudHNcIiBhZ2FpbnN0IHRoZVxuLy8gcHJldmlvdXMgdHJlZSBhbmQgbWFrZXMgb3B0aW1pemVkIGNoYW5nZXMgdG8gdGhlIERPTS5cbi8vXG4vLyAtIER1ZSB0aGUgZGlmZmljdWx0eSBvZiBtYWtpbmcgbm9uLURPTSBlbGVtZW50cyBpbiBSZWFjdCAxNCwgb3VyIExheWVyc1xuLy8gYXJlIGEgXCJwc2V1ZG8tcmVhY3RcIiBjb25zdHJ1Y3QuIFNvLCB0aGUgcmVuZGVyIGZ1bmN0aW9uIHdpbGwgaW5kZWVkIGNyZWF0ZVxuLy8gbmV3IGxheWVycyBldmVyeSByZW5kZXIgY2FsbCwgaG93ZXZlciB0aGUgbmV3IGxheWVycyBhcmUgaW1tZWRpYXRlbHlcbi8vIG1hdGNoZWQgYWdhaW5zdCBleGlzdGluZyBsYXllcnMgdXNpbmcgbGF5ZXIgaW5kZXgvbGF5ZXIgaWQuXG4vLyBBIG5ldyBsYXllcnMgb25seSBoYXMgYSBwcm9wcyBmaWVsZCBwb2ludGluZyB0byB0aGUgdW5tb2RpZmllZCBwcm9wc1xuLy8gb2JqZWN0IHN1cHBsaWVkIGJ5IHRoZSBhcHAgb24gY3JlYXRpb24uXG4vLyBBbGwgY2FsY3VsYXRlZCBzdGF0ZSAocHJvZ3JhbXMsIGF0dHJpYnV0ZXMgZXRjKSBhcmUgc3RvcmVkIGluIGEgc3RhdGUgb2JqZWN0XG4vLyBhbmQgdGhpcyBzdGF0ZSBvYmplY3QgaXMgbW92ZWQgZm9yd2FyZCB0byB0aGUgbmV3IGxheWVyIGV2ZXJ5IHJlbmRlci5cbi8vIFRoZSBuZXcgbGF5ZXIgZW5kcyB1cCB3aXRoIHRoZSBzdGF0ZSBvZiB0aGUgb2xkIGxheWVyIGJ1dCB0aGUgcHJvcHMgb2Zcbi8vIHRoZSBuZXcgbGF5ZXIsIHdoaWxlIHRoZSBvbGQgbGF5ZXIgaXMgZGlzY2FyZGVkLlxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby10cnktY2F0Y2ggKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbi8qIGdsb2JhbCBjb25zb2xlICovXG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUxheWVycyh7b2xkTGF5ZXJzLCBuZXdMYXllcnMsIGdsLCBzY2VuZX0pIHtcbiAgLy8gTWF0Y2ggYWxsIGxheWVycywgY2hlY2tpbmcgZm9yIGNhdWdodCBlcnJvcnNcbiAgY29uc3QgZXJyb3IxID0gbWF0Y2hMYXllcnMob2xkTGF5ZXJzLCBuZXdMYXllcnMpO1xuICBjb25zdCBlcnJvcjIgPSBmaW5hbGl6ZU9sZExheWVycyhvbGRMYXllcnMpO1xuICBjb25zdCBlcnJvcjMgPSB1cGRhdGVNYXRjaGVkTGF5ZXJzKG5ld0xheWVycylcbiAgY29uc3QgZXJyb3I0ID0gaW5pdGlhbGl6ZU5ld0xheWVycyhuZXdMYXllcnMsIHtnbH0pO1xuICBhZGRMYXllcnNUb1NjZW5lKG5ld0xheWVycywgc2NlbmUpO1xuICAvLyBUaHJvdyBmaXJzdCBlcnJvciBmb3VuZCwgaWYgYW55XG4gIGNvbnN0IGVycm9yID0gZXJyb3IxIHx8IGVycm9yMiB8fCBlcnJvcjMgfHwgZXJyb3I0O1xuICBpZiAoZXJyb3IpIHtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbGF5ZXJzTmVlZFJlZHJhdyhsYXllcnMsIHtjbGVhckZsYWd9KSB7XG4gIGxldCBuZWVkUmVkcmF3ID0gZmFsc2U7XG4gIGZvciAoY29uc3QgbGF5ZXIgb2YgbGF5ZXJzKSB7XG4gICAgbmVlZFJlZHJhdyA9IG5lZWRSZWRyYXcgfHwgbGF5ZXIuZ2V0TmVlZHNSZWRyYXcoe2NsZWFyRmxhZ30pO1xuICB9XG4gIHJldHVybiBuZWVkUmVkcmF3O1xufVxuXG5mdW5jdGlvbiBsYXllck5hbWUobGF5ZXIpIHtcbiAgcmV0dXJuIGxheWVyID9cbiAgICBgJHtsYXllci5jb25zdHJ1Y3Rvci5uYW1lfXtpZDonJHtsYXllci5wcm9wcy5pZH0nfWAgOlxuICAgICdudWxsIGxheWVyJztcbn1cblxuZnVuY3Rpb24gbWF0Y2hMYXllcnMob2xkTGF5ZXJzLCBuZXdMYXllcnMpIHtcbiAgbGV0IGVycm9yID0gbnVsbDtcbiAgZm9yIChjb25zdCBuZXdMYXllciBvZiBuZXdMYXllcnMpIHtcbiAgICB0cnkge1xuICAgICAgLy8gMS4gZ2l2ZW4gYSBuZXcgY29taW5nIGxheWVyLCBmaW5kIGl0cyBtYXRjaGluZyBsYXllclxuICAgICAgY29uc3Qgb2xkTGF5ZXIgPSBfZmluZE1hdGNoaW5nTGF5ZXIob2xkTGF5ZXJzLCBuZXdMYXllcik7XG5cbiAgICAgIC8vIE9ubHkgdHJhbnNmZXIgc3RhdGUgYXQgdGhpcyBzdGFnZS4gV2UgbXVzdCBub3QgZ2VuZXJhdGUgZXhjZXB0aW9uc1xuICAgICAgLy8gdW50aWwgYWxsIGxheWVycycgc3RhdGUgaGF2ZSBiZWVuIHRyYW5zZmVycmVkXG4gICAgICBpZiAob2xkTGF5ZXIpIHtcbiAgICAgICAgbG9nKDMsIGBtYXRjaGVkICR7bGF5ZXJOYW1lKG5ld0xheWVyKX1gLCBvbGRMYXllciwgJz0+JywgbmV3TGF5ZXIpO1xuXG4gICAgICAgIF90cmFuc2ZlckxheWVyU3RhdGUob2xkTGF5ZXIsIG5ld0xheWVyKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGBkZWNrLmdsIGVycm9yIGR1cmluZyBtYXRjaGluZyBvZiAke2xheWVyTmFtZShuZXdMYXllcil9YCwgZXJyKTtcbiAgICAgIC8vIFNhdmUgZmlyc3QgZXJyb3JcbiAgICAgIGVycm9yID0gZXJyb3IgfHwgZXJyO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZXJyb3I7XG59XG5cbmZ1bmN0aW9uIF9maW5kTWF0Y2hpbmdMYXllcihvbGRMYXllcnMsIG5ld0xheWVyKSB7XG4gIGNvbnN0IGNhbmRpZGF0ZXMgPSBvbGRMYXllcnMuZmlsdGVyKGwgPT4gbC5wcm9wcy5pZCA9PT0gbmV3TGF5ZXIucHJvcHMuaWQpO1xuICBpZiAoY2FuZGlkYXRlcy5sZW5ndGggPiAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYGRlY2suZ2wgZXJyb3IgbGF5ZXIgaGFzIG1vcmUgdGhhbiBvbmUgbWF0Y2ggJHtsYXllck5hbWUobmV3TGF5ZXIpfWApO1xuICB9XG4gIHJldHVybiBjYW5kaWRhdGVzLmxlbmd0aCA+IDAgJiYgY2FuZGlkYXRlc1swXTtcbn1cblxuZnVuY3Rpb24gX3RyYW5zZmVyTGF5ZXJTdGF0ZShvbGRMYXllciwgbmV3TGF5ZXIpIHtcbiAgY29uc3Qge3N0YXRlLCBwcm9wc30gPSBvbGRMYXllcjtcbiAgYXNzZXJ0KHN0YXRlLCAnTWF0Y2hpbmcgbGF5ZXIgaGFzIG5vIHN0YXRlJyk7XG4gIGFzc2VydChvbGRMYXllciAhPT0gbmV3TGF5ZXIsICdNYXRjaGluZyBsYXllciBpcyBzYW1lJyk7XG4gIC8vIE1vdmUgc3RhdGVcbiAgbmV3TGF5ZXIuc3RhdGUgPSBzdGF0ZTtcbiAgc3RhdGUubGF5ZXIgPSBuZXdMYXllcjtcbiAgLy8gVXBkYXRlIG1vZGVsIGxheWVyIHJlZmVyZW5jZVxuICBpZiAoc3RhdGUubW9kZWwpIHtcbiAgICBzdGF0ZS5tb2RlbC51c2VyRGF0YS5sYXllciA9IG5ld0xheWVyO1xuICB9XG4gIC8vIEtlZXAgYSB0ZW1wb3JhcnkgcmVmIHRvIHRoZSBvbGQgcHJvcHMsIGZvciBwcm9wIGNvbXBhcmlzb25cbiAgbmV3TGF5ZXIub2xkUHJvcHMgPSBwcm9wcztcbiAgb2xkTGF5ZXIuc3RhdGUgPSBudWxsO1xufVxuXG5cbi8vIE5vdGU6IExheWVycyBjYW4ndCBiZSBpbml0aWFsaXplZCB1bnRpbCBnbCBjb250ZXh0IGlzIGF2YWlsYWJsZVxuLy8gVGhlcmVmb3JlIHRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgcmVwZWF0ZWRseVxuLy8gVGhpcyBpcyBhIGhhY2sgYW5kIHNob3VsZCBiZSBjbGVhbmVkIHVwIGluIGNhbGxpbmcgY29kZVxuZnVuY3Rpb24gaW5pdGlhbGl6ZU5ld0xheWVycyhsYXllcnMsIHtnbH0pIHtcbiAgaWYgKCFnbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgbGV0IGVycm9yID0gbnVsbDtcbiAgZm9yIChjb25zdCBsYXllciBvZiBsYXllcnMpIHtcbiAgICAvLyBDaGVjayBpZiBuZXcgbGF5ZXIsIGFuZCBpbml0aWFsaXplIGl0J3Mgc3RhdGVcbiAgICBpZiAoIWxheWVyLnN0YXRlKSB7XG4gICAgICBsb2coMSwgYGluaXRpYWxpemluZyAke2xheWVyTmFtZShsYXllcil9YCk7XG4gICAgICB0cnkge1xuICAgICAgICBsYXllci5pbml0aWFsaXplTGF5ZXIoe2dsfSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgZGVjay5nbCBlcnJvciBkdXJpbmcgaW5pdGlhbGl6YXRpb24gb2YgJHtsYXllck5hbWUobGF5ZXIpfWAsIGVycik7XG4gICAgICAgIC8vIFNhdmUgZmlyc3QgZXJyb3JcbiAgICAgICAgZXJyb3IgPSBlcnJvciB8fCBlcnI7XG4gICAgICB9XG4gICAgICAvLyBTZXQgYmFjayBwb2ludGVyICh1c2VkIGluIHBpY2tpbmcpXG4gICAgICBpZiAobGF5ZXIuc3RhdGUpIHtcbiAgICAgICAgbGF5ZXIuc3RhdGUubGF5ZXIgPSBsYXllcjtcbiAgICAgICAgLy8gU2F2ZSBsYXllciBvbiBtb2RlbCBmb3IgcGlja2luZyBwdXJwb3Nlc1xuICAgICAgICAvLyBUT0RPIC0gc3RvcmUgb24gbW9kZWwudXNlckRhdGEgcmF0aGVyIHRoYW4gZGlyZWN0bHkgb24gbW9kZWxcbiAgICAgIH1cbiAgICAgIGlmIChsYXllci5zdGF0ZSAmJiBsYXllci5zdGF0ZS5tb2RlbCkge1xuICAgICAgICBsYXllci5zdGF0ZS5tb2RlbC51c2VyRGF0YS5sYXllciA9IGxheWVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZXJyb3I7XG59XG5cbi8vIFVwZGF0ZSB0aGUgbWF0Y2hlZCBsYXllcnNcbmZ1bmN0aW9uIHVwZGF0ZU1hdGNoZWRMYXllcnMobmV3TGF5ZXJzKSB7XG4gIGxldCBlcnJvciA9IG51bGw7XG4gIGZvciAoY29uc3QgbGF5ZXIgb2YgbmV3TGF5ZXJzKSB7XG4gICAgY29uc3Qge29sZFByb3BzLCBwcm9wc30gPSBsYXllcjtcbiAgICBpZiAob2xkUHJvcHMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGxheWVyLnVwZGF0ZUxheWVyKG9sZFByb3BzLCBwcm9wcyk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgZGVjay5nbCBlcnJvciBkdXJpbmcgdXBkYXRlIG9mICR7bGF5ZXJOYW1lKGxheWVyKX1gLCBlcnIpO1xuICAgICAgICAvLyBTYXZlIGZpcnN0IGVycm9yXG4gICAgICAgIGVycm9yID0gZXJyb3IgfHwgZXJyO1xuICAgICAgfVxuICAgICAgbG9nKDIsIGB1cGRhdGluZyAke2xheWVyTmFtZShsYXllcil9YCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBlcnJvcjtcbn1cblxuLy8gVXBkYXRlIHRoZSBvbGQgbGF5ZXJzIHRoYXQgd2VyZSBtYXRjaGVkXG5mdW5jdGlvbiBmaW5hbGl6ZU9sZExheWVycyhvbGRMYXllcnMpIHtcbiAgbGV0IGVycm9yID0gbnVsbDtcbiAgLy8gVW5tYXRjaGVkIGxheWVycyBzdGlsbCBoYXZlIHN0YXRlLCBpdCB3aWxsIGJlIGRpc2NhcmRlZFxuICBmb3IgKGNvbnN0IGxheWVyIG9mIG9sZExheWVycykge1xuICAgIGNvbnN0IHtzdGF0ZX0gPSBsYXllcjtcbiAgICBpZiAoc3RhdGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGxheWVyLmZpbmFsaXplTGF5ZXIoKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBkZWNrLmdsIGVycm9yIGR1cmluZyBmaW5hbGl6YXRpb24gb2YgJHtsYXllck5hbWUobGF5ZXIpfWAsIGVycik7XG4gICAgICAgIC8vIFNhdmUgZmlyc3QgZXJyb3JcbiAgICAgICAgZXJyb3IgPSBlcnJvciB8fCBlcnI7XG4gICAgICB9XG4gICAgICBsYXllci5zdGF0ZSA9IG51bGw7XG4gICAgICBsb2coMSwgYGZpbmFsaXppbmcgJHtsYXllck5hbWUobGF5ZXIpfWApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZXJyb3I7XG59XG5cbmZ1bmN0aW9uIGFkZExheWVyc1RvU2NlbmUobGF5ZXJzLCBzY2VuZSkge1xuICBpZiAoIXNjZW5lKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIC8vIGNsZWFyIHNjZW5lIGFuZCByZXBvcHVsYXRlIGJhc2VkIG9uIG5ldyBsYXllcnNcbiAgc2NlbmUucmVtb3ZlQWxsKCk7XG4gIGZvciAoY29uc3QgbGF5ZXIgb2YgbGF5ZXJzKSB7XG4gICAgLy8gQWRkIG1vZGVsIHRvIHNjZW5lXG4gICAgaWYgKGxheWVyLnN0YXRlLm1vZGVsKSB7XG4gICAgICBzY2VuZS5hZGQobGF5ZXIuc3RhdGUubW9kZWwpO1xuICAgIH1cbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sYXllci1tYW5hZ2VyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O1FBNEJnQixZLEdBQUEsWTtRQWNBLGdCLEdBQUEsZ0I7O0FBakJoQjs7OztBQUNBOzs7Ozs7QUF6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFJTyxTQUFTLFlBQVQsT0FBeUQ7QUFBQSxNQUFsQyxTQUFrQyxRQUFsQyxTQUFrQztBQUFBLE1BQXZCLFNBQXVCLFFBQXZCLFNBQXVCO0FBQUEsTUFBWixFQUFZLFFBQVosRUFBWTtBQUFBLE1BQVIsS0FBUSxRQUFSLEtBQVE7O0FBQzlEO0FBQ0EsTUFBTSxTQUFTLFlBQVksU0FBWixFQUF1QixTQUF2QixDQUFmO0FBQ0EsTUFBTSxTQUFTLGtCQUFrQixTQUFsQixDQUFmO0FBQ0EsTUFBTSxTQUFTLG9CQUFvQixTQUFwQixDQUFmO0FBQ0EsTUFBTSxTQUFTLG9CQUFvQixTQUFwQixFQUErQixFQUFDLE1BQUQsRUFBL0IsQ0FBZjtBQUNBLG1CQUFpQixTQUFqQixFQUE0QixLQUE1QjtBQUNBO0FBQ0EsTUFBTSxRQUFRLFVBQVUsTUFBVixJQUFvQixNQUFwQixJQUE4QixNQUE1QztBQUNBLE1BQUksS0FBSixFQUFXO0FBQ1QsVUFBTSxLQUFOO0FBQ0Q7QUFDRjs7QUFFTSxTQUFTLGdCQUFULENBQTBCLE1BQTFCLFNBQStDO0FBQUEsTUFBWixTQUFZLFNBQVosU0FBWTs7QUFDcEQsTUFBSSxhQUFhLEtBQWpCO0FBRG9EO0FBQUE7QUFBQTs7QUFBQTtBQUVwRCx5QkFBb0IsTUFBcEIsOEhBQTRCO0FBQUEsVUFBakIsS0FBaUI7O0FBQzFCLG1CQUFhLGNBQWMsTUFBTSxjQUFOLENBQXFCLEVBQUMsb0JBQUQsRUFBckIsQ0FBM0I7QUFDRDtBQUptRDtBQUFBO0FB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dXJjZXNDb250ZW50IjpbIlxuLy8gSU1MRU1FTlRBVElPTiBOT1RFUzogV2h5IG5ldyBsYXllcnMgYXJlIGNyZWF0ZWQgb24gZXZlcnkgcmVuZGVyXG4vL1xuLy8gVGhlIGtleSBoZXJlIGlzIHRvIHVuZGVyc3RhbmQgdGhlIGRlY2xhcmF0aXZlIC8gZnVuY3Rpb25hbFxuLy8gcHJvZ3JhbW1pbmcgbmF0dXJlIG9mIFJlYWN0LlxuLy9cbi8vIC0gSW4gUmVhY3QsIHRoZSBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlbnRpcmUgXCJVSSB0cmVlXCIgaXMgcmUtcmVuZGVyZWRcbi8vICAgZXZlcnkgdGltZSBzb21ldGhpbmcgY2hhbmdlcy5cbi8vIC0gUmVhY3QgdGhlbiBkaWZmcyB0aGUgcmVuZGVyZWQgdHJlZSBvZiBcIlJlYWN0RWxlbWVudHNcIiBhZ2FpbnN0IHRoZVxuLy8gcHJldmlvdXMgdHJlZSBhbmQgbWFrZXMgb3B0aW1pemVkIGNoYW5nZXMgdG8gdGhlIERPTS5cbi8vXG4vLyAtIER1ZSB0aGUgZGlmZmljdWx0eSBvZiBtYWtpbmcgbm9uLURPTSBlbGVtZW50cyBpbiBSZWFjdCAxNCwgb3VyIExheWVyc1xuLy8gYXJlIGEgXCJwc2V1ZG8tcmVhY3RcIiBjb25zdHJ1Y3QuIFNvLCB0aGUgcmVuZGVyIGZ1bmN0aW9uIHdpbGwgaW5kZWVkIGNyZWF0ZVxuLy8gbmV3IGxheWVycyBldmVyeSByZW5kZXIgY2FsbCwgaG93ZXZlciB0aGUgbmV3IGxheWVycyBhcmUgaW1tZWRpYXRlbHlcbi8vIG1hdGNoZWQgYWdhaW5zdCBleGlzdGluZyBsYXllcnMgdXNpbmcgbGF5ZXIgaW5kZXgvbGF5ZXIgaWQuXG4vLyBBIG5ldyBsYXllcnMgb25seSBoYXMgYSBwcm9wcyBmaWVsZCBwb2ludGluZyB0byB0aGUgdW5tb2RpZmllZCBwcm9wc1xuLy8gb2JqZWN0IHN1cHBsaWVkIGJ5IHRoZSBhcHAgb24gY3JlYXRpb24uXG4vLyBBbGwgY2FsY3VsYXRlZCBzdGF0ZSAocHJvZ3JhbXMsIGF0dHJpYnV0ZXMgZXRjKSBhcmUgc3RvcmVkIGluIGEgc3RhdGUgb2JqZWN0XG4vLyBhbmQgdGhpcyBzdGF0ZSBvYmplY3QgaXMgbW92ZWQgZm9yd2FyZCB0byB0aGUgbmV3IGxheWVyIGV2ZXJ5IHJlbmRlci5cbi8vIFRoZSBuZXcgbGF5ZXIgZW5kcyB1cCB3aXRoIHRoZSBzdGF0ZSBvZiB0aGUgb2xkIGxheWVyIGJ1dCB0aGUgcHJvcHMgb2Zcbi8vIHRoZSBuZXcgbGF5ZXIsIHdoaWxlIHRoZSBvbGQgbGF5ZXIgaXMgZGlzY2FyZGVkLlxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby10cnktY2F0Y2ggKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbi8qIGdsb2JhbCBjb25zb2xlICovXG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUxheWVycyh7b2xkTGF5ZXJzLCBuZXdMYXllcnMsIGdsLCBzY2VuZX0pIHtcbiAgLy8gTWF0Y2ggYWxsIGxheWVycywgY2hlY2tpbmcgZm9yIGNhdWdodCBlcnJvcnNcbiAgY29uc3QgZXJyb3IxID0gbWF0Y2hMYXllcnMob2xkTGF5ZXJzLCBuZXdMYXllcnMpO1xuICBjb25zdCBlcnJvcjIgPSBmaW5hbGl6ZU9sZExheWVycyhvbGRMYXllcnMpO1xuICBjb25zdCBlcnJvcjMgPSB1cGRhdGVNYXRjaGVkTGF5ZXJzKG5ld0xheWVycylcbiAgY29uc3QgZXJyb3I0ID0gaW5pdGlhbGl6ZU5ld0xheWVycyhuZXdMYXllcnMsIHtnbH0pO1xuICBhZGRMYXllcnNUb1NjZW5lKG5ld0xheWVycywgc2NlbmUpO1xuICAvLyBUaHJvdyBmaXJzdCBlcnJvciBmb3VuZCwgaWYgYW55XG4gIGNvbnN0IGVycm9yID0gZXJyb3IxIHx8IGVycm9yMiB8fCBlcnJvcjMgfHwgZXJyb3I0O1xuICBpZiAoZXJyb3IpIHtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbGF5ZXJzTmVlZFJlZHJhdyhsYXllcnMsIHtjbGVhckZsYWd9KSB7XG4gIGxldCBuZWVkUmVkcmF3ID0gZmFsc2U7XG4gIGZvciAoY29uc3QgbGF5ZXIgb2YgbGF5ZXJzKSB7XG4gICAgbmVlZFJlZHJhdyA9IG5lZWRSZWRyYXcgfHwgbGF5ZXIuZ2V0TmVlZHNSZWRyYXcoe2NsZWFyRmxhZ30pO1xuICB9XG4gIHJldHVybiBuZWVkUmVkcmF3O1xufVxuXG5mdW5jdGlvbiBsYXllck5hbWUobGF5ZXIpIHtcbiAgcmV0dXJuIGxheWVyID9cbiAgICBgJHtsYXllci5jb25zdHJ1Y3Rvci5uYW1lfXtpZDonJHtsYXllci5wcm9wcy5pZH0nfWAgOlxuICAgICdudWxsIGxheWVyJztcbn1cblxuZnVuY3Rpb24gbWF0Y2hMYXllcnMob2xkTGF5ZXJzLCBuZXdMYXllcnMpIHtcbiAgbGV0IGVycm9yID0gbnVsbDtcbiAgZm9yIChjb25zdCBuZXdMYXllciBvZiBuZXdMYXllcnMpIHtcbiAgICB0cnkge1xuICAgICAgLy8gMS4gZ2l2ZW4gYSBuZXcgY29taW5nIGxheWVyLCBmaW5kIGl0cyBtYXRjaGluZyBsYXllclxuICAgICAgY29uc3Qgb2xkTGF5ZXIgPSBfZmluZE1hdGNoaW5nTGF5ZXIob2xkTGF5ZXJzLCBuZXdMYXllcik7XG5cbiAgICAgIC8vIE9ubHkgdHJhbnNmZXIgc3RhdGUgYXQgdGhpcyBzdGFnZS4gV2UgbXVzdCBub3QgZ2VuZXJhdGUgZXhjZXB0aW9uc1xuICAgICAgLy8gdW50aWwgYWxsIGxheWVycycgc3RhdGUgaGF2ZSBiZWVuIHRyYW5zZmVycmVkXG4gICAgICBpZiAob2xkTGF5ZXIpIHtcbiAgICAgICAgbG9nKDMsIGBtYXRjaGVkICR7bGF5ZXJOYW1lKG5ld0xheWVyKX1gLCBvbGRMYXllciwgJz0+JywgbmV3TGF5ZXIpO1xuXG4gICAgICAgIF90cmFuc2ZlckxheWVyU3RhdGUob2xkTGF5ZXIsIG5ld0xheWVyKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGBkZWNrLmdsIGVycm9yIGR1cmluZyBtYXRjaGluZyBvZiAke2xheWVyTmFtZShuZXdMYXllcil9YCwgZXJyKTtcbiAgICAgIC8vIFNhdmUgZmlyc3QgZXJyb3JcbiAgICAgIGVycm9yID0gZXJyb3IgfHwgZXJyO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZXJyb3I7XG59XG5cbmZ1bmN0aW9uIF9maW5kTWF0Y2hpbmdMYXllcihvbGRMYXllcnMsIG5ld0xheWVyKSB7XG4gIGNvbnN0IGNhbmRpZGF0ZXMgPSBvbGRMYXllcnMuZmlsdGVyKGwgPT4gbC5wcm9wcy5pZCA9PT0gbmV3TGF5ZXIucHJvcHMuaWQpO1xuICBpZiAoY2FuZGlkYXRlcy5sZW5ndGggPiAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYGRlY2suZ2wgZXJyb3IgbGF5ZXIgaGFzIG1vcmUgdGhhbiBvbmUgbWF0Y2ggJHtsYXllck5hbWUobmV3TGF5ZXIpfWApO1xuICB9XG4gIHJldHVybiBjYW5kaWRhdGVzLmxlbmd0aCA+IDAgJiYgY2FuZGlkYXRlc1swXTtcbn1cblxuZnVuY3Rpb24gX3RyYW5zZmVyTGF5ZXJTdGF0ZShvbGRMYXllciwgbmV3TGF5ZXIpIHtcbiAgY29uc3Qge3N0YXRlLCBwcm9wc30gPSBvbGRMYXllcjtcbiAgYXNzZXJ0KHN0YXRlLCAnTWF0Y2hpbmcgbGF5ZXIgaGFzIG5vIHN0YXRlJyk7XG4gIGFzc2VydChvbGRMYXllciAhPT0gbmV3TGF5ZXIsICdNYXRjaGluZyBsYXllciBpcyBzYW1lJyk7XG4gIC8vIE1vdmUgc3RhdGVcbiAgbmV3TGF5ZXIuc3RhdGUgPSBzdGF0ZTtcbiAgc3RhdGUubGF5ZXIgPSBuZXdMYXllcjtcbiAgLy8gVXBkYXRlIG1vZGVsIGxheWVyIHJlZmVyZW5jZVxuICBpZiAoc3RhdGUubW9kZWwpIHtcbiAgICBzdGF0ZS5tb2RlbC51c2VyRGF0YS5sYXllciA9IG5ld0xheWVyO1xuICB9XG4gIC8vIEtlZXAgYSB0ZW1wb3JhcnkgcmVmIHRvIHRoZSBvbGQgcHJvcHMsIGZvciBwcm9wIGNvbXBhcmlzb25cbiAgbmV3TGF5ZXIub2xkUHJvcHMgPSBwcm9wcztcbiAgb2xkTGF5ZXIuc3RhdGUgPSBudWxsO1xufVxuXG5cbi8vIE5vdGU6IExheWVycyBjYW4ndCBiZSBpbml0aWFsaXplZCB1bnRpbCBnbCBjb250ZXh0IGlzIGF2YWlsYWJsZVxuLy8gVGhlcmVmb3JlIHRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgcmVwZWF0ZWRseVxuLy8gVGhpcyBpcyBhIGhhY2sgYW5kIHNob3VsZCBiZSBjbGVhbmVkIHVwIGluIGNhbGxpbmcgY29kZVxuZnVuY3Rpb24gaW5pdGlhbGl6ZU5ld0xheWVycyhsYXllcnMsIHtnbH0pIHtcbiAgaWYgKCFnbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgbGV0IGVycm9yID0gbnVsbDtcbiAgZm9yIChjb25zdCBsYXllciBvZiBsYXllcnMpIHtcbiAgICAvLyBDaGVjayBpZiBuZXcgbGF5ZXIsIGFuZCBpbml0aWFsaXplIGl0J3Mgc3RhdGVcbiAgICBpZiAoIWxheWVyLnN0YXRlKSB7XG4gICAgICBsb2coMSwgYGluaXRpYWxpemluZyAke2xheWVyTmFtZShsYXllcil9YCk7XG4gICAgICB0cnkge1xuICAgICAgICBsYXllci5pbml0aWFsaXplTGF5ZXIoe2dsfSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgZGVjay5nbCBlcnJvciBkdXJpbmcgaW5pdGlhbGl6YXRpb24gb2YgJHtsYXllck5hbWUobGF5ZXIpfWAsIGVycik7XG4gICAgICAgIC8vIFNhdmUgZmlyc3QgZXJyb3JcbiAgICAgICAgZXJyb3IgPSBlcnJvciB8fCBlcnI7XG4gICAgICB9XG4gICAgICAvLyBTZXQgYmFjayBwb2ludGVyICh1c2VkIGluIHBpY2tpbmcpXG4gICAgICBpZiAobGF5ZXIuc3RhdGUpIHtcbiAgICAgICAgbGF5ZXIuc3RhdGUubGF5ZXIgPSBsYXllcjtcbiAgICAgICAgLy8gU2F2ZSBsYXllciBvbiBtb2RlbCBmb3IgcGlja2luZyBwdXJwb3Nlc1xuICAgICAgICAvLyBUT0RPIC0gc3RvcmUgb24gbW9kZWwudXNlckRhdGEgcmF0aGVyIHRoYW4gZGlyZWN0bHkgb24gbW9kZWxcbiAgICAgIH1cbiAgICAgIGlmIChsYXllci5zdGF0ZSAmJiBsYXllci5zdGF0ZS5tb2RlbCkge1xuICAgICAgICBsYXllci5zdGF0ZS5tb2RlbC51c2VyRGF0YS5sYXllciA9IGxheWVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZXJyb3I7XG59XG5cbi8vIFVwZGF0ZSB0aGUgbWF0Y2hlZCBsYXllcnNcbmZ1bmN0aW9uIHVwZGF0ZU1hdGNoZWRMYXllcnMobmV3TGF5ZXJzKSB7XG4gIGxldCBlcnJvciA9IG51bGw7XG4gIGZvciAoY29uc3QgbGF5ZXIgb2YgbmV3TGF5ZXJzKSB7XG4gICAgY29uc3Qge29sZFByb3BzLCBwcm9wc30gPSBsYXllcjtcbiAgICBpZiAob2xkUHJvcHMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGxheWVyLnVwZGF0ZUxheWVyKG9sZFByb3BzLCBwcm9wcyk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgZGVjay5nbCBlcnJvciBkdXJpbmcgdXBkYXRlIG9mICR7bGF5ZXJOYW1lKGxheWVyKX1gLCBlcnIpO1xuICAgICAgICAvLyBTYXZlIGZpcnN0IGVycm9yXG4gICAgICAgIGVycm9yID0gZXJyb3IgfHwgZXJyO1xuICAgICAgfVxuICAgICAgbG9nKDIsIGB1cGRhdGluZyAke2xheWVyTmFtZShsYXllcil9YCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBlcnJvcjtcbn1cblxuLy8gVXBkYXRlIHRoZSBvbGQgbGF5ZXJzIHRoYXQgd2VyZSBtYXRjaGVkXG5mdW5jdGlvbiBmaW5hbGl6ZU9sZExheWVycyhvbGRMYXllcnMpIHtcbiAgbGV0IGVycm9yID0gbnVsbDtcbiAgLy8gVW5tYXRjaGVkIGxheWVycyBzdGlsbCBoYXZlIHN0YXRlLCBpdCB3aWxsIGJlIGRpc2NhcmRlZFxuICBmb3IgKGNvbnN0IGxheWVyIG9mIG9sZExheWVycykge1xuICAgIGNvbnN0IHtzdGF0ZX0gPSBsYXllcjtcbiAgICBpZiAoc3RhdGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGxheWVyLmZpbmFsaXplTGF5ZXIoKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBkZWNrLmdsIGVycm9yIGR1cmluZyBmaW5hbGl6YXRpb24gb2YgJHtsYXllck5hbWUobGF5ZXIpfWAsIGVycik7XG4gICAgICAgIC8vIFNhdmUgZmlyc3QgZXJyb3JcbiAgICAgICAgZXJyb3IgPSBlcnJvciB8fCBlcnI7XG4gICAgICB9XG4gICAgICBsYXllci5zdGF0ZSA9IG51bGw7XG4gICAgICBsb2coMSwgYGZpbmFsaXppbmcgJHtsYXllck5hbWUobGF5ZXIpfWApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZXJyb3I7XG59XG5cbmZ1bmN0aW9uIGFkZExheWVyc1RvU2NlbmUobGF5ZXJzLCBzY2VuZSkge1xuICBpZiAoIXNjZW5lKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIC8vIGNsZWFyIHNjZW5lIGFuZCByZXBvcHVsYXRlIGJhc2VkIG9uIG5ldyBsYXllcnNcbiAgc2NlbmUucmVtb3ZlQWxsKCk7XG4gIGZvciAoY29uc3QgbGF5ZXIgb2YgbGF5ZXJzKSB7XG4gICAgLy8gQWRkIG1vZGVsIHRvIHNjZW5lXG4gICAgaWYgKGxheWVyLnN0YXRlLm1vZGVsKSB7XG4gICAgICBzY2VuZS5hZGQobGF5ZXIuc3RhdGUubW9kZWwpO1xuICAgIH1cbiAgfVxufVxuIl19

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

exports.default = Layer;
//# sourceMappingURL=data:application/json;base64,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b250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxNSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbi8qIGVzbGludC1kaXNhYmxlIGd1YXJkLWZvci1pbiAqL1xuaW1wb3J0IEF0dHJpYnV0ZU1hbmFnZXIgZnJvbSAnLi9hdHRyaWJ1dGUtbWFuYWdlcic7XG5pbXBvcnQge2FyZUVxdWFsU2hhbGxvd30gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7YWRkSXRlcmF0b3J9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nJztcbmltcG9ydCBpc0RlZXBFcXVhbCBmcm9tICdsb2Rhc2guaXNlcXVhbCc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgVmlld3BvcnRNZXJjYXRvciBmcm9tICd2aWV3cG9ydC1tZXJjYXRvci1wcm9qZWN0JztcblxuLypcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy5pZCAtIGxheWVyIG5hbWVcbiAqIEBwYXJhbSB7YXJyYXl9ICBwcm9wcy5kYXRhIC0gYXJyYXkgb2YgZGF0YSBpbnN0YW5jZXNcbiAqIEBwYXJhbSB7bnVtYmVyfSBwcm9wcy53aWR0aCAtIHZpZXdwb3J0IHdpZHRoLCBzeW5jZWQgd2l0aCBNYXBib3hHTFxuICogQHBhcmFtIHtudW1iZXJ9IHByb3BzLmhlaWdodCAtIHZpZXdwb3J0IHdpZHRoLCBzeW5jZWQgd2l0aCBNYXBib3hHTFxuICogQHBhcmFtIHtib29sfSBwcm9wcy5pc1BpY2thYmxlIC0gd2hldGhlciBsYXllciByZXNwb25zZSB0byBtb3VzZSBldmVudFxuICogQHBhcmFtIHtib29sfSBwcm9wcy5vcGFjaXR5IC0gb3BhY2l0eSBvZiB0aGUgbGF5ZXJcbiAqL1xuY29uc3QgREVGQVVMVF9QUk9QUyA9IHtcbiAga2V5OiAwLFxuICBvcGFjaXR5OiAwLjgsXG4gIG51bUluc3RhbmNlczogdW5kZWZpbmVkLFxuICBkYXRhOiBbXSxcbiAgaXNQaWNrYWJsZTogZmFsc2UsXG4gIGRlZXBDb21wYXJlOiBmYWxzZSxcbiAgZ2V0VmFsdWU6IHggPT4geCxcbiAgb25Ib3ZlcjogKCkgPT4ge30sXG4gIG9uQ2xpY2s6ICgpID0+IHt9LFxuICAvLyBVcGRhdGUgdHJpZ2dlcnM6IGEga2V5IGNoYW5nZSBkZXRlY3Rpb24gbWVjaGFuaXNtIGluIGRlY2suZ2xcbiAgLy9cbiAgLy8gVGhlIHZhbHVlIG9mIGB1cGRhdGVUcmlnZ2Vyc2AgaXMgYSBtYXAgd2l0aCBmaWVsZHMgY29ycmVzcG9uZGluZyB0b1xuICAvLyBhdHRyaWJ1dGUgbmFtZXMgKG9yIGBhbGxgKS4gRWFjaCBmaWVsZCBoYXMgYSB2YWx1ZSB3aGljaCBpcyBhbiBvYmplY3QsXG4gIC8vIGl0IGNhbiBjb250YWluIGFueSBhbW91bnQgb2YgZGF0YS4gVGhlIGRhdGEgZm9yIGVhY2ggZmllbGQgaXMgY29tcGFyZWRcbiAgLy8gc2hhbGxvd2x5LCBhbmQgaWYgYSBjaGFuZ2UgaXMgZGV0ZWN0ZWQsIHRoZSBhdHRyaWJ1dGUgaXMgaW52YWxpZGF0ZWRcbiAgLy8gKGFsbCBhdHRyaWJ1dGVzIGFyZSBpbnZhbGlkYXRlZCBpZiB0aGUgYGFsbGAga2V5IGlzIHVzZWQuKVxuICAvLyBOb3RlOiB1cGRhdGVUcmlnZ2VycyBhcmUgaWdub3JlZCBieSBub3JtYWwgc2hhbGxvdyBjb21wYXJpc29uLCBzbyBpdCBpc1xuICAvLyBPSyBmb3IgdGhlIGFwcCB0byBtaW50IGEgbmV3IG9iamVjdCBvbiBldmVyeSByZW5kZXIuXG4gIHVwZGF0ZVRyaWdnZXJzOiB7fVxufTtcblxuY29uc3QgQVRUUklCVVRFUyA9IHtcbiAgaW5zdGFuY2VQaWNraW5nQ29sb3JzOlxuICAgIHtzaXplOiAzLCAnMCc6ICdwaWNrUmVkJywgJzEnOiAncGlja0dyZWVuJywgJzInOiAncGlja0JsdWUnfVxufTtcblxubGV0IGNvdW50ZXIgPSAwO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMYXllciB7XG5cbiAgc3RhdGljIGdldCBhdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiBBVFRSSUJVVEVTO1xuICB9XG5cbiAgLyoqXG4gICAqIEBjbGFzc2Rlc2NcbiAgICogQmFzZSBMYXllciBjbGFzc1xuICAgKlxuICAgKiBAY2xhc3NcbiAgICogQHBhcmFtIHtvYmplY3R9IHByb3BzIC0gU2VlIGRvY3MgYWJvdmVcbiAgICovXG4gIC8qIGVzbGludC1kaXNhYmxlIG1heC1zdGF0ZW1lbnRzICovXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG5cbiAgICBwcm9wcyA9IHtcbiAgICAgIC4uLkRFRkFVTFRfUFJPUFMsXG4gICAgICAuLi5wcm9wc1xuICAgIH07XG5cbiAgICAvLyBBZGQgaXRlcmF0b3IgdG8gb2JqZWN0c1xuICAgIC8vIFRPRE8gLSBNb2RpZnlpbmcgcHJvcHMgaXMgYW4gYW50aS1wYXR0ZXJuXG4gICAgaWYgKHByb3BzLmRhdGEpIHtcbiAgICAgIGFkZEl0ZXJhdG9yKHByb3BzLmRhdGEpO1xuICAgICAgYXNzZXJ0KHByb3BzLmRhdGFbU3ltYm9sLml0ZXJhdG9yXSwgJ2RhdGEgcHJvcCBtdXN0IGhhdmUgYW4gaXRlcmF0b3InKTtcbiAgICB9XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICB0aGlzLmNoZWNrUHJvcChwcm9wcy5kYXRhLCAnZGF0YScpO1xuICAgIHRoaXMuY2hlY2tQcm9wKHByb3BzLmlkLCAnaWQnKTtcbiAgICB0aGlzLmNoZWNrUHJvcChwcm9wcy53aWR0aCwgJ3dpZHRoJyk7XG4gICAgdGhpcy5jaGVja1Byb3AocHJvcHMuaGVpZ2h0LCAnaGVpZ2h0Jyk7XG5cbiAgICB0aGlzLmNoZWNrUHJvcChwcm9wcy53aWR0aCwgJ3dpZHRoJyk7XG4gICAgdGhpcy5jaGVja1Byb3AocHJvcHMuaGVpZ2h0LCAnaGVpZ2h0Jyk7XG4gICAgdGhpcy5jaGVja1Byb3AocHJvcHMubGF0aXR1ZGUsICdsYXRpdHVkZScpO1xuICAgIHRoaXMuY2hlY2tQcm9wKHByb3BzLmxvbmdpdHVkZSwgJ2xvbmdpdHVkZScpO1xuICAgIHRoaXMuY2hlY2tQcm9wKHByb3BzLnpvb20sICd6b29tJyk7XG5cbiAgICB0aGlzLmNvdW50ID0gY291bnRlcisrO1xuICB9XG4gIC8qIGVzbGludC1lbmFibGUgbWF4LXN0YXRlbWVudHMgKi9cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBMSUZFQ1lDTEUgTUVUSE9EUywgb3ZlcnJpZGRlbiBieSB0aGUgbGF5ZXIgc3ViY2xhc3Nlc1xuXG4gIC8vIENhbGxlZCBvbmNlIHRvIHNldCB1cCB0aGUgaW5pdGlhbCBzdGF0ZVxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gIH1cblxuICAvLyBnbCBjb250ZXh0IGlzIG5vdyBhdmFpbGFibGVcbiAgZGlkTW91bnQoKSB7XG4gIH1cblxuICBzaG91bGRVcGRhdGUob2xkUHJvcHMsIG5ld1Byb3BzKSB7XG4gICAgLy8gQ2hlY2sgdXBkYXRlIHRyaWdnZXJzLCBhbmQgaW52YWxpZGF0ZSBwcm9wcyBhY2NvcmRpbmdseVxuICAgIGlmICh0aGlzLmNoZWNrVXBkYXRlVHJpZ2dlcnMob2xkUHJvcHMsIG5ld1Byb3BzKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIElmIGFueSBwcm9wcyBoYXZlIGNoYW5nZWQsIGlnbm9yaW5nIHVwZGF0ZVRyaWdnZXJzIG9iamVjdHNcbiAgICAvLyAodXBkYXRlVHJpZ2dlcnMgYXJlIGV4cGVjdGVkIHRvIGJlIHJlbWludGVkIG9uIGV2ZXJ5IHVwZGF0ZSlcbiAgICBjb25zdCBlcXVhbFNoYWxsb3cgPSBhcmVFcXVhbFNoYWxsb3cobmV3UHJvcHMsIG9sZFByb3BzLCB7XG4gICAgICBpZ25vcmU6IHt1cGRhdGVUcmlnZ2VyczogdHJ1ZX1cbiAgICB9KTtcbiAgICBpZiAoIWVxdWFsU2hhbGxvdykge1xuICAgICAgaWYgKG5ld1Byb3BzLmRhdGEgIT09IG9sZFByb3BzLmRhdGEpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7ZGF0YUNoYW5nZWQ6IHRydWV9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAobmV3UHJvcHMuZGVlcENvbXBhcmUgJiYgIWlzRGVlcEVxdWFsKG5ld1Byb3BzLmRhdGEsIG9sZFByb3BzLmRhdGEpKSB7XG4gICAgICAvLyBTdXBwb3J0IG9wdGlvbmFsIGRlZXAgY29tcGFyZSBvZiBkYXRhXG4gICAgICAvLyBOb3RlOiB0aGlzIGlzIHF1aXRlIGluZWZmaWNpZW50LCBhcHAgc2hvdWxkIHVzZSBidWZmZXIgcHJvcHMgaW5zdGVhZFxuICAgICAgdGhpcy5zZXRTdGF0ZSh7ZGF0YUNoYW5nZWQ6IHRydWV9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9uLCBhbGwgYXR0cmlidXRlTWFuYWdlciB3aWxsIGJlIHVwZGF0ZWRcbiAgd2lsbFJlY2VpdmVQcm9wcyhuZXdQcm9wcykge1xuICAgIGNvbnN0IHthdHRyaWJ1dGVNYW5hZ2VyfSA9IHRoaXMuc3RhdGU7XG4gICAgaWYgKHRoaXMuc3RhdGUuZGF0YUNoYW5nZWQpIHtcbiAgICAgIGF0dHJpYnV0ZU1hbmFnZXIuaW52YWxpZGF0ZUFsbCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGdsIGNvbnRleHQgc3RpbGwgYXZhaWxhYmxlXG4gIHdpbGxVbm1vdW50KCkge1xuICB9XG5cbiAgLy8gRU5EIExJRkVDWUNMRSBNRVRIT0RTXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgLy8gUHVibGljIEFQSVxuXG4gIHNldE5lZWRzUmVkcmF3KCkge1xuICAgIGlmICh0aGlzLnN0YXRlKSB7XG4gICAgICB0aGlzLnN0YXRlLm5lZWRzUmVkcmF3ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBnZXROZWVkc1JlZHJhdyh7Y2xlYXJGbGFnfSkge1xuICAgIC8vIHRoaXMgbWV0aG9kIG1heSBiZSBjYWxsZWQgYnkgdGhlIHJlbmRlciBsb29wIGFzIHNvb24gYSB0aGUgbGF5ZXJcbiAgICAvLyBoYXMgYmVlbiBjcmVhdGVkLCBzbyBndWFyZCBhZ2FpbnN0IHVuaW5pdGlhbGl6ZWQgc3RhdGVcbiAgICBpZiAoIXRoaXMuc3RhdGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCB7YXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuICAgIGxldCBuZWVkc1JlZHJhdyA9IGF0dHJpYnV0ZU1hbmFnZXIuZ2V0TmVlZHNSZWRyYXcoe2NsZWFyRmxhZ30pO1xuICAgIG5lZWRzUmVkcmF3ID0gbmVlZHNSZWRyYXcgfHwgdGhpcy5zdGF0ZS5uZWVkc1JlZHJhdztcbiAgICBpZiAoY2xlYXJGbGFnKSB7XG4gICAgICB0aGlzLnN0YXRlLm5lZWRzUmVkcmF3ID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBuZWVkc1JlZHJhdztcbiAgfVxuXG4gIC8vIFVwZGF0ZXMgc2VsZWN0ZWQgc3RhdGUgbWVtYmVycyBhbmQgbWFya3MgdGhlIG9iamVjdCBmb3IgcmVkcmF3XG4gIHNldFN0YXRlKHVwZGF0ZU9iamVjdCkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy5zdGF0ZSwgdXBkYXRlT2JqZWN0KTtcbiAgICB0aGlzLnN0YXRlLm5lZWRzUmVkcmF3ID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIFVwZGF0ZXMgc2VsZWN0ZWQgc3RhdGUgbWVtYmVycyBhbmQgbWFya3MgdGhlIG9iamVjdCBmb3IgcmVkcmF3XG4gIHNldFVuaWZvcm1zKHVuaWZvcm1NYXApIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5tb2RlbCkge1xuICAgICAgdGhpcy5zdGF0ZS5tb2RlbC5zZXRVbmlmb3Jtcyh1bmlmb3JtTWFwKTtcbiAgICB9XG4gICAgLy8gVE9ETyAtIHNldCBuZWVkc1JlZHJhdyBvbiB0aGUgbW9kZWw/XG4gICAgdGhpcy5zdGF0ZS5uZWVkc1JlZHJhdyA9IHRydWU7XG4gICAgbG9nKDMsICdsYXllci5zZXRVbmlmb3JtcycsIHVuaWZvcm1NYXApO1xuICB9XG5cbiAgLy8gVXNlIGl0ZXJhdGlvbiAodGhlIG9ubHkgcmVxdWlyZWQgY2FwYWJpbGl0eSBvbiBkYXRhKSB0byBnZXQgZmlyc3QgZWxlbWVudFxuICBnZXRGaXJzdE9iamVjdCgpIHtcbiAgICBjb25zdCB7ZGF0YX0gPSB0aGlzLnByb3BzO1xuICAgIGZvciAoY29uc3Qgb2JqZWN0IG9mIGRhdGEpIHtcbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gSU5URVJOQUwgTUVUSE9EU1xuXG4gIC8vIERlZHVjZXMgbnVtZXIgb2YgaW5zdGFuY2VzLiBJbnRlbnRpb24gaXMgdG8gc3VwcG9ydDpcbiAgLy8gLSBFeHBsaWNpdCBzZXR0aW5nIG9mIG51bUluc3RhbmNlc1xuICAvLyAtIEF1dG8tZGVkdWN0aW9uIGZvciBFUzYgY29udGFpbmVycyB0aGF0IGRlZmluZSBhIHNpemUgbWVtYmVyXG4gIC8vIC0gQXV0by1kZWR1Y3Rpb24gZm9yIENsYXNzaWMgQXJyYXlzIHZpYSB0aGUgYnVpbHQtaW4gbGVuZ3RoIGF0dHJpYnV0ZVxuICAvLyAtIEF1dG8tZGVkdWN0aW9uIHZpYSBhcnJheXNcbiAgZ2V0TnVtSW5zdGFuY2VzKHByb3BzKSB7XG4gICAgcHJvcHMgPSBwcm9wcyB8fCB0aGlzLnByb3BzO1xuXG4gICAgLy8gRmlyc3QgY2hlY2sgaWYgdGhlIGxheWVyIGhhcyBzZXQgaXRzIG93biB2YWx1ZVxuICAgIGlmICh0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUubnVtSW5zdGFuY2VzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnN0YXRlLm51bUluc3RhbmNlcztcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiBhcHAgaGFzIHByb3ZpZGVkIGFuIGV4cGxpY2l0IHZhbHVlXG4gICAgaWYgKHByb3BzLm51bUluc3RhbmNlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gcHJvcHMubnVtSW5zdGFuY2VzO1xuICAgIH1cblxuICAgIGNvbnN0IHtkYXRhfSA9IHByb3BzO1xuXG4gICAgLy8gQ2hlY2sgaWYgRVM2IGNvbGxlY3Rpb24gXCJjb3VudFwiIGZ1bmN0aW9uIGlzIGF2YWlsYWJsZVxuICAgIGlmIChkYXRhICYmIHR5cGVvZiBkYXRhLmNvdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gZGF0YS5jb3VudCgpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIEVTNiBjb2xsZWN0aW9uIFwic2l6ZVwiIGF0dHJpYnV0ZSBpcyBzZXRcbiAgICBpZiAoZGF0YSAmJiBkYXRhLnNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGRhdGEuc2l6ZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiBhcnJheSBsZW5ndGggYXR0cmlidXRlIGlzIHNldFxuICAgIC8vIE5vdGU6IGNoZWNraW5nIHRoaXMgbGFzdCBzaW5jZSBzb21lIEVTNiBjb2xsZWN0aW9ucyAoSW1tdXRhYmxlLmpzKVxuICAgIC8vIGVtaXQgcHJvZnVzZSB3YXJuaW5ncyB3aGVuIHRyeWluZyB0byBhY2Nlc3MgYGxlbmd0aGAgYXR0cmlidXRlXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5sZW5ndGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGRhdGEubGVuZ3RoO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGRlZHVjZSBudW1JbnN0YW5jZXMnKTtcbiAgfVxuXG4gIC8vIEludGVybmFsIEhlbHBlcnNcblxuICBjaGVja1Byb3BzKG9sZFByb3BzLCBuZXdQcm9wcykge1xuICAgIC8vIE5vdGU6IGRhdGFDaGFuZ2VkIG1pZ2h0IGFscmVhZHkgYmUgc2V0XG4gICAgaWYgKG5ld1Byb3BzLmRhdGEgIT09IG9sZFByb3BzLmRhdGEpIHtcbiAgICAgIC8vIEZpZ3VyZSBvdXQgZGF0YSBsZW5ndGhcbiAgICAgIHRoaXMuc3RhdGUuZGF0YUNoYW5nZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHZpZXdwb3J0Q2hhbmdlZCA9XG4gICAgICBuZXdQcm9wcy53aWR0aCAhPT0gb2xkUHJvcHMud2lkdGggfHxcbiAgICAgIG5ld1Byb3BzLmhlaWdodCAhPT0gb2xkUHJvcHMuaGVpZ2h0IHx8XG4gICAgICBuZXdQcm9wcy5sYXRpdHVkZSAhPT0gb2xkUHJvcHMubGF0aXR1ZGUgfHxcbiAgICAgIG5ld1Byb3BzLmxvbmdpdHVkZSAhPT0gb2xkUHJvcHMubG9uZ2l0dWRlIHx8XG4gICAgICBuZXdQcm9wcy56b29tICE9PSBvbGRQcm9wcy56b29tO1xuXG4gICAgdGhpcy5zZXRTdGF0ZSh7dmlld3BvcnRDaGFuZ2VkfSk7XG4gIH1cblxuICB1cGRhdGVBdHRyaWJ1dGVzKHByb3BzKSB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZU1hbmFnZXIsIG1vZGVsfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgbnVtSW5zdGFuY2VzID0gdGhpcy5nZXROdW1JbnN0YW5jZXMocHJvcHMpO1xuICAgIC8vIEZpZ3VyZSBvdXQgZGF0YSBsZW5ndGhcbiAgICBhdHRyaWJ1dGVNYW5hZ2VyLnVwZGF0ZSh7XG4gICAgICBudW1JbnN0YW5jZXMsXG4gICAgICBidWZmZXJNYXA6IHByb3BzLFxuICAgICAgY29udGV4dDogdGhpcyxcbiAgICAgIC8vIERvbid0IHdvcnJ5IGFib3V0IG5vbi1hdHRyaWJ1dGUgcHJvcHNcbiAgICAgIGlnbm9yZVVua25vd25BdHRyaWJ1dGVzOiB0cnVlXG4gICAgfSk7XG4gICAgaWYgKG1vZGVsKSB7XG4gICAgICBtb2RlbC5zZXRBdHRyaWJ1dGVzKGF0dHJpYnV0ZU1hbmFnZXIuZ2V0QXR0cmlidXRlcygpKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVCYXNlVW5pZm9ybXMoKSB7XG4gICAgdGhpcy5zZXRVbmlmb3Jtcyh7XG4gICAgICAvLyBhcHBseSBnYW1tYSB0byBvcGFjaXR5IHRvIG1ha2UgaXQgdmlzdWFsbHkgXCJsaW5lYXJcIlxuICAgICAgb3BhY2l0eTogTWF0aC5wb3codGhpcy5wcm9wcy5vcGFjaXR5IHx8IDAuOCwgMSAvIDIuMilcbiAgICB9KTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIGFueSB1cGRhdGUgdHJpZ2dlcnMgaGF2ZSBjaGFuZ2VkLCBhbmQgaW52YWxpZGF0ZVxuICAvLyBhdHRyaWJ1dGVzIGFjY29yZGluZ2x5LlxuICBjaGVja1VwZGF0ZVRyaWdnZXJzKG9sZFByb3BzLCBuZXdQcm9wcykge1xuICAgIGxldCBjaGFuZ2UgPSBmYWxzZTtcbiAgICBjb25zdCB7YXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuICAgIGZvciAoY29uc3QgcHJvcE5hbWUgaW4gbmV3UHJvcHMudXBkYXRlVHJpZ2dlcnMpIHtcbiAgICAgIGNvbnN0IG9sZFRyaWdnZXJzID0gb2xkUHJvcHMudXBkYXRlVHJpZ2dlcnNbcHJvcE5hbWVdO1xuICAgICAgY29uc3QgbmV3VHJpZ2dlcnMgPSBuZXdQcm9wcy51cGRhdGVUcmlnZ2Vyc1twcm9wTmFtZV07XG4gICAgICBpZiAoIWFyZUVxdWFsU2hhbGxvdyhvbGRUcmlnZ2VycywgbmV3VHJpZ2dlcnMpKSB7XG4gICAgICAgIGlmIChwcm9wTmFtZSA9PT0gJ2FsbCcpIHtcbiAgICAgICAgICBhdHRyaWJ1dGVNYW5hZ2VyLmludmFsaWRhdGVBbGwoKTtcbiAgICAgICAgICBjaGFuZ2UgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF0dHJpYnV0ZU1hbmFnZXIuaW52YWxpZGF0ZShwcm9wTmFtZSk7XG4gICAgICAgICAgY2hhbmdlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2hhbmdlO1xuICB9XG5cbiAgLy8gTEFZRVIgTUFOQUdFUiBBUElcblxuICAvLyBDYWxsZWQgYnkgbGF5ZXIgbWFuYWdlciB3aGVuIGEgbmV3IGxheWVyIGlzIGZvdW5kXG4gIC8qIGVzbGludC1kaXNhYmxlIG1heC1zdGF0ZW1lbnRzICovXG4gIGluaXRpYWxpemVMYXllcih7Z2x9KSB7XG4gICAgYXNzZXJ0KGdsKTtcbiAgICB0aGlzLnN0YXRlID0ge2dsfTtcblxuICAgIC8vIEluaXRpYWxpemUgc3RhdGUgb25seSBvbmNlXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBhdHRyaWJ1dGVNYW5hZ2VyOiBuZXcgQXR0cmlidXRlTWFuYWdlcih7aWQ6IHRoaXMucHJvcHMuaWR9KSxcbiAgICAgIG1vZGVsOiBudWxsLFxuICAgICAgbmVlZHNSZWRyYXc6IHRydWUsXG4gICAgICBkYXRhQ2hhbmdlZDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgY29uc3Qge2F0dHJpYnV0ZU1hbmFnZXJ9ID0gdGhpcy5zdGF0ZTtcbiAgICAvLyBBbGwgaW5zdGFuY2VkIGxheWVycyBnZXQgaW5zdGFuY2VQaWNraW5nQ29sb3JzIGF0dHJpYnV0ZSBieSBkZWZhdWx0XG4gICAgLy8gVGhlaXIgc2hhZGVycyBjYW4gdXNlIGl0IHRvIHJlbmRlciBhIHBpY2tpbmcgc2NlbmVcbiAgICBhdHRyaWJ1dGVNYW5hZ2VyLmFkZEluc3RhbmNlZChBVFRSSUJVVEVTLCB7XG4gICAgICBpbnN0YW5jZVBpY2tpbmdDb2xvcnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlSW5zdGFuY2VQaWNraW5nQ29sb3JzfVxuICAgIH0pO1xuXG4gICAgdGhpcy5zZXRWaWV3cG9ydCgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZVN0YXRlKCk7XG4gICAgYXNzZXJ0KHRoaXMuc3RhdGUubW9kZWwsICdNb2RlbCBtdXN0IGJlIHNldCBpbiBpbml0aWFsaXplU3RhdGUnKTtcbiAgICB0aGlzLnNldFZpZXdwb3J0KCk7XG5cbiAgICAvLyBUT0RPIC0gdGhlIGFwcCBtdXN0IGJlIGFibGUgdG8gb3ZlcnJpZGVcblxuICAgIC8vIEFkZCBhbnkgc3ViY2xhc3MgYXR0cmlidXRlc1xuICAgIHRoaXMudXBkYXRlQXR0cmlidXRlcyh0aGlzLnByb3BzKTtcbiAgICB0aGlzLnVwZGF0ZUJhc2VVbmlmb3JtcygpO1xuXG4gICAgY29uc3Qge21vZGVsfSA9IHRoaXMuc3RhdGU7XG4gICAgbW9kZWwuc2V0SW5zdGFuY2VDb3VudCh0aGlzLmdldE51bUluc3RhbmNlcygpKTtcbiAgICBtb2RlbC5pZCA9IGAke3RoaXMucHJvcHMuaWR9LW1vZGVsYDtcbiAgICBtb2RlbC5wcm9ncmFtLmlkID0gYCR7dGhpcy5wcm9wcy5pZH0tcHJvZ3JhbWA7XG4gICAgbW9kZWwuZ2VvbWV0cnkuaWQgPSBgJHt0aGlzLnByb3BzLmlkfS1nZW9tZXRyeWA7XG5cbiAgICAvLyBDcmVhdGUgYSBtb2RlbCBmb3IgdGhlIGxheWVyXG4gICAgdGhpcy5fdXBkYXRlTW9kZWwoe2dsfSk7XG5cbiAgICAvLyBDYWxsIGxpZmUgY3ljbGUgbWV0aG9kXG4gICAgdGhpcy5kaWRNb3VudCgpO1xuICB9XG4gIC8qIGVzbGludC1lbmFibGUgbWF4LXN0YXRlbWVudHMgKi9cblxuICAvLyBDYWxsZWQgYnkgbGF5ZXIgbWFuYWdlciB3aGVuIGV4aXN0aW5nIGxheWVyIGlzIGdldHRpbmcgbmV3IHByb3BzXG4gIHVwZGF0ZUxheWVyKG9sZFByb3BzLCBuZXdQcm9wcykge1xuICAgIC8vIENhbGN1bGF0ZSBzdGFuZGFyZCBjaGFuZ2UgZmxhZ3NcbiAgICB0aGlzLmNoZWNrUHJvcHMob2xkUHJvcHMsIG5ld1Byb3BzKTtcblxuICAgIC8vIENoZWNrIGlmIGFueSBwcm9wcyBoYXZlIGNoYW5nZWRcbiAgICBpZiAodGhpcy5zaG91bGRVcGRhdGUob2xkUHJvcHMsIG5ld1Byb3BzKSkge1xuICAgICAgaWYgKHRoaXMuc3RhdGUudmlld3BvcnRDaGFuZ2VkKSB7XG4gICAgICAgIHRoaXMuc2V0Vmlld3BvcnQoKTtcbiAgICAgIH1cblxuICAgICAgLy8gTGV0IHRoZSBzdWJjbGFzcyBtYXJrIHdoYXQgaXMgbmVlZGVkIGZvciB1cGRhdGVcbiAgICAgIHRoaXMud2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpO1xuICAgICAgLy8gUnVuIHRoZSBhdHRyaWJ1dGUgdXBkYXRlcnNcbiAgICAgIHRoaXMudXBkYXRlQXR0cmlidXRlcyhuZXdQcm9wcyk7XG4gICAgICAvLyBVcGRhdGUgdGhlIHVuaWZvcm1zXG4gICAgICB0aGlzLnVwZGF0ZUJhc2VVbmlmb3JtcygpO1xuXG4gICAgICBpZiAodGhpcy5zdGF0ZS5tb2RlbCkge1xuICAgICAgICB0aGlzLnN0YXRlLm1vZGVsLnNldEluc3RhbmNlQ291bnQodGhpcy5nZXROdW1JbnN0YW5jZXMoKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZS5kYXRhQ2hhbmdlZCA9IGZhbHNlO1xuICAgIHRoaXMuc3RhdGUudmlld3BvcnRDaGFuZ2VkID0gZmFsc2U7XG4gIH1cblxuICAvLyBDYWxsZWQgYnkgbWFuYWdlciB3aGVuIGxheWVyIGlzIGFib3V0IHRvIGJlIGRpc3Bvc2VkXG4gIC8vIE5vdGU6IG5vdCBndWFyYW50ZWVkIHRvIGJlIGNhbGxlZCBvbiBhcHBsaWNhdGlvbiBzaHV0ZG93blxuICBmaW5hbGl6ZUxheWVyKCkge1xuICAgIHRoaXMud2lsbFVubW91bnQoKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZUluc3RhbmNlUGlja2luZ0NvbG9ycyhhdHRyaWJ1dGUsIG51bUluc3RhbmNlcykge1xuICAgIGNvbnN0IHt2YWx1ZSwgc2l6ZX0gPSBhdHRyaWJ1dGU7XG4gICAgLy8gYWRkIDEgdG8gaW5kZXggdG8gc2VwZXJhdGUgZnJvbSBubyBzZWxlY3Rpb25cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bUluc3RhbmNlczsgaSsrKSB7XG4gICAgICBjb25zdCBwaWNraW5nQ29sb3IgPSB0aGlzLmVuY29kZVBpY2tpbmdDb2xvcihpKTtcbiAgICAgIHZhbHVlW2kgKiBzaXplICsgMF0gPSBwaWNraW5nQ29sb3JbMF07XG4gICAgICB2YWx1ZVtpICogc2l6ZSArIDFdID0gcGlja2luZ0NvbG9yWzFdO1xuICAgICAgdmFsdWVbaSAqIHNpemUgKyAyXSA9IHBpY2tpbmdDb2xvclsyXTtcbiAgICB9XG4gIH1cblxuICBkZWNvZGVQaWNraW5nQ29sb3IoY29sb3IpIHtcbiAgICBhc3NlcnQoY29sb3IgaW5zdGFuY2VvZiBVaW50OEFycmF5KTtcbiAgICBjb25zdCBbaTEsIGkyLCBpM10gPSBjb2xvcjtcbiAgICAvLyAxIHdhcyBhZGRlZCB0byBzZXBlcmF0ZSBmcm9tIG5vIHNlbGVjdGlvblxuICAgIGNvbnN0IGluZGV4ID0gaTEgKyBpMiAqIDI1NiArIGkzICogNjU1MzYgLSAxO1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIGVuY29kZVBpY2tpbmdDb2xvcihpKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIChpICsgMSkgJSAyNTYsXG4gICAgICBNYXRoLmZsb29yKChpICsgMSkgLyAyNTYpICUgMjU2LFxuICAgICAgTWF0aC5mbG9vcigoaSArIDEpIC8gMjU2IC8gMjU2KSAlIDI1NlxuICAgIF07XG4gIH1cblxuICAvLyBWSVJUVUFMIE1FVEhPRCAtIE92ZXJyaWRlIHRvIGFkZCBvciBtb2RpZnkgYGluZm9gIG9iamVjdCBpbiBzdWJsYXllclxuICAvLyBUaGUgc3VibGF5ZXIgbWF5IGtub3cgd2hhdCBvYmplY3QgZS5nLiBsYXQsbG9uIGNvcnJlc3BvbmRzIHRvIHVzaW5nIG1hdGhcbiAgLy8gZXRjIGV2ZW4gd2hlbiBwaWNraW5nIGRvZXMgbm90IHdvcmtcbiAgb25HZXRIb3ZlckluZm8oaW5mbykge1xuICAgIGNvbnN0IHtjb2xvcn0gPSBpbmZvO1xuICAgIGluZm8uaW5kZXggPSB0aGlzLmRlY29kZVBpY2tpbmdDb2xvcihjb2xvcik7XG4gICAgLy8gSWYgcHJvcHMuZGF0YSBpcyBhbiBpbmRleGFibGUgYXJyYXksIGdldCB0aGUgb2JqZWN0XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5wcm9wcy5kYXRhKSkge1xuICAgICAgaW5mby5vYmplY3QgPSB0aGlzLnByb3BzLmRhdGFbaW5mby5pbmRleF07XG4gICAgfVxuICAgIGluZm8uZ2VvQ29vcmRzID0gdGhpcy51bnByb2plY3Qoe3g6IGluZm8ueCwgeTogaW5mby55fSk7XG4gICAgcmV0dXJuIGluZm87XG4gIH1cblxuICBvbkhvdmVyKGluZm8pIHtcbiAgICBjb25zdCB7Y29sb3J9ID0gaW5mbztcblxuICAgIGNvbnN0IHNlbGVjdGVkUGlja2luZ0NvbG9yID0gbmV3IEZsb2F0MzJBcnJheSgzKTtcbiAgICBzZWxlY3RlZFBpY2tpbmdDb2xvclswXSA9IGNvbG9yWzBdO1xuICAgIHNlbGVjdGVkUGlja2luZ0NvbG9yWzFdID0gY29sb3JbMV07XG4gICAgc2VsZWN0ZWRQaWNraW5nQ29sb3JbMl0gPSBjb2xvclsyXTtcbiAgICB0aGlzLnNldFVuaWZvcm1zKHtzZWxlY3RlZFBpY2tpbmdDb2xvcn0pO1xuXG4gICAgaW5mbyA9IHRoaXMub25HZXRIb3ZlckluZm8oaW5mbyk7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMub25Ib3ZlcihpbmZvKTtcbiAgfVxuXG4gIG9uQ2xpY2soaW5mbykge1xuICAgIGluZm8gPSB0aGlzLm9uR2V0SG92ZXJJbmZvKGluZm8pO1xuICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2xpY2soaW5mbyk7XG4gIH1cblxuICAvLyBJTlRFUk5BTCBNRVRIT0RTXG4gIF91cGRhdGVNb2RlbCh7Z2x9KSB7XG4gICAgY29uc3Qge21vZGVsLCBhdHRyaWJ1dGVNYW5hZ2VyLCB1bmlmb3Jtc30gPSB0aGlzLnN0YXRlO1xuXG4gICAgYXNzZXJ0KG1vZGVsKTtcbiAgICBtb2RlbC5zZXRBdHRyaWJ1dGVzKGF0dHJpYnV0ZU1hbmFnZXIuZ2V0QXR0cmlidXRlcygpKTtcbiAgICBtb2RlbC5zZXRVbmlmb3Jtcyh1bmlmb3Jtcyk7XG4gICAgLy8gd2hldGhlciBjdXJyZW50IGxheWVyIHJlc3BvbmRzIHRvIG1vdXNlIGV2ZW50c1xuICAgIG1vZGVsLnNldFBpY2thYmxlKHRoaXMucHJvcHMuaXNQaWNrYWJsZSk7XG4gIH1cblxuICBjaGVja1Byb3AocHJvcGVydHksIHByb3BlcnR5TmFtZSkge1xuICAgIGlmIChwcm9wZXJ0eSA9PT0gdW5kZWZpbmVkIHx8IHByb3BlcnR5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb3BlcnR5ICR7cHJvcGVydHlOYW1lfSB1bmRlZmluZWQgaW4gbGF5ZXIgJHt0aGlzLnByb3BzLmlkfWApO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1BUCBMQVlFUiBGVU5DVElPTkFMSVRZXG5cbiAgc2V0Vmlld3BvcnQoKSB7XG4gICAgY29uc3Qge3dpZHRoLCBoZWlnaHQsIGxhdGl0dWRlLCBsb25naXR1ZGUsIHpvb219ID0gdGhpcy5wcm9wcztcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHZpZXdwb3J0OiB7eDogMCwgeTogMCwgd2lkdGgsIGhlaWdodH0sXG4gICAgICBtZXJjYXRvcjogVmlld3BvcnRNZXJjYXRvcih7XG4gICAgICAgIHdpZHRoLCBoZWlnaHQsIGxhdGl0dWRlLCBsb25naXR1ZGUsIHpvb20sXG4gICAgICAgIHRpbGVTaXplOiA1MTJcbiAgICAgIH0pXG4gICAgfSk7XG4gICAgdGhpcy5zZXRVbmlmb3Jtcyh7XG4gICAgICB2aWV3cG9ydDogWzAsIDAsIHdpZHRoLCBoZWlnaHRdLFxuICAgICAgbWVyY2F0b3JTY2FsZTogTWF0aC5wb3coMiwgem9vbSksXG4gICAgICBtZXJjYXRvckNlbnRlcjogW2xvbmdpdHVkZSwgbGF0aXR1ZGVdXG4gICAgfSk7XG4gICAgbG9nKDMsIHRoaXMuc3RhdGUudmlld3BvcnQsIGxhdGl0dWRlLCBsb25naXR1ZGUsIHpvb20pO1xuICB9XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9uIGNvbnZlcnNpb24gaXMgZG9uZSBpbiBzaGFkZXIsIHNvIGluIG1hbnkgY2FzZXMgdGhlcmUgaXMgbm8gbmVlZFxuICAgKiBmb3IgdGhpcyBmdW5jdGlvblxuICAgKiBAcGFyYW0ge09iamVjdHxBcnJheX0gbGF0TG5nIC0gRWl0aGVyIFtsYXQsbG5nXSBvciB7bGF0LCBsb259XG4gICAqIEByZXR1cm4ge09iamVjdH0gLSB4LCB5XG4gICAqL1xuICBwcm9qZWN0KGxhdExuZykge1xuICAgIGNvbnN0IHttZXJjYXRvcn0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IFt4LCB5XSA9IEFycmF5LmlzQXJyYXkobGF0TG5nKSA/XG4gICAgICBtZXJjYXRvci5wcm9qZWN0KFtsYXRMbmdbMV0sIGxhdExuZ1swXV0pIDpcbiAgICAgIG1lcmNhdG9yLnByb2plY3QoW2xhdExuZy5sb24sIGxhdExuZy5sYXRdKTtcbiAgICByZXR1cm4ge3gsIHl9O1xuICB9XG5cbiAgdW5wcm9qZWN0KHh5KSB7XG4gICAgY29uc3Qge21lcmNhdG9yfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgW2xvbiwgbGF0XSA9IEFycmF5LmlzQXJyYXkoeHkpID9cbiAgICAgIG1lcmNhdG9yLnVucHJvamVjdCh4eSkgOlxuICAgICAgbWVyY2F0b3IudW5wcm9qZWN0KFt4eS54LCB4eS55XSk7XG4gICAgcmV0dXJuIHtsYXQsIGxvbn07XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,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LE9BQU8sR0FBUixFQUFhLE9BQU8sR0FBcEIsQ0FBakIsQ0FKWTs7QUFBQTs7QUFBQSxVQUVQLENBRk87QUFBQSxVQUVKLENBRkk7O0FBS2QsYUFBTyxFQUFDLElBQUQsRUFBSSxJQUFKLEVBQVA7QUFDRDs7OzhCQUVTLEUsRUFBSTtBQUFBLFVBQ0wsUUFESyxHQUNPLEtBQUssS0FEWixDQUNMLFFBREs7O0FBQUEsa0JBRU8sTUFBTSxPQUFOLENBQWMsRUFBZCxJQUNqQixTQUFTLFNBQVQsQ0FBbUIsRUFBbkIsQ0FEaUIsR0FFakIsU0FBUyxTQUFULENBQW1CLENBQUMsR0FBRyxDQUFKLEVBQU8sR0FBRyxDQUFWLENBQW5CLENBSlU7O0FBQUE7O0FBQUEsVUFFTCxHQUZLO0FBQUEsVUFFQSxHQUZBOztBQUtaLGFBQU8sRUFBQyxRQUFELEVBQU0sUUFBTixFQUFQO0FBQ0Q7Ozs7OztrQkE5YmtCLEsiLCJmaWxlIjoibGF5ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMTUgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG4vKiBlc2xpbnQtZGlzYWJsZSBndWFyZC1mb3ItaW4gKi9cbmltcG9ydCBBdHRyaWJ1dGVNYW5hZ2VyIGZyb20gJy4vYXR0cmlidXRlLW1hbmFnZXInO1xuaW1wb3J0IHthcmVFcXVhbFNoYWxsb3d9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQge2FkZEl0ZXJhdG9yfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZyc7XG5pbXBvcnQgaXNEZWVwRXF1YWwgZnJvbSAnbG9kYXNoLmlzZXF1YWwnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IFZpZXdwb3J0TWVyY2F0b3IgZnJvbSAndmlld3BvcnQtbWVyY2F0b3ItcHJvamVjdCc7XG5cbi8qXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJvcHMuaWQgLSBsYXllciBuYW1lXG4gKiBAcGFyYW0ge2FycmF5fSAgcHJvcHMuZGF0YSAtIGFycmF5IG9mIGRhdGEgaW5zdGFuY2VzXG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMud2lkdGggLSB2aWV3cG9ydCB3aWR0aCwgc3luY2VkIHdpdGggTWFwYm94R0xcbiAqIEBwYXJhbSB7bnVtYmVyfSBwcm9wcy5oZWlnaHQgLSB2aWV3cG9ydCB3aWR0aCwgc3luY2VkIHdpdGggTWFwYm94R0xcbiAqIEBwYXJhbSB7Ym9vbH0gcHJvcHMuaXNQaWNrYWJsZSAtIHdoZXRoZXIgbGF5ZXIgcmVzcG9uc2UgdG8gbW91c2UgZXZlbnRcbiAqIEBwYXJhbSB7Ym9vbH0gcHJvcHMub3BhY2l0eSAtIG9wYWNpdHkgb2YgdGhlIGxheWVyXG4gKi9cbmNvbnN0IERFRkFVTFRfUFJPUFMgPSB7XG4gIGtleTogMCxcbiAgb3BhY2l0eTogMC44LFxuICBudW1JbnN0YW5jZXM6IHVuZGVmaW5lZCxcbiAgZGF0YTogW10sXG4gIGlzUGlja2FibGU6IGZhbHNlLFxuICBkZWVwQ29tcGFyZTogZmFsc2UsXG4gIGdldFZhbHVlOiB4ID0+IHgsXG4gIG9uSG92ZXI6ICgpID0+IHt9LFxuICBvbkNsaWNrOiAoKSA9PiB7fSxcbiAgLy8gVXBkYXRlIHRyaWdnZXJzOiBhIGtleSBjaGFuZ2UgZGV0ZWN0aW9uIG1lY2hhbmlzbSBpbiBkZWNrLmdsXG4gIC8vXG4gIC8vIFRoZSB2YWx1ZSBvZiBgdXBkYXRlVHJpZ2dlcnNgIGlzIGEgbWFwIHdpdGggZmllbGRzIGNvcnJlc3BvbmRpbmcgdG9cbiAgLy8gYXR0cmlidXRlIG5hbWVzIChvciBgYWxsYCkuIEVhY2ggZmllbGQgaGFzIGEgdmFsdWUgd2hpY2ggaXMgYW4gb2JqZWN0LFxuICAvLyBpdCBjYW4gY29udGFpbiBhbnkgYW1vdW50IG9mIGRhdGEuIFRoZSBkYXRhIGZvciBlYWNoIGZpZWxkIGlzIGNvbXBhcmVkXG4gIC8vIHNoYWxsb3dseSwgYW5kIGlmIGEgY2hhbmdlIGlzIGRldGVjdGVkLCB0aGUgYXR0cmlidXRlIGlzIGludmFsaWRhdGVkXG4gIC8vIChhbGwgYXR0cmlidXRlcyBhcmUgaW52YWxpZGF0ZWQgaWYgdGhlIGBhbGxgIGtleSBpcyB1c2VkLilcbiAgLy8gTm90ZTogdXBkYXRlVHJpZ2dlcnMgYXJlIGlnbm9yZWQgYnkgbm9ybWFsIHNoYWxsb3cgY29tcGFyaXNvbiwgc28gaXQgaXNcbiAgLy8gT0sgZm9yIHRoZSBhcHAgdG8gbWludCBhIG5ldyBvYmplY3Qgb24gZXZlcnkgcmVuZGVyLlxuICB1cGRhdGVUcmlnZ2Vyczoge31cbn07XG5cbmNvbnN0IEFUVFJJQlVURVMgPSB7XG4gIGluc3RhbmNlUGlja2luZ0NvbG9yczpcbiAgICB7c2l6ZTogMywgJzAnOiAncGlja1JlZCcsICcxJzogJ3BpY2tHcmVlbicsICcyJzogJ3BpY2tCbHVlJ31cbn07XG5cbmxldCBjb3VudGVyID0gMDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGF5ZXIge1xuXG4gIHN0YXRpYyBnZXQgYXR0cmlidXRlcygpIHtcbiAgICByZXR1cm4gQVRUUklCVVRFUztcbiAgfVxuXG4gIC8qKlxuICAgKiBAY2xhc3NkZXNjXG4gICAqIEJhc2UgTGF5ZXIgY2xhc3NcbiAgICpcbiAgICogQGNsYXNzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wcyAtIFNlZSBkb2NzIGFib3ZlXG4gICAqL1xuICAvKiBlc2xpbnQtZGlzYWJsZSBtYXgtc3RhdGVtZW50cyAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuXG4gICAgcHJvcHMgPSB7XG4gICAgICAuLi5ERUZBVUxUX1BST1BTLFxuICAgICAgLi4ucHJvcHNcbiAgICB9O1xuXG4gICAgLy8gQWRkIGl0ZXJhdG9yIHRvIG9iamVjdHNcbiAgICAvLyBUT0RPIC0gTW9kaWZ5aW5nIHByb3BzIGlzIGFuIGFudGktcGF0dGVyblxuICAgIGlmIChwcm9wcy5kYXRhKSB7XG4gICAgICBhZGRJdGVyYXRvcihwcm9wcy5kYXRhKTtcbiAgICAgIGFzc2VydChwcm9wcy5kYXRhW1N5bWJvbC5pdGVyYXRvcl0sICdkYXRhIHByb3AgbXVzdCBoYXZlIGFuIGl0ZXJhdG9yJyk7XG4gICAgfVxuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgdGhpcy5jaGVja1Byb3AocHJvcHMuZGF0YSwgJ2RhdGEnKTtcbiAgICB0aGlzLmNoZWNrUHJvcChwcm9wcy5pZCwgJ2lkJyk7XG4gICAgdGhpcy5jaGVja1Byb3AocHJvcHMud2lkdGgsICd3aWR0aCcpO1xuICAgIHRoaXMuY2hlY2tQcm9wKHByb3BzLmhlaWdodCwgJ2hlaWdodCcpO1xuXG4gICAgdGhpcy5jaGVja1Byb3AocHJvcHMud2lkdGgsICd3aWR0aCcpO1xuICAgIHRoaXMuY2hlY2tQcm9wKHByb3BzLmhlaWdodCwgJ2hlaWdodCcpO1xuICAgIHRoaXMuY2hlY2tQcm9wKHByb3BzLmxhdGl0dWRlLCAnbGF0aXR1ZGUnKTtcbiAgICB0aGlzLmNoZWNrUHJvcChwcm9wcy5sb25naXR1ZGUsICdsb25naXR1ZGUnKTtcbiAgICB0aGlzLmNoZWNrUHJvcChwcm9wcy56b29tLCAnem9vbScpO1xuXG4gICAgdGhpcy5jb3VudCA9IGNvdW50ZXIrKztcbiAgfVxuICAvKiBlc2xpbnQtZW5hYmxlIG1heC1zdGF0ZW1lbnRzICovXG5cbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gTElGRUNZQ0xFIE1FVEhPRFMsIG92ZXJyaWRkZW4gYnkgdGhlIGxheWVyIHN1YmNsYXNzZXNcblxuICAvLyBDYWxsZWQgb25jZSB0byBzZXQgdXAgdGhlIGluaXRpYWwgc3RhdGVcbiAgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICB9XG5cbiAgLy8gZ2wgY29udGV4dCBpcyBub3cgYXZhaWxhYmxlXG4gIGRpZE1vdW50KCkge1xuICB9XG5cbiAgc2hvdWxkVXBkYXRlKG9sZFByb3BzLCBuZXdQcm9wcykge1xuICAgIC8vIENoZWNrIHVwZGF0ZSB0cmlnZ2VycywgYW5kIGludmFsaWRhdGUgcHJvcHMgYWNjb3JkaW5nbHlcbiAgICBpZiAodGhpcy5jaGVja1VwZGF0ZVRyaWdnZXJzKG9sZFByb3BzLCBuZXdQcm9wcykpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyBJZiBhbnkgcHJvcHMgaGF2ZSBjaGFuZ2VkLCBpZ25vcmluZyB1cGRhdGVUcmlnZ2VycyBvYmplY3RzXG4gICAgLy8gKHVwZGF0ZVRyaWdnZXJzIGFyZSBleHBlY3RlZCB0byBiZSByZW1pbnRlZCBvbiBldmVyeSB1cGRhdGUpXG4gICAgY29uc3QgZXF1YWxTaGFsbG93ID0gYXJlRXF1YWxTaGFsbG93KG5ld1Byb3BzLCBvbGRQcm9wcywge1xuICAgICAgaWdub3JlOiB7dXBkYXRlVHJpZ2dlcnM6IHRydWV9XG4gICAgfSk7XG4gICAgaWYgKCFlcXVhbFNoYWxsb3cpIHtcbiAgICAgIGlmIChuZXdQcm9wcy5kYXRhICE9PSBvbGRQcm9wcy5kYXRhKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2RhdGFDaGFuZ2VkOiB0cnVlfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG5ld1Byb3BzLmRlZXBDb21wYXJlICYmICFpc0RlZXBFcXVhbChuZXdQcm9wcy5kYXRhLCBvbGRQcm9wcy5kYXRhKSkge1xuICAgICAgLy8gU3VwcG9ydCBvcHRpb25hbCBkZWVwIGNvbXBhcmUgb2YgZGF0YVxuICAgICAgLy8gTm90ZTogdGhpcyBpcyBxdWl0ZSBpbmVmZmljaWVudCwgYXBwIHNob3VsZCB1c2UgYnVmZmVyIHByb3BzIGluc3RlYWRcbiAgICAgIHRoaXMuc2V0U3RhdGUoe2RhdGFDaGFuZ2VkOiB0cnVlfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiwgYWxsIGF0dHJpYnV0ZU1hbmFnZXIgd2lsbCBiZSB1cGRhdGVkXG4gIHdpbGxSZWNlaXZlUHJvcHMobmV3UHJvcHMpIHtcbiAgICBjb25zdCB7YXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuICAgIGlmICh0aGlzLnN0YXRlLmRhdGFDaGFuZ2VkKSB7XG4gICAgICBhdHRyaWJ1dGVNYW5hZ2VyLmludmFsaWRhdGVBbGwoKTtcbiAgICB9XG4gIH1cblxuICAvLyBnbCBjb250ZXh0IHN0aWxsIGF2YWlsYWJsZVxuICB3aWxsVW5tb3VudCgpIHtcbiAgfVxuXG4gIC8vIEVORCBMSUZFQ1lDTEUgTUVUSE9EU1xuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIC8vIFB1YmxpYyBBUElcblxuICBzZXROZWVkc1JlZHJhdygpIHtcbiAgICBpZiAodGhpcy5zdGF0ZSkge1xuICAgICAgdGhpcy5zdGF0ZS5uZWVkc1JlZHJhdyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0TmVlZHNSZWRyYXcoe2NsZWFyRmxhZ30pIHtcbiAgICAvLyB0aGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGJ5IHRoZSByZW5kZXIgbG9vcCBhcyBzb29uIGEgdGhlIGxheWVyXG4gICAgLy8gaGFzIGJlZW4gY3JlYXRlZCwgc28gZ3VhcmQgYWdhaW5zdCB1bmluaXRpYWxpemVkIHN0YXRlXG4gICAgaWYgKCF0aGlzLnN0YXRlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qge2F0dHJpYnV0ZU1hbmFnZXJ9ID0gdGhpcy5zdGF0ZTtcbiAgICBsZXQgbmVlZHNSZWRyYXcgPSBhdHRyaWJ1dGVNYW5hZ2VyLmdldE5lZWRzUmVkcmF3KHtjbGVhckZsYWd9KTtcbiAgICBuZWVkc1JlZHJhdyA9IG5lZWRzUmVkcmF3IHx8IHRoaXMuc3RhdGUubmVlZHNSZWRyYXc7XG4gICAgaWYgKGNsZWFyRmxhZykge1xuICAgICAgdGhpcy5zdGF0ZS5uZWVkc1JlZHJhdyA9IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gbmVlZHNSZWRyYXc7XG4gIH1cblxuICAvLyBVcGRhdGVzIHNlbGVjdGVkIHN0YXRlIG1lbWJlcnMgYW5kIG1hcmtzIHRoZSBvYmplY3QgZm9yIHJlZHJhd1xuICBzZXRTdGF0ZSh1cGRhdGVPYmplY3QpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuc3RhdGUsIHVwZGF0ZU9iamVjdCk7XG4gICAgdGhpcy5zdGF0ZS5uZWVkc1JlZHJhdyA9IHRydWU7XG4gIH1cblxuICAvLyBVcGRhdGVzIHNlbGVjdGVkIHN0YXRlIG1lbWJlcnMgYW5kIG1hcmtzIHRoZSBvYmplY3QgZm9yIHJlZHJhd1xuICBzZXRVbmlmb3Jtcyh1bmlmb3JtTWFwKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUubW9kZWwpIHtcbiAgICAgIHRoaXMuc3RhdGUubW9kZWwuc2V0VW5pZm9ybXModW5pZm9ybU1hcCk7XG4gICAgfVxuICAgIC8vIFRPRE8gLSBzZXQgbmVlZHNSZWRyYXcgb24gdGhlIG1vZGVsP1xuICAgIHRoaXMuc3RhdGUubmVlZHNSZWRyYXcgPSB0cnVlO1xuICAgIGxvZygzLCAnbGF5ZXIuc2V0VW5pZm9ybXMnLCB1bmlmb3JtTWFwKTtcbiAgfVxuXG4gIC8vIFVzZSBpdGVyYXRpb24gKHRoZSBvbmx5IHJlcXVpcmVkIGNhcGFiaWxpdHkgb24gZGF0YSkgdG8gZ2V0IGZpcnN0IGVsZW1lbnRcbiAgZ2V0Rmlyc3RPYmplY3QoKSB7XG4gICAgY29uc3Qge2RhdGF9ID0gdGhpcy5wcm9wcztcbiAgICBmb3IgKGNvbnN0IG9iamVjdCBvZiBkYXRhKSB7XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIElOVEVSTkFMIE1FVEhPRFNcblxuICAvLyBEZWR1Y2VzIG51bWVyIG9mIGluc3RhbmNlcy4gSW50ZW50aW9uIGlzIHRvIHN1cHBvcnQ6XG4gIC8vIC0gRXhwbGljaXQgc2V0dGluZyBvZiBudW1JbnN0YW5jZXNcbiAgLy8gLSBBdXRvLWRlZHVjdGlvbiBmb3IgRVM2IGNvbnRhaW5lcnMgdGhhdCBkZWZpbmUgYSBzaXplIG1lbWJlclxuICAvLyAtIEF1dG8tZGVkdWN0aW9uIGZvciBDbGFzc2ljIEFycmF5cyB2aWEgdGhlIGJ1aWx0LWluIGxlbmd0aCBhdHRyaWJ1dGVcbiAgLy8gLSBBdXRvLWRlZHVjdGlvbiB2aWEgYXJyYXlzXG4gIGdldE51bUluc3RhbmNlcyhwcm9wcykge1xuICAgIHByb3BzID0gcHJvcHMgfHwgdGhpcy5wcm9wcztcblxuICAgIC8vIEZpcnN0IGNoZWNrIGlmIHRoZSBsYXllciBoYXMgc2V0IGl0cyBvd24gdmFsdWVcbiAgICBpZiAodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLm51bUluc3RhbmNlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZS5udW1JbnN0YW5jZXM7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgYXBwIGhhcyBwcm92aWRlZCBhbiBleHBsaWNpdCB2YWx1ZVxuICAgIGlmIChwcm9wcy5udW1JbnN0YW5jZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHByb3BzLm51bUluc3RhbmNlcztcbiAgICB9XG5cbiAgICBjb25zdCB7ZGF0YX0gPSBwcm9wcztcblxuICAgIC8vIENoZWNrIGlmIEVTNiBjb2xsZWN0aW9uIFwiY291bnRcIiBmdW5jdGlvbiBpcyBhdmFpbGFibGVcbiAgICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YS5jb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGRhdGEuY291bnQoKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiBFUzYgY29sbGVjdGlvbiBcInNpemVcIiBhdHRyaWJ1dGUgaXMgc2V0XG4gICAgaWYgKGRhdGEgJiYgZGF0YS5zaXplICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBkYXRhLnNpemU7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgYXJyYXkgbGVuZ3RoIGF0dHJpYnV0ZSBpcyBzZXRcbiAgICAvLyBOb3RlOiBjaGVja2luZyB0aGlzIGxhc3Qgc2luY2Ugc29tZSBFUzYgY29sbGVjdGlvbnMgKEltbXV0YWJsZS5qcylcbiAgICAvLyBlbWl0IHByb2Z1c2Ugd2FybmluZ3Mgd2hlbiB0cnlpbmcgdG8gYWNjZXNzIGBsZW5ndGhgIGF0dHJpYnV0ZVxuICAgIGlmIChkYXRhICYmIGRhdGEubGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBkYXRhLmxlbmd0aDtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBkZWR1Y2UgbnVtSW5zdGFuY2VzJyk7XG4gIH1cblxuICAvLyBJbnRlcm5hbCBIZWxwZXJzXG5cbiAgY2hlY2tQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpIHtcbiAgICAvLyBOb3RlOiBkYXRhQ2hhbmdlZCBtaWdodCBhbHJlYWR5IGJlIHNldFxuICAgIGlmIChuZXdQcm9wcy5kYXRhICE9PSBvbGRQcm9wcy5kYXRhKSB7XG4gICAgICAvLyBGaWd1cmUgb3V0IGRhdGEgbGVuZ3RoXG4gICAgICB0aGlzLnN0YXRlLmRhdGFDaGFuZ2VkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCB2aWV3cG9ydENoYW5nZWQgPVxuICAgICAgbmV3UHJvcHMud2lkdGggIT09IG9sZFByb3BzLndpZHRoIHx8XG4gICAgICBuZXdQcm9wcy5oZWlnaHQgIT09IG9sZFByb3BzLmhlaWdodCB8fFxuICAgICAgbmV3UHJvcHMubGF0aXR1ZGUgIT09IG9sZFByb3BzLmxhdGl0dWRlIHx8XG4gICAgICBuZXdQcm9wcy5sb25naXR1ZGUgIT09IG9sZFByb3BzLmxvbmdpdHVkZSB8fFxuICAgICAgbmV3UHJvcHMuem9vbSAhPT0gb2xkUHJvcHMuem9vbTtcblxuICAgIHRoaXMuc2V0U3RhdGUoe3ZpZXdwb3J0Q2hhbmdlZH0pO1xuICB9XG5cbiAgdXBkYXRlQXR0cmlidXRlcyhwcm9wcykge1xuICAgIGNvbnN0IHthdHRyaWJ1dGVNYW5hZ2VyLCBtb2RlbH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IG51bUluc3RhbmNlcyA9IHRoaXMuZ2V0TnVtSW5zdGFuY2VzKHByb3BzKTtcbiAgICAvLyBGaWd1cmUgb3V0IGRhdGEgbGVuZ3RoXG4gICAgYXR0cmlidXRlTWFuYWdlci51cGRhdGUoe1xuICAgICAgbnVtSW5zdGFuY2VzLFxuICAgICAgYnVmZmVyTWFwOiBwcm9wcyxcbiAgICAgIGNvbnRleHQ6IHRoaXMsXG4gICAgICAvLyBEb24ndCB3b3JyeSBhYm91dCBub24tYXR0cmlidXRlIHByb3BzXG4gICAgICBpZ25vcmVVbmtub3duQXR0cmlidXRlczogdHJ1ZVxuICAgIH0pO1xuICAgIGlmIChtb2RlbCkge1xuICAgICAgbW9kZWwuc2V0QXR0cmlidXRlcyhhdHRyaWJ1dGVNYW5hZ2VyLmdldEF0dHJpYnV0ZXMoKSk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlQmFzZVVuaWZvcm1zKCkge1xuICAgIHRoaXMuc2V0VW5pZm9ybXMoe1xuICAgICAgLy8gYXBwbHkgZ2FtbWEgdG8gb3BhY2l0eSB0byBtYWtlIGl0IHZpc3VhbGx5IFwibGluZWFyXCJcbiAgICAgIG9wYWNpdHk6IE1hdGgucG93KHRoaXMucHJvcHMub3BhY2l0eSB8fCAwLjgsIDEgLyAyLjIpXG4gICAgfSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiBhbnkgdXBkYXRlIHRyaWdnZXJzIGhhdmUgY2hhbmdlZCwgYW5kIGludmFsaWRhdGVcbiAgLy8gYXR0cmlidXRlcyBhY2NvcmRpbmdseS5cbiAgY2hlY2tVcGRhdGVUcmlnZ2VycyhvbGRQcm9wcywgbmV3UHJvcHMpIHtcbiAgICBsZXQgY2hhbmdlID0gZmFsc2U7XG4gICAgY29uc3Qge2F0dHJpYnV0ZU1hbmFnZXJ9ID0gdGhpcy5zdGF0ZTtcbiAgICBmb3IgKGNvbnN0IHByb3BOYW1lIGluIG5ld1Byb3BzLnVwZGF0ZVRyaWdnZXJzKSB7XG4gICAgICBjb25zdCBvbGRUcmlnZ2VycyA9IG9sZFByb3BzLnVwZGF0ZVRyaWdnZXJzW3Byb3BOYW1lXTtcbiAgICAgIGNvbnN0IG5ld1RyaWdnZXJzID0gbmV3UHJvcHMudXBkYXRlVHJpZ2dlcnNbcHJvcE5hbWVdO1xuICAgICAgaWYgKCFhcmVFcXVhbFNoYWxsb3cob2xkVHJpZ2dlcnMsIG5ld1RyaWdnZXJzKSkge1xuICAgICAgICBpZiAocHJvcE5hbWUgPT09ICdhbGwnKSB7XG4gICAgICAgICAgYXR0cmlidXRlTWFuYWdlci5pbnZhbGlkYXRlQWxsKCk7XG4gICAgICAgICAgY2hhbmdlID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhdHRyaWJ1dGVNYW5hZ2VyLmludmFsaWRhdGUocHJvcE5hbWUpO1xuICAgICAgICAgIGNoYW5nZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNoYW5nZTtcbiAgfVxuXG4gIC8vIExBWUVSIE1BTkFHRVIgQVBJXG5cbiAgLy8gQ2FsbGVkIGJ5IGxheWVyIG1hbmFnZXIgd2hlbiBhIG5ldyBsYXllciBpcyBmb3VuZFxuICAvKiBlc2xpbnQtZGlzYWJsZSBtYXgtc3RhdGVtZW50cyAqL1xuICBpbml0aWFsaXplTGF5ZXIoe2dsfSkge1xuICAgIGFzc2VydChnbCk7XG4gICAgdGhpcy5zdGF0ZSA9IHtnbH07XG5cbiAgICAvLyBJbml0aWFsaXplIHN0YXRlIG9ubHkgb25jZVxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgYXR0cmlidXRlTWFuYWdlcjogbmV3IEF0dHJpYnV0ZU1hbmFnZXIoe2lkOiB0aGlzLnByb3BzLmlkfSksXG4gICAgICBtb2RlbDogbnVsbCxcbiAgICAgIG5lZWRzUmVkcmF3OiB0cnVlLFxuICAgICAgZGF0YUNoYW5nZWQ6IHRydWVcbiAgICB9KTtcblxuICAgIGNvbnN0IHthdHRyaWJ1dGVNYW5hZ2VyfSA9IHRoaXMuc3RhdGU7XG4gICAgLy8gQWxsIGluc3RhbmNlZCBsYXllcnMgZ2V0IGluc3RhbmNlUGlja2luZ0NvbG9ycyBhdHRyaWJ1dGUgYnkgZGVmYXVsdFxuICAgIC8vIFRoZWlyIHNoYWRlcnMgY2FuIHVzZSBpdCB0byByZW5kZXIgYSBwaWNraW5nIHNjZW5lXG4gICAgYXR0cmlidXRlTWFuYWdlci5hZGRJbnN0YW5jZWQoQVRUUklCVVRFUywge1xuICAgICAgaW5zdGFuY2VQaWNraW5nQ29sb3JzOiB7dXBkYXRlOiB0aGlzLmNhbGN1bGF0ZUluc3RhbmNlUGlja2luZ0NvbG9yc31cbiAgICB9KTtcblxuICAgIHRoaXMuc2V0Vmlld3BvcnQoKTtcbiAgICB0aGlzLmluaXRpYWxpemVTdGF0ZSgpO1xuICAgIGFzc2VydCh0aGlzLnN0YXRlLm1vZGVsLCAnTW9kZWwgbXVzdCBiZSBzZXQgaW4gaW5pdGlhbGl6ZVN0YXRlJyk7XG4gICAgdGhpcy5zZXRWaWV3cG9ydCgpO1xuXG4gICAgLy8gVE9ETyAtIHRoZSBhcHAgbXVzdCBiZSBhYmxlIHRvIG92ZXJyaWRlXG5cbiAgICAvLyBBZGQgYW55IHN1YmNsYXNzIGF0dHJpYnV0ZXNcbiAgICB0aGlzLnVwZGF0ZUF0dHJpYnV0ZXModGhpcy5wcm9wcyk7XG4gICAgdGhpcy51cGRhdGVCYXNlVW5pZm9ybXMoKTtcblxuICAgIGNvbnN0IHttb2RlbH0gPSB0aGlzLnN0YXRlO1xuICAgIG1vZGVsLnNldEluc3RhbmNlQ291bnQodGhpcy5nZXROdW1JbnN0YW5jZXMoKSk7XG4gICAgbW9kZWwuaWQgPSBgJHt0aGlzLnByb3BzLmlkfS1tb2RlbGA7XG4gICAgbW9kZWwucHJvZ3JhbS5pZCA9IGAke3RoaXMucHJvcHMuaWR9LXByb2dyYW1gO1xuICAgIG1vZGVsLmdlb21ldHJ5LmlkID0gYCR7dGhpcy5wcm9wcy5pZH0tZ2VvbWV0cnlgO1xuXG4gICAgLy8gQ3JlYXRlIGEgbW9kZWwgZm9yIHRoZSBsYXllclxuICAgIHRoaXMuX3VwZGF0ZU1vZGVsKHtnbH0pO1xuXG4gICAgLy8gQ2FsbCBsaWZlIGN5Y2xlIG1ldGhvZFxuICAgIHRoaXMuZGlkTW91bnQoKTtcbiAgfVxuICAvKiBlc2xpbnQtZW5hYmxlIG1heC1zdGF0ZW1lbnRzICovXG5cbiAgLy8gQ2FsbGVkIGJ5IGxheWVyIG1hbmFnZXIgd2hlbiBleGlzdGluZyBsYXllciBpcyBnZXR0aW5nIG5ldyBwcm9wc1xuICB1cGRhdGVMYXllcihvbGRQcm9wcywgbmV3UHJvcHMpIHtcbiAgICAvLyBDYWxjdWxhdGUgc3RhbmRhcmQgY2hhbmdlIGZsYWdzXG4gICAgdGhpcy5jaGVja1Byb3BzKG9sZFByb3BzLCBuZXdQcm9wcyk7XG5cbiAgICAvLyBDaGVjayBpZiBhbnkgcHJvcHMgaGF2ZSBjaGFuZ2VkXG4gICAgaWYgKHRoaXMuc2hvdWxkVXBkYXRlKG9sZFByb3BzLCBuZXdQcm9wcykpIHtcbiAgICAgIGlmICh0aGlzLnN0YXRlLnZpZXdwb3J0Q2hhbmdlZCkge1xuICAgICAgICB0aGlzLnNldFZpZXdwb3J0KCk7XG4gICAgICB9XG5cbiAgICAgIC8vIExldCB0aGUgc3ViY2xhc3MgbWFyayB3aGF0IGlzIG5lZWRlZCBmb3IgdXBkYXRlXG4gICAgICB0aGlzLndpbGxSZWNlaXZlUHJvcHMob2xkUHJvcHMsIG5ld1Byb3BzKTtcbiAgICAgIC8vIFJ1biB0aGUgYXR0cmlidXRlIHVwZGF0ZXJzXG4gICAgICB0aGlzLnVwZGF0ZUF0dHJpYnV0ZXMobmV3UHJvcHMpO1xuICAgICAgLy8gVXBkYXRlIHRoZSB1bmlmb3Jtc1xuICAgICAgdGhpcy51cGRhdGVCYXNlVW5pZm9ybXMoKTtcblxuICAgICAgaWYgKHRoaXMuc3RhdGUubW9kZWwpIHtcbiAgICAgICAgdGhpcy5zdGF0ZS5tb2RlbC5zZXRJbnN0YW5jZUNvdW50KHRoaXMuZ2V0TnVtSW5zdGFuY2VzKCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc3RhdGUuZGF0YUNoYW5nZWQgPSBmYWxzZTtcbiAgICB0aGlzLnN0YXRlLnZpZXdwb3J0Q2hhbmdlZCA9IGZhbHNlO1xuICB9XG5cbiAgLy8gQ2FsbGVkIGJ5IG1hbmFnZXIgd2hlbiBsYXllciBpcyBhYm91dCB0byBiZSBkaXNwb3NlZFxuICAvLyBOb3RlOiBub3QgZ3VhcmFudGVlZCB0byBiZSBjYWxsZWQgb24gYXBwbGljYXRpb24gc2h1dGRvd25cbiAgZmluYWxpemVMYXllcigpIHtcbiAgICB0aGlzLndpbGxVbm1vdW50KCk7XG4gIH1cblxuICBjYWxjdWxhdGVJbnN0YW5jZVBpY2tpbmdDb2xvcnMoYXR0cmlidXRlLCBudW1JbnN0YW5jZXMpIHtcbiAgICBjb25zdCB7dmFsdWUsIHNpemV9ID0gYXR0cmlidXRlO1xuICAgIC8vIGFkZCAxIHRvIGluZGV4IHRvIHNlcGVyYXRlIGZyb20gbm8gc2VsZWN0aW9uXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1JbnN0YW5jZXM7IGkrKykge1xuICAgICAgY29uc3QgcGlja2luZ0NvbG9yID0gdGhpcy5lbmNvZGVQaWNraW5nQ29sb3IoaSk7XG4gICAgICB2YWx1ZVtpICogc2l6ZSArIDBdID0gcGlja2luZ0NvbG9yWzBdO1xuICAgICAgdmFsdWVbaSAqIHNpemUgKyAxXSA9IHBpY2tpbmdDb2xvclsxXTtcbiAgICAgIHZhbHVlW2kgKiBzaXplICsgMl0gPSBwaWNraW5nQ29sb3JbMl07XG4gICAgfVxuICB9XG5cbiAgZGVjb2RlUGlja2luZ0NvbG9yKGNvbG9yKSB7XG4gICAgYXNzZXJ0KGNvbG9yIGluc3RhbmNlb2YgVWludDhBcnJheSk7XG4gICAgY29uc3QgW2kxLCBpMiwgaTNdID0gY29sb3I7XG4gICAgLy8gMSB3YXMgYWRkZWQgdG8gc2VwZXJhdGUgZnJvbSBubyBzZWxlY3Rpb25cbiAgICBjb25zdCBpbmRleCA9IGkxICsgaTIgKiAyNTYgKyBpMyAqIDY1NTM2IC0gMTtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBlbmNvZGVQaWNraW5nQ29sb3IoaSkge1xuICAgIHJldHVybiBbXG4gICAgICAoaSArIDEpICUgMjU2LFxuICAgICAgTWF0aC5mbG9vcigoaSArIDEpIC8gMjU2KSAlIDI1NixcbiAgICAgIE1hdGguZmxvb3IoKGkgKyAxKSAvIDI1NiAvIDI1NikgJSAyNTZcbiAgICBdO1xuICB9XG5cbiAgLy8gVklSVFVBTCBNRVRIT0QgLSBPdmVycmlkZSB0byBhZGQgb3IgbW9kaWZ5IGBpbmZvYCBvYmplY3QgaW4gc3VibGF5ZXJcbiAgLy8gVGhlIHN1YmxheWVyIG1heSBrbm93IHdoYXQgb2JqZWN0IGUuZy4gbGF0LGxvbiBjb3JyZXNwb25kcyB0byB1c2luZyBtYXRoXG4gIC8vIGV0YyBldmVuIHdoZW4gcGlja2luZyBkb2VzIG5vdCB3b3JrXG4gIG9uR2V0SG92ZXJJbmZvKGluZm8pIHtcbiAgICBjb25zdCB7Y29sb3J9ID0gaW5mbztcbiAgICBpbmZvLmluZGV4ID0gdGhpcy5kZWNvZGVQaWNraW5nQ29sb3IoY29sb3IpO1xuICAgIC8vIElmIHByb3BzLmRhdGEgaXMgYW4gaW5kZXhhYmxlIGFycmF5LCBnZXQgdGhlIG9iamVjdFxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJvcHMuZGF0YSkpIHtcbiAgICAgIGluZm8ub2JqZWN0ID0gdGhpcy5wcm9wcy5kYXRhW2luZm8uaW5kZXhdO1xuICAgIH1cbiAgICBpbmZvLmdlb0Nvb3JkcyA9IHRoaXMudW5wcm9qZWN0KHt4OiBpbmZvLngsIHk6IGluZm8ueX0pO1xuICAgIHJldHVybiBpbmZvO1xuICB9XG5cbiAgb25Ib3ZlcihpbmZvKSB7XG4gICAgY29uc3Qge2NvbG9yfSA9IGluZm87XG5cbiAgICBjb25zdCBzZWxlY3RlZFBpY2tpbmdDb2xvciA9IG5ldyBGbG9hdDMyQXJyYXkoMyk7XG4gICAgc2VsZWN0ZWRQaWNraW5nQ29sb3JbMF0gPSBjb2xvclswXTtcbiAgICBzZWxlY3RlZFBpY2tpbmdDb2xvclsxXSA9IGNvbG9yWzFdO1xuICAgIHNlbGVjdGVkUGlja2luZ0NvbG9yWzJdID0gY29sb3JbMl07XG4gICAgdGhpcy5zZXRVbmlmb3Jtcyh7c2VsZWN0ZWRQaWNraW5nQ29sb3J9KTtcblxuICAgIGluZm8gPSB0aGlzLm9uR2V0SG92ZXJJbmZvKGluZm8pO1xuICAgIHJldHVybiB0aGlzLnByb3BzLm9uSG92ZXIoaW5mbyk7XG4gIH1cblxuICBvbkNsaWNrKGluZm8pIHtcbiAgICBpbmZvID0gdGhpcy5vbkdldEhvdmVySW5mbyhpbmZvKTtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNsaWNrKGluZm8pO1xuICB9XG5cbiAgLy8gSU5URVJOQUwgTUVUSE9EU1xuICBfdXBkYXRlTW9kZWwoe2dsfSkge1xuICAgIGNvbnN0IHttb2RlbCwgYXR0cmlidXRlTWFuYWdlciwgdW5pZm9ybXN9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGFzc2VydChtb2RlbCk7XG4gICAgbW9kZWwuc2V0QXR0cmlidXRlcyhhdHRyaWJ1dGVNYW5hZ2VyLmdldEF0dHJpYnV0ZXMoKSk7XG4gICAgbW9kZWwuc2V0VW5pZm9ybXModW5pZm9ybXMpO1xuICAgIC8vIHdoZXRoZXIgY3VycmVudCBsYXllciByZXNwb25kcyB0byBtb3VzZSBldmVudHNcbiAgICBtb2RlbC5zZXRQaWNrYWJsZSh0aGlzLnByb3BzLmlzUGlja2FibGUpO1xuICB9XG5cbiAgY2hlY2tQcm9wKHByb3BlcnR5LCBwcm9wZXJ0eU5hbWUpIHtcbiAgICBpZiAocHJvcGVydHkgPT09IHVuZGVmaW5lZCB8fCBwcm9wZXJ0eSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm9wZXJ0eSAke3Byb3BlcnR5TmFtZX0gdW5kZWZpbmVkIGluIGxheWVyICR7dGhpcy5wcm9wcy5pZH1gKTtcbiAgICB9XG4gIH1cblxuICAvLyBNQVAgTEFZRVIgRlVOQ1RJT05BTElUWVxuXG4gIHNldFZpZXdwb3J0KCkge1xuICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0LCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCB6b29tfSA9IHRoaXMucHJvcHM7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICB2aWV3cG9ydDoge3g6IDAsIHk6IDAsIHdpZHRoLCBoZWlnaHR9LFxuICAgICAgbWVyY2F0b3I6IFZpZXdwb3J0TWVyY2F0b3Ioe1xuICAgICAgICB3aWR0aCwgaGVpZ2h0LCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCB6b29tLFxuICAgICAgICB0aWxlU2l6ZTogNTEyXG4gICAgICB9KVxuICAgIH0pO1xuICAgIHRoaXMuc2V0VW5pZm9ybXMoe1xuICAgICAgdmlld3BvcnQ6IFswLCAwLCB3aWR0aCwgaGVpZ2h0XSxcbiAgICAgIG1lcmNhdG9yU2NhbGU6IE1hdGgucG93KDIsIHpvb20pLFxuICAgICAgbWVyY2F0b3JDZW50ZXI6IFtsb25naXR1ZGUsIGxhdGl0dWRlXVxuICAgIH0pO1xuICAgIGxvZygzLCB0aGlzLnN0YXRlLnZpZXdwb3J0LCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCB6b29tKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQb3NpdGlvbiBjb252ZXJzaW9uIGlzIGRvbmUgaW4gc2hhZGVyLCBzbyBpbiBtYW55IGNhc2VzIHRoZXJlIGlzIG5vIG5lZWRcbiAgICogZm9yIHRoaXMgZnVuY3Rpb25cbiAgICogQHBhcmFtIHtPYmplY3R8QXJyYXl9IGxhdExuZyAtIEVpdGhlciBbbGF0LGxuZ10gb3Ige2xhdCwgbG9ufVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IC0geCwgeVxuICAgKi9cbiAgcHJvamVjdChsYXRMbmcpIHtcbiAgICBjb25zdCB7bWVyY2F0b3J9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBbeCwgeV0gPSBBcnJheS5pc0FycmF5KGxhdExuZykgP1xuICAgICAgbWVyY2F0b3IucHJvamVjdChbbGF0TG5nWzFdLCBsYXRMbmdbMF1dKSA6XG4gICAgICBtZXJjYXRvci5wcm9qZWN0KFtsYXRMbmcubG9uLCBsYXRMbmcubGF0XSk7XG4gICAgcmV0dXJuIHt4LCB5fTtcbiAgfVxuXG4gIHVucHJvamVjdCh4eSkge1xuICAgIGNvbnN0IHttZXJjYXRvcn0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IFtsb24sIGxhdF0gPSBBcnJheS5pc0FycmF5KHh5KSA/XG4gICAgICBtZXJjYXRvci51bnByb2plY3QoeHkpIDpcbiAgICAgIG1lcmNhdG9yLnVucHJvamVjdChbeHkueCwgeHkueV0pO1xuICAgIHJldHVybiB7bGF0LCBsb259O1xuICB9XG59XG4iXX0=

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

exports.default = ArcLayer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvYXJjLWxheWVyL2FyYy1sYXllci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBb0JBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTSxVQUFVLFFBQVEsU0FBUixDQUFoQjs7QUFFQSxJQUFNLGFBQWE7QUFDakIscUJBQW1CLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxJQUFmLEVBQXFCLEtBQUssSUFBMUIsRUFBZ0MsS0FBSyxJQUFyQyxFQUEyQyxLQUFLLElBQWhELEVBREY7QUFFakIsa0JBQWdCLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxLQUFmLEVBQXNCLEtBQUssT0FBM0IsRUFBb0MsS0FBSyxNQUF6QztBQUZDLENBQW5COztBQUtBLElBQU0sTUFBTSxDQUFDLEdBQUQsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUFaO0FBQ0EsSUFBTSxPQUFPLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxHQUFQLENBQWI7O0lBRXFCLFE7Ozs7Ozs7Ozs7O0FBUW5CLHNCQUtRO0FBQUEscUVBQUosRUFBSTs7QUFBQSxnQ0FKTixXQUlNO0FBQUEsUUFKTixXQUlNLG9DQUpRLENBSVI7QUFBQSwwQkFITixNQUdNO0FBQUEsUUFITixNQUdNLDhCQUhHLEdBR0g7QUFBQSwyQkFGTixNQUVNO0FBQUEsUUFGTixNQUVNLCtCQUZHLElBRUg7O0FBQUEsUUFESCxJQUNHOztBQUFBOztBQUFBO0FBRUosOEJBRkk7QUFHSixvQkFISTtBQUlKO0FBSkksT0FLRCxJQUxDO0FBT1A7Ozs7c0NBRWlCO0FBQUEsbUJBQ2UsS0FBSyxLQURwQjtBQUFBLFVBQ1QsRUFEUyxVQUNULEVBRFM7QUFBQSxVQUNMLGdCQURLLFVBQ0wsZ0JBREs7OztBQUdoQixVQUFNLFFBQVEsS0FBSyxXQUFMLENBQWlCLEVBQWpCLENBQWQ7QUFDQSxZQUFNLFFBQU4sQ0FBZSxXQUFmLEdBQTZCLEtBQUss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QUE7QUFBQTs7QUFBQTtBQUlqQyw4QkFBb0IsSUFBcEIsbUlBQTBCO0FBQUEsY0FBZixLQUFlOztBQUN4QixnQkFBTSxJQUFJLENBQVYsSUFBZSxNQUFNLEtBQU4sQ0FBWSxDQUFaLENBQWY7QUFDQSxnQkFBTSxJQUFJLENBQVYsSUFBZSxNQUFNLEtBQU4sQ0FBWSxDQUFaLENBQWY7QUFDQSxnQkFBTSxJQUFJLENBQVYsSUFBZSxNQUFNLEtBQU4sQ0FBWSxDQUFaLENBQWY7QUFDQSxlQUFLLElBQUw7QUFDRDtBQVRnQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVWxDOzs7Ozs7a0JBdEdrQixRIiwiZmlsZSI6ImFyYy1sYXllci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxNSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBMYXllciBmcm9tICcuLi8uLi9sYXllcic7XG5pbXBvcnQge01vZGVsLCBQcm9ncmFtLCBHZW9tZXRyeX0gZnJvbSAnbHVtYS5nbCc7XG5jb25zdCBnbHNsaWZ5ID0gcmVxdWlyZSgnZ2xzbGlmeScpO1xuXG5jb25zdCBBVFRSSUJVVEVTID0ge1xuICBpbnN0YW5jZVBvc2l0aW9uczoge3NpemU6IDQsICcwJzogJ3gwJywgJzEnOiAneTAnLCAnMic6ICd4MScsICczJzogJ3kxJ30sXG4gIGluc3RhbmNlQ29sb3JzOiB7c2l6ZTogMywgJzAnOiAncmVkJywgJzEnOiAnZ3JlZW4nLCAnMic6ICdibHVlJ31cbn07XG5cbmNvbnN0IFJFRCA9IFsyNTUsIDAsIDBdO1xuY29uc3QgQkxVRSA9IFswLCAwLCAyNTVdO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcmNMYXllciBleHRlbmRzIExheWVyIHtcbiAgLyoqXG4gICAqIEBjbGFzc2Rlc2NcbiAgICogQXJjTGF5ZXJcbiAgICpcbiAgICogQGNsYXNzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgc3Ryb2tlV2lkdGggPSAxLFxuICAgIGNvbG9yMCA9IFJFRCxcbiAgICBjb2xvcjEgPSBCTFVFLFxuICAgIC4uLm9wdHNcbiAgfSA9IHt9KSB7XG4gICAgc3VwZXIoe1xuICAgICAgc3Ryb2tlV2lkdGgsXG4gICAgICBjb2xvcjAsXG4gICAgICBjb2xvcjEsXG4gICAgICAuLi5vcHRzXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgY29uc3Qge2dsLCBhdHRyaWJ1dGVNYW5hZ2VyfSA9IHRoaXMuc3RhdGU7XG5cbiAgICBjb25zdCBtb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWwoZ2wpO1xuICAgIG1vZGVsLnVzZXJEYXRhLnN0cm9rZVdpZHRoID0gdGhpcy5wcm9wcy5zdHJva2VXaWR0aDtcbiAgICB0aGlzLnNldFN0YXRlKHttb2RlbH0pO1xuXG4gICAgYXR0cmlidXRlTWFuYWdlci5hZGRJbnN0YW5jZWQoQVRUUklCVVRFUywge1xuICAgICAgaW5zdGFuY2VQb3NpdGlvbnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlSW5zdGFuY2VQb3NpdGlvbnN9LFxuICAgICAgaW5zdGFuY2VDb2xvcnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlSW5zdGFuY2VDb2xvcnN9XG4gICAgfSk7XG5cbiAgICB0aGlzLnVwZGF0ZUNvbG9ycygpO1xuICB9XG5cbiAgd2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV4dFByb3BzKSB7XG4gICAgc3VwZXIud2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV4dFByb3BzKTtcbiAgICB0aGlzLnN0YXRlLm1vZGVsLnVzZXJEYXRhLnN0cm9rZVdpZHRoID0gbmV4dFByb3BzLnN0cm9rZVdpZHRoO1xuICAgIHRoaXMudXBkYXRlQ29sb3JzKCk7XG4gIH1cblxuICBjcmVhdGVNb2RlbChnbCkge1xuICAgIGxldCBwb3NpdGlvbnMgPSBbXTtcbiAgICBjb25zdCBOVU1fU0VHTUVOVFMgPSA1MDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IE5VTV9TRUdNRU5UUzsgaSsrKSB7XG4gICAgICBwb3NpdGlvbnMgPSBbLi4ucG9zaXRpb25zLCBpLCBpLCBpXTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IE1vZGVsKHtcbiAgICAgIHByb2dyYW06IG5ldyBQcm9ncmFtKGdsLCB7XG4gICAgICAgIHZzOiBnbHNsaWZ5KCcuL2FyYy1sYXllci12ZXJ0ZXguZ2xzbCcpLFxuICAgICAgICBmczogZ2xzbGlmeSgnLi9hcmMtbGF5ZXItZnJhZ21lbnQuZ2xzbCcpLFxuICAgICAgICBpZDogJ2FyYydcbiAgICAgIH0pLFxuICAgICAgZ2VvbWV0cnk6IG5ldyBHZW9tZXRyeSh7XG4gICAgICAgIGlkOiAnYXJjJyxcbiAgICAgICAgZHJhd01vZGU6ICdMSU5FX1NUUklQJyxcbiAgICAgICAgcG9zaXRpb25zOiBuZXcgRmxvYXQzMkFycmF5KHBvc2l0aW9ucylcbiAgICAgIH0pLFxuICAgICAgaXNJbnN0YW5jZWQ6IHRydWUsXG4gICAgICBvbkJlZm9yZVJlbmRlcigpIHtcbiAgICAgICAgdGhpcy51c2VyRGF0YS5vbGRTdHJva2VXaWR0aCA9IGdsLmdldFBhcmFtZXRlcihnbC5MSU5FX1dJRFRIKTtcbiAgICAgICAgdGhpcy5wcm9ncmFtLmdsLmxpbmVXaWR0aCh0aGlzLnVzZXJEYXRhLnN0cm9rZVdpZHRoIHx8IDEpO1xuICAgICAgfSxcbiAgICAgIG9uQWZ0ZXJSZW5kZXIoKSB7XG4gICAgICAgIHRoaXMucHJvZ3JhbS5nbC5saW5lV2lkdGgodGhpcy51c2VyRGF0YS5vbGRTdHJva2VXaWR0aCB8fCAxKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUNvbG9ycygpIHtcbiAgICB0aGlzLnNldFVuaWZvcm1zKHtcbiAgICAgIGNvbG9yMDogdGhpcy5wcm9wcy5jb2xvcjAsXG4gICAgICBjb2xvcjE6IHRoaXMucHJvcHMuY29sb3IxXG4gICAgfSk7XG4gIH1cblxuICBjYWxjdWxhdGVJbnN0YW5jZVBvc2l0aW9ucyhhdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB7ZGF0YX0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHt2YWx1ZSwgc2l6ZX0gPSBhdHRyaWJ1dGU7XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgYXJjIG9mIGRhdGEpIHtcbiAgICAgIHZhbHVlW2kgKyAwXSA9IGFyYy5wb3NpdGlvbi54MDtcbiAgICAgIHZhbHVlW2kgKyAxXSA9IGFyYy5wb3NpdGlvbi55MDtcbiAgICAgIHZhbHVlW2kgKyAyXSA9IGFyYy5wb3NpdGlvbi54MTtcbiAgICAgIHZhbHVlW2kgKyAzXSA9IGFyYy5wb3NpdGlvbi55MTtcbiAgICAgIGkgKz0gc2l6ZTtcbiAgICB9XG4gIH1cblxuICBjYWxjdWxhdGVJbnN0YW5jZUNvbG9ycyhhdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB7ZGF0YX0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHt2YWx1ZSwgc2l6ZX0gPSBhdHRyaWJ1dGU7XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgcG9pbnQgb2YgZGF0YSkge1xuICAgICAgdmFsdWVbaSArIDBdID0gcG9pbnQuY29sb3JbMF07XG4gICAgICB2YWx1ZVtpICsgMV0gPSBwb2ludC5jb2xvclsxXTtcbiAgICAgIHZhbHVlW2kgKyAyXSA9IHBvaW50LmNvbG9yWzJdO1xuICAgICAgaSArPSBzaXplO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvYXJjLWxheWVyL2FyYy1sYXllci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBb0JBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs4ZUFyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBSUEsSUFBTSxVQUFVLFFBQVEsU0FBUixDQUFoQjs7QUFFQSxJQUFNLGFBQWE7QUFDakIscUJBQW1CLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxJQUFmLEVBQXFCLEtBQUssSUFBMUIsRUFBZ0MsS0FBSyxJQUFyQyxFQUEyQyxLQUFLLElBQWhELEVBREY7QUFFakIsa0JBQWdCLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxLQUFmLEVBQXNCLEtBQUssT0FBM0IsRUFBb0MsS0FBSyxNQUF6QztBQUZDLENBQW5COztBQUtBLElBQU0sTUFBTSxDQUFDLEdBQUQsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUFaO0FBQ0EsSUFBTSxPQUFPLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxHQUFQLENBQWI7O0lBRXFCLFE7OztBQUNuQjs7Ozs7Ozs7QUFPQSxzQkFLUTtBQUFBLHFFQUFKLEVBQUk7O0FBQUEsZ0NBSk4sV0FJTTtBQUFBLFFBSk4sV0FJTSxvQ0FKUSxDQUlSO0FBQUEsMEJBSE4sTUFHTTtBQUFBLFFBSE4sTUFHTSw4QkFIRyxHQUdIO0FBQUEsMkJBRk4sTUFFTTtBQUFBLFFBRk4sTUFFTSwrQkFGRyxJQUVIOztBQUFBLFFBREgsSUFDRzs7QUFBQTs7QUFBQTtBQUVKLDhCQUZJO0FBR0osb0JBSEk7QUFJSjtBQUpJLE9BS0QsSUFMQztBQU9QOzs7O3NDQUVpQjtBQUFBLG1CQUNlLEtBQUssS0FEcEI7QUFBQSxVQUNULEVBRFMsVUFDVCxFQURTO0FBQUEsVUFDTCxnQkFESyxVQUNMLGdCQURL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LENBRTFCLEtBRjBCO0FBQUEsVUFFbkIsSUFGbUIsR0FFWCxTQUZXLENBRW5CLElBRm1COztBQUdqQyxVQUFJLElBQUksQ0FBUjtBQUhpQztBQUFBO0FBQUE7O0FBQUE7QUFJakMsOEJBQW9CLElBQXBCLG1JQUEwQjtBQUFBLGNBQWYsS0FBZTs7QUFDeEIsZ0JBQU0sSUFBSSxDQUFWLElBQWUsTUFBTSxLQUFOLENBQVksQ0FBWixDQUFmO0FBQ0EsZ0JBQU0sSUFBSSxDQUFWLElBQWUsTUFBTSxLQUFOLENBQVksQ0FBWixDQUFmO0FBQ0EsZ0JBQU0sSUFBSSxDQUFWLElBQWUsTUFBTSxLQUFOLENBQVksQ0FBWixDQUFmO0FBQ0EsZUFBSyxJQUFMO0FBQ0Q7QUFUZ0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVsQzs7Ozs7O2tCQXRHa0IsUSIsImZpbGUiOiJhcmMtbGF5ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMTUgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgTGF5ZXIgZnJvbSAnLi4vLi4vbGF5ZXInO1xuaW1wb3J0IHtNb2RlbCwgUHJvZ3JhbSwgR2VvbWV0cnl9IGZyb20gJ2x1bWEuZ2wnO1xuY29uc3QgZ2xzbGlmeSA9IHJlcXVpcmUoJ2dsc2xpZnknKTtcblxuY29uc3QgQVRUUklCVVRFUyA9IHtcbiAgaW5zdGFuY2VQb3NpdGlvbnM6IHtzaXplOiA0LCAnMCc6ICd4MCcsICcxJzogJ3kwJywgJzInOiAneDEnLCAnMyc6ICd5MSd9LFxuICBpbnN0YW5jZUNvbG9yczoge3NpemU6IDMsICcwJzogJ3JlZCcsICcxJzogJ2dyZWVuJywgJzInOiAnYmx1ZSd9XG59O1xuXG5jb25zdCBSRUQgPSBbMjU1LCAwLCAwXTtcbmNvbnN0IEJMVUUgPSBbMCwgMCwgMjU1XTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXJjTGF5ZXIgZXh0ZW5kcyBMYXllciB7XG4gIC8qKlxuICAgKiBAY2xhc3NkZXNjXG4gICAqIEFyY0xheWVyXG4gICAqXG4gICAqIEBjbGFzc1xuICAgKiBAcGFyYW0ge29iamVjdH0gb3B0c1xuICAgKi9cbiAgY29uc3RydWN0b3Ioe1xuICAgIHN0cm9rZVdpZHRoID0gMSxcbiAgICBjb2xvcjAgPSBSRUQsXG4gICAgY29sb3IxID0gQkxVRSxcbiAgICAuLi5vcHRzXG4gIH0gPSB7fSkge1xuICAgIHN1cGVyKHtcbiAgICAgIHN0cm9rZVdpZHRoLFxuICAgICAgY29sb3IwLFxuICAgICAgY29sb3IxLFxuICAgICAgLi4ub3B0c1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIGNvbnN0IHtnbCwgYXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsKGdsKTtcbiAgICBtb2RlbC51c2VyRGF0YS5zdHJva2VXaWR0aCA9IHRoaXMucHJvcHMuc3Ryb2tlV2lkdGg7XG4gICAgdGhpcy5zZXRTdGF0ZSh7bW9kZWx9KTtcblxuICAgIGF0dHJpYnV0ZU1hbmFnZXIuYWRkSW5zdGFuY2VkKEFUVFJJQlVURVMsIHtcbiAgICAgIGluc3RhbmNlUG9zaXRpb25zOiB7dXBkYXRlOiB0aGlzLmNhbGN1bGF0ZUluc3RhbmNlUG9zaXRpb25zfSxcbiAgICAgIGluc3RhbmNlQ29sb3JzOiB7dXBkYXRlOiB0aGlzLmNhbGN1bGF0ZUluc3RhbmNlQ29sb3JzfVxuICAgIH0pO1xuXG4gICAgdGhpcy51cGRhdGVDb2xvcnMoKTtcbiAgfVxuXG4gIHdpbGxSZWNlaXZlUHJvcHMob2xkUHJvcHMsIG5leHRQcm9wcykge1xuICAgIHN1cGVyLndpbGxSZWNlaXZlUHJvcHMob2xkUHJvcHMsIG5leHRQcm9wcyk7XG4gICAgdGhpcy5zdGF0ZS5tb2RlbC51c2VyRGF0YS5zdHJva2VXaWR0aCA9IG5leHRQcm9wcy5zdHJva2VXaWR0aDtcbiAgICB0aGlzLnVwZGF0ZUNvbG9ycygpO1xuICB9XG5cbiAgY3JlYXRlTW9kZWwoZ2wpIHtcbiAgICBsZXQgcG9zaXRpb25zID0gW107XG4gICAgY29uc3QgTlVNX1NFR01FTlRTID0gNTA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBOVU1fU0VHTUVOVFM7IGkrKykge1xuICAgICAgcG9zaXRpb25zID0gWy4uLnBvc2l0aW9ucywgaSwgaSwgaV07XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBNb2RlbCh7XG4gICAgICBwcm9ncmFtOiBuZXcgUHJvZ3JhbShnbCwge1xuICAgICAgICB2czogZ2xzbGlmeSgnLi9hcmMtbGF5ZXItdmVydGV4Lmdsc2wnKSxcbiAgICAgICAgZnM6IGdsc2xpZnkoJy4vYXJjLWxheWVyLWZyYWdtZW50Lmdsc2wnKSxcbiAgICAgICAgaWQ6ICdhcmMnXG4gICAgICB9KSxcbiAgICAgIGdlb21ldHJ5OiBuZXcgR2VvbWV0cnkoe1xuICAgICAgICBpZDogJ2FyYycsXG4gICAgICAgIGRyYXdNb2RlOiAnTElORV9TVFJJUCcsXG4gICAgICAgIHBvc2l0aW9uczogbmV3IEZsb2F0MzJBcnJheShwb3NpdGlvbnMpXG4gICAgICB9KSxcbiAgICAgIGlzSW5zdGFuY2VkOiB0cnVlLFxuICAgICAgb25CZWZvcmVSZW5kZXIoKSB7XG4gICAgICAgIHRoaXMudXNlckRhdGEub2xkU3Ryb2tlV2lkdGggPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuTElORV9XSURUSCk7XG4gICAgICAgIHRoaXMucHJvZ3JhbS5nbC5saW5lV2lkdGgodGhpcy51c2VyRGF0YS5zdHJva2VXaWR0aCB8fCAxKTtcbiAgICAgIH0sXG4gICAgICBvbkFmdGVyUmVuZGVyKCkge1xuICAgICAgICB0aGlzLnByb2dyYW0uZ2wubGluZVdpZHRoKHRoaXMudXNlckRhdGEub2xkU3Ryb2tlV2lkdGggfHwgMSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVDb2xvcnMoKSB7XG4gICAgdGhpcy5zZXRVbmlmb3Jtcyh7XG4gICAgICBjb2xvcjA6IHRoaXMucHJvcHMuY29sb3IwLFxuICAgICAgY29sb3IxOiB0aGlzLnByb3BzLmNvbG9yMVxuICAgIH0pO1xuICB9XG5cbiAgY2FsY3VsYXRlSW5zdGFuY2VQb3NpdGlvbnMoYXR0cmlidXRlKSB7XG4gICAgY29uc3Qge2RhdGF9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7dmFsdWUsIHNpemV9ID0gYXR0cmlidXRlO1xuICAgIGxldCBpID0gMDtcbiAgICBmb3IgKGNvbnN0IGFyYyBvZiBkYXRhKSB7XG4gICAgICB2YWx1ZVtpICsgMF0gPSBhcmMucG9zaXRpb24ueDA7XG4gICAgICB2YWx1ZVtpICsgMV0gPSBhcmMucG9zaXRpb24ueTA7XG4gICAgICB2YWx1ZVtpICsgMl0gPSBhcmMucG9zaXRpb24ueDE7XG4gICAgICB2YWx1ZVtpICsgM10gPSBhcmMucG9zaXRpb24ueTE7XG4gICAgICBpICs9IHNpemU7XG4gICAgfVxuICB9XG5cbiAgY2FsY3VsYXRlSW5zdGFuY2VDb2xvcnMoYXR0cmlidXRlKSB7XG4gICAgY29uc3Qge2RhdGF9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7dmFsdWUsIHNpemV9ID0gYXR0cmlidXRlO1xuICAgIGxldCBpID0gMDtcbiAgICBmb3IgKGNvbnN0IHBvaW50IG9mIGRhdGEpIHtcbiAgICAgIHZhbHVlW2kgKyAwXSA9IHBvaW50LmNvbG9yWzBdO1xuICAgICAgdmFsdWVbaSArIDFdID0gcG9pbnQuY29sb3JbMV07XG4gICAgICB2YWx1ZVtpICsgMl0gPSBwb2ludC5jb2xvclsyXTtcbiAgICAgIGkgKz0gc2l6ZTtcbiAgICB9XG4gIH1cblxufVxuIl19

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

exports.default = ChoroplethLayer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvY2hvcm9wbGV0aC1sYXllci9jaG9yb3BsZXRoLWxheWVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFvQkE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTSxVQUFVLFFBQVEsU0FBUixDQUFoQjs7QUFFQSxJQUFNLGFBQWE7QUFDakIsV0FBUyxFQUFDLE1BQU0sQ0FBUCxFQUFVLEtBQUssT0FBZixFQUF3QixXQUFXLElBQW5DLEVBRFE7QUFFakIsYUFBVyxFQUFDLE1BQU0sQ0FBUCxFQUFVLEtBQUssR0FBZixFQUFvQixLQUFLLEdBQXpCLEVBQThCLEtBQUssUUFBbkMsRUFGTTtBQUdqQixVQUFRLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxLQUFmLEVBQXNCLEtBQUssT0FBM0IsRUFBb0MsS0FBSyxNQUF6QyxFQUhTOztBQUtqQixpQkFBZSxFQUFDLE1BQU0sQ0FBUCxFQUFVLEtBQUssU0FBZixFQUEwQixLQUFLLFdBQS9CLEVBQTRDLEtBQUssVUFBakQ7QUFMRSxDQUFuQjs7SUFRcUIsZTs7Ozs7Ozs7Ozs7Ozs7OztBQWFuQiwyQkFBWSxLQUFaLEVBQW1CO0FBQUE7O0FBQUE7QUFFZixlQUFTO0FBRk0sT0FHWixLQUhZO0FBS2xCOzs7O3NDQUVpQjtBQUFBLG1CQUNlLEtBQUssS0FEcEI7QUFBQSxVQUNULEVBRFMsVUFDVCxFQURTO0FBQUEsVUFDTCxnQkFESyxVQUNMLGdCQURLOzs7QUFHaEIsdUJBQWlCLFVBQWpCLENBQTRCLFVBQTVCLEVBQXdDOztBQUV0QyxpQkFBUyxFQUFDLFFBQVEsS0FBSyxnQkFBZCxFQUY2QjtBQUd0QyxtQkFBVyxFQUFDLFFBQVEsS0FBSyxrQkFBZCxFQUgyQjtBQUl0QyxnQkFBUSxFQUFDLFFBQVEsS0FBSyxlQUFkLEVBSjhCOztBQU10Qyx1QkFBZSxFQUFDLFFBQVEsS0FB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Ozs7OztrQkE1S2tCLGUiLCJmaWxlIjoiY2hvcm9wbGV0aC1sYXllci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxNSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBMYXllciBmcm9tICcuLi8uLi9sYXllcic7XG5pbXBvcnQgZWFyY3V0IGZyb20gJ2VhcmN1dCc7XG5pbXBvcnQgZmxhdHRlbkRlZXAgZnJvbSAnbG9kYXNoLmZsYXR0ZW5kZWVwJztcbmltcG9ydCBub3JtYWxpemUgZnJvbSAnZ2VvanNvbi1ub3JtYWxpemUnO1xuaW1wb3J0IHtNb2RlbCwgUHJvZ3JhbSwgR2VvbWV0cnl9IGZyb20gJ2x1bWEuZ2wnO1xuY29uc3QgZ2xzbGlmeSA9IHJlcXVpcmUoJ2dsc2xpZnknKTtcblxuY29uc3QgQVRUUklCVVRFUyA9IHtcbiAgaW5kaWNlczoge3NpemU6IDEsICcwJzogJ2luZGV4JywgaXNJbmRleGVkOiB0cnVlfSxcbiAgcG9zaXRpb25zOiB7c2l6ZTogMywgJzAnOiAneCcsICcxJzogJ3knLCAnMic6ICd1bnVzZWQnfSxcbiAgY29sb3JzOiB7c2l6ZTogMywgJzAnOiAncmVkJywgJzEnOiAnZ3JlZW4nLCAnMic6ICdibHVlJ30sXG4gIC8vIE92ZXJyaWRlIHBpY2tpbmcgY29sb3JzIHRvIHByZXZlbnQgYXV0byBhbGxvY2F0aW9uXG4gIHBpY2tpbmdDb2xvcnM6IHtzaXplOiAzLCAnMCc6ICdwaWNrUmVkJywgJzEnOiAncGlja0dyZWVuJywgJzInOiAncGlja0JsdWUnfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2hvcm9wbGV0aExheWVyIGV4dGVuZHMgTGF5ZXIge1xuICAvKipcbiAgICogQGNsYXNzZGVzY1xuICAgKiBDaG9yb3BsZXRoTGF5ZXJcbiAgICpcbiAgICogQGNsYXNzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICAgKiBAcGFyYW0ge2Jvb2x9IHByb3BzLmRyYXdDb250b3VyIC0gPyBkcmF3Q29udG91ciA6IGRyYXdBcmVhXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IHByb3BzLm9uQ2hvcm9wbGV0aEhvdmVyZWQgLSBwcm92aWRlIHByb2VydGllcyBvZiB0aGVcbiAgICogc2VsZWN0ZWQgY2hvcm9wbGV0aCwgdG9nZXRoZXIgd2l0aCB0aGUgbW91c2UgZXZlbnQgd2hlbiBtb3VzZSBob3ZlcmVkXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IHByb3BzLm9uQ2hvcm9wbGV0aENsaWNrZWQgLSBwcm92aWRlIHByb2VydGllcyBvZiB0aGVcbiAgICogc2VsZWN0ZWQgY2hvcm9wbGV0aCwgdG9nZXRoZXIgd2l0aCB0aGUgbW91c2UgZXZlbnQgd2hlbiBtb3VzZSBjbGlja2VkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHtcbiAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAuLi5wcm9wc1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIGNvbnN0IHtnbCwgYXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuXG4gICAgYXR0cmlidXRlTWFuYWdlci5hZGREeW5hbWljKEFUVFJJQlVURVMsIHtcbiAgICAgIC8vIFByaW10aXZlIGF0dHJpYnV0ZXNcbiAgICAgIGluZGljZXM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlSW5kaWNlc30sXG4gICAgICBwb3NpdGlvbnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlUG9zaXRpb25zfSxcbiAgICAgIGNvbG9yczoge3VwZGF0ZTogdGhpcy5jYWxjdWxhdGVDb2xvcnN9LFxuICAgICAgLy8gSW5zdGFuY2VkIGF0dHJpYnV0ZXNcbiAgICAgIHBpY2tpbmdDb2xvcnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlUGlja2luZ0NvbG9ycywgbm9BbGxvYzogdHJ1ZX1cbiAgICB9KTtcblxuICAgIHRoaXMuc2V0VW5pZm9ybXMoe29wYWNpdHk6IHRoaXMucHJvcHMub3BhY2l0eX0pO1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgbnVtSW5zdGFuY2VzOiAwLFxuICAgICAgbW9kZWw6IHRoaXMuZ2V0TW9kZWwoZ2wpXG4gICAgfSk7XG5cbiAgICB0aGlzLmV4dHJhY3RDaG9yb3BsZXRocygpO1xuICB9XG5cbiAgd2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpIHtcbiAgICBzdXBlci53aWxsUmVjZWl2ZVByb3BzKG9sZFByb3BzLCBuZXdQcm9wcyk7XG5cbiAgICBjb25zdCB7ZGF0YUNoYW5nZWQsIGF0dHJpYnV0ZU1hbmFnZXJ9ID0gdGhpcy5zdGF0ZTtcbiAgICBpZiAoZGF0YUNoYW5nZWQpIHtcbiAgICAgIHRoaXMuZXh0cmFjdENob3JvcGxldGhzKCk7XG5cbiAgICAgIGF0dHJpYnV0ZU1hbmFnZXIuaW52YWxpZGF0ZUFsbCgpO1xuICAgIH1cblxuICAgIGlmIChvbGRQcm9wcy5vcGFjaXR5ICE9PSBuZXdQcm9wcy5vcGFjaXR5KSB7XG4gICAgICB0aGlzLnNldFVuaWZvcm1zKHtvcGFjaXR5OiBuZXdQcm9wcy5vcGFjaXR5fSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0TW9kZWwoZ2wpIHtcbiAgICByZXR1cm4gbmV3IE1vZGVsKHtcbiAgICAgIHByb2dyYW06IG5ldyBQcm9ncmFtKGdsLCB7XG4gICAgICAgIHZzOiBnbHNsaWZ5KCcuL2Nob3JvcGxldGgtbGF5ZXItdmVydGV4Lmdsc2wnKSxcbiAgICAgICAgZnM6IGdsc2xpZnkoJy4vY2hvcm9wbGV0aC1sYXllci1mcmFnbWVudC5nbHNsJyksXG4gICAgICAgIGlkOiAnY2hvcm9wbGV0aCdcbiAgICAgIH0pLFxuICAgICAgZ2VvbWV0cnk6IG5ldyBHZW9tZXRyeSh7XG4gICAgICAgIGlkOiB0aGlzLnByb3BzLmlkLFxuICAgICAgICBkcmF3TW9kZTogdGhpcy5wcm9wcy5kcmF3Q29udG91ciA/ICdMSU5FUycgOiAnVFJJQU5HTEVTJ1xuICAgICAgfSksXG4gICAgICB2ZXJ0ZXhDb3VudDogMCxcbiAgICAgIGlzSW5kZXhlZDogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgY2FsY3VsYXRlUG9zaXRpb25zKGF0dHJpYnV0ZSkge1xuICAgIGNvbnN0IHZlcnRpY2VzID0gZmxhdHRlbkRlZXAodGhpcy5zdGF0ZS5ncm91cGVkVmVydGljZXMpO1xuICAgIGF0dHJpYnV0ZS52YWx1ZSA9IG5ldyBGbG9hdDMyQXJyYXkodmVydGljZXMpO1xuICB9XG5cbiAgY2FsY3VsYXRlSW5kaWNlcyhhdHRyaWJ1dGUpIHtcbiAgICAvLyBhZGp1c3QgaW5kZXggb2Zmc2V0IGZvciBtdWx0aXBsZSBjaG9yb3BsZXRoc1xuICAgIGNvbnN0IG9mZnNldHMgPSB0aGlzLnN0YXRlLmdyb3VwZWRWZXJ0aWNlcy5yZWR1Y2UoXG4gICAgICAoYWNjLCB2ZXJ0aWNlcykgPT4gWy4uLmFjYywgYWNjW2FjYy5sZW5ndGggLSAxXSArIHZlcnRpY2VzLmxlbmd0aF0sXG4gICAgICBbMF1cbiAgICApO1xuXG4gICAgY29uc3QgaW5kaWNlcyA9IHRoaXMuc3RhdGUuZ3JvdXBlZFZlcnRpY2VzLm1hcChcbiAgICAgICh2ZXJ0aWNlcywgY2hvcm9wbGV0aEluZGV4KSA9PiB0aGlzLnByb3BzLmRyYXdDb250b3VyID9cbiAgICAgICAgLy8gMS4gZ2V0IHNlcXVlbnRpYWxseSBvcmRlcmVkIGluZGljZXMgb2YgZWFjaCBjaG9yb3BsZXRoIGNvbnRvdXJcbiAgICAgICAgLy8gMi4gb2Zmc2V0IHRoZW0gYnkgdGhlIG51bWJlciBvZiBpbmRpY2VzIGluIHByZXZpb3VzIGNob3JvcGxldGhzXG4gICAgICAgIHRoaXMuY2FsY3VsYXRlQ29udG91ckluZGljZXModmVydGljZXMubGVuZ3RoKS5tYXAoXG4gICAgICAgICAgaW5kZXggPT4gaW5kZXggKyBvZmZzZXRzW2Nob3JvcGxldGhJbmRleF1cbiAgICAgICAgKSA6XG4gICAgICAgIC8vIDEuIGdldCB0cmlhbmd1bGF0ZWQgaW5kaWNlcyBmb3IgdGhlIGludGVybmFsIGFyZWFzXG4gICAgICAgIC8vIDIuIG9mZnNldCB0aGVtIGJ5IHRoZSBudW1iZXIgb2YgaW5kaWNlcyBpbiBwcmV2aW91cyBjaG9yb3BsZXRoc1xuICAgICAgICBlYXJjdXQoZmxhdHRlbkRlZXAodmVydGljZXMpLCBudWxsLCAzKS5tYXAoXG4gICAgICAgICAgaW5kZXggPT4gaW5kZXggKyBvZmZzZXRzW2Nob3JvcGxldGhJbmRleF1cbiAgICAgICAgKVxuICAgICk7XG5cbiAgICBhdHRyaWJ1dGUudmFsdWUgPSBuZXcgVWludDE2QXJyYXkoZmxhdHRlbkRlZXAoaW5kaWNlcykpO1xuICAgIGF0dHJpYnV0ZS50YXJnZXQgPSB0aGlzLnN0YXRlLmdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSO1xuICAgIHRoaXMuc3RhdGUubW9kZWwuc2V0VmVydGV4Q291bnQoYXR0cmlidXRlLnZhbHVlLmxlbmd0aCAvIGF0dHJpYnV0ZS5zaXplKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZUNvbG9ycyhhdHRyaWJ1dGUpIHtcbiAgICBjb25zdCBjb2xvcnMgPSB0aGlzLnN0YXRlLmdyb3VwZWRWZXJ0aWNlcy5tYXAoXG4gICAgICB2ZXJ0aWNlcyA9PiB2ZXJ0aWNlcy5tYXAoXG4gICAgICAgIHZlcnRleCA9PiB0aGlzLnByb3BzLmRyYXdDb250b3VyID8gWzAsIDAsIDBdIDogWzEyOCwgMTI4LCAxMjhdXG4gICAgICApXG4gICAgKTtcblxuICAgIGF0dHJpYnV0ZS52YWx1ZSA9IG5ldyBGbG9hdDMyQXJyYXkoZmxhdHRlbkRlZXAoY29sb3JzKSk7XG4gIH1cblxuICAvLyBPdmVycmlkZSB0aGUgZGVmYXVsdCBwaWNraW5nIGNvbG9ycyBjYWxjdWxhdGlvblxuICBjYWxjdWxhdGVQaWNraW5nQ29sb3JzKGF0dHJpYnV0ZSkge1xuICAgIGNvbnN0IGNvbG9ycyA9IHRoaXMuc3RhdGUuZ3JvdXBlZFZlcnRpY2VzLm1hcChcbiAgICAgICh2ZXJ0aWNlcywgY2hvcm9wbGV0aEluZGV4KSA9PiB2ZXJ0aWNlcy5tYXAoXG4gICAgICAgIHZlcnRleCA9PiB0aGlzLnByb3BzLmRyYXdDb250b3VyID8gWy0xLCAtMSwgLTFdIDogW1xuICAgICAgICAgIChjaG9yb3BsZXRoSW5kZXggKyAxKSAlIDI1NixcbiAgICAgICAgICBNYXRoLmZsb29yKChjaG9yb3BsZXRoSW5kZXggKyAxKSAvIDI1NikgJSAyNTYsXG4gICAgICAgICAgTWF0aC5mbG9vcigoY2hvcm9wbGV0aEluZGV4ICsgMSkgLyAyNTYgLyAyNTYpICUgMjU2XVxuICAgICAgKVxuICAgICk7XG5cbiAgICBhdHRyaWJ1dGUudmFsdWUgPSBuZXcgRmxvYXQzMkFycmF5KGZsYXR0ZW5EZWVwKGNvbG9ycykpO1xuICB9XG5cbiAgZXh0cmFjdENob3JvcGxldGhzKCkge1xuICAgIGNvbnN0IHtkYXRhfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qgbm9ybWFsaXplZEdlb2pzb24gPSBub3JtYWxpemUoZGF0YSk7XG5cbiAgICB0aGlzLnN0YXRlLmNob3JvcGxldGhzID0gbm9ybWFsaXplZEdlb2pzb24uZmVhdHVyZXMubWFwKGNob3JvcGxldGggPT4ge1xuICAgICAgbGV0IGNvb3JkaW5hdGVzID0gY2hvcm9wbGV0aC5nZW9tZXRyeS5jb29yZGluYXRlc1swXTtcbiAgICAgIC8vIGZsYXR0ZW4gbmVzdGVkIHBvbHlnb25zXG4gICAgICBpZiAoY29vcmRpbmF0ZXMubGVuZ3RoID09PSAxICYmIGNvb3JkaW5hdGVzWzBdLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgY29vcmRpbmF0ZXMgPSBjb29yZGluYXRlc1swXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb3BlcnRpZXM6IGNob3JvcGxldGgucHJvcGVydGllcyxcbiAgICAgICAgY29vcmRpbmF0ZXNcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICB0aGlzLnN0YXRlLmdyb3VwZWRWZXJ0aWNlcyA9IHRoaXMuc3RhdGUuY2hvcm9wbGV0aHMubWFwKFxuICAgICAgY2hvcm9wbGV0aCA9PiBjaG9yb3BsZXRoLmNvb3JkaW5hdGVzLm1hcChcbiAgICAgICAgY29vcmRpbmF0ZSA9PiBbY29vcmRpbmF0ZVswXSwgY29vcmRpbmF0ZVsxXSwgMF1cbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgY2FsY3VsYXRlQ29udG91ckluZGljZXMobnVtVmVydGljZXMpIHtcbiAgICAvLyB1c2UgdmVydGV4IHBhaXJzIGZvciBnbC5MSU5FUyA9PiBbMCwgMSwgMSwgMiwgMiwgLi4uLCBuLTEsIG4tMSwgMF1cbiAgICBsZXQgaW5kaWNlcyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbnVtVmVydGljZXMgLSAxOyBpKyspIHtcbiAgICAgIGluZGljZXMgPSBbLi4uaW5kaWNlcywgaSwgaV07XG4gICAgfVxuICAgIHJldHVybiBbMCwgLi4uaW5kaWNlcywgMF07XG5cbiAgfVxuXG4gIG9uSG92ZXIoaW5mbykge1xuICAgIGNvbnN0IHtpbmRleH0gPSBpbmZvO1xuICAgIGNvbnN0IHtkYXRhfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgZmVhdHVyZSA9IGRhdGEuZmVhdHVyZXNbaW5kZXhdO1xuICAgIHRoaXMucHJvcHMub25Ib3Zlcih7Li4uaW5mbywgZmVhdHVyZX0pO1xuICB9XG5cbiAgb25DbGljayhpbmZvKSB7XG4gICAgY29uc3Qge2luZGV4fSA9IGluZm87XG4gICAgY29uc3Qge2RhdGF9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBmZWF0dXJlID0gZGF0YS5mZWF0dXJlc1tpbmRleF07XG4gICAgdGhpcy5wcm9wcy5vbkNsaWNrKHsuLi5pbmZvLCBmZWF0dXJlfSk7XG4gIH1cblxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvY2hvcm9wbGV0aC1sYXllci9jaG9yb3BsZXRoLWxheWVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFvQkE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7Ozs7Ozs4ZUF4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBT0EsSUFBTSxVQUFVLFFBQVEsU0FBUixDQUFoQjs7QUFFQSxJQUFNLGFBQWE7QUFDakIsV0FBUyxFQUFDLE1BQU0sQ0FBUCxFQUFVLEtBQUssT0FBZixFQUF3QixXQUFXLElBQW5DLEVBRFE7QUFFakIsYUFBVyxFQUFDLE1BQU0sQ0FBUCxFQUFVLEtBQUssR0FBZixFQUFvQixLQUFLLEdBQXpCLEVBQThCLEtBQUssUUFBbkMsRUFGTTtBQUdqQixVQUFRLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxLQUFmLEVBQXNCLEtBQUssT0FBM0IsRUFBb0MsS0FBSyxNQUF6QyxFQUhTO0FBSWpCO0FBQ0EsaUJBQWUsRUFBQyxNQUFNLENBQVAsRUFBVSxLQUFLLFNBQWYsRUFBMEIsS0FBSyxXQUEvQixFQUE0QyxLQUFLLFVBQWpEO0FBTEUsQ0FBbkI7O0lBUXFCLGU7OztBQUNuQjs7Ozs7Ozs7Ozs7OztBQVlBLDJCQUFZLEtBQVosRUFBbUI7QUFBQTs7QUFBQTtBQUVmLGVBQVM7QUFGTSxPQUdaLEtBSFk7QUFLbEI7Ozs7c0NBRWlCO0FBQUEsbUJBQ2UsS0FBSyxLQURwQjtBQUFBLFVBQ1QsRUFEUyxVQUNULEVBRFM7QUFBQSxVQUNMLGdCQURLLFVBQ0wsZ0JBREs7OztBQUdoQix1QkFBaUIsVUFBakIsQ0FBNEIsVUFBNUIsRUFBd0M7QUFDdEM7QUFDQSxpQkFBUyxFQUFDLFFBQVEsS0FBSyxnQkFBZCxFQUY2QjtBQUd0QyxtQkFBVyxF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QUZLLEdBRUcsS0FBSyxLQUZSLENBRUwsSUFGSzs7QUFHWixVQUFNLFVBQVUsS0FBSyxRQUFMLENBQWMsS0FBZCxDQUFoQjtBQUNBLFdBQUssS0FBTCxDQUFXLE9BQVgsY0FBdUIsSUFBdkIsSUFBNkIsZ0JBQTdCO0FBQ0Q7Ozs7OztrQkE1S2tCLGUiLCJmaWxlIjoiY2hvcm9wbGV0aC1sYXllci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxNSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBMYXllciBmcm9tICcuLi8uLi9sYXllcic7XG5pbXBvcnQgZWFyY3V0IGZyb20gJ2VhcmN1dCc7XG5pbXBvcnQgZmxhdHRlbkRlZXAgZnJvbSAnbG9kYXNoLmZsYXR0ZW5kZWVwJztcbmltcG9ydCBub3JtYWxpemUgZnJvbSAnZ2VvanNvbi1ub3JtYWxpemUnO1xuaW1wb3J0IHtNb2RlbCwgUHJvZ3JhbSwgR2VvbWV0cnl9IGZyb20gJ2x1bWEuZ2wnO1xuY29uc3QgZ2xzbGlmeSA9IHJlcXVpcmUoJ2dsc2xpZnknKTtcblxuY29uc3QgQVRUUklCVVRFUyA9IHtcbiAgaW5kaWNlczoge3NpemU6IDEsICcwJzogJ2luZGV4JywgaXNJbmRleGVkOiB0cnVlfSxcbiAgcG9zaXRpb25zOiB7c2l6ZTogMywgJzAnOiAneCcsICcxJzogJ3knLCAnMic6ICd1bnVzZWQnfSxcbiAgY29sb3JzOiB7c2l6ZTogMywgJzAnOiAncmVkJywgJzEnOiAnZ3JlZW4nLCAnMic6ICdibHVlJ30sXG4gIC8vIE92ZXJyaWRlIHBpY2tpbmcgY29sb3JzIHRvIHByZXZlbnQgYXV0byBhbGxvY2F0aW9uXG4gIHBpY2tpbmdDb2xvcnM6IHtzaXplOiAzLCAnMCc6ICdwaWNrUmVkJywgJzEnOiAncGlja0dyZWVuJywgJzInOiAncGlja0JsdWUnfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2hvcm9wbGV0aExheWVyIGV4dGVuZHMgTGF5ZXIge1xuICAvKipcbiAgICogQGNsYXNzZGVzY1xuICAgKiBDaG9yb3BsZXRoTGF5ZXJcbiAgICpcbiAgICogQGNsYXNzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICAgKiBAcGFyYW0ge2Jvb2x9IHByb3BzLmRyYXdDb250b3VyIC0gPyBkcmF3Q29udG91ciA6IGRyYXdBcmVhXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IHByb3BzLm9uQ2hvcm9wbGV0aEhvdmVyZWQgLSBwcm92aWRlIHByb2VydGllcyBvZiB0aGVcbiAgICogc2VsZWN0ZWQgY2hvcm9wbGV0aCwgdG9nZXRoZXIgd2l0aCB0aGUgbW91c2UgZXZlbnQgd2hlbiBtb3VzZSBob3ZlcmVkXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IHByb3BzLm9uQ2hvcm9wbGV0aENsaWNrZWQgLSBwcm92aWRlIHByb2VydGllcyBvZiB0aGVcbiAgICogc2VsZWN0ZWQgY2hvcm9wbGV0aCwgdG9nZXRoZXIgd2l0aCB0aGUgbW91c2UgZXZlbnQgd2hlbiBtb3VzZSBjbGlja2VkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHtcbiAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAuLi5wcm9wc1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIGNvbnN0IHtnbCwgYXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuXG4gICAgYXR0cmlidXRlTWFuYWdlci5hZGREeW5hbWljKEFUVFJJQlVURVMsIHtcbiAgICAgIC8vIFByaW10aXZlIGF0dHJpYnV0ZXNcbiAgICAgIGluZGljZXM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlSW5kaWNlc30sXG4gICAgICBwb3NpdGlvbnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlUG9zaXRpb25zfSxcbiAgICAgIGNvbG9yczoge3VwZGF0ZTogdGhpcy5jYWxjdWxhdGVDb2xvcnN9LFxuICAgICAgLy8gSW5zdGFuY2VkIGF0dHJpYnV0ZXNcbiAgICAgIHBpY2tpbmdDb2xvcnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlUGlja2luZ0NvbG9ycywgbm9BbGxvYzogdHJ1ZX1cbiAgICB9KTtcblxuICAgIHRoaXMuc2V0VW5pZm9ybXMoe29wYWNpdHk6IHRoaXMucHJvcHMub3BhY2l0eX0pO1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgbnVtSW5zdGFuY2VzOiAwLFxuICAgICAgbW9kZWw6IHRoaXMuZ2V0TW9kZWwoZ2wpXG4gICAgfSk7XG5cbiAgICB0aGlzLmV4dHJhY3RDaG9yb3BsZXRocygpO1xuICB9XG5cbiAgd2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpIHtcbiAgICBzdXBlci53aWxsUmVjZWl2ZVByb3BzKG9sZFByb3BzLCBuZXdQcm9wcyk7XG5cbiAgICBjb25zdCB7ZGF0YUNoYW5nZWQsIGF0dHJpYnV0ZU1hbmFnZXJ9ID0gdGhpcy5zdGF0ZTtcbiAgICBpZiAoZGF0YUNoYW5nZWQpIHtcbiAgICAgIHRoaXMuZXh0cmFjdENob3JvcGxldGhzKCk7XG5cbiAgICAgIGF0dHJpYnV0ZU1hbmFnZXIuaW52YWxpZGF0ZUFsbCgpO1xuICAgIH1cblxuICAgIGlmIChvbGRQcm9wcy5vcGFjaXR5ICE9PSBuZXdQcm9wcy5vcGFjaXR5KSB7XG4gICAgICB0aGlzLnNldFVuaWZvcm1zKHtvcGFjaXR5OiBuZXdQcm9wcy5vcGFjaXR5fSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0TW9kZWwoZ2wpIHtcbiAgICByZXR1cm4gbmV3IE1vZGVsKHtcbiAgICAgIHByb2dyYW06IG5ldyBQcm9ncmFtKGdsLCB7XG4gICAgICAgIHZzOiBnbHNsaWZ5KCcuL2Nob3JvcGxldGgtbGF5ZXItdmVydGV4Lmdsc2wnKSxcbiAgICAgICAgZnM6IGdsc2xpZnkoJy4vY2hvcm9wbGV0aC1sYXllci1mcmFnbWVudC5nbHNsJyksXG4gICAgICAgIGlkOiAnY2hvcm9wbGV0aCdcbiAgICAgIH0pLFxuICAgICAgZ2VvbWV0cnk6IG5ldyBHZW9tZXRyeSh7XG4gICAgICAgIGlkOiB0aGlzLnByb3BzLmlkLFxuICAgICAgICBkcmF3TW9kZTogdGhpcy5wcm9wcy5kcmF3Q29udG91ciA/ICdMSU5FUycgOiAnVFJJQU5HTEVTJ1xuICAgICAgfSksXG4gICAgICB2ZXJ0ZXhDb3VudDogMCxcbiAgICAgIGlzSW5kZXhlZDogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgY2FsY3VsYXRlUG9zaXRpb25zKGF0dHJpYnV0ZSkge1xuICAgIGNvbnN0IHZlcnRpY2VzID0gZmxhdHRlbkRlZXAodGhpcy5zdGF0ZS5ncm91cGVkVmVydGljZXMpO1xuICAgIGF0dHJpYnV0ZS52YWx1ZSA9IG5ldyBGbG9hdDMyQXJyYXkodmVydGljZXMpO1xuICB9XG5cbiAgY2FsY3VsYXRlSW5kaWNlcyhhdHRyaWJ1dGUpIHtcbiAgICAvLyBhZGp1c3QgaW5kZXggb2Zmc2V0IGZvciBtdWx0aXBsZSBjaG9yb3BsZXRoc1xuICAgIGNvbnN0IG9mZnNldHMgPSB0aGlzLnN0YXRlLmdyb3VwZWRWZXJ0aWNlcy5yZWR1Y2UoXG4gICAgICAoYWNjLCB2ZXJ0aWNlcykgPT4gWy4uLmFjYywgYWNjW2FjYy5sZW5ndGggLSAxXSArIHZlcnRpY2VzLmxlbmd0aF0sXG4gICAgICBbMF1cbiAgICApO1xuXG4gICAgY29uc3QgaW5kaWNlcyA9IHRoaXMuc3RhdGUuZ3JvdXBlZFZlcnRpY2VzLm1hcChcbiAgICAgICh2ZXJ0aWNlcywgY2hvcm9wbGV0aEluZGV4KSA9PiB0aGlzLnByb3BzLmRyYXdDb250b3VyID9cbiAgICAgICAgLy8gMS4gZ2V0IHNlcXVlbnRpYWxseSBvcmRlcmVkIGluZGljZXMgb2YgZWFjaCBjaG9yb3BsZXRoIGNvbnRvdXJcbiAgICAgICAgLy8gMi4gb2Zmc2V0IHRoZW0gYnkgdGhlIG51bWJlciBvZiBpbmRpY2VzIGluIHByZXZpb3VzIGNob3JvcGxldGhzXG4gICAgICAgIHRoaXMuY2FsY3VsYXRlQ29udG91ckluZGljZXModmVydGljZXMubGVuZ3RoKS5tYXAoXG4gICAgICAgICAgaW5kZXggPT4gaW5kZXggKyBvZmZzZXRzW2Nob3JvcGxldGhJbmRleF1cbiAgICAgICAgKSA6XG4gICAgICAgIC8vIDEuIGdldCB0cmlhbmd1bGF0ZWQgaW5kaWNlcyBmb3IgdGhlIGludGVybmFsIGFyZWFzXG4gICAgICAgIC8vIDIuIG9mZnNldCB0aGVtIGJ5IHRoZSBudW1iZXIgb2YgaW5kaWNlcyBpbiBwcmV2aW91cyBjaG9yb3BsZXRoc1xuICAgICAgICBlYXJjdXQoZmxhdHRlbkRlZXAodmVydGljZXMpLCBudWxsLCAzKS5tYXAoXG4gICAgICAgICAgaW5kZXggPT4gaW5kZXggKyBvZmZzZXRzW2Nob3JvcGxldGhJbmRleF1cbiAgICAgICAgKVxuICAgICk7XG5cbiAgICBhdHRyaWJ1dGUudmFsdWUgPSBuZXcgVWludDE2QXJyYXkoZmxhdHRlbkRlZXAoaW5kaWNlcykpO1xuICAgIGF0dHJpYnV0ZS50YXJnZXQgPSB0aGlzLnN0YXRlLmdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSO1xuICAgIHRoaXMuc3RhdGUubW9kZWwuc2V0VmVydGV4Q291bnQoYXR0cmlidXRlLnZhbHVlLmxlbmd0aCAvIGF0dHJpYnV0ZS5zaXplKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZUNvbG9ycyhhdHRyaWJ1dGUpIHtcbiAgICBjb25zdCBjb2xvcnMgPSB0aGlzLnN0YXRlLmdyb3VwZWRWZXJ0aWNlcy5tYXAoXG4gICAgICB2ZXJ0aWNlcyA9PiB2ZXJ0aWNlcy5tYXAoXG4gICAgICAgIHZlcnRleCA9PiB0aGlzLnByb3BzLmRyYXdDb250b3VyID8gWzAsIDAsIDBdIDogWzEyOCwgMTI4LCAxMjhdXG4gICAgICApXG4gICAgKTtcblxuICAgIGF0dHJpYnV0ZS52YWx1ZSA9IG5ldyBGbG9hdDMyQXJyYXkoZmxhdHRlbkRlZXAoY29sb3JzKSk7XG4gIH1cblxuICAvLyBPdmVycmlkZSB0aGUgZGVmYXVsdCBwaWNraW5nIGNvbG9ycyBjYWxjdWxhdGlvblxuICBjYWxjdWxhdGVQaWNraW5nQ29sb3JzKGF0dHJpYnV0ZSkge1xuICAgIGNvbnN0IGNvbG9ycyA9IHRoaXMuc3RhdGUuZ3JvdXBlZFZlcnRpY2VzLm1hcChcbiAgICAgICh2ZXJ0aWNlcywgY2hvcm9wbGV0aEluZGV4KSA9PiB2ZXJ0aWNlcy5tYXAoXG4gICAgICAgIHZlcnRleCA9PiB0aGlzLnByb3BzLmRyYXdDb250b3VyID8gWy0xLCAtMSwgLTFdIDogW1xuICAgICAgICAgIChjaG9yb3BsZXRoSW5kZXggKyAxKSAlIDI1NixcbiAgICAgICAgICBNYXRoLmZsb29yKChjaG9yb3BsZXRoSW5kZXggKyAxKSAvIDI1NikgJSAyNTYsXG4gICAgICAgICAgTWF0aC5mbG9vcigoY2hvcm9wbGV0aEluZGV4ICsgMSkgLyAyNTYgLyAyNTYpICUgMjU2XVxuICAgICAgKVxuICAgICk7XG5cbiAgICBhdHRyaWJ1dGUudmFsdWUgPSBuZXcgRmxvYXQzMkFycmF5KGZsYXR0ZW5EZWVwKGNvbG9ycykpO1xuICB9XG5cbiAgZXh0cmFjdENob3JvcGxldGhzKCkge1xuICAgIGNvbnN0IHtkYXRhfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qgbm9ybWFsaXplZEdlb2pzb24gPSBub3JtYWxpemUoZGF0YSk7XG5cbiAgICB0aGlzLnN0YXRlLmNob3JvcGxldGhzID0gbm9ybWFsaXplZEdlb2pzb24uZmVhdHVyZXMubWFwKGNob3JvcGxldGggPT4ge1xuICAgICAgbGV0IGNvb3JkaW5hdGVzID0gY2hvcm9wbGV0aC5nZW9tZXRyeS5jb29yZGluYXRlc1swXTtcbiAgICAgIC8vIGZsYXR0ZW4gbmVzdGVkIHBvbHlnb25zXG4gICAgICBpZiAoY29vcmRpbmF0ZXMubGVuZ3RoID09PSAxICYmIGNvb3JkaW5hdGVzWzBdLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgY29vcmRpbmF0ZXMgPSBjb29yZGluYXRlc1swXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb3BlcnRpZXM6IGNob3JvcGxldGgucHJvcGVydGllcyxcbiAgICAgICAgY29vcmRpbmF0ZXNcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICB0aGlzLnN0YXRlLmdyb3VwZWRWZXJ0aWNlcyA9IHRoaXMuc3RhdGUuY2hvcm9wbGV0aHMubWFwKFxuICAgICAgY2hvcm9wbGV0aCA9PiBjaG9yb3BsZXRoLmNvb3JkaW5hdGVzLm1hcChcbiAgICAgICAgY29vcmRpbmF0ZSA9PiBbY29vcmRpbmF0ZVswXSwgY29vcmRpbmF0ZVsxXSwgMF1cbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgY2FsY3VsYXRlQ29udG91ckluZGljZXMobnVtVmVydGljZXMpIHtcbiAgICAvLyB1c2UgdmVydGV4IHBhaXJzIGZvciBnbC5MSU5FUyA9PiBbMCwgMSwgMSwgMiwgMiwgLi4uLCBuLTEsIG4tMSwgMF1cbiAgICBsZXQgaW5kaWNlcyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbnVtVmVydGljZXMgLSAxOyBpKyspIHtcbiAgICAgIGluZGljZXMgPSBbLi4uaW5kaWNlcywgaSwgaV07XG4gICAgfVxuICAgIHJldHVybiBbMCwgLi4uaW5kaWNlcywgMF07XG5cbiAgfVxuXG4gIG9uSG92ZXIoaW5mbykge1xuICAgIGNvbnN0IHtpbmRleH0gPSBpbmZvO1xuICAgIGNvbnN0IHtkYXRhfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgZmVhdHVyZSA9IGRhdGEuZmVhdHVyZXNbaW5kZXhdO1xuICAgIHRoaXMucHJvcHMub25Ib3Zlcih7Li4uaW5mbywgZmVhdHVyZX0pO1xuICB9XG5cbiAgb25DbGljayhpbmZvKSB7XG4gICAgY29uc3Qge2luZGV4fSA9IGluZm87XG4gICAgY29uc3Qge2RhdGF9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBmZWF0dXJlID0gZGF0YS5mZWF0dXJlc1tpbmRleF07XG4gICAgdGhpcy5wcm9wcy5vbkNsaWNrKHsuLi5pbmZvLCBmZWF0dXJlfSk7XG4gIH1cblxufVxuIl19

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

exports.default = GridLayer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvZ3JpZC1sYXllci9ncmlkLWxheWVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFvQkE7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTSxVQUFVLFFBQVEsU0FBUixDQUFoQjs7QUFFQSxJQUFNLGFBQWE7QUFDakIscUJBQW1CLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxHQUFmLEVBQW9CLEtBQUssR0FBekIsRUFBOEIsS0FBSyxRQUFuQyxFQURGO0FBRWpCLGtCQUFnQixFQUFDLE1BQU0sQ0FBUCxFQUFVLEtBQUssS0FBZixFQUFzQixLQUFLLE9BQTNCLEVBQW9DLEtBQUssTUFBekMsRUFBaUQsS0FBSyxPQUF0RDtBQUZDLENBQW5COztJQUtxQixTOzs7Ozt3QkFFSztBQUN0QixhQUFPLFVBQVA7QUFDRDs7Ozs7Ozs7Ozs7Ozs7QUFXRCxxQkFBWSxJQUFaLEVBQWtCO0FBQUE7O0FBQUE7QUFFZCxpQkFBVyxHQUZHO0FBR2Qsa0JBQVk7QUFIRSxPQUlYLElBSlc7QUFNakI7Ozs7c0NBRWlCO0FBQUEsbUJBQ2UsS0FBSyxLQURwQjtBQUFBLFVBQ1QsRUFEUyxVQUNULEVBRFM7QUFBQSxVQUNMLGdCQURLLFVBQ0wsZ0JBREs7OztBQUdoQixXQUFLLFFBQUwsQ0FBYztBQUNaLGVBQU8sS0FBSyxRQUFMLENBQWMsRUFBZDtBQURLLE9BQWQ7O0FBSUEsdUJBQWlCLFlBQWpCLENBQThCLFVBQTlCLEVBQTBDO0FBQ3hDLDJCQUFtQixFQUFDLFFBQVEsS0FBSywwQkFBZCxFQURxQjtBQUV4Qyx3QkFBZ0IsRUFBQyxRQUFRLEtBQUssdUJBQWQ7QUFGd0IsT0FBMUM7O0FBS0EsV0FBSyxVQUFMO0FBQ0Q7OztxQ0FFZ0IsUSxFQUFVLFEsRUFBVTtBQUNuQyw0RkFBdUIsUUFBdkIsRUFBaUMsUUFBakM7O0FBRUEsVUFBTSxrQkFDSixTQUFTLFNBQVQsS0FBdUIsU0FB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c291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDE1IFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IExheWVyIGZyb20gJy4uLy4uL2xheWVyJztcbmltcG9ydCB7TW9kZWwsIFByb2dyYW0sIEdlb21ldHJ5fSBmcm9tICdsdW1hLmdsJztcbmNvbnN0IGdsc2xpZnkgPSByZXF1aXJlKCdnbHNsaWZ5Jyk7XG5cbmNvbnN0IEFUVFJJQlVURVMgPSB7XG4gIGluc3RhbmNlUG9zaXRpb25zOiB7c2l6ZTogMywgJzAnOiAneCcsICcxJzogJ3knLCAnMic6ICd1bnVzZWQnfSxcbiAgaW5zdGFuY2VDb2xvcnM6IHtzaXplOiA0LCAnMCc6ICdyZWQnLCAnMSc6ICdncmVlbicsICcyJzogJ2JsdWUnLCAnMyc6ICdhbHBoYSd9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBHcmlkTGF5ZXIgZXh0ZW5kcyBMYXllciB7XG5cbiAgc3RhdGljIGdldCBhdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiBBVFRSSUJVVEVTO1xuICB9XG5cbiAgLyoqXG4gICAqIEBjbGFzc2Rlc2NcbiAgICogR3JpZExheWVyXG4gICAqXG4gICAqIEBjbGFzc1xuICAgKiBAcGFyYW0ge29iamVjdH0gb3B0c1xuICAgKiBAcGFyYW0ge251bWJlcn0gb3B0cy51bml0V2lkdGggLSB3aWR0aCBvZiB0aGUgdW5pdCByZWN0YW5nbGVcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wdHMudW5pdEhlaWdodCAtIGhlaWdodCBvZiB0aGUgdW5pdCByZWN0YW5nbGVcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICBzdXBlcih7XG4gICAgICB1bml0V2lkdGg6IDEwMCxcbiAgICAgIHVuaXRIZWlnaHQ6IDEwMCxcbiAgICAgIC4uLm9wdHNcbiAgICB9KTtcbiAgfVxuXG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcbiAgICBjb25zdCB7Z2wsIGF0dHJpYnV0ZU1hbmFnZXJ9ID0gdGhpcy5zdGF0ZTtcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgbW9kZWw6IHRoaXMuZ2V0TW9kZWwoZ2wpXG4gICAgfSk7XG5cbiAgICBhdHRyaWJ1dGVNYW5hZ2VyLmFkZEluc3RhbmNlZChBVFRSSUJVVEVTLCB7XG4gICAgICBpbnN0YW5jZVBvc2l0aW9uczoge3VwZGF0ZTogdGhpcy5jYWxjdWxhdGVJbnN0YW5jZVBvc2l0aW9uc30sXG4gICAgICBpbnN0YW5jZUNvbG9yczoge3VwZGF0ZTogdGhpcy5jYWxjdWxhdGVJbnN0YW5jZUNvbG9yc31cbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlQ2VsbCgpO1xuICB9XG5cbiAgd2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpIHtcbiAgICBzdXBlci53aWxsUmVjZWl2ZVByb3BzKG9sZFByb3BzLCBuZXdQcm9wcyk7XG5cbiAgICBjb25zdCBjZWxsU2l6ZUNoYW5nZWQgPVxuICAgICAgbmV3UHJvcHMudW5pdFdpZHRoICE9PSBvbGRQcm9wcy51bml0V2lkdGggfHxcbiAgICAgIG5ld1Byb3BzLnVuaXRIZWlnaHQgIT09IG9sZFByb3BzLnVuaXRIZWlnaHQ7XG5cbiAgICBpZiAoY2VsbFNpemVDaGFuZ2VkIHx8IHRoaXMuc3RhdGUudmlld3BvcnRDaGFuZ2VkKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNlbGwoKTtcbiAgICB9XG4gIH1cblxuICBnZXRNb2RlbChnbCkge1xuICAgIHJldHVybiBuZXcgTW9kZWwoe1xuICAgICAgcHJvZ3JhbTogbmV3IFByb2dyYW0oZ2wsIHtcbiAgICAgICAgdnM6IGdsc2xpZnkoJy4vZ3JpZC1sYXllci12ZXJ0ZXguZ2xzbCcpLFxuICAgICAgICBmczogZ2xzbGlmeSgnLi9ncmlkLWxheWVyLWZyYWdtZW50Lmdsc2wnKSxcbiAgICAgICAgaWQ6ICdncmlkJ1xuICAgICAgfSksXG4gICAgICBnZW9tZXRyeTogbmV3IEdlb21ldHJ5KHtcbiAgICAgICAgaWQ6IHRoaXMucHJvcHMuaWQsXG4gICAgICAgIGRyYXdNb2RlOiAnVFJJQU5HTEVfRkFOJyxcbiAgICAgICAgdmVydGljZXM6IG5ldyBGbG9hdDMyQXJyYXkoWzAsIDAsIDAsIDEsIDAsIDAsIDEsIDEsIDAsIDAsIDEsIDBdKVxuICAgICAgfSksXG4gICAgICBpc0luc3RhbmNlZDogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlQ2VsbCgpIHtcbiAgICBjb25zdCB7d2lkdGgsIGhlaWdodCwgdW5pdFdpZHRoLCB1bml0SGVpZ2h0fSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBudW1Db2wgPSBNYXRoLmNlaWwod2lkdGggKiAyIC8gdW5pdFdpZHRoKTtcbiAgICBjb25zdCBudW1Sb3cgPSBNYXRoLmNlaWwoaGVpZ2h0ICogMiAvIHVuaXRIZWlnaHQpO1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgbnVtQ29sLFxuICAgICAgbnVtUm93LFxuICAgICAgbnVtSW5zdGFuY2VzOiBudW1Db2wgKiBudW1Sb3dcbiAgICB9KTtcblxuICAgIGNvbnN0IHthdHRyaWJ1dGVNYW5hZ2VyfSA9IHRoaXMuc3RhdGU7XG4gICAgYXR0cmlidXRlTWFuYWdlci5pbnZhbGlkYXRlQWxsKCk7XG5cbiAgICBjb25zdCBNQVJHSU4gPSAyO1xuICAgIGNvbnN0IHNjYWxlID0gbmV3IEZsb2F0MzJBcnJheShbXG4gICAgICB1bml0V2lkdGggLSBNQVJHSU4gKiAyLFxuICAgICAgdW5pdEhlaWdodCAtIE1BUkdJTiAqIDIsXG4gICAgICAxXG4gICAgXSk7XG4gICAgdGhpcy5zZXRVbmlmb3Jtcyh7c2NhbGV9KTtcblxuICB9XG5cbiAgY2FsY3VsYXRlSW5zdGFuY2VQb3NpdGlvbnMoYXR0cmlidXRlLCBudW1JbnN0YW5jZXMpIHtcbiAgICBjb25zdCB7dW5pdFdpZHRoLCB1bml0SGVpZ2h0LCB3aWR0aCwgaGVpZ2h0fSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge251bUNvbH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHt2YWx1ZSwgc2l6ZX0gPSBhdHRyaWJ1dGU7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bUluc3RhbmNlczsgaSsrKSB7XG4gICAgICBjb25zdCB4ID0gaSAlIG51bUNvbDtcbiAgICAgIGNvbnN0IHkgPSBNYXRoLmZsb29yKGkgLyBudW1Db2wpO1xuICAgICAgdmFsdWVbaSAqIHNpemUgKyAwXSA9IHggKiB1bml0V2lkdGggLSB3aWR0aDtcbiAgICAgIHZhbHVlW2kgKiBzaXplICsgMV0gPSB5ICogdW5pdEhlaWdodCAtIGhlaWdodDtcbiAgICAgIHZhbHVlW2kgKiBzaXplICsgMl0gPSAwO1xuICAgIH1cbiAgfVxuXG4gIGNhbGN1bGF0ZUluc3RhbmNlQ29sb3JzKGF0dHJpYnV0ZSkge1xuICAgIGNvbnN0IHtkYXRhLCB1bml0V2lkdGgsIHVuaXRIZWlnaHQsIHdpZHRoLCBoZWlnaHR9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7bnVtQ29sLCBudW1Sb3d9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB7dmFsdWUsIHNpemV9ID0gYXR0cmlidXRlO1xuXG4gICAgdmFsdWUuZmlsbCgwLjApO1xuXG4gICAgZm9yIChjb25zdCBwb2ludCBvZiBkYXRhKSB7XG4gICAgICBjb25zdCBwaXhlbCA9IHRoaXMucHJvamVjdChbcG9pbnQucG9zaXRpb24ueSwgcG9pbnQucG9zaXRpb24ueF0pO1xuICAgICAgY29uc3QgY29sSWQgPSBNYXRoLmZsb29yKChwaXhlbC54ICsgd2lkdGgpIC8gdW5pdFdpZHRoKTtcbiAgICAgIGNvbnN0IHJvd0lkID0gTWF0aC5mbG9vcigocGl4ZWwueSArIGhlaWdodCkgLyB1bml0SGVpZ2h0KTtcbiAgICAgIGlmIChjb2xJZCA8IG51bUNvbCAmJiByb3dJZCA8IG51bVJvdykge1xuICAgICAgICBjb25zdCBpNCA9IChjb2xJZCArIHJvd0lkICogbnVtQ29sKSAqIHNpemU7XG4gICAgICAgIHZhbHVlW2k0ICsgMl0gPSB2YWx1ZVtpNCArIDBdICs9IDE7XG4gICAgICAgIHZhbHVlW2k0ICsgMV0gKz0gNTtcbiAgICAgICAgdmFsdWVbaTQgKyAzXSA9IDAuNjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNldFVuaWZvcm1zKHttYXhDb3VudDogTWF0aC5tYXgoLi4udmFsdWUpfSk7XG4gIH1cblxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvZ3JpZC1sYXllci9ncmlkLWxheWVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFvQkE7Ozs7QUFDQTs7Ozs7Ozs7Ozs4ZUFyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBSUEsSUFBTSxVQUFVLFFBQVEsU0FBUixDQUFoQjs7QUFFQSxJQUFNLGFBQWE7QUFDakIscUJBQW1CLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxHQUFmLEVBQW9CLEtBQUssR0FBekIsRUFBOEIsS0FBSyxRQUFuQyxFQURGO0FBRWpCLGtCQUFnQixFQUFDLE1BQU0sQ0FBUCxFQUFVLEtBQUssS0FBZixFQUFzQixLQUFLLE9BQTNCLEVBQW9DLEtBQUssTUFBekMsRUFBaUQsS0FBSyxPQUF0RDtBQUZDLENBQW5COztJQUtxQixTOzs7Ozt3QkFFSztBQUN0QixhQUFPLFVBQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7Ozs7O0FBU0EscUJBQVksSUFBWixFQUFrQjtBQUFBOztBQUFBO0FBRWQsaUJBQVcsR0FGRztBQUdkLGtCQUFZO0FBSEUsT0FJWCxJQUpXO0FBTWpCOzs7O3NDQUVpQjtBQUFBLG1CQUNlLEtBQUssS0FEcEI7QUFBQSxVQUNULEVBRFMsVUFDVCxFQURTO0FBQUEsVUFDTCxnQkFESyxVQUNMLGdCQURLOzs7QUFHaEIsV0FBSyxRQUFMLENBQWM7QUFDWixlQUFPLEtBQUssUUFBTCxDQUFjLEVBQWQ7QUFESyxPQUFkOztBQUlBLHVCQUFpQixZQUFqQixDQUE4QixVQUE5QixFQUEwQztBQUN4QywyQkFBbUIsRUFBQyxRQUFRLEtBQUssMEJBQWQsRUFEcUI7QUFFeEMsd0JBQWdCLEVBQUMsUUFBUSxLQUFLLHVCQUFkO0FBRndCLE9BQTFDOztBQUtBLFdBQUssVUFBTDtBQUNEOzs7cUNBRWdC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VUFBVSxLQUFLLEdBQUwsZ0NBQVksS0FBWixFQUFYLEVBQWpCO0FBQ0Q7Ozs7OztrQkE1SGtCLFMiLCJmaWxlIjoiZ3JpZC1sYXllci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxNSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBMYXllciBmcm9tICcuLi8uLi9sYXllcic7XG5pbXBvcnQge01vZGVsLCBQcm9ncmFtLCBHZW9tZXRyeX0gZnJvbSAnbHVtYS5nbCc7XG5jb25zdCBnbHNsaWZ5ID0gcmVxdWlyZSgnZ2xzbGlmeScpO1xuXG5jb25zdCBBVFRSSUJVVEVTID0ge1xuICBpbnN0YW5jZVBvc2l0aW9uczoge3NpemU6IDMsICcwJzogJ3gnLCAnMSc6ICd5JywgJzInOiAndW51c2VkJ30sXG4gIGluc3RhbmNlQ29sb3JzOiB7c2l6ZTogNCwgJzAnOiAncmVkJywgJzEnOiAnZ3JlZW4nLCAnMic6ICdibHVlJywgJzMnOiAnYWxwaGEnfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgR3JpZExheWVyIGV4dGVuZHMgTGF5ZXIge1xuXG4gIHN0YXRpYyBnZXQgYXR0cmlidXRlcygpIHtcbiAgICByZXR1cm4gQVRUUklCVVRFUztcbiAgfVxuXG4gIC8qKlxuICAgKiBAY2xhc3NkZXNjXG4gICAqIEdyaWRMYXllclxuICAgKlxuICAgKiBAY2xhc3NcbiAgICogQHBhcmFtIHtvYmplY3R9IG9wdHNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wdHMudW5pdFdpZHRoIC0gd2lkdGggb2YgdGhlIHVuaXQgcmVjdGFuZ2xlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRzLnVuaXRIZWlnaHQgLSBoZWlnaHQgb2YgdGhlIHVuaXQgcmVjdGFuZ2xlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgc3VwZXIoe1xuICAgICAgdW5pdFdpZHRoOiAxMDAsXG4gICAgICB1bml0SGVpZ2h0OiAxMDAsXG4gICAgICAuLi5vcHRzXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgY29uc3Qge2dsLCBhdHRyaWJ1dGVNYW5hZ2VyfSA9IHRoaXMuc3RhdGU7XG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIG1vZGVsOiB0aGlzLmdldE1vZGVsKGdsKVxuICAgIH0pO1xuXG4gICAgYXR0cmlidXRlTWFuYWdlci5hZGRJbnN0YW5jZWQoQVRUUklCVVRFUywge1xuICAgICAgaW5zdGFuY2VQb3NpdGlvbnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlSW5zdGFuY2VQb3NpdGlvbnN9LFxuICAgICAgaW5zdGFuY2VDb2xvcnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlSW5zdGFuY2VDb2xvcnN9XG4gICAgfSk7XG5cbiAgICB0aGlzLnVwZGF0ZUNlbGwoKTtcbiAgfVxuXG4gIHdpbGxSZWNlaXZlUHJvcHMob2xkUHJvcHMsIG5ld1Byb3BzKSB7XG4gICAgc3VwZXIud2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpO1xuXG4gICAgY29uc3QgY2VsbFNpemVDaGFuZ2VkID1cbiAgICAgIG5ld1Byb3BzLnVuaXRXaWR0aCAhPT0gb2xkUHJvcHMudW5pdFdpZHRoIHx8XG4gICAgICBuZXdQcm9wcy51bml0SGVpZ2h0ICE9PSBvbGRQcm9wcy51bml0SGVpZ2h0O1xuXG4gICAgaWYgKGNlbGxTaXplQ2hhbmdlZCB8fCB0aGlzLnN0YXRlLnZpZXdwb3J0Q2hhbmdlZCkge1xuICAgICAgdGhpcy51cGRhdGVDZWxsKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0TW9kZWwoZ2wpIHtcbiAgICByZXR1cm4gbmV3IE1vZGVsKHtcbiAgICAgIHByb2dyYW06IG5ldyBQcm9ncmFtKGdsLCB7XG4gICAgICAgIHZzOiBnbHNsaWZ5KCcuL2dyaWQtbGF5ZXItdmVydGV4Lmdsc2wnKSxcbiAgICAgICAgZnM6IGdsc2xpZnkoJy4vZ3JpZC1sYXllci1mcmFnbWVudC5nbHNsJyksXG4gICAgICAgIGlkOiAnZ3JpZCdcbiAgICAgIH0pLFxuICAgICAgZ2VvbWV0cnk6IG5ldyBHZW9tZXRyeSh7XG4gICAgICAgIGlkOiB0aGlzLnByb3BzLmlkLFxuICAgICAgICBkcmF3TW9kZTogJ1RSSUFOR0xFX0ZBTicsXG4gICAgICAgIHZlcnRpY2VzOiBuZXcgRmxvYXQzMkFycmF5KFswLCAwLCAwLCAxLCAwLCAwLCAxLCAxLCAwLCAwLCAxLCAwXSlcbiAgICAgIH0pLFxuICAgICAgaXNJbnN0YW5jZWQ6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUNlbGwoKSB7XG4gICAgY29uc3Qge3dpZHRoLCBoZWlnaHQsIHVuaXRXaWR0aCwgdW5pdEhlaWdodH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgbnVtQ29sID0gTWF0aC5jZWlsKHdpZHRoICogMiAvIHVuaXRXaWR0aCk7XG4gICAgY29uc3QgbnVtUm93ID0gTWF0aC5jZWlsKGhlaWdodCAqIDIgLyB1bml0SGVpZ2h0KTtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIG51bUNvbCxcbiAgICAgIG51bVJvdyxcbiAgICAgIG51bUluc3RhbmNlczogbnVtQ29sICogbnVtUm93XG4gICAgfSk7XG5cbiAgICBjb25zdCB7YXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuICAgIGF0dHJpYnV0ZU1hbmFnZXIuaW52YWxpZGF0ZUFsbCgpO1xuXG4gICAgY29uc3QgTUFSR0lOID0gMjtcbiAgICBjb25zdCBzY2FsZSA9IG5ldyBGbG9hdDMyQXJyYXkoW1xuICAgICAgdW5pdFdpZHRoIC0gTUFSR0lOICogMixcbiAgICAgIHVuaXRIZWlnaHQgLSBNQVJHSU4gKiAyLFxuICAgICAgMVxuICAgIF0pO1xuICAgIHRoaXMuc2V0VW5pZm9ybXMoe3NjYWxlfSk7XG5cbiAgfVxuXG4gIGNhbGN1bGF0ZUluc3RhbmNlUG9zaXRpb25zKGF0dHJpYnV0ZSwgbnVtSW5zdGFuY2VzKSB7XG4gICAgY29uc3Qge3VuaXRXaWR0aCwgdW5pdEhlaWdodCwgd2lkdGgsIGhlaWdodH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHtudW1Db2x9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB7dmFsdWUsIHNpemV9ID0gYXR0cmlidXRlO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1JbnN0YW5jZXM7IGkrKykge1xuICAgICAgY29uc3QgeCA9IGkgJSBudW1Db2w7XG4gICAgICBjb25zdCB5ID0gTWF0aC5mbG9vcihpIC8gbnVtQ29sKTtcbiAgICAgIHZhbHVlW2kgKiBzaXplICsgMF0gPSB4ICogdW5pdFdpZHRoIC0gd2lkdGg7XG4gICAgICB2YWx1ZVtpICogc2l6ZSArIDFdID0geSAqIHVuaXRIZWlnaHQgLSBoZWlnaHQ7XG4gICAgICB2YWx1ZVtpICogc2l6ZSArIDJdID0gMDtcbiAgICB9XG4gIH1cblxuICBjYWxjdWxhdGVJbnN0YW5jZUNvbG9ycyhhdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB7ZGF0YSwgdW5pdFdpZHRoLCB1bml0SGVpZ2h0LCB3aWR0aCwgaGVpZ2h0fSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge251bUNvbCwgbnVtUm93fSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qge3ZhbHVlLCBzaXplfSA9IGF0dHJpYnV0ZTtcblxuICAgIHZhbHVlLmZpbGwoMC4wKTtcblxuICAgIGZvciAoY29uc3QgcG9pbnQgb2YgZGF0YSkge1xuICAgICAgY29uc3QgcGl4ZWwgPSB0aGlzLnByb2plY3QoW3BvaW50LnBvc2l0aW9uLnksIHBvaW50LnBvc2l0aW9uLnhdKTtcbiAgICAgIGNvbnN0IGNvbElkID0gTWF0aC5mbG9vcigocGl4ZWwueCArIHdpZHRoKSAvIHVuaXRXaWR0aCk7XG4gICAgICBjb25zdCByb3dJZCA9IE1hdGguZmxvb3IoKHBpeGVsLnkgKyBoZWlnaHQpIC8gdW5pdEhlaWdodCk7XG4gICAgICBpZiAoY29sSWQgPCBudW1Db2wgJiYgcm93SWQgPCBudW1Sb3cpIHtcbiAgICAgICAgY29uc3QgaTQgPSAoY29sSWQgKyByb3dJZCAqIG51bUNvbCkgKiBzaXplO1xuICAgICAgICB2YWx1ZVtpNCArIDJdID0gdmFsdWVbaTQgKyAwXSArPSAxO1xuICAgICAgICB2YWx1ZVtpNCArIDFdICs9IDU7XG4gICAgICAgIHZhbHVlW2k0ICsgM10gPSAwLjY7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zZXRVbmlmb3Jtcyh7bWF4Q291bnQ6IE1hdGgubWF4KC4uLnZhbHVlKX0pO1xuICB9XG5cbn1cbiJdfQ==

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

exports.default = HexagonLayer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvaGV4YWdvbi1sYXllci9oZXhhZ29uLWxheWVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFxQkE7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLElBQU0sVUFBVSxRQUFRLFNBQVIsQ0FBaEI7O0FBRUEsSUFBTSxhQUFhO0FBQ2pCLHFCQUFtQixFQUFDLE1BQU0sQ0FBUCxFQUFVLEtBQUssR0FBZixFQUFvQixLQUFLLEdBQXpCLEVBREY7QUFFakIsc0JBQW9CLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxHQUFmLEVBRkg7QUFHakIsa0JBQWdCLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxLQUFmLEVBQXNCLEtBQUssT0FBM0IsRUFBb0MsS0FBSyxNQUF6QztBQUhDLENBQW5COztBQU1BLElBQU0sZUFBZSxTQUFmLFlBQWU7QUFBQSxTQUFLLEVBQUUsUUFBUDtBQUFBLENBQXJCO0FBQ0EsSUFBTSxnQkFBZ0IsU0FBaEIsYUFBZ0I7QUFBQSxTQUFLLEVBQUUsU0FBRixJQUFlLENBQXBCO0FBQUEsQ0FBdEI7QUFDQSxJQUFNLFlBQVksU0FBWixTQUFZO0FBQUEsU0FBSyxFQUFFLEtBQUYsSUFBVyxDQUFDLEdBQUQsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUFoQjtBQUFBLENBQWxCO0FBQ0EsSUFBTSxlQUFlLFNBQWYsWUFBZTtBQUFBLFNBQUssRUFBRSxRQUFQO0FBQUEsQ0FBckI7O0lBRXFCLFk7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY25CLDBCQVVRO0FBQUEscUVBQUosRUFBSTs7QUFBQSx1QkFUTixFQVNNO0FBQUEsUUFUTixFQVNNLDJCQVRELGVBU0M7QUFBQSw4QkFSTixTQVFNO0FBQUEsUUFSTixTQVFNLGtDQVJNLEVBUU47QUFBQSw4QkFQTixTQU9NO0FBQUEsUUFQTixTQU9NLGtDQVBNLEdBT047QUFBQSxRQU5OLFFBTU0sUUFOTixRQU1NO0FBQUEsZ0NB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LEdBQUwsQ0FBUyxDQUFULEVBQVksS0FBSyxLQUFMLENBQVcsU0FBdkI7QUFKSCxPQUFqQjtBQU1EOzs7Ozs7a0JBMUxrQixZIiwiZmlsZSI6ImhleGFnb24tbGF5ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMTUgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLyogZXNsaW50LWRpc2FibGUgZnVuYy1zdHlsZSAqL1xuXG5pbXBvcnQgTGF5ZXIgZnJvbSAnLi4vLi4vbGF5ZXInO1xuaW1wb3J0IHtNb2RlbCwgUHJvZ3JhbSwgQ3lsaW5kZXJHZW9tZXRyeX0gZnJvbSAnbHVtYS5nbCc7XG5jb25zdCBnbHNsaWZ5ID0gcmVxdWlyZSgnZ2xzbGlmeScpO1xuXG5jb25zdCBBVFRSSUJVVEVTID0ge1xuICBpbnN0YW5jZVBvc2l0aW9uczoge3NpemU6IDIsICcwJzogJ3gnLCAnMSc6ICd5J30sXG4gIGluc3RhbmNlRWxldmF0aW9uczoge3NpemU6IDEsICcwJzogJ3onfSxcbiAgaW5zdGFuY2VDb2xvcnM6IHtzaXplOiAzLCAnMCc6ICdyZWQnLCAnMSc6ICdncmVlbicsICcyJzogJ2JsdWUnfVxufTtcblxuY29uc3QgX2dldENlbnRyb2lkID0geCA9PiB4LmNlbnRyb2lkO1xuY29uc3QgX2dldEVsZXZhdGlvbiA9IHggPT4geC5lbGV2YXRpb24gfHwgMDtcbmNvbnN0IF9nZXRDb2xvciA9IHggPT4geC5jb2xvciB8fCBbMjU1LCAwLCAwXTtcbmNvbnN0IF9nZXRWZXJ0aWNlcyA9IHggPT4geC52ZXJ0aWNlcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSGV4YWdvbkxheWVyIGV4dGVuZHMgTGF5ZXIge1xuICAvKipcbiAgICogQGNsYXNzZGVzY1xuICAgKiBIZXhhZ29uTGF5ZXJcbiAgICpcbiAgICogQGNsYXNzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRzXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRzLmRvdFJhZGl1cyAtIGhleGFnb24gcmFkaXVzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRzLmVsZXZhdGlvbiAtIGhleGFnb24gaGVpZ2h0XG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9wdHMub25IZXhhZ29uSG92ZXJlZChpbmRleCwgZSkgLSBwb3B1cCBzZWxlY3RlZCBpbmRleFxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvcHRzLm9uSGV4YWdvbkNsaWNrZWQoaW5kZXgsIGUpIC0gcG9wdXAgc2VsZWN0ZWQgaW5kZXhcbiAgICovXG4gIGNvbnN0cnVjdG9yKHtcbiAgICBpZCA9ICdoZXhhZ29uLWxheWVyJyxcbiAgICBkb3RSYWRpdXMgPSAxMCxcbiAgICBlbGV2YXRpb24gPSAxMDAsXG4gICAgdmVydGljZXMsXG4gICAgZ2V0Q2VudHJvaWQgPSBfZ2V0Q2VudHJvaWQsXG4gICAgZ2V0RWxldmF0aW9uID0gX2dldEVsZXZhdGlvbixcbiAgICBnZXRDb2xvciA9IF9nZXRDb2xvcixcbiAgICBnZXRWZXJ0aWNlcyA9IF9nZXRWZXJ0aWNlcyxcbiAgICAuLi5vcHRzXG4gIH0gPSB7fSkge1xuICAgIHN1cGVyKHtcbiAgICAgIGlkLFxuICAgICAgZG90UmFkaXVzLFxuICAgICAgZWxldmF0aW9uLFxuICAgICAgdmVydGljZXMsXG4gICAgICBnZXRDZW50cm9pZCxcbiAgICAgIGdldEVsZXZhdGlvbixcbiAgICAgIGdldENvbG9yLFxuICAgICAgZ2V0VmVydGljZXMsXG4gICAgICAuLi5vcHRzXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgY29uc3Qge2dsLCBhdHRyaWJ1dGVNYW5hZ2VyfSA9IHRoaXMuc3RhdGU7XG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIG1vZGVsOiB0aGlzLmdldE1vZGVsKGdsKVxuICAgIH0pO1xuXG4gICAgYXR0cmlidXRlTWFuYWdlci5hZGRJbnN0YW5jZWQoQVRUUklCVVRFUywge1xuICAgICAgaW5zdGFuY2VQb3NpdGlvbnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlSW5zdGFuY2VQb3NpdGlvbnN9LFxuICAgICAgaW5zdGFuY2VFbGV2YXRpb25zOiB7dXBkYXRlOiB0aGlzLmNhbGN1bGF0ZUluc3RhbmNlRWxldmF0aW9uc30sXG4gICAgICBpbnN0YW5jZUNvbG9yczoge3VwZGF0ZTogdGhpcy5jYWxjdWxhdGVJbnN0YW5jZUNvbG9yc31cbiAgICB9KTtcblxuICAgIHRoaXMuY2FsY3VsYXRlUmFkaXVzQW5kQW5nbGUoKTtcblxuICAgIHRoaXMuc2V0VW5pZm9ybXMoe1xuICAgICAgZWxldmF0aW9uOiB0aGlzLnByb3BzLmVsZXZhdGlvblxuICAgIH0pO1xuICB9XG5cbiAgd2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpIHtcbiAgICBzdXBlci53aWxsUmVjZWl2ZVByb3BzKG9sZFByb3BzLCBuZXdQcm9wcyk7XG5cbiAgICBjb25zdCB7ZGF0YUNoYW5nZWQsIHZpZXdwb3J0Q2hhbmdlZCwgYXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuXG4gICAgaWYgKGRhdGFDaGFuZ2VkIHx8IHZpZXdwb3J0Q2hhbmdlZCkge1xuICAgICAgdGhpcy5jYWxjdWxhdGVSYWRpdXNBbmRBbmdsZSgpO1xuICAgIH1cbiAgICBpZiAoZGF0YUNoYW5nZWQpIHtcbiAgICAgIGF0dHJpYnV0ZU1hbmFnZXIuaW52YWxpZGF0ZUFsbCgpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0VW5pZm9ybXMoe1xuICAgICAgZWxldmF0aW9uOiB0aGlzLnByb3BzLmVsZXZhdGlvblxuICAgIH0pO1xuICB9XG5cbiAgZ2V0TW9kZWwoZ2wpIHtcbiAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBDeWxpbmRlckdlb21ldHJ5KHtcbiAgICAgIHJhZGl1czogMSxcbiAgICAgIHRvcFJhZGl1czogMSxcbiAgICAgIGJvdHRvbVJhZGl1czogMSxcbiAgICAgIHRvcENhcDogdHJ1ZSxcbiAgICAgIGJvdHRvbUNhcDogdHJ1ZSxcbiAgICAgIGhlaWdodDogMSxcbiAgICAgIG5yYWRpYWw6IDYsXG4gICAgICBudmVydGljYWw6IDFcbiAgICB9KTtcblxuICAgIC8vIGNvbnN0IE5VTV9TRUdNRU5UUyA9IDY7XG4gICAgLy8gY29uc3QgUEkyID0gTWF0aC5QSSAqIDI7XG5cbiAgICAvLyBsZXQgdmVydGljZXMgPSBbXTtcbiAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IE5VTV9TRUdNRU5UUzsgaSsrKSB7XG4gICAgLy8gICB2ZXJ0aWNlcyA9IFtcbiAgICAvLyAgICAgLi4udmVydGljZXMsXG4gICAgLy8gICAgIE1hdGguY29zKFBJMiAqIGkgLyBOVU1fU0VHTUVOVFMpLFxuICAgIC8vICAgICBNYXRoLnNpbihQSTIgKiBpIC8gTlVNX1NFR01FTlRTKSxcbiAgICAvLyAgICAgMFxuICAgIC8vICAgXTtcbiAgICAvLyB9XG5cbiAgICAvLyBjb25zdCBnZW9tZXRyeSA9IG5ldyBHZW9tZXRyeSh7XG4gICAgLy8gICBpZDogdGhpcy5wcm9wcy5pZCxcbiAgICAvLyAgIGRyYXdNb2RlOiAnVFJJQU5HTEVfRkFOJyxcbiAgICAvLyAgIHZlcnRpY2VzOiBuZXcgRmxvYXQzMkFycmF5KHZlcnRpY2VzKVxuICAgIC8vIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBNb2RlbCh7XG4gICAgICBpZDogdGhpcy5wcm9wcy5pZCxcbiAgICAgIHByb2dyYW06IG5ldyBQcm9ncmFtKGdsLCB7XG4gICAgICAgIHZzOiBnbHNsaWZ5KCcuL2hleGFnb24tbGF5ZXItdmVydGV4Lmdsc2wnKSxcbiAgICAgICAgZnM6IGdsc2xpZnkoJy4vaGV4YWdvbi1sYXllci1mcmFnbWVudC5nbHNsJyksXG4gICAgICAgIGlkOiAnaGV4YWdvbidcbiAgICAgIH0pLFxuICAgICAgZ2VvbWV0cnksXG4gICAgICBpc0luc3RhbmNlZDogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgY2FsY3VsYXRlSW5zdGFuY2VQb3NpdGlvbnMoYXR0cmlidXRlKSB7XG4gICAgY29uc3Qge2RhdGEsIGdldENlbnRyb2lkfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge3ZhbHVlLCBzaXplfSA9IGF0dHJpYnV0ZTtcbiAgICBsZXQgaSA9IDA7XG4gICAgZm9yIChjb25zdCBoZXhhZ29uIG9mIGRhdGEpIHtcbiAgICAgIGNvbnN0IGNlbnRyb2lkID0gZ2V0Q2VudHJvaWQoaGV4YWdvbik7XG4gICAgICB2YWx1ZVtpICsgMF0gPSBjZW50cm9pZFswXTtcbiAgICAgIHZhbHVlW2kgKyAxXSA9IGNlbnRyb2lkWzFdO1xuICAgICAgaSArPSBzaXplO1xuICAgIH1cbiAgfVxuXG4gIGNhbGN1bGF0ZUluc3RhbmNlRWxldmF0aW9ucyhhdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB7ZGF0YSwgZ2V0RWxldmF0aW9ufSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge3ZhbHVlLCBzaXplfSA9IGF0dHJpYnV0ZTtcbiAgICBsZXQgaSA9IDA7XG4gICAgZm9yIChjb25zdCBoZXhhZ29uIG9mIGRhdGEpIHtcbiAgICAgIGNvbnN0IGVsZXZhdGlvbiA9IGdldEVsZXZhdGlvbihoZXhhZ29uKSB8fCAwO1xuICAgICAgdmFsdWVbaSArIDBdID0gZWxldmF0aW9uO1xuICAgICAgaSArPSBzaXplO1xuICAgIH1cbiAgfVxuXG4gIGNhbGN1bGF0ZUluc3RhbmNlQ29sb3JzKGF0dHJpYnV0ZSkge1xuICAgIGNvbnN0IHtkYXRhLCBnZXRDb2xvcn0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHt2YWx1ZX0gPSBhdHRyaWJ1dGU7XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgaGV4YWdvbiBvZiBkYXRhKSB7XG4gICAgICBjb25zdCBjb2xvciA9IGdldENvbG9yKGhleGFnb24pO1xuICAgICAgdmFsdWVbaSArIDBdID0gY29sb3JbMF07XG4gICAgICB2YWx1ZVtpICsgMV0gPSBjb2xvclsxXTtcbiAgICAgIHZhbHVlW2kgKyAyXSA9IGNvbG9yWzJdO1xuICAgICAgaSArPSAzO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE8gdGhpcyBpcyB0aGUgb25seSBwbGFjZSB0aGF0IHVzZXMgaGV4YWdvbiB2ZXJ0aWNlc1xuICAvLyBjb25zaWRlciBtb3ZlIHJhZGl1cyBhbmQgYW5nbGUgY2FsY3VsYXRpb24gdG8gdGhlIHNoYWRlclxuICBjYWxjdWxhdGVSYWRpdXNBbmRBbmdsZSgpIHtcbiAgICBjb25zdCB7ZGF0YSwgZ2V0VmVydGljZXN9ID0gdGhpcy5wcm9wcztcbiAgICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFaXRoZXIgZ2V0IHZlcnRpY2VzIGZyb20gcHJvcCwgb3IgZnJvbSBmaXJzdCBoZXhhZ29uXG4gICAgbGV0IHt2ZXJ0aWNlc30gPSB0aGlzLnByb3BzO1xuICAgIGlmICghdmVydGljZXMpIHtcbiAgICAgIGNvbnN0IGZpcnN0SGV4YWdvbiA9IHRoaXMuZ2V0Rmlyc3RPYmplY3QoKTtcbiAgICAgIHZlcnRpY2VzID0gZ2V0VmVydGljZXMoZmlyc3RIZXhhZ29uKTtcbiAgICB9XG4gICAgY29uc3QgdmVydGV4MCA9IHZlcnRpY2VzWzBdO1xuICAgIGNvbnN0IHZlcnRleDMgPSB2ZXJ0aWNlc1szXTtcblxuICAgIC8vIHRyYW5zZm9ybSB0byBzcGFjZSBjb29yZGluYXRlc1xuICAgIGNvbnN0IHNwYWNlQ29vcmQwID0gdGhpcy5wcm9qZWN0KHtsYXQ6IHZlcnRleDBbMV0sIGxvbjogdmVydGV4MFswXX0pO1xuICAgIGNvbnN0IHNwYWNlQ29vcmQzID0gdGhpcy5wcm9qZWN0KHtsYXQ6IHZlcnRleDNbMV0sIGxvbjogdmVydGV4M1swXX0pO1xuXG4gICAgLy8gZGlzdGFuY2UgYmV0d2VlbiB0d28gY2xvc2UgY2VudHJvaWRzXG4gICAgY29uc3QgZHggPSBzcGFjZUNvb3JkMC54IC0gc3BhY2VDb29yZDMueDtcbiAgICBjb25zdCBkeSA9IHNwYWNlQ29vcmQwLnkgLSBzcGFjZUNvb3JkMy55O1xuICAgIGNvbnN0IGR4eSA9IE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSk7XG5cbiAgICB0aGlzLnNldFVuaWZvcm1zKHtcbiAgICAgIC8vIENhbGN1bGF0ZSBhbmdsZSB0aGF0IHRoZSBwZXJwZW5kaWN1bGFyIGhleGFnb24gdmVydGV4IGF4aXMgaXMgdGlsdGVkXG4gICAgICBhbmdsZTogTWF0aC5hY29zKGR4IC8gZHh5KSAqIC1NYXRoLnNpZ24oZHkpICsgTWF0aC5QSSAvIDIsXG4gICAgICAvLyBBbGxvdyB1c2VyIHRvIGZpbmUgdHVuZSByYWRpdXNcbiAgICAgIHJhZGl1czogZHh5IC8gMiAqIE1hdGgubWluKDEsIHRoaXMucHJvcHMuZG90UmFkaXVzKVxuICAgIH0pO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvaGV4YWdvbi1sYXllci9oZXhhZ29uLWxheWVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFxQkE7Ozs7QUFDQTs7Ozs7Ozs7Ozs4ZUF0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFJQSxJQUFNLFVBQVUsUUFBUSxTQUFSLENBQWhCOztBQUVBLElBQU0sYUFBYTtBQUNqQixxQkFBbUIsRUFBQyxNQUFNLENBQVAsRUFBVSxLQUFLLEdBQWYsRUFBb0IsS0FBSyxHQUF6QixFQURGO0FBRWpCLHNCQUFvQixFQUFDLE1BQU0sQ0FBUCxFQUFVLEtBQUssR0FBZixFQUZIO0FBR2pCLGtCQUFnQixFQUFDLE1BQU0sQ0FBUCxFQUFVLEtBQUssS0FBZixFQUFzQixLQUFLLE9BQTNCLEVBQW9DLEtBQUssTUFBekM7QUFIQyxDQUFuQjs7QUFNQSxJQUFNLGVBQWUsU0FBZixZQUFlO0FBQUEsU0FBSyxFQUFFLFFBQVA7QUFBQSxDQUFyQjtBQUNBLElBQU0sZ0JBQWdCLFNBQWhCLGFBQWdCO0FBQUEsU0FBSyxFQUFFLFNBQUYsSUFBZSxDQUFwQjtBQUFBLENBQXRCO0FBQ0EsSUFBTSxZQUFZLFNBQVosU0FBWTtBQUFBLFNBQUssRUFBRSxLQUFGLElBQVcsQ0FBQyxHQUFELEVBQU0sQ0FBTixFQUFTLENBQVQsQ0FBaEI7QUFBQSxDQUFsQjtBQUNBLElBQU0sZUFBZSxTQUFmLFlBQWU7QUFBQSxTQUFLLEVBQUUsUUFBUDtBQUFBLENBQXJCOztJQUVxQixZOzs7QUFDbkI7Ozs7Ozs7Ozs7Ozs7O0FBYUEsMEJBVVE7QUFBQSxxRUFBSixFQUFJOztBQUFBLHVCQVROLEVBU007QUFBQSxRQVROLEVBU00sMkJBVEQsZUFTQztBQUFBLDhCQVJOLFNBUU07QUFBQSxRQVJOLFNBUU0s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S0FBSyxFQUF6QixDQUFaOztBQUVBLFdBQUssV0FBTCxDQUFpQjtBQUNmO0FBQ0EsZUFBTyxLQUFLLElBQUwsQ0FBVSxLQUFLLEdBQWYsSUFBc0IsQ0FBQyxLQUFLLElBQUwsQ0FBVSxFQUFWLENBQXZCLEdBQXVDLEtBQUssRUFBTCxHQUFVLENBRnpDO0FBR2Y7QUFDQSxnQkFBUSxNQUFNLENBQU4sR0FBVSxLQUFLLEdBQUwsQ0FBUyxDQUFULEVBQVksS0FBSyxLQUFMLENBQVcsU0FBdkI7QUFKSCxPQUFqQjtBQU1EOzs7Ozs7a0JBMUxrQixZIiwiZmlsZSI6ImhleGFnb24tbGF5ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMTUgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLyogZXNsaW50LWRpc2FibGUgZnVuYy1zdHlsZSAqL1xuXG5pbXBvcnQgTGF5ZXIgZnJvbSAnLi4vLi4vbGF5ZXInO1xuaW1wb3J0IHtNb2RlbCwgUHJvZ3JhbSwgQ3lsaW5kZXJHZW9tZXRyeX0gZnJvbSAnbHVtYS5nbCc7XG5jb25zdCBnbHNsaWZ5ID0gcmVxdWlyZSgnZ2xzbGlmeScpO1xuXG5jb25zdCBBVFRSSUJVVEVTID0ge1xuICBpbnN0YW5jZVBvc2l0aW9uczoge3NpemU6IDIsICcwJzogJ3gnLCAnMSc6ICd5J30sXG4gIGluc3RhbmNlRWxldmF0aW9uczoge3NpemU6IDEsICcwJzogJ3onfSxcbiAgaW5zdGFuY2VDb2xvcnM6IHtzaXplOiAzLCAnMCc6ICdyZWQnLCAnMSc6ICdncmVlbicsICcyJzogJ2JsdWUnfVxufTtcblxuY29uc3QgX2dldENlbnRyb2lkID0geCA9PiB4LmNlbnRyb2lkO1xuY29uc3QgX2dldEVsZXZhdGlvbiA9IHggPT4geC5lbGV2YXRpb24gfHwgMDtcbmNvbnN0IF9nZXRDb2xvciA9IHggPT4geC5jb2xvciB8fCBbMjU1LCAwLCAwXTtcbmNvbnN0IF9nZXRWZXJ0aWNlcyA9IHggPT4geC52ZXJ0aWNlcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSGV4YWdvbkxheWVyIGV4dGVuZHMgTGF5ZXIge1xuICAvKipcbiAgICogQGNsYXNzZGVzY1xuICAgKiBIZXhhZ29uTGF5ZXJcbiAgICpcbiAgICogQGNsYXNzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRzXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRzLmRvdFJhZGl1cyAtIGhleGFnb24gcmFkaXVzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRzLmVsZXZhdGlvbiAtIGhleGFnb24gaGVpZ2h0XG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9wdHMub25IZXhhZ29uSG92ZXJlZChpbmRleCwgZSkgLSBwb3B1cCBzZWxlY3RlZCBpbmRleFxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvcHRzLm9uSGV4YWdvbkNsaWNrZWQoaW5kZXgsIGUpIC0gcG9wdXAgc2VsZWN0ZWQgaW5kZXhcbiAgICovXG4gIGNvbnN0cnVjdG9yKHtcbiAgICBpZCA9ICdoZXhhZ29uLWxheWVyJyxcbiAgICBkb3RSYWRpdXMgPSAxMCxcbiAgICBlbGV2YXRpb24gPSAxMDAsXG4gICAgdmVydGljZXMsXG4gICAgZ2V0Q2VudHJvaWQgPSBfZ2V0Q2VudHJvaWQsXG4gICAgZ2V0RWxldmF0aW9uID0gX2dldEVsZXZhdGlvbixcbiAgICBnZXRDb2xvciA9IF9nZXRDb2xvcixcbiAgICBnZXRWZXJ0aWNlcyA9IF9nZXRWZXJ0aWNlcyxcbiAgICAuLi5vcHRzXG4gIH0gPSB7fSkge1xuICAgIHN1cGVyKHtcbiAgICAgIGlkLFxuICAgICAgZG90UmFkaXVzLFxuICAgICAgZWxldmF0aW9uLFxuICAgICAgdmVydGljZXMsXG4gICAgICBnZXRDZW50cm9pZCxcbiAgICAgIGdldEVsZXZhdGlvbixcbiAgICAgIGdldENvbG9yLFxuICAgICAgZ2V0VmVydGljZXMsXG4gICAgICAuLi5vcHRzXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgY29uc3Qge2dsLCBhdHRyaWJ1dGVNYW5hZ2VyfSA9IHRoaXMuc3RhdGU7XG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIG1vZGVsOiB0aGlzLmdldE1vZGVsKGdsKVxuICAgIH0pO1xuXG4gICAgYXR0cmlidXRlTWFuYWdlci5hZGRJbnN0YW5jZWQoQVRUUklCVVRFUywge1xuICAgICAgaW5zdGFuY2VQb3NpdGlvbnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlSW5zdGFuY2VQb3NpdGlvbnN9LFxuICAgICAgaW5zdGFuY2VFbGV2YXRpb25zOiB7dXBkYXRlOiB0aGlzLmNhbGN1bGF0ZUluc3RhbmNlRWxldmF0aW9uc30sXG4gICAgICBpbnN0YW5jZUNvbG9yczoge3VwZGF0ZTogdGhpcy5jYWxjdWxhdGVJbnN0YW5jZUNvbG9yc31cbiAgICB9KTtcblxuICAgIHRoaXMuY2FsY3VsYXRlUmFkaXVzQW5kQW5nbGUoKTtcblxuICAgIHRoaXMuc2V0VW5pZm9ybXMoe1xuICAgICAgZWxldmF0aW9uOiB0aGlzLnByb3BzLmVsZXZhdGlvblxuICAgIH0pO1xuICB9XG5cbiAgd2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpIHtcbiAgICBzdXBlci53aWxsUmVjZWl2ZVByb3BzKG9sZFByb3BzLCBuZXdQcm9wcyk7XG5cbiAgICBjb25zdCB7ZGF0YUNoYW5nZWQsIHZpZXdwb3J0Q2hhbmdlZCwgYXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuXG4gICAgaWYgKGRhdGFDaGFuZ2VkIHx8IHZpZXdwb3J0Q2hhbmdlZCkge1xuICAgICAgdGhpcy5jYWxjdWxhdGVSYWRpdXNBbmRBbmdsZSgpO1xuICAgIH1cbiAgICBpZiAoZGF0YUNoYW5nZWQpIHtcbiAgICAgIGF0dHJpYnV0ZU1hbmFnZXIuaW52YWxpZGF0ZUFsbCgpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0VW5pZm9ybXMoe1xuICAgICAgZWxldmF0aW9uOiB0aGlzLnByb3BzLmVsZXZhdGlvblxuICAgIH0pO1xuICB9XG5cbiAgZ2V0TW9kZWwoZ2wpIHtcbiAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBDeWxpbmRlckdlb21ldHJ5KHtcbiAgICAgIHJhZGl1czogMSxcbiAgICAgIHRvcFJhZGl1czogMSxcbiAgICAgIGJvdHRvbVJhZGl1czogMSxcbiAgICAgIHRvcENhcDogdHJ1ZSxcbiAgICAgIGJvdHRvbUNhcDogdHJ1ZSxcbiAgICAgIGhlaWdodDogMSxcbiAgICAgIG5yYWRpYWw6IDYsXG4gICAgICBudmVydGljYWw6IDFcbiAgICB9KTtcblxuICAgIC8vIGNvbnN0IE5VTV9TRUdNRU5UUyA9IDY7XG4gICAgLy8gY29uc3QgUEkyID0gTWF0aC5QSSAqIDI7XG5cbiAgICAvLyBsZXQgdmVydGljZXMgPSBbXTtcbiAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IE5VTV9TRUdNRU5UUzsgaSsrKSB7XG4gICAgLy8gICB2ZXJ0aWNlcyA9IFtcbiAgICAvLyAgICAgLi4udmVydGljZXMsXG4gICAgLy8gICAgIE1hdGguY29zKFBJMiAqIGkgLyBOVU1fU0VHTUVOVFMpLFxuICAgIC8vICAgICBNYXRoLnNpbihQSTIgKiBpIC8gTlVNX1NFR01FTlRTKSxcbiAgICAvLyAgICAgMFxuICAgIC8vICAgXTtcbiAgICAvLyB9XG5cbiAgICAvLyBjb25zdCBnZW9tZXRyeSA9IG5ldyBHZW9tZXRyeSh7XG4gICAgLy8gICBpZDogdGhpcy5wcm9wcy5pZCxcbiAgICAvLyAgIGRyYXdNb2RlOiAnVFJJQU5HTEVfRkFOJyxcbiAgICAvLyAgIHZlcnRpY2VzOiBuZXcgRmxvYXQzMkFycmF5KHZlcnRpY2VzKVxuICAgIC8vIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBNb2RlbCh7XG4gICAgICBpZDogdGhpcy5wcm9wcy5pZCxcbiAgICAgIHByb2dyYW06IG5ldyBQcm9ncmFtKGdsLCB7XG4gICAgICAgIHZzOiBnbHNsaWZ5KCcuL2hleGFnb24tbGF5ZXItdmVydGV4Lmdsc2wnKSxcbiAgICAgICAgZnM6IGdsc2xpZnkoJy4vaGV4YWdvbi1sYXllci1mcmFnbWVudC5nbHNsJyksXG4gICAgICAgIGlkOiAnaGV4YWdvbidcbiAgICAgIH0pLFxuICAgICAgZ2VvbWV0cnksXG4gICAgICBpc0luc3RhbmNlZDogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgY2FsY3VsYXRlSW5zdGFuY2VQb3NpdGlvbnMoYXR0cmlidXRlKSB7XG4gICAgY29uc3Qge2RhdGEsIGdldENlbnRyb2lkfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge3ZhbHVlLCBzaXplfSA9IGF0dHJpYnV0ZTtcbiAgICBsZXQgaSA9IDA7XG4gICAgZm9yIChjb25zdCBoZXhhZ29uIG9mIGRhdGEpIHtcbiAgICAgIGNvbnN0IGNlbnRyb2lkID0gZ2V0Q2VudHJvaWQoaGV4YWdvbik7XG4gICAgICB2YWx1ZVtpICsgMF0gPSBjZW50cm9pZFswXTtcbiAgICAgIHZhbHVlW2kgKyAxXSA9IGNlbnRyb2lkWzFdO1xuICAgICAgaSArPSBzaXplO1xuICAgIH1cbiAgfVxuXG4gIGNhbGN1bGF0ZUluc3RhbmNlRWxldmF0aW9ucyhhdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB7ZGF0YSwgZ2V0RWxldmF0aW9ufSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge3ZhbHVlLCBzaXplfSA9IGF0dHJpYnV0ZTtcbiAgICBsZXQgaSA9IDA7XG4gICAgZm9yIChjb25zdCBoZXhhZ29uIG9mIGRhdGEpIHtcbiAgICAgIGNvbnN0IGVsZXZhdGlvbiA9IGdldEVsZXZhdGlvbihoZXhhZ29uKSB8fCAwO1xuICAgICAgdmFsdWVbaSArIDBdID0gZWxldmF0aW9uO1xuICAgICAgaSArPSBzaXplO1xuICAgIH1cbiAgfVxuXG4gIGNhbGN1bGF0ZUluc3RhbmNlQ29sb3JzKGF0dHJpYnV0ZSkge1xuICAgIGNvbnN0IHtkYXRhLCBnZXRDb2xvcn0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHt2YWx1ZX0gPSBhdHRyaWJ1dGU7XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgaGV4YWdvbiBvZiBkYXRhKSB7XG4gICAgICBjb25zdCBjb2xvciA9IGdldENvbG9yKGhleGFnb24pO1xuICAgICAgdmFsdWVbaSArIDBdID0gY29sb3JbMF07XG4gICAgICB2YWx1ZVtpICsgMV0gPSBjb2xvclsxXTtcbiAgICAgIHZhbHVlW2kgKyAyXSA9IGNvbG9yWzJdO1xuICAgICAgaSArPSAzO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE8gdGhpcyBpcyB0aGUgb25seSBwbGFjZSB0aGF0IHVzZXMgaGV4YWdvbiB2ZXJ0aWNlc1xuICAvLyBjb25zaWRlciBtb3ZlIHJhZGl1cyBhbmQgYW5nbGUgY2FsY3VsYXRpb24gdG8gdGhlIHNoYWRlclxuICBjYWxjdWxhdGVSYWRpdXNBbmRBbmdsZSgpIHtcbiAgICBjb25zdCB7ZGF0YSwgZ2V0VmVydGljZXN9ID0gdGhpcy5wcm9wcztcbiAgICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFaXRoZXIgZ2V0IHZlcnRpY2VzIGZyb20gcHJvcCwgb3IgZnJvbSBmaXJzdCBoZXhhZ29uXG4gICAgbGV0IHt2ZXJ0aWNlc30gPSB0aGlzLnByb3BzO1xuICAgIGlmICghdmVydGljZXMpIHtcbiAgICAgIGNvbnN0IGZpcnN0SGV4YWdvbiA9IHRoaXMuZ2V0Rmlyc3RPYmplY3QoKTtcbiAgICAgIHZlcnRpY2VzID0gZ2V0VmVydGljZXMoZmlyc3RIZXhhZ29uKTtcbiAgICB9XG4gICAgY29uc3QgdmVydGV4MCA9IHZlcnRpY2VzWzBdO1xuICAgIGNvbnN0IHZlcnRleDMgPSB2ZXJ0aWNlc1szXTtcblxuICAgIC8vIHRyYW5zZm9ybSB0byBzcGFjZSBjb29yZGluYXRlc1xuICAgIGNvbnN0IHNwYWNlQ29vcmQwID0gdGhpcy5wcm9qZWN0KHtsYXQ6IHZlcnRleDBbMV0sIGxvbjogdmVydGV4MFswXX0pO1xuICAgIGNvbnN0IHNwYWNlQ29vcmQzID0gdGhpcy5wcm9qZWN0KHtsYXQ6IHZlcnRleDNbMV0sIGxvbjogdmVydGV4M1swXX0pO1xuXG4gICAgLy8gZGlzdGFuY2UgYmV0d2VlbiB0d28gY2xvc2UgY2VudHJvaWRzXG4gICAgY29uc3QgZHggPSBzcGFjZUNvb3JkMC54IC0gc3BhY2VDb29yZDMueDtcbiAgICBjb25zdCBkeSA9IHNwYWNlQ29vcmQwLnkgLSBzcGFjZUNvb3JkMy55O1xuICAgIGNvbnN0IGR4eSA9IE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSk7XG5cbiAgICB0aGlzLnNldFVuaWZvcm1zKHtcbiAgICAgIC8vIENhbGN1bGF0ZSBhbmdsZSB0aGF0IHRoZSBwZXJwZW5kaWN1bGFyIGhleGFnb24gdmVydGV4IGF4aXMgaXMgdGlsdGVkXG4gICAgICBhbmdsZTogTWF0aC5hY29zKGR4IC8gZHh5KSAqIC1NYXRoLnNpZ24oZHkpICsgTWF0aC5QSSAvIDIsXG4gICAgICAvLyBBbGxvdyB1c2VyIHRvIGZpbmUgdHVuZSByYWRpdXNcbiAgICAgIHJhZGl1czogZHh5IC8gMiAqIE1hdGgubWluKDEsIHRoaXMucHJvcHMuZG90UmFkaXVzKVxuICAgIH0pO1xuICB9XG59XG4iXX0=

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

exports.default = ScatterplotLayer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvc2NhdHRlcnBsb3QtbGF5ZXIvc2NhdHRlcnBsb3QtbGF5ZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFvQkE7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTSxVQUFVLFFBQVEsU0FBUixDQUFoQjs7QUFFQSxJQUFNLGFBQWE7QUFDakIscUJBQW1CLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxHQUFmLEVBQW9CLEtBQUssR0FBekIsRUFBOEIsS0FBSyxRQUFuQyxFQURGO0FBRWpCLGtCQUFnQixFQUFDLE1BQU0sQ0FBUCxFQUFVLEtBQUssS0FBZixFQUFzQixLQUFLLE9BQTNCLEVBQW9DLEtBQUssTUFBekM7QUFGQyxDQUFuQjs7SUFLcUIsZ0I7Ozs7O3dCQUVLO0FBQ3RCLGFBQU8sVUFBUDtBQUNEOzs7Ozs7Ozs7Ozs7O0FBVUQsNEJBQVksS0FBWixFQUFtQjtBQUFBOztBQUFBLCtGQUNYLEtBRFc7QUFFbEI7Ozs7c0NBRWlCO0FBQUEsVUFDVCxFQURTLEdBQ0gsS0FBSyxLQURGLENBQ1QsRUFEUztBQUFBLFVBRVQsZ0JBRlMsR0FFVyxLQUFLLEtBRmhCLENBRVQsZ0JBRlM7OztBQUloQixXQUFLLFFBQUwsQ0FBYztBQUNaLGVBQU8sS0FBSyxRQUFMLENBQWMsRUFBZDtBQURLLE9BQWQ7O0FBSUEsdUJBQWlCLFlBQWpCLENBQThCLFVBQTlCLEVBQTBDO0FBQ3hDLDJCQUFtQixFQUFDLFFBQVEsS0FBSywwQkFBZCxFQURxQjtBQUV4Qyx3QkFBZ0IsRUFBQyxRQUFRLEtBQUssdUJBQWQ7QUFGd0IsT0FBMUM7QUFJRDs7OytCQUVVO0FBQ1QsV0FBSyxjQUFMO0FBQ0Q7OztxQ0FFZ0IsUSxFQUFVLFEsRUFBVTtBQUNuQyxtR0FBdUIsUUFBdkIsRUFBaUMsUUFBakM7QUFDQSxXQUFLLGNBQUw7QUFDRDs7OzZCQUVRLEUsRUFBSTtBQUNYLFVBQU0sZUFBZSxFQUFyQjtBQUNBLFVBQU0sTUFBTSxLQUFLLEVBQUwsR0FBVSxDQUF0Qjs7QUFFQSxVQUFJLFlBQVksRUFBaEI7QUFDQSxXQUFLLElBQUksSUFBSSxDQUFiLEVBQWdCLElBQUksWUFBcEIsRUFBa0MsR0FBbEMsRUFBdUM7QUFDckMsaURBQ0ssU0FETCxJQUVFLEtBQUssR0FBTCxDQUFTLE1BQU0sQ0FBTixHQUFVLFlBQW5CLENBRkYsRUFHRSxLQUFLLEdBQUwsQ0FBUyxNQUFNLENBQU4sR0FBVSxZQUFuQixDQUhGLEVBSUUsQ0FKRjtBQU1EOztBQUVELGFBQU8sZ0JBQVU7QUFDZixpQkFBUyxrQkFBWSxFQUFaLEVBQWdCO0FBQ3ZCLDZvR0FEdUI7QUFFdkIseTVDQUZ1QjtBQUd2QixjQUFJO0FBSG1CLFNBQWhCLENBRE07QUFNZixrQkFBVSxtQkFBYTtBQUNyQixvQkFBVSxjQURXO0FBRXJCLHFCQUFXLElBQUksWUFBSixDQUFpQixTQUFqQjtBQUZVLFNBQWIsQ0FOSztBQVVmLHFCQUFhO0FBVkUsT0FBVixDQUFQO0FBWUQ7OztxQ0FFZ0I7QUFDZixXQUFLLGVBQUw7QUFEZSxVQUVSLE1BRlEsR0FFRSxLQUFLLEtBRlAsQ0FFUixNQUZROztBQUdmLFdBQUssV0FBTCxDQUFpQjtBQUNmO0FBRGUsT0FBakI7QUFHRDs7OytDQUUwQixTLEVBQVc7QUFBQSxVQUM3QixJQUQ2QixHQUNyQixLQUFLLEtBRGdCLENBQzdCLElBRDZCO0FBQUEsVUFFN0IsS0FGNkIsR0FFZCxTQUZjLENBRTdCLEtBRjZCO0FBQUEsVUFFdEIsSUFGc0IsR0FFZCxTQUZjLENBRXRCLElBRnNCOztBQUdwQyxVQUFJLElBQUksQ0FBUjtBQUhvQztBQUFBO0FBQUE7O0FBQUE7QUFJcEMsNkJBQW9CLElBQXBCLDhIQUEwQjtBQUFBLGNBQWYsS0FBZTs7QUFDeEIsZ0JBQU0sSUFBSSxDQUFWLElBQWUsTUFBTSxRQUFOLENBQWUsQ0FBOUI7QUFDQSxnQkFBTSxJQUFJLENBQVYsSUFBZSxNQUFNLFFBQU4sQ0FBZSxDQUE5QjtBQUNBLGdCQUFNLElBQUksQ0FBVixJQUFlLE1BQU0sUUFBTixDQUFlLENBQTlCO0FBQ0EsZUFBSyxJQUFMO0FBQ0Q7QUFUbUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVyQzs7OzRDQUV1QixTLEVBQVc7QUFBQSxVQUMxQixJQUQwQixHQUNsQixLQUFLLEtBRGEsQ0FDMUIsSUFEMEI7QUFBQSxVQUUxQixLQUYwQixHQUVYLFNBRlcsQ0FFMUIsS0FGMEI7QUFBQSxVQUVuQixJQUZtQixHQUVYLFNBRlcsQ0FFbkIsSUFGbUI7O0FBR2pDLFVBQUksSUFBSSxDQUFSO0FBSGlDO0FBQUE7QUFBQTs7QUFBQTtBQUlqQyw4QkFBb0IsSUFBcEIsbUlBQTBCO0FBQUEsY0FBZixLQUFlOztBQUN4QixnQkFBTSxJQUFJLENBQVYsSUFBZSxNQUFNLEtBQU4sQ0FBWSxDQUFaLENBQWY7QUFDQSxnQkFBTSxJQUFJLENBQVYsSUFBZSxNQUFNLEtBQU4sQ0FBWSxDQUFaLENBQWY7QUFDQSxnQkFBTSxJQUFJLENBQVYsSUFBZSxNQUFNLEtBQU4sQ0FBWSxDQUFaLENBQWY7QUFDQSxlQUFLLElBQUw7QUFDRDtBQVRnQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVWxDOzs7c0NBRWlCOztBQUVoQixVQUFJLEtBQUssS0FBTCxDQUFXLE1BQWYsRUFBdUI7QUFDckIsYUFBSyxLQUFMLENBQVcsTUFBWCxHQUFvQixLQUFLLEtBQUwsQ0FBVyxNQUEvQjtBQUNBO0FBQ0Q7O0FBRUQsVUFBTSxTQUFTLEtBQUssT0FBTCxDQUFhLEVBQUMsS0FBSyxDQUFDLEdBQVAsRUFBWSxLQUFLLElBQWpCLEVBQWIsQ0FBZjtBQUNBLFVBQU0sU0FBUyxLQUFLLE9BQUwsQ0FBYSxFQUFDLEtBQUssQ0FBQyxHQUFQLEVBQVksS0FBSyxPQUFqQixFQUFiLENBQWY7O0FBRUEsVUFBTSxLQUFLLE9BQU8sQ0FBUCxHQUFXLE9BQU8sQ0FBN0I7QUFDQSxVQUFNLEtBQUssT0FBTyxDQUFQLEdBQVcsT0FBTyxDQUE3Qjs7QUFFQSxXQUFLLEtBQUwsQ0FBVyxNQUFYLEdBQW9CLEtBQUssR0FBTCxDQUFTLEtBQUssSUFBTCxDQUFVLEtBQUssRUFBTCxHQUFVLEtBQUssRUFBekIsQ0FBVCxFQUF1QyxHQUF2QyxDQUFwQjtBQUNEOzs7Ozs7a0JBbkhrQixnQiIsImZpbGUiOiJzY2F0dGVycGxvdC1sYXllci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxNSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBMYXllciBmcm9tICcuLi8uLi9sYXllcic7XG5pbXBvcnQge01vZGVsLCBQcm9ncmFtLCBHZW9tZXRyeX0gZnJvbSAnbHVtYS5nbCc7XG5jb25zdCBnbHNsaWZ5ID0gcmVxdWlyZSgnZ2xzbGlmeScpO1xuXG5jb25zdCBBVFRSSUJVVEVTID0ge1xuICBpbnN0YW5jZVBvc2l0aW9uczoge3NpemU6IDMsICcwJzogJ3gnLCAnMSc6ICd5JywgJzInOiAndW51c2VkJ30sXG4gIGluc3RhbmNlQ29sb3JzOiB7c2l6ZTogMywgJzAnOiAncmVkJywgJzEnOiAnZ3JlZW4nLCAnMic6ICdibHVlJ31cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjYXR0ZXJwbG90TGF5ZXIgZXh0ZW5kcyBMYXllciB7XG5cbiAgc3RhdGljIGdldCBhdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiBBVFRSSUJVVEVTO1xuICB9XG5cbiAgLypcbiAgICogQGNsYXNzZGVzY1xuICAgKiBTY2F0dGVycGxvdExheWVyXG4gICAqXG4gICAqIEBjbGFzc1xuICAgKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAgICogQHBhcmFtIHtudW1iZXJ9IHByb3BzLnJhZGl1cyAtIHBvaW50IHJhZGl1c1xuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgY29uc3Qge2dsfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qge2F0dHJpYnV0ZU1hbmFnZXJ9ID0gdGhpcy5zdGF0ZTtcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgbW9kZWw6IHRoaXMuZ2V0TW9kZWwoZ2wpXG4gICAgfSk7XG5cbiAgICBhdHRyaWJ1dGVNYW5hZ2VyLmFkZEluc3RhbmNlZChBVFRSSUJVVEVTLCB7XG4gICAgICBpbnN0YW5jZVBvc2l0aW9uczoge3VwZGF0ZTogdGhpcy5jYWxjdWxhdGVJbnN0YW5jZVBvc2l0aW9uc30sXG4gICAgICBpbnN0YW5jZUNvbG9yczoge3VwZGF0ZTogdGhpcy5jYWxjdWxhdGVJbnN0YW5jZUNvbG9yc31cbiAgICB9KTtcbiAgfVxuXG4gIGRpZE1vdW50KCkge1xuICAgIHRoaXMudXBkYXRlVW5pZm9ybXMoKTtcbiAgfVxuXG4gIHdpbGxSZWNlaXZlUHJvcHMob2xkUHJvcHMsIG5ld1Byb3BzKSB7XG4gICAgc3VwZXIud2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpO1xuICAgIHRoaXMudXBkYXRlVW5pZm9ybXMoKTtcbiAgfVxuXG4gIGdldE1vZGVsKGdsKSB7XG4gICAgY29uc3QgTlVNX1NFR01FTlRTID0gMTY7XG4gICAgY29uc3QgUEkyID0gTWF0aC5QSSAqIDI7XG5cbiAgICBsZXQgcG9zaXRpb25zID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBOVU1fU0VHTUVOVFM7IGkrKykge1xuICAgICAgcG9zaXRpb25zID0gW1xuICAgICAgICAuLi5wb3NpdGlvbnMsXG4gICAgICAgIE1hdGguY29zKFBJMiAqIGkgLyBOVU1fU0VHTUVOVFMpLFxuICAgICAgICBNYXRoLnNpbihQSTIgKiBpIC8gTlVNX1NFR01FTlRTKSxcbiAgICAgICAgMFxuICAgICAgXTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IE1vZGVsKHtcbiAgICAgIHByb2dyYW06IG5ldyBQcm9ncmFtKGdsLCB7XG4gICAgICAgIHZzOiBnbHNsaWZ5KCcuL3NjYXR0ZXJwbG90LWxheWVyLXZlcnRleC5nbHNsJyksXG4gICAgICAgIGZzOiBnbHNsaWZ5KCcuL3NjYXR0ZXJwbG90LWxheWVyLWZyYWdtZW50Lmdsc2wnKSxcbiAgICAgICAgaWQ6ICdzY2F0dGVycGxvdCdcbiAgICAgIH0pLFxuICAgICAgZ2VvbWV0cnk6IG5ldyBHZW9tZXRyeSh7XG4gICAgICAgIGRyYXdNb2RlOiAnVFJJQU5HTEVfRkFOJyxcbiAgICAgICAgcG9zaXRpb25zOiBuZXcgRmxvYXQzMkFycmF5KHBvc2l0aW9ucylcbiAgICAgIH0pLFxuICAgICAgaXNJbnN0YW5jZWQ6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZVVuaWZvcm1zKCkge1xuICAgIHRoaXMuY2FsY3VsYXRlUmFkaXVzKCk7XG4gICAgY29uc3Qge3JhZGl1c30gPSB0aGlzLnN0YXRlO1xuICAgIHRoaXMuc2V0VW5pZm9ybXMoe1xuICAgICAgcmFkaXVzXG4gICAgfSk7XG4gIH1cblxuICBjYWxjdWxhdGVJbnN0YW5jZVBvc2l0aW9ucyhhdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB7ZGF0YX0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHt2YWx1ZSwgc2l6ZX0gPSBhdHRyaWJ1dGU7XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgcG9pbnQgb2YgZGF0YSkge1xuICAgICAgdmFsdWVbaSArIDBdID0gcG9pbnQucG9zaXRpb24ueDtcbiAgICAgIHZhbHVlW2kgKyAxXSA9IHBvaW50LnBvc2l0aW9uLnk7XG4gICAgICB2YWx1ZVtpICsgMl0gPSBwb2ludC5wb3NpdGlvbi56O1xuICAgICAgaSArPSBzaXplO1xuICAgIH1cbiAgfVxuXG4gIGNhbGN1bGF0ZUluc3RhbmNlQ29sb3JzKGF0dHJpYnV0ZSkge1xuICAgIGNvbnN0IHtkYXRhfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge3ZhbHVlLCBzaXplfSA9IGF0dHJpYnV0ZTtcbiAgICBsZXQgaSA9IDA7XG4gICAgZm9yIChjb25zdCBwb2ludCBvZiBkYXRhKSB7XG4gICAgICB2YWx1ZVtpICsgMF0gPSBwb2ludC5jb2xvclswXTtcbiAgICAgIHZhbHVlW2kgKyAxXSA9IHBvaW50LmNvbG9yWzFdO1xuICAgICAgdmFsdWVbaSArIDJdID0gcG9pbnQuY29sb3JbMl07XG4gICAgICBpICs9IHNpemU7XG4gICAgfVxuICB9XG5cbiAgY2FsY3VsYXRlUmFkaXVzKCkge1xuICAgIC8vIHVzZSByYWRpdXMgaWYgc3BlY2lmaWVkXG4gICAgaWYgKHRoaXMucHJvcHMucmFkaXVzKSB7XG4gICAgICB0aGlzLnN0YXRlLnJhZGl1cyA9IHRoaXMucHJvcHMucmFkaXVzO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBpeGVsMCA9IHRoaXMucHJvamVjdCh7bG9uOiAtMTIyLCBsYXQ6IDM3LjV9KTtcbiAgICBjb25zdCBwaXhlbDEgPSB0aGlzLnByb2plY3Qoe2xvbjogLTEyMiwgbGF0OiAzNy41MDAyfSk7XG5cbiAgICBjb25zdCBkeCA9IHBpeGVsMC54IC0gcGl4ZWwxLng7XG4gICAgY29uc3QgZHkgPSBwaXhlbDAueSAtIHBpeGVsMS55O1xuXG4gICAgdGhpcy5zdGF0ZS5yYWRpdXMgPSBNYXRoLm1heChNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkpLCAyLjApO1xuICB9XG5cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvc2NhdHRlcnBsb3QtbGF5ZXIvc2NhdHRlcnBsb3QtbGF5ZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFvQkE7Ozs7QUFDQTs7Ozs7Ozs7Ozs4ZUFyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBSUEsSUFBTSxVQUFVLFFBQVEsU0FBUixDQUFoQjs7QUFFQSxJQUFNLGFBQWE7QUFDakIscUJBQW1CLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxHQUFmLEVBQW9CLEtBQUssR0FBekIsRUFBOEIsS0FBSyxRQUFuQyxFQURGO0FBRWpCLGtCQUFnQixFQUFDLE1BQU0sQ0FBUCxFQUFVLEtBQUssS0FBZixFQUFzQixLQUFLLE9BQTNCLEVBQW9DLEtBQUssTUFBekM7QUFGQyxDQUFuQjs7SUFLcUIsZ0I7Ozs7O3dCQUVLO0FBQ3RCLGFBQU8sVUFBUDtBQUNEOztBQUVEOzs7Ozs7Ozs7OztBQVFBLDRCQUFZLEtBQVosRUFBbUI7QUFBQTs7QUFBQSwrRkFDWCxLQURXO0FBRWxCOzs7O3NDQUVpQjtBQUFBLFVBQ1QsRUFEUyxHQUNILEtBQUssS0FERixDQUNULEVBRFM7QUFBQSxVQUVULGdCQUZTLEdBRVcsS0FBSyxLQUZoQixDQUVULGdCQUZTOzs7QUFJaEIsV0FBSyxRQUFMLENBQWM7QUFDWixlQUFPLEtBQUssUUFBTCxDQUFjLEVBQWQ7QUFESyxPQUFkOztBQUlBLHVCQUFpQixZQUFqQixDQUE4QixVQUE5QixFQUEwQztBQUN4QywyQkFBbUIsRUFBQyxRQUFRLEtBQUssMEJBQWQsRUFEcUI7QUFFeEMsd0JBQWdCLEVBQUMsUUFBUSxLQUFLLHVCQUFkO0FBRndCLE9BQTFDO0FBSUQ7OzsrQkFFVTtBQUNULFdBQUssY0FBTDtBQUNEOzs7cUNBRWdCLFEsRUFBVSxRLEVBQVU7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QUssT0FBTCxDQUFhLEVBQUMsS0FBSyxDQUFDLEdBQVAsRUFBWSxLQUFLLE9BQWpCLEVBQWIsQ0FBZjs7QUFFQSxVQUFNLEtBQUssT0FBTyxDQUFQLEdBQVcsT0FBTyxDQUE3QjtBQUNBLFVBQU0sS0FBSyxPQUFPLENBQVAsR0FBVyxPQUFPLENBQTdCOztBQUVBLFdBQUssS0FBTCxDQUFXLE1BQVgsR0FBb0IsS0FBSyxHQUFMLENBQVMsS0FBSyxJQUFMLENBQVUsS0FBSyxFQUFMLEdBQVUsS0FBSyxFQUF6QixDQUFULEVBQXVDLEdBQXZDLENBQXBCO0FBQ0Q7Ozs7OztrQkFuSGtCLGdCIiwiZmlsZSI6InNjYXR0ZXJwbG90LWxheWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDE1IFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IExheWVyIGZyb20gJy4uLy4uL2xheWVyJztcbmltcG9ydCB7TW9kZWwsIFByb2dyYW0sIEdlb21ldHJ5fSBmcm9tICdsdW1hLmdsJztcbmNvbnN0IGdsc2xpZnkgPSByZXF1aXJlKCdnbHNsaWZ5Jyk7XG5cbmNvbnN0IEFUVFJJQlVURVMgPSB7XG4gIGluc3RhbmNlUG9zaXRpb25zOiB7c2l6ZTogMywgJzAnOiAneCcsICcxJzogJ3knLCAnMic6ICd1bnVzZWQnfSxcbiAgaW5zdGFuY2VDb2xvcnM6IHtzaXplOiAzLCAnMCc6ICdyZWQnLCAnMSc6ICdncmVlbicsICcyJzogJ2JsdWUnfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2NhdHRlcnBsb3RMYXllciBleHRlbmRzIExheWVyIHtcblxuICBzdGF0aWMgZ2V0IGF0dHJpYnV0ZXMoKSB7XG4gICAgcmV0dXJuIEFUVFJJQlVURVM7XG4gIH1cblxuICAvKlxuICAgKiBAY2xhc3NkZXNjXG4gICAqIFNjYXR0ZXJwbG90TGF5ZXJcbiAgICpcbiAgICogQGNsYXNzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICAgKiBAcGFyYW0ge251bWJlcn0gcHJvcHMucmFkaXVzIC0gcG9pbnQgcmFkaXVzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcbiAgICBjb25zdCB7Z2x9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB7YXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBtb2RlbDogdGhpcy5nZXRNb2RlbChnbClcbiAgICB9KTtcblxuICAgIGF0dHJpYnV0ZU1hbmFnZXIuYWRkSW5zdGFuY2VkKEFUVFJJQlVURVMsIHtcbiAgICAgIGluc3RhbmNlUG9zaXRpb25zOiB7dXBkYXRlOiB0aGlzLmNhbGN1bGF0ZUluc3RhbmNlUG9zaXRpb25zfSxcbiAgICAgIGluc3RhbmNlQ29sb3JzOiB7dXBkYXRlOiB0aGlzLmNhbGN1bGF0ZUluc3RhbmNlQ29sb3JzfVxuICAgIH0pO1xuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgdGhpcy51cGRhdGVVbmlmb3JtcygpO1xuICB9XG5cbiAgd2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpIHtcbiAgICBzdXBlci53aWxsUmVjZWl2ZVByb3BzKG9sZFByb3BzLCBuZXdQcm9wcyk7XG4gICAgdGhpcy51cGRhdGVVbmlmb3JtcygpO1xuICB9XG5cbiAgZ2V0TW9kZWwoZ2wpIHtcbiAgICBjb25zdCBOVU1fU0VHTUVOVFMgPSAxNjtcbiAgICBjb25zdCBQSTIgPSBNYXRoLlBJICogMjtcblxuICAgIGxldCBwb3NpdGlvbnMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IE5VTV9TRUdNRU5UUzsgaSsrKSB7XG4gICAgICBwb3NpdGlvbnMgPSBbXG4gICAgICAgIC4uLnBvc2l0aW9ucyxcbiAgICAgICAgTWF0aC5jb3MoUEkyICogaSAvIE5VTV9TRUdNRU5UUyksXG4gICAgICAgIE1hdGguc2luKFBJMiAqIGkgLyBOVU1fU0VHTUVOVFMpLFxuICAgICAgICAwXG4gICAgICBdO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgTW9kZWwoe1xuICAgICAgcHJvZ3JhbTogbmV3IFByb2dyYW0oZ2wsIHtcbiAgICAgICAgdnM6IGdsc2xpZnkoJy4vc2NhdHRlcnBsb3QtbGF5ZXItdmVydGV4Lmdsc2wnKSxcbiAgICAgICAgZnM6IGdsc2xpZnkoJy4vc2NhdHRlcnBsb3QtbGF5ZXItZnJhZ21lbnQuZ2xzbCcpLFxuICAgICAgICBpZDogJ3NjYXR0ZXJwbG90J1xuICAgICAgfSksXG4gICAgICBnZW9tZXRyeTogbmV3IEdlb21ldHJ5KHtcbiAgICAgICAgZHJhd01vZGU6ICdUUklBTkdMRV9GQU4nLFxuICAgICAgICBwb3NpdGlvbnM6IG5ldyBGbG9hdDMyQXJyYXkocG9zaXRpb25zKVxuICAgICAgfSksXG4gICAgICBpc0luc3RhbmNlZDogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlVW5pZm9ybXMoKSB7XG4gICAgdGhpcy5jYWxjdWxhdGVSYWRpdXMoKTtcbiAgICBjb25zdCB7cmFkaXVzfSA9IHRoaXMuc3RhdGU7XG4gICAgdGhpcy5zZXRVbmlmb3Jtcyh7XG4gICAgICByYWRpdXNcbiAgICB9KTtcbiAgfVxuXG4gIGNhbGN1bGF0ZUluc3RhbmNlUG9zaXRpb25zKGF0dHJpYnV0ZSkge1xuICAgIGNvbnN0IHtkYXRhfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge3ZhbHVlLCBzaXplfSA9IGF0dHJpYnV0ZTtcbiAgICBsZXQgaSA9IDA7XG4gICAgZm9yIChjb25zdCBwb2ludCBvZiBkYXRhKSB7XG4gICAgICB2YWx1ZVtpICsgMF0gPSBwb2ludC5wb3NpdGlvbi54O1xuICAgICAgdmFsdWVbaSArIDFdID0gcG9pbnQucG9zaXRpb24ueTtcbiAgICAgIHZhbHVlW2kgKyAyXSA9IHBvaW50LnBvc2l0aW9uLno7XG4gICAgICBpICs9IHNpemU7XG4gICAgfVxuICB9XG5cbiAgY2FsY3VsYXRlSW5zdGFuY2VDb2xvcnMoYXR0cmlidXRlKSB7XG4gICAgY29uc3Qge2RhdGF9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7dmFsdWUsIHNpemV9ID0gYXR0cmlidXRlO1xuICAgIGxldCBpID0gMDtcbiAgICBmb3IgKGNvbnN0IHBvaW50IG9mIGRhdGEpIHtcbiAgICAgIHZhbHVlW2kgKyAwXSA9IHBvaW50LmNvbG9yWzBdO1xuICAgICAgdmFsdWVbaSArIDFdID0gcG9pbnQuY29sb3JbMV07XG4gICAgICB2YWx1ZVtpICsgMl0gPSBwb2ludC5jb2xvclsyXTtcbiAgICAgIGkgKz0gc2l6ZTtcbiAgICB9XG4gIH1cblxuICBjYWxjdWxhdGVSYWRpdXMoKSB7XG4gICAgLy8gdXNlIHJhZGl1cyBpZiBzcGVjaWZpZWRcbiAgICBpZiAodGhpcy5wcm9wcy5yYWRpdXMpIHtcbiAgICAgIHRoaXMuc3RhdGUucmFkaXVzID0gdGhpcy5wcm9wcy5yYWRpdXM7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGl4ZWwwID0gdGhpcy5wcm9qZWN0KHtsb246IC0xMjIsIGxhdDogMzcuNX0pO1xuICAgIGNvbnN0IHBpeGVsMSA9IHRoaXMucHJvamVjdCh7bG9uOiAtMTIyLCBsYXQ6IDM3LjUwMDJ9KTtcblxuICAgIGNvbnN0IGR4ID0gcGl4ZWwwLnggLSBwaXhlbDEueDtcbiAgICBjb25zdCBkeSA9IHBpeGVsMC55IC0gcGl4ZWwxLnk7XG5cbiAgICB0aGlzLnN0YXRlLnJhZGl1cyA9IE1hdGgubWF4KE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSksIDIuMCk7XG4gIH1cblxufVxuIl19

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

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sb2cuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7a0JBSXdCLEc7O0FBRnhCOzs7Ozs7QUFFZSxTQUFTLEdBQVQsQ0FBYSxRQUFiLEVBQWdDO0FBQzdDLHdCQUFPLE9BQU8sUUFBUCxLQUFvQixRQUEzQjtBQUNBLE1BQUksWUFBWSxJQUFJLFFBQXBCLEVBQThCO0FBQUE7O0FBQUEsc0NBRlMsSUFFVDtBQUZTLFVBRVQ7QUFBQTs7QUFDNUIseUJBQVEsS0FBUixpQkFBaUIsSUFBakI7QUFDRDtBQUNGLEM7Ozs7QUFFRCxJQUFJLFFBQUosR0FBZSxDQUFmOzs7QUFHQSxJQUFJLE9BQU8sTUFBUCxLQUFrQixXQUF0QixFQUFtQztBQUNqQyxTQUFPLEdBQVAsR0FBYSxHQUFiO0FBQ0QiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuLyogZ2xvYmFsIGNvbnNvbGUsIHdpbmRvdyAqL1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBsb2cocHJpb3JpdHksIC4uLmFyZ3MpIHtcbiAgYXNzZXJ0KHR5cGVvZiBwcmlvcml0eSA9PT0gJ251bWJlcicpO1xuICBpZiAocHJpb3JpdHkgPD0gbG9nLnByaW9yaXR5KSB7XG4gICAgY29uc29sZS5kZWJ1ZyguLi5hcmdzKTtcbiAgfVxufVxuXG5sb2cucHJpb3JpdHkgPSAwO1xuXG4vLyBFeHBvc2UgdG8gYnJvd3NlclxuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gIHdpbmRvdy5sb2cgPSBsb2c7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sb2cuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7a0JBSXdCLEc7O0FBRnhCOzs7Ozs7QUFFZSxTQUFTLEdBQVQsQ0FBYSxRQUFiLEVBQWdDO0FBQzdDLHdCQUFPLE9BQU8sUUFBUCxLQUFvQixRQUEzQjtBQUNBLE1BQUksWUFBWSxJQUFJLFFBQXBCLEVBQThCO0FBQUE7O0FBQUEsc0NBRlMsSUFFVDtBQUZTLFVBRVQ7QUFBQTs7QUFDNUIseUJBQVEsS0FBUixpQkFBaUIsSUFBakI7QUFDRDtBQUNGLENBVEQ7QUFDQTs7O0FBVUEsSUFBSSxRQUFKLEdBQWUsQ0FBZjs7QUFFQTtBQUNBLElBQUksT0FBTyxNQUFQLEtBQWtCLFdBQXRCLEVBQW1DO0FBQ2pDLFNBQU8sR0FBUCxHQUFhLEdBQWI7QUFDRCIsImZpbGUiOiJsb2cuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG4vKiBnbG9iYWwgY29uc29sZSwgd2luZG93ICovXG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxvZyhwcmlvcml0eSwgLi4uYXJncykge1xuICBhc3NlcnQodHlwZW9mIHByaW9yaXR5ID09PSAnbnVtYmVyJyk7XG4gIGlmIChwcmlvcml0eSA8PSBsb2cucHJpb3JpdHkpIHtcbiAgICBjb25zb2xlLmRlYnVnKC4uLmFyZ3MpO1xuICB9XG59XG5cbmxvZy5wcmlvcml0eSA9IDA7XG5cbi8vIEV4cG9zZSB0byBicm93c2VyXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgd2luZG93LmxvZyA9IGxvZztcbn1cbiJdfQ==

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

exports.default = Matrix4;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRoL21hdHJpeDQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O1FBT2dCLFMsR0FBQSxTOztBQVBoQjs7Ozs7O0FBR0EsU0FBUyxTQUFULEdBQXFCO0FBQ25CLFFBQU0sSUFBSSxLQUFKLENBQVUsaUJBQVYsQ0FBTjtBQUNEOztBQUVNLFNBQVMsU0FBVCxDQUFtQixHQUFuQixFQUF3QjtBQUM3QixTQUFPLElBQUksS0FBSixHQUFZLElBQUksS0FBaEIsR0FBd0IsR0FBL0I7QUFDRDs7SUFFb0IsTztBQUVuQixxQkFBMEI7QUFBQSxRQUFkLEtBQWMseURBQU4sSUFBTTs7QUFBQTs7QUFDeEIsU0FBSyxLQUFMLEdBQWEsU0FBUyxlQUFLLE1BQUwsRUFBdEI7QUFDQSxXQUFPLElBQVAsQ0FBWSxJQUFaO0FBQ0Q7Ozs7d0JBR0MsRyxFQUFLLEcsRUFBSyxHLEVBQUssRyxFQUNmLEcsRUFBSyxHLEVBQUssRyxFQUFLLEcsRUFDZixHLEVBQUssRyxFQUFLLEcsRUFBSyxHLEVBQ2YsRyxFQUFLLEcsRUFBSyxHLEVBQUssRyxFQUNmO0FBQ0EscUJBQUssR0FBTCxDQUNFLEtBQUssS0FEUCxFQUVFLEdBRkYsRUFFTyxHQUZQLEVBRVksR0FGWixFQUVpQixHQUZqQixFQUdFLEdBSEYsRUFHTyxHQUhQLEVBR1ksR0FIWixFQUdpQixHQUhqQixFQUlFLEdBSkYsRUFJTyxHQUpQLEVBSVksR0FKWixFQUlpQixHQUpqQixFQUtFLEdBTEYsRUFLTyxHQUxQLEVBS1ksR0FMWixFQUtpQixHQUxqQjtBQU9BLGFBQU8sSUFBUDtBQUNEOzs7eUJBRUksRyxFQUFLO0FBQ1IscUJBQUssSUFBTCxDQUFVLEtBQUssS0FBZixFQUFzQixJQUFJLEtBQTFCO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7Ozs0QkFFTztBQUNOLGFBQU8sSUFBSSxPQUFKLEdBQWMsSUFBZCxDQUFtQixJQUFuQixDQUFQO0FBQ0Q7Ozs7OzsrQkFJVTtBQUNULHFCQUFLLFFBQUwsQ0FBYyxLQUFLLEtBQW5CO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7OztrQ0FFOEM7QUFBQSxVQUF0QyxJQUFzQyxRQUF0QyxJQUFzQztBQUFBLFVBQWhDLEtBQWdDLFFBQWhDLEtBQWdDO0FBQUEsVUFBekIsTUFBeUIsUUFBekIsTUFBeUI7QUFBQSxVQUFqQixHQUFpQixRQUFqQixHQUFpQjtBQUFBLFVBQVosSUFBWSxRQUFaLElBQVk7QUFBQSxVQUFOLEdBQU0sUUFBTixHQUFNOztBQUM3QyxxQkFBSyxPQUFMLENBQWEsS0FBSyxLQUFsQixFQUF5QixJQUF6QixFQUErQixLQUEvQixFQUFzQyxNQUF0QyxFQUE4QyxHQUE5QyxFQUFtRCxJQUFuRCxFQUF5RCxHQUF6RDtBQUNBLGFBQU8sSUFBUDtBQUNEOzs7Ozs7a0NBSWE7QUFDWixhQUFPLGVBQUssV0FBTCxDQUFpQixLQUFLLEtBQXRCLENBQVA7QUFDRDs7O2tDQUVhLENBQ2I7Ozs7OztnQ0FJVztBQUNWLHFCQUFLLFNBQUwsQ0FBZSxLQUFLLEtBQXBCLEVBQTJCLEtBQUssS0FBaEM7QUFDQSxhQUFPLElBQVA7QUFDRDs7OzZCQUVRO0FBQ1AscUJBQUssTUFBTCxDQUFZLEtBQUssS0FBakIsRUFBd0IsS0FBSyxLQUE3QjtBQUNBLGFBQU8sSUFBUDtBQUNEOzs7OEJBRVM7QUFDUixxQkFBSyxPQUFMLENBQWEsS0FBSyxLQUFsQixFQUF5QixLQUFLLEtBQTlCO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7Ozs7Ozs7Ozs7Ozs4QkFVUyxHLEVBQUs7QUFDYixVQUFNLFFBQVEsVUFBVSxHQUFWLENBQWQ7QUFDQSxxQkFBSyxPQUFMLENBQWEsS0FBSyxLQUFsQixFQUF5QixLQUF6QjtBQUNBLGFBQU8sSUFBUDtBQUNEOzs7OEJBRVMsTSxFQUFRO0FBQ2hCLFVBQU0sUUFBUSxVQUFVLE1BQVYsQ0FBZDtBQUNBLHFCQUFLLGFBQUwsQ0FBbUIsS0FBbkIsRUFBMEIsS0FBMUIsRUFBaUMsS0FBSyxLQUF0QztBQUNEOzs7Ozs7a0JBdkZrQixPIiwiZmlsZSI6Im1hdHJpeDQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge21hdDQsIHZlYzN9IGZyb20gJ2dsLW1hdHJpeCc7XG4vLyBpbXBvcnQge2dldFZlY3Rvcn0gZnJvbSAnLi92ZWN0b3IzJztcblxuZnVuY3Rpb24gZ2V0VmVjdG9yKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWF0cml4KG1hdCkge1xuICByZXR1cm4gbWF0LmdsbWF0ID8gbWF0LmdsbWF0IDogbWF0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNYXRyaXg0IHtcblxuICBjb25zdHJ1Y3RvcihhcnJheSA9IG51bGwpIHtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXkgfHwgbWF0NC5jcmVhdGUoKTtcbiAgICBPYmplY3Quc2VhbCh0aGlzKTtcbiAgfVxuXG4gIHNldChcbiAgICBuMTEsIG4xMiwgbjEzLCBuMTQsXG4gICAgbjIxLCBuMjIsIG4yMywgbjI0LFxuICAgIG4zMSwgbjMyLCBuMzMsIG4zNCxcbiAgICBuNDEsIG40MiwgbjQzLCBuNDRcbiAgKSB7XG4gICAgbWF0NC5zZXQoXG4gICAgICB0aGlzLmFycmF5LFxuICAgICAgbjExLCBuMTIsIG4xMywgbjE0LFxuICAgICAgbjIxLCBuMjIsIG4yMywgbjI0LFxuICAgICAgbjMxLCBuMzIsIG4zMywgbjM0LFxuICAgICAgbjQxLCBuNDIsIG40MywgbjQ0XG4gICAgKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNvcHkobWF0KSB7XG4gICAgbWF0NC5jb3B5KHRoaXMuYXJyYXksIG1hdC5hcnJheSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjbG9uZSgpIHtcbiAgICByZXR1cm4gbmV3IE1hdHJpeDQoKS5jb3B5KHRoaXMpO1xuICB9XG5cbiAgLy8gQ29uc3RydWN0b3JzXG5cbiAgaWRlbnRpdHkoKSB7XG4gICAgbWF0NC5pZGVudGl0eSh0aGlzLmFycmF5KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGZydXN0dW0oe2xlZnQsIHJpZ2h0LCBib3R0b20sIHRvcCwgbmVhciwgZmFyfSkge1xuICAgIG1hdDQuZnJ1c3R1bSh0aGlzLmFycmF5LCBsZWZ0LCByaWdodCwgYm90dG9tLCB0b3AsIG5lYXIsIGZhcik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBBY2Nlc3NvcnNcblxuICBkZXRlcm1pbmFudCgpIHtcbiAgICByZXR1cm4gbWF0NC5kZXRlcm1pbmFudCh0aGlzLmFycmF5KTtcbiAgfVxuXG4gIGdldFJvdGF0aW9uKCkge1xuICB9XG5cbiAgLy8gTW9kaWZpZXJzXG5cbiAgdHJhbnNwb3NlKCkge1xuICAgIG1hdDQudHJhbnNwb3NlKHRoaXMuYXJyYXksIHRoaXMuYXJyYXkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgaW52ZXJ0KCkge1xuICAgIG1hdDQuaW52ZXJ0KHRoaXMuYXJyYXksIHRoaXMuYXJyYXkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYWRqb2ludCgpIHtcbiAgICBtYXQ0LmFkam9pbnQodGhpcy5hcnJheSwgdGhpcy5hcnJheSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBzdGF0aWMgbXVsdGlwbHkoLi4ubWF0cmljZXMpIHtcbiAgLy8gICBjb25zdCByZXN1bHQgPSBuZXcgTWF0NCgpO1xuICAvLyAgIGZvciAoY29uc3QgbWF0IG9mIG1hdHJpY2VzKSB7XG4gIC8vICAgICByZXR1cm4gbWF0NC5tdWx0aXBseShyZXN1bHQuYXJyYXksIG1hdC5hcnJheSk7XG4gIC8vICAgfVxuICAvLyAgIHJldHVybiByZXN1bHQ7XG4gIC8vIH1cblxuICB0cmFuc2xhdGUodmVjKSB7XG4gICAgY29uc3QgZ2x2ZWMgPSBnZXRWZWN0b3IodmVjKTtcbiAgICBtYXQ0LmFkam9pbnQodGhpcy5hcnJheSwgZ2x2ZWMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdHJhbnNmb3JtKHZlY3Rvcikge1xuICAgIGNvbnN0IGdsdmVjID0gZ2V0VmVjdG9yKHZlY3Rvcik7XG4gICAgdmVjMy50cmFuc2Zvcm1NYXQ0KGdsdmVjLCBnbHZlYywgdGhpcy5nbG1hdCk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRoL21hdHJpeDQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O1FBT2dCLFMsR0FBQSxTOztBQVBoQjs7OztBQUNBOztBQUVBLFNBQVMsU0FBVCxHQUFxQjtBQUNuQixRQUFNLElBQUksS0FBSixDQUFVLGlCQUFWLENBQU47QUFDRDs7QUFFTSxTQUFTLFNBQVQsQ0FBbUIsR0FBbkIsRUFBd0I7QUFDN0IsU0FBTyxJQUFJLEtBQUosR0FBWSxJQUFJLEtBQWhCLEdBQXdCLEdBQS9CO0FBQ0Q7O0lBRW9CLE87QUFFbkIscUJBQTBCO0FBQUEsUUFBZCxLQUFjLHlEQUFOLElBQU07O0FBQUE7O0FBQ3hCLFNBQUssS0FBTCxHQUFhLFNBQVMsZUFBSyxNQUFMLEVBQXRCO0FBQ0EsV0FBTyxJQUFQLENBQVksSUFBWjtBQUNEOzs7O3dCQUdDLEcsRUFBSyxHLEVBQUssRyxFQUFLLEcsRUFDZixHLEVBQUssRyxFQUFLLEcsRUFBSyxHLEVBQ2YsRyxFQUFLLEcsRUFBSyxHLEVBQUssRyxFQUNmLEcsRUFBSyxHLEVBQUssRyxFQUFLLEcsRUFDZjtBQUNBLHFCQUFLLEdBQUwsQ0FDRSxLQUFLLEtBRFAsRUFFRSxHQUZGLEVBRU8sR0FGUCxFQUVZLEdBRlosRUFFaUIsR0FGakIsRUFHRSxHQUhGLEVBR08sR0FIUCxFQUdZLEdBSFosRUFHaUIsR0FIakIsRUFJRSxHQUpGLEVBSU8sR0FKUCxFQUlZLEdBSlosRUFJaUIsR0FKakIsRUFLRSxHQUxGLEVBS08sR0FMUCxFQUtZLEdBTFosRUFLaUIsR0FMakI7QUFPQSxhQUFPLElBQVA7QUFDRDs7O3lCQUVJLEcsRUFBSztBQUNSLHFCQUFLLElBQUwsQ0FBVSxLQUFLLEtBQWYsRUFBc0IsSUFBSSxLQUExQjtBQUNBLGFBQU8sSUFBUDtBQUNEOzs7NEJBRU87QUFDTixhQUFPLElBQUksT0FBSixHQUFjLElBQWQsQ0FBbUIsSUFBbkIsQ0FBUDtBQUNEOztBQUVEOzs7OytCQUVXO0FBQ1QscUJBQUssUUFBTCxDQUFjLEtBQUssS0FBbkI7QUFDQSxhQUFPLElBQVA7QUFDRDs7O2tDQUU4QztBQUFBLFVBQXRDLElBQXNDLFFBQXRDLElBQXNDO0FBQUEsVUFBaEMsS0FBZ0MsUUFBaEMsS0FBZ0M7QUFBQSxVQUF6QixNQUF5QixRQUF6QixNQUF5QjtBQUFBLFVBQWpCLEdBQWlCLFFBQWpCLEdBQWlCO0FBQUEsVUFBWixJQUFZLFFBQVosSUFBWTtBQUFBLFVBQU4sR0FBTSxRQUFOLEdBQU07O0FBQzdDLHFCQUFLLE9BQUwsQ0FBYSxLQUFLLEtBQWxCLEVBQXlCLElBQXpCLEVBQStCLEtBQS9CLEVBQXNDLE1BQXRDLEVBQThDLEdBQTlDLEVBQW1ELElBQW5ELEVBQXlELEdBQXpEO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7O0FBRUQ7Ozs7a0NBRWM7QUFDWixhQUFPLGVBQUssV0FBTCxDQUFpQixLQUFLLEtBQXRCLENBQVA7QUFDRDs7O2tDQUVhLENBQ2I7O0FBRUQ7Ozs7Z0NBRVk7QUFDVixxQkFBSyxTQUFMLENBQWUsS0FBSyxLQUFwQixFQUEyQixLQUFLLEtBQWhDO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7Ozs2QkFFUTtBQUNQLHFCQUFLLE1BQUwsQ0FBWSxLQUFLLEtBQWpCLEVBQXdCLEtBQUssS0FBN0I7QUFDQSxhQUFPLElBQVA7QUFDRDs7OzhCQUVTO0FBQ1IscUJBQUssT0FBTCxDQUFhLEtBQUssS0FBbEIsRUFBeUIsS0FBSyxLQUE5QjtBQUNBLGFBQU8sSUFBUDtBQUNEOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OzhCQUVVLEcsRUFBSztBQUNiLFVBQU0sUUFBUSxVQUFVLEdBQVYsQ0FBZDtBQUNBLHFCQUFLLE9BQUwsQ0FBYSxLQUFLLEtBQWxCLEVBQXlCLEtBQXpCO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7Ozs4QkFFUyxNLEVBQVE7QUFDaEIsVUFBTSxRQUFRLFVBQVUsTUFBVixDQUFkO0FBQ0EscUJBQUssYUFBTCxDQUFtQixLQUFuQixFQUEwQixLQUExQixFQUFpQyxLQUFLLEtBQXRDO0FBQ0Q7Ozs7OztrQkF2RmtCLE8iLCJmaWxlIjoibWF0cml4NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7bWF0NCwgdmVjM30gZnJvbSAnZ2wtbWF0cml4Jztcbi8vIGltcG9ydCB7Z2V0VmVjdG9yfSBmcm9tICcuL3ZlY3RvcjMnO1xuXG5mdW5jdGlvbiBnZXRWZWN0b3IoKSB7XG4gIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXRyaXgobWF0KSB7XG4gIHJldHVybiBtYXQuZ2xtYXQgPyBtYXQuZ2xtYXQgOiBtYXQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1hdHJpeDQge1xuXG4gIGNvbnN0cnVjdG9yKGFycmF5ID0gbnVsbCkge1xuICAgIHRoaXMuYXJyYXkgPSBhcnJheSB8fCBtYXQ0LmNyZWF0ZSgpO1xuICAgIE9iamVjdC5zZWFsKHRoaXMpO1xuICB9XG5cbiAgc2V0KFxuICAgIG4xMSwgbjEyLCBuMTMsIG4xNCxcbiAgICBuMjEsIG4yMiwgbjIzLCBuMjQsXG4gICAgbjMxLCBuMzIsIG4zMywgbjM0LFxuICAgIG40MSwgbjQyLCBuNDMsIG40NFxuICApIHtcbiAgICBtYXQ0LnNldChcbiAgICAgIHRoaXMuYXJyYXksXG4gICAgICBuMTEsIG4xMiwgbjEzLCBuMTQsXG4gICAgICBuMjEsIG4yMiwgbjIzLCBuMjQsXG4gICAgICBuMzEsIG4zMiwgbjMzLCBuMzQsXG4gICAgICBuNDEsIG40MiwgbjQzLCBuNDRcbiAgICApO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY29weShtYXQpIHtcbiAgICBtYXQ0LmNvcHkodGhpcy5hcnJheSwgbWF0LmFycmF5KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgTWF0cml4NCgpLmNvcHkodGhpcyk7XG4gIH1cblxuICAvLyBDb25zdHJ1Y3RvcnNcblxuICBpZGVudGl0eSgpIHtcbiAgICBtYXQ0LmlkZW50aXR5KHRoaXMuYXJyYXkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZnJ1c3R1bSh7bGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wLCBuZWFyLCBmYXJ9KSB7XG4gICAgbWF0NC5mcnVzdHVtKHRoaXMuYXJyYXksIGxlZnQsIHJpZ2h0LCBib3R0b20sIHRvcCwgbmVhciwgZmFyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIEFjY2Vzc29yc1xuXG4gIGRldGVybWluYW50KCkge1xuICAgIHJldHVybiBtYXQ0LmRldGVybWluYW50KHRoaXMuYXJyYXkpO1xuICB9XG5cbiAgZ2V0Um90YXRpb24oKSB7XG4gIH1cblxuICAvLyBNb2RpZmllcnNcblxuICB0cmFuc3Bvc2UoKSB7XG4gICAgbWF0NC50cmFuc3Bvc2UodGhpcy5hcnJheSwgdGhpcy5hcnJheSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBpbnZlcnQoKSB7XG4gICAgbWF0NC5pbnZlcnQodGhpcy5hcnJheSwgdGhpcy5hcnJheSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhZGpvaW50KCkge1xuICAgIG1hdDQuYWRqb2ludCh0aGlzLmFycmF5LCB0aGlzLmFycmF5KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIHN0YXRpYyBtdWx0aXBseSguLi5tYXRyaWNlcykge1xuICAvLyAgIGNvbnN0IHJlc3VsdCA9IG5ldyBNYXQ0KCk7XG4gIC8vICAgZm9yIChjb25zdCBtYXQgb2YgbWF0cmljZXMpIHtcbiAgLy8gICAgIHJldHVybiBtYXQ0Lm11bHRpcGx5KHJlc3VsdC5hcnJheSwgbWF0LmFycmF5KTtcbiAgLy8gICB9XG4gIC8vICAgcmV0dXJuIHJlc3VsdDtcbiAgLy8gfVxuXG4gIHRyYW5zbGF0ZSh2ZWMpIHtcbiAgICBjb25zdCBnbHZlYyA9IGdldFZlY3Rvcih2ZWMpO1xuICAgIG1hdDQuYWRqb2ludCh0aGlzLmFycmF5LCBnbHZlYyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0cmFuc2Zvcm0odmVjdG9yKSB7XG4gICAgY29uc3QgZ2x2ZWMgPSBnZXRWZWN0b3IodmVjdG9yKTtcbiAgICB2ZWMzLnRyYW5zZm9ybU1hdDQoZ2x2ZWMsIGdsdmVjLCB0aGlzLmdsbWF0KTtcbiAgfVxufVxuIl19

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

}();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRoL3F1YXRlcm5pb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7UUFFZ0IsYSxHQUFBLGE7O0FBRmhCOzs7O0FBRU8sU0FBUyxhQUFULENBQXVCLFVBQXZCLEVBQW1DO0FBQ3hDLFNBQU8sV0FBVyxJQUFYLEdBQWtCLFdBQVcsSUFBN0IsR0FBb0MsVUFBM0M7QUFDRDs7SUFFSyxVO0FBRUosc0JBQVksTUFBWixFQUFvQjtBQUFBOztBQUNsQixTQUFLLElBQUwsR0FBWSxVQUFVLG9CQUF0QjtBQUNEOzs7Ozs7Ozs7Ozs7Ozs7OytCQWNVO0FBQ1QsYUFBTyxlQUFLLEdBQUwsQ0FBUyxLQUFLLElBQWQsQ0FBUDtBQUNEOzs7OEJBRVM7QUFDUixhQUFPLEtBQUssSUFBWjtBQUNEOzs7cUNBRWdCO0FBQ2YsYUFBTyxLQUFLLElBQVo7QUFDRDs7OzJCQUVNLFUsRUFBWTtBQUNqQixhQUFPLGVBQUssTUFBTCxDQUFZLEtBQUssSUFBakIsRUFBdUIsVUFBdkIsQ0FBUDtBQUNEOzs7Ozs7Z0NBR1csVSxFQUFZO0FBQ3RCLGFBQU8sZUFBSyxXQUFMLENBQWlCLEtBQUssSUFBdEIsRUFBNEIsVUFBNUIsQ0FBUDtBQUNEOzs7Ozs7Ozs7MEJBd0NLO0FBQ0osYUFBTyxlQUFLLEdBQUwsQ0FBUyxLQUFLLElBQWQsQ0FBUDtBQUNEOzs7Ozs7NkJBR1E7QUFDUCxhQUFPLGVBQUssTUFBTCxDQUFZLEtBQUssSUFBakIsQ0FBUDtBQUNEOzs7Ozs7a0NBR2EsQyxFQUFHLENBRWhCOzs7Ozs7Ozs2QkFHUSxDQUVSOzs7Ozs7OzsrQkFHVSxPLEVBQVMsTyxFQUFTO0FBQzNCLHFCQUFLLFVBQUwsQ0FBZ0IsS0FBSyxJQUFyQixFQUEyQixPQUEzQixFQUFvQyxPQUFwQztBQUNEOzs7Ozs7OEJBR1M7QUFDUjtBQUNEOzs7Ozs7NkJBR1E7QUFDUDtBQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3dCQXJFTztBQUNOLGFBQU8sS0FBSyxJQUFMLENBQVUsQ0FBVixDQUFQO0FBQ0QsSztzQkFFSyxLLEVBQU87QUFDWCxXQUFLLElBQUwsQ0FBVSxDQUFWLElBQWUsS0FBZjtBQUNBLGFBQU8sSUFBUDtBQUNEOzs7d0JBRU87QUFDTixhQUFPLEtBQUssSUFBTCxDQUFVLENBQVYsQ0FBUDtBQUNELEs7c0JBRUssSyxFQUFPO0FBQ1gsV0FBSyxJQUFMLENBQVUsQ0FBVixJQUFlLEtBQWY7QUFDQSxhQUFPLElBQVA7QUFDRDs7O3dCQUVPO0FBQ04sYUFBTyxLQUFLLElBQUwsQ0FBVSxDQUFWLENBQVA7QUFDRCxLO3NCQUVLLEssRUFBTztBQUNYLFdBQUssSUFBTCxDQUFVLENBQVYsSUFBZSxLQUFmO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7Ozt3QkFFTztBQUNOLGFBQU8sS0FBSyxJQUFMLENBQVUsQ0FBVixDQUFQO0FBQ0QsSztzQkFFSyxLLEVBQU87QUFDWCxXQUFLLElBQUwsQ0FBVSxDQUFWLElBQWUsS0FBZjtBQUNBLGFBQU8sSUFBUDtBQUNEIiwiZmlsZSI6InF1YXRlcm5pb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3F1YXR9IGZyb20gJ2dsLW1hdHJpeCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWF0ZXJuaW9uKHF1YXRlcm5pb24pIHtcbiAgcmV0dXJuIHF1YXRlcm5pb24ucXVhdCA/IHF1YXRlcm5pb24ucXVhdCA6IHF1YXRlcm5pb247XG59XG5cbmNsYXNzIFF1YXRlcm5pb24ge1xuXG4gIGNvbnN0cnVjdG9yKGdscXVhdCkge1xuICAgIHRoaXMucXVhdCA9IGdscXVhdCB8fCBuZXcgcXVhdCgpO1xuICB9XG5cbiAgLy8gLy8gQ3JlYXRlcyBhIG5ldyBxdWF0IGluaXRpYWxpemVkIHdpdGggdmFsdWVzIGZyb20gYW4gZXhpc3RpbmcgcXVhdGVybmlvblxuICAvLyAoc3RhdGljKSBjbG9uZShhKSDihpIge3F1YXR9XG5cbiAgLy8gLy8gQ29weSB0aGUgdmFsdWVzIGZyb20gb25lIHF1YXQgdG8gYW5vdGhlclxuICAvLyAoc3RhdGljKSBjb3B5KG91dCwgYSkg4oaSIHtxdWF0fVxuXG4gIC8vIC8vIENyZWF0ZXMgYSBuZXcgaWRlbnRpdHkgcXVhdFxuICAvLyAoc3RhdGljKSBjcmVhdGUoKSDihpIge3F1YXR9XG5cbiAgLy8gLy8gU2V0IGEgcXVhdCB0byB0aGUgaWRlbnRpdHkgcXVhdGVybmlvblxuICAvLyAoc3RhdGljKSBpZGVudGl0eShvdXQpIOKGkiB7cXVhdH1cblxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gcXVhdC5zdHIodGhpcy5xdWF0KTtcbiAgfVxuXG4gIHRvQXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMucXVhdDtcbiAgfVxuXG4gIHRvRmxvYXQzMkFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLnF1YXQ7XG4gIH1cblxuICBlcXVhbHMocXVhdGVybmlvbikge1xuICAgIHJldHVybiBxdWF0LmVxdWFscyh0aGlzLnF1YXQsIHF1YXRlcm5pb24pO1xuICB9XG5cbiAgLy8gUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgcXVhdGVybmlvbnMgaGF2ZSBleGFjdGx5IHRoZSBzYW1lIGVsZW1lbnRzIGluIHRoZSBzYW1lIHBvc2l0aW9uICh3aGVuIGNvbXBhcmVkIHdpdGggPT09KVxuICBleGFjdEVxdWFscyhxdWF0ZXJuaW9uKSB7XG4gICAgcmV0dXJuIHF1YXQuZXhhY3RFcXVhbHModGhpcy5xdWF0LCBxdWF0ZXJuaW9uKTtcbiAgfVxuXG4gIC8vIEdldHRlcnMvc2V0dGVyc1xuICBnZXQgeCgpIHtcbiAgICByZXR1cm4gdGhpcy5xdWF0WzBdO1xuICB9XG5cbiAgc2V0IHgodmFsdWUpIHtcbiAgICB0aGlzLnF1YXRbMF0gPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdldCB5KCkge1xuICAgIHJldHVybiB0aGlzLnF1YXRbMV07XG4gIH1cblxuICBzZXQgeSh2YWx1ZSkge1xuICAgIHRoaXMucXVhdFsxXSA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZ2V0IHooKSB7XG4gICAgcmV0dXJuIHRoaXMucXVhdFsyXTtcbiAgfVxuXG4gIHNldCB6KHZhbHVlKSB7XG4gICAgdGhpcy5xdWF0WzJdID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXQgdygpIHtcbiAgICByZXR1cm4gdGhpcy5xdWF0WzJdO1xuICB9XG5cbiAgc2V0IHcodmFsdWUpIHtcbiAgICB0aGlzLnF1YXRbMl0gPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIEFsaWFzIGZvciBxdWF0Lmxlbmd0aFxuICBsZW4oKSB7XG4gICAgcmV0dXJuIHF1YXQubGVuKHRoaXMucXVhdCk7XG4gIH1cblxuICAvLyBDYWxjdWxhdGVzIHRoZSBsZW5ndGggb2YgYSBxdWF0XG4gIGxlbmd0aCgpIHtcbiAgICByZXR1cm4gcXVhdC5sZW5ndGgodGhpcy5xdWF0KTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZXMgdGhlIHNxdWFyZWQgbGVuZ3RoIG9mIGEgcXVhdFxuICBzcXVhcmVkTGVuZ3RoKGEpIHtcbiAgICAvLyBOdW1iZXJcbiAgfVxuXG4gIC8vIEFsaWFzIGZvciBxdWF0LnNxdWFyZWRMZW5ndGhcbiAgc3FyTGVuKCkge1xuICAgIC8vIE51bWJlclxuICB9XG5cbiAgLy8gU2V0cyBhIHF1YXRlcm5pb24gdG8gcmVwcmVzZW50IHRoZSBzaG9ydGVzdCByb3RhdGlvbiBmcm9tIG9uZSB2ZWN0b3IgdG8gYW5vdGhlci4gQm90aCB2ZWN0b3JzIGFyZSBhc3N1bWVkIHRvIGJlIHVuaXQgbGVuZ3RoLlxuICByb3RhdGlvblRvKHZlY3RvckEsIHZlY3RvckIpIHtcbiAgICBxdWF0LnJvdGF0aW9uVG8odGhpcy5xdWF0LCB2ZWN0b3JBLCB2ZWN0b3JCKTtcbiAgfVxuXG4gIC8vIFNldHMgdGhlIHNwZWNpZmllZCBxdWF0ZXJuaW9uIHdpdGggdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGF4ZXMuIEVhY2ggYXhpcyBpcyBhIHZlYzMgYW5kIGlzIGV4cGVjdGVkIHRvIGJlIHVuaXQgbGVuZ3RoIGFuZCBwZXJwZW5kaWN1bGFyIHRvIGFsbCBvdGhlciBzcGVjaWZpZWQgYXhlcy5cbiAgc2V0QXhlcygpIHtcbiAgICBOdW1iZXJcbiAgfVxuXG4gIC8vIFBlcmZvcm1zIGEgc3BoZXJpY2FsIGxpbmVhciBpbnRlcnBvbGF0aW9uIHdpdGggdHdvIGNvbnRyb2wgcG9pbnRzXG4gIHNxbGVycCgpIHtcbiAgICBOdW1iZXI7XG4gIH1cblxuICAvLyAvLyBBZGRzIHR3byBxdWF0J3NcbiAgLy8gYWRkKGEsIGIpIOKGkiB7cXVhdH1cblxuICAvLyAvLyBDYWxjdWxhdGVzIHRoZSBXIGNvbXBvbmVudCBvZiBhIHF1YXQgZnJvbSB0aGUgWCwgWSwgYW5kIFogY29tcG9uZW50cy4gQXNzdW1lcyB0aGF0IHF1YXRlcm5pb24gaXMgMSB1bml0IGluIGxlbmd0aC4gQW55IGV4aXN0aW5nIFcgY29tcG9uZW50IHdpbGwgYmUgaWdub3JlZC5cbiAgLy8gY2FsY3VsYXRlVyhvdXQsIGEpIOKGkiB7cXVhdH1cblxuICAvLyAvLyBDYWxjdWxhdGVzIHRoZSBjb25qdWdhdGUgb2YgYSBxdWF0IElmIHRoZSBxdWF0ZXJuaW9uIGlzIG5vcm1hbGl6ZWQsIHRoaXMgZnVuY3Rpb24gaXMgZmFzdGVyIHRoYW4gcXVhdC5pbnZlcnNlIGFuZCBwcm9kdWNlcyB0aGUgc2FtZSByZXN1bHQuXG4gIC8vIChzdGF0aWMpIGNvbmp1Z2F0ZShvdXQsIGEpIOKGkiB7cXVhdH1cblxuICAvLyAvLyBDYWxjdWxhdGVzIHRoZSBkb3QgcHJvZHVjdCBvZiB0d28gcXVhdCdzXG4gIC8vIChzdGF0aWMpIGRvdChhLCBiKSDihpIge051bWJlcn1cblxuICAvLyAvLyBDcmVhdGVzIGEgcXVhdGVybmlvbiBmcm9tIHRoZSBnaXZlbiAzeDMgcm90YXRpb24gbWF0cml4LiBOT1RFOiBUaGUgcmVzdWx0YW50IHF1YXRlcm5pb24gaXMgbm90IG5vcm1hbGl6ZWQsIHNvIHlvdSBzaG91bGQgYmUgc3VyZSB0byByZW5vcm1hbGl6ZSB0aGUgcXVhdGVybmlvbiB5b3Vyc2VsZiB3aGVyZSBuZWNlc3NhcnkuXG4gIC8vIChzdGF0aWMpIGZyb21NYXQzKG91dCwgbSkg4oaSIHtxdWF0fVxuXG4gIC8vIC8vIENyZWF0ZXMgYSBuZXcgcXVhdCBpbml0aWFsaXplZCB3aXRoIHRoZSBnaXZlbiB2YWx1ZXNcbiAgLy8gKHN0YXRpYykgZnJvbVZhbHVlcyh4LCB5LCB6LCB3KSDihpIge3F1YXR9XG5cbiAgLy8gLy8gR2V0cyB0aGUgcm90YXRpb24gYXhpcyBhbmQgYW5nbGUgZm9yIGEgZ2l2ZW4gcXVhdGVybmlvbi4gSWYgYSBxdWF0ZXJuaW9uIGlzIGNyZWF0ZWQgd2l0aCBzZXRBeGlzQW5nbGUsIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHZhbHVlcyBhcyBwcm92aWRpZWQgaW4gdGhlIG9yaWdpbmFsIHBhcmFtZXRlciBsaXN0IE9SIGZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHZhbHVlcy4gRXhhbXBsZTogVGhlIHF1YXRlcm5pb24gZm9ybWVkIGJ5IGF4aXMgWzAsIDAsIDFdIGFuZCBhbmdsZSAtOTAgaXMgdGhlIHNhbWUgYXMgdGhlIHF1YXRlcm5pb24gZm9ybWVkIGJ5IFswLCAwLCAxXSBhbmQgMjcwLiBUaGlzIG1ldGhvZCBmYXZvcnMgdGhlIGxhdHRlci5cbiAgLy8gKHN0YXRpYykgZ2V0QXhpc0FuZ2xlKG91dF9heGlzLCBxKSDihpIge051bWJlcn1cblxuICAvLyAvLyBDYWxjdWxhdGVzIHRoZSBpbnZlcnNlIG9mIGEgcXVhdFxuICAvLyAoc3RhdGljKSBpbnZlcnQob3V0LCBhKSDihpIge3F1YXR9XG5cbiAgLy8gLy8gUGVyZm9ybXMgYSBsaW5lYXIgaW50ZXJwb2xhdGlvbiBiZXR3ZWVuIHR3byBxdWF0J3NcbiAgLy8gKHN0YXRpYykgbGVycChvdXQsIGEsIGIsIHQpIOKGkiB7cXVhdH1cblxuICAvLyAvLyBBbGlhcyBmb3IgcXVhdC5tdWx0aXBseVxuICAvLyAoc3RhdGljKSBtdWwoKVxuXG4gIC8vIC8vIE11bHRpcGxpZXMgdHdvIHF1YXQnc1xuICAvLyAoc3RhdGljKSBtdWx0aXBseShvdXQsIGEsIGIpIOKGkiB7cXVhdH1cblxuICAvLyAvLyBOb3JtYWxpemUgYSBxdWF0XG4gIC8vIChzdGF0aWMpIG5vcm1hbGl6ZShvdXQsIGEpIOKGkiB7cXVhdH1cblxuICAvLyAvLyBSb3RhdGVzIGEgcXVhdGVybmlvbiBieSB0aGUgZ2l2ZW4gYW5nbGUgYWJvdXQgdGhlIFggYXhpc1xuICAvLyAoc3RhdGljKSByb3RhdGVYKG91dCwgYSwgcmFkKSDihpIge3F1YXR9XG5cbiAgLy8gLy8gUm90YXRlcyBhIHF1YXRlcm5pb24gYnkgdGhlIGdpdmVuIGFuZ2xlIGFib3V0IHRoZSBZIGF4aXNcbiAgLy8gKHN0YXRpYykgcm90YXRlWShvdXQsIGEsIHJhZCkg4oaSIHtxdWF0fVxuXG4gIC8vIC8vIFJvdGF0ZXMgYSBxdWF0ZXJuaW9uIGJ5IHRoZSBnaXZlbiBhbmdsZSBhYm91dCB0aGUgWiBheGlzXG4gIC8vIChzdGF0aWMpIHJvdGF0ZVoob3V0LCBhLCByYWQpIOKGkiB7cXVhdH1cblxuICAvLyAvLyBTY2FsZXMgYSBxdWF0IGJ5IGEgc2NhbGFyIG51bWJlclxuICAvLyAoc3RhdGljKSBzY2FsZShvdXQsIGEsIGIpIOKGkiB7cXVhdH1cblxuICAvLyAvLyBTZXQgdGhlIGNvbXBvbmVudHMgb2YgYSBxdWF0IHRvIHRoZSBnaXZlbiB2YWx1ZXNcbiAgLy8gKHN0YXRpYykgc2V0KG91dCwgeCwgeSwgeiwgdykg4oaSIHtxdWF0fVxuXG4gIC8vIC8vIFNldHMgYSBxdWF0IGZyb20gdGhlIGdpdmVuIGFuZ2xlIGFuZCByb3RhdGlvbiBheGlzLCB0aGVuIHJldHVybnMgaXQuXG4gIC8vIChzdGF0aWMpIHNldEF4aXNBbmdsZShvdXQsIGF4aXMsIHJhZCkg4oaSIHtxdWF0fVxuXG4gIC8vIC8vIFBlcmZvcm1zIGEgc3BoZXJpY2FsIGxpbmVhciBpbnRlcnBvbGF0aW9uIGJldHdlZW4gdHdvIHF1YXRcbiAgLy8gKHN0YXRpYykgc2xlcnAob3V0LCBhLCBiLCB0KSDihpIge3F1YXR9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRoL3F1YXRlcm5pb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7UUFFZ0IsYSxHQUFBLGE7O0FBRmhCOzs7O0FBRU8sU0FBUyxhQUFULENBQXVCLFVBQXZCLEVBQW1DO0FBQ3hDLFNBQU8sV0FBVyxJQUFYLEdBQWtCLFdBQVcsSUFBN0IsR0FBb0MsVUFBM0M7QUFDRDs7SUFFSyxVO0FBRUosc0JBQVksTUFBWixFQUFvQjtBQUFBOztBQUNsQixTQUFLLElBQUwsR0FBWSxVQUFVLG9CQUF0QjtBQUNEOztBQUVEO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7Ozs7K0JBRVc7QUFDVCxhQUFPLGVBQUssR0FBTCxDQUFTLEtBQUssSUFBZCxDQUFQO0FBQ0Q7Ozs4QkFFUztBQUNSLGFBQU8sS0FBSyxJQUFaO0FBQ0Q7OztxQ0FFZ0I7QUFDZixhQUFPLEtBQUssSUFBWjtBQUNEOzs7MkJBRU0sVSxFQUFZO0FBQ2pCLGFBQU8sZUFBSyxNQUFMLENBQVksS0FBSyxJQUFqQixFQUF1QixVQUF2QixDQUFQO0FBQ0Q7O0FBRUQ7Ozs7Z0NBQ1ksVSxFQUFZO0FBQ3RCLGFBQU8sZUFBSyxXQUFMLENBQWlCLEtBQUssSUFBdEIsRUFBNEIsVUFBNUIsQ0FBUDtBQUNEOztBQUVEOzs7Ozs7QUFxQ0E7MEJBQ007QUFDSixhQUFPLGVBQUssR0FBTCxDQUFTLEtBQUssSUFBZCxDQUFQO0FBQ0Q7O0FBRUQ7Ozs7NkJBQ1M7QUFDUCxhQUFPLGVBQUssTUFBTCxDQUFZLEtBQUssSUFBakIsQ0FBUDtBQUNEOztBQUVEOzs7O2tDQUNjLEMsRUFBRyxDQUVoQjtBQURDOzs7QUFHRjs7Ozs2QkFDUyxDQUVSO0FBREM7OztBQUdGOzs7OytCQUNXLE8sRUFBUyxPLEVBQVM7QUFDM0IscUJBQUssVUFBTCxDQUFnQixLQUFLLElBQXJCLEVBQTJCLE9BQTNCLEVBQW9DLE9BQXBDO0FBQ0Q7O0FBRUQ7Ozs7OEJBQ1U7QUFDUjtBQUNEOztBQUVEOzs7OzZCQUNTO0FBQ1A7QUFDRDs7QUFFRDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOzs7O3dCQTlIUTtBQUNOLGFBQU8sS0FBSyxJQUFMLENBQVUsQ0FBVixDQUFQO0FBQ0QsSztzQkFFSyxLLEVBQU87QUFDWCxXQUFLLElBQUwsQ0FBVSxDQUFWLElBQWUsS0FBZjtBQUNBLGFBQU8sSUFBUDtBQUNEOzs7d0JBRU87QUFDTixhQUFPLEtBQUssSUFBTCxDQUFVLENBQVYsQ0FBUDtBQUNELEs7c0JBRUssSyxFQUFPO0FBQ1gsV0FBSyxJQUFMLENBQVUsQ0FBVixJQUFlLEtBQWY7QUFDQSxhQUFPLElBQVA7QUFDRDs7O3dCQUVPO0FBQ04sYUFBTyxLQUFLLElBQUwsQ0FBVSxDQUFWLENBQVA7QUFDRCxLO3NCQUVLLEssRUFBTztBQUNYLFdBQUssSUFBTCxDQUFVLENBQVYsSUFBZSxLQUFmO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7Ozt3QkFFTztBQUNOLGFBQU8sS0FBSyxJQUFMLENBQVUsQ0FBVixDQUFQO0FBQ0QsSztzQkFFSyxLLEVBQU87QUFDWCxXQUFLLElBQUwsQ0FBVSxDQUFWLElBQWUsS0FBZjtBQUNBLGFBQU8sSUFBUDtBQUNEIiwiZmlsZSI6InF1YXRlcm5pb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3F1YXR9IGZyb20gJ2dsLW1hdHJpeCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWF0ZXJuaW9uKHF1YXRlcm5pb24pIHtcbiAgcmV0dXJuIHF1YXRlcm5pb24ucXVhdCA/IHF1YXRlcm5pb24ucXVhdCA6IHF1YXRlcm5pb247XG59XG5cbmNsYXNzIFF1YXRlcm5pb24ge1xuXG4gIGNvbnN0cnVjdG9yKGdscXVhdCkge1xuICAgIHRoaXMucXVhdCA9IGdscXVhdCB8fCBuZXcgcXVhdCgpO1xuICB9XG5cbiAgLy8gLy8gQ3JlYXRlcyBhIG5ldyBxdWF0IGluaXRpYWxpemVkIHdpdGggdmFsdWVzIGZyb20gYW4gZXhpc3RpbmcgcXVhdGVybmlvblxuICAvLyAoc3RhdGljKSBjbG9uZShhKSDihpIge3F1YXR9XG5cbiAgLy8gLy8gQ29weSB0aGUgdmFsdWVzIGZyb20gb25lIHF1YXQgdG8gYW5vdGhlclxuICAvLyAoc3RhdGljKSBjb3B5KG91dCwgYSkg4oaSIHtxdWF0fVxuXG4gIC8vIC8vIENyZWF0ZXMgYSBuZXcgaWRlbnRpdHkgcXVhdFxuICAvLyAoc3RhdGljKSBjcmVhdGUoKSDihpIge3F1YXR9XG5cbiAgLy8gLy8gU2V0IGEgcXVhdCB0byB0aGUgaWRlbnRpdHkgcXVhdGVybmlvblxuICAvLyAoc3RhdGljKSBpZGVudGl0eShvdXQpIOKGkiB7cXVhdH1cblxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gcXVhdC5zdHIodGhpcy5xdWF0KTtcbiAgfVxuXG4gIHRvQXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMucXVhdDtcbiAgfVxuXG4gIHRvRmxvYXQzMkFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLnF1YXQ7XG4gIH1cblxuICBlcXVhbHMocXVhdGVybmlvbikge1xuICAgIHJldHVybiBxdWF0LmVxdWFscyh0aGlzLnF1YXQsIHF1YXRlcm5pb24pO1xuICB9XG5cbiAgLy8gUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgcXVhdGVybmlvbnMgaGF2ZSBleGFjdGx5IHRoZSBzYW1lIGVsZW1lbnRzIGluIHRoZSBzYW1lIHBvc2l0aW9uICh3aGVuIGNvbXBhcmVkIHdpdGggPT09KVxuICBleGFjdEVxdWFscyhxdWF0ZXJuaW9uKSB7XG4gICAgcmV0dXJuIHF1YXQuZXhhY3RFcXVhbHModGhpcy5xdWF0LCBxdWF0ZXJuaW9uKTtcbiAgfVxuXG4gIC8vIEdldHRlcnMvc2V0dGVyc1xuICBnZXQgeCgpIHtcbiAgICByZXR1cm4gdGhpcy5xdWF0WzBdO1xuICB9XG5cbiAgc2V0IHgodmFsdWUpIHtcbiAgICB0aGlzLnF1YXRbMF0gPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdldCB5KCkge1xuICAgIHJldHVybiB0aGlzLnF1YXRbMV07XG4gIH1cblxuICBzZXQgeSh2YWx1ZSkge1xuICAgIHRoaXMucXVhdFsxXSA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZ2V0IHooKSB7XG4gICAgcmV0dXJuIHRoaXMucXVhdFsyXTtcbiAgfVxuXG4gIHNldCB6KHZhbHVlKSB7XG4gICAgdGhpcy5xdWF0WzJdID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXQgdygpIHtcbiAgICByZXR1cm4gdGhpcy5xdWF0WzJdO1xuICB9XG5cbiAgc2V0IHcodmFsdWUpIHtcbiAgICB0aGlzLnF1YXRbMl0gPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIEFsaWFzIGZvciBxdWF0Lmxlbmd0aFxuICBsZW4oKSB7XG4gICAgcmV0dXJuIHF1YXQubGVuKHRoaXMucXVhdCk7XG4gIH1cblxuICAvLyBDYWxjdWxhdGVzIHRoZSBsZW5ndGggb2YgYSBxdWF0XG4gIGxlbmd0aCgpIHtcbiAgICByZXR1cm4gcXVhdC5sZW5ndGgodGhpcy5xdWF0KTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZXMgdGhlIHNxdWFyZWQgbGVuZ3RoIG9mIGEgcXVhdFxuICBzcXVhcmVkTGVuZ3RoKGEpIHtcbiAgICAvLyBOdW1iZXJcbiAgfVxuXG4gIC8vIEFsaWFzIGZvciBxdWF0LnNxdWFyZWRMZW5ndGhcbiAgc3FyTGVuKCkge1xuICAgIC8vIE51bWJlclxuICB9XG5cbiAgLy8gU2V0cyBhIHF1YXRlcm5pb24gdG8gcmVwcmVzZW50IHRoZSBzaG9ydGVzdCByb3RhdGlvbiBmcm9tIG9uZSB2ZWN0b3IgdG8gYW5vdGhlci4gQm90aCB2ZWN0b3JzIGFyZSBhc3N1bWVkIHRvIGJlIHVuaXQgbGVuZ3RoLlxuICByb3RhdGlvblRvKHZlY3RvckEsIHZlY3RvckIpIHtcbiAgICBxdWF0LnJvdGF0aW9uVG8odGhpcy5xdWF0LCB2ZWN0b3JBLCB2ZWN0b3JCKTtcbiAgfVxuXG4gIC8vIFNldHMgdGhlIHNwZWNpZmllZCBxdWF0ZXJuaW9uIHdpdGggdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGF4ZXMuIEVhY2ggYXhpcyBpcyBhIHZlYzMgYW5kIGlzIGV4cGVjdGVkIHRvIGJlIHVuaXQgbGVuZ3RoIGFuZCBwZXJwZW5kaWN1bGFyIHRvIGFsbCBvdGhlciBzcGVjaWZpZWQgYXhlcy5cbiAgc2V0QXhlcygpIHtcbiAgICBOdW1iZXJcbiAgfVxuXG4gIC8vIFBlcmZvcm1zIGEgc3BoZXJpY2FsIGxpbmVhciBpbnRlcnBvbGF0aW9uIHdpdGggdHdvIGNvbnRyb2wgcG9pbnRzXG4gIHNxbGVycCgpIHtcbiAgICBOdW1iZXI7XG4gIH1cblxuICAvLyAvLyBBZGRzIHR3byBxdWF0J3NcbiAgLy8gYWRkKGEsIGIpIOKGkiB7cXVhdH1cblxuICAvLyAvLyBDYWxjdWxhdGVzIHRoZSBXIGNvbXBvbmVudCBvZiBhIHF1YXQgZnJvbSB0aGUgWCwgWSwgYW5kIFogY29tcG9uZW50cy4gQXNzdW1lcyB0aGF0IHF1YXRlcm5pb24gaXMgMSB1bml0IGluIGxlbmd0aC4gQW55IGV4aXN0aW5nIFcgY29tcG9uZW50IHdpbGwgYmUgaWdub3JlZC5cbiAgLy8gY2FsY3VsYXRlVyhvdXQsIGEpIOKGkiB7cXVhdH1cblxuICAvLyAvLyBDYWxjdWxhdGVzIHRoZSBjb25qdWdhdGUgb2YgYSBxdWF0IElmIHRoZSBxdWF0ZXJuaW9uIGlzIG5vcm1hbGl6ZWQsIHRoaXMgZnVuY3Rpb24gaXMgZmFzdGVyIHRoYW4gcXVhdC5pbnZlcnNlIGFuZCBwcm9kdWNlcyB0aGUgc2FtZSByZXN1bHQuXG4gIC8vIChzdGF0aWMpIGNvbmp1Z2F0ZShvdXQsIGEpIOKGkiB7cXVhdH1cblxuICAvLyAvLyBDYWxjdWxhdGVzIHRoZSBkb3QgcHJvZHVjdCBvZiB0d28gcXVhdCdzXG4gIC8vIChzdGF0aWMpIGRvdChhLCBiKSDihpIge051bWJlcn1cblxuICAvLyAvLyBDcmVhdGVzIGEgcXVhdGVybmlvbiBmcm9tIHRoZSBnaXZlbiAzeDMgcm90YXRpb24gbWF0cml4LiBOT1RFOiBUaGUgcmVzdWx0YW50IHF1YXRlcm5pb24gaXMgbm90IG5vcm1hbGl6ZWQsIHNvIHlvdSBzaG91bGQgYmUgc3VyZSB0byByZW5vcm1hbGl6ZSB0aGUgcXVhdGVybmlvbiB5b3Vyc2VsZiB3aGVyZSBuZWNlc3NhcnkuXG4gIC8vIChzdGF0aWMpIGZyb21NYXQzKG91dCwgbSkg4oaSIHtxdWF0fVxuXG4gIC8vIC8vIENyZWF0ZXMgYSBuZXcgcXVhdCBpbml0aWFsaXplZCB3aXRoIHRoZSBnaXZlbiB2YWx1ZXNcbiAgLy8gKHN0YXRpYykgZnJvbVZhbHVlcyh4LCB5LCB6LCB3KSDihpIge3F1YXR9XG5cbiAgLy8gLy8gR2V0cyB0aGUgcm90YXRpb24gYXhpcyBhbmQgYW5nbGUgZm9yIGEgZ2l2ZW4gcXVhdGVybmlvbi4gSWYgYSBxdWF0ZXJuaW9uIGlzIGNyZWF0ZWQgd2l0aCBzZXRBeGlzQW5nbGUsIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHZhbHVlcyBhcyBwcm92aWRpZWQgaW4gdGhlIG9yaWdpbmFsIHBhcmFtZXRlciBsaXN0IE9SIGZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHZhbHVlcy4gRXhhbXBsZTogVGhlIHF1YXRlcm5pb24gZm9ybWVkIGJ5IGF4aXMgWzAsIDAsIDFdIGFuZCBhbmdsZSAtOTAgaXMgdGhlIHNhbWUgYXMgdGhlIHF1YXRlcm5pb24gZm9ybWVkIGJ5IFswLCAwLCAxXSBhbmQgMjcwLiBUaGlzIG1ldGhvZCBmYXZvcnMgdGhlIGxhdHRlci5cbiAgLy8gKHN0YXRpYykgZ2V0QXhpc0FuZ2xlKG91dF9heGlzLCBxKSDihpIge051bWJlcn1cblxuICAvLyAvLyBDYWxjdWxhdGVzIHRoZSBpbnZlcnNlIG9mIGEgcXVhdFxuICAvLyAoc3RhdGljKSBpbnZlcnQob3V0LCBhKSDihpIge3F1YXR9XG5cbiAgLy8gLy8gUGVyZm9ybXMgYSBsaW5lYXIgaW50ZXJwb2xhdGlvbiBiZXR3ZWVuIHR3byBxdWF0J3NcbiAgLy8gKHN0YXRpYykgbGVycChvdXQsIGEsIGIsIHQpIOKGkiB7cXVhdH1cblxuICAvLyAvLyBBbGlhcyBmb3IgcXVhdC5tdWx0aXBseVxuICAvLyAoc3RhdGljKSBtdWwoKVxuXG4gIC8vIC8vIE11bHRpcGxpZXMgdHdvIHF1YXQnc1xuICAvLyAoc3RhdGljKSBtdWx0aXBseShvdXQsIGEsIGIpIOKGkiB7cXVhdH1cblxuICAvLyAvLyBOb3JtYWxpemUgYSBxdWF0XG4gIC8vIChzdGF0aWMpIG5vcm1hbGl6ZShvdXQsIGEpIOKGkiB7cXVhdH1cblxuICAvLyAvLyBSb3RhdGVzIGEgcXVhdGVybmlvbiBieSB0aGUgZ2l2ZW4gYW5nbGUgYWJvdXQgdGhlIFggYXhpc1xuICAvLyAoc3RhdGljKSByb3RhdGVYKG91dCwgYSwgcmFkKSDihpIge3F1YXR9XG5cbiAgLy8gLy8gUm90YXRlcyBhIHF1YXRlcm5pb24gYnkgdGhlIGdpdmVuIGFuZ2xlIGFib3V0IHRoZSBZIGF4aXNcbiAgLy8gKHN0YXRpYykgcm90YXRlWShvdXQsIGEsIHJhZCkg4oaSIHtxdWF0fVxuXG4gIC8vIC8vIFJvdGF0ZXMgYSBxdWF0ZXJuaW9uIGJ5IHRoZSBnaXZlbiBhbmdsZSBhYm91dCB0aGUgWiBheGlzXG4gIC8vIChzdGF0aWMpIHJvdGF0ZVoob3V0LCBhLCByYWQpIOKGkiB7cXVhdH1cblxuICAvLyAvLyBTY2FsZXMgYSBxdWF0IGJ5IGEgc2NhbGFyIG51bWJlclxuICAvLyAoc3RhdGljKSBzY2FsZShvdXQsIGEsIGIpIOKGkiB7cXVhdH1cblxuICAvLyAvLyBTZXQgdGhlIGNvbXBvbmVudHMgb2YgYSBxdWF0IHRvIHRoZSBnaXZlbiB2YWx1ZXNcbiAgLy8gKHN0YXRpYykgc2V0KG91dCwgeCwgeSwgeiwgdykg4oaSIHtxdWF0fVxuXG4gIC8vIC8vIFNldHMgYSBxdWF0IGZyb20gdGhlIGdpdmVuIGFuZ2xlIGFuZCByb3RhdGlvbiBheGlzLCB0aGVuIHJldHVybnMgaXQuXG4gIC8vIChzdGF0aWMpIHNldEF4aXNBbmdsZShvdXQsIGF4aXMsIHJhZCkg4oaSIHtxdWF0fVxuXG4gIC8vIC8vIFBlcmZvcm1zIGEgc3BoZXJpY2FsIGxpbmVhciBpbnRlcnBvbGF0aW9uIGJldHdlZW4gdHdvIHF1YXRcbiAgLy8gKHN0YXRpYykgc2xlcnAob3V0LCBhLCBiLCB0KSDihpIge3F1YXR9XG59XG4iXX0=

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

exports.default = Vector3;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRoL3ZlY3RvcjMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O1FBRWdCLFMsR0FBQSxTOztBQUZoQjs7OztBQUVPLFNBQVMsU0FBVCxDQUFtQixHQUFuQixFQUF3QjtBQUM3QixTQUFPLElBQUksS0FBSixHQUFZLElBQUksS0FBaEIsR0FBd0IsR0FBL0I7QUFDRDs7SUFFb0IsTzs7O0FBRW5CLG1CQUFZLE1BQVosRUFBb0I7QUFBQTs7QUFDbEIsU0FBSyxNQUFMLEdBQWMsVUFBVSxlQUFLLE1BQUwsRUFBeEI7QUFDRDs7Ozt3QkFFRyxDLEVBQUcsQyxFQUFHLEMsRUFBRztBQUNYLHFCQUFLLEdBQUwsQ0FBUyxLQUFLLE1BQWQsRUFBc0IsQ0FBdEIsRUFBeUIsQ0FBekIsRUFBNEIsQ0FBNUI7QUFDQSxhQUFPLElBQVA7QUFDRDs7O3lCQUVJLE0sRUFBUTtBQUNYLHFCQUFLLElBQUwsQ0FBVSxLQUFLLE1BQWYsRUFBdUIsVUFBVSxNQUFWLENBQXZCO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7Ozs0QkFFTztBQUNOLGFBQU8sSUFBSSxPQUFKLENBQVksZUFBSyxLQUFMLENBQVcsS0FBSyxNQUFoQixDQUFaLENBQVA7QUFDRDs7OytCQUVVO0FBQ1QsYUFBTyxlQUFLLEdBQUwsQ0FBUyxLQUFLLE1BQWQsQ0FBUDtBQUNEOzs7OEJBRVM7QUFDUixhQUFPLEtBQUssS0FBWjtBQUNEOzs7cUNBRWdCO0FBQ2YsYUFBTyxLQUFLLEtBQVo7QUFDRDs7OzJCQUVNLE0sRUFBUTtBQUNiLGFBQU8sZUFBSyxNQUFMLENBQVksVUFBVSxNQUFWLENBQVosQ0FBUDtBQUNEOzs7Z0NBRVcsTSxFQUFRO0FBQ2xCLGFBQU8sZUFBSyxXQUFMLENBQWlCLFVBQVUsTUFBVixDQUFqQixDQUFQO0FBQ0Q7Ozs7Ozs2QkE4QlEsTSxFQUFRO0FBQ2YsYUFBTyxlQUFLLFFBQUwsQ0FBYyxVQUFVLE1BQVYsQ0FBZCxDQUFQO0FBQ0Q7Ozt5QkFFSSxNLEVBQVE7QUFDWCxhQUFPLGVBQUssSUFBTCxDQUFVLFVBQVUsTUFBVixDQUFWLENBQVA7QUFDRDs7OzBCQUVLLE0sRUFBUTtBQUNaLGFBQU8sZUFBSyxLQUFMLENBQVcsVUFBVSxNQUFWLENBQVgsQ0FBUDtBQUNEOzs7MEJBRWU7QUFBQSx3Q0FBVCxPQUFTO0FBQVQsZUFBUztBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUNkLDZCQUFxQixPQUFyQiw4SEFBOEI7QUFBQSxjQUFuQixNQUFtQjs7QUFDNUIseUJBQUssR0FBTCxDQUFTLEtBQUssTUFBZCxFQUFzQixVQUFVLE1BQVYsQ0FBdEI7QUFDRDtBQUhhO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBSWQsYUFBTyxJQUFQO0FBQ0Q7OzsrQkFFb0I7QUFBQSx5Q0FBVCxPQUFTO0FBQVQsZUFBUztBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUNuQiw4QkFBcUIsT0FBckIsbUlBQThCO0FBQUEsY0FBbkIsTUFBbUI7O0FBQzVCLHlCQUFLLFFBQUwsQ0FBYyxLQUFLLE1BQW5CLEVBQTJCLFVBQVUsTUFBVixDQUEzQjtBQUNEO0FBSGtCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBSW5CLGFBQU8sSUFBUDtBQUNEOzs7MEJBRWU7QUFBQSx5Q0FBVCxPQUFTO0FBQVQsZUFBUztBQUFBOztBQUNkLGFBQU8sS0FBSyxRQUFMLENBQWMsT0FBZCxDQUFQO0FBQ0Q7OzsrQkFFb0I7QUFBQSx5Q0FBVCxPQUFTO0FBQVQsZUFBUztBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUNuQiw4QkFBcUIsT0FBckIsbUlBQThCO0FBQUEsY0FBbkIsTUFBbUI7O0FBQzVCLHlCQUFLLFFBQUwsQ0FBYyxLQUFLLE1BQW5CLEVBQTJCLFVBQVUsTUFBVixDQUEzQjtBQUNEO0FBSGtCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBSW5CLGFBQU8sSUFBUDtBQUNEOzs7NkJBRWtCO0FBQUEseUNBQVQsT0FBUztBQUFULGVBQVM7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFDakIsOEJBQXFCLE9BQXJCLG1JQUE4QjtBQUFBLGNBQW5CLE1BQW1COztBQUM1Qix5QkFBSyxNQUFMLENBQVksS0FBSyxNQUFqQixFQUF5QixVQUFVLE1BQVYsQ0FBekI7QUFDRDtBQUhnQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUlqQixhQUFPLElBQVA7QUFDRDs7OzJCQUVNO0FBQ0wscUJBQUssSUFBTCxDQUFVLEtBQUssTUFBZixFQUF1QixLQUFLLE1BQTVCO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7Ozs0QkFFTztBQUNOLHFCQUFLLEtBQUwsQ0FBVyxLQUFLLE1BQWhCLEVBQXdCLEtBQUssTUFBN0I7QUFDQSxhQUFPLElBQVA7QUFDRDs7OzBCQUVLO0FBQ0oscUJBQUssR0FBTCxDQUFTLEtBQUssTUFBZCxFQUFzQixLQUFLLE1BQTNCO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7OzswQkFFSztBQUNKLHFCQUFLLEdBQUwsQ0FBUyxLQUFLLE1BQWQsRUFBc0IsS0FBSyxNQUEzQjtBQUNBLGFBQU8sSUFBUDtBQUNEOzs7MEJBRUssTSxFQUFPO0FBQ1gscUJBQUssS0FBTCxDQUFXLEtBQUssTUFBaEIsRUFBd0IsS0FBSyxNQUE3QixFQUFxQyxNQUFyQztBQUNBLGFBQU8sSUFBUDtBQUNEOzs7Z0NBRVcsTSxFQUFRLEssRUFBTztBQUN6QixxQkFBSyxXQUFMLENBQWlCLEtBQUssTUFBdEIsRUFBOEIsS0FBSyxNQUFuQyxFQUEyQyxVQUFVLE1BQVYsQ0FBM0MsRUFBOEQsS0FBOUQ7QUFDQSxhQUFPLElBQVA7QUFDRDs7OzZCQUVRO0FBQ1AscUJBQUssTUFBTCxDQUFZLEtBQUssTUFBakIsRUFBeUIsS0FBSyxNQUE5QjtBQUNBLGFBQU8sSUFBUDtBQUNEOzs7OEJBRVM7QUFDUixxQkFBSyxPQUFMLENBQWEsS0FBSyxNQUFsQixFQUEwQixLQUFLLE1BQS9CO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7OztnQ0FFVztBQUNWLHFCQUFLLFNBQUwsQ0FBZSxLQUFLLE1BQXBCLEVBQTRCLEtBQUssTUFBakM7QUFDQSxhQUFPLElBQVA7QUFDRDs7O3dCQUVHLEssRUFBTztBQUNULHFCQUFLLEdBQUwsQ0FBUyxLQUFLLE1BQWQsRUFBc0IsS0FBSyxNQUEzQixFQUFtQyxLQUFuQztBQUNBLGFBQU8sSUFBUDtBQUNEOzs7MEJBRUssSyxFQUFPO0FBQ1gscUJBQUssS0FBTCxDQUFXLEtBQUssTUFBaEIsRUFBd0IsS0FBSyxNQUE3QixFQUFxQyxLQUFyQztBQUNBLGFBQU8sSUFBUDtBQUNEOzs7eUJBRUksSyxFQUFPO0FBQ1YscUJBQUssSUFBTCxDQUFVLEtBQUssTUFBZixFQUF1QixLQUFLLE1BQTVCLEVBQW9DLEtBQXBDO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7Ozs0QkFFTyxLLEVBQU87QUFDYixxQkFBSyxPQUFMLENBQWEsS0FBSyxNQUFsQixFQUEwQixLQUFLLE1BQS9CLEVBQXVDLEtBQXZDO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7OzsyQkFFTSxLLEVBQU87QUFDWixxQkFBSyxNQUFMLENBQVksS0FBSyxNQUFqQixFQUF5QixLQUFLLE1BQTlCLEVBQXNDLEtBQXRDO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7OzsyQkFFTSxLLEVBQU87QUFDWixxQkFBSyxLQUFMLENBQVcsS0FBSyxNQUFoQixFQUF3QixLQUFLLE1BQTdCLEVBQXFDLEtBQXJDO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7Ozs0QkFFTyxNLEVBQVEsSyxFQUFPO0FBQ3JCLHFCQUFLLE9BQUwsQ0FBYSxLQUFLLE1BQWxCLEVBQTBCLEtBQUssTUFBL0IsRUFBdUMsVUFBVSxNQUFWLENBQXZDLEVBQTBELEtBQTFEO0FBQ0Q7Ozs0QkFFTyxNLEVBQVEsSyxFQUFPO0FBQ3JCLHFCQUFLLE9BQUwsQ0FBYSxLQUFLLE1BQWxCLEVBQTBCLEtBQUssTUFBL0IsRUFBdUMsVUFBVSxNQUFWLENBQXZDLEVBQTBELEtBQTFEO0FBQ0Q7Ozs0QkFFTyxNLEVBQVEsSyxFQUFPO0FBQ3JCLHFCQUFLLE9BQUwsQ0FBYSxLQUFLLE1BQWxCLEVBQTBCLEtBQUssTUFBL0IsRUFBdUMsVUFBVSxNQUFWLENBQXZDLEVBQTBELEtBQTFEO0FBQ0Q7Ozt3QkE1Sk87QUFDTixhQUFPLEtBQUssS0FBTCxDQUFXLENBQVgsQ0FBUDtBQUNELEs7c0JBRUssSyxFQUFPO0FBQ1gsV0FBSyxLQUFMLENBQVcsQ0FBWCxJQUFnQixLQUFoQjtBQUNBLGFBQU8sSUFBUDtBQUNEOzs7d0JBRU87QUFDTixhQUFPLEtBQUssS0FBTCxDQUFXLENBQVgsQ0FBUDtBQUNELEs7c0JBRUssSyxFQUFPO0FBQ1gsV0FBSyxLQUFMLENBQVcsQ0FBWCxJQUFnQixLQUFoQjtBQUNBLGFBQU8sSUFBUDtBQUNEOzs7d0JBRU87QUFDTixhQUFPLEtBQUssS0FBTCxDQUFXLENBQVgsQ0FBUDtBQUNELEs7c0JBRUssSyxFQUFPO0FBQ1gsV0FBSyxLQUFMLENBQVcsQ0FBWCxJQUFnQixLQUFoQjtBQUNBLGFBQU8sSUFBUDtBQUNEOzs7Ozs7a0JBbEVrQixPIiwiZmlsZSI6InZlY3RvcjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3ZlYzN9IGZyb20gJ2dsLW1hdHJpeCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZWN0b3IodmVjKSB7XG4gIHJldHVybiB2ZWMuZ2x2ZWMgPyB2ZWMuZ2x2ZWMgOiB2ZWM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlY3RvcjMge1xuICAvLyBDcmVhdGVzIGEgbmV3LCBlbXB0eSB2ZWMzXG4gIGNvbnN0cnVjdG9yKGdsdmVjMykge1xuICAgIHRoaXMuZ2x2ZWMzID0gZ2x2ZWMzIHx8IHZlYzMuY3JlYXRlKCk7XG4gIH1cblxuICBzZXQoeCwgeSwgeikge1xuICAgIHZlYzMuc2V0KHRoaXMuZ2x2ZWMzLCB4LCB5LCB6KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNvcHkodmVjdG9yKSB7XG4gICAgdmVjMy5jb3B5KHRoaXMuZ2x2ZWMzLCBnZXRWZWN0b3IodmVjdG9yKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjbG9uZSgpIHtcbiAgICByZXR1cm4gbmV3IFZlY3RvcjModmVjMy5jbG9uZSh0aGlzLmdsdmVjMykpO1xuICB9XG5cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHZlYzMuc3RyKHRoaXMuZ2x2ZWMzKTtcbiAgfVxuXG4gIHRvQXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2x2ZWM7XG4gIH1cblxuICB0b0Zsb2F0MzJBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5nbHZlYztcbiAgfVxuXG4gIGVxdWFscyh2ZWN0b3IpIHtcbiAgICByZXR1cm4gdmVjMy5lcXVhbHMoZ2V0VmVjdG9yKHZlY3RvcikpO1xuICB9XG5cbiAgZXhhY3RFcXVhbHModmVjdG9yKSB7XG4gICAgcmV0dXJuIHZlYzMuZXhhY3RFcXVhbHMoZ2V0VmVjdG9yKHZlY3RvcikpO1xuICB9XG5cbiAgLy8gR2V0dGVycy9zZXR0ZXJzXG4gIGdldCB4KCkge1xuICAgIHJldHVybiB0aGlzLmdsdmVjWzBdO1xuICB9XG5cbiAgc2V0IHgodmFsdWUpIHtcbiAgICB0aGlzLmdsdmVjWzBdID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXQgeSgpIHtcbiAgICByZXR1cm4gdGhpcy5nbHZlY1sxXTtcbiAgfVxuXG4gIHNldCB5KHZhbHVlKSB7XG4gICAgdGhpcy5nbHZlY1sxXSA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZ2V0IHooKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2x2ZWNbMl07XG4gIH1cblxuICBzZXQgeih2YWx1ZSkge1xuICAgIHRoaXMuZ2x2ZWNbMl0gPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGRpc3RhbmNlKHZlY3Rvcikge1xuICAgIHJldHVybiB2ZWMzLmRpc3RhbmNlKGdldFZlY3Rvcih2ZWN0b3IpKTtcbiAgfVxuXG4gIGRpc3QodmVjdG9yKSB7XG4gICAgcmV0dXJuIHZlYzMuZGlzdChnZXRWZWN0b3IodmVjdG9yKSk7XG4gIH1cblxuICBhbmdsZSh2ZWN0b3IpIHtcbiAgICByZXR1cm4gdmVjMy5hbmdsZShnZXRWZWN0b3IodmVjdG9yKSk7XG4gIH1cblxuICBhZGQoLi4udmVjdG9ycykge1xuICAgIGZvciAoY29uc3QgdmVjdG9yIG9mIHZlY3RvcnMpIHtcbiAgICAgIHZlYzMuYWRkKHRoaXMuZ2x2ZWMzLCBnZXRWZWN0b3IodmVjdG9yKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc3VidHJhY3QoLi4udmVjdG9ycykge1xuICAgIGZvciAoY29uc3QgdmVjdG9yIG9mIHZlY3RvcnMpIHtcbiAgICAgIHZlYzMuc3VidHJhY3QodGhpcy5nbHZlYzMsIGdldFZlY3Rvcih2ZWN0b3IpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzdWIoLi4udmVjdG9ycykge1xuICAgIHJldHVybiB0aGlzLnN1YnRyYWN0KHZlY3RvcnMpO1xuICB9XG5cbiAgbXVsdGlwbHkoLi4udmVjdG9ycykge1xuICAgIGZvciAoY29uc3QgdmVjdG9yIG9mIHZlY3RvcnMpIHtcbiAgICAgIHZlYzMubXVsdGlwbHkodGhpcy5nbHZlYzMsIGdldFZlY3Rvcih2ZWN0b3IpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkaXZpZGUoLi4udmVjdG9ycykge1xuICAgIGZvciAoY29uc3QgdmVjdG9yIG9mIHZlY3RvcnMpIHtcbiAgICAgIHZlYzMuZGl2aWRlKHRoaXMuZ2x2ZWMzLCBnZXRWZWN0b3IodmVjdG9yKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY2VpbCgpIHtcbiAgICB2ZWMzLmNlaWwodGhpcy5nbHZlYzMsIHRoaXMuZ2x2ZWMzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGZsb29yKCkge1xuICAgIHZlYzMuZmxvb3IodGhpcy5nbHZlYzMsIHRoaXMuZ2x2ZWMzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG1pbigpIHtcbiAgICB2ZWMzLm1pbih0aGlzLmdsdmVjMywgdGhpcy5nbHZlYzMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbWF4KCkge1xuICAgIHZlYzMubWF4KHRoaXMuZ2x2ZWMzLCB0aGlzLmdsdmVjMyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzY2FsZShzY2FsZSkge1xuICAgIHZlYzMuc2NhbGUodGhpcy5nbHZlYzMsIHRoaXMuZ2x2ZWMzLCBzY2FsZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzY2FsZUFuZEFkZCh2ZWN0b3IsIHNjYWxlKSB7XG4gICAgdmVjMy5zY2FsZUFuZEFkZCh0aGlzLmdsdmVjMywgdGhpcy5nbHZlYzMsIGdldFZlY3Rvcih2ZWN0b3IpLCBzY2FsZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBuZWdhdGUoKSB7XG4gICAgdmVjMy5uZWdhdGUodGhpcy5nbHZlYzMsIHRoaXMuZ2x2ZWMzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGludmVyc2UoKSB7XG4gICAgdmVjMy5pbnZlcnNlKHRoaXMuZ2x2ZWMzLCB0aGlzLmdsdmVjMyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBub3JtYWxpemUoKSB7XG4gICAgdmVjMy5ub3JtYWxpemUodGhpcy5nbHZlYzMsIHRoaXMuZ2x2ZWMzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGRvdChzY2FsZSkge1xuICAgIHZlYzMuZG90KHRoaXMuZ2x2ZWMzLCB0aGlzLmdsdmVjMywgc2NhbGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY3Jvc3Moc2NhbGUpIHtcbiAgICB2ZWMzLmNyb3NzKHRoaXMuZ2x2ZWMzLCB0aGlzLmdsdmVjMywgc2NhbGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbGVycChzY2FsZSkge1xuICAgIHZlYzMubGVycCh0aGlzLmdsdmVjMywgdGhpcy5nbHZlYzMsIHNjYWxlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGhlcm1pdGUoc2NhbGUpIHtcbiAgICB2ZWMzLmhlcm1pdGUodGhpcy5nbHZlYzMsIHRoaXMuZ2x2ZWMzLCBzY2FsZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBiZXppZXIoc2NhbGUpIHtcbiAgICB2ZWMzLmJlemllcih0aGlzLmdsdmVjMywgdGhpcy5nbHZlYzMsIHNjYWxlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHJhbmRvbShzY2FsZSkge1xuICAgIHZlYzMuY3Jvc3ModGhpcy5nbHZlYzMsIHRoaXMuZ2x2ZWMzLCBzY2FsZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICByb3RhdGVYKG9yaWdpbiwgYW5nbGUpIHtcbiAgICB2ZWMzLnJvdGF0ZVgodGhpcy5nbHZlYzMsIHRoaXMuZ2x2ZWMzLCBnZXRWZWN0b3Iob3JpZ2luKSwgYW5nbGUpO1xuICB9XG5cbiAgcm90YXRlWShvcmlnaW4sIGFuZ2xlKSB7XG4gICAgdmVjMy5yb3RhdGVZKHRoaXMuZ2x2ZWMzLCB0aGlzLmdsdmVjMywgZ2V0VmVjdG9yKG9yaWdpbiksIGFuZ2xlKTtcbiAgfVxuXG4gIHJvdGF0ZVoob3JpZ2luLCBhbmdsZSkge1xuICAgIHZlYzMucm90YXRlWih0aGlzLmdsdmVjMywgdGhpcy5nbHZlYzMsIGdldFZlY3RvcihvcmlnaW4pLCBhbmdsZSk7XG4gIH1cblxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRoL3ZlY3RvcjMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O1FBRWdCLFMsR0FBQSxTOztBQUZoQjs7OztBQUVPLFNBQVMsU0FBVCxDQUFtQixHQUFuQixFQUF3QjtBQUM3QixTQUFPLElBQUksS0FBSixHQUFZLElBQUksS0FBaEIsR0FBd0IsR0FBL0I7QUFDRDs7SUFFb0IsTztBQUNuQjs7QUFDQSxtQkFBWSxNQUFaLEVBQW9CO0FBQUE7O0FBQ2xCLFNBQUssTUFBTCxHQUFjLFVBQVUsZUFBSyxNQUFMLEVBQXhCO0FBQ0Q7Ozs7d0JBRUcsQyxFQUFHLEMsRUFBRyxDLEVBQUc7QUFDWCxxQkFBSyxHQUFMLENBQVMsS0FBSyxNQUFkLEVBQXNCLENBQXRCLEVBQXlCLENBQXpCLEVBQTRCLENBQTVCO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7Ozt5QkFFSSxNLEVBQVE7QUFDWCxxQkFBSyxJQUFMLENBQVUsS0FBSyxNQUFmLEVBQXVCLFVBQVUsTUFBVixDQUF2QjtBQUNBLGFBQU8sSUFBUDtBQUNEOzs7NEJBRU87QUFDTixhQUFPLElBQUksT0FBSixDQUFZLGVBQUssS0FBTCxDQUFXLEtBQUssTUFBaEIsQ0FBWixDQUFQO0FBQ0Q7OzsrQkFFVTtBQUNULGFBQU8sZUFBSyxHQUFMLENBQVMsS0FBSyxNQUFkLENBQVA7QUFDRDs7OzhCQUVTO0FBQ1IsYUFBTyxLQUFLLEtBQVo7QUFDRDs7O3FDQUVnQjtBQUNmLGFBQU8sS0FBSyxLQUFaO0FBQ0Q7OzsyQkFFTSxNLEVBQVE7QUFDYixhQUFPLGVBQUssTUFBTCxDQUFZLFVBQVUsTUFBVixDQUFaLENBQVA7QUFDRDs7O2dDQUVXLE0sRUFBUTtBQUNsQixhQUFPLGVBQUssV0FBTCxDQUFpQixVQUFVLE1BQVYsQ0FBakIsQ0FBUDtBQUNEOztBQUVEOzs7OzZCQTRCUyxNLEVBQVE7QUFDZixhQUFPLGVBQUssUUFBTCxDQUFjLFVBQVUsTUFBVixDQUFkLENBQVA7QUFDRDs7O3lCQUVJ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QUFDckIscUJBQUssT0FBTCxDQUFhLEtBQUssTUFBbEIsRUFBMEIsS0FBSyxNQUEvQixFQUF1QyxVQUFVLE1BQVYsQ0FBdkMsRUFBMEQsS0FBMUQ7QUFDRDs7OzRCQUVPLE0sRUFBUSxLLEVBQU87QUFDckIscUJBQUssT0FBTCxDQUFhLEtBQUssTUFBbEIsRUFBMEIsS0FBSyxNQUEvQixFQUF1QyxVQUFVLE1BQVYsQ0FBdkMsRUFBMEQsS0FBMUQ7QUFDRDs7O3dCQTVKTztBQUNOLGFBQU8sS0FBSyxLQUFMLENBQVcsQ0FBWCxDQUFQO0FBQ0QsSztzQkFFSyxLLEVBQU87QUFDWCxXQUFLLEtBQUwsQ0FBVyxDQUFYLElBQWdCLEtBQWhCO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7Ozt3QkFFTztBQUNOLGFBQU8sS0FBSyxLQUFMLENBQVcsQ0FBWCxDQUFQO0FBQ0QsSztzQkFFSyxLLEVBQU87QUFDWCxXQUFLLEtBQUwsQ0FBVyxDQUFYLElBQWdCLEtBQWhCO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7Ozt3QkFFTztBQUNOLGFBQU8sS0FBSyxLQUFMLENBQVcsQ0FBWCxDQUFQO0FBQ0QsSztzQkFFSyxLLEVBQU87QUFDWCxXQUFLLEtBQUwsQ0FBVyxDQUFYLElBQWdCLEtBQWhCO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7Ozs7OztrQkFsRWtCLE8iLCJmaWxlIjoidmVjdG9yMy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dmVjM30gZnJvbSAnZ2wtbWF0cml4JztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZlY3Rvcih2ZWMpIHtcbiAgcmV0dXJuIHZlYy5nbHZlYyA/IHZlYy5nbHZlYyA6IHZlYztcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVjdG9yMyB7XG4gIC8vIENyZWF0ZXMgYSBuZXcsIGVtcHR5IHZlYzNcbiAgY29uc3RydWN0b3IoZ2x2ZWMzKSB7XG4gICAgdGhpcy5nbHZlYzMgPSBnbHZlYzMgfHwgdmVjMy5jcmVhdGUoKTtcbiAgfVxuXG4gIHNldCh4LCB5LCB6KSB7XG4gICAgdmVjMy5zZXQodGhpcy5nbHZlYzMsIHgsIHksIHopO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY29weSh2ZWN0b3IpIHtcbiAgICB2ZWMzLmNvcHkodGhpcy5nbHZlYzMsIGdldFZlY3Rvcih2ZWN0b3IpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgVmVjdG9yMyh2ZWMzLmNsb25lKHRoaXMuZ2x2ZWMzKSk7XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdmVjMy5zdHIodGhpcy5nbHZlYzMpO1xuICB9XG5cbiAgdG9BcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5nbHZlYztcbiAgfVxuXG4gIHRvRmxvYXQzMkFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLmdsdmVjO1xuICB9XG5cbiAgZXF1YWxzKHZlY3Rvcikge1xuICAgIHJldHVybiB2ZWMzLmVxdWFscyhnZXRWZWN0b3IodmVjdG9yKSk7XG4gIH1cblxuICBleGFjdEVxdWFscyh2ZWN0b3IpIHtcbiAgICByZXR1cm4gdmVjMy5leGFjdEVxdWFscyhnZXRWZWN0b3IodmVjdG9yKSk7XG4gIH1cblxuICAvLyBHZXR0ZXJzL3NldHRlcnNcbiAgZ2V0IHgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2x2ZWNbMF07XG4gIH1cblxuICBzZXQgeCh2YWx1ZSkge1xuICAgIHRoaXMuZ2x2ZWNbMF0gPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdldCB5KCkge1xuICAgIHJldHVybiB0aGlzLmdsdmVjWzFdO1xuICB9XG5cbiAgc2V0IHkodmFsdWUpIHtcbiAgICB0aGlzLmdsdmVjWzFdID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXQgeigpIHtcbiAgICByZXR1cm4gdGhpcy5nbHZlY1syXTtcbiAgfVxuXG4gIHNldCB6KHZhbHVlKSB7XG4gICAgdGhpcy5nbHZlY1syXSA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZGlzdGFuY2UodmVjdG9yKSB7XG4gICAgcmV0dXJuIHZlYzMuZGlzdGFuY2UoZ2V0VmVjdG9yKHZlY3RvcikpO1xuICB9XG5cbiAgZGlzdCh2ZWN0b3IpIHtcbiAgICByZXR1cm4gdmVjMy5kaXN0KGdldFZlY3Rvcih2ZWN0b3IpKTtcbiAgfVxuXG4gIGFuZ2xlKHZlY3Rvcikge1xuICAgIHJldHVybiB2ZWMzLmFuZ2xlKGdldFZlY3Rvcih2ZWN0b3IpKTtcbiAgfVxuXG4gIGFkZCguLi52ZWN0b3JzKSB7XG4gICAgZm9yIChjb25zdCB2ZWN0b3Igb2YgdmVjdG9ycykge1xuICAgICAgdmVjMy5hZGQodGhpcy5nbHZlYzMsIGdldFZlY3Rvcih2ZWN0b3IpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzdWJ0cmFjdCguLi52ZWN0b3JzKSB7XG4gICAgZm9yIChjb25zdCB2ZWN0b3Igb2YgdmVjdG9ycykge1xuICAgICAgdmVjMy5zdWJ0cmFjdCh0aGlzLmdsdmVjMywgZ2V0VmVjdG9yKHZlY3RvcikpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN1YiguLi52ZWN0b3JzKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VidHJhY3QodmVjdG9ycyk7XG4gIH1cblxuICBtdWx0aXBseSguLi52ZWN0b3JzKSB7XG4gICAgZm9yIChjb25zdCB2ZWN0b3Igb2YgdmVjdG9ycykge1xuICAgICAgdmVjMy5tdWx0aXBseSh0aGlzLmdsdmVjMywgZ2V0VmVjdG9yKHZlY3RvcikpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGRpdmlkZSguLi52ZWN0b3JzKSB7XG4gICAgZm9yIChjb25zdCB2ZWN0b3Igb2YgdmVjdG9ycykge1xuICAgICAgdmVjMy5kaXZpZGUodGhpcy5nbHZlYzMsIGdldFZlY3Rvcih2ZWN0b3IpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjZWlsKCkge1xuICAgIHZlYzMuY2VpbCh0aGlzLmdsdmVjMywgdGhpcy5nbHZlYzMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZmxvb3IoKSB7XG4gICAgdmVjMy5mbG9vcih0aGlzLmdsdmVjMywgdGhpcy5nbHZlYzMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbWluKCkge1xuICAgIHZlYzMubWluKHRoaXMuZ2x2ZWMzLCB0aGlzLmdsdmVjMyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBtYXgoKSB7XG4gICAgdmVjMy5tYXgodGhpcy5nbHZlYzMsIHRoaXMuZ2x2ZWMzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNjYWxlKHNjYWxlKSB7XG4gICAgdmVjMy5zY2FsZSh0aGlzLmdsdmVjMywgdGhpcy5nbHZlYzMsIHNjYWxlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNjYWxlQW5kQWRkKHZlY3Rvciwgc2NhbGUpIHtcbiAgICB2ZWMzLnNjYWxlQW5kQWRkKHRoaXMuZ2x2ZWMzLCB0aGlzLmdsdmVjMywgZ2V0VmVjdG9yKHZlY3RvciksIHNjYWxlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG5lZ2F0ZSgpIHtcbiAgICB2ZWMzLm5lZ2F0ZSh0aGlzLmdsdmVjMywgdGhpcy5nbHZlYzMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgaW52ZXJzZSgpIHtcbiAgICB2ZWMzLmludmVyc2UodGhpcy5nbHZlYzMsIHRoaXMuZ2x2ZWMzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG5vcm1hbGl6ZSgpIHtcbiAgICB2ZWMzLm5vcm1hbGl6ZSh0aGlzLmdsdmVjMywgdGhpcy5nbHZlYzMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZG90KHNjYWxlKSB7XG4gICAgdmVjMy5kb3QodGhpcy5nbHZlYzMsIHRoaXMuZ2x2ZWMzLCBzY2FsZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjcm9zcyhzY2FsZSkge1xuICAgIHZlYzMuY3Jvc3ModGhpcy5nbHZlYzMsIHRoaXMuZ2x2ZWMzLCBzY2FsZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBsZXJwKHNjYWxlKSB7XG4gICAgdmVjMy5sZXJwKHRoaXMuZ2x2ZWMzLCB0aGlzLmdsdmVjMywgc2NhbGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgaGVybWl0ZShzY2FsZSkge1xuICAgIHZlYzMuaGVybWl0ZSh0aGlzLmdsdmVjMywgdGhpcy5nbHZlYzMsIHNjYWxlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGJlemllcihzY2FsZSkge1xuICAgIHZlYzMuYmV6aWVyKHRoaXMuZ2x2ZWMzLCB0aGlzLmdsdmVjMywgc2NhbGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcmFuZG9tKHNjYWxlKSB7XG4gICAgdmVjMy5jcm9zcyh0aGlzLmdsdmVjMywgdGhpcy5nbHZlYzMsIHNjYWxlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHJvdGF0ZVgob3JpZ2luLCBhbmdsZSkge1xuICAgIHZlYzMucm90YXRlWCh0aGlzLmdsdmVjMywgdGhpcy5nbHZlYzMsIGdldFZlY3RvcihvcmlnaW4pLCBhbmdsZSk7XG4gIH1cblxuICByb3RhdGVZKG9yaWdpbiwgYW5nbGUpIHtcbiAgICB2ZWMzLnJvdGF0ZVkodGhpcy5nbHZlYzMsIHRoaXMuZ2x2ZWMzLCBnZXRWZWN0b3Iob3JpZ2luKSwgYW5nbGUpO1xuICB9XG5cbiAgcm90YXRlWihvcmlnaW4sIGFuZ2xlKSB7XG4gICAgdmVjMy5yb3RhdGVaKHRoaXMuZ2x2ZWMzLCB0aGlzLmdsdmVjMywgZ2V0VmVjdG9yKG9yaWdpbiksIGFuZ2xlKTtcbiAgfVxuXG59XG4iXX0=

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

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaGFkZXJsaWItaGVscGVycy9tZXJjYXRvci1wcm9qZWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O2tCQXFDd0IscUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbEJ4QixJQUFNLEtBQUssS0FBSyxFQUFoQjtBQUNBLElBQU0sTUFBTSxLQUFLLEdBQWpCO0FBQ0EsSUFBTSxNQUFNLEtBQUssR0FBakI7QUFDQSxJQUFNLE1BQU0sS0FBSyxHQUFqQjtBQUNBLElBQU0sT0FBTyxLQUFLLElBQWxCO0FBQ0EsSUFBTSxNQUFNLEtBQUssR0FBakI7QUFDQSxJQUFNLHFCQUFxQixLQUFLLEdBQWhDO0FBQ0EsSUFBTSxxQkFBcUIsTUFBTSxFQUFqQzs7QUFFQSxTQUFTLE9BQVQsQ0FBaUIsS0FBakIsRUFBd0I7QUFDdEIsU0FBTyxRQUFRLGtCQUFmO0FBQ0Q7O0FBRUQsU0FBUyxPQUFULENBQWlCLEtBQWpCLEVBQXdCO0FBQ3RCLFNBQU8sUUFBUSxrQkFBZjtBQUNEOzs7QUFHYyxTQUFTLHFCQUFULE9BT1o7QUFBQSwyQkFORCxRQU1DO0FBQUEsTUFORCxRQU1DLGlDQU5VLEdBTVY7QUFBQSxNQUxELFNBS0MsUUFMRCxTQUtDO0FBQUEsTUFKRCxRQUlDLFFBSkQsUUFJQztBQUFBLE1BSEQsSUFHQyxRQUhELElBR0M7QUFBQSx3QkFGRCxLQUVDO0FBQUEsTUFGRCxLQUVDLDhCQUZPLEdBRVA7QUFBQSx5QkFERCxNQUNDO0FBQUEsTUFERCxNQUNDLCtCQURRLEdBQ1I7O0FBQ0QsTUFBTSxRQUFRLENBQUMsWUFBWSxHQUFiLElBQW9CLEdBQXBCLEdBQTBCLEVBQTFCLEdBQStCLElBQUksQ0FBSixFQUFPLElBQVAsQ0FBN0M7QUFDQSxNQUFNLFFBQVEsUUFBUSxTQUFSLENBQWQ7QUFDQSxNQUFNLE1BQU0sUUFBUSxRQUFSLENBQVo7QUFDQSxNQUFNLElBQUksU0FBUyxRQUFRLEVBQWpCLENBQVY7QUFDQSxNQUFNLElBQUksU0FBUyxLQUFLLElBQUksSUFBSSxLQUFLLElBQUwsR0FBWSxNQUFNLEdBQXRCLENBQUosQ0FBZCxDQUFWO0FBQ0EsTUFBTSxVQUFVLFFBQVEsR0FBUixHQUFjLENBQTlCO0FBQ0EsTUFBTSxVQUFVLFNBQVMsR0FBVCxHQUFlLENBQS9COztBQUVBLFdBQVMsT0FBVCxDQUFpQixPQUFqQixFQUEwQjtBQUN4QixRQUFNLFNBQVMsUUFBUSxDQUFSLElBQWEsa0JBQTVCO0FBQ0EsUUFBTSxPQUFPLFFBQVEsQ0FBUixJQUFhLGtCQUExQjtBQUNBLFFBQU0sS0FBSyxTQUFTLFNBQVMsRUFBbEIsQ0FBWDtBQUNBLFFBQU0sS0FBSyxTQUFTLEtBQUssSUFBSSxJQUFJLEtBQUssSUFBTCxHQUFZLE9BQU8sR0FBdkIsQ0FBSixDQUFkLENBQVg7QUFDQSxXQUFPLENBQUMsRUFBRCxFQUFLLEVBQUwsQ0FBUDtBQUNEOztBQUVELFdBQVMsU0FBVCxDQUFtQixFQUFuQixFQUF1QjtBQUNyQixRQUFNLEtBQUssR0FBRyxDQUFILENBQVg7QUFDQSxRQUFNLEtBQUssR0FBRyxDQUFILENBQVg7QUFDQSxRQUFNLFNBQVMsS0FBSyxLQUFMLEdBQWEsRUFBNUI7QUFDQSxRQUFNLE9BQU8sS0FBSyxLQUFLLElBQUksS0FBSyxLQUFLLEtBQWQsQ0FBTCxJQUE2QixLQUFLLElBQXZDLENBQWI7QUFDQSxXQUFPLENBQUMsUUFBUSxNQUFSLENBQUQsRUFBa0IsUUFBUSxJQUFSLENBQWxCLENBQVA7QUFDRDs7QUFFRCxXQUFTLGNBQVQsR0FBMEI7QUFDeEIsV0FBTyxDQUNMLENBREssRUFDRixDQURFLEVBQ0MsQ0FERCxFQUNJLENBQUMsT0FETCxFQUVMLENBRkssRUFFRixDQUZFLEVBRUMsQ0FGRCxFQUVJLENBQUMsT0FGTCxFQUdMLENBSEssRUFHRixDQUhFLEVBR0MsQ0FIRCxFQUdJLENBSEosRUFJTCxDQUpLLEVBSUYsQ0FKRSxFQUlDLENBSkQsRUFJSSxDQUpKLENBQVA7QUFNRDs7QUFFRCxXQUFTLGVBQVQsQ0FBeUIsT0FBekIsRUFBa0M7QUFDaEMsUUFBTSxTQUFTLFFBQVEsQ0FBUixJQUFhLGtCQUE1QjtBQUNBLFFBQU0sT0FBTyxRQUFRLENBQVIsSUFBYSxrQkFBMUI7QUFDQSxRQUFNLEtBQUssU0FBUyxTQUFTLEVBQWxCLENBQVg7QUFDQSxRQUFNLEtBQUssU0FBUyxLQUFLLElBQUksSUFBSSxLQUFLLElBQUwsR0FBWSxPQUFPLEdBQXZCLENBQUosQ0FBZCxDQUFYO0FBQ0EsV0FBTyxDQUFDLEtBQUssT0FBTixFQUFlLEtBQUssT0FBcEIsQ0FBUDtBQUNEOztBQUVELFdBQVMsaUJBQVQsQ0FBMkIsRUFBM0IsRUFBK0I7QUFDN0IsUUFBTSxLQUFLLEdBQUcsQ0FBSCxJQUFRLE9BQW5CO0FBQ0EsUUFBTSxLQUFLLEdBQUcsQ0FBSCxJQUFRLE9BQW5CO0FBQ0EsUUFBTSxTQUFTLEtBQUssS0FBTCxHQUFhLEVBQTVCO0FBQ0EsUUFBTSxPQUFPLEtBQUssS0FBSyxJQUFJLEtBQUssS0FBSyxLQUFkLENBQUwsSUFBNkIsS0FBSyxJQUF2QyxDQUFiO0FBQ0EsV0FBTyxDQUFDLFFBQVEsTUFBUixDQUFELEVBQWtCLFFBQVEsSUFBUixDQUFsQixDQUFQO0FBQ0Q7O0FBRUQsV0FBUyxnQkFBVCxDQUEwQixPQUExQixFQUFtQztBQUNqQyxRQUFNLEtBQUssUUFBUSxPQUFSLENBQVg7QUFDQSxRQUFNLEtBQUssR0FBRyxDQUFILENBQVg7QUFDQSxRQUFNLEtBQUssR0FBRyxDQUFILENBQVg7QUFDQSxXQUNFLE1BQU0sQ0FBTixJQUFXLE1BQU0sS0FBSyxLQUF0QixJQUNBLE1BQU0sQ0FETixJQUNXLE1BQU0sS0FBSyxNQUZ4QjtBQUlEOztBQUVELFNBQU87QUFDTCxvQkFESztBQUVMLHdCQUZLO0FBR0wsa0NBSEs7QUFJTCxvQ0FKSztBQUtMLHdDQUxLO0FBTUw7QUFOSyxHQUFQO0FBUUQiLCJmaWxlIjoibWVyY2F0b3ItcHJvamVjdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxNSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5jb25zdCBQSSA9IE1hdGguUEk7XG5jb25zdCBwb3cgPSBNYXRoLnBvdztcbmNvbnN0IHRhbiA9IE1hdGgudGFuO1xuY29uc3QgbG9nID0gTWF0aC5sb2c7XG5jb25zdCBhdGFuID0gTWF0aC5hdGFuO1xuY29uc3QgZXhwID0gTWF0aC5leHA7XG5jb25zdCBERUdSRUVTX1RPX1JBRElBTlMgPSBQSSAvIDE4MDtcbmNvbnN0IFJBRElBTlNfVE9fREVHUkVFUyA9IDE4MCAvIFBJO1xuXG5mdW5jdGlvbiByYWRpYW5zKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAqIERFR1JFRVNfVE9fUkFESUFOUztcbn1cblxuZnVuY3Rpb24gZGVncmVlcyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgKiBSQURJQU5TX1RPX0RFR1JFRVM7XG59XG5cbi8vIHNlZTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvV2ViX01lcmNhdG9yXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBXZWJNZXJjYXRvclByb2plY3Rpb24oe1xuICB0aWxlU2l6ZSA9IDUxMixcbiAgbG9uZ2l0dWRlLFxuICBsYXRpdHVkZSxcbiAgem9vbSxcbiAgd2lkdGggPSAyNTYsXG4gIGhlaWdodCA9IDI1NlxufSkge1xuICBjb25zdCBzY2FsZSA9ICh0aWxlU2l6ZSB8fCA1MTIpICogMC41IC8gUEkgKiBwb3coMiwgem9vbSk7XG4gIGNvbnN0IGxhbWRhID0gcmFkaWFucyhsb25naXR1ZGUpO1xuICBjb25zdCBwaGkgPSByYWRpYW5zKGxhdGl0dWRlKTtcbiAgY29uc3QgeCA9IHNjYWxlICogKGxhbWRhICsgUEkpO1xuICBjb25zdCB5ID0gc2NhbGUgKiAoUEkgLSBsb2codGFuKFBJICogMC4yNSArIHBoaSAqIDAuNSkpKTtcbiAgY29uc3Qgb2Zmc2V0WCA9IHdpZHRoICogMC41IC0geDtcbiAgY29uc3Qgb2Zmc2V0WSA9IGhlaWdodCAqIDAuNSAtIHk7XG5cbiAgZnVuY3Rpb24gcHJvamVjdChsbmdsYXQyKSB7XG4gICAgY29uc3QgbGFtZGEyID0gbG5nbGF0MlswXSAqIERFR1JFRVNfVE9fUkFESUFOUztcbiAgICBjb25zdCBwaGkyID0gbG5nbGF0MlsxXSAqIERFR1JFRVNfVE9fUkFESUFOUztcbiAgICBjb25zdCB4MiA9IHNjYWxlICogKGxhbWRhMiArIFBJKTtcbiAgICBjb25zdCB5MiA9IHNjYWxlICogKFBJIC0gbG9nKHRhbihQSSAqIDAuMjUgKyBwaGkyICogMC41KSkpO1xuICAgIHJldHVybiBbeDIsIHkyXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVucHJvamVjdCh4eSkge1xuICAgIGNvbnN0IHgyID0geHlbMF07XG4gICAgY29uc3QgeTIgPSB4eVsxXTtcbiAgICBjb25zdCBsYW1kYTIgPSB4MiAvIHNjYWxlIC0gUEk7XG4gICAgY29uc3QgcGhpMiA9IDIgKiAoYXRhbihleHAoUEkgLSB5MiAvIHNjYWxlKSkgLSBQSSAqIDAuMjUpO1xuICAgIHJldHVybiBbZGVncmVlcyhsYW1kYTIpLCBkZWdyZWVzKHBoaTIpXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldFZpZXdNYXRyaXg0KCkge1xuICAgIHJldHVybiBbXG4gICAgICAxLCAwLCAwLCAtb2Zmc2V0WCxcbiAgICAgIDAsIDEsIDAsIC1vZmZzZXRZLFxuICAgICAgMCwgMCwgMSwgMCxcbiAgICAgIDAsIDAsIDAsIDFcbiAgICBdO1xuICB9XG5cbiAgZnVuY3Rpb24gcHJvamVjdFZpZXdwb3J0KGxuZ2xhdDIpIHtcbiAgICBjb25zdCBsYW1kYTIgPSBsbmdsYXQyWzBdICogREVHUkVFU19UT19SQURJQU5TO1xuICAgIGNvbnN0IHBoaTIgPSBsbmdsYXQyWzFdICogREVHUkVFU19UT19SQURJQU5TO1xuICAgIGNvbnN0IHgyID0gc2NhbGUgKiAobGFtZGEyICsgUEkpO1xuICAgIGNvbnN0IHkyID0gc2NhbGUgKiAoUEkgLSBsb2codGFuKFBJICogMC4yNSArIHBoaTIgKiAwLjUpKSk7XG4gICAgcmV0dXJuIFt4MiArIG9mZnNldFgsIHkyICsgb2Zmc2V0WV07XG4gIH1cblxuICBmdW5jdGlvbiB1bnByb2plY3RWaWV3cG9ydCh4eSkge1xuICAgIGNvbnN0IHgyID0geHlbMF0gLSBvZmZzZXRYO1xuICAgIGNvbnN0IHkyID0geHlbMV0gLSBvZmZzZXRZO1xuICAgIGNvbnN0IGxhbWRhMiA9IHgyIC8gc2NhbGUgLSBQSTtcbiAgICBjb25zdCBwaGkyID0gMiAqIChhdGFuKGV4cChQSSAtIHkyIC8gc2NhbGUpKSAtIFBJICogMC4yNSk7XG4gICAgcmV0dXJuIFtkZWdyZWVzKGxhbWRhMiksIGRlZ3JlZXMocGhpMildO1xuICB9XG5cbiAgZnVuY3Rpb24gdmlld3BvcnRDb250YWlucyhsbmdsYXQyKSB7XG4gICAgY29uc3QgeHkgPSBwcm9qZWN0KGxuZ2xhdDIpO1xuICAgIGNvbnN0IHgxID0geHlbMF07XG4gICAgY29uc3QgeTEgPSB4eVsxXTtcbiAgICByZXR1cm4gKFxuICAgICAgeDEgPj0gMCAmJiB4MSA8PSBvcHRzLndpZHRoICYmXG4gICAgICB5MSA+PSAwICYmIHkxIDw9IG9wdHMuaGVpZ2h0XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcHJvamVjdCxcbiAgICB1bnByb2plY3QsXG4gICAgZ2V0Vmlld01hdHJpeDQsXG4gICAgcHJvamVjdFZpZXdwb3J0LFxuICAgIHVucHJvamVjdFZpZXdwb3J0LFxuICAgIHZpZXdwb3J0Q29udGFpbnNcbiAgfTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaGFkZXJsaWItaGVscGVycy9tZXJjYXRvci1wcm9qZWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O2tCQXFDd0IscUI7QUFyQ3hCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTSxLQUFLLEtBQUssRUFBaEI7QUFDQSxJQUFNLE1BQU0sS0FBSyxHQUFqQjtBQUNBLElBQU0sTUFBTSxLQUFLLEdBQWpCO0FBQ0EsSUFBTSxNQUFNLEtBQUssR0FBakI7QUFDQSxJQUFNLE9BQU8sS0FBSyxJQUFsQjtBQUNBLElBQU0sTUFBTSxLQUFLLEdBQWpCO0FBQ0EsSUFBTSxxQkFBcUIsS0FBSyxHQUFoQztBQUNBLElBQU0scUJBQXFCLE1BQU0sRUFBakM7O0FBRUEsU0FBUyxPQUFULENBQWlCLEtBQWpCLEVBQXdCO0FBQ3RCLFNBQU8sUUFBUSxrQkFBZjtBQUNEOztBQUVELFNBQVMsT0FBVCxDQUFpQixLQUFqQixFQUF3QjtBQUN0QixTQUFPLFFBQVEsa0JBQWY7QUFDRDs7QUFFRDtBQUNlLFNBQVMscUJBQVQsT0FPWjtBQUFBLDJCQU5ELFFBTUM7QUFBQSxNQU5ELFFBTUMsaUNBTlUsR0FNVjtBQUFBLE1BTEQsU0FLQyxRQUxELFNBS0M7QUFBQSxNQUpELFFBSUMsUUFKRCxRQUlDO0FBQUEsTUFIRCxJQUdDLFFBSEQsSUFHQztBQUFBLHdCQUZELEtBRUM7QUFBQSxNQUZELEtBRUMsOEJBRk8sR0FFUDtBQUFBLHlCQURELE1BQ0M7QUFBQSxNQURELE1BQ0MsK0JBRFEsR0FDUjs7QUFDRCxNQUFNLFFBQVEsQ0FBQyxZQUFZLEdBQWIsSUFBb0IsR0FBcEIsR0FBMEIsRUFBMUIsR0FBK0IsSUFBSSxDQUFKLEVBQU8sSUFBUCxDQUE3QztBQUNBLE1BQU0sUUFBUSxRQUFRLFNBQVIsQ0FBZDtBQUNBLE1BQU0sTUFBTSxRQUFRLFFB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LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDE1IFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG5cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cbmNvbnN0IFBJID0gTWF0aC5QSTtcbmNvbnN0IHBvdyA9IE1hdGgucG93O1xuY29uc3QgdGFuID0gTWF0aC50YW47XG5jb25zdCBsb2cgPSBNYXRoLmxvZztcbmNvbnN0IGF0YW4gPSBNYXRoLmF0YW47XG5jb25zdCBleHAgPSBNYXRoLmV4cDtcbmNvbnN0IERFR1JFRVNfVE9fUkFESUFOUyA9IFBJIC8gMTgwO1xuY29uc3QgUkFESUFOU19UT19ERUdSRUVTID0gMTgwIC8gUEk7XG5cbmZ1bmN0aW9uIHJhZGlhbnModmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICogREVHUkVFU19UT19SQURJQU5TO1xufVxuXG5mdW5jdGlvbiBkZWdyZWVzKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAqIFJBRElBTlNfVE9fREVHUkVFUztcbn1cblxuLy8gc2VlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9XZWJfTWVyY2F0b3JcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFdlYk1lcmNhdG9yUHJvamVjdGlvbih7XG4gIHRpbGVTaXplID0gNTEyLFxuICBsb25naXR1ZGUsXG4gIGxhdGl0dWRlLFxuICB6b29tLFxuICB3aWR0aCA9IDI1NixcbiAgaGVpZ2h0ID0gMjU2XG59KSB7XG4gIGNvbnN0IHNjYWxlID0gKHRpbGVTaXplIHx8IDUxMikgKiAwLjUgLyBQSSAqIHBvdygyLCB6b29tKTtcbiAgY29uc3QgbGFtZGEgPSByYWRpYW5zKGxvbmdpdHVkZSk7XG4gIGNvbnN0IHBoaSA9IHJhZGlhbnMobGF0aXR1ZGUpO1xuICBjb25zdCB4ID0gc2NhbGUgKiAobGFtZGEgKyBQSSk7XG4gIGNvbnN0IHkgPSBzY2FsZSAqIChQSSAtIGxvZyh0YW4oUEkgKiAwLjI1ICsgcGhpICogMC41KSkpO1xuICBjb25zdCBvZmZzZXRYID0gd2lkdGggKiAwLjUgLSB4O1xuICBjb25zdCBvZmZzZXRZID0gaGVpZ2h0ICogMC41IC0geTtcblxuICBmdW5jdGlvbiBwcm9qZWN0KGxuZ2xhdDIpIHtcbiAgICBjb25zdCBsYW1kYTIgPSBsbmdsYXQyWzBdICogREVHUkVFU19UT19SQURJQU5TO1xuICAgIGNvbnN0IHBoaTIgPSBsbmdsYXQyWzFdICogREVHUkVFU19UT19SQURJQU5TO1xuICAgIGNvbnN0IHgyID0gc2NhbGUgKiAobGFtZGEyICsgUEkpO1xuICAgIGNvbnN0IHkyID0gc2NhbGUgKiAoUEkgLSBsb2codGFuKFBJICogMC4yNSArIHBoaTIgKiAwLjUpKSk7XG4gICAgcmV0dXJuIFt4MiwgeTJdO1xuICB9XG5cbiAgZnVuY3Rpb24gdW5wcm9qZWN0KHh5KSB7XG4gICAgY29uc3QgeDIgPSB4eVswXTtcbiAgICBjb25zdCB5MiA9IHh5WzFdO1xuICAgIGNvbnN0IGxhbWRhMiA9IHgyIC8gc2NhbGUgLSBQSTtcbiAgICBjb25zdCBwaGkyID0gMiAqIChhdGFuKGV4cChQSSAtIHkyIC8gc2NhbGUpKSAtIFBJICogMC4yNSk7XG4gICAgcmV0dXJuIFtkZWdyZWVzKGxhbWRhMiksIGRlZ3JlZXMocGhpMildO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0Vmlld01hdHJpeDQoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIDEsIDAsIDAsIC1vZmZzZXRYLFxuICAgICAgMCwgMSwgMCwgLW9mZnNldFksXG4gICAgICAwLCAwLCAxLCAwLFxuICAgICAgMCwgMCwgMCwgMVxuICAgIF07XG4gIH1cblxuICBmdW5jdGlvbiBwcm9qZWN0Vmlld3BvcnQobG5nbGF0Mikge1xuICAgIGNvbnN0IGxhbWRhMiA9IGxuZ2xhdDJbMF0gKiBERUdSRUVTX1RPX1JBRElBTlM7XG4gICAgY29uc3QgcGhpMiA9IGxuZ2xhdDJbMV0gKiBERUdSRUVTX1RPX1JBRElBTlM7XG4gICAgY29uc3QgeDIgPSBzY2FsZSAqIChsYW1kYTIgKyBQSSk7XG4gICAgY29uc3QgeTIgPSBzY2FsZSAqIChQSSAtIGxvZyh0YW4oUEkgKiAwLjI1ICsgcGhpMiAqIDAuNSkpKTtcbiAgICByZXR1cm4gW3gyICsgb2Zmc2V0WCwgeTIgKyBvZmZzZXRZXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVucHJvamVjdFZpZXdwb3J0KHh5KSB7XG4gICAgY29uc3QgeDIgPSB4eVswXSAtIG9mZnNldFg7XG4gICAgY29uc3QgeTIgPSB4eVsxXSAtIG9mZnNldFk7XG4gICAgY29uc3QgbGFtZGEyID0geDIgLyBzY2FsZSAtIFBJO1xuICAgIGNvbnN0IHBoaTIgPSAyICogKGF0YW4oZXhwKFBJIC0geTIgLyBzY2FsZSkpIC0gUEkgKiAwLjI1KTtcbiAgICByZXR1cm4gW2RlZ3JlZXMobGFtZGEyKSwgZGVncmVlcyhwaGkyKV07XG4gIH1cblxuICBmdW5jdGlvbiB2aWV3cG9ydENvbnRhaW5zKGxuZ2xhdDIpIHtcbiAgICBjb25zdCB4eSA9IHByb2plY3QobG5nbGF0Mik7XG4gICAgY29uc3QgeDEgPSB4eVswXTtcbiAgICBjb25zdCB5MSA9IHh5WzFdO1xuICAgIHJldHVybiAoXG4gICAgICB4MSA+PSAwICYmIHgxIDw9IG9wdHMud2lkdGggJiZcbiAgICAgIHkxID49IDAgJiYgeTEgPD0gb3B0cy5oZWlnaHRcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBwcm9qZWN0LFxuICAgIHVucHJvamVjdCxcbiAgICBnZXRWaWV3TWF0cml4NCxcbiAgICBwcm9qZWN0Vmlld3BvcnQsXG4gICAgdW5wcm9qZWN0Vmlld3BvcnQsXG4gICAgdmlld3BvcnRDb250YWluc1xuICB9O1xufVxuIl19

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

exports.default = TestLayer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LWxheWVycy90ZXN0LWxheWVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFvQkE7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLFVBQVUsUUFBUSxTQUFSLENBQWhCOztBQUVBLElBQU0sYUFBYTtBQUNqQixxQkFBbUIsRUFBQyxNQUFNLENBQVAsRUFBVSxLQUFLLEdBQWYsRUFBb0IsS0FBSyxHQUF6QixFQUE4QixLQUFLLFFBQW5DLEVBREY7QUFFakIsa0JBQWdCLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxLQUFmLEVBQXNCLEtBQUssT0FBM0IsRUFBb0MsS0FBSyxNQUF6QztBQUZDLENBQW5COztJQUtxQixTOzs7Ozt3QkFFSztBQUN0QixhQUFPLFVBQVA7QUFDRDs7Ozs7Ozs7Ozs7OztBQVVELDJCQUtHO0FBQUEsZ0NBSkQsV0FJQztBQUFBLFFBSkQsV0FJQyxvQ0FKYTtBQUFBLGFBQUssRUFBRSxRQUFQO0FBQUEsS0FJYjtBQUFBLGlDQUhELFlBR0M7QUFBQSxRQUhELFlBR0MscUNBSGM7QUFBQSxhQUFLLEVBQUUsU0FBRixJQUFlLENBQXBCO0FBQUEsS0FHZDtBQUFBLDZCQUZELFFBRUM7QUFBQSxRQUZELFFBRUMsaUNBRlU7QUFBQSxhQUFLLEVBQUUsS0FBRixJQUFXLENBQUMsR0FBRCxFQUFNLENBQU4sRUFBUyxDQUFULENBQWhCO0FBQUEsS0FFVjs7QUFBQSxRQURFLEtBQ0Y7O0FBQUE7O0FBQUE7QUFFQyw4QkFGRDtBQUdDLGdDQUhEO0FBSUM7QUFKRCxPQUtJLEtBTEo7QUFPRjs7OztzQ0FFaUI7QUFBQSxVQUNULEVBRFMsR0FDSCxLQUFLLEtBREYsQ0FDVCxFQURTO0FBQUEsVUFFVCxnQkFGUyxHQUVXLEtBQUssS0FGaEIsQ0FFVCxnQkFGUzs7O0FBSWhCLFdBQUssUUFBTCxDQUFjO0FBQ1osZUFBTyxLQUFLLFFBQUwsQ0FBYyxFQUFkO0FB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VixJQUFlLE1BQU0sQ0FBTixLQUFZLENBQTNCO0FBQ0EsZUFBSyxJQUFMO0FBQ0Q7QUFWZ0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdsQzs7O3NDQUVpQjs7QUFFaEIsVUFBSSxLQUFLLEtBQUwsQ0FBVyxNQUFmLEVBQXVCO0FBQ3JCLGFBQUssS0FBTCxDQUFXLE1BQVgsR0FBb0IsS0FBSyxLQUFMLENBQVcsTUFBL0I7QUFDQTtBQUNEOztBQUVELFVBQU0sU0FBUyxLQUFLLE9BQUwsQ0FBYSxFQUFDLEtBQUssQ0FBQyxHQUFQLEVBQVksS0FBSyxJQUFqQixFQUFiLENBQWY7QUFDQSxVQUFNLFNBQVMsS0FBSyxPQUFMLENBQWEsRUFBQyxLQUFLLENBQUMsR0FBUCxFQUFZLEtBQUssT0FBakIsRUFBYixDQUFmOztBQUVBLFVBQU0sS0FBSyxPQUFPLENBQVAsR0FBVyxPQUFPLENBQTdCO0FBQ0EsVUFBTSxLQUFLLE9BQU8sQ0FBUCxHQUFXLE9BQU8sQ0FBN0I7O0FBRUEsV0FBSyxLQUFMLENBQVcsTUFBWCxHQUFvQixLQUFLLEdBQUwsQ0FBUyxLQUFLLElBQUwsQ0FBVSxLQUFLLEVBQUwsR0FBVSxLQUFLLEVBQXpCLENBQVQsRUFBdUMsR0FBdkMsQ0FBcEI7QUFDRDs7Ozs7O2tCQWhJa0IsUyIsImZpbGUiOiJ0ZXN0LWxheWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDE1IFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IExheWVyIGZyb20gJy4uL2xheWVyJztcbmltcG9ydCB7TW9kZWwsIFByb2dyYW0sIEdlb21ldHJ5fSBmcm9tICdsdW1hLmdsJztcbmNvbnN0IGdsc2xpZnkgPSByZXF1aXJlKCdnbHNsaWZ5Jyk7XG5cbmNvbnN0IEFUVFJJQlVURVMgPSB7XG4gIGluc3RhbmNlUG9zaXRpb25zOiB7c2l6ZTogMywgJzAnOiAneCcsICcxJzogJ3knLCAnMic6ICd1bnVzZWQnfSxcbiAgaW5zdGFuY2VDb2xvcnM6IHtzaXplOiAzLCAnMCc6ICdyZWQnLCAnMSc6ICdncmVlbicsICcyJzogJ2JsdWUnfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVzdExheWVyIGV4dGVuZHMgTGF5ZXIge1xuXG4gIHN0YXRpYyBnZXQgYXR0cmlidXRlcygpIHtcbiAgICByZXR1cm4gQVRUUklCVVRFUztcbiAgfVxuXG4gIC8qXG4gICAqIEBjbGFzc2Rlc2NcbiAgICogVGVzdExheWVyXG4gICAqXG4gICAqIEBjbGFzc1xuICAgKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAgICogQHBhcmFtIHtudW1iZXJ9IHByb3BzLnJhZGl1cyAtIHBvaW50IHJhZGl1c1xuICAgKi9cbiAgY29uc3RydWN0b3Ioe1xuICAgIGdldFBvc2l0aW9uID0geCA9PiB4LnBvc2l0aW9uLFxuICAgIGdldEVsZXZhdGlvbiA9IHggPT4geC5lbGV2YXRpb24gfHwgMCxcbiAgICBnZXRDb2xvciA9IHggPT4geC5jb2xvciB8fCBbMjU1LCAwLCAwXSxcbiAgICAuLi5wcm9wc1xuICB9KSB7XG4gICAgc3VwZXIoe1xuICAgICAgZ2V0UG9zaXRpb24sXG4gICAgICBnZXRFbGV2YXRpb24sXG4gICAgICBnZXRDb2xvcixcbiAgICAgIC4uLnByb3BzXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgY29uc3Qge2dsfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qge2F0dHJpYnV0ZU1hbmFnZXJ9ID0gdGhpcy5zdGF0ZTtcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgbW9kZWw6IHRoaXMuZ2V0TW9kZWwoZ2wpXG4gICAgfSk7XG5cbiAgICBhdHRyaWJ1dGVNYW5hZ2VyLmFkZEluc3RhbmNlZChBVFRSSUJVVEVTLCB7XG4gICAgICBpbnN0YW5jZVBvc2l0aW9uczoge3VwZGF0ZTogdGhpcy5jYWxjdWxhdGVJbnN0YW5jZVBvc2l0aW9uc30sXG4gICAgICBpbnN0YW5jZUNvbG9yczoge3VwZGF0ZTogdGhpcy5jYWxjdWxhdGVJbnN0YW5jZUNvbG9yc31cbiAgICB9KTtcbiAgfVxuXG4gIGRpZE1vdW50KCkge1xuICAgIHRoaXMudXBkYXRlVW5pZm9ybXMoKTtcbiAgfVxuXG4gIHdpbGxSZWNlaXZlUHJvcHMob2xkUHJvcHMsIG5ld1Byb3BzKSB7XG4gICAgc3VwZXIud2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpO1xuICAgIHRoaXMudXBkYXRlVW5pZm9ybXMoKTtcbiAgfVxuXG4gIGdldE1vZGVsKGdsKSB7XG4gICAgY29uc3QgTlVNX1NFR01FTlRTID0gMTY7XG4gICAgY29uc3QgUEkyID0gTWF0aC5QSSAqIDI7XG5cbiAgICBsZXQgcG9zaXRpb25zID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBOVU1fU0VHTUVOVFM7IGkrKykge1xuICAgICAgcG9zaXRpb25zID0gW1xuICAgICAgICAuLi5wb3NpdGlvbnMsXG4gICAgICAgIE1hdGguY29zKFBJMiAqIGkgLyBOVU1fU0VHTUVOVFMpLFxuICAgICAgICBNYXRoLnNpbihQSTIgKiBpIC8gTlVNX1NFR01FTlRTKSxcbiAgICAgICAgMFxuICAgICAgXTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IE1vZGVsKHtcbiAgICAgIHByb2dyYW06IG5ldyBQcm9ncmFtKGdsLCB7XG4gICAgICAgIHZzOiBnbHNsaWZ5KCcuL3Rlc3QtbGF5ZXItdmVydGV4Lmdsc2wnKSxcbiAgICAgICAgZnM6IGdsc2xpZnkoJy4vdGVzdC1sYXllci1mcmFnbWVudC5nbHNsJyksXG4gICAgICAgIGlkOiAndGVzdCdcbiAgICAgIH0pLFxuICAgICAgZ2VvbWV0cnk6IG5ldyBHZW9tZXRyeSh7XG4gICAgICAgIGRyYXdNb2RlOiAnVFJJQU5HTEVfRkFOJyxcbiAgICAgICAgcG9zaXRpb25zOiBuZXcgRmxvYXQzMkFycmF5KHBvc2l0aW9ucylcbiAgICAgIH0pLFxuICAgICAgLy8gaXNJbnN0YW5jZWQ6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZVVuaWZvcm1zKCkge1xuICAgIHRoaXMuY2FsY3VsYXRlUmFkaXVzKCk7XG4gICAgY29uc3Qge3JhZGl1c30gPSB0aGlzLnN0YXRlO1xuICAgIHRoaXMuc2V0VW5pZm9ybXMoe1xuICAgICAgcmFkaXVzXG4gICAgfSk7XG4gIH1cblxuICBjYWxjdWxhdGVJbnN0YW5jZVBvc2l0aW9ucyhhdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB7ZGF0YSwgZ2V0UG9zaXRpb24sIGdldEVsZXZhdGlvbn0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHt2YWx1ZSwgc2l6ZX0gPSBhdHRyaWJ1dGU7XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgcG9pbnQgb2YgZGF0YSkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSBnZXRQb3NpdGlvbihwb2ludCk7XG4gICAgICBjb25zdCBlbGV2YXRpb24gPSBnZXRFbGV2YXRpb24ocG9pbnQpO1xuICAgICAgdmFsdWVbaSArIDBdID0gcG9zaXRpb25bMF0gfHwgMDtcbiAgICAgIHZhbHVlW2kgKyAxXSA9IHBvc2l0aW9uWzFdIHx8IDA7XG4gICAgICB2YWx1ZVtpICsgMl0gPSBlbGV2YXRpb24gfHwgMDtcbiAgICAgIGkgKz0gc2l6ZTtcbiAgICB9XG4gIH1cblxuICBjYWxjdWxhdGVJbnN0YW5jZUNvbG9ycyhhdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB7ZGF0YSwgZ2V0Q29sb3J9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7dmFsdWUsIHNpemV9ID0gYXR0cmlidXRlO1xuICAgIGxldCBpID0gMDtcbiAgICBmb3IgKGNvbnN0IHBvaW50IG9mIGRhdGEpIHtcbiAgICAgIGNvbnN0IGNvbG9yID0gZ2V0Q29sb3IocG9pbnQpO1xuICAgICAgdmFsdWVbaSArIDBdID0gY29sb3JbMF0gfHwgMjU1O1xuICAgICAgdmFsdWVbaSArIDFdID0gY29sb3JbMV0gfHwgMDtcbiAgICAgIHZhbHVlW2kgKyAyXSA9IGNvbG9yWzJdIHx8IDA7XG4gICAgICBpICs9IHNpemU7XG4gICAgfVxuICB9XG5cbiAgY2FsY3VsYXRlUmFkaXVzKCkge1xuICAgIC8vIHVzZSByYWRpdXMgaWYgc3BlY2lmaWVkXG4gICAgaWYgKHRoaXMucHJvcHMucmFkaXVzKSB7XG4gICAgICB0aGlzLnN0YXRlLnJhZGl1cyA9IHRoaXMucHJvcHMucmFkaXVzO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBpeGVsMCA9IHRoaXMucHJvamVjdCh7bG9uOiAtMTIyLCBsYXQ6IDM3LjV9KTtcbiAgICBjb25zdCBwaXhlbDEgPSB0aGlzLnByb2plY3Qoe2xvbjogLTEyMiwgbGF0OiAzNy41MDAyfSk7XG5cbiAgICBjb25zdCBkeCA9IHBpeGVsMC54IC0gcGl4ZWwxLng7XG4gICAgY29uc3QgZHkgPSBwaXhlbDAueSAtIHBpeGVsMS55O1xuXG4gICAgdGhpcy5zdGF0ZS5yYWRpdXMgPSBNYXRoLm1heChNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkpLCAyLjApO1xuICB9XG5cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LWxheWVycy90ZXN0LWxheWVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFvQkE7Ozs7QUFDQTs7Ozs7Ozs7Ozs7OzhlQXJCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFJQSxJQUFNLFVBQVUsUUFBUSxTQUFSLENBQWhCOztBQUVBLElBQU0sYUFBYTtBQUNqQixxQkFBbUIsRUFBQyxNQUFNLENBQVAsRUFBVSxLQUFLLEdBQWYsRUFBb0IsS0FBSyxHQUF6QixFQUE4QixLQUFLLFFBQW5DLEVBREY7QUFFakIsa0JBQWdCLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxLQUFmLEVBQXNCLEtBQUssT0FBM0IsRUFBb0MsS0FBSyxNQUF6QztBQUZDLENBQW5COztJQUtxQixTOzs7Ozt3QkFFSztBQUN0QixhQUFPLFVBQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7Ozs7QUFRQSwyQkFLRztBQUFBLGdDQUpELFdBSUM7QUFBQSxRQUpELFdBSUMsb0NBSmE7QUFBQSxhQUFLLEVBQUUsUUFBUDtBQUFBLEtBSWI7QUFBQSxpQ0FIRCxZQUdDO0FBQUEsUUFIRCxZQUdDLHFDQUhjO0FBQUEsYUFBSyxFQUFFLFNBQUYsSUFBZSxDQUFwQjtBQUFBLEtBR2Q7QUFBQSw2QkFGRCxRQUVDO0FBQUEsUUFGRCxRQUVDLGlDQUZVO0FBQUEsYUFBSyxFQUFFLEtBQUYsSUFBVyxDQUFDLEdBQUQsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUFoQjtBQUFBLEtBRVY7O0FBQUEsUUFERSxLQUNGOztBQUFBOztBQUFBO0FBRUMsOEJBRkQ7QUFHQyxnQ0FIRDtBQUlDO0FBSkQsT0FLSSxLQUxKO0FBT0Y7Ozs7c0NBRWlCO0FBQUEsVUFDVCxFQURTLEdBQ0gsS0FBSyxLQURGLENBQ1QsRUFEUztBQUFBLFVBRVQsZ0JBRlMs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Q0FBTixLQUFZLEdBQTNCO0FBQ0EsZ0JBQU0sSUFBSSxDQUFWLElBQWUsTUFBTSxDQUFOLEtBQVksQ0FBM0I7QUFDQSxnQkFBTSxJQUFJLENBQVYsSUFBZSxNQUFNLENBQU4sS0FBWSxDQUEzQjtBQUNBLGVBQUssSUFBTDtBQUNEO0FBVmdDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXbEM7OztzQ0FFaUI7QUFDaEI7QUFDQSxVQUFJLEtBQUssS0FBTCxDQUFXLE1BQWYsRUFBdUI7QUFDckIsYUFBSyxLQUFMLENBQVcsTUFBWCxHQUFvQixLQUFLLEtBQUwsQ0FBVyxNQUEvQjtBQUNBO0FBQ0Q7O0FBRUQsVUFBTSxTQUFTLEtBQUssT0FBTCxDQUFhLEVBQUMsS0FBSyxDQUFDLEdBQVAsRUFBWSxLQUFLLElBQWpCLEVBQWIsQ0FBZjtBQUNBLFVBQU0sU0FBUyxLQUFLLE9BQUwsQ0FBYSxFQUFDLEtBQUssQ0FBQyxHQUFQLEVBQVksS0FBSyxPQUFqQixFQUFiLENBQWY7O0FBRUEsVUFBTSxLQUFLLE9BQU8sQ0FBUCxHQUFXLE9BQU8sQ0FBN0I7QUFDQSxVQUFNLEtBQUssT0FBTyxDQUFQLEdBQVcsT0FBTyxDQUE3Qjs7QUFFQSxXQUFLLEtBQUwsQ0FBVyxNQUFYLEdBQW9CLEtBQUssR0FBTCxDQUFTLEtBQUssSUFBTCxDQUFVLEtBQUssRUFBTCxHQUFVLEtBQUssRUFBekIsQ0FBVCxFQUF1QyxHQUF2QyxDQUFwQjtBQUNEOzs7Ozs7a0JBaElrQixTIiwiZmlsZSI6InRlc3QtbGF5ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMTUgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgTGF5ZXIgZnJvbSAnLi4vbGF5ZXInO1xuaW1wb3J0IHtNb2RlbCwgUHJvZ3JhbSwgR2VvbWV0cnl9IGZyb20gJ2x1bWEuZ2wnO1xuY29uc3QgZ2xzbGlmeSA9IHJlcXVpcmUoJ2dsc2xpZnknKTtcblxuY29uc3QgQVRUUklCVVRFUyA9IHtcbiAgaW5zdGFuY2VQb3NpdGlvbnM6IHtzaXplOiAzLCAnMCc6ICd4JywgJzEnOiAneScsICcyJzogJ3VudXNlZCd9LFxuICBpbnN0YW5jZUNvbG9yczoge3NpemU6IDMsICcwJzogJ3JlZCcsICcxJzogJ2dyZWVuJywgJzInOiAnYmx1ZSd9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZXN0TGF5ZXIgZXh0ZW5kcyBMYXllciB7XG5cbiAgc3RhdGljIGdldCBhdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiBBVFRSSUJVVEVTO1xuICB9XG5cbiAgLypcbiAgICogQGNsYXNzZGVzY1xuICAgKiBUZXN0TGF5ZXJcbiAgICpcbiAgICogQGNsYXNzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICAgKiBAcGFyYW0ge251bWJlcn0gcHJvcHMucmFkaXVzIC0gcG9pbnQgcmFkaXVzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgZ2V0UG9zaXRpb24gPSB4ID0+IHgucG9zaXRpb24sXG4gICAgZ2V0RWxldmF0aW9uID0geCA9PiB4LmVsZXZhdGlvbiB8fCAwLFxuICAgIGdldENvbG9yID0geCA9PiB4LmNvbG9yIHx8IFsyNTUsIDAsIDBdLFxuICAgIC4uLnByb3BzXG4gIH0pIHtcbiAgICBzdXBlcih7XG4gICAgICBnZXRQb3NpdGlvbixcbiAgICAgIGdldEVsZXZhdGlvbixcbiAgICAgIGdldENvbG9yLFxuICAgICAgLi4ucHJvcHNcbiAgICB9KTtcbiAgfVxuXG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcbiAgICBjb25zdCB7Z2x9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB7YXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBtb2RlbDogdGhpcy5nZXRNb2RlbChnbClcbiAgICB9KTtcblxuICAgIGF0dHJpYnV0ZU1hbmFnZXIuYWRkSW5zdGFuY2VkKEFUVFJJQlVURVMsIHtcbiAgICAgIGluc3RhbmNlUG9zaXRpb25zOiB7dXBkYXRlOiB0aGlzLmNhbGN1bGF0ZUluc3RhbmNlUG9zaXRpb25zfSxcbiAgICAgIGluc3RhbmNlQ29sb3JzOiB7dXBkYXRlOiB0aGlzLmNhbGN1bGF0ZUluc3RhbmNlQ29sb3JzfVxuICAgIH0pO1xuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgdGhpcy51cGRhdGVVbmlmb3JtcygpO1xuICB9XG5cbiAgd2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpIHtcbiAgICBzdXBlci53aWxsUmVjZWl2ZVByb3BzKG9sZFByb3BzLCBuZXdQcm9wcyk7XG4gICAgdGhpcy51cGRhdGVVbmlmb3JtcygpO1xuICB9XG5cbiAgZ2V0TW9kZWwoZ2wpIHtcbiAgICBjb25zdCBOVU1fU0VHTUVOVFMgPSAxNjtcbiAgICBjb25zdCBQSTIgPSBNYXRoLlBJICogMjtcblxuICAgIGxldCBwb3NpdGlvbnMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IE5VTV9TRUdNRU5UUzsgaSsrKSB7XG4gICAgICBwb3NpdGlvbnMgPSBbXG4gICAgICAgIC4uLnBvc2l0aW9ucyxcbiAgICAgICAgTWF0aC5jb3MoUEkyICogaSAvIE5VTV9TRUdNRU5UUyksXG4gICAgICAgIE1hdGguc2luKFBJMiAqIGkgLyBOVU1fU0VHTUVOVFMpLFxuICAgICAgICAwXG4gICAgICBdO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgTW9kZWwoe1xuICAgICAgcHJvZ3JhbTogbmV3IFByb2dyYW0oZ2wsIHtcbiAgICAgICAgdnM6IGdsc2xpZnkoJy4vdGVzdC1sYXllci12ZXJ0ZXguZ2xzbCcpLFxuICAgICAgICBmczogZ2xzbGlmeSgnLi90ZXN0LWxheWVyLWZyYWdtZW50Lmdsc2wnKSxcbiAgICAgICAgaWQ6ICd0ZXN0J1xuICAgICAgfSksXG4gICAgICBnZW9tZXRyeTogbmV3IEdlb21ldHJ5KHtcbiAgICAgICAgZHJhd01vZGU6ICdUUklBTkdMRV9GQU4nLFxuICAgICAgICBwb3NpdGlvbnM6IG5ldyBGbG9hdDMyQXJyYXkocG9zaXRpb25zKVxuICAgICAgfSksXG4gICAgICAvLyBpc0luc3RhbmNlZDogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlVW5pZm9ybXMoKSB7XG4gICAgdGhpcy5jYWxjdWxhdGVSYWRpdXMoKTtcbiAgICBjb25zdCB7cmFkaXVzfSA9IHRoaXMuc3RhdGU7XG4gICAgdGhpcy5zZXRVbmlmb3Jtcyh7XG4gICAgICByYWRpdXNcbiAgICB9KTtcbiAgfVxuXG4gIGNhbGN1bGF0ZUluc3RhbmNlUG9zaXRpb25zKGF0dHJpYnV0ZSkge1xuICAgIGNvbnN0IHtkYXRhLCBnZXRQb3NpdGlvbiwgZ2V0RWxldmF0aW9ufSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge3ZhbHVlLCBzaXplfSA9IGF0dHJpYnV0ZTtcbiAgICBsZXQgaSA9IDA7XG4gICAgZm9yIChjb25zdCBwb2ludCBvZiBkYXRhKSB7XG4gICAgICBjb25zdCBwb3NpdGlvbiA9IGdldFBvc2l0aW9uKHBvaW50KTtcbiAgICAgIGNvbnN0IGVsZXZhdGlvbiA9IGdldEVsZXZhdGlvbihwb2ludCk7XG4gICAgICB2YWx1ZVtpICsgMF0gPSBwb3NpdGlvblswXSB8fCAwO1xuICAgICAgdmFsdWVbaSArIDFdID0gcG9zaXRpb25bMV0gfHwgMDtcbiAgICAgIHZhbHVlW2kgKyAyXSA9IGVsZXZhdGlvbiB8fCAwO1xuICAgICAgaSArPSBzaXplO1xuICAgIH1cbiAgfVxuXG4gIGNhbGN1bGF0ZUluc3RhbmNlQ29sb3JzKGF0dHJpYnV0ZSkge1xuICAgIGNvbnN0IHtkYXRhLCBnZXRDb2xvcn0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHt2YWx1ZSwgc2l6ZX0gPSBhdHRyaWJ1dGU7XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgcG9pbnQgb2YgZGF0YSkge1xuICAgICAgY29uc3QgY29sb3IgPSBnZXRDb2xvcihwb2ludCk7XG4gICAgICB2YWx1ZVtpICsgMF0gPSBjb2xvclswXSB8fCAyNTU7XG4gICAgICB2YWx1ZVtpICsgMV0gPSBjb2xvclsxXSB8fCAwO1xuICAgICAgdmFsdWVbaSArIDJdID0gY29sb3JbMl0gfHwgMDtcbiAgICAgIGkgKz0gc2l6ZTtcbiAgICB9XG4gIH1cblxuICBjYWxjdWxhdGVSYWRpdXMoKSB7XG4gICAgLy8gdXNlIHJhZGl1cyBpZiBzcGVjaWZpZWRcbiAgICBpZiAodGhpcy5wcm9wcy5yYWRpdXMpIHtcbiAgICAgIHRoaXMuc3RhdGUucmFkaXVzID0gdGhpcy5wcm9wcy5yYWRpdXM7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGl4ZWwwID0gdGhpcy5wcm9qZWN0KHtsb246IC0xMjIsIGxhdDogMzcuNX0pO1xuICAgIGNvbnN0IHBpeGVsMSA9IHRoaXMucHJvamVjdCh7bG9uOiAtMTIyLCBsYXQ6IDM3LjUwMDJ9KTtcblxuICAgIGNvbnN0IGR4ID0gcGl4ZWwwLnggLSBwaXhlbDEueDtcbiAgICBjb25zdCBkeSA9IHBpeGVsMC55IC0gcGl4ZWwxLnk7XG5cbiAgICB0aGlzLnN0YXRlLnJhZGl1cyA9IE1hdGgubWF4KE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSksIDIuMCk7XG4gIH1cblxufVxuIl19

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

exports.default = TestLayer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LWxheWVycy90cmlhbmdsZS1sYXllci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBR0E7Ozs7QUFDQTs7Ozs7Ozs7Ozs7OztBQUVBLElBQU0sNFBBQU47O0FBZUEsSUFBTSw4SUFBTjs7SUFZcUIsUzs7Ozs7Ozs7Ozs7O0FBVW5CLDJCQUlHO0FBQUEseUJBSEQsSUFHQztBQUFBLFFBSEQsSUFHQyw2QkFITSxHQUdOO0FBQUEsNEJBRkQsT0FFQztBQUFBLFFBRkQsT0FFQyxnQ0FGUyxHQUVUOztBQUFBLFFBREUsS0FDRjs7QUFBQTs7QUFBQTtBQUVDLGdCQUZEO0FBR0M7QUFIRCxPQUlJLEtBSko7QUFNRjs7OztzQ0FFaUI7QUFBQSxVQUNULEVBRFMsR0FDSCxLQUFLLEtBREYsQ0FDVCxFQURTOzs7QUFHaEIsV0FBSyxRQUFMLENBQWM7QUFDWixlQUFPLEtBQUssUUFBTCxDQUFjLEVBQWQ7QUFESyxPQUFkO0FBR0Q7OzsrQkFFVTtBQUNULFdBQUssY0FBTDtBQUNEOzs7cUNBRWdCLFEsRUFBVSxRLEVBQVU7QUFDbkMsNEZBQXVCLFFBQXZCLEVBQWlDLFFBQWpDO0FBQ0EsV0FBSyxjQUFMO0FBQ0Q7Ozs2QkFFUSxFLEVBQUk7QUFDWCxVQUFJLG1CQUFtQixtQkFBYTtBQUNsQyxtQkFBVyxJQUFJLFlBQUosQ0FBaUIsQ0FDMUIsQ0FEMEIsRUFDckIsQ0FEcUIsRUFDbEIsQ0FEa0IsRUFFMUIsQ0FBQyxDQUZ5QixFQUV0QixDQUFDLENBRnFCLEVBRWxCLENBRmtCLEVBRzFCLENBSDBCLEVBR3RCLENBQUMsQ0FIcUIsRUFHbEIsQ0FIa0IsQ0FBakIsQ0FEdUI7QUFNbEMsZ0JBQVE7QUFDTixpQkFBTyxJQUFJLFlBQUosQ0FBaUIsQ0FDdEIsQ0FEc0IsRUFDbkIsQ0FEbUIsRUFDaEIsQ0FEZ0IsRUFDYixDQURhLEVBRXRCLENBRnNCLEVBRW5CLENBRm1CLEVBRWhCLENBRmdCLEVBRWIsQ0FGYSxFQUd0QixDQUhzQixFQUduQixDQUhtQixFQUdoQixDQUhnQixFQUdiLENBSGEsQ0FBakIsQ0FERDtBQU1OLGdCQUFNO0FBTkE7QUFOMEIsT0FBYixDQUF2Qjs7QUFnQkEsVUFBSSxpQkFBaUIsbUJBQWE7QUFDaEMsbUJBQVcsSUFBSSxZQUFKLENBQWlCLENBQzFCLENBRDBCLEVBQ3JCLENBRHFCLEVBQ2xCLENBRGtCLEVBRTFCLENBQUMsQ0FGeUIsRUFFckIsQ0FGcUIsRUFFbEIsQ0FGa0IsRUFHMUIsQ0FIMEIsRUFHdEIsQ0FBQyxDQUhxQixFQUdsQixDQUhrQixFQUkxQixDQUFDLENBSnlCLEVBSXRCLENBQUMsQ0FKcUIsRUFJbEIsQ0FKa0IsQ0FBakIsQ0FEcUI7QUFNaEMsZ0JBQVE7QUFDTixpQkFBTyxJQUFJLFlBQUosQ0FBaUIsQ0FDdEIsR0FEc0IsRUFDakIsR0FEaUIsRUFDWixDQURZLEVBQ1QsQ0FEUyxFQUV0QixHQUZzQixFQUVqQixHQUZpQixFQUVaLENBRlksRUFFVCxDQUZTLEVBR3RCLEdBSHNCLEVBR2pCLEdBSGlCLEVBR1osQ0FIWSxFQUdULENBSFMsRUFJdEIsR0FKc0IsRUFJakIsR0FKaUIsRUFJWixDQUpZLEVBSVQsQ0FKUyxDQUFqQixDQUREO0FBT04sZ0JBQU07QUFQQTtBQU53QixPQUFiLENBQXJCOztBQWlCQSxVQUFJLFVBQVUsa0JBQVksRUFBWixFQUFnQjtBQUM1QixZQUFJLGFBRHdCO0FBRTVCLFlBQUk7QUFGd0IsT0FBaEIsQ0FBZDs7QUFLQSxVQUFJLFdBQVcsZ0JBQVU7QUFDdkIsa0JBQVUsZ0JBRGE7QUFFdkI7QUFGdUIsT0FBVixDQUFmOztBQUtBLFVBQUksU0FBUyxnQkFBVTtBQUNyQixrQkFBVSxjQURXO0FBRXJCO0FBRnFCLE9BQVYsQ0FBYjs7QUFLQSxhQUFPLFFBQVA7QUFDRDs7O3FDQUVnQjtBQUNmLFVBQUksU0FBUyw0QkFBc0I7QUFDakMsZ0JBQVEsS0FBSyxLQUFMLENBQVcsS0FBWCxHQUFtQixLQUFLLEtBQUwsQ0FBVztBQURMLE9BQXRCLENBQWI7O0FBRGUsVUFLUixLQUxRLEdBS0MsS0FBSyxLQUxOLENBS1IsS0FMUTs7OztBQVFmLFVBQUksT0FBTyxnQkFBWDtBQUNBLFdBQUssUUFBTCxDQUFjLE9BQU8sSUFBckIsRUFBMkIsTUFBTSxNQUFqQzs7QUFFQSxXQUFLLFdBQUwsQ0FBaUI7QUFDZixtQkFBVyxJQURJO0FBRWYsa0JBQVUsT0FBTztBQUZGLE9BQWpCO0FBSUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkExR2tCLFMiLCJmaWxlIjoidHJpYW5nbGUtbGF5ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBtYXgtc3RhdGVtZW50cywgbm8tdmFyICovXG4vKiBlc2xpbnQtZGlzYWJsZSBhcnJheS1icmFja2V0LXNwYWNpbmcsIG5vLW11bHRpLXNwYWNlcyAqL1xuXG5pbXBvcnQgTGF5ZXIgZnJvbSAnLi4vbGF5ZXInO1xuaW1wb3J0IHtQcm9ncmFtLCBQZXJzcGVjdGl2ZUNhbWVyYSwgTW9kZWwsIEdlb21ldHJ5LCBNYXQ0fSBmcm9tICdsdW1hLmdsJztcblxuY29uc3QgVkVSVEVYX1NIQURFUiA9IGBcbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9ucztcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9ycztcblxudW5pZm9ybSBtYXQ0IHVNVk1hdHJpeDtcbnVuaWZvcm0gbWF0NCB1UE1hdHJpeDtcblxudmFyeWluZyB2ZWM0IHZDb2xvcjtcblxudm9pZCBtYWluKHZvaWQpIHtcbiAgZ2xfUG9zaXRpb24gPSB1UE1hdHJpeCAqIHVNVk1hdHJpeCAqIHZlYzQocG9zaXRpb25zLCAxLjApO1xuICB2Q29sb3IgPSBjb2xvcnM7XG59XG5gO1xuXG5jb25zdCBGUkFHTUVOVF9TSEFERVIgPSBgXG4jaWZkZWYgR0xfRVNcbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNlbmRpZlxuXG52YXJ5aW5nIHZlYzQgdkNvbG9yO1xuXG52b2lkIG1haW4odm9pZCkge1xuICBnbF9GcmFnQ29sb3IgPSB2Q29sb3I7XG59XG5gO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZXN0TGF5ZXIgZXh0ZW5kcyBMYXllciB7XG5cbiAgLypcbiAgICogQGNsYXNzZGVzY1xuICAgKiBUZXN0TGF5ZXJcbiAgICpcbiAgICogQGNsYXNzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICAgKiBAcGFyYW0ge251bWJlcn0gcHJvcHMucmFkaXVzIC0gcG9pbnQgcmFkaXVzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgclRyaSA9IDAuMCxcbiAgICByU3F1YXJlID0gMC4wLFxuICAgIC4uLnByb3BzXG4gIH0pIHtcbiAgICBzdXBlcih7XG4gICAgICByVHJpLFxuICAgICAgclNxdWFyZSxcbiAgICAgIC4uLnByb3BzXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgY29uc3Qge2dsfSA9IHRoaXMuc3RhdGU7XG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIG1vZGVsOiB0aGlzLmdldE1vZGVsKGdsKVxuICAgIH0pO1xuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgdGhpcy51cGRhdGVVbmlmb3JtcygpO1xuICB9XG5cbiAgd2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpIHtcbiAgICBzdXBlci53aWxsUmVjZWl2ZVByb3BzKG9sZFByb3BzLCBuZXdQcm9wcyk7XG4gICAgdGhpcy51cGRhdGVVbmlmb3JtcygpO1xuICB9XG5cbiAgZ2V0TW9kZWwoZ2wpIHtcbiAgICB2YXIgdHJpYW5nbGVHZW9tZXRyeSA9IG5ldyBHZW9tZXRyeSh7XG4gICAgICBwb3NpdGlvbnM6IG5ldyBGbG9hdDMyQXJyYXkoW1xuICAgICAgICAwLCAgIDEsIDAsXG4gICAgICAgIC0xLCAtMSwgMCxcbiAgICAgICAgMSwgIC0xLCAwXG4gICAgICBdKSxcbiAgICAgIGNvbG9yczoge1xuICAgICAgICB2YWx1ZTogbmV3IEZsb2F0MzJBcnJheShbXG4gICAgICAgICAgMSwgMCwgMCwgMSxcbiAgICAgICAgICAwLCAxLCAwLCAxLFxuICAgICAgICAgIDAsIDAsIDEsIDFcbiAgICAgICAgXSksXG4gICAgICAgIHNpemU6IDRcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHZhciBzcXVhcmVHZW9tZXRyeSA9IG5ldyBHZW9tZXRyeSh7XG4gICAgICBwb3NpdGlvbnM6IG5ldyBGbG9hdDMyQXJyYXkoW1xuICAgICAgICAxLCAgIDEsIDAsXG4gICAgICAgIC0xLCAgMSwgMCxcbiAgICAgICAgMSwgIC0xLCAwLFxuICAgICAgICAtMSwgLTEsIDBdKSxcbiAgICAgIGNvbG9yczoge1xuICAgICAgICB2YWx1ZTogbmV3IEZsb2F0MzJBcnJheShbXG4gICAgICAgICAgMC41LCAwLjUsIDEsIDEsXG4gICAgICAgICAgMC41LCAwLjUsIDEsIDEsXG4gICAgICAgICAgMC41LCAwLjUsIDEsIDEsXG4gICAgICAgICAgMC41LCAwLjUsIDEsIDFcbiAgICAgICAgXSksXG4gICAgICAgIHNpemU6IDRcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHZhciBwcm9ncmFtID0gbmV3IFByb2dyYW0oZ2wsIHtcbiAgICAgIHZzOiBWRVJURVhfU0hBREVSLFxuICAgICAgZnM6IEZSQUdNRU5UX1NIQURFUlxuICAgIH0pO1xuXG4gICAgdmFyIHRyaWFuZ2xlID0gbmV3IE1vZGVsKHtcbiAgICAgIGdlb21ldHJ5OiB0cmlhbmdsZUdlb21ldHJ5LFxuICAgICAgcHJvZ3JhbVxuICAgIH0pO1xuXG4gICAgdmFyIHNxdWFyZSA9IG5ldyBNb2RlbCh7XG4gICAgICBnZW9tZXRyeTogc3F1YXJlR2VvbWV0cnksXG4gICAgICBwcm9ncmFtXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJpYW5nbGU7XG4gIH1cblxuICB1cGRhdGVVbmlmb3JtcygpIHtcbiAgICB2YXIgY2FtZXJhID0gbmV3IFBlcnNwZWN0aXZlQ2FtZXJhKHtcbiAgICAgIGFzcGVjdDogdGhpcy5wcm9wcy53aWR0aCAvIHRoaXMucHJvcHMuaGVpZ2h0XG4gICAgfSk7XG5cbiAgICBjb25zdCB7bW9kZWx9ID0gdGhpcy5zdGF0ZTtcblxuICAgIC8vIGdldCBuZXcgdmlldyBtYXRyaXggb3V0IG9mIGVsZW1lbnQgYW5kIGNhbWVyYSBtYXRyaWNlc1xuICAgIHZhciB2aWV3ID0gbmV3IE1hdDQoKTtcbiAgICB2aWV3Lm11bE1hdDQyKGNhbWVyYS52aWV3LCBtb2RlbC5tYXRyaXgpO1xuXG4gICAgdGhpcy5zZXRVbmlmb3Jtcyh7XG4gICAgICB1TVZNYXRyaXg6IHZpZXcsXG4gICAgICB1UE1hdHJpeDogY2FtZXJhLnByb2plY3Rpb25cbiAgICB9KTtcbiAgfVxufVxuXG4vKlxuZXhwb3J0IGZ1bmN0aW9uIGFwcCgpIHtcblxuICBmdW5jdGlvbiBhbmltYXRlKCkge1xuICAgIHJUcmkgKz0gMC4wMTtcbiAgICByU3F1YXJlICs9IDAuMTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRyYXdTY2VuZSgpIHtcbiAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7XG5cbiAgICAvLyBEcmF3IHRyaWFuZ2xlXG4gICAgdHJpYW5nbGVcbiAgICAgIC5zZXRQb3NpdGlvbihuZXcgVmVjMygtMS41LCAwLCAtNykpXG4gICAgICAuc2V0Um90YXRpb24obmV3IFZlYzMoMCwgclRyaSwgMCkpXG4gICAgICAudXBkYXRlTWF0cml4KCk7XG4gICAgc2V0dXBNb2RlbCh0cmlhbmdsZSk7XG4gICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDMpO1xuXG4gICAgLy8gRHJhdyBTcXVhcmVcbiAgICBzcXVhcmVcbiAgICAgIC5zZXRQb3NpdGlvbihuZXcgVmVjMygxLjUsIDAsIC03KSlcbiAgICAgIC5zZXRSb3RhdGlvbihuZXcgVmVjMyhyU3F1YXJlLCAwLCAwKSlcbiAgICAgIC51cGRhdGVNYXRyaXgoKTtcbiAgICBzZXR1cE1vZGVsKHNxdWFyZSk7XG4gICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRV9TVFJJUCwgMCwgNCk7XG4gIH1cblxuICBmdW5jdGlvbiB0aWNrKCkge1xuICAgIGRyYXdTY2VuZSgpO1xuICAgIGFuaW1hdGUoKTtcbiAgICBGeC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljayk7XG4gIH1cblxuICB0aWNrKCk7XG59O1xuKi9cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LWxheWVycy90cmlhbmdsZS1sYXllci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBR0E7Ozs7QUFDQTs7Ozs7Ozs7Ozs4ZUFKQTtBQUNBOztBQUtBLElBQU0sNFBBQU47O0FBZUEsSUFBTSw4SUFBTjs7SUFZcUIsUzs7O0FBRW5COzs7Ozs7Ozs7QUFRQSwyQkFJRztBQUFBLHlCQUhELElBR0M7QUFBQSxRQUhELElBR0MsNkJBSE0sR0FHTjtBQUFBLDRCQUZELE9BRUM7QUFBQSxRQUZELE9BRUMsZ0NBRlMsR0FFVDs7QUFBQSxRQURFLEtBQ0Y7O0FBQUE7O0FBQUE7QUFFQyxnQkFGRDtBQUdDO0FBSEQsT0FJSSxLQUpKO0FBTUY7Ozs7c0NBRWlCO0FBQUEsVUFDVCxFQURTLEdBQ0gsS0FBSyxLQURGLENBQ1QsRUFEUzs7O0FBR2hCLFdBQUssUUFBTCxDQUFjO0FBQ1osZUFBTyxLQUFLLFFBQUwsQ0FBYyxFQUFkO0FBREssT0FBZDtBQUdEOzs7K0JBRVU7QUFDVCxXQUFLLGNBQUw7QUFDRDs7O3FDQUVnQixRLEVBQVUsUSxFQUFVO0FBQ25DLDRGQUF1QixRQUF2QixFQUFpQyxRQUFqQztBQUNBLFdBQUssY0FBTDtBQUNEOzs7NkJBRVEsRSxFQUFJO0FBQ1gsVUFBSSxtQkFBbUIsbUJBQWE7QUFDbEMsbUJBQVcsSUFBSSxZQUFKLENBQWlCLENBQzFCLENBRDBCLEVBQ3JCLENBRHFCLEVBQ2xCLENBRGtCLEVBRTFCLENBQUMsQ0FGeUIsRUFFdEIsQ0FBQyxDQUZxQixFQUVsQixDQUZrQixFQUcxQixDQUgwQixFQUd0QixDQUFDLENBSHFCLEVBR2xCLENBSGtCLENBQWpCLENBRHVCO0FBTWxDLGdCQUFRO0FBQ04saUJBQU8sSUFBSSxZQUFKLENBQWlCLENBQ3RCLENBRHNCLEVBQ25CLENBRG1CLEVBQ2hCLENBRGdCLEVBQ2IsQ0FEYSxFQUV0QixDQUZzQixFQUVuQixDQUZtQixFQUVoQixDQUZnQixFQUViLENBRmEsRUFHdEIsQ0FIc0IsRUFHbkIsQ0FIbUIsRUFHaEIsQ0FIZ0IsRUFHYixDQUhhLENBQWpCLENBREQ7QUFNTixnQkFBTTtBQU5BO0FBTjBCLE9BQWIsQ0FBdkI7O0FBZ0JBLFVBQUksaUJBQWlCLG1CQUFhO0FBQ2hDLG1CQUFXLElBQUksWUFBSixDQUFpQixDQUMxQixDQUQwQixFQUNyQixDQURxQixFQUNsQixDQURrQixFQUUxQixDQUFDLENBRnlCLEVBRXJCLENBRnFCLEVBRWxCLENBRmtCLEVBRzFCLENBSDBCLEVBR3RCLENBQUMsQ0FIcUIsRUFHbEIsQ0FIa0IsRUFJMUIsQ0FBQyxDQUp5QixFQUl0QixDQUFDLENBSnFCLEVBSWxCLENBSmtCLENBQWpCLENBRHFCO0FBTWhDLGdCQUFRO0FBQ04saUJBQU8sSUFBSSxZQUFKLENBQWlCLENBQ3RCLEdBRHNCLEVBQ2pCLEdBRGlCLEVBQ1osQ0FEWSxFQUNULENBRFMsRUFFdEIsR0FGc0IsRUFFakIsR0FGaUIsRUFFWixDQUZZLEVBRVQsQ0FGUyxFQUd0QixHQUhzQixFQUdqQixHQUhpQixFQUdaLENBSFksRUFHVCxDQUhTLEVBSXRCLEdBSnNCLEVBSWpCLEdBSmlCLEVBSVosQ0FKWSxFQUlULENBSlMsQ0FBakIsQ0FERDtBQU9OLGdCQUFNO0FBUEE7QUFOd0IsT0FBYixDQUFyQjs7QUFpQkEsVUFBSSxVQUFVLGtCQUFZLEVBQVosRUFBZ0I7QUFDNUIsWUFBSSxhQUR3QjtBQUU1QixZQUFJO0FBRndCLE9BQWhCLENBQWQ7O0FBS0EsVUFBSSxXQUFXLGdCQUFVO0FBQ3ZCLGtCQUFVLGdCQURhO0FBRXZCO0FBRnVCLE9BQVYsQ0FBZjs7QUFLQSxVQUFJLFNBQVMsZ0JBQVU7QUFDckIsa0JBQVUsY0FEVztBQUVyQjtBQUZxQixPQUFWLENBQWI7O0FBS0EsYUFBTyxRQUFQO0FBQ0Q7OztxQ0FFZ0I7QUFDZixVQUFJLFNBQVMsNEJBQXNCO0FBQ2pDLGdCQUFRLEtBQUssS0FBTCxDQUFXLEtBQVgsR0FBbUIsS0FBSyxLQUFMLENBQVc7QUFETCxPQUF0QixDQUFiOztBQURlLFVBS1IsS0FMUSxHQUtDLEtBQUssS0FMTixDQUtSLEtBTFE7O0FBT2Y7O0FBQ0EsVUFBSSxPQUFPLGdCQUFYO0FBQ0EsV0FBSyxRQUFMLENBQWMsT0FBTyxJQUFyQixFQUEyQixNQUFNLE1BQWpDOztBQUVBLFdBQUssV0FBTCxDQUFpQjtBQUNmLG1CQUFXLElBREk7QUFFZixrQkFBVSxPQUFPO0FBRkYsT0FBakI7QUFJRDs7Ozs7O0FBR0g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkE3R3FCLFMiLCJmaWxlIjoidHJpYW5nbGUtbGF5ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBtYXgtc3RhdGVtZW50cywgbm8tdmFyICovXG4vKiBlc2xpbnQtZGlzYWJsZSBhcnJheS1icmFja2V0LXNwYWNpbmcsIG5vLW11bHRpLXNwYWNlcyAqL1xuXG5pbXBvcnQgTGF5ZXIgZnJvbSAnLi4vbGF5ZXInO1xuaW1wb3J0IHtQcm9ncmFtLCBQZXJzcGVjdGl2ZUNhbWVyYSwgTW9kZWwsIEdlb21ldHJ5LCBNYXQ0fSBmcm9tICdsdW1hLmdsJztcblxuY29uc3QgVkVSVEVYX1NIQURFUiA9IGBcbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9ucztcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9ycztcblxudW5pZm9ybSBtYXQ0IHVNVk1hdHJpeDtcbnVuaWZvcm0gbWF0NCB1UE1hdHJpeDtcblxudmFyeWluZyB2ZWM0IHZDb2xvcjtcblxudm9pZCBtYWluKHZvaWQpIHtcbiAgZ2xfUG9zaXRpb24gPSB1UE1hdHJpeCAqIHVNVk1hdHJpeCAqIHZlYzQocG9zaXRpb25zLCAxLjApO1xuICB2Q29sb3IgPSBjb2xvcnM7XG59XG5gO1xuXG5jb25zdCBGUkFHTUVOVF9TSEFERVIgPSBgXG4jaWZkZWYgR0xfRVNcbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNlbmRpZlxuXG52YXJ5aW5nIHZlYzQgdkNvbG9yO1xuXG52b2lkIG1haW4odm9pZCkge1xuICBnbF9GcmFnQ29sb3IgPSB2Q29sb3I7XG59XG5gO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZXN0TGF5ZXIgZXh0ZW5kcyBMYXllciB7XG5cbiAgLypcbiAgICogQGNsYXNzZGVzY1xuICAgKiBUZXN0TGF5ZXJcbiAgICpcbiAgICogQGNsYXNzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICAgKiBAcGFyYW0ge251bWJlcn0gcHJvcHMucmFkaXVzIC0gcG9pbnQgcmFkaXVzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgclRyaSA9IDAuMCxcbiAgICByU3F1YXJlID0gMC4wLFxuICAgIC4uLnByb3BzXG4gIH0pIHtcbiAgICBzdXBlcih7XG4gICAgICByVHJpLFxuICAgICAgclNxdWFyZSxcbiAgICAgIC4uLnByb3BzXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgY29uc3Qge2dsfSA9IHRoaXMuc3RhdGU7XG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIG1vZGVsOiB0aGlzLmdldE1vZGVsKGdsKVxuICAgIH0pO1xuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgdGhpcy51cGRhdGVVbmlmb3JtcygpO1xuICB9XG5cbiAgd2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpIHtcbiAgICBzdXBlci53aWxsUmVjZWl2ZVByb3BzKG9sZFByb3BzLCBuZXdQcm9wcyk7XG4gICAgdGhpcy51cGRhdGVVbmlmb3JtcygpO1xuICB9XG5cbiAgZ2V0TW9kZWwoZ2wpIHtcbiAgICB2YXIgdHJpYW5nbGVHZW9tZXRyeSA9IG5ldyBHZW9tZXRyeSh7XG4gICAgICBwb3NpdGlvbnM6IG5ldyBGbG9hdDMyQXJyYXkoW1xuICAgICAgICAwLCAgIDEsIDAsXG4gICAgICAgIC0xLCAtMSwgMCxcbiAgICAgICAgMSwgIC0xLCAwXG4gICAgICBdKSxcbiAgICAgIGNvbG9yczoge1xuICAgICAgICB2YWx1ZTogbmV3IEZsb2F0MzJBcnJheShbXG4gICAgICAgICAgMSwgMCwgMCwgMSxcbiAgICAgICAgICAwLCAxLCAwLCAxLFxuICAgICAgICAgIDAsIDAsIDEsIDFcbiAgICAgICAgXSksXG4gICAgICAgIHNpemU6IDRcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHZhciBzcXVhcmVHZW9tZXRyeSA9IG5ldyBHZW9tZXRyeSh7XG4gICAgICBwb3NpdGlvbnM6IG5ldyBGbG9hdDMyQXJyYXkoW1xuICAgICAgICAxLCAgIDEsIDAsXG4gICAgICAgIC0xLCAgMSwgMCxcbiAgICAgICAgMSwgIC0xLCAwLFxuICAgICAgICAtMSwgLTEsIDBdKSxcbiAgICAgIGNvbG9yczoge1xuICAgICAgICB2YWx1ZTogbmV3IEZsb2F0MzJBcnJheShbXG4gICAgICAgICAgMC41LCAwLjUsIDEsIDEsXG4gICAgICAgICAgMC41LCAwLjUsIDEsIDEsXG4gICAgICAgICAgMC41LCAwLjUsIDEsIDEsXG4gICAgICAgICAgMC41LCAwLjUsIDEsIDFcbiAgICAgICAgXSksXG4gICAgICAgIHNpemU6IDRcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHZhciBwcm9ncmFtID0gbmV3IFByb2dyYW0oZ2wsIHtcbiAgICAgIHZzOiBWRVJURVhfU0hBREVSLFxuICAgICAgZnM6IEZSQUdNRU5UX1NIQURFUlxuICAgIH0pO1xuXG4gICAgdmFyIHRyaWFuZ2xlID0gbmV3IE1vZGVsKHtcbiAgICAgIGdlb21ldHJ5OiB0cmlhbmdsZUdlb21ldHJ5LFxuICAgICAgcHJvZ3JhbVxuICAgIH0pO1xuXG4gICAgdmFyIHNxdWFyZSA9IG5ldyBNb2RlbCh7XG4gICAgICBnZW9tZXRyeTogc3F1YXJlR2VvbWV0cnksXG4gICAgICBwcm9ncmFtXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJpYW5nbGU7XG4gIH1cblxuICB1cGRhdGVVbmlmb3JtcygpIHtcbiAgICB2YXIgY2FtZXJhID0gbmV3IFBlcnNwZWN0aXZlQ2FtZXJhKHtcbiAgICAgIGFzcGVjdDogdGhpcy5wcm9wcy53aWR0aCAvIHRoaXMucHJvcHMuaGVpZ2h0XG4gICAgfSk7XG5cbiAgICBjb25zdCB7bW9kZWx9ID0gdGhpcy5zdGF0ZTtcblxuICAgIC8vIGdldCBuZXcgdmlldyBtYXRyaXggb3V0IG9mIGVsZW1lbnQgYW5kIGNhbWVyYSBtYXRyaWNlc1xuICAgIHZhciB2aWV3ID0gbmV3IE1hdDQoKTtcbiAgICB2aWV3Lm11bE1hdDQyKGNhbWVyYS52aWV3LCBtb2RlbC5tYXRyaXgpO1xuXG4gICAgdGhpcy5zZXRVbmlmb3Jtcyh7XG4gICAgICB1TVZNYXRyaXg6IHZpZXcsXG4gICAgICB1UE1hdHJpeDogY2FtZXJhLnByb2plY3Rpb25cbiAgICB9KTtcbiAgfVxufVxuXG4vKlxuZXhwb3J0IGZ1bmN0aW9uIGFwcCgpIHtcblxuICBmdW5jdGlvbiBhbmltYXRlKCkge1xuICAgIHJUcmkgKz0gMC4wMTtcbiAgICByU3F1YXJlICs9IDAuMTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRyYXdTY2VuZSgpIHtcbiAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7XG5cbiAgICAvLyBEcmF3IHRyaWFuZ2xlXG4gICAgdHJpYW5nbGVcbiAgICAgIC5zZXRQb3NpdGlvbihuZXcgVmVjMygtMS41LCAwLCAtNykpXG4gICAgICAuc2V0Um90YXRpb24obmV3IFZlYzMoMCwgclRyaSwgMCkpXG4gICAgICAudXBkYXRlTWF0cml4KCk7XG4gICAgc2V0dXBNb2RlbCh0cmlhbmdsZSk7XG4gICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDMpO1xuXG4gICAgLy8gRHJhdyBTcXVhcmVcbiAgICBzcXVhcmVcbiAgICAgIC5zZXRQb3NpdGlvbihuZXcgVmVjMygxLjUsIDAsIC03KSlcbiAgICAgIC5zZXRSb3RhdGlvbihuZXcgVmVjMyhyU3F1YXJlLCAwLCAwKSlcbiAgICAgIC51cGRhdGVNYXRyaXgoKTtcbiAgICBzZXR1cE1vZGVsKHNxdWFyZSk7XG4gICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRV9TVFJJUCwgMCwgNCk7XG4gIH1cblxuICBmdW5jdGlvbiB0aWNrKCkge1xuICAgIGRyYXdTY2VuZSgpO1xuICAgIGFuaW1hdGUoKTtcbiAgICBGeC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljayk7XG4gIH1cblxuICB0aWNrKCk7XG59O1xuKi9cbiJdfQ==

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

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O1FBRWdCLFcsR0FBQSxXO1FBc0JBLGUsR0FBQSxlOztlQWROLGE7Ozs7QUFSSCxTQUFTLFdBQVQsQ0FBcUIsTUFBckIsRUFBNkI7QUFDbEMsTUFBSSxjQUFjLE1BQWQsS0FBeUIsQ0FBQyxPQUFPLE9BQU8sUUFBZCxDQUE5QixFQUF1RDtBQUNyRCxXQUFPLE9BQU8sUUFBZCxJQUEwQixTQUFTLFFBQVQsR0FBb0I7QUFDNUMsYUFBTyxjQUFjLElBQWQsQ0FBUDtBQUNELEtBRkQ7QUFHRDtBQUNGOztBQUVELFNBQVUsYUFBVixDQUF3QixHQUF4QjtBQUFBLHNGQUNhLEdBRGI7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHNCQUNvQixPQUFPLElBQVAsQ0FBWSxHQUFaLENBRHBCOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ2EsYUFEYjs7QUFBQSxnQkFFUSxJQUFJLGNBQUosQ0FBbUIsR0FBbkIsS0FBMkIsUUFBUSxPQUFPLFFBRmxEO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEsaUJBR1ksSUFBSSxHQUFKLENBSFo7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFRQSxTQUFTLGFBQVQsQ0FBdUIsQ0FBdkIsRUFBMEI7QUFDeEIsU0FBTyxNQUFNLElBQU4sSUFBYyxRQUFPLENBQVAseUNBQU8sQ0FBUCxPQUFhLFFBQTNCLElBQXVDLEVBQUUsV0FBRixLQUFrQixNQUFoRTtBQUNEOzs7O0FBSU0sU0FBUyxlQUFULENBQXlCLENBQXpCLEVBQTRCLENBQTVCLEVBQW1EO0FBQUEsbUVBQUosRUFBSTs7QUFBQSx5QkFBbkIsTUFBbUI7QUFBQSxNQUFuQixNQUFtQiwrQkFBVixFQUFVOzs7QUFFeEQsTUFBSSxNQUFNLENBQVYsRUFBYTtBQUNYLFdBQU8sSUFBUDtBQUNEOztBQUVELE1BQUksUUFBTyxDQUFQLHlDQUFPLENBQVAsT0FBYSxRQUFiLElBQXlCLE1BQU0sSUFBL0IsSUFDRixRQUFPLENBQVAseUNBQU8sQ0FBUCxPQUFhLFFBRFgsSUFDdUIsTUFBTSxJQURqQyxFQUN1QztBQUNyQyxXQUFPLEtBQVA7QUFDRDs7QUFFRCxNQUFJLE9BQU8sSUFBUCxDQUFZLENBQVosRUFBZSxNQUFmLEtBQTBCLE9BQU8sSUFBUCxDQUFZLENBQVosRUFBZSxNQUE3QyxFQUFxRDtBQUNuRCxXQUFPLEtBQVA7QUFDRDs7QUFFRCxPQUFLLElBQU0sR0FBWCxJQUFrQixDQUFsQixFQUFxQjtBQUNuQixRQUFJLEVBQUUsT0FBTyxNQUFULE1BQXFCLEVBQUUsT0FBTyxDQUFULEtBQWUsRUFBRSxHQUFGLE1BQVcsRUFBRSxHQUFGLENBQS9DLENBQUosRUFBNEQ7QUFDMUQsYUFBTyxLQUFQO0FBQ0Q7QUFDRjtBQUNELE9BQUssSUFBTSxJQUFYLElBQWtCLENBQWxCLEVBQXFCO0FBQ25CLFFBQUksRUFBRSxRQUFPLE1BQVQsS0FBcUIsRUFBRSxRQUFPLENBQVQsQ0FBekIsRUFBdUM7QUFDckMsYUFBTyxLQUFQO0FBQ0Q7QUFDRjtBQUNELFNBQU8sSUFBUDtBQUNEIiwiZmlsZSI6InV0aWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBFbmFibGUgY2xhc3NpYyBKYXZhU2NyaXB0IG9iamVjdCBtYXBzIHRvIGJlIHVzZWQgYXMgZGF0YVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkSXRlcmF0b3Iob2JqZWN0KSB7XG4gIGlmIChpc1BsYWluT2JqZWN0KG9iamVjdCkgJiYgIW9iamVjdFtTeW1ib2wuaXRlcmF0b3JdKSB7XG4gICAgb2JqZWN0W1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiBpdGVyYXRvcigpIHtcbiAgICAgIHJldHVybiB2YWx1ZUl0ZXJhdG9yKHRoaXMpO1xuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24qIHZhbHVlSXRlcmF0b3Iob2JqKSB7XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iaikpIHtcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkgJiYga2V5ICE9PSBTeW1ib2wuaXRlcmF0b3IpIHtcbiAgICAgIHlpZWxkIG9ialtrZXldO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc1BsYWluT2JqZWN0KG8pIHtcbiAgcmV0dXJuIG8gIT09IG51bGwgJiYgdHlwZW9mIG8gPT09ICdvYmplY3QnICYmIG8uY29uc3RydWN0b3IgPT09IE9iamVjdDtcbn1cblxuLy8gU2hhbGxvdyBjb21wYXJlXG4vKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG5leHBvcnQgZnVuY3Rpb24gYXJlRXF1YWxTaGFsbG93KGEsIGIsIHtpZ25vcmUgPSB7fX0gPSB7fSkge1xuXG4gIGlmIChhID09PSBiKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIGEgIT09ICdvYmplY3QnIHx8IGEgPT09IG51bGwgfHxcbiAgICB0eXBlb2YgYiAhPT0gJ29iamVjdCcgfHwgYiA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChPYmplY3Qua2V5cyhhKS5sZW5ndGggIT09IE9iamVjdC5rZXlzKGIpLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IGluIGEpIHtcbiAgICBpZiAoIShrZXkgaW4gaWdub3JlKSAmJiAoIShrZXkgaW4gYikgfHwgYVtrZXldICE9PSBiW2tleV0pKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIGZvciAoY29uc3Qga2V5IGluIGIpIHtcbiAgICBpZiAoIShrZXkgaW4gaWdub3JlKSAmJiAoIShrZXkgaW4gYSkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O1FBRWdCLFcsR0FBQSxXO1FBc0JBLGUsR0FBQSxlOztlQWROLGE7O0FBVlY7O0FBRU8sU0FBUyxXQUFULENBQXFCLE1BQXJCLEVBQTZCO0FBQ2xDLE1BQUksY0FBYyxNQUFkLEtBQXlCLENBQUMsT0FBTyxPQUFPLFFBQWQsQ0FBOUIsRUFBdUQ7QUFDckQsV0FBTyxPQUFPLFFBQWQsSUFBMEIsU0FBUyxRQUFULEdBQW9CO0FBQzVDLGFBQU8sY0FBYyxJQUFkLENBQVA7QUFDRCxLQUZEO0FBR0Q7QUFDRjs7QUFFRCxTQUFVLGFBQVYsQ0FBd0IsR0FBeEI7QUFBQSxzRkFDYSxHQURiOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxzQkFDb0IsT0FBTyxJQUFQLENBQVksR0FBWixDQURwQjs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNhLGFBRGI7O0FBQUEsZ0JBRVEsSUFBSSxjQUFKLENBQW1CLEdBQW5CLEtBQTJCLFFBQVEsT0FBTyxRQUZsRDtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBLGlCQUdZLElBQUksR0FBSixDQUhaOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTs7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBUUEsU0FBUyxhQUFULENBQXVCLENBQXZCLEVBQTBCO0FBQ3hCLFNBQU8sTUFBTSxJQUFOLElBQWMsUUFBTyxDQUFQLHlDQUFPLENBQVAsT0FBYSxRQUEzQixJQUF1QyxFQUFFLFdBQUYsS0FBa0IsTUFBaEU7QUFDRDs7QUFFRDtBQUNBO0FBQ08sU0FBUyxlQUFULENBQXlCLENBQXpCLEVBQTRCLENBQTVCLEVBQW1EO0FBQUEsbUVBQUosRUFBSTs7QUFBQSx5QkFBbkIsTUFBbUI7QUFBQSxNQUFuQixNQUFtQiwrQkFBVixFQUFVOzs7QUFFeEQsTUFBSSxNQUFNLENBQVYsRUFBYTtBQUNYLFdBQU8sSUFBUDtBQUNEOztBQUVELE1BQUksUUFBTyxDQUFQLHlDQUFPLENBQVAsT0FBYSxRQUFiLElBQXlCLE1BQU0sSUFBL0IsSUFDRixRQUFPLENBQVAseUNBQU8sQ0FBUCxPQUFhLFFBRFgsSUFDdUIsTUFBTSxJQURqQyxFQUN1QztBQUNyQyxXQUFPLEtBQVA7QUFDRDs7QUFFRCxNQUFJLE9BQU8sSUFBUCxDQUFZLENBQVosRUFBZSxNQUFmLEtBQTBCLE9BQU8sSUFBUCxDQUFZLENBQVosRUFBZSxNQUE3QyxFQUFxRDtBQUNuRCxXQUFPLEtBQVA7QUFDRDs7QUFFRCxPQUFLLElBQU0sR0FBWCxJQUFrQixDQUFsQixFQUFxQjtBQUNuQixRQUFJLEVBQUUsT0FBTyxNQUFULE1BQXFCLEVBQUUsT0FBTyxDQUFULEtBQWUsRUFBRSxHQUFGLE1BQVcsRUFBRSxHQUFGLENBQS9DLENBQUosRUFBNEQ7QUFDMUQsYUFBTyxLQUFQO0FBQ0Q7QUFDRjtBQUNELE9BQUssSUFBTSxJQUFYLElBQWtCLENBQWxCLEVBQXFCO0FBQ25CLFFBQUksRUFBRSxRQUFPLE1BQVQsS0FBcUIsRUFBRSxRQUFPLENBQVQsQ0FBekIsRUFBdUM7QUFDckMsYUFBTyxLQUFQO0FBQ0Q7QUFDRjtBQUNELFNBQU8sSUFBUDtBQUNEIiwiZmlsZSI6InV0aWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBFbmFibGUgY2xhc3NpYyBKYXZhU2NyaXB0IG9iamVjdCBtYXBzIHRvIGJlIHVzZWQgYXMgZGF0YVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkSXRlcmF0b3Iob2JqZWN0KSB7XG4gIGlmIChpc1BsYWluT2JqZWN0KG9iamVjdCkgJiYgIW9iamVjdFtTeW1ib2wuaXRlcmF0b3JdKSB7XG4gICAgb2JqZWN0W1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiBpdGVyYXRvcigpIHtcbiAgICAgIHJldHVybiB2YWx1ZUl0ZXJhdG9yKHRoaXMpO1xuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24qIHZhbHVlSXRlcmF0b3Iob2JqKSB7XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iaikpIHtcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkgJiYga2V5ICE9PSBTeW1ib2wuaXRlcmF0b3IpIHtcbiAgICAgIHlpZWxkIG9ialtrZXldO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc1BsYWluT2JqZWN0KG8pIHtcbiAgcmV0dXJuIG8gIT09IG51bGwgJiYgdHlwZW9mIG8gPT09ICdvYmplY3QnICYmIG8uY29uc3RydWN0b3IgPT09IE9iamVjdDtcbn1cblxuLy8gU2hhbGxvdyBjb21wYXJlXG4vKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG5leHBvcnQgZnVuY3Rpb24gYXJlRXF1YWxTaGFsbG93KGEsIGIsIHtpZ25vcmUgPSB7fX0gPSB7fSkge1xuXG4gIGlmIChhID09PSBiKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIGEgIT09ICdvYmplY3QnIHx8IGEgPT09IG51bGwgfHxcbiAgICB0eXBlb2YgYiAhPT0gJ29iamVjdCcgfHwgYiA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChPYmplY3Qua2V5cyhhKS5sZW5ndGggIT09IE9iamVjdC5rZXlzKGIpLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IGluIGEpIHtcbiAgICBpZiAoIShrZXkgaW4gaWdub3JlKSAmJiAoIShrZXkgaW4gYikgfHwgYVtrZXldICE9PSBiW2tleV0pKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIGZvciAoY29uc3Qga2V5IGluIGIpIHtcbiAgICBpZiAoIShrZXkgaW4gaWdub3JlKSAmJiAoIShrZXkgaW4gYSkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuIl19

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

exports.default = MapboxTransform;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92aWV3cG9ydC9tYXBib3gtdHJhbnNmb3JtLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFHQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0JBLFNBQVMsTUFBVCxDQUFnQixHQUFoQixFQUFxQixHQUFyQixFQUEwQjtBQUN4QixNQUFJLE1BQU0sR0FBTixLQUFjLE1BQU0sR0FBTixDQUFsQixFQUE4QjtBQUM1QixVQUFNLElBQUksS0FBSixDQUFVLDZCQUE2QixHQUE3QixHQUFtQyxJQUFuQyxHQUEwQyxHQUExQyxHQUFnRCxHQUExRCxDQUFOO0FBQ0Q7QUFDRCxPQUFLLEdBQUwsR0FBVyxPQUFPLEdBQVAsQ0FBWDtBQUNBLE9BQUssR0FBTCxHQUFXLE9BQU8sR0FBUCxDQUFYO0FBQ0EsTUFBSSxLQUFLLEdBQUwsR0FBVyxFQUFYLElBQWlCLEtBQUssR0FBTCxHQUFXLENBQUMsRUFBakMsRUFBcUM7QUFDbkMsVUFBTSxJQUFJLEtBQUosQ0FBVSwyREFBVixDQUFOO0FBQ0Q7QUFDRjs7Ozs7OztJQU1vQixlOzs7O0FBR25CLGlDQVNHO0FBQUEsMEJBUkQsS0FRQztBQUFBLFFBUkQsS0FRQyw4QkFSTyxDQVFQO0FBQUEsMkJBUEQsTUFPQztBQUFBLFFBUEQsTUFPQywrQkFQUSxDQU9SO0FBQUEsNkJBTkQsUUFNQztBQUFBLFFBTkQsUUFNQyxpQ0FOVSxDQU1WO0FBQUEsOEJBTEQsU0FLQztBQUFBLFFBTEQsU0FLQyxrQ0FMVyxDQUtYO0FBQUEseUJBSkQsSUFJQztBQUFBLFFBSkQsSUFJQyw2QkFKTSxDQUlOO0FBQUEsNkJBSEQsUUFHQztBQUFBLFFBSEQsUUFHQyxpQ0FIVSxHQUdWO0FBQUEsMEJBRkQsS0FFQztBQUFBLFFBRkQsS0FFQyw4QkFGTyxDQUVQO0FBQUEsNEJBREQsT0FDQztBQUFBLFFBREQsT0FDQyxnQ0FEUyxDQUNUOztBQUFBOzs7QUFFRCxTQUFLLFFBQUwsR0FBZ0IsR0FBaEI7O0FBRUEsU0FB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QVcsQ0FBWCxDQUFoQjtBQUNBLFdBQUssWUFBTCxHQUFvQixJQUFJLEtBQUssUUFBN0I7QUFDRDs7O3dCQUVZO0FBQUUsYUFBTyxLQUFLLE9BQVo7QUFBc0IsSztzQkFDMUIsTSxFQUFRO0FBQ2pCLFVBQUksT0FBTyxHQUFQLEtBQWUsS0FBSyxPQUFMLENBQWEsR0FBNUIsSUFBbUMsT0FBTyxHQUFQLEtBQWUsS0FBSyxPQUFMLENBQWEsR0FBbkUsRUFBd0U7QUFDeEUsV0FBSyxPQUFMLEdBQWUsTUFBZjtBQUNEOzs7d0JBSU87QUFBRSxhQUFPLEtBQUssSUFBTCxDQUFVLEtBQUssTUFBTCxDQUFZLEdBQXRCLENBQVA7QUFBb0M7Ozt3QkFDdEM7QUFBRSxhQUFPLEtBQUssSUFBTCxDQUFVLEtBQUssTUFBTCxDQUFZLEdBQXRCLENBQVA7QUFBb0M7Ozs7OztrQkEzRjNCLGUiLCJmaWxlIjoibWFwYm94LXRyYW5zZm9ybS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbi8vIFBhaXJlZCBkb3duIHZlcnNpb24gb2YgaHR0cHM6Ly9naXRodWIuY29tL21hcGJveC9tYXBib3gtZ2wtanMvYmxvYi8wMzMwNDMyNTRkMzBhOTlhMDBiOTU2NjBlMjk2NDQ1YTFhZGUyZDAxL2pzL2dlby90cmFuc2Zvcm0uanNcblxuaW1wb3J0IHttYXQyLCBtYXQ0fSBmcm9tICdnbC1tYXRyaXgnO1xuXG4vKipcbiAqIENyZWF0ZSBhIGxvbmdpdHVkZSwgbGF0aXR1ZGUgb2JqZWN0IGZyb20gYSBnaXZlbiBsb25naXR1ZGUgYW5kIGxhdGl0dWRlXG4gKiBwYWlyIGluIGRlZ3JlZXMuXG4gKiBNYXBib3ggR0wgdXNlcyBMb25naXR1ZGUsIExhdGl0dWRlIGNvb3JkaW5hdGUgb3JkZXIgdG8gbWF0Y2ggR2VvSlNPTi5cbiAqXG4gKiBOb3RlIHRoYXQgYW55IE1hcGJveCBHTCBtZXRob2QgdGhhdCBhY2NlcHRzIGEgYExuZ0xhdGAgb2JqZWN0IGNhbiBhbHNvXG4gKiBhY2NlcHQgYW4gYEFycmF5YCBhbmQgd2lsbCBwZXJmb3JtIGFuIGltcGxpY2l0IGNvbnZlcnNpb24uXG4gKiBUaGUgZm9sbG93aW5nIGxpbmVzIGFyZSBlcXVpdmFsZW50OlxuIGBgYFxuIG1hcC5zZXRDZW50ZXIoWy03My45NzQ5LCA0MC43NzM2XSk7XG4gbWFwLnNldENlbnRlciggbmV3IG1hcGJveGdsLkxuZ0xhdCgtNzMuOTc0OSwgNDAuNzczNikgKTtcbiBgYGBcbiAqXG4gKiBAY2xhc3MgTG5nTGF0XG4gKiBAY2xhc3NkZXNjIEEgcmVwcmVzZW50YXRpb24gb2YgYSBsb25naXR1ZGUsIGxhdGl0dWRlIHBvaW50LCBpbiBkZWdyZWVzLlxuICogQHBhcmFtIHtudW1iZXJ9IGxuZyBsb25naXR1ZGVcbiAqIEBwYXJhbSB7bnVtYmVyfSBsYXQgbGF0aXR1ZGVcbiAqIEBleGFtcGxlXG4gKiB2YXIgbGwgPSBuZXcgbWFwYm94Z2wuTG5nTGF0KC03My45NzQ5LCA0MC43NzM2KTtcbiAqL1xuZnVuY3Rpb24gTG5nTGF0KGxuZywgbGF0KSB7XG4gIGlmIChpc05hTihsbmcpIHx8IGlzTmFOKGxhdCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgTG5nTGF0IG9iamVjdDogKCcgKyBsbmcgKyAnLCAnICsgbGF0ICsgJyknKTtcbiAgfVxuICB0aGlzLmxuZyA9IE51bWJlcihsbmcpO1xuICB0aGlzLmxhdCA9IE51bWJlcihsYXQpO1xuICBpZiAodGhpcy5sYXQgPiA5MCB8fCB0aGlzLmxhdCA8IC05MCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBMbmdMYXQgbGF0aXR1ZGUgdmFsdWU6IG11c3QgYmUgYmV0d2VlbiAtOTAgYW5kIDkwJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHNpbmdsZSB0cmFuc2Zvcm0sIGdlbmVyYWxseSB1c2VkIGZvciBhIHNpbmdsZSB0aWxlIHRvIGJlXG4gKiBzY2FsZWQsIHJvdGF0ZWQsIGFuZCB6b29tZWQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1hcGJveFRyYW5zZm9ybSB7XG5cbiAgLyogZXNsaW50LWRpc2FibGUgbWF4LXN0YXRlbWVudHMgKi9cbiAgY29uc3RydWN0b3Ioe1xuICAgIHdpZHRoID0gMCxcbiAgICBoZWlnaHQgPSAwLFxuICAgIGxhdGl0dWRlID0gMCxcbiAgICBsb25naXR1ZGUgPSAwLFxuICAgIHpvb20gPSAwLFxuICAgIGFsdGl0dWRlID0gMS41LFxuICAgIHBpdGNoID0gMCxcbiAgICBiZWFyaW5nID0gMFxuICB9KSB7XG4gICAgLy8gY29uc3RhbnRcbiAgICB0aGlzLnRpbGVTaXplID0gNTEyO1xuXG4gICAgdGhpcy53aWR0aCA9IDA7XG4gICAgdGhpcy5oZWlnaHQgPSAwO1xuICAgIHRoaXMuX2NlbnRlciA9IG5ldyBMbmdMYXQoMCwgMCk7XG4gICAgdGhpcy56b29tID0gMDtcbiAgICB0aGlzLmFuZ2xlID0gMDtcbiAgICB0aGlzLl9hbHRpdHVkZSA9IDEuNTtcbiAgICB0aGlzLl9waXRjaCA9IDA7XG5cbiAgICB0aGlzLndpZHRoID0gd2lkdGg7XG4gICAgdGhpcy5oZWlnaHQgPSBoZWlnaHQ7XG4gICAgdGhpcy56b29tID0gem9vbTtcbiAgICB0aGlzLmNlbnRlciA9IG5ldyBMbmdMYXQobG9uZ2l0dWRlLCBsYXRpdHVkZSk7XG4gICAgdGhpcy5hbHRpdHVkZSA9IGFsdGl0dWRlO1xuICAgIHRoaXMucGl0Y2ggPSBwaXRjaDtcbiAgICB0aGlzLmJlYXJpbmcgPSBiZWFyaW5nO1xuICAgIHRoaXMuX2NhbGNQcm9qTWF0cml4KCk7XG4gIH1cbiAgLyogZXNsaW50LWVuYWJsZSAqL1xuXG4gIGdldCB3b3JsZFNpemUoKSB7XG4gICAgcmV0dXJuIHRoaXMudGlsZVNpemUgKiB0aGlzLnNjYWxlO1xuICB9XG5cbiAgZ2V0IGJlYXJpbmcoKSB7XG4gICAgcmV0dXJuIC10aGlzLmFuZ2xlIC8gTWF0aC5QSSAqIDE4MDtcbiAgfVxuICBzZXQgYmVhcmluZyhiZWFyaW5nKSB7XG4gICAgLy8gVE9ETzogQm91bmRzIGNoZWNrXG4gICAgLy8gdmFyIGIgPVxuICAgIGNvbnN0IGIgPSAtYmVhcmluZyAqIE1hdGguUEkgLyAxODA7XG4gICAgaWYgKHRoaXMuYW5nbGUgPT09IGIpIHJldHVybjtcbiAgICB0aGlzLmFuZ2xlID0gYjtcblxuICAgIC8vIDJ4MiBtYXRyaXggZm9yIHJvdGF0aW5nIHBvaW50c1xuICAgIHRoaXMucm90YXRpb25NYXRyaXggPSBtYXQyLmNyZWF0ZSgpO1xuICAgIG1hdDIucm90YXRlKHRoaXMucm90YXRpb25NYXRyaXgsIHRoaXMucm90YXRpb25NYXRyaXgsIHRoaXMuYW5nbGUpO1xuICB9XG5cbiAgZ2V0IHBpdGNoKCkge1xuICAgIHJldHVybiB0aGlzLl9waXRjaCAvIE1hdGguUEkgKiAxODA7XG4gIH1cbiAgc2V0IHBpdGNoKHBpdGNoKSB7XG4gICAgY29uc3QgcCA9IE1hdGgubWluKDYwLCBwaXRjaCkgLyAxODAgKiBNYXRoLlBJO1xuICAgIGlmICh0aGlzLl9waXRjaCA9PT0gcCkgcmV0dXJuO1xuICAgIHRoaXMuX3BpdGNoID0gcDtcbiAgfVxuXG4gIGdldCBhbHRpdHVkZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYWx0aXR1ZGU7XG4gIH1cbiAgc2V0IGFsdGl0dWRlKGFsdGl0dWRlKSB7XG4gICAgY29uc3QgYSA9IE1hdGgubWF4KDAuNzUsIGFsdGl0dWRlKTtcbiAgICBpZiAodGhpcy5fYWx0aXR1ZGUgPT09IGEpIHJldHVybjtcbiAgICB0aGlzLl9hbHRpdHVkZSA9IGE7XG4gIH1cblxuICBnZXQgem9vbSgpIHsgcmV0dXJuIHRoaXMuX3pvb207IH1cbiAgc2V0IHpvb20oem9vbSkge1xuICAgIGNvbnN0IHogPSB6b29tO1xuICAgIGlmICh0aGlzLl96b29tID09PSB6KSByZXR1cm47XG4gICAgdGhpcy5fem9vbSA9IHo7XG4gICAgdGhpcy5zY2FsZSA9IHRoaXMuem9vbVNjYWxlKHopO1xuICAgIHRoaXMudGlsZVpvb20gPSBNYXRoLmZsb29yKHopO1xuICAgIHRoaXMuem9vbUZyYWN0aW9uID0geiAtIHRoaXMudGlsZVpvb207XG4gIH1cblxuICBnZXQgY2VudGVyKCkgeyByZXR1cm4gdGhpcy5fY2VudGVyOyB9XG4gIHNldCBjZW50ZXIoY2VudGVyKSB7XG4gICAgaWYgKGNlbnRlci5sYXQgPT09IHRoaXMuX2NlbnRlci5sYXQgJiYgY2VudGVyLmxuZyA9PT0gdGhpcy5fY2VudGVyLmxuZykgcmV0dXJuO1xuICAgIHRoaXMuX2NlbnRlciA9IGNlbnRlcjtcbiAgfVxuXG4gIHpvb21TY2FsZSh6b29tKSB7IHJldHVybiBNYXRoLnBvdygyLCB6b29tKTsgfVxuXG4gIGdldCB4KCkgeyByZXR1cm4gdGhpcy5sbmdYKHRoaXMuY2VudGVyLmxuZyk7IH1cbiAgZ2V0IHkoKSB7IHJldHVybiB0aGlzLmxhdFkodGhpcy5jZW50ZXIubGF0KTsgfVxuXG4gIC8qKlxuICAgKiBsYXRpdHVkZSB0byBhYnNvbHV0ZSB4IGNvb3JkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IFt3b3JsZFNpemU9dGhpcy53b3JsZFNpemVdXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IHBpeGVsIGNvb3JkaW5hdGVcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGxuZ1gobG5nLCB3b3JsZFNpemUpIHtcbiAgICByZXR1cm4gKDE4MCArIGxuZykgKiAod29ybGRTaXplIHx8IHRoaXMud29ybGRTaXplKSAvIDM2MDtcbiAgfVxuICAvKipcbiAgICogbGF0aXR1ZGUgdG8gYWJzb2x1dGUgeSBjb29yZFxuICAgKiBAcGFyYW0ge251bWJlcn0gbGF0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbd29ybGRTaXplPXRoaXMud29ybGRTaXplXVxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBwaXhlbCBjb29yZGluYXRlXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBsYXRZKGxhdCwgd29ybGRTaXplKSB7XG4gICAgY29uc3QgeSA9IDE4MCAvIE1hdGguUEkgKiBNYXRoLmxvZyhNYXRoLnRhbihNYXRoLlBJIC8gNCArIGxhdCAqIE1hdGguUEkgLyAzNjApKTtcbiAgICByZXR1cm4gKDE4MCAtIHkpICogKHdvcmxkU2l6ZSB8fCB0aGlzLndvcmxkU2l6ZSkgLyAzNjA7XG4gIH1cblxuICBfY2FsY1Byb2pNYXRyaXgoKSB7XG4gICAgY29uc3QgbSA9IG5ldyBGbG9hdDMyQXJyYXkoMTYpO1xuXG4gICAgLy8gRmluZCB0aGUgZGlzdGFuY2UgZnJvbSB0aGUgY2VudGVyIHBvaW50IHRvIHRoZSBjZW50ZXIgdG9wIGluIGFsdGl0dWRlIHVuaXRzIHVzaW5nIGxhdyBvZiBzaW5lcy5cbiAgICBjb25zdCBoYWxmRm92ID0gTWF0aC5hdGFuKDAuNSAvIHRoaXMuYWx0aXR1ZGUpO1xuICAgIGNvbnN0IHRvcEhhbGZTdXJmYWNlRGlzdGFuY2UgPSBNYXRoLnNpbihoYWxmRm92KSAqIHRoaXMuYWx0aXR1ZGUgLyBNYXRoLnNpbihNYXRoLlBJIC8gMiAtIHRoaXMuX3BpdGNoIC0gaGFsZkZvdik7XG5cbiAgICAvLyBDYWxjdWxhdGUgeiB2YWx1ZSBvZiB0aGUgZmFydGhlc3QgZnJhZ21lbnQgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQuXG4gICAgY29uc3QgZmFyWiA9IE1hdGguY29zKE1hdGguUEkgLyAyIC0gdGhpcy5fcGl0Y2gpICogdG9wSGFsZlN1cmZhY2VEaXN0YW5jZSArIHRoaXMuYWx0aXR1ZGU7XG5cbiAgICBtYXQ0LnBlcnNwZWN0aXZlKG0sIDIgKiBNYXRoLmF0YW4oKHRoaXMuaGVpZ2h0IC8gMikgLyB0aGlzLmFsdGl0dWRlKSwgdGhpcy53aWR0aCAvIHRoaXMuaGVpZ2h0LCAwLjEsIGZhclopO1xuXG4gICAgbWF0NC50cmFuc2xhdGUobSwgbSwgWzAsIDAsIC10aGlzLmFsdGl0dWRlXSk7XG5cbiAgICAvLyBBZnRlciB0aGUgcm90YXRlWCwgeiB2YWx1ZXMgYXJlIGluIHBpeGVsIHVuaXRzLiBDb252ZXJ0IHRoZW0gdG9cbiAgICAvLyBhbHRpdHVkZSB1bml0cy4gMSBhbHRpdHVkZSB1bml0ID0gdGhlIHNjcmVlbiBoZWlnaHQuXG4gICAgbWF0NC5zY2FsZShtLCBtLCBbMSwgLTEsIDEgLyB0aGlzLmhlaWdodF0pO1xuXG4gICAgbWF0NC5yb3RhdGVYKG0sIG0sIHRoaXMuX3BpdGNoKTtcbiAgICBtYXQ0LnJvdGF0ZVoobSwgbSwgdGhpcy5hbmdsZSk7XG4gICAgbWF0NC50cmFuc2xhdGUobSwgbSwgWy10aGlzLngsIC10aGlzLnksIDBdKTtcblxuICAgIHRoaXMucHJvak1hdHJpeCA9IG07XG4gIH1cblxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92aWV3cG9ydC9tYXBib3gtdHJhbnNmb3JtLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7b2pCQUFBO0FBQ0E7O0FBRUE7Ozs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkEsU0FBUyxNQUFULENBQWdCLEdBQWhCLEVBQXFCLEdBQXJCLEVBQTBCO0FBQ3hCLE1BQUksTUFBTSxHQUFOLEtBQWMsTUFBTSxHQUFOLENBQWxCLEVBQThCO0FBQzVCLFVBQU0sSUFBSSxLQUFKLENBQVUsNkJBQTZCLEdBQTdCLEdBQW1DLElBQW5DLEdBQTBDLEdBQTFDLEdBQWdELEdBQTFELENBQU47QUFDRDtBQUNELE9BQUssR0FBTCxHQUFXLE9BQU8sR0FBUCxDQUFYO0FBQ0EsT0FBSyxHQUFMLEdBQVcsT0FBTyxHQUFQLENBQVg7QUFDQSxNQUFJLEtBQUssR0FBTCxHQUFXLEVBQVgsSUFBaUIsS0FBSyxHQUFMLEdBQVcsQ0FBQyxFQUFqQyxFQUFxQztBQUNuQyxVQUFNLElBQUksS0FBSixDQUFVLDJEQUFWLENBQU47QUFDRDtBQUNGOztBQUVEOzs7OztJQUlxQixlOztBQUVuQjs7QUFDQSxpQ0FTRztBQUFBLDBCQVJELEtBUUM7QUFBQSxRQVJELEtBUUMsOEJBUk8sQ0FRUDtBQUFBLDJCQVBELE1BT0M7QUFBQSxRQVBELE1BT0MsK0JBUFEsQ0FPUjtBQUFBLDZCQU5ELFFBTUM7QUFBQSxRQU5ELFFBTUMsaUNBTlUsQ0FNVjtBQUFBLDhCQUxELFNBS0M7QUFBQSxRQUxELFNBS0Msa0NBTFcsQ0FLWDtBQUFBLHlCQUpELElBSUM7QUFBQSxRQUpELElBSUMsNkJBSk0sQ0FJTjtBQUFBLDZCQUhELFFBR0M7QUFBQSxRQUhELFFBR0MsaUNBSFUsR0FHVjtBQUFBLDBCQUZELEtBRUM7QUFBQSxRQUZELEtBRUMsOEJBRk8sQ0FFUDtBQUFBLDRCQURELE9BQ0M7QUFBQSxRQURELE9BQ0MsZ0NBRFMsQ0FDVDs7QUFBQTs7QUFDRDtBQUNBLFNBQUss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QUwsR0FBYSxLQUFLLFNBQUwsQ0FBZSxDQUFmLENBQWI7QUFDQSxXQUFLLFFBQUwsR0FBZ0IsS0FBSyxLQUFMLENBQVcsQ0FBWCxDQUFoQjtBQUNBLFdBQUssWUFBTCxHQUFvQixJQUFJLEtBQUssUUFBN0I7QUFDRDs7O3dCQUVZO0FBQUUsYUFBTyxLQUFLLE9BQVo7QUFBc0IsSztzQkFDMUIsTSxFQUFRO0FBQ2pCLFVBQUksT0FBTyxHQUFQLEtBQWUsS0FBSyxPQUFMLENBQWEsR0FBNUIsSUFBbUMsT0FBTyxHQUFQLEtBQWUsS0FBSyxPQUFMLENBQWEsR0FBbkUsRUFBd0U7QUFDeEUsV0FBSyxPQUFMLEdBQWUsTUFBZjtBQUNEOzs7d0JBSU87QUFBRSxhQUFPLEtBQUssSUFBTCxDQUFVLEtBQUssTUFBTCxDQUFZLEdBQXRCLENBQVA7QUFBb0M7Ozt3QkFDdEM7QUFBRSxhQUFPLEtBQUssSUFBTCxDQUFVLEtBQUssTUFBTCxDQUFZLEdBQXRCLENBQVA7QUFBb0M7Ozs7OztrQkEzRjNCLGUiLCJmaWxlIjoibWFwYm94LXRyYW5zZm9ybS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbi8vIFBhaXJlZCBkb3duIHZlcnNpb24gb2YgaHR0cHM6Ly9naXRodWIuY29tL21hcGJveC9tYXBib3gtZ2wtanMvYmxvYi8wMzMwNDMyNTRkMzBhOTlhMDBiOTU2NjBlMjk2NDQ1YTFhZGUyZDAxL2pzL2dlby90cmFuc2Zvcm0uanNcblxuaW1wb3J0IHttYXQyLCBtYXQ0fSBmcm9tICdnbC1tYXRyaXgnO1xuXG4vKipcbiAqIENyZWF0ZSBhIGxvbmdpdHVkZSwgbGF0aXR1ZGUgb2JqZWN0IGZyb20gYSBnaXZlbiBsb25naXR1ZGUgYW5kIGxhdGl0dWRlXG4gKiBwYWlyIGluIGRlZ3JlZXMuXG4gKiBNYXBib3ggR0wgdXNlcyBMb25naXR1ZGUsIExhdGl0dWRlIGNvb3JkaW5hdGUgb3JkZXIgdG8gbWF0Y2ggR2VvSlNPTi5cbiAqXG4gKiBOb3RlIHRoYXQgYW55IE1hcGJveCBHTCBtZXRob2QgdGhhdCBhY2NlcHRzIGEgYExuZ0xhdGAgb2JqZWN0IGNhbiBhbHNvXG4gKiBhY2NlcHQgYW4gYEFycmF5YCBhbmQgd2lsbCBwZXJmb3JtIGFuIGltcGxpY2l0IGNvbnZlcnNpb24uXG4gKiBUaGUgZm9sbG93aW5nIGxpbmVzIGFyZSBlcXVpdmFsZW50OlxuIGBgYFxuIG1hcC5zZXRDZW50ZXIoWy03My45NzQ5LCA0MC43NzM2XSk7XG4gbWFwLnNldENlbnRlciggbmV3IG1hcGJveGdsLkxuZ0xhdCgtNzMuOTc0OSwgNDAuNzczNikgKTtcbiBgYGBcbiAqXG4gKiBAY2xhc3MgTG5nTGF0XG4gKiBAY2xhc3NkZXNjIEEgcmVwcmVzZW50YXRpb24gb2YgYSBsb25naXR1ZGUsIGxhdGl0dWRlIHBvaW50LCBpbiBkZWdyZWVzLlxuICogQHBhcmFtIHtudW1iZXJ9IGxuZyBsb25naXR1ZGVcbiAqIEBwYXJhbSB7bnVtYmVyfSBsYXQgbGF0aXR1ZGVcbiAqIEBleGFtcGxlXG4gKiB2YXIgbGwgPSBuZXcgbWFwYm94Z2wuTG5nTGF0KC03My45NzQ5LCA0MC43NzM2KTtcbiAqL1xuZnVuY3Rpb24gTG5nTGF0KGxuZywgbGF0KSB7XG4gIGlmIChpc05hTihsbmcpIHx8IGlzTmFOKGxhdCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgTG5nTGF0IG9iamVjdDogKCcgKyBsbmcgKyAnLCAnICsgbGF0ICsgJyknKTtcbiAgfVxuICB0aGlzLmxuZyA9IE51bWJlcihsbmcpO1xuICB0aGlzLmxhdCA9IE51bWJlcihsYXQpO1xuICBpZiAodGhpcy5sYXQgPiA5MCB8fCB0aGlzLmxhdCA8IC05MCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBMbmdMYXQgbGF0aXR1ZGUgdmFsdWU6IG11c3QgYmUgYmV0d2VlbiAtOTAgYW5kIDkwJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHNpbmdsZSB0cmFuc2Zvcm0sIGdlbmVyYWxseSB1c2VkIGZvciBhIHNpbmdsZSB0aWxlIHRvIGJlXG4gKiBzY2FsZWQsIHJvdGF0ZWQsIGFuZCB6b29tZWQuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1hcGJveFRyYW5zZm9ybSB7XG5cbiAgLyogZXNsaW50LWRpc2FibGUgbWF4LXN0YXRlbWVudHMgKi9cbiAgY29uc3RydWN0b3Ioe1xuICAgIHdpZHRoID0gMCxcbiAgICBoZWlnaHQgPSAwLFxuICAgIGxhdGl0dWRlID0gMCxcbiAgICBsb25naXR1ZGUgPSAwLFxuICAgIHpvb20gPSAwLFxuICAgIGFsdGl0dWRlID0gMS41LFxuICAgIHBpdGNoID0gMCxcbiAgICBiZWFyaW5nID0gMFxuICB9KSB7XG4gICAgLy8gY29uc3RhbnRcbiAgICB0aGlzLnRpbGVTaXplID0gNTEyO1xuXG4gICAgdGhpcy53aWR0aCA9IDA7XG4gICAgdGhpcy5oZWlnaHQgPSAwO1xuICAgIHRoaXMuX2NlbnRlciA9IG5ldyBMbmdMYXQoMCwgMCk7XG4gICAgdGhpcy56b29tID0gMDtcbiAgICB0aGlzLmFuZ2xlID0gMDtcbiAgICB0aGlzLl9hbHRpdHVkZSA9IDEuNTtcbiAgICB0aGlzLl9waXRjaCA9IDA7XG5cbiAgICB0aGlzLndpZHRoID0gd2lkdGg7XG4gICAgdGhpcy5oZWlnaHQgPSBoZWlnaHQ7XG4gICAgdGhpcy56b29tID0gem9vbTtcbiAgICB0aGlzLmNlbnRlciA9IG5ldyBMbmdMYXQobG9uZ2l0dWRlLCBsYXRpdHVkZSk7XG4gICAgdGhpcy5hbHRpdHVkZSA9IGFsdGl0dWRlO1xuICAgIHRoaXMucGl0Y2ggPSBwaXRjaDtcbiAgICB0aGlzLmJlYXJpbmcgPSBiZWFyaW5nO1xuICAgIHRoaXMuX2NhbGNQcm9qTWF0cml4KCk7XG4gIH1cbiAgLyogZXNsaW50LWVuYWJsZSAqL1xuXG4gIGdldCB3b3JsZFNpemUoKSB7XG4gICAgcmV0dXJuIHRoaXMudGlsZVNpemUgKiB0aGlzLnNjYWxlO1xuICB9XG5cbiAgZ2V0IGJlYXJpbmcoKSB7XG4gICAgcmV0dXJuIC10aGlzLmFuZ2xlIC8gTWF0aC5QSSAqIDE4MDtcbiAgfVxuICBzZXQgYmVhcmluZyhiZWFyaW5nKSB7XG4gICAgLy8gVE9ETzogQm91bmRzIGNoZWNrXG4gICAgLy8gdmFyIGIgPVxuICAgIGNvbnN0IGIgPSAtYmVhcmluZyAqIE1hdGguUEkgLyAxODA7XG4gICAgaWYgKHRoaXMuYW5nbGUgPT09IGIpIHJldHVybjtcbiAgICB0aGlzLmFuZ2xlID0gYjtcblxuICAgIC8vIDJ4MiBtYXRyaXggZm9yIHJvdGF0aW5nIHBvaW50c1xuICAgIHRoaXMucm90YXRpb25NYXRyaXggPSBtYXQyLmNyZWF0ZSgpO1xuICAgIG1hdDIucm90YXRlKHRoaXMucm90YXRpb25NYXRyaXgsIHRoaXMucm90YXRpb25NYXRyaXgsIHRoaXMuYW5nbGUpO1xuICB9XG5cbiAgZ2V0IHBpdGNoKCkge1xuICAgIHJldHVybiB0aGlzLl9waXRjaCAvIE1hdGguUEkgKiAxODA7XG4gIH1cbiAgc2V0IHBpdGNoKHBpdGNoKSB7XG4gICAgY29uc3QgcCA9IE1hdGgubWluKDYwLCBwaXRjaCkgLyAxODAgKiBNYXRoLlBJO1xuICAgIGlmICh0aGlzLl9waXRjaCA9PT0gcCkgcmV0dXJuO1xuICAgIHRoaXMuX3BpdGNoID0gcDtcbiAgfVxuXG4gIGdldCBhbHRpdHVkZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYWx0aXR1ZGU7XG4gIH1cbiAgc2V0IGFsdGl0dWRlKGFsdGl0dWRlKSB7XG4gICAgY29uc3QgYSA9IE1hdGgubWF4KDAuNzUsIGFsdGl0dWRlKTtcbiAgICBpZiAodGhpcy5fYWx0aXR1ZGUgPT09IGEpIHJldHVybjtcbiAgICB0aGlzLl9hbHRpdHVkZSA9IGE7XG4gIH1cblxuICBnZXQgem9vbSgpIHsgcmV0dXJuIHRoaXMuX3pvb207IH1cbiAgc2V0IHpvb20oem9vbSkge1xuICAgIGNvbnN0IHogPSB6b29tO1xuICAgIGlmICh0aGlzLl96b29tID09PSB6KSByZXR1cm47XG4gICAgdGhpcy5fem9vbSA9IHo7XG4gICAgdGhpcy5zY2FsZSA9IHRoaXMuem9vbVNjYWxlKHopO1xuICAgIHRoaXMudGlsZVpvb20gPSBNYXRoLmZsb29yKHopO1xuICAgIHRoaXMuem9vbUZyYWN0aW9uID0geiAtIHRoaXMudGlsZVpvb207XG4gIH1cblxuICBnZXQgY2VudGVyKCkgeyByZXR1cm4gdGhpcy5fY2VudGVyOyB9XG4gIHNldCBjZW50ZXIoY2VudGVyKSB7XG4gICAgaWYgKGNlbnRlci5sYXQgPT09IHRoaXMuX2NlbnRlci5sYXQgJiYgY2VudGVyLmxuZyA9PT0gdGhpcy5fY2VudGVyLmxuZykgcmV0dXJuO1xuICAgIHRoaXMuX2NlbnRlciA9IGNlbnRlcjtcbiAgfVxuXG4gIHpvb21TY2FsZSh6b29tKSB7IHJldHVybiBNYXRoLnBvdygyLCB6b29tKTsgfVxuXG4gIGdldCB4KCkgeyByZXR1cm4gdGhpcy5sbmdYKHRoaXMuY2VudGVyLmxuZyk7IH1cbiAgZ2V0IHkoKSB7IHJldHVybiB0aGlzLmxhdFkodGhpcy5jZW50ZXIubGF0KTsgfVxuXG4gIC8qKlxuICAgKiBsYXRpdHVkZSB0byBhYnNvbHV0ZSB4IGNvb3JkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IFt3b3JsZFNpemU9dGhpcy53b3JsZFNpemVdXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IHBpeGVsIGNvb3JkaW5hdGVcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGxuZ1gobG5nLCB3b3JsZFNpemUpIHtcbiAgICByZXR1cm4gKDE4MCArIGxuZykgKiAod29ybGRTaXplIHx8IHRoaXMud29ybGRTaXplKSAvIDM2MDtcbiAgfVxuICAvKipcbiAgICogbGF0aXR1ZGUgdG8gYWJzb2x1dGUgeSBjb29yZFxuICAgKiBAcGFyYW0ge251bWJlcn0gbGF0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbd29ybGRTaXplPXRoaXMud29ybGRTaXplXVxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBwaXhlbCBjb29yZGluYXRlXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBsYXRZKGxhdCwgd29ybGRTaXplKSB7XG4gICAgY29uc3QgeSA9IDE4MCAvIE1hdGguUEkgKiBNYXRoLmxvZyhNYXRoLnRhbihNYXRoLlBJIC8gNCArIGxhdCAqIE1hdGguUEkgLyAzNjApKTtcbiAgICByZXR1cm4gKDE4MCAtIHkpICogKHdvcmxkU2l6ZSB8fCB0aGlzLndvcmxkU2l6ZSkgLyAzNjA7XG4gIH1cblxuICBfY2FsY1Byb2pNYXRyaXgoKSB7XG4gICAgY29uc3QgbSA9IG5ldyBGbG9hdDMyQXJyYXkoMTYpO1xuXG4gICAgLy8gRmluZCB0aGUgZGlzdGFuY2UgZnJvbSB0aGUgY2VudGVyIHBvaW50IHRvIHRoZSBjZW50ZXIgdG9wIGluIGFsdGl0dWRlIHVuaXRzIHVzaW5nIGxhdyBvZiBzaW5lcy5cbiAgICBjb25zdCBoYWxmRm92ID0gTWF0aC5hdGFuKDAuNSAvIHRoaXMuYWx0aXR1ZGUpO1xuICAgIGNvbnN0IHRvcEhhbGZTdXJmYWNlRGlzdGFuY2UgPSBNYXRoLnNpbihoYWxmRm92KSAqIHRoaXMuYWx0aXR1ZGUgLyBNYXRoLnNpbihNYXRoLlBJIC8gMiAtIHRoaXMuX3BpdGNoIC0gaGFsZkZvdik7XG5cbiAgICAvLyBDYWxjdWxhdGUgeiB2YWx1ZSBvZiB0aGUgZmFydGhlc3QgZnJhZ21lbnQgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQuXG4gICAgY29uc3QgZmFyWiA9IE1hdGguY29zKE1hdGguUEkgLyAyIC0gdGhpcy5fcGl0Y2gpICogdG9wSGFsZlN1cmZhY2VEaXN0YW5jZSArIHRoaXMuYWx0aXR1ZGU7XG5cbiAgICBtYXQ0LnBlcnNwZWN0aXZlKG0sIDIgKiBNYXRoLmF0YW4oKHRoaXMuaGVpZ2h0IC8gMikgLyB0aGlzLmFsdGl0dWRlKSwgdGhpcy53aWR0aCAvIHRoaXMuaGVpZ2h0LCAwLjEsIGZhclopO1xuXG4gICAgbWF0NC50cmFuc2xhdGUobSwgbSwgWzAsIDAsIC10aGlzLmFsdGl0dWRlXSk7XG5cbiAgICAvLyBBZnRlciB0aGUgcm90YXRlWCwgeiB2YWx1ZXMgYXJlIGluIHBpeGVsIHVuaXRzLiBDb252ZXJ0IHRoZW0gdG9cbiAgICAvLyBhbHRpdHVkZSB1bml0cy4gMSBhbHRpdHVkZSB1bml0ID0gdGhlIHNjcmVlbiBoZWlnaHQuXG4gICAgbWF0NC5zY2FsZShtLCBtLCBbMSwgLTEsIDEgLyB0aGlzLmhlaWdodF0pO1xuXG4gICAgbWF0NC5yb3RhdGVYKG0sIG0sIHRoaXMuX3BpdGNoKTtcbiAgICBtYXQ0LnJvdGF0ZVoobSwgbSwgdGhpcy5hbmdsZSk7XG4gICAgbWF0NC50cmFuc2xhdGUobSwgbSwgWy10aGlzLngsIC10aGlzLnksIDBdKTtcblxuICAgIHRoaXMucHJvak1hdHJpeCA9IG07XG4gIH1cblxufVxuIl19

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

exports.default = Viewport;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92aWV3cG9ydC92aWV3cG9ydC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBOzs7O0FBRUEsSUFBTSxLQUFLLEtBQUssRUFBaEI7QUFDQSxJQUFNLE9BQU8sS0FBSyxDQUFsQjtBQUNBLElBQU0sT0FBTyxLQUFLLENBQWxCO0FBQ0EsSUFBTSxxQkFBcUIsS0FBSyxHQUFoQztBQUNBLElBQU0scUJBQXFCLE1BQU0sRUFBakM7QUFDQSxJQUFNLFlBQVksR0FBbEI7QUFDQSxJQUFNLGNBQWMsWUFBWSxJQUFoQzs7SUFFcUIsUTs7O0FBRW5CLDBCQVVHO0FBQUEsMEJBUkQsS0FRQztBQUFBLFFBUkQsS0FRQyw4QkFSTyxDQVFQO0FBQUEsMkJBUEQsTUFPQztBQUFBLFFBUEQsTUFPQywrQkFQUSxDQU9SO0FBQUEsNkJBTkQsUUFNQztBQUFBLFFBTkQsUUFNQyxpQ0FOVSxDQU1WO0FBQUEsOEJBTEQsU0FLQztBQUFBLFFBTEQsU0FLQyxrQ0FMVyxDQUtYO0FBQUEseUJBSkQsSUFJQztBQUFBLFFBSkQsSUFJQyw2QkFKTSxDQUlOO0FBQUEsMEJBSEQsS0FHQztBQUFBLFFBSEQsS0FHQyw4QkFITyxDQUdQO0FBQUEsNEJBRkQsT0FFQztBQUFBLFFBRkQsT0FFQyxnQ0FGUyxDQUVUO0FBQUEsNkJBREQsUUFDQztBQUFBLFFBREQsUUFDQyxpQ0FEVSxHQUNWOztBQUFBOzs7QUFFRCxTQUFLLEtBQUwsR0FBYSxLQUFiO0FBQ0EsU0FBSyxNQUFMLEdBQWMsTUFBZDtBQUNBLFNBQUssSUFBTCxHQUFZLElBQVo7QUFDQSxTQUFLLFFBQUwsR0FBZ0IsUUFBaEI7QUFDQSxTQUFLLFNBQUwsR0FBaUIsU0FBakI7QUFDQSxTQUFLLE9BQUwsR0FBZSxPQUFmOzs7QUFHQSxTQUFLLEtBQUwsR0FBYSxLQUFLLEdBQUwsQ0FBUyxDQUFULEVBQVksSUFBWixDQUFiO0FBQ0EsU0FBSyxTQUFMLEdBQWlCLFlB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QUFMLENBQWUsQ0FBZixFQUFrQixDQUFsQixFQUFxQixDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBQyxLQUFLLFFBQWIsQ0FBckI7Ozs7QUFJQSxxQkFBSyxLQUFMLENBQVcsQ0FBWCxFQUFjLENBQWQsRUFBaUIsQ0FBQyxDQUFELEVBQUksQ0FBQyxDQUFMLEVBQVEsSUFBSSxLQUFLLE1BQWpCLENBQWpCOztBQUVBLHFCQUFLLE9BQUwsQ0FBYSxDQUFiLEVBQWdCLENBQWhCLEVBQW1CLEtBQUssWUFBeEI7QUFDQSxxQkFBSyxPQUFMLENBQWEsQ0FBYixFQUFnQixDQUFoQixFQUFtQixDQUFDLEtBQUssY0FBekI7QUFDQSxxQkFBSyxTQUFMLENBQWUsQ0FBZixFQUFrQixDQUFsQixFQUFxQixDQUFDLENBQUMsS0FBSyxPQUFQLEVBQWdCLENBQUMsS0FBSyxPQUF0QixFQUErQixDQUEvQixDQUFyQjs7O0FBR0EsYUFBTyxDQUFQO0FBQ0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0JBNUtrQixRIiwiZmlsZSI6InZpZXdwb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVmlldyBhbmQgUHJvamVjdGlvbiBNYXRyaXggY2FsY3VsYXRpb25zIGZvciBtYXBib3gtanMgc3R5bGVcbi8vIG1hcCB2aWV3IHByb3BlcnRpZXNcblxuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuLy8gQVRUUklCVVRJT046IE1hdHJpeCBjcmVhdGlvbiBhbGdvcyBhcmUgYmFzZWQgb24gbWFwYm94LWdsLWpzIHNvdXJjZSBjb2RlXG4vLyBUaGlzIGlzIGludGVudGlvbmFsbHkgY2xvc2VseSBtYXBwZWQgdG8gbWFwYm94LWdsLWpzIGltcGxlbWVudGF0aW9uIHRvXG4vLyBlbnN1cmUgc2VhbWxlc3MgaW50ZXJvcGVyYXRpb24gd2l0aCByZWFjdC1tYXAtZ2xcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXBib3gvbWFwYm94LWdsLWpzL2Jsb2IvMDMzMDQzMjU0ZDMwYTk5YTAwYjk1NjYwZTI5NjQ0NWExYWRlMmQwMS9qcy9nZW8vdHJhbnNmb3JtLmpzXG4vKiBlbHNpbnQtZW5hYmxlICovXG5cbi8vIFdlIGRlZmluZSBhIGNvdXBsZSBvZiBjb29yZGluYXRlIHN5c3RlbXM6XG4vLyAtLS0tLS1cbi8vIExhdExvbiAgICAgICAgICAgICBbbG5nLCBsYXRdID0gWy0xODAgLSAxODAsIC04MSAtIDgxXVxuLy8gV29ybGQgKHpvb20gMCkgICAgIFt4LCB5XSA9IFswLTUxMiwgeTogMC01MTJdXG4vLyBab29tZWQgKHpvb20gTikgICAgW3gsIHldID0gWzAgLSA1MTIqMioqTiwgMCAtIDUxMioyKipOXVxuLy8gVHJhbnNsYXRlZCAgICAgICAgIFt4LCB5XSA9IHplcm8gY2VudGVyZWRcbi8vIFZpZXcgKENhbWVyYSkgICAgICB1bml0IGN1YmUgYXJvdW5kIHZpZXdcbi8vIC0tLS0tLVxuXG5pbXBvcnQge21hdDIsIG1hdDQsIHZlYzR9IGZyb20gJ2dsLW1hdHJpeCc7XG5cbmNvbnN0IFBJID0gTWF0aC5QSTtcbmNvbnN0IFBJXzIgPSBQSSAvIDI7XG5jb25zdCBQSV80ID0gUEkgLyA0O1xuY29uc3QgREVHUkVFU19UT19SQURJQU5TID0gUEkgLyAxODA7XG5jb25zdCBSQURJQU5TX1RPX0RFR1JFRVMgPSAxODAgLyBQSTtcbmNvbnN0IFRJTEVfU0laRSA9IDUxMjtcbmNvbnN0IFdPUkxEX1NDQUxFID0gVElMRV9TSVpFIC8gUElfMjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmlld3BvcnQge1xuICAvKiBlc2xpbnQtZGlzYWJsZSBtYXgtc3RhdGVtZW50cyAqL1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgLy8gTWFwIHN0YXRlXG4gICAgd2lkdGggPSAwLFxuICAgIGhlaWdodCA9IDAsXG4gICAgbGF0aXR1ZGUgPSAwLFxuICAgIGxvbmdpdHVkZSA9IDAsXG4gICAgem9vbSA9IDAsXG4gICAgcGl0Y2ggPSAwLFxuICAgIGJlYXJpbmcgPSAwLFxuICAgIGFsdGl0dWRlID0gMS41XG4gIH0pIHtcbiAgICAvLyBWaWV3cG9ydFxuICAgIHRoaXMud2lkdGggPSB3aWR0aDtcbiAgICB0aGlzLmhlaWdodCA9IGhlaWdodDtcbiAgICB0aGlzLnpvb20gPSB6b29tO1xuICAgIHRoaXMubGF0aXR1ZGUgPSBsYXRpdHVkZTtcbiAgICB0aGlzLmxvbmdpdHVkZSA9IGxvbmdpdHVkZTtcbiAgICB0aGlzLmJlYXJpbmcgPSBiZWFyaW5nO1xuXG4gICAgLy8gU2NhbGVcbiAgICB0aGlzLnNjYWxlID0gTWF0aC5wb3coMiwgem9vbSk7XG4gICAgdGhpcy53b3JsZFNpemUgPSBUSUxFX1NJWkUgKiB0aGlzLnNjYWxlO1xuICAgIHRoaXMudGlsZVpvb20gPSBNYXRoLmZsb29yKHpvb20pO1xuICAgIHRoaXMuem9vbUZyYWN0aW9uID0gem9vbSAtIE1hdGguZmxvb3Ioem9vbSk7XG5cbiAgICAvLyBCZWFyaW5nXG4gICAgdGhpcy5iZWFyaW5nUmFkaWFucyA9IGJlYXJpbmcgLyAxODAgKiBNYXRoLlBJO1xuICAgIHRoaXMuYmVhcmluZ1JvdGF0aW9uTWF0cml4ID0gbWF0Mi5jcmVhdGUoKTtcbiAgICBtYXQyLnJvdGF0ZShcbiAgICAgIHRoaXMuYmVhcmluZ1JvdGF0aW9uTWF0cml4LCB0aGlzLmJlYXJpbmdSb3RhdGlvbk1hdHJpeCwgdGhpcy5iZWFyaW5nXG4gICAgKTtcblxuICAgIC8vIFBpdGNoXG4gICAgdGhpcy5vcmlnaW5hbFBpdGNoID0gcGl0Y2g7XG4gICAgdGhpcy5waXRjaCA9IE1hdGgubWluKDYwLCBwaXRjaCk7XG4gICAgdGhpcy5waXRjaFJhZGlhbnMgPSBNYXRoLm1pbig2MCwgcGl0Y2gpIC8gMTgwICogTWF0aC5QSTtcblxuICAgIC8vIEFsdGl0dWRlXG4gICAgdGhpcy5vcmlnaW5hbEFsdGl0dWRlID0gYWx0aXR1ZGU7XG4gICAgdGhpcy5hbHRpdHVkZSA9IE1hdGgubWF4KDAuNzUsIGFsdGl0dWRlKTtcblxuICAgIC8vIENlbnRlciB4LCB5XG4gICAgY29uc3QgeSA9IDE4MCAvIE1hdGguUEkgKlxuICAgICAgTWF0aC5sb2coTWF0aC50YW4oTWF0aC5QSSAvIDQgKyBsYXRpdHVkZSAqIE1hdGguUEkgLyAzNjApKTtcblxuICAgIHRoaXMuY2VudGVyWDAgPSAoMTgwICsgbG9uZ2l0dWRlKSAvIDM2MCAqIFRJTEVfU0laRTtcbiAgICB0aGlzLmNlbnRlclkwID0gKDE4MCAtIHkpIC8gMzYwICogVElMRV9TSVpFO1xuICAgIHRoaXMuY2VudGVyWCA9IHRoaXMuY2VudGVyWDAgKiB0aGlzLnNjYWxlO1xuICAgIHRoaXMuY2VudGVyWSA9IHRoaXMuY2VudGVyWTAgKiB0aGlzLnNjYWxlO1xuXG4gICAgLy8gRmluZCB0aGUgZGlzdGFuY2UgZnJvbSB0aGUgY2VudGVyIHBvaW50IHRvIHRoZSBjZW50ZXIgdG9wXG4gICAgLy8gaW4gYWx0aXR1ZGUgdW5pdHMgdXNpbmcgbGF3IG9mIHNpbmVzLlxuICAgIHRoaXMuaGFsZkZvdiA9IE1hdGguYXRhbigwLjUgLyB0aGlzLmFsdGl0dWRlKTtcbiAgICB0aGlzLnRvcEhhbGZTdXJmYWNlRGlzdGFuY2UgPVxuICAgICAgTWF0aC5zaW4odGhpcy5oYWxmRm92KSAqIHRoaXMuYWx0aXR1ZGUgL1xuICAgICAgTWF0aC5zaW4oTWF0aC5QSSAvIDIgLSB0aGlzLnBpdGNoUmFkaWFucyAtIHRoaXMuaGFsZkZvdik7XG5cbiAgICAvLyBDYWxjdWxhdGUgeiB2YWx1ZSBvZiB0aGUgZmFydGhlc3QgZnJhZ21lbnQgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQuXG4gICAgdGhpcy5mYXJaID0gTWF0aC5jb3MoTWF0aC5QSSAvIDIgLSB0aGlzLnBpdGNoUmFkaWFucykgKlxuICAgICAgdGhpcy50b3BIYWxmU3VyZmFjZURpc3RhbmNlICsgdGhpcy5hbHRpdHVkZTtcblxuICAgIHRoaXMuX3ByZWNvbXB1dGVNYXRyaWNlcygpO1xuICB9XG4gIC8qIGVzbGludC1lbmFibGUgbWF4LXN0YXRlbWVudHMgKi9cblxuICBwcm9qZWN0KGxuZ0xhdFopIHtcbiAgICBjb25zdCBbeCwgeV0gPSB0aGlzLnByb2plY3Rab29tMChsbmdMYXRaKTtcbiAgICBjb25zdCB2ID0gdmVjNC5mcm9tVmFsdWVzKHgsIHksIGxuZ0xhdFpbMl0gfHwgMCwgMSk7XG4gICAgdmVjNC50cmFuc2Zvcm1NYXQ0KHYsIHYsIHRoaXMudmlld01hdHJpeCk7XG4gICAgdmVjNC50cmFuc2Zvcm1NYXQ0KHYsIHYsIHRoaXMucHJvamVjdGlvbk1hdHJpeCk7XG4gICAgLy8gdmVjNC50cmFuc2Zvcm1NYXQ0KHYsIHYsIHRoaXMudmlld3BvcnRNYXRyaXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb2plY3QgW2xuZyxsYXRdIG9uIHNwaGVyZSBvbnRvIFt4LHldIG9uIDUxMio1MTIgTWVyY2F0b3IgWm9vbSAwIHRpbGUuXG4gICAqIFBlcmZvcm1zIHRoZSBub25saW5lYXIgcGFydCBvZiB0aGUgd2ViIG1lcmNhdG9yIHByb2plY3Rpb24uXG4gICAqIFJlbWFpbmluZyBwcm9qZWN0aW9uIGlzIGRvbmUgd2l0aCA0eDQgbWF0cmljZXMgd2hpY2ggYWxzbyBoYW5kbGVzXG4gICAqIHBlcnNwZWN0aXZlLlxuICAgKlxuICAgKiBAcGFyYW0ge0FycmF5fSBsbmdMYXQgLSBbbG5nLCBsYXRdIGNvb3JkaW5hdGVzXG4gICAqICAgU3BlY2lmaWVzIGEgcG9pbnQgb24gdGhlIHNwaGVyZSB0byBwcm9qZWN0IG9udG8gdGhlIG1hcC5cbiAgICogQHJldHVybiB7QXJyYXl9IFt4LHldIGNvb3JkaW5hdGVzLlxuICAgKi9cbiAgcHJvamVjdFpvb20wKFtsbmcsIGxhdF0pIHtcbiAgICBjb25zdCBsYW1iZGEyID0gbG5nICogREVHUkVFU19UT19SQURJQU5TO1xuICAgIGNvbnN0IHBoaTIgPSBsYXQgKiBERUdSRUVTX1RPX1JBRElBTlM7XG4gICAgY29uc3QgeCA9IFdPUkxEX1NDQUxFICogKGxhbWJkYTIgKyBQSSk7XG4gICAgY29uc3QgeSA9IFdPUkxEX1NDQUxFICogKFBJIC0gTWF0aC5sb2coTWF0aC50YW4oUElfNCArIHBoaTIgKiAwLjUpKSk7XG4gICAgcmV0dXJuIFt4LCB5XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnByb2plY3QgcG9pbnQge3gseX0gb24gbWFwIG9udG8ge2xhdCwgbG9ufSBvbiBzcGhlcmVcbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R8VmVjdG9yfSB4eSAtIG9iamVjdCB3aXRoIHt4LHl9IG1lbWJlcnNcbiAgICogIHJlcHJlc2VudGluZyBwb2ludCBvbiBwcm9qZWN0ZWQgbWFwIHBsYW5lXG4gICAqIEByZXR1cm4ge0dlb0Nvb3JkaW5hdGVzfSAtIG9iamVjdCB3aXRoIHtsYXQsbG9ufSBvZiBwb2ludCBvbiBzcGhlcmUuXG4gICAqICAgSGFzIHRvQXJyYXkgbWV0aG9kIGlmIHlvdSBuZWVkIGEgR2VvSlNPTiBBcnJheS5cbiAgICogICBQZXIgY2FydG9ncmFwaGljIHRyYWRpdGlvbiwgbGF0IGFuZCBsb24gYXJlIHNwZWNpZmllZCBhcyBkZWdyZWVzLlxuICAgKi9cbiAgdW5wcm9qZWN0Wm9vbTAoW3gsIHldKSB7XG4gICAgY29uc3QgbGFtYmRhMiA9IHggLyBXT1JMRF9TQ0FMRSAtIFBJO1xuICAgIGNvbnN0IHBoaTIgPSAyICogKE1hdGguYXRhbihNYXRoLmV4cChQSSAtIHkgLyBXT1JMRF9TQ0FMRSkpIC0gUElfNCk7XG4gICAgcmV0dXJuIFtsYW1iZGEyICogUkFESUFOU19UT19ERUdSRUVTLCBwaGkyICogUkFESUFOU19UT19ERUdSRUVTXTtcbiAgfVxuXG4gIGdldFByb2plY3Rpb25NYXRyaXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2dsUHJvamVjdGlvbk1hdHJpeDtcbiAgfVxuXG4gIC8vIGZpdEJvdW5kcyhsbmdsYXRTRSwgbG5nbGF0TlcsIHtwYWRkaW5nID0gMH0gPSB7fSkge1xuICAvLyAgIGNvbnN0IGJvdW5kcyA9IG5ldyBMbmdMYXRCb3VuZHMoXG4gIC8vICAgICBbX2JvdW5kc1swXS5yZXZlcnNlKCksXG4gIC8vICAgICBfYm91bmRzWzFdLnJldmVyc2UoKV1cbiAgLy8gICApO1xuICAvLyAgIGNvbnN0IG9mZnNldCA9IFBvaW50LmNvbnZlcnQoWzAsIDBdKTtcbiAgLy8gICBjb25zdCBudyA9IHRoaXMucHJvamVjdChsbmdsYXROVyk7XG4gIC8vICAgY29uc3Qgc2UgPSB0aGlzLnByb2plY3QobG5nbGF0U0UpO1xuICAvLyAgIGNvbnN0IHNpemUgPSBzZS5zdWIobncpO1xuICAvLyAgIGNvbnN0IHNjYWxlWCA9XG4gIC8vICAgICAodGhpcy53aWR0aCAtIHBhZGRpbmcgKiAyIC0gTWF0aC5hYnMob2Zmc2V0LngpICogMikgLyBzaXplLng7XG4gIC8vICAgY29uc3Qgc2NhbGVZID1cbiAgLy8gICAgICh0aGlzLmhlaWdodCAtIHBhZGRpbmcgKiAyIC0gTWF0aC5hYnMob2Zmc2V0LnkpICogMikgLyBzaXplLnk7XG5cbiAgLy8gICBjb25zdCBjZW50ZXIgPSB0aGlzLnVucHJvamVjdChudy5hZGQoc2UpLmRpdigyKSk7XG4gIC8vICAgY29uc3Qgem9vbSA9IHRoaXMuc2NhbGVab29tKHRoaXMuc2NhbGUgKiBNYXRoLm1pbihzY2FsZVgsIHNjYWxlWSkpO1xuICAvLyAgIHJldHVybiB7XG4gIC8vICAgICBsYXRpdHVkZTogY2VudGVyLmxhdCxcbiAgLy8gICAgIGxvbmdpdHVkZTogY2VudGVyLmxuZyxcbiAgLy8gICAgIHpvb21cbiAgLy8gICB9O1xuICAvLyB9XG5cbiAgX3ByZWNvbXB1dGVNYXRyaWNlcygpIHtcbiAgICB0aGlzLl9nbFByb2plY3Rpb25NYXRyaXggPSB0aGlzLl9jYWxjdWxhdGVHTFByb2plY3Rpb25NYXRyaXgoKTtcblxuICAgIGNvbnN0IG0gPSBtYXQ0LmNyZWF0ZSgpO1xuICAgIG1hdDQudHJhbnNsYXRlKG0sIG0sIFswLjUsIDAuNSwgMF0pO1xuICAgIG1hdDQuc2NhbGUobSwgbSwgW3RoaXMud2lkdGgsIHRoaXMuaGVpZ2h0LCAxXSk7XG4gICAgbWF0NC5tdWx0aXBseShtLCBtLCB0aGlzLl9nbFByb2plY3Rpb25NYXRyaXgpO1xuICAgIHRoaXMuX3BpeGVsUHJvamVjdGlvbk1hdHJpeCA9IG07XG5cbiAgICBjb25zdCBtSW52ZXJzZSA9IG1hdDQuY2xvbmUobSk7XG4gICAgbWF0NC5pbnZlcnQobUludmVyc2UsIG1JbnZlcnNlKTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybXMgZnJvbSBXZWIgTWVyY2F0b3IgVGlsZSAwIFswLTUxMiwwLTUxMl0gdG8gXCJjbGlwIHNwYWNlXCJcbiAgX2NhbGN1bGF0ZUdMUHJvamVjdGlvbk1hdHJpeCgpIHtcbiAgICBjb25zdCBtID0gbWF0NC5jcmVhdGUoKTtcblxuICAgIG1hdDQucGVyc3BlY3RpdmUobSxcbiAgICAgIDIgKiBNYXRoLmF0YW4oKHRoaXMuaGVpZ2h0IC8gMikgLyB0aGlzLmFsdGl0dWRlKSxcbiAgICAgIHRoaXMud2lkdGggLyB0aGlzLmhlaWdodCxcbiAgICAgIDAuMSxcbiAgICAgIHRoaXMuZmFyWlxuICAgICk7XG5cbiAgICAvLyBNb3ZlIGNhbWVyYSB0byBhbHRpdHVkZVxuICAgIG1hdDQudHJhbnNsYXRlKG0sIG0sIFswLCAwLCAtdGhpcy5hbHRpdHVkZV0pO1xuXG4gICAgLy8gQWZ0ZXIgdGhlIHJvdGF0ZVgsIHogdmFsdWVzIGFyZSBpbiBwaXhlbCB1bml0cy4gQ29udmVydCB0aGVtIHRvXG4gICAgLy8gYWx0aXR1ZGUgdW5pdHMuIDEgYWx0aXR1ZGUgdW5pdCA9IHRoZSBzY3JlZW4gaGVpZ2h0LlxuICAgIG1hdDQuc2NhbGUobSwgbSwgWzEsIC0xLCAxIC8gdGhpcy5oZWlnaHRdKTtcblxuICAgIG1hdDQucm90YXRlWChtLCBtLCB0aGlzLnBpdGNoUmFkaWFucyk7XG4gICAgbWF0NC5yb3RhdGVaKG0sIG0sIC10aGlzLmJlYXJpbmdSYWRpYW5zKTtcbiAgICBtYXQ0LnRyYW5zbGF0ZShtLCBtLCBbLXRoaXMuY2VudGVyWCwgLXRoaXMuY2VudGVyWSwgMF0pO1xuICAgIC8vIG1hdDQuc2NhbGUobSwgbSwgW3RoaXMuc2NhbGUsIHRoaXMuc2NhbGUsIHRoaXMuc2NhbGVdKTtcblxuICAgIHJldHVybiBtO1xuICB9XG5cbn1cblxuLyogeGlhb2ppJ3Mgc2hhZGVyXG51bmlmb3JtIG1hdDQgcHJvak1hdHJpeDtcbnVuaWZvcm0gZmxvYXQgem9vbTtcbi8vIGNvbnZlcnQgKGxuZywgbGF0KSB0byBzY3JlZW4gcG9zaXRpb25zIGluIGNsaXAgc3BhY2UuXG4vLyBtYXBib3gtZ2wvanMvZ2VvL3RyYW5zZm9ybS5qc1xudmVjMiBwcm9qZWN0KHZlYzIgcHQpIHtcbiAgZmxvYXQgd29ybGRTaXplID0gNTEyLjAgKiBwb3coMi4wLCB6b29tKTtcbiAgZmxvYXQgbG5nWCA9ICgxODAuMCArIHB0LngpIC8gMzYwLjAgICogd29ybGRTaXplO1xuICBmbG9hdCBsYXRZID0gKDE4MC4wIC0gZGVncmVlcyhsb2codGFuKHJhZGlhbnMocHQueSArIDkwLjApLzIuMCkpKSkgLyAzNjAuMFxuICAqIHdvcmxkU2l6ZTtcbiAgdmVjNCBwID0gdmVjNChsbmdYLCBsYXRZLCAwLCAxLjApICogcHJvak1hdHJpeDtcbiAgcmV0dXJuIHZlYzIocC54L3AueiwgcC55L3Aueik7XG59XG4qL1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92aWV3cG9ydC92aWV3cG9ydC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7b2pCQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7Ozs7QUFFQSxJQUFNLEtBQUssS0FBSyxFQUFoQjtBQUNBLElBQU0sT0FBTyxLQUFLLENBQWxCO0FBQ0EsSUFBTSxPQUFPLEtBQUssQ0FBbEI7QUFDQSxJQUFNLHFCQUFxQixLQUFLLEdBQWhDO0FBQ0EsSUFBTSxxQkFBcUIsTUFBTSxFQUFqQztBQUNBLElBQU0sWUFBWSxHQUFsQjtBQUNBLElBQU0sY0FBYyxZQUFZLElBQWhDOztJQUVxQixRO0FBQ25COztBQUNBLDBCQVVHO0FBQUEsMEJBUkQsS0FRQztBQUFBLFFBUkQsS0FRQyw4QkFSTyxDQVFQO0FBQUEsMkJBUEQsTUFPQztBQUFBLFFBUEQsTUFPQywrQkFQUSxDQU9SO0FBQUEsNkJBTkQsUUFNQztBQUFBLFFBTkQsUUFNQyxpQ0FOVSxDQU1WO0FBQUEsOEJBTEQsU0FLQztBQUFBLFFBTEQsU0FLQyxrQ0FMVyxDQUtYO0FBQUEseUJBSkQsSUFJQztBQUFBLFFBSkQsSUFJQyw2QkFKTSxDQUlOO0FBQUEsMEJBSEQsS0FHQztBQUFBLFFBSEQsS0FHQyw4QkFITyxDQUdQO0FBQUEsNEJBRkQsT0FFQztBQUFBLFFBRkQsT0FFQyxnQ0FGUyxDQUVUO0FBQUEsNkJBREQsUUFDQztBQUFBLFFBREQsUUFDQyxpQ0FEVSxHQUNWOztBQUFBOztBQUNEO0FBQ0EsU0FBSyxLQUFMLEdBQWEsS0FBYjtBQUNBLFNBQUssTUFBTCxHQUFjLE1BQWQ7QUFDQSxTQUFLLElBQUwsR0FBWSxJQUFaO0FBQ0EsU0FBSyxRQUFMLEdBQWdCLFFBQWhCO0FBQ0EsU0FBSyxTQUFMLEdBQWlCLFNBQWpCO0FBQ0EsU0FBSyxPQUFMLEdBQWUsT0FBZjs7QUFFQTtB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Ozs7O21EQUMrQjtBQUM3QixVQUFNLElBQUksZUFBSyxNQUFMLEVBQVY7O0FBRUEscUJBQUssV0FBTCxDQUFpQixDQUFqQixFQUNFLElBQUksS0FBSyxJQUFMLENBQVcsS0FBSyxNQUFMLEdBQWMsQ0FBZixHQUFvQixLQUFLLFFBQW5DLENBRE4sRUFFRSxLQUFLLEtBQUwsR0FBYSxLQUFLLE1BRnBCLEVBR0UsR0FIRixFQUlFLEtBQUssSUFKUDs7QUFPQTtBQUNBLHFCQUFLLFNBQUwsQ0FBZSxDQUFmLEVBQWtCLENBQWxCLEVBQXFCLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFDLEtBQUssUUFBYixDQUFyQjs7QUFFQTtBQUNBO0FBQ0EscUJBQUssS0FBTCxDQUFXLENBQVgsRUFBYyxDQUFkLEVBQWlCLENBQUMsQ0FBRCxFQUFJLENBQUMsQ0FBTCxFQUFRLElBQUksS0FBSyxNQUFqQixDQUFqQjs7QUFFQSxxQkFBSyxPQUFMLENBQWEsQ0FBYixFQUFnQixDQUFoQixFQUFtQixLQUFLLFlBQXhCO0FBQ0EscUJBQUssT0FBTCxDQUFhLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUIsQ0FBQyxLQUFLLGNBQXpCO0FBQ0EscUJBQUssU0FBTCxDQUFlLENBQWYsRUFBa0IsQ0FBbEIsRUFBcUIsQ0FBQyxDQUFDLEtBQUssT0FBUCxFQUFnQixDQUFDLEtBQUssT0FBdEIsRUFBK0IsQ0FBL0IsQ0FBckI7QUFDQTs7QUFFQSxhQUFPLENBQVA7QUFDRDs7Ozs7O0FBSUg7Ozs7Ozs7Ozs7Ozs7Ozs7a0JBaExxQixRIiwiZmlsZSI6InZpZXdwb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVmlldyBhbmQgUHJvamVjdGlvbiBNYXRyaXggY2FsY3VsYXRpb25zIGZvciBtYXBib3gtanMgc3R5bGVcbi8vIG1hcCB2aWV3IHByb3BlcnRpZXNcblxuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuLy8gQVRUUklCVVRJT046IE1hdHJpeCBjcmVhdGlvbiBhbGdvcyBhcmUgYmFzZWQgb24gbWFwYm94LWdsLWpzIHNvdXJjZSBjb2RlXG4vLyBUaGlzIGlzIGludGVudGlvbmFsbHkgY2xvc2VseSBtYXBwZWQgdG8gbWFwYm94LWdsLWpzIGltcGxlbWVudGF0aW9uIHRvXG4vLyBlbnN1cmUgc2VhbWxlc3MgaW50ZXJvcGVyYXRpb24gd2l0aCByZWFjdC1tYXAtZ2xcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXBib3gvbWFwYm94LWdsLWpzL2Jsb2IvMDMzMDQzMjU0ZDMwYTk5YTAwYjk1NjYwZTI5NjQ0NWExYWRlMmQwMS9qcy9nZW8vdHJhbnNmb3JtLmpzXG4vKiBlbHNpbnQtZW5hYmxlICovXG5cbi8vIFdlIGRlZmluZSBhIGNvdXBsZSBvZiBjb29yZGluYXRlIHN5c3RlbXM6XG4vLyAtLS0tLS1cbi8vIExhdExvbiAgICAgICAgICAgICBbbG5nLCBsYXRdID0gWy0xODAgLSAxODAsIC04MSAtIDgxXVxuLy8gV29ybGQgKHpvb20gMCkgICAgIFt4LCB5XSA9IFswLTUxMiwgeTogMC01MTJdXG4vLyBab29tZWQgKHpvb20gTikgICAgW3gsIHldID0gWzAgLSA1MTIqMioqTiwgMCAtIDUxMioyKipOXVxuLy8gVHJhbnNsYXRlZCAgICAgICAgIFt4LCB5XSA9IHplcm8gY2VudGVyZWRcbi8vIFZpZXcgKENhbWVyYSkgICAgICB1bml0IGN1YmUgYXJvdW5kIHZpZXdcbi8vIC0tLS0tLVxuXG5pbXBvcnQge21hdDIsIG1hdDQsIHZlYzR9IGZyb20gJ2dsLW1hdHJpeCc7XG5cbmNvbnN0IFBJID0gTWF0aC5QSTtcbmNvbnN0IFBJXzIgPSBQSSAvIDI7XG5jb25zdCBQSV80ID0gUEkgLyA0O1xuY29uc3QgREVHUkVFU19UT19SQURJQU5TID0gUEkgLyAxODA7XG5jb25zdCBSQURJQU5TX1RPX0RFR1JFRVMgPSAxODAgLyBQSTtcbmNvbnN0IFRJTEVfU0laRSA9IDUxMjtcbmNvbnN0IFdPUkxEX1NDQUxFID0gVElMRV9TSVpFIC8gUElfMjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmlld3BvcnQge1xuICAvKiBlc2xpbnQtZGlzYWJsZSBtYXgtc3RhdGVtZW50cyAqL1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgLy8gTWFwIHN0YXRlXG4gICAgd2lkdGggPSAwLFxuICAgIGhlaWdodCA9IDAsXG4gICAgbGF0aXR1ZGUgPSAwLFxuICAgIGxvbmdpdHVkZSA9IDAsXG4gICAgem9vbSA9IDAsXG4gICAgcGl0Y2ggPSAwLFxuICAgIGJlYXJpbmcgPSAwLFxuICAgIGFsdGl0dWRlID0gMS41XG4gIH0pIHtcbiAgICAvLyBWaWV3cG9ydFxuICAgIHRoaXMud2lkdGggPSB3aWR0aDtcbiAgICB0aGlzLmhlaWdodCA9IGhlaWdodDtcbiAgICB0aGlzLnpvb20gPSB6b29tO1xuICAgIHRoaXMubGF0aXR1ZGUgPSBsYXRpdHVkZTtcbiAgICB0aGlzLmxvbmdpdHVkZSA9IGxvbmdpdHVkZTtcbiAgICB0aGlzLmJlYXJpbmcgPSBiZWFyaW5nO1xuXG4gICAgLy8gU2NhbGVcbiAgICB0aGlzLnNjYWxlID0gTWF0aC5wb3coMiwgem9vbSk7XG4gICAgdGhpcy53b3JsZFNpemUgPSBUSUxFX1NJWkUgKiB0aGlzLnNjYWxlO1xuICAgIHRoaXMudGlsZVpvb20gPSBNYXRoLmZsb29yKHpvb20pO1xuICAgIHRoaXMuem9vbUZyYWN0aW9uID0gem9vbSAtIE1hdGguZmxvb3Ioem9vbSk7XG5cbiAgICAvLyBCZWFyaW5nXG4gICAgdGhpcy5iZWFyaW5nUmFkaWFucyA9IGJlYXJpbmcgLyAxODAgKiBNYXRoLlBJO1xuICAgIHRoaXMuYmVhcmluZ1JvdGF0aW9uTWF0cml4ID0gbWF0Mi5jcmVhdGUoKTtcbiAgICBtYXQyLnJvdGF0ZShcbiAgICAgIHRoaXMuYmVhcmluZ1JvdGF0aW9uTWF0cml4LCB0aGlzLmJlYXJpbmdSb3RhdGlvbk1hdHJpeCwgdGhpcy5iZWFyaW5nXG4gICAgKTtcblxuICAgIC8vIFBpdGNoXG4gICAgdGhpcy5vcmlnaW5hbFBpdGNoID0gcGl0Y2g7XG4gICAgdGhpcy5waXRjaCA9IE1hdGgubWluKDYwLCBwaXRjaCk7XG4gICAgdGhpcy5waXRjaFJhZGlhbnMgPSBNYXRoLm1pbig2MCwgcGl0Y2gpIC8gMTgwICogTWF0aC5QSTtcblxuICAgIC8vIEFsdGl0dWRlXG4gICAgdGhpcy5vcmlnaW5hbEFsdGl0dWRlID0gYWx0aXR1ZGU7XG4gICAgdGhpcy5hbHRpdHVkZSA9IE1hdGgubWF4KDAuNzUsIGFsdGl0dWRlKTtcblxuICAgIC8vIENlbnRlciB4LCB5XG4gICAgY29uc3QgeSA9IDE4MCAvIE1hdGguUEkgKlxuICAgICAgTWF0aC5sb2coTWF0aC50YW4oTWF0aC5QSSAvIDQgKyBsYXRpdHVkZSAqIE1hdGguUEkgLyAzNjApKTtcblxuICAgIHRoaXMuY2VudGVyWDAgPSAoMTgwICsgbG9uZ2l0dWRlKSAvIDM2MCAqIFRJTEVfU0laRTtcbiAgICB0aGlzLmNlbnRlclkwID0gKDE4MCAtIHkpIC8gMzYwICogVElMRV9TSVpFO1xuICAgIHRoaXMuY2VudGVyWCA9IHRoaXMuY2VudGVyWDAgKiB0aGlzLnNjYWxlO1xuICAgIHRoaXMuY2VudGVyWSA9IHRoaXMuY2VudGVyWTAgKiB0aGlzLnNjYWxlO1xuXG4gICAgLy8gRmluZCB0aGUgZGlzdGFuY2UgZnJvbSB0aGUgY2VudGVyIHBvaW50IHRvIHRoZSBjZW50ZXIgdG9wXG4gICAgLy8gaW4gYWx0aXR1ZGUgdW5pdHMgdXNpbmcgbGF3IG9mIHNpbmVzLlxuICAgIHRoaXMuaGFsZkZvdiA9IE1hdGguYXRhbigwLjUgLyB0aGlzLmFsdGl0dWRlKTtcbiAgICB0aGlzLnRvcEhhbGZTdXJmYWNlRGlzdGFuY2UgPVxuICAgICAgTWF0aC5zaW4odGhpcy5oYWxmRm92KSAqIHRoaXMuYWx0aXR1ZGUgL1xuICAgICAgTWF0aC5zaW4oTWF0aC5QSSAvIDIgLSB0aGlzLnBpdGNoUmFkaWFucyAtIHRoaXMuaGFsZkZvdik7XG5cbiAgICAvLyBDYWxjdWxhdGUgeiB2YWx1ZSBvZiB0aGUgZmFydGhlc3QgZnJhZ21lbnQgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQuXG4gICAgdGhpcy5mYXJaID0gTWF0aC5jb3MoTWF0aC5QSSAvIDIgLSB0aGlzLnBpdGNoUmFkaWFucykgKlxuICAgICAgdGhpcy50b3BIYWxmU3VyZmFjZURpc3RhbmNlICsgdGhpcy5hbHRpdHVkZTtcblxuICAgIHRoaXMuX3ByZWNvbXB1dGVNYXRyaWNlcygpO1xuICB9XG4gIC8qIGVzbGludC1lbmFibGUgbWF4LXN0YXRlbWVudHMgKi9cblxuICBwcm9qZWN0KGxuZ0xhdFopIHtcbiAgICBjb25zdCBbeCwgeV0gPSB0aGlzLnByb2plY3Rab29tMChsbmdMYXRaKTtcbiAgICBjb25zdCB2ID0gdmVjNC5mcm9tVmFsdWVzKHgsIHksIGxuZ0xhdFpbMl0gfHwgMCwgMSk7XG4gICAgdmVjNC50cmFuc2Zvcm1NYXQ0KHYsIHYsIHRoaXMudmlld01hdHJpeCk7XG4gICAgdmVjNC50cmFuc2Zvcm1NYXQ0KHYsIHYsIHRoaXMucHJvamVjdGlvbk1hdHJpeCk7XG4gICAgLy8gdmVjNC50cmFuc2Zvcm1NYXQ0KHYsIHYsIHRoaXMudmlld3BvcnRNYXRyaXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb2plY3QgW2xuZyxsYXRdIG9uIHNwaGVyZSBvbnRvIFt4LHldIG9uIDUxMio1MTIgTWVyY2F0b3IgWm9vbSAwIHRpbGUuXG4gICAqIFBlcmZvcm1zIHRoZSBub25saW5lYXIgcGFydCBvZiB0aGUgd2ViIG1lcmNhdG9yIHByb2plY3Rpb24uXG4gICAqIFJlbWFpbmluZyBwcm9qZWN0aW9uIGlzIGRvbmUgd2l0aCA0eDQgbWF0cmljZXMgd2hpY2ggYWxzbyBoYW5kbGVzXG4gICAqIHBlcnNwZWN0aXZlLlxuICAgKlxuICAgKiBAcGFyYW0ge0FycmF5fSBsbmdMYXQgLSBbbG5nLCBsYXRdIGNvb3JkaW5hdGVzXG4gICAqICAgU3BlY2lmaWVzIGEgcG9pbnQgb24gdGhlIHNwaGVyZSB0byBwcm9qZWN0IG9udG8gdGhlIG1hcC5cbiAgICogQHJldHVybiB7QXJyYXl9IFt4LHldIGNvb3JkaW5hdGVzLlxuICAgKi9cbiAgcHJvamVjdFpvb20wKFtsbmcsIGxhdF0pIHtcbiAgICBjb25zdCBsYW1iZGEyID0gbG5nICogREVHUkVFU19UT19SQURJQU5TO1xuICAgIGNvbnN0IHBoaTIgPSBsYXQgKiBERUdSRUVTX1RPX1JBRElBTlM7XG4gICAgY29uc3QgeCA9IFdPUkxEX1NDQUxFICogKGxhbWJkYTIgKyBQSSk7XG4gICAgY29uc3QgeSA9IFdPUkxEX1NDQUxFICogKFBJIC0gTWF0aC5sb2coTWF0aC50YW4oUElfNCArIHBoaTIgKiAwLjUpKSk7XG4gICAgcmV0dXJuIFt4LCB5XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnByb2plY3QgcG9pbnQge3gseX0gb24gbWFwIG9udG8ge2xhdCwgbG9ufSBvbiBzcGhlcmVcbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R8VmVjdG9yfSB4eSAtIG9iamVjdCB3aXRoIHt4LHl9IG1lbWJlcnNcbiAgICogIHJlcHJlc2VudGluZyBwb2ludCBvbiBwcm9qZWN0ZWQgbWFwIHBsYW5lXG4gICAqIEByZXR1cm4ge0dlb0Nvb3JkaW5hdGVzfSAtIG9iamVjdCB3aXRoIHtsYXQsbG9ufSBvZiBwb2ludCBvbiBzcGhlcmUuXG4gICAqICAgSGFzIHRvQXJyYXkgbWV0aG9kIGlmIHlvdSBuZWVkIGEgR2VvSlNPTiBBcnJheS5cbiAgICogICBQZXIgY2FydG9ncmFwaGljIHRyYWRpdGlvbiwgbGF0IGFuZCBsb24gYXJlIHNwZWNpZmllZCBhcyBkZWdyZWVzLlxuICAgKi9cbiAgdW5wcm9qZWN0Wm9vbTAoW3gsIHldKSB7XG4gICAgY29uc3QgbGFtYmRhMiA9IHggLyBXT1JMRF9TQ0FMRSAtIFBJO1xuICAgIGNvbnN0IHBoaTIgPSAyICogKE1hdGguYXRhbihNYXRoLmV4cChQSSAtIHkgLyBXT1JMRF9TQ0FMRSkpIC0gUElfNCk7XG4gICAgcmV0dXJuIFtsYW1iZGEyICogUkFESUFOU19UT19ERUdSRUVTLCBwaGkyICogUkFESUFOU19UT19ERUdSRUVTXTtcbiAgfVxuXG4gIGdldFByb2plY3Rpb25NYXRyaXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2dsUHJvamVjdGlvbk1hdHJpeDtcbiAgfVxuXG4gIC8vIGZpdEJvdW5kcyhsbmdsYXRTRSwgbG5nbGF0TlcsIHtwYWRkaW5nID0gMH0gPSB7fSkge1xuICAvLyAgIGNvbnN0IGJvdW5kcyA9IG5ldyBMbmdMYXRCb3VuZHMoXG4gIC8vICAgICBbX2JvdW5kc1swXS5yZXZlcnNlKCksXG4gIC8vICAgICBfYm91bmRzWzFdLnJldmVyc2UoKV1cbiAgLy8gICApO1xuICAvLyAgIGNvbnN0IG9mZnNldCA9IFBvaW50LmNvbnZlcnQoWzAsIDBdKTtcbiAgLy8gICBjb25zdCBudyA9IHRoaXMucHJvamVjdChsbmdsYXROVyk7XG4gIC8vICAgY29uc3Qgc2UgPSB0aGlzLnByb2plY3QobG5nbGF0U0UpO1xuICAvLyAgIGNvbnN0IHNpemUgPSBzZS5zdWIobncpO1xuICAvLyAgIGNvbnN0IHNjYWxlWCA9XG4gIC8vICAgICAodGhpcy53aWR0aCAtIHBhZGRpbmcgKiAyIC0gTWF0aC5hYnMob2Zmc2V0LngpICogMikgLyBzaXplLng7XG4gIC8vICAgY29uc3Qgc2NhbGVZID1cbiAgLy8gICAgICh0aGlzLmhlaWdodCAtIHBhZGRpbmcgKiAyIC0gTWF0aC5hYnMob2Zmc2V0LnkpICogMikgLyBzaXplLnk7XG5cbiAgLy8gICBjb25zdCBjZW50ZXIgPSB0aGlzLnVucHJvamVjdChudy5hZGQoc2UpLmRpdigyKSk7XG4gIC8vICAgY29uc3Qgem9vbSA9IHRoaXMuc2NhbGVab29tKHRoaXMuc2NhbGUgKiBNYXRoLm1pbihzY2FsZVgsIHNjYWxlWSkpO1xuICAvLyAgIHJldHVybiB7XG4gIC8vICAgICBsYXRpdHVkZTogY2VudGVyLmxhdCxcbiAgLy8gICAgIGxvbmdpdHVkZTogY2VudGVyLmxuZyxcbiAgLy8gICAgIHpvb21cbiAgLy8gICB9O1xuICAvLyB9XG5cbiAgX3ByZWNvbXB1dGVNYXRyaWNlcygpIHtcbiAgICB0aGlzLl9nbFByb2plY3Rpb25NYXRyaXggPSB0aGlzLl9jYWxjdWxhdGVHTFByb2plY3Rpb25NYXRyaXgoKTtcblxuICAgIGNvbnN0IG0gPSBtYXQ0LmNyZWF0ZSgpO1xuICAgIG1hdDQudHJhbnNsYXRlKG0sIG0sIFswLjUsIDAuNSwgMF0pO1xuICAgIG1hdDQuc2NhbGUobSwgbSwgW3RoaXMud2lkdGgsIHRoaXMuaGVpZ2h0LCAxXSk7XG4gICAgbWF0NC5tdWx0aXBseShtLCBtLCB0aGlzLl9nbFByb2plY3Rpb25NYXRyaXgpO1xuICAgIHRoaXMuX3BpeGVsUHJvamVjdGlvbk1hdHJpeCA9IG07XG5cbiAgICBjb25zdCBtSW52ZXJzZSA9IG1hdDQuY2xvbmUobSk7XG4gICAgbWF0NC5pbnZlcnQobUludmVyc2UsIG1JbnZlcnNlKTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybXMgZnJvbSBXZWIgTWVyY2F0b3IgVGlsZSAwIFswLTUxMiwwLTUxMl0gdG8gXCJjbGlwIHNwYWNlXCJcbiAgX2NhbGN1bGF0ZUdMUHJvamVjdGlvbk1hdHJpeCgpIHtcbiAgICBjb25zdCBtID0gbWF0NC5jcmVhdGUoKTtcblxuICAgIG1hdDQucGVyc3BlY3RpdmUobSxcbiAgICAgIDIgKiBNYXRoLmF0YW4oKHRoaXMuaGVpZ2h0IC8gMikgLyB0aGlzLmFsdGl0dWRlKSxcbiAgICAgIHRoaXMud2lkdGggLyB0aGlzLmhlaWdodCxcbiAgICAgIDAuMSxcbiAgICAgIHRoaXMuZmFyWlxuICAgICk7XG5cbiAgICAvLyBNb3ZlIGNhbWVyYSB0byBhbHRpdHVkZVxuICAgIG1hdDQudHJhbnNsYXRlKG0sIG0sIFswLCAwLCAtdGhpcy5hbHRpdHVkZV0pO1xuXG4gICAgLy8gQWZ0ZXIgdGhlIHJvdGF0ZVgsIHogdmFsdWVzIGFyZSBpbiBwaXhlbCB1bml0cy4gQ29udmVydCB0aGVtIHRvXG4gICAgLy8gYWx0aXR1ZGUgdW5pdHMuIDEgYWx0aXR1ZGUgdW5pdCA9IHRoZSBzY3JlZW4gaGVpZ2h0LlxuICAgIG1hdDQuc2NhbGUobSwgbSwgWzEsIC0xLCAxIC8gdGhpcy5oZWlnaHRdKTtcblxuICAgIG1hdDQucm90YXRlWChtLCBtLCB0aGlzLnBpdGNoUmFkaWFucyk7XG4gICAgbWF0NC5yb3RhdGVaKG0sIG0sIC10aGlzLmJlYXJpbmdSYWRpYW5zKTtcbiAgICBtYXQ0LnRyYW5zbGF0ZShtLCBtLCBbLXRoaXMuY2VudGVyWCwgLXRoaXMuY2VudGVyWSwgMF0pO1xuICAgIC8vIG1hdDQuc2NhbGUobSwgbSwgW3RoaXMuc2NhbGUsIHRoaXMuc2NhbGUsIHRoaXMuc2NhbGVdKTtcblxuICAgIHJldHVybiBtO1xuICB9XG5cbn1cblxuLyogeGlhb2ppJ3Mgc2hhZGVyXG51bmlmb3JtIG1hdDQgcHJvak1hdHJpeDtcbnVuaWZvcm0gZmxvYXQgem9vbTtcbi8vIGNvbnZlcnQgKGxuZywgbGF0KSB0byBzY3JlZW4gcG9zaXRpb25zIGluIGNsaXAgc3BhY2UuXG4vLyBtYXBib3gtZ2wvanMvZ2VvL3RyYW5zZm9ybS5qc1xudmVjMiBwcm9qZWN0KHZlYzIgcHQpIHtcbiAgZmxvYXQgd29ybGRTaXplID0gNTEyLjAgKiBwb3coMi4wLCB6b29tKTtcbiAgZmxvYXQgbG5nWCA9ICgxODAuMCArIHB0LngpIC8gMzYwLjAgICogd29ybGRTaXplO1xuICBmbG9hdCBsYXRZID0gKDE4MC4wIC0gZGVncmVlcyhsb2codGFuKHJhZGlhbnMocHQueSArIDkwLjApLzIuMCkpKSkgLyAzNjAuMFxuICAqIHdvcmxkU2l6ZTtcbiAgdmVjNCBwID0gdmVjNChsbmdYLCBsYXRZLCAwLCAxLjApICogcHJvak1hdHJpeDtcbiAgcmV0dXJuIHZlYzIocC54L3AueiwgcC55L3Aueik7XG59XG4qL1xuIl19

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

exports.default = WebGLRenderer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy93ZWJnbC1yZW5kZXJlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNLGFBQWE7QUFDakIsTUFBSSxpQkFBVSxNQURHOztBQUdqQixTQUFPLGlCQUFVLE1BQVYsQ0FBaUIsVUFIUDtBQUlqQixVQUFRLGlCQUFVLE1BQVYsQ0FBaUIsVUFKUjs7QUFNakIsTUFBSSxpQkFBVSxNQU5HO0FBT2pCLGNBQVksaUJBQVUsTUFQTDtBQVFqQixZQUFVLGlCQUFVLE1BQVYsQ0FBaUIsVUFSVjtBQVNqQixVQUFRLGlCQUFVLFVBQVYsZUFBNkIsVUFUcEI7QUFVakIsU0FBTyxpQkFBVSxVQUFWLGFBVlU7QUFXakIsWUFBVSxpQkFBVSxNQVhIO0FBWWpCLFVBQVEsaUJBQVUsTUFaRDs7QUFjakIseUJBQXVCLGlCQUFVLElBQVYsQ0FBZSxVQWRyQjtBQWVqQiwwQkFBd0IsaUJBQVUsSUFmakI7QUFnQmpCLFdBQVMsaUJBQVUsSUFoQkY7O0FBa0JqQix1QkFBcUIsaUJBQVUsSUFsQmQ7QUFtQmpCLHNCQUFvQixpQkFBVSxJQW5CYjtBQW9CakIsOEJBQTRCLGlCQUFVLElBcEJyQjtBQXFCakIsNkJBQTJCLGlCQUFVLElBckJwQjs7QUF1QmpCLGdCQUFjLGlCQUFVLElBdkJQO0FBd0JqQixlQUFhLGlCQUFVLElBeEJOO0FBeUJqQixXQUFTLGlCQUFVO0FBekJGLENBQW5COztBQTRCQSxJQUFNLGdCQUFnQjtBQUNwQixNQUFJLElBRGdCO0FBRXBCLE1BQUksY0FGZ0I7QUFHcEIsU0FBTyxJQUhhOztBQUtwQix5QkFBdUIsaUNBQU0sQ0FBRSxDQUxYO0FBTXBCLDBCQUF3QjtBQUFBLFdBQVMsUUFBUSxLQUFSLENBQWMsS0FBZCxDQUFUO0FBQUEsR0FOSjtBQU9w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LE1BRFgsV0FDVyxNQURYO0FBQUEsVUFDbUIsVUFEbkIsV0FDbUIsVUFEbkI7O0FBRVAsYUFDRTtBQUNFLGFBQU0sU0FEUjtBQUVFLFlBQUssRUFGUDtBQUdFLGVBQVEsUUFBUSxVQUFSLElBQXNCLENBSGhDO0FBSUUsZ0JBQVMsU0FBUyxVQUFULElBQXVCLENBSmxDO0FBS0UsZUFBUSxFQUFDLFlBQUQsRUFBUSxjQUFSLEVBTFYsR0FERjtBQVFEOzs7O0VBM0p3QyxnQkFBTSxTO2tCQUE1QixhIiwiZmlsZSI6IndlYmdsLXJlbmRlcmVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDE1IFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSwgbm8tdHJ5LWNhdGNoICovXG4vKiBnbG9iYWwgY29uc29sZSAqL1xuaW1wb3J0IFJlYWN0LCB7UHJvcFR5cGVzfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYXV0b2JpbmQgZnJvbSAnYXV0b2JpbmQtZGVjb3JhdG9yJztcbmltcG9ydCB7Y3JlYXRlR0xDb250ZXh0LCBDYW1lcmEsIFNjZW5lLCBhZGRFdmVudHMsIEZ4LCBnbEdldH0gZnJvbSAnbHVtYS5nbCc7XG5pbXBvcnQgdGhyb3R0bGUgZnJvbSAnbG9kYXNoLnRocm90dGxlJztcblxuY29uc3QgUFJPUF9UWVBFUyA9IHtcbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgd2lkdGg6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgaGVpZ2h0OiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG5cbiAgZ2w6IFByb3BUeXBlcy5vYmplY3QsXG4gIHBpeGVsUmF0aW86IFByb3BUeXBlcy5udW1iZXIsXG4gIHZpZXdwb3J0OiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGNhbWVyYTogUHJvcFR5cGVzLmluc3RhbmNlT2YoQ2FtZXJhKS5pc1JlcXVpcmVkLFxuICBzY2VuZTogUHJvcFR5cGVzLmluc3RhbmNlT2YoU2NlbmUpLFxuICBibGVuZGluZzogUHJvcFR5cGVzLm9iamVjdCxcbiAgZXZlbnRzOiBQcm9wVHlwZXMub2JqZWN0LFxuXG4gIG9uUmVuZGVyZXJJbml0aWFsaXplZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25Jbml0aWFsaXphdGlvbkZhaWxlZDogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uRXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuXG4gIG9uQmVmb3JlUmVuZGVyRnJhbWU6IFByb3BUeXBlcy5mdW5jLFxuICBvbkFmdGVyUmVuZGVyRnJhbWU6IFByb3BUeXBlcy5mdW5jLFxuICBvbkJlZm9yZVJlbmRlclBpY2tpbmdTY2VuZTogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uQWZ0ZXJSZW5kZXJQaWNraW5nU2NlbmU6IFByb3BUeXBlcy5mdW5jLFxuXG4gIG9uTmVlZFJlZHJhdzogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uTW91c2VNb3ZlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmNcbn07XG5cbmNvbnN0IERFRkFVTFRfUFJPUFMgPSB7XG4gIGdsOiBudWxsLFxuICBpZDogJ3dlYmdsLWNhbnZhcycsXG4gIHNjZW5lOiBudWxsLFxuXG4gIG9uUmVuZGVyZXJJbml0aWFsaXplZDogKCkgPT4ge30sXG4gIG9uSW5pdGlhbGl6YXRpb25GYWlsZWQ6IGVycm9yID0+IGNvbnNvbGUuZXJyb3IoZXJyb3IpLFxuICBvbkVycm9yOiBlcnJvciA9PiB7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH0sXG4gIG9uQmVmb3JlUmVuZGVyRnJhbWU6ICgpID0+IHt9LFxuICBvbkFmdGVyUmVuZGVyRnJhbWU6ICgpID0+IHt9LFxuICBvbkJlZm9yZVJlbmRlclBpY2tpbmdTY2VuZTogKCkgPT4ge30sXG4gIG9uQWZ0ZXJSZW5kZXJQaWNraW5nU2NlbmU6ICgpID0+IHt9LFxuXG4gIG9uTmVlZFJlZHJhdzogKCkgPT4gdHJ1ZSxcbiAgb25Nb3VzZU1vdmU6ICgpID0+IHt9LFxuICBvbkNsaWNrOiAoKSA9PiB7fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2ViR0xSZW5kZXJlciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgc3RhdGljIGdldCBwcm9wVHlwZXMoKSB7XG4gICAgcmV0dXJuIFBST1BfVFlQRVM7XG4gIH1cblxuICBzdGF0aWMgZ2V0IGRlZmF1bHRQcm9wcygpIHtcbiAgICByZXR1cm4gREVGQVVMVF9QUk9QUztcbiAgfVxuXG4gIC8qKlxuICAgKiBAY2xhc3NkZXNjXG4gICAqIFNtYWxsIHJlYWN0IGNvbXBvbmVudCB0aGF0IHVzZXMgTHVtYS5HTCB0byBpbml0aWFsaXplIGEgV2ViR0wgY29udGV4dC5cbiAgICpcbiAgICogUmV0dXJucyBhIGNhbnZhcywgY3JlYXRlcyBhIGJhc2ljIFdlYkdMIGNvbnRleHQsIGEgY2FtZXJhIGFuZCBhIHNjZW5lLFxuICAgKiBzZXRzIHVwIGEgcmVuZGVybG9vcCwgYW5kIHJlZ2lzdGVycyBzb21lIGJhc2ljIGV2ZW50IGhhbmRsZXJzXG4gICAqXG4gICAqIEBjbGFzc1xuICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBzZWUgcHJvcFR5cGVzIGRvY3VtZW50YXRpb25cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBnbDogbnVsbFxuICAgIH07XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLnJlZnMub3ZlcmxheTtcbiAgICB0aGlzLl9pbml0V2ViR0woY2FudmFzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIEx1bWFHTCBsaWJyYXJ5IGFuZCB0aHJvdWdoIGl0IFdlYkdMXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjYW52YXNcbiAgICovXG4gIF9pbml0V2ViR0woY2FudmFzKSB7XG4gICAgbGV0IHtnbH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghZ2wpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGdsID0gY3JlYXRlR0xDb250ZXh0KHtjYW52YXMsIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZX0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkluaXRpYWxpemF0aW9uRmFpbGVkKGVycm9yKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGV2ZW50cyA9IGFkZEV2ZW50cyhjYW52YXMsIHtcbiAgICAgIGNhY2hlU2l6ZTogZmFsc2UsXG4gICAgICBjYWNoZVBvc2l0aW9uOiBmYWxzZSxcbiAgICAgIGNlbnRlck9yaWdpbjogZmFsc2UsXG4gICAgICBvbkNsaWNrOiB0aGlzLl9vbkNsaWNrLFxuICAgICAgb25Nb3VzZU1vdmU6IHRocm90dGxlKHRoaXMuX29uTW91c2VNb3ZlLCAxMDApXG4gICAgfSk7XG5cbiAgICB0aGlzLnNldFN0YXRlKHtnbCwgZXZlbnRzfSk7XG5cbiAgICB0aGlzLl9hbmltYXRpb25Mb29wKCk7XG5cbiAgICAvLyBDYWxsIGNhbGxiYWNrIGxhc3QsIGluIGNhc2UgaXQgdGhyb3dzXG4gICAgdGhpcy5wcm9wcy5vblJlbmRlcmVySW5pdGlhbGl6ZWQoe2dsfSk7XG4gIH1cblxuICAvLyBUT0RPIC0gbW92ZSB0aGlzIGJhY2sgdG8gbHVtYS5nbC9zY2VuZS5qc1xuICAvKiBlc2xpbnQtZGlzYWJsZSBtYXgtc3RhdGVtZW50cyAqL1xuICBfcGljayh4LCB5KSB7XG4gICAgY29uc3Qge2dsfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qge2NhbWVyYSwgc2NlbmUsIHBpeGVsUmF0aW99ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHBpY2tlZE1vZGVscyA9IHNjZW5lLnBpY2tNb2RlbHMoZ2wsIHtcbiAgICAgIGNhbWVyYSxcbiAgICAgIHg6IHggKiBwaXhlbFJhdGlvLFxuICAgICAgeTogeSAqIHBpeGVsUmF0aW9cbiAgICB9KTtcblxuICAgIHJldHVybiBwaWNrZWRNb2RlbHM7XG4gIH1cblxuICBAYXV0b2JpbmRcbiAgX29uQ2xpY2soZXZlbnQpIHtcbiAgICBjb25zdCBwaWNrZWQgPSB0aGlzLl9waWNrKGV2ZW50LngsIGV2ZW50LnkpO1xuICAgIHRoaXMucHJvcHMub25DbGljayh7Li4uZXZlbnQsIHBpY2tlZH0pO1xuICB9XG5cbiAgQGF1dG9iaW5kXG4gIF9vbk1vdXNlTW92ZShldmVudCkge1xuICAgIGNvbnN0IHBpY2tlZCA9IHRoaXMuX3BpY2soZXZlbnQueCwgZXZlbnQueSk7XG4gICAgdGhpcy5wcm9wcy5vbk1vdXNlTW92ZSh7Li4uZXZlbnQsIHBpY2tlZH0pO1xuICB9XG5cbiAgX3JlbmRlckZyYW1lKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHZpZXdwb3J0OiB7eCwgeSwgd2lkdGgsIGhlaWdodH0sXG4gICAgICBibGVuZGluZzoge2VuYWJsZSwgYmxlbmRGdW5jLCBibGVuZEVxdWF0aW9ufSxcbiAgICAgIHBpeGVsUmF0aW8sXG4gICAgICBjYW1lcmEsXG4gICAgICBzY2VuZVxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qge2dsfSA9IHRoaXMuc3RhdGU7XG4gICAgaWYgKCFnbCB8fCAhc2NlbmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBOb3RlOiBEbyB0aGlzIGFmdGVyIGdsIGNoZWNrLCBpbiBjYXNlIG9uTmVlZFJlZHJhdyBjbGVhcnMgZmxhZ3NcbiAgICBpZiAoIXRoaXMucHJvcHMub25OZWVkUmVkcmF3KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBjbGVhciBkZXB0aCBhbmQgY29sb3IgYnVmZmVyc1xuICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTtcblxuICAgIC8vIHVwZGF0ZSB2aWV3cG9ydCB0byBsYXRlc3QgcHJvcHNcbiAgICAvLyAodHlwaWNhbGx5IGNoYW5nZWQgYnkgYXBwIG9uIGJyb3dzZXIgcmVzaXplIGV0YylcbiAgICBnbC52aWV3cG9ydChcbiAgICAgIHggKiBwaXhlbFJhdGlvLFxuICAgICAgeSAqIHBpeGVsUmF0aW8sXG4gICAgICB3aWR0aCAqIHBpeGVsUmF0aW8sXG4gICAgICBoZWlnaHQgKiBwaXhlbFJhdGlvXG4gICAgKTtcblxuICAgIC8vIHNldHVwIGJsZWRuaW5nXG4gICAgaWYgKGVuYWJsZSkge1xuICAgICAgZ2wuZW5hYmxlKGdsLkJMRU5EKTtcbiAgICAgIGdsLmJsZW5kRnVuYyguLi5ibGVuZEZ1bmMubWFwKHMgPT4gZ2xHZXQoZ2wsIHMpKSk7XG4gICAgICBnbC5ibGVuZEVxdWF0aW9uKGdsR2V0KGdsLCBibGVuZEVxdWF0aW9uKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGdsLmRpc2FibGUoZ2wuQkxFTkQpO1xuICAgIH1cblxuICAgIHRoaXMucHJvcHMub25CZWZvcmVSZW5kZXJGcmFtZSgpO1xuICAgIHNjZW5lLnJlbmRlcih7Y2FtZXJhfSk7XG4gICAgdGhpcy5wcm9wcy5vbkFmdGVyUmVuZGVyRnJhbWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWluIFdlYkdMIGFuaW1hdGlvbiBsb29wXG4gICAqL1xuICBAYXV0b2JpbmRcbiAgX2FuaW1hdGlvbkxvb3AoKSB7XG4gICAgdGhpcy5fcmVuZGVyRnJhbWUoKTtcbiAgICAvLyBLZWVwIHJlZ2lzdGVyaW5nIG91cnNlbHZlcyBmb3IgdGhlIG5leHQgYW5pbWF0aW9uIGZyYW1lXG4gICAgRngucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuX2FuaW1hdGlvbkxvb3ApO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtpZCwgd2lkdGgsIGhlaWdodCwgcGl4ZWxSYXRpb30gPSB0aGlzLnByb3BzO1xuICAgIHJldHVybiAoXG4gICAgICA8Y2FudmFzXG4gICAgICAgIHJlZj17ICdvdmVybGF5JyB9XG4gICAgICAgIGlkPXsgaWQgfVxuICAgICAgICB3aWR0aD17IHdpZHRoICogcGl4ZWxSYXRpbyB8fCAxIH1cbiAgICAgICAgaGVpZ2h0PXsgaGVpZ2h0ICogcGl4ZWxSYXRpbyB8fCAxIH1cbiAgICAgICAgc3R5bGU9eyB7d2lkdGgsIGhlaWdodH0gfS8+XG4gICAgKTtcbiAgfVxuXG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy93ZWJnbC1yZW5kZXJlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OzswQkFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOzs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNLGFBQWE7QUFDakIsTUFBSSxpQkFBVSxNQURHOztBQUdqQixTQUFPLGlCQUFVLE1BQVYsQ0FBaUIsVUFIUDtBQUlqQixVQUFRLGlCQUFVLE1BQVYsQ0FBaUIsVUFKUjs7QUFNakIsTUFBSSxpQkFBVSxNQU5HO0FBT2pCLGNBQVksaUJBQVUsTUFQTDtBQVFqQixZQUFVLGlCQUFVLE1BQVYsQ0FBaUIsVUFSVjtBQVNqQixVQUFRLGlCQUFVLFVBQVYsZUFBNkIsVUFUcEI7QUFVakIsU0FBTyxpQkFBVSxVQUFWLGFBVlU7QUFXakIsWUFBVSxpQkFBVSxNQVhIO0FBWWpCLFVBQVEsaUJBQVUsTUFaRDs7QUFjakIseUJBQXVCLGlCQUFVLElBQVYsQ0FBZSxVQWRyQjtBQWVqQiwwQkFBd0IsaUJBQVUsSUFmakI7QUFnQmpCLFdBQVMsaUJBQVUsSUFoQkY7O0FBa0JqQix1QkFBcUIsaUJBQVUsSUFsQmQ7QUFtQmpCLHNCQUFvQixpQkFBVSxJQW5CYjtBQW9CakIsOEJBQTRCLGlCQUFVLElBcEJyQjtBQXFCakIsNkJBQTJCLGlCQUFVLElBckJwQjs7QUF1QmpCLGdCQUFjLGlCQUFVLElBdkJQO0FBd0JqQixlQUFhLGlCQUFVLElBeEJOO0FBeUJqQixXQUFTLGlCQUFVO0FBekJGLENBQW5COztBQTRCQSxJQUFNLGdCQUFnQjtBQUNwQixNQUFJLElBRGdCO0FBRXBCLE1BQUksY0FGZ0I7QUFHcEIsU0FBTyxJQUhhOztBQUtwQix5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QUNBO0FBQ0EsZUFBRyxxQkFBSCxDQUF5QixLQUFLLGNBQTlCO0FBQ0Q7Ozs2QkFFUTtBQUFBLG9CQUNpQyxLQUFLLEtBRHRDO0FBQUEsVUFDQSxFQURBLFdBQ0EsRUFEQTtBQUFBLFVBQ0ksS0FESixXQUNJLEtBREo7QUFBQSxVQUNXLE1BRFgsV0FDVyxNQURYO0FBQUEsVUFDbUIsVUFEbkIsV0FDbUIsVUFEbkI7O0FBRVAsYUFDRTtBQUNFLGFBQU0sU0FEUjtBQUVFLFlBQUssRUFGUDtBQUdFLGVBQVEsUUFBUSxVQUFSLElBQXNCLENBSGhDO0FBSUUsZ0JBQVMsU0FBUyxVQUFULElBQXVCLENBSmxDO0FBS0UsZUFBUSxFQUFDLFlBQUQsRUFBUSxjQUFSLEVBTFYsR0FERjtBQVFEOzs7O0VBM0p3QyxnQkFBTSxTO2tCQUE1QixhIiwiZmlsZSI6IndlYmdsLXJlbmRlcmVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDE1IFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSwgbm8tdHJ5LWNhdGNoICovXG4vKiBnbG9iYWwgY29uc29sZSAqL1xuaW1wb3J0IFJlYWN0LCB7UHJvcFR5cGVzfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYXV0b2JpbmQgZnJvbSAnYXV0b2JpbmQtZGVjb3JhdG9yJztcbmltcG9ydCB7Y3JlYXRlR0xDb250ZXh0LCBDYW1lcmEsIFNjZW5lLCBhZGRFdmVudHMsIEZ4LCBnbEdldH0gZnJvbSAnbHVtYS5nbCc7XG5pbXBvcnQgdGhyb3R0bGUgZnJvbSAnbG9kYXNoLnRocm90dGxlJztcblxuY29uc3QgUFJPUF9UWVBFUyA9IHtcbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgd2lkdGg6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgaGVpZ2h0OiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG5cbiAgZ2w6IFByb3BUeXBlcy5vYmplY3QsXG4gIHBpeGVsUmF0aW86IFByb3BUeXBlcy5udW1iZXIsXG4gIHZpZXdwb3J0OiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGNhbWVyYTogUHJvcFR5cGVzLmluc3RhbmNlT2YoQ2FtZXJhKS5pc1JlcXVpcmVkLFxuICBzY2VuZTogUHJvcFR5cGVzLmluc3RhbmNlT2YoU2NlbmUpLFxuICBibGVuZGluZzogUHJvcFR5cGVzLm9iamVjdCxcbiAgZXZlbnRzOiBQcm9wVHlwZXMub2JqZWN0LFxuXG4gIG9uUmVuZGVyZXJJbml0aWFsaXplZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25Jbml0aWFsaXphdGlvbkZhaWxlZDogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uRXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuXG4gIG9uQmVmb3JlUmVuZGVyRnJhbWU6IFByb3BUeXBlcy5mdW5jLFxuICBvbkFmdGVyUmVuZGVyRnJhbWU6IFByb3BUeXBlcy5mdW5jLFxuICBvbkJlZm9yZVJlbmRlclBpY2tpbmdTY2VuZTogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uQWZ0ZXJSZW5kZXJQaWNraW5nU2NlbmU6IFByb3BUeXBlcy5mdW5jLFxuXG4gIG9uTmVlZFJlZHJhdzogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uTW91c2VNb3ZlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmNcbn07XG5cbmNvbnN0IERFRkFVTFRfUFJPUFMgPSB7XG4gIGdsOiBudWxsLFxuICBpZDogJ3dlYmdsLWNhbnZhcycsXG4gIHNjZW5lOiBudWxsLFxuXG4gIG9uUmVuZGVyZXJJbml0aWFsaXplZDogKCkgPT4ge30sXG4gIG9uSW5pdGlhbGl6YXRpb25GYWlsZWQ6IGVycm9yID0+IGNvbnNvbGUuZXJyb3IoZXJyb3IpLFxuICBvbkVycm9yOiBlcnJvciA9PiB7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH0sXG4gIG9uQmVmb3JlUmVuZGVyRnJhbWU6ICgpID0+IHt9LFxuICBvbkFmdGVyUmVuZGVyRnJhbWU6ICgpID0+IHt9LFxuICBvbkJlZm9yZVJlbmRlclBpY2tpbmdTY2VuZTogKCkgPT4ge30sXG4gIG9uQWZ0ZXJSZW5kZXJQaWNraW5nU2NlbmU6ICgpID0+IHt9LFxuXG4gIG9uTmVlZFJlZHJhdzogKCkgPT4gdHJ1ZSxcbiAgb25Nb3VzZU1vdmU6ICgpID0+IHt9LFxuICBvbkNsaWNrOiAoKSA9PiB7fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2ViR0xSZW5kZXJlciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgc3RhdGljIGdldCBwcm9wVHlwZXMoKSB7XG4gICAgcmV0dXJuIFBST1BfVFlQRVM7XG4gIH1cblxuICBzdGF0aWMgZ2V0IGRlZmF1bHRQcm9wcygpIHtcbiAgICByZXR1cm4gREVGQVVMVF9QUk9QUztcbiAgfVxuXG4gIC8qKlxuICAgKiBAY2xhc3NkZXNjXG4gICAqIFNtYWxsIHJlYWN0IGNvbXBvbmVudCB0aGF0IHVzZXMgTHVtYS5HTCB0byBpbml0aWFsaXplIGEgV2ViR0wgY29udGV4dC5cbiAgICpcbiAgICogUmV0dXJucyBhIGNhbnZhcywgY3JlYXRlcyBhIGJhc2ljIFdlYkdMIGNvbnRleHQsIGEgY2FtZXJhIGFuZCBhIHNjZW5lLFxuICAgKiBzZXRzIHVwIGEgcmVuZGVybG9vcCwgYW5kIHJlZ2lzdGVycyBzb21lIGJhc2ljIGV2ZW50IGhhbmRsZXJzXG4gICAqXG4gICAqIEBjbGFzc1xuICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBzZWUgcHJvcFR5cGVzIGRvY3VtZW50YXRpb25cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBnbDogbnVsbFxuICAgIH07XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLnJlZnMub3ZlcmxheTtcbiAgICB0aGlzLl9pbml0V2ViR0woY2FudmFzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIEx1bWFHTCBsaWJyYXJ5IGFuZCB0aHJvdWdoIGl0IFdlYkdMXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjYW52YXNcbiAgICovXG4gIF9pbml0V2ViR0woY2FudmFzKSB7XG4gICAgbGV0IHtnbH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghZ2wpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGdsID0gY3JlYXRlR0xDb250ZXh0KHtjYW52YXMsIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZX0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkluaXRpYWxpemF0aW9uRmFpbGVkKGVycm9yKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGV2ZW50cyA9IGFkZEV2ZW50cyhjYW52YXMsIHtcbiAgICAgIGNhY2hlU2l6ZTogZmFsc2UsXG4gICAgICBjYWNoZVBvc2l0aW9uOiBmYWxzZSxcbiAgICAgIGNlbnRlck9yaWdpbjogZmFsc2UsXG4gICAgICBvbkNsaWNrOiB0aGlzLl9vbkNsaWNrLFxuICAgICAgb25Nb3VzZU1vdmU6IHRocm90dGxlKHRoaXMuX29uTW91c2VNb3ZlLCAxMDApXG4gICAgfSk7XG5cbiAgICB0aGlzLnNldFN0YXRlKHtnbCwgZXZlbnRzfSk7XG5cbiAgICB0aGlzLl9hbmltYXRpb25Mb29wKCk7XG5cbiAgICAvLyBDYWxsIGNhbGxiYWNrIGxhc3QsIGluIGNhc2UgaXQgdGhyb3dzXG4gICAgdGhpcy5wcm9wcy5vblJlbmRlcmVySW5pdGlhbGl6ZWQoe2dsfSk7XG4gIH1cblxuICAvLyBUT0RPIC0gbW92ZSB0aGlzIGJhY2sgdG8gbHVtYS5nbC9zY2VuZS5qc1xuICAvKiBlc2xpbnQtZGlzYWJsZSBtYXgtc3RhdGVtZW50cyAqL1xuICBfcGljayh4LCB5KSB7XG4gICAgY29uc3Qge2dsfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qge2NhbWVyYSwgc2NlbmUsIHBpeGVsUmF0aW99ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHBpY2tlZE1vZGVscyA9IHNjZW5lLnBpY2tNb2RlbHMoZ2wsIHtcbiAgICAgIGNhbWVyYSxcbiAgICAgIHg6IHggKiBwaXhlbFJhdGlvLFxuICAgICAgeTogeSAqIHBpeGVsUmF0aW9cbiAgICB9KTtcblxuICAgIHJldHVybiBwaWNrZWRNb2RlbHM7XG4gIH1cblxuICBAYXV0b2JpbmRcbiAgX29uQ2xpY2soZXZlbnQpIHtcbiAgICBjb25zdCBwaWNrZWQgPSB0aGlzLl9waWNrKGV2ZW50LngsIGV2ZW50LnkpO1xuICAgIHRoaXMucHJvcHMub25DbGljayh7Li4uZXZlbnQsIHBpY2tlZH0pO1xuICB9XG5cbiAgQGF1dG9iaW5kXG4gIF9vbk1vdXNlTW92ZShldmVudCkge1xuICAgIGNvbnN0IHBpY2tlZCA9IHRoaXMuX3BpY2soZXZlbnQueCwgZXZlbnQueSk7XG4gICAgdGhpcy5wcm9wcy5vbk1vdXNlTW92ZSh7Li4uZXZlbnQsIHBpY2tlZH0pO1xuICB9XG5cbiAgX3JlbmRlckZyYW1lKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHZpZXdwb3J0OiB7eCwgeSwgd2lkdGgsIGhlaWdodH0sXG4gICAgICBibGVuZGluZzoge2VuYWJsZSwgYmxlbmRGdW5jLCBibGVuZEVxdWF0aW9ufSxcbiAgICAgIHBpeGVsUmF0aW8sXG4gICAgICBjYW1lcmEsXG4gICAgICBzY2VuZVxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qge2dsfSA9IHRoaXMuc3RhdGU7XG4gICAgaWYgKCFnbCB8fCAhc2NlbmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBOb3RlOiBEbyB0aGlzIGFmdGVyIGdsIGNoZWNrLCBpbiBjYXNlIG9uTmVlZFJlZHJhdyBjbGVhcnMgZmxhZ3NcbiAgICBpZiAoIXRoaXMucHJvcHMub25OZWVkUmVkcmF3KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBjbGVhciBkZXB0aCBhbmQgY29sb3IgYnVmZmVyc1xuICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJfQklUKTtcblxuICAgIC8vIHVwZGF0ZSB2aWV3cG9ydCB0byBsYXRlc3QgcHJvcHNcbiAgICAvLyAodHlwaWNhbGx5IGNoYW5nZWQgYnkgYXBwIG9uIGJyb3dzZXIgcmVzaXplIGV0YylcbiAgICBnbC52aWV3cG9ydChcbiAgICAgIHggKiBwaXhlbFJhdGlvLFxuICAgICAgeSAqIHBpeGVsUmF0aW8sXG4gICAgICB3aWR0aCAqIHBpeGVsUmF0aW8sXG4gICAgICBoZWlnaHQgKiBwaXhlbFJhdGlvXG4gICAgKTtcblxuICAgIC8vIHNldHVwIGJsZWRuaW5nXG4gICAgaWYgKGVuYWJsZSkge1xuICAgICAgZ2wuZW5hYmxlKGdsLkJMRU5EKTtcbiAgICAgIGdsLmJsZW5kRnVuYyguLi5ibGVuZEZ1bmMubWFwKHMgPT4gZ2xHZXQoZ2wsIHMpKSk7XG4gICAgICBnbC5ibGVuZEVxdWF0aW9uKGdsR2V0KGdsLCBibGVuZEVxdWF0aW9uKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGdsLmRpc2FibGUoZ2wuQkxFTkQpO1xuICAgIH1cblxuICAgIHRoaXMucHJvcHMub25CZWZvcmVSZW5kZXJGcmFtZSgpO1xuICAgIHNjZW5lLnJlbmRlcih7Y2FtZXJhfSk7XG4gICAgdGhpcy5wcm9wcy5vbkFmdGVyUmVuZGVyRnJhbWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWluIFdlYkdMIGFuaW1hdGlvbiBsb29wXG4gICAqL1xuICBAYXV0b2JpbmRcbiAgX2FuaW1hdGlvbkxvb3AoKSB7XG4gICAgdGhpcy5fcmVuZGVyRnJhbWUoKTtcbiAgICAvLyBLZWVwIHJlZ2lzdGVyaW5nIG91cnNlbHZlcyBmb3IgdGhlIG5leHQgYW5pbWF0aW9uIGZyYW1lXG4gICAgRngucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuX2FuaW1hdGlvbkxvb3ApO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtpZCwgd2lkdGgsIGhlaWdodCwgcGl4ZWxSYXRpb30gPSB0aGlzLnByb3BzO1xuICAgIHJldHVybiAoXG4gICAgICA8Y2FudmFzXG4gICAgICAgIHJlZj17ICdvdmVybGF5JyB9XG4gICAgICAgIGlkPXsgaWQgfVxuICAgICAgICB3aWR0aD17IHdpZHRoICogcGl4ZWxSYXRpbyB8fCAxIH1cbiAgICAgICAgaGVpZ2h0PXsgaGVpZ2h0ICogcGl4ZWxSYXRpbyB8fCAxIH1cbiAgICAgICAgc3R5bGU9eyB7d2lkdGgsIGhlaWdodH0gfS8+XG4gICAgKTtcbiAgfVxuXG59XG4iXX0=

@@ -5,3 +5,3 @@ {

"license": "MIT",
"version": "2.2.2",
"version": "2.2.3",
"keywords": [

@@ -8,0 +8,0 @@ "webgl",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

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