|
- (self["webpackChunk"] = self["webpackChunk"] || []).push([["adminlte-index"],{
-
- /***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/app.index.js":
- /*!**********************************************************************************!*\
- !*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/app.index.js ***!
- \**********************************************************************************/
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/index.js");
- /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_index_js__WEBPACK_IMPORTED_MODULE_0__);
- /* harmony import */ var _index_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.scss */ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/index.scss");
-
-
-
- /***/ }),
-
- /***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/index.js":
- /*!******************************************************************************!*\
- !*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/index.js ***!
- \******************************************************************************/
- /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
-
- __webpack_require__(/*! core-js/modules/es.date.to-string.js */ "./node_modules/core-js/modules/es.date.to-string.js");
-
- __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js");
-
- __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.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.split.js */ "./node_modules/core-js/modules/es.string.split.js");
-
- __webpack_require__(/*! core-js/modules/es.array.index-of.js */ "./node_modules/core-js/modules/es.array.index-of.js");
-
- __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js");
-
- __webpack_require__(/*! core-js/modules/es.array.join.js */ "./node_modules/core-js/modules/es.array.join.js");
-
- __webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js");
-
- $(document).ready(function () {
- lcCrudIndexToggle();
- lcCrudIndexBatchActions();
- lcCrudIndexInitFilter();
- });
-
- function lcCrudIndexToggle() {
- var toggles = document.querySelectorAll('.custom-switch input[type="checkbox"]');
-
- for (i = 0; i < toggles.length; i++) {
- toggles[i].addEventListener('change', function () {
- var toggle = this;
- var newValue = this.checked;
- var oldValue = !newValue;
- var toggleUrl = this.closest('.custom-switch').dataset.url + "&newValue=" + newValue.toString();
- var toggleRequest = $.ajax({
- type: "POST",
- url: toggleUrl,
- data: {},
- dataType: 'json'
- });
- toggleRequest.done(function (response) {
- SovNotification.add('success', 'La propriété a bien été mise à jour.');
- });
- toggleRequest.fail(function () {
- toggle.checked = oldValue;
- toggle.disabled = true;
- toggle.closest('.checkbox-switch').classList.add('disabled');
- SovNotification.add('error', 'Une erreur est survenue.');
- });
- });
- }
- }
-
- function lcCrudIndexBatchActions() {
- var titleContent = $('.content-header-title > .title').html();
- $(document).on('click', '.deselect-batch-button', function () {
- $(this).closest('.content').find(':checkbox.form-batch-checkbox-all').prop('checked', false).trigger('change');
- });
- $(document).on('change', '.form-batch-checkbox-all', function () {
- $(this).closest('.content').find(':checkbox.form-batch-checkbox').prop('checked', $(this).prop('checked')).trigger('change');
- });
- $(document).on('change', '.form-batch-checkbox', function () {
- var $content = $(this).closest('.content-wrapper');
- var $input = $content.find(':hidden#batch_form_entityIds');
- var ids = $input.val() ? $input.val().split(',') : [];
- var id = $(this).val();
-
- if ($(this).prop('checked')) {
- $(this).closest('tr').addClass('selected-row');
-
- if (-1 === ids.indexOf(id)) {
- ids.push(id);
- }
- } else {
- $(this).closest('tr').removeClass('selected-row');
- ids = ids.filter(function (value) {
- return value !== id;
- });
- $content.find(':checkbox.form-batch-checkbox-all').prop('checked', false);
- }
-
- if (0 === ids.length) {
- $content.find('.global-actions').show();
- $content.find('.batch-actions').hide();
- $content.find('table').removeClass('table-batch');
- } else {
- $content.find('.batch-actions').show();
- $content.find('.global-actions').hide();
- $content.find('table').addClass('table-batch');
- }
-
- $input.val(ids.join(','));
- $content.find('.content-header-title > .title').html(0 === ids.length ? titleContent : '');
- });
- var modalTitle = $('#batch-action-confirmation-title');
- var titleContentWithPlaceholders = modalTitle.text();
- $('[data-action-batch]').on('click', function (event) {
- event.preventDefault();
- event.stopPropagation();
- var $actionElement = $(this);
- var actionName = $actionElement.attr('data-action-name');
- var selectedItems = $('input[type="checkbox"].form-batch-checkbox:checked');
- modalTitle.text(titleContentWithPlaceholders.replace('%action_name%', actionName).replace('%num_items%', selectedItems.length));
- $('#modal-batch-action').modal({
- backdrop: true,
- keyboard: true
- }).off('click', '#modal-batch-action-button').on('click', '#modal-batch-action-button', function () {
- $actionElement.unbind('click');
- $form = document.createElement('form');
- $form.setAttribute('action', $actionElement.attr('data-action-url'));
- $form.setAttribute('method', 'POST');
- $actionNameInput = document.createElement('input');
- $actionNameInput.setAttribute('type', 'hidden');
- $actionNameInput.setAttribute('name', 'batchActionName');
- $actionNameInput.setAttribute('value', $actionElement.attr('data-action-name'));
- $form.appendChild($actionNameInput);
- $entityFqcnInput = document.createElement('input');
- $entityFqcnInput.setAttribute('type', 'hidden');
- $entityFqcnInput.setAttribute('name', 'entityFqcn');
- $entityFqcnInput.setAttribute('value', $actionElement.attr('data-entity-fqcn'));
- $form.appendChild($entityFqcnInput);
- $actionUrlInput = document.createElement('input');
- $actionUrlInput.setAttribute('type', 'hidden');
- $actionUrlInput.setAttribute('name', 'batchActionUrl');
- $actionUrlInput.setAttribute('value', $actionElement.attr('data-action-url'));
- $form.appendChild($actionUrlInput);
- $csrfTokenInput = document.createElement('input');
- $csrfTokenInput.setAttribute('type', 'hidden');
- $csrfTokenInput.setAttribute('name', 'batchActionCsrfToken');
- $csrfTokenInput.setAttribute('value', $actionElement.attr('data-action-csrf-token'));
- $form.appendChild($csrfTokenInput);
- selectedItems.each(function (i, item) {
- $entityIdInput = document.createElement('input');
- $entityIdInput.setAttribute('type', 'hidden');
- $entityIdInput.setAttribute('name', "batchActionEntityIds[".concat(i, "]"));
- $entityIdInput.setAttribute('value', item.value);
- $form.appendChild($entityIdInput);
- });
- document.body.appendChild($form); //modalTitle.text(titleContentWithPlaceholders);
-
- $form.submit();
- });
- });
- }
-
- function lcCrudIndexInitFilter() {
- $('#filters_form_reset').val('');
- $('.lc-reset-filters').on('click', function (e) {
- //e.preventDefault();
- $(this).parents('.table-filters-line').find('select,input').val('').trigger('change');
- $('#filters_form_reset').val('clearAll');
- Tools.log($(this).prop('form'));
- $(this).prop('form').submit(); //$(this).parents('form').submit();
- });
- }
-
- /***/ }),
-
- /***/ "./node_modules/core-js/internals/array-method-is-strict.js":
- /*!******************************************************************!*\
- !*** ./node_modules/core-js/internals/array-method-is-strict.js ***!
- \******************************************************************/
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
- "use strict";
-
- var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
-
- module.exports = function (METHOD_NAME, argument) {
- var method = [][METHOD_NAME];
- return !!method && fails(function () {
- // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing
- method.call(null, argument || function () { throw 1; }, 1);
- });
- };
-
-
- /***/ }),
-
- /***/ "./node_modules/core-js/internals/classof.js":
- /*!***************************************************!*\
- !*** ./node_modules/core-js/internals/classof.js ***!
- \***************************************************/
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
- var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js");
- var classofRaw = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js");
- var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
-
- var TO_STRING_TAG = wellKnownSymbol('toStringTag');
- // ES3 wrong here
- var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
-
- // fallback for IE11 Script Access Denied error
- var tryGet = function (it, key) {
- try {
- return it[key];
- } catch (error) { /* empty */ }
- };
-
- // getting tag from ES6+ `Object.prototype.toString`
- module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
- var O, tag, result;
- return it === undefined ? 'Undefined' : it === null ? 'Null'
- // @@toStringTag case
- : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag
- // builtinTag case
- : CORRECT_ARGUMENTS ? classofRaw(O)
- // ES3 arguments fallback
- : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;
- };
-
-
- /***/ }),
-
- /***/ "./node_modules/core-js/internals/object-to-string.js":
- /*!************************************************************!*\
- !*** ./node_modules/core-js/internals/object-to-string.js ***!
- \************************************************************/
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
- "use strict";
-
- var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js");
- var classof = __webpack_require__(/*! ../internals/classof */ "./node_modules/core-js/internals/classof.js");
-
- // `Object.prototype.toString` method implementation
- // https://tc39.es/ecma262/#sec-object.prototype.tostring
- module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {
- return '[object ' + classof(this) + ']';
- };
-
-
- /***/ }),
-
- /***/ "./node_modules/core-js/internals/to-string-tag-support.js":
- /*!*****************************************************************!*\
- !*** ./node_modules/core-js/internals/to-string-tag-support.js ***!
- \*****************************************************************/
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
- var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js");
-
- var TO_STRING_TAG = wellKnownSymbol('toStringTag');
- var test = {};
-
- test[TO_STRING_TAG] = 'z';
-
- module.exports = String(test) === '[object z]';
-
-
- /***/ }),
-
- /***/ "./node_modules/core-js/modules/es.array.index-of.js":
- /*!***********************************************************!*\
- !*** ./node_modules/core-js/modules/es.array.index-of.js ***!
- \***********************************************************/
- /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
-
- "use strict";
-
- /* eslint-disable es/no-array-prototype-indexof -- required for testing */
- var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
- var $indexOf = __webpack_require__(/*! ../internals/array-includes */ "./node_modules/core-js/internals/array-includes.js").indexOf;
- var arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ "./node_modules/core-js/internals/array-method-is-strict.js");
-
- var nativeIndexOf = [].indexOf;
-
- var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;
- var STRICT_METHOD = arrayMethodIsStrict('indexOf');
-
- // `Array.prototype.indexOf` method
- // https://tc39.es/ecma262/#sec-array.prototype.indexof
- $({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {
- indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
- return NEGATIVE_ZERO
- // convert -0 to +0
- ? nativeIndexOf.apply(this, arguments) || 0
- : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);
- }
- });
-
-
- /***/ }),
-
- /***/ "./node_modules/core-js/modules/es.array.join.js":
- /*!*******************************************************!*\
- !*** ./node_modules/core-js/modules/es.array.join.js ***!
- \*******************************************************/
- /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
-
- "use strict";
-
- var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js");
- var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js");
- var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js");
- var arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ "./node_modules/core-js/internals/array-method-is-strict.js");
-
- var nativeJoin = [].join;
-
- var ES3_STRINGS = IndexedObject != Object;
- var STRICT_METHOD = arrayMethodIsStrict('join', ',');
-
- // `Array.prototype.join` method
- // https://tc39.es/ecma262/#sec-array.prototype.join
- $({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {
- join: function join(separator) {
- return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);
- }
- });
-
-
- /***/ }),
-
- /***/ "./node_modules/core-js/modules/es.object.to-string.js":
- /*!*************************************************************!*\
- !*** ./node_modules/core-js/modules/es.object.to-string.js ***!
- \*************************************************************/
- /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
-
- var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js");
- var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
- var toString = __webpack_require__(/*! ../internals/object-to-string */ "./node_modules/core-js/internals/object-to-string.js");
-
- // `Object.prototype.toString` method
- // https://tc39.es/ecma262/#sec-object.prototype.tostring
- if (!TO_STRING_TAG_SUPPORT) {
- redefine(Object.prototype, 'toString', toString, { unsafe: true });
- }
-
-
- /***/ }),
-
- /***/ "./node_modules/core-js/modules/es.regexp.to-string.js":
- /*!*************************************************************!*\
- !*** ./node_modules/core-js/modules/es.regexp.to-string.js ***!
- \*************************************************************/
- /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
-
- "use strict";
-
- var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js");
- var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js");
- var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js");
- var flags = __webpack_require__(/*! ../internals/regexp-flags */ "./node_modules/core-js/internals/regexp-flags.js");
-
- var TO_STRING = 'toString';
- var RegExpPrototype = RegExp.prototype;
- var nativeToString = RegExpPrototype[TO_STRING];
-
- var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });
- // FF44- RegExp#toString has a wrong name
- var INCORRECT_NAME = nativeToString.name != TO_STRING;
-
- // `RegExp.prototype.toString` method
- // https://tc39.es/ecma262/#sec-regexp.prototype.tostring
- if (NOT_GENERIC || INCORRECT_NAME) {
- redefine(RegExp.prototype, TO_STRING, function toString() {
- var R = anObject(this);
- var p = String(R.source);
- var rf = R.flags;
- var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);
- return '/' + p + '/' + f;
- }, { unsafe: true });
- }
-
-
- /***/ }),
-
- /***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/index.scss":
- /*!********************************************************************************!*\
- !*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/index.scss ***!
- \********************************************************************************/
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- // extracted by mini-css-extract-plugin
-
-
- /***/ })
-
- },
- /******/ __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_export_js","vendors-node_modules_core-js_modules_es_string_replace_js","vendors-node_modules_core-js_modules_es_array_filter_js-node_modules_core-js_modules_es_array-ca58f0"], () => (__webpack_exec__("../LaClicBundle/SovBundle/Resources/assets/app/adminlte/index/app.index.js")));
- /******/ var __webpack_exports__ = __webpack_require__.O();
- /******/ }
- ]);
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vTGFDbGljQnVuZGxlL1NvdkJ1bmRsZS9SZXNvdXJjZXMvYXNzZXRzL2FwcC9hZG1pbmx0ZS9pbmRleC9hcHAuaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4uL0xhQ2xpY0J1bmRsZS9Tb3ZCdW5kbGUvUmVzb3VyY2VzL2Fzc2V0cy9hcHAvYWRtaW5sdGUvaW5kZXgvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1pcy1zdHJpY3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NsYXNzb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC10by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmluZGV4LW9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuam9pbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudG8tc3RyaW5nLmpzIiwid2VicGFjazovLy8uLi9MYUNsaWNCdW5kbGUvU292QnVuZGxlL1Jlc291cmNlcy9hc3NldHMvYXBwL2FkbWlubHRlL2luZGV4L2luZGV4LnNjc3MiXSwibmFtZXMiOlsiJCIsImRvY3VtZW50IiwicmVhZHkiLCJsY0NydWRJbmRleFRvZ2dsZSIsImxjQ3J1ZEluZGV4QmF0Y2hBY3Rpb25zIiwibGNDcnVkSW5kZXhJbml0RmlsdGVyIiwidG9nZ2xlcyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJpIiwibGVuZ3RoIiwiYWRkRXZlbnRMaXN0ZW5lciIsInRvZ2dsZSIsIm5ld1ZhbHVlIiwiY2hlY2tlZCIsIm9sZFZhbHVlIiwidG9nZ2xlVXJsIiwiY2xvc2VzdCIsImRhdGFzZXQiLCJ1cmwiLCJ0b1N0cmluZyIsInRvZ2dsZVJlcXVlc3QiLCJhamF4IiwidHlwZSIsImRhdGEiLCJkYXRhVHlwZSIsImRvbmUiLCJyZXNwb25zZSIsIlNvdk5vdGlmaWNhdGlvbiIsImFkZCIsImZhaWwiLCJkaXNhYmxlZCIsImNsYXNzTGlzdCIsInRpdGxlQ29udGVudCIsImh0bWwiLCJvbiIsImZpbmQiLCJwcm9wIiwidHJpZ2dlciIsIiRjb250ZW50IiwiJGlucHV0IiwiaWRzIiwidmFsIiwic3BsaXQiLCJpZCIsImFkZENsYXNzIiwiaW5kZXhPZiIsInB1c2giLCJyZW1vdmVDbGFzcyIsImZpbHRlciIsInZhbHVlIiwic2hvdyIsImhpZGUiLCJqb2luIiwibW9kYWxUaXRsZSIsInRpdGxlQ29udGVudFdpdGhQbGFjZWhvbGRlcnMiLCJ0ZXh0IiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsIiRhY3Rpb25FbGVtZW50IiwiYWN0aW9uTmFtZSIsImF0dHIiLCJzZWxlY3RlZEl0ZW1zIiwicmVwbGFjZSIsIm1vZGFsIiwiYmFja2Ryb3AiLCJrZXlib2FyZCIsIm9mZiIsInVuYmluZCIsIiRmb3JtIiwiY3JlYXRlRWxlbWVudCIsInNldEF0dHJpYnV0ZSIsIiRhY3Rpb25OYW1lSW5wdXQiLCJhcHBlbmRDaGlsZCIsIiRlbnRpdHlGcWNuSW5wdXQiLCIkYWN0aW9uVXJsSW5wdXQiLCIkY3NyZlRva2VuSW5wdXQiLCJlYWNoIiwiaXRlbSIsIiRlbnRpdHlJZElucHV0IiwiYm9keSIsInN1Ym1pdCIsImUiLCJwYXJlbnRzIiwiVG9vbHMiLCJsb2ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFDQTs7Ozs7Ozs7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QUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsR0FBRyxlQUFlO0FBQ3JCOzs7Ozs7Ozs7Ozs7O0FDeEJBIiwiZmlsZSI6ImFkbWlubHRlLWluZGV4LmMwNWU5ZWJhLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgJy4vaW5kZXguanMnXG5pbXBvcnQgJy4vaW5kZXguc2NzcyciLCJcblxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7XG4gICAgbGNDcnVkSW5kZXhUb2dnbGUoKSA7XG4gICAgbGNDcnVkSW5kZXhCYXRjaEFjdGlvbnMoKSA7XG4gICAgbGNDcnVkSW5kZXhJbml0RmlsdGVyKCk7XG59KSA7XG5cbmZ1bmN0aW9uIGxjQ3J1ZEluZGV4VG9nZ2xlKCkge1xuICAgIGNvbnN0IHRvZ2dsZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY3VzdG9tLXN3aXRjaCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0nKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgdG9nZ2xlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0b2dnbGVzW2ldLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHRvZ2dsZSA9IHRoaXM7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuY2hlY2tlZDtcbiAgICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID0gIW5ld1ZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdG9nZ2xlVXJsID0gdGhpcy5jbG9zZXN0KCcuY3VzdG9tLXN3aXRjaCcpLmRhdGFzZXQudXJsICsgXCImbmV3VmFsdWU9XCIgKyBuZXdWYWx1ZS50b1N0cmluZygpO1xuXG4gICAgICAgICAgICBsZXQgdG9nZ2xlUmVxdWVzdCA9ICQuYWpheCh7dHlwZTogXCJQT1NUXCIsIHVybDogdG9nZ2xlVXJsLCBkYXRhOiB7fSwgZGF0YVR5cGU6ICdqc29uJ30pO1xuXG4gICAgICAgICAgICB0b2dnbGVSZXF1ZXN0LmRvbmUoZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgU292Tm90aWZpY2F0aW9uLmFkZCgnc3VjY2VzcycsICdMYSBwcm9wcmnDqXTDqSBhIGJpZW4gw6l0w6kgbWlzZSDDoCBqb3VyLicpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRvZ2dsZVJlcXVlc3QuZmFpbChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlLmNoZWNrZWQgPSBvbGRWYWx1ZTtcbiAgICAgICAgICAgICAgICB0b2dnbGUuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRvZ2dsZS5jbG9zZXN0KCcuY2hlY2tib3gtc3dpdGNoJykuY2xhc3NMaXN0LmFkZCgnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICBTb3ZOb3RpZmljYXRpb24uYWRkKCdlcnJvcicsICdVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZS4nKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGxjQ3J1ZEluZGV4QmF0Y2hBY3Rpb25zKCkge1xuICAgIGNvbnN0IHRpdGxlQ29udGVudCA9ICQoJy5jb250ZW50LWhlYWRlci10aXRsZSA+IC50aXRsZScpLmh0bWwoKTtcbiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnLmRlc2VsZWN0LWJhdGNoLWJ1dHRvbicsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCcuY29udGVudCcpLmZpbmQoJzpjaGVja2JveC5mb3JtLWJhdGNoLWNoZWNrYm94LWFsbCcpLnByb3AoJ2NoZWNrZWQnLCBmYWxzZSkudHJpZ2dlcignY2hhbmdlJyk7XG4gICAgfSk7XG4gICAgJChkb2N1bWVudCkub24oJ2NoYW5nZScsICcuZm9ybS1iYXRjaC1jaGVja2JveC1hbGwnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQodGhpcykuY2xvc2VzdCgnLmNvbnRlbnQnKS5maW5kKCc6Y2hlY2tib3guZm9ybS1iYXRjaC1jaGVja2JveCcpLnByb3AoJ2NoZWNrZWQnLCAkKHRoaXMpLnByb3AoJ2NoZWNrZWQnKSkudHJpZ2dlcignY2hhbmdlJyk7XG4gICAgfSk7XG4gICAgJChkb2N1bWVudCkub24oJ2NoYW5nZScsICcuZm9ybS1iYXRjaC1jaGVja2JveCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgJGNvbnRlbnQgPSAkKHRoaXMpLmNsb3Nlc3QoJy5jb250ZW50LXdyYXBwZXInKTtcbiAgICAgICAgbGV0ICRpbnB1dCA9ICRjb250ZW50LmZpbmQoJzpoaWRkZW4jYmF0Y2hfZm9ybV9lbnRpdHlJZHMnKTtcbiAgICAgICAgbGV0IGlkcyA9ICRpbnB1dC52YWwoKSA/ICRpbnB1dC52YWwoKS5zcGxpdCgnLCcpIDogW107XG4gICAgICAgIGNvbnN0IGlkID0gJCh0aGlzKS52YWwoKTtcblxuICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKCdjaGVja2VkJykpIHtcbiAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5hZGRDbGFzcygnc2VsZWN0ZWQtcm93Jyk7XG4gICAgICAgICAgICBpZiAoLTEgPT09IGlkcy5pbmRleE9mKGlkKSkge1xuICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5yZW1vdmVDbGFzcygnc2VsZWN0ZWQtcm93Jyk7XG4gICAgICAgICAgICBpZHMgPSBpZHMuZmlsdGVyKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSAhPT0gaWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgJGNvbnRlbnQuZmluZCgnOmNoZWNrYm94LmZvcm0tYmF0Y2gtY2hlY2tib3gtYWxsJykucHJvcCgnY2hlY2tlZCcsIGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgwID09PSBpZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAkY29udGVudC5maW5kKCcuZ2xvYmFsLWFjdGlvbnMnKS5zaG93KCk7XG4gICAgICAgICAgICAkY29udGVudC5maW5kKCcuYmF0Y2gtYWN0aW9ucycpLmhpZGUoKTtcbiAgICAgICAgICAgICRjb250ZW50LmZpbmQoJ3RhYmxlJykucmVtb3ZlQ2xhc3MoJ3RhYmxlLWJhdGNoJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkY29udGVudC5maW5kKCcuYmF0Y2gtYWN0aW9ucycpLnNob3coKTtcbiAgICAgICAgICAgICRjb250ZW50LmZpbmQoJy5nbG9iYWwtYWN0aW9ucycpLmhpZGUoKTtcbiAgICAgICAgICAgICRjb250ZW50LmZpbmQoJ3RhYmxlJykuYWRkQ2xhc3MoJ3RhYmxlLWJhdGNoJyk7XG4gICAgICAgIH1cblxuICAgICAgICAkaW5wdXQudmFsKGlkcy5qb2luKCcsJykpO1xuICAgICAgICAkY29udGVudC5maW5kKCcuY29udGVudC1oZWFkZXItdGl0bGUgPiAudGl0bGUnKS5odG1sKDAgPT09IGlkcy5sZW5ndGggPyB0aXRsZUNvbnRlbnQgOiAnJyk7XG4gICAgfSk7XG5cbiAgICBsZXQgbW9kYWxUaXRsZSA9ICQoJyNiYXRjaC1hY3Rpb24tY29uZmlybWF0aW9uLXRpdGxlJyk7XG4gICAgY29uc3QgdGl0bGVDb250ZW50V2l0aFBsYWNlaG9sZGVycyA9IG1vZGFsVGl0bGUudGV4dCgpO1xuXG4gICAgJCgnW2RhdGEtYWN0aW9uLWJhdGNoXScpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgbGV0ICRhY3Rpb25FbGVtZW50ID0gJCh0aGlzKTtcblxuICAgICAgICBjb25zdCBhY3Rpb25OYW1lID0gJGFjdGlvbkVsZW1lbnQuYXR0cignZGF0YS1hY3Rpb24tbmFtZScpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gJCgnaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLmZvcm0tYmF0Y2gtY2hlY2tib3g6Y2hlY2tlZCcpO1xuICAgICAgICBtb2RhbFRpdGxlLnRleHQodGl0bGVDb250ZW50V2l0aFBsYWNlaG9sZGVyc1xuICAgICAgICAgICAgLnJlcGxhY2UoJyVhY3Rpb25fbmFtZSUnLCBhY3Rpb25OYW1lKVxuICAgICAgICAgICAgLnJlcGxhY2UoJyVudW1faXRlbXMlJywgc2VsZWN0ZWRJdGVtcy5sZW5ndGgpKTtcblxuICAgICAgICAkKCcjbW9kYWwtYmF0Y2gtYWN0aW9uJykubW9kYWwoe2JhY2tkcm9wOiB0cnVlLCBrZXlib2FyZDogdHJ1ZX0pXG4gICAgICAgICAgICAub2ZmKCdjbGljaycsICcjbW9kYWwtYmF0Y2gtYWN0aW9uLWJ1dHRvbicpXG4gICAgICAgICAgICAub24oJ2NsaWNrJywgJyNtb2RhbC1iYXRjaC1hY3Rpb24tYnV0dG9uJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICRhY3Rpb25FbGVtZW50LnVuYmluZCgnY2xpY2snKTtcblxuICAgICAgICAgICAgICAgICRmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpO1xuICAgICAgICAgICAgICAgICRmb3JtLnNldEF0dHJpYnV0ZSgnYWN0aW9uJywgJGFjdGlvbkVsZW1lbnQuYXR0cignZGF0YS1hY3Rpb24tdXJsJykpO1xuICAgICAgICAgICAgICAgICRmb3JtLnNldEF0dHJpYnV0ZSgnbWV0aG9kJywgJ1BPU1QnKTtcblxuICAgICAgICAgICAgICAgICRhY3Rpb25OYW1lSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICAgICAgICAgICRhY3Rpb25OYW1lSW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICRhY3Rpb25OYW1lSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ2JhdGNoQWN0aW9uTmFtZScpO1xuICAgICAgICAgICAgICAgICRhY3Rpb25OYW1lSW5wdXQuc2V0QXR0cmlidXRlKCd2YWx1ZScsICRhY3Rpb25FbGVtZW50LmF0dHIoJ2RhdGEtYWN0aW9uLW5hbWUnKSk7XG4gICAgICAgICAgICAgICAgJGZvcm0uYXBwZW5kQ2hpbGQoJGFjdGlvbk5hbWVJbnB1dCk7XG5cbiAgICAgICAgICAgICAgICAkZW50aXR5RnFjbklucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgICAgICAgICAkZW50aXR5RnFjbklucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAkZW50aXR5RnFjbklucHV0LnNldEF0dHJpYnV0ZSgnbmFtZScsICdlbnRpdHlGcWNuJyk7XG4gICAgICAgICAgICAgICAgJGVudGl0eUZxY25JbnB1dC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJGFjdGlvbkVsZW1lbnQuYXR0cignZGF0YS1lbnRpdHktZnFjbicpKTtcbiAgICAgICAgICAgICAgICAkZm9ybS5hcHBlbmRDaGlsZCgkZW50aXR5RnFjbklucHV0KTtcblxuICAgICAgICAgICAgICAgICRhY3Rpb25VcmxJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgICAgICAgICAgJGFjdGlvblVybElucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAkYWN0aW9uVXJsSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ2JhdGNoQWN0aW9uVXJsJyk7XG4gICAgICAgICAgICAgICAgJGFjdGlvblVybElucHV0LnNldEF0dHJpYnV0ZSgndmFsdWUnLCAkYWN0aW9uRWxlbWVudC5hdHRyKCdkYXRhLWFjdGlvbi11cmwnKSk7XG4gICAgICAgICAgICAgICAgJGZvcm0uYXBwZW5kQ2hpbGQoJGFjdGlvblVybElucHV0KTtcblxuICAgICAgICAgICAgICAgICRjc3JmVG9rZW5JbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgICAgICAgICAgJGNzcmZUb2tlbklucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAkY3NyZlRva2VuSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ2JhdGNoQWN0aW9uQ3NyZlRva2VuJyk7XG4gICAgICAgICAgICAgICAgJGNzcmZUb2tlbklucHV0LnNldEF0dHJpYnV0ZSgndmFsdWUnLCAkYWN0aW9uRWxlbWVudC5hdHRyKCdkYXRhLWFjdGlvbi1jc3JmLXRva2VuJykpO1xuICAgICAgICAgICAgICAgICRmb3JtLmFwcGVuZENoaWxkKCRjc3JmVG9rZW5JbnB1dCk7XG5cbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLmVhY2goKGksIGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgJGVudGl0eUlkSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICAgICAgICAgICAgICAkZW50aXR5SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgICRlbnRpdHlJZElucHV0LnNldEF0dHJpYnV0ZSgnbmFtZScsIGBiYXRjaEFjdGlvbkVudGl0eUlkc1ske2l9XWApO1xuICAgICAgICAgICAgICAgICAgICAkZW50aXR5SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgaXRlbS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICRmb3JtLmFwcGVuZENoaWxkKCRlbnRpdHlJZElucHV0KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoJGZvcm0pO1xuXG4gICAgICAgICAgICAgICAgLy9tb2RhbFRpdGxlLnRleHQodGl0bGVDb250ZW50V2l0aFBsYWNlaG9sZGVycyk7XG4gICAgICAgICAgICAgICAgJGZvcm0uc3VibWl0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gbGNDcnVkSW5kZXhJbml0RmlsdGVyKCkge1xuICAgICQoJyNmaWx0ZXJzX2Zvcm1fcmVzZXQnKS52YWwoJycpO1xuXG4gICAgJCgnLmxjLXJlc2V0LWZpbHRlcnMnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAvL2UucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgJCh0aGlzKS5wYXJlbnRzKCcudGFibGUtZmlsdGVycy1saW5lJykuZmluZCgnc2VsZWN0LGlucHV0JykudmFsKCcnKS50cmlnZ2VyKCdjaGFuZ2UnKTtcbiAgICAgICAgJCgnI2ZpbHRlcnNfZm9ybV9yZXNldCcpLnZhbCgnY2xlYXJBbGwnKTtcbiAgICAgICAgVG9vbHMubG9nKCQodGhpcykucHJvcCgnZm9ybScpKTtcbiAgICAgICAgJCh0aGlzKS5wcm9wKCdmb3JtJykuc3VibWl0KCk7XG4gICAgICAgIC8vJCh0aGlzKS5wYXJlbnRzKCdmb3JtJykuc3VibWl0KCk7XG4gICAgfSlcblxufSIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSwgYXJndW1lbnQpIHtcbiAgdmFyIG1ldGhvZCA9IFtdW01FVEhPRF9OQU1FXTtcbiAgcmV0dXJuICEhbWV0aG9kICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1jYWxsLG5vLXRocm93LWxpdGVyYWwgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgICBtZXRob2QuY2FsbChudWxsLCBhcmd1bWVudCB8fCBmdW5jdGlvbiAoKSB7IHRocm93IDE7IH0sIDEpO1xuICB9KTtcbn07XG4iLCJ2YXIgVE9fU1RSSU5HX1RBR19TVVBQT1JUID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydCcpO1xudmFyIGNsYXNzb2ZSYXcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG4vLyBFUzMgd3JvbmcgaGVyZVxudmFyIENPUlJFQ1RfQVJHVU1FTlRTID0gY2xhc3NvZlJhdyhmdW5jdGlvbiAoKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSkgPT0gJ0FyZ3VtZW50cyc7XG5cbi8vIGZhbGxiYWNrIGZvciBJRTExIFNjcmlwdCBBY2Nlc3MgRGVuaWVkIGVycm9yXG52YXIgdHJ5R2V0ID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gaXRba2V5XTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxufTtcblxuLy8gZ2V0dGluZyB0YWcgZnJvbSBFUzYrIGBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nYFxubW9kdWxlLmV4cG9ydHMgPSBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPyBjbGFzc29mUmF3IDogZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBPLCB0YWcsIHJlc3VsdDtcbiAgcmV0dXJuIGl0ID09PSB1bmRlZmluZWQgPyAnVW5kZWZpbmVkJyA6IGl0ID09PSBudWxsID8gJ051bGwnXG4gICAgLy8gQEB0b1N0cmluZ1RhZyBjYXNlXG4gICAgOiB0eXBlb2YgKHRhZyA9IHRyeUdldChPID0gT2JqZWN0KGl0KSwgVE9fU1RSSU5HX1RBRykpID09ICdzdHJpbmcnID8gdGFnXG4gICAgLy8gYnVpbHRpblRhZyBjYXNlXG4gICAgOiBDT1JSRUNUX0FSR1VNRU5UUyA/IGNsYXNzb2ZSYXcoTylcbiAgICAvLyBFUzMgYXJndW1lbnRzIGZhbGxiYWNrXG4gICAgOiAocmVzdWx0ID0gY2xhc3NvZlJhdyhPKSkgPT0gJ09iamVjdCcgJiYgdHlwZW9mIE8uY2FsbGVlID09ICdmdW5jdGlvbicgPyAnQXJndW1lbnRzJyA6IHJlc3VsdDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgVE9fU1RSSU5HX1RBR19TVVBQT1JUID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydCcpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xuXG4vLyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gVE9fU1RSSU5HX1RBR19TVVBQT1JUID8ge30udG9TdHJpbmcgOiBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgcmV0dXJuICdbb2JqZWN0ICcgKyBjbGFzc29mKHRoaXMpICsgJ10nO1xufTtcbiIsInZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgdGVzdCA9IHt9O1xuXG50ZXN0W1RPX1NUUklOR19UQUddID0gJ3onO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFN0cmluZyh0ZXN0KSA9PT0gJ1tvYmplY3Qgel0nO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgZXMvbm8tYXJyYXktcHJvdG90eXBlLWluZGV4b2YgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmcgKi9cbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRpbmRleE9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWluY2x1ZGVzJykuaW5kZXhPZjtcbnZhciBhcnJheU1ldGhvZElzU3RyaWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1pcy1zdHJpY3QnKTtcblxudmFyIG5hdGl2ZUluZGV4T2YgPSBbXS5pbmRleE9mO1xuXG52YXIgTkVHQVRJVkVfWkVSTyA9ICEhbmF0aXZlSW5kZXhPZiAmJiAxIC8gWzFdLmluZGV4T2YoMSwgLTApIDwgMDtcbnZhciBTVFJJQ1RfTUVUSE9EID0gYXJyYXlNZXRob2RJc1N0cmljdCgnaW5kZXhPZicpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmluZGV4T2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5kZXhvZlxuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogTkVHQVRJVkVfWkVSTyB8fCAhU1RSSUNUX01FVEhPRCB9LCB7XG4gIGluZGV4T2Y6IGZ1bmN0aW9uIGluZGV4T2Yoc2VhcmNoRWxlbWVudCAvKiAsIGZyb21JbmRleCA9IDAgKi8pIHtcbiAgICByZXR1cm4gTkVHQVRJVkVfWkVST1xuICAgICAgLy8gY29udmVydCAtMCB0byArMFxuICAgICAgPyBuYXRpdmVJbmRleE9mLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgMFxuICAgICAgOiAkaW5kZXhPZih0aGlzLCBzZWFyY2hFbGVtZW50LCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGFycmF5TWV0aG9kSXNTdHJpY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdCcpO1xuXG52YXIgbmF0aXZlSm9pbiA9IFtdLmpvaW47XG5cbnZhciBFUzNfU1RSSU5HUyA9IEluZGV4ZWRPYmplY3QgIT0gT2JqZWN0O1xudmFyIFNUUklDVF9NRVRIT0QgPSBhcnJheU1ldGhvZElzU3RyaWN0KCdqb2luJywgJywnKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5qb2luYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmpvaW5cbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IEVTM19TVFJJTkdTIHx8ICFTVFJJQ1RfTUVUSE9EIH0sIHtcbiAgam9pbjogZnVuY3Rpb24gam9pbihzZXBhcmF0b3IpIHtcbiAgICByZXR1cm4gbmF0aXZlSm9pbi5jYWxsKHRvSW5kZXhlZE9iamVjdCh0aGlzKSwgc2VwYXJhdG9yID09PSB1bmRlZmluZWQgPyAnLCcgOiBzZXBhcmF0b3IpO1xuICB9XG59KTtcbiIsInZhciBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0Jyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtdG8tc3RyaW5nJyk7XG5cbi8vIGBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZ1xuaWYgKCFUT19TVFJJTkdfVEFHX1NVUFBPUlQpIHtcbiAgcmVkZWZpbmUoT2JqZWN0LnByb3RvdHlwZSwgJ3RvU3RyaW5nJywgdG9TdHJpbmcsIHsgdW5zYWZlOiB0cnVlIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZGVmaW5lJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBmbGFncyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZmxhZ3MnKTtcblxudmFyIFRPX1NUUklORyA9ICd0b1N0cmluZyc7XG52YXIgUmVnRXhwUHJvdG90eXBlID0gUmVnRXhwLnByb3RvdHlwZTtcbnZhciBuYXRpdmVUb1N0cmluZyA9IFJlZ0V4cFByb3RvdHlwZVtUT19TVFJJTkddO1xuXG52YXIgTk9UX0dFTkVSSUMgPSBmYWlscyhmdW5jdGlvbiAoKSB7IHJldHVybiBuYXRpdmVUb1N0cmluZy5jYWxsKHsgc291cmNlOiAnYScsIGZsYWdzOiAnYicgfSkgIT0gJy9hL2InOyB9KTtcbi8vIEZGNDQtIFJlZ0V4cCN0b1N0cmluZyBoYXMgYSB3cm9uZyBuYW1lXG52YXIgSU5DT1JSRUNUX05BTUUgPSBuYXRpdmVUb1N0cmluZy5uYW1lICE9IFRPX1NUUklORztcblxuLy8gYFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmdgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHAucHJvdG90eXBlLnRvc3RyaW5nXG5pZiAoTk9UX0dFTkVSSUMgfHwgSU5DT1JSRUNUX05BTUUpIHtcbiAgcmVkZWZpbmUoUmVnRXhwLnByb3RvdHlwZSwgVE9fU1RSSU5HLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICB2YXIgUiA9IGFuT2JqZWN0KHRoaXMpO1xuICAgIHZhciBwID0gU3RyaW5nKFIuc291cmNlKTtcbiAgICB2YXIgcmYgPSBSLmZsYWdzO1xuICAgIHZhciBmID0gU3RyaW5nKHJmID09PSB1bmRlZmluZWQgJiYgUiBpbnN0YW5jZW9mIFJlZ0V4cCAmJiAhKCdmbGFncycgaW4gUmVnRXhwUHJvdG90eXBlKSA/IGZsYWdzLmNhbGwoUikgOiByZik7XG4gICAgcmV0dXJuICcvJyArIHAgKyAnLycgKyBmO1xuICB9LCB7IHVuc2FmZTogdHJ1ZSB9KTtcbn1cbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IHt9OyJdLCJzb3VyY2VSb290IjoiIn0=
|