<?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/list.js */
class __TwigTemplate_73843b02f80a4290c514f12491c09254dc80017df36f7979cf8ab1896d969114 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/list.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/list.js"));

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

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

/* provided dependency */ var \$ = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");
__webpack_require__(/*! core-js/modules/es.array.for-each.js */ \"./node_modules/core-js/modules/es.array.for-each.js\");

__webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");

__webpack_require__(/*! core-js/modules/es.array.find.js */ \"./node_modules/core-js/modules/es.array.find.js\");

__webpack_require__(/*! core-js/modules/es.regexp.exec.js */ \"./node_modules/core-js/modules/es.regexp.exec.js\");

__webpack_require__(/*! core-js/modules/es.string.replace.js */ \"./node_modules/core-js/modules/es.string.replace.js\");

var common = __webpack_require__(/*! ./common */ \"./assets/js/common.js\");

window.jsPDF = window.jspdf.jsPDF;
\$(document).on('ready turbo:load', function () {
  window.popup_save_filter = \$(\"#popup-save-filter\").dxPopup({
    width: 1000,
    height: \"auto\",
    container: \".dx-viewport\",
    showTitle: true,
    title: \"Enregistrer dans Mes filtres\",
    visible: false,
    dragEnabled: true,
    closeOnOutsideClick: true,
    showCloseButton: true,
    elementAttr: {
      id: \"save-filter\",
      \"class\": \"nobutton\"
    },
    position: {
      at: \"center\",
      my: \"center\",
      of: \$('#main')
    }
  }).dxPopup(\"instance\");
  var custom = new DevExpress.data.CustomStore({
    key: \"id\",
    load: function load(loadOptions) {
      var deferred = \$.Deferred(),
          args = {};
      [\"requireTotalCount\"].forEach(function (i) {
        if (i in loadOptions && isNotEmpty(loadOptions[i])) args[i] = JSON.stringify(loadOptions[i]);
      });
      \$.ajax({
        url: \"/filters/\" + \$('#infos_list').data('page-filtre'),
        dataType: \"json\",
        data: args,
        success: function success(result) {
          deferred.resolve(result.data, {
            totalCount: result.totalCount
          });
        },
        error: function error() {
          deferred.reject(\"Erreur dans le chargement de données\");
        },
        timeout: 5000
      });
      return deferred.promise();
    },
    update: function update(key, values) {
      \$.ajax({
        url: \"/utilisateur/filtres/\" + key,
        type: \"patch\",
        dataType: \"json\",
        data: values,
        success: function success(result) {
          return true;
        },
        error: function error() {
          console.log('erreur lors de la mise à jour des données');
          return false;
        }
      });
    },
    remove: function remove(key, values) {
      \$.ajax({
        url: \"/UtilisateurFiltre/\" + key,
        type: \"DELETE\",
        dataType: \"json\",
        data: values,
        success: function success(result) {
          return true;
        },
        error: function error() {
          console.log('erreur lors de la suppression des données');
          return false;
        }
      });
    }
  });
  var visible_column_filtres = true;

  if (\$('body').data('responsable') != \"1\") {
    visible_column_filtres = false;
  }

  var popup_list_filter = \$(\"#popup-list-filter\").dxPopup({
    width: 710,
    height: \"auto\",
    maxHeight: 500,
    container: \".grid\",
    showTitle: true,
    shading: false,
    title: \"Mes filtres\",
    visible: false,
    dragEnabled: true,
    closeOnOutsideClick: true,
    showCloseButton: true,
    onShown: function onShown(e) {
      \$(\"#grid-list-filter\").dxDataGrid({
        dataSource: custom,
        showBorders: true,
        keyExpr: \"id\",
        showColumnHeaders: true,
        paging: {
          pageSize: 10
        },
        onRowClick: function onRowClick(e) {
          var filtre = JSON.parse(e.data.filtre);
          var colonnes = JSON.parse(e.data.colonnes);
          \$('#mes-filtres').remove();

          if (\$('#pivotgrid').length == 1) {
            \$('#pivotgrid').dxPivotGrid('instance').getDataSource().state(filtre);
            \$('#pivotgrid').prepend().prepend(\$('<div id=\"mes-filtres\" class=\"my-2 color-primary\" style=\"font-weight: 600;\"></div>').html('Filtre Appliqué : ' + e.data.titre));
          } else {
            \$(\".grid\").dxDataGrid(\"instance\").option(\"filterValue\", filtre); //on parse les colonnes pour que afficher celle qui étaient visible lors du filltre

            if (colonnes) {
              \$(\".grid\").dxDataGrid(\"instance\").option(\"columns\").forEach(function (value, key) {
                if (colonnes[value.dataField] != undefined) {
                  \$(\".grid\").dxDataGrid(\"columnOption\", key, \"visibleIndex\", colonnes[value.dataField]);
                  \$(\".grid\").dxDataGrid(\"columnOption\", key, \"visible\", true);
                } else {
                  \$(\".grid\").dxDataGrid(\"columnOption\", key, \"visible\", false);
                }
              });
            }

            \$('.grid').prepend().prepend(\$('<div id=\"mes-filtres\" class=\"my-2 color-primary\" style=\"font-weight: 600;\"></div>').html('Filtre Appliqué : ' + e.data.titre));
            \$('#popup-list-filter').dxPopup('instance').hide();
          }
        },
        editing: {
          mode: \"row\",
          allowUpdating: visible_column_filtres,
          allowDeleting: visible_column_filtres,
          allowAdding: false
        },
        columns: [{
          dataField: \"titre\",
          allowEditing: visible_column_filtres
        }, {
          dataField: \"utilisateur_role_id\",
          allowEditing: true,
          caption: 'Role utilisateur',
          visible: visible_column_filtres,
          dataType: 'number',
          lookup: {
            dataSource: [{
              id: 5,
              nom: 'Agent de terrain'
            }, {
              id: 7,
              nom: 'Agent de planning'
            }, {
              id: 9,
              nom: 'Magasin'
            }, {
              id: 10,
              nom: 'Renseignement technique'
            }, {
              id: 11,
              nom: 'Administratif'
            }],
            displayExpr: \"nom\",
            valueExpr: \"id\"
          }
        }, {
          width: 80,
          dataField: \"defaut\",
          caption: 'Défaut',
          allowEditing: true,
          dataType: \"boolean\",
          visible: visible_column_filtres
        }, {
          width: 120,
          dataField: \"defaut_utilisateur\",
          caption: 'Défaut pour moi',
          allowEditing: true,
          dataType: \"boolean\",
          visible: visible_column_filtres
        }, {
          dataField: \"filtre\",
          allowEditing: false,
          visible: false
        }]
      });
    },
    position: {
      my: \"right top\",
      at: \"right top\",
      of: \$('.dx-viewport')[0],
      collision: \"fit\",
      offset: \"-50 60\"
    }
  }).dxPopup(\"instance\");

  if (\$('#link-add-' + \$('#infos_list').data('page')).length != 0) {
    \$('body').on('click', '#link-add-' + \$('#infos_list').data('page'), function (e) {
      e.preventDefault();
      var name = 'popupadd' + \$('#infos_list').data('page');
      eval('var ' + name + ' = common.createDxPopup(\"' + name + '\", \"Ajout\", \"auto\")');
      eval(name).option(\"container\", 'body');
      common.resetForm();
      eval(name).show();
      \$('#' + name).show();
      \$('.alert').html('').hide();
    });
  }

  var \$selectpicker = \$('.my-select-multiple');

  if (!\$selectpicker.is(':disabled') && \$selectpicker) {
    \$selectpicker.selectpicker({
      noneSelectedText: 'Selectionnez'
    });
  }
});
\$(document).ready(function () {
  \$('body').on('click', '.produit-photo-principale.fa-unselected', function (e) {
    \$('.produit-photo-principale.selected').removeClass('selected').addClass('fa-unselected');
    \$(this).toggleClass('fa-unselected').addClass('selected');
    var id = \$(this).data('id');
    \$.ajax({
      method: \"PATCH\",
      url: \"/produit_photos/\" + id,
      data: {
        photo_principale: true
      },
      dataType: \"json\",
      error: function error() {
        alert('erreur lors de la mise à jour');
      },
      timeout: 2000
    });
  });
  \$('body').on('click', '.produit-photo-delete', function (e) {
    window.resultPhotoDelete = DevExpress.ui.dialog.confirm(\"<i>Êtes vous sur de vouloir supprimer la photo?</i>\", \"Photo\");
    var id = \$(this).data('id');
    var parent = \$(this).parent().parent();
    return window.resultPhotoDelete.done(function (dialogResult) {
      if (dialogResult) {
        \$.ajax({
          method: \"DELETE\",
          url: \"/produit_photos/\" + id,
          dataType: \"json\",
          success: function success(result) {
            \$(parent).remove();
          },
          error: function error() {
            console.log('erreur lors de la suppression');
          },
          timeout: 2000
        });
      }
    });
  });
  \$('body').on('click', '.btn-close-popupadd', function (e) {
    \$('#popupadd' + \$('#infos_list').data('page')).dxPopup('instance').hide();
  });
  \$('body').on('click', 'button.btn-close-popup', function (e) {
    e.preventDefault();
    var idPopup = \$(this).data('dxpopup-id');
    \$('#' + idPopup).dxPopup('instance').hide();
  });
  \$('body').on('click', '.customtab-periode i.fa-trash', function (e) {
    var result = DevExpress.ui.dialog.confirm(\"<i>Êtes vous sur de vouloir supprimer la période?</i>\", \"Période\");
    var type = \$(this).data('type');
    var periode = \$(this).data('periode');
    var parent = \$(this).parent().parent().parent();
    var nextTab = parent.parent().next();
    var prevTab = parent.parent().prev();
    result.done(function (dialogResult) {
      if (dialogResult) {
        \$.ajax({
          method: \"DELETE\",
          url: \"/tarif/periode/\" + type,
          data: {
            'periode': periode
          },
          dataType: \"json\",
          success: function success(result) {
            var ul = parent.parent().parent();
            parent.tab('dispose');
            \$(parent).parent().remove();

            if (nextTab.length != 0) {
              nextTab.children('button').tab('show');
            } else if (prevTab.length != 0) {
              prevTab.children('button').tab('show');
            }

            ul.find('li > button > span.periode_nom').each(function () {
              var text = \$(this).text();
              \$(this).text(text.replace(' > ' + result.periode, ''));
            });
          },
          error: function error() {
            alert('erreur lors de la suppression de la période');
          },
          timeout: 2000
        });
      }

      result = undefined;
      delete resultPhotoDelete;
    });
  });
  \$('body').on('click', '#closepopup', function (e) {
    window.popup_save_filter.hide();
  });
  \$('body').on('click', '#openpopup', function (e) {
    \$(\"#save-filter\").show();
    common.resetForm();
    window.popup_save_filter.show();
    \$('.alert').html('').hide();
  });
});

/***/ }),

/***/ \"./node_modules/core-js/internals/get-substitution.js\":
/*!************************************************************!*\\
  !*** ./node_modules/core-js/internals/get-substitution.js ***!
  \\************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");

var floor = Math.floor;
var replace = ''.replace;
var SUBSTITUTION_SYMBOLS = /\\\$([\$&'`]|\\d{1,2}|<[^>]*>)/g;
var SUBSTITUTION_SYMBOLS_NO_NAMED = /\\\$([\$&'`]|\\d{1,2})/g;

// `GetSubstitution` abstract operation
// https://tc39.es/ecma262/#sec-getsubstitution
module.exports = function (matched, str, position, captures, namedCaptures, replacement) {
  var tailPos = position + matched.length;
  var m = captures.length;
  var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
  if (namedCaptures !== undefined) {
    namedCaptures = toObject(namedCaptures);
    symbols = SUBSTITUTION_SYMBOLS;
  }
  return replace.call(replacement, symbols, function (match, ch) {
    var capture;
    switch (ch.charAt(0)) {
      case '\$': return '\$';
      case '&': return matched;
      case '`': return str.slice(0, position);
      case \"'\": return str.slice(tailPos);
      case '<':
        capture = namedCaptures[ch.slice(1, -1)];
        break;
      default: // \\d\\d?
        var n = +ch;
        if (n === 0) return match;
        if (n > m) {
          var f = floor(n / 10);
          if (f === 0) return match;
          if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
          return match;
        }
        capture = captures[n - 1];
    }
    return capture === undefined ? '' : capture;
  });
};


/***/ }),

/***/ \"./node_modules/core-js/modules/es.string.replace.js\":
/*!***********************************************************!*\\
  !*** ./node_modules/core-js/modules/es.string.replace.js ***!
  \\***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

\"use strict\";

var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ \"./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js\");
var anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");
var toLength = __webpack_require__(/*! ../internals/to-length */ \"./node_modules/core-js/internals/to-length.js\");
var toInteger = __webpack_require__(/*! ../internals/to-integer */ \"./node_modules/core-js/internals/to-integer.js\");
var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");
var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ \"./node_modules/core-js/internals/advance-string-index.js\");
var getSubstitution = __webpack_require__(/*! ../internals/get-substitution */ \"./node_modules/core-js/internals/get-substitution.js\");
var regExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ \"./node_modules/core-js/internals/regexp-exec-abstract.js\");

var max = Math.max;
var min = Math.min;

var maybeToString = function (it) {
  return it === undefined ? it : String(it);
};

// @@replace logic
fixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {
  var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;
  var REPLACE_KEEPS_\$0 = reason.REPLACE_KEEPS_\$0;
  var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '\$' : '\$0';

  return [
    // `String.prototype.replace` method
    // https://tc39.es/ecma262/#sec-string.prototype.replace
    function replace(searchValue, replaceValue) {
      var O = requireObjectCoercible(this);
      var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];
      return replacer !== undefined
        ? replacer.call(searchValue, O, replaceValue)
        : nativeReplace.call(String(O), searchValue, replaceValue);
    },
    // `RegExp.prototype[@@replace]` method
    // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
    function (regexp, replaceValue) {
      if (
        (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_\$0) ||
        (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)
      ) {
        var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);
        if (res.done) return res.value;
      }

      var rx = anObject(regexp);
      var S = String(this);

      var functionalReplace = typeof replaceValue === 'function';
      if (!functionalReplace) replaceValue = String(replaceValue);

      var global = rx.global;
      if (global) {
        var fullUnicode = rx.unicode;
        rx.lastIndex = 0;
      }
      var results = [];
      while (true) {
        var result = regExpExec(rx, S);
        if (result === null) break;

        results.push(result);
        if (!global) break;

        var matchStr = String(result[0]);
        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
      }

      var accumulatedResult = '';
      var nextSourcePosition = 0;
      for (var i = 0; i < results.length; i++) {
        result = results[i];

        var matched = String(result[0]);
        var position = max(min(toInteger(result.index), S.length), 0);
        var captures = [];
        // NOTE: This is equivalent to
        //   captures = result.slice(1).map(maybeToString)
        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
        // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and
        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
        var namedCaptures = result.groups;
        if (functionalReplace) {
          var replacerArgs = [matched].concat(captures, position, S);
          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
          var replacement = String(replaceValue.apply(undefined, replacerArgs));
        } else {
          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
        }
        if (position >= nextSourcePosition) {
          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
          nextSourcePosition = position + matched.length;
        }
      }
      return accumulatedResult + S.slice(nextSourcePosition);
    }
  ];
});


/***/ })

},
/******/ __webpack_require__ => { // webpackRuntimeModules
/******/ \"use strict\";
/******/ 
/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
/******/ __webpack_require__.O(0, [\"vendors-node_modules_core-js_internals_engine-user-agent_js-node_modules_core-js_internals_ex-b41e05\",\"vendors-node_modules_jquery_dist_jquery_js\",\"vendors-node_modules_core-js_internals_add-to-unscopables_js-node_modules_core-js_internals_a-5c631b\",\"vendors-node_modules_core-js_internals_array-method-has-species-support_js-node_modules_core--4e4faa\",\"vendors-node_modules_core-js_modules_es_array_filter_js-node_modules_core-js_modules_es_array-0312b5\",\"assets_js_common_js\"], () => (__webpack_exec__(\"./assets/js/list.js\")));
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ }
]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvbGlzdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2V0LXN1YnN0aXR1dGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlLmpzIl0sIm5hbWVzIjpbImNvbW1vbiIsInJlcXVpcmUiLCJ3aW5kb3ciLCJqc1BERiIsImpzcGRmIiwiJCIsImRvY3VtZW50Iiwib24iLCJwb3B1cF9zYXZlX2ZpbHRlciIsImR4UG9wdXAiLCJ3aWR0aCIsImhlaWdodCIsImNvbnRhaW5lciIsInNob3dUaXRsZSIsInRpdGxlIiwidmlzaWJsZSIsImRyYWdFbmFibGVkIiwiY2xvc2VPbk91dHNpZGVDbGljayIsInNob3dDbG9zZUJ1dHRvbiIsImVsZW1lbnRBdHRyIiwiaWQiLCJwb3NpdGlvbiIsImF0IiwibXkiLCJvZiIsImN1c3RvbSIsIkRldkV4cHJlc3MiLCJkYXRhIiwiQ3VzdG9tU3RvcmUiLCJrZXkiLCJsb2FkIiwibG9hZE9wdGlvbnMiLCJkZWZlcnJlZCIsIkRlZmVycmVkIiwiYXJncyIsImZvckVhY2giLCJpIiwiaXNOb3RFbXB0eSIsIkpTT04iLCJzdHJpbmdpZnkiLCJhamF4IiwidXJsIiwiZGF0YVR5cGUiLCJzdWNjZXNzIiwicmVzdWx0IiwicmVzb2x2ZSIsInRvdGFsQ291bnQiLCJlcnJvciIsInJlamVjdCIsInRpbWVvdXQiLCJwcm9taXNlIiwidXBkYXRlIiwidmFsdWVzIiwidHlwZSIsImNvbnNvbGUiLCJsb2ciLCJyZW1vdmUiLCJ2aXNpYmxlX2NvbHVtbl9maWx0cmVzIiwicG9wdXBfbGlzdF9maWx0ZXIiLCJtYXhIZWlnaHQiLCJzaGFkaW5nIiwib25TaG93biIsImUiLCJkeERhdGFHcmlkIiwiZGF0YVNvdXJjZSIsInNob3dCb3JkZXJzIiwia2V5RXhwciIsInNob3dDb2x1bW5IZWFkZXJzIiwicGFnaW5nIiwicGFnZVNpemUiLCJvblJvd0NsaWNrIiwiZmlsdHJlIiwicGFyc2UiLCJjb2xvbm5lcyIsImxlbmd0aCIsImR4UGl2b3RHcmlkIiwiZ2V0RGF0YVNvdXJjZSIsInN0YXRlIiwicHJlcGVuZCIsImh0bWwiLCJ0aXRyZSIsIm9wdGlvbiIsInZhbHVlIiwiZGF0YUZpZWxkIiwidW5kZWZpbmVkIiwiaGlkZSIsImVkaXRpbmciLCJtb2RlIiwiYWxsb3dVcGRhdGluZyIsImFsbG93RGVsZXRpbmciLCJhbGxvd0FkZGluZyIsImNvbHVtbnMiLCJhbGxvd0VkaXRpbmciLCJjYXB0aW9uIiwibG9va3VwIiwibm9tIiwiZGlzcGxheUV4cHIiLCJ2YWx1ZUV4cHIiLCJjb2xsaXNpb24iLCJvZmZzZXQiLCJwcmV2ZW50RGVmYXVsdCIsIm5hbWUiLCJldmFsIiwicmVzZXRGb3JtIiwic2hvdyIsIiRzZWxlY3RwaWNrZXIiLCJpcyIsInNlbGVjdHBpY2tlciIsIm5vbmVTZWxlY3RlZFRleHQiLCJyZWFkeSIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCJ0b2dnbGVDbGFzcyIsIm1ldGhvZCIsInBob3RvX3ByaW5jaXBhbGUiLCJhbGVydCIsInJlc3VsdFBob3RvRGVsZXRlIiwidWkiLCJkaWFsb2ciLCJjb25maXJtIiwicGFyZW50IiwiZG9uZSIsImRpYWxvZ1Jlc3VsdCIsImlkUG9wdXAiLCJwZXJpb2RlIiwibmV4dFRhYiIsIm5leHQiLCJwcmV2VGFiIiwicHJldiIsInVsIiwidGFiIiwiY2hpbGRyZW4iLCJmaW5kIiwiZWFjaCIsInRleHQiLCJyZXBsYWNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBSUEsTUFBTSxHQUFHQyxtQkFBTyxDQUFDLHVDQUFELENBQXBCOztBQUNBQyxNQUFNLENBQUNDLEtBQVAsR0FBZUQsTUFBTSxDQUFDRSxLQUFQLENBQWFELEtBQTVCO0FBRUFFLENBQUMsQ0FBQ0MsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxrQkFBZixFQUFtQyxZ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QTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxxQkFBcUIsb0JBQW9CO0FBQ3pDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsbUJBQW1CO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwiZmlsZSI6Imxpc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgY29tbW9uID0gcmVxdWlyZShcIi4vY29tbW9uXCIpO1xyXG53aW5kb3cuanNQREYgPSB3aW5kb3cuanNwZGYuanNQREY7XHJcblxyXG4kKGRvY3VtZW50KS5vbigncmVhZHkgdHVyYm86bG9hZCcsIGZ1bmN0aW9uKCkge1xyXG5cclxuXHJcbiAgICB3aW5kb3cucG9wdXBfc2F2ZV9maWx0ZXIgPSAkKFwiI3BvcHVwLXNhdmUtZmlsdGVyXCIpLmR4UG9wdXAoe1xyXG4gICAgICAgIHdpZHRoOiAxMDAwLFxyXG4gICAgICAgIGhlaWdodDogXCJhdXRvXCIsXHJcbiAgICAgICAgY29udGFpbmVyOiBcIi5keC12aWV3cG9ydFwiLFxyXG4gICAgICAgIHNob3dUaXRsZTogdHJ1ZSxcclxuICAgICAgICB0aXRsZTogXCJFbnJlZ2lzdHJlciBkYW5zIE1lcyBmaWx0cmVzXCIsXHJcbiAgICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgZHJhZ0VuYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgY2xvc2VPbk91dHNpZGVDbGljazogdHJ1ZSxcclxuICAgICAgICBzaG93Q2xvc2VCdXR0b246IHRydWUsXHJcbiAgICAgICAgZWxlbWVudEF0dHI6IHtcclxuICAgICAgICAgICAgaWQ6IFwic2F2ZS1maWx0ZXJcIixcclxuICAgICAgICAgICAgY2xhc3M6IFwibm9idXR0b25cIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICAgICAgYXQ6IFwiY2VudGVyXCIsXHJcbiAgICAgICAgICAgIG15OiBcImNlbnRlclwiLFxyXG4gICAgICAgICAgICBvZjogJCgnI21haW4nKSxcclxuICAgICAgICB9LFxyXG4gICAgfSkuZHhQb3B1cChcImluc3RhbmNlXCIpO1xyXG5cclxuICAgIHZhciBjdXN0b20gPSBuZXcgRGV2RXhwcmVzcy5kYXRhLkN1c3RvbVN0b3JlKHtcclxuICAgICAgICBrZXk6IFwiaWRcIixcclxuICAgICAgICBsb2FkOiBmdW5jdGlvbiAobG9hZE9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdmFyIGRlZmVycmVkID0gJC5EZWZlcnJlZCgpLFxyXG4gICAgICAgICAgICAgICAgYXJncyA9IHt9O1xyXG5cclxuICAgICAgICAgICAgW1xyXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlVG90YWxDb3VudFwiLFxyXG4gICAgICAgICAgICBdLmZvckVhY2goZnVuY3Rpb24gKGkpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpIGluIGxvYWRPcHRpb25zICYmIGlzTm90RW1wdHkobG9hZE9wdGlvbnNbaV0pKVxyXG4gICAgICAgICAgICAgICAgICAgIGFyZ3NbaV0gPSBKU09OLnN0cmluZ2lmeShsb2FkT3B0aW9uc1tpXSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICAgICAgdXJsOiBcIi9maWx0ZXJzL1wiICsgJCgnI2luZm9zX2xpc3QnKS5kYXRhKCdwYWdlLWZpbHRyZScpLFxyXG4gICAgICAgICAgICAgICAgZGF0YVR5cGU6IFwianNvblwiLFxyXG4gICAgICAgICAgICAgICAgZGF0YTogYXJncyxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICBkZWZlcnJlZC5yZXNvbHZlKHJlc3VsdC5kYXRhLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsQ291bnQ6IHJlc3VsdC50b3RhbENvdW50LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVmZXJyZWQucmVqZWN0KFwiRXJyZXVyIGRhbnMgbGUgY2hhcmdlbWVudCBkZSBkb25uw6llc1wiKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB0aW1lb3V0OiA1MDAwXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGRlZmVycmVkLnByb21pc2UoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHVwZGF0ZTogZnVuY3Rpb24gKGtleSwgdmFsdWVzKSB7XHJcblxyXG4gICAgICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICAgICAgdXJsOiBcIi91dGlsaXNhdGV1ci9maWx0cmVzL1wiICsga2V5LFxyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJwYXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgZGF0YVR5cGU6IFwianNvblwiLFxyXG4gICAgICAgICAgICAgICAgZGF0YTogdmFsdWVzLFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2VycmV1ciBsb3JzIGRlIGxhIG1pc2Ugw6Agam91ciBkZXMgZG9ubsOpZXMnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlbW92ZTogZnVuY3Rpb24gKGtleSwgdmFsdWVzKSB7XHJcbiAgICAgICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgICAgICB1cmw6IFwiL1V0aWxpc2F0ZXVyRmlsdHJlL1wiICsga2V5LFxyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJERUxFVEVcIixcclxuICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBcImpzb25cIixcclxuICAgICAgICAgICAgICAgIGRhdGE6IHZhbHVlcyxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJldXIgbG9ycyBkZSBsYSBzdXBwcmVzc2lvbiBkZXMgZG9ubsOpZXMnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgdmFyIHZpc2libGVfY29sdW1uX2ZpbHRyZXMgPSB0cnVlO1xyXG4gICAgaWYgKCQoJ2JvZHknKS5kYXRhKCdyZXNwb25zYWJsZScpICE9IFwiMVwiKSB7XHJcbiAgICAgICAgdmlzaWJsZV9jb2x1bW5fZmlsdHJlcyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdmFyIHBvcHVwX2xpc3RfZmlsdGVyID0gJChcIiNwb3B1cC1saXN0LWZpbHRlclwiKS5keFBvcHVwKHtcclxuICAgICAgICB3aWR0aDogNzEwLFxyXG4gICAgICAgIGhlaWdodDogXCJhdXRvXCIsXHJcbiAgICAgICAgbWF4SGVpZ2h0OiA1MDAsXHJcbiAgICAgICAgY29udGFpbmVyOiBcIi5ncmlkXCIsXHJcbiAgICAgICAgc2hvd1RpdGxlOiB0cnVlLFxyXG4gICAgICAgIHNoYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgIHRpdGxlOiBcIk1lcyBmaWx0cmVzXCIsXHJcbiAgICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgZHJhZ0VuYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgY2xvc2VPbk91dHNpZGVDbGljazogdHJ1ZSxcclxuICAgICAgICBzaG93Q2xvc2VCdXR0b246IHRydWUsXHJcbiAgICAgICAgb25TaG93bjogZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICAgICAgJChcIiNncmlkLWxpc3QtZmlsdGVyXCIpLmR4RGF0YUdyaWQoe1xyXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZTogY3VzdG9tLFxyXG4gICAgICAgICAgICAgICAgc2hvd0JvcmRlcnM6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBrZXlFeHByOiBcImlkXCIsXHJcbiAgICAgICAgICAgICAgICBzaG93Q29sdW1uSGVhZGVyczogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHBhZ2luZzoge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VTaXplOiAxMFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIG9uUm93Q2xpY2s6IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZpbHRyZSA9IEpTT04ucGFyc2UoZS5kYXRhLmZpbHRyZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbG9ubmVzID0gSlNPTi5wYXJzZShlLmRhdGEuY29sb25uZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICQoJyNtZXMtZmlsdHJlcycpLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgkKCcjcGl2b3RncmlkJykubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJCgnI3Bpdm90Z3JpZCcpLmR4UGl2b3RHcmlkKCdpbnN0YW5jZScpLmdldERhdGFTb3VyY2UoKS5zdGF0ZShmaWx0cmUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcjcGl2b3RncmlkJykucHJlcGVuZCgpLnByZXBlbmQoJCgnPGRpdiBpZD1cIm1lcy1maWx0cmVzXCIgY2xhc3M9XCJteS0yIGNvbG9yLXByaW1hcnlcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA2MDA7XCI+PC9kaXY+JykuaHRtbCgnRmlsdHJlIEFwcGxpcXXDqSA6ICcgKyBlLmRhdGEudGl0cmUpKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiLmdyaWRcIikuZHhEYXRhR3JpZChcImluc3RhbmNlXCIpLm9wdGlvbihcImZpbHRlclZhbHVlXCIsIGZpbHRyZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vb24gcGFyc2UgbGVzIGNvbG9ubmVzIHBvdXIgcXVlIGFmZmljaGVyIGNlbGxlIHF1aSDDqXRhaWVudCB2aXNpYmxlIGxvcnMgZHUgZmlsbHRyZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29sb25uZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIuZ3JpZFwiKS5keERhdGFHcmlkKFwiaW5zdGFuY2VcIikub3B0aW9uKFwiY29sdW1uc1wiKS5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLGtleSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2xvbm5lc1t2YWx1ZS5kYXRhRmllbGRdICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiLmdyaWRcIikuZHhEYXRhR3JpZChcImNvbHVtbk9wdGlvblwiLCBrZXksIFwidmlzaWJsZUluZGV4XCIsIGNvbG9ubmVzW3ZhbHVlLmRhdGFGaWVsZF0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiLmdyaWRcIikuZHhEYXRhR3JpZChcImNvbHVtbk9wdGlvblwiLCBrZXksIFwidmlzaWJsZVwiLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiLmdyaWRcIikuZHhEYXRhR3JpZChcImNvbHVtbk9wdGlvblwiLCBrZXksIFwidmlzaWJsZVwiLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcuZ3JpZCcpLnByZXBlbmQoKS5wcmVwZW5kKCQoJzxkaXYgaWQ9XCJtZXMtZmlsdHJlc1wiIGNsYXNzPVwibXktMiBjb2xvci1wcmltYXJ5XCIgc3R5bGU9XCJmb250LXdlaWdodDogNjAwO1wiPjwvZGl2PicpLmh0bWwoJ0ZpbHRyZSBBcHBsaXF1w6kgOiAnICsgZS5kYXRhLnRpdHJlKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNwb3B1cC1saXN0LWZpbHRlcicpLmR4UG9wdXAoJ2luc3RhbmNlJykuaGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlZGl0aW5nOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9kZTogXCJyb3dcIixcclxuICAgICAgICAgICAgICAgICAgICBhbGxvd1VwZGF0aW5nOiB2aXNpYmxlX2NvbHVtbl9maWx0cmVzLFxyXG4gICAgICAgICAgICAgICAgICAgIGFsbG93RGVsZXRpbmc6IHZpc2libGVfY29sdW1uX2ZpbHRyZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dBZGRpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNvbHVtbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhRmllbGQ6IFwidGl0cmVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dFZGl0aW5nOiB2aXNpYmxlX2NvbHVtbl9maWx0cmVzXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFGaWVsZDogXCJ1dGlsaXNhdGV1cl9yb2xlX2lkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93RWRpdGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FwdGlvbjogJ1JvbGUgdXRpbGlzYXRldXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlOiB2aXNpYmxlX2NvbHVtbl9maWx0cmVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ251bWJlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvb2t1cCA6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2U6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWQ6IDUsIG5vbTonQWdlbnQgZGUgdGVycmFpbid9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZDogNywgbm9tOidBZ2VudCBkZSBwbGFubmluZyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZDogOSwgbm9tOidNYWdhc2luJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lkOiAxMCwgbm9tOidSZW5zZWlnbmVtZW50IHRlY2huaXF1ZSd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZDogMTEsIG5vbTonQWRtaW5pc3RyYXRpZid9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlFeHByOiBcIm5vbVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVFeHByOiBcImlkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA4MCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUZpZWxkOiBcImRlZmF1dFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uOiAnRMOpZmF1dCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93RWRpdGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6IFwiYm9vbGVhblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlOiB2aXNpYmxlX2NvbHVtbl9maWx0cmVzLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTIwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhRmllbGQ6IFwiZGVmYXV0X3V0aWxpc2F0ZXVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcHRpb246ICdEw6lmYXV0IHBvdXIgbW9pJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dFZGl0aW5nOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogXCJib29sZWFuXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGU6IHZpc2libGVfY29sdW1uX2ZpbHRyZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFGaWVsZDogXCJmaWx0cmVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dFZGl0aW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBwb3NpdGlvbjoge1xyXG4gICAgICAgICAgICBteTogXCJyaWdodCB0b3BcIixcclxuICAgICAgICAgICAgYXQ6IFwicmlnaHQgdG9wXCIsXHJcbiAgICAgICAgICAgIG9mOiAkKCcuZHgtdmlld3BvcnQnKVswXSxcclxuICAgICAgICAgICAgY29sbGlzaW9uOiBcImZpdFwiLFxyXG4gICAgICAgICAgICBvZmZzZXQ6IFwiLTUwIDYwXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICB9KS5keFBvcHVwKFwiaW5zdGFuY2VcIik7XHJcblxyXG4gICAgaWYgKCQoJyNsaW5rLWFkZC0nICsgJCgnI2luZm9zX2xpc3QnKS5kYXRhKCdwYWdlJykpLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgJCgnYm9keScpLm9uKCdjbGljaycsJyNsaW5rLWFkZC0nICsgJCgnI2luZm9zX2xpc3QnKS5kYXRhKCdwYWdlJyksIGZ1bmN0aW9uKGUpe1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHZhciBuYW1lID0gJ3BvcHVwYWRkJyArICQoJyNpbmZvc19saXN0JykuZGF0YSgncGFnZScpO1xyXG4gICAgICAgICAgICBldmFsICgndmFyICcgKyBuYW1lICsgJyA9IGNvbW1vbi5jcmVhdGVEeFBvcHVwKFwiJyArIG5hbWUgKyAnXCIsIFwiQWpvdXRcIiwgXCJhdXRvXCIpJyk7XHJcbiAgICAgICAgICAgIGV2YWwobmFtZSkub3B0aW9uKFwiY29udGFpbmVyXCIsICdib2R5Jyk7XHJcbiAgICAgICAgICAgIGNvbW1vbi5yZXNldEZvcm0oKTtcclxuICAgICAgICAgICAgZXZhbChuYW1lKS5zaG93KCk7XHJcbiAgICAgICAgICAgICQoJyMnICsgbmFtZSkuc2hvdygpO1xyXG4gICAgICAgICAgICAkKCcuYWxlcnQnKS5odG1sKCcnKS5oaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgJHNlbGVjdHBpY2tlciA9ICQoJy5teS1zZWxlY3QtbXVsdGlwbGUnKTtcclxuICAgIGlmICghJHNlbGVjdHBpY2tlci5pcygnOmRpc2FibGVkJykgJiYgJHNlbGVjdHBpY2tlcikge1xyXG4gICAgICAgICRzZWxlY3RwaWNrZXIuc2VsZWN0cGlja2VyKHtcclxuICAgICAgICAgICAgbm9uZVNlbGVjdGVkVGV4dCA6ICdTZWxlY3Rpb25uZXonLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59KTtcclxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtcclxuICAgICQoJ2JvZHknKS5vbignY2xpY2snLCcucHJvZHVpdC1waG90by1wcmluY2lwYWxlLmZhLXVuc2VsZWN0ZWQnLCBmdW5jdGlvbihlKSB7XHJcbiAgICAgICAgJCgnLnByb2R1aXQtcGhvdG8tcHJpbmNpcGFsZS5zZWxlY3RlZCcpLnJlbW92ZUNsYXNzKCdzZWxlY3RlZCcpLmFkZENsYXNzKCdmYS11bnNlbGVjdGVkJyk7XHJcbiAgICAgICAgJCh0aGlzKS50b2dnbGVDbGFzcygnZmEtdW5zZWxlY3RlZCcpLmFkZENsYXNzKCdzZWxlY3RlZCcpO1xyXG4gICAgICAgIHZhciBpZCA9ICQodGhpcykuZGF0YSgnaWQnKTtcclxuICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICBtZXRob2Q6IFwiUEFUQ0hcIixcclxuICAgICAgICAgICAgdXJsOiBcIi9wcm9kdWl0X3Bob3Rvcy9cIiArIGlkLFxyXG4gICAgICAgICAgICBkYXRhOiB7cGhvdG9fcHJpbmNpcGFsZTogdHJ1ZX0sXHJcbiAgICAgICAgICAgIGRhdGFUeXBlOiBcImpzb25cIixcclxuICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAgICAgYWxlcnQoJ2VycmV1ciBsb3JzIGRlIGxhIG1pc2Ugw6Agam91cicpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0aW1lb3V0OiAyMDAwXHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAkKCdib2R5Jykub24oJ2NsaWNrJywnLnByb2R1aXQtcGhvdG8tZGVsZXRlJywgZnVuY3Rpb24oZSkge1xyXG4gICAgICAgIHdpbmRvdy5yZXN1bHRQaG90b0RlbGV0ZSA9IERldkV4cHJlc3MudWkuZGlhbG9nLmNvbmZpcm0oXCI8aT7DinRlcyB2b3VzIHN1ciBkZSB2b3Vsb2lyIHN1cHByaW1lciBsYSBwaG90bz88L2k+XCIsIFwiUGhvdG9cIik7XHJcbiAgICAgICAgdmFyIGlkID0gJCh0aGlzKS5kYXRhKCdpZCcpO1xyXG4gICAgICAgIHZhciBwYXJlbnQgPSAkKHRoaXMpLnBhcmVudCgpLnBhcmVudCgpO1xyXG4gICAgICAgIHJldHVybiB3aW5kb3cucmVzdWx0UGhvdG9EZWxldGUuZG9uZShmdW5jdGlvbihkaWFsb2dSZXN1bHQpIHtcclxuICAgICAgICAgICAgaWYgKGRpYWxvZ1Jlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgJC5hamF4KHtcclxuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IFwiREVMRVRFXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcIi9wcm9kdWl0X3Bob3Rvcy9cIiArIGlkLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBcImpzb25cIixcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQocGFyZW50KS5yZW1vdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJldXIgbG9ycyBkZSBsYSBzdXBwcmVzc2lvbicpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgdGltZW91dDogMjAwMFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICAkKCdib2R5Jykub24oJ2NsaWNrJywgJy5idG4tY2xvc2UtcG9wdXBhZGQnLCBmdW5jdGlvbihlKSB7XHJcbiAgICAgICAgJCgnI3BvcHVwYWRkJyArICQoJyNpbmZvc19saXN0JykuZGF0YSgncGFnZScpKS5keFBvcHVwKCdpbnN0YW5jZScpLmhpZGUoKTtcclxuICAgIH0pO1xyXG4gICAgJCgnYm9keScpLm9uKCdjbGljaycsICdidXR0b24uYnRuLWNsb3NlLXBvcHVwJywgZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdmFyIGlkUG9wdXAgPSAkKHRoaXMpLmRhdGEoJ2R4cG9wdXAtaWQnKTtcclxuICAgICAgICAkKCcjJyArIGlkUG9wdXApLmR4UG9wdXAoJ2luc3RhbmNlJykuaGlkZSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgJCgnYm9keScpLm9uKCdjbGljaycsICcuY3VzdG9tdGFiLXBlcmlvZGUgaS5mYS10cmFzaCcsIGZ1bmN0aW9uKGUpIHtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gRGV2RXhwcmVzcy51aS5kaWFsb2cuY29uZmlybShcIjxpPsOKdGVzIHZvdXMgc3VyIGRlIHZvdWxvaXIgc3VwcHJpbWVyIGxhIHDDqXJpb2RlPzwvaT5cIiwgXCJQw6lyaW9kZVwiKTtcclxuICAgICAgICB2YXIgdHlwZSA9ICQodGhpcykuZGF0YSgndHlwZScpO1xyXG4gICAgICAgIHZhciBwZXJpb2RlID0gJCh0aGlzKS5kYXRhKCdwZXJpb2RlJyk7XHJcbiAgICAgICAgdmFyIHBhcmVudCA9ICQodGhpcykucGFyZW50KCkucGFyZW50KCkucGFyZW50KCk7XHJcbiAgICAgICAgdmFyIG5leHRUYWIgPSBwYXJlbnQucGFyZW50KCkubmV4dCgpO1xyXG4gICAgICAgIHZhciBwcmV2VGFiID0gcGFyZW50LnBhcmVudCgpLnByZXYoKTtcclxuXHJcbiAgICAgICAgcmVzdWx0LmRvbmUoZnVuY3Rpb24oZGlhbG9nUmVzdWx0KSB7XHJcbiAgICAgICAgICAgIGlmIChkaWFsb2dSZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBcIkRFTEVURVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHVybDogXCIvdGFyaWYvcGVyaW9kZS9cIiArIHR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YSA6IHsncGVyaW9kZScgOiBwZXJpb2RlfSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogXCJqc29uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdWwgPSBwYXJlbnQucGFyZW50KCkucGFyZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudC50YWIoJ2Rpc3Bvc2UnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJChwYXJlbnQpLnBhcmVudCgpLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV4dFRhYi5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFRhYi5jaGlsZHJlbignYnV0dG9uJykudGFiKCdzaG93Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJldlRhYi5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldlRhYi5jaGlsZHJlbignYnV0dG9uJykudGFiKCdzaG93Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdWwuZmluZCgnbGkgPiBidXR0b24gPiBzcGFuLnBlcmlvZGVfbm9tJykuZWFjaChmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gJCh0aGlzKS50ZXh0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnRleHQodGV4dC5yZXBsYWNlKCcgPiAnICsgcmVzdWx0LnBlcmlvZGUsICcnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoJ2VycmV1ciBsb3JzIGRlIGxhIHN1cHByZXNzaW9uIGRlIGxhIHDDqXJpb2RlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB0aW1lb3V0OiAyMDAwXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXN1bHQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIGRlbGV0ZSByZXN1bHRQaG90b0RlbGV0ZTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgICQoJ2JvZHknKS5vbignY2xpY2snLCAnI2Nsb3NlcG9wdXAnLCBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgIHdpbmRvdy5wb3B1cF9zYXZlX2ZpbHRlci5oaWRlKCk7XHJcbiAgICB9KTtcclxuICAgICQoJ2JvZHknKS5vbignY2xpY2snLCAnI29wZW5wb3B1cCcsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgJChcIiNzYXZlLWZpbHRlclwiKS5zaG93KCk7XHJcbiAgICAgICAgY29tbW9uLnJlc2V0Rm9ybSgpO1xyXG4gICAgICAgIHdpbmRvdy5wb3B1cF9zYXZlX2ZpbHRlci5zaG93KCk7XHJcbiAgICAgICAgJCgnLmFsZXJ0JykuaHRtbCgnJykuaGlkZSgpO1xyXG4gICAgfSk7XHJcbn0pO1xyXG4iLCJ2YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG5cbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG52YXIgcmVwbGFjZSA9ICcnLnJlcGxhY2U7XG52YXIgU1VCU1RJVFVUSU9OX1NZTUJPTFMgPSAvXFwkKFskJidgXXxcXGR7MSwyfXw8W14+XSo+KS9nO1xudmFyIFNVQlNUSVRVVElPTl9TWU1CT0xTX05PX05BTUVEID0gL1xcJChbJCYnYF18XFxkezEsMn0pL2c7XG5cbi8vIGBHZXRTdWJzdGl0dXRpb25gIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXRzdWJzdGl0dXRpb25cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG1hdGNoZWQsIHN0ciwgcG9zaXRpb24sIGNhcHR1cmVzLCBuYW1lZENhcHR1cmVzLCByZXBsYWNlbWVudCkge1xuICB2YXIgdGFpbFBvcyA9IHBvc2l0aW9uICsgbWF0Y2hlZC5sZW5ndGg7XG4gIHZhciBtID0gY2FwdHVyZXMubGVuZ3RoO1xuICB2YXIgc3ltYm9scyA9IFNVQlNUSVRVVElPTl9TWU1CT0xTX05PX05BTUVEO1xuICBpZiAobmFtZWRDYXB0dXJlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbmFtZWRDYXB0dXJlcyA9IHRvT2JqZWN0KG5hbWVkQ2FwdHVyZXMpO1xuICAgIHN5bWJvbHMgPSBTVUJTVElUVVRJT05fU1lNQk9MUztcbiAgfVxuICByZXR1cm4gcmVwbGFjZS5jYWxsKHJlcGxhY2VtZW50LCBzeW1ib2xzLCBmdW5jdGlvbiAobWF0Y2gsIGNoKSB7XG4gICAgdmFyIGNhcHR1cmU7XG4gICAgc3dpdGNoIChjaC5jaGFyQXQoMCkpIHtcbiAgICAgIGNhc2UgJyQnOiByZXR1cm4gJyQnO1xuICAgICAgY2FzZSAnJic6IHJldHVybiBtYXRjaGVkO1xuICAgICAgY2FzZSAnYCc6IHJldHVybiBzdHIuc2xpY2UoMCwgcG9zaXRpb24pO1xuICAgICAgY2FzZSBcIidcIjogcmV0dXJuIHN0ci5zbGljZSh0YWlsUG9zKTtcbiAgICAgIGNhc2UgJzwnOlxuICAgICAgICBjYXB0dXJlID0gbmFtZWRDYXB0dXJlc1tjaC5zbGljZSgxLCAtMSldO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6IC8vIFxcZFxcZD9cbiAgICAgICAgdmFyIG4gPSArY2g7XG4gICAgICAgIGlmIChuID09PSAwKSByZXR1cm4gbWF0Y2g7XG4gICAgICAgIGlmIChuID4gbSkge1xuICAgICAgICAgIHZhciBmID0gZmxvb3IobiAvIDEwKTtcbiAgICAgICAgICBpZiAoZiA9PT0gMCkgcmV0dXJuIG1hdGNoO1xuICAgICAgICAgIGlmIChmIDw9IG0pIHJldHVybiBjYXB0dXJlc1tmIC0gMV0gPT09IHVuZGVmaW5lZCA/IGNoLmNoYXJBdCgxKSA6IGNhcHR1cmVzW2YgLSAxXSArIGNoLmNoYXJBdCgxKTtcbiAgICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICAgIH1cbiAgICAgICAgY2FwdHVyZSA9IGNhcHR1cmVzW24gLSAxXTtcbiAgICB9XG4gICAgcmV0dXJuIGNhcHR1cmUgPT09IHVuZGVmaW5lZCA/ICcnIDogY2FwdHVyZTtcbiAgfSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZpeFJlZ0V4cFdlbGxLbm93blN5bWJvbExvZ2ljID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZpeC1yZWdleHAtd2VsbC1rbm93bi1zeW1ib2wtbG9naWMnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlcicpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG52YXIgYWR2YW5jZVN0cmluZ0luZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FkdmFuY2Utc3RyaW5nLWluZGV4Jyk7XG52YXIgZ2V0U3Vic3RpdHV0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1zdWJzdGl0dXRpb24nKTtcbnZhciByZWdFeHBFeGVjID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1leGVjLWFic3RyYWN0Jyk7XG5cbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcblxudmFyIG1heWJlVG9TdHJpbmcgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ID09PSB1bmRlZmluZWQgPyBpdCA6IFN0cmluZyhpdCk7XG59O1xuXG4vLyBAQHJlcGxhY2UgbG9naWNcbmZpeFJlZ0V4cFdlbGxLbm93blN5bWJvbExvZ2ljKCdyZXBsYWNlJywgMiwgZnVuY3Rpb24gKFJFUExBQ0UsIG5hdGl2ZVJlcGxhY2UsIG1heWJlQ2FsbE5hdGl2ZSwgcmVhc29uKSB7XG4gIHZhciBSRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRSA9IHJlYXNvbi5SRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRTtcbiAgdmFyIFJFUExBQ0VfS0VFUFNfJDAgPSByZWFzb24uUkVQTEFDRV9LRUVQU18kMDtcbiAgdmFyIFVOU0FGRV9TVUJTVElUVVRFID0gUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkUgPyAnJCcgOiAnJDAnO1xuXG4gIHJldHVybiBbXG4gICAgLy8gYFN0cmluZy5wcm90b3R5cGUucmVwbGFjZWAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnJlcGxhY2VcbiAgICBmdW5jdGlvbiByZXBsYWNlKHNlYXJjaFZhbHVlLCByZXBsYWNlVmFsdWUpIHtcbiAgICAgIHZhciBPID0gcmVxdWlyZU9iamVjdENvZXJjaWJsZSh0aGlzKTtcbiAgICAgIHZhciByZXBsYWNlciA9IHNlYXJjaFZhbHVlID09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IHNlYXJjaFZhbHVlW1JFUExBQ0VdO1xuICAgICAgcmV0dXJuIHJlcGxhY2VyICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyByZXBsYWNlci5jYWxsKHNlYXJjaFZhbHVlLCBPLCByZXBsYWNlVmFsdWUpXG4gICAgICAgIDogbmF0aXZlUmVwbGFjZS5jYWxsKFN0cmluZyhPKSwgc2VhcmNoVmFsdWUsIHJlcGxhY2VWYWx1ZSk7XG4gICAgfSxcbiAgICAvLyBgUmVnRXhwLnByb3RvdHlwZVtAQHJlcGxhY2VdYCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXJlZ2V4cC5wcm90b3R5cGUtQEByZXBsYWNlXG4gICAgZnVuY3Rpb24gKHJlZ2V4cCwgcmVwbGFjZVZhbHVlKSB7XG4gICAgICBpZiAoXG4gICAgICAgICghUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkUgJiYgUkVQTEFDRV9LRUVQU18kMCkgfHxcbiAgICAgICAgKHR5cGVvZiByZXBsYWNlVmFsdWUgPT09ICdzdHJpbmcnICYmIHJlcGxhY2VWYWx1ZS5pbmRleE9mKFVOU0FGRV9TVUJTVElUVVRFKSA9PT0gLTEpXG4gICAgICApIHtcbiAgICAgICAgdmFyIHJlcyA9IG1heWJlQ2FsbE5hdGl2ZShuYXRpdmVSZXBsYWNlLCByZWdleHAsIHRoaXMsIHJlcGxhY2VWYWx1ZSk7XG4gICAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJ4ID0gYW5PYmplY3QocmVnZXhwKTtcbiAgICAgIHZhciBTID0gU3RyaW5nKHRoaXMpO1xuXG4gICAgICB2YXIgZnVuY3Rpb25hbFJlcGxhY2UgPSB0eXBlb2YgcmVwbGFjZVZhbHVlID09PSAnZnVuY3Rpb24nO1xuICAgICAgaWYgKCFmdW5jdGlvbmFsUmVwbGFjZSkgcmVwbGFjZVZhbHVlID0gU3RyaW5nKHJlcGxhY2VWYWx1ZSk7XG5cbiAgICAgIHZhciBnbG9iYWwgPSByeC5nbG9iYWw7XG4gICAgICBpZiAoZ2xvYmFsKSB7XG4gICAgICAgIHZhciBmdWxsVW5pY29kZSA9IHJ4LnVuaWNvZGU7XG4gICAgICAgIHJ4Lmxhc3RJbmRleCA9IDA7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0cyA9IFtdO1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHJlZ0V4cEV4ZWMocngsIFMpO1xuICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSBicmVhaztcblxuICAgICAgICByZXN1bHRzLnB1c2gocmVzdWx0KTtcbiAgICAgICAgaWYgKCFnbG9iYWwpIGJyZWFrO1xuXG4gICAgICAgIHZhciBtYXRjaFN0ciA9IFN0cmluZyhyZXN1bHRbMF0pO1xuICAgICAgICBpZiAobWF0Y2hTdHIgPT09ICcnKSByeC5sYXN0SW5kZXggPSBhZHZhbmNlU3RyaW5nSW5kZXgoUywgdG9MZW5ndGgocngubGFzdEluZGV4KSwgZnVsbFVuaWNvZGUpO1xuICAgICAgfVxuXG4gICAgICB2YXIgYWNjdW11bGF0ZWRSZXN1bHQgPSAnJztcbiAgICAgIHZhciBuZXh0U291cmNlUG9zaXRpb24gPSAwO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdHNbaV07XG5cbiAgICAgICAgdmFyIG1hdGNoZWQgPSBTdHJpbmcocmVzdWx0WzBdKTtcbiAgICAgICAgdmFyIHBvc2l0aW9uID0gbWF4KG1pbih0b0ludGVnZXIocmVzdWx0LmluZGV4KSwgUy5sZW5ndGgpLCAwKTtcbiAgICAgICAgdmFyIGNhcHR1cmVzID0gW107XG4gICAgICAgIC8vIE5PVEU6IFRoaXMgaXMgZXF1aXZhbGVudCB0b1xuICAgICAgICAvLyAgIGNhcHR1cmVzID0gcmVzdWx0LnNsaWNlKDEpLm1hcChtYXliZVRvU3RyaW5nKVxuICAgICAgICAvLyBidXQgZm9yIHNvbWUgcmVhc29uIGBuYXRpdmVTbGljZS5jYWxsKHJlc3VsdCwgMSwgcmVzdWx0Lmxlbmd0aClgIChjYWxsZWQgaW5cbiAgICAgICAgLy8gdGhlIHNsaWNlIHBvbHlmaWxsIHdoZW4gc2xpY2luZyBuYXRpdmUgYXJyYXlzKSBcImRvZXNuJ3Qgd29ya1wiIGluIHNhZmFyaSA5IGFuZFxuICAgICAgICAvLyBjYXVzZXMgYSBjcmFzaCAoaHR0cHM6Ly9wYXN0ZWJpbi5jb20vTjIxUXplUUEpIHdoZW4gdHJ5aW5nIHRvIGRlYnVnIGl0LlxuICAgICAgICBmb3IgKHZhciBqID0gMTsgaiA8IHJlc3VsdC5sZW5ndGg7IGorKykgY2FwdHVyZXMucHVzaChtYXliZVRvU3RyaW5nKHJlc3VsdFtqXSkpO1xuICAgICAgICB2YXIgbmFtZWRDYXB0dXJlcyA9IHJlc3VsdC5ncm91cHM7XG4gICAgICAgIGlmIChmdW5jdGlvbmFsUmVwbGFjZSkge1xuICAgICAgICAgIHZhciByZXBsYWNlckFyZ3MgPSBbbWF0Y2hlZF0uY29uY2F0KGNhcHR1cmVzLCBwb3NpdGlvbiwgUyk7XG4gICAgICAgICAgaWYgKG5hbWVkQ2FwdHVyZXMgIT09IHVuZGVmaW5lZCkgcmVwbGFjZXJBcmdzLnB1c2gobmFtZWRDYXB0dXJlcyk7XG4gICAgICAgICAgdmFyIHJlcGxhY2VtZW50ID0gU3RyaW5nKHJlcGxhY2VWYWx1ZS5hcHBseSh1bmRlZmluZWQsIHJlcGxhY2VyQXJncykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlcGxhY2VtZW50ID0gZ2V0U3Vic3RpdHV0aW9uKG1hdGNoZWQsIFMsIHBvc2l0aW9uLCBjYXB0dXJlcywgbmFtZWRDYXB0dXJlcywgcmVwbGFjZVZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9zaXRpb24gPj0gbmV4dFNvdXJjZVBvc2l0aW9uKSB7XG4gICAgICAgICAgYWNjdW11bGF0ZWRSZXN1bHQgKz0gUy5zbGljZShuZXh0U291cmNlUG9zaXRpb24sIHBvc2l0aW9uKSArIHJlcGxhY2VtZW50O1xuICAgICAgICAgIG5leHRTb3VyY2VQb3NpdGlvbiA9IHBvc2l0aW9uICsgbWF0Y2hlZC5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2N1bXVsYXRlZFJlc3VsdCArIFMuc2xpY2UobmV4dFNvdXJjZVBvc2l0aW9uKTtcbiAgICB9XG4gIF07XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=";
        
        $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);

        
        $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);

        return; yield '';
    }

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

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

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

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

/* provided dependency */ var \$ = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");
__webpack_require__(/*! core-js/modules/es.array.for-each.js */ \"./node_modules/core-js/modules/es.array.for-each.js\");

__webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");

__webpack_require__(/*! core-js/modules/es.array.find.js */ \"./node_modules/core-js/modules/es.array.find.js\");

__webpack_require__(/*! core-js/modules/es.regexp.exec.js */ \"./node_modules/core-js/modules/es.regexp.exec.js\");

__webpack_require__(/*! core-js/modules/es.string.replace.js */ \"./node_modules/core-js/modules/es.string.replace.js\");

var common = __webpack_require__(/*! ./common */ \"./assets/js/common.js\");

window.jsPDF = window.jspdf.jsPDF;
\$(document).on('ready turbo:load', function () {
  window.popup_save_filter = \$(\"#popup-save-filter\").dxPopup({
    width: 1000,
    height: \"auto\",
    container: \".dx-viewport\",
    showTitle: true,
    title: \"Enregistrer dans Mes filtres\",
    visible: false,
    dragEnabled: true,
    closeOnOutsideClick: true,
    showCloseButton: true,
    elementAttr: {
      id: \"save-filter\",
      \"class\": \"nobutton\"
    },
    position: {
      at: \"center\",
      my: \"center\",
      of: \$('#main')
    }
  }).dxPopup(\"instance\");
  var custom = new DevExpress.data.CustomStore({
    key: \"id\",
    load: function load(loadOptions) {
      var deferred = \$.Deferred(),
          args = {};
      [\"requireTotalCount\"].forEach(function (i) {
        if (i in loadOptions && isNotEmpty(loadOptions[i])) args[i] = JSON.stringify(loadOptions[i]);
      });
      \$.ajax({
        url: \"/filters/\" + \$('#infos_list').data('page-filtre'),
        dataType: \"json\",
        data: args,
        success: function success(result) {
          deferred.resolve(result.data, {
            totalCount: result.totalCount
          });
        },
        error: function error() {
          deferred.reject(\"Erreur dans le chargement de données\");
        },
        timeout: 5000
      });
      return deferred.promise();
    },
    update: function update(key, values) {
      \$.ajax({
        url: \"/utilisateur/filtres/\" + key,
        type: \"patch\",
        dataType: \"json\",
        data: values,
        success: function success(result) {
          return true;
        },
        error: function error() {
          console.log('erreur lors de la mise à jour des données');
          return false;
        }
      });
    },
    remove: function remove(key, values) {
      \$.ajax({
        url: \"/UtilisateurFiltre/\" + key,
        type: \"DELETE\",
        dataType: \"json\",
        data: values,
        success: function success(result) {
          return true;
        },
        error: function error() {
          console.log('erreur lors de la suppression des données');
          return false;
        }
      });
    }
  });
  var visible_column_filtres = true;

  if (\$('body').data('responsable') != \"1\") {
    visible_column_filtres = false;
  }

  var popup_list_filter = \$(\"#popup-list-filter\").dxPopup({
    width: 710,
    height: \"auto\",
    maxHeight: 500,
    container: \".grid\",
    showTitle: true,
    shading: false,
    title: \"Mes filtres\",
    visible: false,
    dragEnabled: true,
    closeOnOutsideClick: true,
    showCloseButton: true,
    onShown: function onShown(e) {
      \$(\"#grid-list-filter\").dxDataGrid({
        dataSource: custom,
        showBorders: true,
        keyExpr: \"id\",
        showColumnHeaders: true,
        paging: {
          pageSize: 10
        },
        onRowClick: function onRowClick(e) {
          var filtre = JSON.parse(e.data.filtre);
          var colonnes = JSON.parse(e.data.colonnes);
          \$('#mes-filtres').remove();

          if (\$('#pivotgrid').length == 1) {
            \$('#pivotgrid').dxPivotGrid('instance').getDataSource().state(filtre);
            \$('#pivotgrid').prepend().prepend(\$('<div id=\"mes-filtres\" class=\"my-2 color-primary\" style=\"font-weight: 600;\"></div>').html('Filtre Appliqué : ' + e.data.titre));
          } else {
            \$(\".grid\").dxDataGrid(\"instance\").option(\"filterValue\", filtre); //on parse les colonnes pour que afficher celle qui étaient visible lors du filltre

            if (colonnes) {
              \$(\".grid\").dxDataGrid(\"instance\").option(\"columns\").forEach(function (value, key) {
                if (colonnes[value.dataField] != undefined) {
                  \$(\".grid\").dxDataGrid(\"columnOption\", key, \"visibleIndex\", colonnes[value.dataField]);
                  \$(\".grid\").dxDataGrid(\"columnOption\", key, \"visible\", true);
                } else {
                  \$(\".grid\").dxDataGrid(\"columnOption\", key, \"visible\", false);
                }
              });
            }

            \$('.grid').prepend().prepend(\$('<div id=\"mes-filtres\" class=\"my-2 color-primary\" style=\"font-weight: 600;\"></div>').html('Filtre Appliqué : ' + e.data.titre));
            \$('#popup-list-filter').dxPopup('instance').hide();
          }
        },
        editing: {
          mode: \"row\",
          allowUpdating: visible_column_filtres,
          allowDeleting: visible_column_filtres,
          allowAdding: false
        },
        columns: [{
          dataField: \"titre\",
          allowEditing: visible_column_filtres
        }, {
          dataField: \"utilisateur_role_id\",
          allowEditing: true,
          caption: 'Role utilisateur',
          visible: visible_column_filtres,
          dataType: 'number',
          lookup: {
            dataSource: [{
              id: 5,
              nom: 'Agent de terrain'
            }, {
              id: 7,
              nom: 'Agent de planning'
            }, {
              id: 9,
              nom: 'Magasin'
            }, {
              id: 10,
              nom: 'Renseignement technique'
            }, {
              id: 11,
              nom: 'Administratif'
            }],
            displayExpr: \"nom\",
            valueExpr: \"id\"
          }
        }, {
          width: 80,
          dataField: \"defaut\",
          caption: 'Défaut',
          allowEditing: true,
          dataType: \"boolean\",
          visible: visible_column_filtres
        }, {
          width: 120,
          dataField: \"defaut_utilisateur\",
          caption: 'Défaut pour moi',
          allowEditing: true,
          dataType: \"boolean\",
          visible: visible_column_filtres
        }, {
          dataField: \"filtre\",
          allowEditing: false,
          visible: false
        }]
      });
    },
    position: {
      my: \"right top\",
      at: \"right top\",
      of: \$('.dx-viewport')[0],
      collision: \"fit\",
      offset: \"-50 60\"
    }
  }).dxPopup(\"instance\");

  if (\$('#link-add-' + \$('#infos_list').data('page')).length != 0) {
    \$('body').on('click', '#link-add-' + \$('#infos_list').data('page'), function (e) {
      e.preventDefault();
      var name = 'popupadd' + \$('#infos_list').data('page');
      eval('var ' + name + ' = common.createDxPopup(\"' + name + '\", \"Ajout\", \"auto\")');
      eval(name).option(\"container\", 'body');
      common.resetForm();
      eval(name).show();
      \$('#' + name).show();
      \$('.alert').html('').hide();
    });
  }

  var \$selectpicker = \$('.my-select-multiple');

  if (!\$selectpicker.is(':disabled') && \$selectpicker) {
    \$selectpicker.selectpicker({
      noneSelectedText: 'Selectionnez'
    });
  }
});
\$(document).ready(function () {
  \$('body').on('click', '.produit-photo-principale.fa-unselected', function (e) {
    \$('.produit-photo-principale.selected').removeClass('selected').addClass('fa-unselected');
    \$(this).toggleClass('fa-unselected').addClass('selected');
    var id = \$(this).data('id');
    \$.ajax({
      method: \"PATCH\",
      url: \"/produit_photos/\" + id,
      data: {
        photo_principale: true
      },
      dataType: \"json\",
      error: function error() {
        alert('erreur lors de la mise à jour');
      },
      timeout: 2000
    });
  });
  \$('body').on('click', '.produit-photo-delete', function (e) {
    window.resultPhotoDelete = DevExpress.ui.dialog.confirm(\"<i>Êtes vous sur de vouloir supprimer la photo?</i>\", \"Photo\");
    var id = \$(this).data('id');
    var parent = \$(this).parent().parent();
    return window.resultPhotoDelete.done(function (dialogResult) {
      if (dialogResult) {
        \$.ajax({
          method: \"DELETE\",
          url: \"/produit_photos/\" + id,
          dataType: \"json\",
          success: function success(result) {
            \$(parent).remove();
          },
          error: function error() {
            console.log('erreur lors de la suppression');
          },
          timeout: 2000
        });
      }
    });
  });
  \$('body').on('click', '.btn-close-popupadd', function (e) {
    \$('#popupadd' + \$('#infos_list').data('page')).dxPopup('instance').hide();
  });
  \$('body').on('click', 'button.btn-close-popup', function (e) {
    e.preventDefault();
    var idPopup = \$(this).data('dxpopup-id');
    \$('#' + idPopup).dxPopup('instance').hide();
  });
  \$('body').on('click', '.customtab-periode i.fa-trash', function (e) {
    var result = DevExpress.ui.dialog.confirm(\"<i>Êtes vous sur de vouloir supprimer la période?</i>\", \"Période\");
    var type = \$(this).data('type');
    var periode = \$(this).data('periode');
    var parent = \$(this).parent().parent().parent();
    var nextTab = parent.parent().next();
    var prevTab = parent.parent().prev();
    result.done(function (dialogResult) {
      if (dialogResult) {
        \$.ajax({
          method: \"DELETE\",
          url: \"/tarif/periode/\" + type,
          data: {
            'periode': periode
          },
          dataType: \"json\",
          success: function success(result) {
            var ul = parent.parent().parent();
            parent.tab('dispose');
            \$(parent).parent().remove();

            if (nextTab.length != 0) {
              nextTab.children('button').tab('show');
            } else if (prevTab.length != 0) {
              prevTab.children('button').tab('show');
            }

            ul.find('li > button > span.periode_nom').each(function () {
              var text = \$(this).text();
              \$(this).text(text.replace(' > ' + result.periode, ''));
            });
          },
          error: function error() {
            alert('erreur lors de la suppression de la période');
          },
          timeout: 2000
        });
      }

      result = undefined;
      delete resultPhotoDelete;
    });
  });
  \$('body').on('click', '#closepopup', function (e) {
    window.popup_save_filter.hide();
  });
  \$('body').on('click', '#openpopup', function (e) {
    \$(\"#save-filter\").show();
    common.resetForm();
    window.popup_save_filter.show();
    \$('.alert').html('').hide();
  });
});

/***/ }),

/***/ \"./node_modules/core-js/internals/get-substitution.js\":
/*!************************************************************!*\\
  !*** ./node_modules/core-js/internals/get-substitution.js ***!
  \\************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");

var floor = Math.floor;
var replace = ''.replace;
var SUBSTITUTION_SYMBOLS = /\\\$([\$&'`]|\\d{1,2}|<[^>]*>)/g;
var SUBSTITUTION_SYMBOLS_NO_NAMED = /\\\$([\$&'`]|\\d{1,2})/g;

// `GetSubstitution` abstract operation
// https://tc39.es/ecma262/#sec-getsubstitution
module.exports = function (matched, str, position, captures, namedCaptures, replacement) {
  var tailPos = position + matched.length;
  var m = captures.length;
  var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
  if (namedCaptures !== undefined) {
    namedCaptures = toObject(namedCaptures);
    symbols = SUBSTITUTION_SYMBOLS;
  }
  return replace.call(replacement, symbols, function (match, ch) {
    var capture;
    switch (ch.charAt(0)) {
      case '\$': return '\$';
      case '&': return matched;
      case '`': return str.slice(0, position);
      case \"'\": return str.slice(tailPos);
      case '<':
        capture = namedCaptures[ch.slice(1, -1)];
        break;
      default: // \\d\\d?
        var n = +ch;
        if (n === 0) return match;
        if (n > m) {
          var f = floor(n / 10);
          if (f === 0) return match;
          if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
          return match;
        }
        capture = captures[n - 1];
    }
    return capture === undefined ? '' : capture;
  });
};


/***/ }),

/***/ \"./node_modules/core-js/modules/es.string.replace.js\":
/*!***********************************************************!*\\
  !*** ./node_modules/core-js/modules/es.string.replace.js ***!
  \\***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

\"use strict\";

var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ \"./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js\");
var anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");
var toLength = __webpack_require__(/*! ../internals/to-length */ \"./node_modules/core-js/internals/to-length.js\");
var toInteger = __webpack_require__(/*! ../internals/to-integer */ \"./node_modules/core-js/internals/to-integer.js\");
var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");
var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ \"./node_modules/core-js/internals/advance-string-index.js\");
var getSubstitution = __webpack_require__(/*! ../internals/get-substitution */ \"./node_modules/core-js/internals/get-substitution.js\");
var regExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ \"./node_modules/core-js/internals/regexp-exec-abstract.js\");

var max = Math.max;
var min = Math.min;

var maybeToString = function (it) {
  return it === undefined ? it : String(it);
};

// @@replace logic
fixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {
  var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;
  var REPLACE_KEEPS_\$0 = reason.REPLACE_KEEPS_\$0;
  var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '\$' : '\$0';

  return [
    // `String.prototype.replace` method
    // https://tc39.es/ecma262/#sec-string.prototype.replace
    function replace(searchValue, replaceValue) {
      var O = requireObjectCoercible(this);
      var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];
      return replacer !== undefined
        ? replacer.call(searchValue, O, replaceValue)
        : nativeReplace.call(String(O), searchValue, replaceValue);
    },
    // `RegExp.prototype[@@replace]` method
    // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
    function (regexp, replaceValue) {
      if (
        (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_\$0) ||
        (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)
      ) {
        var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);
        if (res.done) return res.value;
      }

      var rx = anObject(regexp);
      var S = String(this);

      var functionalReplace = typeof replaceValue === 'function';
      if (!functionalReplace) replaceValue = String(replaceValue);

      var global = rx.global;
      if (global) {
        var fullUnicode = rx.unicode;
        rx.lastIndex = 0;
      }
      var results = [];
      while (true) {
        var result = regExpExec(rx, S);
        if (result === null) break;

        results.push(result);
        if (!global) break;

        var matchStr = String(result[0]);
        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
      }

      var accumulatedResult = '';
      var nextSourcePosition = 0;
      for (var i = 0; i < results.length; i++) {
        result = results[i];

        var matched = String(result[0]);
        var position = max(min(toInteger(result.index), S.length), 0);
        var captures = [];
        // NOTE: This is equivalent to
        //   captures = result.slice(1).map(maybeToString)
        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
        // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and
        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
        var namedCaptures = result.groups;
        if (functionalReplace) {
          var replacerArgs = [matched].concat(captures, position, S);
          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
          var replacement = String(replaceValue.apply(undefined, replacerArgs));
        } else {
          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
        }
        if (position >= nextSourcePosition) {
          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
          nextSourcePosition = position + matched.length;
        }
      }
      return accumulatedResult + S.slice(nextSourcePosition);
    }
  ];
});


/***/ })

},
/******/ __webpack_require__ => { // webpackRuntimeModules
/******/ \"use strict\";
/******/ 
/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
/******/ __webpack_require__.O(0, [\"vendors-node_modules_core-js_internals_engine-user-agent_js-node_modules_core-js_internals_ex-b41e05\",\"vendors-node_modules_jquery_dist_jquery_js\",\"vendors-node_modules_core-js_internals_add-to-unscopables_js-node_modules_core-js_internals_a-5c631b\",\"vendors-node_modules_core-js_internals_array-method-has-species-support_js-node_modules_core--4e4faa\",\"vendors-node_modules_core-js_modules_es_array_filter_js-node_modules_core-js_modules_es_array-0312b5\",\"assets_js_common_js\"], () => (__webpack_exec__(\"./assets/js/list.js\")));
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ }
]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvbGlzdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2V0LXN1YnN0aXR1dGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlLmpzIl0sIm5hbWVzIjpbImNvbW1vbiIsInJlcXVpcmUiLCJ3aW5kb3ciLCJqc1BERiIsImpzcGRmIiwiJCIsImRvY3VtZW50Iiwib24iLCJwb3B1cF9zYXZlX2ZpbHRlciIsImR4UG9wdXAiLCJ3aWR0aCIsImhlaWdodCIsImNvbnRhaW5lciIsInNob3dUaXRsZSIsInRpdGxlIiwidmlzaWJsZSIsImRyYWdFbmFibGVkIiwiY2xvc2VPbk91dHNpZGVDbGljayIsInNob3dDbG9zZUJ1dHRvbiIsImVsZW1lbnRBdHRyIiwiaWQiLCJwb3NpdGlvbiIsImF0IiwibXkiLCJvZiIsImN1c3RvbSIsIkRldkV4cHJlc3MiLCJkYXRhIiwiQ3VzdG9tU3RvcmUiLCJrZXkiLCJsb2FkIiwibG9hZE9wdGlvbnMiLCJkZWZlcnJlZCIsIkRlZmVycmVkIiwiYXJncyIsImZvckVhY2giLCJpIiwiaXNOb3RFbXB0eSIsIkpTT04iLCJzdHJpbmdpZnkiLCJhamF4IiwidXJsIiwiZGF0YVR5cGUiLCJzdWNjZXNzIiwicmVzdWx0IiwicmVzb2x2ZSIsInRvdGFsQ291bnQiLCJlcnJvciIsInJlamVjdCIsInRpbWVvdXQiLCJwcm9taXNlIiwidXBkYXRlIiwidmFsdWVzIiwidHlwZSIsImNvbnNvbGUiLCJsb2ciLCJyZW1vdmUiLCJ2aXNpYmxlX2NvbHVtbl9maWx0cmVzIiwicG9wdXBfbGlzdF9maWx0ZXIiLCJtYXhIZWlnaHQiLCJzaGFkaW5nIiwib25TaG93biIsImUiLCJkeERhdGFHcmlkIiwiZGF0YVNvdXJjZSIsInNob3dCb3JkZXJzIiwia2V5RXhwciIsInNob3dDb2x1bW5IZWFkZXJzIiwicGFnaW5nIiwicGFnZVNpemUiLCJvblJvd0NsaWNrIiwiZmlsdHJlIiwicGFyc2UiLCJjb2xvbm5lcyIsImxlbmd0aCIsImR4UGl2b3RHcmlkIiwiZ2V0RGF0YVNvdXJjZSIsInN0YXRlIiwicHJlcGVuZCIsImh0bWwiLCJ0aXRyZSIsIm9wdGlvbiIsInZhbHVlIiwiZGF0YUZpZWxkIiwidW5kZWZpbmVkIiwiaGlkZSIsImVkaXRpbmciLCJtb2RlIiwiYWxsb3dVcGRhdGluZyIsImFsbG93RGVsZXRpbmciLCJhbGxvd0FkZGluZyIsImNvbHVtbnMiLCJhbGxvd0VkaXRpbmciLCJjYXB0aW9uIiwibG9va3VwIiwibm9tIiwiZGlzcGxheUV4cHIiLCJ2YWx1ZUV4cHIiLCJjb2xsaXNpb24iLCJvZmZzZXQiLCJwcmV2ZW50RGVmYXVsdCIsIm5hbWUiLCJldmFsIiwicmVzZXRGb3JtIiwic2hvdyIsIiRzZWxlY3RwaWNrZXIiLCJpcyIsInNlbGVjdHBpY2tlciIsIm5vbmVTZWxlY3RlZFRleHQiLCJyZWFkeSIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCJ0b2dnbGVDbGFzcyIsIm1ldGhvZCIsInBob3RvX3ByaW5jaXBhbGUiLCJhbGVydCIsInJlc3VsdFBob3RvRGVsZXRlIiwidWkiLCJkaWFsb2ciLCJjb25maXJtIiwicGFyZW50IiwiZG9uZSIsImRpYWxvZ1Jlc3VsdCIsImlkUG9wdXAiLCJwZXJpb2RlIiwibmV4dFRhYiIsIm5leHQiLCJwcmV2VGFiIiwicHJldiIsInVsIiwidGFiIiwiY2hpbGRyZW4iLCJmaW5kIiwiZWFjaCIsInRleHQiLCJyZXBsYWNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBSUEsTUFBTSxHQUFHQyxtQkFBTyxDQUFDLHVDQUFELENBQXBCOztBQUNBQyxNQUFNLENBQUNDLEtBQVAsR0FBZUQsTUFBTSxDQUFDRSxLQUFQLENBQWFELEtBQTVCO0FBRUFFLENBQUMsQ0FBQ0MsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxrQkFBZixFQUFtQyxZ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QTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxxQkFBcUIsb0JBQW9CO0FBQ3pDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsbUJBQW1CO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwiZmlsZSI6Imxpc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgY29tbW9uID0gcmVxdWlyZShcIi4vY29tbW9uXCIpO1xyXG53aW5kb3cuanNQREYgPSB3aW5kb3cuanNwZGYuanNQREY7XHJcblxyXG4kKGRvY3VtZW50KS5vbigncmVhZHkgdHVyYm86bG9hZCcsIGZ1bmN0aW9uKCkge1xyXG5cclxuXHJcbiAgICB3aW5kb3cucG9wdXBfc2F2ZV9maWx0ZXIgPSAkKFwiI3BvcHVwLXNhdmUtZmlsdGVyXCIpLmR4UG9wdXAoe1xyXG4gICAgICAgIHdpZHRoOiAxMDAwLFxyXG4gICAgICAgIGhlaWdodDogXCJhdXRvXCIsXHJcbiAgICAgICAgY29udGFpbmVyOiBcIi5keC12aWV3cG9ydFwiLFxyXG4gICAgICAgIHNob3dUaXRsZTogdHJ1ZSxcclxuICAgICAgICB0aXRsZTogXCJFbnJlZ2lzdHJlciBkYW5zIE1lcyBmaWx0cmVzXCIsXHJcbiAgICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgZHJhZ0VuYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgY2xvc2VPbk91dHNpZGVDbGljazogdHJ1ZSxcclxuICAgICAgICBzaG93Q2xvc2VCdXR0b246IHRydWUsXHJcbiAgICAgICAgZWxlbWVudEF0dHI6IHtcclxuICAgICAgICAgICAgaWQ6IFwic2F2ZS1maWx0ZXJcIixcclxuICAgICAgICAgICAgY2xhc3M6IFwibm9idXR0b25cIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICAgICAgYXQ6IFwiY2VudGVyXCIsXHJcbiAgICAgICAgICAgIG15OiBcImNlbnRlclwiLFxyXG4gICAgICAgICAgICBvZjogJCgnI21haW4nKSxcclxuICAgICAgICB9LFxyXG4gICAgfSkuZHhQb3B1cChcImluc3RhbmNlXCIpO1xyXG5cclxuICAgIHZhciBjdXN0b20gPSBuZXcgRGV2RXhwcmVzcy5kYXRhLkN1c3RvbVN0b3JlKHtcclxuICAgICAgICBrZXk6IFwiaWRcIixcclxuICAgICAgICBsb2FkOiBmdW5jdGlvbiAobG9hZE9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdmFyIGRlZmVycmVkID0gJC5EZWZlcnJlZCgpLFxyXG4gICAgICAgICAgICAgICAgYXJncyA9IHt9O1xyXG5cclxuICAgICAgICAgICAgW1xyXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlVG90YWxDb3VudFwiLFxyXG4gICAgICAgICAgICBdLmZvckVhY2goZnVuY3Rpb24gKGkpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpIGluIGxvYWRPcHRpb25zICYmIGlzTm90RW1wdHkobG9hZE9wdGlvbnNbaV0pKVxyXG4gICAgICAgICAgICAgICAgICAgIGFyZ3NbaV0gPSBKU09OLnN0cmluZ2lmeShsb2FkT3B0aW9uc1tpXSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICAgICAgdXJsOiBcIi9maWx0ZXJzL1wiICsgJCgnI2luZm9zX2xpc3QnKS5kYXRhKCdwYWdlLWZpbHRyZScpLFxyXG4gICAgICAgICAgICAgICAgZGF0YVR5cGU6IFwianNvblwiLFxyXG4gICAgICAgICAgICAgICAgZGF0YTogYXJncyxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICBkZWZlcnJlZC5yZXNvbHZlKHJlc3VsdC5kYXRhLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsQ291bnQ6IHJlc3VsdC50b3RhbENvdW50LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVmZXJyZWQucmVqZWN0KFwiRXJyZXVyIGRhbnMgbGUgY2hhcmdlbWVudCBkZSBkb25uw6llc1wiKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB0aW1lb3V0OiA1MDAwXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGRlZmVycmVkLnByb21pc2UoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHVwZGF0ZTogZnVuY3Rpb24gKGtleSwgdmFsdWVzKSB7XHJcblxyXG4gICAgICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICAgICAgdXJsOiBcIi91dGlsaXNhdGV1ci9maWx0cmVzL1wiICsga2V5LFxyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJwYXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgZGF0YVR5cGU6IFwianNvblwiLFxyXG4gICAgICAgICAgICAgICAgZGF0YTogdmFsdWVzLFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2VycmV1ciBsb3JzIGRlIGxhIG1pc2Ugw6Agam91ciBkZXMgZG9ubsOpZXMnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlbW92ZTogZnVuY3Rpb24gKGtleSwgdmFsdWVzKSB7XHJcbiAgICAgICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgICAgICB1cmw6IFwiL1V0aWxpc2F0ZXVyRmlsdHJlL1wiICsga2V5LFxyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJERUxFVEVcIixcclxuICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBcImpzb25cIixcclxuICAgICAgICAgICAgICAgIGRhdGE6IHZhbHVlcyxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJldXIgbG9ycyBkZSBsYSBzdXBwcmVzc2lvbiBkZXMgZG9ubsOpZXMnKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgdmFyIHZpc2libGVfY29sdW1uX2ZpbHRyZXMgPSB0cnVlO1xyXG4gICAgaWYgKCQoJ2JvZHknKS5kYXRhKCdyZXNwb25zYWJsZScpICE9IFwiMVwiKSB7XHJcbiAgICAgICAgdmlzaWJsZV9jb2x1bW5fZmlsdHJlcyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdmFyIHBvcHVwX2xpc3RfZmlsdGVyID0gJChcIiNwb3B1cC1saXN0LWZpbHRlclwiKS5keFBvcHVwKHtcclxuICAgICAgICB3aWR0aDogNzEwLFxyXG4gICAgICAgIGhlaWdodDogXCJhdXRvXCIsXHJcbiAgICAgICAgbWF4SGVpZ2h0OiA1MDAsXHJcbiAgICAgICAgY29udGFpbmVyOiBcIi5ncmlkXCIsXHJcbiAgICAgICAgc2hvd1RpdGxlOiB0cnVlLFxyXG4gICAgICAgIHNoYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgIHRpdGxlOiBcIk1lcyBmaWx0cmVzXCIsXHJcbiAgICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgZHJhZ0VuYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgY2xvc2VPbk91dHNpZGVDbGljazogdHJ1ZSxcclxuICAgICAgICBzaG93Q2xvc2VCdXR0b246IHRydWUsXHJcbiAgICAgICAgb25TaG93bjogZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICAgICAgJChcIiNncmlkLWxpc3QtZmlsdGVyXCIpLmR4RGF0YUdyaWQoe1xyXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZTogY3VzdG9tLFxyXG4gICAgICAgICAgICAgICAgc2hvd0JvcmRlcnM6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBrZXlFeHByOiBcImlkXCIsXHJcbiAgICAgICAgICAgICAgICBzaG93Q29sdW1uSGVhZGVyczogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHBhZ2luZzoge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VTaXplOiAxMFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIG9uUm93Q2xpY2s6IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZpbHRyZSA9IEpTT04ucGFyc2UoZS5kYXRhLmZpbHRyZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbG9ubmVzID0gSlNPTi5wYXJzZShlLmRhdGEuY29sb25uZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICQoJyNtZXMtZmlsdHJlcycpLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgkKCcjcGl2b3RncmlkJykubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJCgnI3Bpdm90Z3JpZCcpLmR4UGl2b3RHcmlkKCdpbnN0YW5jZScpLmdldERhdGFTb3VyY2UoKS5zdGF0ZShmaWx0cmUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcjcGl2b3RncmlkJykucHJlcGVuZCgpLnByZXBlbmQoJCgnPGRpdiBpZD1cIm1lcy1maWx0cmVzXCIgY2xhc3M9XCJteS0yIGNvbG9yLXByaW1hcnlcIiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA2MDA7XCI+PC9kaXY+JykuaHRtbCgnRmlsdHJlIEFwcGxpcXXDqSA6ICcgKyBlLmRhdGEudGl0cmUpKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiLmdyaWRcIikuZHhEYXRhR3JpZChcImluc3RhbmNlXCIpLm9wdGlvbihcImZpbHRlclZhbHVlXCIsIGZpbHRyZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vb24gcGFyc2UgbGVzIGNvbG9ubmVzIHBvdXIgcXVlIGFmZmljaGVyIGNlbGxlIHF1aSDDqXRhaWVudCB2aXNpYmxlIGxvcnMgZHUgZmlsbHRyZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29sb25uZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIuZ3JpZFwiKS5keERhdGFHcmlkKFwiaW5zdGFuY2VcIikub3B0aW9uKFwiY29sdW1uc1wiKS5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLGtleSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2xvbm5lc1t2YWx1ZS5kYXRhRmllbGRdICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiLmdyaWRcIikuZHhEYXRhR3JpZChcImNvbHVtbk9wdGlvblwiLCBrZXksIFwidmlzaWJsZUluZGV4XCIsIGNvbG9ubmVzW3ZhbHVlLmRhdGFGaWVsZF0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiLmdyaWRcIikuZHhEYXRhR3JpZChcImNvbHVtbk9wdGlvblwiLCBrZXksIFwidmlzaWJsZVwiLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiLmdyaWRcIikuZHhEYXRhR3JpZChcImNvbHVtbk9wdGlvblwiLCBrZXksIFwidmlzaWJsZVwiLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcuZ3JpZCcpLnByZXBlbmQoKS5wcmVwZW5kKCQoJzxkaXYgaWQ9XCJtZXMtZmlsdHJlc1wiIGNsYXNzPVwibXktMiBjb2xvci1wcmltYXJ5XCIgc3R5bGU9XCJmb250LXdlaWdodDogNjAwO1wiPjwvZGl2PicpLmh0bWwoJ0ZpbHRyZSBBcHBsaXF1w6kgOiAnICsgZS5kYXRhLnRpdHJlKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJyNwb3B1cC1saXN0LWZpbHRlcicpLmR4UG9wdXAoJ2luc3RhbmNlJykuaGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlZGl0aW5nOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9kZTogXCJyb3dcIixcclxuICAgICAgICAgICAgICAgICAgICBhbGxvd1VwZGF0aW5nOiB2aXNpYmxlX2NvbHVtbl9maWx0cmVzLFxyXG4gICAgICAgICAgICAgICAgICAgIGFsbG93RGVsZXRpbmc6IHZpc2libGVfY29sdW1uX2ZpbHRyZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dBZGRpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNvbHVtbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhRmllbGQ6IFwidGl0cmVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dFZGl0aW5nOiB2aXNpYmxlX2NvbHVtbl9maWx0cmVzXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFGaWVsZDogXCJ1dGlsaXNhdGV1cl9yb2xlX2lkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93RWRpdGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FwdGlvbjogJ1JvbGUgdXRpbGlzYXRldXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlOiB2aXNpYmxlX2NvbHVtbl9maWx0cmVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ251bWJlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvb2t1cCA6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2U6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWQ6IDUsIG5vbTonQWdlbnQgZGUgdGVycmFpbid9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZDogNywgbm9tOidBZ2VudCBkZSBwbGFubmluZyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZDogOSwgbm9tOidNYWdhc2luJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lkOiAxMCwgbm9tOidSZW5zZWlnbmVtZW50IHRlY2huaXF1ZSd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZDogMTEsIG5vbTonQWRtaW5pc3RyYXRpZid9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlFeHByOiBcIm5vbVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVFeHByOiBcImlkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA4MCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUZpZWxkOiBcImRlZmF1dFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uOiAnRMOpZmF1dCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93RWRpdGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6IFwiYm9vbGVhblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlOiB2aXNpYmxlX2NvbHVtbl9maWx0cmVzLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTIwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhRmllbGQ6IFwiZGVmYXV0X3V0aWxpc2F0ZXVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcHRpb246ICdEw6lmYXV0IHBvdXIgbW9pJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dFZGl0aW5nOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogXCJib29sZWFuXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGU6IHZpc2libGVfY29sdW1uX2ZpbHRyZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFGaWVsZDogXCJmaWx0cmVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dFZGl0aW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBwb3NpdGlvbjoge1xyXG4gICAgICAgICAgICBteTogXCJyaWdodCB0b3BcIixcclxuICAgICAgICAgICAgYXQ6IFwicmlnaHQgdG9wXCIsXHJcbiAgICAgICAgICAgIG9mOiAkKCcuZHgtdmlld3BvcnQnKVswXSxcclxuICAgICAgICAgICAgY29sbGlzaW9uOiBcImZpdFwiLFxyXG4gICAgICAgICAgICBvZmZzZXQ6IFwiLTUwIDYwXCIsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICB9KS5keFBvcHVwKFwiaW5zdGFuY2VcIik7XHJcblxyXG4gICAgaWYgKCQoJyNsaW5rLWFkZC0nICsgJCgnI2luZm9zX2xpc3QnKS5kYXRhKCdwYWdlJykpLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgJCgnYm9keScpLm9uKCdjbGljaycsJyNsaW5rLWFkZC0nICsgJCgnI2luZm9zX2xpc3QnKS5kYXRhKCdwYWdlJyksIGZ1bmN0aW9uKGUpe1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHZhciBuYW1lID0gJ3BvcHVwYWRkJyArICQoJyNpbmZvc19saXN0JykuZGF0YSgncGFnZScpO1xyXG4gICAgICAgICAgICBldmFsICgndmFyICcgKyBuYW1lICsgJyA9IGNvbW1vbi5jcmVhdGVEeFBvcHVwKFwiJyArIG5hbWUgKyAnXCIsIFwiQWpvdXRcIiwgXCJhdXRvXCIpJyk7XHJcbiAgICAgICAgICAgIGV2YWwobmFtZSkub3B0aW9uKFwiY29udGFpbmVyXCIsICdib2R5Jyk7XHJcbiAgICAgICAgICAgIGNvbW1vbi5yZXNldEZvcm0oKTtcclxuICAgICAgICAgICAgZXZhbChuYW1lKS5zaG93KCk7XHJcbiAgICAgICAgICAgICQoJyMnICsgbmFtZSkuc2hvdygpO1xyXG4gICAgICAgICAgICAkKCcuYWxlcnQnKS5odG1sKCcnKS5oaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgJHNlbGVjdHBpY2tlciA9ICQoJy5teS1zZWxlY3QtbXVsdGlwbGUnKTtcclxuICAgIGlmICghJHNlbGVjdHBpY2tlci5pcygnOmRpc2FibGVkJykgJiYgJHNlbGVjdHBpY2tlcikge1xyXG4gICAgICAgICRzZWxlY3RwaWNrZXIuc2VsZWN0cGlja2VyKHtcclxuICAgICAgICAgICAgbm9uZVNlbGVjdGVkVGV4dCA6ICdTZWxlY3Rpb25uZXonLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59KTtcclxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtcclxuICAgICQoJ2JvZHknKS5vbignY2xpY2snLCcucHJvZHVpdC1waG90by1wcmluY2lwYWxlLmZhLXVuc2VsZWN0ZWQnLCBmdW5jdGlvbihlKSB7XHJcbiAgICAgICAgJCgnLnByb2R1aXQtcGhvdG8tcHJpbmNpcGFsZS5zZWxlY3RlZCcpLnJlbW92ZUNsYXNzKCdzZWxlY3RlZCcpLmFkZENsYXNzKCdmYS11bnNlbGVjdGVkJyk7XHJcbiAgICAgICAgJCh0aGlzKS50b2dnbGVDbGFzcygnZmEtdW5zZWxlY3RlZCcpLmFkZENsYXNzKCdzZWxlY3RlZCcpO1xyXG4gICAgICAgIHZhciBpZCA9ICQodGhpcykuZGF0YSgnaWQnKTtcclxuICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICBtZXRob2Q6IFwiUEFUQ0hcIixcclxuICAgICAgICAgICAgdXJsOiBcIi9wcm9kdWl0X3Bob3Rvcy9cIiArIGlkLFxyXG4gICAgICAgICAgICBkYXRhOiB7cGhvdG9fcHJpbmNpcGFsZTogdHJ1ZX0sXHJcbiAgICAgICAgICAgIGRhdGFUeXBlOiBcImpzb25cIixcclxuICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAgICAgYWxlcnQoJ2VycmV1ciBsb3JzIGRlIGxhIG1pc2Ugw6Agam91cicpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0aW1lb3V0OiAyMDAwXHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAkKCdib2R5Jykub24oJ2NsaWNrJywnLnByb2R1aXQtcGhvdG8tZGVsZXRlJywgZnVuY3Rpb24oZSkge1xyXG4gICAgICAgIHdpbmRvdy5yZXN1bHRQaG90b0RlbGV0ZSA9IERldkV4cHJlc3MudWkuZGlhbG9nLmNvbmZpcm0oXCI8aT7DinRlcyB2b3VzIHN1ciBkZSB2b3Vsb2lyIHN1cHByaW1lciBsYSBwaG90bz88L2k+XCIsIFwiUGhvdG9cIik7XHJcbiAgICAgICAgdmFyIGlkID0gJCh0aGlzKS5kYXRhKCdpZCcpO1xyXG4gICAgICAgIHZhciBwYXJlbnQgPSAkKHRoaXMpLnBhcmVudCgpLnBhcmVudCgpO1xyXG4gICAgICAgIHJldHVybiB3aW5kb3cucmVzdWx0UGhvdG9EZWxldGUuZG9uZShmdW5jdGlvbihkaWFsb2dSZXN1bHQpIHtcclxuICAgICAgICAgICAgaWYgKGRpYWxvZ1Jlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgJC5hamF4KHtcclxuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IFwiREVMRVRFXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcIi9wcm9kdWl0X3Bob3Rvcy9cIiArIGlkLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBcImpzb25cIixcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQocGFyZW50KS5yZW1vdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJldXIgbG9ycyBkZSBsYSBzdXBwcmVzc2lvbicpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgdGltZW91dDogMjAwMFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICAkKCdib2R5Jykub24oJ2NsaWNrJywgJy5idG4tY2xvc2UtcG9wdXBhZGQnLCBmdW5jdGlvbihlKSB7XHJcbiAgICAgICAgJCgnI3BvcHVwYWRkJyArICQoJyNpbmZvc19saXN0JykuZGF0YSgncGFnZScpKS5keFBvcHVwKCdpbnN0YW5jZScpLmhpZGUoKTtcclxuICAgIH0pO1xyXG4gICAgJCgnYm9keScpLm9uKCdjbGljaycsICdidXR0b24uYnRuLWNsb3NlLXBvcHVwJywgZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdmFyIGlkUG9wdXAgPSAkKHRoaXMpLmRhdGEoJ2R4cG9wdXAtaWQnKTtcclxuICAgICAgICAkKCcjJyArIGlkUG9wdXApLmR4UG9wdXAoJ2luc3RhbmNlJykuaGlkZSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgJCgnYm9keScpLm9uKCdjbGljaycsICcuY3VzdG9tdGFiLXBlcmlvZGUgaS5mYS10cmFzaCcsIGZ1bmN0aW9uKGUpIHtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gRGV2RXhwcmVzcy51aS5kaWFsb2cuY29uZmlybShcIjxpPsOKdGVzIHZvdXMgc3VyIGRlIHZvdWxvaXIgc3VwcHJpbWVyIGxhIHDDqXJpb2RlPzwvaT5cIiwgXCJQw6lyaW9kZVwiKTtcclxuICAgICAgICB2YXIgdHlwZSA9ICQodGhpcykuZGF0YSgndHlwZScpO1xyXG4gICAgICAgIHZhciBwZXJpb2RlID0gJCh0aGlzKS5kYXRhKCdwZXJpb2RlJyk7XHJcbiAgICAgICAgdmFyIHBhcmVudCA9ICQodGhpcykucGFyZW50KCkucGFyZW50KCkucGFyZW50KCk7XHJcbiAgICAgICAgdmFyIG5leHRUYWIgPSBwYXJlbnQucGFyZW50KCkubmV4dCgpO1xyXG4gICAgICAgIHZhciBwcmV2VGFiID0gcGFyZW50LnBhcmVudCgpLnByZXYoKTtcclxuXHJcbiAgICAgICAgcmVzdWx0LmRvbmUoZnVuY3Rpb24oZGlhbG9nUmVzdWx0KSB7XHJcbiAgICAgICAgICAgIGlmIChkaWFsb2dSZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiBcIkRFTEVURVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHVybDogXCIvdGFyaWYvcGVyaW9kZS9cIiArIHR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YSA6IHsncGVyaW9kZScgOiBwZXJpb2RlfSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogXCJqc29uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdWwgPSBwYXJlbnQucGFyZW50KCkucGFyZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudC50YWIoJ2Rpc3Bvc2UnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJChwYXJlbnQpLnBhcmVudCgpLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV4dFRhYi5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFRhYi5jaGlsZHJlbignYnV0dG9uJykudGFiKCdzaG93Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJldlRhYi5sZW5ndGggIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldlRhYi5jaGlsZHJlbignYnV0dG9uJykudGFiKCdzaG93Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdWwuZmluZCgnbGkgPiBidXR0b24gPiBzcGFuLnBlcmlvZGVfbm9tJykuZWFjaChmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gJCh0aGlzKS50ZXh0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnRleHQodGV4dC5yZXBsYWNlKCcgPiAnICsgcmVzdWx0LnBlcmlvZGUsICcnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoJ2VycmV1ciBsb3JzIGRlIGxhIHN1cHByZXNzaW9uIGRlIGxhIHDDqXJpb2RlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB0aW1lb3V0OiAyMDAwXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXN1bHQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIGRlbGV0ZSByZXN1bHRQaG90b0RlbGV0ZTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgICQoJ2JvZHknKS5vbignY2xpY2snLCAnI2Nsb3NlcG9wdXAnLCBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgIHdpbmRvdy5wb3B1cF9zYXZlX2ZpbHRlci5oaWRlKCk7XHJcbiAgICB9KTtcclxuICAgICQoJ2JvZHknKS5vbignY2xpY2snLCAnI29wZW5wb3B1cCcsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgJChcIiNzYXZlLWZpbHRlclwiKS5zaG93KCk7XHJcbiAgICAgICAgY29tbW9uLnJlc2V0Rm9ybSgpO1xyXG4gICAgICAgIHdpbmRvdy5wb3B1cF9zYXZlX2ZpbHRlci5zaG93KCk7XHJcbiAgICAgICAgJCgnLmFsZXJ0JykuaHRtbCgnJykuaGlkZSgpO1xyXG4gICAgfSk7XHJcbn0pO1xyXG4iLCJ2YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG5cbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG52YXIgcmVwbGFjZSA9ICcnLnJlcGxhY2U7XG52YXIgU1VCU1RJVFVUSU9OX1NZTUJPTFMgPSAvXFwkKFskJidgXXxcXGR7MSwyfXw8W14+XSo+KS9nO1xudmFyIFNVQlNUSVRVVElPTl9TWU1CT0xTX05PX05BTUVEID0gL1xcJChbJCYnYF18XFxkezEsMn0pL2c7XG5cbi8vIGBHZXRTdWJzdGl0dXRpb25gIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXRzdWJzdGl0dXRpb25cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG1hdGNoZWQsIHN0ciwgcG9zaXRpb24sIGNhcHR1cmVzLCBuYW1lZENhcHR1cmVzLCByZXBsYWNlbWVudCkge1xuICB2YXIgdGFpbFBvcyA9IHBvc2l0aW9uICsgbWF0Y2hlZC5sZW5ndGg7XG4gIHZhciBtID0gY2FwdHVyZXMubGVuZ3RoO1xuICB2YXIgc3ltYm9scyA9IFNVQlNUSVRVVElPTl9TWU1CT0xTX05PX05BTUVEO1xuICBpZiAobmFtZWRDYXB0dXJlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbmFtZWRDYXB0dXJlcyA9IHRvT2JqZWN0KG5hbWVkQ2FwdHVyZXMpO1xuICAgIHN5bWJvbHMgPSBTVUJTVElUVVRJT05fU1lNQk9MUztcbiAgfVxuICByZXR1cm4gcmVwbGFjZS5jYWxsKHJlcGxhY2VtZW50LCBzeW1ib2xzLCBmdW5jdGlvbiAobWF0Y2gsIGNoKSB7XG4gICAgdmFyIGNhcHR1cmU7XG4gICAgc3dpdGNoIChjaC5jaGFyQXQoMCkpIHtcbiAgICAgIGNhc2UgJyQnOiByZXR1cm4gJyQnO1xuICAgICAgY2FzZSAnJic6IHJldHVybiBtYXRjaGVkO1xuICAgICAgY2FzZSAnYCc6IHJldHVybiBzdHIuc2xpY2UoMCwgcG9zaXRpb24pO1xuICAgICAgY2FzZSBcIidcIjogcmV0dXJuIHN0ci5zbGljZSh0YWlsUG9zKTtcbiAgICAgIGNhc2UgJzwnOlxuICAgICAgICBjYXB0dXJlID0gbmFtZWRDYXB0dXJlc1tjaC5zbGljZSgxLCAtMSldO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6IC8vIFxcZFxcZD9cbiAgICAgICAgdmFyIG4gPSArY2g7XG4gICAgICAgIGlmIChuID09PSAwKSByZXR1cm4gbWF0Y2g7XG4gICAgICAgIGlmIChuID4gbSkge1xuICAgICAgICAgIHZhciBmID0gZmxvb3IobiAvIDEwKTtcbiAgICAgICAgICBpZiAoZiA9PT0gMCkgcmV0dXJuIG1hdGNoO1xuICAgICAgICAgIGlmIChmIDw9IG0pIHJldHVybiBjYXB0dXJlc1tmIC0gMV0gPT09IHVuZGVmaW5lZCA/IGNoLmNoYXJBdCgxKSA6IGNhcHR1cmVzW2YgLSAxXSArIGNoLmNoYXJBdCgxKTtcbiAgICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICAgIH1cbiAgICAgICAgY2FwdHVyZSA9IGNhcHR1cmVzW24gLSAxXTtcbiAgICB9XG4gICAgcmV0dXJuIGNhcHR1cmUgPT09IHVuZGVmaW5lZCA/ICcnIDogY2FwdHVyZTtcbiAgfSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZpeFJlZ0V4cFdlbGxLbm93blN5bWJvbExvZ2ljID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZpeC1yZWdleHAtd2VsbC1rbm93bi1zeW1ib2wtbG9naWMnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlcicpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG52YXIgYWR2YW5jZVN0cmluZ0luZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FkdmFuY2Utc3RyaW5nLWluZGV4Jyk7XG52YXIgZ2V0U3Vic3RpdHV0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1zdWJzdGl0dXRpb24nKTtcbnZhciByZWdFeHBFeGVjID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1leGVjLWFic3RyYWN0Jyk7XG5cbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcblxudmFyIG1heWJlVG9TdHJpbmcgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ID09PSB1bmRlZmluZWQgPyBpdCA6IFN0cmluZyhpdCk7XG59O1xuXG4vLyBAQHJlcGxhY2UgbG9naWNcbmZpeFJlZ0V4cFdlbGxLbm93blN5bWJvbExvZ2ljKCdyZXBsYWNlJywgMiwgZnVuY3Rpb24gKFJFUExBQ0UsIG5hdGl2ZVJlcGxhY2UsIG1heWJlQ2FsbE5hdGl2ZSwgcmVhc29uKSB7XG4gIHZhciBSRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRSA9IHJlYXNvbi5SRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRTtcbiAgdmFyIFJFUExBQ0VfS0VFUFNfJDAgPSByZWFzb24uUkVQTEFDRV9LRUVQU18kMDtcbiAgdmFyIFVOU0FGRV9TVUJTVElUVVRFID0gUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkUgPyAnJCcgOiAnJDAnO1xuXG4gIHJldHVybiBbXG4gICAgLy8gYFN0cmluZy5wcm90b3R5cGUucmVwbGFjZWAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnJlcGxhY2VcbiAgICBmdW5jdGlvbiByZXBsYWNlKHNlYXJjaFZhbHVlLCByZXBsYWNlVmFsdWUpIHtcbiAgICAgIHZhciBPID0gcmVxdWlyZU9iamVjdENvZXJjaWJsZSh0aGlzKTtcbiAgICAgIHZhciByZXBsYWNlciA9IHNlYXJjaFZhbHVlID09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IHNlYXJjaFZhbHVlW1JFUExBQ0VdO1xuICAgICAgcmV0dXJuIHJlcGxhY2VyICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyByZXBsYWNlci5jYWxsKHNlYXJjaFZhbHVlLCBPLCByZXBsYWNlVmFsdWUpXG4gICAgICAgIDogbmF0aXZlUmVwbGFjZS5jYWxsKFN0cmluZyhPKSwgc2VhcmNoVmFsdWUsIHJlcGxhY2VWYWx1ZSk7XG4gICAgfSxcbiAgICAvLyBgUmVnRXhwLnByb3RvdHlwZVtAQHJlcGxhY2VdYCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXJlZ2V4cC5wcm90b3R5cGUtQEByZXBsYWNlXG4gICAgZnVuY3Rpb24gKHJlZ2V4cCwgcmVwbGFjZVZhbHVlKSB7XG4gICAgICBpZiAoXG4gICAgICAgICghUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkUgJiYgUkVQTEFDRV9LRUVQU18kMCkgfHxcbiAgICAgICAgKHR5cGVvZiByZXBsYWNlVmFsdWUgPT09ICdzdHJpbmcnICYmIHJlcGxhY2VWYWx1ZS5pbmRleE9mKFVOU0FGRV9TVUJTVElUVVRFKSA9PT0gLTEpXG4gICAgICApIHtcbiAgICAgICAgdmFyIHJlcyA9IG1heWJlQ2FsbE5hdGl2ZShuYXRpdmVSZXBsYWNlLCByZWdleHAsIHRoaXMsIHJlcGxhY2VWYWx1ZSk7XG4gICAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJ4ID0gYW5PYmplY3QocmVnZXhwKTtcbiAgICAgIHZhciBTID0gU3RyaW5nKHRoaXMpO1xuXG4gICAgICB2YXIgZnVuY3Rpb25hbFJlcGxhY2UgPSB0eXBlb2YgcmVwbGFjZVZhbHVlID09PSAnZnVuY3Rpb24nO1xuICAgICAgaWYgKCFmdW5jdGlvbmFsUmVwbGFjZSkgcmVwbGFjZVZhbHVlID0gU3RyaW5nKHJlcGxhY2VWYWx1ZSk7XG5cbiAgICAgIHZhciBnbG9iYWwgPSByeC5nbG9iYWw7XG4gICAgICBpZiAoZ2xvYmFsKSB7XG4gICAgICAgIHZhciBmdWxsVW5pY29kZSA9IHJ4LnVuaWNvZGU7XG4gICAgICAgIHJ4Lmxhc3RJbmRleCA9IDA7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0cyA9IFtdO1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHJlZ0V4cEV4ZWMocngsIFMpO1xuICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSBicmVhaztcblxuICAgICAgICByZXN1bHRzLnB1c2gocmVzdWx0KTtcbiAgICAgICAgaWYgKCFnbG9iYWwpIGJyZWFrO1xuXG4gICAgICAgIHZhciBtYXRjaFN0ciA9IFN0cmluZyhyZXN1bHRbMF0pO1xuICAgICAgICBpZiAobWF0Y2hTdHIgPT09ICcnKSByeC5sYXN0SW5kZXggPSBhZHZhbmNlU3RyaW5nSW5kZXgoUywgdG9MZW5ndGgocngubGFzdEluZGV4KSwgZnVsbFVuaWNvZGUpO1xuICAgICAgfVxuXG4gICAgICB2YXIgYWNjdW11bGF0ZWRSZXN1bHQgPSAnJztcbiAgICAgIHZhciBuZXh0U291cmNlUG9zaXRpb24gPSAwO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdHNbaV07XG5cbiAgICAgICAgdmFyIG1hdGNoZWQgPSBTdHJpbmcocmVzdWx0WzBdKTtcbiAgICAgICAgdmFyIHBvc2l0aW9uID0gbWF4KG1pbih0b0ludGVnZXIocmVzdWx0LmluZGV4KSwgUy5sZW5ndGgpLCAwKTtcbiAgICAgICAgdmFyIGNhcHR1cmVzID0gW107XG4gICAgICAgIC8vIE5PVEU6IFRoaXMgaXMgZXF1aXZhbGVudCB0b1xuICAgICAgICAvLyAgIGNhcHR1cmVzID0gcmVzdWx0LnNsaWNlKDEpLm1hcChtYXliZVRvU3RyaW5nKVxuICAgICAgICAvLyBidXQgZm9yIHNvbWUgcmVhc29uIGBuYXRpdmVTbGljZS5jYWxsKHJlc3VsdCwgMSwgcmVzdWx0Lmxlbmd0aClgIChjYWxsZWQgaW5cbiAgICAgICAgLy8gdGhlIHNsaWNlIHBvbHlmaWxsIHdoZW4gc2xpY2luZyBuYXRpdmUgYXJyYXlzKSBcImRvZXNuJ3Qgd29ya1wiIGluIHNhZmFyaSA5IGFuZFxuICAgICAgICAvLyBjYXVzZXMgYSBjcmFzaCAoaHR0cHM6Ly9wYXN0ZWJpbi5jb20vTjIxUXplUUEpIHdoZW4gdHJ5aW5nIHRvIGRlYnVnIGl0LlxuICAgICAgICBmb3IgKHZhciBqID0gMTsgaiA8IHJlc3VsdC5sZW5ndGg7IGorKykgY2FwdHVyZXMucHVzaChtYXliZVRvU3RyaW5nKHJlc3VsdFtqXSkpO1xuICAgICAgICB2YXIgbmFtZWRDYXB0dXJlcyA9IHJlc3VsdC5ncm91cHM7XG4gICAgICAgIGlmIChmdW5jdGlvbmFsUmVwbGFjZSkge1xuICAgICAgICAgIHZhciByZXBsYWNlckFyZ3MgPSBbbWF0Y2hlZF0uY29uY2F0KGNhcHR1cmVzLCBwb3NpdGlvbiwgUyk7XG4gICAgICAgICAgaWYgKG5hbWVkQ2FwdHVyZXMgIT09IHVuZGVmaW5lZCkgcmVwbGFjZXJBcmdzLnB1c2gobmFtZWRDYXB0dXJlcyk7XG4gICAgICAgICAgdmFyIHJlcGxhY2VtZW50ID0gU3RyaW5nKHJlcGxhY2VWYWx1ZS5hcHBseSh1bmRlZmluZWQsIHJlcGxhY2VyQXJncykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlcGxhY2VtZW50ID0gZ2V0U3Vic3RpdHV0aW9uKG1hdGNoZWQsIFMsIHBvc2l0aW9uLCBjYXB0dXJlcywgbmFtZWRDYXB0dXJlcywgcmVwbGFjZVZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9zaXRpb24gPj0gbmV4dFNvdXJjZVBvc2l0aW9uKSB7XG4gICAgICAgICAgYWNjdW11bGF0ZWRSZXN1bHQgKz0gUy5zbGljZShuZXh0U291cmNlUG9zaXRpb24sIHBvc2l0aW9uKSArIHJlcGxhY2VtZW50O1xuICAgICAgICAgIG5leHRTb3VyY2VQb3NpdGlvbiA9IHBvc2l0aW9uICsgbWF0Y2hlZC5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2N1bXVsYXRlZFJlc3VsdCArIFMuc2xpY2UobmV4dFNvdXJjZVBvc2l0aW9uKTtcbiAgICB9XG4gIF07XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=", "@public_path/build/list.js", "/builds/dev/refonte_sav/public/build/list.js");
    }
}
