Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/droplab/plugins/ajax_filter.js')
-rw-r--r--app/assets/javascripts/droplab/plugins/ajax_filter.js6
1 files changed, 1 insertions, 5 deletions
diff --git a/app/assets/javascripts/droplab/plugins/ajax_filter.js b/app/assets/javascripts/droplab/plugins/ajax_filter.js
index ec0b9b7ab06..b5892694e60 100644
--- a/app/assets/javascripts/droplab/plugins/ajax_filter.js
+++ b/app/assets/javascripts/droplab/plugins/ajax_filter.js
@@ -213,8 +213,4 @@ exports.default = droplabAjaxFilter;
/***/ })
/******/ });
-<<<<<<< f7701ad4ff5948b172bf7e0e68e30917731f9410
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAgYTVmZGU1NjJhOGRjY2M3ZTliMTk/MWJhMSoqIiwid2VicGFjazovLy8uL3NyYy9wbHVnaW5zL2FqYXhfZmlsdGVyLmpzIl0sIm5hbWVzIjpbImRyb3BsYWJBamF4RmlsdGVyIiwiaW5pdCIsImhvb2siLCJkZXN0cm95ZWQiLCJub3RMb2FkaW5nIiwiZXZlbnRXcmFwcGVyIiwiZGVib3VuY2VUcmlnZ2VyIiwiYmluZCIsInRyaWdnZXIiLCJhZGRFdmVudExpc3RlbmVyIiwibG9hZGluZyIsImUiLCJOT05fQ0hBUkFDVEVSX0tFWVMiLCJpbnZhbGlkS2V5UHJlc3NlZCIsImluZGV4T2YiLCJkZXRhaWwiLCJ3aGljaCIsImtleUNvZGUiLCJmb2N1c0V2ZW50IiwidHlwZSIsInRpbWVvdXQiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0IiwiZ2V0RW50aXJlTGlzdCIsImNvbmZpZyIsInNlYXJjaFZhbHVlIiwidmFsdWUiLCJlbmRwb2ludCIsInNlYXJjaEtleSIsInNlYXJjaFZhbHVlRnVuY3Rpb24iLCJsb2FkaW5nVGVtcGxhdGUiLCJsaXN0IiwiZGF0YSIsInVuZGVmaW5lZCIsImxlbmd0aCIsImR5bmFtaWNMaXN0IiwicXVlcnlTZWxlY3RvciIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImlubmVySFRNTCIsInNldEF0dHJpYnV0ZSIsImxpc3RUZW1wbGF0ZSIsIm91dGVySFRNTCIsInNob3ciLCJwYXJhbXMiLCJzZWxmIiwiY2FjaGUiLCJ1cmwiLCJidWlsZFBhcmFtcyIsInVybENhY2hlZERhdGEiLCJfbG9hZERhdGEiLCJfbG9hZFVybERhdGEiLCJ0aGVuIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJ4aHIiLCJYTUxIdHRwUmVxdWVzdCIsIm9wZW4iLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCJyZWFkeVN0YXRlIiwiRE9ORSIsInN0YXR1cyIsIkpTT04iLCJwYXJzZSIsInJlc3BvbnNlVGV4dCIsInNlbmQiLCJkYXRhTG9hZGluZ1RlbXBsYXRlIiwiaG9va0xpc3RDaGlsZHJlbiIsImNoaWxkcmVuIiwib25seUR5bmFtaWNMaXN0IiwiaGFzQXR0cmlidXRlIiwiaGlkZSIsInNldERhdGEiLCJjYWxsIiwiY3VycmVudEluZGV4IiwicGFyYW1zQXJyYXkiLCJPYmplY3QiLCJrZXlzIiwibWFwIiwicGFyYW0iLCJqb2luIiwiZGVzdHJveSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJ3aW5kb3ciXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxtREFBMkMsY0FBYzs7QUFFekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBMkIsMEJBQTBCLEVBQUU7QUFDdkQseUNBQWlDLGVBQWU7QUFDaEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOERBQXNELCtEQUErRDs7QUFFckg7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7Ozs7Ozs7OztBQ2hFQSxJQUFNQSxvQkFBb0I7QUFDeEJDLFFBQU0sY0FBU0MsSUFBVCxFQUFlO0FBQ25CLFNBQUtDLFNBQUwsR0FBaUIsS0FBakI7QUFDQSxTQUFLRCxJQUFMLEdBQVlBLElBQVo7QUFDQSxTQUFLRSxVQUFMOztBQUVBLFNBQUtDLFlBQUwsR0FBb0IsRUFBcEI7QUFDQSxTQUFLQSxZQUFMLENBQWtCQyxlQUFsQixHQUFvQyxLQUFLQSxlQUFMLENBQXFCQyxJQUFyQixDQUEwQixJQUExQixDQUFwQztBQUNBLFNBQUtMLElBQUwsQ0FBVU0sT0FBVixDQUFrQkMsZ0JBQWxCLENBQW1DLFlBQW5DLEVBQWlELEtBQUtKLFlBQUwsQ0FBa0JDLGVBQW5FO0FB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QU9BLFFBQVEsR0FBUixJQUFlcEMsT0FBT29DLEtBQVAsS0FBaUIsRUFBaEMsQ0FBUDtBQUNELEtBRmlCLENBQWxCO0FBR0EsV0FBTyxNQUFNSixZQUFZSyxJQUFaLENBQWlCLEdBQWpCLENBQWI7QUFDRCxHQXZIdUI7O0FBeUh4QkMsV0FBUyxTQUFTQSxPQUFULEdBQW1CO0FBQzFCLFFBQUksS0FBSzlELE9BQVQsRUFBa0I7QUFDaEJDLG1CQUFhLEtBQUtELE9BQWxCO0FBQ0Q7O0FBRUQsU0FBS2pCLFNBQUwsR0FBaUIsSUFBakI7QUFDQSxTQUFLRCxJQUFMLENBQVVNLE9BQVYsQ0FBa0IyRSxtQkFBbEIsQ0FBc0MsWUFBdEMsRUFBb0QsS0FBSzlFLFlBQUwsQ0FBa0JDLGVBQXRFO0FBQ0EsU0FBS0osSUFBTCxDQUFVTSxPQUFWLENBQWtCMkUsbUJBQWxCLENBQXNDLE9BQXRDLEVBQStDLEtBQUs5RSxZQUFMLENBQWtCQyxlQUFqRTtBQUNEO0FBakl1QixDQUExQjs7QUFvSUE4RSxPQUFPcEYsaUJBQVAsR0FBMkJBLGlCQUEzQjs7a0JBRWVBLGlCIiwiZmlsZSI6Ii4vZGlzdC9wbHVnaW5zL2FqYXhfZmlsdGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG5cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGlkZW50aXR5IGZ1bmN0aW9uIGZvciBjYWxsaW5nIGhhcm1vbnkgaW1wb3J0cyB3aXRoIHRoZSBjb3JyZWN0IGNvbnRleHRcbiBcdF9fd2VicGFja19yZXF1aXJlX18uaSA9IGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfTtcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbiBcdFx0XHRcdGdldDogZ2V0dGVyXG4gXHRcdFx0fSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMTEpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svYm9vdHN0cmFwIGE1ZmRlNTYyYThkY2NjN2U5YjE5IiwiY29uc3QgZHJvcGxhYkFqYXhGaWx0ZXIgPSB7XG4gIGluaXQ6IGZ1bmN0aW9uKGhvb2spIHtcbiAgICB0aGlzLmRlc3Ryb3llZCA9IGZhbHNlO1xuICAgIHRoaXMuaG9vayA9IGhvb2s7XG4gICAgdGhpcy5ub3RMb2FkaW5nKCk7XG5cbiAgICB0aGlzLmV2ZW50V3JhcHBlciA9IHt9O1xuICAgIHRoaXMuZXZlbnRXcmFwcGVyLmRlYm91bmNlVHJpZ2dlciA9IHRoaXMuZGVib3VuY2VUcmlnZ2VyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5ob29rLnRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bi5kbCcsIHRoaXMuZXZlbnRXcmFwcGVyLmRlYm91bmNlVHJpZ2dlcik7XG4gICAgdGhpcy5ob29rLnRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCB0aGlzLmV2ZW50V3JhcHBlci5kZWJvdW5jZVRyaWdnZXIpO1xuXG4gICAgdGhpcy50cmlnZ2VyKHRydWUpO1xuICB9LFxuXG4gIG5vdExvYWRpbmc6IGZ1bmN0aW9uIG5vdExvYWRpbmcoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gIH0sXG5cbiAgZGVib3VuY2VUcmlnZ2VyOiBmdW5jdGlvbiBkZWJvdW5jZVRyaWdnZXIoZSkge1xuICAgIHZhciBOT05fQ0hBUkFDVEVSX0tFWVMgPSBbMTYsIDE3LCAxOCwgMjAsIDM3LCAzOCwgMzksIDQwLCA5MSwgOTNdO1xuICAgIHZhciBpbnZhbGlkS2V5UHJlc3NlZCA9IE5PTl9DSEFSQUNURVJfS0VZUy5pbmRleE9mKGUuZGV0YWlsLndoaWNoIHx8IGUuZGV0YWlsLmtleUNvZGUpID4gLTE7XG4gICAgdmFyIGZvY3VzRXZlbnQgPSBlLnR5cGUgPT09ICdmb2N1cyc7XG4gICAgaWYgKGludmFsaWRLZXlQcmVzc2VkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy50aW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcbiAgICB9XG4gICAgdGhpcy50aW1lb3V0ID0gc2V0VGltZW91dCh0aGlzLnRyaWdnZXIuYmluZCh0aGlzLCBmb2N1c0V2ZW50KSwgMjAwKTtcbiAgfSxcblxuICB0cmlnZ2VyOiBmdW5jdGlvbiB0cmlnZ2VyKGdldEVudGlyZUxpc3QpIHtcbiAgICB2YXIgY29uZmlnID0gdGhpcy5ob29rLmNvbmZpZy5kcm9wbGFiQWpheEZpbHRlcjtcbiAgICB2YXIgc2VhcmNoVmFsdWUgPSB0aGlzLnRyaWdnZXIudmFsdWU7XG4gICAgaWYgKCFjb25maWcgfHwgIWNvbmZpZy5lbmRwb2ludCB8fCAhY29uZmlnLnNlYXJjaEtleSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnNlYXJjaFZhbHVlRnVuY3Rpb24pIHtcbiAgICAgIHNlYXJjaFZhbHVlID0gY29uZmlnLnNlYXJjaFZhbHVlRnVuY3Rpb24oKTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5sb2FkaW5nVGVtcGxhdGUgJiYgdGhpcy5ob29rLmxpc3QuZGF0YSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLmhvb2subGlzdC5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdmFyIGR5bmFtaWNMaXN0ID0gdGhpcy5ob29rLmxpc3QubGlzdC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1keW5hbWljXScpO1xuICAgICAgdmFyIGxvYWRpbmdUZW1wbGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgbG9hZGluZ1RlbXBsYXRlLmlubmVySFRNTCA9IGNvbmZpZy5sb2FkaW5nVGVtcGxhdGU7XG4gICAgICBsb2FkaW5nVGVtcGxhdGUuc2V0QXR0cmlidXRlKCdkYXRhLWxvYWRpbmctdGVtcGxhdGUnLCB0cnVlKTtcbiAgICAgIHRoaXMubGlzdFRlbXBsYXRlID0gZHluYW1pY0xpc3Qub3V0ZXJIVE1MO1xuICAgICAgZHluYW1pY0xpc3Qub3V0ZXJIVE1MID0gbG9hZGluZ1RlbXBsYXRlLm91dGVySFRNTDtcbiAgICB9XG4gICAgaWYgKGdldEVudGlyZUxpc3QpIHtcbiAgICAgIHNlYXJjaFZhbHVlID0gJyc7XG4gICAgfVxuICAgIGlmIChjb25maWcuc2VhcmNoS2V5ID09PSBzZWFyY2hWYWx1ZSkge1xuICAgICAgcmV0dXJuIHRoaXMubGlzdC5zaG93KCk7XG4gICAgfVxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdmFyIHBhcmFtcyA9IGNvbmZpZy5wYXJhbXMgfHwge307XG4gICAgcGFyYW1zW2NvbmZpZy5zZWFyY2hLZXldID0gc2VhcmNoVmFsdWU7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHNlbGYuY2FjaGUgPSBzZWxmLmNhY2hlIHx8IHt9O1xuICAgIHZhciB1cmwgPSBjb25maWcuZW5kcG9pbnQgKyB0aGlzLmJ1aWxkUGFyYW1zKHBhcmFtcyk7XG4gICAgdmFyIHVybENhY2hlZERhdGEgPSBzZWxmLmNhY2hlW3VybF07XG4gICAgaWYgKHVybENhY2hlZERhdGEpIHtcbiAgICAgIHNlbGYuX2xvYWREYXRhKHVybENhY2hlZERhdGEsIGNvbmZpZywgc2VsZik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2xvYWRVcmxEYXRhKHVybClcbiAgICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkge1xuICAgICAgICAgIHNlbGYuX2xvYWREYXRhKGRhdGEsIGNvbmZpZywgc2VsZik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcblxuICBfbG9hZFVybERhdGE6IGZ1bmN0aW9uIF9sb2FkVXJsRGF0YSh1cmwpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdDtcbiAgICAgIHhoci5vcGVuKCdHRVQnLCB1cmwsIHRydWUpO1xuICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYoeGhyLnJlYWR5U3RhdGUgPT09IFhNTEh0dHBSZXF1ZXN0LkRPTkUpIHtcbiAgICAgICAgICBpZiAoeGhyLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgICB2YXIgZGF0YSA9IEpTT04ucGFyc2UoeGhyLnJlc3BvbnNlVGV4dCk7XG4gICAgICAgICAgICBzZWxmLmNhY2hlW3VybF0gPSBkYXRhO1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiByZWplY3QoW3hoci5yZXNwb25zZVRleHQsIHhoci5zdGF0dXNdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB4aHIuc2VuZCgpO1xuICAgIH0pO1xuICB9LFxuXG4gIF9sb2FkRGF0YTogZnVuY3Rpb24gX2xvYWREYXRhKGRhdGEsIGNvbmZpZywgc2VsZikge1xuICAgIGNvbnN0IGxpc3QgPSBzZWxmLmhvb2subGlzdDtcbiAgICBpZiAoY29uZmlnLmxvYWRpbmdUZW1wbGF0ZSAmJiBsaXN0LmRhdGEgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgbGlzdC5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgZGF0YUxvYWRpbmdUZW1wbGF0ZSA9IGxpc3QubGlzdC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1sb2FkaW5nLXRlbXBsYXRlXScpO1xuICAgICAgaWYgKGRhdGFMb2FkaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgZGF0YUxvYWRpbmdUZW1wbGF0ZS5vdXRlckhUTUwgPSBzZWxmLmxpc3RUZW1wbGF0ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFzZWxmLmRlc3Ryb3llZCkge1xuICAgICAgdmFyIGhvb2tMaXN0Q2hpbGRyZW4gPSBsaXN0Lmxpc3QuY2hpbGRyZW47XG4gICAgICB2YXIgb25seUR5bmFtaWNMaXN0ID0gaG9va0xpc3RDaGlsZHJlbi5sZW5ndGggPT09IDEgJiYgaG9va0xpc3RDaGlsZHJlblswXS5oYXNBdHRyaWJ1dGUoJ2RhdGEtZHluYW1pYycpO1xuICAgICAgaWYgKG9ubHlEeW5hbWljTGlzdCAmJiBkYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBsaXN0LmhpZGUoKTtcbiAgICAgIH1cbiAgICAgIGxpc3Quc2V0RGF0YS5jYWxsKGxpc3QsIGRhdGEpO1xuICAgIH1cbiAgICBzZWxmLm5vdExvYWRpbmcoKTtcbiAgICBsaXN0LmN1cnJlbnRJbmRleCA9IDA7XG4gIH0sXG5cbiAgYnVpbGRQYXJhbXM6IGZ1bmN0aW9uKHBhcmFtcykge1xuICAgIGlmICghcGFyYW1zKSByZXR1cm4gJyc7XG4gICAgdmFyIHBhcmFtc0FycmF5ID0gT2JqZWN0LmtleXMocGFyYW1zKS5tYXAoZnVuY3Rpb24ocGFyYW0pIHtcbiAgICAgIHJldHVybiBwYXJhbSArICc9JyArIChwYXJhbXNbcGFyYW1dIHx8ICcnKTtcbiAgICB9KTtcbiAgICByZXR1cm4gJz8nICsgcGFyYW1zQXJyYXkuam9pbignJicpO1xuICB9LFxuXG4gIGRlc3Ryb3k6IGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMudGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCk7XG4gICAgfVxuXG4gICAgdGhpcy5kZXN0cm95ZWQgPSB0cnVlO1xuICAgIHRoaXMuaG9vay50cmlnZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24uZGwnLCB0aGlzLmV2ZW50V3JhcHBlci5kZWJvdW5jZVRyaWdnZXIpO1xuICAgIHRoaXMuaG9vay50cmlnZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgdGhpcy5ldmVudFdyYXBwZXIuZGVib3VuY2VUcmlnZ2VyKTtcbiAgfVxufTtcblxud2luZG93LmRyb3BsYWJBamF4RmlsdGVyID0gZHJvcGxhYkFqYXhGaWx0ZXI7XG5cbmV4cG9ydCBkZWZhdWx0IGRyb3BsYWJBamF4RmlsdGVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3BsdWdpbnMvYWpheF9maWx0ZXIuanMiXSwic291cmNlUm9vdCI6IiJ9
-=======
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAgM2IzM2FmODg0NjljYzg0MmMzMzg/NjA0OCoiLCJ3ZWJwYWNrOi8vLy4vc3JjL3BsdWdpbnMvYWpheF9maWx0ZXIuanMiXSwibmFtZXMiOlsiZHJvcGxhYkFqYXhGaWx0ZXIiLCJpbml0IiwiaG9vayIsImRlc3Ryb3llZCIsIm5vdExvYWRpbmciLCJldmVudFdyYXBwZXIiLCJkZWJvdW5jZVRyaWdnZXIiLCJiaW5kIiwidHJpZ2dlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJsb2FkaW5nIiwiZSIsIk5PTl9DSEFSQUNURVJfS0VZUyIsImludmFsaWRLZXlQcmVzc2VkIiwiaW5kZXhPZiIsImRldGFpbCIsIndoaWNoIiwia2V5Q29kZSIsImZvY3VzRXZlbnQiLCJ0eXBlIiwidGltZW91dCIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJnZXRFbnRpcmVMaXN0IiwiY29uZmlnIiwic2VhcmNoVmFsdWUiLCJ2YWx1ZSIsImVuZHBvaW50Iiwic2VhcmNoS2V5Iiwic2VhcmNoVmFsdWVGdW5jdGlvbiIsImxvYWRpbmdUZW1wbGF0ZSIsImxpc3QiLCJkYXRhIiwidW5kZWZpbmVkIiwibGVuZ3RoIiwiZHluYW1pY0xpc3QiLCJxdWVyeVNlbGVjdG9yIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaW5uZXJIVE1MIiwic2V0QXR0cmlidXRlIiwibGlzdFRlbXBsYXRlIiwib3V0ZXJIVE1MIiwic2hvdyIsInBhcmFtcyIsInNlbGYiLCJjYWNoZSIsInVybCIsImJ1aWxkUGFyYW1zIiwidXJsQ2FjaGVkRGF0YSIsIl9sb2FkRGF0YSIsIl9sb2FkVXJsRGF0YSIsInRoZW4iLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInhociIsIlhNTEh0dHBSZXF1ZXN0Iiwib3BlbiIsIm9ucmVhZHlzdGF0ZWNoYW5nZSIsInJlYWR5U3RhdGUiLCJET05FIiwic3RhdHVzIiwiSlNPTiIsInBhcnNlIiwicmVzcG9uc2VUZXh0Iiwic2VuZCIsImRhdGFMb2FkaW5nVGVtcGxhdGUiLCJob29rTGlzdENoaWxkcmVuIiwiY2hpbGRyZW4iLCJvbmx5RHluYW1pY0xpc3QiLCJoYXNBdHRyaWJ1dGUiLCJoaWRlIiwic2V0RGF0YSIsImNhbGwiLCJjdXJyZW50SW5kZXgiLCJwYXJhbXNBcnJheSIsIk9iamVjdCIsImtleXMiLCJtYXAiLCJwYXJhbSIsImpvaW4iLCJkZXN0cm95IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIndpbmRvdyJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLG1EQUEyQyxjQUFjOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG1DQUEyQiwwQkFBMEIsRUFBRTtBQUN2RCx5Q0FBaUMsZUFBZTtBQUNoRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw4REFBc0QsK0RBQStEOztBQUVySDtBQUNBOztBQUVBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7O0FDaEVBLElBQU1BLG9CQUFvQjtBQUN4QkMsUUFBTSxjQUFTQyxJQUFULEVBQWU7QUFDbkIsU0FBS0MsU0FBTCxHQUFpQixLQUFqQjtBQUNBLFNBQUtELElBQUwsR0FBWUEsSUFBWjtBQUNBLFNBQUtFLFVBQUw7O0FBRUEsU0FBS0MsWUFBTCxHQUFvQixFQUFwQjtBQUNBLFNBQUtBLFlBQUwsQ0FBa0JDLGVBQWxCLEdBQW9DLEtBQUtBLGVBQUwsQ0FBcUJDLElBQXJCLENBQTBCLElBQTFCLENBQXBDO0FBQ0EsU0FBS0wsSUFBTCxDQUFVTSxPQUFWLENBQWtCQyxnQkFBbEIsQ0FBbUMsWUFBbkMsRUFBaUQsS0FBS0osWUFBTCxDQUFrQkMsZUFBbkU7QUFD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T0EsUUFBUSxHQUFSLElBQWVwQyxPQUFPb0MsS0FBUCxLQUFpQixFQUFoQyxDQUFQO0FBQ0QsS0FGaUIsQ0FBbEI7QUFHQSxXQUFPLE1BQU1KLFlBQVlLLElBQVosQ0FBaUIsR0FBakIsQ0FBYjtBQUNELEdBdkh1Qjs7QUF5SHhCQyxXQUFTLFNBQVNBLE9BQVQsR0FBbUI7QUFDMUIsUUFBSSxLQUFLOUQsT0FBVCxFQUFrQjtBQUNoQkMsbUJBQWEsS0FBS0QsT0FBbEI7QUFDRDs7QUFFRCxTQUFLakIsU0FBTCxHQUFpQixJQUFqQjtBQUNBLFNBQUtELElBQUwsQ0FBVU0sT0FBVixDQUFrQjJFLG1CQUFsQixDQUFzQyxZQUF0QyxFQUFvRCxLQUFLOUUsWUFBTCxDQUFrQkMsZUFBdEU7QUFDQSxTQUFLSixJQUFMLENBQVVNLE9BQVYsQ0FBa0IyRSxtQkFBbEIsQ0FBc0MsT0FBdEMsRUFBK0MsS0FBSzlFLFlBQUwsQ0FBa0JDLGVBQWpFO0FBQ0Q7QUFqSXVCLENBQTFCOztBQW9JQThFLE9BQU9wRixpQkFBUCxHQUEyQkEsaUJBQTNCOztrQkFFZUEsaUIiLCJmaWxlIjoiLi9kaXN0L3BsdWdpbnMvYWpheF9maWx0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcblxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gaWRlbnRpdHkgZnVuY3Rpb24gZm9yIGNhbGxpbmcgaGFybW9ueSBpbXBvcnRzIHdpdGggdGhlIGNvcnJlY3QgY29udGV4dFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5pID0gZnVuY3Rpb24odmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9O1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbiBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbiBcdFx0XHR9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAxMSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gd2VicGFjay9ib290c3RyYXAgM2IzM2FmODg0NjljYzg0MmMzMzgiLCJjb25zdCBkcm9wbGFiQWpheEZpbHRlciA9IHtcbiAgaW5pdDogZnVuY3Rpb24oaG9vaykge1xuICAgIHRoaXMuZGVzdHJveWVkID0gZmFsc2U7XG4gICAgdGhpcy5ob29rID0gaG9vaztcbiAgICB0aGlzLm5vdExvYWRpbmcoKTtcblxuICAgIHRoaXMuZXZlbnRXcmFwcGVyID0ge307XG4gICAgdGhpcy5ldmVudFdyYXBwZXIuZGVib3VuY2VUcmlnZ2VyID0gdGhpcy5kZWJvdW5jZVRyaWdnZXIuYmluZCh0aGlzKTtcbiAgICB0aGlzLmhvb2sudHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duLmRsJywgdGhpcy5ldmVudFdyYXBwZXIuZGVib3VuY2VUcmlnZ2VyKTtcbiAgICB0aGlzLmhvb2sudHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIHRoaXMuZXZlbnRXcmFwcGVyLmRlYm91bmNlVHJpZ2dlcik7XG5cbiAgICB0aGlzLnRyaWdnZXIodHJ1ZSk7XG4gIH0sXG5cbiAgbm90TG9hZGluZzogZnVuY3Rpb24gbm90TG9hZGluZygpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgfSxcblxuICBkZWJvdW5jZVRyaWdnZXI6IGZ1bmN0aW9uIGRlYm91bmNlVHJpZ2dlcihlKSB7XG4gICAgdmFyIE5PTl9DSEFSQUNURVJfS0VZUyA9IFsxNiwgMTcsIDE4LCAyMCwgMzcsIDM4LCAzOSwgNDAsIDkxLCA5M107XG4gICAgdmFyIGludmFsaWRLZXlQcmVzc2VkID0gTk9OX0NIQVJBQ1RFUl9LRVlTLmluZGV4T2YoZS5kZXRhaWwud2hpY2ggfHwgZS5kZXRhaWwua2V5Q29kZSkgPiAtMTtcbiAgICB2YXIgZm9jdXNFdmVudCA9IGUudHlwZSA9PT0gJ2ZvY3VzJztcbiAgICBpZiAoaW52YWxpZEtleVByZXNzZWQgfHwgdGhpcy5sb2FkaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xuICAgIH1cbiAgICB0aGlzLnRpbWVvdXQgPSBzZXRUaW1lb3V0KHRoaXMudHJpZ2dlci5iaW5kKHRoaXMsIGZvY3VzRXZlbnQpLCAyMDApO1xuICB9LFxuXG4gIHRyaWdnZXI6IGZ1bmN0aW9uIHRyaWdnZXIoZ2V0RW50aXJlTGlzdCkge1xuICAgIHZhciBjb25maWcgPSB0aGlzLmhvb2suY29uZmlnLmRyb3BsYWJBamF4RmlsdGVyO1xuICAgIHZhciBzZWFyY2hWYWx1ZSA9IHRoaXMudHJpZ2dlci52YWx1ZTtcbiAgICBpZiAoIWNvbmZpZyB8fCAhY29uZmlnLmVuZHBvaW50IHx8ICFjb25maWcuc2VhcmNoS2V5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjb25maWcuc2VhcmNoVmFsdWVGdW5jdGlvbikge1xuICAgICAgc2VhcmNoVmFsdWUgPSBjb25maWcuc2VhcmNoVmFsdWVGdW5jdGlvbigpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmxvYWRpbmdUZW1wbGF0ZSAmJiB0aGlzLmhvb2subGlzdC5kYXRhID09PSB1bmRlZmluZWQgfHxcbiAgICAgIHRoaXMuaG9vay5saXN0LmRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICB2YXIgZHluYW1pY0xpc3QgPSB0aGlzLmhvb2subGlzdC5saXN0LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWR5bmFtaWNdJyk7XG4gICAgICB2YXIgbG9hZGluZ1RlbXBsYXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICBsb2FkaW5nVGVtcGxhdGUuaW5uZXJIVE1MID0gY29uZmlnLmxvYWRpbmdUZW1wbGF0ZTtcbiAgICAgIGxvYWRpbmdUZW1wbGF0ZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtbG9hZGluZy10ZW1wbGF0ZScsIHRydWUpO1xuICAgICAgdGhpcy5saXN0VGVtcGxhdGUgPSBkeW5hbWljTGlzdC5vdXRlckhUTUw7XG4gICAgICBkeW5hbWljTGlzdC5vdXRlckhUTUwgPSBsb2FkaW5nVGVtcGxhdGUub3V0ZXJIVE1MO1xuICAgIH1cbiAgICBpZiAoZ2V0RW50aXJlTGlzdCkge1xuICAgICAgc2VhcmNoVmFsdWUgPSAnJztcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5zZWFyY2hLZXkgPT09IHNlYXJjaFZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5saXN0LnNob3coKTtcbiAgICB9XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB2YXIgcGFyYW1zID0gY29uZmlnLnBhcmFtcyB8fCB7fTtcbiAgICBwYXJhbXNbY29uZmlnLnNlYXJjaEtleV0gPSBzZWFyY2hWYWx1ZTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgc2VsZi5jYWNoZSA9IHNlbGYuY2FjaGUgfHwge307XG4gICAgdmFyIHVybCA9IGNvbmZpZy5lbmRwb2ludCArIHRoaXMuYnVpbGRQYXJhbXMocGFyYW1zKTtcbiAgICB2YXIgdXJsQ2FjaGVkRGF0YSA9IHNlbGYuY2FjaGVbdXJsXTtcbiAgICBpZiAodXJsQ2FjaGVkRGF0YSkge1xuICAgICAgc2VsZi5fbG9hZERhdGEodXJsQ2FjaGVkRGF0YSwgY29uZmlnLCBzZWxmKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbG9hZFVybERhdGEodXJsKVxuICAgICAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgICAgc2VsZi5fbG9hZERhdGEoZGF0YSwgY29uZmlnLCBzZWxmKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9LFxuXG4gIF9sb2FkVXJsRGF0YTogZnVuY3Rpb24gX2xvYWRVcmxEYXRhKHVybCkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0O1xuICAgICAgeGhyLm9wZW4oJ0dFVCcsIHVybCwgdHJ1ZSk7XG4gICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZih4aHIucmVhZHlTdGF0ZSA9PT0gWE1MSHR0cFJlcXVlc3QuRE9ORSkge1xuICAgICAgICAgIGlmICh4aHIuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZSh4aHIucmVzcG9uc2VUZXh0KTtcbiAgICAgICAgICAgIHNlbGYuY2FjaGVbdXJsXSA9IGRhdGE7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShkYXRhKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHJlamVjdChbeGhyLnJlc3BvbnNlVGV4dCwgeGhyLnN0YXR1c10pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHhoci5zZW5kKCk7XG4gICAgfSk7XG4gIH0sXG5cbiAgX2xvYWREYXRhOiBmdW5jdGlvbiBfbG9hZERhdGEoZGF0YSwgY29uZmlnLCBzZWxmKSB7XG4gICAgY29uc3QgbGlzdCA9IHNlbGYuaG9vay5saXN0O1xuICAgIGlmIChjb25maWcubG9hZGluZ1RlbXBsYXRlICYmIGxpc3QuZGF0YSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICBsaXN0LmRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zdCBkYXRhTG9hZGluZ1RlbXBsYXRlID0gbGlzdC5saXN0LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWxvYWRpbmctdGVtcGxhdGVdJyk7XG4gICAgICBpZiAoZGF0YUxvYWRpbmdUZW1wbGF0ZSkge1xuICAgICAgICBkYXRhTG9hZGluZ1RlbXBsYXRlLm91dGVySFRNTCA9IHNlbGYubGlzdFRlbXBsYXRlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXNlbGYuZGVzdHJveWVkKSB7XG4gICAgICB2YXIgaG9va0xpc3RDaGlsZHJlbiA9IGxpc3QubGlzdC5jaGlsZHJlbjtcbiAgICAgIHZhciBvbmx5RHluYW1pY0xpc3QgPSBob29rTGlzdENoaWxkcmVuLmxlbmd0aCA9PT0gMSAmJiBob29rTGlzdENoaWxkcmVuWzBdLmhhc0F0dHJpYnV0ZSgnZGF0YS1keW5hbWljJyk7XG4gICAgICBpZiAob25seUR5bmFtaWNMaXN0ICYmIGRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGxpc3QuaGlkZSgpO1xuICAgICAgfVxuICAgICAgbGlzdC5zZXREYXRhLmNhbGwobGlzdCwgZGF0YSk7XG4gICAgfVxuICAgIHNlbGYubm90TG9hZGluZygpO1xuICAgIGxpc3QuY3VycmVudEluZGV4ID0gMDtcbiAgfSxcblxuICBidWlsZFBhcmFtczogZnVuY3Rpb24ocGFyYW1zKSB7XG4gICAgaWYgKCFwYXJhbXMpIHJldHVybiAnJztcbiAgICB2YXIgcGFyYW1zQXJyYXkgPSBPYmplY3Qua2V5cyhwYXJhbXMpLm1hcChmdW5jdGlvbihwYXJhbSkge1xuICAgICAgcmV0dXJuIHBhcmFtICsgJz0nICsgKHBhcmFtc1twYXJhbV0gfHwgJycpO1xuICAgIH0pO1xuICAgIHJldHVybiAnPycgKyBwYXJhbXNBcnJheS5qb2luKCcmJyk7XG4gIH0sXG5cbiAgZGVzdHJveTogZnVuY3Rpb24gZGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy50aW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcbiAgICB9XG5cbiAgICB0aGlzLmRlc3Ryb3llZCA9IHRydWU7XG4gICAgdGhpcy5ob29rLnRyaWdnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bi5kbCcsIHRoaXMuZXZlbnRXcmFwcGVyLmRlYm91bmNlVHJpZ2dlcik7XG4gICAgdGhpcy5ob29rLnRyaWdnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXMnLCB0aGlzLmV2ZW50V3JhcHBlci5kZWJvdW5jZVRyaWdnZXIpO1xuICB9XG59O1xuXG53aW5kb3cuZHJvcGxhYkFqYXhGaWx0ZXIgPSBkcm9wbGFiQWpheEZpbHRlcjtcblxuZXhwb3J0IGRlZmF1bHQgZHJvcGxhYkFqYXhGaWx0ZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcGx1Z2lucy9hamF4X2ZpbHRlci5qcyJdLCJzb3VyY2VSb290IjoiIn0=
->>>>>>> Updated droplab version to webpack version
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAgZjM3NjcyYjdmNTI4YjQ3MmE0NGM/ZWM1ZioqIiwid2VicGFjazovLy8uL3NyYy9wbHVnaW5zL2FqYXhfZmlsdGVyLmpzIl0sIm5hbWVzIjpbImRyb3BsYWJBamF4RmlsdGVyIiwiaW5pdCIsImhvb2siLCJkZXN0cm95ZWQiLCJub3RMb2FkaW5nIiwiZXZlbnRXcmFwcGVyIiwiZGVib3VuY2VUcmlnZ2VyIiwiYmluZCIsInRyaWdnZXIiLCJhZGRFdmVudExpc3RlbmVyIiwibG9hZGluZyIsImUiLCJOT05fQ0hBUkFDVEVSX0tFWVMiLCJpbnZhbGlkS2V5UHJlc3NlZCIsImluZGV4T2YiLCJkZXRhaWwiLCJ3aGljaCIsImtleUNvZGUiLCJmb2N1c0V2ZW50IiwidHlwZSIsInRpbWVvdXQiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0IiwiZ2V0RW50aXJlTGlzdCIsImNvbmZpZyIsInNlYXJjaFZhbHVlIiwidmFsdWUiLCJlbmRwb2ludCIsInNlYXJjaEtleSIsInNlYXJjaFZhbHVlRnVuY3Rpb24iLCJsb2FkaW5nVGVtcGxhdGUiLCJsaXN0IiwiZGF0YSIsInVuZGVmaW5lZCIsImxlbmd0aCIsImR5bmFtaWNMaXN0IiwicXVlcnlTZWxlY3RvciIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImlubmVySFRNTCIsInNldEF0dHJpYnV0ZSIsImxpc3RUZW1wbGF0ZSIsIm91dGVySFRNTCIsInNob3ciLCJwYXJhbXMiLCJzZWxmIiwiY2FjaGUiLCJ1cmwiLCJidWlsZFBhcmFtcyIsInVybENhY2hlZERhdGEiLCJfbG9hZERhdGEiLCJfbG9hZFVybERhdGEiLCJ0aGVuIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJ4aHIiLCJYTUxIdHRwUmVxdWVzdCIsIm9wZW4iLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCJyZWFkeVN0YXRlIiwiRE9ORSIsInN0YXR1cyIsIkpTT04iLCJwYXJzZSIsInJlc3BvbnNlVGV4dCIsInNlbmQiLCJkYXRhTG9hZGluZ1RlbXBsYXRlIiwiaG9va0xpc3RDaGlsZHJlbiIsImNoaWxkcmVuIiwib25seUR5bmFtaWNMaXN0IiwiaGFzQXR0cmlidXRlIiwiaGlkZSIsInNldERhdGEiLCJjYWxsIiwiY3VycmVudEluZGV4IiwicGFyYW1zQXJyYXkiLCJPYmplY3QiLCJrZXlzIiwibWFwIiwicGFyYW0iLCJqb2luIiwiZGVzdHJveSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJ3aW5kb3ciXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxtREFBMkMsY0FBYzs7QUFFekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBMkIsMEJBQTBCLEVBQUU7QUFDdkQseUNBQWlDLGVBQWU7QUFDaEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOERBQXNELCtEQUErRDs7QUFFckg7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7Ozs7Ozs7OztBQ2hFQSxJQUFNQSxvQkFBb0I7QUFDeEJDLFFBQU0sY0FBU0MsSUFBVCxFQUFlO0FBQ25CLFNBQUtDLFNBQUwsR0FBaUIsS0FBakI7QUFDQSxTQUFLRCxJQUFMLEdBQVlBLElBQVo7QUFDQSxTQUFLRSxVQUFMOztBQUVBLFNBQUtDLFlBQUwsR0FBb0IsRUFBcEI7QUFDQSxTQUFLQSxZQUFMLENBQWtCQyxlQUFsQixHQUFvQyxLQUFLQSxlQUFMLENBQXFCQyxJQUFyQixDQUEwQixJQUExQixDQUFwQztBQUNBLFNBQUtMLElBQUwsQ0FBVU0sT0FBVixDQUFrQkMsZ0JBQWxCLENBQW1DLFlBQW5DLEVBQWlELEtBQUtKLFlBQUwsQ0FBa0JDLGVBQW5FO0FB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QU9BLFFBQVEsR0FBUixJQUFlcEMsT0FBT29DLEtBQVAsS0FBaUIsRUFBaEMsQ0FBUDtBQUNELEtBRmlCLENBQWxCO0FBR0EsV0FBTyxNQUFNSixZQUFZSyxJQUFaLENBQWlCLEdBQWpCLENBQWI7QUFDRCxHQXZIdUI7O0FBeUh4QkMsV0FBUyxTQUFTQSxPQUFULEdBQW1CO0FBQzFCLFFBQUksS0FBSzlELE9BQVQsRUFBa0I7QUFDaEJDLG1CQUFhLEtBQUtELE9BQWxCO0FBQ0Q7O0FBRUQsU0FBS2pCLFNBQUwsR0FBaUIsSUFBakI7QUFDQSxTQUFLRCxJQUFMLENBQVVNLE9BQVYsQ0FBa0IyRSxtQkFBbEIsQ0FBc0MsWUFBdEMsRUFBb0QsS0FBSzlFLFlBQUwsQ0FBa0JDLGVBQXRFO0FBQ0EsU0FBS0osSUFBTCxDQUFVTSxPQUFWLENBQWtCMkUsbUJBQWxCLENBQXNDLE9BQXRDLEVBQStDLEtBQUs5RSxZQUFMLENBQWtCQyxlQUFqRTtBQUNEO0FBakl1QixDQUExQjs7QUFvSUE4RSxPQUFPcEYsaUJBQVAsR0FBMkJBLGlCQUEzQjs7a0JBRWVBLGlCIiwiZmlsZSI6Ii4vZGlzdC9wbHVnaW5zL2FqYXhfZmlsdGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG5cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGlkZW50aXR5IGZ1bmN0aW9uIGZvciBjYWxsaW5nIGhhcm1vbnkgaW1wb3J0cyB3aXRoIHRoZSBjb3JyZWN0IGNvbnRleHRcbiBcdF9fd2VicGFja19yZXF1aXJlX18uaSA9IGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfTtcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbiBcdFx0XHRcdGdldDogZ2V0dGVyXG4gXHRcdFx0fSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMTEpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svYm9vdHN0cmFwIGYzNzY3MmI3ZjUyOGI0NzJhNDRjIiwiY29uc3QgZHJvcGxhYkFqYXhGaWx0ZXIgPSB7XG4gIGluaXQ6IGZ1bmN0aW9uKGhvb2spIHtcbiAgICB0aGlzLmRlc3Ryb3llZCA9IGZhbHNlO1xuICAgIHRoaXMuaG9vayA9IGhvb2s7XG4gICAgdGhpcy5ub3RMb2FkaW5nKCk7XG5cbiAgICB0aGlzLmV2ZW50V3JhcHBlciA9IHt9O1xuICAgIHRoaXMuZXZlbnRXcmFwcGVyLmRlYm91bmNlVHJpZ2dlciA9IHRoaXMuZGVib3VuY2VUcmlnZ2VyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5ob29rLnRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bi5kbCcsIHRoaXMuZXZlbnRXcmFwcGVyLmRlYm91bmNlVHJpZ2dlcik7XG4gICAgdGhpcy5ob29rLnRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCB0aGlzLmV2ZW50V3JhcHBlci5kZWJvdW5jZVRyaWdnZXIpO1xuXG4gICAgdGhpcy50cmlnZ2VyKHRydWUpO1xuICB9LFxuXG4gIG5vdExvYWRpbmc6IGZ1bmN0aW9uIG5vdExvYWRpbmcoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gIH0sXG5cbiAgZGVib3VuY2VUcmlnZ2VyOiBmdW5jdGlvbiBkZWJvdW5jZVRyaWdnZXIoZSkge1xuICAgIHZhciBOT05fQ0hBUkFDVEVSX0tFWVMgPSBbMTYsIDE3LCAxOCwgMjAsIDM3LCAzOCwgMzksIDQwLCA5MSwgOTNdO1xuICAgIHZhciBpbnZhbGlkS2V5UHJlc3NlZCA9IE5PTl9DSEFSQUNURVJfS0VZUy5pbmRleE9mKGUuZGV0YWlsLndoaWNoIHx8IGUuZGV0YWlsLmtleUNvZGUpID4gLTE7XG4gICAgdmFyIGZvY3VzRXZlbnQgPSBlLnR5cGUgPT09ICdmb2N1cyc7XG4gICAgaWYgKGludmFsaWRLZXlQcmVzc2VkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy50aW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcbiAgICB9XG4gICAgdGhpcy50aW1lb3V0ID0gc2V0VGltZW91dCh0aGlzLnRyaWdnZXIuYmluZCh0aGlzLCBmb2N1c0V2ZW50KSwgMjAwKTtcbiAgfSxcblxuICB0cmlnZ2VyOiBmdW5jdGlvbiB0cmlnZ2VyKGdldEVudGlyZUxpc3QpIHtcbiAgICB2YXIgY29uZmlnID0gdGhpcy5ob29rLmNvbmZpZy5kcm9wbGFiQWpheEZpbHRlcjtcbiAgICB2YXIgc2VhcmNoVmFsdWUgPSB0aGlzLnRyaWdnZXIudmFsdWU7XG4gICAgaWYgKCFjb25maWcgfHwgIWNvbmZpZy5lbmRwb2ludCB8fCAhY29uZmlnLnNlYXJjaEtleSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnNlYXJjaFZhbHVlRnVuY3Rpb24pIHtcbiAgICAgIHNlYXJjaFZhbHVlID0gY29uZmlnLnNlYXJjaFZhbHVlRnVuY3Rpb24oKTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5sb2FkaW5nVGVtcGxhdGUgJiYgdGhpcy5ob29rLmxpc3QuZGF0YSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLmhvb2subGlzdC5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdmFyIGR5bmFtaWNMaXN0ID0gdGhpcy5ob29rLmxpc3QubGlzdC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1keW5hbWljXScpO1xuICAgICAgdmFyIGxvYWRpbmdUZW1wbGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgbG9hZGluZ1RlbXBsYXRlLmlubmVySFRNTCA9IGNvbmZpZy5sb2FkaW5nVGVtcGxhdGU7XG4gICAgICBsb2FkaW5nVGVtcGxhdGUuc2V0QXR0cmlidXRlKCdkYXRhLWxvYWRpbmctdGVtcGxhdGUnLCB0cnVlKTtcbiAgICAgIHRoaXMubGlzdFRlbXBsYXRlID0gZHluYW1pY0xpc3Qub3V0ZXJIVE1MO1xuICAgICAgZHluYW1pY0xpc3Qub3V0ZXJIVE1MID0gbG9hZGluZ1RlbXBsYXRlLm91dGVySFRNTDtcbiAgICB9XG4gICAgaWYgKGdldEVudGlyZUxpc3QpIHtcbiAgICAgIHNlYXJjaFZhbHVlID0gJyc7XG4gICAgfVxuICAgIGlmIChjb25maWcuc2VhcmNoS2V5ID09PSBzZWFyY2hWYWx1ZSkge1xuICAgICAgcmV0dXJuIHRoaXMubGlzdC5zaG93KCk7XG4gICAgfVxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdmFyIHBhcmFtcyA9IGNvbmZpZy5wYXJhbXMgfHwge307XG4gICAgcGFyYW1zW2NvbmZpZy5zZWFyY2hLZXldID0gc2VhcmNoVmFsdWU7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHNlbGYuY2FjaGUgPSBzZWxmLmNhY2hlIHx8IHt9O1xuICAgIHZhciB1cmwgPSBjb25maWcuZW5kcG9pbnQgKyB0aGlzLmJ1aWxkUGFyYW1zKHBhcmFtcyk7XG4gICAgdmFyIHVybENhY2hlZERhdGEgPSBzZWxmLmNhY2hlW3VybF07XG4gICAgaWYgKHVybENhY2hlZERhdGEpIHtcbiAgICAgIHNlbGYuX2xvYWREYXRhKHVybENhY2hlZERhdGEsIGNvbmZpZywgc2VsZik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2xvYWRVcmxEYXRhKHVybClcbiAgICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkge1xuICAgICAgICAgIHNlbGYuX2xvYWREYXRhKGRhdGEsIGNvbmZpZywgc2VsZik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSxcblxuICBfbG9hZFVybERhdGE6IGZ1bmN0aW9uIF9sb2FkVXJsRGF0YSh1cmwpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdDtcbiAgICAgIHhoci5vcGVuKCdHRVQnLCB1cmwsIHRydWUpO1xuICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYoeGhyLnJlYWR5U3RhdGUgPT09IFhNTEh0dHBSZXF1ZXN0LkRPTkUpIHtcbiAgICAgICAgICBpZiAoeGhyLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgICB2YXIgZGF0YSA9IEpTT04ucGFyc2UoeGhyLnJlc3BvbnNlVGV4dCk7XG4gICAgICAgICAgICBzZWxmLmNhY2hlW3VybF0gPSBkYXRhO1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiByZWplY3QoW3hoci5yZXNwb25zZVRleHQsIHhoci5zdGF0dXNdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB4aHIuc2VuZCgpO1xuICAgIH0pO1xuICB9LFxuXG4gIF9sb2FkRGF0YTogZnVuY3Rpb24gX2xvYWREYXRhKGRhdGEsIGNvbmZpZywgc2VsZikge1xuICAgIGNvbnN0IGxpc3QgPSBzZWxmLmhvb2subGlzdDtcbiAgICBpZiAoY29uZmlnLmxvYWRpbmdUZW1wbGF0ZSAmJiBsaXN0LmRhdGEgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgbGlzdC5kYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgZGF0YUxvYWRpbmdUZW1wbGF0ZSA9IGxpc3QubGlzdC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1sb2FkaW5nLXRlbXBsYXRlXScpO1xuICAgICAgaWYgKGRhdGFMb2FkaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgZGF0YUxvYWRpbmdUZW1wbGF0ZS5vdXRlckhUTUwgPSBzZWxmLmxpc3RUZW1wbGF0ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFzZWxmLmRlc3Ryb3llZCkge1xuICAgICAgdmFyIGhvb2tMaXN0Q2hpbGRyZW4gPSBsaXN0Lmxpc3QuY2hpbGRyZW47XG4gICAgICB2YXIgb25seUR5bmFtaWNMaXN0ID0gaG9va0xpc3RDaGlsZHJlbi5sZW5ndGggPT09IDEgJiYgaG9va0xpc3RDaGlsZHJlblswXS5oYXNBdHRyaWJ1dGUoJ2RhdGEtZHluYW1pYycpO1xuICAgICAgaWYgKG9ubHlEeW5hbWljTGlzdCAmJiBkYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBsaXN0LmhpZGUoKTtcbiAgICAgIH1cbiAgICAgIGxpc3Quc2V0RGF0YS5jYWxsKGxpc3QsIGRhdGEpO1xuICAgIH1cbiAgICBzZWxmLm5vdExvYWRpbmcoKTtcbiAgICBsaXN0LmN1cnJlbnRJbmRleCA9IDA7XG4gIH0sXG5cbiAgYnVpbGRQYXJhbXM6IGZ1bmN0aW9uKHBhcmFtcykge1xuICAgIGlmICghcGFyYW1zKSByZXR1cm4gJyc7XG4gICAgdmFyIHBhcmFtc0FycmF5ID0gT2JqZWN0LmtleXMocGFyYW1zKS5tYXAoZnVuY3Rpb24ocGFyYW0pIHtcbiAgICAgIHJldHVybiBwYXJhbSArICc9JyArIChwYXJhbXNbcGFyYW1dIHx8ICcnKTtcbiAgICB9KTtcbiAgICByZXR1cm4gJz8nICsgcGFyYW1zQXJyYXkuam9pbignJicpO1xuICB9LFxuXG4gIGRlc3Ryb3k6IGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMudGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCk7XG4gICAgfVxuXG4gICAgdGhpcy5kZXN0cm95ZWQgPSB0cnVlO1xuICAgIHRoaXMuaG9vay50cmlnZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24uZGwnLCB0aGlzLmV2ZW50V3JhcHBlci5kZWJvdW5jZVRyaWdnZXIpO1xuICAgIHRoaXMuaG9vay50cmlnZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgdGhpcy5ldmVudFdyYXBwZXIuZGVib3VuY2VUcmlnZ2VyKTtcbiAgfVxufTtcblxud2luZG93LmRyb3BsYWJBamF4RmlsdGVyID0gZHJvcGxhYkFqYXhGaWx0ZXI7XG5cbmV4cG9ydCBkZWZhdWx0IGRyb3BsYWJBamF4RmlsdGVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3BsdWdpbnMvYWpheF9maWx0ZXIuanMiXSwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file