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

2gl

Package Overview
Dependencies
Maintainers
3
Versions
51
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

2gl - npm Package Compare versions

Comparing version 0.7.0 to 0.8.0

1

index.d.ts

@@ -202,2 +202,3 @@ /// <reference types="@2gis/gl-matrix" />

failIfMajorPerformanceCaveat: boolean;
preserveDrawingBuffer: boolean;
version: number;

@@ -204,0 +205,0 @@ }

2

package.json
{
"name": "2gl",
"version": "0.7.0",
"version": "0.8.0",
"description": "WebGL library for 2GIS projects",

@@ -5,0 +5,0 @@ "repository": {

@@ -15,4 +15,5 @@ import Object3DPlugin from './rendererPlugins/Object3DPlugin';

* @param {Number[]} [options.clearColor=[1,1,1,1]] Цвет заливки в формате RGBA
* @param {Boolean} [options.sortObjects=true] Нужно ли сортировать прозрачные объекты по удаленности
* или по renderOrder
* @param {Boolean} [options.sortObjects=true] Нужно ли сортировать прозрачные объекты по удаленности или по renderOrder
* @param {Boolean} [options.preserveDrawingBuffer=false] Сохранять ли содержимое Drawing Buffer
* (может влиять на производительность)
* */

@@ -29,3 +30,4 @@ class Renderer {

stencil: options.stencil !== undefined ? options.stencil : false,
failIfMajorPerformanceCaveat: options.failIfMajorPerformanceCaveat !== undefined ? options.failIfMajorPerformanceCaveat : false
failIfMajorPerformanceCaveat: options.failIfMajorPerformanceCaveat !== undefined ? options.failIfMajorPerformanceCaveat : false,
preserveDrawingBuffer: options.preserveDrawingBuffer !== undefined ? options.preserveDrawingBuffer : false
};

@@ -281,2 +283,2 @@

*/
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9SZW5kZXJlci5qcyJdLCJuYW1lcyI6WyJPYmplY3QzRFBsdWdpbiIsIlJlbmRlcmVyIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwiY2FudmFzIiwiX2NhbnZhc0VsZW1lbnQiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiYXR0cmlidXRlcyIsImFudGlhbGlhcyIsInVuZGVmaW5lZCIsInN0ZW5jaWwiLCJmYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0IiwiX2dsIiwidmVyc2lvbiIsImdldENvbnRleHQiLCJnbCIsIl9waXhlbFJhdGlvIiwicGl4ZWxSYXRpbyIsImF1dG9DbGVhciIsImNsZWFyQ29sb3IiLCJzb3J0T2JqZWN0cyIsIl9wbHVnaW5zIiwiX3BsdWdpbnNCeVR5cGUiLCJfbWF4UGx1Z2luT3JkZXIiLCJhZGRQbHVnaW4iLCJ3ZWJHbEV4dGVuc2lvbnMiLCJwbHVnaW4iLCJvcmRlciIsInB1c2giLCJzb3J0IiwiYSIsImIiLCJ0eXBlIiwiTWF0aCIsIm1heCIsImFwcGx5IiwibWFwIiwicCIsInJlbW92ZVBsdWdpbiIsIlBsdWdpbiIsInNvbWUiLCJlbCIsImkiLCJzcGxpY2UiLCJzZXRQaXhlbFJhdGlvIiwidmFsdWUiLCJnZXRQaXhlbFJhdGlvIiwic2V0U2l6ZSIsIndpZHRoIiwiaGVpZ2h0IiwiX3NpemUiLCJzdHlsZSIsInNldFZpZXdwb3J0Iiwidmlld3BvcnQiLCJnZXRTaXplIiwic2V0UmVuZGVyVGFyZ2V0IiwicmVuZGVyVGFyZ2V0IiwiX3JlbmRlclRhcmdldCIsInJlYWRQaXhlbHMiLCJ4IiwieSIsImFycmF5IiwiYmluZCIsIlJHQkEiLCJVTlNJR05FRF9CWVRFIiwidW5iaW5kIiwiY2xlYXIiLCJDT0xPUl9CVUZGRVJfQklUIiwiREVQVEhfQlVGRkVSX0JJVCIsInJlbmRlciIsInNjZW5lIiwiY2FtZXJhIiwidXNlckRhdGEiLCJ0eXBpZnlGb3JSZW5kZXIiLCJjbGVhckRlcHRoIiwiY2xlYXJTdGVuY2lsIiwidXBkYXRlTG9jYWxNYXRyaXgiLCJ1cGRhdGVXb3JsZE1hdHJpeCIsInN0YXRlIiwicmVuZGVyZXIiLCJleHRlbnNpb25zIiwicGx1Z2luc1RvUmVuZGVyIiwiaXRlbSIsImZpbHRlciIsImhhc09iamVjdHMiLCJsZW5ndGgiLCJhZGRFeHRlbnNpb24iLCJuYW1lIiwiZ2V0RXh0ZW5zaW9uIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxjQUFQLE1BQTJCLGtDQUEzQjs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsTUFBTUMsUUFBTixDQUFlO0FBQ1hDLGdCQUFZQyxPQUFaLEVBQXFCO0FBQ2pCQSxrQkFBVUEsV0FBVyxFQUFyQjs7QUFFQSxZQUFJQSxRQUFRQyxNQUFaLEVBQW9CO0FBQ2hCLGlCQUFLQyxjQUFMLEdBQXNCLE9BQU9GLFFBQVFDLE1BQWYsS0FBMEIsUUFBMUIsR0FDbEJFLFNBQVNDLGNBQVQsQ0FBd0JKLFFBQVFDLE1BQWhDLENBRGtCLEdBQ3dCRCxRQUFRQyxNQUR0RDs7QUFHQSxrQkFBTUksYUFBYTtBQUNmQywyQkFBV04sUUFBUU0sU0FBUixLQUFzQkMsU0FBdEIsR0FBa0NQLFFBQVFNLFNBQTFDLEdBQXNELElBRGxEO0FBRWZFLHlCQUFTUixRQUFRUSxPQUFSLEtBQW9CRCxTQUFwQixHQUFnQ1AsUUFBUVEsT0FBeEMsR0FBa0QsS0FGNUM7QUFHZkMsOENBQThCVCxRQUFRUyw0QkFBUixLQUF5Q0YsU0FBekMsR0FDMUJQLFFBQVFTLDRCQURrQixHQUNhO0FBSjVCLGFBQW5COztBQU9BLGlCQUFLQyxHQUFMLEdBQVdWLFFBQVFXLE9BQVIsS0FBb0IsQ0FBcEIsR0FDUCxLQUFLVCxjQUFMLENBQW9CVSxVQUFwQixDQUErQixRQUEvQixFQUF5Q1AsVUFBekMsQ0FETyxHQUVOLEtBQUtILGNBQUwsQ0FBb0JVLFVBQXBCLENBQStCLE9BQS9CLEVBQXdDUCxVQUF4QyxLQUNHLEtBQUtILGNBQUwsQ0FBb0JVLFVBQXBCLENBQStCLG9CQUEvQixFQUFxRFAsVUFBckQsQ0FIUjtBQUlILFNB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REUsRUFFbkJ5RCxNQUZtQixDQUVaekQsVUFBVUEsT0FBTzBELFVBQVAsRUFGRSxDQUF4Qjs7QUFJQSxhQUFLLElBQUkxQyxJQUFJLENBQWIsRUFBZ0JBLElBQUl1QyxnQkFBZ0JJLE1BQXBDLEVBQTRDM0MsR0FBNUMsRUFBaUQ7QUFDN0N1Qyw0QkFBZ0J2QyxDQUFoQixFQUFtQjJCLE1BQW5CLENBQ0lTLEtBREosRUFFSUcsZ0JBQWdCdkMsSUFBSSxDQUFwQixDQUZKLEVBR0l1QyxnQkFBZ0J2QyxJQUFJLENBQXBCLENBSEo7QUFLSDs7QUFFRCxZQUFJLEtBQUtlLGFBQVQsRUFBd0I7QUFDcEIsaUJBQUtBLGFBQUwsQ0FBbUJRLE1BQW5CLENBQTBCbEQsRUFBMUI7QUFDSDs7QUFFRCxlQUFPLElBQVA7QUFDSDs7QUFFRDs7Ozs7QUFLQXVFLGlCQUFhQyxJQUFiLEVBQW1CO0FBQ2YsYUFBSzlELGVBQUwsQ0FBcUI4RCxJQUFyQixJQUE2QixLQUFLM0UsR0FBTCxDQUFTNEUsWUFBVCxDQUFzQkQsSUFBdEIsQ0FBN0I7QUFDQSxlQUFPLElBQVA7QUFDSDtBQXJRVTs7QUF3UWYsZUFBZXZGLFFBQWY7O0FBRUEiLCJmaWxlIjoiUmVuZGVyZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT2JqZWN0M0RQbHVnaW4gZnJvbSAnLi9yZW5kZXJlclBsdWdpbnMvT2JqZWN0M0RQbHVnaW4nO1xuXG4vKipcbiAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40Y8gV2ViR0wg0LrQvtC90YLQtdC60YHRgtCwINC4INC+0YLRgNC40YHQvtCy0LrQuCDQvtCx0YrQtdC60YLQvtCyLlxuICog0JTQu9GPINC90LXQutC+0YLQvtGA0YvRhSDQvtCx0YrQtdC60YLQvtCyINC80L7QttC10YIg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINGB0L/QtdGG0LjRhNC40YfQvdGL0LUg0YDQtdC90LTQtdGA0YsuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IFtvcHRpb25zLmNhbnZhc10g0K3Qu9C10LzQtdC90YIgY2FudmFzXG4gKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gW29wdGlvbnMuZ2xdINCV0YHQu9C4INGN0LvQtdC80LXQvdGCIGNhbnZhcyDQvdC1INGD0LrQsNC30LDQvSwg0YLQviDQvNC+0LbQvdC+INC90LDQv9GA0Y/QvNGD0Y4g0L/QtdGA0LXQtNCw0YLRjCBXZWJHTCDQutC+0L3RgtC10LrRgdGCXG4gKiBAcGFyYW0ge051bWJlcn0gW29wdGlvbnMucGl4ZWxSYXRpbz0xXSBQaXhlbCByYXRpbyDRjdC60YDQsNC90LBcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdGlvbnMuYW50aWFsaWFzPXRydWVdINCY0YHQv9C+0LvRjNC30L7QstCw0YLRjCDQu9C4INCw0L3RgtC40LDQu9C40LDRgdC40L3Qs1xuICogQHBhcmFtIHtCb29sZWFufSBbb3B0aW9ucy5zdGVuY2lsPWZhbHNlXSDQmNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LvQuCBzdGVuY2lsIGJ1ZmZlclxuICogQHBhcmFtIHtCb29sZWFufSBbb3B0aW9ucy5hdXRvQ2xlYXI9dHJ1ZV0g0KHRgtC40YDQsNGC0Ywg0LvQuCDQv9GA0L7RiNC70YvQuSDQutCw0LTRgCDQv9C10YDQtdC0INC90L7QstGL0Lkg0YDQtdC90LTQtdGA0LjQvdCz0L7QvFxuICogQHBhcmFtIHtOdW1iZXJbXX0gW29wdGlvbnMuY2xlYXJDb2xvcj1bMSwxLDEsMV1dINCm0LLQtdGCINC30LDQu9C40LLQutC4INCyINGE0L7RgNC80LDRgtC1IFJHQkFcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdGlvbnMuc29ydE9iamVjdHM9dHJ1ZV0g0J3Rg9C20L3QviDQu9C4INGB0L7RgNGC0LjRgNC+0LLQsNGC0Ywg0L/RgNC+0LfRgNCw0YfQvdGL0LUg0L7QsdGK0LXQutGC0Ysg0L/QviDRg9C00LDQu9C10L3QvdC+0YHRgtC4XG4gKiDQuNC70Lgg0L/QviByZW5kZXJPcmRlclxuICogKi9cbmNsYXNzIFJlbmRlcmVyIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gICAgICAgIGlmIChvcHRpb25zLmNhbnZhcykge1xuICAgICAgICAgICAgdGhpcy5fY2FudmFzRWxlbWVudCA9IHR5cGVvZiBvcHRpb25zLmNhbnZhcyA9PT0gJ3N0cmluZycgP1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG9wdGlvbnMuY2FudmFzKSA6IG9wdGlvbnMuY2FudmFzO1xuXG4gICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0ge1xuICAgICAgICAgICAgICAgIGFudGlhbGlhczogb3B0aW9ucy5hbnRpYWxpYXMgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMuYW50aWFsaWFzIDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdGVuY2lsOiBvcHRpb25zLnN0ZW5jaWwgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMuc3RlbmNpbCA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQ6IG9wdGlvbnMuZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdCAhPT0gdW5kZWZpbmVkID9cbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0IDogZmFsc2VcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuX2dsID0gb3B0aW9ucy52ZXJzaW9uID09PSAyID9cbiAgICAgICAgICAgICAgICB0aGlzLl9jYW52YXNFbGVtZW50LmdldENvbnRleHQoJ3dlYmdsMicsIGF0dHJpYnV0ZXMpIDpcbiAgICAgICAgICAgICAgICAodGhpcy5fY2FudmFzRWxlbWVudC5nZXRDb250ZXh0KCd3ZWJnbCcsIGF0dHJpYnV0ZXMpIHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhbnZhc0VsZW1lbnQuZ2V0Q29udGV4dCgnZXhwZXJpbWVudGFsLXdlYmdsJywgYXR0cmlidXRlcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZ2wgPSBvcHRpb25zLmdsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcGl4ZWxSYXRpbyA9IG9wdGlvbnMucGl4ZWxSYXRpbyB8fCAxO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQntC/0YDQtdC00LXQu9GP0LXRgiDRgdGC0LjRgNCw0YLRjCDQu9C4INC/0YDQvtGI0LvRi9C5INC60LDQtNGAINC/0LXRgNC10LQg0L3QvtCy0YvQvCDRgNC10L3QtNC10YDQuNC90LPQvtC8XG4gICAgICAgICAqIEB0eXBlIHtCb29sZWFufVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5hdXRvQ2xlYXIgPSBvcHRpb25zLmF1dG9DbGVhciAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5hdXRvQ2xlYXIgOiB0cnVlO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQptCy0LXRgiDQt9Cw0LvQuNCy0LrQuCDQsiDRhNC+0YDQvNCw0YLQtSBSR0JBXG4gICAgICAgICAqIEB0eXBlIHtBcnJheX1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY2xlYXJDb2xvciA9IG9wdGlvbnMuY2xlYXJDb2xvciB8fCBbMSwgMSwgMSwgMV07XG4gICAgICAgIHRoaXMuc29ydE9iamVjdHMgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuX3BsdWdpbnMgPSBbXTtcbiAgICAgICAgdGhpcy5fcGx1Z2luc0J5VHlwZSA9IHt9O1xuICAgICAgICB0aGlzLl9tYXhQbHVnaW5PcmRlciA9IDA7XG5cbiAgICAgICAgdGhpcy5hZGRQbHVnaW4obmV3IE9iamVjdDNEUGx1Z2luKCksIDApO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQodC/0LjRgdC+0Log0LLQutC70Y7Rh9C10L3QvdGL0YUgV2ViR0wg0YDQsNGB0YjQuNGA0LXQvdC40LlcbiAgICAgICAgICogQHR5cGUge09iamVjdH1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMud2ViR2xFeHRlbnNpb25zID0ge307XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JTQvtCx0LDQstC70Y/QtdGCIHtAbGluayBSZW5kZXJlclBsdWdpbn0g0Log0YDQtdC90LTQtdGA0YMuINCaINGA0LXQvdC00LXRgNGDINC80L7QttC10YIg0LHRi9GC0Ywg0LTQvtCx0LDQstC70LXQvSDRgtC+0LvRjNC60L4g0L7QtNC40L0g0L/Qu9Cw0LPQuNC9INC60LDQttC00L7Qs9C+INGC0LjQv9CwLlxuICAgICAqIEBwYXJhbSB7UGx1Z2lufSBwbHVnaW4g0J/Qu9Cw0LPQuNC9XG4gICAgICogQHBhcmFtIHs/TnVtYmVyfSBvcmRlciDQmtCw0LbQtNGL0Lkg0L/Qu9Cw0LPQuNC9INCy0YvQv9C+0LvQvdGP0LXRgtGB0Y8g0L/RgNC4INGA0LXQvdC00LXRgNC40L3Qs9C1INC/0L4g0LLQvtC30YDQsNGB0YLQsNC90LjRjiBvcmRlcixcbiAgICAgKiDQtdGB0LvQuCDQtdCz0L4g0L3QtdGCLCDRgtC+INCy0YvQsdC40YDQsNC10YLRgdGPINC80LDQutGB0LjQvNCw0LvRjNC90YvQuSBvcmRlciArIDEuXG4gICAgICovXG4gICAgYWRkUGx1Z2luKHBsdWdpbiwgb3JkZXIpIHtcbiAgICAgICAgaWYgKG9yZGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG9yZGVyID0gdGhpcy5fbWF4UGx1Z2luT3JkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcGx1Z2lucy5wdXNoKHtcbiAgICAgICAgICAgIHBsdWdpbixcbiAgICAgICAgICAgIG9yZGVyXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9wbHVnaW5zLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKTtcbiAgICAgICAgdGhpcy5fcGx1Z2luc0J5VHlwZVtwbHVnaW4udHlwZV0gPSBwbHVnaW47XG5cbiAgICAgICAgdGhpcy5fbWF4UGx1Z2luT3JkZXIgPSBNYXRoLm1heC5hcHBseShNYXRoLCB0aGlzLl9wbHVnaW5zLm1hcChwID0+IHAub3JkZXIpKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiB7QGxpbmsgUmVuZGVyZXJQbHVnaW59INC40Lcg0YDQtdC90LTQtdGA0LAuXG4gICAgICogQHBhcmFtIHtQbHVnaW59IFBsdWdpbiDQmtC70LDRgdGBINC/0LvQsNCz0LjQvdCwXG4gICAgICovXG4gICAgcmVtb3ZlUGx1Z2luKFBsdWdpbikge1xuICAgICAgICB0aGlzLl9wbHVnaW5zLnNvbWUoKGVsLCBpKSA9PiB7XG4gICAgICAgICAgICBpZiAoZWwucGx1Z2luIGluc3RhbmNlb2YgUGx1Z2luKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3BsdWdpbnNCeVR5cGVbdGhpcy5fcGx1Z2luc1tpXS5wbHVnaW4udHlwZV07XG4gICAgICAgICAgICAgICAgdGhpcy5fcGx1Z2lucy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINC/0LDRgNCw0LzQtdGC0YAgcGl4ZWwgcmF0aW9cbiAgICAgKiBAcGFyYW0ge051bWJlcn0gdmFsdWVcbiAgICAgKi9cbiAgICBzZXRQaXhlbFJhdGlvKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3BpeGVsUmF0aW8gPSB2YWx1ZTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgtC10LrRg9GJ0LjQuSBwaXhlbCByYXRpb1xuICAgICAqIEByZXR1cm5zIHtOdW1iZXJ9XG4gICAgICovXG4gICAgZ2V0UGl4ZWxSYXRpbygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BpeGVsUmF0aW87XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0YDQsNC30LzQtdGA0Ysg0Y3Qu9C10LzQtdC90YLRgyBjYW52YXMg0Lggdmlld3BvcnQg0LTQu9GPIFdlYkdMXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IHdpZHRoINCo0LjRgNC40L3QsCDQsiDQv9C40LrRgdC10LvRj9GFXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IGhlaWdodCDQktGL0YHQvtGC0LAg0LIg0L/QuNC60YHQtdC70Y/RhVxuICAgICAqL1xuICAgIHNldFNpemUod2lkdGgsIGhlaWdodCkge1xuICAgICAgICB0aGlzLl9zaXplID0gW1xuICAgICAgICAgICAgd2lkdGggKiB0aGlzLl9waXhlbFJhdGlvLFxuICAgICAgICAgICAgaGVpZ2h0ICogdGhpcy5fcGl4ZWxSYXRpb1xuICAgICAgICBdO1xuXG4gICAgICAgIGlmICh0aGlzLl9jYW52YXNFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9jYW52YXNFbGVtZW50LndpZHRoID0gdGhpcy5fc2l6ZVswXTtcbiAgICAgICAgICAgIHRoaXMuX2NhbnZhc0VsZW1lbnQuaGVpZ2h0ID0gdGhpcy5fc2l6ZVsxXTtcbiAgICAgICAgICAgIHRoaXMuX2NhbnZhc0VsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aCArICdweCc7XG4gICAgICAgICAgICB0aGlzLl9jYW52YXNFbGVtZW50LnN0eWxlLmhlaWdodCA9IGhlaWdodCArICdweCc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFZpZXdwb3J0KCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgdmlld3BvcnQg0LTQu9GPIFdlYkdMXG4gICAgICog0JXRgdC70Lgg0YDQsNC30LzQtdGA0Ysg0L3QtSDRg9C60LDQt9Cw0L3Riywg0YLQviDQstGL0YHRgtCw0LLQu9GP0LXRgiDRgNCw0LfQvNC10YDRiyDRg9C60LDQt9Cw0L3QvdGL0LUg0LIg0YTRg9C90LrRhtC40Lgge0BsaW5rIFJlbmRlcmVyI3NldFNpemV9XG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IFt3aWR0aF0g0KjQuNGA0LjQvdCwINCyINC/0LjQutGB0LXQu9GP0YVcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gW2hlaWdodF0g0JLRi9GB0L7RgtCwINCyINC/0LjQutGB0LXQu9GP0YVcbiAgICAgKi9cbiAgICBzZXRWaWV3cG9ydCh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgICAgIGlmICh3aWR0aCAhPT0gdW5kZWZpbmVkICYmIGhlaWdodCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9nbC52aWV3cG9ydCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2dsLnZpZXdwb3J0KDAsIDAsIHRoaXMuX3NpemVbMF0sIHRoaXMuX3NpemVbMV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YLQtdC60YPRidC40Lkgdmlld3BvcnQgV2ViR0xcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9XG4gICAgICovXG4gICAgZ2V0U2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgUmVuZGVyVGFyZ2V0XG4gICAgICogQHBhcmFtIHs/UmVuZGVyVGFyZ2V0fSByZW5kZXJUYXJnZXRcbiAgICAgKi9cbiAgICBzZXRSZW5kZXJUYXJnZXQocmVuZGVyVGFyZ2V0KSB7XG4gICAgICAgIHRoaXMuX3JlbmRlclRhcmdldCA9IHJlbmRlclRhcmdldDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHRh9C40YLRi9Cy0LDQtdGCINGD0LrQsNC30LDQvdC90YPRjiDQvtCx0LvQsNGB0YLRjCDQv9C40LrRgdC10LvQtdC5INCyINC80LDRgdGB0LjQslxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSB4INCa0L7QvtGA0LTQuNC90LDRgtGLINC90LDRh9Cw0LvQsCDQvtCx0LvQsNGB0YLQuFxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSB5INCa0L7QvtGA0LTQuNC90LDRgtGLINC90LDRh9Cw0LvQsCDQvtCx0LvQsNGB0YLQuFxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSB3aWR0aCDQqNC40YDQuNC90LAg0L7QsdC70LDRgdGC0LhcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gaGVpZ2h0INCS0YvRgdC+0YLQsCDQvtCx0LvQsNGB0YLQuFxuICAgICAqIEBwYXJhbSB7VHlwZWRBcnJheX0gYXJyYXkg0JzQsNGB0YHQuNCyINC00LvRjyDQt9Cw0L/QuNGB0Lgg0LTQsNC90L3Ri9GFXG4gICAgICovXG4gICAgcmVhZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBhcnJheSkge1xuICAgICAgICBjb25zdCBnbCA9IHRoaXMuX2dsO1xuXG4gICAgICAgIGlmICh0aGlzLl9yZW5kZXJUYXJnZXQpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlclRhcmdldC5iaW5kKGdsKTtcbiAgICAgICAgICAgIGdsLnJlYWRQaXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYXJyYXkpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyVGFyZ2V0LnVuYmluZChnbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnbC5yZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGFycmF5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0YfQuNGJ0LDQtdGCINGC0LXQutGD0YnQuNC5INC60LDQtNGAINC4INC30LDQu9C40LLQsNC10YIg0YbQstC10YLQvtC8INGD0LrQsNC30LDQvdC90YvQvCDQsiBjbGVhckNvbG9yXG4gICAgICovXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIGNvbnN0IGdsID0gdGhpcy5fZ2w7XG5cbiAgICAgICAgZ2wuY2xlYXJDb2xvci5hcHBseShnbCwgdGhpcy5jbGVhckNvbG9yKTtcbiAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCg0LjRgdGD0LXRgiDRgdGG0LXQvdGDXG4gICAgICogQHBhcmFtIHtTY2VuZX0gc2NlbmUg0KHRhtC10L3QsFxuICAgICAqIEBwYXJhbSB7Q2FtZXJhfSBjYW1lcmEg0JrQsNC80LXRgNCwXG4gICAgICogQHBhcmFtIHsqfSB1c2VyRGF0YSDQlNC+0L/QvtC70L3QuNGC0LXQu9GM0L3QsNGPINC40L3RhNC+0YDQvNCw0YbQuNGPLCDQutC+0YLQvtGA0LDRjyDQsdGD0LTQtdGCINC/0LXRgNC10LTQsNC90LAg0LLRgdC10Lwg0L/Qu9Cw0LPQuNC90LDQvCDQuCDQvtCx0YrQtdC60YLQsNC8XG4gICAgICovXG4gICAgcmVuZGVyKHNjZW5lLCBjYW1lcmEsIHVzZXJEYXRhKSB7XG4gICAgICAgIGNvbnN0IGdsID0gdGhpcy5fZ2w7XG5cbiAgICAgICAgc2NlbmUudHlwaWZ5Rm9yUmVuZGVyKHRoaXMuX3BsdWdpbnNCeVR5cGUpO1xuXG4gICAgICAgIGlmICh0aGlzLl9yZW5kZXJUYXJnZXQpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlclRhcmdldC5iaW5kKGdsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGdsLmNsZWFyRGVwdGgoMSk7XG4gICAgICAgIGdsLmNsZWFyU3RlbmNpbCgwKTtcblxuICAgICAgICBpZiAodGhpcy5hdXRvQ2xlYXIpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhbWVyYS51cGRhdGVMb2NhbE1hdHJpeCgpO1xuICAgICAgICBjYW1lcmEudXBkYXRlV29ybGRNYXRyaXgoKTtcblxuICAgICAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgICAgIHJlbmRlcmVyOiB0aGlzLFxuICAgICAgICAgICAgZXh0ZW5zaW9uczogdGhpcy53ZWJHbEV4dGVuc2lvbnMsXG4gICAgICAgICAgICBzY2VuZSxcbiAgICAgICAgICAgIGNhbWVyYSxcbiAgICAgICAgICAgIGdsLFxuICAgICAgICAgICAgdXNlckRhdGFcbiAgICAgICAgfTtcbiAgICAgICAgLy8gVE9ETzogbWFrZSBzdGF0ZSBpbW11dGFibGU/XG5cbiAgICAgICAgY29uc3QgcGx1Z2luc1RvUmVuZGVyID0gdGhpcy5fcGx1Z2luc1xuICAgICAgICAgICAgLm1hcChpdGVtID0+IGl0ZW0ucGx1Z2luKVxuICAgICAgICAgICAgLmZpbHRlcihwbHVnaW4gPT4gcGx1Z2luLmhhc09iamVjdHMoKSk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwbHVnaW5zVG9SZW5kZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHBsdWdpbnNUb1JlbmRlcltpXS5yZW5kZXIoXG4gICAgICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICAgICAgcGx1Z2luc1RvUmVuZGVyW2kgLSAxXSxcbiAgICAgICAgICAgICAgICBwbHVnaW5zVG9SZW5kZXJbaSArIDFdXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3JlbmRlclRhcmdldCkge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyVGFyZ2V0LnVuYmluZChnbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC60LvRjtGH0LDQtdGCINGA0LDRgdGI0LjRgNC10L3QuNC1IFdlYkdMXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSDQndCw0LfQstCw0L3QuNC1INGA0LDRgdGI0LjRgNC10L3QuNGPXG4gICAgICovXG4gICAgYWRkRXh0ZW5zaW9uKG5hbWUpIHtcbiAgICAgICAgdGhpcy53ZWJHbEV4dGVuc2lvbnNbbmFtZV0gPSB0aGlzLl9nbC5nZXRFeHRlbnNpb24obmFtZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVuZGVyZXI7XG5cbi8qKlxuICog0KHQvtGB0YLQvtGP0L3QuNC1INGA0LXQvdC00LXRgNCwLiDQn9C10YDQtdC00LDQtdGC0YHRjyDQvtCx0YrQtdC60YLQsNC8INC00LvRjyDQvtGC0YDQuNGB0L7QstC60LguXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gU3RhdGVcbiAqIEBwcm9wZXJ0eSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICogQHByb3BlcnR5IHtTY2VuZX0gc2NlbmVcbiAqIEBwcm9wZXJ0eSB7Q2FtZXJhfSBjYW1lcmFcbiAqIEBwcm9wZXJ0eSB7UmVuZGVyZXJ9IHJlbmRlcmVyXG4gKi9cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9SZW5kZXJlci5qcyJdLCJuYW1lcyI6WyJPYmplY3QzRFBsdWdpbiIsIlJlbmRlcmVyIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwiY2FudmFzIiwiX2NhbnZhc0VsZW1lbnQiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiYXR0cmlidXRlcyIsImFudGlhbGlhcyIsInVuZGVmaW5lZCIsInN0ZW5jaWwiLCJmYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0IiwicHJlc2VydmVEcmF3aW5nQnVmZmVyIiwiX2dsIiwidmVyc2lvbiIsImdldENvbnRleHQiLCJnbCIsIl9waXhlbFJhdGlvIiwicGl4ZWxSYXRpbyIsImF1dG9DbGVhciIsImNsZWFyQ29sb3IiLCJzb3J0T2JqZWN0cyIsIl9wbHVnaW5zIiwiX3BsdWdpbnNCeVR5cGUiLCJfbWF4UGx1Z2luT3JkZXIiLCJhZGRQbHVnaW4iLCJ3ZWJHbEV4dGVuc2lvbnMiLCJwbHVnaW4iLCJvcmRlciIsInB1c2giLCJzb3J0IiwiYSIsImIiLCJ0eXBlIiwiTWF0aCIsIm1heCIsImFwcGx5IiwibWFwIiwicCIsInJlbW92ZVBsdWdpbiIsIlBsdWdpbiIsInNvbWUiLCJlbCIsImkiLCJzcGxpY2UiLCJzZXRQaXhlbFJhdGlvIiwidmFsdWUiLCJnZXRQaXhlbFJhdGlvIiwic2V0U2l6ZSIsIndpZHRoIiwiaGVpZ2h0IiwiX3NpemUiLCJzdHlsZSIsInNldFZpZXdwb3J0Iiwidmlld3BvcnQiLCJnZXRTaXplIiwic2V0UmVuZGVyVGFyZ2V0IiwicmVuZGVyVGFyZ2V0IiwiX3JlbmRlclRhcmdldCIsInJlYWRQaXhlbHMiLCJ4IiwieSIsImFycmF5IiwiYmluZCIsIlJHQkEiLCJVTlNJR05FRF9CWVRFIiwidW5iaW5kIiwiY2xlYXIiLCJDT0xPUl9CVUZGRVJfQklUIiwiREVQVEhfQlVGRkVSX0JJVCIsInJlbmRlciIsInNjZW5lIiwiY2FtZXJhIiwidXNlckRhdGEiLCJ0eXBpZnlGb3JSZW5kZXIiLCJjbGVhckRlcHRoIiwiY2xlYXJTdGVuY2lsIiwidXBkYXRlTG9jYWxNYXRyaXgiLCJ1cGRhdGVXb3JsZE1hdHJpeCIsInN0YXRlIiwicmVuZGVyZXIiLCJleHRlbnNpb25zIiwicGx1Z2luc1RvUmVuZGVyIiwiaXRlbSIsImZpbHRlciIsImhhc09iamVjdHMiLCJsZW5ndGgiLCJhZGRFeHRlbnNpb24iLCJuYW1lIiwiZ2V0RXh0ZW5zaW9uIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxjQUFQLE1BQTJCLGtDQUEzQjs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxNQUFNQyxRQUFOLENBQWU7QUFDWEMsZ0JBQVlDLE9BQVosRUFBcUI7QUFDakJBLGtCQUFVQSxXQUFXLEVBQXJCOztBQUVBLFlBQUlBLFFBQVFDLE1BQVosRUFBb0I7QUFDaEIsaUJBQUtDLGNBQUwsR0FBc0IsT0FBT0YsUUFBUUMsTUFBZixLQUEwQixRQUExQixHQUNsQkUsU0FBU0MsY0FBVCxDQUF3QkosUUFBUUMsTUFBaEMsQ0FEa0IsR0FDd0JELFFBQVFDLE1BRHREOztBQUdBLGtCQUFNSSxhQUFhO0FBQ2ZDLDJCQUFXTixRQUFRTSxTQUFSLEtBQXNCQyxTQUF0QixHQUFrQ1AsUUFBUU0sU0FBMUMsR0FBc0QsSUFEbEQ7QUFFZkUseUJBQVNSLFFBQVFRLE9BQVIsS0FBb0JELFNBQXBCLEdBQWdDUCxRQUFRUSxPQUF4QyxHQUFrRCxLQUY1QztBQUdmQyw4Q0FBOEJULFFBQVFTLDRCQUFSLEtBQXlDRixTQUF6QyxHQUMxQlAsUUFBUVMsNEJBRGtCLEdBQ2EsS0FKNUI7QUFLZkMsdUNBQXVCVixRQUFRVSxxQkFBUixLQUFrQ0gsU0FBbEMsR0FDbkJQLFFBQVFVLHFCQURXLEdBQ2E7QUFOckIsYUFBbkI7O0FBU0EsaUJBQUtDLEdBQUwsR0FBV1gsUUFBUVksT0FBUixLQUFvQixDQUFwQixHQUNQLEtBQUtWLGNBQUwsQ0FBb0JXLFVBQXBCLENBQStCLFFBQS9CLEVBQXlDUixVQUF6QyxDQURPLEdBRU4sS0FBS0gsY0FBTCxDQUFvQlcsVUFB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S1Z4RCxjQUxVO0FBTVZ5RDtBQU5VLFNBQWQ7QUFRQTs7QUFFQSxjQUFNUyxrQkFBa0IsS0FBSzVELFFBQUwsQ0FDbkJlLEdBRG1CLENBQ2Y4QyxRQUFRQSxLQUFLeEQsTUFERSxFQUVuQnlELE1BRm1CLENBRVp6RCxVQUFVQSxPQUFPMEQsVUFBUCxFQUZFLENBQXhCOztBQUlBLGFBQUssSUFBSTFDLElBQUksQ0FBYixFQUFnQkEsSUFBSXVDLGdCQUFnQkksTUFBcEMsRUFBNEMzQyxHQUE1QyxFQUFpRDtBQUM3Q3VDLDRCQUFnQnZDLENBQWhCLEVBQW1CMkIsTUFBbkIsQ0FDSVMsS0FESixFQUVJRyxnQkFBZ0J2QyxJQUFJLENBQXBCLENBRkosRUFHSXVDLGdCQUFnQnZDLElBQUksQ0FBcEIsQ0FISjtBQUtIOztBQUVELFlBQUksS0FBS2UsYUFBVCxFQUF3QjtBQUNwQixpQkFBS0EsYUFBTCxDQUFtQlEsTUFBbkIsQ0FBMEJsRCxFQUExQjtBQUNIOztBQUVELGVBQU8sSUFBUDtBQUNIOztBQUVEOzs7OztBQUtBdUUsaUJBQWFDLElBQWIsRUFBbUI7QUFDZixhQUFLOUQsZUFBTCxDQUFxQjhELElBQXJCLElBQTZCLEtBQUszRSxHQUFMLENBQVM0RSxZQUFULENBQXNCRCxJQUF0QixDQUE3QjtBQUNBLGVBQU8sSUFBUDtBQUNIO0FBdlFVOztBQTBRZixlQUFleEYsUUFBZjs7QUFFQSIsImZpbGUiOiJSZW5kZXJlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPYmplY3QzRFBsdWdpbiBmcm9tICcuL3JlbmRlcmVyUGx1Z2lucy9PYmplY3QzRFBsdWdpbic7XG5cbi8qKlxuICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQuNC90LjRhtC40LDQu9C40LfQsNGG0LjRjyBXZWJHTCDQutC+0L3RgtC10LrRgdGC0LAg0Lgg0L7RgtGA0LjRgdC+0LLQutC4INC+0LHRitC10LrRgtC+0LIuXG4gKiDQlNC70Y8g0L3QtdC60L7RgtC+0YDRi9GFINC+0LHRitC10LrRgtC+0LIg0LzQvtC20LXRgiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0YHQv9C10YbQuNGE0LjRh9C90YvQtSDRgNC10L3QtNC10YDRiy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gW29wdGlvbnMuY2FudmFzXSDQrdC70LXQvNC10L3RgiBjYW52YXNcbiAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBbb3B0aW9ucy5nbF0g0JXRgdC70Lgg0Y3Qu9C10LzQtdC90YIgY2FudmFzINC90LUg0YPQutCw0LfQsNC9LCDRgtC+INC80L7QttC90L4g0L3QsNC/0YDRj9C80YPRjiDQv9C10YDQtdC00LDRgtGMIFdlYkdMINC60L7QvdGC0LXQutGB0YJcbiAqIEBwYXJhbSB7TnVtYmVyfSBbb3B0aW9ucy5waXhlbFJhdGlvPTFdIFBpeGVsIHJhdGlvINGN0LrRgNCw0L3QsFxuICogQHBhcmFtIHtCb29sZWFufSBbb3B0aW9ucy5hbnRpYWxpYXM9dHJ1ZV0g0JjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC70Lgg0LDQvdGC0LjQsNC70LjQsNGB0LjQvdCzXG4gKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRpb25zLnN0ZW5jaWw9ZmFsc2VdINCY0YHQv9C+0LvRjNC30L7QstCw0YLRjCDQu9C4IHN0ZW5jaWwgYnVmZmVyXG4gKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRpb25zLmF1dG9DbGVhcj10cnVlXSDQodGC0LjRgNCw0YLRjCDQu9C4INC/0YDQvtGI0LvRi9C5INC60LDQtNGAINC/0LXRgNC10LQg0L3QvtCy0YvQuSDRgNC10L3QtNC10YDQuNC90LPQvtC8XG4gKiBAcGFyYW0ge051bWJlcltdfSBbb3B0aW9ucy5jbGVhckNvbG9yPVsxLDEsMSwxXV0g0KbQstC10YIg0LfQsNC70LjQstC60Lgg0LIg0YTQvtGA0LzQsNGC0LUgUkdCQVxuICogQHBhcmFtIHtCb29sZWFufSBbb3B0aW9ucy5zb3J0T2JqZWN0cz10cnVlXSDQndGD0LbQvdC+INC70Lgg0YHQvtGA0YLQuNGA0L7QstCw0YLRjCDQv9GA0L7Qt9GA0LDRh9C90YvQtSDQvtCx0YrQtdC60YLRiyDQv9C+INGD0LTQsNC70LXQvdC90L7RgdGC0Lgg0LjQu9C4INC/0L4gcmVuZGVyT3JkZXJcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdGlvbnMucHJlc2VydmVEcmF3aW5nQnVmZmVyPWZhbHNlXSDQodC+0YXRgNCw0L3Rj9GC0Ywg0LvQuCDRgdC+0LTQtdGA0LbQuNC80L7QtSBEcmF3aW5nIEJ1ZmZlclxuICogKNC80L7QttC10YIg0LLQu9C40Y/RgtGMINC90LAg0L/RgNC+0LjQt9Cy0L7QtNC40YLQtdC70YzQvdC+0YHRgtGMKVxuICogKi9cbmNsYXNzIFJlbmRlcmVyIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gICAgICAgIGlmIChvcHRpb25zLmNhbnZhcykge1xuICAgICAgICAgICAgdGhpcy5fY2FudmFzRWxlbWVudCA9IHR5cGVvZiBvcHRpb25zLmNhbnZhcyA9PT0gJ3N0cmluZycgP1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG9wdGlvbnMuY2FudmFzKSA6IG9wdGlvbnMuY2FudmFzO1xuXG4gICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0ge1xuICAgICAgICAgICAgICAgIGFudGlhbGlhczogb3B0aW9ucy5hbnRpYWxpYXMgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMuYW50aWFsaWFzIDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdGVuY2lsOiBvcHRpb25zLnN0ZW5jaWwgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMuc3RlbmNpbCA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQ6IG9wdGlvbnMuZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdCAhPT0gdW5kZWZpbmVkID9cbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0IDogZmFsc2UsXG4gICAgICAgICAgICAgICAgcHJlc2VydmVEcmF3aW5nQnVmZmVyOiBvcHRpb25zLnByZXNlcnZlRHJhd2luZ0J1ZmZlciAhPT0gdW5kZWZpbmVkID9cbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIgOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuX2dsID0gb3B0aW9ucy52ZXJzaW9uID09PSAyID9cbiAgICAgICAgICAgICAgICB0aGlzLl9jYW52YXNFbGVtZW50LmdldENvbnRleHQoJ3dlYmdsMicsIGF0dHJpYnV0ZXMpIDpcbiAgICAgICAgICAgICAgICAodGhpcy5fY2FudmFzRWxlbWVudC5nZXRDb250ZXh0KCd3ZWJnbCcsIGF0dHJpYnV0ZXMpIHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhbnZhc0VsZW1lbnQuZ2V0Q29udGV4dCgnZXhwZXJpbWVudGFsLXdlYmdsJywgYXR0cmlidXRlcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZ2wgPSBvcHRpb25zLmdsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcGl4ZWxSYXRpbyA9IG9wdGlvbnMucGl4ZWxSYXRpbyB8fCAxO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQntC/0YDQtdC00LXQu9GP0LXRgiDRgdGC0LjRgNCw0YLRjCDQu9C4INC/0YDQvtGI0LvRi9C5INC60LDQtNGAINC/0LXRgNC10LQg0L3QvtCy0YvQvCDRgNC10L3QtNC10YDQuNC90LPQvtC8XG4gICAgICAgICAqIEB0eXBlIHtCb29sZWFufVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5hdXRvQ2xlYXIgPSBvcHRpb25zLmF1dG9DbGVhciAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5hdXRvQ2xlYXIgOiB0cnVlO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQptCy0LXRgiDQt9Cw0LvQuNCy0LrQuCDQsiDRhNC+0YDQvNCw0YLQtSBSR0JBXG4gICAgICAgICAqIEB0eXBlIHtBcnJheX1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY2xlYXJDb2xvciA9IG9wdGlvbnMuY2xlYXJDb2xvciB8fCBbMSwgMSwgMSwgMV07XG4gICAgICAgIHRoaXMuc29ydE9iamVjdHMgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuX3BsdWdpbnMgPSBbXTtcbiAgICAgICAgdGhpcy5fcGx1Z2luc0J5VHlwZSA9IHt9O1xuICAgICAgICB0aGlzLl9tYXhQbHVnaW5PcmRlciA9IDA7XG5cbiAgICAgICAgdGhpcy5hZGRQbHVnaW4obmV3IE9iamVjdDNEUGx1Z2luKCksIDApO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQodC/0LjRgdC+0Log0LLQutC70Y7Rh9C10L3QvdGL0YUgV2ViR0wg0YDQsNGB0YjQuNGA0LXQvdC40LlcbiAgICAgICAgICogQHR5cGUge09iamVjdH1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMud2ViR2xFeHRlbnNpb25zID0ge307XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JTQvtCx0LDQstC70Y/QtdGCIHtAbGluayBSZW5kZXJlclBsdWdpbn0g0Log0YDQtdC90LTQtdGA0YMuINCaINGA0LXQvdC00LXRgNGDINC80L7QttC10YIg0LHRi9GC0Ywg0LTQvtCx0LDQstC70LXQvSDRgtC+0LvRjNC60L4g0L7QtNC40L0g0L/Qu9Cw0LPQuNC9INC60LDQttC00L7Qs9C+INGC0LjQv9CwLlxuICAgICAqIEBwYXJhbSB7UGx1Z2lufSBwbHVnaW4g0J/Qu9Cw0LPQuNC9XG4gICAgICogQHBhcmFtIHs/TnVtYmVyfSBvcmRlciDQmtCw0LbQtNGL0Lkg0L/Qu9Cw0LPQuNC9INCy0YvQv9C+0LvQvdGP0LXRgtGB0Y8g0L/RgNC4INGA0LXQvdC00LXRgNC40L3Qs9C1INC/0L4g0LLQvtC30YDQsNGB0YLQsNC90LjRjiBvcmRlcixcbiAgICAgKiDQtdGB0LvQuCDQtdCz0L4g0L3QtdGCLCDRgtC+INCy0YvQsdC40YDQsNC10YLRgdGPINC80LDQutGB0LjQvNCw0LvRjNC90YvQuSBvcmRlciArIDEuXG4gICAgICovXG4gICAgYWRkUGx1Z2luKHBsdWdpbiwgb3JkZXIpIHtcbiAgICAgICAgaWYgKG9yZGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG9yZGVyID0gdGhpcy5fbWF4UGx1Z2luT3JkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcGx1Z2lucy5wdXNoKHtcbiAgICAgICAgICAgIHBsdWdpbixcbiAgICAgICAgICAgIG9yZGVyXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9wbHVnaW5zLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKTtcbiAgICAgICAgdGhpcy5fcGx1Z2luc0J5VHlwZVtwbHVnaW4udHlwZV0gPSBwbHVnaW47XG5cbiAgICAgICAgdGhpcy5fbWF4UGx1Z2luT3JkZXIgPSBNYXRoLm1heC5hcHBseShNYXRoLCB0aGlzLl9wbHVnaW5zLm1hcChwID0+IHAub3JkZXIpKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiB7QGxpbmsgUmVuZGVyZXJQbHVnaW59INC40Lcg0YDQtdC90LTQtdGA0LAuXG4gICAgICogQHBhcmFtIHtQbHVnaW59IFBsdWdpbiDQmtC70LDRgdGBINC/0LvQsNCz0LjQvdCwXG4gICAgICovXG4gICAgcmVtb3ZlUGx1Z2luKFBsdWdpbikge1xuICAgICAgICB0aGlzLl9wbHVnaW5zLnNvbWUoKGVsLCBpKSA9PiB7XG4gICAgICAgICAgICBpZiAoZWwucGx1Z2luIGluc3RhbmNlb2YgUGx1Z2luKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3BsdWdpbnNCeVR5cGVbdGhpcy5fcGx1Z2luc1tpXS5wbHVnaW4udHlwZV07XG4gICAgICAgICAgICAgICAgdGhpcy5fcGx1Z2lucy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINC/0LDRgNCw0LzQtdGC0YAgcGl4ZWwgcmF0aW9cbiAgICAgKiBAcGFyYW0ge051bWJlcn0gdmFsdWVcbiAgICAgKi9cbiAgICBzZXRQaXhlbFJhdGlvKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3BpeGVsUmF0aW8gPSB2YWx1ZTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgtC10LrRg9GJ0LjQuSBwaXhlbCByYXRpb1xuICAgICAqIEByZXR1cm5zIHtOdW1iZXJ9XG4gICAgICovXG4gICAgZ2V0UGl4ZWxSYXRpbygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BpeGVsUmF0aW87XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0YDQsNC30LzQtdGA0Ysg0Y3Qu9C10LzQtdC90YLRgyBjYW52YXMg0Lggdmlld3BvcnQg0LTQu9GPIFdlYkdMXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IHdpZHRoINCo0LjRgNC40L3QsCDQsiDQv9C40LrRgdC10LvRj9GFXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IGhlaWdodCDQktGL0YHQvtGC0LAg0LIg0L/QuNC60YHQtdC70Y/RhVxuICAgICAqL1xuICAgIHNldFNpemUod2lkdGgsIGhlaWdodCkge1xuICAgICAgICB0aGlzLl9zaXplID0gW1xuICAgICAgICAgICAgd2lkdGggKiB0aGlzLl9waXhlbFJhdGlvLFxuICAgICAgICAgICAgaGVpZ2h0ICogdGhpcy5fcGl4ZWxSYXRpb1xuICAgICAgICBdO1xuXG4gICAgICAgIGlmICh0aGlzLl9jYW52YXNFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9jYW52YXNFbGVtZW50LndpZHRoID0gdGhpcy5fc2l6ZVswXTtcbiAgICAgICAgICAgIHRoaXMuX2NhbnZhc0VsZW1lbnQuaGVpZ2h0ID0gdGhpcy5fc2l6ZVsxXTtcbiAgICAgICAgICAgIHRoaXMuX2NhbnZhc0VsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aCArICdweCc7XG4gICAgICAgICAgICB0aGlzLl9jYW52YXNFbGVtZW50LnN0eWxlLmhlaWdodCA9IGhlaWdodCArICdweCc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFZpZXdwb3J0KCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgdmlld3BvcnQg0LTQu9GPIFdlYkdMXG4gICAgICog0JXRgdC70Lgg0YDQsNC30LzQtdGA0Ysg0L3QtSDRg9C60LDQt9Cw0L3Riywg0YLQviDQstGL0YHRgtCw0LLQu9GP0LXRgiDRgNCw0LfQvNC10YDRiyDRg9C60LDQt9Cw0L3QvdGL0LUg0LIg0YTRg9C90LrRhtC40Lgge0BsaW5rIFJlbmRlcmVyI3NldFNpemV9XG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IFt3aWR0aF0g0KjQuNGA0LjQvdCwINCyINC/0LjQutGB0LXQu9GP0YVcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gW2hlaWdodF0g0JLRi9GB0L7RgtCwINCyINC/0LjQutGB0LXQu9GP0YVcbiAgICAgKi9cbiAgICBzZXRWaWV3cG9ydCh3aWR0aCwgaGVpZ2h0KSB7XG4gICAgICAgIGlmICh3aWR0aCAhPT0gdW5kZWZpbmVkICYmIGhlaWdodCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLl9nbC52aWV3cG9ydCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2dsLnZpZXdwb3J0KDAsIDAsIHRoaXMuX3NpemVbMF0sIHRoaXMuX3NpemVbMV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YLQtdC60YPRidC40Lkgdmlld3BvcnQgV2ViR0xcbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9XG4gICAgICovXG4gICAgZ2V0U2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgUmVuZGVyVGFyZ2V0XG4gICAgICogQHBhcmFtIHs/UmVuZGVyVGFyZ2V0fSByZW5kZXJUYXJnZXRcbiAgICAgKi9cbiAgICBzZXRSZW5kZXJUYXJnZXQocmVuZGVyVGFyZ2V0KSB7XG4gICAgICAgIHRoaXMuX3JlbmRlclRhcmdldCA9IHJlbmRlclRhcmdldDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHRh9C40YLRi9Cy0LDQtdGCINGD0LrQsNC30LDQvdC90YPRjiDQvtCx0LvQsNGB0YLRjCDQv9C40LrRgdC10LvQtdC5INCyINC80LDRgdGB0LjQslxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSB4INCa0L7QvtGA0LTQuNC90LDRgtGLINC90LDRh9Cw0LvQsCDQvtCx0LvQsNGB0YLQuFxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSB5INCa0L7QvtGA0LTQuNC90LDRgtGLINC90LDRh9Cw0LvQsCDQvtCx0LvQsNGB0YLQuFxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSB3aWR0aCDQqNC40YDQuNC90LAg0L7QsdC70LDRgdGC0LhcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gaGVpZ2h0INCS0YvRgdC+0YLQsCDQvtCx0LvQsNGB0YLQuFxuICAgICAqIEBwYXJhbSB7VHlwZWRBcnJheX0gYXJyYXkg0JzQsNGB0YHQuNCyINC00LvRjyDQt9Cw0L/QuNGB0Lgg0LTQsNC90L3Ri9GFXG4gICAgICovXG4gICAgcmVhZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBhcnJheSkge1xuICAgICAgICBjb25zdCBnbCA9IHRoaXMuX2dsO1xuXG4gICAgICAgIGlmICh0aGlzLl9yZW5kZXJUYXJnZXQpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlclRhcmdldC5iaW5kKGdsKTtcbiAgICAgICAgICAgIGdsLnJlYWRQaXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgYXJyYXkpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyVGFyZ2V0LnVuYmluZChnbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnbC5yZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGFycmF5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0YfQuNGJ0LDQtdGCINGC0LXQutGD0YnQuNC5INC60LDQtNGAINC4INC30LDQu9C40LLQsNC10YIg0YbQstC10YLQvtC8INGD0LrQsNC30LDQvdC90YvQvCDQsiBjbGVhckNvbG9yXG4gICAgICovXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIGNvbnN0IGdsID0gdGhpcy5fZ2w7XG5cbiAgICAgICAgZ2wuY2xlYXJDb2xvci5hcHBseShnbCwgdGhpcy5jbGVhckNvbG9yKTtcbiAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCg0LjRgdGD0LXRgiDRgdGG0LXQvdGDXG4gICAgICogQHBhcmFtIHtTY2VuZX0gc2NlbmUg0KHRhtC10L3QsFxuICAgICAqIEBwYXJhbSB7Q2FtZXJhfSBjYW1lcmEg0JrQsNC80LXRgNCwXG4gICAgICogQHBhcmFtIHsqfSB1c2VyRGF0YSDQlNC+0L/QvtC70L3QuNGC0LXQu9GM0L3QsNGPINC40L3RhNC+0YDQvNCw0YbQuNGPLCDQutC+0YLQvtGA0LDRjyDQsdGD0LTQtdGCINC/0LXRgNC10LTQsNC90LAg0LLRgdC10Lwg0L/Qu9Cw0LPQuNC90LDQvCDQuCDQvtCx0YrQtdC60YLQsNC8XG4gICAgICovXG4gICAgcmVuZGVyKHNjZW5lLCBjYW1lcmEsIHVzZXJEYXRhKSB7XG4gICAgICAgIGNvbnN0IGdsID0gdGhpcy5fZ2w7XG5cbiAgICAgICAgc2NlbmUudHlwaWZ5Rm9yUmVuZGVyKHRoaXMuX3BsdWdpbnNCeVR5cGUpO1xuXG4gICAgICAgIGlmICh0aGlzLl9yZW5kZXJUYXJnZXQpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlclRhcmdldC5iaW5kKGdsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGdsLmNsZWFyRGVwdGgoMSk7XG4gICAgICAgIGdsLmNsZWFyU3RlbmNpbCgwKTtcblxuICAgICAgICBpZiAodGhpcy5hdXRvQ2xlYXIpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhbWVyYS51cGRhdGVMb2NhbE1hdHJpeCgpO1xuICAgICAgICBjYW1lcmEudXBkYXRlV29ybGRNYXRyaXgoKTtcblxuICAgICAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgICAgIHJlbmRlcmVyOiB0aGlzLFxuICAgICAgICAgICAgZXh0ZW5zaW9uczogdGhpcy53ZWJHbEV4dGVuc2lvbnMsXG4gICAgICAgICAgICBzY2VuZSxcbiAgICAgICAgICAgIGNhbWVyYSxcbiAgICAgICAgICAgIGdsLFxuICAgICAgICAgICAgdXNlckRhdGFcbiAgICAgICAgfTtcbiAgICAgICAgLy8gVE9ETzogbWFrZSBzdGF0ZSBpbW11dGFibGU/XG5cbiAgICAgICAgY29uc3QgcGx1Z2luc1RvUmVuZGVyID0gdGhpcy5fcGx1Z2luc1xuICAgICAgICAgICAgLm1hcChpdGVtID0+IGl0ZW0ucGx1Z2luKVxuICAgICAgICAgICAgLmZpbHRlcihwbHVnaW4gPT4gcGx1Z2luLmhhc09iamVjdHMoKSk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwbHVnaW5zVG9SZW5kZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHBsdWdpbnNUb1JlbmRlcltpXS5yZW5kZXIoXG4gICAgICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICAgICAgcGx1Z2luc1RvUmVuZGVyW2kgLSAxXSxcbiAgICAgICAgICAgICAgICBwbHVnaW5zVG9SZW5kZXJbaSArIDFdXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3JlbmRlclRhcmdldCkge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyVGFyZ2V0LnVuYmluZChnbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC60LvRjtGH0LDQtdGCINGA0LDRgdGI0LjRgNC10L3QuNC1IFdlYkdMXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSDQndCw0LfQstCw0L3QuNC1INGA0LDRgdGI0LjRgNC10L3QuNGPXG4gICAgICovXG4gICAgYWRkRXh0ZW5zaW9uKG5hbWUpIHtcbiAgICAgICAgdGhpcy53ZWJHbEV4dGVuc2lvbnNbbmFtZV0gPSB0aGlzLl9nbC5nZXRFeHRlbnNpb24obmFtZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVuZGVyZXI7XG5cbi8qKlxuICog0KHQvtGB0YLQvtGP0L3QuNC1INGA0LXQvdC00LXRgNCwLiDQn9C10YDQtdC00LDQtdGC0YHRjyDQvtCx0YrQtdC60YLQsNC8INC00LvRjyDQvtGC0YDQuNGB0L7QstC60LguXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gU3RhdGVcbiAqIEBwcm9wZXJ0eSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICogQHByb3BlcnR5IHtTY2VuZX0gc2NlbmVcbiAqIEBwcm9wZXJ0eSB7Q2FtZXJhfSBjYW1lcmFcbiAqIEBwcm9wZXJ0eSB7UmVuZGVyZXJ9IHJlbmRlcmVyXG4gKi9cbiJdfQ==

@@ -15,4 +15,5 @@ import Object3DPlugin from './rendererPlugins/Object3DPlugin';

* @param {Number[]} [options.clearColor=[1,1,1,1]] Цвет заливки в формате RGBA
* @param {Boolean} [options.sortObjects=true] Нужно ли сортировать прозрачные объекты по удаленности
* или по renderOrder
* @param {Boolean} [options.sortObjects=true] Нужно ли сортировать прозрачные объекты по удаленности или по renderOrder
* @param {Boolean} [options.preserveDrawingBuffer=false] Сохранять ли содержимое Drawing Buffer
* (может влиять на производительность)
* */

@@ -31,3 +32,5 @@ class Renderer {

failIfMajorPerformanceCaveat: options.failIfMajorPerformanceCaveat !== undefined ?
options.failIfMajorPerformanceCaveat : false
options.failIfMajorPerformanceCaveat : false,
preserveDrawingBuffer: options.preserveDrawingBuffer !== undefined ?
options.preserveDrawingBuffer : false,
};

@@ -34,0 +37,0 @@

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

Sorry, the diff of this file is not supported yet

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