<?php

use Twig\Environment;
use Twig\Error\LoaderError;
use Twig\Error\RuntimeError;
use Twig\Extension\CoreExtension;
use Twig\Extension\SandboxExtension;
use Twig\Markup;
use Twig\Sandbox\SecurityError;
use Twig\Sandbox\SecurityNotAllowedTagError;
use Twig\Sandbox\SecurityNotAllowedFilterError;
use Twig\Sandbox\SecurityNotAllowedFunctionError;
use Twig\Source;
use Twig\Template;

/* @public_path/build/assets_js_map_js.js */
class __TwigTemplate_d8ac17a11ed067293700e6ec62ba24200a5c0a43c3597b9201b06ac859a68409 extends Template
{
    private $source;
    private $macros = [];

    public function __construct(Environment $env)
    {
        parent::__construct($env);

        $this->source = $this->getSourceContext();

        $this->parent = false;

        $this->blocks = [
        ];
    }

    protected function doDisplay(array $context, array $blocks = [])
    {
        $macros = $this->macros;
        $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
        $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "@public_path/build/assets_js_map_js.js"));

        $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
        $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "@public_path/build/assets_js_map_js.js"));

        yield "(self[\"webpackChunk\"] = self[\"webpackChunk\"] || []).push([[\"assets_js_map_js\"],{

/***/ \"./assets/images/punaise-blue.png\":
/*!****************************************!*\\
  !*** ./assets/images/punaise-blue.png ***!
  \\****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

\"use strict\";
module.exports = __webpack_require__.p + \"images/punaise-blue.9375d5ad.png\";

/***/ }),

/***/ \"./assets/images/punaise-gps.png\":
/*!***************************************!*\\
  !*** ./assets/images/punaise-gps.png ***!
  \\***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

\"use strict\";
module.exports = __webpack_require__.p + \"images/punaise-gps.6ee5445c.png\";

/***/ }),

/***/ \"./assets/images/punaise-green.png\":
/*!*****************************************!*\\
  !*** ./assets/images/punaise-green.png ***!
  \\*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

\"use strict\";
module.exports = __webpack_require__.p + \"images/punaise-green.d6008b7b.png\";

/***/ }),

/***/ \"./assets/images/punaise-red.png\":
/*!***************************************!*\\
  !*** ./assets/images/punaise-red.png ***!
  \\***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

\"use strict\";
module.exports = __webpack_require__.p + \"images/punaise-red.e834d1a9.png\";

/***/ }),

/***/ \"./assets/images/punaise.png\":
/*!***********************************!*\\
  !*** ./assets/images/punaise.png ***!
  \\***********************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

\"use strict\";
module.exports = __webpack_require__.p + \"images/punaise.ffe226c8.png\";

/***/ }),

/***/ \"./assets/js/map.js\":
/*!**************************!*\\
  !*** ./assets/js/map.js ***!
  \\**************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

\"use strict\";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   \"punaisePicto\": () => (/* binding */ punaisePicto),
/* harmony export */   \"createCustomIcon\": () => (/* binding */ createCustomIcon),
/* harmony export */   \"addMarker\": () => (/* binding */ addMarker),
/* harmony export */   \"addPolygon\": () => (/* binding */ addPolygon),
/* harmony export */   \"removeFeatures\": () => (/* binding */ removeFeatures),
/* harmony export */   \"removeFeaturesByDataValue\": () => (/* binding */ removeFeaturesByDataValue),
/* harmony export */   \"fitMapToFeatures\": () => (/* binding */ fitMapToFeatures),
/* harmony export */   \"fitMapToFeaturesByType\": () => (/* binding */ fitMapToFeaturesByType),
/* harmony export */   \"hideAllOverlay\": () => (/* binding */ hideAllOverlay),
/* harmony export */   \"onSingleClickFeature\": () => (/* binding */ onSingleClickFeature),
/* harmony export */   \"punaises\": () => (/* binding */ punaises),
/* harmony export */   \"formatDate\": () => (/* binding */ formatDate),
/* harmony export */   \"map\": () => (/* binding */ map),
/* harmony export */   \"vectorSource\": () => (/* binding */ vectorSource),
/* harmony export */   \"overlayRdv\": () => (/* binding */ overlayRdv),
/* harmony export */   \"overlayGps\": () => (/* binding */ overlayGps)
/* harmony export */ });
/* harmony import */ var core_js_modules_es_object_freeze_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.freeze.js */ \"./node_modules/core-js/modules/es.object.freeze.js\");
/* harmony import */ var core_js_modules_es_object_freeze_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_freeze_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var core_js_modules_es_object_values_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.values.js */ \"./node_modules/core-js/modules/es.object.values.js\");
/* harmony import */ var core_js_modules_es_object_values_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_values_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.for-each.js */ \"./node_modules/core-js/modules/es.array.for-each.js\");
/* harmony import */ var core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");
/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.object.keys.js */ \"./node_modules/core-js/modules/es.object.keys.js\");
/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.parse-int.js */ \"./node_modules/core-js/modules/es.parse-int.js\");
/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ \"./node_modules/core-js/modules/es.regexp.exec.js\");
/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ \"./node_modules/core-js/modules/es.string.replace.js\");
/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ \"./node_modules/core-js/modules/es.array.concat.js\");
/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ \"./node_modules/core-js/modules/es.array.filter.js\");
/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ \"./node_modules/core-js/modules/es.array.map.js\");
/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ \"./node_modules/core-js/modules/es.string.split.js\");
/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ \"./node_modules/core-js/modules/es.array.join.js\");
/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_12__);
/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! core-js/modules/es.date.to-string.js */ \"./node_modules/core-js/modules/es.date.to-string.js\");
/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_13__);
/* harmony import */ var core_js_modules_es_array_is_array_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! core-js/modules/es.array.is-array.js */ \"./node_modules/core-js/modules/es.array.is-array.js\");
/* harmony import */ var core_js_modules_es_array_is_array_js__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_is_array_js__WEBPACK_IMPORTED_MODULE_14__);
/* harmony import */ var core_js_modules_es_string_pad_start_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! core-js/modules/es.string.pad-start.js */ \"./node_modules/core-js/modules/es.string.pad-start.js\");
/* harmony import */ var core_js_modules_es_string_pad_start_js__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_pad_start_js__WEBPACK_IMPORTED_MODULE_15__);
/* harmony import */ var core_js_modules_es_object_set_prototype_of_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! core-js/modules/es.object.set-prototype-of.js */ \"./node_modules/core-js/modules/es.object.set-prototype-of.js\");
/* harmony import */ var core_js_modules_es_object_set_prototype_of_js__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_set_prototype_of_js__WEBPACK_IMPORTED_MODULE_16__);
/* harmony import */ var core_js_modules_es_object_get_prototype_of_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! core-js/modules/es.object.get-prototype-of.js */ \"./node_modules/core-js/modules/es.object.get-prototype-of.js\");
/* harmony import */ var core_js_modules_es_object_get_prototype_of_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_prototype_of_js__WEBPACK_IMPORTED_MODULE_17__);
/* harmony import */ var core_js_modules_es_reflect_construct_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! core-js/modules/es.reflect.construct.js */ \"./node_modules/core-js/modules/es.reflect.construct.js\");
/* harmony import */ var core_js_modules_es_reflect_construct_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_reflect_construct_js__WEBPACK_IMPORTED_MODULE_18__);
/* harmony import */ var core_js_modules_es_object_create_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! core-js/modules/es.object.create.js */ \"./node_modules/core-js/modules/es.object.create.js\");
/* harmony import */ var core_js_modules_es_object_create_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_create_js__WEBPACK_IMPORTED_MODULE_19__);
/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ \"./node_modules/core-js/modules/es.symbol.js\");
/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_20__);
/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! core-js/modules/es.symbol.description.js */ \"./node_modules/core-js/modules/es.symbol.description.js\");
/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_21__);
/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");
/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_22__);
/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ \"./node_modules/core-js/modules/es.symbol.iterator.js\");
/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_23__);
/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ \"./node_modules/core-js/modules/es.array.iterator.js\");
/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_24__);
/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ \"./node_modules/core-js/modules/es.string.iterator.js\");
/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_25__);
/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ \"./node_modules/core-js/modules/web.dom-collections.iterator.js\");
/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_26__);
/* harmony import */ var ol_Map__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ol/Map */ \"./node_modules/ol/Map.js\");
/* harmony import */ var ol_View__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ol/View */ \"./node_modules/ol/View.js\");
/* harmony import */ var ol_layer__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ol/layer */ \"./node_modules/ol/layer/Tile.js\");
/* harmony import */ var ol_source__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ol/source */ \"./node_modules/ol/source/OSM.js\");
/* harmony import */ var ol_source__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ol/source */ \"./node_modules/ol/source/XYZ.js\");
/* harmony import */ var ol_proj__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ol/proj */ \"./node_modules/ol/proj.js\");
/* harmony import */ var ol_control_Control__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ol/control/Control */ \"./node_modules/ol/control/Control.js\");
/* harmony import */ var ol_control__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ol/control */ \"./node_modules/ol/control/defaults.js\");
/* harmony import */ var ol_control__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ol/control */ \"./node_modules/ol/control/ScaleLine.js\");
/* harmony import */ var ol_geom__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ol/geom */ \"./node_modules/ol/geom/Point.js\");
/* harmony import */ var ol_geom__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ol/geom */ \"./node_modules/ol/geom/Polygon.js\");
/* harmony import */ var ol_geom__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ol/geom */ \"./node_modules/ol/geom/LineString.js\");
/* harmony import */ var ol_source_Vector__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ol/source/Vector */ \"./node_modules/ol/source/Vector.js\");
/* harmony import */ var ol_layer_Vector__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ol/layer/Vector */ \"./node_modules/ol/layer/Vector.js\");
/* harmony import */ var ol__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ol */ \"./node_modules/ol/Feature.js\");
/* harmony import */ var ol_style__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ol/style */ \"./node_modules/ol/style/Style.js\");
/* harmony import */ var ol_style__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ol/style */ \"./node_modules/ol/style/Icon.js\");
/* harmony import */ var ol_style__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ol/style */ \"./node_modules/ol/style/Stroke.js\");
/* harmony import */ var ol_style__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ol/style */ \"./node_modules/ol/style/Fill.js\");
/* harmony import */ var ol_extent__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ol/extent */ \"./node_modules/ol/extent.js\");
/* harmony import */ var _images_punaise_png__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../images/punaise.png */ \"./assets/images/punaise.png\");
/* harmony import */ var _images_punaise_red_png__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../images/punaise-red.png */ \"./assets/images/punaise-red.png\");
/* harmony import */ var _images_punaise_green_png__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../images/punaise-green.png */ \"./assets/images/punaise-green.png\");
/* harmony import */ var _images_punaise_blue_png__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../images/punaise-blue.png */ \"./assets/images/punaise-blue.png\");
/* harmony import */ var _images_punaise_gps_png__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../images/punaise-gps.png */ \"./assets/images/punaise-gps.png\");
/* harmony import */ var ol_Overlay__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ol/Overlay */ \"./node_modules/ol/Overlay.js\");
function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }

function _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }








































 //images







var punaiseImg = Object.freeze({
  1: _images_punaise_red_png__WEBPACK_IMPORTED_MODULE_29__,
  2: _images_punaise_red_png__WEBPACK_IMPORTED_MODULE_29__,
  3: _images_punaise_red_png__WEBPACK_IMPORTED_MODULE_29__,
  4: _images_punaise_blue_png__WEBPACK_IMPORTED_MODULE_31__,
  5: _images_punaise_blue_png__WEBPACK_IMPORTED_MODULE_31__,
  6: _images_punaise_blue_png__WEBPACK_IMPORTED_MODULE_31__,
  7: _images_punaise_green_png__WEBPACK_IMPORTED_MODULE_30__,
  \"default\": _images_punaise_png__WEBPACK_IMPORTED_MODULE_28__,
  \"gps\": _images_punaise_gps_png__WEBPACK_IMPORTED_MODULE_32__
});
var punaisePicto = Object.freeze({
  0: {
    unicode: \"\\uF017\",
    font: 'bold 10px \"Font Awesome 5 Free\"'
  },
  // fa-clock (Regular)
  1: {
    unicode: \"\\uF063\",
    font: 'bold 10px \"Font Awesome 5 Free\"'
  },
  // fa-arrow-up (Solid)
  2: {
    unicode: \"\\uF04B\",
    font: 'bold 10px \"Font Awesome 5 Free\"'
  },
  // fa-play (Solid)
  3: {
    unicode: \"\\uF00C\",
    font: 'bold 10px \"Font Awesome 5 Free\"'
  },
  // fa-check (Solid)
  4: {
    unicode: \"\\uF00C\",
    font: 'bold 10px \"Font Awesome 5 Free\"'
  },
  // fa-check (Solid)
  'home': {
    unicode: \"\\uE065\",
    font: 'bold 10px \"Font Awesome 5 Free\"'
  },
  // fa-house-user (Solid)
  'tech': {
    unicode: \"\\uF007\",
    font: 'bold 10px \"Font Awesome 5 Free\"'
  } // fa-user (Solid)

}); // Définition des fonds de carte

var baseLayers = {
  \"OpenStreetMap\": new ol_layer__WEBPACK_IMPORTED_MODULE_33__.default({
    source: new ol_source__WEBPACK_IMPORTED_MODULE_34__.default(),
    visible: true
  }),
  \"Satellite\": new ol_layer__WEBPACK_IMPORTED_MODULE_33__.default({
    source: new ol_source__WEBPACK_IMPORTED_MODULE_35__.default({
      url: 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}'
    }),
    visible: false
  })
};
var map = new ol_Map__WEBPACK_IMPORTED_MODULE_36__.default({
  target: 'map',
  // layers: [osmLayer, satelliteLayer],
  layers: Object.values(baseLayers),
  view: new ol_View__WEBPACK_IMPORTED_MODULE_37__.default({
    center: (0,ol_proj__WEBPACK_IMPORTED_MODULE_27__.fromLonLat)([2.3644638, 48.8764576]),
    // Paris
    zoom: 10
  }),
  controls: (0,ol_control__WEBPACK_IMPORTED_MODULE_38__.defaults)({
    attribution: false,
    rotate: false
  }).extend([new ol_control__WEBPACK_IMPORTED_MODULE_39__.default() // Ajoute une échelle
  ])
});

var LayerSwitcherControl = /*#__PURE__*/function (_Control) {
  _inherits(LayerSwitcherControl, _Control);

  var _super = _createSuper(LayerSwitcherControl);

  function LayerSwitcherControl() {
    var _this;

    _classCallCheck(this, LayerSwitcherControl);

    var button = document.createElement('button');
    button.innerHTML = '<i class=\"fas fa-layer-group\" style=\"margin-right: 0px;\"></i>'; // Icône du bouton

    button.className = 'layer-switch-button';
    var list = document.createElement('div');
    list.className = 'layer-switch-list hidden'; // Ajouter les options

    Object.keys(baseLayers).forEach(function (layerName) {
      var option = document.createElement('div');
      option.className = 'layer-option';
      option.innerHTML = layerName;
      option.addEventListener('click', function () {
        Object.values(baseLayers).forEach(function (layer) {
          return layer.setVisible(false);
        });
        baseLayers[layerName].setVisible(true);
        list.classList.add('hidden');
      });
      list.appendChild(option);
    });
    var container = document.createElement('div');
    container.className = 'layer-switcher ol-control';
    container.appendChild(button);
    container.appendChild(list);
    _this = _super.call(this, {
      element: container
    });
    button.addEventListener('click', function () {
      list.classList.toggle('hidden');
    }); // Cacher la liste quand on clique ailleurs

    document.addEventListener('click', function (event) {
      if (!container.contains(event.target)) {
        list.classList.add('hidden');
      }
    });
    return _this;
  }

  return LayerSwitcherControl;
}(ol_control_Control__WEBPACK_IMPORTED_MODULE_40__.default); // Ajout des contrôles à la carte


map.addControl(new LayerSwitcherControl()); // Source vectorielle pour stocker les punaises

var vectorSource = new ol_source_Vector__WEBPACK_IMPORTED_MODULE_41__.default();
var vectorLayer = new ol_layer_Vector__WEBPACK_IMPORTED_MODULE_42__.default({
  source: vectorSource
});
map.addLayer(vectorLayer);
var overlayRdv = new ol_Overlay__WEBPACK_IMPORTED_MODULE_43__.default({
  element: document.getElementById('popup-rdv'),
  autoPan: true,
  positioning: 'bottom-center',
  offset: [0, -43] // décalage en pixels (horizontal, vertical)

});
var overlayGps = new ol_Overlay__WEBPACK_IMPORTED_MODULE_43__.default({
  element: document.getElementById('popup-gps'),
  autoPan: true,
  positioning: 'bottom-center',
  offset: [0, -31] // décalage en pixels (horizontal, vertical)

}); //Fonction pour générer une icône personnalisée avec une image, du texte et un pictogramme

function createCustomIcon(text, unicode, font, imgSrc, color, callback) {
  var canvas = document.createElement('canvas');
  var width = 24;
  var height = 32;

  if (unicode === '') {
    width = 15;
    height = 20;
  }

  canvas.width = width;
  canvas.height = height;
  var ctx = canvas.getContext('2d');
  var img = new Image();
  img.src = imgSrc;

  img.onload = function () {
    // Dessiner la punaise de base
    ctx.drawImage(img, 0, 0, canvas.width, canvas.height); // Ajouter du texte

    ctx.fillStyle = color;
    ctx.textAlign = 'center';

    if (unicode !== '') {
      ctx.font = 'bold 9px \"Lato\"';
      ctx.fillText(text, 12, 13);
      ctx.font = font;
      ctx.fillText(unicode, 12, 24);
    } else {
      // Si pas d'unicode, placer le texte normalement
      ctx.font = 'bold 7px \"Lato\"';
      ctx.fillText(text, width / 2, 11); // Centrer le texte
    } // Convertir en Data URL et appeler le callback


    callback(canvas.toDataURL());
  };
} // Fonction pour ajouter une punaise

function addMarker(coords, text, picto, punaise, color, datas, onComplete) {
  var pictoData;

  if (picto === '') {
    pictoData = {
      unicode: '',
      font: ''
    };
  } else {
    pictoData = punaisePicto[picto];
  }

  var _pictoData = pictoData,
      unicode = _pictoData.unicode,
      font = _pictoData.font; // Récupère unicode et font

  var imgSrc = punaiseImg[punaise];
  createCustomIcon(text, unicode, font, imgSrc, color, function (iconUrl) {
    var feature = new ol__WEBPACK_IMPORTED_MODULE_44__.default({
      geometry: new ol_geom__WEBPACK_IMPORTED_MODULE_45__.default((0,ol_proj__WEBPACK_IMPORTED_MODULE_27__.fromLonLat)(coords))
    });
    feature.setStyle(new ol_style__WEBPACK_IMPORTED_MODULE_46__.default({
      image: new ol_style__WEBPACK_IMPORTED_MODULE_47__.default({
        src: iconUrl,
        scale: 1,
        // Ajuste selon la taille désirée
        anchor: [0.5, 1] // Pour bien aligner la punaise

      })
    }));
    feature.set('datas', datas);
    vectorSource.addFeature(feature); // Exécuter le callback quand l'ajout est terminé

    if (onComplete) onComplete();
  });
}
function addPolygon(coords) {
  var convertedCoords = [];

  for (var i = 0; i < coords.length; i++) {
    convertedCoords.push((0,ol_proj__WEBPACK_IMPORTED_MODULE_27__.fromLonLat)(coords[i]));
  }

  var feature = new ol__WEBPACK_IMPORTED_MODULE_44__.default({
    geometry: new ol_geom__WEBPACK_IMPORTED_MODULE_48__.default([convertedCoords])
  });
  feature.setStyle(new ol_style__WEBPACK_IMPORTED_MODULE_46__.default({
    stroke: new ol_style__WEBPACK_IMPORTED_MODULE_49__.default({
      color: \"#000\",
      width: 0.5
    }),
    fill: new ol_style__WEBPACK_IMPORTED_MODULE_50__.default({
      color: hexToRgba(\"#000\", 0.2)
    })
  }));
  var datas = {
    type: 'secteur'
  };
  feature.set('datas', datas);
  vectorSource.addFeature(feature);
}

function hexToRgba(hex) {
  var alpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
  var bigint = parseInt(hex.replace('#', ''), 16);
  var r = bigint >> 16 & 255;
  var g = bigint >> 8 & 255;
  var b = bigint & 255;
  return \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(alpha, \")\");
}

function removeFeatures() {
  map.getOverlays().forEach(function (overlay) {
    //cacher les popup overlay
    overlay.setPosition(undefined);
  });
  vectorSource.clear();
}
function removeFeaturesByDataValue(dataName, value) {
  vectorSource.forEachFeature(function (feature) {
    var datas = feature.get('datas');

    if (datas && datas[dataName] === value) {
      vectorSource.removeFeature(feature);
    }
  });
}
function fitMapToFeatures() {
  if (vectorSource.getFeatures().length > 0) {
    var extent = vectorSource.getExtent(); // Récupère l'étendue de toutes les features

    map.getView().fit(extent, {
      padding: [50, 50, 50, 50],
      duration: 1000,
      maxZoom: 14 //évite dans le cas d'une feature d'être trop zoomé sur la carte

    }); // Ajuste la vue
  } else {
    // vue par défaut si aucune feature
    map.getView().setCenter((0,ol_proj__WEBPACK_IMPORTED_MODULE_27__.fromLonLat)([2.3644638, 48.8764576]));
    map.getView().setZoom(10);
  }
}
function fitMapToFeaturesByType(featureType) {
  var features = vectorSource.getFeatures();
  var filteredFeatures = features.filter(function (feature) {
    var geometry = feature.getGeometry();

    if (featureType === 'markers' || featureType === 'points') {
      return geometry instanceof ol_geom__WEBPACK_IMPORTED_MODULE_45__.default;
    } else if (featureType === 'polygons') {
      return geometry instanceof ol_geom__WEBPACK_IMPORTED_MODULE_48__.default;
    } else if (featureType === 'lines') {
      return geometry instanceof ol_geom__WEBPACK_IMPORTED_MODULE_51__.default;
    }

    return false;
  });

  if (filteredFeatures.length > 0) {
    var extent = (0,ol_extent__WEBPACK_IMPORTED_MODULE_52__.boundingExtent)(filteredFeatures.map(function (feature) {
      return feature.getGeometry().getExtent();
    }));
    map.getView().fit(extent, {
      padding: [50, 50, 50, 50],
      duration: 1000,
      maxZoom: 14
    });
  } else {
    // vue par défaut si aucune feature du type demandé
    map.getView().setCenter((0,ol_proj__WEBPACK_IMPORTED_MODULE_27__.fromLonLat)([2.3644638, 48.8764576]));
    map.getView().setZoom(10);
  }
}

function showOverlay(overlay, coord) {
  overlay.getElement().style.display = 'block';
  overlay.setPosition(coord);
}

function hideOverlay(overlay) {
  overlay.getElement().style.display = 'none';
  overlay.setPosition(undefined);
}

function hideAllOverlay() {
  map.getOverlays().forEach(function (overlay) {
    hideOverlay(overlay);
  });
}

function initPopupOverlayRdv(datas, coordinates) {
  var badgeType = overlayRdv.getElement().getElementsByClassName('badge-type')[0];
  var couleur = datas.planning.type_planification_init.couleur;
  badgeType.innerHTML = \"\".concat(datas.planning.type_planification_init.code_court);
  badgeType.style.backgroundColor = couleur;
  overlayRdv.getElement().style.borderColor = couleur;
  overlayRdv.getElement().style.setProperty('--popup-arrow-color', couleur); //numéro client
  //génération lien pour ouverture fiche client

  var completeUrl = '';

  if (datas.equipement !== null && datas.equipement.client_souscripteur !== undefined) {
    var base_url = window.location.origin;
    var url = path_client.split('/');

    if (datas.equipement.client_souscripteur.id) {
      var id = datas.equipement.client_souscripteur.id;

      if (datas.equipement.id) {
        id += '?id_equipement=' + datas.equipement.id;
      }

      url[url.length - 1] = id;
    }

    completeUrl = base_url + url.join('/');
  }

  overlayRdv.getElement().getElementsByClassName('client-id')[0].href = completeUrl;
  overlayRdv.getElement().getElementsByClassName('client-id')[0].innerHTML = \"\".concat(datas.equipement.client_souscripteur.formatted_numero_client); //badge moment

  overlayRdv.getElement().getElementsByClassName('badge-moment')[0].innerHTML = \"\".concat(datas.planning.moment_passage.libelle_planning); //badge equipement type

  overlayRdv.getElement().getElementsByClassName('badge-equip')[0].innerHTML = \"\".concat(datas.equipement.equipement_type_puissance.equipement_type.type); //infos client

  var contentClient = '';

  if (datas.equipement.client_souscripteur.etat_civil !== null) {
    // particulier
    contentClient = \"<b>\".concat(datas.equipement.client_souscripteur.etat_civil.libelle_court, \" \").concat(datas.equipement.client_souscripteur.nom);

    if (datas.equipement.client_souscripteur.prenom !== '' && datas.equipement.client_souscripteur.prenom !== null) {
      contentClient += \" \".concat(datas.equipement.client_souscripteur.prenom);
    }
  } else if (datas.equipement.client_souscripteur.categorie_pro !== null) {
    //pro
    contentClient = \"<b>\".concat(datas.equipement.client_souscripteur.categorie_pro.libelle, \" \").concat(datas.equipement.client_souscripteur.nom_entreprise);
  }

  contentClient += \"</b><br>\".concat(datas.equipement.adresse.adresse);

  if (datas.equipement.adresse.adresse_complement !== '' && datas.equipement.adresse.adresse_complement !== null) {
    contentClient += \"<br>\".concat(datas.equipement.adresse.adresse_complement);
  }

  contentClient += \"<br>\".concat(datas.equipement.adresse.code_postal, \" \").concat(datas.equipement.adresse.ville);
  overlayRdv.getElement().getElementsByClassName('client-coordonnees')[0].innerHTML = contentClient; //badge contrat

  var contrat = '';

  if (datas.equipement.contrat_en_cours !== '' && datas.equipement.contrat_en_cours !== null) {
    contrat = \"\".concat(datas.equipement.contrat_en_cours.contrat_type.libelle_court);
  }

  overlayRdv.getElement().getElementsByClassName('badge-contrat')[0].innerHTML = contrat;
  var contentRdv = \"<b>\".concat(datas.planning.libelleStatut, \"</b>\");

  if (datas.planning.heure_debut !== '' && datas.planning.heure_debut !== null) {
    contentRdv += \"<br>Heure d\\xE9but : \".concat(new Date(datas.planning.heure_debut).toLocaleTimeString('fr-FR', {
      hour: '2-digit',
      minute: '2-digit'
    }));
  }

  if (datas.planning.heure_fin !== '' && datas.planning.heure_fin !== null) {
    contentRdv += \" - Heure fin : \".concat(new Date(datas.planning.heure_fin).toLocaleTimeString('fr-FR', {
      hour: '2-digit',
      minute: '2-digit'
    }));
  }

  overlayRdv.getElement().getElementsByClassName('popup-rdv-info')[0].innerHTML = contentRdv;
  showOverlay(overlayRdv, coordinates);
}

function initPopupOverlayGps(datas, coordinates) {
  var contentGps = '';

  if (datas.type == 'tech') {
    contentGps = \"Derni\\xE8re position - \";
  }

  contentGps += \"\".concat(datas.agent, \"<br>\").concat(datas.date_heure);
  overlayGps.getElement().getElementsByClassName('popup-gps-info')[0].innerHTML = contentGps;
  showOverlay(overlayGps, coordinates);
}

function onSingleClickFeature(event) {
  hideAllOverlay();
  var feature = map.forEachFeatureAtPixel(event.pixel, function (feature) {
    return feature;
  });

  if (feature && feature.get('datas') !== '') {
    var datas = feature.get('datas');

    if (datas.type && datas.type !== '') {
      var coordinates = feature.getGeometry().getCoordinates();

      if (datas.type === 'gps' || datas.type === 'tech') {
        initPopupOverlayGps(datas, coordinates);
      } else if (datas.type === 'intervention') {
        initPopupOverlayRdv(datas, coordinates);
      }
    }
  }
}
function punaises(data) {
  var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  removeFeatures(); //supprimer les markers de la carte

  var remainingMarkers = 0; // Compteur des marqueurs à ajouter

  var onMarkerAdded = function onMarkerAdded() {
    remainingMarkers--;

    if (remainingMarkers === 0) {
      // Une fois que tous les marqueurs sont ajoutés, ajuster la vue
      fitMapToFeaturesByType('markers');
    }
  };

  if (data.agents || data.agent) {
    var agents = Array.isArray(data.agents) ? data.agents : data.agent ? [data.agent] : [];
    agents.forEach(function (agent) {
      if (!init) {
        // home
        remainingMarkers++;
        addMarker(agent.coordonnees, agent.code_agent, 'home', 'default', 'white', {
          type: 'home',
          agentId: agent.id
        }, onMarkerAdded);
      } // dernière position


      if (agent.derniere_pos !== '' && agent.derniere_pos !== null) {
        remainingMarkers++;
        var datas = {
          agent: \"Agent \".concat(agent.code_agent),
          date_heure: formatDate(agent.derniere_pos.date_heure),
          type: 'tech',
          agentId: agent.id
        };
        addMarker(agent.derniere_pos.coordonnees, agent.code_agent, 'tech', 'default', 'white', datas, onMarkerAdded);
      }
    });
  }

  if (!init) {
    data.interventions.forEach(function (intervention) {
      var coords = [0, 0];

      if (intervention.equipement) {
        var adresse = intervention.equipement.adresse;
        coords = [adresse.longitude, adresse.latitude];
      }

      var planning = intervention.planning;
      var code = planning.utilisateur_agent.code_agent;
      var moment = planning.moment_passage.id;
      var statut = planning.statut;
      intervention.type = 'intervention';
      intervention.agentId = planning.utilisateur_agent.id;
      remainingMarkers++;
      addMarker(coords, code, statut, moment, 'white', intervention, onMarkerAdded);
    });
  }
}
function formatDate(dateString) {
  // Crée un objet Date à partir de la chaîne
  var date = new Date(dateString); // Récupère les composants de la date

  var day = String(date.getDate()).padStart(2, '0'); // Jour au format \"02\"

  var month = String(date.getMonth() + 1).padStart(2, '0'); // Mois au format \"02\" (les mois commencent à 0)

  var year = date.getFullYear(); // Année au format \"2025\"
  // Récupère l'heure et les minutes

  var hours = String(date.getHours()).padStart(2, '0'); // Heure au format \"07\"

  var minutes = String(date.getMinutes()).padStart(2, '0'); // Minutes au format \"05\"
  // Retourne le format désiré

  return \"Le \".concat(day, \"/\").concat(month, \"/\").concat(year, \" \\xE0 \").concat(hours, \":\").concat(minutes);
}


/***/ })

}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvbWFwLmpzIl0sIm5hbWVzIjpbInB1bmFpc2VJbWciLCJPYmplY3QiLCJmcmVlemUiLCJwdW5haXNlUmVkSW1nIiwicHVuYWlzZUJsdWVJbWciLCJwdW5haXNlR3JlZW5JbWciLCJwdW5haXNlRGVmYXVsdEltZyIsInB1bmFpc2VHcHNJbWciLCJwdW5haXNlUGljdG8iLCJ1bmljb2RlIiwiZm9udCIsImJhc2VMYXllcnMiLCJUaWxlTGF5ZXIiLCJzb3VyY2UiLCJPU00iLCJ2aXNpYmxlIiwiWFlaIiwidXJsIiwibWFwIiwiTWFwIiwidGFyZ2V0IiwibGF5ZXJzIiwidmFsdWVzIiwidmlldyIsIlZpZXciLCJjZW50ZXIiLCJmcm9tTG9uTGF0Iiwiem9vbSIsImNvbnRyb2xzIiwiZGVmYXVsdENvbnRyb2xzIiwiYXR0cmlidXRpb24iLCJyb3RhdGUiLCJleHRlbmQiLCJTY2FsZUxpbmUiLCJMYXllclN3aXRjaGVyQ29udHJvbCIsImJ1dHRvbiIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImlubmVySFRNTCIsImNsYXNzTmFtZSIsImxpc3QiLCJrZXlzIiwiZm9yRWFjaCIsImxheWVyTmFtZSIsIm9wdGlvbiIsImFkZEV2ZW50TGlzdGVuZXIiLCJsYXllciIsInNldFZpc2libGUiLCJjbGFzc0xpc3QiLCJhZGQiLCJhcHBlbmRDaGlsZCIsImNvbnRhaW5lciIsImVsZW1lbnQiLCJ0b2dnbGUiLCJldmVudCIsImNvbnRhaW5zIiwiQ29udHJvbCIsImFkZENvbnRyb2wiLCJ2ZWN0b3JTb3VyY2UiLCJWZWN0b3JTb3VyY2UiLCJ2ZWN0b3JMYXllciIsIlZlY3RvckxheWVyIiwiYWRkTGF5ZXIiLCJvdmVybGF5UmR2IiwiT3ZlcmxheSIsImdldEVsZW1lbnRCeUlkIiwiYXV0b1BhbiIsInBvc2l0aW9uaW5nIiwib2Zmc2V0Iiwib3ZlcmxheUdwcyIsImNyZWF0ZUN1c3RvbUljb24iLCJ0ZXh0IiwiaW1nU3JjIiwiY29sb3IiLCJjYWxsYmFjayIsImNhbnZhcyIsIndpZHRoIiwiaGVpZ2h0IiwiY3R4IiwiZ2V0Q29udGV4dCIsImltZyIsIkltYWdlIiwic3JjIiwib25sb2FkIiwiZHJhd0ltYWdlIiwiZmlsbFN0eWxlIiwidGV4dEFsaWduIiwiZmlsbFRleHQiLCJ0b0RhdGFVUkwiLCJhZGRNYXJrZXIiLCJjb29yZHMiLCJwaWN0byIsInB1bmFpc2UiLCJkYXRhcyIsIm9uQ29tcGxldGUiLCJwaWN0b0RhdGEiLCJpY29uVXJsIiwiZmVhdHVyZSIsIkZlYXR1cmUiLCJnZW9tZXRyeSIsIlBvaW50Iiwic2V0U3R5bGUiLCJTdHlsZSIsImltYWdlIiwiSWNvbiIsInNjYWxlIiwiYW5jaG9yIiwic2V0IiwiYWRkRmVhdHVyZSIsImFkZFBvbHlnb24iLCJjb252ZXJ0ZWRDb29yZHMiLCJpIiwibGVuZ3RoIiwicHVzaCIsIlBvbHlnb24iLCJzdHJva2UiLCJTdHJva2UiLCJmaWxsIiwiRmlsbCIsImhleFRvUmdiYSIsInR5cGUiLCJoZXgiLCJhbHBoYSIsImJpZ2ludCIsInBhcnNlSW50IiwicmVwbGFjZSIsInIiLCJnIiwiYiIsInJlbW92ZUZlYXR1cmVzIiwiZ2V0T3ZlcmxheXMiLCJvdmVybGF5Iiwic2V0UG9zaXRpb24iLCJ1bmRlZmluZWQiLCJjbGVhciIsInJlbW92ZUZlYXR1cmVzQnlEYXRhVmFsdWUiLCJkYXRhTmFtZSIsInZhbHVlIiwiZm9yRWFjaEZlYXR1cmUiLCJnZXQiLCJyZW1vdmVGZWF0dXJlIiwiZml0TWFwVG9GZWF0dXJlcyIsImdldEZlYXR1cmVzIiwiZXh0ZW50IiwiZ2V0RXh0ZW50IiwiZ2V0VmlldyIsImZpdCIsInBhZGRpbmciLCJkdXJhdGlvbiIsIm1heFpvb20iLCJzZXRDZW50ZXIiLCJzZXRab29tIiwiZml0TWFwVG9GZWF0dXJlc0J5VHlwZSIsImZlYXR1cmVUeXBlIiwiZmVhdHVyZXMiLCJmaWx0ZXJlZEZlYXR1cmVzIiwiZmlsdGVyIiwiZ2V0R2VvbWV0cnkiLCJMaW5lU3RyaW5nIiwiYm91bmRpbmdFeHRlbnQiLCJzaG93T3ZlcmxheSIsImNvb3JkIiwiZ2V0RWxlbWVudCIsInN0eWxlIiwiZGlzcGxheSIsImhpZGVPdmVybGF5IiwiaGlkZUFsbE92ZXJsYXkiLCJpbml0UG9wdXBPdmVybGF5UmR2IiwiY29vcmRpbmF0ZXMiLCJiYWRnZVR5cGUiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwiY291bGV1ciIsInBsYW5uaW5nIiwidHlwZV9wbGFuaWZpY2F0aW9uX2luaXQiLCJjb2RlX2NvdXJ0IiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyQ29sb3IiLCJzZXRQcm9wZXJ0eSIsImNvbXBsZXRlVXJsIiwiZXF1aXBlbWVudCIsImNsaWVudF9zb3VzY3JpcHRldXIiLCJiYXNlX3VybCIsIndpbmRvdyIsImxvY2F0aW9uIiwib3JpZ2luIiwicGF0aF9jbGllbnQiLCJzcGxpdCIsImlkIiwiam9pbiIsImhyZWYiLCJmb3JtYXR0ZWRfbnVtZXJvX2NsaWVudCIsIm1vbWVudF9wYXNzYWdlIiwibGliZWxsZV9wbGFubmluZyIsImVxdWlwZW1lbnRfdHlwZV9wdWlzc2FuY2UiLCJlcXVpcGVtZW50X3R5cGUiLCJjb250ZW50Q2xpZW50IiwiZXRhdF9jaXZpbCIsImxpYmVsbGVfY291cnQiLCJub20iLCJwcmVub20iLCJjYXRlZ29yaWVfcHJvIiwibGliZWxsZSIsIm5vbV9lbnRyZXByaXNlIiwiYWRyZXNzZSIsImFkcmVzc2VfY29tcGxlbWVudCIsImNvZGVfcG9zdGFsIiwidmlsbGUiLCJjb250cmF0IiwiY29udHJhdF9lbl9jb3VycyIsImNvbnRyYXRfdHlwZSIsImNvbnRlbnRSZHYiLCJsaWJlbGxlU3RhdHV0IiwiaGV1cmVfZGVidXQiLCJEYXRlIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwiaG91ciIsIm1pbnV0ZSIsImhldXJlX2ZpbiIsImluaXRQb3B1cE92ZXJsYXlHcHMiLCJjb250ZW50R3BzIiwiYWdlbnQiLCJkYXRlX2hldXJlIiwib25TaW5nbGVDbGlja0ZlYXR1cmUiLCJmb3JFYWNoRmVhdHVyZUF0UGl4ZWwiLCJwaXhlbCIsImdldENvb3JkaW5hdGVzIiwicHVuYWlzZXMiLCJkYXRhIiwiaW5pdCIsInJlbWFpbmluZ01hcmtlcnMiLCJvbk1hcmtlckFkZGVkIiwiYWdlbnRzIiwiQXJyYXkiLCJpc0FycmF5IiwiY29vcmRvbm5lZXMiLCJjb2RlX2FnZW50IiwiYWdlbnRJZCIsImRlcm5pZXJlX3BvcyIsImZvcm1hdERhdGUiLCJpbnRlcnZlbnRpb25zIiwiaW50ZXJ2ZW50aW9uIiwibG9uZ2l0dWRlIiwibGF0aXR1ZGUiLCJjb2RlIiwidXRpbGlzYXRldXJfYWdlbnQiLCJtb21lbnQiLCJzdGF0dXQiLCJkYXRlU3RyaW5nIiwiZGF0ZSIsImRheSIsIlN0cmluZyIsImdldERhdGUiLCJwYWRTdGFydCIsIm1vbnRoIiwiZ2V0TW9udGgiLCJ5ZWFyIiwiZ2V0RnVsbFllYXIiLCJob3VycyIsImdldEhvdXJzIiwibWludXRlcyIsImdldE1pbnV0ZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Q0FJQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFNQSxVQUFVLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO0FBQzdCLEtBQUdDLHFEQUQwQjtBQUU3QixLQUFHQSxxREFGMEI7QUFHN0IsS0FBR0EscURBSDBCO0FBSTdCLEtBQUdDLHNEQUowQjtBQUs3QixLQUFHQSxzREFMMEI7QUFNN0IsS0FBR0Esc0RB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Q0FBakMsRUFBb0MsR0FBcEMsQ0FBZCxDQVZtQyxDQVVxQjs7QUFDeEQsTUFBTU8sT0FBTyxHQUFHVCxNQUFNLENBQUNGLElBQUksQ0FBQ1ksVUFBTCxFQUFELENBQU4sQ0FBMEJSLFFBQTFCLENBQW1DLENBQW5DLEVBQXNDLEdBQXRDLENBQWhCLENBWG1DLENBV3lCO0FBRTVEOztBQUNBLHNCQUFhSCxHQUFiLGNBQW9CSSxLQUFwQixjQUE2QkUsSUFBN0IsbUJBQXVDRSxLQUF2QyxjQUFnREUsT0FBaEQ7QUFDSCIsImZpbGUiOiJhc3NldHNfanNfbWFwX2pzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hcCBmcm9tICdvbC9NYXAnO1xyXG5pbXBvcnQgVmlldyBmcm9tICdvbC9WaWV3JztcclxuaW1wb3J0IHtUaWxlIGFzIFRpbGVMYXllciwgVmVjdG9yfSBmcm9tICdvbC9sYXllcic7XHJcbmltcG9ydCB7IE9TTSwgWFlaIH0gZnJvbSAnb2wvc291cmNlJztcclxuaW1wb3J0IHsgZnJvbUxvbkxhdCB9IGZyb20gJ29sL3Byb2onO1xyXG5pbXBvcnQgQ29udHJvbCBmcm9tICdvbC9jb250cm9sL0NvbnRyb2wnO1xyXG5pbXBvcnQgeyBkZWZhdWx0cyBhcyBkZWZhdWx0Q29udHJvbHMsIFNjYWxlTGluZSB9IGZyb20gJ29sL2NvbnRyb2wnO1xyXG5pbXBvcnQge0xpbmVTdHJpbmcsIFBvaW50LCBQb2x5Z29ufSBmcm9tIFwib2wvZ2VvbVwiO1xyXG5pbXBvcnQgVmVjdG9yU291cmNlIGZyb20gXCJvbC9zb3VyY2UvVmVjdG9yXCI7XHJcbmltcG9ydCBWZWN0b3JMYXllciBmcm9tIFwib2wvbGF5ZXIvVmVjdG9yXCI7XHJcbmltcG9ydCB7RmVhdHVyZX0gZnJvbSBcIm9sXCI7XHJcbmltcG9ydCB7RmlsbCwgSWNvbiwgU3Ryb2tlLCBTdHlsZX0gZnJvbSBcIm9sL3N0eWxlXCI7XHJcbmltcG9ydCB7IGJvdW5kaW5nRXh0ZW50IH0gZnJvbSAnb2wvZXh0ZW50JztcclxuXHJcblxyXG4vL2ltYWdlc1xyXG5pbXBvcnQgcHVuYWlzZURlZmF1bHRJbWcgZnJvbSAnLi4vaW1hZ2VzL3B1bmFpc2UucG5nJztcclxuaW1wb3J0IHB1bmFpc2VSZWRJbWcgZnJvbSAnLi4vaW1hZ2VzL3B1bmFpc2UtcmVkLnBuZyc7XHJcbmltcG9ydCBwdW5haXNlR3JlZW5JbWcgZnJvbSAnLi4vaW1hZ2VzL3B1bmFpc2UtZ3JlZW4ucG5nJztcclxuaW1wb3J0IHB1bmFpc2VCbHVlSW1nIGZyb20gJy4uL2ltYWdlcy9wdW5haXNlLWJsdWUucG5nJztcclxuaW1wb3J0IHB1bmFpc2VHcHNJbWcgZnJvbSAgICcuLi9pbWFnZXMvcHVuYWlzZS1ncHMucG5nJztcclxuaW1wb3J0IE92ZXJsYXkgZnJvbSBcIm9sL092ZXJsYXlcIjtcclxuXHJcbmNvbnN0IHB1bmFpc2VJbWcgPSBPYmplY3QuZnJlZXplKHtcclxuICAgIDE6IHB1bmFpc2VSZWRJbWcsXHJcbiAgICAyOiBwdW5haXNlUmVkSW1nLFxyXG4gICAgMzogcHVuYWlzZVJlZEltZyxcclxuICAgIDQ6IHB1bmFpc2VCbHVlSW1nLFxyXG4gICAgNTogcHVuYWlzZUJsdWVJbWcsXHJcbiAgICA2OiBwdW5haXNlQmx1ZUltZyxcclxuICAgIDc6IHB1bmFpc2VHcmVlbkltZyxcclxuICAgIFwiZGVmYXVsdFwiOiBwdW5haXNlRGVmYXVsdEltZyxcclxuICAgIFwiZ3BzXCI6IHB1bmFpc2VHcHNJbWdcclxufSk7XHJcblxyXG5leHBvcnQgY29uc3QgcHVuYWlzZVBpY3RvID0gT2JqZWN0LmZyZWV6ZSh7XHJcbiAgICAwOiB7IHVuaWNvZGU6ICdcXHVmMDE3JywgZm9udDogJ2JvbGQgMTBweCBcIkZvbnQgQXdlc29tZSA1IEZyZWVcIicgfSwgLy8gZmEtY2xvY2sgKFJlZ3VsYXIpXHJcbiAgICAxOiB7IHVuaWNvZGU6ICdcXHVmMDYzJywgZm9udDogJ2JvbGQgMTBweCBcIkZvbnQgQXdlc29tZSA1IEZyZWVcIicgfSwgLy8gZmEtYXJyb3ctdXAgKFNvbGlkKVxyXG4gICAgMjogeyB1bmljb2RlOiAnXFx1ZjA0YicsIGZvbnQ6ICdib2xkIDEwcHggXCJGb250IEF3ZXNvbWUgNSBGcmVlXCInIH0sIC8vIGZhLXBsYXkgKFNvbGlkKVxyXG4gICAgMzogeyB1bmljb2RlOiAnXFx1ZjAwYycsIGZvbnQ6ICdib2xkIDEwcHggXCJGb250IEF3ZXNvbWUgNSBGcmVlXCInIH0sIC8vIGZhLWNoZWNrIChTb2xpZClcclxuICAgIDQ6IHsgdW5pY29kZTogJ1xcdWYwMGMnLCBmb250OiAnYm9sZCAxMHB4IFwiRm9udCBBd2Vzb21lIDUgRnJlZVwiJyB9LCAgLy8gZmEtY2hlY2sgKFNvbGlkKVxyXG4gICAgJ2hvbWUnOiB7IHVuaWNvZGU6ICdcXHVlMDY1JywgZm9udDogJ2JvbGQgMTBweCBcIkZvbnQgQXdlc29tZSA1IEZyZWVcIicgfSwgIC8vIGZhLWhvdXNlLXVzZXIgKFNvbGlkKVxyXG4gICAgJ3RlY2gnOiB7IHVuaWNvZGU6ICdcXHVmMDA3JywgZm9udDogJ2JvbGQgMTBweCBcIkZvbnQgQXdlc29tZSA1IEZyZWVcIicgfSAgLy8gZmEtdXNlciAoU29saWQpXHJcbn0pO1xyXG5cclxuXHJcblxyXG4vLyBEw6lmaW5pdGlvbiBkZXMgZm9uZHMgZGUgY2FydGVcclxuY29uc3QgYmFzZUxheWVycyA9IHtcclxuICAgIFwiT3BlblN0cmVldE1hcFwiOiBuZXcgVGlsZUxheWVyKHtcclxuICAgICAgICBzb3VyY2U6IG5ldyBPU00oKSxcclxuICAgICAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgfSksXHJcbiAgICBcIlNhdGVsbGl0ZVwiOiBuZXcgVGlsZUxheWVyKHtcclxuICAgICAgICBzb3VyY2U6IG5ldyBYWVooe1xyXG4gICAgICAgICAgICB1cmw6ICdodHRwczovL3NlcnZlci5hcmNnaXNvbmxpbmUuY29tL0FyY0dJUy9yZXN0L3NlcnZpY2VzL1dvcmxkX0ltYWdlcnkvTWFwU2VydmVyL3RpbGUve3p9L3t5fS97eH0nLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHZpc2libGU6IGZhbHNlLFxyXG4gICAgfSksXHJcbn07XHJcblxyXG5jb25zdCBtYXAgPSBuZXcgTWFwKHtcclxuICAgIHRhcmdldDogJ21hcCcsXHJcbiAgICAvLyBsYXllcnM6IFtvc21MYXllciwgc2F0ZWxsaXRlTGF5ZXJdLFxyXG4gICAgbGF5ZXJzOiBPYmplY3QudmFsdWVzKGJhc2VMYXllcnMpLFxyXG4gICAgdmlldzogbmV3IFZpZXcoe1xyXG4gICAgICAgIGNlbnRlcjogZnJvbUxvbkxhdChbMi4zNjQ0NjM4LCA0OC44NzY0NTc2XSksIC8vIFBhcmlzXHJcbiAgICAgICAgem9vbTogMTAsXHJcbiAgICB9KSxcclxuICAgIGNvbnRyb2xzOiBkZWZhdWx0Q29udHJvbHMoe1xyXG4gICAgICAgIGF0dHJpYnV0aW9uOiBmYWxzZSAsXHJcbiAgICAgICAgcm90YXRlOiBmYWxzZSxcclxuICAgIH0pLmV4dGVuZChbXHJcbiAgICAgICAgbmV3IFNjYWxlTGluZSgpLCAvLyBBam91dGUgdW5lIMOpY2hlbGxlXHJcbiAgICBdKVxyXG59KTtcclxuXHJcbmNsYXNzIExheWVyU3dpdGNoZXJDb250cm9sIGV4dGVuZHMgQ29udHJvbCB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBjb25zdCBidXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTtcclxuICAgICAgICBidXR0b24uaW5uZXJIVE1MID0gJzxpIGNsYXNzPVwiZmFzIGZhLWxheWVyLWdyb3VwXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDBweDtcIj48L2k+JzsgLy8gSWPDtG5lIGR1IGJvdXRvblxyXG4gICAgICAgIGJ1dHRvbi5jbGFzc05hbWUgPSAnbGF5ZXItc3dpdGNoLWJ1dHRvbic7XHJcblxyXG4gICAgICAgIGNvbnN0IGxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBsaXN0LmNsYXNzTmFtZSA9ICdsYXllci1zd2l0Y2gtbGlzdCBoaWRkZW4nO1xyXG5cclxuICAgICAgICAvLyBBam91dGVyIGxlcyBvcHRpb25zXHJcbiAgICAgICAgT2JqZWN0LmtleXMoYmFzZUxheWVycykuZm9yRWFjaChsYXllck5hbWUgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICAgICAgb3B0aW9uLmNsYXNzTmFtZSA9ICdsYXllci1vcHRpb24nO1xyXG4gICAgICAgICAgICBvcHRpb24uaW5uZXJIVE1MID0gbGF5ZXJOYW1lO1xyXG4gICAgICAgICAgICBvcHRpb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKGJhc2VMYXllcnMpLmZvckVhY2gobGF5ZXIgPT4gbGF5ZXIuc2V0VmlzaWJsZShmYWxzZSkpO1xyXG4gICAgICAgICAgICAgICAgYmFzZUxheWVyc1tsYXllck5hbWVdLnNldFZpc2libGUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICBsaXN0LmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBjb250YWluZXIuY2xhc3NOYW1lID0gJ2xheWVyLXN3aXRjaGVyIG9sLWNvbnRyb2wnO1xyXG4gICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChidXR0b24pO1xyXG4gICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChsaXN0KTtcclxuXHJcbiAgICAgICAgc3VwZXIoeyBlbGVtZW50OiBjb250YWluZXIgfSk7XHJcblxyXG4gICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgICAgICAgbGlzdC5jbGFzc0xpc3QudG9nZ2xlKCdoaWRkZW4nKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gQ2FjaGVyIGxhIGxpc3RlIHF1YW5kIG9uIGNsaXF1ZSBhaWxsZXVyc1xyXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghY29udGFpbmVyLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcclxuICAgICAgICAgICAgICAgIGxpc3QuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcblxyXG4vLyBBam91dCBkZXMgY29udHLDtGxlcyDDoCBsYSBjYXJ0ZVxyXG5tYXAuYWRkQ29udHJvbChuZXcgTGF5ZXJTd2l0Y2hlckNvbnRyb2woKSk7XHJcblxyXG4vLyBTb3VyY2UgdmVjdG9yaWVsbGUgcG91ciBzdG9ja2VyIGxlcyBwdW5haXNlc1xyXG5jb25zdCB2ZWN0b3JTb3VyY2UgPSBuZXcgVmVjdG9yU291cmNlKCk7XHJcbmNvbnN0IHZlY3RvckxheWVyID0gbmV3IFZlY3RvckxheWVyKHsgc291cmNlOiB2ZWN0b3JTb3VyY2UgfSk7XHJcbm1hcC5hZGRMYXllcih2ZWN0b3JMYXllcik7XHJcblxyXG5sZXQgb3ZlcmxheVJkdiA9IG5ldyBPdmVybGF5KHtcclxuICAgIGVsZW1lbnQ6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC1yZHYnKSxcclxuICAgIGF1dG9QYW46IHRydWUsXHJcbiAgICBwb3NpdGlvbmluZzogJ2JvdHRvbS1jZW50ZXInLFxyXG4gICAgb2Zmc2V0OiBbMCwgLTQzXSAvLyBkw6ljYWxhZ2UgZW4gcGl4ZWxzIChob3Jpem9udGFsLCB2ZXJ0aWNhbClcclxufSk7XHJcblxyXG5sZXQgb3ZlcmxheUdwcyA9IG5ldyBPdmVybGF5KHtcclxuICAgIGVsZW1lbnQ6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC1ncHMnKSxcclxuICAgIGF1dG9QYW46IHRydWUsXHJcbiAgICBwb3NpdGlvbmluZzogJ2JvdHRvbS1jZW50ZXInLFxyXG4gICAgb2Zmc2V0OiBbMCwgLTMxXSAvLyBkw6ljYWxhZ2UgZW4gcGl4ZWxzIChob3Jpem9udGFsLCB2ZXJ0aWNhbClcclxufSk7XHJcblxyXG5cclxuXHJcbi8vRm9uY3Rpb24gcG91ciBnw6luw6lyZXIgdW5lIGljw7RuZSBwZXJzb25uYWxpc8OpZSBhdmVjIHVuZSBpbWFnZSwgZHUgdGV4dGUgZXQgdW4gcGljdG9ncmFtbWVcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUN1c3RvbUljb24odGV4dCwgdW5pY29kZSwgZm9udCwgaW1nU3JjLCBjb2xvciwgY2FsbGJhY2spIHtcclxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gICAgbGV0IHdpZHRoID0gMjQ7XHJcbiAgICBsZXQgaGVpZ2h0ID0gMzI7XHJcbiAgICBpZiAodW5pY29kZSA9PT0gJycpIHtcclxuICAgICAgICB3aWR0aCA9IDE1O1xyXG4gICAgICAgIGhlaWdodCA9IDIwO1xyXG4gICAgfVxyXG4gICAgY2FudmFzLndpZHRoID0gd2lkdGg7XHJcbiAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcblxyXG4gICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XHJcbiAgICBpbWcuc3JjID0gaW1nU3JjO1xyXG5cclxuICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgLy8gRGVzc2luZXIgbGEgcHVuYWlzZSBkZSBiYXNlXHJcbiAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XHJcblxyXG4gICAgICAgIC8vIEFqb3V0ZXIgZHUgdGV4dGVcclxuICAgICAgICBjdHguZmlsbFN0eWxlID0gY29sb3I7XHJcbiAgICAgICAgY3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xyXG5cclxuICAgICAgICBpZiAodW5pY29kZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgY3R4LmZvbnQgPSAnYm9sZCA5cHggXCJMYXRvXCInO1xyXG4gICAgICAgICAgICBjdHguZmlsbFRleHQodGV4dCwgMTIsIDEzKTtcclxuICAgICAgICAgICAgY3R4LmZvbnQgPSBmb250O1xyXG4gICAgICAgICAgICBjdHguZmlsbFRleHQodW5pY29kZSwgMTIsIDI0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBTaSBwYXMgZCd1bmljb2RlLCBwbGFjZXIgbGUgdGV4dGUgbm9ybWFsZW1lbnRcclxuICAgICAgICAgICAgY3R4LmZvbnQgPSAnYm9sZCA3cHggXCJMYXRvXCInO1xyXG4gICAgICAgICAgICBjdHguZmlsbFRleHQodGV4dCwgd2lkdGggLyAyLCAxMSk7IC8vIENlbnRyZXIgbGUgdGV4dGVcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENvbnZlcnRpciBlbiBEYXRhIFVSTCBldCBhcHBlbGVyIGxlIGNhbGxiYWNrXHJcbiAgICAgICAgY2FsbGJhY2soY2FudmFzLnRvRGF0YVVSTCgpKTtcclxuICAgIH07XHJcbn1cclxuXHJcblxyXG4vLyBGb25jdGlvbiBwb3VyIGFqb3V0ZXIgdW5lIHB1bmFpc2VcclxuZXhwb3J0IGZ1bmN0aW9uIGFkZE1hcmtlcihjb29yZHMsIHRleHQsIHBpY3RvLCBwdW5haXNlLCBjb2xvciwgZGF0YXMsIG9uQ29tcGxldGUpIHtcclxuICAgIGxldCBwaWN0b0RhdGE7XHJcbiAgICBpZiAocGljdG8gPT09ICcnKSB7XHJcbiAgICAgICAgcGljdG9EYXRhID0geyB1bmljb2RlOiAnJywgZm9udDogJycgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcGljdG9EYXRhID0gcHVuYWlzZVBpY3RvW3BpY3RvXTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgdW5pY29kZSwgZm9udCB9ID0gcGljdG9EYXRhOyAvLyBSw6ljdXDDqHJlIHVuaWNvZGUgZXQgZm9udFxyXG4gICAgY29uc3QgaW1nU3JjID0gcHVuYWlzZUltZ1twdW5haXNlXTtcclxuICAgIGNyZWF0ZUN1c3RvbUljb24odGV4dCwgdW5pY29kZSwgZm9udCwgaW1nU3JjLCBjb2xvciwoaWNvblVybCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZlYXR1cmUgPSBuZXcgRmVhdHVyZSh7XHJcbiAgICAgICAgICAgIGdlb21ldHJ5OiBuZXcgUG9pbnQoZnJvbUxvbkxhdChjb29yZHMpKSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgZmVhdHVyZS5zZXRTdHlsZShcclxuICAgICAgICAgICAgbmV3IFN0eWxlKHtcclxuICAgICAgICAgICAgICAgIGltYWdlOiBuZXcgSWNvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgc3JjOiBpY29uVXJsLFxyXG4gICAgICAgICAgICAgICAgICAgIHNjYWxlOiAxLCAvLyBBanVzdGUgc2Vsb24gbGEgdGFpbGxlIGTDqXNpcsOpZVxyXG4gICAgICAgICAgICAgICAgICAgIGFuY2hvcjogWzAuNSwgMV0sIC8vIFBvdXIgYmllbiBhbGlnbmVyIGxhIHB1bmFpc2VcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZmVhdHVyZS5zZXQoJ2RhdGFzJywgZGF0YXMpO1xyXG4gICAgICAgIHZlY3RvclNvdXJjZS5hZGRGZWF0dXJlKGZlYXR1cmUpO1xyXG4gICAgICAgIC8vIEV4w6ljdXRlciBsZSBjYWxsYmFjayBxdWFuZCBsJ2Fqb3V0IGVzdCB0ZXJtaW7DqVxyXG4gICAgICAgIGlmIChvbkNvbXBsZXRlKSBvbkNvbXBsZXRlKCk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFBvbHlnb24oY29vcmRzKXtcclxuICAgIGNvbnN0IGNvbnZlcnRlZENvb3JkcyA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb29yZHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb252ZXJ0ZWRDb29yZHMucHVzaChmcm9tTG9uTGF0KGNvb3Jkc1tpXSkpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb25zdCBmZWF0dXJlID0gbmV3IEZlYXR1cmUoe1xyXG4gICAgICAgIGdlb21ldHJ5OiBuZXcgUG9seWdvbihbY29udmVydGVkQ29vcmRzXSksXHJcbiAgICB9KTtcclxuICAgIGZlYXR1cmUuc2V0U3R5bGUoXHJcbiAgICAgICAgbmV3IFN0eWxlKHtcclxuICAgICAgICAgICAgc3Ryb2tlOiBuZXcgU3Ryb2tlKHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBcIiMwMDBcIixcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGZpbGw6IG5ldyBGaWxsKHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBoZXhUb1JnYmEoXCIjMDAwXCIsIDAuMilcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGRhdGFzID0ge1xyXG4gICAgICAgIHR5cGU6ICdzZWN0ZXVyJ1xyXG4gICAgfTtcclxuICAgIGZlYXR1cmUuc2V0KCdkYXRhcycsIGRhdGFzKTtcclxuICAgIHZlY3RvclNvdXJjZS5hZGRGZWF0dXJlKGZlYXR1cmUpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBoZXhUb1JnYmEoaGV4LCBhbHBoYSA9IDEpIHtcclxuICAgIGNvbnN0IGJpZ2ludCA9IHBhcnNlSW50KGhleC5yZXBsYWNlKCcjJywgJycpLCAxNik7XHJcbiAgICBjb25zdCByID0gKGJpZ2ludCA+PiAxNikgJiAyNTU7XHJcbiAgICBjb25zdCBnID0gKGJpZ2ludCA+PiA4KSAmIDI1NTtcclxuICAgIGNvbnN0IGIgPSBiaWdpbnQgJiAyNTU7XHJcbiAgICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgJHthbHBoYX0pYDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUZlYXR1cmVzKCl7XHJcbiAgICBtYXAuZ2V0T3ZlcmxheXMoKS5mb3JFYWNoKGZ1bmN0aW9uIChvdmVybGF5KSB7IC8vY2FjaGVyIGxlcyBwb3B1cCBvdmVybGF5XHJcbiAgICAgICAgb3ZlcmxheS5zZXRQb3NpdGlvbih1bmRlZmluZWQpO1xyXG4gICAgfSk7XHJcbiAgICB2ZWN0b3JTb3VyY2UuY2xlYXIoKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRmVhdHVyZXNCeURhdGFWYWx1ZShkYXRhTmFtZSwgdmFsdWUpe1xyXG4gICAgdmVjdG9yU291cmNlLmZvckVhY2hGZWF0dXJlKChmZWF0dXJlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZGF0YXMgPSBmZWF0dXJlLmdldCgnZGF0YXMnKTtcclxuICAgICAgICBpZiAoZGF0YXMgJiYgZGF0YXNbZGF0YU5hbWVdID09PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICB2ZWN0b3JTb3VyY2UucmVtb3ZlRmVhdHVyZShmZWF0dXJlKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZpdE1hcFRvRmVhdHVyZXMoKSB7XHJcbiAgICBpZiAodmVjdG9yU291cmNlLmdldEZlYXR1cmVzKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnN0IGV4dGVudCA9IHZlY3RvclNvdXJjZS5nZXRFeHRlbnQoKTsgLy8gUsOpY3Vww6hyZSBsJ8OpdGVuZHVlIGRlIHRvdXRlcyBsZXMgZmVhdHVyZXNcclxuICAgICAgICBtYXAuZ2V0VmlldygpLmZpdChleHRlbnQsIHtcclxuICAgICAgICAgICAgcGFkZGluZzogWzUwLCA1MCwgNTAsIDUwXSxcclxuICAgICAgICAgICAgZHVyYXRpb246IDEwMDAsXHJcbiAgICAgICAgICAgIG1heFpvb206IDE0IC8vw6l2aXRlIGRhbnMgbGUgY2FzIGQndW5lIGZlYXR1cmUgZCfDqnRyZSB0cm9wIHpvb23DqSBzdXIgbGEgY2FydGVcclxuICAgICAgICB9KTsgLy8gQWp1c3RlIGxhIHZ1ZVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICAvLyB2dWUgcGFyIGTDqWZhdXQgc2kgYXVjdW5lIGZlYXR1cmVcclxuICAgICAgICBtYXAuZ2V0VmlldygpLnNldENlbnRlcihmcm9tTG9uTGF0KFsyLjM2NDQ2MzgsIDQ4Ljg3NjQ1NzZdKSk7XHJcbiAgICAgICAgbWFwLmdldFZpZXcoKS5zZXRab29tKDEwKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZpdE1hcFRvRmVhdHVyZXNCeVR5cGUoZmVhdHVyZVR5cGUpIHtcclxuICAgIGNvbnN0IGZlYXR1cmVzID0gdmVjdG9yU291cmNlLmdldEZlYXR1cmVzKCk7XHJcbiAgICBjb25zdCBmaWx0ZXJlZEZlYXR1cmVzID0gZmVhdHVyZXMuZmlsdGVyKGZlYXR1cmUgPT4ge1xyXG4gICAgICAgIGNvbnN0IGdlb21ldHJ5ID0gZmVhdHVyZS5nZXRHZW9tZXRyeSgpO1xyXG4gICAgICAgIGlmIChmZWF0dXJlVHlwZSA9PT0gJ21hcmtlcnMnIHx8IGZlYXR1cmVUeXBlID09PSAncG9pbnRzJykge1xyXG4gICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkgaW5zdGFuY2VvZiBQb2ludDtcclxuICAgICAgICB9IGVsc2UgaWYgKGZlYXR1cmVUeXBlID09PSAncG9seWdvbnMnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBnZW9tZXRyeSBpbnN0YW5jZW9mIFBvbHlnb247XHJcbiAgICAgICAgfSBlbHNlIGlmIChmZWF0dXJlVHlwZSA9PT0gJ2xpbmVzJykge1xyXG4gICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkgaW5zdGFuY2VvZiBMaW5lU3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgaWYgKGZpbHRlcmVkRmVhdHVyZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnN0IGV4dGVudCA9IGJvdW5kaW5nRXh0ZW50KFxyXG4gICAgICAgICAgICBmaWx0ZXJlZEZlYXR1cmVzLm1hcChmZWF0dXJlID0+IGZlYXR1cmUuZ2V0R2VvbWV0cnkoKS5nZXRFeHRlbnQoKSlcclxuICAgICAgICApO1xyXG4gICAgICAgIG1hcC5nZXRWaWV3KCkuZml0KGV4dGVudCwge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiBbNTAsIDUwLCA1MCwgNTBdLFxyXG4gICAgICAgICAgICBkdXJhdGlvbjogMTAwMCxcclxuICAgICAgICAgICAgbWF4Wm9vbTogMTRcclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gdnVlIHBhciBkw6lmYXV0IHNpIGF1Y3VuZSBmZWF0dXJlIGR1IHR5cGUgZGVtYW5kw6lcclxuICAgICAgICBtYXAuZ2V0VmlldygpLnNldENlbnRlcihmcm9tTG9uTGF0KFsyLjM2NDQ2MzgsIDQ4Ljg3NjQ1NzZdKSk7XHJcbiAgICAgICAgbWFwLmdldFZpZXcoKS5zZXRab29tKDEwKTtcclxuICAgIH1cclxufVxyXG5cclxuZnVuY3Rpb24gc2hvd092ZXJsYXkob3ZlcmxheSwgY29vcmQpIHtcclxuICAgIG92ZXJsYXkuZ2V0RWxlbWVudCgpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICAgb3ZlcmxheS5zZXRQb3NpdGlvbihjb29yZCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGhpZGVPdmVybGF5KG92ZXJsYXkpIHtcclxuICAgIG92ZXJsYXkuZ2V0RWxlbWVudCgpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICBvdmVybGF5LnNldFBvc2l0aW9uKHVuZGVmaW5lZCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoaWRlQWxsT3ZlcmxheSgpe1xyXG4gICAgbWFwLmdldE92ZXJsYXlzKCkuZm9yRWFjaChmdW5jdGlvbiAob3ZlcmxheSkge1xyXG4gICAgICAgIGhpZGVPdmVybGF5KG92ZXJsYXkpO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGluaXRQb3B1cE92ZXJsYXlSZHYoZGF0YXMsIGNvb3JkaW5hdGVzKXtcclxuICAgIGNvbnN0IGJhZGdlVHlwZSA9IG92ZXJsYXlSZHYuZ2V0RWxlbWVudCgpLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2JhZGdlLXR5cGUnKVswXTtcclxuICAgIGNvbnN0IGNvdWxldXIgPSBkYXRhcy5wbGFubmluZy50eXBlX3BsYW5pZmljYXRpb25faW5pdC5jb3VsZXVyO1xyXG4gICAgYmFkZ2VUeXBlLmlubmVySFRNTCA9IGAke2RhdGFzLnBsYW5uaW5nLnR5cGVfcGxhbmlmaWNhdGlvbl9pbml0LmNvZGVfY291cnR9YDtcclxuICAgIGJhZGdlVHlwZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBjb3VsZXVyO1xyXG4gICAgb3ZlcmxheVJkdi5nZXRFbGVtZW50KCkuc3R5bGUuYm9yZGVyQ29sb3IgPSBjb3VsZXVyO1xyXG4gICAgb3ZlcmxheVJkdi5nZXRFbGVtZW50KCkuc3R5bGUuc2V0UHJvcGVydHkoJy0tcG9wdXAtYXJyb3ctY29sb3InLCBjb3VsZXVyKTtcclxuICAgIC8vbnVtw6lybyBjbGllbnRcclxuICAgIC8vZ8OpbsOpcmF0aW9uIGxpZW4gcG91ciBvdXZlcnR1cmUgZmljaGUgY2xpZW50XHJcbiAgICBsZXQgY29tcGxldGVVcmwgPSAnJztcclxuICAgIGlmKGRhdGFzLmVxdWlwZW1lbnQgIT09IG51bGwgJiYgZGF0YXMuZXF1aXBlbWVudC5jbGllbnRfc291c2NyaXB0ZXVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBsZXQgYmFzZV91cmwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xyXG4gICAgICAgIGxldCB1cmwgPSBwYXRoX2NsaWVudC5zcGxpdCgnLycpO1xyXG4gICAgICAgIGlmIChkYXRhcy5lcXVpcGVtZW50LmNsaWVudF9zb3VzY3JpcHRldXIuaWQpIHtcclxuICAgICAgICAgICAgbGV0IGlkID0gZGF0YXMuZXF1aXBlbWVudC5jbGllbnRfc291c2NyaXB0ZXVyLmlkO1xyXG4gICAgICAgICAgICBpZiAoZGF0YXMuZXF1aXBlbWVudC5pZCkge1xyXG4gICAgICAgICAgICAgICAgaWQgKz0gJz9pZF9lcXVpcGVtZW50PScgKyBkYXRhcy5lcXVpcGVtZW50LmlkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHVybFt1cmwubGVuZ3RoIC0gMV0gPSBpZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29tcGxldGVVcmwgPSBiYXNlX3VybCArIHVybC5qb2luKCcvJyk7XHJcbiAgICB9XHJcbiAgICBvdmVybGF5UmR2LmdldEVsZW1lbnQoKS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjbGllbnQtaWQnKVswXS5ocmVmID0gY29tcGxldGVVcmw7XHJcbiAgICBvdmVybGF5UmR2LmdldEVsZW1lbnQoKS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjbGllbnQtaWQnKVswXS5pbm5lckhUTUwgPSBgJHtkYXRhcy5lcXVpcGVtZW50LmNsaWVudF9zb3VzY3JpcHRldXIuZm9ybWF0dGVkX251bWVyb19jbGllbnR9YDtcclxuICAgIC8vYmFkZ2UgbW9tZW50XHJcbiAgICBvdmVybGF5UmR2LmdldEVsZW1lbnQoKS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdiYWRnZS1tb21lbnQnKVswXS5pbm5lckhUTUwgPSBgJHtkYXRhcy5wbGFubmluZy5tb21lbnRfcGFzc2FnZS5saWJlbGxlX3BsYW5uaW5nfWA7XHJcbiAgICAvL2JhZGdlIGVxdWlwZW1lbnQgdHlwZVxyXG4gICAgb3ZlcmxheVJkdi5nZXRFbGVtZW50KCkuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnYmFkZ2UtZXF1aXAnKVswXS5pbm5lckhUTUwgPSBgJHtkYXRhcy5lcXVpcGVtZW50LmVxdWlwZW1lbnRfdHlwZV9wdWlzc2FuY2UuZXF1aXBlbWVudF90eXBlLnR5cGV9YDtcclxuICAgIC8vaW5mb3MgY2xpZW50XHJcbiAgICBsZXQgY29udGVudENsaWVudCA9ICcnO1xyXG4gICAgaWYoZGF0YXMuZXF1aXBlbWVudC5jbGllbnRfc291c2NyaXB0ZXVyLmV0YXRfY2l2aWwgIT09IG51bGwpIHsgLy8gcGFydGljdWxpZXJcclxuICAgICAgICBjb250ZW50Q2xpZW50ID0gYDxiPiR7ZGF0YXMuZXF1aXBlbWVudC5jbGllbnRfc291c2NyaXB0ZXVyLmV0YXRfY2l2aWwubGliZWxsZV9jb3VydH0gJHtkYXRhcy5lcXVpcGVtZW50LmNsaWVudF9zb3VzY3JpcHRldXIubm9tfWA7XHJcbiAgICAgICAgaWYgKGRhdGFzLmVxdWlwZW1lbnQuY2xpZW50X3NvdXNjcmlwdGV1ci5wcmVub20gIT09ICcnICYmIGRhdGFzLmVxdWlwZW1lbnQuY2xpZW50X3NvdXNjcmlwdGV1ci5wcmVub20gIT09IG51bGwpIHtcclxuICAgICAgICAgICAgY29udGVudENsaWVudCArPSBgICR7ZGF0YXMuZXF1aXBlbWVudC5jbGllbnRfc291c2NyaXB0ZXVyLnByZW5vbX1gO1xyXG4gICAgICAgIH1cclxuICAgIH1lbHNlIGlmKGRhdGFzLmVxdWlwZW1lbnQuY2xpZW50X3NvdXNjcmlwdGV1ci5jYXRlZ29yaWVfcHJvICE9PSBudWxsKXsgLy9wcm9cclxuICAgICAgICBjb250ZW50Q2xpZW50ID0gYDxiPiR7ZGF0YXMuZXF1aXBlbWVudC5jbGllbnRfc291c2NyaXB0ZXVyLmNhdGVnb3JpZV9wcm8ubGliZWxsZX0gJHtkYXRhcy5lcXVpcGVtZW50LmNsaWVudF9zb3VzY3JpcHRldXIubm9tX2VudHJlcHJpc2V9YDtcclxuICAgIH1cclxuICAgIGNvbnRlbnRDbGllbnQgKz0gYDwvYj48YnI+JHtkYXRhcy5lcXVpcGVtZW50LmFkcmVzc2UuYWRyZXNzZX1gO1xyXG4gICAgaWYoZGF0YXMuZXF1aXBlbWVudC5hZHJlc3NlLmFkcmVzc2VfY29tcGxlbWVudCAhPT0gJycgJiYgZGF0YXMuZXF1aXBlbWVudC5hZHJlc3NlLmFkcmVzc2VfY29tcGxlbWVudCAhPT0gbnVsbCl7XHJcbiAgICAgICAgY29udGVudENsaWVudCArPSBgPGJyPiR7ZGF0YXMuZXF1aXBlbWVudC5hZHJlc3NlLmFkcmVzc2VfY29tcGxlbWVudH1gO1xyXG4gICAgfVxyXG4gICAgY29udGVudENsaWVudCArPSBgPGJyPiR7ZGF0YXMuZXF1aXBlbWVudC5hZHJlc3NlLmNvZGVfcG9zdGFsfSAke2RhdGFzLmVxdWlwZW1lbnQuYWRyZXNzZS52aWxsZX1gO1xyXG4gICAgb3ZlcmxheVJkdi5nZXRFbGVtZW50KCkuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnY2xpZW50LWNvb3Jkb25uZWVzJylbMF0uaW5uZXJIVE1MID0gY29udGVudENsaWVudDtcclxuXHJcbiAgICAvL2JhZGdlIGNvbnRyYXRcclxuICAgIGxldCBjb250cmF0ID0gJyc7XHJcbiAgICBpZihkYXRhcy5lcXVpcGVtZW50LmNvbnRyYXRfZW5fY291cnMgIT09ICcnICYmIGRhdGFzLmVxdWlwZW1lbnQuY29udHJhdF9lbl9jb3VycyAhPT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnRyYXQgPSBgJHtkYXRhcy5lcXVpcGVtZW50LmNvbnRyYXRfZW5fY291cnMuY29udHJhdF90eXBlLmxpYmVsbGVfY291cnR9YDtcclxuICAgIH1cclxuICAgIG92ZXJsYXlSZHYuZ2V0RWxlbWVudCgpLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2JhZGdlLWNvbnRyYXQnKVswXS5pbm5lckhUTUwgPSBjb250cmF0O1xyXG4gICAgbGV0IGNvbnRlbnRSZHYgPSBgPGI+JHtkYXRhcy5wbGFubmluZy5saWJlbGxlU3RhdHV0fTwvYj5gO1xyXG4gICAgaWYoZGF0YXMucGxhbm5pbmcuaGV1cmVfZGVidXQgIT09ICcnICYmIGRhdGFzLnBsYW5uaW5nLmhldXJlX2RlYnV0ICE9PSBudWxsKXtcclxuICAgICAgICBjb250ZW50UmR2ICs9IGA8YnI+SGV1cmUgZMOpYnV0IDogJHtuZXcgRGF0ZShkYXRhcy5wbGFubmluZy5oZXVyZV9kZWJ1dCkudG9Mb2NhbGVUaW1lU3RyaW5nKCdmci1GUicsIHtob3VyOiAnMi1kaWdpdCcsIG1pbnV0ZTonMi1kaWdpdCd9KX1gO1xyXG4gICAgfVxyXG4gICAgaWYoZGF0YXMucGxhbm5pbmcuaGV1cmVfZmluICE9PSAnJyAmJiBkYXRhcy5wbGFubmluZy5oZXVyZV9maW4gIT09IG51bGwpe1xyXG4gICAgICAgIGNvbnRlbnRSZHYgKz0gYCAtIEhldXJlIGZpbiA6ICR7bmV3IERhdGUoZGF0YXMucGxhbm5pbmcuaGV1cmVfZmluKS50b0xvY2FsZVRpbWVTdHJpbmcoJ2ZyLUZSJywge2hvdXI6ICcyLWRpZ2l0JywgbWludXRlOicyLWRpZ2l0J30pfWA7XHJcbiAgICB9XHJcbiAgICBvdmVybGF5UmR2LmdldEVsZW1lbnQoKS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwb3B1cC1yZHYtaW5mbycpWzBdLmlubmVySFRNTCA9IGNvbnRlbnRSZHY7XHJcbiAgICBzaG93T3ZlcmxheShvdmVybGF5UmR2LCBjb29yZGluYXRlcyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGluaXRQb3B1cE92ZXJsYXlHcHMoZGF0YXMsIGNvb3JkaW5hdGVzKXtcclxuICAgIGxldCBjb250ZW50R3BzID0gJyc7XHJcbiAgICBpZihkYXRhcy50eXBlID09ICd0ZWNoJyl7XHJcbiAgICAgICAgY29udGVudEdwcyA9IGBEZXJuacOocmUgcG9zaXRpb24gLSBgO1xyXG4gICAgfVxyXG4gICAgY29udGVudEdwcyArPSBgJHtkYXRhcy5hZ2VudH08YnI+JHtkYXRhcy5kYXRlX2hldXJlfWA7XHJcbiAgICBvdmVybGF5R3BzLmdldEVsZW1lbnQoKS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwb3B1cC1ncHMtaW5mbycpWzBdLmlubmVySFRNTCA9IGNvbnRlbnRHcHM7XHJcbiAgICBzaG93T3ZlcmxheShvdmVybGF5R3BzLCBjb29yZGluYXRlcyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBvblNpbmdsZUNsaWNrRmVhdHVyZShldmVudCkge1xyXG4gICAgaGlkZUFsbE92ZXJsYXkoKTtcclxuICAgIGNvbnN0IGZlYXR1cmUgPSBtYXAuZm9yRWFjaEZlYXR1cmVBdFBpeGVsKGV2ZW50LnBpeGVsLCAoZmVhdHVyZSkgPT4gZmVhdHVyZSk7XHJcbiAgICBpZiAoZmVhdHVyZSAmJiBmZWF0dXJlLmdldCgnZGF0YXMnKSAhPT0gJycpIHtcclxuICAgICAgICBsZXQgZGF0YXMgPSBmZWF0dXJlLmdldCgnZGF0YXMnKTtcclxuICAgICAgICBpZiAoZGF0YXMudHlwZSAmJiBkYXRhcy50eXBlICE9PSAnJykge1xyXG4gICAgICAgICAgICBjb25zdCBjb29yZGluYXRlcyA9IGZlYXR1cmUuZ2V0R2VvbWV0cnkoKS5nZXRDb29yZGluYXRlcygpO1xyXG4gICAgICAgICAgICBpZiAoZGF0YXMudHlwZSA9PT0gJ2dwcycgfHwgZGF0YXMudHlwZSA9PT0gJ3RlY2gnKSB7XHJcbiAgICAgICAgICAgICAgICBpbml0UG9wdXBPdmVybGF5R3BzKGRhdGFzLCBjb29yZGluYXRlcyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YXMudHlwZSA9PT0gJ2ludGVydmVudGlvbicpIHtcclxuICAgICAgICAgICAgICAgIGluaXRQb3B1cE92ZXJsYXlSZHYoZGF0YXMsIGNvb3JkaW5hdGVzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHB1bmFpc2VzKGRhdGEsIGluaXQ9ZmFsc2Upe1xyXG4gICAgcmVtb3ZlRmVhdHVyZXMoKTsgLy9zdXBwcmltZXIgbGVzIG1hcmtlcnMgZGUgbGEgY2FydGVcclxuICAgIGxldCByZW1haW5pbmdNYXJrZXJzID0gMDsgLy8gQ29tcHRldXIgZGVzIG1hcnF1ZXVycyDDoCBham91dGVyXHJcbiAgICBjb25zdCBvbk1hcmtlckFkZGVkID0gKCkgPT4ge1xyXG4gICAgICAgIHJlbWFpbmluZ01hcmtlcnMtLTtcclxuICAgICAgICBpZiAocmVtYWluaW5nTWFya2VycyA9PT0gMCkge1xyXG4gICAgICAgICAgICAvLyBVbmUgZm9pcyBxdWUgdG91cyBsZXMgbWFycXVldXJzIHNvbnQgYWpvdXTDqXMsIGFqdXN0ZXIgbGEgdnVlXHJcbiAgICAgICAgICAgIGZpdE1hcFRvRmVhdHVyZXNCeVR5cGUoJ21hcmtlcnMnKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgaWYgKGRhdGEuYWdlbnRzIHx8IGRhdGEuYWdlbnQpIHtcclxuICAgICAgICBjb25zdCBhZ2VudHMgPSBBcnJheS5pc0FycmF5KGRhdGEuYWdlbnRzKSA/IGRhdGEuYWdlbnRzIDogZGF0YS5hZ2VudCA/IFtkYXRhLmFnZW50XSA6IFtdO1xyXG5cclxuICAgICAgICBhZ2VudHMuZm9yRWFjaCgoYWdlbnQpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFpbml0KSB7XHJcbiAgICAgICAgICAgICAgICAvLyBob21lXHJcbiAgICAgICAgICAgICAgICByZW1haW5pbmdNYXJrZXJzKys7XHJcbiAgICAgICAgICAgICAgICBhZGRNYXJrZXIoYWdlbnQuY29vcmRvbm5lZXMsIGFnZW50LmNvZGVfYWdlbnQsICdob21lJywgJ2RlZmF1bHQnLCAnd2hpdGUnLCB7dHlwZTogJ2hvbWUnLCBhZ2VudElkOiBhZ2VudC5pZH0sIG9uTWFya2VyQWRkZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIGRlcm5pw6hyZSBwb3NpdGlvblxyXG4gICAgICAgICAgICBpZiAoYWdlbnQuZGVybmllcmVfcG9zICE9PSAnJyAmJiBhZ2VudC5kZXJuaWVyZV9wb3MgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJlbWFpbmluZ01hcmtlcnMrKztcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFzID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGFnZW50OiBgQWdlbnQgJHthZ2VudC5jb2RlX2FnZW50fWAsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0ZV9oZXVyZTogZm9ybWF0RGF0ZShhZ2VudC5kZXJuaWVyZV9wb3MuZGF0ZV9oZXVyZSksXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RlY2gnLFxyXG4gICAgICAgICAgICAgICAgICAgIGFnZW50SWQ6IGFnZW50LmlkLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGFkZE1hcmtlcihhZ2VudC5kZXJuaWVyZV9wb3MuY29vcmRvbm5lZXMsIGFnZW50LmNvZGVfYWdlbnQsICd0ZWNoJywgJ2RlZmF1bHQnLCAnd2hpdGUnLCBkYXRhcywgb25NYXJrZXJBZGRlZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmKCFpbml0KSB7XHJcbiAgICAgICAgZGF0YS5pbnRlcnZlbnRpb25zLmZvckVhY2goKGludGVydmVudGlvbikgPT4ge1xyXG4gICAgICAgICAgICBsZXQgY29vcmRzID0gWzAsIDBdO1xyXG4gICAgICAgICAgICBpZiAoaW50ZXJ2ZW50aW9uLmVxdWlwZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIGxldCBhZHJlc3NlID0gaW50ZXJ2ZW50aW9uLmVxdWlwZW1lbnQuYWRyZXNzZTtcclxuICAgICAgICAgICAgICAgIGNvb3JkcyA9IFthZHJlc3NlLmxvbmdpdHVkZSwgYWRyZXNzZS5sYXRpdHVkZV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IHBsYW5uaW5nID0gaW50ZXJ2ZW50aW9uLnBsYW5uaW5nO1xyXG4gICAgICAgICAgICBsZXQgY29kZSA9IHBsYW5uaW5nLnV0aWxpc2F0ZXVyX2FnZW50LmNvZGVfYWdlbnQ7XHJcbiAgICAgICAgICAgIGxldCBtb21lbnQgPSBwbGFubmluZy5tb21lbnRfcGFzc2FnZS5pZDtcclxuICAgICAgICAgICAgbGV0IHN0YXR1dCA9IHBsYW5uaW5nLnN0YXR1dDtcclxuICAgICAgICAgICAgaW50ZXJ2ZW50aW9uLnR5cGUgPSAnaW50ZXJ2ZW50aW9uJztcclxuICAgICAgICAgICAgaW50ZXJ2ZW50aW9uLmFnZW50SWQgPSBwbGFubmluZy51dGlsaXNhdGV1cl9hZ2VudC5pZDtcclxuICAgICAgICAgICAgcmVtYWluaW5nTWFya2VycysrO1xyXG4gICAgICAgICAgICBhZGRNYXJrZXIoY29vcmRzLCBjb2RlLCBzdGF0dXQsIG1vbWVudCwgJ3doaXRlJywgaW50ZXJ2ZW50aW9uLCBvbk1hcmtlckFkZGVkKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGUoZGF0ZVN0cmluZykge1xyXG4gICAgLy8gQ3LDqWUgdW4gb2JqZXQgRGF0ZSDDoCBwYXJ0aXIgZGUgbGEgY2hhw65uZVxyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGRhdGVTdHJpbmcpO1xyXG5cclxuICAgIC8vIFLDqWN1cMOocmUgbGVzIGNvbXBvc2FudHMgZGUgbGEgZGF0ZVxyXG4gICAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpOyAvLyBKb3VyIGF1IGZvcm1hdCBcIjAyXCJcclxuICAgIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7IC8vIE1vaXMgYXUgZm9ybWF0IFwiMDJcIiAobGVzIG1vaXMgY29tbWVuY2VudCDDoCAwKVxyXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTsgLy8gQW5uw6llIGF1IGZvcm1hdCBcIjIwMjVcIlxyXG5cclxuICAgIC8vIFLDqWN1cMOocmUgbCdoZXVyZSBldCBsZXMgbWludXRlc1xyXG4gICAgY29uc3QgaG91cnMgPSBTdHJpbmcoZGF0ZS5nZXRIb3VycygpKS5wYWRTdGFydCgyLCAnMCcpOyAvLyBIZXVyZSBhdSBmb3JtYXQgXCIwN1wiXHJcbiAgICBjb25zdCBtaW51dGVzID0gU3RyaW5nKGRhdGUuZ2V0TWludXRlcygpKS5wYWRTdGFydCgyLCAnMCcpOyAvLyBNaW51dGVzIGF1IGZvcm1hdCBcIjA1XCJcclxuXHJcbiAgICAvLyBSZXRvdXJuZSBsZSBmb3JtYXQgZMOpc2lyw6lcclxuICAgIHJldHVybiBgTGUgJHtkYXl9LyR7bW9udGh9LyR7eWVhcn0gw6AgJHtob3Vyc306JHttaW51dGVzfWA7XHJcbn1cclxuXHJcbmV4cG9ydCB7IG1hcCwgdmVjdG9yU291cmNlLCBvdmVybGF5UmR2LCBvdmVybGF5R3BzIH07Il0sInNvdXJjZVJvb3QiOiIifQ==";
        
        $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);

        
        $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);

        return; yield '';
    }

    /**
     * @codeCoverageIgnore
     */
    public function getTemplateName()
    {
        return "@public_path/build/assets_js_map_js.js";
    }

    /**
     * @codeCoverageIgnore
     */
    public function getDebugInfo()
    {
        return array ();
    }

    public function getSourceContext()
    {
        return new Source("(self[\"webpackChunk\"] = self[\"webpackChunk\"] || []).push([[\"assets_js_map_js\"],{

/***/ \"./assets/images/punaise-blue.png\":
/*!****************************************!*\\
  !*** ./assets/images/punaise-blue.png ***!
  \\****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

\"use strict\";
module.exports = __webpack_require__.p + \"images/punaise-blue.9375d5ad.png\";

/***/ }),

/***/ \"./assets/images/punaise-gps.png\":
/*!***************************************!*\\
  !*** ./assets/images/punaise-gps.png ***!
  \\***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

\"use strict\";
module.exports = __webpack_require__.p + \"images/punaise-gps.6ee5445c.png\";

/***/ }),

/***/ \"./assets/images/punaise-green.png\":
/*!*****************************************!*\\
  !*** ./assets/images/punaise-green.png ***!
  \\*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

\"use strict\";
module.exports = __webpack_require__.p + \"images/punaise-green.d6008b7b.png\";

/***/ }),

/***/ \"./assets/images/punaise-red.png\":
/*!***************************************!*\\
  !*** ./assets/images/punaise-red.png ***!
  \\***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

\"use strict\";
module.exports = __webpack_require__.p + \"images/punaise-red.e834d1a9.png\";

/***/ }),

/***/ \"./assets/images/punaise.png\":
/*!***********************************!*\\
  !*** ./assets/images/punaise.png ***!
  \\***********************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

\"use strict\";
module.exports = __webpack_require__.p + \"images/punaise.ffe226c8.png\";

/***/ }),

/***/ \"./assets/js/map.js\":
/*!**************************!*\\
  !*** ./assets/js/map.js ***!
  \\**************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

\"use strict\";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   \"punaisePicto\": () => (/* binding */ punaisePicto),
/* harmony export */   \"createCustomIcon\": () => (/* binding */ createCustomIcon),
/* harmony export */   \"addMarker\": () => (/* binding */ addMarker),
/* harmony export */   \"addPolygon\": () => (/* binding */ addPolygon),
/* harmony export */   \"removeFeatures\": () => (/* binding */ removeFeatures),
/* harmony export */   \"removeFeaturesByDataValue\": () => (/* binding */ removeFeaturesByDataValue),
/* harmony export */   \"fitMapToFeatures\": () => (/* binding */ fitMapToFeatures),
/* harmony export */   \"fitMapToFeaturesByType\": () => (/* binding */ fitMapToFeaturesByType),
/* harmony export */   \"hideAllOverlay\": () => (/* binding */ hideAllOverlay),
/* harmony export */   \"onSingleClickFeature\": () => (/* binding */ onSingleClickFeature),
/* harmony export */   \"punaises\": () => (/* binding */ punaises),
/* harmony export */   \"formatDate\": () => (/* binding */ formatDate),
/* harmony export */   \"map\": () => (/* binding */ map),
/* harmony export */   \"vectorSource\": () => (/* binding */ vectorSource),
/* harmony export */   \"overlayRdv\": () => (/* binding */ overlayRdv),
/* harmony export */   \"overlayGps\": () => (/* binding */ overlayGps)
/* harmony export */ });
/* harmony import */ var core_js_modules_es_object_freeze_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.freeze.js */ \"./node_modules/core-js/modules/es.object.freeze.js\");
/* harmony import */ var core_js_modules_es_object_freeze_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_freeze_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var core_js_modules_es_object_values_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.values.js */ \"./node_modules/core-js/modules/es.object.values.js\");
/* harmony import */ var core_js_modules_es_object_values_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_values_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.for-each.js */ \"./node_modules/core-js/modules/es.array.for-each.js\");
/* harmony import */ var core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_for_each_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");
/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.object.keys.js */ \"./node_modules/core-js/modules/es.object.keys.js\");
/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.parse-int.js */ \"./node_modules/core-js/modules/es.parse-int.js\");
/* harmony import */ var core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_parse_int_js__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ \"./node_modules/core-js/modules/es.regexp.exec.js\");
/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ \"./node_modules/core-js/modules/es.string.replace.js\");
/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ \"./node_modules/core-js/modules/es.array.concat.js\");
/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ \"./node_modules/core-js/modules/es.array.filter.js\");
/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ \"./node_modules/core-js/modules/es.array.map.js\");
/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ \"./node_modules/core-js/modules/es.string.split.js\");
/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ \"./node_modules/core-js/modules/es.array.join.js\");
/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_12__);
/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! core-js/modules/es.date.to-string.js */ \"./node_modules/core-js/modules/es.date.to-string.js\");
/* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_13__);
/* harmony import */ var core_js_modules_es_array_is_array_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! core-js/modules/es.array.is-array.js */ \"./node_modules/core-js/modules/es.array.is-array.js\");
/* harmony import */ var core_js_modules_es_array_is_array_js__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_is_array_js__WEBPACK_IMPORTED_MODULE_14__);
/* harmony import */ var core_js_modules_es_string_pad_start_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! core-js/modules/es.string.pad-start.js */ \"./node_modules/core-js/modules/es.string.pad-start.js\");
/* harmony import */ var core_js_modules_es_string_pad_start_js__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_pad_start_js__WEBPACK_IMPORTED_MODULE_15__);
/* harmony import */ var core_js_modules_es_object_set_prototype_of_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! core-js/modules/es.object.set-prototype-of.js */ \"./node_modules/core-js/modules/es.object.set-prototype-of.js\");
/* harmony import */ var core_js_modules_es_object_set_prototype_of_js__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_set_prototype_of_js__WEBPACK_IMPORTED_MODULE_16__);
/* harmony import */ var core_js_modules_es_object_get_prototype_of_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! core-js/modules/es.object.get-prototype-of.js */ \"./node_modules/core-js/modules/es.object.get-prototype-of.js\");
/* harmony import */ var core_js_modules_es_object_get_prototype_of_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_prototype_of_js__WEBPACK_IMPORTED_MODULE_17__);
/* harmony import */ var core_js_modules_es_reflect_construct_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! core-js/modules/es.reflect.construct.js */ \"./node_modules/core-js/modules/es.reflect.construct.js\");
/* harmony import */ var core_js_modules_es_reflect_construct_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_reflect_construct_js__WEBPACK_IMPORTED_MODULE_18__);
/* harmony import */ var core_js_modules_es_object_create_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! core-js/modules/es.object.create.js */ \"./node_modules/core-js/modules/es.object.create.js\");
/* harmony import */ var core_js_modules_es_object_create_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_create_js__WEBPACK_IMPORTED_MODULE_19__);
/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ \"./node_modules/core-js/modules/es.symbol.js\");
/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_20__);
/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! core-js/modules/es.symbol.description.js */ \"./node_modules/core-js/modules/es.symbol.description.js\");
/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_21__);
/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");
/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_22__);
/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ \"./node_modules/core-js/modules/es.symbol.iterator.js\");
/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_23__);
/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ \"./node_modules/core-js/modules/es.array.iterator.js\");
/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_24__);
/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ \"./node_modules/core-js/modules/es.string.iterator.js\");
/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_25__);
/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ \"./node_modules/core-js/modules/web.dom-collections.iterator.js\");
/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_26__);
/* harmony import */ var ol_Map__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ol/Map */ \"./node_modules/ol/Map.js\");
/* harmony import */ var ol_View__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ol/View */ \"./node_modules/ol/View.js\");
/* harmony import */ var ol_layer__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ol/layer */ \"./node_modules/ol/layer/Tile.js\");
/* harmony import */ var ol_source__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ol/source */ \"./node_modules/ol/source/OSM.js\");
/* harmony import */ var ol_source__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ol/source */ \"./node_modules/ol/source/XYZ.js\");
/* harmony import */ var ol_proj__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ol/proj */ \"./node_modules/ol/proj.js\");
/* harmony import */ var ol_control_Control__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ol/control/Control */ \"./node_modules/ol/control/Control.js\");
/* harmony import */ var ol_control__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ol/control */ \"./node_modules/ol/control/defaults.js\");
/* harmony import */ var ol_control__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ol/control */ \"./node_modules/ol/control/ScaleLine.js\");
/* harmony import */ var ol_geom__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ol/geom */ \"./node_modules/ol/geom/Point.js\");
/* harmony import */ var ol_geom__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ol/geom */ \"./node_modules/ol/geom/Polygon.js\");
/* harmony import */ var ol_geom__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ol/geom */ \"./node_modules/ol/geom/LineString.js\");
/* harmony import */ var ol_source_Vector__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ol/source/Vector */ \"./node_modules/ol/source/Vector.js\");
/* harmony import */ var ol_layer_Vector__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ol/layer/Vector */ \"./node_modules/ol/layer/Vector.js\");
/* harmony import */ var ol__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ol */ \"./node_modules/ol/Feature.js\");
/* harmony import */ var ol_style__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ol/style */ \"./node_modules/ol/style/Style.js\");
/* harmony import */ var ol_style__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ol/style */ \"./node_modules/ol/style/Icon.js\");
/* harmony import */ var ol_style__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ol/style */ \"./node_modules/ol/style/Stroke.js\");
/* harmony import */ var ol_style__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ol/style */ \"./node_modules/ol/style/Fill.js\");
/* harmony import */ var ol_extent__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ol/extent */ \"./node_modules/ol/extent.js\");
/* harmony import */ var _images_punaise_png__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../images/punaise.png */ \"./assets/images/punaise.png\");
/* harmony import */ var _images_punaise_red_png__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../images/punaise-red.png */ \"./assets/images/punaise-red.png\");
/* harmony import */ var _images_punaise_green_png__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../images/punaise-green.png */ \"./assets/images/punaise-green.png\");
/* harmony import */ var _images_punaise_blue_png__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../images/punaise-blue.png */ \"./assets/images/punaise-blue.png\");
/* harmony import */ var _images_punaise_gps_png__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../images/punaise-gps.png */ \"./assets/images/punaise-gps.png\");
/* harmony import */ var ol_Overlay__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ol/Overlay */ \"./node_modules/ol/Overlay.js\");
function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }

function _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }








































 //images







var punaiseImg = Object.freeze({
  1: _images_punaise_red_png__WEBPACK_IMPORTED_MODULE_29__,
  2: _images_punaise_red_png__WEBPACK_IMPORTED_MODULE_29__,
  3: _images_punaise_red_png__WEBPACK_IMPORTED_MODULE_29__,
  4: _images_punaise_blue_png__WEBPACK_IMPORTED_MODULE_31__,
  5: _images_punaise_blue_png__WEBPACK_IMPORTED_MODULE_31__,
  6: _images_punaise_blue_png__WEBPACK_IMPORTED_MODULE_31__,
  7: _images_punaise_green_png__WEBPACK_IMPORTED_MODULE_30__,
  \"default\": _images_punaise_png__WEBPACK_IMPORTED_MODULE_28__,
  \"gps\": _images_punaise_gps_png__WEBPACK_IMPORTED_MODULE_32__
});
var punaisePicto = Object.freeze({
  0: {
    unicode: \"\\uF017\",
    font: 'bold 10px \"Font Awesome 5 Free\"'
  },
  // fa-clock (Regular)
  1: {
    unicode: \"\\uF063\",
    font: 'bold 10px \"Font Awesome 5 Free\"'
  },
  // fa-arrow-up (Solid)
  2: {
    unicode: \"\\uF04B\",
    font: 'bold 10px \"Font Awesome 5 Free\"'
  },
  // fa-play (Solid)
  3: {
    unicode: \"\\uF00C\",
    font: 'bold 10px \"Font Awesome 5 Free\"'
  },
  // fa-check (Solid)
  4: {
    unicode: \"\\uF00C\",
    font: 'bold 10px \"Font Awesome 5 Free\"'
  },
  // fa-check (Solid)
  'home': {
    unicode: \"\\uE065\",
    font: 'bold 10px \"Font Awesome 5 Free\"'
  },
  // fa-house-user (Solid)
  'tech': {
    unicode: \"\\uF007\",
    font: 'bold 10px \"Font Awesome 5 Free\"'
  } // fa-user (Solid)

}); // Définition des fonds de carte

var baseLayers = {
  \"OpenStreetMap\": new ol_layer__WEBPACK_IMPORTED_MODULE_33__.default({
    source: new ol_source__WEBPACK_IMPORTED_MODULE_34__.default(),
    visible: true
  }),
  \"Satellite\": new ol_layer__WEBPACK_IMPORTED_MODULE_33__.default({
    source: new ol_source__WEBPACK_IMPORTED_MODULE_35__.default({
      url: 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}'
    }),
    visible: false
  })
};
var map = new ol_Map__WEBPACK_IMPORTED_MODULE_36__.default({
  target: 'map',
  // layers: [osmLayer, satelliteLayer],
  layers: Object.values(baseLayers),
  view: new ol_View__WEBPACK_IMPORTED_MODULE_37__.default({
    center: (0,ol_proj__WEBPACK_IMPORTED_MODULE_27__.fromLonLat)([2.3644638, 48.8764576]),
    // Paris
    zoom: 10
  }),
  controls: (0,ol_control__WEBPACK_IMPORTED_MODULE_38__.defaults)({
    attribution: false,
    rotate: false
  }).extend([new ol_control__WEBPACK_IMPORTED_MODULE_39__.default() // Ajoute une échelle
  ])
});

var LayerSwitcherControl = /*#__PURE__*/function (_Control) {
  _inherits(LayerSwitcherControl, _Control);

  var _super = _createSuper(LayerSwitcherControl);

  function LayerSwitcherControl() {
    var _this;

    _classCallCheck(this, LayerSwitcherControl);

    var button = document.createElement('button');
    button.innerHTML = '<i class=\"fas fa-layer-group\" style=\"margin-right: 0px;\"></i>'; // Icône du bouton

    button.className = 'layer-switch-button';
    var list = document.createElement('div');
    list.className = 'layer-switch-list hidden'; // Ajouter les options

    Object.keys(baseLayers).forEach(function (layerName) {
      var option = document.createElement('div');
      option.className = 'layer-option';
      option.innerHTML = layerName;
      option.addEventListener('click', function () {
        Object.values(baseLayers).forEach(function (layer) {
          return layer.setVisible(false);
        });
        baseLayers[layerName].setVisible(true);
        list.classList.add('hidden');
      });
      list.appendChild(option);
    });
    var container = document.createElement('div');
    container.className = 'layer-switcher ol-control';
    container.appendChild(button);
    container.appendChild(list);
    _this = _super.call(this, {
      element: container
    });
    button.addEventListener('click', function () {
      list.classList.toggle('hidden');
    }); // Cacher la liste quand on clique ailleurs

    document.addEventListener('click', function (event) {
      if (!container.contains(event.target)) {
        list.classList.add('hidden');
      }
    });
    return _this;
  }

  return LayerSwitcherControl;
}(ol_control_Control__WEBPACK_IMPORTED_MODULE_40__.default); // Ajout des contrôles à la carte


map.addControl(new LayerSwitcherControl()); // Source vectorielle pour stocker les punaises

var vectorSource = new ol_source_Vector__WEBPACK_IMPORTED_MODULE_41__.default();
var vectorLayer = new ol_layer_Vector__WEBPACK_IMPORTED_MODULE_42__.default({
  source: vectorSource
});
map.addLayer(vectorLayer);
var overlayRdv = new ol_Overlay__WEBPACK_IMPORTED_MODULE_43__.default({
  element: document.getElementById('popup-rdv'),
  autoPan: true,
  positioning: 'bottom-center',
  offset: [0, -43] // décalage en pixels (horizontal, vertical)

});
var overlayGps = new ol_Overlay__WEBPACK_IMPORTED_MODULE_43__.default({
  element: document.getElementById('popup-gps'),
  autoPan: true,
  positioning: 'bottom-center',
  offset: [0, -31] // décalage en pixels (horizontal, vertical)

}); //Fonction pour générer une icône personnalisée avec une image, du texte et un pictogramme

function createCustomIcon(text, unicode, font, imgSrc, color, callback) {
  var canvas = document.createElement('canvas');
  var width = 24;
  var height = 32;

  if (unicode === '') {
    width = 15;
    height = 20;
  }

  canvas.width = width;
  canvas.height = height;
  var ctx = canvas.getContext('2d');
  var img = new Image();
  img.src = imgSrc;

  img.onload = function () {
    // Dessiner la punaise de base
    ctx.drawImage(img, 0, 0, canvas.width, canvas.height); // Ajouter du texte

    ctx.fillStyle = color;
    ctx.textAlign = 'center';

    if (unicode !== '') {
      ctx.font = 'bold 9px \"Lato\"';
      ctx.fillText(text, 12, 13);
      ctx.font = font;
      ctx.fillText(unicode, 12, 24);
    } else {
      // Si pas d'unicode, placer le texte normalement
      ctx.font = 'bold 7px \"Lato\"';
      ctx.fillText(text, width / 2, 11); // Centrer le texte
    } // Convertir en Data URL et appeler le callback


    callback(canvas.toDataURL());
  };
} // Fonction pour ajouter une punaise

function addMarker(coords, text, picto, punaise, color, datas, onComplete) {
  var pictoData;

  if (picto === '') {
    pictoData = {
      unicode: '',
      font: ''
    };
  } else {
    pictoData = punaisePicto[picto];
  }

  var _pictoData = pictoData,
      unicode = _pictoData.unicode,
      font = _pictoData.font; // Récupère unicode et font

  var imgSrc = punaiseImg[punaise];
  createCustomIcon(text, unicode, font, imgSrc, color, function (iconUrl) {
    var feature = new ol__WEBPACK_IMPORTED_MODULE_44__.default({
      geometry: new ol_geom__WEBPACK_IMPORTED_MODULE_45__.default((0,ol_proj__WEBPACK_IMPORTED_MODULE_27__.fromLonLat)(coords))
    });
    feature.setStyle(new ol_style__WEBPACK_IMPORTED_MODULE_46__.default({
      image: new ol_style__WEBPACK_IMPORTED_MODULE_47__.default({
        src: iconUrl,
        scale: 1,
        // Ajuste selon la taille désirée
        anchor: [0.5, 1] // Pour bien aligner la punaise

      })
    }));
    feature.set('datas', datas);
    vectorSource.addFeature(feature); // Exécuter le callback quand l'ajout est terminé

    if (onComplete) onComplete();
  });
}
function addPolygon(coords) {
  var convertedCoords = [];

  for (var i = 0; i < coords.length; i++) {
    convertedCoords.push((0,ol_proj__WEBPACK_IMPORTED_MODULE_27__.fromLonLat)(coords[i]));
  }

  var feature = new ol__WEBPACK_IMPORTED_MODULE_44__.default({
    geometry: new ol_geom__WEBPACK_IMPORTED_MODULE_48__.default([convertedCoords])
  });
  feature.setStyle(new ol_style__WEBPACK_IMPORTED_MODULE_46__.default({
    stroke: new ol_style__WEBPACK_IMPORTED_MODULE_49__.default({
      color: \"#000\",
      width: 0.5
    }),
    fill: new ol_style__WEBPACK_IMPORTED_MODULE_50__.default({
      color: hexToRgba(\"#000\", 0.2)
    })
  }));
  var datas = {
    type: 'secteur'
  };
  feature.set('datas', datas);
  vectorSource.addFeature(feature);
}

function hexToRgba(hex) {
  var alpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
  var bigint = parseInt(hex.replace('#', ''), 16);
  var r = bigint >> 16 & 255;
  var g = bigint >> 8 & 255;
  var b = bigint & 255;
  return \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(alpha, \")\");
}

function removeFeatures() {
  map.getOverlays().forEach(function (overlay) {
    //cacher les popup overlay
    overlay.setPosition(undefined);
  });
  vectorSource.clear();
}
function removeFeaturesByDataValue(dataName, value) {
  vectorSource.forEachFeature(function (feature) {
    var datas = feature.get('datas');

    if (datas && datas[dataName] === value) {
      vectorSource.removeFeature(feature);
    }
  });
}
function fitMapToFeatures() {
  if (vectorSource.getFeatures().length > 0) {
    var extent = vectorSource.getExtent(); // Récupère l'étendue de toutes les features

    map.getView().fit(extent, {
      padding: [50, 50, 50, 50],
      duration: 1000,
      maxZoom: 14 //évite dans le cas d'une feature d'être trop zoomé sur la carte

    }); // Ajuste la vue
  } else {
    // vue par défaut si aucune feature
    map.getView().setCenter((0,ol_proj__WEBPACK_IMPORTED_MODULE_27__.fromLonLat)([2.3644638, 48.8764576]));
    map.getView().setZoom(10);
  }
}
function fitMapToFeaturesByType(featureType) {
  var features = vectorSource.getFeatures();
  var filteredFeatures = features.filter(function (feature) {
    var geometry = feature.getGeometry();

    if (featureType === 'markers' || featureType === 'points') {
      return geometry instanceof ol_geom__WEBPACK_IMPORTED_MODULE_45__.default;
    } else if (featureType === 'polygons') {
      return geometry instanceof ol_geom__WEBPACK_IMPORTED_MODULE_48__.default;
    } else if (featureType === 'lines') {
      return geometry instanceof ol_geom__WEBPACK_IMPORTED_MODULE_51__.default;
    }

    return false;
  });

  if (filteredFeatures.length > 0) {
    var extent = (0,ol_extent__WEBPACK_IMPORTED_MODULE_52__.boundingExtent)(filteredFeatures.map(function (feature) {
      return feature.getGeometry().getExtent();
    }));
    map.getView().fit(extent, {
      padding: [50, 50, 50, 50],
      duration: 1000,
      maxZoom: 14
    });
  } else {
    // vue par défaut si aucune feature du type demandé
    map.getView().setCenter((0,ol_proj__WEBPACK_IMPORTED_MODULE_27__.fromLonLat)([2.3644638, 48.8764576]));
    map.getView().setZoom(10);
  }
}

function showOverlay(overlay, coord) {
  overlay.getElement().style.display = 'block';
  overlay.setPosition(coord);
}

function hideOverlay(overlay) {
  overlay.getElement().style.display = 'none';
  overlay.setPosition(undefined);
}

function hideAllOverlay() {
  map.getOverlays().forEach(function (overlay) {
    hideOverlay(overlay);
  });
}

function initPopupOverlayRdv(datas, coordinates) {
  var badgeType = overlayRdv.getElement().getElementsByClassName('badge-type')[0];
  var couleur = datas.planning.type_planification_init.couleur;
  badgeType.innerHTML = \"\".concat(datas.planning.type_planification_init.code_court);
  badgeType.style.backgroundColor = couleur;
  overlayRdv.getElement().style.borderColor = couleur;
  overlayRdv.getElement().style.setProperty('--popup-arrow-color', couleur); //numéro client
  //génération lien pour ouverture fiche client

  var completeUrl = '';

  if (datas.equipement !== null && datas.equipement.client_souscripteur !== undefined) {
    var base_url = window.location.origin;
    var url = path_client.split('/');

    if (datas.equipement.client_souscripteur.id) {
      var id = datas.equipement.client_souscripteur.id;

      if (datas.equipement.id) {
        id += '?id_equipement=' + datas.equipement.id;
      }

      url[url.length - 1] = id;
    }

    completeUrl = base_url + url.join('/');
  }

  overlayRdv.getElement().getElementsByClassName('client-id')[0].href = completeUrl;
  overlayRdv.getElement().getElementsByClassName('client-id')[0].innerHTML = \"\".concat(datas.equipement.client_souscripteur.formatted_numero_client); //badge moment

  overlayRdv.getElement().getElementsByClassName('badge-moment')[0].innerHTML = \"\".concat(datas.planning.moment_passage.libelle_planning); //badge equipement type

  overlayRdv.getElement().getElementsByClassName('badge-equip')[0].innerHTML = \"\".concat(datas.equipement.equipement_type_puissance.equipement_type.type); //infos client

  var contentClient = '';

  if (datas.equipement.client_souscripteur.etat_civil !== null) {
    // particulier
    contentClient = \"<b>\".concat(datas.equipement.client_souscripteur.etat_civil.libelle_court, \" \").concat(datas.equipement.client_souscripteur.nom);

    if (datas.equipement.client_souscripteur.prenom !== '' && datas.equipement.client_souscripteur.prenom !== null) {
      contentClient += \" \".concat(datas.equipement.client_souscripteur.prenom);
    }
  } else if (datas.equipement.client_souscripteur.categorie_pro !== null) {
    //pro
    contentClient = \"<b>\".concat(datas.equipement.client_souscripteur.categorie_pro.libelle, \" \").concat(datas.equipement.client_souscripteur.nom_entreprise);
  }

  contentClient += \"</b><br>\".concat(datas.equipement.adresse.adresse);

  if (datas.equipement.adresse.adresse_complement !== '' && datas.equipement.adresse.adresse_complement !== null) {
    contentClient += \"<br>\".concat(datas.equipement.adresse.adresse_complement);
  }

  contentClient += \"<br>\".concat(datas.equipement.adresse.code_postal, \" \").concat(datas.equipement.adresse.ville);
  overlayRdv.getElement().getElementsByClassName('client-coordonnees')[0].innerHTML = contentClient; //badge contrat

  var contrat = '';

  if (datas.equipement.contrat_en_cours !== '' && datas.equipement.contrat_en_cours !== null) {
    contrat = \"\".concat(datas.equipement.contrat_en_cours.contrat_type.libelle_court);
  }

  overlayRdv.getElement().getElementsByClassName('badge-contrat')[0].innerHTML = contrat;
  var contentRdv = \"<b>\".concat(datas.planning.libelleStatut, \"</b>\");

  if (datas.planning.heure_debut !== '' && datas.planning.heure_debut !== null) {
    contentRdv += \"<br>Heure d\\xE9but : \".concat(new Date(datas.planning.heure_debut).toLocaleTimeString('fr-FR', {
      hour: '2-digit',
      minute: '2-digit'
    }));
  }

  if (datas.planning.heure_fin !== '' && datas.planning.heure_fin !== null) {
    contentRdv += \" - Heure fin : \".concat(new Date(datas.planning.heure_fin).toLocaleTimeString('fr-FR', {
      hour: '2-digit',
      minute: '2-digit'
    }));
  }

  overlayRdv.getElement().getElementsByClassName('popup-rdv-info')[0].innerHTML = contentRdv;
  showOverlay(overlayRdv, coordinates);
}

function initPopupOverlayGps(datas, coordinates) {
  var contentGps = '';

  if (datas.type == 'tech') {
    contentGps = \"Derni\\xE8re position - \";
  }

  contentGps += \"\".concat(datas.agent, \"<br>\").concat(datas.date_heure);
  overlayGps.getElement().getElementsByClassName('popup-gps-info')[0].innerHTML = contentGps;
  showOverlay(overlayGps, coordinates);
}

function onSingleClickFeature(event) {
  hideAllOverlay();
  var feature = map.forEachFeatureAtPixel(event.pixel, function (feature) {
    return feature;
  });

  if (feature && feature.get('datas') !== '') {
    var datas = feature.get('datas');

    if (datas.type && datas.type !== '') {
      var coordinates = feature.getGeometry().getCoordinates();

      if (datas.type === 'gps' || datas.type === 'tech') {
        initPopupOverlayGps(datas, coordinates);
      } else if (datas.type === 'intervention') {
        initPopupOverlayRdv(datas, coordinates);
      }
    }
  }
}
function punaises(data) {
  var init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  removeFeatures(); //supprimer les markers de la carte

  var remainingMarkers = 0; // Compteur des marqueurs à ajouter

  var onMarkerAdded = function onMarkerAdded() {
    remainingMarkers--;

    if (remainingMarkers === 0) {
      // Une fois que tous les marqueurs sont ajoutés, ajuster la vue
      fitMapToFeaturesByType('markers');
    }
  };

  if (data.agents || data.agent) {
    var agents = Array.isArray(data.agents) ? data.agents : data.agent ? [data.agent] : [];
    agents.forEach(function (agent) {
      if (!init) {
        // home
        remainingMarkers++;
        addMarker(agent.coordonnees, agent.code_agent, 'home', 'default', 'white', {
          type: 'home',
          agentId: agent.id
        }, onMarkerAdded);
      } // dernière position


      if (agent.derniere_pos !== '' && agent.derniere_pos !== null) {
        remainingMarkers++;
        var datas = {
          agent: \"Agent \".concat(agent.code_agent),
          date_heure: formatDate(agent.derniere_pos.date_heure),
          type: 'tech',
          agentId: agent.id
        };
        addMarker(agent.derniere_pos.coordonnees, agent.code_agent, 'tech', 'default', 'white', datas, onMarkerAdded);
      }
    });
  }

  if (!init) {
    data.interventions.forEach(function (intervention) {
      var coords = [0, 0];

      if (intervention.equipement) {
        var adresse = intervention.equipement.adresse;
        coords = [adresse.longitude, adresse.latitude];
      }

      var planning = intervention.planning;
      var code = planning.utilisateur_agent.code_agent;
      var moment = planning.moment_passage.id;
      var statut = planning.statut;
      intervention.type = 'intervention';
      intervention.agentId = planning.utilisateur_agent.id;
      remainingMarkers++;
      addMarker(coords, code, statut, moment, 'white', intervention, onMarkerAdded);
    });
  }
}
function formatDate(dateString) {
  // Crée un objet Date à partir de la chaîne
  var date = new Date(dateString); // Récupère les composants de la date

  var day = String(date.getDate()).padStart(2, '0'); // Jour au format \"02\"

  var month = String(date.getMonth() + 1).padStart(2, '0'); // Mois au format \"02\" (les mois commencent à 0)

  var year = date.getFullYear(); // Année au format \"2025\"
  // Récupère l'heure et les minutes

  var hours = String(date.getHours()).padStart(2, '0'); // Heure au format \"07\"

  var minutes = String(date.getMinutes()).padStart(2, '0'); // Minutes au format \"05\"
  // Retourne le format désiré

  return \"Le \".concat(day, \"/\").concat(month, \"/\").concat(year, \" \\xE0 \").concat(hours, \":\").concat(minutes);
}


/***/ })

}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvbWFwLmpzIl0sIm5hbWVzIjpbInB1bmFpc2VJbWciLCJPYmplY3QiLCJmcmVlemUiLCJwdW5haXNlUmVkSW1nIiwicHVuYWlzZUJsdWVJbWciLCJwdW5haXNlR3JlZW5JbWciLCJwdW5haXNlRGVmYXVsdEltZyIsInB1bmFpc2VHcHNJbWciLCJwdW5haXNlUGljdG8iLCJ1bmljb2RlIiwiZm9udCIsImJhc2VMYXllcnMiLCJUaWxlTGF5ZXIiLCJzb3VyY2UiLCJPU00iLCJ2aXNpYmxlIiwiWFlaIiwidXJsIiwibWFwIiwiTWFwIiwidGFyZ2V0IiwibGF5ZXJzIiwidmFsdWVzIiwidmlldyIsIlZpZXciLCJjZW50ZXIiLCJmcm9tTG9uTGF0Iiwiem9vbSIsImNvbnRyb2xzIiwiZGVmYXVsdENvbnRyb2xzIiwiYXR0cmlidXRpb24iLCJyb3RhdGUiLCJleHRlbmQiLCJTY2FsZUxpbmUiLCJMYXllclN3aXRjaGVyQ29udHJvbCIsImJ1dHRvbiIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImlubmVySFRNTCIsImNsYXNzTmFtZSIsImxpc3QiLCJrZXlzIiwiZm9yRWFjaCIsImxheWVyTmFtZSIsIm9wdGlvbiIsImFkZEV2ZW50TGlzdGVuZXIiLCJsYXllciIsInNldFZpc2libGUiLCJjbGFzc0xpc3QiLCJhZGQiLCJhcHBlbmRDaGlsZCIsImNvbnRhaW5lciIsImVsZW1lbnQiLCJ0b2dnbGUiLCJldmVudCIsImNvbnRhaW5zIiwiQ29udHJvbCIsImFkZENvbnRyb2wiLCJ2ZWN0b3JTb3VyY2UiLCJWZWN0b3JTb3VyY2UiLCJ2ZWN0b3JMYXllciIsIlZlY3RvckxheWVyIiwiYWRkTGF5ZXIiLCJvdmVybGF5UmR2IiwiT3ZlcmxheSIsImdldEVsZW1lbnRCeUlkIiwiYXV0b1BhbiIsInBvc2l0aW9uaW5nIiwib2Zmc2V0Iiwib3ZlcmxheUdwcyIsImNyZWF0ZUN1c3RvbUljb24iLCJ0ZXh0IiwiaW1nU3JjIiwiY29sb3IiLCJjYWxsYmFjayIsImNhbnZhcyIsIndpZHRoIiwiaGVpZ2h0IiwiY3R4IiwiZ2V0Q29udGV4dCIsImltZyIsIkltYWdlIiwic3JjIiwib25sb2FkIiwiZHJhd0ltYWdlIiwiZmlsbFN0eWxlIiwidGV4dEFsaWduIiwiZmlsbFRleHQiLCJ0b0RhdGFVUkwiLCJhZGRNYXJrZXIiLCJjb29yZHMiLCJwaWN0byIsInB1bmFpc2UiLCJkYXRhcyIsIm9uQ29tcGxldGUiLCJwaWN0b0RhdGEiLCJpY29uVXJsIiwiZmVhdHVyZSIsIkZlYXR1cmUiLCJnZW9tZXRyeSIsIlBvaW50Iiwic2V0U3R5bGUiLCJTdHlsZSIsImltYWdlIiwiSWNvbiIsInNjYWxlIiwiYW5jaG9yIiwic2V0IiwiYWRkRmVhdHVyZSIsImFkZFBvbHlnb24iLCJjb252ZXJ0ZWRDb29yZHMiLCJpIiwibGVuZ3RoIiwicHVzaCIsIlBvbHlnb24iLCJzdHJva2UiLCJTdHJva2UiLCJmaWxsIiwiRmlsbCIsImhleFRvUmdiYSIsInR5cGUiLCJoZXgiLCJhbHBoYSIsImJpZ2ludCIsInBhcnNlSW50IiwicmVwbGFjZSIsInIiLCJnIiwiYiIsInJlbW92ZUZlYXR1cmVzIiwiZ2V0T3ZlcmxheXMiLCJvdmVybGF5Iiwic2V0UG9zaXRpb24iLCJ1bmRlZmluZWQiLCJjbGVhciIsInJlbW92ZUZlYXR1cmVzQnlEYXRhVmFsdWUiLCJkYXRhTmFtZSIsInZhbHVlIiwiZm9yRWFjaEZlYXR1cmUiLCJnZXQiLCJyZW1vdmVGZWF0dXJlIiwiZml0TWFwVG9GZWF0dXJlcyIsImdldEZlYXR1cmVzIiwiZXh0ZW50IiwiZ2V0RXh0ZW50IiwiZ2V0VmlldyIsImZpdCIsInBhZGRpbmciLCJkdXJhdGlvbiIsIm1heFpvb20iLCJzZXRDZW50ZXIiLCJzZXRab29tIiwiZml0TWFwVG9GZWF0dXJlc0J5VHlwZSIsImZlYXR1cmVUeXBlIiwiZmVhdHVyZXMiLCJmaWx0ZXJlZEZlYXR1cmVzIiwiZmlsdGVyIiwiZ2V0R2VvbWV0cnkiLCJMaW5lU3RyaW5nIiwiYm91bmRpbmdFeHRlbnQiLCJzaG93T3ZlcmxheSIsImNvb3JkIiwiZ2V0RWxlbWVudCIsInN0eWxlIiwiZGlzcGxheSIsImhpZGVPdmVybGF5IiwiaGlkZUFsbE92ZXJsYXkiLCJpbml0UG9wdXBPdmVybGF5UmR2IiwiY29vcmRpbmF0ZXMiLCJiYWRnZVR5cGUiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwiY291bGV1ciIsInBsYW5uaW5nIiwidHlwZV9wbGFuaWZpY2F0aW9uX2luaXQiLCJjb2RlX2NvdXJ0IiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyQ29sb3IiLCJzZXRQcm9wZXJ0eSIsImNvbXBsZXRlVXJsIiwiZXF1aXBlbWVudCIsImNsaWVudF9zb3VzY3JpcHRldXIiLCJiYXNlX3VybCIsIndpbmRvdyIsImxvY2F0aW9uIiwib3JpZ2luIiwicGF0aF9jbGllbnQiLCJzcGxpdCIsImlkIiwiam9pbiIsImhyZWYiLCJmb3JtYXR0ZWRfbnVtZXJvX2NsaWVudCIsIm1vbWVudF9wYXNzYWdlIiwibGliZWxsZV9wbGFubmluZyIsImVxdWlwZW1lbnRfdHlwZV9wdWlzc2FuY2UiLCJlcXVpcGVtZW50X3R5cGUiLCJjb250ZW50Q2xpZW50IiwiZXRhdF9jaXZpbCIsImxpYmVsbGVfY291cnQiLCJub20iLCJwcmVub20iLCJjYXRlZ29yaWVfcHJvIiwibGliZWxsZSIsIm5vbV9lbnRyZXByaXNlIiwiYWRyZXNzZSIsImFkcmVzc2VfY29tcGxlbWVudCIsImNvZGVfcG9zdGFsIiwidmlsbGUiLCJjb250cmF0IiwiY29udHJhdF9lbl9jb3VycyIsImNvbnRyYXRfdHlwZSIsImNvbnRlbnRSZHYiLCJsaWJlbGxlU3RhdHV0IiwiaGV1cmVfZGVidXQiLCJEYXRlIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwiaG91ciIsIm1pbnV0ZSIsImhldXJlX2ZpbiIsImluaXRQb3B1cE92ZXJsYXlHcHMiLCJjb250ZW50R3BzIiwiYWdlbnQiLCJkYXRlX2hldXJlIiwib25TaW5nbGVDbGlja0ZlYXR1cmUiLCJmb3JFYWNoRmVhdHVyZUF0UGl4ZWwiLCJwaXhlbCIsImdldENvb3JkaW5hdGVzIiwicHVuYWlzZXMiLCJkYXRhIiwiaW5pdCIsInJlbWFpbmluZ01hcmtlcnMiLCJvbk1hcmtlckFkZGVkIiwiYWdlbnRzIiwiQXJyYXkiLCJpc0FycmF5IiwiY29vcmRvbm5lZXMiLCJjb2RlX2FnZW50IiwiYWdlbnRJZCIsImRlcm5pZXJlX3BvcyIsImZvcm1hdERhdGUiLCJpbnRlcnZlbnRpb25zIiwiaW50ZXJ2ZW50aW9uIiwibG9uZ2l0dWRlIiwibGF0aXR1ZGUiLCJjb2RlIiwidXRpbGlzYXRldXJfYWdlbnQiLCJtb21lbnQiLCJzdGF0dXQiLCJkYXRlU3RyaW5nIiwiZGF0ZSIsImRheSIsIlN0cmluZyIsImdldERhdGUiLCJwYWRTdGFydCIsIm1vbnRoIiwiZ2V0TW9udGgiLCJ5ZWFyIiwiZ2V0RnVsbFllYXIiLCJob3VycyIsImdldEhvdXJzIiwibWludXRlcyIsImdldE1pbnV0ZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Q0FJQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFNQSxVQUFVLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO0FBQzdCLEtBQUdDLHFEQUQwQjtBQUU3QixLQUFHQSxxREFGMEI7QUFHN0IsS0FBR0EscURBSDBCO0FBSTdCLEtBQUdDLHNEQUowQjtBQUs3QixLQUFHQSxzREFMMEI7QUFNN0IsS0FBR0Esc0RB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Q0FBakMsRUFBb0MsR0FBcEMsQ0FBZCxDQVZtQyxDQVVxQjs7QUFDeEQsTUFBTU8sT0FBTyxHQUFHVCxNQUFNLENBQUNGLElBQUksQ0FBQ1ksVUFBTCxFQUFELENBQU4sQ0FBMEJSLFFBQTFCLENBQW1DLENBQW5DLEVBQXNDLEdBQXRDLENBQWhCLENBWG1DLENBV3lCO0FBRTVEOztBQUNBLHNCQUFhSCxHQUFiLGNBQW9CSSxLQUFwQixjQUE2QkUsSUFBN0IsbUJBQXVDRSxLQUF2QyxjQUFnREUsT0FBaEQ7QUFDSCIsImZpbGUiOiJhc3NldHNfanNfbWFwX2pzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hcCBmcm9tICdvbC9NYXAnO1xyXG5pbXBvcnQgVmlldyBmcm9tICdvbC9WaWV3JztcclxuaW1wb3J0IHtUaWxlIGFzIFRpbGVMYXllciwgVmVjdG9yfSBmcm9tICdvbC9sYXllcic7XHJcbmltcG9ydCB7IE9TTSwgWFlaIH0gZnJvbSAnb2wvc291cmNlJztcclxuaW1wb3J0IHsgZnJvbUxvbkxhdCB9IGZyb20gJ29sL3Byb2onO1xyXG5pbXBvcnQgQ29udHJvbCBmcm9tICdvbC9jb250cm9sL0NvbnRyb2wnO1xyXG5pbXBvcnQgeyBkZWZhdWx0cyBhcyBkZWZhdWx0Q29udHJvbHMsIFNjYWxlTGluZSB9IGZyb20gJ29sL2NvbnRyb2wnO1xyXG5pbXBvcnQge0xpbmVTdHJpbmcsIFBvaW50LCBQb2x5Z29ufSBmcm9tIFwib2wvZ2VvbVwiO1xyXG5pbXBvcnQgVmVjdG9yU291cmNlIGZyb20gXCJvbC9zb3VyY2UvVmVjdG9yXCI7XHJcbmltcG9ydCBWZWN0b3JMYXllciBmcm9tIFwib2wvbGF5ZXIvVmVjdG9yXCI7XHJcbmltcG9ydCB7RmVhdHVyZX0gZnJvbSBcIm9sXCI7XHJcbmltcG9ydCB7RmlsbCwgSWNvbiwgU3Ryb2tlLCBTdHlsZX0gZnJvbSBcIm9sL3N0eWxlXCI7XHJcbmltcG9ydCB7IGJvdW5kaW5nRXh0ZW50IH0gZnJvbSAnb2wvZXh0ZW50JztcclxuXHJcblxyXG4vL2ltYWdlc1xyXG5pbXBvcnQgcHVuYWlzZURlZmF1bHRJbWcgZnJvbSAnLi4vaW1hZ2VzL3B1bmFpc2UucG5nJztcclxuaW1wb3J0IHB1bmFpc2VSZWRJbWcgZnJvbSAnLi4vaW1hZ2VzL3B1bmFpc2UtcmVkLnBuZyc7XHJcbmltcG9ydCBwdW5haXNlR3JlZW5JbWcgZnJvbSAnLi4vaW1hZ2VzL3B1bmFpc2UtZ3JlZW4ucG5nJztcclxuaW1wb3J0IHB1bmFpc2VCbHVlSW1nIGZyb20gJy4uL2ltYWdlcy9wdW5haXNlLWJsdWUucG5nJztcclxuaW1wb3J0IHB1bmFpc2VHcHNJbWcgZnJvbSAgICcuLi9pbWFnZXMvcHVuYWlzZS1ncHMucG5nJztcclxuaW1wb3J0IE92ZXJsYXkgZnJvbSBcIm9sL092ZXJsYXlcIjtcclxuXHJcbmNvbnN0IHB1bmFpc2VJbWcgPSBPYmplY3QuZnJlZXplKHtcclxuICAgIDE6IHB1bmFpc2VSZWRJbWcsXHJcbiAgICAyOiBwdW5haXNlUmVkSW1nLFxyXG4gICAgMzogcHVuYWlzZVJlZEltZyxcclxuICAgIDQ6IHB1bmFpc2VCbHVlSW1nLFxyXG4gICAgNTogcHVuYWlzZUJsdWVJbWcsXHJcbiAgICA2OiBwdW5haXNlQmx1ZUltZyxcclxuICAgIDc6IHB1bmFpc2VHcmVlbkltZyxcclxuICAgIFwiZGVmYXVsdFwiOiBwdW5haXNlRGVmYXVsdEltZyxcclxuICAgIFwiZ3BzXCI6IHB1bmFpc2VHcHNJbWdcclxufSk7XHJcblxyXG5leHBvcnQgY29uc3QgcHVuYWlzZVBpY3RvID0gT2JqZWN0LmZyZWV6ZSh7XHJcbiAgICAwOiB7IHVuaWNvZGU6ICdcXHVmMDE3JywgZm9udDogJ2JvbGQgMTBweCBcIkZvbnQgQXdlc29tZSA1IEZyZWVcIicgfSwgLy8gZmEtY2xvY2sgKFJlZ3VsYXIpXHJcbiAgICAxOiB7IHVuaWNvZGU6ICdcXHVmMDYzJywgZm9udDogJ2JvbGQgMTBweCBcIkZvbnQgQXdlc29tZSA1IEZyZWVcIicgfSwgLy8gZmEtYXJyb3ctdXAgKFNvbGlkKVxyXG4gICAgMjogeyB1bmljb2RlOiAnXFx1ZjA0YicsIGZvbnQ6ICdib2xkIDEwcHggXCJGb250IEF3ZXNvbWUgNSBGcmVlXCInIH0sIC8vIGZhLXBsYXkgKFNvbGlkKVxyXG4gICAgMzogeyB1bmljb2RlOiAnXFx1ZjAwYycsIGZvbnQ6ICdib2xkIDEwcHggXCJGb250IEF3ZXNvbWUgNSBGcmVlXCInIH0sIC8vIGZhLWNoZWNrIChTb2xpZClcclxuICAgIDQ6IHsgdW5pY29kZTogJ1xcdWYwMGMnLCBmb250OiAnYm9sZCAxMHB4IFwiRm9udCBBd2Vzb21lIDUgRnJlZVwiJyB9LCAgLy8gZmEtY2hlY2sgKFNvbGlkKVxyXG4gICAgJ2hvbWUnOiB7IHVuaWNvZGU6ICdcXHVlMDY1JywgZm9udDogJ2JvbGQgMTBweCBcIkZvbnQgQXdlc29tZSA1IEZyZWVcIicgfSwgIC8vIGZhLWhvdXNlLXVzZXIgKFNvbGlkKVxyXG4gICAgJ3RlY2gnOiB7IHVuaWNvZGU6ICdcXHVmMDA3JywgZm9udDogJ2JvbGQgMTBweCBcIkZvbnQgQXdlc29tZSA1IEZyZWVcIicgfSAgLy8gZmEtdXNlciAoU29saWQpXHJcbn0pO1xyXG5cclxuXHJcblxyXG4vLyBEw6lmaW5pdGlvbiBkZXMgZm9uZHMgZGUgY2FydGVcclxuY29uc3QgYmFzZUxheWVycyA9IHtcclxuICAgIFwiT3BlblN0cmVldE1hcFwiOiBuZXcgVGlsZUxheWVyKHtcclxuICAgICAgICBzb3VyY2U6IG5ldyBPU00oKSxcclxuICAgICAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgfSksXHJcbiAgICBcIlNhdGVsbGl0ZVwiOiBuZXcgVGlsZUxheWVyKHtcclxuICAgICAgICBzb3VyY2U6IG5ldyBYWVooe1xyXG4gICAgICAgICAgICB1cmw6ICdodHRwczovL3NlcnZlci5hcmNnaXNvbmxpbmUuY29tL0FyY0dJUy9yZXN0L3NlcnZpY2VzL1dvcmxkX0ltYWdlcnkvTWFwU2VydmVyL3RpbGUve3p9L3t5fS97eH0nLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHZpc2libGU6IGZhbHNlLFxyXG4gICAgfSksXHJcbn07XHJcblxyXG5jb25zdCBtYXAgPSBuZXcgTWFwKHtcclxuICAgIHRhcmdldDogJ21hcCcsXHJcbiAgICAvLyBsYXllcnM6IFtvc21MYXllciwgc2F0ZWxsaXRlTGF5ZXJdLFxyXG4gICAgbGF5ZXJzOiBPYmplY3QudmFsdWVzKGJhc2VMYXllcnMpLFxyXG4gICAgdmlldzogbmV3IFZpZXcoe1xyXG4gICAgICAgIGNlbnRlcjogZnJvbUxvbkxhdChbMi4zNjQ0NjM4LCA0OC44NzY0NTc2XSksIC8vIFBhcmlzXHJcbiAgICAgICAgem9vbTogMTAsXHJcbiAgICB9KSxcclxuICAgIGNvbnRyb2xzOiBkZWZhdWx0Q29udHJvbHMoe1xyXG4gICAgICAgIGF0dHJpYnV0aW9uOiBmYWxzZSAsXHJcbiAgICAgICAgcm90YXRlOiBmYWxzZSxcclxuICAgIH0pLmV4dGVuZChbXHJcbiAgICAgICAgbmV3IFNjYWxlTGluZSgpLCAvLyBBam91dGUgdW5lIMOpY2hlbGxlXHJcbiAgICBdKVxyXG59KTtcclxuXHJcbmNsYXNzIExheWVyU3dpdGNoZXJDb250cm9sIGV4dGVuZHMgQ29udHJvbCB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBjb25zdCBidXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTtcclxuICAgICAgICBidXR0b24uaW5uZXJIVE1MID0gJzxpIGNsYXNzPVwiZmFzIGZhLWxheWVyLWdyb3VwXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDBweDtcIj48L2k+JzsgLy8gSWPDtG5lIGR1IGJvdXRvblxyXG4gICAgICAgIGJ1dHRvbi5jbGFzc05hbWUgPSAnbGF5ZXItc3dpdGNoLWJ1dHRvbic7XHJcblxyXG4gICAgICAgIGNvbnN0IGxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBsaXN0LmNsYXNzTmFtZSA9ICdsYXllci1zd2l0Y2gtbGlzdCBoaWRkZW4nO1xyXG5cclxuICAgICAgICAvLyBBam91dGVyIGxlcyBvcHRpb25zXHJcbiAgICAgICAgT2JqZWN0LmtleXMoYmFzZUxheWVycykuZm9yRWFjaChsYXllck5hbWUgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICAgICAgb3B0aW9uLmNsYXNzTmFtZSA9ICdsYXllci1vcHRpb24nO1xyXG4gICAgICAgICAgICBvcHRpb24uaW5uZXJIVE1MID0gbGF5ZXJOYW1lO1xyXG4gICAgICAgICAgICBvcHRpb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKGJhc2VMYXllcnMpLmZvckVhY2gobGF5ZXIgPT4gbGF5ZXIuc2V0VmlzaWJsZShmYWxzZSkpO1xyXG4gICAgICAgICAgICAgICAgYmFzZUxheWVyc1tsYXllck5hbWVdLnNldFZpc2libGUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICBsaXN0LmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBjb250YWluZXIuY2xhc3NOYW1lID0gJ2xheWVyLXN3aXRjaGVyIG9sLWNvbnRyb2wnO1xyXG4gICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChidXR0b24pO1xyXG4gICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChsaXN0KTtcclxuXHJcbiAgICAgICAgc3VwZXIoeyBlbGVtZW50OiBjb250YWluZXIgfSk7XHJcblxyXG4gICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgICAgICAgbGlzdC5jbGFzc0xpc3QudG9nZ2xlKCdoaWRkZW4nKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gQ2FjaGVyIGxhIGxpc3RlIHF1YW5kIG9uIGNsaXF1ZSBhaWxsZXVyc1xyXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghY29udGFpbmVyLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcclxuICAgICAgICAgICAgICAgIGxpc3QuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcblxyXG4vLyBBam91dCBkZXMgY29udHLDtGxlcyDDoCBsYSBjYXJ0ZVxyXG5tYXAuYWRkQ29udHJvbChuZXcgTGF5ZXJTd2l0Y2hlckNvbnRyb2woKSk7XHJcblxyXG4vLyBTb3VyY2UgdmVjdG9yaWVsbGUgcG91ciBzdG9ja2VyIGxlcyBwdW5haXNlc1xyXG5jb25zdCB2ZWN0b3JTb3VyY2UgPSBuZXcgVmVjdG9yU291cmNlKCk7XHJcbmNvbnN0IHZlY3RvckxheWVyID0gbmV3IFZlY3RvckxheWVyKHsgc291cmNlOiB2ZWN0b3JTb3VyY2UgfSk7XHJcbm1hcC5hZGRMYXllcih2ZWN0b3JMYXllcik7XHJcblxyXG5sZXQgb3ZlcmxheVJkdiA9IG5ldyBPdmVybGF5KHtcclxuICAgIGVsZW1lbnQ6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC1yZHYnKSxcclxuICAgIGF1dG9QYW46IHRydWUsXHJcbiAgICBwb3NpdGlvbmluZzogJ2JvdHRvbS1jZW50ZXInLFxyXG4gICAgb2Zmc2V0OiBbMCwgLTQzXSAvLyBkw6ljYWxhZ2UgZW4gcGl4ZWxzIChob3Jpem9udGFsLCB2ZXJ0aWNhbClcclxufSk7XHJcblxyXG5sZXQgb3ZlcmxheUdwcyA9IG5ldyBPdmVybGF5KHtcclxuICAgIGVsZW1lbnQ6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC1ncHMnKSxcclxuICAgIGF1dG9QYW46IHRydWUsXHJcbiAgICBwb3NpdGlvbmluZzogJ2JvdHRvbS1jZW50ZXInLFxyXG4gICAgb2Zmc2V0OiBbMCwgLTMxXSAvLyBkw6ljYWxhZ2UgZW4gcGl4ZWxzIChob3Jpem9udGFsLCB2ZXJ0aWNhbClcclxufSk7XHJcblxyXG5cclxuXHJcbi8vRm9uY3Rpb24gcG91ciBnw6luw6lyZXIgdW5lIGljw7RuZSBwZXJzb25uYWxpc8OpZSBhdmVjIHVuZSBpbWFnZSwgZHUgdGV4dGUgZXQgdW4gcGljdG9ncmFtbWVcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUN1c3RvbUljb24odGV4dCwgdW5pY29kZSwgZm9udCwgaW1nU3JjLCBjb2xvciwgY2FsbGJhY2spIHtcclxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gICAgbGV0IHdpZHRoID0gMjQ7XHJcbiAgICBsZXQgaGVpZ2h0ID0gMzI7XHJcbiAgICBpZiAodW5pY29kZSA9PT0gJycpIHtcclxuICAgICAgICB3aWR0aCA9IDE1O1xyXG4gICAgICAgIGhlaWdodCA9IDIwO1xyXG4gICAgfVxyXG4gICAgY2FudmFzLndpZHRoID0gd2lkdGg7XHJcbiAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcblxyXG4gICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XHJcbiAgICBpbWcuc3JjID0gaW1nU3JjO1xyXG5cclxuICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgLy8gRGVzc2luZXIgbGEgcHVuYWlzZSBkZSBiYXNlXHJcbiAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XHJcblxyXG4gICAgICAgIC8vIEFqb3V0ZXIgZHUgdGV4dGVcclxuICAgICAgICBjdHguZmlsbFN0eWxlID0gY29sb3I7XHJcbiAgICAgICAgY3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xyXG5cclxuICAgICAgICBpZiAodW5pY29kZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgY3R4LmZvbnQgPSAnYm9sZCA5cHggXCJMYXRvXCInO1xyXG4gICAgICAgICAgICBjdHguZmlsbFRleHQodGV4dCwgMTIsIDEzKTtcclxuICAgICAgICAgICAgY3R4LmZvbnQgPSBmb250O1xyXG4gICAgICAgICAgICBjdHguZmlsbFRleHQodW5pY29kZSwgMTIsIDI0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBTaSBwYXMgZCd1bmljb2RlLCBwbGFjZXIgbGUgdGV4dGUgbm9ybWFsZW1lbnRcclxuICAgICAgICAgICAgY3R4LmZvbnQgPSAnYm9sZCA3cHggXCJMYXRvXCInO1xyXG4gICAgICAgICAgICBjdHguZmlsbFRleHQodGV4dCwgd2lkdGggLyAyLCAxMSk7IC8vIENlbnRyZXIgbGUgdGV4dGVcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENvbnZlcnRpciBlbiBEYXRhIFVSTCBldCBhcHBlbGVyIGxlIGNhbGxiYWNrXHJcbiAgICAgICAgY2FsbGJhY2soY2FudmFzLnRvRGF0YVVSTCgpKTtcclxuICAgIH07XHJcbn1cclxuXHJcblxyXG4vLyBGb25jdGlvbiBwb3VyIGFqb3V0ZXIgdW5lIHB1bmFpc2VcclxuZXhwb3J0IGZ1bmN0aW9uIGFkZE1hcmtlcihjb29yZHMsIHRleHQsIHBpY3RvLCBwdW5haXNlLCBjb2xvciwgZGF0YXMsIG9uQ29tcGxldGUpIHtcclxuICAgIGxldCBwaWN0b0RhdGE7XHJcbiAgICBpZiAocGljdG8gPT09ICcnKSB7XHJcbiAgICAgICAgcGljdG9EYXRhID0geyB1bmljb2RlOiAnJywgZm9udDogJycgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcGljdG9EYXRhID0gcHVuYWlzZVBpY3RvW3BpY3RvXTtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgdW5pY29kZSwgZm9udCB9ID0gcGljdG9EYXRhOyAvLyBSw6ljdXDDqHJlIHVuaWNvZGUgZXQgZm9udFxyXG4gICAgY29uc3QgaW1nU3JjID0gcHVuYWlzZUltZ1twdW5haXNlXTtcclxuICAgIGNyZWF0ZUN1c3RvbUljb24odGV4dCwgdW5pY29kZSwgZm9udCwgaW1nU3JjLCBjb2xvciwoaWNvblVybCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZlYXR1cmUgPSBuZXcgRmVhdHVyZSh7XHJcbiAgICAgICAgICAgIGdlb21ldHJ5OiBuZXcgUG9pbnQoZnJvbUxvbkxhdChjb29yZHMpKSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgZmVhdHVyZS5zZXRTdHlsZShcclxuICAgICAgICAgICAgbmV3IFN0eWxlKHtcclxuICAgICAgICAgICAgICAgIGltYWdlOiBuZXcgSWNvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgc3JjOiBpY29uVXJsLFxyXG4gICAgICAgICAgICAgICAgICAgIHNjYWxlOiAxLCAvLyBBanVzdGUgc2Vsb24gbGEgdGFpbGxlIGTDqXNpcsOpZVxyXG4gICAgICAgICAgICAgICAgICAgIGFuY2hvcjogWzAuNSwgMV0sIC8vIFBvdXIgYmllbiBhbGlnbmVyIGxhIHB1bmFpc2VcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZmVhdHVyZS5zZXQoJ2RhdGFzJywgZGF0YXMpO1xyXG4gICAgICAgIHZlY3RvclNvdXJjZS5hZGRGZWF0dXJlKGZlYXR1cmUpO1xyXG4gICAgICAgIC8vIEV4w6ljdXRlciBsZSBjYWxsYmFjayBxdWFuZCBsJ2Fqb3V0IGVzdCB0ZXJtaW7DqVxyXG4gICAgICAgIGlmIChvbkNvbXBsZXRlKSBvbkNvbXBsZXRlKCk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFBvbHlnb24oY29vcmRzKXtcclxuICAgIGNvbnN0IGNvbnZlcnRlZENvb3JkcyA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb29yZHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb252ZXJ0ZWRDb29yZHMucHVzaChmcm9tTG9uTGF0KGNvb3Jkc1tpXSkpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb25zdCBmZWF0dXJlID0gbmV3IEZlYXR1cmUoe1xyXG4gICAgICAgIGdlb21ldHJ5OiBuZXcgUG9seWdvbihbY29udmVydGVkQ29vcmRzXSksXHJcbiAgICB9KTtcclxuICAgIGZlYXR1cmUuc2V0U3R5bGUoXHJcbiAgICAgICAgbmV3IFN0eWxlKHtcclxuICAgICAgICAgICAgc3Ryb2tlOiBuZXcgU3Ryb2tlKHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBcIiMwMDBcIixcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGZpbGw6IG5ldyBGaWxsKHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBoZXhUb1JnYmEoXCIjMDAwXCIsIDAuMilcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGRhdGFzID0ge1xyXG4gICAgICAgIHR5cGU6ICdzZWN0ZXVyJ1xyXG4gICAgfTtcclxuICAgIGZlYXR1cmUuc2V0KCdkYXRhcycsIGRhdGFzKTtcclxuICAgIHZlY3RvclNvdXJjZS5hZGRGZWF0dXJlKGZlYXR1cmUpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBoZXhUb1JnYmEoaGV4LCBhbHBoYSA9IDEpIHtcclxuICAgIGNvbnN0IGJpZ2ludCA9IHBhcnNlSW50KGhleC5yZXBsYWNlKCcjJywgJycpLCAxNik7XHJcbiAgICBjb25zdCByID0gKGJpZ2ludCA+PiAxNikgJiAyNTU7XHJcbiAgICBjb25zdCBnID0gKGJpZ2ludCA+PiA4KSAmIDI1NTtcclxuICAgIGNvbnN0IGIgPSBiaWdpbnQgJiAyNTU7XHJcbiAgICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgJHthbHBoYX0pYDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUZlYXR1cmVzKCl7XHJcbiAgICBtYXAuZ2V0T3ZlcmxheXMoKS5mb3JFYWNoKGZ1bmN0aW9uIChvdmVybGF5KSB7IC8vY2FjaGVyIGxlcyBwb3B1cCBvdmVybGF5XHJcbiAgICAgICAgb3ZlcmxheS5zZXRQb3NpdGlvbih1bmRlZmluZWQpO1xyXG4gICAgfSk7XHJcbiAgICB2ZWN0b3JTb3VyY2UuY2xlYXIoKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRmVhdHVyZXNCeURhdGFWYWx1ZShkYXRhTmFtZSwgdmFsdWUpe1xyXG4gICAgdmVjdG9yU291cmNlLmZvckVhY2hGZWF0dXJlKChmZWF0dXJlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZGF0YXMgPSBmZWF0dXJlLmdldCgnZGF0YXMnKTtcclxuICAgICAgICBpZiAoZGF0YXMgJiYgZGF0YXNbZGF0YU5hbWVdID09PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICB2ZWN0b3JTb3VyY2UucmVtb3ZlRmVhdHVyZShmZWF0dXJlKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZpdE1hcFRvRmVhdHVyZXMoKSB7XHJcbiAgICBpZiAodmVjdG9yU291cmNlLmdldEZlYXR1cmVzKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnN0IGV4dGVudCA9IHZlY3RvclNvdXJjZS5nZXRFeHRlbnQoKTsgLy8gUsOpY3Vww6hyZSBsJ8OpdGVuZHVlIGRlIHRvdXRlcyBsZXMgZmVhdHVyZXNcclxuICAgICAgICBtYXAuZ2V0VmlldygpLmZpdChleHRlbnQsIHtcclxuICAgICAgICAgICAgcGFkZGluZzogWzUwLCA1MCwgNTAsIDUwXSxcclxuICAgICAgICAgICAgZHVyYXRpb246IDEwMDAsXHJcbiAgICAgICAgICAgIG1heFpvb206IDE0IC8vw6l2aXRlIGRhbnMgbGUgY2FzIGQndW5lIGZlYXR1cmUgZCfDqnRyZSB0cm9wIHpvb23DqSBzdXIgbGEgY2FydGVcclxuICAgICAgICB9KTsgLy8gQWp1c3RlIGxhIHZ1ZVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICAvLyB2dWUgcGFyIGTDqWZhdXQgc2kgYXVjdW5lIGZlYXR1cmVcclxuICAgICAgICBtYXAuZ2V0VmlldygpLnNldENlbnRlcihmcm9tTG9uTGF0KFsyLjM2NDQ2MzgsIDQ4Ljg3NjQ1NzZdKSk7XHJcbiAgICAgICAgbWFwLmdldFZpZXcoKS5zZXRab29tKDEwKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZpdE1hcFRvRmVhdHVyZXNCeVR5cGUoZmVhdHVyZVR5cGUpIHtcclxuICAgIGNvbnN0IGZlYXR1cmVzID0gdmVjdG9yU291cmNlLmdldEZlYXR1cmVzKCk7XHJcbiAgICBjb25zdCBmaWx0ZXJlZEZlYXR1cmVzID0gZmVhdHVyZXMuZmlsdGVyKGZlYXR1cmUgPT4ge1xyXG4gICAgICAgIGNvbnN0IGdlb21ldHJ5ID0gZmVhdHVyZS5nZXRHZW9tZXRyeSgpO1xyXG4gICAgICAgIGlmIChmZWF0dXJlVHlwZSA9PT0gJ21hcmtlcnMnIHx8IGZlYXR1cmVUeXBlID09PSAncG9pbnRzJykge1xyXG4gICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkgaW5zdGFuY2VvZiBQb2ludDtcclxuICAgICAgICB9IGVsc2UgaWYgKGZlYXR1cmVUeXBlID09PSAncG9seWdvbnMnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBnZW9tZXRyeSBpbnN0YW5jZW9mIFBvbHlnb247XHJcbiAgICAgICAgfSBlbHNlIGlmIChmZWF0dXJlVHlwZSA9PT0gJ2xpbmVzJykge1xyXG4gICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkgaW5zdGFuY2VvZiBMaW5lU3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgaWYgKGZpbHRlcmVkRmVhdHVyZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnN0IGV4dGVudCA9IGJvdW5kaW5nRXh0ZW50KFxyXG4gICAgICAgICAgICBmaWx0ZXJlZEZlYXR1cmVzLm1hcChmZWF0dXJlID0+IGZlYXR1cmUuZ2V0R2VvbWV0cnkoKS5nZXRFeHRlbnQoKSlcclxuICAgICAgICApO1xyXG4gICAgICAgIG1hcC5nZXRWaWV3KCkuZml0KGV4dGVudCwge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiBbNTAsIDUwLCA1MCwgNTBdLFxyXG4gICAgICAgICAgICBkdXJhdGlvbjogMTAwMCxcclxuICAgICAgICAgICAgbWF4Wm9vbTogMTRcclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gdnVlIHBhciBkw6lmYXV0IHNpIGF1Y3VuZSBmZWF0dXJlIGR1IHR5cGUgZGVtYW5kw6lcclxuICAgICAgICBtYXAuZ2V0VmlldygpLnNldENlbnRlcihmcm9tTG9uTGF0KFsyLjM2NDQ2MzgsIDQ4Ljg3NjQ1NzZdKSk7XHJcbiAgICAgICAgbWFwLmdldFZpZXcoKS5zZXRab29tKDEwKTtcclxuICAgIH1cclxufVxyXG5cclxuZnVuY3Rpb24gc2hvd092ZXJsYXkob3ZlcmxheSwgY29vcmQpIHtcclxuICAgIG92ZXJsYXkuZ2V0RWxlbWVudCgpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICAgb3ZlcmxheS5zZXRQb3NpdGlvbihjb29yZCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGhpZGVPdmVybGF5KG92ZXJsYXkpIHtcclxuICAgIG92ZXJsYXkuZ2V0RWxlbWVudCgpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICBvdmVybGF5LnNldFBvc2l0aW9uKHVuZGVmaW5lZCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoaWRlQWxsT3ZlcmxheSgpe1xyXG4gICAgbWFwLmdldE92ZXJsYXlzKCkuZm9yRWFjaChmdW5jdGlvbiAob3ZlcmxheSkge1xyXG4gICAgICAgIGhpZGVPdmVybGF5KG92ZXJsYXkpO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGluaXRQb3B1cE92ZXJsYXlSZHYoZGF0YXMsIGNvb3JkaW5hdGVzKXtcclxuICAgIGNvbnN0IGJhZGdlVHlwZSA9IG92ZXJsYXlSZHYuZ2V0RWxlbWVudCgpLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2JhZGdlLXR5cGUnKVswXTtcclxuICAgIGNvbnN0IGNvdWxldXIgPSBkYXRhcy5wbGFubmluZy50eXBlX3BsYW5pZmljYXRpb25faW5pdC5jb3VsZXVyO1xyXG4gICAgYmFkZ2VUeXBlLmlubmVySFRNTCA9IGAke2RhdGFzLnBsYW5uaW5nLnR5cGVfcGxhbmlmaWNhdGlvbl9pbml0LmNvZGVfY291cnR9YDtcclxuICAgIGJhZGdlVHlwZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBjb3VsZXVyO1xyXG4gICAgb3ZlcmxheVJkdi5nZXRFbGVtZW50KCkuc3R5bGUuYm9yZGVyQ29sb3IgPSBjb3VsZXVyO1xyXG4gICAgb3ZlcmxheVJkdi5nZXRFbGVtZW50KCkuc3R5bGUuc2V0UHJvcGVydHkoJy0tcG9wdXAtYXJyb3ctY29sb3InLCBjb3VsZXVyKTtcclxuICAgIC8vbnVtw6lybyBjbGllbnRcclxuICAgIC8vZ8OpbsOpcmF0aW9uIGxpZW4gcG91ciBvdXZlcnR1cmUgZmljaGUgY2xpZW50XHJcbiAgICBsZXQgY29tcGxldGVVcmwgPSAnJztcclxuICAgIGlmKGRhdGFzLmVxdWlwZW1lbnQgIT09IG51bGwgJiYgZGF0YXMuZXF1aXBlbWVudC5jbGllbnRfc291c2NyaXB0ZXVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBsZXQgYmFzZV91cmwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xyXG4gICAgICAgIGxldCB1cmwgPSBwYXRoX2NsaWVudC5zcGxpdCgnLycpO1xyXG4gICAgICAgIGlmIChkYXRhcy5lcXVpcGVtZW50LmNsaWVudF9zb3VzY3JpcHRldXIuaWQpIHtcclxuICAgICAgICAgICAgbGV0IGlkID0gZGF0YXMuZXF1aXBlbWVudC5jbGllbnRfc291c2NyaXB0ZXVyLmlkO1xyXG4gICAgICAgICAgICBpZiAoZGF0YXMuZXF1aXBlbWVudC5pZCkge1xyXG4gICAgICAgICAgICAgICAgaWQgKz0gJz9pZF9lcXVpcGVtZW50PScgKyBkYXRhcy5lcXVpcGVtZW50LmlkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHVybFt1cmwubGVuZ3RoIC0gMV0gPSBpZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29tcGxldGVVcmwgPSBiYXNlX3VybCArIHVybC5qb2luKCcvJyk7XHJcbiAgICB9XHJcbiAgICBvdmVybGF5UmR2LmdldEVsZW1lbnQoKS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjbGllbnQtaWQnKVswXS5ocmVmID0gY29tcGxldGVVcmw7XHJcbiAgICBvdmVybGF5UmR2LmdldEVsZW1lbnQoKS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjbGllbnQtaWQnKVswXS5pbm5lckhUTUwgPSBgJHtkYXRhcy5lcXVpcGVtZW50LmNsaWVudF9zb3VzY3JpcHRldXIuZm9ybWF0dGVkX251bWVyb19jbGllbnR9YDtcclxuICAgIC8vYmFkZ2UgbW9tZW50XHJcbiAgICBvdmVybGF5UmR2LmdldEVsZW1lbnQoKS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdiYWRnZS1tb21lbnQnKVswXS5pbm5lckhUTUwgPSBgJHtkYXRhcy5wbGFubmluZy5tb21lbnRfcGFzc2FnZS5saWJlbGxlX3BsYW5uaW5nfWA7XHJcbiAgICAvL2JhZGdlIGVxdWlwZW1lbnQgdHlwZVxyXG4gICAgb3ZlcmxheVJkdi5nZXRFbGVtZW50KCkuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnYmFkZ2UtZXF1aXAnKVswXS5pbm5lckhUTUwgPSBgJHtkYXRhcy5lcXVpcGVtZW50LmVxdWlwZW1lbnRfdHlwZV9wdWlzc2FuY2UuZXF1aXBlbWVudF90eXBlLnR5cGV9YDtcclxuICAgIC8vaW5mb3MgY2xpZW50XHJcbiAgICBsZXQgY29udGVudENsaWVudCA9ICcnO1xyXG4gICAgaWYoZGF0YXMuZXF1aXBlbWVudC5jbGllbnRfc291c2NyaXB0ZXVyLmV0YXRfY2l2aWwgIT09IG51bGwpIHsgLy8gcGFydGljdWxpZXJcclxuICAgICAgICBjb250ZW50Q2xpZW50ID0gYDxiPiR7ZGF0YXMuZXF1aXBlbWVudC5jbGllbnRfc291c2NyaXB0ZXVyLmV0YXRfY2l2aWwubGliZWxsZV9jb3VydH0gJHtkYXRhcy5lcXVpcGVtZW50LmNsaWVudF9zb3VzY3JpcHRldXIubm9tfWA7XHJcbiAgICAgICAgaWYgKGRhdGFzLmVxdWlwZW1lbnQuY2xpZW50X3NvdXNjcmlwdGV1ci5wcmVub20gIT09ICcnICYmIGRhdGFzLmVxdWlwZW1lbnQuY2xpZW50X3NvdXNjcmlwdGV1ci5wcmVub20gIT09IG51bGwpIHtcclxuICAgICAgICAgICAgY29udGVudENsaWVudCArPSBgICR7ZGF0YXMuZXF1aXBlbWVudC5jbGllbnRfc291c2NyaXB0ZXVyLnByZW5vbX1gO1xyXG4gICAgICAgIH1cclxuICAgIH1lbHNlIGlmKGRhdGFzLmVxdWlwZW1lbnQuY2xpZW50X3NvdXNjcmlwdGV1ci5jYXRlZ29yaWVfcHJvICE9PSBudWxsKXsgLy9wcm9cclxuICAgICAgICBjb250ZW50Q2xpZW50ID0gYDxiPiR7ZGF0YXMuZXF1aXBlbWVudC5jbGllbnRfc291c2NyaXB0ZXVyLmNhdGVnb3JpZV9wcm8ubGliZWxsZX0gJHtkYXRhcy5lcXVpcGVtZW50LmNsaWVudF9zb3VzY3JpcHRldXIubm9tX2VudHJlcHJpc2V9YDtcclxuICAgIH1cclxuICAgIGNvbnRlbnRDbGllbnQgKz0gYDwvYj48YnI+JHtkYXRhcy5lcXVpcGVtZW50LmFkcmVzc2UuYWRyZXNzZX1gO1xyXG4gICAgaWYoZGF0YXMuZXF1aXBlbWVudC5hZHJlc3NlLmFkcmVzc2VfY29tcGxlbWVudCAhPT0gJycgJiYgZGF0YXMuZXF1aXBlbWVudC5hZHJlc3NlLmFkcmVzc2VfY29tcGxlbWVudCAhPT0gbnVsbCl7XHJcbiAgICAgICAgY29udGVudENsaWVudCArPSBgPGJyPiR7ZGF0YXMuZXF1aXBlbWVudC5hZHJlc3NlLmFkcmVzc2VfY29tcGxlbWVudH1gO1xyXG4gICAgfVxyXG4gICAgY29udGVudENsaWVudCArPSBgPGJyPiR7ZGF0YXMuZXF1aXBlbWVudC5hZHJlc3NlLmNvZGVfcG9zdGFsfSAke2RhdGFzLmVxdWlwZW1lbnQuYWRyZXNzZS52aWxsZX1gO1xyXG4gICAgb3ZlcmxheVJkdi5nZXRFbGVtZW50KCkuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnY2xpZW50LWNvb3Jkb25uZWVzJylbMF0uaW5uZXJIVE1MID0gY29udGVudENsaWVudDtcclxuXHJcbiAgICAvL2JhZGdlIGNvbnRyYXRcclxuICAgIGxldCBjb250cmF0ID0gJyc7XHJcbiAgICBpZihkYXRhcy5lcXVpcGVtZW50LmNvbnRyYXRfZW5fY291cnMgIT09ICcnICYmIGRhdGFzLmVxdWlwZW1lbnQuY29udHJhdF9lbl9jb3VycyAhPT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnRyYXQgPSBgJHtkYXRhcy5lcXVpcGVtZW50LmNvbnRyYXRfZW5fY291cnMuY29udHJhdF90eXBlLmxpYmVsbGVfY291cnR9YDtcclxuICAgIH1cclxuICAgIG92ZXJsYXlSZHYuZ2V0RWxlbWVudCgpLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2JhZGdlLWNvbnRyYXQnKVswXS5pbm5lckhUTUwgPSBjb250cmF0O1xyXG4gICAgbGV0IGNvbnRlbnRSZHYgPSBgPGI+JHtkYXRhcy5wbGFubmluZy5saWJlbGxlU3RhdHV0fTwvYj5gO1xyXG4gICAgaWYoZGF0YXMucGxhbm5pbmcuaGV1cmVfZGVidXQgIT09ICcnICYmIGRhdGFzLnBsYW5uaW5nLmhldXJlX2RlYnV0ICE9PSBudWxsKXtcclxuICAgICAgICBjb250ZW50UmR2ICs9IGA8YnI+SGV1cmUgZMOpYnV0IDogJHtuZXcgRGF0ZShkYXRhcy5wbGFubmluZy5oZXVyZV9kZWJ1dCkudG9Mb2NhbGVUaW1lU3RyaW5nKCdmci1GUicsIHtob3VyOiAnMi1kaWdpdCcsIG1pbnV0ZTonMi1kaWdpdCd9KX1gO1xyXG4gICAgfVxyXG4gICAgaWYoZGF0YXMucGxhbm5pbmcuaGV1cmVfZmluICE9PSAnJyAmJiBkYXRhcy5wbGFubmluZy5oZXVyZV9maW4gIT09IG51bGwpe1xyXG4gICAgICAgIGNvbnRlbnRSZHYgKz0gYCAtIEhldXJlIGZpbiA6ICR7bmV3IERhdGUoZGF0YXMucGxhbm5pbmcuaGV1cmVfZmluKS50b0xvY2FsZVRpbWVTdHJpbmcoJ2ZyLUZSJywge2hvdXI6ICcyLWRpZ2l0JywgbWludXRlOicyLWRpZ2l0J30pfWA7XHJcbiAgICB9XHJcbiAgICBvdmVybGF5UmR2LmdldEVsZW1lbnQoKS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwb3B1cC1yZHYtaW5mbycpWzBdLmlubmVySFRNTCA9IGNvbnRlbnRSZHY7XHJcbiAgICBzaG93T3ZlcmxheShvdmVybGF5UmR2LCBjb29yZGluYXRlcyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGluaXRQb3B1cE92ZXJsYXlHcHMoZGF0YXMsIGNvb3JkaW5hdGVzKXtcclxuICAgIGxldCBjb250ZW50R3BzID0gJyc7XHJcbiAgICBpZihkYXRhcy50eXBlID09ICd0ZWNoJyl7XHJcbiAgICAgICAgY29udGVudEdwcyA9IGBEZXJuacOocmUgcG9zaXRpb24gLSBgO1xyXG4gICAgfVxyXG4gICAgY29udGVudEdwcyArPSBgJHtkYXRhcy5hZ2VudH08YnI+JHtkYXRhcy5kYXRlX2hldXJlfWA7XHJcbiAgICBvdmVybGF5R3BzLmdldEVsZW1lbnQoKS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwb3B1cC1ncHMtaW5mbycpWzBdLmlubmVySFRNTCA9IGNvbnRlbnRHcHM7XHJcbiAgICBzaG93T3ZlcmxheShvdmVybGF5R3BzLCBjb29yZGluYXRlcyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBvblNpbmdsZUNsaWNrRmVhdHVyZShldmVudCkge1xyXG4gICAgaGlkZUFsbE92ZXJsYXkoKTtcclxuICAgIGNvbnN0IGZlYXR1cmUgPSBtYXAuZm9yRWFjaEZlYXR1cmVBdFBpeGVsKGV2ZW50LnBpeGVsLCAoZmVhdHVyZSkgPT4gZmVhdHVyZSk7XHJcbiAgICBpZiAoZmVhdHVyZSAmJiBmZWF0dXJlLmdldCgnZGF0YXMnKSAhPT0gJycpIHtcclxuICAgICAgICBsZXQgZGF0YXMgPSBmZWF0dXJlLmdldCgnZGF0YXMnKTtcclxuICAgICAgICBpZiAoZGF0YXMudHlwZSAmJiBkYXRhcy50eXBlICE9PSAnJykge1xyXG4gICAgICAgICAgICBjb25zdCBjb29yZGluYXRlcyA9IGZlYXR1cmUuZ2V0R2VvbWV0cnkoKS5nZXRDb29yZGluYXRlcygpO1xyXG4gICAgICAgICAgICBpZiAoZGF0YXMudHlwZSA9PT0gJ2dwcycgfHwgZGF0YXMudHlwZSA9PT0gJ3RlY2gnKSB7XHJcbiAgICAgICAgICAgICAgICBpbml0UG9wdXBPdmVybGF5R3BzKGRhdGFzLCBjb29yZGluYXRlcyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YXMudHlwZSA9PT0gJ2ludGVydmVudGlvbicpIHtcclxuICAgICAgICAgICAgICAgIGluaXRQb3B1cE92ZXJsYXlSZHYoZGF0YXMsIGNvb3JkaW5hdGVzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHB1bmFpc2VzKGRhdGEsIGluaXQ9ZmFsc2Upe1xyXG4gICAgcmVtb3ZlRmVhdHVyZXMoKTsgLy9zdXBwcmltZXIgbGVzIG1hcmtlcnMgZGUgbGEgY2FydGVcclxuICAgIGxldCByZW1haW5pbmdNYXJrZXJzID0gMDsgLy8gQ29tcHRldXIgZGVzIG1hcnF1ZXVycyDDoCBham91dGVyXHJcbiAgICBjb25zdCBvbk1hcmtlckFkZGVkID0gKCkgPT4ge1xyXG4gICAgICAgIHJlbWFpbmluZ01hcmtlcnMtLTtcclxuICAgICAgICBpZiAocmVtYWluaW5nTWFya2VycyA9PT0gMCkge1xyXG4gICAgICAgICAgICAvLyBVbmUgZm9pcyBxdWUgdG91cyBsZXMgbWFycXVldXJzIHNvbnQgYWpvdXTDqXMsIGFqdXN0ZXIgbGEgdnVlXHJcbiAgICAgICAgICAgIGZpdE1hcFRvRmVhdHVyZXNCeVR5cGUoJ21hcmtlcnMnKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgaWYgKGRhdGEuYWdlbnRzIHx8IGRhdGEuYWdlbnQpIHtcclxuICAgICAgICBjb25zdCBhZ2VudHMgPSBBcnJheS5pc0FycmF5KGRhdGEuYWdlbnRzKSA/IGRhdGEuYWdlbnRzIDogZGF0YS5hZ2VudCA/IFtkYXRhLmFnZW50XSA6IFtdO1xyXG5cclxuICAgICAgICBhZ2VudHMuZm9yRWFjaCgoYWdlbnQpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFpbml0KSB7XHJcbiAgICAgICAgICAgICAgICAvLyBob21lXHJcbiAgICAgICAgICAgICAgICByZW1haW5pbmdNYXJrZXJzKys7XHJcbiAgICAgICAgICAgICAgICBhZGRNYXJrZXIoYWdlbnQuY29vcmRvbm5lZXMsIGFnZW50LmNvZGVfYWdlbnQsICdob21lJywgJ2RlZmF1bHQnLCAnd2hpdGUnLCB7dHlwZTogJ2hvbWUnLCBhZ2VudElkOiBhZ2VudC5pZH0sIG9uTWFya2VyQWRkZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIGRlcm5pw6hyZSBwb3NpdGlvblxyXG4gICAgICAgICAgICBpZiAoYWdlbnQuZGVybmllcmVfcG9zICE9PSAnJyAmJiBhZ2VudC5kZXJuaWVyZV9wb3MgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJlbWFpbmluZ01hcmtlcnMrKztcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFzID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGFnZW50OiBgQWdlbnQgJHthZ2VudC5jb2RlX2FnZW50fWAsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0ZV9oZXVyZTogZm9ybWF0RGF0ZShhZ2VudC5kZXJuaWVyZV9wb3MuZGF0ZV9oZXVyZSksXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RlY2gnLFxyXG4gICAgICAgICAgICAgICAgICAgIGFnZW50SWQ6IGFnZW50LmlkLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGFkZE1hcmtlcihhZ2VudC5kZXJuaWVyZV9wb3MuY29vcmRvbm5lZXMsIGFnZW50LmNvZGVfYWdlbnQsICd0ZWNoJywgJ2RlZmF1bHQnLCAnd2hpdGUnLCBkYXRhcywgb25NYXJrZXJBZGRlZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmKCFpbml0KSB7XHJcbiAgICAgICAgZGF0YS5pbnRlcnZlbnRpb25zLmZvckVhY2goKGludGVydmVudGlvbikgPT4ge1xyXG4gICAgICAgICAgICBsZXQgY29vcmRzID0gWzAsIDBdO1xyXG4gICAgICAgICAgICBpZiAoaW50ZXJ2ZW50aW9uLmVxdWlwZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIGxldCBhZHJlc3NlID0gaW50ZXJ2ZW50aW9uLmVxdWlwZW1lbnQuYWRyZXNzZTtcclxuICAgICAgICAgICAgICAgIGNvb3JkcyA9IFthZHJlc3NlLmxvbmdpdHVkZSwgYWRyZXNzZS5sYXRpdHVkZV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IHBsYW5uaW5nID0gaW50ZXJ2ZW50aW9uLnBsYW5uaW5nO1xyXG4gICAgICAgICAgICBsZXQgY29kZSA9IHBsYW5uaW5nLnV0aWxpc2F0ZXVyX2FnZW50LmNvZGVfYWdlbnQ7XHJcbiAgICAgICAgICAgIGxldCBtb21lbnQgPSBwbGFubmluZy5tb21lbnRfcGFzc2FnZS5pZDtcclxuICAgICAgICAgICAgbGV0IHN0YXR1dCA9IHBsYW5uaW5nLnN0YXR1dDtcclxuICAgICAgICAgICAgaW50ZXJ2ZW50aW9uLnR5cGUgPSAnaW50ZXJ2ZW50aW9uJztcclxuICAgICAgICAgICAgaW50ZXJ2ZW50aW9uLmFnZW50SWQgPSBwbGFubmluZy51dGlsaXNhdGV1cl9hZ2VudC5pZDtcclxuICAgICAgICAgICAgcmVtYWluaW5nTWFya2VycysrO1xyXG4gICAgICAgICAgICBhZGRNYXJrZXIoY29vcmRzLCBjb2RlLCBzdGF0dXQsIG1vbWVudCwgJ3doaXRlJywgaW50ZXJ2ZW50aW9uLCBvbk1hcmtlckFkZGVkKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGUoZGF0ZVN0cmluZykge1xyXG4gICAgLy8gQ3LDqWUgdW4gb2JqZXQgRGF0ZSDDoCBwYXJ0aXIgZGUgbGEgY2hhw65uZVxyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGRhdGVTdHJpbmcpO1xyXG5cclxuICAgIC8vIFLDqWN1cMOocmUgbGVzIGNvbXBvc2FudHMgZGUgbGEgZGF0ZVxyXG4gICAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpOyAvLyBKb3VyIGF1IGZvcm1hdCBcIjAyXCJcclxuICAgIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7IC8vIE1vaXMgYXUgZm9ybWF0IFwiMDJcIiAobGVzIG1vaXMgY29tbWVuY2VudCDDoCAwKVxyXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTsgLy8gQW5uw6llIGF1IGZvcm1hdCBcIjIwMjVcIlxyXG5cclxuICAgIC8vIFLDqWN1cMOocmUgbCdoZXVyZSBldCBsZXMgbWludXRlc1xyXG4gICAgY29uc3QgaG91cnMgPSBTdHJpbmcoZGF0ZS5nZXRIb3VycygpKS5wYWRTdGFydCgyLCAnMCcpOyAvLyBIZXVyZSBhdSBmb3JtYXQgXCIwN1wiXHJcbiAgICBjb25zdCBtaW51dGVzID0gU3RyaW5nKGRhdGUuZ2V0TWludXRlcygpKS5wYWRTdGFydCgyLCAnMCcpOyAvLyBNaW51dGVzIGF1IGZvcm1hdCBcIjA1XCJcclxuXHJcbiAgICAvLyBSZXRvdXJuZSBsZSBmb3JtYXQgZMOpc2lyw6lcclxuICAgIHJldHVybiBgTGUgJHtkYXl9LyR7bW9udGh9LyR7eWVhcn0gw6AgJHtob3Vyc306JHttaW51dGVzfWA7XHJcbn1cclxuXHJcbmV4cG9ydCB7IG1hcCwgdmVjdG9yU291cmNlLCBvdmVybGF5UmR2LCBvdmVybGF5R3BzIH07Il0sInNvdXJjZVJvb3QiOiIifQ==", "@public_path/build/assets_js_map_js.js", "/builds/dev/refonte_sav/public/build/assets_js_map_js.js");
    }
}
