@kepler.gl/deckgl-layers 3.0.0-alpha.0 → 3.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3d-building-layer/3d-building-layer.d.ts +15 -10
- package/dist/3d-building-layer/3d-building-layer.js +14 -32
- package/dist/3d-building-layer/3d-building-utils.d.ts +3 -1
- package/dist/3d-building-layer/3d-building-utils.js +13 -26
- package/dist/3d-building-layer/types.d.ts +14 -0
- package/dist/3d-building-layer/types.js +0 -20
- package/dist/cluster-layer/cluster-layer.js +1 -21
- package/dist/column-layer/enhanced-column-layer.d.ts +8 -3
- package/dist/column-layer/enhanced-column-layer.js +85 -27
- package/dist/deckgl-extensions/filter-arrow-layer.d.ts +46 -0
- package/dist/deckgl-extensions/filter-arrow-layer.js +97 -0
- package/dist/deckgl-extensions/filter-shader-module.d.ts +19 -0
- package/dist/deckgl-extensions/filter-shader-module.js +29 -0
- package/dist/grid-layer/enhanced-cpu-grid-layer.js +1 -21
- package/dist/hexagon-layer/enhanced-hexagon-layer.js +1 -21
- package/dist/index.d.ts +1 -0
- package/dist/index.js +11 -22
- package/dist/layer-utils/cluster-utils.js +9 -22
- package/dist/layer-utils/cpu-aggregator.js +5 -21
- package/dist/layer-utils/shader-utils.js +7 -22
- package/dist/line-layer/line-layer.js +1 -21
- package/dist/svg-icon-layer/scatterplot-icon-layer.js +1 -21
- package/dist/svg-icon-layer/svg-icon-layer.js +1 -21
- package/package.json +14 -14
@@ -1,23 +1,3 @@
|
|
1
|
-
// Copyright (c) 2022 Uber Technologies, Inc.
|
2
|
-
//
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
8
|
-
// furnished to do so, subject to the following conditions:
|
9
|
-
//
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
11
|
-
// all copies or substantial portions of the Software.
|
12
|
-
//
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
// THE SOFTWARE.
|
20
|
-
|
21
1
|
"use strict";
|
22
2
|
|
23
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
@@ -389,6 +369,9 @@ var CPUAggregator = /*#__PURE__*/function () {
|
|
389
369
|
function CPUAggregator() {
|
390
370
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
391
371
|
(0, _classCallCheck2["default"])(this, CPUAggregator);
|
372
|
+
(0, _defineProperty2["default"])(this, "state", void 0);
|
373
|
+
(0, _defineProperty2["default"])(this, "dimensionUpdaters", void 0);
|
374
|
+
(0, _defineProperty2["default"])(this, "aggregationUpdater", void 0);
|
392
375
|
this.state = _objectSpread({
|
393
376
|
layerData: {},
|
394
377
|
dimensions: {// color: {
|
@@ -665,5 +648,6 @@ var CPUAggregator = /*#__PURE__*/function () {
|
|
665
648
|
}();
|
666
649
|
|
667
650
|
exports["default"] = CPUAggregator;
|
651
|
+
(0, _defineProperty2["default"])(CPUAggregator, "getDimensionScale", void 0);
|
668
652
|
CPUAggregator.getDimensionScale = getDimensionScale;
|
669
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllci11dGlscy9jcHUtYWdncmVnYXRvci50cyJdLCJuYW1lcyI6WyJERUNLX0FHR1JFR0FUSU9OX01BUCIsIkFHR1JFR0FUSU9OX09QRVJBVElPTiIsIlNVTSIsIkFHR1JFR0FUSU9OX1RZUEVTIiwic3VtIiwiTUVBTiIsImF2ZXJhZ2UiLCJNSU4iLCJtaW5pbXVtIiwiTUFYIiwibWF4aW11bSIsImdldFZhbHVlRnVuYyIsImFnZ3JlZ2F0aW9uIiwiYWNjZXNzb3IiLCJ0b1VwcGVyQ2FzZSIsIkNvbnNvbGUiLCJ3YXJuIiwib3AiLCJrZXBsZXJPcCIsInB0cyIsIm1hcCIsImdldFNjYWxlRnVuY3RvciIsInNjYWxlVHlwZSIsIlNDQUxFX0ZVTkMiLCJxdWFudGl6ZSIsIm5vcCIsImdldEdldFZhbHVlIiwic3RlcCIsInByb3BzIiwiZGltZW5zaW9uVXBkYXRlciIsImtleSIsInRyaWdnZXJzIiwidmFsdWUiLCJ3ZWlnaHQiLCJnZXRWYWx1ZSIsInByb3AiLCJfc2V0RGltZW5zaW9uU3RhdGUiLCJnZXREaW1lbnNpb25Tb3J0ZWRCaW5zIiwic3RhdGUiLCJkaW1lbnNpb25zIiwic29ydGVkQmlucyIsIkJpblNvcnRlciIsImxheWVyRGF0YSIsImRhdGEiLCJmaWx0ZXJEYXRhIiwiX2ZpbHRlckRhdGEiLCJnZXREaW1lbnNpb25WYWx1ZURvbWFpbiIsImxvd2VyUGVyY2VudGlsZSIsInVwcGVyUGVyY2VudGlsZSIsInZhbHVlRG9tYWluIiwiZ2V0VmFsdWVEb21haW5CeVNjYWxlIiwiZ2V0RGltZW5zaW9uU2NhbGUiLCJkb21haW4iLCJyYW5nZSIsIm9uU2V0IiwiZGltZW5zaW9uUmFuZ2UiLCJkaW1lbnNpb25Eb21haW4iLCJzY2FsZUZ1bmN0b3IiLCJzY2FsZUZ1bmMiLCJub3JtYWxpemVSZXN1bHQiLCJyZXN1bHQiLCJoZXhhZ29ucyIsIk9iamVjdCIsImFzc2lnbiIsImdldEFnZ3JlZ2F0ZWREYXRhIiwiYWdncmVnYXRpb25QYXJhbXMiLCJhZ2dyIiwiYWdncmVnYXRvciIsInNldFN0YXRlIiwiZGVmYXVsdEFnZ3JlZ2F0aW9uIiwidXBkYXRlU3RlcHMiLCJjZWxsU2l6ZSIsInBvc2l0aW9uIiwidXBkYXRlVHJpZ2dlciIsInVwZGF0ZXIiLCJnZXRTdWJMYXllckFjY2Vzc29yIiwiZGltZW5zaW9uU3RhdGUiLCJkaW1lbnNpb24iLCJsYXllclByb3BzIiwiY2VsbCIsImJpbiIsImJpbk1hcCIsImluZGV4IiwiY291bnRzIiwibnVsbFZhbHVlIiwiY3YiLCJpc1ZhbHVlSW5Eb21haW4iLCJsZW5ndGgiLCJkZWZhdWx0Q29sb3JEaW1lbnNpb24iLCJnZXRQaWNraW5nSW5mbyIsImNvbG9yVmFsdWUiLCJkZWZhdWx0RWxldmF0aW9uRGltZW5zaW9uIiwiZWxldmF0aW9uVmFsdWUiLCJkZWZhdWx0RGltZW5zaW9ucyIsIkNQVUFnZ3JlZ2F0b3IiLCJvcHRzIiwiaW5pdGlhbFN0YXRlIiwiZGltZW5zaW9uVXBkYXRlcnMiLCJhZ2dyZWdhdGlvblVwZGF0ZXIiLCJfYWRkRGltZW5zaW9uIiwiZGltZW5zaW9uQ2hhbmdlcyIsImRpbSIsInVwZGF0ZXJzIiwiX2FjY3VtdWxhdGVVcGRhdGVycyIsImNvbmNhdCIsImZvckVhY2giLCJmIiwib2xkUHJvcHMiLCJjaGFuZ2VGbGFncyIsImRhdGFDaGFuZ2VkIiwidXBkYXRlQWdncmVnYXRpb24iLCJ1cGRhdGVBbGxEaW1lbnNpb25zIiwiYWdncmVnYXRpb25DaGFuZ2VzIiwiX2dldEFnZ3JlZ2F0aW9uQ2hhbmdlcyIsIl9nZXREaW1lbnNpb25DaGFuZ2VzIiwidXBkYXRlT2JqZWN0IiwiZGltZW5zaW9uU3RlcCIsInZhbHVlcyIsInNvbWUiLCJpdGVtIiwidXBkYXRlVHJpZ2dlcnNDaGFuZ2VkIiwiYWxsIiwiaSIsInB1c2giLCJiaW5kIiwibmVlZFVwZGF0ZVN0ZXAiLCJmaW5kSW5kZXgiLCJfbmVlZFVwZGF0ZVN0ZXAiLCJfZ2V0QWxsVXBkYXRlcnMiLCJfdXBkYXRlVHJpZ2dlcnMiLCJ1cGRhdGVUcmlnZ2VycyIsImZyb21Qcm9wIiwiQXJyYXkiLCJpc0FycmF5IiwidW5kZWZpbmVkIiwiaW5mbyIsImlzUGlja2VkIiwicGlja2VkIiwib2JqZWN0IiwiYmluSW5mbyIsInBvaW50cyIsImZpbHRlcmVkUG9pbnRzIiwiQm9vbGVhbiIsImRpbWVuc2lvbktleSIsImhhc093blByb3BlcnR5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQkE7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7Ozs7O0FBcURPLElBQU1BLG9CQUFvQix3RkFDOUJDLHlDQUFzQkMsR0FEUSxFQUNGQyw2QkFBa0JDLEdBRGhCLDJEQUU5QkgseUNBQXNCSSxJQUZRLEVBRURGLDZCQUFrQkcsT0FGakIsMkRBRzlCTCx5Q0FBc0JNLEdBSFEsRUFHRkosNkJBQWtCSyxPQUhoQiwyREFJOUJQLHlDQUFzQlEsR0FKUSxFQUlGTiw2QkFBa0JPLE9BSmhCLHlCQUExQjs7O0FBT0EsU0FBU0MsWUFBVCxDQUFzQkMsV0FBdEIsRUFBbUNDLFFBQW5DLEVBQTZDO0FBQ2xELE1BQUksQ0FBQ0QsV0FBRCxJQUFnQixDQUFDWCx5Q0FBc0JXLFdBQVcsQ0FBQ0UsV0FBWixFQUF0QixDQUFyQixFQUF1RTtBQUNyRUMsb0JBQVFDLElBQVIsdUJBQTRCSixXQUE1QjtBQUNEOztBQUVELE1BQU1LLEVBQUUsR0FBR2hCLHlDQUFzQlcsV0FBVyxDQUFDRSxXQUFaLEVBQXRCLEtBQW9EYix5Q0FBc0JDLEdBQXJGOztBQUNBLE1BQU1nQixRQUFRLEdBQUdsQixvQkFBb0IsQ0FBQ2lCLEVBQUQsQ0FBckM7QUFFQSxTQUFPLFVBQUFFLEdBQUc7QUFBQSxXQUFJLHNCQUFVQSxHQUFHLENBQUNDLEdBQUosQ0FBUVAsUUFBUixDQUFWLEVBQTZCSyxRQUE3QixDQUFKO0FBQUEsR0FBVjtBQUNEOztBQUVNLFNBQVNHLGVBQVQsQ0FBeUJDLFNBQXpCLEVBQW9DO0FBQ3pDLE1BQUksQ0FBQ0EsU0FBRCxJQUFjLENBQUNDLHNCQUFXRCxTQUFYLENBQW5CLEVBQTBDO0FBQ3hDUCxvQkFBUUMsSUFBUixpQkFBc0JNLFNBQXRCO0FBQ0Q7O0FBQ0QsU0FBT0Msc0JBQVdELFNBQVgsS0FBeUJDLHNCQUFXQyxRQUEzQztBQUNEOztBQUVELFNBQVNDLEdBQVQsR0FBZSxDQUFFOztBQUVWLFNBQVNDLFdBQVQsQ0FBMENDLElBQTFDLEVBQWdEQyxLQUFoRCxFQUF1REMsZ0JBQXZELEVBQXlFO0FBQUEsTUFDdkVDLEdBRHVFLEdBQ2hFRCxnQkFEZ0UsQ0FDdkVDLEdBRHVFO0FBQUEsdUJBRXpDSCxJQUFJLENBQUNJLFFBRm9DO0FBQUEsTUFFdkVDLEtBRnVFLGtCQUV2RUEsS0FGdUU7QUFBQSxNQUVoRUMsTUFGZ0Usa0JBRWhFQSxNQUZnRTtBQUFBLE1BRXhEckIsV0FGd0Qsa0JBRXhEQSxXQUZ3RDtBQUk5RSxNQUFJc0IsUUFBUSxHQUFHTixLQUFLLENBQUNJLEtBQUssQ0FBQ0csSUFBUCxDQUFwQjs7QUFFQSxNQUFJRCxRQUFRLEtBQUssSUFBakIsRUFBdUI7QUFDckI7QUFDQUEsSUFBQUEsUUFBUSxHQUFHdkIsWUFBWSxDQUFDaUIsS0FBSyxDQUFDaEIsV0FBVyxDQUFDdUIsSUFBYixDQUFOLEVBQTBCUCxLQUFLLENBQUNLLE1BQU0sQ0FBQ0UsSUFBUixDQUEvQixDQUF2QjtBQUNEOztBQUVELE1BQUlELFFBQUosRUFBYztBQUNaLFNBQUtFLGtCQUFMLENBQXdCTixHQUF4QixFQUE2QjtBQUFDSSxNQUFBQSxRQUFRLEVBQVJBO0FBQUQsS0FBN0I7QUFDRDtBQUNGOztBQUVNLFNBQVNHLHNCQUFULENBQXFEVixJQUFyRCxFQUEyREMsS0FBM0QsRUFBa0VDLGdCQUFsRSxFQUFvRjtBQUFBLE1BQ2xGQyxHQURrRixHQUMzRUQsZ0JBRDJFLENBQ2xGQyxHQURrRjtBQUFBLE1BRWxGSSxRQUZrRixHQUV0RSxLQUFLSSxLQUFMLENBQVdDLFVBQVgsQ0FBc0JULEdBQXRCLENBRnNFLENBRWxGSSxRQUZrRixFQUd6Rjs7QUFDQSxNQUFNTSxVQUFVLEdBQUcsSUFBSUMsNkJBQUosQ0FBYyxLQUFLSCxLQUFMLENBQVdJLFNBQVgsQ0FBcUJDLElBQXJCLElBQTZCLEVBQTNDLEVBQStDO0FBQ2hFVCxJQUFBQSxRQUFRLEVBQVJBLFFBRGdFO0FBRWhFVSxJQUFBQSxVQUFVLEVBQUVoQixLQUFLLENBQUNpQjtBQUY4QyxHQUEvQyxDQUFuQjs7QUFJQSxPQUFLVCxrQkFBTCxDQUF3Qk4sR0FBeEIsRUFBNkI7QUFBQ1UsSUFBQUEsVUFBVSxFQUFWQTtBQUFELEdBQTdCO0FBQ0Q7O0FBRU0sU0FBU00sdUJBQVQsQ0FBc0RuQixJQUF0RCxFQUE0REMsS0FBNUQsRUFBbUVDLGdCQUFuRSxFQUFxRjtBQUFBLE1BQ25GQyxHQURtRixHQUM1RUQsZ0JBRDRFLENBQ25GQyxHQURtRjtBQUFBLHdCQUl0RkgsSUFKc0YsQ0FHeEZJLFFBSHdGO0FBQUEsTUFHN0VnQixlQUg2RSxtQkFHN0VBLGVBSDZFO0FBQUEsTUFHNURDLGVBSDRELG1CQUc1REEsZUFINEQ7QUFBQSxNQUczQzFCLFNBSDJDLG1CQUczQ0EsU0FIMkM7O0FBTTFGLE1BQUksQ0FBQyxLQUFLZ0IsS0FBTCxDQUFXQyxVQUFYLENBQXNCVCxHQUF0QixFQUEyQlUsVUFBaEMsRUFBNEM7QUFDMUM7QUFDQTtBQUNELEdBVHlGLENBVzFGO0FBQ0E7OztBQUNBLE1BQU1TLFdBQVcsR0FBRyxLQUFLWCxLQUFMLENBQVdDLFVBQVgsQ0FBc0JULEdBQXRCLEVBQTJCVSxVQUEzQixDQUFzQ1UscUJBQXRDLENBQ2xCdEIsS0FBSyxDQUFDTixTQUFTLENBQUNhLElBQVgsQ0FEYSxFQUVsQixDQUFDUCxLQUFLLENBQUNtQixlQUFlLENBQUNaLElBQWpCLENBQU4sRUFBOEJQLEtBQUssQ0FBQ29CLGVBQWUsQ0FBQ2IsSUFBakIsQ0FBbkMsQ0FGa0IsQ0FBcEI7O0FBS0EsT0FBS0Msa0JBQUwsQ0FBd0JOLEdBQXhCLEVBQTZCO0FBQUNtQixJQUFBQSxXQUFXLEVBQVhBO0FBQUQsR0FBN0I7QUFDRDs7QUFFTSxTQUFTRSxpQkFBVCxDQUFnRHhCLElBQWhELEVBQXNEQyxLQUF0RCxFQUE2REMsZ0JBQTdELEVBQStFO0FBQUEsTUFDN0VDLEdBRDZFLEdBQ3RFRCxnQkFEc0UsQ0FDN0VDLEdBRDZFO0FBQUEsd0JBRWpESCxJQUFJLENBQUNJLFFBRjRDO0FBQUEsTUFFN0VxQixNQUY2RSxtQkFFN0VBLE1BRjZFO0FBQUEsTUFFckVDLEtBRnFFLG1CQUVyRUEsS0FGcUU7QUFBQSxNQUU5RC9CLFNBRjhELG1CQUU5REEsU0FGOEQ7QUFBQSxNQUc3RWdDLEtBSDZFLEdBR3BFM0IsSUFIb0UsQ0FHN0UyQixLQUg2RTs7QUFJcEYsTUFBSSxDQUFDLEtBQUtoQixLQUFMLENBQVdDLFVBQVgsQ0FBc0JULEdBQXRCLEVBQTJCbUIsV0FBaEMsRUFBNkM7QUFDM0M7QUFDQTtBQUNEOztBQUVELE1BQU1NLGNBQWMsR0FBRzNCLEtBQUssQ0FBQ3lCLEtBQUssQ0FBQ2xCLElBQVAsQ0FBNUI7QUFDQSxNQUFNcUIsZUFBZSxHQUFHNUIsS0FBSyxDQUFDd0IsTUFBTSxDQUFDakIsSUFBUixDQUFMLElBQXNCLEtBQUtHLEtBQUwsQ0FBV0MsVUFBWCxDQUFzQlQsR0FBdEIsRUFBMkJtQixXQUF6RTtBQUVBLE1BQU1RLFlBQVksR0FBR3BDLGVBQWUsQ0FBQ0MsU0FBUyxJQUFJTSxLQUFLLENBQUNOLFNBQVMsQ0FBQ2EsSUFBWCxDQUFuQixDQUFmLEVBQXJCO0FBRUEsTUFBTXVCLFNBQVMsR0FBR0QsWUFBWSxDQUFDTCxNQUFiLENBQW9CSSxlQUFwQixFQUFxQ0gsS0FBckMsQ0FBMkNFLGNBQTNDLENBQWxCOztBQUVBLE1BQUkseUJBQU9ELEtBQVAsTUFBaUIsUUFBakIsSUFBNkIsT0FBTzFCLEtBQUssQ0FBQzBCLEtBQUssQ0FBQzFCLEtBQVAsQ0FBWixLQUE4QixVQUEvRCxFQUEyRTtBQUN6RUEsSUFBQUEsS0FBSyxDQUFDMEIsS0FBSyxDQUFDMUIsS0FBUCxDQUFMLENBQW1COEIsU0FBUyxDQUFDTixNQUFWLEVBQW5CO0FBQ0Q7O0FBQ0QsT0FBS2hCLGtCQUFMLENBQXdCTixHQUF4QixFQUE2QjtBQUFDNEIsSUFBQUEsU0FBUyxFQUFUQTtBQUFELEdBQTdCO0FBQ0Q7O0FBRUQsU0FBU0MsZUFBVCxHQUErRDtBQUFBLE1BQXRDQyxNQUFzQyx1RUFBSixFQUFJOztBQUM3RDtBQUNBLE1BQUlBLE1BQU0sQ0FBQ0MsUUFBWCxFQUFxQjtBQUNuQixXQUFPQyxNQUFNLENBQUNDLE1BQVAsQ0FBYztBQUFDcEIsTUFBQUEsSUFBSSxFQUFFaUIsTUFBTSxDQUFDQztBQUFkLEtBQWQsRUFBdUNELE1BQXZDLENBQVA7QUFDRCxHQUZELE1BRU8sSUFBSUEsTUFBTSxDQUFDbEIsU0FBWCxFQUFzQjtBQUMzQixXQUFPb0IsTUFBTSxDQUFDQyxNQUFQLENBQWM7QUFBQ3BCLE1BQUFBLElBQUksRUFBRWlCLE1BQU0sQ0FBQ2xCO0FBQWQsS0FBZCxFQUF3Q2tCLE1BQXhDLENBQVA7QUFDRDs7QUFFRCxTQUFPQSxNQUFQO0FBQ0Q7O0FBRU0sU0FBU0ksaUJBQVQsQ0FFTHJDLElBRkssRUFHTEMsS0FISyxFQUlMaEIsV0FKSyxFQUtMcUQsaUJBTEssRUFNTDtBQUFBLE1BRXlCQyxJQUZ6QixHQUdJdkMsSUFISixDQUVFSSxRQUZGLENBRWFvQyxVQUZiO0FBSUEsTUFBTUEsVUFBVSxHQUFHdkMsS0FBSyxDQUFDc0MsSUFBSSxDQUFDL0IsSUFBTixDQUF4QixDQUpBLENBTUE7QUFDQTs7QUFDQSxNQUFNeUIsTUFBTSxHQUFHTyxVQUFVLENBQUN2QyxLQUFELEVBQVFxQyxpQkFBUixDQUF6QjtBQUNBLE9BQUtHLFFBQUwsQ0FBYztBQUNaMUIsSUFBQUEsU0FBUyxFQUFFaUIsZUFBZSxDQUFDQyxNQUFEO0FBRGQsR0FBZDtBQUdEOztBQUVNLElBQU1TLGtCQUFtQyxHQUFHO0FBQ2pEdkMsRUFBQUEsR0FBRyxFQUFFLFVBRDRDO0FBRWpEd0MsRUFBQUEsV0FBVyxFQUFFLENBQ1g7QUFDRXhDLElBQUFBLEdBQUcsRUFBRSxXQURQO0FBRUVDLElBQUFBLFFBQVEsRUFBRTtBQUNSd0MsTUFBQUEsUUFBUSxFQUFFO0FBQ1JwQyxRQUFBQSxJQUFJLEVBQUU7QUFERSxPQURGO0FBSVJxQyxNQUFBQSxRQUFRLEVBQUU7QUFDUnJDLFFBQUFBLElBQUksRUFBRSxhQURFO0FBRVJzQyxRQUFBQSxhQUFhLEVBQUU7QUFGUCxPQUpGO0FBUVJOLE1BQUFBLFVBQVUsRUFBRTtBQUNWaEMsUUFBQUEsSUFBSSxFQUFFO0FBREk7QUFSSixLQUZaO0FBY0V1QyxJQUFBQSxPQUFPLEVBQUVWO0FBZFgsR0FEVztBQUZvQyxDQUE1Qzs7O0FBc0JQLFNBQVNXLG1CQUFULENBQTZCQyxjQUE3QixFQUE2Q0MsU0FBN0MsRUFBd0RDLFVBQXhELEVBQW9FO0FBQ2xFLFNBQU8sVUFBQUMsSUFBSSxFQUFJO0FBQUEsUUFDTnZDLFVBRE0sR0FDbUJvQyxjQURuQixDQUNOcEMsVUFETTtBQUFBLFFBQ01rQixTQUROLEdBQ21Ca0IsY0FEbkIsQ0FDTWxCLFNBRE47QUFFYixRQUFNc0IsR0FBRyxHQUFHeEMsVUFBVSxDQUFDeUMsTUFBWCxDQUFrQkYsSUFBSSxDQUFDRyxLQUF2QixDQUFaOztBQUVBLFFBQUlGLEdBQUcsSUFBSUEsR0FBRyxDQUFDRyxNQUFKLEtBQWUsQ0FBMUIsRUFBNkI7QUFDM0I7QUFDQSxhQUFPTixTQUFTLENBQUNPLFNBQWpCO0FBQ0Q7O0FBRUQsUUFBTUMsRUFBRSxHQUFHTCxHQUFHLElBQUlBLEdBQUcsQ0FBQ2hELEtBQXRCO0FBQ0EsUUFBTW9CLE1BQU0sR0FBR00sU0FBUyxDQUFDTixNQUFWLEVBQWY7QUFFQSxRQUFNa0MsZUFBZSxHQUFHRCxFQUFFLElBQUlqQyxNQUFNLENBQUMsQ0FBRCxDQUFaLElBQW1CaUMsRUFBRSxJQUFJakMsTUFBTSxDQUFDQSxNQUFNLENBQUNtQyxNQUFQLEdBQWdCLENBQWpCLENBQXZELENBWmEsQ0FjYjs7QUFDQSxXQUFPRCxlQUFlLEdBQUc1QixTQUFTLENBQUMyQixFQUFELENBQVosR0FBbUJSLFNBQVMsQ0FBQ08sU0FBbkQ7QUFDRCxHQWhCRDtBQWlCRDs7QUFFTSxJQUFNSSxxQkFBK0MsR0FBRztBQUM3RDFELEVBQUFBLEdBQUcsRUFBRSxXQUR3RDtBQUU3RGpCLEVBQUFBLFFBQVEsRUFBRSxjQUZtRDtBQUc3RDRFLEVBQUFBLGNBQWMsRUFBRSx3QkFBQ2IsY0FBRCxFQUFpQkcsSUFBakIsRUFBMEI7QUFDeEMsUUFBSSxDQUFDQSxJQUFMLEVBQVc7QUFDVCxhQUFPLEVBQVA7QUFDRDs7QUFIdUMsUUFJakN2QyxVQUppQyxHQUluQm9DLGNBSm1CLENBSWpDcEMsVUFKaUM7QUFLeEMsUUFBTWtELFVBQVUsR0FBR2xELFVBQVUsQ0FBQ3lDLE1BQVgsQ0FBa0JGLElBQUksQ0FBQ0csS0FBdkIsS0FBaUMxQyxVQUFVLENBQUN5QyxNQUFYLENBQWtCRixJQUFJLENBQUNHLEtBQXZCLEVBQThCbEQsS0FBbEY7QUFDQSxXQUFPO0FBQUMwRCxNQUFBQSxVQUFVLEVBQVZBO0FBQUQsS0FBUDtBQUNELEdBVjREO0FBVzdETixFQUFBQSxTQUFTLEVBQUUsQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBVSxDQUFWLENBWGtEO0FBWTdEZCxFQUFBQSxXQUFXLEVBQUUsQ0FDWDtBQUNFeEMsSUFBQUEsR0FBRyxFQUFFLFVBRFA7QUFFRUMsSUFBQUEsUUFBUSxFQUFFO0FBQ1JDLE1BQUFBLEtBQUssRUFBRTtBQUNMRyxRQUFBQSxJQUFJLEVBQUUsZUFERDtBQUVMc0MsUUFBQUEsYUFBYSxFQUFFO0FBRlYsT0FEQztBQUtSeEMsTUFBQUEsTUFBTSxFQUFFO0FBQ05FLFFBQUFBLElBQUksRUFBRSxnQkFEQTtBQUVOc0MsUUFBQUEsYUFBYSxFQUFFO0FBRlQsT0FMQTtBQVNSN0QsTUFBQUEsV0FBVyxFQUFFO0FBQ1h1QixRQUFBQSxJQUFJLEVBQUU7QUFESztBQVRMLEtBRlo7QUFlRXVDLElBQUFBLE9BQU8sRUFBRWhEO0FBZlgsR0FEVyxFQWtCWDtBQUNFSSxJQUFBQSxHQUFHLEVBQUUsU0FEUDtBQUVFQyxJQUFBQSxRQUFRLEVBQUU7QUFDUmMsTUFBQUEsV0FBVyxFQUFFO0FBQ1hWLFFBQUFBLElBQUksRUFBRSxhQURLO0FBRVhzQyxRQUFBQSxhQUFhLEVBQUU7QUFGSjtBQURMLEtBRlo7QUFRRUMsSUFBQUEsT0FBTyxFQUFFckM7QUFSWCxHQWxCVyxFQTRCWDtBQUNFUCxJQUFBQSxHQUFHLEVBQUUsV0FEUDtBQUVFQyxJQUFBQSxRQUFRLEVBQUU7QUFDUmdCLE1BQUFBLGVBQWUsRUFBRTtBQUNmWixRQUFBQSxJQUFJLEVBQUU7QUFEUyxPQURUO0FBSVJhLE1BQUFBLGVBQWUsRUFBRTtBQUNmYixRQUFBQSxJQUFJLEVBQUU7QUFEUyxPQUpUO0FBT1JiLE1BQUFBLFNBQVMsRUFBRTtBQUFDYSxRQUFBQSxJQUFJLEVBQUU7QUFBUDtBQVBILEtBRlo7QUFXRXVDLElBQUFBLE9BQU8sRUFBRTVCO0FBWFgsR0E1QlcsRUF5Q1g7QUFDRWhCLElBQUFBLEdBQUcsRUFBRSxjQURQO0FBRUVDLElBQUFBLFFBQVEsRUFBRTtBQUNScUIsTUFBQUEsTUFBTSxFQUFFO0FBQUNqQixRQUFBQSxJQUFJLEVBQUU7QUFBUCxPQURBO0FBRVJrQixNQUFBQSxLQUFLLEVBQUU7QUFBQ2xCLFFBQUFBLElBQUksRUFBRTtBQUFQLE9BRkM7QUFHUmIsTUFBQUEsU0FBUyxFQUFFO0FBQUNhLFFBQUFBLElBQUksRUFBRTtBQUFQO0FBSEgsS0FGWjtBQU9FbUIsSUFBQUEsS0FBSyxFQUFFO0FBQ0wxQixNQUFBQSxLQUFLLEVBQUU7QUFERixLQVBUO0FBVUU4QyxJQUFBQSxPQUFPLEVBQUV2QjtBQVZYLEdBekNXLENBWmdEO0FBa0U3RHdCLEVBQUFBLG1CQUFtQixFQUFuQkE7QUFsRTZELENBQXhEOztBQXFFQSxJQUFNZ0IseUJBQWdELEdBQUc7QUFDOUQ3RCxFQUFBQSxHQUFHLEVBQUUsV0FEeUQ7QUFFOURqQixFQUFBQSxRQUFRLEVBQUUsY0FGb0Q7QUFHOUQ0RSxFQUFBQSxjQUFjLEVBQUUsd0JBQUNiLGNBQUQsRUFBaUJHLElBQWpCLEVBQTBCO0FBQ3hDLFFBQUksQ0FBQ0EsSUFBTCxFQUFXO0FBQ1QsYUFBTyxFQUFQO0FBQ0Q7O0FBSHVDLFFBSWpDdkMsVUFKaUMsR0FJbkJvQyxjQUptQixDQUlqQ3BDLFVBSmlDO0FBS3hDLFFBQU1vRCxjQUFjLEdBQUdwRCxVQUFVLENBQUN5QyxNQUFYLENBQWtCRixJQUFJLENBQUNHLEtBQXZCLEtBQWlDMUMsVUFBVSxDQUFDeUMsTUFBWCxDQUFrQkYsSUFBSSxDQUFDRyxLQUF2QixFQUE4QmxELEtBQXRGO0FBQ0EsV0FBTztBQUFDNEQsTUFBQUEsY0FBYyxFQUFkQTtBQUFELEtBQVA7QUFDRCxHQVY2RDtBQVc5RFIsRUFBQUEsU0FBUyxFQUFFLENBQUMsQ0FYa0Q7QUFZOURkLEVBQUFBLFdBQVcsRUFBRSxDQUNYO0FBQ0V4QyxJQUFBQSxHQUFHLEVBQUUsVUFEUDtBQUVFQyxJQUFBQSxRQUFRLEVBQUU7QUFDUkMsTUFBQUEsS0FBSyxFQUFFO0FBQ0xHLFFBQUFBLElBQUksRUFBRSxtQkFERDtBQUVMc0MsUUFBQUEsYUFBYSxFQUFFO0FBRlYsT0FEQztBQUtSeEMsTUFBQUEsTUFBTSxFQUFFO0FBQ05FLFFBQUFBLElBQUksRUFBRSxvQkFEQTtBQUVOc0MsUUFBQUEsYUFBYSxFQUFFO0FBRlQsT0FMQTtBQVNSN0QsTUFBQUEsV0FBVyxFQUFFO0FBQ1h1QixRQUFBQSxJQUFJLEVBQUU7QUFESztBQVRMLEtBRlo7QUFlRXVDLElBQUFBLE9BQU8sRUFBRWhEO0FBZlgsR0FEVyxFQWtCWDtBQUNFSSxJQUFBQSxHQUFHLEVBQUUsU0FEUDtBQUVFQyxJQUFBQSxRQUFRLEVBQUU7QUFDUmMsTUFBQUEsV0FBVyxFQUFFO0FBQ1hWLFFBQUFBLElBQUksRUFBRSxhQURLO0FBRVhzQyxRQUFBQSxhQUFhLEVBQUU7QUFGSjtBQURMLEtBRlo7QUFRRUMsSUFBQUEsT0FBTyxFQUFFckM7QUFSWCxHQWxCVyxFQTRCWDtBQUNFUCxJQUFBQSxHQUFHLEVBQUUsV0FEUDtBQUVFQyxJQUFBQSxRQUFRLEVBQUU7QUFDUmdCLE1BQUFBLGVBQWUsRUFBRTtBQUNmWixRQUFBQSxJQUFJLEVBQUU7QUFEUyxPQURUO0FBSVJhLE1BQUFBLGVBQWUsRUFBRTtBQUNmYixRQUFBQSxJQUFJLEVBQUU7QUFEUyxPQUpUO0FBT1JiLE1BQUFBLFNBQVMsRUFBRTtBQUFDYSxRQUFBQSxJQUFJLEVBQUU7QUFBUDtBQVBILEtBRlo7QUFXRXVDLElBQUFBLE9BQU8sRUFBRTVCO0FBWFgsR0E1QlcsRUF5Q1g7QUFDRWhCLElBQUFBLEdBQUcsRUFBRSxjQURQO0FBRUVDLElBQUFBLFFBQVEsRUFBRTtBQUNScUIsTUFBQUEsTUFBTSxFQUFFO0FBQUNqQixRQUFBQSxJQUFJLEVBQUU7QUFBUCxPQURBO0FBRVJrQixNQUFBQSxLQUFLLEVBQUU7QUFBQ2xCLFFBQUFBLElBQUksRUFBRTtBQUFQLE9BRkM7QUFHUmIsTUFBQUEsU0FBUyxFQUFFO0FBQUNhLFFBQUFBLElBQUksRUFBRTtBQUFQO0FBSEgsS0FGWjtBQU9FbUIsSUFBQUEsS0FBSyxFQUFFO0FBQ0wxQixNQUFBQSxLQUFLLEVBQUU7QUFERixLQVBUO0FBVUU4QyxJQUFBQSxPQUFPLEVBQUV2QjtBQVZYLEdBekNXLENBWmlEO0FBa0U5RHdCLEVBQUFBLG1CQUFtQixFQUFuQkE7QUFsRThELENBQXpEOztBQXFFQSxJQUFNa0Isa0JBQWlCLEdBQUcsQ0FBQ0wscUJBQUQsRUFBd0JHLHlCQUF4QixDQUExQjs7O0lBSWNHLGE7QUFNbkIsMkJBTUU7QUFBQSxRQUxBQyxJQUtBLHVFQURJLEVBQ0o7QUFBQTtBQUNBLFNBQUt6RCxLQUFMO0FBQ0VJLE1BQUFBLFNBQVMsRUFBRSxFQURiO0FBRUVILE1BQUFBLFVBQVUsRUFBRSxDQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVpVO0FBRmQsT0FnQkt3RCxJQUFJLENBQUNDLFlBaEJWO0FBbUJBLFNBQUtDLGlCQUFMLEdBQXlCLEVBQXpCO0FBQ0EsU0FBS0Msa0JBQUwsR0FBMEJILElBQUksQ0FBQ25GLFdBQUwsSUFBb0J5RCxrQkFBOUM7O0FBRUEsU0FBSzhCLGFBQUwsQ0FBbUJKLElBQUksQ0FBQ3hELFVBQUwsSUFBbUJzRCxrQkFBdEM7QUFDRDs7OztXQU1ELDZCQUFvQmpFLEtBQXBCLEVBQTJCO0FBQ3pCLFVBQUl3RSxnQkFBcUMsR0FBRyxFQUE1QyxDQUR5QixDQUV6Qjs7QUFDQSxXQUFLLElBQU1DLEdBQVgsSUFBa0IsS0FBS0osaUJBQXZCLEVBQTBDO0FBQ3hDLFlBQU1LLFFBQVEsR0FBRyxLQUFLQyxtQkFBTCxDQUF5QixDQUF6QixFQUE0QjNFLEtBQTVCLEVBQW1DLEtBQUtxRSxpQkFBTCxDQUF1QkksR0FBdkIsQ0FBbkMsQ0FBakI7O0FBQ0FELFFBQUFBLGdCQUFnQixHQUFHQSxnQkFBZ0IsQ0FBQ0ksTUFBakIsQ0FBd0JGLFFBQXhCLENBQW5CO0FBQ0Q7O0FBRURGLE1BQUFBLGdCQUFnQixDQUFDSyxPQUFqQixDQUF5QixVQUFBQyxDQUFDO0FBQUEsZUFBSSxPQUFPQSxDQUFQLEtBQWEsVUFBYixJQUEyQkEsQ0FBQyxFQUFoQztBQUFBLE9BQTFCO0FBQ0Q7OztXQUVELDJCQUFrQjlFLEtBQWxCLEVBQXlCcUMsaUJBQXpCLEVBQTRDO0FBQzFDLFVBQU1xQyxRQUFRLEdBQUcsS0FBS0MsbUJBQUwsQ0FBeUIsQ0FBekIsRUFBNEIzRSxLQUE1QixFQUFtQyxLQUFLc0Usa0JBQXhDLENBQWpCOztBQUNBSSxNQUFBQSxRQUFRLENBQUNHLE9BQVQsQ0FBaUIsVUFBQUMsQ0FBQztBQUFBLGVBQUksT0FBT0EsQ0FBUCxLQUFhLFVBQWIsSUFBMkJBLENBQUMsQ0FBQ3pDLGlCQUFELENBQWhDO0FBQUEsT0FBbEI7QUFDRDs7O1dBRUQscUJBQVk4QixJQUFaLEVBQWtCOUIsaUJBQWxCLEVBQXFDO0FBQUEsVUFDNUIwQyxRQUQ0QixHQUNJWixJQURKLENBQzVCWSxRQUQ0QjtBQUFBLFVBQ2xCL0UsS0FEa0IsR0FDSW1FLElBREosQ0FDbEJuRSxLQURrQjtBQUFBLFVBQ1hnRixXQURXLEdBQ0liLElBREosQ0FDWGEsV0FEVztBQUVuQyxVQUFJUixnQkFBcUMsR0FBRyxFQUE1Qzs7QUFFQSxVQUFJUSxXQUFXLENBQUNDLFdBQWhCLEVBQTZCO0FBQzNCO0FBQ0EsYUFBS0MsaUJBQUwsQ0FBdUJsRixLQUF2QixFQUE4QnFDLGlCQUE5QjtBQUNBLGFBQUs4QyxtQkFBTCxDQUF5Qm5GLEtBQXpCO0FBRUEsZUFBTyxLQUFLVSxLQUFaO0FBQ0Q7O0FBRUQsVUFBTTBFLGtCQUFrQixHQUFHLEtBQUtDLHNCQUFMLENBQTRCTixRQUE1QixFQUFzQy9FLEtBQXRDLEVBQTZDZ0YsV0FBN0MsQ0FBM0I7O0FBRUEsVUFBSUksa0JBQWtCLElBQUlBLGtCQUFrQixDQUFDekIsTUFBN0MsRUFBcUQ7QUFDbkQ7QUFDQXlCLFFBQUFBLGtCQUFrQixDQUFDUCxPQUFuQixDQUEyQixVQUFBQyxDQUFDO0FBQUEsaUJBQUksT0FBT0EsQ0FBUCxLQUFhLFVBQWIsSUFBMkJBLENBQUMsQ0FBQ3pDLGlCQUFELENBQWhDO0FBQUEsU0FBNUI7QUFDQSxhQUFLOEMsbUJBQUwsQ0FBeUJuRixLQUF6QjtBQUNELE9BSkQsTUFJTztBQUNMO0FBQ0F3RSxRQUFBQSxnQkFBZ0IsR0FBRyxLQUFLYyxvQkFBTCxDQUEwQlAsUUFBMUIsRUFBb0MvRSxLQUFwQyxFQUEyQ2dGLFdBQTNDLEtBQTJELEVBQTlFO0FBQ0FSLFFBQUFBLGdCQUFnQixDQUFDSyxPQUFqQixDQUF5QixVQUFBQyxDQUFDO0FBQUEsaUJBQUksT0FBT0EsQ0FBUCxLQUFhLFVBQWIsSUFBMkJBLENBQUMsRUFBaEM7QUFBQSxTQUExQjtBQUNEOztBQUVELGFBQU8sS0FBS3BFLEtBQVo7QUFDRCxLLENBRUQ7Ozs7V0FDQSxrQkFBUzZFLFlBQVQsRUFBdUI7QUFDckIsV0FBSzdFLEtBQUwsR0FBYXdCLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjLEVBQWQsRUFBa0IsS0FBS3pCLEtBQXZCLEVBQThCNkUsWUFBOUIsQ0FBYjtBQUNELEssQ0FFRDs7OztXQUNBLDRCQUFtQnJGLEdBQW5CLEVBQXdCcUYsWUFBeEIsRUFBc0M7QUFDcEMsV0FBSy9DLFFBQUwsQ0FBYztBQUNaN0IsUUFBQUEsVUFBVSxFQUFFdUIsTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFrQixLQUFLekIsS0FBTCxDQUFXQyxVQUE3Qix1Q0FDVFQsR0FEUyxFQUNIZ0MsTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFrQixLQUFLekIsS0FBTCxDQUFXQyxVQUFYLENBQXNCVCxHQUF0QixDQUFsQixFQUE4Q3FGLFlBQTlDLENBREc7QUFEQSxPQUFkO0FBS0Q7OztXQUVELHlCQUFnQnZHLFdBQWhCLEVBQThDO0FBQzVDLFdBQUtzRixrQkFBTCxHQUEwQnRGLFdBQTFCO0FBQ0Q7OztXQUVELHlCQUFnRDtBQUFBOztBQUFBLFVBQWxDMkIsVUFBa0MsdUVBQUosRUFBSTtBQUM5Q0EsTUFBQUEsVUFBVSxDQUFDa0UsT0FBWCxDQUFtQixVQUFBNUIsU0FBUyxFQUFJO0FBQUEsWUFDdkIvQyxHQUR1QixHQUNoQitDLFNBRGdCLENBQ3ZCL0MsR0FEdUI7QUFFOUIsUUFBQSxLQUFJLENBQUNtRSxpQkFBTCxDQUF1Qm5FLEdBQXZCLElBQThCK0MsU0FBOUI7QUFDRCxPQUhEO0FBSUQ7OztXQUVELHlCQUNFdUMsYUFERixFQUVFVCxRQUZGLEVBR0UvRSxLQUhGLEVBSUVnRixXQUpGLEVBS0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQU85QyxNQUFNLENBQUN1RCxNQUFQLENBQWNELGFBQWEsQ0FBQ3JGLFFBQTVCLEVBQXNDdUYsSUFBdEMsQ0FBMkMsVUFBQUMsSUFBSSxFQUFJO0FBQ3hELFlBQUlBLElBQUksQ0FBQzlDLGFBQVQsRUFBd0I7QUFDdEI7QUFDQSxpQkFDRW1DLFdBQVcsQ0FBQ1kscUJBQVosS0FDQ1osV0FBVyxDQUFDWSxxQkFBWixDQUFrQ0MsR0FBbEMsSUFDQ2IsV0FBVyxDQUFDWSxxQkFBWixDQUFrQ0QsSUFBSSxDQUFDOUMsYUFBdkMsQ0FGRixDQURGO0FBS0QsU0FSdUQsQ0FTeEQ7OztBQUNBLGVBQU9rQyxRQUFRLENBQUNZLElBQUksQ0FBQ3BGLElBQU4sQ0FBUixLQUF3QlAsS0FBSyxDQUFDMkYsSUFBSSxDQUFDcEYsSUFBTixDQUFwQztBQUNELE9BWE0sQ0FBUDtBQVlEOzs7V0FFRCw2QkFDRVIsSUFERixFQUVFQyxLQUZGLEVBR0VpRCxTQUhGLEVBSUU7QUFJQSxVQUFNeUIsUUFBNEIsR0FBRyxFQUFyQzs7QUFDQSxXQUFLLElBQUlvQixDQUFDLEdBQUcvRixJQUFiLEVBQW1CK0YsQ0FBQyxHQUFHN0MsU0FBUyxDQUFDUCxXQUFWLENBQXNCaUIsTUFBN0MsRUFBcURtQyxDQUFDLEVBQXRELEVBQTBEO0FBQ3hELFlBQU1oRCxPQUFPLEdBQUdHLFNBQVMsQ0FBQ1AsV0FBVixDQUFzQm9ELENBQXRCLEVBQXlCaEQsT0FBekM7O0FBQ0EsWUFBSSxPQUFPQSxPQUFQLEtBQW1CLFVBQXZCLEVBQW1DO0FBQ2pDNEIsVUFBQUEsUUFBUSxDQUFDcUIsSUFBVCxDQUNFakQsT0FBTyxDQUFDa0QsSUFBUixDQUFhLElBQWIsRUFBbUIvQyxTQUFTLENBQUNQLFdBQVYsQ0FBc0JvRCxDQUF0QixDQUFuQixFQUE2QzlGLEtBQTdDLEVBQW9EaUQsU0FBcEQsQ0FERjtBQUdEO0FBQ0Y7O0FBRUQsYUFBT3lCLFFBQVA7QUFDRDs7O1dBRUQseUJBQ0V6QixTQURGLEVBRUU4QixRQUZGLEVBR0UvRSxLQUhGLEVBSUVnRixXQUpGLEVBS0U7QUFBQTs7QUFJQSxVQUFJTixRQUE0QixHQUFHLEVBQW5DO0FBQ0EsVUFBTXVCLGNBQWMsR0FBR2hELFNBQVMsQ0FBQ1AsV0FBVixDQUFzQndELFNBQXRCLENBQWdDLFVBQUFuRyxJQUFJO0FBQUEsZUFDekQsTUFBSSxDQUFDb0csZUFBTCxDQUFxQnBHLElBQXJCLEVBQTJCZ0YsUUFBM0IsRUFBcUMvRSxLQUFyQyxFQUE0Q2dGLFdBQTVDLENBRHlEO0FBQUEsT0FBcEMsQ0FBdkI7O0FBSUEsVUFBSWlCLGNBQWMsR0FBRyxDQUFDLENBQXRCLEVBQXlCO0FBQ3ZCdkIsUUFBQUEsUUFBUSxHQUFHQSxRQUFRLENBQUNFLE1BQVQsQ0FBZ0IsS0FBS0QsbUJBQUwsQ0FBeUJzQixjQUF6QixFQUF5Q2pHLEtBQXpDLEVBQWdEaUQsU0FBaEQsQ0FBaEIsQ0FBWDtBQUNEOztBQUVELGFBQU95QixRQUFQO0FBQ0Q7OztXQUVELGdDQUF1QkssUUFBdkIsRUFBaUMvRSxLQUFqQyxFQUF3Q2dGLFdBQXhDLEVBQXFEO0FBQ25ELFVBQU1OLFFBQVEsR0FBRyxLQUFLMEIsZUFBTCxDQUFxQixLQUFLOUIsa0JBQTFCLEVBQThDUyxRQUE5QyxFQUF3RC9FLEtBQXhELEVBQStEZ0YsV0FBL0QsQ0FBakI7O0FBQ0EsYUFBT04sUUFBUSxDQUFDZixNQUFULEdBQWtCZSxRQUFsQixHQUE2QixJQUFwQztBQUNEOzs7V0FFRCw4QkFBcUJLLFFBQXJCLEVBQStCL0UsS0FBL0IsRUFBc0NnRixXQUF0QyxFQUFtRDtBQUNqRCxVQUFJTixRQUE2QixHQUFHLEVBQXBDLENBRGlELENBR2pEOztBQUNBLFdBQUssSUFBTXhFLElBQVgsSUFBa0IsS0FBS21FLGlCQUF2QixFQUEwQztBQUN4QztBQUNBLFlBQU1wQixTQUFTLEdBQUcsS0FBS29CLGlCQUFMLENBQXVCbkUsSUFBdkIsQ0FBbEI7O0FBQ0EsWUFBTW1FLGlCQUFpQixHQUFHLEtBQUsrQixlQUFMLENBQXFCbkQsU0FBckIsRUFBZ0M4QixRQUFoQyxFQUEwQy9FLEtBQTFDLEVBQWlEZ0YsV0FBakQsQ0FBMUI7O0FBQ0FOLFFBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDRSxNQUFULENBQWdCUCxpQkFBaEIsQ0FBWDtBQUNEOztBQUVELGFBQU9LLFFBQVEsQ0FBQ2YsTUFBVCxHQUFrQmUsUUFBbEIsR0FBNkIsSUFBcEM7QUFDRDs7O1dBRUQsMkJBQWtCMUUsS0FBbEIsRUFBeUI7QUFBQTs7QUFDdkIsVUFBTXFHLGVBQWUsR0FBR3JHLEtBQUssQ0FBQ3NHLGNBQU4sSUFBd0IsRUFBaEQ7O0FBQ0EsVUFBTUEsY0FBYyxHQUFHLEVBQXZCOztBQUZ1QixpQ0FJWnBHLEtBSlk7QUFBQSxvQ0FRMkIsTUFBSSxDQUFDbUUsaUJBQUwsQ0FBdUJuRSxLQUF2QixDQVIzQjtBQUFBLFlBTW5CakIsUUFObUIseUJBTW5CQSxRQU5tQjtBQUFBLFlBT25CeUQsV0FQbUIseUJBT25CQSxXQVBtQixFQVNyQjs7QUFDQTRELFFBQUFBLGNBQWMsQ0FBQ3JILFFBQUQsQ0FBZCxHQUEyQixFQUEzQjtBQUVBeUQsUUFBQUEsV0FBVyxDQUFDbUMsT0FBWixDQUFvQixVQUFBOUUsSUFBSSxFQUFJO0FBQzFCbUMsVUFBQUEsTUFBTSxDQUFDdUQsTUFBUCxDQUFjMUYsSUFBSSxDQUFDSSxRQUFMLElBQWlCLEVBQS9CLEVBQW1DMEUsT0FBbkMsQ0FBMkMsZ0JBQTJCO0FBQUEsZ0JBQXpCdEUsSUFBeUIsUUFBekJBLElBQXlCO0FBQUEsZ0JBQW5Cc0MsYUFBbUIsUUFBbkJBLGFBQW1COztBQUNwRSxnQkFBSUEsYUFBSixFQUFtQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxrQkFBTTBELFFBQVEsR0FBR0YsZUFBZSxDQUFDeEQsYUFBRCxDQUFoQzs7QUFDQSxrQkFBSSx5QkFBTzBELFFBQVAsTUFBb0IsUUFBcEIsSUFBZ0MsQ0FBQ0MsS0FBSyxDQUFDQyxPQUFOLENBQWNGLFFBQWQsQ0FBckMsRUFBOEQ7QUFDNUQ7QUFDQXJFLGdCQUFBQSxNQUFNLENBQUNDLE1BQVAsQ0FBY21FLGNBQWMsQ0FBQ3JILFFBQUQsQ0FBNUIsRUFBd0NzSCxRQUF4QztBQUNELGVBSEQsTUFHTyxJQUFJQSxRQUFRLEtBQUtHLFNBQWpCLEVBQTRCO0FBQ2pDSixnQkFBQUEsY0FBYyxDQUFDckgsUUFBRCxDQUFkLENBQXlCc0IsSUFBekIsSUFBaUNnRyxRQUFqQztBQUNEO0FBQ0YsYUFYRCxNQVdPO0FBQ0w7QUFDQUQsY0FBQUEsY0FBYyxDQUFDckgsUUFBRCxDQUFkLENBQXlCc0IsSUFBekIsSUFBaUNQLEtBQUssQ0FBQ08sSUFBRCxDQUF0QztBQUNEO0FBQ0YsV0FoQkQ7QUFpQkQsU0FsQkQ7QUFacUI7O0FBSXZCLFdBQUssSUFBTUwsS0FBWCxJQUFrQixLQUFLbUUsaUJBQXZCLEVBQTBDO0FBQUEsY0FBL0JuRSxLQUErQjtBQTJCekM7O0FBRUQsYUFBT29HLGNBQVA7QUFDRDs7O1dBRUQsK0JBQXVCcEQsVUFBdkIsRUFBbUM7QUFBQSxVQUFuQnlELElBQW1CLFNBQW5CQSxJQUFtQjtBQUNqQyxVQUFNQyxRQUFRLEdBQUdELElBQUksQ0FBQ0UsTUFBTCxJQUFlRixJQUFJLENBQUNyRCxLQUFMLEdBQWEsQ0FBQyxDQUE5QztBQUNBLFVBQUl3RCxNQUFNLEdBQUcsSUFBYjtBQUNBLFVBQU0zRCxJQUFJLEdBQUd5RCxRQUFRLEdBQUcsS0FBS2xHLEtBQUwsQ0FBV0ksU0FBWCxDQUFxQkMsSUFBckIsQ0FBMEI0RixJQUFJLENBQUNyRCxLQUEvQixDQUFILEdBQTJDLElBQWhFOztBQUNBLFVBQUlILElBQUosRUFBVTtBQUNSLFlBQUk0RCxPQUFPLEdBQUcsRUFBZDs7QUFDQSxhQUFLLElBQU03RyxLQUFYLElBQWtCLEtBQUttRSxpQkFBdkIsRUFBMEM7QUFBQSxjQUNqQ1IsY0FEaUMsR0FDZixLQUFLUSxpQkFBTCxDQUF1Qm5FLEtBQXZCLENBRGUsQ0FDakMyRCxjQURpQzs7QUFFeEMsY0FBSSxPQUFPQSxjQUFQLEtBQTBCLFVBQTlCLEVBQTBDO0FBQ3hDa0QsWUFBQUEsT0FBTyxHQUFHN0UsTUFBTSxDQUFDQyxNQUFQLENBQ1IsRUFEUSxFQUVSNEUsT0FGUSxFQUdSbEQsY0FBYyxDQUFDLEtBQUtuRCxLQUFMLENBQVdDLFVBQVgsQ0FBc0JULEtBQXRCLENBQUQsRUFBNkJpRCxJQUE3QixFQUFtQ0QsVUFBbkMsQ0FITixDQUFWO0FBS0Q7QUFDRjs7QUFFRDRELFFBQUFBLE1BQU0sR0FBRzVFLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjNEUsT0FBZCxFQUF1QjVELElBQXZCLEVBQTZCO0FBQ3BDNkQsVUFBQUEsTUFBTSxFQUFFN0QsSUFBSSxDQUFDOEQsY0FBTCxJQUF1QjlELElBQUksQ0FBQzZEO0FBREEsU0FBN0IsQ0FBVDtBQUdELE9BcEJnQyxDQXNCakM7OztBQUNBLGFBQU85RSxNQUFNLENBQUNDLE1BQVAsQ0FBY3dFLElBQWQsRUFBb0I7QUFDekJFLFFBQUFBLE1BQU0sRUFBRUssT0FBTyxDQUFDSixNQUFELENBRFU7QUFFekI7QUFDQUEsUUFBQUEsTUFBTSxFQUFOQTtBQUh5QixPQUFwQixDQUFQO0FBS0Q7OztXQUVELHFCQUFZSyxZQUFaLEVBQTBCakUsVUFBMUIsRUFBc0M7QUFDcEMsVUFBSSxDQUFDLEtBQUttQixpQkFBTCxDQUF1QitDLGNBQXZCLENBQXNDRCxZQUF0QyxDQUFMLEVBQTBEO0FBQ3hELGVBQU90SCxHQUFQO0FBQ0Q7O0FBQ0QsYUFBTyxLQUFLd0UsaUJBQUwsQ0FBdUI4QyxZQUF2QixFQUFxQ3BFLG1CQUFyQyxDQUNMLEtBQUtyQyxLQUFMLENBQVdDLFVBQVgsQ0FBc0J3RyxZQUF0QixDQURLLEVBRUwsS0FBSzlDLGlCQUFMLENBQXVCOEMsWUFBdkIsQ0FGSyxFQUdMakUsVUFISyxDQUFQO0FBS0Q7OztXQXhPRCw2QkFBMkI7QUFDekIsYUFBT2Usa0JBQVA7QUFDRDs7Ozs7O0FBeU9IQyxhQUFhLENBQUMzQyxpQkFBZCxHQUFrQ0EsaUJBQWxDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuLyogZXNsaW50LWRpc2FibGUgZ3VhcmQtZm9yLWluICovXG5pbXBvcnQge0FHR1JFR0FUSU9OX09QRVJBVElPTiwgX0JpblNvcnRlciBhcyBCaW5Tb3J0ZXJ9IGZyb20gJ0BkZWNrLmdsL2FnZ3JlZ2F0aW9uLWxheWVycyc7XG5pbXBvcnQge2NvbnNvbGUgYXMgQ29uc29sZX0gZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5cbmltcG9ydCB7YWdncmVnYXRlfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7QUdHUkVHQVRJT05fVFlQRVMsIFNDQUxFX0ZVTkN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7UkdCQUNvbG9yfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgVXBkYXRlclR5cGUgPSAodGhpczogQ1BVQWdncmVnYXRvciwgc3RlcCwgcHJvcHMsIGRpbWVuc2lvblVwZGF0ZXIpID0+IHZvaWQ7XG5leHBvcnQgdHlwZSBCaW5kZWRVcGRhdGVyVHlwZSA9ICgpID0+IHZvaWQ7XG5leHBvcnQgdHlwZSBBZ2dyZWdhdGVkVXBkYXRlclR5cGUgPSAoXG4gIHRoaXM6IENQVUFnZ3JlZ2F0b3IsXG4gIHN0ZXAsXG4gIHByb3BzLFxuICBhZ2dyZWdhdGlvbixcbiAgYWdncmVnYXRpb25QYXJhbXNcbikgPT4gdm9pZDtcbmV4cG9ydCB0eXBlIEJpbmRlZEFnZ3JlZ2F0ZWRVcGRhdGVyVHlwZSA9IChhZ2dyZWdhdGlvblBhcmFtcykgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgVXBkYXRlU3RlcHNUeXBlID0ge1xuICBrZXk6IHN0cmluZztcbiAgdHJpZ2dlcnM6IHtcbiAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICBwcm9wOiBzdHJpbmc7XG4gICAgICB1cGRhdGVUcmlnZ2VyPzogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIG9uU2V0Pzoge1xuICAgIHByb3BzOiBzdHJpbmc7XG4gIH07XG4gIHVwZGF0ZXI6IFVwZGF0ZXJUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgRGltZW5zaW9uVHlwZTxWYWx1ZVR5cGUgPSBhbnk+ID0ge1xuICBrZXk6IHN0cmluZztcbiAgYWNjZXNzb3I6IHN0cmluZztcbiAgZ2V0UGlja2luZ0luZm86IChkaW1lbnNpb25TdGF0ZSwgY2VsbCwgbGF5ZXJQcm9wcz8pID0+IGFueTtcbiAgbnVsbFZhbHVlOiBWYWx1ZVR5cGU7XG4gIHVwZGF0ZVN0ZXBzOiBVcGRhdGVTdGVwc1R5cGVbXTtcbiAgZ2V0U3ViTGF5ZXJBY2Nlc3Nvcjtcbn07XG5cbmV4cG9ydCB0eXBlIEFnZ3JlZ2F0aW9uVXBkYXRlU3RlcHNUeXBlID0ge1xuICBrZXk6IHN0cmluZztcbiAgdHJpZ2dlcnM6IHtcbiAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICBwcm9wOiBzdHJpbmc7XG4gICAgICB1cGRhdGVUcmlnZ2VyPzogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIHVwZGF0ZXI6IEFnZ3JlZ2F0ZWRVcGRhdGVyVHlwZTtcbn07XG5cbmV4cG9ydCB0eXBlIEFnZ3JlZ2F0aW9uVHlwZSA9IHtcbiAga2V5OiBzdHJpbmc7XG4gIHVwZGF0ZVN0ZXBzOiBBZ2dyZWdhdGlvblVwZGF0ZVN0ZXBzVHlwZVtdO1xufTtcblxuZXhwb3J0IGNvbnN0IERFQ0tfQUdHUkVHQVRJT05fTUFQID0ge1xuICBbQUdHUkVHQVRJT05fT1BFUkFUSU9OLlNVTV06IEFHR1JFR0FUSU9OX1RZUEVTLnN1bSxcbiAgW0FHR1JFR0FUSU9OX09QRVJBVElPTi5NRUFOXTogQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZSxcbiAgW0FHR1JFR0FUSU9OX09QRVJBVElPTi5NSU5dOiBBR0dSRUdBVElPTl9UWVBFUy5taW5pbXVtLFxuICBbQUdHUkVHQVRJT05fT1BFUkFUSU9OLk1BWF06IEFHR1JFR0FUSU9OX1RZUEVTLm1heGltdW1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWx1ZUZ1bmMoYWdncmVnYXRpb24sIGFjY2Vzc29yKSB7XG4gIGlmICghYWdncmVnYXRpb24gfHwgIUFHR1JFR0FUSU9OX09QRVJBVElPTlthZ2dyZWdhdGlvbi50b1VwcGVyQ2FzZSgpXSkge1xuICAgIENvbnNvbGUud2FybihgQWdncmVnYXRpb24gJHthZ2dyZWdhdGlvbn0gaXMgbm90IHN1cHBvcnRlZGApO1xuICB9XG5cbiAgY29uc3Qgb3AgPSBBR0dSRUdBVElPTl9PUEVSQVRJT05bYWdncmVnYXRpb24udG9VcHBlckNhc2UoKV0gfHwgQUdHUkVHQVRJT05fT1BFUkFUSU9OLlNVTTtcbiAgY29uc3Qga2VwbGVyT3AgPSBERUNLX0FHR1JFR0FUSU9OX01BUFtvcF07XG5cbiAgcmV0dXJuIHB0cyA9PiBhZ2dyZWdhdGUocHRzLm1hcChhY2Nlc3NvciksIGtlcGxlck9wKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjYWxlRnVuY3RvcihzY2FsZVR5cGUpIHtcbiAgaWYgKCFzY2FsZVR5cGUgfHwgIVNDQUxFX0ZVTkNbc2NhbGVUeXBlXSkge1xuICAgIENvbnNvbGUud2FybihgU2NhbGUgJHtzY2FsZVR5cGV9IGlzIG5vdCBzdXBwb3J0ZWRgKTtcbiAgfVxuICByZXR1cm4gU0NBTEVfRlVOQ1tzY2FsZVR5cGVdIHx8IFNDQUxFX0ZVTkMucXVhbnRpemU7XG59XG5cbmZ1bmN0aW9uIG5vcCgpIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRHZXRWYWx1ZSh0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgZGltZW5zaW9uVXBkYXRlcikge1xuICBjb25zdCB7a2V5fSA9IGRpbWVuc2lvblVwZGF0ZXI7XG4gIGNvbnN0IHt2YWx1ZSwgd2VpZ2h0LCBhZ2dyZWdhdGlvbn0gPSBzdGVwLnRyaWdnZXJzO1xuXG4gIGxldCBnZXRWYWx1ZSA9IHByb3BzW3ZhbHVlLnByb3BdO1xuXG4gIGlmIChnZXRWYWx1ZSA9PT0gbnVsbCkge1xuICAgIC8vIElmIGBnZXRWYWx1ZWAgaXMgbm90IHByb3ZpZGVkIGZyb20gcHJvcHMsIGJ1aWxkIGl0IHdpdGggYWdncmVnYXRpb24gYW5kIHdlaWdodC5cbiAgICBnZXRWYWx1ZSA9IGdldFZhbHVlRnVuYyhwcm9wc1thZ2dyZWdhdGlvbi5wcm9wXSwgcHJvcHNbd2VpZ2h0LnByb3BdKTtcbiAgfVxuXG4gIGlmIChnZXRWYWx1ZSkge1xuICAgIHRoaXMuX3NldERpbWVuc2lvblN0YXRlKGtleSwge2dldFZhbHVlfSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpbWVuc2lvblNvcnRlZEJpbnModGhpczogQ1BVQWdncmVnYXRvciwgc3RlcCwgcHJvcHMsIGRpbWVuc2lvblVwZGF0ZXIpIHtcbiAgY29uc3Qge2tleX0gPSBkaW1lbnNpb25VcGRhdGVyO1xuICBjb25zdCB7Z2V0VmFsdWV9ID0gdGhpcy5zdGF0ZS5kaW1lbnNpb25zW2tleV07XG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgY29uc3Qgc29ydGVkQmlucyA9IG5ldyBCaW5Tb3J0ZXIodGhpcy5zdGF0ZS5sYXllckRhdGEuZGF0YSB8fCBbXSwge1xuICAgIGdldFZhbHVlLFxuICAgIGZpbHRlckRhdGE6IHByb3BzLl9maWx0ZXJEYXRhXG4gIH0pO1xuICB0aGlzLl9zZXREaW1lbnNpb25TdGF0ZShrZXksIHtzb3J0ZWRCaW5zfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaW1lbnNpb25WYWx1ZURvbWFpbih0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgZGltZW5zaW9uVXBkYXRlcikge1xuICBjb25zdCB7a2V5fSA9IGRpbWVuc2lvblVwZGF0ZXI7XG4gIGNvbnN0IHtcbiAgICB0cmlnZ2Vyczoge2xvd2VyUGVyY2VudGlsZSwgdXBwZXJQZXJjZW50aWxlLCBzY2FsZVR5cGV9XG4gIH0gPSBzdGVwO1xuXG4gIGlmICghdGhpcy5zdGF0ZS5kaW1lbnNpb25zW2tleV0uc29ydGVkQmlucykge1xuICAgIC8vIHRoZSBwcmV2aW91cyBzdGVwIHNob3VsZCBzZXQgc29ydGVkQmlucywgaWYgbm90LCBzb21ldGhpbmcgd2VudCB3cm9uZ1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIGZvciBsb2cgYW5kIHNxcnQgc2NhbGUsIHJldHVybnMgbGluZWFyIGRvbWFpbiBieSBkZWZhdWx0XG4gIC8vIFRPRE86IHN1cHBvcnQgb3RoZXIgc2NhbGUgZnVuY3Rpb24gZG9tYWluIGluIGJpbiBzb3J0ZXJcbiAgY29uc3QgdmFsdWVEb21haW4gPSB0aGlzLnN0YXRlLmRpbWVuc2lvbnNba2V5XS5zb3J0ZWRCaW5zLmdldFZhbHVlRG9tYWluQnlTY2FsZShcbiAgICBwcm9wc1tzY2FsZVR5cGUucHJvcF0sXG4gICAgW3Byb3BzW2xvd2VyUGVyY2VudGlsZS5wcm9wXSwgcHJvcHNbdXBwZXJQZXJjZW50aWxlLnByb3BdXVxuICApO1xuXG4gIHRoaXMuX3NldERpbWVuc2lvblN0YXRlKGtleSwge3ZhbHVlRG9tYWlufSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaW1lbnNpb25TY2FsZSh0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgZGltZW5zaW9uVXBkYXRlcikge1xuICBjb25zdCB7a2V5fSA9IGRpbWVuc2lvblVwZGF0ZXI7XG4gIGNvbnN0IHtkb21haW4sIHJhbmdlLCBzY2FsZVR5cGV9ID0gc3RlcC50cmlnZ2VycztcbiAgY29uc3Qge29uU2V0fSA9IHN0ZXA7XG4gIGlmICghdGhpcy5zdGF0ZS5kaW1lbnNpb25zW2tleV0udmFsdWVEb21haW4pIHtcbiAgICAvLyB0aGUgcHJldmlvdXMgc3RlcCBzaG91bGQgc2V0IHZhbHVlRG9tYWluLCBpZiBub3QsIHNvbWV0aGluZyB3ZW50IHdyb25nXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZGltZW5zaW9uUmFuZ2UgPSBwcm9wc1tyYW5nZS5wcm9wXTtcbiAgY29uc3QgZGltZW5zaW9uRG9tYWluID0gcHJvcHNbZG9tYWluLnByb3BdIHx8IHRoaXMuc3RhdGUuZGltZW5zaW9uc1trZXldLnZhbHVlRG9tYWluO1xuXG4gIGNvbnN0IHNjYWxlRnVuY3RvciA9IGdldFNjYWxlRnVuY3RvcihzY2FsZVR5cGUgJiYgcHJvcHNbc2NhbGVUeXBlLnByb3BdKSgpO1xuXG4gIGNvbnN0IHNjYWxlRnVuYyA9IHNjYWxlRnVuY3Rvci5kb21haW4oZGltZW5zaW9uRG9tYWluKS5yYW5nZShkaW1lbnNpb25SYW5nZSk7XG5cbiAgaWYgKHR5cGVvZiBvblNldCA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHByb3BzW29uU2V0LnByb3BzXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHByb3BzW29uU2V0LnByb3BzXShzY2FsZUZ1bmMuZG9tYWluKCkpO1xuICB9XG4gIHRoaXMuX3NldERpbWVuc2lvblN0YXRlKGtleSwge3NjYWxlRnVuY30pO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVSZXN1bHQocmVzdWx0OiB7aGV4YWdvbnM/OyBsYXllckRhdGE/fSA9IHt9KSB7XG4gIC8vIHN1cHBvcnQgcHJldmlvdXMgaGV4YWdvbkFnZ3JlZ2F0b3IgQVBJXG4gIGlmIChyZXN1bHQuaGV4YWdvbnMpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7ZGF0YTogcmVzdWx0LmhleGFnb25zfSwgcmVzdWx0KTtcbiAgfSBlbHNlIGlmIChyZXN1bHQubGF5ZXJEYXRhKSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe2RhdGE6IHJlc3VsdC5sYXllckRhdGF9LCByZXN1bHQpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFnZ3JlZ2F0ZWREYXRhKFxuICB0aGlzOiBDUFVBZ2dyZWdhdG9yLFxuICBzdGVwLFxuICBwcm9wcyxcbiAgYWdncmVnYXRpb24sXG4gIGFnZ3JlZ2F0aW9uUGFyYW1zXG4pIHtcbiAgY29uc3Qge1xuICAgIHRyaWdnZXJzOiB7YWdncmVnYXRvcjogYWdncn1cbiAgfSA9IHN0ZXA7XG4gIGNvbnN0IGFnZ3JlZ2F0b3IgPSBwcm9wc1thZ2dyLnByb3BdO1xuXG4gIC8vIHJlc3VsdCBzaG91bGQgY29udGFpbiBhIGRhdGEgYXJyYXkgYW5kIG90aGVyIHByb3BzXG4gIC8vIHJlc3VsdCA9IHtkYXRhOiBbXSwgLi4ub3RoZXIgcHJvcHN9XG4gIGNvbnN0IHJlc3VsdCA9IGFnZ3JlZ2F0b3IocHJvcHMsIGFnZ3JlZ2F0aW9uUGFyYW1zKTtcbiAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgbGF5ZXJEYXRhOiBub3JtYWxpemVSZXN1bHQocmVzdWx0KVxuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRBZ2dyZWdhdGlvbjogQWdncmVnYXRpb25UeXBlID0ge1xuICBrZXk6ICdwb3NpdGlvbicsXG4gIHVwZGF0ZVN0ZXBzOiBbXG4gICAge1xuICAgICAga2V5OiAnYWdncmVnYXRlJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIGNlbGxTaXplOiB7XG4gICAgICAgICAgcHJvcDogJ2NlbGxTaXplJ1xuICAgICAgICB9LFxuICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgIHByb3A6ICdnZXRQb3NpdGlvbicsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ2dldFBvc2l0aW9uJ1xuICAgICAgICB9LFxuICAgICAgICBhZ2dyZWdhdG9yOiB7XG4gICAgICAgICAgcHJvcDogJ2dyaWRBZ2dyZWdhdG9yJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0QWdncmVnYXRlZERhdGFcbiAgICB9XG4gIF1cbn07XG5cbmZ1bmN0aW9uIGdldFN1YkxheWVyQWNjZXNzb3IoZGltZW5zaW9uU3RhdGUsIGRpbWVuc2lvbiwgbGF5ZXJQcm9wcykge1xuICByZXR1cm4gY2VsbCA9PiB7XG4gICAgY29uc3Qge3NvcnRlZEJpbnMsIHNjYWxlRnVuY30gPSBkaW1lbnNpb25TdGF0ZTtcbiAgICBjb25zdCBiaW4gPSBzb3J0ZWRCaW5zLmJpbk1hcFtjZWxsLmluZGV4XTtcblxuICAgIGlmIChiaW4gJiYgYmluLmNvdW50cyA9PT0gMCkge1xuICAgICAgLy8gbm8gcG9pbnRzIGxlZnQgaW4gYmluIGFmdGVyIGZpbHRlcmluZ1xuICAgICAgcmV0dXJuIGRpbWVuc2lvbi5udWxsVmFsdWU7XG4gICAgfVxuXG4gICAgY29uc3QgY3YgPSBiaW4gJiYgYmluLnZhbHVlO1xuICAgIGNvbnN0IGRvbWFpbiA9IHNjYWxlRnVuYy5kb21haW4oKTtcblxuICAgIGNvbnN0IGlzVmFsdWVJbkRvbWFpbiA9IGN2ID49IGRvbWFpblswXSAmJiBjdiA8PSBkb21haW5bZG9tYWluLmxlbmd0aCAtIDFdO1xuXG4gICAgLy8gaWYgY2VsbCB2YWx1ZSBpcyBvdXRzaWRlIGRvbWFpbiwgc2V0IGFscGhhIHRvIDBcbiAgICByZXR1cm4gaXNWYWx1ZUluRG9tYWluID8gc2NhbGVGdW5jKGN2KSA6IGRpbWVuc2lvbi5udWxsVmFsdWU7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0Q29sb3JEaW1lbnNpb246IERpbWVuc2lvblR5cGU8UkdCQUNvbG9yPiA9IHtcbiAga2V5OiAnZmlsbENvbG9yJyxcbiAgYWNjZXNzb3I6ICdnZXRGaWxsQ29sb3InLFxuICBnZXRQaWNraW5nSW5mbzogKGRpbWVuc2lvblN0YXRlLCBjZWxsKSA9PiB7XG4gICAgaWYgKCFjZWxsKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHtzb3J0ZWRCaW5zfSA9IGRpbWVuc2lvblN0YXRlO1xuICAgIGNvbnN0IGNvbG9yVmFsdWUgPSBzb3J0ZWRCaW5zLmJpbk1hcFtjZWxsLmluZGV4XSAmJiBzb3J0ZWRCaW5zLmJpbk1hcFtjZWxsLmluZGV4XS52YWx1ZTtcbiAgICByZXR1cm4ge2NvbG9yVmFsdWV9O1xuICB9LFxuICBudWxsVmFsdWU6IFswLCAwLCAwLCAwXSxcbiAgdXBkYXRlU3RlcHM6IFtcbiAgICB7XG4gICAgICBrZXk6ICdnZXRWYWx1ZScsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIHByb3A6ICdnZXRDb2xvclZhbHVlJyxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnZ2V0Q29sb3JWYWx1ZSdcbiAgICAgICAgfSxcbiAgICAgICAgd2VpZ2h0OiB7XG4gICAgICAgICAgcHJvcDogJ2dldENvbG9yV2VpZ2h0JyxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnZ2V0Q29sb3JXZWlnaHQnXG4gICAgICAgIH0sXG4gICAgICAgIGFnZ3JlZ2F0aW9uOiB7XG4gICAgICAgICAgcHJvcDogJ2NvbG9yQWdncmVnYXRpb24nXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1cGRhdGVyOiBnZXRHZXRWYWx1ZVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZ2V0QmlucycsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBfZmlsdGVyRGF0YToge1xuICAgICAgICAgIHByb3A6ICdfZmlsdGVyRGF0YScsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ19maWx0ZXJEYXRhJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0RGltZW5zaW9uU29ydGVkQmluc1xuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZ2V0RG9tYWluJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIGxvd2VyUGVyY2VudGlsZToge1xuICAgICAgICAgIHByb3A6ICdsb3dlclBlcmNlbnRpbGUnXG4gICAgICAgIH0sXG4gICAgICAgIHVwcGVyUGVyY2VudGlsZToge1xuICAgICAgICAgIHByb3A6ICd1cHBlclBlcmNlbnRpbGUnXG4gICAgICAgIH0sXG4gICAgICAgIHNjYWxlVHlwZToge3Byb3A6ICdjb2xvclNjYWxlVHlwZSd9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0RGltZW5zaW9uVmFsdWVEb21haW5cbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2dldFNjYWxlRnVuYycsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBkb21haW46IHtwcm9wOiAnY29sb3JEb21haW4nfSxcbiAgICAgICAgcmFuZ2U6IHtwcm9wOiAnY29sb3JSYW5nZSd9LFxuICAgICAgICBzY2FsZVR5cGU6IHtwcm9wOiAnY29sb3JTY2FsZVR5cGUnfVxuICAgICAgfSxcbiAgICAgIG9uU2V0OiB7XG4gICAgICAgIHByb3BzOiAnb25TZXRDb2xvckRvbWFpbidcbiAgICAgIH0sXG4gICAgICB1cGRhdGVyOiBnZXREaW1lbnNpb25TY2FsZVxuICAgIH1cbiAgXSxcbiAgZ2V0U3ViTGF5ZXJBY2Nlc3NvclxufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRFbGV2YXRpb25EaW1lbnNpb246IERpbWVuc2lvblR5cGU8bnVtYmVyPiA9IHtcbiAga2V5OiAnZWxldmF0aW9uJyxcbiAgYWNjZXNzb3I6ICdnZXRFbGV2YXRpb24nLFxuICBnZXRQaWNraW5nSW5mbzogKGRpbWVuc2lvblN0YXRlLCBjZWxsKSA9PiB7XG4gICAgaWYgKCFjZWxsKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHtzb3J0ZWRCaW5zfSA9IGRpbWVuc2lvblN0YXRlO1xuICAgIGNvbnN0IGVsZXZhdGlvblZhbHVlID0gc29ydGVkQmlucy5iaW5NYXBbY2VsbC5pbmRleF0gJiYgc29ydGVkQmlucy5iaW5NYXBbY2VsbC5pbmRleF0udmFsdWU7XG4gICAgcmV0dXJuIHtlbGV2YXRpb25WYWx1ZX07XG4gIH0sXG4gIG51bGxWYWx1ZTogLTEsXG4gIHVwZGF0ZVN0ZXBzOiBbXG4gICAge1xuICAgICAga2V5OiAnZ2V0VmFsdWUnLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICBwcm9wOiAnZ2V0RWxldmF0aW9uVmFsdWUnLFxuICAgICAgICAgIHVwZGF0ZVRyaWdnZXI6ICdnZXRFbGV2YXRpb25WYWx1ZSdcbiAgICAgICAgfSxcbiAgICAgICAgd2VpZ2h0OiB7XG4gICAgICAgICAgcHJvcDogJ2dldEVsZXZhdGlvbldlaWdodCcsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ2dldEVsZXZhdGlvbldlaWdodCdcbiAgICAgICAgfSxcbiAgICAgICAgYWdncmVnYXRpb246IHtcbiAgICAgICAgICBwcm9wOiAnZWxldmF0aW9uQWdncmVnYXRpb24nXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1cGRhdGVyOiBnZXRHZXRWYWx1ZVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZ2V0QmlucycsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBfZmlsdGVyRGF0YToge1xuICAgICAgICAgIHByb3A6ICdfZmlsdGVyRGF0YScsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ19maWx0ZXJEYXRhJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0RGltZW5zaW9uU29ydGVkQmluc1xuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZ2V0RG9tYWluJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIGxvd2VyUGVyY2VudGlsZToge1xuICAgICAgICAgIHByb3A6ICdlbGV2YXRpb25Mb3dlclBlcmNlbnRpbGUnXG4gICAgICAgIH0sXG4gICAgICAgIHVwcGVyUGVyY2VudGlsZToge1xuICAgICAgICAgIHByb3A6ICdlbGV2YXRpb25VcHBlclBlcmNlbnRpbGUnXG4gICAgICAgIH0sXG4gICAgICAgIHNjYWxlVHlwZToge3Byb3A6ICdlbGV2YXRpb25TY2FsZVR5cGUnfVxuICAgICAgfSxcbiAgICAgIHVwZGF0ZXI6IGdldERpbWVuc2lvblZhbHVlRG9tYWluXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdnZXRTY2FsZUZ1bmMnLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgZG9tYWluOiB7cHJvcDogJ2VsZXZhdGlvbkRvbWFpbid9LFxuICAgICAgICByYW5nZToge3Byb3A6ICdlbGV2YXRpb25SYW5nZSd9LFxuICAgICAgICBzY2FsZVR5cGU6IHtwcm9wOiAnZWxldmF0aW9uU2NhbGVUeXBlJ31cbiAgICAgIH0sXG4gICAgICBvblNldDoge1xuICAgICAgICBwcm9wczogJ29uU2V0RWxldmF0aW9uRG9tYWluJ1xuICAgICAgfSxcbiAgICAgIHVwZGF0ZXI6IGdldERpbWVuc2lvblNjYWxlXG4gICAgfVxuICBdLFxuICBnZXRTdWJMYXllckFjY2Vzc29yXG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdERpbWVuc2lvbnMgPSBbZGVmYXVsdENvbG9yRGltZW5zaW9uLCBkZWZhdWx0RWxldmF0aW9uRGltZW5zaW9uXTtcblxuZXhwb3J0IHR5cGUgQ1BVQWdncmVnYXRvclN0YXRlID0ge2xheWVyRGF0YToge2RhdGE/fTsgZGltZW5zaW9uczoge307IGdlb0pTT04/OyBjbHVzdGVyQnVpbGRlcj99O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDUFVBZ2dyZWdhdG9yIHtcbiAgc3RhdGljIGdldERpbWVuc2lvblNjYWxlOiBhbnk7XG4gIHN0YXRlOiBDUFVBZ2dyZWdhdG9yU3RhdGU7XG4gIGRpbWVuc2lvblVwZGF0ZXJzOiB7W2tleTogc3RyaW5nXTogRGltZW5zaW9uVHlwZX07XG4gIGFnZ3JlZ2F0aW9uVXBkYXRlcjogQWdncmVnYXRpb25UeXBlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG9wdHM6IHtcbiAgICAgIGluaXRpYWxTdGF0ZT86IENQVUFnZ3JlZ2F0b3JTdGF0ZTtcbiAgICAgIGRpbWVuc2lvbnM/OiBEaW1lbnNpb25UeXBlW107XG4gICAgICBhZ2dyZWdhdGlvbj86IEFnZ3JlZ2F0aW9uVHlwZTtcbiAgICB9ID0ge31cbiAgKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGxheWVyRGF0YToge30sXG4gICAgICBkaW1lbnNpb25zOiB7XG4gICAgICAgIC8vIGNvbG9yOiB7XG4gICAgICAgIC8vICAgZ2V0VmFsdWU6IG51bGwsXG4gICAgICAgIC8vICAgZG9tYWluOiBudWxsLFxuICAgICAgICAvLyAgIHNvcnRlZEJpbnM6IG51bGwsXG4gICAgICAgIC8vICAgc2NhbGVGdW5jOiBub3BcbiAgICAgICAgLy8gfSxcbiAgICAgICAgLy8gZWxldmF0aW9uOiB7XG4gICAgICAgIC8vICAgZ2V0VmFsdWU6IG51bGwsXG4gICAgICAgIC8vICAgZG9tYWluOiBudWxsLFxuICAgICAgICAvLyAgIHNvcnRlZEJpbnM6IG51bGwsXG4gICAgICAgIC8vICAgc2NhbGVGdW5jOiBub3BcbiAgICAgICAgLy8gfVxuICAgICAgfSxcbiAgICAgIC4uLm9wdHMuaW5pdGlhbFN0YXRlXG4gICAgfTtcblxuICAgIHRoaXMuZGltZW5zaW9uVXBkYXRlcnMgPSB7fTtcbiAgICB0aGlzLmFnZ3JlZ2F0aW9uVXBkYXRlciA9IG9wdHMuYWdncmVnYXRpb24gfHwgZGVmYXVsdEFnZ3JlZ2F0aW9uO1xuXG4gICAgdGhpcy5fYWRkRGltZW5zaW9uKG9wdHMuZGltZW5zaW9ucyB8fCBkZWZhdWx0RGltZW5zaW9ucyk7XG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdERpbWVuc2lvbnMoKSB7XG4gICAgcmV0dXJuIGRlZmF1bHREaW1lbnNpb25zO1xuICB9XG5cbiAgdXBkYXRlQWxsRGltZW5zaW9ucyhwcm9wcykge1xuICAgIGxldCBkaW1lbnNpb25DaGFuZ2VzOiBCaW5kZWRVcGRhdGVyVHlwZVtdID0gW107XG4gICAgLy8gdXBkYXRlIGFsbCBkaW1lbnNpb25zXG4gICAgZm9yIChjb25zdCBkaW0gaW4gdGhpcy5kaW1lbnNpb25VcGRhdGVycykge1xuICAgICAgY29uc3QgdXBkYXRlcnMgPSB0aGlzLl9hY2N1bXVsYXRlVXBkYXRlcnMoMCwgcHJvcHMsIHRoaXMuZGltZW5zaW9uVXBkYXRlcnNbZGltXSk7XG4gICAgICBkaW1lbnNpb25DaGFuZ2VzID0gZGltZW5zaW9uQ2hhbmdlcy5jb25jYXQodXBkYXRlcnMpO1xuICAgIH1cblxuICAgIGRpbWVuc2lvbkNoYW5nZXMuZm9yRWFjaChmID0+IHR5cGVvZiBmID09PSAnZnVuY3Rpb24nICYmIGYoKSk7XG4gIH1cblxuICB1cGRhdGVBZ2dyZWdhdGlvbihwcm9wcywgYWdncmVnYXRpb25QYXJhbXMpIHtcbiAgICBjb25zdCB1cGRhdGVycyA9IHRoaXMuX2FjY3VtdWxhdGVVcGRhdGVycygwLCBwcm9wcywgdGhpcy5hZ2dyZWdhdGlvblVwZGF0ZXIpO1xuICAgIHVwZGF0ZXJzLmZvckVhY2goZiA9PiB0eXBlb2YgZiA9PT0gJ2Z1bmN0aW9uJyAmJiBmKGFnZ3JlZ2F0aW9uUGFyYW1zKSk7XG4gIH1cblxuICB1cGRhdGVTdGF0ZShvcHRzLCBhZ2dyZWdhdGlvblBhcmFtcykge1xuICAgIGNvbnN0IHtvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzfSA9IG9wdHM7XG4gICAgbGV0IGRpbWVuc2lvbkNoYW5nZXM6IEJpbmRlZFVwZGF0ZXJUeXBlW10gPSBbXTtcblxuICAgIGlmIChjaGFuZ2VGbGFncy5kYXRhQ2hhbmdlZCkge1xuICAgICAgLy8gaWYgZGF0YSBjaGFuZ2VkIHVwZGF0ZSBldmVyeXRoaW5nXG4gICAgICB0aGlzLnVwZGF0ZUFnZ3JlZ2F0aW9uKHByb3BzLCBhZ2dyZWdhdGlvblBhcmFtcyk7XG4gICAgICB0aGlzLnVwZGF0ZUFsbERpbWVuc2lvbnMocHJvcHMpO1xuXG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZTtcbiAgICB9XG5cbiAgICBjb25zdCBhZ2dyZWdhdGlvbkNoYW5nZXMgPSB0aGlzLl9nZXRBZ2dyZWdhdGlvbkNoYW5nZXMob2xkUHJvcHMsIHByb3BzLCBjaGFuZ2VGbGFncyk7XG5cbiAgICBpZiAoYWdncmVnYXRpb25DaGFuZ2VzICYmIGFnZ3JlZ2F0aW9uQ2hhbmdlcy5sZW5ndGgpIHtcbiAgICAgIC8vIGdldCBhZ2dyZWdhdGVkRGF0YVxuICAgICAgYWdncmVnYXRpb25DaGFuZ2VzLmZvckVhY2goZiA9PiB0eXBlb2YgZiA9PT0gJ2Z1bmN0aW9uJyAmJiBmKGFnZ3JlZ2F0aW9uUGFyYW1zKSk7XG4gICAgICB0aGlzLnVwZGF0ZUFsbERpbWVuc2lvbnMocHJvcHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBvbmx5IHVwZGF0ZSBkaW1lbnNpb25zXG4gICAgICBkaW1lbnNpb25DaGFuZ2VzID0gdGhpcy5fZ2V0RGltZW5zaW9uQ2hhbmdlcyhvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzKSB8fCBbXTtcbiAgICAgIGRpbWVuc2lvbkNoYW5nZXMuZm9yRWFjaChmID0+IHR5cGVvZiBmID09PSAnZnVuY3Rpb24nICYmIGYoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3RhdGU7XG4gIH1cblxuICAvLyBVcGRhdGUgcHJpdmF0ZSBzdGF0ZVxuICBzZXRTdGF0ZSh1cGRhdGVPYmplY3QpIHtcbiAgICB0aGlzLnN0YXRlID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zdGF0ZSwgdXBkYXRlT2JqZWN0KTtcbiAgfVxuXG4gIC8vIFVwZGF0ZSBwcml2YXRlIHN0YXRlLmRpbWVuc2lvbnNcbiAgX3NldERpbWVuc2lvblN0YXRlKGtleSwgdXBkYXRlT2JqZWN0KSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBkaW1lbnNpb25zOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnN0YXRlLmRpbWVuc2lvbnMsIHtcbiAgICAgICAgW2tleV06IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc3RhdGUuZGltZW5zaW9uc1trZXldLCB1cGRhdGVPYmplY3QpXG4gICAgICB9KVxuICAgIH0pO1xuICB9XG5cbiAgX2FkZEFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uOiBBZ2dyZWdhdGlvblR5cGUpIHtcbiAgICB0aGlzLmFnZ3JlZ2F0aW9uVXBkYXRlciA9IGFnZ3JlZ2F0aW9uO1xuICB9XG5cbiAgX2FkZERpbWVuc2lvbihkaW1lbnNpb25zOiBEaW1lbnNpb25UeXBlW10gPSBbXSkge1xuICAgIGRpbWVuc2lvbnMuZm9yRWFjaChkaW1lbnNpb24gPT4ge1xuICAgICAgY29uc3Qge2tleX0gPSBkaW1lbnNpb247XG4gICAgICB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzW2tleV0gPSBkaW1lbnNpb247XG4gICAgfSk7XG4gIH1cblxuICBfbmVlZFVwZGF0ZVN0ZXAoXG4gICAgZGltZW5zaW9uU3RlcDogVXBkYXRlU3RlcHNUeXBlIHwgQWdncmVnYXRpb25VcGRhdGVTdGVwc1R5cGUsXG4gICAgb2xkUHJvcHMsXG4gICAgcHJvcHMsXG4gICAgY2hhbmdlRmxhZ3NcbiAgKSB7XG4gICAgLy8gd2hldGhlciBuZWVkIHRvIHVwZGF0ZSBjdXJyZW50IGRpbWVuc2lvbiBzdGVwXG4gICAgLy8gZGltZW5zaW9uIHN0ZXAgaXMgdGhlIHZhbHVlLCBkb21haW4sIHNjYWxlRnVuY3Rpb24gb2YgZWFjaCBkaW1lbnNpb25cbiAgICAvLyBlYWNoIHN0ZXAgaXMgYW4gb2JqZWN0IHdpdGggcHJvcGVydGllcyBsaW5rcyB0byBsYXllciBwcm9wIGFuZCB3aGV0aGVyIHRoZSBwcm9wIGlzXG4gICAgLy8gY29udHJvbGxlZCBieSB1cGRhdGVUcmlnZ2Vyc1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKGRpbWVuc2lvblN0ZXAudHJpZ2dlcnMpLnNvbWUoaXRlbSA9PiB7XG4gICAgICBpZiAoaXRlbS51cGRhdGVUcmlnZ2VyKSB7XG4gICAgICAgIC8vIGNoZWNrIGJhc2VkIG9uIHVwZGF0ZVRyaWdnZXJzIGNoYW5nZSBmaXJzdFxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGNoYW5nZUZsYWdzLnVwZGF0ZVRyaWdnZXJzQ2hhbmdlZCAmJlxuICAgICAgICAgIChjaGFuZ2VGbGFncy51cGRhdGVUcmlnZ2Vyc0NoYW5nZWQuYWxsIHx8XG4gICAgICAgICAgICBjaGFuZ2VGbGFncy51cGRhdGVUcmlnZ2Vyc0NoYW5nZWRbaXRlbS51cGRhdGVUcmlnZ2VyXSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIC8vIGZhbGxiYWNrIHRvIGRpcmVjdCBjb21wYXJpc29uXG4gICAgICByZXR1cm4gb2xkUHJvcHNbaXRlbS5wcm9wXSAhPT0gcHJvcHNbaXRlbS5wcm9wXTtcbiAgICB9KTtcbiAgfVxuXG4gIF9hY2N1bXVsYXRlVXBkYXRlcnM8VXBkYXRlck9iamVjdFR5cGUgZXh0ZW5kcyBEaW1lbnNpb25UeXBlIHwgQWdncmVnYXRpb25UeXBlPihcbiAgICBzdGVwLFxuICAgIHByb3BzLFxuICAgIGRpbWVuc2lvbjogVXBkYXRlck9iamVjdFR5cGVcbiAgKSB7XG4gICAgdHlwZSBMb2NhbFVwZGF0ZXJUeXBlID0gVXBkYXRlck9iamVjdFR5cGUgZXh0ZW5kcyBEaW1lbnNpb25UeXBlXG4gICAgICA/IEJpbmRlZFVwZGF0ZXJUeXBlXG4gICAgICA6IEJpbmRlZEFnZ3JlZ2F0ZWRVcGRhdGVyVHlwZTtcbiAgICBjb25zdCB1cGRhdGVyczogTG9jYWxVcGRhdGVyVHlwZVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IHN0ZXA7IGkgPCBkaW1lbnNpb24udXBkYXRlU3RlcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHVwZGF0ZXIgPSBkaW1lbnNpb24udXBkYXRlU3RlcHNbaV0udXBkYXRlcjtcbiAgICAgIGlmICh0eXBlb2YgdXBkYXRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB1cGRhdGVycy5wdXNoKFxuICAgICAgICAgIHVwZGF0ZXIuYmluZCh0aGlzLCBkaW1lbnNpb24udXBkYXRlU3RlcHNbaV0sIHByb3BzLCBkaW1lbnNpb24pIGFzIExvY2FsVXBkYXRlclR5cGVcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdXBkYXRlcnM7XG4gIH1cblxuICBfZ2V0QWxsVXBkYXRlcnM8VXBkYXRlck9iamVjdFR5cGUgZXh0ZW5kcyBEaW1lbnNpb25UeXBlIHwgQWdncmVnYXRpb25UeXBlPihcbiAgICBkaW1lbnNpb246IFVwZGF0ZXJPYmplY3RUeXBlLFxuICAgIG9sZFByb3BzLFxuICAgIHByb3BzLFxuICAgIGNoYW5nZUZsYWdzXG4gICkge1xuICAgIHR5cGUgTG9jYWxVcGRhdGVyVHlwZSA9IFVwZGF0ZXJPYmplY3RUeXBlIGV4dGVuZHMgRGltZW5zaW9uVHlwZVxuICAgICAgPyBCaW5kZWRVcGRhdGVyVHlwZVxuICAgICAgOiBCaW5kZWRBZ2dyZWdhdGVkVXBkYXRlclR5cGU7XG4gICAgbGV0IHVwZGF0ZXJzOiBMb2NhbFVwZGF0ZXJUeXBlW10gPSBbXTtcbiAgICBjb25zdCBuZWVkVXBkYXRlU3RlcCA9IGRpbWVuc2lvbi51cGRhdGVTdGVwcy5maW5kSW5kZXgoc3RlcCA9PlxuICAgICAgdGhpcy5fbmVlZFVwZGF0ZVN0ZXAoc3RlcCwgb2xkUHJvcHMsIHByb3BzLCBjaGFuZ2VGbGFncylcbiAgICApO1xuXG4gICAgaWYgKG5lZWRVcGRhdGVTdGVwID4gLTEpIHtcbiAgICAgIHVwZGF0ZXJzID0gdXBkYXRlcnMuY29uY2F0KHRoaXMuX2FjY3VtdWxhdGVVcGRhdGVycyhuZWVkVXBkYXRlU3RlcCwgcHJvcHMsIGRpbWVuc2lvbikpO1xuICAgIH1cblxuICAgIHJldHVybiB1cGRhdGVycztcbiAgfVxuXG4gIF9nZXRBZ2dyZWdhdGlvbkNoYW5nZXMob2xkUHJvcHMsIHByb3BzLCBjaGFuZ2VGbGFncykge1xuICAgIGNvbnN0IHVwZGF0ZXJzID0gdGhpcy5fZ2V0QWxsVXBkYXRlcnModGhpcy5hZ2dyZWdhdGlvblVwZGF0ZXIsIG9sZFByb3BzLCBwcm9wcywgY2hhbmdlRmxhZ3MpO1xuICAgIHJldHVybiB1cGRhdGVycy5sZW5ndGggPyB1cGRhdGVycyA6IG51bGw7XG4gIH1cblxuICBfZ2V0RGltZW5zaW9uQ2hhbmdlcyhvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzKSB7XG4gICAgbGV0IHVwZGF0ZXJzOiBCaW5kZWRVcGRhdGVyVHlwZVtdID0gW107XG5cbiAgICAvLyBnZXQgZGltZW5zaW9uIHRvIGJlIHVwZGF0ZWRcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzKSB7XG4gICAgICAvLyByZXR1cm4gdGhlIGZpcnN0IHRyaWdnZXJlZCB1cGRhdGVyIGZvciBlYWNoIGRpbWVuc2lvblxuICAgICAgY29uc3QgZGltZW5zaW9uID0gdGhpcy5kaW1lbnNpb25VcGRhdGVyc1trZXldO1xuICAgICAgY29uc3QgZGltZW5zaW9uVXBkYXRlcnMgPSB0aGlzLl9nZXRBbGxVcGRhdGVycyhkaW1lbnNpb24sIG9sZFByb3BzLCBwcm9wcywgY2hhbmdlRmxhZ3MpO1xuICAgICAgdXBkYXRlcnMgPSB1cGRhdGVycy5jb25jYXQoZGltZW5zaW9uVXBkYXRlcnMpO1xuICAgIH1cblxuICAgIHJldHVybiB1cGRhdGVycy5sZW5ndGggPyB1cGRhdGVycyA6IG51bGw7XG4gIH1cblxuICBnZXRVcGRhdGVUcmlnZ2Vycyhwcm9wcykge1xuICAgIGNvbnN0IF91cGRhdGVUcmlnZ2VycyA9IHByb3BzLnVwZGF0ZVRyaWdnZXJzIHx8IHt9O1xuICAgIGNvbnN0IHVwZGF0ZVRyaWdnZXJzID0ge307XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGFjY2Vzc29yLFxuICAgICAgICB1cGRhdGVTdGVwc1xuICAgICAgfToge2FjY2Vzc29yOyB1cGRhdGVTdGVwczogVXBkYXRlU3RlcHNUeXBlW119ID0gdGhpcy5kaW1lbnNpb25VcGRhdGVyc1trZXldO1xuICAgICAgLy8gZm9sZCBkaW1lbnNpb24gdHJpZ2dlcnMgaW50byBlYWNoIGFjY2Vzc29yXG4gICAgICB1cGRhdGVUcmlnZ2Vyc1thY2Nlc3Nvcl0gPSB7fTtcblxuICAgICAgdXBkYXRlU3RlcHMuZm9yRWFjaChzdGVwID0+IHtcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhzdGVwLnRyaWdnZXJzIHx8IFtdKS5mb3JFYWNoKCh7cHJvcCwgdXBkYXRlVHJpZ2dlcn0pID0+IHtcbiAgICAgICAgICBpZiAodXBkYXRlVHJpZ2dlcikge1xuICAgICAgICAgICAgLy8gaWYgcHJvcCBpcyBiYXNlZCBvbiB1cGRhdGVUcmlnZ2VyIGUuZy4gZ2V0Q29sb3JWYWx1ZSwgZ2V0Q29sb3JXZWlnaHRcbiAgICAgICAgICAgIC8vIGFuZCB1cGRhdGVUcmlnZ2VycyBpcyBwYXNzZWQgaW4gZnJvbSBsYXllciBwcm9wXG4gICAgICAgICAgICAvLyBmb2xkIHRoZSB1cGRhdGVUcmlnZ2VycyBpbnRvIGFjY2Vzc29yXG4gICAgICAgICAgICBjb25zdCBmcm9tUHJvcCA9IF91cGRhdGVUcmlnZ2Vyc1t1cGRhdGVUcmlnZ2VyXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZnJvbVByb3AgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGZyb21Qcm9wKSkge1xuICAgICAgICAgICAgICAvLyBpZiB1cGRhdGVUcmlnZ2VyIGlzIGFuIG9iamVjdCBzcHJlYWQgaXRcbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih1cGRhdGVUcmlnZ2Vyc1thY2Nlc3Nvcl0sIGZyb21Qcm9wKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZnJvbVByb3AgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICB1cGRhdGVUcmlnZ2Vyc1thY2Nlc3Nvcl1bcHJvcF0gPSBmcm9tUHJvcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gaWYgcHJvcCBpcyBub3QgYmFzZWQgb24gdXBkYXRlVHJpZ2dlclxuICAgICAgICAgICAgdXBkYXRlVHJpZ2dlcnNbYWNjZXNzb3JdW3Byb3BdID0gcHJvcHNbcHJvcF07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB1cGRhdGVUcmlnZ2VycztcbiAgfVxuXG4gIGdldFBpY2tpbmdJbmZvKHtpbmZvfSwgbGF5ZXJQcm9wcykge1xuICAgIGNvbnN0IGlzUGlja2VkID0gaW5mby5waWNrZWQgJiYgaW5mby5pbmRleCA+IC0xO1xuICAgIGxldCBvYmplY3QgPSBudWxsO1xuICAgIGNvbnN0IGNlbGwgPSBpc1BpY2tlZCA/IHRoaXMuc3RhdGUubGF5ZXJEYXRhLmRhdGFbaW5mby5pbmRleF0gOiBudWxsO1xuICAgIGlmIChjZWxsKSB7XG4gICAgICBsZXQgYmluSW5mbyA9IHt9O1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5kaW1lbnNpb25VcGRhdGVycykge1xuICAgICAgICBjb25zdCB7Z2V0UGlja2luZ0luZm99ID0gdGhpcy5kaW1lbnNpb25VcGRhdGVyc1trZXldO1xuICAgICAgICBpZiAodHlwZW9mIGdldFBpY2tpbmdJbmZvID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgYmluSW5mbyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIGJpbkluZm8sXG4gICAgICAgICAgICBnZXRQaWNraW5nSW5mbyh0aGlzLnN0YXRlLmRpbWVuc2lvbnNba2V5XSwgY2VsbCwgbGF5ZXJQcm9wcylcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9iamVjdCA9IE9iamVjdC5hc3NpZ24oYmluSW5mbywgY2VsbCwge1xuICAgICAgICBwb2ludHM6IGNlbGwuZmlsdGVyZWRQb2ludHMgfHwgY2VsbC5wb2ludHNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGFkZCBiaW4gIGFuZCAgdG8gaW5mb1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGluZm8sIHtcbiAgICAgIHBpY2tlZDogQm9vbGVhbihvYmplY3QpLFxuICAgICAgLy8gb3ZlcnJpZGUgb2JqZWN0IHdpdGggcGlja2VkIGNlbGxcbiAgICAgIG9iamVjdFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0QWNjZXNzb3IoZGltZW5zaW9uS2V5LCBsYXllclByb3BzKSB7XG4gICAgaWYgKCF0aGlzLmRpbWVuc2lvblVwZGF0ZXJzLmhhc093blByb3BlcnR5KGRpbWVuc2lvbktleSkpIHtcbiAgICAgIHJldHVybiBub3A7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzW2RpbWVuc2lvbktleV0uZ2V0U3ViTGF5ZXJBY2Nlc3NvcihcbiAgICAgIHRoaXMuc3RhdGUuZGltZW5zaW9uc1tkaW1lbnNpb25LZXldLFxuICAgICAgdGhpcy5kaW1lbnNpb25VcGRhdGVyc1tkaW1lbnNpb25LZXldLFxuICAgICAgbGF5ZXJQcm9wc1xuICAgICk7XG4gIH1cbn1cblxuQ1BVQWdncmVnYXRvci5nZXREaW1lbnNpb25TY2FsZSA9IGdldERpbWVuc2lvblNjYWxlO1xuIl19
|
653
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllci11dGlscy9jcHUtYWdncmVnYXRvci50cyJdLCJuYW1lcyI6WyJERUNLX0FHR1JFR0FUSU9OX01BUCIsIkFHR1JFR0FUSU9OX09QRVJBVElPTiIsIlNVTSIsIkFHR1JFR0FUSU9OX1RZUEVTIiwic3VtIiwiTUVBTiIsImF2ZXJhZ2UiLCJNSU4iLCJtaW5pbXVtIiwiTUFYIiwibWF4aW11bSIsImdldFZhbHVlRnVuYyIsImFnZ3JlZ2F0aW9uIiwiYWNjZXNzb3IiLCJ0b1VwcGVyQ2FzZSIsIkNvbnNvbGUiLCJ3YXJuIiwib3AiLCJrZXBsZXJPcCIsInB0cyIsIm1hcCIsImdldFNjYWxlRnVuY3RvciIsInNjYWxlVHlwZSIsIlNDQUxFX0ZVTkMiLCJxdWFudGl6ZSIsIm5vcCIsImdldEdldFZhbHVlIiwic3RlcCIsInByb3BzIiwiZGltZW5zaW9uVXBkYXRlciIsImtleSIsInRyaWdnZXJzIiwidmFsdWUiLCJ3ZWlnaHQiLCJnZXRWYWx1ZSIsInByb3AiLCJfc2V0RGltZW5zaW9uU3RhdGUiLCJnZXREaW1lbnNpb25Tb3J0ZWRCaW5zIiwic3RhdGUiLCJkaW1lbnNpb25zIiwic29ydGVkQmlucyIsIkJpblNvcnRlciIsImxheWVyRGF0YSIsImRhdGEiLCJmaWx0ZXJEYXRhIiwiX2ZpbHRlckRhdGEiLCJnZXREaW1lbnNpb25WYWx1ZURvbWFpbiIsImxvd2VyUGVyY2VudGlsZSIsInVwcGVyUGVyY2VudGlsZSIsInZhbHVlRG9tYWluIiwiZ2V0VmFsdWVEb21haW5CeVNjYWxlIiwiZ2V0RGltZW5zaW9uU2NhbGUiLCJkb21haW4iLCJyYW5nZSIsIm9uU2V0IiwiZGltZW5zaW9uUmFuZ2UiLCJkaW1lbnNpb25Eb21haW4iLCJzY2FsZUZ1bmN0b3IiLCJzY2FsZUZ1bmMiLCJub3JtYWxpemVSZXN1bHQiLCJyZXN1bHQiLCJoZXhhZ29ucyIsIk9iamVjdCIsImFzc2lnbiIsImdldEFnZ3JlZ2F0ZWREYXRhIiwiYWdncmVnYXRpb25QYXJhbXMiLCJhZ2dyIiwiYWdncmVnYXRvciIsInNldFN0YXRlIiwiZGVmYXVsdEFnZ3JlZ2F0aW9uIiwidXBkYXRlU3RlcHMiLCJjZWxsU2l6ZSIsInBvc2l0aW9uIiwidXBkYXRlVHJpZ2dlciIsInVwZGF0ZXIiLCJnZXRTdWJMYXllckFjY2Vzc29yIiwiZGltZW5zaW9uU3RhdGUiLCJkaW1lbnNpb24iLCJsYXllclByb3BzIiwiY2VsbCIsImJpbiIsImJpbk1hcCIsImluZGV4IiwiY291bnRzIiwibnVsbFZhbHVlIiwiY3YiLCJpc1ZhbHVlSW5Eb21haW4iLCJsZW5ndGgiLCJkZWZhdWx0Q29sb3JEaW1lbnNpb24iLCJnZXRQaWNraW5nSW5mbyIsImNvbG9yVmFsdWUiLCJkZWZhdWx0RWxldmF0aW9uRGltZW5zaW9uIiwiZWxldmF0aW9uVmFsdWUiLCJkZWZhdWx0RGltZW5zaW9ucyIsIkNQVUFnZ3JlZ2F0b3IiLCJvcHRzIiwiaW5pdGlhbFN0YXRlIiwiZGltZW5zaW9uVXBkYXRlcnMiLCJhZ2dyZWdhdGlvblVwZGF0ZXIiLCJfYWRkRGltZW5zaW9uIiwiZGltZW5zaW9uQ2hhbmdlcyIsImRpbSIsInVwZGF0ZXJzIiwiX2FjY3VtdWxhdGVVcGRhdGVycyIsImNvbmNhdCIsImZvckVhY2giLCJmIiwib2xkUHJvcHMiLCJjaGFuZ2VGbGFncyIsImRhdGFDaGFuZ2VkIiwidXBkYXRlQWdncmVnYXRpb24iLCJ1cGRhdGVBbGxEaW1lbnNpb25zIiwiYWdncmVnYXRpb25DaGFuZ2VzIiwiX2dldEFnZ3JlZ2F0aW9uQ2hhbmdlcyIsIl9nZXREaW1lbnNpb25DaGFuZ2VzIiwidXBkYXRlT2JqZWN0IiwiZGltZW5zaW9uU3RlcCIsInZhbHVlcyIsInNvbWUiLCJpdGVtIiwidXBkYXRlVHJpZ2dlcnNDaGFuZ2VkIiwiYWxsIiwiaSIsInB1c2giLCJiaW5kIiwibmVlZFVwZGF0ZVN0ZXAiLCJmaW5kSW5kZXgiLCJfbmVlZFVwZGF0ZVN0ZXAiLCJfZ2V0QWxsVXBkYXRlcnMiLCJfdXBkYXRlVHJpZ2dlcnMiLCJ1cGRhdGVUcmlnZ2VycyIsImZyb21Qcm9wIiwiQXJyYXkiLCJpc0FycmF5IiwidW5kZWZpbmVkIiwiaW5mbyIsImlzUGlja2VkIiwicGlja2VkIiwib2JqZWN0IiwiYmluSW5mbyIsInBvaW50cyIsImZpbHRlcmVkUG9pbnRzIiwiQm9vbGVhbiIsImRpbWVuc2lvbktleSIsImhhc093blByb3BlcnR5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQTs7QUFDQTs7QUFFQTs7QUFDQTs7Ozs7Ozs7QUFxRE8sSUFBTUEsb0JBQW9CLHdGQUM5QkMseUNBQXNCQyxHQURRLEVBQ0ZDLDZCQUFrQkMsR0FEaEIsMkRBRTlCSCx5Q0FBc0JJLElBRlEsRUFFREYsNkJBQWtCRyxPQUZqQiwyREFHOUJMLHlDQUFzQk0sR0FIUSxFQUdGSiw2QkFBa0JLLE9BSGhCLDJEQUk5QlAseUNBQXNCUSxHQUpRLEVBSUZOLDZCQUFrQk8sT0FKaEIseUJBQTFCOzs7QUFPQSxTQUFTQyxZQUFULENBQXNCQyxXQUF0QixFQUFtQ0MsUUFBbkMsRUFBNkM7QUFDbEQsTUFBSSxDQUFDRCxXQUFELElBQWdCLENBQUNYLHlDQUFzQlcsV0FBVyxDQUFDRSxXQUFaLEVBQXRCLENBQXJCLEVBQXVFO0FBQ3JFQyxvQkFBUUMsSUFBUix1QkFBNEJKLFdBQTVCO0FBQ0Q7O0FBRUQsTUFBTUssRUFBRSxHQUFHaEIseUNBQXNCVyxXQUFXLENBQUNFLFdBQVosRUFBdEIsS0FBb0RiLHlDQUFzQkMsR0FBckY7O0FBQ0EsTUFBTWdCLFFBQVEsR0FBR2xCLG9CQUFvQixDQUFDaUIsRUFBRCxDQUFyQztBQUVBLFNBQU8sVUFBQUUsR0FBRztBQUFBLFdBQUksc0JBQVVBLEdBQUcsQ0FBQ0MsR0FBSixDQUFRUCxRQUFSLENBQVYsRUFBNkJLLFFBQTdCLENBQUo7QUFBQSxHQUFWO0FBQ0Q7O0FBRU0sU0FBU0csZUFBVCxDQUF5QkMsU0FBekIsRUFBb0M7QUFDekMsTUFBSSxDQUFDQSxTQUFELElBQWMsQ0FBQ0Msc0JBQVdELFNBQVgsQ0FBbkIsRUFBMEM7QUFDeENQLG9CQUFRQyxJQUFSLGlCQUFzQk0sU0FBdEI7QUFDRDs7QUFDRCxTQUFPQyxzQkFBV0QsU0FBWCxLQUF5QkMsc0JBQVdDLFFBQTNDO0FBQ0Q7O0FBRUQsU0FBU0MsR0FBVCxHQUFlLENBQUU7O0FBRVYsU0FBU0MsV0FBVCxDQUEwQ0MsSUFBMUMsRUFBZ0RDLEtBQWhELEVBQXVEQyxnQkFBdkQsRUFBeUU7QUFBQSxNQUN2RUMsR0FEdUUsR0FDaEVELGdCQURnRSxDQUN2RUMsR0FEdUU7QUFBQSx1QkFFekNILElBQUksQ0FBQ0ksUUFGb0M7QUFBQSxNQUV2RUMsS0FGdUUsa0JBRXZFQSxLQUZ1RTtBQUFBLE1BRWhFQyxNQUZnRSxrQkFFaEVBLE1BRmdFO0FBQUEsTUFFeERyQixXQUZ3RCxrQkFFeERBLFdBRndEO0FBSTlFLE1BQUlzQixRQUFRLEdBQUdOLEtBQUssQ0FBQ0ksS0FBSyxDQUFDRyxJQUFQLENBQXBCOztBQUVBLE1BQUlELFFBQVEsS0FBSyxJQUFqQixFQUF1QjtBQUNyQjtBQUNBQSxJQUFBQSxRQUFRLEdBQUd2QixZQUFZLENBQUNpQixLQUFLLENBQUNoQixXQUFXLENBQUN1QixJQUFiLENBQU4sRUFBMEJQLEtBQUssQ0FBQ0ssTUFBTSxDQUFDRSxJQUFSLENBQS9CLENBQXZCO0FBQ0Q7O0FBRUQsTUFBSUQsUUFBSixFQUFjO0FBQ1osU0FBS0Usa0JBQUwsQ0FBd0JOLEdBQXhCLEVBQTZCO0FBQUNJLE1BQUFBLFFBQVEsRUFBUkE7QUFBRCxLQUE3QjtBQUNEO0FBQ0Y7O0FBRU0sU0FBU0csc0JBQVQsQ0FBcURWLElBQXJELEVBQTJEQyxLQUEzRCxFQUFrRUMsZ0JBQWxFLEVBQW9GO0FBQUEsTUFDbEZDLEdBRGtGLEdBQzNFRCxnQkFEMkUsQ0FDbEZDLEdBRGtGO0FBQUEsTUFFbEZJLFFBRmtGLEdBRXRFLEtBQUtJLEtBQUwsQ0FBV0MsVUFBWCxDQUFzQlQsR0FBdEIsQ0FGc0UsQ0FFbEZJLFFBRmtGLEVBR3pGOztBQUNBLE1BQU1NLFVBQVUsR0FBRyxJQUFJQyw2QkFBSixDQUFjLEtBQUtILEtBQUwsQ0FBV0ksU0FBWCxDQUFxQkMsSUFBckIsSUFBNkIsRUFBM0MsRUFBK0M7QUFDaEVULElBQUFBLFFBQVEsRUFBUkEsUUFEZ0U7QUFFaEVVLElBQUFBLFVBQVUsRUFBRWhCLEtBQUssQ0FBQ2lCO0FBRjhDLEdBQS9DLENBQW5COztBQUlBLE9BQUtULGtCQUFMLENBQXdCTixHQUF4QixFQUE2QjtBQUFDVSxJQUFBQSxVQUFVLEVBQVZBO0FBQUQsR0FBN0I7QUFDRDs7QUFFTSxTQUFTTSx1QkFBVCxDQUFzRG5CLElBQXRELEVBQTREQyxLQUE1RCxFQUFtRUMsZ0JBQW5FLEVBQXFGO0FBQUEsTUFDbkZDLEdBRG1GLEdBQzVFRCxnQkFENEUsQ0FDbkZDLEdBRG1GO0FBQUEsd0JBSXRGSCxJQUpzRixDQUd4RkksUUFId0Y7QUFBQSxNQUc3RWdCLGVBSDZFLG1CQUc3RUEsZUFINkU7QUFBQSxNQUc1REMsZUFINEQsbUJBRzVEQSxlQUg0RDtBQUFBLE1BRzNDMUIsU0FIMkMsbUJBRzNDQSxTQUgyQzs7QUFNMUYsTUFBSSxDQUFDLEtBQUtnQixLQUFMLENBQVdDLFVBQVgsQ0FBc0JULEdBQXRCLEVBQTJCVSxVQUFoQyxFQUE0QztBQUMxQztBQUNBO0FBQ0QsR0FUeUYsQ0FXMUY7QUFDQTs7O0FBQ0EsTUFBTVMsV0FBVyxHQUFHLEtBQUtYLEtBQUwsQ0FBV0MsVUFBWCxDQUFzQlQsR0FBdEIsRUFBMkJVLFVBQTNCLENBQXNDVSxxQkFBdEMsQ0FDbEJ0QixLQUFLLENBQUNOLFNBQVMsQ0FBQ2EsSUFBWCxDQURhLEVBRWxCLENBQUNQLEtBQUssQ0FBQ21CLGVBQWUsQ0FBQ1osSUFBakIsQ0FBTixFQUE4QlAsS0FBSyxDQUFDb0IsZUFBZSxDQUFDYixJQUFqQixDQUFuQyxDQUZrQixDQUFwQjs7QUFLQSxPQUFLQyxrQkFBTCxDQUF3Qk4sR0FBeEIsRUFBNkI7QUFBQ21CLElBQUFBLFdBQVcsRUFBWEE7QUFBRCxHQUE3QjtBQUNEOztBQUVNLFNBQVNFLGlCQUFULENBQWdEeEIsSUFBaEQsRUFBc0RDLEtBQXRELEVBQTZEQyxnQkFBN0QsRUFBK0U7QUFBQSxNQUM3RUMsR0FENkUsR0FDdEVELGdCQURzRSxDQUM3RUMsR0FENkU7QUFBQSx3QkFFakRILElBQUksQ0FBQ0ksUUFGNEM7QUFBQSxNQUU3RXFCLE1BRjZFLG1CQUU3RUEsTUFGNkU7QUFBQSxNQUVyRUMsS0FGcUUsbUJBRXJFQSxLQUZxRTtBQUFBLE1BRTlEL0IsU0FGOEQsbUJBRTlEQSxTQUY4RDtBQUFBLE1BRzdFZ0MsS0FINkUsR0FHcEUzQixJQUhvRSxDQUc3RTJCLEtBSDZFOztBQUlwRixNQUFJLENBQUMsS0FBS2hCLEtBQUwsQ0FBV0MsVUFBWCxDQUFzQlQsR0FBdEIsRUFBMkJtQixXQUFoQyxFQUE2QztBQUMzQztBQUNBO0FBQ0Q7O0FBRUQsTUFBTU0sY0FBYyxHQUFHM0IsS0FBSyxDQUFDeUIsS0FBSyxDQUFDbEIsSUFBUCxDQUE1QjtBQUNBLE1BQU1xQixlQUFlLEdBQUc1QixLQUFLLENBQUN3QixNQUFNLENBQUNqQixJQUFSLENBQUwsSUFBc0IsS0FBS0csS0FBTCxDQUFXQyxVQUFYLENBQXNCVCxHQUF0QixFQUEyQm1CLFdBQXpFO0FBRUEsTUFBTVEsWUFBWSxHQUFHcEMsZUFBZSxDQUFDQyxTQUFTLElBQUlNLEtBQUssQ0FBQ04sU0FBUyxDQUFDYSxJQUFYLENBQW5CLENBQWYsRUFBckI7QUFFQSxNQUFNdUIsU0FBUyxHQUFHRCxZQUFZLENBQUNMLE1BQWIsQ0FBb0JJLGVBQXBCLEVBQXFDSCxLQUFyQyxDQUEyQ0UsY0FBM0MsQ0FBbEI7O0FBRUEsTUFBSSx5QkFBT0QsS0FBUCxNQUFpQixRQUFqQixJQUE2QixPQUFPMUIsS0FBSyxDQUFDMEIsS0FBSyxDQUFDMUIsS0FBUCxDQUFaLEtBQThCLFVBQS9ELEVBQTJFO0FBQ3pFQSxJQUFBQSxLQUFLLENBQUMwQixLQUFLLENBQUMxQixLQUFQLENBQUwsQ0FBbUI4QixTQUFTLENBQUNOLE1BQVYsRUFBbkI7QUFDRDs7QUFDRCxPQUFLaEIsa0JBQUwsQ0FBd0JOLEdBQXhCLEVBQTZCO0FBQUM0QixJQUFBQSxTQUFTLEVBQVRBO0FBQUQsR0FBN0I7QUFDRDs7QUFFRCxTQUFTQyxlQUFULEdBQStEO0FBQUEsTUFBdENDLE1BQXNDLHVFQUFKLEVBQUk7O0FBQzdEO0FBQ0EsTUFBSUEsTUFBTSxDQUFDQyxRQUFYLEVBQXFCO0FBQ25CLFdBQU9DLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO0FBQUNwQixNQUFBQSxJQUFJLEVBQUVpQixNQUFNLENBQUNDO0FBQWQsS0FBZCxFQUF1Q0QsTUFBdkMsQ0FBUDtBQUNELEdBRkQsTUFFTyxJQUFJQSxNQUFNLENBQUNsQixTQUFYLEVBQXNCO0FBQzNCLFdBQU9vQixNQUFNLENBQUNDLE1BQVAsQ0FBYztBQUFDcEIsTUFBQUEsSUFBSSxFQUFFaUIsTUFBTSxDQUFDbEI7QUFBZCxLQUFkLEVBQXdDa0IsTUFBeEMsQ0FBUDtBQUNEOztBQUVELFNBQU9BLE1BQVA7QUFDRDs7QUFFTSxTQUFTSSxpQkFBVCxDQUVMckMsSUFGSyxFQUdMQyxLQUhLLEVBSUxoQixXQUpLLEVBS0xxRCxpQkFMSyxFQU1MO0FBQUEsTUFFeUJDLElBRnpCLEdBR0l2QyxJQUhKLENBRUVJLFFBRkYsQ0FFYW9DLFVBRmI7QUFJQSxNQUFNQSxVQUFVLEdBQUd2QyxLQUFLLENBQUNzQyxJQUFJLENBQUMvQixJQUFOLENBQXhCLENBSkEsQ0FNQTtBQUNBOztBQUNBLE1BQU15QixNQUFNLEdBQUdPLFVBQVUsQ0FBQ3ZDLEtBQUQsRUFBUXFDLGlCQUFSLENBQXpCO0FBQ0EsT0FBS0csUUFBTCxDQUFjO0FBQ1oxQixJQUFBQSxTQUFTLEVBQUVpQixlQUFlLENBQUNDLE1BQUQ7QUFEZCxHQUFkO0FBR0Q7O0FBRU0sSUFBTVMsa0JBQW1DLEdBQUc7QUFDakR2QyxFQUFBQSxHQUFHLEVBQUUsVUFENEM7QUFFakR3QyxFQUFBQSxXQUFXLEVBQUUsQ0FDWDtBQUNFeEMsSUFBQUEsR0FBRyxFQUFFLFdBRFA7QUFFRUMsSUFBQUEsUUFBUSxFQUFFO0FBQ1J3QyxNQUFBQSxRQUFRLEVBQUU7QUFDUnBDLFFBQUFBLElBQUksRUFBRTtBQURFLE9BREY7QUFJUnFDLE1BQUFBLFFBQVEsRUFBRTtBQUNSckMsUUFBQUEsSUFBSSxFQUFFLGFBREU7QUFFUnNDLFFBQUFBLGFBQWEsRUFBRTtBQUZQLE9BSkY7QUFRUk4sTUFBQUEsVUFBVSxFQUFFO0FBQ1ZoQyxRQUFBQSxJQUFJLEVBQUU7QUFESTtBQVJKLEtBRlo7QUFjRXVDLElBQUFBLE9BQU8sRUFBRVY7QUFkWCxHQURXO0FBRm9DLENBQTVDOzs7QUFzQlAsU0FBU1csbUJBQVQsQ0FBNkJDLGNBQTdCLEVBQTZDQyxTQUE3QyxFQUF3REMsVUFBeEQsRUFBb0U7QUFDbEUsU0FBTyxVQUFBQyxJQUFJLEVBQUk7QUFBQSxRQUNOdkMsVUFETSxHQUNtQm9DLGNBRG5CLENBQ05wQyxVQURNO0FBQUEsUUFDTWtCLFNBRE4sR0FDbUJrQixjQURuQixDQUNNbEIsU0FETjtBQUViLFFBQU1zQixHQUFHLEdBQUd4QyxVQUFVLENBQUN5QyxNQUFYLENBQWtCRixJQUFJLENBQUNHLEtBQXZCLENBQVo7O0FBRUEsUUFBSUYsR0FBRyxJQUFJQSxHQUFHLENBQUNHLE1BQUosS0FBZSxDQUExQixFQUE2QjtBQUMzQjtBQUNBLGFBQU9OLFNBQVMsQ0FBQ08sU0FBakI7QUFDRDs7QUFFRCxRQUFNQyxFQUFFLEdBQUdMLEdBQUcsSUFBSUEsR0FBRyxDQUFDaEQsS0FBdEI7QUFDQSxRQUFNb0IsTUFBTSxHQUFHTSxTQUFTLENBQUNOLE1BQVYsRUFBZjtBQUVBLFFBQU1rQyxlQUFlLEdBQUdELEVBQUUsSUFBSWpDLE1BQU0sQ0FBQyxDQUFELENBQVosSUFBbUJpQyxFQUFFLElBQUlqQyxNQUFNLENBQUNBLE1BQU0sQ0FBQ21DLE1BQVAsR0FBZ0IsQ0FBakIsQ0FBdkQsQ0FaYSxDQWNiOztBQUNBLFdBQU9ELGVBQWUsR0FBRzVCLFNBQVMsQ0FBQzJCLEVBQUQsQ0FBWixHQUFtQlIsU0FBUyxDQUFDTyxTQUFuRDtBQUNELEdBaEJEO0FBaUJEOztBQUVNLElBQU1JLHFCQUErQyxHQUFHO0FBQzdEMUQsRUFBQUEsR0FBRyxFQUFFLFdBRHdEO0FBRTdEakIsRUFBQUEsUUFBUSxFQUFFLGNBRm1EO0FBRzdENEUsRUFBQUEsY0FBYyxFQUFFLHdCQUFDYixjQUFELEVBQWlCRyxJQUFqQixFQUEwQjtBQUN4QyxRQUFJLENBQUNBLElBQUwsRUFBVztBQUNULGFBQU8sRUFBUDtBQUNEOztBQUh1QyxRQUlqQ3ZDLFVBSmlDLEdBSW5Cb0MsY0FKbUIsQ0FJakNwQyxVQUppQztBQUt4QyxRQUFNa0QsVUFBVSxHQUFHbEQsVUFBVSxDQUFDeUMsTUFBWCxDQUFrQkYsSUFBSSxDQUFDRyxLQUF2QixLQUFpQzFDLFVBQVUsQ0FBQ3lDLE1BQVgsQ0FBa0JGLElBQUksQ0FBQ0csS0FBdkIsRUFBOEJsRCxLQUFsRjtBQUNBLFdBQU87QUFBQzBELE1BQUFBLFVBQVUsRUFBVkE7QUFBRCxLQUFQO0FBQ0QsR0FWNEQ7QUFXN0ROLEVBQUFBLFNBQVMsRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLENBQVYsQ0FYa0Q7QUFZN0RkLEVBQUFBLFdBQVcsRUFBRSxDQUNYO0FBQ0V4QyxJQUFBQSxHQUFHLEVBQUUsVUFEUDtBQUVFQyxJQUFBQSxRQUFRLEVBQUU7QUFDUkMsTUFBQUEsS0FBSyxFQUFFO0FBQ0xHLFFBQUFBLElBQUksRUFBRSxlQUREO0FBRUxzQyxRQUFBQSxhQUFhLEVBQUU7QUFGVixPQURDO0FBS1J4QyxNQUFBQSxNQUFNLEVBQUU7QUFDTkUsUUFBQUEsSUFBSSxFQUFFLGdCQURBO0FBRU5zQyxRQUFBQSxhQUFhLEVBQUU7QUFGVCxPQUxBO0FBU1I3RCxNQUFBQSxXQUFXLEVBQUU7QUFDWHVCLFFBQUFBLElBQUksRUFBRTtBQURLO0FBVEwsS0FGWjtBQWVFdUMsSUFBQUEsT0FBTyxFQUFFaEQ7QUFmWCxHQURXLEVBa0JYO0FBQ0VJLElBQUFBLEdBQUcsRUFBRSxTQURQO0FBRUVDLElBQUFBLFFBQVEsRUFBRTtBQUNSYyxNQUFBQSxXQUFXLEVBQUU7QUFDWFYsUUFBQUEsSUFBSSxFQUFFLGFBREs7QUFFWHNDLFFBQUFBLGFBQWEsRUFBRTtBQUZKO0FBREwsS0FGWjtBQVFFQyxJQUFBQSxPQUFPLEVBQUVyQztBQVJYLEdBbEJXLEVBNEJYO0FBQ0VQLElBQUFBLEdBQUcsRUFBRSxXQURQO0FBRUVDLElBQUFBLFFBQVEsRUFBRTtBQUNSZ0IsTUFBQUEsZUFBZSxFQUFFO0FBQ2ZaLFFBQUFBLElBQUksRUFBRTtBQURTLE9BRFQ7QUFJUmEsTUFBQUEsZUFBZSxFQUFFO0FBQ2ZiLFFBQUFBLElBQUksRUFBRTtBQURTLE9BSlQ7QUFPUmIsTUFBQUEsU0FBUyxFQUFFO0FBQUNhLFFBQUFBLElBQUksRUFBRTtBQUFQO0FBUEgsS0FGWjtBQVdFdUMsSUFBQUEsT0FBTyxFQUFFNUI7QUFYWCxHQTVCVyxFQXlDWDtBQUNFaEIsSUFBQUEsR0FBRyxFQUFFLGNBRFA7QUFFRUMsSUFBQUEsUUFBUSxFQUFFO0FBQ1JxQixNQUFBQSxNQUFNLEVBQUU7QUFBQ2pCLFFBQUFBLElBQUksRUFBRTtBQUFQLE9BREE7QUFFUmtCLE1BQUFBLEtBQUssRUFBRTtBQUFDbEIsUUFBQUEsSUFBSSxFQUFFO0FBQVAsT0FGQztBQUdSYixNQUFBQSxTQUFTLEVBQUU7QUFBQ2EsUUFBQUEsSUFBSSxFQUFFO0FBQVA7QUFISCxLQUZaO0FBT0VtQixJQUFBQSxLQUFLLEVBQUU7QUFDTDFCLE1BQUFBLEtBQUssRUFBRTtBQURGLEtBUFQ7QUFVRThDLElBQUFBLE9BQU8sRUFBRXZCO0FBVlgsR0F6Q1csQ0FaZ0Q7QUFrRTdEd0IsRUFBQUEsbUJBQW1CLEVBQW5CQTtBQWxFNkQsQ0FBeEQ7O0FBcUVBLElBQU1nQix5QkFBZ0QsR0FBRztBQUM5RDdELEVBQUFBLEdBQUcsRUFBRSxXQUR5RDtBQUU5RGpCLEVBQUFBLFFBQVEsRUFBRSxjQUZvRDtBQUc5RDRFLEVBQUFBLGNBQWMsRUFBRSx3QkFBQ2IsY0FBRCxFQUFpQkcsSUFBakIsRUFBMEI7QUFDeEMsUUFBSSxDQUFDQSxJQUFMLEVBQVc7QUFDVCxhQUFPLEVBQVA7QUFDRDs7QUFIdUMsUUFJakN2QyxVQUppQyxHQUluQm9DLGNBSm1CLENBSWpDcEMsVUFKaUM7QUFLeEMsUUFBTW9ELGNBQWMsR0FBR3BELFVBQVUsQ0FBQ3lDLE1BQVgsQ0FBa0JGLElBQUksQ0FBQ0csS0FBdkIsS0FBaUMxQyxVQUFVLENBQUN5QyxNQUFYLENBQWtCRixJQUFJLENBQUNHLEtBQXZCLEVBQThCbEQsS0FBdEY7QUFDQSxXQUFPO0FBQUM0RCxNQUFBQSxjQUFjLEVBQWRBO0FBQUQsS0FBUDtBQUNELEdBVjZEO0FBVzlEUixFQUFBQSxTQUFTLEVBQUUsQ0FBQyxDQVhrRDtBQVk5RGQsRUFBQUEsV0FBVyxFQUFFLENBQ1g7QUFDRXhDLElBQUFBLEdBQUcsRUFBRSxVQURQO0FBRUVDLElBQUFBLFFBQVEsRUFBRTtBQUNSQyxNQUFBQSxLQUFLLEVBQUU7QUFDTEcsUUFBQUEsSUFBSSxFQUFFLG1CQUREO0FBRUxzQyxRQUFBQSxhQUFhLEVBQUU7QUFGVixPQURDO0FBS1J4QyxNQUFBQSxNQUFNLEVBQUU7QUFDTkUsUUFBQUEsSUFBSSxFQUFFLG9CQURBO0FBRU5zQyxRQUFBQSxhQUFhLEVBQUU7QUFGVCxPQUxBO0FBU1I3RCxNQUFBQSxXQUFXLEVBQUU7QUFDWHVCLFFBQUFBLElBQUksRUFBRTtBQURLO0FBVEwsS0FGWjtBQWVFdUMsSUFBQUEsT0FBTyxFQUFFaEQ7QUFmWCxHQURXLEVBa0JYO0FBQ0VJLElBQUFBLEdBQUcsRUFBRSxTQURQO0FBRUVDLElBQUFBLFFBQVEsRUFBRTtBQUNSYyxNQUFBQSxXQUFXLEVBQUU7QUFDWFYsUUFBQUEsSUFBSSxFQUFFLGFBREs7QUFFWHNDLFFBQUFBLGFBQWEsRUFBRTtBQUZKO0FBREwsS0FGWjtBQVFFQyxJQUFBQSxPQUFPLEVBQUVyQztBQVJYLEdBbEJXLEVBNEJYO0FBQ0VQLElBQUFBLEdBQUcsRUFBRSxXQURQO0FBRUVDLElBQUFBLFFBQVEsRUFBRTtBQUNSZ0IsTUFBQUEsZUFBZSxFQUFFO0FBQ2ZaLFFBQUFBLElBQUksRUFBRTtBQURTLE9BRFQ7QUFJUmEsTUFBQUEsZUFBZSxFQUFFO0FBQ2ZiLFFBQUFBLElBQUksRUFBRTtBQURTLE9BSlQ7QUFPUmIsTUFBQUEsU0FBUyxFQUFFO0FBQUNhLFFBQUFBLElBQUksRUFBRTtBQUFQO0FBUEgsS0FGWjtBQVdFdUMsSUFBQUEsT0FBTyxFQUFFNUI7QUFYWCxHQTVCVyxFQXlDWDtBQUNFaEIsSUFBQUEsR0FBRyxFQUFFLGNBRFA7QUFFRUMsSUFBQUEsUUFBUSxFQUFFO0FBQ1JxQixNQUFBQSxNQUFNLEVBQUU7QUFBQ2pCLFFBQUFBLElBQUksRUFBRTtBQUFQLE9BREE7QUFFUmtCLE1BQUFBLEtBQUssRUFBRTtBQUFDbEIsUUFBQUEsSUFBSSxFQUFFO0FBQVAsT0FGQztBQUdSYixNQUFBQSxTQUFTLEVBQUU7QUFBQ2EsUUFBQUEsSUFBSSxFQUFFO0FBQVA7QUFISCxLQUZaO0FBT0VtQixJQUFBQSxLQUFLLEVBQUU7QUFDTDFCLE1BQUFBLEtBQUssRUFBRTtBQURGLEtBUFQ7QUFVRThDLElBQUFBLE9BQU8sRUFBRXZCO0FBVlgsR0F6Q1csQ0FaaUQ7QUFrRTlEd0IsRUFBQUEsbUJBQW1CLEVBQW5CQTtBQWxFOEQsQ0FBekQ7O0FBcUVBLElBQU1rQixrQkFBaUIsR0FBRyxDQUFDTCxxQkFBRCxFQUF3QkcseUJBQXhCLENBQTFCOzs7SUFJY0csYTtBQU1uQiwyQkFNRTtBQUFBLFFBTEFDLElBS0EsdUVBREksRUFDSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0EsU0FBS3pELEtBQUw7QUFDRUksTUFBQUEsU0FBUyxFQUFFLEVBRGI7QUFFRUgsTUFBQUEsVUFBVSxFQUFFLENBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWlU7QUFGZCxPQWdCS3dELElBQUksQ0FBQ0MsWUFoQlY7QUFtQkEsU0FBS0MsaUJBQUwsR0FBeUIsRUFBekI7QUFDQSxTQUFLQyxrQkFBTCxHQUEwQkgsSUFBSSxDQUFDbkYsV0FBTCxJQUFvQnlELGtCQUE5Qzs7QUFFQSxTQUFLOEIsYUFBTCxDQUFtQkosSUFBSSxDQUFDeEQsVUFBTCxJQUFtQnNELGtCQUF0QztBQUNEOzs7O1dBTUQsNkJBQW9CakUsS0FBcEIsRUFBMkI7QUFDekIsVUFBSXdFLGdCQUFxQyxHQUFHLEVBQTVDLENBRHlCLENBRXpCOztBQUNBLFdBQUssSUFBTUMsR0FBWCxJQUFrQixLQUFLSixpQkFBdkIsRUFBMEM7QUFDeEMsWUFBTUssUUFBUSxHQUFHLEtBQUtDLG1CQUFMLENBQXlCLENBQXpCLEVBQTRCM0UsS0FBNUIsRUFBbUMsS0FBS3FFLGlCQUFMLENBQXVCSSxHQUF2QixDQUFuQyxDQUFqQjs7QUFDQUQsUUFBQUEsZ0JBQWdCLEdBQUdBLGdCQUFnQixDQUFDSSxNQUFqQixDQUF3QkYsUUFBeEIsQ0FBbkI7QUFDRDs7QUFFREYsTUFBQUEsZ0JBQWdCLENBQUNLLE9BQWpCLENBQXlCLFVBQUFDLENBQUM7QUFBQSxlQUFJLE9BQU9BLENBQVAsS0FBYSxVQUFiLElBQTJCQSxDQUFDLEVBQWhDO0FBQUEsT0FBMUI7QUFDRDs7O1dBRUQsMkJBQWtCOUUsS0FBbEIsRUFBeUJxQyxpQkFBekIsRUFBNEM7QUFDMUMsVUFBTXFDLFFBQVEsR0FBRyxLQUFLQyxtQkFBTCxDQUF5QixDQUF6QixFQUE0QjNFLEtBQTVCLEVBQW1DLEtBQUtzRSxrQkFBeEMsQ0FBakI7O0FBQ0FJLE1BQUFBLFFBQVEsQ0FBQ0csT0FBVCxDQUFpQixVQUFBQyxDQUFDO0FBQUEsZUFBSSxPQUFPQSxDQUFQLEtBQWEsVUFBYixJQUEyQkEsQ0FBQyxDQUFDekMsaUJBQUQsQ0FBaEM7QUFBQSxPQUFsQjtBQUNEOzs7V0FFRCxxQkFBWThCLElBQVosRUFBa0I5QixpQkFBbEIsRUFBcUM7QUFBQSxVQUM1QjBDLFFBRDRCLEdBQ0laLElBREosQ0FDNUJZLFFBRDRCO0FBQUEsVUFDbEIvRSxLQURrQixHQUNJbUUsSUFESixDQUNsQm5FLEtBRGtCO0FBQUEsVUFDWGdGLFdBRFcsR0FDSWIsSUFESixDQUNYYSxXQURXO0FBRW5DLFVBQUlSLGdCQUFxQyxHQUFHLEVBQTVDOztBQUVBLFVBQUlRLFdBQVcsQ0FBQ0MsV0FBaEIsRUFBNkI7QUFDM0I7QUFDQSxhQUFLQyxpQkFBTCxDQUF1QmxGLEtBQXZCLEVBQThCcUMsaUJBQTlCO0FBQ0EsYUFBSzhDLG1CQUFMLENBQXlCbkYsS0FBekI7QUFFQSxlQUFPLEtBQUtVLEtBQVo7QUFDRDs7QUFFRCxVQUFNMEUsa0JBQWtCLEdBQUcsS0FBS0Msc0JBQUwsQ0FBNEJOLFFBQTVCLEVBQXNDL0UsS0FBdEMsRUFBNkNnRixXQUE3QyxDQUEzQjs7QUFFQSxVQUFJSSxrQkFBa0IsSUFBSUEsa0JBQWtCLENBQUN6QixNQUE3QyxFQUFxRDtBQUNuRDtBQUNBeUIsUUFBQUEsa0JBQWtCLENBQUNQLE9BQW5CLENBQTJCLFVBQUFDLENBQUM7QUFBQSxpQkFBSSxPQUFPQSxDQUFQLEtBQWEsVUFBYixJQUEyQkEsQ0FBQyxDQUFDekMsaUJBQUQsQ0FBaEM7QUFBQSxTQUE1QjtBQUNBLGFBQUs4QyxtQkFBTCxDQUF5Qm5GLEtBQXpCO0FBQ0QsT0FKRCxNQUlPO0FBQ0w7QUFDQXdFLFFBQUFBLGdCQUFnQixHQUFHLEtBQUtjLG9CQUFMLENBQTBCUCxRQUExQixFQUFvQy9FLEtBQXBDLEVBQTJDZ0YsV0FBM0MsS0FBMkQsRUFBOUU7QUFDQVIsUUFBQUEsZ0JBQWdCLENBQUNLLE9BQWpCLENBQXlCLFVBQUFDLENBQUM7QUFBQSxpQkFBSSxPQUFPQSxDQUFQLEtBQWEsVUFBYixJQUEyQkEsQ0FBQyxFQUFoQztBQUFBLFNBQTFCO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLcEUsS0FBWjtBQUNELEssQ0FFRDs7OztXQUNBLGtCQUFTNkUsWUFBVCxFQUF1QjtBQUNyQixXQUFLN0UsS0FBTCxHQUFhd0IsTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFrQixLQUFLekIsS0FBdkIsRUFBOEI2RSxZQUE5QixDQUFiO0FBQ0QsSyxDQUVEOzs7O1dBQ0EsNEJBQW1CckYsR0FBbkIsRUFBd0JxRixZQUF4QixFQUFzQztBQUNwQyxXQUFLL0MsUUFBTCxDQUFjO0FBQ1o3QixRQUFBQSxVQUFVLEVBQUV1QixNQUFNLENBQUNDLE1BQVAsQ0FBYyxFQUFkLEVBQWtCLEtBQUt6QixLQUFMLENBQVdDLFVBQTdCLHVDQUNUVCxHQURTLEVBQ0hnQyxNQUFNLENBQUNDLE1BQVAsQ0FBYyxFQUFkLEVBQWtCLEtBQUt6QixLQUFMLENBQVdDLFVBQVgsQ0FBc0JULEdBQXRCLENBQWxCLEVBQThDcUYsWUFBOUMsQ0FERztBQURBLE9BQWQ7QUFLRDs7O1dBRUQseUJBQWdCdkcsV0FBaEIsRUFBOEM7QUFDNUMsV0FBS3NGLGtCQUFMLEdBQTBCdEYsV0FBMUI7QUFDRDs7O1dBRUQseUJBQWdEO0FBQUE7O0FBQUEsVUFBbEMyQixVQUFrQyx1RUFBSixFQUFJO0FBQzlDQSxNQUFBQSxVQUFVLENBQUNrRSxPQUFYLENBQW1CLFVBQUE1QixTQUFTLEVBQUk7QUFBQSxZQUN2Qi9DLEdBRHVCLEdBQ2hCK0MsU0FEZ0IsQ0FDdkIvQyxHQUR1QjtBQUU5QixRQUFBLEtBQUksQ0FBQ21FLGlCQUFMLENBQXVCbkUsR0FBdkIsSUFBOEIrQyxTQUE5QjtBQUNELE9BSEQ7QUFJRDs7O1dBRUQseUJBQ0V1QyxhQURGLEVBRUVULFFBRkYsRUFHRS9FLEtBSEYsRUFJRWdGLFdBSkYsRUFLRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBTzlDLE1BQU0sQ0FBQ3VELE1BQVAsQ0FBY0QsYUFBYSxDQUFDckYsUUFBNUIsRUFBc0N1RixJQUF0QyxDQUEyQyxVQUFBQyxJQUFJLEVBQUk7QUFDeEQsWUFBSUEsSUFBSSxDQUFDOUMsYUFBVCxFQUF3QjtBQUN0QjtBQUNBLGlCQUNFbUMsV0FBVyxDQUFDWSxxQkFBWixLQUNDWixXQUFXLENBQUNZLHFCQUFaLENBQWtDQyxHQUFsQyxJQUNDYixXQUFXLENBQUNZLHFCQUFaLENBQWtDRCxJQUFJLENBQUM5QyxhQUF2QyxDQUZGLENBREY7QUFLRCxTQVJ1RCxDQVN4RDs7O0FBQ0EsZUFBT2tDLFFBQVEsQ0FBQ1ksSUFBSSxDQUFDcEYsSUFBTixDQUFSLEtBQXdCUCxLQUFLLENBQUMyRixJQUFJLENBQUNwRixJQUFOLENBQXBDO0FBQ0QsT0FYTSxDQUFQO0FBWUQ7OztXQUVELDZCQUNFUixJQURGLEVBRUVDLEtBRkYsRUFHRWlELFNBSEYsRUFJRTtBQUlBLFVBQU15QixRQUE0QixHQUFHLEVBQXJDOztBQUNBLFdBQUssSUFBSW9CLENBQUMsR0FBRy9GLElBQWIsRUFBbUIrRixDQUFDLEdBQUc3QyxTQUFTLENBQUNQLFdBQVYsQ0FBc0JpQixNQUE3QyxFQUFxRG1DLENBQUMsRUFBdEQsRUFBMEQ7QUFDeEQsWUFBTWhELE9BQU8sR0FBR0csU0FBUyxDQUFDUCxXQUFWLENBQXNCb0QsQ0FBdEIsRUFBeUJoRCxPQUF6Qzs7QUFDQSxZQUFJLE9BQU9BLE9BQVAsS0FBbUIsVUFBdkIsRUFBbUM7QUFDakM0QixVQUFBQSxRQUFRLENBQUNxQixJQUFULENBQ0VqRCxPQUFPLENBQUNrRCxJQUFSLENBQWEsSUFBYixFQUFtQi9DLFNBQVMsQ0FBQ1AsV0FBVixDQUFzQm9ELENBQXRCLENBQW5CLEVBQTZDOUYsS0FBN0MsRUFBb0RpRCxTQUFwRCxDQURGO0FBR0Q7QUFDRjs7QUFFRCxhQUFPeUIsUUFBUDtBQUNEOzs7V0FFRCx5QkFDRXpCLFNBREYsRUFFRThCLFFBRkYsRUFHRS9FLEtBSEYsRUFJRWdGLFdBSkYsRUFLRTtBQUFBOztBQUlBLFVBQUlOLFFBQTRCLEdBQUcsRUFBbkM7QUFDQSxVQUFNdUIsY0FBYyxHQUFHaEQsU0FBUyxDQUFDUCxXQUFWLENBQXNCd0QsU0FBdEIsQ0FBZ0MsVUFBQW5HLElBQUk7QUFBQSxlQUN6RCxNQUFJLENBQUNvRyxlQUFMLENBQXFCcEcsSUFBckIsRUFBMkJnRixRQUEzQixFQUFxQy9FLEtBQXJDLEVBQTRDZ0YsV0FBNUMsQ0FEeUQ7QUFBQSxPQUFwQyxDQUF2Qjs7QUFJQSxVQUFJaUIsY0FBYyxHQUFHLENBQUMsQ0FBdEIsRUFBeUI7QUFDdkJ2QixRQUFBQSxRQUFRLEdBQUdBLFFBQVEsQ0FBQ0UsTUFBVCxDQUFnQixLQUFLRCxtQkFBTCxDQUF5QnNCLGNBQXpCLEVBQXlDakcsS0FBekMsRUFBZ0RpRCxTQUFoRCxDQUFoQixDQUFYO0FBQ0Q7O0FBRUQsYUFBT3lCLFFBQVA7QUFDRDs7O1dBRUQsZ0NBQXVCSyxRQUF2QixFQUFpQy9FLEtBQWpDLEVBQXdDZ0YsV0FBeEMsRUFBcUQ7QUFDbkQsVUFBTU4sUUFBUSxHQUFHLEtBQUswQixlQUFMLENBQXFCLEtBQUs5QixrQkFBMUIsRUFBOENTLFFBQTlDLEVBQXdEL0UsS0FBeEQsRUFBK0RnRixXQUEvRCxDQUFqQjs7QUFDQSxhQUFPTixRQUFRLENBQUNmLE1BQVQsR0FBa0JlLFFBQWxCLEdBQTZCLElBQXBDO0FBQ0Q7OztXQUVELDhCQUFxQkssUUFBckIsRUFBK0IvRSxLQUEvQixFQUFzQ2dGLFdBQXRDLEVBQW1EO0FBQ2pELFVBQUlOLFFBQTZCLEdBQUcsRUFBcEMsQ0FEaUQsQ0FHakQ7O0FBQ0EsV0FBSyxJQUFNeEUsSUFBWCxJQUFrQixLQUFLbUUsaUJBQXZCLEVBQTBDO0FBQ3hDO0FBQ0EsWUFBTXBCLFNBQVMsR0FBRyxLQUFLb0IsaUJBQUwsQ0FBdUJuRSxJQUF2QixDQUFsQjs7QUFDQSxZQUFNbUUsaUJBQWlCLEdBQUcsS0FBSytCLGVBQUwsQ0FBcUJuRCxTQUFyQixFQUFnQzhCLFFBQWhDLEVBQTBDL0UsS0FBMUMsRUFBaURnRixXQUFqRCxDQUExQjs7QUFDQU4sUUFBQUEsUUFBUSxHQUFHQSxRQUFRLENBQUNFLE1BQVQsQ0FBZ0JQLGlCQUFoQixDQUFYO0FBQ0Q7O0FBRUQsYUFBT0ssUUFBUSxDQUFDZixNQUFULEdBQWtCZSxRQUFsQixHQUE2QixJQUFwQztBQUNEOzs7V0FFRCwyQkFBa0IxRSxLQUFsQixFQUF5QjtBQUFBOztBQUN2QixVQUFNcUcsZUFBZSxHQUFHckcsS0FBSyxDQUFDc0csY0FBTixJQUF3QixFQUFoRDs7QUFDQSxVQUFNQSxjQUFjLEdBQUcsRUFBdkI7O0FBRnVCLGlDQUlacEcsS0FKWTtBQUFBLG9DQVEyQixNQUFJLENBQUNtRSxpQkFBTCxDQUF1Qm5FLEtBQXZCLENBUjNCO0FBQUEsWUFNbkJqQixRQU5tQix5QkFNbkJBLFFBTm1CO0FBQUEsWUFPbkJ5RCxXQVBtQix5QkFPbkJBLFdBUG1CLEVBU3JCOztBQUNBNEQsUUFBQUEsY0FBYyxDQUFDckgsUUFBRCxDQUFkLEdBQTJCLEVBQTNCO0FBRUF5RCxRQUFBQSxXQUFXLENBQUNtQyxPQUFaLENBQW9CLFVBQUE5RSxJQUFJLEVBQUk7QUFDMUJtQyxVQUFBQSxNQUFNLENBQUN1RCxNQUFQLENBQWMxRixJQUFJLENBQUNJLFFBQUwsSUFBaUIsRUFBL0IsRUFBbUMwRSxPQUFuQyxDQUEyQyxnQkFBMkI7QUFBQSxnQkFBekJ0RSxJQUF5QixRQUF6QkEsSUFBeUI7QUFBQSxnQkFBbkJzQyxhQUFtQixRQUFuQkEsYUFBbUI7O0FBQ3BFLGdCQUFJQSxhQUFKLEVBQW1CO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGtCQUFNMEQsUUFBUSxHQUFHRixlQUFlLENBQUN4RCxhQUFELENBQWhDOztBQUNBLGtCQUFJLHlCQUFPMEQsUUFBUCxNQUFvQixRQUFwQixJQUFnQyxDQUFDQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0YsUUFBZCxDQUFyQyxFQUE4RDtBQUM1RDtBQUNBckUsZ0JBQUFBLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjbUUsY0FBYyxDQUFDckgsUUFBRCxDQUE1QixFQUF3Q3NILFFBQXhDO0FBQ0QsZUFIRCxNQUdPLElBQUlBLFFBQVEsS0FBS0csU0FBakIsRUFBNEI7QUFDakNKLGdCQUFBQSxjQUFjLENBQUNySCxRQUFELENBQWQsQ0FBeUJzQixJQUF6QixJQUFpQ2dHLFFBQWpDO0FBQ0Q7QUFDRixhQVhELE1BV087QUFDTDtBQUNBRCxjQUFBQSxjQUFjLENBQUNySCxRQUFELENBQWQsQ0FBeUJzQixJQUF6QixJQUFpQ1AsS0FBSyxDQUFDTyxJQUFELENBQXRDO0FBQ0Q7QUFDRixXQWhCRDtBQWlCRCxTQWxCRDtBQVpxQjs7QUFJdkIsV0FBSyxJQUFNTCxLQUFYLElBQWtCLEtBQUttRSxpQkFBdkIsRUFBMEM7QUFBQSxjQUEvQm5FLEtBQStCO0FBMkJ6Qzs7QUFFRCxhQUFPb0csY0FBUDtBQUNEOzs7V0FFRCwrQkFBdUJwRCxVQUF2QixFQUFtQztBQUFBLFVBQW5CeUQsSUFBbUIsU0FBbkJBLElBQW1CO0FBQ2pDLFVBQU1DLFFBQVEsR0FBR0QsSUFBSSxDQUFDRSxNQUFMLElBQWVGLElBQUksQ0FBQ3JELEtBQUwsR0FBYSxDQUFDLENBQTlDO0FBQ0EsVUFBSXdELE1BQU0sR0FBRyxJQUFiO0FBQ0EsVUFBTTNELElBQUksR0FBR3lELFFBQVEsR0FBRyxLQUFLbEcsS0FBTCxDQUFXSSxTQUFYLENBQXFCQyxJQUFyQixDQUEwQjRGLElBQUksQ0FBQ3JELEtBQS9CLENBQUgsR0FBMkMsSUFBaEU7O0FBQ0EsVUFBSUgsSUFBSixFQUFVO0FBQ1IsWUFBSTRELE9BQU8sR0FBRyxFQUFkOztBQUNBLGFBQUssSUFBTTdHLEtBQVgsSUFBa0IsS0FBS21FLGlCQUF2QixFQUEwQztBQUFBLGNBQ2pDUixjQURpQyxHQUNmLEtBQUtRLGlCQUFMLENBQXVCbkUsS0FBdkIsQ0FEZSxDQUNqQzJELGNBRGlDOztBQUV4QyxjQUFJLE9BQU9BLGNBQVAsS0FBMEIsVUFBOUIsRUFBMEM7QUFDeENrRCxZQUFBQSxPQUFPLEdBQUc3RSxNQUFNLENBQUNDLE1BQVAsQ0FDUixFQURRLEVBRVI0RSxPQUZRLEVBR1JsRCxjQUFjLENBQUMsS0FBS25ELEtBQUwsQ0FBV0MsVUFBWCxDQUFzQlQsS0FBdEIsQ0FBRCxFQUE2QmlELElBQTdCLEVBQW1DRCxVQUFuQyxDQUhOLENBQVY7QUFLRDtBQUNGOztBQUVENEQsUUFBQUEsTUFBTSxHQUFHNUUsTUFBTSxDQUFDQyxNQUFQLENBQWM0RSxPQUFkLEVBQXVCNUQsSUFBdkIsRUFBNkI7QUFDcEM2RCxVQUFBQSxNQUFNLEVBQUU3RCxJQUFJLENBQUM4RCxjQUFMLElBQXVCOUQsSUFBSSxDQUFDNkQ7QUFEQSxTQUE3QixDQUFUO0FBR0QsT0FwQmdDLENBc0JqQzs7O0FBQ0EsYUFBTzlFLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjd0UsSUFBZCxFQUFvQjtBQUN6QkUsUUFBQUEsTUFBTSxFQUFFSyxPQUFPLENBQUNKLE1BQUQsQ0FEVTtBQUV6QjtBQUNBQSxRQUFBQSxNQUFNLEVBQU5BO0FBSHlCLE9BQXBCLENBQVA7QUFLRDs7O1dBRUQscUJBQVlLLFlBQVosRUFBMEJqRSxVQUExQixFQUFzQztBQUNwQyxVQUFJLENBQUMsS0FBS21CLGlCQUFMLENBQXVCK0MsY0FBdkIsQ0FBc0NELFlBQXRDLENBQUwsRUFBMEQ7QUFDeEQsZUFBT3RILEdBQVA7QUFDRDs7QUFDRCxhQUFPLEtBQUt3RSxpQkFBTCxDQUF1QjhDLFlBQXZCLEVBQXFDcEUsbUJBQXJDLENBQ0wsS0FBS3JDLEtBQUwsQ0FBV0MsVUFBWCxDQUFzQndHLFlBQXRCLENBREssRUFFTCxLQUFLOUMsaUJBQUwsQ0FBdUI4QyxZQUF2QixDQUZLLEVBR0xqRSxVQUhLLENBQVA7QUFLRDs7O1dBeE9ELDZCQUEyQjtBQUN6QixhQUFPZSxrQkFBUDtBQUNEOzs7Ozs7aUNBeENrQkMsYTtBQWlSckJBLGFBQWEsQ0FBQzNDLGlCQUFkLEdBQWtDQSxpQkFBbEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vKiBlc2xpbnQtZGlzYWJsZSBndWFyZC1mb3ItaW4gKi9cbmltcG9ydCB7QUdHUkVHQVRJT05fT1BFUkFUSU9OLCBfQmluU29ydGVyIGFzIEJpblNvcnRlcn0gZnJvbSAnQGRlY2suZ2wvYWdncmVnYXRpb24tbGF5ZXJzJztcbmltcG9ydCB7Y29uc29sZSBhcyBDb25zb2xlfSBmcm9tICdnbG9iYWwvd2luZG93JztcblxuaW1wb3J0IHthZ2dyZWdhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtBR0dSRUdBVElPTl9UWVBFUywgU0NBTEVfRlVOQ30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtSR0JBQ29sb3J9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBVcGRhdGVyVHlwZSA9ICh0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgZGltZW5zaW9uVXBkYXRlcikgPT4gdm9pZDtcbmV4cG9ydCB0eXBlIEJpbmRlZFVwZGF0ZXJUeXBlID0gKCkgPT4gdm9pZDtcbmV4cG9ydCB0eXBlIEFnZ3JlZ2F0ZWRVcGRhdGVyVHlwZSA9IChcbiAgdGhpczogQ1BVQWdncmVnYXRvcixcbiAgc3RlcCxcbiAgcHJvcHMsXG4gIGFnZ3JlZ2F0aW9uLFxuICBhZ2dyZWdhdGlvblBhcmFtc1xuKSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgQmluZGVkQWdncmVnYXRlZFVwZGF0ZXJUeXBlID0gKGFnZ3JlZ2F0aW9uUGFyYW1zKSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBVcGRhdGVTdGVwc1R5cGUgPSB7XG4gIGtleTogc3RyaW5nO1xuICB0cmlnZ2Vyczoge1xuICAgIFtrZXk6IHN0cmluZ106IHtcbiAgICAgIHByb3A6IHN0cmluZztcbiAgICAgIHVwZGF0ZVRyaWdnZXI/OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgb25TZXQ/OiB7XG4gICAgcHJvcHM6IHN0cmluZztcbiAgfTtcbiAgdXBkYXRlcjogVXBkYXRlclR5cGU7XG59O1xuXG5leHBvcnQgdHlwZSBEaW1lbnNpb25UeXBlPFZhbHVlVHlwZSA9IGFueT4gPSB7XG4gIGtleTogc3RyaW5nO1xuICBhY2Nlc3Nvcjogc3RyaW5nO1xuICBnZXRQaWNraW5nSW5mbzogKGRpbWVuc2lvblN0YXRlLCBjZWxsLCBsYXllclByb3BzPykgPT4gYW55O1xuICBudWxsVmFsdWU6IFZhbHVlVHlwZTtcbiAgdXBkYXRlU3RlcHM6IFVwZGF0ZVN0ZXBzVHlwZVtdO1xuICBnZXRTdWJMYXllckFjY2Vzc29yO1xufTtcblxuZXhwb3J0IHR5cGUgQWdncmVnYXRpb25VcGRhdGVTdGVwc1R5cGUgPSB7XG4gIGtleTogc3RyaW5nO1xuICB0cmlnZ2Vyczoge1xuICAgIFtrZXk6IHN0cmluZ106IHtcbiAgICAgIHByb3A6IHN0cmluZztcbiAgICAgIHVwZGF0ZVRyaWdnZXI/OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgdXBkYXRlcjogQWdncmVnYXRlZFVwZGF0ZXJUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgQWdncmVnYXRpb25UeXBlID0ge1xuICBrZXk6IHN0cmluZztcbiAgdXBkYXRlU3RlcHM6IEFnZ3JlZ2F0aW9uVXBkYXRlU3RlcHNUeXBlW107XG59O1xuXG5leHBvcnQgY29uc3QgREVDS19BR0dSRUdBVElPTl9NQVAgPSB7XG4gIFtBR0dSRUdBVElPTl9PUEVSQVRJT04uU1VNXTogQUdHUkVHQVRJT05fVFlQRVMuc3VtLFxuICBbQUdHUkVHQVRJT05fT1BFUkFUSU9OLk1FQU5dOiBBR0dSRUdBVElPTl9UWVBFUy5hdmVyYWdlLFxuICBbQUdHUkVHQVRJT05fT1BFUkFUSU9OLk1JTl06IEFHR1JFR0FUSU9OX1RZUEVTLm1pbmltdW0sXG4gIFtBR0dSRUdBVElPTl9PUEVSQVRJT04uTUFYXTogQUdHUkVHQVRJT05fVFlQRVMubWF4aW11bVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbHVlRnVuYyhhZ2dyZWdhdGlvbiwgYWNjZXNzb3IpIHtcbiAgaWYgKCFhZ2dyZWdhdGlvbiB8fCAhQUdHUkVHQVRJT05fT1BFUkFUSU9OW2FnZ3JlZ2F0aW9uLnRvVXBwZXJDYXNlKCldKSB7XG4gICAgQ29uc29sZS53YXJuKGBBZ2dyZWdhdGlvbiAke2FnZ3JlZ2F0aW9ufSBpcyBub3Qgc3VwcG9ydGVkYCk7XG4gIH1cblxuICBjb25zdCBvcCA9IEFHR1JFR0FUSU9OX09QRVJBVElPTlthZ2dyZWdhdGlvbi50b1VwcGVyQ2FzZSgpXSB8fCBBR0dSRUdBVElPTl9PUEVSQVRJT04uU1VNO1xuICBjb25zdCBrZXBsZXJPcCA9IERFQ0tfQUdHUkVHQVRJT05fTUFQW29wXTtcblxuICByZXR1cm4gcHRzID0+IGFnZ3JlZ2F0ZShwdHMubWFwKGFjY2Vzc29yKSwga2VwbGVyT3ApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NhbGVGdW5jdG9yKHNjYWxlVHlwZSkge1xuICBpZiAoIXNjYWxlVHlwZSB8fCAhU0NBTEVfRlVOQ1tzY2FsZVR5cGVdKSB7XG4gICAgQ29uc29sZS53YXJuKGBTY2FsZSAke3NjYWxlVHlwZX0gaXMgbm90IHN1cHBvcnRlZGApO1xuICB9XG4gIHJldHVybiBTQ0FMRV9GVU5DW3NjYWxlVHlwZV0gfHwgU0NBTEVfRlVOQy5xdWFudGl6ZTtcbn1cblxuZnVuY3Rpb24gbm9wKCkge31cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdldFZhbHVlKHRoaXM6IENQVUFnZ3JlZ2F0b3IsIHN0ZXAsIHByb3BzLCBkaW1lbnNpb25VcGRhdGVyKSB7XG4gIGNvbnN0IHtrZXl9ID0gZGltZW5zaW9uVXBkYXRlcjtcbiAgY29uc3Qge3ZhbHVlLCB3ZWlnaHQsIGFnZ3JlZ2F0aW9ufSA9IHN0ZXAudHJpZ2dlcnM7XG5cbiAgbGV0IGdldFZhbHVlID0gcHJvcHNbdmFsdWUucHJvcF07XG5cbiAgaWYgKGdldFZhbHVlID09PSBudWxsKSB7XG4gICAgLy8gSWYgYGdldFZhbHVlYCBpcyBub3QgcHJvdmlkZWQgZnJvbSBwcm9wcywgYnVpbGQgaXQgd2l0aCBhZ2dyZWdhdGlvbiBhbmQgd2VpZ2h0LlxuICAgIGdldFZhbHVlID0gZ2V0VmFsdWVGdW5jKHByb3BzW2FnZ3JlZ2F0aW9uLnByb3BdLCBwcm9wc1t3ZWlnaHQucHJvcF0pO1xuICB9XG5cbiAgaWYgKGdldFZhbHVlKSB7XG4gICAgdGhpcy5fc2V0RGltZW5zaW9uU3RhdGUoa2V5LCB7Z2V0VmFsdWV9KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGltZW5zaW9uU29ydGVkQmlucyh0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgZGltZW5zaW9uVXBkYXRlcikge1xuICBjb25zdCB7a2V5fSA9IGRpbWVuc2lvblVwZGF0ZXI7XG4gIGNvbnN0IHtnZXRWYWx1ZX0gPSB0aGlzLnN0YXRlLmRpbWVuc2lvbnNba2V5XTtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICBjb25zdCBzb3J0ZWRCaW5zID0gbmV3IEJpblNvcnRlcih0aGlzLnN0YXRlLmxheWVyRGF0YS5kYXRhIHx8IFtdLCB7XG4gICAgZ2V0VmFsdWUsXG4gICAgZmlsdGVyRGF0YTogcHJvcHMuX2ZpbHRlckRhdGFcbiAgfSk7XG4gIHRoaXMuX3NldERpbWVuc2lvblN0YXRlKGtleSwge3NvcnRlZEJpbnN9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpbWVuc2lvblZhbHVlRG9tYWluKHRoaXM6IENQVUFnZ3JlZ2F0b3IsIHN0ZXAsIHByb3BzLCBkaW1lbnNpb25VcGRhdGVyKSB7XG4gIGNvbnN0IHtrZXl9ID0gZGltZW5zaW9uVXBkYXRlcjtcbiAgY29uc3Qge1xuICAgIHRyaWdnZXJzOiB7bG93ZXJQZXJjZW50aWxlLCB1cHBlclBlcmNlbnRpbGUsIHNjYWxlVHlwZX1cbiAgfSA9IHN0ZXA7XG5cbiAgaWYgKCF0aGlzLnN0YXRlLmRpbWVuc2lvbnNba2V5XS5zb3J0ZWRCaW5zKSB7XG4gICAgLy8gdGhlIHByZXZpb3VzIHN0ZXAgc2hvdWxkIHNldCBzb3J0ZWRCaW5zLCBpZiBub3QsIHNvbWV0aGluZyB3ZW50IHdyb25nXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gZm9yIGxvZyBhbmQgc3FydCBzY2FsZSwgcmV0dXJucyBsaW5lYXIgZG9tYWluIGJ5IGRlZmF1bHRcbiAgLy8gVE9ETzogc3VwcG9ydCBvdGhlciBzY2FsZSBmdW5jdGlvbiBkb21haW4gaW4gYmluIHNvcnRlclxuICBjb25zdCB2YWx1ZURvbWFpbiA9IHRoaXMuc3RhdGUuZGltZW5zaW9uc1trZXldLnNvcnRlZEJpbnMuZ2V0VmFsdWVEb21haW5CeVNjYWxlKFxuICAgIHByb3BzW3NjYWxlVHlwZS5wcm9wXSxcbiAgICBbcHJvcHNbbG93ZXJQZXJjZW50aWxlLnByb3BdLCBwcm9wc1t1cHBlclBlcmNlbnRpbGUucHJvcF1dXG4gICk7XG5cbiAgdGhpcy5fc2V0RGltZW5zaW9uU3RhdGUoa2V5LCB7dmFsdWVEb21haW59KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpbWVuc2lvblNjYWxlKHRoaXM6IENQVUFnZ3JlZ2F0b3IsIHN0ZXAsIHByb3BzLCBkaW1lbnNpb25VcGRhdGVyKSB7XG4gIGNvbnN0IHtrZXl9ID0gZGltZW5zaW9uVXBkYXRlcjtcbiAgY29uc3Qge2RvbWFpbiwgcmFuZ2UsIHNjYWxlVHlwZX0gPSBzdGVwLnRyaWdnZXJzO1xuICBjb25zdCB7b25TZXR9ID0gc3RlcDtcbiAgaWYgKCF0aGlzLnN0YXRlLmRpbWVuc2lvbnNba2V5XS52YWx1ZURvbWFpbikge1xuICAgIC8vIHRoZSBwcmV2aW91cyBzdGVwIHNob3VsZCBzZXQgdmFsdWVEb21haW4sIGlmIG5vdCwgc29tZXRoaW5nIHdlbnQgd3JvbmdcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBkaW1lbnNpb25SYW5nZSA9IHByb3BzW3JhbmdlLnByb3BdO1xuICBjb25zdCBkaW1lbnNpb25Eb21haW4gPSBwcm9wc1tkb21haW4ucHJvcF0gfHwgdGhpcy5zdGF0ZS5kaW1lbnNpb25zW2tleV0udmFsdWVEb21haW47XG5cbiAgY29uc3Qgc2NhbGVGdW5jdG9yID0gZ2V0U2NhbGVGdW5jdG9yKHNjYWxlVHlwZSAmJiBwcm9wc1tzY2FsZVR5cGUucHJvcF0pKCk7XG5cbiAgY29uc3Qgc2NhbGVGdW5jID0gc2NhbGVGdW5jdG9yLmRvbWFpbihkaW1lbnNpb25Eb21haW4pLnJhbmdlKGRpbWVuc2lvblJhbmdlKTtcblxuICBpZiAodHlwZW9mIG9uU2V0ID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgcHJvcHNbb25TZXQucHJvcHNdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcHJvcHNbb25TZXQucHJvcHNdKHNjYWxlRnVuYy5kb21haW4oKSk7XG4gIH1cbiAgdGhpcy5fc2V0RGltZW5zaW9uU3RhdGUoa2V5LCB7c2NhbGVGdW5jfSk7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVJlc3VsdChyZXN1bHQ6IHtoZXhhZ29ucz87IGxheWVyRGF0YT99ID0ge30pIHtcbiAgLy8gc3VwcG9ydCBwcmV2aW91cyBoZXhhZ29uQWdncmVnYXRvciBBUElcbiAgaWYgKHJlc3VsdC5oZXhhZ29ucykge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHtkYXRhOiByZXN1bHQuaGV4YWdvbnN9LCByZXN1bHQpO1xuICB9IGVsc2UgaWYgKHJlc3VsdC5sYXllckRhdGEpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7ZGF0YTogcmVzdWx0LmxheWVyRGF0YX0sIHJlc3VsdCk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWdncmVnYXRlZERhdGEoXG4gIHRoaXM6IENQVUFnZ3JlZ2F0b3IsXG4gIHN0ZXAsXG4gIHByb3BzLFxuICBhZ2dyZWdhdGlvbixcbiAgYWdncmVnYXRpb25QYXJhbXNcbikge1xuICBjb25zdCB7XG4gICAgdHJpZ2dlcnM6IHthZ2dyZWdhdG9yOiBhZ2dyfVxuICB9ID0gc3RlcDtcbiAgY29uc3QgYWdncmVnYXRvciA9IHByb3BzW2FnZ3IucHJvcF07XG5cbiAgLy8gcmVzdWx0IHNob3VsZCBjb250YWluIGEgZGF0YSBhcnJheSBhbmQgb3RoZXIgcHJvcHNcbiAgLy8gcmVzdWx0ID0ge2RhdGE6IFtdLCAuLi5vdGhlciBwcm9wc31cbiAgY29uc3QgcmVzdWx0ID0gYWdncmVnYXRvcihwcm9wcywgYWdncmVnYXRpb25QYXJhbXMpO1xuICB0aGlzLnNldFN0YXRlKHtcbiAgICBsYXllckRhdGE6IG5vcm1hbGl6ZVJlc3VsdChyZXN1bHQpXG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEFnZ3JlZ2F0aW9uOiBBZ2dyZWdhdGlvblR5cGUgPSB7XG4gIGtleTogJ3Bvc2l0aW9uJyxcbiAgdXBkYXRlU3RlcHM6IFtcbiAgICB7XG4gICAgICBrZXk6ICdhZ2dyZWdhdGUnLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgY2VsbFNpemU6IHtcbiAgICAgICAgICBwcm9wOiAnY2VsbFNpemUnXG4gICAgICAgIH0sXG4gICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgcHJvcDogJ2dldFBvc2l0aW9uJyxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnZ2V0UG9zaXRpb24nXG4gICAgICAgIH0sXG4gICAgICAgIGFnZ3JlZ2F0b3I6IHtcbiAgICAgICAgICBwcm9wOiAnZ3JpZEFnZ3JlZ2F0b3InXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1cGRhdGVyOiBnZXRBZ2dyZWdhdGVkRGF0YVxuICAgIH1cbiAgXVxufTtcblxuZnVuY3Rpb24gZ2V0U3ViTGF5ZXJBY2Nlc3NvcihkaW1lbnNpb25TdGF0ZSwgZGltZW5zaW9uLCBsYXllclByb3BzKSB7XG4gIHJldHVybiBjZWxsID0+IHtcbiAgICBjb25zdCB7c29ydGVkQmlucywgc2NhbGVGdW5jfSA9IGRpbWVuc2lvblN0YXRlO1xuICAgIGNvbnN0IGJpbiA9IHNvcnRlZEJpbnMuYmluTWFwW2NlbGwuaW5kZXhdO1xuXG4gICAgaWYgKGJpbiAmJiBiaW4uY291bnRzID09PSAwKSB7XG4gICAgICAvLyBubyBwb2ludHMgbGVmdCBpbiBiaW4gYWZ0ZXIgZmlsdGVyaW5nXG4gICAgICByZXR1cm4gZGltZW5zaW9uLm51bGxWYWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBjdiA9IGJpbiAmJiBiaW4udmFsdWU7XG4gICAgY29uc3QgZG9tYWluID0gc2NhbGVGdW5jLmRvbWFpbigpO1xuXG4gICAgY29uc3QgaXNWYWx1ZUluRG9tYWluID0gY3YgPj0gZG9tYWluWzBdICYmIGN2IDw9IGRvbWFpbltkb21haW4ubGVuZ3RoIC0gMV07XG5cbiAgICAvLyBpZiBjZWxsIHZhbHVlIGlzIG91dHNpZGUgZG9tYWluLCBzZXQgYWxwaGEgdG8gMFxuICAgIHJldHVybiBpc1ZhbHVlSW5Eb21haW4gPyBzY2FsZUZ1bmMoY3YpIDogZGltZW5zaW9uLm51bGxWYWx1ZTtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb2xvckRpbWVuc2lvbjogRGltZW5zaW9uVHlwZTxSR0JBQ29sb3I+ID0ge1xuICBrZXk6ICdmaWxsQ29sb3InLFxuICBhY2Nlc3NvcjogJ2dldEZpbGxDb2xvcicsXG4gIGdldFBpY2tpbmdJbmZvOiAoZGltZW5zaW9uU3RhdGUsIGNlbGwpID0+IHtcbiAgICBpZiAoIWNlbGwpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3Qge3NvcnRlZEJpbnN9ID0gZGltZW5zaW9uU3RhdGU7XG4gICAgY29uc3QgY29sb3JWYWx1ZSA9IHNvcnRlZEJpbnMuYmluTWFwW2NlbGwuaW5kZXhdICYmIHNvcnRlZEJpbnMuYmluTWFwW2NlbGwuaW5kZXhdLnZhbHVlO1xuICAgIHJldHVybiB7Y29sb3JWYWx1ZX07XG4gIH0sXG4gIG51bGxWYWx1ZTogWzAsIDAsIDAsIDBdLFxuICB1cGRhdGVTdGVwczogW1xuICAgIHtcbiAgICAgIGtleTogJ2dldFZhbHVlJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgcHJvcDogJ2dldENvbG9yVmFsdWUnLFxuICAgICAgICAgIHVwZGF0ZVRyaWdnZXI6ICdnZXRDb2xvclZhbHVlJ1xuICAgICAgICB9LFxuICAgICAgICB3ZWlnaHQ6IHtcbiAgICAgICAgICBwcm9wOiAnZ2V0Q29sb3JXZWlnaHQnLFxuICAgICAgICAgIHVwZGF0ZVRyaWdnZXI6ICdnZXRDb2xvcldlaWdodCdcbiAgICAgICAgfSxcbiAgICAgICAgYWdncmVnYXRpb246IHtcbiAgICAgICAgICBwcm9wOiAnY29sb3JBZ2dyZWdhdGlvbidcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVwZGF0ZXI6IGdldEdldFZhbHVlXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdnZXRCaW5zJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIF9maWx0ZXJEYXRhOiB7XG4gICAgICAgICAgcHJvcDogJ19maWx0ZXJEYXRhJyxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnX2ZpbHRlckRhdGEnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1cGRhdGVyOiBnZXREaW1lbnNpb25Tb3J0ZWRCaW5zXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdnZXREb21haW4nLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgbG93ZXJQZXJjZW50aWxlOiB7XG4gICAgICAgICAgcHJvcDogJ2xvd2VyUGVyY2VudGlsZSdcbiAgICAgICAgfSxcbiAgICAgICAgdXBwZXJQZXJjZW50aWxlOiB7XG4gICAgICAgICAgcHJvcDogJ3VwcGVyUGVyY2VudGlsZSdcbiAgICAgICAgfSxcbiAgICAgICAgc2NhbGVUeXBlOiB7cHJvcDogJ2NvbG9yU2NhbGVUeXBlJ31cbiAgICAgIH0sXG4gICAgICB1cGRhdGVyOiBnZXREaW1lbnNpb25WYWx1ZURvbWFpblxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZ2V0U2NhbGVGdW5jJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIGRvbWFpbjoge3Byb3A6ICdjb2xvckRvbWFpbid9LFxuICAgICAgICByYW5nZToge3Byb3A6ICdjb2xvclJhbmdlJ30sXG4gICAgICAgIHNjYWxlVHlwZToge3Byb3A6ICdjb2xvclNjYWxlVHlwZSd9XG4gICAgICB9LFxuICAgICAgb25TZXQ6IHtcbiAgICAgICAgcHJvcHM6ICdvblNldENvbG9yRG9tYWluJ1xuICAgICAgfSxcbiAgICAgIHVwZGF0ZXI6IGdldERpbWVuc2lvblNjYWxlXG4gICAgfVxuICBdLFxuICBnZXRTdWJMYXllckFjY2Vzc29yXG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdEVsZXZhdGlvbkRpbWVuc2lvbjogRGltZW5zaW9uVHlwZTxudW1iZXI+ID0ge1xuICBrZXk6ICdlbGV2YXRpb24nLFxuICBhY2Nlc3NvcjogJ2dldEVsZXZhdGlvbicsXG4gIGdldFBpY2tpbmdJbmZvOiAoZGltZW5zaW9uU3RhdGUsIGNlbGwpID0+IHtcbiAgICBpZiAoIWNlbGwpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3Qge3NvcnRlZEJpbnN9ID0gZGltZW5zaW9uU3RhdGU7XG4gICAgY29uc3QgZWxldmF0aW9uVmFsdWUgPSBzb3J0ZWRCaW5zLmJpbk1hcFtjZWxsLmluZGV4XSAmJiBzb3J0ZWRCaW5zLmJpbk1hcFtjZWxsLmluZGV4XS52YWx1ZTtcbiAgICByZXR1cm4ge2VsZXZhdGlvblZhbHVlfTtcbiAgfSxcbiAgbnVsbFZhbHVlOiAtMSxcbiAgdXBkYXRlU3RlcHM6IFtcbiAgICB7XG4gICAgICBrZXk6ICdnZXRWYWx1ZScsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIHByb3A6ICdnZXRFbGV2YXRpb25WYWx1ZScsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ2dldEVsZXZhdGlvblZhbHVlJ1xuICAgICAgICB9LFxuICAgICAgICB3ZWlnaHQ6IHtcbiAgICAgICAgICBwcm9wOiAnZ2V0RWxldmF0aW9uV2VpZ2h0JyxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnZ2V0RWxldmF0aW9uV2VpZ2h0J1xuICAgICAgICB9LFxuICAgICAgICBhZ2dyZWdhdGlvbjoge1xuICAgICAgICAgIHByb3A6ICdlbGV2YXRpb25BZ2dyZWdhdGlvbidcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVwZGF0ZXI6IGdldEdldFZhbHVlXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdnZXRCaW5zJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIF9maWx0ZXJEYXRhOiB7XG4gICAgICAgICAgcHJvcDogJ19maWx0ZXJEYXRhJyxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnX2ZpbHRlckRhdGEnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1cGRhdGVyOiBnZXREaW1lbnNpb25Tb3J0ZWRCaW5zXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdnZXREb21haW4nLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgbG93ZXJQZXJjZW50aWxlOiB7XG4gICAgICAgICAgcHJvcDogJ2VsZXZhdGlvbkxvd2VyUGVyY2VudGlsZSdcbiAgICAgICAgfSxcbiAgICAgICAgdXBwZXJQZXJjZW50aWxlOiB7XG4gICAgICAgICAgcHJvcDogJ2VsZXZhdGlvblVwcGVyUGVyY2VudGlsZSdcbiAgICAgICAgfSxcbiAgICAgICAgc2NhbGVUeXBlOiB7cHJvcDogJ2VsZXZhdGlvblNjYWxlVHlwZSd9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0RGltZW5zaW9uVmFsdWVEb21haW5cbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2dldFNjYWxlRnVuYycsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBkb21haW46IHtwcm9wOiAnZWxldmF0aW9uRG9tYWluJ30sXG4gICAgICAgIHJhbmdlOiB7cHJvcDogJ2VsZXZhdGlvblJhbmdlJ30sXG4gICAgICAgIHNjYWxlVHlwZToge3Byb3A6ICdlbGV2YXRpb25TY2FsZVR5cGUnfVxuICAgICAgfSxcbiAgICAgIG9uU2V0OiB7XG4gICAgICAgIHByb3BzOiAnb25TZXRFbGV2YXRpb25Eb21haW4nXG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0RGltZW5zaW9uU2NhbGVcbiAgICB9XG4gIF0sXG4gIGdldFN1YkxheWVyQWNjZXNzb3Jcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0RGltZW5zaW9ucyA9IFtkZWZhdWx0Q29sb3JEaW1lbnNpb24sIGRlZmF1bHRFbGV2YXRpb25EaW1lbnNpb25dO1xuXG5leHBvcnQgdHlwZSBDUFVBZ2dyZWdhdG9yU3RhdGUgPSB7bGF5ZXJEYXRhOiB7ZGF0YT99OyBkaW1lbnNpb25zOiB7fTsgZ2VvSlNPTj87IGNsdXN0ZXJCdWlsZGVyP307XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENQVUFnZ3JlZ2F0b3Ige1xuICBzdGF0aWMgZ2V0RGltZW5zaW9uU2NhbGU6IGFueTtcbiAgc3RhdGU6IENQVUFnZ3JlZ2F0b3JTdGF0ZTtcbiAgZGltZW5zaW9uVXBkYXRlcnM6IHtba2V5OiBzdHJpbmddOiBEaW1lbnNpb25UeXBlfTtcbiAgYWdncmVnYXRpb25VcGRhdGVyOiBBZ2dyZWdhdGlvblR5cGU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgb3B0czoge1xuICAgICAgaW5pdGlhbFN0YXRlPzogQ1BVQWdncmVnYXRvclN0YXRlO1xuICAgICAgZGltZW5zaW9ucz86IERpbWVuc2lvblR5cGVbXTtcbiAgICAgIGFnZ3JlZ2F0aW9uPzogQWdncmVnYXRpb25UeXBlO1xuICAgIH0gPSB7fVxuICApIHtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgbGF5ZXJEYXRhOiB7fSxcbiAgICAgIGRpbWVuc2lvbnM6IHtcbiAgICAgICAgLy8gY29sb3I6IHtcbiAgICAgICAgLy8gICBnZXRWYWx1ZTogbnVsbCxcbiAgICAgICAgLy8gICBkb21haW46IG51bGwsXG4gICAgICAgIC8vICAgc29ydGVkQmluczogbnVsbCxcbiAgICAgICAgLy8gICBzY2FsZUZ1bmM6IG5vcFxuICAgICAgICAvLyB9LFxuICAgICAgICAvLyBlbGV2YXRpb246IHtcbiAgICAgICAgLy8gICBnZXRWYWx1ZTogbnVsbCxcbiAgICAgICAgLy8gICBkb21haW46IG51bGwsXG4gICAgICAgIC8vICAgc29ydGVkQmluczogbnVsbCxcbiAgICAgICAgLy8gICBzY2FsZUZ1bmM6IG5vcFxuICAgICAgICAvLyB9XG4gICAgICB9LFxuICAgICAgLi4ub3B0cy5pbml0aWFsU3RhdGVcbiAgICB9O1xuXG4gICAgdGhpcy5kaW1lbnNpb25VcGRhdGVycyA9IHt9O1xuICAgIHRoaXMuYWdncmVnYXRpb25VcGRhdGVyID0gb3B0cy5hZ2dyZWdhdGlvbiB8fCBkZWZhdWx0QWdncmVnYXRpb247XG5cbiAgICB0aGlzLl9hZGREaW1lbnNpb24ob3B0cy5kaW1lbnNpb25zIHx8IGRlZmF1bHREaW1lbnNpb25zKTtcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0RGltZW5zaW9ucygpIHtcbiAgICByZXR1cm4gZGVmYXVsdERpbWVuc2lvbnM7XG4gIH1cblxuICB1cGRhdGVBbGxEaW1lbnNpb25zKHByb3BzKSB7XG4gICAgbGV0IGRpbWVuc2lvbkNoYW5nZXM6IEJpbmRlZFVwZGF0ZXJUeXBlW10gPSBbXTtcbiAgICAvLyB1cGRhdGUgYWxsIGRpbWVuc2lvbnNcbiAgICBmb3IgKGNvbnN0IGRpbSBpbiB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzKSB7XG4gICAgICBjb25zdCB1cGRhdGVycyA9IHRoaXMuX2FjY3VtdWxhdGVVcGRhdGVycygwLCBwcm9wcywgdGhpcy5kaW1lbnNpb25VcGRhdGVyc1tkaW1dKTtcbiAgICAgIGRpbWVuc2lvbkNoYW5nZXMgPSBkaW1lbnNpb25DaGFuZ2VzLmNvbmNhdCh1cGRhdGVycyk7XG4gICAgfVxuXG4gICAgZGltZW5zaW9uQ2hhbmdlcy5mb3JFYWNoKGYgPT4gdHlwZW9mIGYgPT09ICdmdW5jdGlvbicgJiYgZigpKTtcbiAgfVxuXG4gIHVwZGF0ZUFnZ3JlZ2F0aW9uKHByb3BzLCBhZ2dyZWdhdGlvblBhcmFtcykge1xuICAgIGNvbnN0IHVwZGF0ZXJzID0gdGhpcy5fYWNjdW11bGF0ZVVwZGF0ZXJzKDAsIHByb3BzLCB0aGlzLmFnZ3JlZ2F0aW9uVXBkYXRlcik7XG4gICAgdXBkYXRlcnMuZm9yRWFjaChmID0+IHR5cGVvZiBmID09PSAnZnVuY3Rpb24nICYmIGYoYWdncmVnYXRpb25QYXJhbXMpKTtcbiAgfVxuXG4gIHVwZGF0ZVN0YXRlKG9wdHMsIGFnZ3JlZ2F0aW9uUGFyYW1zKSB7XG4gICAgY29uc3Qge29sZFByb3BzLCBwcm9wcywgY2hhbmdlRmxhZ3N9ID0gb3B0cztcbiAgICBsZXQgZGltZW5zaW9uQ2hhbmdlczogQmluZGVkVXBkYXRlclR5cGVbXSA9IFtdO1xuXG4gICAgaWYgKGNoYW5nZUZsYWdzLmRhdGFDaGFuZ2VkKSB7XG4gICAgICAvLyBpZiBkYXRhIGNoYW5nZWQgdXBkYXRlIGV2ZXJ5dGhpbmdcbiAgICAgIHRoaXMudXBkYXRlQWdncmVnYXRpb24ocHJvcHMsIGFnZ3JlZ2F0aW9uUGFyYW1zKTtcbiAgICAgIHRoaXMudXBkYXRlQWxsRGltZW5zaW9ucyhwcm9wcyk7XG5cbiAgICAgIHJldHVybiB0aGlzLnN0YXRlO1xuICAgIH1cblxuICAgIGNvbnN0IGFnZ3JlZ2F0aW9uQ2hhbmdlcyA9IHRoaXMuX2dldEFnZ3JlZ2F0aW9uQ2hhbmdlcyhvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzKTtcblxuICAgIGlmIChhZ2dyZWdhdGlvbkNoYW5nZXMgJiYgYWdncmVnYXRpb25DaGFuZ2VzLmxlbmd0aCkge1xuICAgICAgLy8gZ2V0IGFnZ3JlZ2F0ZWREYXRhXG4gICAgICBhZ2dyZWdhdGlvbkNoYW5nZXMuZm9yRWFjaChmID0+IHR5cGVvZiBmID09PSAnZnVuY3Rpb24nICYmIGYoYWdncmVnYXRpb25QYXJhbXMpKTtcbiAgICAgIHRoaXMudXBkYXRlQWxsRGltZW5zaW9ucyhwcm9wcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIG9ubHkgdXBkYXRlIGRpbWVuc2lvbnNcbiAgICAgIGRpbWVuc2lvbkNoYW5nZXMgPSB0aGlzLl9nZXREaW1lbnNpb25DaGFuZ2VzKG9sZFByb3BzLCBwcm9wcywgY2hhbmdlRmxhZ3MpIHx8IFtdO1xuICAgICAgZGltZW5zaW9uQ2hhbmdlcy5mb3JFYWNoKGYgPT4gdHlwZW9mIGYgPT09ICdmdW5jdGlvbicgJiYgZigpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdGF0ZTtcbiAgfVxuXG4gIC8vIFVwZGF0ZSBwcml2YXRlIHN0YXRlXG4gIHNldFN0YXRlKHVwZGF0ZU9iamVjdCkge1xuICAgIHRoaXMuc3RhdGUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnN0YXRlLCB1cGRhdGVPYmplY3QpO1xuICB9XG5cbiAgLy8gVXBkYXRlIHByaXZhdGUgc3RhdGUuZGltZW5zaW9uc1xuICBfc2V0RGltZW5zaW9uU3RhdGUoa2V5LCB1cGRhdGVPYmplY3QpIHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGRpbWVuc2lvbnM6IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc3RhdGUuZGltZW5zaW9ucywge1xuICAgICAgICBba2V5XTogT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zdGF0ZS5kaW1lbnNpb25zW2tleV0sIHVwZGF0ZU9iamVjdClcbiAgICAgIH0pXG4gICAgfSk7XG4gIH1cblxuICBfYWRkQWdncmVnYXRpb24oYWdncmVnYXRpb246IEFnZ3JlZ2F0aW9uVHlwZSkge1xuICAgIHRoaXMuYWdncmVnYXRpb25VcGRhdGVyID0gYWdncmVnYXRpb247XG4gIH1cblxuICBfYWRkRGltZW5zaW9uKGRpbWVuc2lvbnM6IERpbWVuc2lvblR5cGVbXSA9IFtdKSB7XG4gICAgZGltZW5zaW9ucy5mb3JFYWNoKGRpbWVuc2lvbiA9PiB7XG4gICAgICBjb25zdCB7a2V5fSA9IGRpbWVuc2lvbjtcbiAgICAgIHRoaXMuZGltZW5zaW9uVXBkYXRlcnNba2V5XSA9IGRpbWVuc2lvbjtcbiAgICB9KTtcbiAgfVxuXG4gIF9uZWVkVXBkYXRlU3RlcChcbiAgICBkaW1lbnNpb25TdGVwOiBVcGRhdGVTdGVwc1R5cGUgfCBBZ2dyZWdhdGlvblVwZGF0ZVN0ZXBzVHlwZSxcbiAgICBvbGRQcm9wcyxcbiAgICBwcm9wcyxcbiAgICBjaGFuZ2VGbGFnc1xuICApIHtcbiAgICAvLyB3aGV0aGVyIG5lZWQgdG8gdXBkYXRlIGN1cnJlbnQgZGltZW5zaW9uIHN0ZXBcbiAgICAvLyBkaW1lbnNpb24gc3RlcCBpcyB0aGUgdmFsdWUsIGRvbWFpbiwgc2NhbGVGdW5jdGlvbiBvZiBlYWNoIGRpbWVuc2lvblxuICAgIC8vIGVhY2ggc3RlcCBpcyBhbiBvYmplY3Qgd2l0aCBwcm9wZXJ0aWVzIGxpbmtzIHRvIGxheWVyIHByb3AgYW5kIHdoZXRoZXIgdGhlIHByb3AgaXNcbiAgICAvLyBjb250cm9sbGVkIGJ5IHVwZGF0ZVRyaWdnZXJzXG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoZGltZW5zaW9uU3RlcC50cmlnZ2Vycykuc29tZShpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtLnVwZGF0ZVRyaWdnZXIpIHtcbiAgICAgICAgLy8gY2hlY2sgYmFzZWQgb24gdXBkYXRlVHJpZ2dlcnMgY2hhbmdlIGZpcnN0XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgY2hhbmdlRmxhZ3MudXBkYXRlVHJpZ2dlcnNDaGFuZ2VkICYmXG4gICAgICAgICAgKGNoYW5nZUZsYWdzLnVwZGF0ZVRyaWdnZXJzQ2hhbmdlZC5hbGwgfHxcbiAgICAgICAgICAgIGNoYW5nZUZsYWdzLnVwZGF0ZVRyaWdnZXJzQ2hhbmdlZFtpdGVtLnVwZGF0ZVRyaWdnZXJdKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgLy8gZmFsbGJhY2sgdG8gZGlyZWN0IGNvbXBhcmlzb25cbiAgICAgIHJldHVybiBvbGRQcm9wc1tpdGVtLnByb3BdICE9PSBwcm9wc1tpdGVtLnByb3BdO1xuICAgIH0pO1xuICB9XG5cbiAgX2FjY3VtdWxhdGVVcGRhdGVyczxVcGRhdGVyT2JqZWN0VHlwZSBleHRlbmRzIERpbWVuc2lvblR5cGUgfCBBZ2dyZWdhdGlvblR5cGU+KFxuICAgIHN0ZXAsXG4gICAgcHJvcHMsXG4gICAgZGltZW5zaW9uOiBVcGRhdGVyT2JqZWN0VHlwZVxuICApIHtcbiAgICB0eXBlIExvY2FsVXBkYXRlclR5cGUgPSBVcGRhdGVyT2JqZWN0VHlwZSBleHRlbmRzIERpbWVuc2lvblR5cGVcbiAgICAgID8gQmluZGVkVXBkYXRlclR5cGVcbiAgICAgIDogQmluZGVkQWdncmVnYXRlZFVwZGF0ZXJUeXBlO1xuICAgIGNvbnN0IHVwZGF0ZXJzOiBMb2NhbFVwZGF0ZXJUeXBlW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gc3RlcDsgaSA8IGRpbWVuc2lvbi51cGRhdGVTdGVwcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgdXBkYXRlciA9IGRpbWVuc2lvbi51cGRhdGVTdGVwc1tpXS51cGRhdGVyO1xuICAgICAgaWYgKHR5cGVvZiB1cGRhdGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHVwZGF0ZXJzLnB1c2goXG4gICAgICAgICAgdXBkYXRlci5iaW5kKHRoaXMsIGRpbWVuc2lvbi51cGRhdGVTdGVwc1tpXSwgcHJvcHMsIGRpbWVuc2lvbikgYXMgTG9jYWxVcGRhdGVyVHlwZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1cGRhdGVycztcbiAgfVxuXG4gIF9nZXRBbGxVcGRhdGVyczxVcGRhdGVyT2JqZWN0VHlwZSBleHRlbmRzIERpbWVuc2lvblR5cGUgfCBBZ2dyZWdhdGlvblR5cGU+KFxuICAgIGRpbWVuc2lvbjogVXBkYXRlck9iamVjdFR5cGUsXG4gICAgb2xkUHJvcHMsXG4gICAgcHJvcHMsXG4gICAgY2hhbmdlRmxhZ3NcbiAgKSB7XG4gICAgdHlwZSBMb2NhbFVwZGF0ZXJUeXBlID0gVXBkYXRlck9iamVjdFR5cGUgZXh0ZW5kcyBEaW1lbnNpb25UeXBlXG4gICAgICA/IEJpbmRlZFVwZGF0ZXJUeXBlXG4gICAgICA6IEJpbmRlZEFnZ3JlZ2F0ZWRVcGRhdGVyVHlwZTtcbiAgICBsZXQgdXBkYXRlcnM6IExvY2FsVXBkYXRlclR5cGVbXSA9IFtdO1xuICAgIGNvbnN0IG5lZWRVcGRhdGVTdGVwID0gZGltZW5zaW9uLnVwZGF0ZVN0ZXBzLmZpbmRJbmRleChzdGVwID0+XG4gICAgICB0aGlzLl9uZWVkVXBkYXRlU3RlcChzdGVwLCBvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzKVxuICAgICk7XG5cbiAgICBpZiAobmVlZFVwZGF0ZVN0ZXAgPiAtMSkge1xuICAgICAgdXBkYXRlcnMgPSB1cGRhdGVycy5jb25jYXQodGhpcy5fYWNjdW11bGF0ZVVwZGF0ZXJzKG5lZWRVcGRhdGVTdGVwLCBwcm9wcywgZGltZW5zaW9uKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVwZGF0ZXJzO1xuICB9XG5cbiAgX2dldEFnZ3JlZ2F0aW9uQ2hhbmdlcyhvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzKSB7XG4gICAgY29uc3QgdXBkYXRlcnMgPSB0aGlzLl9nZXRBbGxVcGRhdGVycyh0aGlzLmFnZ3JlZ2F0aW9uVXBkYXRlciwgb2xkUHJvcHMsIHByb3BzLCBjaGFuZ2VGbGFncyk7XG4gICAgcmV0dXJuIHVwZGF0ZXJzLmxlbmd0aCA/IHVwZGF0ZXJzIDogbnVsbDtcbiAgfVxuXG4gIF9nZXREaW1lbnNpb25DaGFuZ2VzKG9sZFByb3BzLCBwcm9wcywgY2hhbmdlRmxhZ3MpIHtcbiAgICBsZXQgdXBkYXRlcnM6IEJpbmRlZFVwZGF0ZXJUeXBlW10gPSBbXTtcblxuICAgIC8vIGdldCBkaW1lbnNpb24gdG8gYmUgdXBkYXRlZFxuICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuZGltZW5zaW9uVXBkYXRlcnMpIHtcbiAgICAgIC8vIHJldHVybiB0aGUgZmlyc3QgdHJpZ2dlcmVkIHVwZGF0ZXIgZm9yIGVhY2ggZGltZW5zaW9uXG4gICAgICBjb25zdCBkaW1lbnNpb24gPSB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzW2tleV07XG4gICAgICBjb25zdCBkaW1lbnNpb25VcGRhdGVycyA9IHRoaXMuX2dldEFsbFVwZGF0ZXJzKGRpbWVuc2lvbiwgb2xkUHJvcHMsIHByb3BzLCBjaGFuZ2VGbGFncyk7XG4gICAgICB1cGRhdGVycyA9IHVwZGF0ZXJzLmNvbmNhdChkaW1lbnNpb25VcGRhdGVycyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVwZGF0ZXJzLmxlbmd0aCA/IHVwZGF0ZXJzIDogbnVsbDtcbiAgfVxuXG4gIGdldFVwZGF0ZVRyaWdnZXJzKHByb3BzKSB7XG4gICAgY29uc3QgX3VwZGF0ZVRyaWdnZXJzID0gcHJvcHMudXBkYXRlVHJpZ2dlcnMgfHwge307XG4gICAgY29uc3QgdXBkYXRlVHJpZ2dlcnMgPSB7fTtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuZGltZW5zaW9uVXBkYXRlcnMpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYWNjZXNzb3IsXG4gICAgICAgIHVwZGF0ZVN0ZXBzXG4gICAgICB9OiB7YWNjZXNzb3I7IHVwZGF0ZVN0ZXBzOiBVcGRhdGVTdGVwc1R5cGVbXX0gPSB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzW2tleV07XG4gICAgICAvLyBmb2xkIGRpbWVuc2lvbiB0cmlnZ2VycyBpbnRvIGVhY2ggYWNjZXNzb3JcbiAgICAgIHVwZGF0ZVRyaWdnZXJzW2FjY2Vzc29yXSA9IHt9O1xuXG4gICAgICB1cGRhdGVTdGVwcy5mb3JFYWNoKHN0ZXAgPT4ge1xuICAgICAgICBPYmplY3QudmFsdWVzKHN0ZXAudHJpZ2dlcnMgfHwgW10pLmZvckVhY2goKHtwcm9wLCB1cGRhdGVUcmlnZ2VyfSkgPT4ge1xuICAgICAgICAgIGlmICh1cGRhdGVUcmlnZ2VyKSB7XG4gICAgICAgICAgICAvLyBpZiBwcm9wIGlzIGJhc2VkIG9uIHVwZGF0ZVRyaWdnZXIgZS5nLiBnZXRDb2xvclZhbHVlLCBnZXRDb2xvcldlaWdodFxuICAgICAgICAgICAgLy8gYW5kIHVwZGF0ZVRyaWdnZXJzIGlzIHBhc3NlZCBpbiBmcm9tIGxheWVyIHByb3BcbiAgICAgICAgICAgIC8vIGZvbGQgdGhlIHVwZGF0ZVRyaWdnZXJzIGludG8gYWNjZXNzb3JcbiAgICAgICAgICAgIGNvbnN0IGZyb21Qcm9wID0gX3VwZGF0ZVRyaWdnZXJzW3VwZGF0ZVRyaWdnZXJdO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBmcm9tUHJvcCA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoZnJvbVByb3ApKSB7XG4gICAgICAgICAgICAgIC8vIGlmIHVwZGF0ZVRyaWdnZXIgaXMgYW4gb2JqZWN0IHNwcmVhZCBpdFxuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHVwZGF0ZVRyaWdnZXJzW2FjY2Vzc29yXSwgZnJvbVByb3ApO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmcm9tUHJvcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIHVwZGF0ZVRyaWdnZXJzW2FjY2Vzc29yXVtwcm9wXSA9IGZyb21Qcm9wO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBpZiBwcm9wIGlzIG5vdCBiYXNlZCBvbiB1cGRhdGVUcmlnZ2VyXG4gICAgICAgICAgICB1cGRhdGVUcmlnZ2Vyc1thY2Nlc3Nvcl1bcHJvcF0gPSBwcm9wc1twcm9wXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVwZGF0ZVRyaWdnZXJzO1xuICB9XG5cbiAgZ2V0UGlja2luZ0luZm8oe2luZm99LCBsYXllclByb3BzKSB7XG4gICAgY29uc3QgaXNQaWNrZWQgPSBpbmZvLnBpY2tlZCAmJiBpbmZvLmluZGV4ID4gLTE7XG4gICAgbGV0IG9iamVjdCA9IG51bGw7XG4gICAgY29uc3QgY2VsbCA9IGlzUGlja2VkID8gdGhpcy5zdGF0ZS5sYXllckRhdGEuZGF0YVtpbmZvLmluZGV4XSA6IG51bGw7XG4gICAgaWYgKGNlbGwpIHtcbiAgICAgIGxldCBiaW5JbmZvID0ge307XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzKSB7XG4gICAgICAgIGNvbnN0IHtnZXRQaWNraW5nSW5mb30gPSB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzW2tleV07XG4gICAgICAgIGlmICh0eXBlb2YgZ2V0UGlja2luZ0luZm8gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBiaW5JbmZvID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgYmluSW5mbyxcbiAgICAgICAgICAgIGdldFBpY2tpbmdJbmZvKHRoaXMuc3RhdGUuZGltZW5zaW9uc1trZXldLCBjZWxsLCBsYXllclByb3BzKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgb2JqZWN0ID0gT2JqZWN0LmFzc2lnbihiaW5JbmZvLCBjZWxsLCB7XG4gICAgICAgIHBvaW50czogY2VsbC5maWx0ZXJlZFBvaW50cyB8fCBjZWxsLnBvaW50c1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gYWRkIGJpbiAgYW5kICB0byBpbmZvXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oaW5mbywge1xuICAgICAgcGlja2VkOiBCb29sZWFuKG9iamVjdCksXG4gICAgICAvLyBvdmVycmlkZSBvYmplY3Qgd2l0aCBwaWNrZWQgY2VsbFxuICAgICAgb2JqZWN0XG4gICAgfSk7XG4gIH1cblxuICBnZXRBY2Nlc3NvcihkaW1lbnNpb25LZXksIGxheWVyUHJvcHMpIHtcbiAgICBpZiAoIXRoaXMuZGltZW5zaW9uVXBkYXRlcnMuaGFzT3duUHJvcGVydHkoZGltZW5zaW9uS2V5KSkge1xuICAgICAgcmV0dXJuIG5vcDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGltZW5zaW9uVXBkYXRlcnNbZGltZW5zaW9uS2V5XS5nZXRTdWJMYXllckFjY2Vzc29yKFxuICAgICAgdGhpcy5zdGF0ZS5kaW1lbnNpb25zW2RpbWVuc2lvbktleV0sXG4gICAgICB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzW2RpbWVuc2lvbktleV0sXG4gICAgICBsYXllclByb3BzXG4gICAgKTtcbiAgfVxufVxuXG5DUFVBZ2dyZWdhdG9yLmdldERpbWVuc2lvblNjYWxlID0gZ2V0RGltZW5zaW9uU2NhbGU7XG4iXX0=
|
@@ -1,23 +1,3 @@
|
|
1
|
-
// Copyright (c) 2022 Uber Technologies, Inc.
|
2
|
-
//
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
8
|
-
// furnished to do so, subject to the following conditions:
|
9
|
-
//
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
11
|
-
// all copies or substantial portions of the Software.
|
12
|
-
//
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
// THE SOFTWARE.
|
20
|
-
|
21
1
|
"use strict";
|
22
2
|
|
23
3
|
Object.defineProperty(exports, "__esModule", {
|
@@ -25,7 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
25
5
|
});
|
26
6
|
exports.editShader = editShader;
|
27
7
|
|
28
|
-
var _window = require("global/window")
|
8
|
+
var _window = require("global/window");
|
9
|
+
|
10
|
+
// SPDX-License-Identifier: MIT
|
11
|
+
// Copyright contributors to the kepler.gl project
|
12
|
+
|
13
|
+
/*
|
29
14
|
* Amendment to default layer vertex shader
|
30
15
|
* @param {string} vs
|
31
16
|
* @param {string} type
|
@@ -45,4 +30,4 @@ function editShader(vs, type, originalText, testToReplace) {
|
|
45
30
|
|
46
31
|
return vs.replace(originalText, testToReplace);
|
47
32
|
}
|
48
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllci11dGlscy9zaGFkZXItdXRpbHMudHMiXSwibmFtZXMiOlsiZWRpdFNoYWRlciIsInZzIiwidHlwZSIsIm9yaWdpbmFsVGV4dCIsInRlc3RUb1JlcGxhY2UiLCJpbmNsdWRlcyIsIkNvbnNvbGUiLCJlcnJvciIsInJlcGxhY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFHQTs7QUFIQTtBQUNBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNBLFVBQVQsQ0FBb0JDLEVBQXBCLEVBQWdDQyxJQUFoQyxFQUE4Q0MsWUFBOUMsRUFBb0VDLGFBQXBFLEVBQTJGO0FBQ2hHLE1BQUksQ0FBQ0gsRUFBRSxDQUFDSSxRQUFILENBQVlGLFlBQVosQ0FBTCxFQUFnQztBQUM5QjtBQUNBO0FBQ0FHLG9CQUFRQyxLQUFSLHVCQUE2QkwsSUFBN0I7O0FBQ0EsV0FBT0QsRUFBUDtBQUNEOztBQUVELFNBQU9BLEVBQUUsQ0FBQ08sT0FBSCxDQUFXTCxZQUFYLEVBQXlCQyxhQUF6QixDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge2NvbnNvbGUgYXMgQ29uc29sZX0gZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5cbi8qXG4gKiBBbWVuZG1lbnQgdG8gZGVmYXVsdCBsYXllciB2ZXJ0ZXggc2hhZGVyXG4gKiBAcGFyYW0ge3N0cmluZ30gdnNcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlXG4gKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luYWxUZXh0XG4gKiBAcGFyYW0ge3N0cmluZ30gdGVzdFRvUmVwbGFjZVxuICogQHJldHVybiB7c3RyaW5nfSBvdXRwdXQgc2hhZGVyXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZWRpdFNoYWRlcih2czogc3RyaW5nLCB0eXBlOiBzdHJpbmcsIG9yaWdpbmFsVGV4dDogc3RyaW5nLCB0ZXN0VG9SZXBsYWNlOiBzdHJpbmcpIHtcbiAgaWYgKCF2cy5pbmNsdWRlcyhvcmlnaW5hbFRleHQpKSB7XG4gICAgLy8gSGVyZSB3ZSBjYWxsIENvbnNvbGUuZXJyb3Igd2hlbiB3ZSBmYWlsIHRvIGVkaXQgZGVjay5nbCBzaGFkZXJcbiAgICAvLyBUaGlzIHNob3VsZCBiZSBjYXVnaHQgYnkgbGF5ZXIgdGVzdFxuICAgIENvbnNvbGUuZXJyb3IoYENhbm5vdCBlZGl0ICR7dHlwZX0gbGF5ZXIgc2hhZGVyYCk7XG4gICAgcmV0dXJuIHZzO1xuICB9XG5cbiAgcmV0dXJuIHZzLnJlcGxhY2Uob3JpZ2luYWxUZXh0LCB0ZXN0VG9SZXBsYWNlKTtcbn1cbiJdfQ==
|
@@ -1,23 +1,3 @@
|
|
1
|
-
// Copyright (c) 2022 Uber Technologies, Inc.
|
2
|
-
//
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
8
|
-
// furnished to do so, subject to the following conditions:
|
9
|
-
//
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
11
|
-
// all copies or substantial portions of the Software.
|
12
|
-
//
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
// THE SOFTWARE.
|
20
|
-
|
21
1
|
"use strict";
|
22
2
|
|
23
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
@@ -129,4 +109,4 @@ var EnhancedLineLayer = /*#__PURE__*/function (_LineLayer) {
|
|
129
109
|
exports["default"] = EnhancedLineLayer;
|
130
110
|
EnhancedLineLayer.layerName = 'EnhancedLineLayer';
|
131
111
|
EnhancedLineLayer.defaultProps = defaultProps;
|
132
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
112
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saW5lLWxheWVyL2xpbmUtbGF5ZXIudHMiXSwibmFtZXMiOlsiZGVmYXVsdFByb3BzIiwiTGluZUxheWVyIiwiZ2V0VGFyZ2V0Q29sb3IiLCJ4IiwiY29sb3IiLCJhZGRJbnN0YW5jZUNvbG9yU2hhZGVyIiwidnMiLCJ0YXJnZXRDb2xvclZzIiwiYWRkRWxldmF0aW9uU2NhbGUiLCJlbGV2YXRpb25WcyIsIkVuaGFuY2VkTGluZUxheWVyIiwic2hhZGVycyIsInVuaWZvcm1zIiwiZWxldmF0aW9uU2NhbGUiLCJwcm9wcyIsInVuZGVmaW5lZCIsImF0dHJpYnV0ZU1hbmFnZXIiLCJzdGF0ZSIsImFkZEluc3RhbmNlZCIsImluc3RhbmNlVGFyZ2V0Q29sb3JzIiwic2l6ZSIsImNvbG9yRm9ybWF0IiwibGVuZ3RoIiwidHlwZSIsIkdMIiwiVU5TSUdORURfQllURSIsIm5vcm1hbGl6ZWQiLCJ0cmFuc2l0aW9uIiwiYWNjZXNzb3IiLCJkZWZhdWx0VmFsdWUiLCJsYXllck5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0E7O0FBQ0E7O0FBRUE7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxZQUFZLG1DQUNiQyxrQkFBVUQsWUFERztBQUVoQkUsRUFBQUEsY0FBYyxFQUFFLHdCQUFBQyxDQUFDO0FBQUEsV0FBSUEsQ0FBQyxDQUFDQyxLQUFGLElBQVcsQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBVSxHQUFWLENBQWY7QUFBQTtBQUZELEVBQWxCOztBQUtBLFNBQVNDLHNCQUFULENBQWdDQyxFQUFoQyxFQUFvQztBQUNsQyxNQUFNQyxhQUFhLEdBQUcsa0JBQ3BCRCxFQURvQixFQUVwQixzQkFGb0IsRUFHcEIsZ0NBSG9CLEVBSXBCLHFFQUpvQixDQUF0QjtBQU9BLFNBQU8sa0JBQ0xDLGFBREssRUFFTCxlQUZLLEVBR0wsZ0VBSEssRUFJTCx1SEFKSyxDQUFQO0FBT0Q7O0FBRUQsU0FBU0MsaUJBQVQsQ0FBMkJGLEVBQTNCLEVBQStCO0FBQzdCLE1BQUlHLFdBQVcsR0FBRyxrQkFDaEJILEVBRGdCLEVBRWhCLG9EQUZnQixFQUdoQiwrQkFIZ0Isc0VBQWxCO0FBUUFHLEVBQUFBLFdBQVcsR0FBRyxrQkFDWkEsV0FEWSxFQUVaLHlEQUZZLHFZQUFkO0FBY0FBLEVBQUFBLFdBQVcsR0FBRyxrQkFDWkEsV0FEWSxFQUVaLDJCQUZZLGtHQUtaLEVBTFksQ0FBZDtBQVFBLFNBQU9BLFdBQVA7QUFDRDs7SUFFb0JDLGlCOzs7Ozs7Ozs7Ozs7V0FJbkIsc0JBQWE7QUFDWCxVQUFNQyxPQUFPLHNIQUFiO0FBRUEsVUFBSUwsRUFBRSxHQUFHRCxzQkFBc0IsQ0FBQ00sT0FBTyxDQUFDTCxFQUFULENBQS9CO0FBQ0FBLE1BQUFBLEVBQUUsR0FBR0UsaUJBQWlCLENBQUNGLEVBQUQsQ0FBdEI7QUFFQSw2Q0FDS0ssT0FETDtBQUVFTCxRQUFBQSxFQUFFLEVBQUZBO0FBRkY7QUFJRDs7O1dBRUQsb0JBQWlCO0FBQUEsVUFBWE0sUUFBVyxRQUFYQSxRQUFXO0FBQUEsVUFDUkMsY0FEUSxHQUNVLEtBQUtDLEtBRGYsQ0FDUkQsY0FEUTtBQUVmLG9IQUFXO0FBQUNELFFBQUFBLFFBQVEsa0NBQU1BLFFBQU47QUFBZ0JDLFVBQUFBLGNBQWMsRUFBZEE7QUFBaEI7QUFBVCxPQUFYO0FBQ0Q7OztXQUVELDJCQUFrQjtBQUFBOztBQUNoQiwrSEFBc0JFLFNBQXRCO0FBRGdCLFVBRVRDLGdCQUZTLEdBRVcsS0FBS0MsS0FGaEIsQ0FFVEQsZ0JBRlM7QUFHaEJBLE1BQUFBLGdCQUFnQixDQUFDRSxZQUFqQixDQUE4QjtBQUM1QkMsUUFBQUEsb0JBQW9CLEVBQUU7QUFDcEJDLFVBQUFBLElBQUksMkJBQUUsS0FBS04sS0FBTCxDQUFXTyxXQUFiLDBEQUFFLHNCQUF3QkMsTUFEVjtBQUVwQkMsVUFBQUEsSUFBSSxFQUFFQyxzQkFBR0MsYUFGVztBQUdwQkMsVUFBQUEsVUFBVSxFQUFFLElBSFE7QUFJcEJDLFVBQUFBLFVBQVUsRUFBRSxJQUpRO0FBS3BCQyxVQUFBQSxRQUFRLEVBQUUsZ0JBTFU7QUFNcEJDLFVBQUFBLFlBQVksRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLEdBQVY7QUFOTTtBQURNLE9BQTlCO0FBVUQ7OztFQWxDNEM1QixpQjs7O0FBcUMvQ1MsaUJBQWlCLENBQUNvQixTQUFsQixHQUE4QixtQkFBOUI7QUFDQXBCLGlCQUFpQixDQUFDVixZQUFsQixHQUFpQ0EsWUFBakMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0xpbmVMYXllciwgTGluZUxheWVyUHJvcHN9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQgR0wgZnJvbSAnQGx1bWEuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7UkdCQUNvbG9yfSBmcm9tICdkZWNrLmdsJztcbmltcG9ydCB7ZWRpdFNoYWRlcn0gZnJvbSAnLi4vJztcblxuY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICAuLi5MaW5lTGF5ZXIuZGVmYXVsdFByb3BzLFxuICBnZXRUYXJnZXRDb2xvcjogeCA9PiB4LmNvbG9yIHx8IFswLCAwLCAwLCAyNTVdXG59O1xuXG5mdW5jdGlvbiBhZGRJbnN0YW5jZUNvbG9yU2hhZGVyKHZzKSB7XG4gIGNvbnN0IHRhcmdldENvbG9yVnMgPSBlZGl0U2hhZGVyKFxuICAgIHZzLFxuICAgICdsaW5lIHRhcmdldCBjb2xvciB2cycsXG4gICAgJ2F0dHJpYnV0ZSB2ZWM0IGluc3RhbmNlQ29sb3JzOycsXG4gICAgJ2F0dHJpYnV0ZSB2ZWM0IGluc3RhbmNlQ29sb3JzOyBhdHRyaWJ1dGUgdmVjNCBpbnN0YW5jZVRhcmdldENvbG9yczsnXG4gICk7XG5cbiAgcmV0dXJuIGVkaXRTaGFkZXIoXG4gICAgdGFyZ2V0Q29sb3JWcyxcbiAgICAnbGluZSBjb2xvciB2cycsXG4gICAgJ3ZDb2xvciA9IHZlYzQoaW5zdGFuY2VDb2xvcnMucmdiLCBpbnN0YW5jZUNvbG9ycy5hICogb3BhY2l0eSk7JyxcbiAgICBgdmVjNCBjb2xvciA9IG1peChpbnN0YW5jZUNvbG9ycywgaW5zdGFuY2VUYXJnZXRDb2xvcnMsIHBvc2l0aW9ucy54KTtgICtcbiAgICAgIGB2Q29sb3IgPSB2ZWM0KGNvbG9yLnJnYiwgY29sb3IuYSAqIG9wYWNpdHkpO2BcbiAgKTtcbn1cblxuZnVuY3Rpb24gYWRkRWxldmF0aW9uU2NhbGUodnMpIHtcbiAgbGV0IGVsZXZhdGlvblZzID0gZWRpdFNoYWRlcihcbiAgICB2cyxcbiAgICAnbGluZSBlbGV2YXRpb24gc2NhbGUgMSB2cyAtIGluamVjdCBlbGV2YXRpb24gc2NhbGUnLFxuICAgICd1bmlmb3JtIGZsb2F0IHdpZHRoTWF4UGl4ZWxzOycsXG4gICAgYHVuaWZvcm0gZmxvYXQgd2lkdGhNYXhQaXhlbHM7XG4gICAgIHVuaWZvcm0gZmxvYXQgZWxldmF0aW9uU2NhbGU7YFxuICApO1xuXG4gIGVsZXZhdGlvblZzID0gZWRpdFNoYWRlcihcbiAgICBlbGV2YXRpb25WcyxcbiAgICAnbGluZSBlbGV2YXRpb24gc2NhbGUgMiB2cyAtIG11bHRpcGx5IGJ5IGVsZXZhdGlvbiBzY2FsZScsXG4gICAgYGdlb21ldHJ5LndvcmxkUG9zaXRpb24gPSBpbnN0YW5jZVNvdXJjZVBvc2l0aW9ucztcbiAgZ2VvbWV0cnkud29ybGRQb3NpdGlvbkFsdCA9IGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zO2AsXG4gICAgYHZlYzMgc291cmNlX3dvcmxkID0gaW5zdGFuY2VTb3VyY2VQb3NpdGlvbnM7XG4gICAgIHZlYzMgdGFyZ2V0X3dvcmxkID0gaW5zdGFuY2VUYXJnZXRQb3NpdGlvbnM7XG4gICAgIHNvdXJjZV93b3JsZC56ICo9IGVsZXZhdGlvblNjYWxlO1xuICAgICB0YXJnZXRfd29ybGQueiAqPSBlbGV2YXRpb25TY2FsZTtcbiAgICAgXG4gICAgIGdlb21ldHJ5LndvcmxkUG9zaXRpb24gPSBzb3VyY2Vfd29ybGQ7XG4gICAgIGdlb21ldHJ5LndvcmxkUG9zaXRpb25BbHQgPSB0YXJnZXRfd29ybGQ7YFxuICApO1xuXG4gIGVsZXZhdGlvblZzID0gZWRpdFNoYWRlcihcbiAgICBlbGV2YXRpb25WcyxcbiAgICAnbGluZSBlbGV2YXRpb24gc2NhbGUgMyB2cycsXG4gICAgYHZlYzMgc291cmNlX3dvcmxkID0gaW5zdGFuY2VTb3VyY2VQb3NpdGlvbnM7XG4gIHZlYzMgdGFyZ2V0X3dvcmxkID0gaW5zdGFuY2VUYXJnZXRQb3NpdGlvbnM7YCxcbiAgICAnJ1xuICApO1xuXG4gIHJldHVybiBlbGV2YXRpb25Wcztcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW5oYW5jZWRMaW5lTGF5ZXIgZXh0ZW5kcyBMaW5lTGF5ZXI8XG4gIGFueSxcbiAgTGluZUxheWVyUHJvcHM8YW55PiAmIHtlbGV2YXRpb25TY2FsZTogbnVtYmVyOyBnZXRUYXJnZXRDb2xvcjogUkdCQUNvbG9yfVxuPiB7XG4gIGdldFNoYWRlcnMoKSB7XG4gICAgY29uc3Qgc2hhZGVycyA9IHN1cGVyLmdldFNoYWRlcnMoKTtcblxuICAgIGxldCB2cyA9IGFkZEluc3RhbmNlQ29sb3JTaGFkZXIoc2hhZGVycy52cyk7XG4gICAgdnMgPSBhZGRFbGV2YXRpb25TY2FsZSh2cyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc2hhZGVycyxcbiAgICAgIHZzXG4gICAgfTtcbiAgfVxuXG4gIGRyYXcoe3VuaWZvcm1zfSkge1xuICAgIGNvbnN0IHtlbGV2YXRpb25TY2FsZX0gPSB0aGlzLnByb3BzO1xuICAgIHN1cGVyLmRyYXcoe3VuaWZvcm1zOiB7Li4udW5pZm9ybXMsIGVsZXZhdGlvblNjYWxlfX0pO1xuICB9XG5cbiAgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIHN1cGVyLmluaXRpYWxpemVTdGF0ZSh1bmRlZmluZWQpO1xuICAgIGNvbnN0IHthdHRyaWJ1dGVNYW5hZ2VyfSA9IHRoaXMuc3RhdGU7XG4gICAgYXR0cmlidXRlTWFuYWdlci5hZGRJbnN0YW5jZWQoe1xuICAgICAgaW5zdGFuY2VUYXJnZXRDb2xvcnM6IHtcbiAgICAgICAgc2l6ZTogdGhpcy5wcm9wcy5jb2xvckZvcm1hdD8ubGVuZ3RoLFxuICAgICAgICB0eXBlOiBHTC5VTlNJR05FRF9CWVRFLFxuICAgICAgICBub3JtYWxpemVkOiB0cnVlLFxuICAgICAgICB0cmFuc2l0aW9uOiB0cnVlLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldFRhcmdldENvbG9yJyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBbMCwgMCwgMCwgMjU1XVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbkVuaGFuY2VkTGluZUxheWVyLmxheWVyTmFtZSA9ICdFbmhhbmNlZExpbmVMYXllcic7XG5FbmhhbmNlZExpbmVMYXllci5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG4iXX0=
|
@@ -1,23 +1,3 @@
|
|
1
|
-
// Copyright (c) 2022 Uber Technologies, Inc.
|
2
|
-
//
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
8
|
-
// furnished to do so, subject to the following conditions:
|
9
|
-
//
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
11
|
-
// all copies or substantial portions of the Software.
|
12
|
-
//
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
// THE SOFTWARE.
|
20
|
-
|
21
1
|
"use strict";
|
22
2
|
|
23
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
@@ -96,4 +76,4 @@ var ScatterplotIconLayer = /*#__PURE__*/function (_ScatterplotLayer) {
|
|
96
76
|
|
97
77
|
exports["default"] = ScatterplotIconLayer;
|
98
78
|
ScatterplotIconLayer.layerName = 'ScatterplotIconLayer';
|
99
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
79
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdmctaWNvbi1sYXllci9zY2F0dGVycGxvdC1pY29uLWxheWVyLnRzIl0sIm5hbWVzIjpbIkRFRkFVTFRfUE9TIiwiU2NhdHRlcnBsb3RJY29uTGF5ZXIiLCJnbCIsInNoYWRlcnMiLCJnZXRTaGFkZXJzIiwidW5kZWZpbmVkIiwiaWNvbkdlb21ldHJ5IiwicHJvcHMiLCJnZW9tZXRyeSIsIkdlb21ldHJ5IiwiZHJhd01vZGUiLCJHTCIsIlRSSUFOR0xFUyIsImF0dHJpYnV0ZXMiLCJwb3NpdGlvbnMiLCJGbG9hdDMyQXJyYXkiLCJUUklBTkdMRV9GQU4iLCJNb2RlbCIsImlkIiwiaXNJbnN0YW5jZWQiLCJzaGFkZXJDYWNoZSIsImNvbnRleHQiLCJTY2F0dGVycGxvdExheWVyIiwibGF5ZXJOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBRixFQUFLLENBQUMsQ0FBTixFQUFTLENBQVQsRUFBWSxDQUFDLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkIsRUFBc0IsQ0FBdEIsRUFBeUIsQ0FBekIsRUFBNEIsQ0FBNUIsRUFBK0IsQ0FBL0IsRUFBa0MsQ0FBQyxDQUFuQyxFQUFzQyxDQUF0QyxDQUFwQjs7SUFNcUJDLG9COzs7Ozs7Ozs7Ozs7V0FDbkIsbUJBQVVDLEVBQVYsRUFBcUM7QUFDbkM7QUFDQSxVQUFNQyxPQUFPLEdBQUcsS0FBS0MsVUFBTCxDQUFnQkMsU0FBaEIsQ0FBaEI7QUFGbUMsVUFJNUJDLFlBSjRCLEdBSVosS0FBS0MsS0FKTyxDQUk1QkQsWUFKNEI7QUFNbkMsVUFBTUUsUUFBUSxHQUFHRixZQUFZLEdBQ3pCLElBQUlHLGNBQUosQ0FBYTtBQUNYQyxRQUFBQSxRQUFRLEVBQUVDLHNCQUFHQyxTQURGO0FBRVhDLFFBQUFBLFVBQVUsRUFBRTtBQUNWQyxVQUFBQSxTQUFTLEVBQUUsSUFBSUMsWUFBSixDQUFpQlQsWUFBakI7QUFERDtBQUZELE9BQWIsQ0FEeUIsR0FPekIsSUFBSUcsY0FBSixDQUFhO0FBQ1hDLFFBQUFBLFFBQVEsRUFBRUMsc0JBQUdLLFlBREY7QUFFWEgsUUFBQUEsVUFBVSxFQUFFO0FBQ1ZDLFVBQUFBLFNBQVMsRUFBRSxJQUFJQyxZQUFKLENBQWlCZixXQUFqQjtBQUREO0FBRkQsT0FBYixDQVBKO0FBY0EsYUFBTyxJQUFJaUIsV0FBSixDQUFVZixFQUFWLGtDQUNGQyxPQURFO0FBRUxlLFFBQUFBLEVBQUUsRUFBRSxLQUFLWCxLQUFMLENBQVdXLEVBRlY7QUFHTFYsUUFBQUEsUUFBUSxFQUFSQSxRQUhLO0FBSUxXLFFBQUFBLFdBQVcsRUFBRSxJQUpSO0FBS0w7QUFDQUMsUUFBQUEsV0FBVyxFQUFFLEtBQUtDLE9BQUwsQ0FBYUQ7QUFOckIsU0FBUDtBQVFEOzs7RUE3QitDRSx3Qjs7O0FBZ0NsRHJCLG9CQUFvQixDQUFDc0IsU0FBckIsR0FBaUMsc0JBQWpDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtTY2F0dGVycGxvdExheWVyLCBTY2F0dGVycGxvdExheWVyUHJvcHN9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQge0dlb21ldHJ5LCBNb2RlbH0gZnJvbSAnQGx1bWEuZ2wvY29yZSc7XG5pbXBvcnQgR0wgZnJvbSAnQGx1bWEuZ2wvY29uc3RhbnRzJztcblxuY29uc3QgREVGQVVMVF9QT1MgPSBbLTEsIC0xLCAwLCAtMSwgMSwgMCwgMSwgMSwgMCwgMSwgLTEsIDBdO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjYXR0ZXJwbG90SWNvbkxheWVyUHJvcHMgZXh0ZW5kcyBTY2F0dGVycGxvdExheWVyUHJvcHM8YW55PiB7XG4gIGljb25HZW9tZXRyeTogbnVtYmVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTY2F0dGVycGxvdEljb25MYXllciBleHRlbmRzIFNjYXR0ZXJwbG90TGF5ZXI8YW55LCBTY2F0dGVycGxvdEljb25MYXllclByb3BzPiB7XG4gIF9nZXRNb2RlbChnbDogV2ViR0xSZW5kZXJpbmdDb250ZXh0KSB7XG4gICAgLy8gdXNlIGRlZmF1bHQgc2NhdHRlcnBsb3Qgc2hhZGVyc1xuICAgIGNvbnN0IHNoYWRlcnMgPSB0aGlzLmdldFNoYWRlcnModW5kZWZpbmVkKTtcblxuICAgIGNvbnN0IHtpY29uR2VvbWV0cnl9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGdlb21ldHJ5ID0gaWNvbkdlb21ldHJ5XG4gICAgICA/IG5ldyBHZW9tZXRyeSh7XG4gICAgICAgICAgZHJhd01vZGU6IEdMLlRSSUFOR0xFUyxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICBwb3NpdGlvbnM6IG5ldyBGbG9hdDMyQXJyYXkoaWNvbkdlb21ldHJ5KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIDogbmV3IEdlb21ldHJ5KHtcbiAgICAgICAgICBkcmF3TW9kZTogR0wuVFJJQU5HTEVfRkFOLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgIHBvc2l0aW9uczogbmV3IEZsb2F0MzJBcnJheShERUZBVUxUX1BPUylcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBNb2RlbChnbCwge1xuICAgICAgLi4uc2hhZGVycyxcbiAgICAgIGlkOiB0aGlzLnByb3BzLmlkLFxuICAgICAgZ2VvbWV0cnksXG4gICAgICBpc0luc3RhbmNlZDogdHJ1ZSxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHNoYWRlckNhY2hlOiB0aGlzLmNvbnRleHQuc2hhZGVyQ2FjaGVcbiAgICB9KTtcbiAgfVxufVxuXG5TY2F0dGVycGxvdEljb25MYXllci5sYXllck5hbWUgPSAnU2NhdHRlcnBsb3RJY29uTGF5ZXInO1xuIl19
|
@@ -1,23 +1,3 @@
|
|
1
|
-
// Copyright (c) 2022 Uber Technologies, Inc.
|
2
|
-
//
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
8
|
-
// furnished to do so, subject to the following conditions:
|
9
|
-
//
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
11
|
-
// all copies or substantial portions of the Software.
|
12
|
-
//
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
// THE SOFTWARE.
|
20
|
-
|
21
1
|
"use strict";
|
22
2
|
|
23
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
@@ -144,4 +124,4 @@ var SvgIconLayer = /*#__PURE__*/function (_CompositeLayer) {
|
|
144
124
|
exports["default"] = SvgIconLayer;
|
145
125
|
SvgIconLayer.layerName = 'SvgIconLayer';
|
146
126
|
SvgIconLayer.defaultProps = defaultProps;
|
147
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
127
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdmctaWNvbi1sYXllci9zdmctaWNvbi1sYXllci50cyJdLCJuYW1lcyI6WyJERUZBVUxUX0lDT05fR0VPTUVUUlkiLCJkZWZhdWx0UHJvcHMiLCJnZXRJY29uR2VvbWV0cnkiLCJpY29uSWQiLCJnZXRJY29uIiwiZCIsImljb24iLCJTdmdJY29uTGF5ZXIiLCJzdGF0ZSIsImRhdGEiLCJjaGFuZ2VGbGFncyIsImRhdGFDaGFuZ2VkIiwiX2V4dHJhY3RTdWJsYXllcnMiLCJwcm9wcyIsImljb25MYXllcnMiLCJpIiwibGVuZ3RoIiwiaWQiLCJnZW9tZXRyeSIsInB1c2giLCJzZXRTdGF0ZSIsIk9iamVjdCIsInZhbHVlcyIsImluZm8iLCJzb3VyY2VMYXllciIsInVwZGF0ZUF1dG9IaWdobGlnaHQiLCJsYXllcklkIiwibGF5ZXJzIiwibWFwIiwiU2NhdHRlcnBsb3RJY29uTGF5ZXIiLCJpY29uR2VvbWV0cnkiLCJDb21wb3NpdGVMYXllciIsImxheWVyTmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0E7O0FBSUE7Ozs7Ozs7Ozs7QUFFQTtBQUNBLElBQU1BLHFCQUFxQixHQUFHLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsQ0FBVixFQUFhLENBQUMsQ0FBZCxFQUFpQixDQUFqQixFQUFvQixDQUFDLENBQXJCLEVBQXdCLENBQUMsQ0FBekIsRUFBNEIsQ0FBNUIsRUFBK0IsQ0FBQyxDQUFoQyxFQUFtQyxDQUFDLENBQXBDLEVBQXVDLENBQXZDLEVBQTBDLENBQUMsQ0FBM0MsRUFBOEMsQ0FBOUMsRUFBaUQsQ0FBakQsRUFBb0QsQ0FBcEQsRUFBdUQsQ0FBdkQsRUFBMEQsQ0FBMUQsQ0FBOUI7QUFFQSxJQUFNQyxZQUFZLEdBQUc7QUFDbkJDLEVBQUFBLGVBQWUsRUFBRSx5QkFBQ0MsTUFBRDtBQUFBLFdBQW9CSCxxQkFBcEI7QUFBQSxHQURFO0FBRW5CSSxFQUFBQSxPQUFPLEVBQUUsaUJBQUNDLENBQUQ7QUFBQSxXQUF1QkEsQ0FBQyxDQUFDQyxJQUF6QjtBQUFBO0FBRlUsQ0FBckI7O0lBYXFCQyxZOzs7Ozs7Ozs7Ozs7V0FDbkI7QUFDQSwrQkFBa0I7QUFDaEIsV0FBS0MsS0FBTCxHQUFhO0FBQ1hDLFFBQUFBLElBQUksRUFBRTtBQURLLE9BQWI7QUFHRDs7O1dBRUQsMkJBQTJCO0FBQUEsVUFBZEMsV0FBYyxRQUFkQSxXQUFjOztBQUN6QixVQUFJQSxXQUFXLENBQUNDLFdBQWhCLEVBQTZCO0FBQzNCLGFBQUtDLGlCQUFMO0FBQ0Q7QUFDRjs7O1dBRUQsNkJBQW9CO0FBQUEsd0JBQ3VCLEtBQUtDLEtBRDVCO0FBQUEsVUFDWEosSUFEVyxlQUNYQSxJQURXO0FBQUEsVUFDTFAsZUFESyxlQUNMQSxlQURLO0FBQUEsVUFDWUUsT0FEWixlQUNZQSxPQURaO0FBR2xCLFVBQU1VLFVBQVUsR0FBRyxFQUFuQjs7QUFDQSxXQUFLLElBQUlDLEVBQUMsR0FBRyxDQUFiLEVBQWdCQSxFQUFDLEdBQUdOLElBQUksQ0FBQ08sTUFBekIsRUFBaUNELEVBQUMsRUFBbEMsRUFBc0M7QUFDcEMsWUFBTVosTUFBTSxHQUFHQyxPQUFPLENBQUNLLElBQUksQ0FBQ00sRUFBRCxDQUFMLENBQXRCO0FBQ0FELFFBQUFBLFVBQVUsQ0FBQ1gsTUFBRCxDQUFWLEdBQXFCVyxVQUFVLENBQUNYLE1BQUQsQ0FBVixJQUFzQjtBQUN6Q2MsVUFBQUEsRUFBRSxFQUFFZCxNQURxQztBQUV6Q2UsVUFBQUEsUUFBUSxFQUFFaEIsZUFBZSxDQUFDQyxNQUFELENBQWYsSUFBMkJILHFCQUZJO0FBR3pDUyxVQUFBQSxJQUFJLEVBQUU7QUFIbUMsU0FBM0M7QUFLQUssUUFBQUEsVUFBVSxDQUFDWCxNQUFELENBQVYsQ0FBbUJNLElBQW5CLENBQXdCVSxJQUF4QixDQUE2QlYsSUFBSSxDQUFDTSxFQUFELENBQWpDO0FBQ0Q7O0FBQ0QsV0FBS0ssUUFBTCxDQUFjO0FBQ1pYLFFBQUFBLElBQUksRUFBRVksTUFBTSxDQUFDQyxNQUFQLENBQWNSLFVBQWQ7QUFETSxPQUFkO0FBR0Q7OztXQUVELDhCQUFxQlMsSUFBckIsRUFBMkI7QUFBQTs7QUFDekJBLE1BQUFBLElBQUksU0FBSixJQUFBQSxJQUFJLFdBQUosaUNBQUFBLElBQUksQ0FBRUMsV0FBTix3RUFBbUJDLG1CQUFuQixDQUF1Q0YsSUFBdkM7QUFDRDs7O1dBRUQsd0JBQWU7QUFBQTs7QUFDYixVQUFNRyxPQUFPLEdBQUcsS0FBS2IsS0FBTCxDQUFXSSxFQUEzQjtBQUVBLFVBQU1VLE1BQU0sR0FDVixLQUFLbkIsS0FBTCxDQUFXQyxJQUFYLElBQ0EsS0FBS0QsS0FBTCxDQUFXQyxJQUFYLENBQWdCTyxNQURoQixJQUVBLEtBQUtSLEtBQUwsQ0FBV0MsSUFBWCxDQUFnQm1CLEdBQWhCLENBQ0U7QUFBQSxZQUFFWCxFQUFGLFNBQUVBLEVBQUY7QUFBQSxZQUFNUixJQUFOLFNBQU1BLElBQU47QUFBQSxZQUFZUyxRQUFaLFNBQVlBLFFBQVo7QUFBQSxlQUNFLElBQUlXLGdDQUFKLGlDQUNLLEtBQUksQ0FBQ2hCLEtBRFY7QUFFRUksVUFBQUEsRUFBRSxZQUFLUyxPQUFMLGNBQWdCVCxFQUFoQixDQUZKO0FBR0VSLFVBQUFBLElBQUksRUFBSkEsSUFIRjtBQUlFcUIsVUFBQUEsWUFBWSxFQUFFWjtBQUpoQixXQURGO0FBQUEsT0FERixDQUhGO0FBYUEsYUFBT1MsTUFBTSxJQUFJQSxNQUFNLENBQUNYLE1BQVAsR0FBZ0IsQ0FBMUIsR0FBOEJXLE1BQTlCLEdBQXVDLElBQTlDO0FBQ0Q7OztFQXJEdUNJLG9COzs7QUF3RDFDeEIsWUFBWSxDQUFDeUIsU0FBYixHQUF5QixjQUF6QjtBQUNBekIsWUFBWSxDQUFDTixZQUFiLEdBQTRCQSxZQUE1QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7Q29tcG9zaXRlTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtDb21wb3NpdGVMYXllclByb3BzfSBmcm9tICdAZGVjay5nbC9jb3JlL2xpYi9jb21wb3NpdGUtbGF5ZXInO1xuaW1wb3J0IHtQb3NpdGlvbiwgUkdCQUNvbG9yfSBmcm9tICdkZWNrLmdsJztcbmltcG9ydCB7UkdCQ29sb3J9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IFNjYXR0ZXJwbG90SWNvbkxheWVyIGZyb20gJy4vc2NhdHRlcnBsb3QtaWNvbi1sYXllcic7XG5cbi8vIGRlZmF1bHQgaWNvbiBnZW9tZXRyeSBpcyBhIHNxdWFyZVxuY29uc3QgREVGQVVMVF9JQ09OX0dFT01FVFJZID0gWzEsIDEsIDAsIDEsIC0xLCAwLCAtMSwgLTEsIDAsIC0xLCAtMSwgMCwgLTEsIDEsIDAsIDEsIDEsIDBdO1xuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gIGdldEljb25HZW9tZXRyeTogKGljb25JZDogc3RyaW5nKSA9PiBERUZBVUxUX0lDT05fR0VPTUVUUlksXG4gIGdldEljb246IChkOiB7aWNvbjogc3RyaW5nfSkgPT4gZC5pY29uXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFN2Z0ljb25MYXllclByb3BzIGV4dGVuZHMgQ29tcG9zaXRlTGF5ZXJQcm9wczxhbnk+IHtcbiAgZ2V0SWNvbkdlb21ldHJ5OiAoaTogc3RyaW5nKSA9PiBudW1iZXJbXTtcbiAgZ2V0SWNvbjogKGQ6IHtpY29uOiBzdHJpbmd9KSA9PiBzdHJpbmc7XG4gIGdldFBvc2l0aW9uOiAoZDogYW55KSA9PiBQb3NpdGlvbjtcbiAgZ2V0UmFkaXVzOiAoKGQ6IGFueSkgPT4gbnVtYmVyKSB8IG51bWJlcjtcbiAgZ2V0RmlsbENvbG9yOiBSR0JDb2xvciB8IFJHQkFDb2xvcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3ZnSWNvbkxheWVyIGV4dGVuZHMgQ29tcG9zaXRlTGF5ZXI8YW55LCBTdmdJY29uTGF5ZXJQcm9wcz4ge1xuICAvLyBNdXN0IGJlIGRlZmluZWRcbiAgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBkYXRhOiB7fVxuICAgIH07XG4gIH1cblxuICB1cGRhdGVTdGF0ZSh7Y2hhbmdlRmxhZ3N9KSB7XG4gICAgaWYgKGNoYW5nZUZsYWdzLmRhdGFDaGFuZ2VkKSB7XG4gICAgICB0aGlzLl9leHRyYWN0U3VibGF5ZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgX2V4dHJhY3RTdWJsYXllcnMoKSB7XG4gICAgY29uc3Qge2RhdGEsIGdldEljb25HZW9tZXRyeSwgZ2V0SWNvbn0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgaWNvbkxheWVycyA9IHt9O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgaWNvbklkID0gZ2V0SWNvbihkYXRhW2ldKTtcbiAgICAgIGljb25MYXllcnNbaWNvbklkXSA9IGljb25MYXllcnNbaWNvbklkXSB8fCB7XG4gICAgICAgIGlkOiBpY29uSWQsXG4gICAgICAgIGdlb21ldHJ5OiBnZXRJY29uR2VvbWV0cnkoaWNvbklkKSB8fCBERUZBVUxUX0lDT05fR0VPTUVUUlksXG4gICAgICAgIGRhdGE6IFtdXG4gICAgICB9O1xuICAgICAgaWNvbkxheWVyc1tpY29uSWRdLmRhdGEucHVzaChkYXRhW2ldKTtcbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBkYXRhOiBPYmplY3QudmFsdWVzKGljb25MYXllcnMpXG4gICAgfSk7XG4gIH1cblxuICBfdXBkYXRlQXV0b0hpZ2hsaWdodChpbmZvKSB7XG4gICAgaW5mbz8uc291cmNlTGF5ZXI/LnVwZGF0ZUF1dG9IaWdobGlnaHQoaW5mbyk7XG4gIH1cblxuICByZW5kZXJMYXllcnMoKSB7XG4gICAgY29uc3QgbGF5ZXJJZCA9IHRoaXMucHJvcHMuaWQ7XG5cbiAgICBjb25zdCBsYXllcnMgPVxuICAgICAgdGhpcy5zdGF0ZS5kYXRhICYmXG4gICAgICB0aGlzLnN0YXRlLmRhdGEubGVuZ3RoICYmXG4gICAgICB0aGlzLnN0YXRlLmRhdGEubWFwKFxuICAgICAgICAoe2lkLCBkYXRhLCBnZW9tZXRyeX0pID0+XG4gICAgICAgICAgbmV3IFNjYXR0ZXJwbG90SWNvbkxheWVyKHtcbiAgICAgICAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICAgICAgICBpZDogYCR7bGF5ZXJJZH0tJHtpZH1gLFxuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIGljb25HZW9tZXRyeTogZ2VvbWV0cnlcbiAgICAgICAgICB9KVxuICAgICAgKTtcblxuICAgIHJldHVybiBsYXllcnMgJiYgbGF5ZXJzLmxlbmd0aCA+IDAgPyBsYXllcnMgOiBudWxsO1xuICB9XG59XG5cblN2Z0ljb25MYXllci5sYXllck5hbWUgPSAnU3ZnSWNvbkxheWVyJztcblN2Z0ljb25MYXllci5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG4iXX0=
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@kepler.gl/deckgl-layers",
|
3
3
|
"author": "Shan He <shan@uber.com>",
|
4
|
-
"version": "3.0.0-alpha.
|
4
|
+
"version": "3.0.0-alpha.2",
|
5
5
|
"description": "kepler.gl constants used by kepler.gl components, actions and reducers",
|
6
6
|
"license": "MIT",
|
7
7
|
"main": "dist/index.js",
|
@@ -20,9 +20,9 @@
|
|
20
20
|
},
|
21
21
|
"scripts": {
|
22
22
|
"build": "rm -fr dist && babel src --out-dir dist --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/*.d.ts'",
|
23
|
-
"build:umd": "webpack --config ./webpack/umd.js --progress --env.prod",
|
23
|
+
"build:umd": "NODE_OPTIONS=--openssl-legacy-provider webpack --config ./webpack/umd.js --progress --env.prod",
|
24
24
|
"build:types": "tsc --project ./tsconfig.production.json",
|
25
|
-
"prepublish": "
|
25
|
+
"prepublish": "babel-node ../../scripts/license-header/bin --license ../../FILE-HEADER && yarn build && yarn build:types",
|
26
26
|
"stab": "mkdir -p dist && touch dist/index.js"
|
27
27
|
},
|
28
28
|
"files": [
|
@@ -31,15 +31,15 @@
|
|
31
31
|
],
|
32
32
|
"dependencies": {
|
33
33
|
"@danmarshall/deckgl-typings": "4.9.22",
|
34
|
-
"@deck.gl/aggregation-layers": "8.
|
35
|
-
"@deck.gl/core": "^8.
|
36
|
-
"@deck.gl/geo-layers": "^8.
|
37
|
-
"@deck.gl/layers": "^8.
|
38
|
-
"@kepler.gl/constants": "3.0.0-alpha.
|
39
|
-
"@kepler.gl/types": "3.0.0-alpha.
|
40
|
-
"@kepler.gl/utils": "3.0.0-alpha.
|
41
|
-
"@luma.gl/constants": "^8.5.
|
42
|
-
"@luma.gl/core": "^8.5.
|
34
|
+
"@deck.gl/aggregation-layers": "^8.9.27",
|
35
|
+
"@deck.gl/core": "^8.9.27",
|
36
|
+
"@deck.gl/geo-layers": "^8.9.27",
|
37
|
+
"@deck.gl/layers": "^8.9.27",
|
38
|
+
"@kepler.gl/constants": "3.0.0-alpha.2",
|
39
|
+
"@kepler.gl/types": "3.0.0-alpha.2",
|
40
|
+
"@kepler.gl/utils": "3.0.0-alpha.2",
|
41
|
+
"@luma.gl/constants": "^8.5.20",
|
42
|
+
"@luma.gl/core": "^8.5.20",
|
43
43
|
"@mapbox/geo-viewport": "^0.4.1",
|
44
44
|
"@mapbox/vector-tile": "^1.3.1",
|
45
45
|
"@types/d3-array": "^2.0.0",
|
@@ -58,14 +58,14 @@
|
|
58
58
|
"instrument": false
|
59
59
|
},
|
60
60
|
"engines": {
|
61
|
-
"node": ">=
|
61
|
+
"node": ">=18.18.2"
|
62
62
|
},
|
63
63
|
"maintainers": [
|
64
64
|
"Shan He <heshan0131@gmail.com>",
|
65
65
|
"Giuseppe Macri <gmacri@uber.com>"
|
66
66
|
],
|
67
67
|
"volta": {
|
68
|
-
"node": "
|
68
|
+
"node": "18.18.2",
|
69
69
|
"yarn": "1.22.17"
|
70
70
|
}
|
71
71
|
}
|