BetterDiscordApp-rauenzi/js/main.js

960 lines
958 KiB
JavaScript

var Core =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = "./src/index.js");
/******/ })
/************************************************************************/
/******/ ({
/***/ "./src/builtins/24hour.js":
/*!********************************!*\
!*** ./src/builtins/24hour.js ***!
\********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class TwentyFourHour extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"24Hour\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"twentyFourHour\";\n }\n\n enabled() {\n this.inject24Hour();\n }\n\n disabled() {\n if (!this.cancel24Hour) return;\n this.cancel24Hour();\n delete this.cancel24Hour;\n }\n\n inject24Hour() {\n if (this.cancel24Hour) return;\n const twelveHour = new RegExp(`([0-9]{1,2}):([0-9]{1,2})\\\\s(AM|PM)`);\n\n const convert = data => {\n const matched = data.returnValue.match(twelveHour);\n if (!matched || matched.length !== 4) return;\n if (matched[3] === \"AM\") return data.returnValue = data.returnValue.replace(matched[0], `${matched[1] === \"12\" ? \"00\" : matched[1].padStart(2, \"0\")}:${matched[2]}`);\n return data.returnValue = data.returnValue.replace(matched[0], `${matched[1] === \"12\" ? \"12\" : parseInt(matched[1]) + 12}:${matched[2]}`);\n };\n\n const cancelCozy = modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].monkeyPatch(modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].TimeFormatter, \"calendarFormat\", {\n after: convert\n }); // Called in Cozy mode\n\n const cancelCompact = modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].monkeyPatch(modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].TimeFormatter, \"dateFormat\", {\n after: convert\n }); // Called in Compact mode\n\n this.cancel24Hour = () => {\n cancelCozy();\n cancelCompact();\n }; // Cancel both\n\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zLzI0aG91ci5qcz9kZTc4Il0sIm5hbWVzIjpbIlR3ZW50eUZvdXJIb3VyIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwiZW5hYmxlZCIsImluamVjdDI0SG91ciIsImRpc2FibGVkIiwiY2FuY2VsMjRIb3VyIiwidHdlbHZlSG91ciIsIlJlZ0V4cCIsImNvbnZlcnQiLCJkYXRhIiwibWF0Y2hlZCIsInJldHVyblZhbHVlIiwibWF0Y2giLCJsZW5ndGgiLCJyZXBsYWNlIiwicGFkU3RhcnQiLCJwYXJzZUludCIsImNhbmNlbENvenkiLCJVdGlsaXRpZXMiLCJtb25rZXlQYXRjaCIsIkRpc2NvcmRNb2R1bGVzIiwiVGltZUZvcm1hdHRlciIsImFmdGVyIiwiY2FuY2VsQ29tcGFjdCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVlLG1FQUFJLE1BQU1BLGNBQU4sU0FBNkJDLHdEQUE3QixDQUFxQztBQUNwRCxNQUFJQyxJQUFKLEdBQVc7QUFBQyxXQUFPLFFBQVA7QUFBaUI7O0FBQzdCLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU8sU0FBUDtBQUFrQjs7QUFDbEMsTUFBSUMsRUFBSixHQUFTO0FBQUMsV0FBTyxnQkFBUDtBQUF5Qjs7QUFFbkNDLFNBQU8sR0FBRztBQUNOLFNBQUtDLFlBQUw7QUFDSDs7QUFFREMsVUFBUSxHQUFHO0FBQ1AsUUFBSSxDQUFDLEtBQUtDLFlBQVYsRUFBd0I7QUFDeEIsU0FBS0EsWUFBTDtBQUNBLFdBQU8sS0FBS0EsWUFBWjtBQUNIOztBQUVERixjQUFZLEdBQUc7QUFDWCxRQUFJLEtBQUtFLFlBQVQsRUFBdUI7QUFFdkIsVUFBTUMsVUFBVSxHQUFHLElBQUlDLE1BQUosQ0FBWSxxQ0FBWixDQUFuQjs7QUFDQSxVQUFNQyxPQUFPLEdBQUlDLElBQUQsSUFBVTtBQUN0QixZQUFNQyxPQUFPLEdBQUdELElBQUksQ0FBQ0UsV0FBTCxDQUFpQkMsS0FBakIsQ0FBdUJOLFVBQXZCLENBQWhCO0FBQ0EsVUFBSSxDQUFDSSxPQUFELElBQVlBLE9BQU8sQ0FBQ0csTUFBUixLQUFtQixDQUFuQyxFQUFzQztBQUN0QyxVQUFJSCxPQUFPLENBQUMsQ0FBRCxDQUFQLEtBQWUsSUFBbkIsRUFBeUIsT0FBT0QsSUFBSSxDQUFDRSxXQUFMLEdBQW1CRixJQUFJLENBQUNFLFdBQUwsQ0FBaUJHLE9BQWpCLENBQXlCSixPQUFPLENBQUMsQ0FBRCxDQUFoQyxFQUFzQyxHQUFFQSxPQUFPLENBQUMsQ0FBRCxDQUFQLEtBQWUsSUFBZixHQUFzQixJQUF0QixHQUE2QkEsT0FBTyxDQUFDLENBQUQsQ0FBUCxDQUFXSyxRQUFYLENBQW9CLENBQXBCLEVBQXVCLEdBQXZCLENBQTRCLElBQUdMLE9BQU8sQ0FBQyxDQUFELENBQUksRUFBL0csQ0FBMUI7QUFDekIsYUFBT0QsSUFBSSxDQUFDRSxXQUFMLEdBQW1CRixJQUFJLENBQUNFLFdBQUwsQ0FBaUJHLE9BQWpCLENBQXlCSixPQUFPLENBQUMsQ0FBRCxDQUFoQyxFQUFzQyxHQUFFQSxPQUFPLENBQUMsQ0FBRCxDQUFQLEtBQWUsSUFBZixHQUFzQixJQUF0QixHQUE2Qk0sUUFBUSxDQUFDTixPQUFPLENBQUMsQ0FBRCxDQUFSLENBQVIsR0FBdUIsRUFBRyxJQUFHQSxPQUFPLENBQUMsQ0FBRCxDQUFJLEVBQTdHLENBQTFCO0FBQ0gsS0FMRDs7QUFPQSxVQUFNTyxVQUFVLEdBQUdDLGlEQUFTLENBQUNDLFdBQVYsQ0FBc0JDLHNEQUFjLENBQUNDLGFBQXJDLEVBQW9ELGdCQUFwRCxFQUFzRTtBQUFDQyxXQUFLLEVBQUVkO0FBQVIsS0FBdEUsQ0FBbkIsQ0FYVyxDQVdpRzs7QUFDNUcsVUFBTWUsYUFBYSxHQUFHTCxpREFBUyxDQUFDQyxXQUFWLENBQXNCQyxzREFBYyxDQUFDQyxhQUFyQyxFQUFvRCxZQUFwRCxFQUFrRTtBQUFDQyxXQUFLLEVBQUVkO0FBQVIsS0FBbEUsQ0FBdEIsQ0FaVyxDQVlnRzs7QUFDM0csU0FBS0gsWUFBTCxHQUFvQixNQUFNO0FBQUNZLGdCQUFVO0FBQUlNLG1CQUFhO0FBQUksS0FBMUQsQ0FiVyxDQWFpRDs7QUFDL0Q7O0FBN0JtRCxDQUF6QyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zLzI0aG91ci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuaW1wb3J0IHtVdGlsaXRpZXMsIERpc2NvcmRNb2R1bGVzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFR3ZW50eUZvdXJIb3VyIGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCIyNEhvdXJcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiZ2VuZXJhbFwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJ0d2VudHlGb3VySG91clwiO31cclxuXHJcbiAgICBlbmFibGVkKCkge1xyXG4gICAgICAgIHRoaXMuaW5qZWN0MjRIb3VyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNhbmNlbDI0SG91cikgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuY2FuY2VsMjRIb3VyKCk7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuY2FuY2VsMjRIb3VyO1xyXG4gICAgfVxyXG5cclxuICAgIGluamVjdDI0SG91cigpIHtcclxuICAgICAgICBpZiAodGhpcy5jYW5jZWwyNEhvdXIpIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgdHdlbHZlSG91ciA9IG5ldyBSZWdFeHAoYChbMC05XXsxLDJ9KTooWzAtOV17MSwyfSlcXFxccyhBTXxQTSlgKTtcclxuICAgICAgICBjb25zdCBjb252ZXJ0ID0gKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbWF0Y2hlZCA9IGRhdGEucmV0dXJuVmFsdWUubWF0Y2godHdlbHZlSG91cik7XHJcbiAgICAgICAgICAgIGlmICghbWF0Y2hlZCB8fCBtYXRjaGVkLmxlbmd0aCAhPT0gNCkgcmV0dXJuO1xyXG4gICAgICAgICAgICBpZiAobWF0Y2hlZFszXSA9PT0gXCJBTVwiKSByZXR1cm4gZGF0YS5yZXR1cm5WYWx1ZSA9IGRhdGEucmV0dXJuVmFsdWUucmVwbGFjZShtYXRjaGVkWzBdLCBgJHttYXRjaGVkWzFdID09PSBcIjEyXCIgPyBcIjAwXCIgOiBtYXRjaGVkWzFdLnBhZFN0YXJ0KDIsIFwiMFwiKX06JHttYXRjaGVkWzJdfWApO1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0YS5yZXR1cm5WYWx1ZSA9IGRhdGEucmV0dXJuVmFsdWUucmVwbGFjZShtYXRjaGVkWzBdLCBgJHttYXRjaGVkWzFdID09PSBcIjEyXCIgPyBcIjEyXCIgOiBwYXJzZUludChtYXRjaGVkWzFdKSArIDEyfToke21hdGNoZWRbMl19YCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgY2FuY2VsQ296eSA9IFV0aWxpdGllcy5tb25rZXlQYXRjaChEaXNjb3JkTW9kdWxlcy5UaW1lRm9ybWF0dGVyLCBcImNhbGVuZGFyRm9ybWF0XCIsIHthZnRlcjogY29udmVydH0pOyAvLyBDYWxsZWQgaW4gQ296eSBtb2RlXHJcbiAgICAgICAgY29uc3QgY2FuY2VsQ29tcGFjdCA9IFV0aWxpdGllcy5tb25rZXlQYXRjaChEaXNjb3JkTW9kdWxlcy5UaW1lRm9ybWF0dGVyLCBcImRhdGVGb3JtYXRcIiwge2FmdGVyOiBjb252ZXJ0fSk7IC8vIENhbGxlZCBpbiBDb21wYWN0IG1vZGVcclxuICAgICAgICB0aGlzLmNhbmNlbDI0SG91ciA9ICgpID0+IHtjYW5jZWxDb3p5KCk7IGNhbmNlbENvbXBhY3QoKTt9OyAvLyBDYW5jZWwgYm90aFxyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/24hour.js\n");
/***/ }),
/***/ "./src/builtins/builtins.js":
/*!**********************************!*\
!*** ./src/builtins/builtins.js ***!
\**********************************/
/*! exports provided: VoiceMode, ClassNormalizer, DeveloperMode, PublicServers, DarkMode, MinimalMode, TwentyFourHour, ColoredText, VoiceDisconnect, EmoteMenu, EmoteAutocaps, EmoteModule, WindowPrefs, CustomCSS */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _voicemode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./voicemode */ \"./src/builtins/voicemode.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VoiceMode\", function() { return _voicemode__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _classnormalizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./classnormalizer */ \"./src/builtins/classnormalizer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ClassNormalizer\", function() { return _classnormalizer__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _developermode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./developermode */ \"./src/builtins/developermode.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DeveloperMode\", function() { return _developermode__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _publicservers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./publicservers */ \"./src/builtins/publicservers.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PublicServers\", function() { return _publicservers__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _darkmode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./darkmode */ \"./src/builtins/darkmode.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DarkMode\", function() { return _darkmode__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _minimalmode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./minimalmode */ \"./src/builtins/minimalmode.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MinimalMode\", function() { return _minimalmode__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _24hour__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./24hour */ \"./src/builtins/24hour.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TwentyFourHour\", function() { return _24hour__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _coloredtext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./coloredtext */ \"./src/builtins/coloredtext.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ColoredText\", function() { return _coloredtext__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _voicedisconnect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./voicedisconnect */ \"./src/builtins/voicedisconnect.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VoiceDisconnect\", function() { return _voicedisconnect__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _emotemenu__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./emotemenu */ \"./src/builtins/emotemenu.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmoteMenu\", function() { return _emotemenu__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _emoteautocaps__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./emoteautocaps */ \"./src/builtins/emoteautocaps.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmoteAutocaps\", function() { return _emoteautocaps__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _emotes__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./emotes */ \"./src/builtins/emotes.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmoteModule\", function() { return _emotes__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony import */ var _windowprefs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./windowprefs */ \"./src/builtins/windowprefs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"WindowPrefs\", function() { return _windowprefs__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _customcss__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./customcss */ \"./src/builtins/customcss.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CustomCSS\", function() { return _customcss__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2J1aWx0aW5zLmpzPzU5YTYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIuL3NyYy9idWlsdGlucy9idWlsdGlucy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7ZGVmYXVsdCBhcyBWb2ljZU1vZGV9IGZyb20gXCIuL3ZvaWNlbW9kZVwiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgQ2xhc3NOb3JtYWxpemVyfSBmcm9tIFwiLi9jbGFzc25vcm1hbGl6ZXJcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIERldmVsb3Blck1vZGV9IGZyb20gXCIuL2RldmVsb3Blcm1vZGVcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIFB1YmxpY1NlcnZlcnN9IGZyb20gXCIuL3B1YmxpY3NlcnZlcnNcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIERhcmtNb2RlfSBmcm9tIFwiLi9kYXJrbW9kZVwiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgTWluaW1hbE1vZGV9IGZyb20gXCIuL21pbmltYWxtb2RlXCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBUd2VudHlGb3VySG91cn0gZnJvbSBcIi4vMjRob3VyXCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBDb2xvcmVkVGV4dH0gZnJvbSBcIi4vY29sb3JlZHRleHRcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIFZvaWNlRGlzY29ubmVjdH0gZnJvbSBcIi4vdm9pY2VkaXNjb25uZWN0XCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBFbW90ZU1lbnV9IGZyb20gXCIuL2Vtb3RlbWVudVwiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgRW1vdGVBdXRvY2Fwc30gZnJvbSBcIi4vZW1vdGVhdXRvY2Fwc1wiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgRW1vdGVNb2R1bGV9IGZyb20gXCIuL2Vtb3Rlc1wiO1xyXG5leHBvcnQge2RlZmF1bHQgYXMgV2luZG93UHJlZnN9IGZyb20gXCIuL3dpbmRvd3ByZWZzXCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBDdXN0b21DU1N9IGZyb20gXCIuL2N1c3RvbWNzc1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/builtins.js\n");
/***/ }),
/***/ "./src/builtins/classnormalizer.js":
/*!*****************************************!*\
!*** ./src/builtins/classnormalizer.js ***!
\*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\nconst normalizedPrefix = \"da\";\nconst randClass = new RegExp(`^(?!${normalizedPrefix}-)((?:[A-Za-z]|[0-9]|-)+)-(?:[A-Za-z]|[0-9]|-|_){6}$`);\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ClassNormalizer extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get id() {\n return \"classNormalizer\";\n }\n\n get category() {\n return \"general\";\n }\n\n get name() {\n return \"ClassNormalizer\";\n }\n\n enabled() {\n if (this.hasPatched) return;\n this.patchClassModules(modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModules(this.moduleFilter.bind(this)));\n this.normalizeElement(document.querySelector(\"#app-mount\"));\n this.hasPatched = true;\n this.patchDOMMethods();\n }\n\n disabled() {\n if (!this.hasPatched) return;\n this.unpatchClassModules(modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModules(this.moduleFilter.bind(this)));\n this.revertElement(document.querySelector(\"#app-mount\"));\n this.hasPatched = false;\n }\n\n patchClassModules(modules) {\n for (const module of modules) {\n this.patchClassModule(normalizedPrefix, module);\n }\n }\n\n unpatchClassModules(modules) {\n for (const module of modules) {\n this.unpatchClassModule(normalizedPrefix, module);\n }\n }\n\n shouldIgnore(value) {\n if (!isNaN(value)) return true;\n if (value.endsWith(\"px\") || value.endsWith(\"ch\") || value.endsWith(\"em\") || value.endsWith(\"ms\")) return true;\n if (value.startsWith(\"layerContainer-\")) return true;\n if (value.startsWith(\"#\") && (value.length == 7 || value.length == 4)) return true;\n if (value.includes(\"calc(\") || value.includes(\"rgba\")) return true;\n return false;\n }\n\n moduleFilter(module) {\n if (typeof module !== \"object\" || Array.isArray(module)) return false;\n if (module.__esModule) return false;\n if (!Object.keys(module).length) return false;\n\n for (const baseClassName in module) {\n const value = module[baseClassName];\n if (typeof value !== \"string\") return false;\n if (this.shouldIgnore(value)) continue;\n if (value.split(\"-\").length === 1) return false;\n if (!randClass.test(value.split(\" \")[0])) return false;\n }\n\n return true;\n }\n\n patchClassModule(componentName, classNames) {\n for (const baseClassName in classNames) {\n const value = classNames[baseClassName];\n if (this.shouldIgnore(value)) continue;\n const classList = value.split(\" \");\n\n for (const normalClass of classList) {\n const match = normalClass.match(randClass)[1];\n if (!match) continue; // Shouldn't ever happen since they passed the moduleFilter, but you never know\n\n const camelCase = match.split(\"-\").map((s, i) => i ? s[0].toUpperCase() + s.slice(1) : s).join(\"\");\n classNames[baseClassName] += ` ${componentName}-${camelCase}`;\n }\n }\n }\n\n unpatchClassModule(componentName, classNames) {\n for (const baseClassName in classNames) {\n const value = classNames[baseClassName];\n if (this.shouldIgnore(value)) continue;\n let newString = \"\";\n const classList = value.split(\" \");\n\n for (const normalClass of classList) {\n if (normalClass.startsWith(`${componentName}-`)) continue;\n newString += ` ${normalClass}`;\n }\n\n classNames[baseClassName] = newString.trim();\n }\n }\n\n normalizeElement(element) {\n if (!(element instanceof Element)) return;\n const classes = element.classList;\n\n for (let c = 0, clen = classes.length; c < clen; c++) {\n if (!randClass.test(classes[c])) continue;\n const match = classes[c].match(randClass)[1];\n const newClass = match.split(\"-\").map((s, i) => i ? s[0].toUpperCase() + s.slice(1) : s).join(\"\");\n element.classList.add(`${normalizedPrefix}-${newClass}`);\n }\n\n for (const child of element.children) this.normalizeElement(child);\n }\n\n revertElement(element) {\n if (!(element instanceof Element)) return;\n if (element.children && element.children.length) this.revertElement(element.children[0]);\n if (element.nextElementSibling) this.revertElement(element.nextElementSibling);\n const classes = element.classList;\n const toRemove = [];\n\n for (let c = 0; c < classes.length; c++) {\n if (classes[c].startsWith(`${normalizedPrefix}-`)) toRemove.push(classes[c]);\n }\n\n element.classList.remove(...toRemove);\n }\n\n patchDOMMethods() {\n const contains = DOMTokenList.prototype.contains;\n\n DOMTokenList.prototype.contains = function (token) {\n const tokens = token.split(\" \");\n return tokens.every(t => contains.call(this, t));\n };\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2NsYXNzbm9ybWFsaXplci5qcz9kZDc4Il0sIm5hbWVzIjpbIm5vcm1hbGl6ZWRQcmVmaXgiLCJyYW5kQ2xhc3MiLCJSZWdFeHAiLCJDbGFzc05vcm1hbGl6ZXIiLCJCdWlsdGluIiwiaWQiLCJjYXRlZ29yeSIsIm5hbWUiLCJlbmFibGVkIiwiaGFzUGF0Y2hlZCIsInBhdGNoQ2xhc3NNb2R1bGVzIiwiV2VicGFja01vZHVsZXMiLCJnZXRNb2R1bGVzIiwibW9kdWxlRmlsdGVyIiwiYmluZCIsIm5vcm1hbGl6ZUVsZW1lbnQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJwYXRjaERPTU1ldGhvZHMiLCJkaXNhYmxlZCIsInVucGF0Y2hDbGFzc01vZHVsZXMiLCJyZXZlcnRFbGVtZW50IiwibW9kdWxlcyIsIm1vZHVsZSIsInBhdGNoQ2xhc3NNb2R1bGUiLCJ1bnBhdGNoQ2xhc3NNb2R1bGUiLCJzaG91bGRJZ25vcmUiLCJ2YWx1ZSIsImlzTmFOIiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJBcnJheSIsImlzQXJyYXkiLCJfX2VzTW9kdWxlIiwiT2JqZWN0Iiwia2V5cyIsImJhc2VDbGFzc05hbWUiLCJzcGxpdCIsInRlc3QiLCJjb21wb25lbnROYW1lIiwiY2xhc3NOYW1lcyIsImNsYXNzTGlzdCIsIm5vcm1hbENsYXNzIiwibWF0Y2giLCJjYW1lbENhc2UiLCJtYXAiLCJzIiwiaSIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJqb2luIiwibmV3U3RyaW5nIiwidHJpbSIsImVsZW1lbnQiLCJFbGVtZW50IiwiY2xhc3NlcyIsImMiLCJjbGVuIiwibmV3Q2xhc3MiLCJhZGQiLCJjaGlsZCIsImNoaWxkcmVuIiwibmV4dEVsZW1lbnRTaWJsaW5nIiwidG9SZW1vdmUiLCJwdXNoIiwicmVtb3ZlIiwiY29udGFpbnMiLCJET01Ub2tlbkxpc3QiLCJwcm90b3R5cGUi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TyxDQUFDWixTQUF4QjtBQUNBLFVBQU1zQixRQUFRLEdBQUcsRUFBakI7O0FBQ0EsU0FBSyxJQUFJUCxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHRCxPQUFPLENBQUMxQixNQUE1QixFQUFvQzJCLENBQUMsRUFBckMsRUFBeUM7QUFDckMsVUFBSUQsT0FBTyxDQUFDQyxDQUFELENBQVAsQ0FBVzVCLFVBQVgsQ0FBdUIsR0FBRTlCLGdCQUFpQixHQUExQyxDQUFKLEVBQW1EaUUsUUFBUSxDQUFDQyxJQUFULENBQWNULE9BQU8sQ0FBQ0MsQ0FBRCxDQUFyQjtBQUN0RDs7QUFDREgsV0FBTyxDQUFDWixTQUFSLENBQWtCd0IsTUFBbEIsQ0FBeUIsR0FBR0YsUUFBNUI7QUFDSDs7QUFFRC9DLGlCQUFlLEdBQUc7QUFDZCxVQUFNa0QsUUFBUSxHQUFHQyxZQUFZLENBQUNDLFNBQWIsQ0FBdUJGLFFBQXhDOztBQUNBQyxnQkFBWSxDQUFDQyxTQUFiLENBQXVCRixRQUF2QixHQUFrQyxVQUFTRyxLQUFULEVBQWdCO0FBQzlDLFlBQU1DLE1BQU0sR0FBR0QsS0FBSyxDQUFDaEMsS0FBTixDQUFZLEdBQVosQ0FBZjtBQUNBLGFBQU9pQyxNQUFNLENBQUNDLEtBQVAsQ0FBYUMsQ0FBQyxJQUFJTixRQUFRLENBQUNPLElBQVQsQ0FBYyxJQUFkLEVBQW9CRCxDQUFwQixDQUFsQixDQUFQO0FBQ0gsS0FIRDtBQUlIOztBQWxIb0QsQ0FBMUMsRUFBZiIsImZpbGUiOiIuL3NyYy9idWlsdGlucy9jbGFzc25vcm1hbGl6ZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbHRpbiBmcm9tIFwiLi4vc3RydWN0cy9idWlsdGluXCI7XHJcbmltcG9ydCB7V2VicGFja01vZHVsZXN9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5jb25zdCBub3JtYWxpemVkUHJlZml4ID0gXCJkYVwiO1xyXG5jb25zdCByYW5kQ2xhc3MgPSBuZXcgUmVnRXhwKGBeKD8hJHtub3JtYWxpemVkUHJlZml4fS0pKCg/OltBLVphLXpdfFswLTldfC0pKyktKD86W0EtWmEtel18WzAtOV18LXxfKXs2fSRgKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBDbGFzc05vcm1hbGl6ZXIgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJjbGFzc05vcm1hbGl6ZXJcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiZ2VuZXJhbFwiO31cclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIkNsYXNzTm9ybWFsaXplclwiO31cclxuXHJcbiAgICBlbmFibGVkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc1BhdGNoZWQpIHJldHVybjtcclxuICAgICAgICB0aGlzLnBhdGNoQ2xhc3NNb2R1bGVzKFdlYnBhY2tNb2R1bGVzLmdldE1vZHVsZXModGhpcy5tb2R1bGVGaWx0ZXIuYmluZCh0aGlzKSkpO1xyXG4gICAgICAgIHRoaXMubm9ybWFsaXplRWxlbWVudChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI2FwcC1tb3VudFwiKSk7XHJcbiAgICAgICAgdGhpcy5oYXNQYXRjaGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnBhdGNoRE9NTWV0aG9kcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5oYXNQYXRjaGVkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy51bnBhdGNoQ2xhc3NNb2R1bGVzKFdlYnBhY2tNb2R1bGVzLmdldE1vZHVsZXModGhpcy5tb2R1bGVGaWx0ZXIuYmluZCh0aGlzKSkpO1xyXG4gICAgICAgIHRoaXMucmV2ZXJ0RWxlbWVudChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI2FwcC1tb3VudFwiKSk7XHJcbiAgICAgICAgdGhpcy5oYXNQYXRjaGVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcGF0Y2hDbGFzc01vZHVsZXMobW9kdWxlcykge1xyXG4gICAgICAgIGZvciAoY29uc3QgbW9kdWxlIG9mIG1vZHVsZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXRjaENsYXNzTW9kdWxlKG5vcm1hbGl6ZWRQcmVmaXgsIG1vZHVsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVucGF0Y2hDbGFzc01vZHVsZXMobW9kdWxlcykge1xyXG4gICAgICAgIGZvciAoY29uc3QgbW9kdWxlIG9mIG1vZHVsZXMpIHtcclxuICAgICAgICAgICAgdGhpcy51bnBhdGNoQ2xhc3NNb2R1bGUobm9ybWFsaXplZFByZWZpeCwgbW9kdWxlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2hvdWxkSWdub3JlKHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKCFpc05hTih2YWx1ZSkpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aChcInB4XCIpIHx8IHZhbHVlLmVuZHNXaXRoKFwiY2hcIikgfHwgdmFsdWUuZW5kc1dpdGgoXCJlbVwiKSB8fCB2YWx1ZS5lbmRzV2l0aChcIm1zXCIpKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAodmFsdWUuc3RhcnRzV2l0aChcImxheWVyQ29udGFpbmVyLVwiKSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoXCIjXCIpICYmICh2YWx1ZS5sZW5ndGggPT0gNyB8fCB2YWx1ZS5sZW5ndGggPT0gNCkpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGlmICh2YWx1ZS5pbmNsdWRlcyhcImNhbGMoXCIpIHx8IHZhbHVlLmluY2x1ZGVzKFwicmdiYVwiKSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG1vZHVsZUZpbHRlcihtb2R1bGUpIHtcclxuICAgICAgICBpZiAodHlwZW9mIG1vZHVsZSAhPT0gXCJvYmplY3RcIiB8fCBBcnJheS5pc0FycmF5KG1vZHVsZSkpIHJldHVybiBmYWxzZTtcclxuICAgICAgICBpZiAobW9kdWxlLl9fZXNNb2R1bGUpIHJldHVybiBmYWxzZTtcclxuICAgICAgICBpZiAoIU9iamVjdC5rZXlzKG1vZHVsZSkubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgZm9yIChjb25zdCBiYXNlQ2xhc3NOYW1lIGluIG1vZHVsZSkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG1vZHVsZVtiYXNlQ2xhc3NOYW1lXTtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIikgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zaG91bGRJZ25vcmUodmFsdWUpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlLnNwbGl0KFwiLVwiKS5sZW5ndGggPT09IDEpIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKCFyYW5kQ2xhc3MudGVzdCh2YWx1ZS5zcGxpdChcIiBcIilbMF0pKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwYXRjaENsYXNzTW9kdWxlKGNvbXBvbmVudE5hbWUsIGNsYXNzTmFtZXMpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGJhc2VDbGFzc05hbWUgaW4gY2xhc3NOYW1lcykge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGNsYXNzTmFtZXNbYmFzZUNsYXNzTmFtZV07XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNob3VsZElnbm9yZSh2YWx1ZSkpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBjb25zdCBjbGFzc0xpc3QgPSB2YWx1ZS5zcGxpdChcIiBcIik7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qgbm9ybWFsQ2xhc3Mgb2YgY2xhc3NMaXN0KSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaCA9IG5vcm1hbENsYXNzLm1hdGNoKHJhbmRDbGFzcylbMV07XHJcbiAgICAgICAgICAgICAgICBpZiAoIW1hdGNoKSBjb250aW51ZTsgLy8gU2hvdWxkbid0IGV2ZXIgaGFwcGVuIHNpbmNlIHRoZXkgcGFzc2VkIHRoZSBtb2R1bGVGaWx0ZXIsIGJ1dCB5b3UgbmV2ZXIga25vd1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2FtZWxDYXNlID0gbWF0Y2guc3BsaXQoXCItXCIpLm1hcCgocywgaSkgPT4gaSA/IHNbMF0udG9VcHBlckNhc2UoKSArIHMuc2xpY2UoMSkgOiBzKS5qb2luKFwiXCIpO1xyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lc1tiYXNlQ2xhc3NOYW1lXSArPSBgICR7Y29tcG9uZW50TmFtZX0tJHtjYW1lbENhc2V9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1bnBhdGNoQ2xhc3NNb2R1bGUoY29tcG9uZW50TmFtZSwgY2xhc3NOYW1lcykge1xyXG4gICAgICAgIGZvciAoY29uc3QgYmFzZUNsYXNzTmFtZSBpbiBjbGFzc05hbWVzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gY2xhc3NOYW1lc1tiYXNlQ2xhc3NOYW1lXTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2hvdWxkSWdub3JlKHZhbHVlKSkgY29udGludWU7XHJcbiAgICAgICAgICAgIGxldCBuZXdTdHJpbmcgPSBcIlwiO1xyXG4gICAgICAgICAgICBjb25zdCBjbGFzc0xpc3QgPSB2YWx1ZS5zcGxpdChcIiBcIik7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qgbm9ybWFsQ2xhc3Mgb2YgY2xhc3NMaXN0KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAobm9ybWFsQ2xhc3Muc3RhcnRzV2l0aChgJHtjb21wb25lbnROYW1lfS1gKSkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBuZXdTdHJpbmcgKz0gYCAke25vcm1hbENsYXNzfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2xhc3NOYW1lc1tiYXNlQ2xhc3NOYW1lXSA9IG5ld1N0cmluZy50cmltKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5vcm1hbGl6ZUVsZW1lbnQoZWxlbWVudCkge1xyXG4gICAgICAgIGlmICghKGVsZW1lbnQgaW5zdGFuY2VvZiBFbGVtZW50KSkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGNsYXNzZXMgPSBlbGVtZW50LmNsYXNzTGlzdDtcclxuICAgICAgICBmb3IgKGxldCBjID0gMCwgY2xlbiA9IGNsYXNzZXMubGVuZ3RoOyBjIDwgY2xlbjsgYysrKSB7XHJcbiAgICAgICAgICAgIGlmICghcmFuZENsYXNzLnRlc3QoY2xhc3Nlc1tjXSkpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IGNsYXNzZXNbY10ubWF0Y2gocmFuZENsYXNzKVsxXTtcclxuICAgICAgICAgICAgY29uc3QgbmV3Q2xhc3MgPSBtYXRjaC5zcGxpdChcIi1cIikubWFwKChzLCBpKSA9PiBpID8gc1swXS50b1VwcGVyQ2FzZSgpICsgcy5zbGljZSgxKSA6IHMpLmpvaW4oXCJcIik7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChgJHtub3JtYWxpemVkUHJlZml4fS0ke25ld0NsYXNzfWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGVsZW1lbnQuY2hpbGRyZW4pIHRoaXMubm9ybWFsaXplRWxlbWVudChjaGlsZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV2ZXJ0RWxlbWVudChlbGVtZW50KSB7XHJcbiAgICAgICAgaWYgKCEoZWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnQpKSByZXR1cm47XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuY2hpbGRyZW4gJiYgZWxlbWVudC5jaGlsZHJlbi5sZW5ndGgpIHRoaXMucmV2ZXJ0RWxlbWVudChlbGVtZW50LmNoaWxkcmVuWzBdKTtcclxuICAgICAgICBpZiAoZWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmcpIHRoaXMucmV2ZXJ0RWxlbWVudChlbGVtZW50Lm5leHRFbGVtZW50U2libGluZyk7XHJcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IGVsZW1lbnQuY2xhc3NMaXN0O1xyXG4gICAgICAgIGNvbnN0IHRvUmVtb3ZlID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgYyA9IDA7IGMgPCBjbGFzc2VzLmxlbmd0aDsgYysrKSB7XHJcbiAgICAgICAgICAgIGlmIChjbGFzc2VzW2NdLnN0YXJ0c1dpdGgoYCR7bm9ybWFsaXplZFByZWZpeH0tYCkpIHRvUmVtb3ZlLnB1c2goY2xhc3Nlc1tjXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSguLi50b1JlbW92ZSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHBhdGNoRE9NTWV0aG9kcygpIHtcclxuICAgICAgICBjb25zdCBjb250YWlucyA9IERPTVRva2VuTGlzdC5wcm90b3R5cGUuY29udGFpbnM7XHJcbiAgICAgICAgRE9NVG9rZW5MaXN0LnByb3RvdHlwZS5jb250YWlucyA9IGZ1bmN0aW9uKHRva2VuKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRva2VucyA9IHRva2VuLnNwbGl0KFwiIFwiKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRva2Vucy5ldmVyeSh0ID0+IGNvbnRhaW5zLmNhbGwodGhpcywgdCkpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/classnormalizer.js\n");
/***/ }),
/***/ "./src/builtins/coloredtext.js":
/*!*************************************!*\
!*** ./src/builtins/coloredtext.js ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\nconst MessageContent = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getModule(m => m.defaultProps && m.defaultProps.hasOwnProperty(\"disableButtons\"));\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ColoredText extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"ColoredText\";\n }\n\n get category() {\n return \"appearance\";\n }\n\n get id() {\n return \"coloredText\";\n }\n\n enabled() {\n this.injectColoredText();\n }\n\n disabled() {\n if (!this.cancelColoredText) return;\n this.cancelColoredText();\n delete this.cancelColoredText;\n }\n\n injectColoredText() {\n if (this.cancelColoredText) return;\n this.cancelColoredText = modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].monkeyPatch(MessageContent.prototype, \"render\", {\n after: data => {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].monkeyPatch(data.returnValue.props, \"children\", {\n silent: true,\n after: ({\n returnValue\n }) => {\n const markup = returnValue.props.children[1];\n const roleColor = data.thisObject.props.message.colorString;\n if (markup && roleColor) markup.props.style = {\n color: roleColor\n };\n return returnValue;\n }\n });\n }\n });\n }\n\n removeColoredText() {\n document.querySelectorAll(\".markup-2BOw-j\").forEach(elem => {\n elem.style.setProperty(\"color\", \"\");\n });\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2NvbG9yZWR0ZXh0LmpzP2RlMDkiXSwibmFtZXMiOlsiTWVzc2FnZUNvbnRlbnQiLCJXZWJwYWNrTW9kdWxlcyIsImdldE1vZHVsZSIsIm0iLCJkZWZhdWx0UHJvcHMiLCJoYXNPd25Qcm9wZXJ0eSIsIkNvbG9yZWRUZXh0IiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwiZW5hYmxlZCIsImluamVjdENvbG9yZWRUZXh0IiwiZGlzYWJsZWQiLCJjYW5jZWxDb2xvcmVkVGV4dCIsIlV0aWxpdGllcyIsIm1vbmtleVBhdGNoIiwicHJvdG90eXBlIiwiYWZ0ZXIiLCJkYXRhIiwicmV0dXJuVmFsdWUiLCJwcm9wcyIsInNpbGVudCIsIm1hcmt1cCIsImNoaWxkcmVuIiwicm9sZUNvbG9yIiwidGhpc09iamVjdCIsIm1lc3NhZ2UiLCJjb2xvclN0cmluZyIsInN0eWxlIiwiY29sb3IiLCJyZW1vdmVDb2xvcmVkVGV4dCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJlbGVtIiwic2V0UHJvcGVydHkiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQSxNQUFNQSxjQUFjLEdBQUdDLHNEQUFjLENBQUNDLFNBQWYsQ0FBeUJDLENBQUMsSUFBSUEsQ0FBQyxDQUFDQyxZQUFGLElBQWtCRCxDQUFDLENBQUNDLFlBQUYsQ0FBZUMsY0FBZixDQUE4QixnQkFBOUIsQ0FBaEQsQ0FBdkI7QUFFZSxtRUFBSSxNQUFNQyxXQUFOLFNBQTBCQyx3REFBMUIsQ0FBa0M7QUFDakQsTUFBSUMsSUFBSixHQUFXO0FBQUMsV0FBTyxhQUFQO0FBQXNCOztBQUNsQyxNQUFJQyxRQUFKLEdBQWU7QUFBQyxXQUFPLFlBQVA7QUFBcUI7O0FBQ3JDLE1BQUlDLEVBQUosR0FBUztBQUFDLFdBQU8sYUFBUDtBQUFzQjs7QUFFaENDLFNBQU8sR0FBRztBQUNOLFNBQUtDLGlCQUFMO0FBQ0g7O0FBRURDLFVBQVEsR0FBRztBQUNQLFFBQUksQ0FBQyxLQUFLQyxpQkFBVixFQUE2QjtBQUM3QixTQUFLQSxpQkFBTDtBQUNBLFdBQU8sS0FBS0EsaUJBQVo7QUFDSDs7QUFFREYsbUJBQWlCLEdBQUc7QUFDaEIsUUFBSSxLQUFLRSxpQkFBVCxFQUE0QjtBQUU1QixTQUFLQSxpQkFBTCxHQUF5QkMsaURBQVMsQ0FBQ0MsV0FBVixDQUFzQmhCLGNBQWMsQ0FBQ2lCLFNBQXJDLEVBQWdELFFBQWhELEVBQTBEO0FBQUNDLFdBQUssRUFBR0MsSUFBRCxJQUFVO0FBQ2pHSix5REFBUyxDQUFDQyxXQUFWLENBQXNCRyxJQUFJLENBQUNDLFdBQUwsQ0FBaUJDLEtBQXZDLEVBQThDLFVBQTlDLEVBQTBEO0FBQUNDLGdCQUFNLEVBQUUsSUFBVDtBQUFlSixlQUFLLEVBQUUsQ0FBQztBQUFDRTtBQUFELFdBQUQsS0FBbUI7QUFDL0Ysa0JBQU1HLE1BQU0sR0FBR0gsV0FBVyxDQUFDQyxLQUFaLENBQWtCRyxRQUFsQixDQUEyQixDQUEzQixDQUFmO0FBQ0Esa0JBQU1DLFNBQVMsR0FBR04sSUFBSSxDQUFDTyxVQUFMLENBQWdCTCxLQUFoQixDQUFzQk0sT0FBdEIsQ0FBOEJDLFdBQWhEO0FBQ0EsZ0JBQUlMLE1BQU0sSUFBSUUsU0FBZCxFQUF5QkYsTUFBTSxDQUFDRixLQUFQLENBQWFRLEtBQWIsR0FBcUI7QUFBQ0MsbUJBQUssRUFBRUw7QUFBUixhQUFyQjtBQUN6QixtQkFBT0wsV0FBUDtBQUNIO0FBTHlELFNBQTFEO0FBTUg7QUFQa0YsS0FBMUQsQ0FBekI7QUFRSDs7QUFFRFcsbUJBQWlCLEdBQUc7QUFDaEJDLFlBQVEsQ0FBQ0MsZ0JBQVQsQ0FBMEIsZ0JBQTFCLEVBQTRDQyxPQUE1QyxDQUFvREMsSUFBSSxJQUFJO0FBQ3hEQSxVQUFJLENBQUNOLEtBQUwsQ0FBV08sV0FBWCxDQUF1QixPQUF2QixFQUFnQyxFQUFoQztBQUNILEtBRkQ7QUFHSDs7QUFoQ2dELENBQXRDLEVBQWYiLCJmaWxlIjoiLi9zcmMvYnVpbHRpbnMvY29sb3JlZHRleHQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbHRpbiBmcm9tIFwiLi4vc3RydWN0cy9idWlsdGluXCI7XHJcbmltcG9ydCB7VXRpbGl0aWVzLCBXZWJwYWNrTW9kdWxlc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmNvbnN0IE1lc3NhZ2VDb250ZW50ID0gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS5kZWZhdWx0UHJvcHMgJiYgbS5kZWZhdWx0UHJvcHMuaGFzT3duUHJvcGVydHkoXCJkaXNhYmxlQnV0dG9uc1wiKSk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgQ29sb3JlZFRleHQgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIkNvbG9yZWRUZXh0XCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImFwcGVhcmFuY2VcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwiY29sb3JlZFRleHRcIjt9XHJcblxyXG4gICAgZW5hYmxlZCgpIHtcclxuICAgICAgICB0aGlzLmluamVjdENvbG9yZWRUZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNhbmNlbENvbG9yZWRUZXh0KSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5jYW5jZWxDb2xvcmVkVGV4dCgpO1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmNhbmNlbENvbG9yZWRUZXh0O1xyXG4gICAgfVxyXG5cclxuICAgIGluamVjdENvbG9yZWRUZXh0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNhbmNlbENvbG9yZWRUZXh0KSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuY2FuY2VsQ29sb3JlZFRleHQgPSBVdGlsaXRpZXMubW9ua2V5UGF0Y2goTWVzc2FnZUNvbnRlbnQucHJvdG90eXBlLCBcInJlbmRlclwiLCB7YWZ0ZXI6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIFV0aWxpdGllcy5tb25rZXlQYXRjaChkYXRhLnJldHVyblZhbHVlLnByb3BzLCBcImNoaWxkcmVuXCIsIHtzaWxlbnQ6IHRydWUsIGFmdGVyOiAoe3JldHVyblZhbHVlfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbWFya3VwID0gcmV0dXJuVmFsdWUucHJvcHMuY2hpbGRyZW5bMV07XHJcbiAgICAgICAgICAgICAgICBjb25zdCByb2xlQ29sb3IgPSBkYXRhLnRoaXNPYmplY3QucHJvcHMubWVzc2FnZS5jb2xvclN0cmluZztcclxuICAgICAgICAgICAgICAgIGlmIChtYXJrdXAgJiYgcm9sZUNvbG9yKSBtYXJrdXAucHJvcHMuc3R5bGUgPSB7Y29sb3I6IHJvbGVDb2xvcn07XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgICAgIH19KTtcclxuICAgICAgICB9fSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQ29sb3JlZFRleHQoKSB7XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5tYXJrdXAtMkJPdy1qXCIpLmZvckVhY2goZWxlbSA9PiB7XHJcbiAgICAgICAgICAgIGVsZW0uc3R5bGUuc2V0UHJvcGVydHkoXCJjb2xvclwiLCBcIlwiKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/builtins/coloredtext.js\n");
/***/ }),
/***/ "./src/builtins/customcss.js":
/*!***********************************!*\
!*** ./src/builtins/customcss.js ***!
\***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _ui_customcss_csseditor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/customcss/csseditor */ \"./src/ui/customcss/csseditor.jsx\");\n/* harmony import */ var _ui_floating_container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui/floating/container */ \"./src/ui/floating/container.jsx\");\n/* harmony import */ var _ui_settings_title__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui/settings/title */ \"./src/ui/settings/title.jsx\");\n\n\n\n\n\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst electron = __webpack_require__(/*! electron */ \"electron\");\n\nconst UserSettings = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"updateAccount\");\nconst Dispatcher = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"dirtyDispatch\");\nconst ActionTypes = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"ActionTypes\").ActionTypes;\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class CustomCSS extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"Custom CSS\";\n }\n\n get category() {\n return \"customcss\";\n }\n\n get id() {\n return \"customcss\";\n }\n\n get startDetached() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].get(this.collection, this.category, \"startDetached\");\n }\n\n get nativeOpen() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].get(this.collection, this.category, \"nativeOpen\");\n }\n\n constructor() {\n super();\n this.savedCss = \"\";\n this.insertedCss = \"\";\n this.isDetached = false;\n }\n\n async enabled() {\n if (!window.ace) {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].injectJs(\"https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.9/ace.js\").then(() => {\n if (window.require.original) window.require = window.require.original;\n });\n }\n\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].registerPanel(this.id, this.name, {\n order: 2,\n element: () => [modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_ui_settings_title__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n text: \"Custom CSS Editor\"\n }), modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_ui_customcss_csseditor__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n css: this.savedCss,\n save: this.saveCSS.bind(this),\n update: this.insertCSS.bind(this),\n openNative: this.openNative.bind(this),\n openDetached: this.openDetached.bind(this),\n onChange: this.onChange.bind(this)\n })],\n onClick: thisObject => {\n if (this.isDetached) return;\n if (this.nativeOpen) this.openNative();else if (this.startDetached) this.openDetached();else thisObject._reactInternalFiber.child.memoizedProps.children.props.onSetSection(this.name);\n this.setSection = thisObject._reactInternalFiber.child.memoizedProps.children.props.onSetSection;\n }\n });\n this.loadCSS();\n this.insertCSS(this.savedCss);\n this.watchContent();\n }\n\n disabled() {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].removePanel(this.id);\n this.unwatchContent();\n }\n\n watchContent() {\n if (this.watcher) return this.error(\"Already watching content.\");\n const timeCache = {};\n this.log(\"Starting to watch content.\");\n this.watcher = fs.watch(modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].customCSS, {\n persistent: false\n }, async (eventType, filename) => {\n if (!eventType || !filename) return;\n await new Promise(r => setTimeout(r, 50));\n\n try {\n fs.statSync(modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].customCSS);\n } catch (err) {\n if (err.code !== \"ENOENT\") return;\n delete timeCache[filename];\n this.saveCSS(\"\");\n }\n\n const stats = fs.statSync(modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].customCSS);\n if (!stats || !stats.mtime || !stats.mtime.getTime()) return;\n if (typeof stats.mtime.getTime() !== \"number\") return;\n if (timeCache[filename] == stats.mtime.getTime()) return;\n timeCache[filename] = stats.mtime.getTime();\n\n if (eventType == \"change\") {\n const newCSS = modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].loadCustomCSS();\n if (newCSS == this.savedCss) return;\n this.savedCss = newCSS;\n this.insertCSS(this.savedCss);\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].emit(\"customcss-updated\", this.savedCss);\n }\n });\n }\n\n unwatchContent() {\n if (!this.watcher) return this.error(\"Was not watching content.\");\n this.watcher.close();\n delete this.watcher;\n this.log(\"No longer watching content.\");\n }\n\n onChange(value) {\n if (!modules__WEBPACK_IMPORTED_MODULE_1__[\"Settings\"].get(\"settings\", \"customcss\", \"liveUpdate\")) return;\n this.insertCSS(value);\n this.saveCSS(value);\n }\n\n loadCSS() {\n this.savedCss = modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].loadCustomCSS();\n }\n\n insertCSS(newCss) {\n if (typeof newCss === \"undefined\") newCss = this.insertedCss;else this.insertedCss = newCss; // if ($(\"#customcss\").length == 0) {\n // $(\"head\").append(\"<style id=\\\"customcss\\\"></style>\");\n // }\n // $(\"#customcss\").text(newCss).detach().appendTo(document.head);\n\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DOMManager\"].updateCustomCSS(newCss);\n }\n\n saveCSS(newCss) {\n if (typeof newCss !== \"undefined\") this.savedCss = newCss;\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].saveCustomCSS(this.savedCss);\n }\n\n openNative() {\n electron.shell.openExternal(`file://${modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].customCSS}`);\n }\n\n openDetached(currentCSS) {\n const editorRef = modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createRef();\n const editor = modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_ui_customcss_csseditor__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n id: \"bd-floating-editor\",\n ref: editorRef,\n css: currentCSS,\n save: this.saveCSS.bind(this),\n update: this.insertCSS.bind(this),\n openNative: this.openNative.bind(this),\n onChange: this.onChange.bind(this)\n });\n _ui_floating_container__WEBPACK_IMPORTED_MODULE_3__[\"default\"].open({\n onClose: () => {\n this.isDetached = false;\n },\n onResize: () => {\n if (!editorRef || !editorRef.current || !editorRef.current.resize) return;\n editorRef.current.resize();\n },\n title: \"Custom CSS Editor\",\n id: \"floating-editor-window\",\n height: 470,\n width: 410,\n center: true,\n resizable: true,\n children: editor,\n confirmClose: () => {\n if (!editorRef || !editorRef.current) return false;\n return editorRef.current.hasUnsavedChanges;\n },\n confirmationText: \"You have unsaved changes to your Custom CSS. Closing this window will lose all those changes.\"\n });\n this.isDetached = true;\n UserSettings.close();\n Dispatcher.dirtyDispatch({\n type: ActionTypes.LAYER_POP\n });\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2N1c3RvbWNzcy5qcz9jM2YyIl0sIm5hbWVzIjpbImZzIiwicmVxdWlyZSIsImVsZWN0cm9uIiwiVXNlclNldHRpbmdzIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeVByb3BzIiwiRGlzcGF0Y2hlciIsIkFjdGlvblR5cGVzIiwiQ3VzdG9tQ1NTIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwic3RhcnREZXRhY2hlZCIsIlNldHRpbmdzIiwiZ2V0IiwiY29sbGVjdGlvbiIsIm5hdGl2ZU9wZW4iLCJjb25zdHJ1Y3RvciIsInNhdmVkQ3NzIiwiaW5zZXJ0ZWRDc3MiLCJpc0RldGFjaGVkIiwiZW5hYmxlZCIsIndpbmRvdyIsImFjZSIsIlV0aWxpdGllcyIsImluamVjdEpzIiwidGhlbiIsIm9yaWdpbmFsIiwicmVnaXN0ZXJQYW5lbCIsIm9yZGVyIiwiZWxlbWVudCIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIkNTU0VkaXRvciIsImNzcyIsInNhdmUiLCJzYXZlQ1NTIiwiYmluZCIsInVwZGF0ZSIsImluc2VydENTUyIsIm9wZW5OYXRpdmUiLCJvcGVuRGV0YWNoZWQiLCJvbkNoYW5nZSIsIm9uQ2xpY2siLCJ0aGlzT2JqZWN0IiwiX3JlYWN0SW50ZXJuYWxGaWJlciIsImNoaWxkIiwibWVtb2l6ZWRQcm9wcyIsImNoaWxkcmVuIiwicHJvcHMiLCJvblNldFNlY3Rpb24iLCJzZXRTZWN0aW9uIiwibG9hZENTUyIsIndhdGNoQ29udGVudCIsImRpc2FibGVkIiwicmVtb3ZlUGFuZWwiLCJ1bndhdGNoQ29udGVudCIsIndhdGNoZXIiLCJlcnJvciIsInRpbWVDYWNoZSIsImxvZyIsIndhdGNoIiwiRGF0YVN0b3JlIiwiY3VzdG9tQ1NTIiwicGVyc2lzdGVudCIsImV2ZW50VHlwZSIsImZpbGVuYW1lIiwiUHJvbWlzZSIsInIiLCJzZXRUaW1lb3V0Iiwic3RhdFN5bmMiLCJlcnIiLCJjb2RlIiwic3RhdHMiLCJtdGltZSIsImdldFRpbWUiLCJuZXdDU1MiLCJsb2FkQ3VzdG9tQ1NTIiwiRXZlbnRzIiwiZW1pdCIsImNsb3NlIiwidmFsdWUiLCJuZXdDc3MiLCJET01NYW5hZ2VyIiwidXBkYXRlQ3VzdG9tQ1NTIiwic2F2ZUN1c3RvbUNTUyIsInNoZWxsIiwib3BlbkV4dGVybmFsIiwiY3VycmVudENTUyIsImVkaXRvclJlZiIsImNyZWF0ZVJlZiIsImVkaXRvciIsInJlZiIsIkZsb2F0aW5nV2luZG93Q29udGFpbmVyIiwib3BlbiIsIm9uQ2xvc2UiLCJvblJlc2l6ZSIsImN1cnJlbnQiLCJyZXNpemUiLCJ0aXRsZSIsImhlaWdodCIsIndpZHRoIiwiY2VudGVyIiwicmVzaXphYmxlIiwiY29uZmlybUNsb3NlIiwiaGFzVW5zYXZlZENoYW5nZXMiLCJjb25maXJtYXRpb25UZXh0IiwiZGlydHlEaXNwYXRjaCIsInR5cGUiLCJMQVlFUl9QT1AiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTUEsRUFBRSxHQUFHQyxtQkFBTyxDQUFDLGNBQUQsQ0FBbEI7O0FBQ0EsTUFBTUMsUUFBUSxHQUFHRCxtQkFBTyxDQUFDLDBCQUFELENBQXhCOztBQUNBLE1BQU1FLFlBQVksR0FBR0Msc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixlQUExQixDQUFyQjtBQUNBLE1BQU1DLFVBQVUsR0FBR0Ysc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixlQUExQixDQUFuQjtBQUNBLE1BQU1FLFdBQVcsR0FBR0gsc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixhQUExQixFQUF5Q0UsV0FBN0Q7QUFFZSxtRUFBSSxNQUFNQyxTQUFOLFNBQXdCQyx3REFBeEIsQ0FBZ0M7QUFDL0MsTUFBSUMsSUFBSixHQUFXO0FBQUMsV0FBTyxZQUFQO0FBQXFCOztBQUNqQyxNQUFJQyxRQUFKLEdBQWU7QUFBQyxXQUFPLFdBQVA7QUFBb0I7O0FBQ3BDLE1B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LEVBQUUsbUJBUmtCO0FBU3pCeEYsUUFBRSxFQUFFLHdCQVRxQjtBQVV6QnlGLFlBQU0sRUFBRSxHQVZpQjtBQVd6QkMsV0FBSyxFQUFFLEdBWGtCO0FBWXpCQyxZQUFNLEVBQUUsSUFaaUI7QUFhekJDLGVBQVMsRUFBRSxJQWJjO0FBY3pCdkQsY0FBUSxFQUFFMkMsTUFkZTtBQWV6QmEsa0JBQVksRUFBRSxNQUFNO0FBQ2hCLFlBQUksQ0FBQ2YsU0FBRCxJQUFjLENBQUNBLFNBQVMsQ0FBQ1EsT0FBN0IsRUFBc0MsT0FBTyxLQUFQO0FBQ3RDLGVBQU9SLFNBQVMsQ0FBQ1EsT0FBVixDQUFrQlEsaUJBQXpCO0FBQ0gsT0FsQndCO0FBbUJ6QkMsc0JBQWdCLEVBQUU7QUFuQk8sS0FBN0I7QUFxQkEsU0FBS3RGLFVBQUwsR0FBa0IsSUFBbEI7QUFDQWxCLGdCQUFZLENBQUM4RSxLQUFiO0FBQ0EzRSxjQUFVLENBQUNzRyxhQUFYLENBQXlCO0FBQUNDLFVBQUksRUFBRXRHLFdBQVcsQ0FBQ3VHO0FBQW5CLEtBQXpCO0FBQ0g7O0FBcEo4QyxDQUFwQyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL2N1c3RvbWNzcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuaW1wb3J0IHtTZXR0aW5ncywgRGF0YVN0b3JlLCBSZWFjdCwgVXRpbGl0aWVzLCBXZWJwYWNrTW9kdWxlcywgRXZlbnRzLCBET01NYW5hZ2VyfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgQ1NTRWRpdG9yIGZyb20gXCIuLi91aS9jdXN0b21jc3MvY3NzZWRpdG9yXCI7XHJcbmltcG9ydCBGbG9hdGluZ1dpbmRvd0NvbnRhaW5lciBmcm9tIFwiLi4vdWkvZmxvYXRpbmcvY29udGFpbmVyXCI7XHJcbmltcG9ydCBTZXR0aW5nc1RpdGxlIGZyb20gXCIuLi91aS9zZXR0aW5ncy90aXRsZVwiO1xyXG5cclxuY29uc3QgZnMgPSByZXF1aXJlKFwiZnNcIik7XHJcbmNvbnN0IGVsZWN0cm9uID0gcmVxdWlyZShcImVsZWN0cm9uXCIpO1xyXG5jb25zdCBVc2VyU2V0dGluZ3MgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwidXBkYXRlQWNjb3VudFwiKTtcclxuY29uc3QgRGlzcGF0Y2hlciA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJkaXJ0eURpc3BhdGNoXCIpO1xyXG5jb25zdCBBY3Rpb25UeXBlcyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJBY3Rpb25UeXBlc1wiKS5BY3Rpb25UeXBlcztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBDdXN0b21DU1MgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIkN1c3RvbSBDU1NcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiY3VzdG9tY3NzXCI7fVxyXG4gICAgZ2V0IGlkKCkge3JldHVybiBcImN1c3RvbWNzc1wiO31cclxuICAgIGdldCBzdGFydERldGFjaGVkKCkge3JldHVybiBTZXR0aW5ncy5nZXQodGhpcy5jb2xsZWN0aW9uLCB0aGlzLmNhdGVnb3J5LCBcInN0YXJ0RGV0YWNoZWRcIik7fVxyXG4gICAgZ2V0IG5hdGl2ZU9wZW4oKSB7cmV0dXJuIFNldHRpbmdzLmdldCh0aGlzLmNvbGxlY3Rpb24sIHRoaXMuY2F0ZWdvcnksIFwibmF0aXZlT3BlblwiKTt9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLnNhdmVkQ3NzID0gXCJcIjtcclxuICAgICAgICB0aGlzLmluc2VydGVkQ3NzID0gXCJcIjtcclxuICAgICAgICB0aGlzLmlzRGV0YWNoZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBlbmFibGVkKCkge1xyXG4gICAgICAgIGlmICghd2luZG93LmFjZSkge1xyXG4gICAgICAgICAgICBVdGlsaXRpZXMuaW5qZWN0SnMoXCJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9hY2UvMS4yLjkvYWNlLmpzXCIpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5yZXF1aXJlLm9yaWdpbmFsKSB3aW5kb3cucmVxdWlyZSA9IHdpbmRvdy5yZXF1aXJlLm9yaWdpbmFsO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgU2V0dGluZ3MucmVnaXN0ZXJQYW5lbCh0aGlzLmlkLCB0aGlzLm5hbWUsIHtcclxuICAgICAgICAgICAgb3JkZXI6IDIsXHJcbiAgICAgICAgICAgIGVsZW1lbnQ6ICgpID0+IFs8U2V0dGluZ3NUaXRsZSB0ZXh0PVwiQ3VzdG9tIENTUyBFZGl0b3JcIiAvPiwgUmVhY3QuY3JlYXRlRWxlbWVudChDU1NFZGl0b3IsIHtcclxuICAgICAgICAgICAgICAgIGNzczogdGhpcy5zYXZlZENzcyxcclxuICAgICAgICAgICAgICAgIHNhdmU6IHRoaXMuc2F2ZUNTUy5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICAgICAgdXBkYXRlOiB0aGlzLmluc2VydENTUy5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICAgICAgb3Blbk5hdGl2ZTogdGhpcy5vcGVuTmF0aXZlLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgICBvcGVuRGV0YWNoZWQ6IHRoaXMub3BlbkRldGFjaGVkLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogdGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpXHJcbiAgICAgICAgICAgIH0pXSxcclxuICAgICAgICAgICAgb25DbGljazogKHRoaXNPYmplY3QpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzRGV0YWNoZWQpIHJldHVybjtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm5hdGl2ZU9wZW4pIHRoaXMub3Blbk5hdGl2ZSgpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5zdGFydERldGFjaGVkKSB0aGlzLm9wZW5EZXRhY2hlZCgpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSB0aGlzT2JqZWN0Ll9yZWFjdEludGVybmFsRmliZXIuY2hpbGQubWVtb2l6ZWRQcm9wcy5jaGlsZHJlbi5wcm9wcy5vblNldFNlY3Rpb24odGhpcy5uYW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U2VjdGlvbiA9IHRoaXNPYmplY3QuX3JlYWN0SW50ZXJuYWxGaWJlci5jaGlsZC5tZW1vaXplZFByb3BzLmNoaWxkcmVuLnByb3BzLm9uU2V0U2VjdGlvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMubG9hZENTUygpO1xyXG4gICAgICAgIHRoaXMuaW5zZXJ0Q1NTKHRoaXMuc2F2ZWRDc3MpO1xyXG4gICAgICAgIHRoaXMud2F0Y2hDb250ZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgU2V0dGluZ3MucmVtb3ZlUGFuZWwodGhpcy5pZCk7XHJcbiAgICAgICAgdGhpcy51bndhdGNoQ29udGVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHdhdGNoQ29udGVudCgpIHtcclxuICAgICAgICBpZiAodGhpcy53YXRjaGVyKSByZXR1cm4gdGhpcy5lcnJvcihcIkFscmVhZHkgd2F0Y2hpbmcgY29udGVudC5cIik7XHJcbiAgICAgICAgY29uc3QgdGltZUNhY2hlID0ge307XHJcbiAgICAgICAgdGhpcy5sb2coXCJTdGFydGluZyB0byB3YXRjaCBjb250ZW50LlwiKTtcclxuICAgICAgICB0aGlzLndhdGNoZXIgPSBmcy53YXRjaChEYXRhU3RvcmUuY3VzdG9tQ1NTLCB7cGVyc2lzdGVudDogZmFsc2V9LCBhc3luYyAoZXZlbnRUeXBlLCBmaWxlbmFtZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWV2ZW50VHlwZSB8fCAhZmlsZW5hbWUpIHJldHVybjtcclxuICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDUwKSk7XHJcbiAgICAgICAgICAgIHRyeSB7ZnMuc3RhdFN5bmMoRGF0YVN0b3JlLmN1c3RvbUNTUyk7fVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT09IFwiRU5PRU5UXCIpIHJldHVybjtcclxuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aW1lQ2FjaGVbZmlsZW5hbWVdO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zYXZlQ1NTKFwiXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXRzID0gZnMuc3RhdFN5bmMoRGF0YVN0b3JlLmN1c3RvbUNTUyk7XHJcbiAgICAgICAgICAgIGlmICghc3RhdHMgfHwgIXN0YXRzLm10aW1lIHx8ICFzdGF0cy5tdGltZS5nZXRUaW1lKCkpIHJldHVybjtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZihzdGF0cy5tdGltZS5nZXRUaW1lKCkpICE9PSBcIm51bWJlclwiKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmICh0aW1lQ2FjaGVbZmlsZW5hbWVdID09IHN0YXRzLm10aW1lLmdldFRpbWUoKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aW1lQ2FjaGVbZmlsZW5hbWVdID0gc3RhdHMubXRpbWUuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IFwiY2hhbmdlXCIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0NTUyA9IERhdGFTdG9yZS5sb2FkQ3VzdG9tQ1NTKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAobmV3Q1NTID09IHRoaXMuc2F2ZWRDc3MpIHJldHVybjtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2F2ZWRDc3MgPSBuZXdDU1M7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc2VydENTUyh0aGlzLnNhdmVkQ3NzKTtcclxuICAgICAgICAgICAgICAgIEV2ZW50cy5lbWl0KFwiY3VzdG9tY3NzLXVwZGF0ZWRcIiwgdGhpcy5zYXZlZENzcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB1bndhdGNoQ29udGVudCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMud2F0Y2hlcikgcmV0dXJuIHRoaXMuZXJyb3IoXCJXYXMgbm90IHdhdGNoaW5nIGNvbnRlbnQuXCIpO1xyXG4gICAgICAgIHRoaXMud2F0Y2hlci5jbG9zZSgpO1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLndhdGNoZXI7XHJcbiAgICAgICAgdGhpcy5sb2coXCJObyBsb25nZXIgd2F0Y2hpbmcgY29udGVudC5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2UodmFsdWUpIHtcclxuICAgICAgICBpZiAoIVNldHRpbmdzLmdldChcInNldHRpbmdzXCIsIFwiY3VzdG9tY3NzXCIsIFwibGl2ZVVwZGF0ZVwiKSkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuaW5zZXJ0Q1NTKHZhbHVlKTtcclxuICAgICAgICB0aGlzLnNhdmVDU1ModmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRDU1MoKSB7XHJcbiAgICAgICAgdGhpcy5zYXZlZENzcyA9IERhdGFTdG9yZS5sb2FkQ3VzdG9tQ1NTKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zZXJ0Q1NTKG5ld0Nzcykge1xyXG4gICAgICAgIGlmICh0eXBlb2YobmV3Q3NzKSA9PT0gXCJ1bmRlZmluZWRcIikgbmV3Q3NzID0gdGhpcy5pbnNlcnRlZENzcztcclxuICAgICAgICBlbHNlIHRoaXMuaW5zZXJ0ZWRDc3MgPSBuZXdDc3M7XHJcbiAgICAgICAgLy8gaWYgKCQoXCIjY3VzdG9tY3NzXCIpLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgLy8gICAgICQoXCJoZWFkXCIpLmFwcGVuZChcIjxzdHlsZSBpZD1cXFwiY3VzdG9tY3NzXFxcIj48L3N0eWxlPlwiKTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gJChcIiNjdXN0b21jc3NcIikudGV4dChuZXdDc3MpLmRldGFjaCgpLmFwcGVuZFRvKGRvY3VtZW50LmhlYWQpO1xyXG4gICAgICAgIERPTU1hbmFnZXIudXBkYXRlQ3VzdG9tQ1NTKG5ld0Nzcyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZUNTUyhuZXdDc3MpIHtcclxuICAgICAgICBpZiAodHlwZW9mKG5ld0NzcykgIT09IFwidW5kZWZpbmVkXCIpIHRoaXMuc2F2ZWRDc3MgPSBuZXdDc3M7XHJcbiAgICAgICAgRGF0YVN0b3JlLnNhdmVDdXN0b21DU1ModGhpcy5zYXZlZENzcyk7XHJcbiAgICB9XHJcblxyXG4gICAgb3Blbk5hdGl2ZSgpIHtcclxuICAgICAgICBlbGVjdHJvbi5zaGVsbC5vcGVuRXh0ZXJuYWwoYGZpbGU6Ly8ke0RhdGFTdG9yZS5jdXN0b21DU1N9YCk7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlbkRldGFjaGVkKGN1cnJlbnRDU1MpIHtcclxuICAgICAgICBjb25zdCBlZGl0b3JSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKTtcclxuICAgICAgICBjb25zdCBlZGl0b3IgPSBSZWFjdC5jcmVhdGVFbGVtZW50KENTU0VkaXRvciwge1xyXG4gICAgICAgICAgICBpZDogXCJiZC1mbG9hdGluZy1lZGl0b3JcIixcclxuICAgICAgICAgICAgcmVmOiBlZGl0b3JSZWYsXHJcbiAgICAgICAgICAgIGNzczogY3VycmVudENTUyxcclxuICAgICAgICAgICAgc2F2ZTogdGhpcy5zYXZlQ1NTLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgIHVwZGF0ZTogdGhpcy5pbnNlcnRDU1MuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgb3Blbk5hdGl2ZTogdGhpcy5vcGVuTmF0aXZlLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgIG9uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcylcclxuICAgICAgICB9KTtcclxuICAgIFxyXG4gICAgICAgIEZsb2F0aW5nV2luZG93Q29udGFpbmVyLm9wZW4oe1xyXG4gICAgICAgICAgICBvbkNsb3NlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzRGV0YWNoZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25SZXNpemU6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghZWRpdG9yUmVmIHx8ICFlZGl0b3JSZWYuY3VycmVudCB8fCAhZWRpdG9yUmVmLmN1cnJlbnQucmVzaXplKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICBlZGl0b3JSZWYuY3VycmVudC5yZXNpemUoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdGl0bGU6IFwiQ3VzdG9tIENTUyBFZGl0b3JcIixcclxuICAgICAgICAgICAgaWQ6IFwiZmxvYXRpbmctZWRpdG9yLXdpbmRvd1wiLFxyXG4gICAgICAgICAgICBoZWlnaHQ6IDQ3MCxcclxuICAgICAgICAgICAgd2lkdGg6IDQxMCxcclxuICAgICAgICAgICAgY2VudGVyOiB0cnVlLFxyXG4gICAgICAgICAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiBlZGl0b3IsXHJcbiAgICAgICAgICAgIGNvbmZpcm1DbG9zZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFlZGl0b3JSZWYgfHwgIWVkaXRvclJlZi5jdXJyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZWRpdG9yUmVmLmN1cnJlbnQuaGFzVW5zYXZlZENoYW5nZXM7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGNvbmZpcm1hdGlvblRleHQ6IFwiWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzIHRvIHlvdXIgQ3VzdG9tIENTUy4gQ2xvc2luZyB0aGlzIHdpbmRvdyB3aWxsIGxvc2UgYWxsIHRob3NlIGNoYW5nZXMuXCJcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmlzRGV0YWNoZWQgPSB0cnVlO1xyXG4gICAgICAgIFVzZXJTZXR0aW5ncy5jbG9zZSgpO1xyXG4gICAgICAgIERpc3BhdGNoZXIuZGlydHlEaXNwYXRjaCh7dHlwZTogQWN0aW9uVHlwZXMuTEFZRVJfUE9QfSk7XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/builtins/customcss.js\n");
/***/ }),
/***/ "./src/builtins/darkmode.js":
/*!**********************************!*\
!*** ./src/builtins/darkmode.js ***!
\**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class DarkMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"DarkMode\";\n }\n\n get category() {\n return \"appearance\";\n }\n\n get id() {\n return \"darkMode\";\n }\n\n enabled() {\n $(\"#app-mount\").addClass(\"bda-dark\").addClass(\"bd-dark\");\n }\n\n disabled() {\n $(\"#app-mount\").removeClass(\"bda-dark\").removeClass(\"bd-dark\");\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2Rhcmttb2RlLmpzPzVkZGUiXSwibmFtZXMiOlsiRGFya01vZGUiLCJCdWlsdGluIiwibmFtZSIsImNhdGVnb3J5IiwiaWQiLCJlbmFibGVkIiwiJCIsImFkZENsYXNzIiwiZGlzYWJsZWQiLCJyZW1vdmVDbGFzcyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBRWUsbUVBQUksTUFBTUEsUUFBTixTQUF1QkMsd0RBQXZCLENBQStCO0FBQzlDLE1BQUlDLElBQUosR0FBVztBQUFDLFdBQU8sVUFBUDtBQUFtQjs7QUFDL0IsTUFBSUMsUUFBSixHQUFlO0FBQUMsV0FBTyxZQUFQO0FBQXFCOztBQUNyQyxNQUFJQyxFQUFKLEdBQVM7QUFBQyxXQUFPLFVBQVA7QUFBbUI7O0FBRTdCQyxTQUFPLEdBQUc7QUFDTkMsS0FBQyxDQUFDLFlBQUQsQ0FBRCxDQUFnQkMsUUFBaEIsQ0FBeUIsVUFBekIsRUFBcUNBLFFBQXJDLENBQThDLFNBQTlDO0FBQ0g7O0FBRURDLFVBQVEsR0FBRztBQUNQRixLQUFDLENBQUMsWUFBRCxDQUFELENBQWdCRyxXQUFoQixDQUE0QixVQUE1QixFQUF3Q0EsV0FBeEMsQ0FBb0QsU0FBcEQ7QUFDSDs7QUFYNkMsQ0FBbkMsRUFBZiIsImZpbGUiOiIuL3NyYy9idWlsdGlucy9kYXJrbW9kZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBEYXJrTW9kZSBleHRlbmRzIEJ1aWx0aW4ge1xyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiRGFya01vZGVcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiYXBwZWFyYW5jZVwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJkYXJrTW9kZVwiO31cclxuXHJcbiAgICBlbmFibGVkKCkge1xyXG4gICAgICAgICQoXCIjYXBwLW1vdW50XCIpLmFkZENsYXNzKFwiYmRhLWRhcmtcIikuYWRkQ2xhc3MoXCJiZC1kYXJrXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgICQoXCIjYXBwLW1vdW50XCIpLnJlbW92ZUNsYXNzKFwiYmRhLWRhcmtcIikucmVtb3ZlQ2xhc3MoXCJiZC1kYXJrXCIpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/darkmode.js\n");
/***/ }),
/***/ "./src/builtins/developermode.js":
/*!***************************************!*\
!*** ./src/builtins/developermode.js ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class DeveloperMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"DeveloperMode\";\n }\n\n get category() {\n return \"developer\";\n }\n\n get id() {\n return \"developerMode\";\n }\n\n get selectorModeID() {\n return \"copySelector\";\n }\n\n get selectorMode() {\n return this.get(this.selectorModeID);\n }\n\n constructor() {\n super();\n this.enableSelectors = this.enableSelectors.bind(this);\n this.disableSelectors = this.disableSelectors.bind(this);\n }\n\n enabled() {\n $(window).on(\"keydown.bdDevmode\", e => {\n if (e.which === 119 || e.which == 118) {\n //F8\n this.log(\"Debugger Activated\");\n debugger; // eslint-disable-line no-debugger\n }\n });\n if (this.selectorMode) this.enableSelectors();\n this.selectorCancel = this.registerSetting(this.selectorModeID, this.enableSelectors, this.disableSelectors);\n }\n\n disabled() {\n $(window).off(\"keydown.bdDevmode\");\n if (this.selectorMode) this.disableSelectors();\n if (this.selectorCancel) this.selectorCancel();\n }\n\n enableSelectors() {\n $(document).on(\"contextmenu.bdDevmode\", e => {\n this.lastSelector = this.getSelector(e.toElement);\n\n const attach = () => {\n let cm = $(\".contextMenu-HLZMGh\");\n\n if (cm.length <= 0) {\n cm = $(\"<div class=\\\"contextMenu-HLZMGh bd-context-menu\\\"></div>\");\n cm.addClass($(\".app, .app-2rEoOp\").hasClass(\"theme-dark\") ? \"theme-dark\" : \"theme-light\");\n cm.appendTo(\".app, .app-2rEoOp\");\n cm.css(\"top\", e.clientY);\n cm.css(\"left\", e.clientX);\n $(document).on(\"click.bdDevModeCtx\", () => {\n cm.remove();\n $(document).off(\".bdDevModeCtx\");\n });\n $(document).on(\"contextmenu.bdDevModeCtx\", () => {\n cm.remove();\n $(document).off(\".bdDevModeCtx\");\n });\n $(document).on(\"keyup.bdDevModeCtx\", event => {\n if (event.keyCode === 27) {\n cm.remove();\n $(document).off(\".bdDevModeCtx\");\n }\n });\n }\n\n const cmo = $(\"<div/>\", {\n \"class\": \"itemGroup-1tL0uz\"\n });\n const cmi = $(\"<div/>\", {\n \"class\": \"item-1Yvehc\",\n \"click\": () => {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].ElectronModule.copy(this.lastSelector);\n cm.hide();\n }\n }).append($(\"<span/>\", {\n text: \"Copy Selector\"\n }));\n cmo.append(cmi);\n cm.append(cmo);\n if (cm.hasClass(\"undefined\")) cm.css(\"top\", \"-=\" + cmo.outerHeight());\n };\n\n setImmediate(attach);\n e.stopPropagation();\n });\n }\n\n disableSelectors() {\n $(document).off(\"contextmenu.bdDevmode\");\n $(document).off(\"contextmenu.bdDevModeCtx\");\n }\n\n getRules(element, css = element.ownerDocument.styleSheets) {\n // return [].concat(...[...css].map(s => [...s.cssRules || []])).filter(r => r && r.selectorText && element.matches(r.selectorText) && r.style.length && r.selectorText.split(\", \").length < 8);\n const sheets = [...css].filter(s => !s.href || !s.href.includes(\"BetterDiscordApp\"));\n const rules = sheets.map(s => [...(s.cssRules || [])]).flat();\n const elementRules = rules.filter(r => r && r.selectorText && element.matches(r.selectorText) && r.style.length && r.selectorText.split(\", \").length < 8 && !r.selectorText.split(\", \").includes(\"*\"));\n return elementRules;\n }\n\n getSelector(element) {\n if (element.id) return `#${element.id}`;\n const rules = this.getRules(element);\n const latestRule = rules[rules.length - 1];\n if (latestRule) return latestRule.selectorText;else if (element.classList.length) return `.${Array.from(element.classList).join(\".\")}`;\n return `.${Array.from(element.parentElement.classList).join(\".\")}`;\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2RldmVsb3Blcm1vZGUuanM/NjY2OSJdLCJuYW1lcyI6WyJEZXZlbG9wZXJNb2RlIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwic2VsZWN0b3JNb2RlSUQiLCJzZWxlY3Rvck1vZGUiLCJnZXQiLCJjb25zdHJ1Y3RvciIsImVuYWJsZVNlbGVjdG9ycyIsImJpbmQiLCJkaXNhYmxlU2VsZWN0b3JzIiwiZW5hYmxlZCIsIiQiLCJ3aW5kb3ciLCJvbiIsImUiLCJ3aGljaCIsImxvZyIsInNlbGVjdG9yQ2FuY2VsIiwicmVnaXN0ZXJTZXR0aW5nIiwiZGlzYWJsZWQiLCJvZmYiLCJkb2N1bWVudCIsImxhc3RTZWxlY3RvciIsImdldFNlbGVjdG9yIiwidG9FbGVtZW50IiwiYXR0YWNoIiwiY20iLCJsZW5ndGgiLCJhZGRDbGFzcyIsImhhc0NsYXNzIiwiYXBwZW5kVG8iLCJjc3MiLCJjbGllbnRZIiwiY2xpZW50WCIsInJlbW92ZSIsImV2ZW50Iiwia2V5Q29kZSIsImNtbyIsImNtaSIsIkRpc2NvcmRNb2R1bGVzIiwiRWxlY3Ryb25Nb2R1bGUiLCJjb3B5IiwiaGlkZSIsImFwcGVuZCIsInRleHQiLCJvdXRlckhlaWdodCIsInNldEltbWVkaWF0ZSIsInN0b3BQcm9wYWdhdGlvbiIsImdldFJ1bGVzIiwiZWxlbWVudCIsIm93bmVyRG9jdW1lbnQiLCJzdHlsZVNoZWV0cyIsInNoZWV0cyIsImZpbHRlciIsInMiLCJocmVmIiwiaW5jbHVkZXMiLCJydWxlcyIsIm1hcCIsImNzc1J1bGVzIiwiZmxhdCIsImVsZW1lbnRSdWxlcyIsInIiLCJzZWxlY3RvclRleHQiLCJtYXRjaGVzIiwic3R5bGUiLCJzcGxpdCIsImxhdGVzdFJ1bGUiLCJjbGFzc0xpc3QiLCJBcnJheSIsImZyb20iLCJqb2luIiwicGFyZW50RWxlbWVudCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtB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QUdWLEtBQUssQ0FBQ0EsS0FBSyxDQUFDOUIsTUFBTixHQUFlLENBQWhCLENBQXhCO0FBQ0EsUUFBSXdDLFVBQUosRUFBZ0IsT0FBT0EsVUFBVSxDQUFDSixZQUFsQixDQUFoQixLQUNLLElBQUlkLE9BQU8sQ0FBQ21CLFNBQVIsQ0FBa0J6QyxNQUF0QixFQUE4QixPQUFRLElBQUcwQyxLQUFLLENBQUNDLElBQU4sQ0FBV3JCLE9BQU8sQ0FBQ21CLFNBQW5CLEVBQThCRyxJQUE5QixDQUFtQyxHQUFuQyxDQUF3QyxFQUFuRDtBQUNuQyxXQUFRLElBQUdGLEtBQUssQ0FBQ0MsSUFBTixDQUFXckIsT0FBTyxDQUFDdUIsYUFBUixDQUFzQkosU0FBakMsRUFBNENHLElBQTVDLENBQWlELEdBQWpELENBQXNELEVBQWpFO0FBQ0g7O0FBbEdrRCxDQUF4QyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL2RldmVsb3Blcm1vZGUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbHRpbiBmcm9tIFwiLi4vc3RydWN0cy9idWlsdGluXCI7XHJcbmltcG9ydCB7RGlzY29yZE1vZHVsZXN9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgRGV2ZWxvcGVyTW9kZSBleHRlbmRzIEJ1aWx0aW4ge1xyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiRGV2ZWxvcGVyTW9kZVwiO31cclxuICAgIGdldCBjYXRlZ29yeSgpIHtyZXR1cm4gXCJkZXZlbG9wZXJcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwiZGV2ZWxvcGVyTW9kZVwiO31cclxuICAgIGdldCBzZWxlY3Rvck1vZGVJRCgpIHtyZXR1cm4gXCJjb3B5U2VsZWN0b3JcIjt9XHJcbiAgICBnZXQgc2VsZWN0b3JNb2RlKCkge3JldHVybiB0aGlzLmdldCh0aGlzLnNlbGVjdG9yTW9kZUlEKTt9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmVuYWJsZVNlbGVjdG9ycyA9IHRoaXMuZW5hYmxlU2VsZWN0b3JzLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlU2VsZWN0b3JzID0gdGhpcy5kaXNhYmxlU2VsZWN0b3JzLmJpbmQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZW5hYmxlZCgpIHtcclxuICAgICAgICAkKHdpbmRvdykub24oXCJrZXlkb3duLmJkRGV2bW9kZVwiLCAoZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZS53aGljaCA9PT0gMTE5IHx8IGUud2hpY2ggPT0gMTE4KSB7Ly9GOFxyXG4gICAgICAgICAgICAgICB0aGlzLmxvZyhcIkRlYnVnZ2VyIEFjdGl2YXRlZFwiKTtcclxuICAgICAgICAgICAgICAgZGVidWdnZXI7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tZGVidWdnZXJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdG9yTW9kZSkgdGhpcy5lbmFibGVTZWxlY3RvcnMoKTtcclxuICAgICAgICB0aGlzLnNlbGVjdG9yQ2FuY2VsID0gdGhpcy5yZWdpc3RlclNldHRpbmcodGhpcy5zZWxlY3Rvck1vZGVJRCwgdGhpcy5lbmFibGVTZWxlY3RvcnMsIHRoaXMuZGlzYWJsZVNlbGVjdG9ycyk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgJCh3aW5kb3cpLm9mZihcImtleWRvd24uYmREZXZtb2RlXCIpO1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdG9yTW9kZSkgdGhpcy5kaXNhYmxlU2VsZWN0b3JzKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0b3JDYW5jZWwpIHRoaXMuc2VsZWN0b3JDYW5jZWwoKTtcclxuICAgIH1cclxuXHJcbiAgICBlbmFibGVTZWxlY3RvcnMoKSB7XHJcbiAgICAgICAgJChkb2N1bWVudCkub24oXCJjb250ZXh0bWVudS5iZERldm1vZGVcIiwgKGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sYXN0U2VsZWN0b3IgPSB0aGlzLmdldFNlbGVjdG9yKGUudG9FbGVtZW50KTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGF0dGFjaCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgbGV0IGNtID0gJChcIi5jb250ZXh0TWVudS1ITFpNR2hcIik7XHJcbiAgICAgICAgICAgICAgIGlmIChjbS5sZW5ndGggPD0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgY20gPSAkKFwiPGRpdiBjbGFzcz1cXFwiY29udGV4dE1lbnUtSExaTUdoIGJkLWNvbnRleHQtbWVudVxcXCI+PC9kaXY+XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgY20uYWRkQ2xhc3MoJChcIi5hcHAsIC5hcHAtMnJFb09wXCIpLmhhc0NsYXNzKFwidGhlbWUtZGFya1wiKSA/IFwidGhlbWUtZGFya1wiIDogXCJ0aGVtZS1saWdodFwiKTtcclxuICAgICAgICAgICAgICAgICAgIGNtLmFwcGVuZFRvKFwiLmFwcCwgLmFwcC0yckVvT3BcIik7XHJcbiAgICAgICAgICAgICAgICAgICBjbS5jc3MoXCJ0b3BcIiwgZS5jbGllbnRZKTtcclxuICAgICAgICAgICAgICAgICAgIGNtLmNzcyhcImxlZnRcIiwgZS5jbGllbnRYKTtcclxuICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2suYmREZXZNb2RlQ3R4XCIsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICBjbS5yZW1vdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCIuYmREZXZNb2RlQ3R4XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNvbnRleHRtZW51LmJkRGV2TW9kZUN0eFwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgY20ucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkub2ZmKFwiLmJkRGV2TW9kZUN0eFwiKTtcclxuICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJrZXl1cC5iZERldk1vZGVDdHhcIiwgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDI3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCIuYmREZXZNb2RlQ3R4XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICBjb25zdCBjbW8gPSAkKFwiPGRpdi8+XCIsIHtcclxuICAgICAgICAgICAgICAgICAgIFwiY2xhc3NcIjogXCJpdGVtR3JvdXAtMXRMMHV6XCJcclxuICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgIGNvbnN0IGNtaSA9ICQoXCI8ZGl2Lz5cIiwge1xyXG4gICAgICAgICAgICAgICAgICAgXCJjbGFzc1wiOiBcIml0ZW0tMVl2ZWhjXCIsXHJcbiAgICAgICAgICAgICAgICAgICBcImNsaWNrXCI6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICBEaXNjb3JkTW9kdWxlcy5FbGVjdHJvbk1vZHVsZS5jb3B5KHRoaXMubGFzdFNlbGVjdG9yKTtcclxuICAgICAgICAgICAgICAgICAgICAgICBjbS5oaWRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIH0pLmFwcGVuZCgkKFwiPHNwYW4vPlwiLCB7dGV4dDogXCJDb3B5IFNlbGVjdG9yXCJ9KSk7XHJcbiAgICAgICAgICAgICAgIGNtby5hcHBlbmQoY21pKTtcclxuICAgICAgICAgICAgICAgY20uYXBwZW5kKGNtbyk7XHJcbiAgICAgICAgICAgICAgIGlmIChjbS5oYXNDbGFzcyhcInVuZGVmaW5lZFwiKSkgY20uY3NzKFwidG9wXCIsICBcIi09XCIgKyBjbW8ub3V0ZXJIZWlnaHQoKSk7XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBzZXRJbW1lZGlhdGUoYXR0YWNoKTtcclxuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkaXNhYmxlU2VsZWN0b3JzKCkge1xyXG4gICAgICAgICQoZG9jdW1lbnQpLm9mZihcImNvbnRleHRtZW51LmJkRGV2bW9kZVwiKTtcclxuICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCJjb250ZXh0bWVudS5iZERldk1vZGVDdHhcIik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UnVsZXMoZWxlbWVudCwgY3NzID0gZWxlbWVudC5vd25lckRvY3VtZW50LnN0eWxlU2hlZXRzKSB7XHJcbiAgICAgICAgLy8gcmV0dXJuIFtdLmNvbmNhdCguLi5bLi4uY3NzXS5tYXAocyA9PiBbLi4ucy5jc3NSdWxlcyB8fCBbXV0pKS5maWx0ZXIociA9PiByICYmIHIuc2VsZWN0b3JUZXh0ICYmIGVsZW1lbnQubWF0Y2hlcyhyLnNlbGVjdG9yVGV4dCkgJiYgci5zdHlsZS5sZW5ndGggJiYgci5zZWxlY3RvclRleHQuc3BsaXQoXCIsIFwiKS5sZW5ndGggPCA4KTtcclxuICAgICAgICBjb25zdCBzaGVldHMgPSBbLi4uY3NzXS5maWx0ZXIocyA9PiAhcy5ocmVmIHx8ICFzLmhyZWYuaW5jbHVkZXMoXCJCZXR0ZXJEaXNjb3JkQXBwXCIpKTtcclxuICAgICAgICBjb25zdCBydWxlcyA9IHNoZWV0cy5tYXAocyA9PiBbLi4uKHMuY3NzUnVsZXMgfHwgW10pXSkuZmxhdCgpO1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnRSdWxlcyA9IHJ1bGVzLmZpbHRlcihyID0+IHIgJiYgci5zZWxlY3RvclRleHQgJiYgZWxlbWVudC5tYXRjaGVzKHIuc2VsZWN0b3JUZXh0KSAmJiByLnN0eWxlLmxlbmd0aCAmJiByLnNlbGVjdG9yVGV4dC5zcGxpdChcIiwgXCIpLmxlbmd0aCA8IDggJiYgIXIuc2VsZWN0b3JUZXh0LnNwbGl0KFwiLCBcIikuaW5jbHVkZXMoXCIqXCIpKTtcclxuICAgICAgICByZXR1cm4gZWxlbWVudFJ1bGVzO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFNlbGVjdG9yKGVsZW1lbnQpIHtcclxuICAgICAgICBpZiAoZWxlbWVudC5pZCkgcmV0dXJuIGAjJHtlbGVtZW50LmlkfWA7XHJcbiAgICAgICAgY29uc3QgcnVsZXMgPSB0aGlzLmdldFJ1bGVzKGVsZW1lbnQpO1xyXG4gICAgICAgIGNvbnN0IGxhdGVzdFJ1bGUgPSBydWxlc1tydWxlcy5sZW5ndGggLSAxXTtcclxuICAgICAgICBpZiAobGF0ZXN0UnVsZSkgcmV0dXJuIGxhdGVzdFJ1bGUuc2VsZWN0b3JUZXh0O1xyXG4gICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuY2xhc3NMaXN0Lmxlbmd0aCkgcmV0dXJuIGAuJHtBcnJheS5mcm9tKGVsZW1lbnQuY2xhc3NMaXN0KS5qb2luKFwiLlwiKX1gO1xyXG4gICAgICAgIHJldHVybiBgLiR7QXJyYXkuZnJvbShlbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0KS5qb2luKFwiLlwiKX1gO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/developermode.js\n");
/***/ }),
/***/ "./src/builtins/emoteautocaps.js":
/*!***************************************!*\
!*** ./src/builtins/emoteautocaps.js ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _emotes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emotes */ \"./src/builtins/emotes.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class EmoteAutocaps extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"EmoteAutocapitalize\";\n }\n\n get collection() {\n return \"emotes\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"autoCaps\";\n }\n\n enabled() {\n $(\"body\").off(\".bdac\");\n $(\"body\").on(\"keyup.bdac change.bdac paste.bdac\", $(\".channelTextArea-1LDbYG textarea:first\"), () => {\n const text = $(\".channelTextArea-1LDbYG textarea:first\").val();\n if (text == undefined) return;\n const lastWord = text.split(\" \").pop();\n\n if (lastWord.length > 3) {\n if (lastWord == \"danSgame\") return;\n const ret = this.capitalize(lastWord.toLowerCase());\n\n if (ret !== null && ret !== undefined) {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].insertText(modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].getTextArea()[0], text.replace(lastWord, ret));\n }\n }\n });\n }\n\n disabled() {\n $(\"body\").off(\".bdac\");\n }\n\n capitalize(value) {\n const res = _emotes__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getCategory(\"TwitchGlobal\");\n\n for (const p in res) {\n if (res.hasOwnProperty(p) && value == (p + \"\").toLowerCase()) {\n return p;\n }\n }\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2Vtb3RlYXV0b2NhcHMuanM/MTY0NyJdLCJuYW1lcyI6WyJFbW90ZUF1dG9jYXBzIiwiQnVpbHRpbiIsIm5hbWUiLCJjb2xsZWN0aW9uIiwiY2F0ZWdvcnkiLCJpZCIsImVuYWJsZWQiLCIkIiwib2ZmIiwib24iLCJ0ZXh0IiwidmFsIiwidW5kZWZpbmVkIiwibGFzdFdvcmQiLCJzcGxpdCIsInBvcCIsImxlbmd0aCIsInJldCIsImNhcGl0YWxpemUiLCJ0b0xvd2VyQ2FzZSIsIlV0aWxpdGllcyIsImluc2VydFRleHQiLCJnZXRUZXh0QXJlYSIsInJlcGxhY2UiLCJkaXNhYmxlZCIsInZhbHVlIiwicmVzIiwiRW1vdGVNb2R1bGUiLCJnZXRDYXRlZ29yeSIsInAiLCJoYXNPd25Qcm9wZXJ0eSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBRUE7QUFFZSxtRUFBSSxNQUFNQSxhQUFOLFNBQTRCQyx3REFBNUIsQ0FBb0M7QUFDbkQsTUFBSUMsSUFBSixHQUFXO0FBQUMsV0FBTyxxQkFBUDtBQUE4Qjs7QUFDMUMsTUFBSUMsVUFBSixHQUFpQjtBQUFDLFdBQU8sUUFBUDtBQUFpQjs7QUFDbkMsTUFBSUMsUUFBSixHQUFlO0FBQUMsV0FBTyxTQUFQO0FBQWtCOztBQUNsQyxNQUFJQyxFQUFKLEdBQVM7QUFBQyxXQUFPLFVBQVA7QUFBbUI7O0FBRTdCQyxTQUFPLEdBQUc7QUFDTkMsS0FBQyxDQUFDLE1BQUQsQ0FBRCxDQUFVQyxHQUFWLENBQWMsT0FBZDtBQUNBRCxLQUFDLENBQUMsTUFBRCxDQUFELENBQVVFLEVBQVYsQ0FBYSxtQ0FBYixFQUFrREYsQ0FBQyxDQUFDLHdDQUFELENBQW5ELEVBQStGLE1BQU07QUFDakcsWUFBTUcsSUFBSSxHQUFHSCxDQUFDLENBQUMsd0NBQUQsQ0FBRCxDQUE0Q0ksR0FBNUMsRUFBYjtBQUNBLFVBQUlELElBQUksSUFBSUUsU0FBWixFQUF1QjtBQUV2QixZQUFNQyxRQUFRLEdBQUdILElBQUksQ0FBQ0ksS0FBTCxDQUFXLEdBQVgsRUFBZ0JDLEdBQWhCLEVBQWpCOztBQUNBLFVBQUlGLFFBQVEsQ0FBQ0csTUFBVCxHQUFrQixDQUF0QixFQUF5QjtBQUNyQixZQUFJSCxRQUFRLElBQUksVUFBaEIsRUFBNEI7QUFDNUIsY0FBTUksR0FBRyxHQUFHLEtBQUtDLFVBQUwsQ0FBZ0JMLFFBQVEsQ0FBQ00sV0FBVCxFQUFoQixDQUFaOztBQUNBLFlBQUlGLEdBQUcsS0FBSyxJQUFSLElBQWdCQSxHQUFHLEtBQUtMLFNBQTVCLEVBQXVDO0FBQ25DUSwyREFBUyxDQUFDQyxVQUFWLENBQXFCRCxpREFBUyxDQUFDRSxXQUFWLEdBQXdCLENBQXhCLENBQXJCLEVBQWlEWixJQUFJLENBQUNhLE9BQUwsQ0FBYVYsUUFBYixFQUF1QkksR0FBdkIsQ0FBakQ7QUFDSDtBQUNKO0FBQ0osS0FaRDtBQWFIOztBQUVETyxVQUFRLEdBQUc7QUFDUGpCLEtBQUMsQ0FBQyxNQUFELENBQUQsQ0FBVUMsR0FBVixDQUFjLE9BQWQ7QUFDSDs7QUFFRFUsWUFBVSxDQUFDTyxLQUFELEVBQVE7QUFDZCxVQUFNQyxHQUFHLEdBQUdDLCtDQUFXLENBQUNDLFdBQVosQ0FBd0IsY0FBeEIsQ0FBWjs7QUFDQSxTQUFLLE1BQU1DLENBQVgsSUFBZ0JILEdBQWhCLEVBQXFCO0FBQ2pCLFVBQUlBLEdBQUcsQ0FBQ0ksY0FBSixDQUFtQkQsQ0FBbkIsS0FBeUJKLEtBQUssSUFBSSxDQUFDSSxDQUFDLEdBQUcsRUFBTCxFQUFTVixXQUFULEVBQXRDLEVBQThEO0FBQzFELGVBQU9VLENBQVA7QUFDSDtBQUNKO0FBQ0o7O0FBbENrRCxDQUF4QyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL2Vtb3RlYXV0b2NhcHMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbHRpbiBmcm9tIFwiLi4vc3RydWN0cy9idWlsdGluXCI7XHJcblxyXG5pbXBvcnQge1V0aWxpdGllc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmltcG9ydCBFbW90ZU1vZHVsZSBmcm9tIFwiLi9lbW90ZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBFbW90ZUF1dG9jYXBzIGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJFbW90ZUF1dG9jYXBpdGFsaXplXCI7fVxyXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7cmV0dXJuIFwiZW1vdGVzXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImdlbmVyYWxcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwiYXV0b0NhcHNcIjt9XHJcblxyXG4gICAgZW5hYmxlZCgpIHtcclxuICAgICAgICAkKFwiYm9keVwiKS5vZmYoXCIuYmRhY1wiKTtcclxuICAgICAgICAkKFwiYm9keVwiKS5vbihcImtleXVwLmJkYWMgY2hhbmdlLmJkYWMgcGFzdGUuYmRhY1wiLCAkKFwiLmNoYW5uZWxUZXh0QXJlYS0xTERiWUcgdGV4dGFyZWE6Zmlyc3RcIiksICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdGV4dCA9ICQoXCIuY2hhbm5lbFRleHRBcmVhLTFMRGJZRyB0ZXh0YXJlYTpmaXJzdFwiKS52YWwoKTtcclxuICAgICAgICAgICAgaWYgKHRleHQgPT0gdW5kZWZpbmVkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgICBjb25zdCBsYXN0V29yZCA9IHRleHQuc3BsaXQoXCIgXCIpLnBvcCgpO1xyXG4gICAgICAgICAgICBpZiAobGFzdFdvcmQubGVuZ3RoID4gMykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGxhc3RXb3JkID09IFwiZGFuU2dhbWVcIikgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmV0ID0gdGhpcy5jYXBpdGFsaXplKGxhc3RXb3JkLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJldCAhPT0gbnVsbCAmJiByZXQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIFV0aWxpdGllcy5pbnNlcnRUZXh0KFV0aWxpdGllcy5nZXRUZXh0QXJlYSgpWzBdLCB0ZXh0LnJlcGxhY2UobGFzdFdvcmQsIHJldCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgJChcImJvZHlcIikub2ZmKFwiLmJkYWNcIik7XHJcbiAgICB9XHJcblxyXG4gICAgY2FwaXRhbGl6ZSh2YWx1ZSkge1xyXG4gICAgICAgIGNvbnN0IHJlcyA9IEVtb3RlTW9kdWxlLmdldENhdGVnb3J5KFwiVHdpdGNoR2xvYmFsXCIpO1xyXG4gICAgICAgIGZvciAoY29uc3QgcCBpbiByZXMpIHtcclxuICAgICAgICAgICAgaWYgKHJlcy5oYXNPd25Qcm9wZXJ0eShwKSAmJiB2YWx1ZSA9PSAocCArIFwiXCIpLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/emoteautocaps.js\n");
/***/ }),
/***/ "./src/builtins/emotemenu.js":
/*!***********************************!*\
!*** ./src/builtins/emotemenu.js ***!
\***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _emotes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emotes */ \"./src/builtins/emotes.js\");\n\n\n\nconst headerHTML = `<div id=\"bda-qem\">\n <button class=\"active\" id=\"bda-qem-twitch\">Twitch</button>\n <button id=\"bda-qem-favourite\">Favourite</button>\n <button id=\"bda-qem-emojis\">Emojis</buttond>\n</div>`;\nconst twitchEmoteHTML = `<div id=\"bda-qem-twitch-container\">\n <div class=\"scroller-wrap scrollerWrap-2lJEkd fade\">\n <div class=\"scroller scroller-2FKFPG\">\n <div class=\"emote-menu-inner\">\n\n </div>\n </div>\n </div>\n</div>`;\nconst favoritesHTML = `<div id=\"bda-qem-favourite-container\">\n <div class=\"scroller-wrap scrollerWrap-2lJEkd fade\">\n <div class=\"scroller scroller-2FKFPG\">\n <div class=\"emote-menu-inner\">\n\n </div>\n </div>\n </div>\n</div>`;\n\nconst makeEmote = (emote, url, options = {}) => {\n const {\n onContextMenu,\n onClick\n } = options;\n const emoteContainer = $(`<div class=\"emote-container\">\n <img class=\"emote-icon\" alt=\"${emote}\" src=\"${url}\" title=\"${emote}\">\n </div>`)[0];\n if (onContextMenu) emoteContainer.addEventListener(\"contextmenu\", onContextMenu);\n emoteContainer.addEventListener(\"click\", onClick);\n return emoteContainer;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class EmoteMenu extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"EmoteMenu\";\n }\n\n get collection() {\n return \"emotes\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"emoteMenu\";\n }\n\n get hideEmojisID() {\n return \"hideEmojiMenu\";\n }\n\n get hideEmojis() {\n return this.get(this.hideEmojisID);\n }\n\n constructor() {\n super();\n this.lastTab = \"bda-qem-emojis\";\n this.favoriteEmotes = {};\n this.qmeHeader = $(headerHTML)[0];\n\n for (const button of this.qmeHeader.getElementsByTagName(\"button\")) button.addEventListener(\"click\", this.switchMenu.bind(this));\n\n this.teContainer = $(twitchEmoteHTML)[0];\n this.teContainerInner = this.teContainer.querySelector(\".emote-menu-inner\");\n this.faContainer = $(favoritesHTML)[0];\n this.faContainerInner = this.faContainer.querySelector(\".emote-menu-inner\");\n this.observer = new MutationObserver(mutations => {\n for (const mutation of mutations) this.observe(mutation);\n });\n this.enableHideEmojis = this.enableHideEmojis.bind(this);\n this.disableHideEmojis = this.disableHideEmojis.bind(this);\n this.updateTwitchEmotes = this.updateTwitchEmotes.bind(this);\n }\n\n initialize() {\n super.initialize();\n const fe = modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].getBDData(\"bdfavemotes\");\n if (fe !== \"\" && fe !== null) this.favoriteEmotes = JSON.parse(window.atob(fe));\n this.updateFavorites();\n }\n\n async enabled() {\n this.log(\"Starting to observe\");\n this.observer.observe(document.getElementById(\"app-mount\"), {\n childList: true,\n subtree: true\n });\n this.hideEmojiCancel = this.registerSetting(this.hideEmojisID, this.enableHideEmojis, this.disableHideEmojis);\n if (this.hideEmojis) this.enableHideEmojis();\n if (_emotes__WEBPACK_IMPORTED_MODULE_2__[\"default\"].emotesLoaded) this.updateTwitchEmotes();\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].on(\"emotes-loaded\", this.updateTwitchEmotes);\n }\n\n disabled() {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].off(\"emotes-loaded\", this.updateTwitchEmotes);\n this.observer.disconnect();\n this.disableHideEmojis();\n if (this.hideEmojiCancel) this.hideEmojiCancel();\n }\n\n enableHideEmojis() {\n $(\".emojiPicker-3m1S-j\").addClass(\"bda-qme-hidden\");\n }\n\n disableHideEmojis() {\n $(\".emojiPicker-3m1S-j\").removeClass(\"bda-qme-hidden\");\n }\n\n insertEmote(emote) {\n const ta = modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].getTextArea();\n modules__WEBPACK_IMPORTED_MODULE_1__[\"Utilities\"].insertText(ta[0], ta.val().slice(-1) == \" \" ? ta.val() + emote : ta.val() + \" \" + emote);\n }\n\n favContext(e) {\n e.stopPropagation();\n const em = e.target.closest(\".emote-container\").children[0];\n const menu = $(`<div id=\"removemenu\" class=\"bd-context-menu context-menu theme-dark\">Remove</div>`);\n menu.css({\n top: e.pageY - $(\"#bda-qem-favourite-container\").offset().top,\n left: e.pageX - $(\"#bda-qem-favourite-container\").offset().left\n });\n $(em).parent().append(menu);\n menu.on(\"click\", event => {\n event.preventDefault();\n event.stopPropagation();\n $(em).remove();\n delete this.favoriteEmotes[$(em).attr(\"title\")];\n this.updateFavorites();\n $(document).off(\"mousedown.emotemenu\");\n });\n $(document).on(\"mousedown.emotemenu\", function (event) {\n if (event.target.id == \"removemenu\") return;\n $(\"#removemenu\").remove();\n $(document).off(\"mousedown.emotemenu\");\n });\n }\n\n switchMenu(e) {\n let id = typeof e == \"string\" ? e : $(e.target).attr(\"id\");\n if (id == \"bda-qem-emojis\" && this.hideEmojis) id = \"bda-qem-favourite\";\n const twitch = $(\"#bda-qem-twitch\");\n const fav = $(\"#bda-qem-favourite\");\n const emojis = $(\"#bda-qem-emojis\");\n twitch.removeClass(\"active\");\n fav.removeClass(\"active\");\n emojis.removeClass(\"active\");\n $(\".emojiPicker-3m1S-j\").hide();\n $(\"#bda-qem-favourite-container\").hide();\n $(\"#bda-qem-twitch-container\").hide();\n\n switch (id) {\n case \"bda-qem-twitch\":\n twitch.addClass(\"active\");\n $(\"#bda-qem-twitch-container\").show();\n break;\n\n case \"bda-qem-favourite\":\n fav.addClass(\"active\");\n $(\"#bda-qem-favourite-container\").show();\n break;\n\n case \"bda-qem-emojis\":\n emojis.addClass(\"active\");\n $(\".emojiPicker-3m1S-j\").show();\n $(\".emojiPicker-3m1S-j input\").focus();\n break;\n }\n\n if (id) this.lastTab = id;\n }\n\n observe(mutation) {\n if (!mutation.addedNodes.length || !(mutation.addedNodes[0] instanceof Element)) return;\n const node = mutation.addedNodes[0];\n if (!node.classList.contains(\"popout-3sVMXz\") || node.classList.contains(\"popoutLeft-30WmrD\") || !node.getElementsByClassName(\"emojiPicker-3m1S-j\").length) return;\n const e = $(node);\n if (this.hideEmojis) e.addClass(\"bda-qme-hidden\");else e.removeClass(\"bda-qme-hidden\");\n e.prepend(this.qmeHeader);\n e.append(this.teContainer);\n e.append(this.faContainer);\n this.switchMenu(this.lastTab);\n }\n\n favorite(name, url) {\n if (!this.favoriteEmotes.hasOwnProperty(name)) this.favoriteEmotes[name] = url;\n this.updateFavorites();\n }\n\n updateTwitchEmotes() {\n while (this.teContainerInner.firstChild) this.teContainerInner.firstChild.remove();\n\n for (const emote in _emotes__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getCategory(\"TwitchGlobal\")) {\n if (!_emotes__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getCategory(\"TwitchGlobal\").hasOwnProperty(emote)) continue;\n const url = _emotes__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getCategory(\"TwitchGlobal\")[emote];\n const emoteElement = makeEmote(emote, url, {\n onClick: this.insertEmote.bind(this, emote)\n });\n this.teContainerInner.append(emoteElement);\n }\n }\n\n updateFavorites() {\n while (this.faContainerInner.firstChild) this.faContainerInner.firstChild.remove();\n\n for (const emote in this.favoriteEmotes) {\n const url = this.favoriteEmotes[emote];\n const emoteElement = makeEmote(emote, url, {\n onClick: this.insertEmote.bind(this, emote),\n onContextMenu: this.favContext.bind(this)\n });\n this.faContainerInner.append(emoteElement);\n }\n\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DataStore\"].setBDData(\"bdfavemotes\", window.btoa(JSON.stringify(this.favoriteEmotes)));\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2Vtb3RlbWVudS5qcz8yYWNlIl0sIm5hbWVzIjpbImhlYWRlckhUTUwiLCJ0d2l0Y2hFbW90ZUhUTUwiLCJmYXZvcml0ZXNIVE1MIiwibWFrZUVtb3RlIiwiZW1vdGUiLCJ1cmwiLCJvcHRpb25zIiwib25Db250ZXh0TWVudSIsIm9uQ2xpY2siLCJlbW90ZUNvbnRhaW5lciIsIiQiLCJhZGRFdmVudExpc3RlbmVyIiwiRW1vdGVNZW51IiwiQnVpbHRpbiIsIm5hbWUiLCJjb2xsZWN0aW9uIiwiY2F0ZWdvcnkiLCJpZCIsImhpZGVFbW9qaXNJRCIsImhpZGVFbW9qaXMiLCJnZXQiLCJjb25zdHJ1Y3RvciIsImxhc3RUYWIiLCJmYXZvcml0ZUVtb3RlcyIsInFtZUhlYWRlciIsImJ1dHRvbiIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwic3dpdGNoTWVudSIsImJpbmQiLCJ0ZUNvbnRhaW5lciIsInRlQ29udGFpbmVySW5uZXIiLCJxdWVyeVNlbGVjdG9yIiwiZmFDb250YWluZXIiLCJmYUNvbnRhaW5lcklubmVyIiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwibXV0YXRpb25zIiwibXV0YXRpb24iLCJvYnNlcnZlIiwiZW5hYmxlSGlkZUVtb2ppcyIsImRpc2FibGVIaWRlRW1vamlzIiwidXBkYXRlVHdpdGNoRW1vdGVzIiwiaW5pdGlhbGl6ZSIsImZlIiwiRGF0YVN0b3JlIiwiZ2V0QkREYXRhIiwiSlNPTiIsInBhcnNlIiwid2luZG93IiwiYXRvYiIsInVwZGF0ZUZhdm9yaXRlcyIsImVuYWJsZWQiLCJsb2ciLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsImhpZGVFbW9qaUNhbmNlbCIsInJlZ2lzdGVyU2V0dGluZyIsIkVtb3RlTW9kdWxlIiwiZW1vdGVzTG9hZGVkIiwiRXZlbnRzIiwib24iLCJkaXNhYmxlZCIsIm9mZiIsImRpc2Nvbm5lY3QiLCJhZGRDbGFzcyIsInJlbW92ZUNsYXNzIiwiaW5zZXJ0RW1vdGUiLCJ0YSIsIlV0aWxpdGllcyIsImdldFRleHRBcmVhIiwiaW5zZXJ0VGV4dCIsInZhbCIsInNsaWNlIiwiZmF2Q29udGV4dCIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJlbSIsInRhcmdldCIsImNsb3Nlc3QiLCJjaGlsZHJlbiIsIm1lbnUiLCJjc3MiLCJ0b3AiLCJwYWdlWSIsIm9mZnNldCIsImxlZnQiLCJwYWdlWCIsInBhcmVudCIsImFwcGVuZCIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJyZW1vdmUiLCJhdHRyIiwidHdpdGNoIiwiZmF2IiwiZW1vamlzIiwiaGlkZSIsInNob3ciLCJmb2N1cyIsImFkZGVkTm9kZXMiLCJsZW5ndGgiLCJFbGVtZW50Iiwibm9kZSIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsInByZXBlbmQiLCJmYXZvcml0ZSIsImhhc093blByb3BlcnR5IiwiZmlyc3RDaGlsZCIsImdldENhdGVnb3J5IiwiZW1vdGVFbGVtZW50Iiwic2V0QkREYXRhIiwiYnRvYSIsInN0cmluZ2lmeSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFFQSxNQUFNQSxVQUFVLEdBQUk7Ozs7T0FBcEI7QUFNQSxNQUFNQyxlQUFlLEdBQUk7Ozs7Ozs7O09BQXpCO0FBVUEsTUFBTUMsYUFBYSxHQUFJOzs7Ozs7OztPQUF2Qjs7QUFVQSxNQUFNQyxTQUFTLEdBQUcsQ0FBQ0MsS0FBRCxFQUFRQyxHQUFSLEVBQWFDLE9BQU8sR0FBRyxFQUF2QixLQUE4QjtBQUM1QyxRQUFNO0FBQUNDLGlCQUFEO0FBQWdCQztBQUFoQixNQUEyQkYsT0FBakM7QUFDQSxRQUFNRyxjQUFjLEdBQUdDLENBQUMsQ0FBRTt1Q0FDU04sS0FBTSxVQUFTQyxHQUFJLFlBQVdELEtBQU07V0FEL0MsQ0FBRCxDQUVkLENBRmMsQ0FBdkI7QUFHQSxNQUFJRyxhQUFKLEVB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LElBQWpCLENBQXNCLElBQXRCLEVBQTRCeEIsS0FBNUIsQ0FBVjtBQUE4Q0cscUJBQWEsRUFBRSxLQUFLb0UsVUFBTCxDQUFnQi9DLElBQWhCLENBQXFCLElBQXJCO0FBQTdELE9BQWIsQ0FBOUI7QUFDQSxXQUFLSyxnQkFBTCxDQUFzQnlELE1BQXRCLENBQTZCdUIsWUFBN0I7QUFDSDs7QUFDRHJFLHFEQUFTLENBQUNzRSxTQUFWLENBQW9CLGFBQXBCLEVBQW1DbEUsTUFBTSxDQUFDbUUsSUFBUCxDQUFZckUsSUFBSSxDQUFDc0UsU0FBTCxDQUFlLEtBQUs3RixjQUFwQixDQUFaLENBQW5DO0FBQ0g7O0FBbEs4QyxDQUFwQyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL2Vtb3RlbWVudS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuaW1wb3J0IHtEYXRhU3RvcmUsIFV0aWxpdGllcywgRXZlbnRzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IEVtb3RlTW9kdWxlIGZyb20gXCIuL2Vtb3Rlc1wiO1xyXG5cclxuY29uc3QgaGVhZGVySFRNTCA9IGA8ZGl2IGlkPVwiYmRhLXFlbVwiPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cImFjdGl2ZVwiIGlkPVwiYmRhLXFlbS10d2l0Y2hcIj5Ud2l0Y2g8L2J1dHRvbj5cclxuICAgIDxidXR0b24gaWQ9XCJiZGEtcWVtLWZhdm91cml0ZVwiPkZhdm91cml0ZTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBpZD1cImJkYS1xZW0tZW1vamlzXCI+RW1vamlzPC9idXR0b25kPlxyXG48L2Rpdj5gO1xyXG5cclxuY29uc3QgdHdpdGNoRW1vdGVIVE1MID0gYDxkaXYgaWQ9XCJiZGEtcWVtLXR3aXRjaC1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlci13cmFwIHNjcm9sbGVyV3JhcC0ybEpFa2QgZmFkZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlciBzY3JvbGxlci0yRktGUEdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtb3RlLW1lbnUtaW5uZXJcIj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PmA7XHJcblxyXG5jb25zdCBmYXZvcml0ZXNIVE1MID0gYDxkaXYgaWQ9XCJiZGEtcWVtLWZhdm91cml0ZS1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlci13cmFwIHNjcm9sbGVyV3JhcC0ybEpFa2QgZmFkZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlciBzY3JvbGxlci0yRktGUEdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtb3RlLW1lbnUtaW5uZXJcIj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PmA7XHJcblxyXG5jb25zdCBtYWtlRW1vdGUgPSAoZW1vdGUsIHVybCwgb3B0aW9ucyA9IHt9KSA9PiB7XHJcbiAgICBjb25zdCB7b25Db250ZXh0TWVudSwgb25DbGlja30gPSBvcHRpb25zO1xyXG4gICAgY29uc3QgZW1vdGVDb250YWluZXIgPSAkKGA8ZGl2IGNsYXNzPVwiZW1vdGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGltZyBjbGFzcz1cImVtb3RlLWljb25cIiBhbHQ9XCIke2Vtb3RlfVwiIHNyYz1cIiR7dXJsfVwiIHRpdGxlPVwiJHtlbW90ZX1cIj5cclxuICAgIDwvZGl2PmApWzBdO1xyXG4gICAgaWYgKG9uQ29udGV4dE1lbnUpIGVtb3RlQ29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoXCJjb250ZXh0bWVudVwiLCBvbkNvbnRleHRNZW51KTtcclxuICAgIGVtb3RlQ29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBvbkNsaWNrKTtcclxuICAgIHJldHVybiBlbW90ZUNvbnRhaW5lcjtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBFbW90ZU1lbnUgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIkVtb3RlTWVudVwiO31cclxuICAgIGdldCBjb2xsZWN0aW9uKCkge3JldHVybiBcImVtb3Rlc1wiO31cclxuICAgIGdldCBjYXRlZ29yeSgpIHtyZXR1cm4gXCJnZW5lcmFsXCI7fVxyXG4gICAgZ2V0IGlkKCkge3JldHVybiBcImVtb3RlTWVudVwiO31cclxuICAgIGdldCBoaWRlRW1vamlzSUQoKSB7cmV0dXJuIFwiaGlkZUVtb2ppTWVudVwiO31cclxuICAgIGdldCBoaWRlRW1vamlzKCkge3JldHVybiB0aGlzLmdldCh0aGlzLmhpZGVFbW9qaXNJRCk7fVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5sYXN0VGFiID0gXCJiZGEtcWVtLWVtb2ppc1wiO1xyXG4gICAgICAgIHRoaXMuZmF2b3JpdGVFbW90ZXMgPSB7fTtcclxuXHJcbiAgICAgICAgdGhpcy5xbWVIZWFkZXIgPSAkKGhlYWRlckhUTUwpWzBdO1xyXG4gICAgICAgIGZvciAoY29uc3QgYnV0dG9uIG9mIHRoaXMucW1lSGVhZGVyLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiYnV0dG9uXCIpKSBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuc3dpdGNoTWVudS5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICAgICAgdGhpcy50ZUNvbnRhaW5lciA9ICQodHdpdGNoRW1vdGVIVE1MKVswXTtcclxuICAgICAgICB0aGlzLnRlQ29udGFpbmVySW5uZXIgPSB0aGlzLnRlQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXCIuZW1vdGUtbWVudS1pbm5lclwiKTtcclxuXHJcbiAgICAgICAgdGhpcy5mYUNvbnRhaW5lciA9ICQoZmF2b3JpdGVzSFRNTClbMF07XHJcbiAgICAgICAgdGhpcy5mYUNvbnRhaW5lcklubmVyID0gdGhpcy5mYUNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFwiLmVtb3RlLW1lbnUtaW5uZXJcIik7XHJcblxyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbnMgPT4ge2ZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB0aGlzLm9ic2VydmUobXV0YXRpb24pO30pO1xyXG4gICAgICAgIHRoaXMuZW5hYmxlSGlkZUVtb2ppcyA9IHRoaXMuZW5hYmxlSGlkZUVtb2ppcy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZUhpZGVFbW9qaXMgPSB0aGlzLmRpc2FibGVIaWRlRW1vamlzLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVUd2l0Y2hFbW90ZXMgPSB0aGlzLnVwZGF0ZVR3aXRjaEVtb3Rlcy5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemUoKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xyXG4gICAgICAgIGNvbnN0IGZlID0gRGF0YVN0b3JlLmdldEJERGF0YShcImJkZmF2ZW1vdGVzXCIpO1xyXG4gICAgICAgIGlmIChmZSAhPT0gXCJcIiAmJiBmZSAhPT0gbnVsbCkgdGhpcy5mYXZvcml0ZUVtb3RlcyA9IEpTT04ucGFyc2Uod2luZG93LmF0b2IoZmUpKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUZhdm9yaXRlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgdGhpcy5sb2coXCJTdGFydGluZyB0byBvYnNlcnZlXCIpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImFwcC1tb3VudFwiKSwge1xyXG4gICAgICAgICAgICBjaGlsZExpc3Q6IHRydWUsXHJcbiAgICAgICAgICAgIHN1YnRyZWU6IHRydWVcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmhpZGVFbW9qaUNhbmNlbCA9IHRoaXMucmVnaXN0ZXJTZXR0aW5nKHRoaXMuaGlkZUVtb2ppc0lELCB0aGlzLmVuYWJsZUhpZGVFbW9qaXMsIHRoaXMuZGlzYWJsZUhpZGVFbW9qaXMpO1xyXG4gICAgICAgIGlmICh0aGlzLmhpZGVFbW9qaXMpIHRoaXMuZW5hYmxlSGlkZUVtb2ppcygpO1xyXG4gICAgICAgIGlmIChFbW90ZU1vZHVsZS5lbW90ZXNMb2FkZWQpIHRoaXMudXBkYXRlVHdpdGNoRW1vdGVzKCk7XHJcbiAgICAgICAgRXZlbnRzLm9uKFwiZW1vdGVzLWxvYWRlZFwiLCB0aGlzLnVwZGF0ZVR3aXRjaEVtb3Rlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgRXZlbnRzLm9mZihcImVtb3Rlcy1sb2FkZWRcIiwgdGhpcy51cGRhdGVUd2l0Y2hFbW90ZXMpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZUhpZGVFbW9qaXMoKTtcclxuICAgICAgICBpZiAodGhpcy5oaWRlRW1vamlDYW5jZWwpIHRoaXMuaGlkZUVtb2ppQ2FuY2VsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZW5hYmxlSGlkZUVtb2ppcygpIHtcclxuICAgICAgICAkKFwiLmVtb2ppUGlja2VyLTNtMVMtalwiKS5hZGRDbGFzcyhcImJkYS1xbWUtaGlkZGVuXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVIaWRlRW1vamlzKCkge1xyXG4gICAgICAgICQoXCIuZW1vamlQaWNrZXItM20xUy1qXCIpLnJlbW92ZUNsYXNzKFwiYmRhLXFtZS1oaWRkZW5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zZXJ0RW1vdGUoZW1vdGUpIHtcclxuICAgICAgICBjb25zdCB0YSA9IFV0aWxpdGllcy5nZXRUZXh0QXJlYSgpO1xyXG4gICAgICAgIFV0aWxpdGllcy5pbnNlcnRUZXh0KHRhWzBdLCB0YS52YWwoKS5zbGljZSgtMSkgPT0gXCIgXCIgPyB0YS52YWwoKSArIGVtb3RlIDogdGEudmFsKCkgKyBcIiBcIiArIGVtb3RlKTtcclxuICAgIH1cclxuXHJcbiAgICBmYXZDb250ZXh0KGUpIHtcclxuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIGNvbnN0IGVtID0gZS50YXJnZXQuY2xvc2VzdChcIi5lbW90ZS1jb250YWluZXJcIikuY2hpbGRyZW5bMF07XHJcbiAgICAgICAgY29uc3QgbWVudSA9ICQoYDxkaXYgaWQ9XCJyZW1vdmVtZW51XCIgY2xhc3M9XCJiZC1jb250ZXh0LW1lbnUgY29udGV4dC1tZW51IHRoZW1lLWRhcmtcIj5SZW1vdmU8L2Rpdj5gKTtcclxuICAgICAgICBtZW51LmNzcyh7XHJcbiAgICAgICAgICAgIHRvcDogZS5wYWdlWSAtICQoXCIjYmRhLXFlbS1mYXZvdXJpdGUtY29udGFpbmVyXCIpLm9mZnNldCgpLnRvcCxcclxuICAgICAgICAgICAgbGVmdDogZS5wYWdlWCAtICQoXCIjYmRhLXFlbS1mYXZvdXJpdGUtY29udGFpbmVyXCIpLm9mZnNldCgpLmxlZnRcclxuICAgICAgICB9KTtcclxuICAgICAgICAkKGVtKS5wYXJlbnQoKS5hcHBlbmQobWVudSk7XHJcbiAgICAgICAgbWVudS5vbihcImNsaWNrXCIsIChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgJChlbSkucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmZhdm9yaXRlRW1vdGVzWyQoZW0pLmF0dHIoXCJ0aXRsZVwiKV07XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmF2b3JpdGVzKCk7XHJcbiAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZihcIm1vdXNlZG93bi5lbW90ZW1lbnVcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgJChkb2N1bWVudCkub24oXCJtb3VzZWRvd24uZW1vdGVtZW51XCIsIGZ1bmN0aW9uKGV2ZW50KSB7XHJcbiAgICAgICAgICAgIGlmIChldmVudC50YXJnZXQuaWQgPT0gXCJyZW1vdmVtZW51XCIpIHJldHVybjtcclxuICAgICAgICAgICAgJChcIiNyZW1vdmVtZW51XCIpLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCJtb3VzZWRvd24uZW1vdGVtZW51XCIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHN3aXRjaE1lbnUoZSkge1xyXG4gICAgICAgIGxldCBpZCA9IHR5cGVvZihlKSA9PSBcInN0cmluZ1wiID8gZSA6ICQoZS50YXJnZXQpLmF0dHIoXCJpZFwiKTtcclxuICAgICAgICBpZiAoaWQgPT0gXCJiZGEtcWVtLWVtb2ppc1wiICYmIHRoaXMuaGlkZUVtb2ppcykgaWQgPSBcImJkYS1xZW0tZmF2b3VyaXRlXCI7XHJcbiAgICAgICAgY29uc3QgdHdpdGNoID0gJChcIiNiZGEtcWVtLXR3aXRjaFwiKTtcclxuICAgICAgICBjb25zdCBmYXYgPSAkKFwiI2JkYS1xZW0tZmF2b3VyaXRlXCIpO1xyXG4gICAgICAgIGNvbnN0IGVtb2ppcyA9ICQoXCIjYmRhLXFlbS1lbW9qaXNcIik7XHJcbiAgICAgICAgdHdpdGNoLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpO1xyXG4gICAgICAgIGZhdi5yZW1vdmVDbGFzcyhcImFjdGl2ZVwiKTtcclxuICAgICAgICBlbW9qaXMucmVtb3ZlQ2xhc3MoXCJhY3RpdmVcIik7XHJcblxyXG4gICAgICAgICQoXCIuZW1vamlQaWNrZXItM20xUy1qXCIpLmhpZGUoKTtcclxuICAgICAgICAkKFwiI2JkYS1xZW0tZmF2b3VyaXRlLWNvbnRhaW5lclwiKS5oaWRlKCk7XHJcbiAgICAgICAgJChcIiNiZGEtcWVtLXR3aXRjaC1jb250YWluZXJcIikuaGlkZSgpO1xyXG5cclxuICAgICAgICBzd2l0Y2ggKGlkKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJiZGEtcWVtLXR3aXRjaFwiOlxyXG4gICAgICAgICAgICAgICAgdHdpdGNoLmFkZENsYXNzKFwiYWN0aXZlXCIpO1xyXG4gICAgICAgICAgICAgICAgJChcIiNiZGEtcWVtLXR3aXRjaC1jb250YWluZXJcIikuc2hvdygpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJiZGEtcWVtLWZhdm91cml0ZVwiOlxyXG4gICAgICAgICAgICAgICAgZmF2LmFkZENsYXNzKFwiYWN0aXZlXCIpO1xyXG4gICAgICAgICAgICAgICAgJChcIiNiZGEtcWVtLWZhdm91cml0ZS1jb250YWluZXJcIikuc2hvdygpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJiZGEtcWVtLWVtb2ppc1wiOlxyXG4gICAgICAgICAgICAgICAgZW1vamlzLmFkZENsYXNzKFwiYWN0aXZlXCIpO1xyXG4gICAgICAgICAgICAgICAgJChcIi5lbW9qaVBpY2tlci0zbTFTLWpcIikuc2hvdygpO1xyXG4gICAgICAgICAgICAgICAgJChcIi5lbW9qaVBpY2tlci0zbTFTLWogaW5wdXRcIikuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaWQpIHRoaXMubGFzdFRhYiA9IGlkO1xyXG4gICAgfVxyXG5cclxuICAgIG9ic2VydmUobXV0YXRpb24pIHtcclxuICAgICAgICBpZiAoIW11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoIHx8ICEobXV0YXRpb24uYWRkZWROb2Rlc1swXSBpbnN0YW5jZW9mIEVsZW1lbnQpKSByZXR1cm47XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IG11dGF0aW9uLmFkZGVkTm9kZXNbMF07XHJcbiAgICAgICAgaWYgKCFub2RlLmNsYXNzTGlzdC5jb250YWlucyhcInBvcG91dC0zc1ZNWHpcIikgfHwgbm9kZS5jbGFzc0xpc3QuY29udGFpbnMoXCJwb3BvdXRMZWZ0LTMwV21yRFwiKSB8fCAhbm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiZW1vamlQaWNrZXItM20xUy1qXCIpLmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuICAgICAgICBjb25zdCBlID0gJChub2RlKTtcclxuICAgICAgICBpZiAodGhpcy5oaWRlRW1vamlzKSBlLmFkZENsYXNzKFwiYmRhLXFtZS1oaWRkZW5cIik7XHJcbiAgICAgICAgZWxzZSBlLnJlbW92ZUNsYXNzKFwiYmRhLXFtZS1oaWRkZW5cIik7XHJcblxyXG4gICAgICAgIGUucHJlcGVuZCh0aGlzLnFtZUhlYWRlcik7XHJcbiAgICAgICAgZS5hcHBlbmQodGhpcy50ZUNvbnRhaW5lcik7XHJcbiAgICAgICAgZS5hcHBlbmQodGhpcy5mYUNvbnRhaW5lcik7XHJcblxyXG4gICAgICAgIHRoaXMuc3dpdGNoTWVudSh0aGlzLmxhc3RUYWIpO1xyXG4gICAgfVxyXG5cclxuICAgIGZhdm9yaXRlKG5hbWUsIHVybCkge1xyXG4gICAgICAgIGlmICghdGhpcy5mYXZvcml0ZUVtb3Rlcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkgdGhpcy5mYXZvcml0ZUVtb3Rlc1tuYW1lXSA9IHVybDtcclxuICAgICAgICB0aGlzLnVwZGF0ZUZhdm9yaXRlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVR3aXRjaEVtb3RlcygpIHtcclxuICAgICAgICB3aGlsZSAodGhpcy50ZUNvbnRhaW5lcklubmVyLmZpcnN0Q2hpbGQpIHRoaXMudGVDb250YWluZXJJbm5lci5maXJzdENoaWxkLnJlbW92ZSgpO1xyXG4gICAgICAgIGZvciAoY29uc3QgZW1vdGUgaW4gRW1vdGVNb2R1bGUuZ2V0Q2F0ZWdvcnkoXCJUd2l0Y2hHbG9iYWxcIikpIHtcclxuICAgICAgICAgICAgaWYgKCFFbW90ZU1vZHVsZS5nZXRDYXRlZ29yeShcIlR3aXRjaEdsb2JhbFwiKS5oYXNPd25Qcm9wZXJ0eShlbW90ZSkpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBjb25zdCB1cmwgPSBFbW90ZU1vZHVsZS5nZXRDYXRlZ29yeShcIlR3aXRjaEdsb2JhbFwiKVtlbW90ZV07XHJcbiAgICAgICAgICAgIGNvbnN0IGVtb3RlRWxlbWVudCA9IG1ha2VFbW90ZShlbW90ZSwgdXJsLCB7b25DbGljazogdGhpcy5pbnNlcnRFbW90ZS5iaW5kKHRoaXMsIGVtb3RlKX0pO1xyXG4gICAgICAgICAgICB0aGlzLnRlQ29udGFpbmVySW5uZXIuYXBwZW5kKGVtb3RlRWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUZhdm9yaXRlcygpIHtcclxuICAgICAgICB3aGlsZSAodGhpcy5mYUNvbnRhaW5lcklubmVyLmZpcnN0Q2hpbGQpIHRoaXMuZmFDb250YWluZXJJbm5lci5maXJzdENoaWxkLnJlbW92ZSgpO1xyXG4gICAgICAgIGZvciAoY29uc3QgZW1vdGUgaW4gdGhpcy5mYXZvcml0ZUVtb3Rlcykge1xyXG4gICAgICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmZhdm9yaXRlRW1vdGVzW2Vtb3RlXTtcclxuICAgICAgICAgICAgY29uc3QgZW1vdGVFbGVtZW50ID0gbWFrZUVtb3RlKGVtb3RlLCB1cmwsIHtvbkNsaWNrOiB0aGlzLmluc2VydEVtb3RlLmJpbmQodGhpcywgZW1vdGUpLCBvbkNvbnRleHRNZW51OiB0aGlzLmZhdkNvbnRleHQuYmluZCh0aGlzKX0pO1xyXG4gICAgICAgICAgICB0aGlzLmZhQ29udGFpbmVySW5uZXIuYXBwZW5kKGVtb3RlRWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIERhdGFTdG9yZS5zZXRCRERhdGEoXCJiZGZhdmVtb3Rlc1wiLCB3aW5kb3cuYnRvYShKU09OLnN0cmluZ2lmeSh0aGlzLmZhdm9yaXRlRW1vdGVzKSkpO1xyXG4gICAgfVxyXG5cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/builtins/emotemenu.js\n");
/***/ }),
/***/ "./src/builtins/emotes.js":
/*!********************************!*\
!*** ./src/builtins/emotes.js ***!
\********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _ui_emote__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui/emote */ \"./src/ui/emote.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n\n\n\n\n\nconst Emotes = {\n TwitchGlobal: {},\n TwitchSubscriber: {},\n BTTV: {},\n FrankerFaceZ: {},\n BTTV2: {}\n};\nconst bdEmoteSettingIDs = {\n TwitchGlobal: \"twitch\",\n TwitchSubscriber: \"twitch\",\n BTTV: \"bttv\",\n FrankerFaceZ: \"ffz\",\n BTTV2: \"bttv\"\n};\nconst blacklist = [];\nconst overrides = [\"twitch\", \"bttv\", \"ffz\"];\nconst modifiers = [\"flip\", \"spin\", \"pulse\", \"spin2\", \"spin3\", \"1spin\", \"2spin\", \"3spin\", \"tr\", \"bl\", \"br\", \"shake\", \"shake2\", \"shake3\", \"flap\"];\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class EmoteModule extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"Emotes\";\n }\n\n get collection() {\n return \"settings\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"emotes\";\n }\n\n get categories() {\n return Object.keys(bdEmoteSettingIDs).filter(k => this.isCategoryEnabled(bdEmoteSettingIDs[k]));\n }\n\n isCategoryEnabled(id) {\n return super.get(\"emotes\", \"categories\", id);\n }\n\n get(id) {\n return super.get(\"emotes\", \"general\", id);\n }\n\n get MessageContentComponent() {\n return modules__WEBPACK_IMPORTED_MODULE_2__[\"WebpackModules\"].getModule(m => m.defaultProps && m.defaultProps.hasOwnProperty(\"disableButtons\"));\n }\n\n get Emotes() {\n return Emotes;\n }\n\n get TwitchGlobal() {\n return Emotes.TwitchGlobal;\n }\n\n get TwitchSubscriber() {\n return Emotes.TwitchSubscriber;\n }\n\n get BTTV() {\n return Emotes.BTTV;\n }\n\n get FrankerFaceZ() {\n return Emotes.FrankerFaceZ;\n }\n\n get BTTV2() {\n return Emotes.BTTV2;\n }\n\n get blacklist() {\n return blacklist;\n }\n\n getCategory(category) {\n return Emotes[category];\n }\n\n initialize() {\n super.initialize(); // EmoteConfig;\n // emoteCollection.button = {title: \"Clear Emote Cache\", onClick: () => { this.clearEmoteData(); this.loadEmoteData(EmoteInfo); }};\n }\n\n async enabled() {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Settings\"].registerCollection(\"emotes\", \"Emotes\", data__WEBPACK_IMPORTED_MODULE_1__[\"EmoteConfig\"], {\n title: \"Clear Emote Cache\",\n onClick: () => {\n this.clearEmoteData();\n this.loadEmoteData(data__WEBPACK_IMPORTED_MODULE_1__[\"EmoteInfo\"]);\n }\n }); // Disable emote module for now because it's annoying and slow\n // await this.getBlacklist();\n // await this.loadEmoteData(EmoteInfo);\n // while (!this.MessageContentComponent) await new Promise(resolve => setTimeout(resolve, 100));\n // this.patchMessageContent();\n }\n\n disabled() {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Settings\"].removeCollection(\"emotes\");\n this.emptyEmotes();\n if (!this.cancelEmoteRender) return;\n this.cancelEmoteRender();\n delete this.cancelEmoteRender;\n }\n\n emptyEmotes() {\n for (const cat in Emotes) Object.assign(Emotes, {\n [cat]: {}\n });\n }\n\n patchMessageContent() {\n if (this.cancelEmoteRender) return;\n this.cancelEmoteRender = modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].monkeyPatch(this.MessageContentComponent.prototype, \"render\", {\n after: ({\n retVal\n }) => {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].monkeyPatch(retVal.props, \"children\", {\n silent: true,\n after: ({\n returnValue\n }) => {\n if (this.categories.length == 0) return;\n const markup = returnValue.props.children[1];\n if (!markup.props.children) return;\n const nodes = markup.props.children[1];\n if (!nodes || !nodes.length) return;\n\n for (let n = 0; n < nodes.length; n++) {\n const node = nodes[n];\n if (typeof node !== \"string\") continue;\n const words = node.split(/([^\\s]+)([\\s]|$)/g);\n\n for (let c = 0, clen = this.categories.length; c < clen; c++) {\n for (let w = 0, wlen = words.length; w < wlen; w++) {\n const emote = words[w];\n const emoteSplit = emote.split(\":\");\n const emoteName = emoteSplit[0];\n let emoteModifier = emoteSplit[1] ? emoteSplit[1] : \"\";\n let emoteOverride = emoteModifier.slice(0);\n if (emoteName.length < 4 || blacklist.includes(emoteName)) continue;\n if (!modifiers.includes(emoteModifier) || !modules__WEBPACK_IMPORTED_MODULE_2__[\"Settings\"].get(this.category, \"general\", \"modifiers\")) emoteModifier = \"\";\n if (!overrides.includes(emoteOverride)) emoteOverride = \"\";else emoteModifier = emoteOverride;\n let current = this.categories[c];\n\n if (emoteOverride === \"twitch\") {\n if (Emotes.TwitchGlobal[emoteName]) current = \"TwitchGlobal\";else if (Emotes.TwitchSubscriber[emoteName]) current = \"TwitchSubscriber\";\n } else if (emoteOverride === \"bttv\") {\n if (Emotes.BTTV[emoteName]) current = \"BTTV\";else if (Emotes.BTTV2[emoteName]) current = \"BTTV2\";\n } else if (emoteOverride === \"ffz\") {\n if (Emotes.FrankerFaceZ[emoteName]) current = \"FrankerFaceZ\";\n }\n\n if (!Emotes[current][emoteName] || !modules__WEBPACK_IMPORTED_MODULE_2__[\"Settings\"].get(this.category, \"categories\", bdEmoteSettingIDs[current])) continue;\n const results = nodes[n].match(new RegExp(`([\\\\s]|^)${modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].escape(emoteModifier ? emoteName + \":\" + emoteModifier : emoteName)}([\\\\s]|$)`));\n if (!results) continue;\n const pre = nodes[n].substring(0, results.index + results[1].length);\n const post = nodes[n].substring(results.index + results[0].length - results[2].length);\n nodes[n] = pre;\n const emoteComponent = modules__WEBPACK_IMPORTED_MODULE_2__[\"DiscordModules\"].React.createElement(_ui_emote__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n name: emoteName,\n url: Emotes[current][emoteName],\n modifier: emoteModifier\n });\n nodes.splice(n + 1, 0, post);\n nodes.splice(n + 1, 0, emoteComponent);\n }\n }\n }\n\n const onlyEmotes = nodes.every(r => {\n if (typeof r == \"string\" && r.replace(/\\s*/, \"\") == \"\") return true;else if (r.type && r.type.name == \"BDEmote\") return true;else if (r.props && r.props.children && r.props.children.props && r.props.children.props.emojiName) return true;\n return false;\n });\n if (!onlyEmotes) return;\n\n for (const node of nodes) {\n if (typeof node != \"object\") continue;\n if (node.type.name == \"BDEmote\") node.props.jumboable = true;else if (node.props && node.props.children && node.props.children.props && node.props.children.props.emojiName) node.props.children.props.jumboable = true;\n }\n }\n });\n }\n });\n }\n\n async loadEmoteData(emoteInfo) {\n this.emotesLoaded = false;\n\n const _fs = __webpack_require__(/*! fs */ \"fs\");\n\n const emoteFile = \"emote_data.json\";\n const file = data__WEBPACK_IMPORTED_MODULE_1__[\"Config\"].dataPath + emoteFile;\n\n const exists = _fs.existsSync(file);\n\n if (exists && this.isCacheValid()) {\n ui__WEBPACK_IMPORTED_MODULE_4__[\"Toasts\"].show(\"Loading emotes from cache.\", {\n type: \"info\"\n });\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].log(\"Emotes\", \"Loading emotes from local cache.\");\n const data = await new Promise(resolve => {\n _fs.readFile(file, \"utf8\", (err, content) => {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].log(\"Emotes\", \"Emotes loaded from cache.\");\n if (err) content = {};\n resolve(content);\n });\n });\n let isValid = modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].testJSON(data);\n if (isValid) Object.assign(Emotes, JSON.parse(data));\n\n for (const e in emoteInfo) {\n isValid = Object.keys(Emotes[emoteInfo[e].variable]).length > 0;\n }\n\n if (isValid) {\n ui__WEBPACK_IMPORTED_MODULE_4__[\"Toasts\"].show(\"Emotes successfully loaded.\", {\n type: \"success\"\n });\n this.emotesLoaded = true;\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].dispatch(\"emotes-loaded\");\n return;\n }\n\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].log(\"Emotes\", \"Cache was corrupt, downloading...\");\n\n _fs.unlinkSync(file);\n }\n\n if (!modules__WEBPACK_IMPORTED_MODULE_2__[\"Settings\"].get(this.category, \"general\", \"download\")) return;\n ui__WEBPACK_IMPORTED_MODULE_4__[\"Toasts\"].show(\"Downloading emotes in the background do not reload.\", {\n type: \"info\"\n });\n\n for (const e in emoteInfo) {\n await new Promise(r => setTimeout(r, 1000));\n const data = await this.downloadEmotes(emoteInfo[e]);\n Emotes[emoteInfo[e].variable] = data;\n }\n\n ui__WEBPACK_IMPORTED_MODULE_4__[\"Toasts\"].show(\"All emotes successfully downloaded.\", {\n type: \"success\"\n });\n\n try {\n _fs.writeFileSync(file, JSON.stringify(Emotes), \"utf8\");\n } catch (err) {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].err(\"Emotes\", \"Could not save emote data.\", err);\n }\n\n this.emotesLoaded = true;\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].dispatch(\"emotes-loaded\");\n }\n\n downloadEmotes(emoteMeta) {\n const request = __webpack_require__(/*! request */ \"request\");\n\n const options = {\n url: emoteMeta.url,\n timeout: emoteMeta.timeout ? emoteMeta.timeout : 5000\n };\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].log(\"Emotes\", `Downloading: ${emoteMeta.variable} (${emoteMeta.url})`);\n return new Promise((resolve, reject) => {\n request(options, (error, response, body) => {\n if (error) {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].err(\"Emotes\", \"Could not download \" + emoteMeta.variable, error);\n\n if (emoteMeta.backup) {\n emoteMeta.url = emoteMeta.backup;\n emoteMeta.backup = null;\n if (emoteMeta.backupParser) emoteMeta.parser = emoteMeta.backupParser;\n return resolve(this.downloadEmotes(emoteMeta));\n }\n\n return reject({});\n }\n\n let parsedData = {};\n\n try {\n parsedData = JSON.parse(body);\n } catch (err) {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].err(\"Emotes\", \"Could not download \" + emoteMeta.variable, err);\n\n if (emoteMeta.backup) {\n emoteMeta.url = emoteMeta.backup;\n emoteMeta.backup = null;\n if (emoteMeta.backupParser) emoteMeta.parser = emoteMeta.backupParser;\n return resolve(this.downloadEmotes(emoteMeta));\n }\n\n return reject({});\n }\n\n if (typeof emoteMeta.parser === \"function\") parsedData = emoteMeta.parser(parsedData);\n\n for (const emote in parsedData) {\n if (emote.length < 4 || blacklist.includes(emote)) {\n delete parsedData[emote];\n continue;\n }\n\n parsedData[emote] = emoteMeta.getEmoteURL(parsedData[emote]);\n }\n\n resolve(parsedData);\n modules__WEBPACK_IMPORTED_MODULE_2__[\"Utilities\"].log(\"Emotes\", \"Downloaded: \" + emoteMeta.variable);\n });\n });\n }\n\n getBlacklist() {\n return new Promise(resolve => {\n $.getJSON(`https://rauenzi.github.io/BetterDiscordApp/data/emotefilter.json`, function (data) {\n resolve(blacklist.push(...data.blacklist));\n });\n });\n }\n\n isCacheValid() {\n const cacheLength = modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].getBDData(\"emoteCacheDays\") || modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].setBDData(\"emoteCacheDays\", 7) || 7;\n const cacheDate = new Date(modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].getBDData(\"emoteCacheDate\") || null);\n const currentDate = new Date();\n const daysBetween = Math.round(Math.abs((currentDate.getTime() - cacheDate.getTime()) / (24 * 60 * 60 * 1000)));\n\n if (daysBetween > cacheLength) {\n modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].setBDData(\"emoteCacheDate\", currentDate.toJSON());\n return false;\n }\n\n return true;\n }\n\n clearEmoteData() {\n const _fs = __webpack_require__(/*! fs */ \"fs\");\n\n const emoteFile = \"emote_data.json\";\n const file = data__WEBPACK_IMPORTED_MODULE_1__[\"Config\"].dataPath + emoteFile;\n\n const exists = _fs.existsSync(file);\n\n if (exists) _fs.unlinkSync(file);\n modules__WEBPACK_IMPORTED_MODULE_2__[\"DataStore\"].setBDData(\"emoteCacheDate\", new Date().toJSON());\n\n for (const category in Emotes) Object.assign(Emotes, {\n [category]: {}\n });\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL2Vtb3Rlcy5qcz82YTA0Il0sIm5hbWVzIjpbIkVtb3RlcyIsIlR3aXRjaEdsb2JhbCIsIlR3aXRjaFN1YnNjcmliZXIiLCJCVFRWIiwiRnJhbmtlckZhY2VaIiwiQlRUVjIiLCJiZEVtb3RlU2V0dGluZ0lEcyIsImJsYWNrbGlzdCIsIm92ZXJyaWRlcyIsIm1vZGlmaWVycyIsIkVtb3RlTW9kdWxlIiwiQnVpbHRpbiIsIm5hbWUiLCJjb2xsZWN0aW9uIiwiY2F0ZWdvcnkiLCJpZCIsImNhdGVnb3JpZXMiLCJPYmplY3QiLCJrZXlzIiwiZmlsdGVyIiwiayIsImlzQ2F0ZWdvcnlFbmFibGVkIiwiZ2V0IiwiTWVzc2FnZUNvbnRlbnRDb21wb25lbnQiLCJXZWJwYWNrTW9kdWxlcyIsImdldE1vZHVsZSIsIm0iLCJkZWZhdWx0UHJvcHMiLCJoYXNPd25Qcm9wZXJ0eSIsImdldENhdGVnb3J5IiwiaW5pdGlhbGl6ZSIsImVuYWJsZWQiLCJTZXR0aW5ncyIsInJlZ2lzdGVyQ29sbGVjdGlvbiIsIkVtb3RlQ29uZmlnIiwidGl0bGUiLCJvbkNsaWNrIiwiY2xlYXJFbW90ZURhdGEiLCJsb2FkRW1vdGVEYXRhIiwiRW1vdGVJbmZvIiwiZGlzYWJsZWQiLCJyZW1vdmVDb2xsZWN0aW9uIiwiZW1wdHlFbW90ZXMiLCJjYW5jZWxFbW90ZVJlbmRlciIsImNhdCIsImFzc2lnbiIsInBhdGNoTWVzc2FnZUNvbnRlbnQiLCJVdGlsaXRpZXMiLCJtb25rZXlQYXRjaCIsInByb3RvdHlwZSIsImFmdGVyIiwicmV0VmFsIiwicHJvcHMiLCJzaWxlbnQiLCJyZXR1cm5WYWx1ZSIsImxlbmd0aCIsIm1hcmt1cCIsImNoaWxkcmVuIiwibm9kZXMiLCJuIiwibm9kZSIsIndvcmRzIiwic3BsaXQiLCJjIiwiY2xlbiIsInciLCJ3bGVuIiwiZW1vdGUiLCJlbW90ZVNwbGl0IiwiZW1vdGVOYW1lIiwiZW1vdGVNb2RpZmllciIsImVtb3RlT3ZlcnJpZGUiLCJzbGljZSIsImluY2x1ZGVzIiwiY3VycmVudCIsInJlc3VsdHMiLCJtYXRjaCIsIlJlZ0V4cCIsImVzY2FwZSIsInByZSIsInN1YnN0cmluZyIsImluZGV4IiwicG9zdCIsImVtb3RlQ29tcG9uZW50IiwiRGlzY29yZE1vZHVsZXMiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJCREVtb3RlIiwidXJsIiwibW9kaWZpZXIiLCJzcGxpY2UiLCJvbmx5RW1vdGVzIiwiZXZlcnkiLCJyIiwicmVwbGFjZSIsInR5cGUiLCJlbW9qaU5hbWUiLCJqdW1ib2FibGUiLCJlbW90ZUluZm8iLCJlbW90ZXNMb2FkZWQiLCJfZnMiLCJyZXF1aXJlIiwiZW1vdGVGaWxlIiwiZmlsZSIsIkNvbmZpZyIsImRhdGFQYXRoIiwiZXhpc3RzIiwiZXhpc3RzU3luYyIsImlzQ2FjaGVWYWxpZCIsIlRvYXN0cyIsInNob3ciLCJsb2ciLCJkYXRhIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWFkRmlsZSIsImVyciIsImNvbnRlbnQiLCJpc1ZhbGlkIiwidGVzdEpTT04iLCJKU09OIiwicGFyc2UiLCJlIiwidmFyaWFibGUiLCJFdmVudHMiLCJkaXNwYXRjaCIsInVubGlua1N5bmMiLCJzZXRUaW1lb3V0IiwiZG93bmxvYWRFbW90ZXMiLCJ3cml0ZUZpbGVTeW5jIiwic3RyaW5naWZ5IiwiZW1vdGVNZXRhIiwicmVxdWVzdCIsIm9wdGlvbnMiLCJ0aW1lb3V0IiwicmVqZWN0IiwiZXJyb3IiLCJyZXNwb25zZSIsImJvZHkiLCJiYWNrdXAiLCJiYWNrdXBQYXJzZXIiLCJwYXJzZXIiLCJwYXJzZWREYXRhIiwiZ2V0RW1vdGVVUkwiLCJnZXRCbGFja2xpc3QiLCIkIiwiZ2V0SlNPTiIsInB1c2giLCJjYWNoZUxlbmd0aCIsIkRhdGFTdG9yZSIsImdldEJERGF0YSIsInNldEJERGF0YSIsImNhY2hlRGF0ZSIsIkRhdGUiLCJjdXJyZW50RGF0ZSIsImRheXNCZXR3ZWVuIiwiTWF0aCIsInJvdW5kIiwiYWJzIiwi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QUQsQ0FBYU8sTUFBYixFQUF0Qzs7QUFDQSxTQUFLLE1BQU1sSixRQUFYLElBQXVCZCxNQUF2QixFQUErQmlCLE1BQU0sQ0FBQzRCLE1BQVAsQ0FBYzdDLE1BQWQsRUFBc0I7QUFBQyxPQUFDYyxRQUFELEdBQVk7QUFBYixLQUF0QjtBQUNsQzs7QUFuUWdELENBQXRDLEVBQWYiLCJmaWxlIjoiLi9zcmMvYnVpbHRpbnMvZW1vdGVzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJ1aWx0aW4gZnJvbSBcIi4uL3N0cnVjdHMvYnVpbHRpblwiO1xyXG5cclxuaW1wb3J0IHtDb25maWcsIEVtb3RlSW5mbywgRW1vdGVDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCB7VXRpbGl0aWVzLCBXZWJwYWNrTW9kdWxlcywgRGF0YVN0b3JlLCBEaXNjb3JkTW9kdWxlcywgRXZlbnRzLCBTZXR0aW5nc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuaW1wb3J0IEJERW1vdGUgZnJvbSBcIi4uL3VpL2Vtb3RlXCI7XHJcbmltcG9ydCB7VG9hc3RzfSBmcm9tIFwidWlcIjtcclxuXHJcbmNvbnN0IEVtb3RlcyA9IHtcclxuICAgIFR3aXRjaEdsb2JhbDoge30sXHJcbiAgICBUd2l0Y2hTdWJzY3JpYmVyOiB7fSxcclxuICAgIEJUVFY6IHt9LFxyXG4gICAgRnJhbmtlckZhY2VaOiB7fSxcclxuICAgIEJUVFYyOiB7fVxyXG59O1xyXG5cclxuY29uc3QgYmRFbW90ZVNldHRpbmdJRHMgPSB7XHJcbiAgICBUd2l0Y2hHbG9iYWw6IFwidHdpdGNoXCIsXHJcbiAgICBUd2l0Y2hTdWJzY3JpYmVyOiBcInR3aXRjaFwiLFxyXG4gICAgQlRUVjogXCJidHR2XCIsXHJcbiAgICBGcmFua2VyRmFjZVo6IFwiZmZ6XCIsXHJcbiAgICBCVFRWMjogXCJidHR2XCJcclxufTtcclxuXHJcbmNvbnN0IGJsYWNrbGlzdCA9IFtdO1xyXG5jb25zdCBvdmVycmlkZXMgPSBbXCJ0d2l0Y2hcIiwgXCJidHR2XCIsIFwiZmZ6XCJdO1xyXG5jb25zdCBtb2RpZmllcnMgPSBbXCJmbGlwXCIsIFwic3BpblwiLCBcInB1bHNlXCIsIFwic3BpbjJcIiwgXCJzcGluM1wiLCBcIjFzcGluXCIsIFwiMnNwaW5cIiwgXCIzc3BpblwiLCBcInRyXCIsIFwiYmxcIiwgXCJiclwiLCBcInNoYWtlXCIsIFwic2hha2UyXCIsIFwic2hha2UzXCIsIFwiZmxhcFwiXTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBFbW90ZU1vZHVsZSBleHRlbmRzIEJ1aWx0aW4ge1xyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiRW1vdGVzXCI7fVxyXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7cmV0dXJuIFwic2V0dGluZ3NcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiZ2VuZXJhbFwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJlbW90ZXNcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcmllcygpIHsgcmV0dXJuIE9iamVjdC5rZXlzKGJkRW1vdGVTZXR0aW5nSURzKS5maWx0ZXIoayA9PiB0aGlzLmlzQ2F0ZWdvcnlFbmFibGVkKGJkRW1vdGVTZXR0aW5nSURzW2tdKSk7IH1cclxuXHJcbiAgICBpc0NhdGVnb3J5RW5hYmxlZChpZCkge1xyXG4gICAgICAgIHJldHVybiBzdXBlci5nZXQoXCJlbW90ZXNcIiwgXCJjYXRlZ29yaWVzXCIsIGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQoaWQpIHtcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0KFwiZW1vdGVzXCIsIFwiZ2VuZXJhbFwiLCBpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IE1lc3NhZ2VDb250ZW50Q29tcG9uZW50KCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRNb2R1bGUobSA9PiBtLmRlZmF1bHRQcm9wcyAmJiBtLmRlZmF1bHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShcImRpc2FibGVCdXR0b25zXCIpKTt9XHJcblxyXG4gICAgZ2V0IEVtb3RlcygpIHtyZXR1cm4gRW1vdGVzO31cclxuICAgIGdldCBUd2l0Y2hHbG9iYWwoKSB7cmV0dXJuIEVtb3Rlcy5Ud2l0Y2hHbG9iYWw7fVxyXG4gICAgZ2V0IFR3aXRjaFN1YnNjcmliZXIoKSB7cmV0dXJuIEVtb3Rlcy5Ud2l0Y2hTdWJzY3JpYmVyO31cclxuICAgIGdldCBCVFRWKCkge3JldHVybiBFbW90ZXMuQlRUVjt9XHJcbiAgICBnZXQgRnJhbmtlckZhY2VaKCkge3JldHVybiBFbW90ZXMuRnJhbmtlckZhY2VaO31cclxuICAgIGdldCBCVFRWMigpIHtyZXR1cm4gRW1vdGVzLkJUVFYyO31cclxuICAgIGdldCBibGFja2xpc3QoKSB7cmV0dXJuIGJsYWNrbGlzdDt9XHJcblxyXG4gICAgZ2V0Q2F0ZWdvcnkoY2F0ZWdvcnkpIHtcclxuICAgICAgICByZXR1cm4gRW1vdGVzW2NhdGVnb3J5XTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplKCkge1xyXG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcclxuICAgICAgICAvLyBFbW90ZUNvbmZpZztcclxuICAgICAgICAvLyBlbW90ZUNvbGxlY3Rpb24uYnV0dG9uID0ge3RpdGxlOiBcIkNsZWFyIEVtb3RlIENhY2hlXCIsIG9uQ2xpY2s6ICgpID0+IHsgdGhpcy5jbGVhckVtb3RlRGF0YSgpOyB0aGlzLmxvYWRFbW90ZURhdGEoRW1vdGVJbmZvKTsgfX07XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZW5hYmxlZCgpIHtcclxuICAgICAgICBTZXR0aW5ncy5yZWdpc3RlckNvbGxlY3Rpb24oXCJlbW90ZXNcIiwgXCJFbW90ZXNcIiwgRW1vdGVDb25maWcsIHt0aXRsZTogXCJDbGVhciBFbW90ZSBDYWNoZVwiLCBvbkNsaWNrOiAoKSA9PiB7IHRoaXMuY2xlYXJFbW90ZURhdGEoKTsgdGhpcy5sb2FkRW1vdGVEYXRhKEVtb3RlSW5mbyk7IH19KTtcclxuICAgICAgICAvLyBEaXNhYmxlIGVtb3RlIG1vZHVsZSBmb3Igbm93IGJlY2F1c2UgaXQncyBhbm5veWluZyBhbmQgc2xvd1xyXG4gICAgICAgIC8vIGF3YWl0IHRoaXMuZ2V0QmxhY2tsaXN0KCk7XHJcbiAgICAgICAgLy8gYXdhaXQgdGhpcy5sb2FkRW1vdGVEYXRhKEVtb3RlSW5mbyk7XHJcblxyXG4gICAgICAgIC8vIHdoaWxlICghdGhpcy5NZXNzYWdlQ29udGVudENvbXBvbmVudCkgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMCkpO1xyXG4gICAgICAgIC8vIHRoaXMucGF0Y2hNZXNzYWdlQ29udGVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgIFNldHRpbmdzLnJlbW92ZUNvbGxlY3Rpb24oXCJlbW90ZXNcIik7XHJcbiAgICAgICAgdGhpcy5lbXB0eUVtb3RlcygpO1xyXG4gICAgICAgIGlmICghdGhpcy5jYW5jZWxFbW90ZVJlbmRlcikgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuY2FuY2VsRW1vdGVSZW5kZXIoKTtcclxuICAgICAgICBkZWxldGUgdGhpcy5jYW5jZWxFbW90ZVJlbmRlcjtcclxuICAgIH1cclxuXHJcbiAgICBlbXB0eUVtb3RlcygpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGNhdCBpbiBFbW90ZXMpIE9iamVjdC5hc3NpZ24oRW1vdGVzLCB7W2NhdF06IHt9fSk7XHJcbiAgICB9XHJcblxyXG4gICAgcGF0Y2hNZXNzYWdlQ29udGVudCgpIHtcclxuICAgICAgICBpZiAodGhpcy5jYW5jZWxFbW90ZVJlbmRlcikgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuY2FuY2VsRW1vdGVSZW5kZXIgPSBVdGlsaXRpZXMubW9ua2V5UGF0Y2godGhpcy5NZXNzYWdlQ29udGVudENvbXBvbmVudC5wcm90b3R5cGUsIFwicmVuZGVyXCIsIHthZnRlcjogKHtyZXRWYWx9KSA9PiB7XHJcbiAgICAgICAgICAgIFV0aWxpdGllcy5tb25rZXlQYXRjaChyZXRWYWwucHJvcHMsIFwiY2hpbGRyZW5cIiwge3NpbGVudDogdHJ1ZSwgYWZ0ZXI6ICh7cmV0dXJuVmFsdWV9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jYXRlZ29yaWVzLmxlbmd0aCA9PSAwKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtYXJrdXAgPSByZXR1cm5WYWx1ZS5wcm9wcy5jaGlsZHJlblsxXTtcclxuICAgICAgICAgICAgICAgIGlmICghbWFya3VwLnByb3BzLmNoaWxkcmVuKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlcyA9IG1hcmt1cC5wcm9wcy5jaGlsZHJlblsxXTtcclxuICAgICAgICAgICAgICAgIGlmICghbm9kZXMgfHwgIW5vZGVzLmxlbmd0aCkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBub2Rlcy5sZW5ndGg7IG4rKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBub2Rlc1tuXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mKG5vZGUpICE9PSBcInN0cmluZ1wiKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JkcyA9IG5vZGUuc3BsaXQoLyhbXlxcc10rKShbXFxzXXwkKS9nKTtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBjID0gMCwgY2xlbiA9IHRoaXMuY2F0ZWdvcmllcy5sZW5ndGg7IGMgPCBjbGVuOyBjKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgdyA9IDAsIHdsZW4gPSB3b3Jkcy5sZW5ndGg7IHcgPCB3bGVuOyB3KyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVtb3RlID0gd29yZHNbd107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbW90ZVNwbGl0ID0gZW1vdGUuc3BsaXQoXCI6XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW1vdGVOYW1lID0gZW1vdGVTcGxpdFswXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlbW90ZU1vZGlmaWVyID0gZW1vdGVTcGxpdFsxXSA/IGVtb3RlU3BsaXRbMV0gOiBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVtb3RlT3ZlcnJpZGUgPSBlbW90ZU1vZGlmaWVyLnNsaWNlKDApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbW90ZU5hbWUubGVuZ3RoIDwgNCB8fCBibGFja2xpc3QuaW5jbHVkZXMoZW1vdGVOYW1lKSkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGlmaWVycy5pbmNsdWRlcyhlbW90ZU1vZGlmaWVyKSB8fCAhU2V0dGluZ3MuZ2V0KHRoaXMuY2F0ZWdvcnksIFwiZ2VuZXJhbFwiLCBcIm1vZGlmaWVyc1wiKSkgZW1vdGVNb2RpZmllciA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW92ZXJyaWRlcy5pbmNsdWRlcyhlbW90ZU92ZXJyaWRlKSkgZW1vdGVPdmVycmlkZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGVtb3RlTW9kaWZpZXIgPSBlbW90ZU92ZXJyaWRlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50ID0gdGhpcy5jYXRlZ29yaWVzW2NdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVtb3RlT3ZlcnJpZGUgPT09IFwidHdpdGNoXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoRW1vdGVzLlR3aXRjaEdsb2JhbFtlbW90ZU5hbWVdKSBjdXJyZW50ID0gXCJUd2l0Y2hHbG9iYWxcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChFbW90ZXMuVHdpdGNoU3Vic2NyaWJlcltlbW90ZU5hbWVdKSBjdXJyZW50ID0gXCJUd2l0Y2hTdWJzY3JpYmVyXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChlbW90ZU92ZXJyaWRlID09PSBcImJ0dHZcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChFbW90ZXMuQlRUVltlbW90ZU5hbWVdKSBjdXJyZW50ID0gXCJCVFRWXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoRW1vdGVzLkJUVFYyW2Vtb3RlTmFtZV0pIGN1cnJlbnQgPSBcIkJUVFYyXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChlbW90ZU92ZXJyaWRlID09PSBcImZmelwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEVtb3Rlcy5GcmFua2VyRmFjZVpbZW1vdGVOYW1lXSkgY3VycmVudCA9IFwiRnJhbmtlckZhY2VaXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFFbW90ZXNbY3VycmVudF1bZW1vdGVOYW1lXSB8fCAhU2V0dGluZ3MuZ2V0KHRoaXMuY2F0ZWdvcnksIFwiY2F0ZWdvcmllc1wiLCBiZEVtb3RlU2V0dGluZ0lEc1tjdXJyZW50XSkpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IG5vZGVzW25dLm1hdGNoKG5ldyBSZWdFeHAoYChbXFxcXHNdfF4pJHtVdGlsaXRpZXMuZXNjYXBlKGVtb3RlTW9kaWZpZXIgPyBlbW90ZU5hbWUgKyBcIjpcIiArIGVtb3RlTW9kaWZpZXIgOiBlbW90ZU5hbWUpfShbXFxcXHNdfCQpYCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHRzKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZSA9IG5vZGVzW25dLnN1YnN0cmluZygwLCByZXN1bHRzLmluZGV4ICsgcmVzdWx0c1sxXS5sZW5ndGgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9zdCA9IG5vZGVzW25dLnN1YnN0cmluZyhyZXN1bHRzLmluZGV4ICsgcmVzdWx0c1swXS5sZW5ndGggLSByZXN1bHRzWzJdLmxlbmd0aCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2Rlc1tuXSA9IHByZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVtb3RlQ29tcG9uZW50ID0gRGlzY29yZE1vZHVsZXMuUmVhY3QuY3JlYXRlRWxlbWVudChCREVtb3RlLCB7bmFtZTogZW1vdGVOYW1lLCB1cmw6IEVtb3Rlc1tjdXJyZW50XVtlbW90ZU5hbWVdLCBtb2RpZmllcjogZW1vdGVNb2RpZmllcn0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZXMuc3BsaWNlKG4gKyAxLCAwLCBwb3N0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVzLnNwbGljZShuICsgMSwgMCwgZW1vdGVDb21wb25lbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3Qgb25seUVtb3RlcyA9IG5vZGVzLmV2ZXJ5KHIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YocikgPT0gXCJzdHJpbmdcIiAmJiByLnJlcGxhY2UoL1xccyovLCBcIlwiKSA9PSBcIlwiKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyLnR5cGUgJiYgci50eXBlLm5hbWUgPT0gXCJCREVtb3RlXCIpIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHIucHJvcHMgJiYgci5wcm9wcy5jaGlsZHJlbiAmJiByLnByb3BzLmNoaWxkcmVuLnByb3BzICYmIHIucHJvcHMuY2hpbGRyZW4ucHJvcHMuZW1vamlOYW1lKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGlmICghb25seUVtb3RlcykgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yobm9kZSkgIT0gXCJvYmplY3RcIikgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUudHlwZS5uYW1lID09IFwiQkRFbW90ZVwiKSBub2RlLnByb3BzLmp1bWJvYWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobm9kZS5wcm9wcyAmJiBub2RlLnByb3BzLmNoaWxkcmVuICYmIG5vZGUucHJvcHMuY2hpbGRyZW4ucHJvcHMgJiYgbm9kZS5wcm9wcy5jaGlsZHJlbi5wcm9wcy5lbW9qaU5hbWUpIG5vZGUucHJvcHMuY2hpbGRyZW4ucHJvcHMuanVtYm9hYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfX0pO1xyXG4gICAgICAgIH19KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBsb2FkRW1vdGVEYXRhKGVtb3RlSW5mbykge1xyXG4gICAgICAgIHRoaXMuZW1vdGVzTG9hZGVkID0gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgX2ZzID0gcmVxdWlyZShcImZzXCIpO1xyXG4gICAgICAgIGNvbnN0IGVtb3RlRmlsZSA9IFwiZW1vdGVfZGF0YS5qc29uXCI7XHJcbiAgICAgICAgY29uc3QgZmlsZSA9IENvbmZpZy5kYXRhUGF0aCArIGVtb3RlRmlsZTtcclxuICAgICAgICBjb25zdCBleGlzdHMgPSBfZnMuZXhpc3RzU3luYyhmaWxlKTtcclxuXHJcbiAgICAgICAgaWYgKGV4aXN0cyAmJiB0aGlzLmlzQ2FjaGVWYWxpZCgpKSB7XHJcbiAgICAgICAgICAgIFRvYXN0cy5zaG93KFwiTG9hZGluZyBlbW90ZXMgZnJvbSBjYWNoZS5cIiwge3R5cGU6IFwiaW5mb1wifSk7XHJcbiAgICAgICAgICAgIFV0aWxpdGllcy5sb2coXCJFbW90ZXNcIiwgXCJMb2FkaW5nIGVtb3RlcyBmcm9tIGxvY2FsIGNhY2hlLlwiKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgICAgIF9mcy5yZWFkRmlsZShmaWxlLCBcInV0ZjhcIiwgKGVyciwgY29udGVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIFV0aWxpdGllcy5sb2coXCJFbW90ZXNcIiwgXCJFbW90ZXMgbG9hZGVkIGZyb20gY2FjaGUuXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIGNvbnRlbnQgPSB7fTtcclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGNvbnRlbnQpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgbGV0IGlzVmFsaWQgPSBVdGlsaXRpZXMudGVzdEpTT04oZGF0YSk7XHJcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkKSBPYmplY3QuYXNzaWduKEVtb3RlcywgSlNPTi5wYXJzZShkYXRhKSk7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGUgaW4gZW1vdGVJbmZvKSB7XHJcbiAgICAgICAgICAgICAgICBpc1ZhbGlkID0gT2JqZWN0LmtleXMoRW1vdGVzW2Vtb3RlSW5mb1tlXS52YXJpYWJsZV0pLmxlbmd0aCA+IDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgICBUb2FzdHMuc2hvdyhcIkVtb3RlcyBzdWNjZXNzZnVsbHkgbG9hZGVkLlwiLCB7dHlwZTogXCJzdWNjZXNzXCJ9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZW1vdGVzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIEV2ZW50cy5kaXNwYXRjaChcImVtb3Rlcy1sb2FkZWRcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIFV0aWxpdGllcy5sb2coXCJFbW90ZXNcIiwgXCJDYWNoZSB3YXMgY29ycnVwdCwgZG93bmxvYWRpbmcuLi5cIik7XHJcbiAgICAgICAgICAgIF9mcy51bmxpbmtTeW5jKGZpbGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFTZXR0aW5ncy5nZXQodGhpcy5jYXRlZ29yeSwgXCJnZW5lcmFsXCIsIFwiZG93bmxvYWRcIikpIHJldHVybjtcclxuICAgICAgICBUb2FzdHMuc2hvdyhcIkRvd25sb2FkaW5nIGVtb3RlcyBpbiB0aGUgYmFja2dyb3VuZCBkbyBub3QgcmVsb2FkLlwiLCB7dHlwZTogXCJpbmZvXCJ9KTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBlIGluIGVtb3RlSW5mbykge1xyXG4gICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgMTAwMCkpO1xyXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5kb3dubG9hZEVtb3RlcyhlbW90ZUluZm9bZV0pO1xyXG4gICAgICAgICAgICBFbW90ZXNbZW1vdGVJbmZvW2VdLnZhcmlhYmxlXSA9IGRhdGE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBUb2FzdHMuc2hvdyhcIkFsbCBlbW90ZXMgc3VjY2Vzc2Z1bGx5IGRvd25sb2FkZWQuXCIsIHt0eXBlOiBcInN1Y2Nlc3NcIn0pO1xyXG5cclxuICAgICAgICB0cnkgeyBfZnMud3JpdGVGaWxlU3luYyhmaWxlLCBKU09OLnN0cmluZ2lmeShFbW90ZXMpLCBcInV0ZjhcIik7IH1cclxuICAgICAgICBjYXRjaCAoZXJyKSB7IFV0aWxpdGllcy5lcnIoXCJFbW90ZXNcIiwgXCJDb3VsZCBub3Qgc2F2ZSBlbW90ZSBkYXRhLlwiLCBlcnIpOyB9XHJcblxyXG4gICAgICAgIHRoaXMuZW1vdGVzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICBFdmVudHMuZGlzcGF0Y2goXCJlbW90ZXMtbG9hZGVkXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGRvd25sb2FkRW1vdGVzKGVtb3RlTWV0YSkge1xyXG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSByZXF1aXJlKFwicmVxdWVzdFwiKTtcclxuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xyXG4gICAgICAgICAgICB1cmw6IGVtb3RlTWV0YS51cmwsXHJcbiAgICAgICAgICAgIHRpbWVvdXQ6IGVtb3RlTWV0YS50aW1lb3V0ID8gZW1vdGVNZXRhLnRpbWVvdXQgOiA1MDAwXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgVXRpbGl0aWVzLmxvZyhcIkVtb3Rlc1wiLCBgRG93bmxvYWRpbmc6ICR7ZW1vdGVNZXRhLnZhcmlhYmxlfSAoJHtlbW90ZU1ldGEudXJsfSlgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgcmVxdWVzdChvcHRpb25zLCAoZXJyb3IsIHJlc3BvbnNlLCBib2R5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICBVdGlsaXRpZXMuZXJyKFwiRW1vdGVzXCIsIFwiQ291bGQgbm90IGRvd25sb2FkIFwiICsgZW1vdGVNZXRhLnZhcmlhYmxlLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVtb3RlTWV0YS5iYWNrdXApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW1vdGVNZXRhLnVybCA9IGVtb3RlTWV0YS5iYWNrdXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtb3RlTWV0YS5iYWNrdXAgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW1vdGVNZXRhLmJhY2t1cFBhcnNlcikgZW1vdGVNZXRhLnBhcnNlciA9IGVtb3RlTWV0YS5iYWNrdXBQYXJzZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKHRoaXMuZG93bmxvYWRFbW90ZXMoZW1vdGVNZXRhKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWplY3Qoe30pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCBwYXJzZWREYXRhID0ge307XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZERhdGEgPSBKU09OLnBhcnNlKGJvZHkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIFV0aWxpdGllcy5lcnIoXCJFbW90ZXNcIiwgXCJDb3VsZCBub3QgZG93bmxvYWQgXCIgKyBlbW90ZU1ldGEudmFyaWFibGUsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVtb3RlTWV0YS5iYWNrdXApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW1vdGVNZXRhLnVybCA9IGVtb3RlTWV0YS5iYWNrdXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtb3RlTWV0YS5iYWNrdXAgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW1vdGVNZXRhLmJhY2t1cFBhcnNlcikgZW1vdGVNZXRhLnBhcnNlciA9IGVtb3RlTWV0YS5iYWNrdXBQYXJzZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKHRoaXMuZG93bmxvYWRFbW90ZXMoZW1vdGVNZXRhKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWplY3Qoe30pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZihlbW90ZU1ldGEucGFyc2VyKSA9PT0gXCJmdW5jdGlvblwiKSBwYXJzZWREYXRhID0gZW1vdGVNZXRhLnBhcnNlcihwYXJzZWREYXRhKTtcclxuXHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVtb3RlIGluIHBhcnNlZERhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZW1vdGUubGVuZ3RoIDwgNCB8fCBibGFja2xpc3QuaW5jbHVkZXMoZW1vdGUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWREYXRhW2Vtb3RlXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZERhdGFbZW1vdGVdID0gZW1vdGVNZXRhLmdldEVtb3RlVVJMKHBhcnNlZERhdGFbZW1vdGVdKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJlc29sdmUocGFyc2VkRGF0YSk7XHJcbiAgICAgICAgICAgICAgICBVdGlsaXRpZXMubG9nKFwiRW1vdGVzXCIsIFwiRG93bmxvYWRlZDogXCIgKyBlbW90ZU1ldGEudmFyaWFibGUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRCbGFja2xpc3QoKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICAkLmdldEpTT04oYGh0dHBzOi8vcmF1ZW56aS5naXRodWIuaW8vQmV0dGVyRGlzY29yZEFwcC9kYXRhL2Vtb3RlZmlsdGVyLmpzb25gLCBmdW5jdGlvbiAoZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShibGFja2xpc3QucHVzaCguLi5kYXRhLmJsYWNrbGlzdCkpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpc0NhY2hlVmFsaWQoKSB7XHJcbiAgICAgICAgY29uc3QgY2FjaGVMZW5ndGggPSBEYXRhU3RvcmUuZ2V0QkREYXRhKFwiZW1vdGVDYWNoZURheXNcIikgfHwgRGF0YVN0b3JlLnNldEJERGF0YShcImVtb3RlQ2FjaGVEYXlzXCIsIDcpIHx8IDc7XHJcbiAgICAgICAgY29uc3QgY2FjaGVEYXRlID0gbmV3IERhdGUoRGF0YVN0b3JlLmdldEJERGF0YShcImVtb3RlQ2FjaGVEYXRlXCIpIHx8IG51bGwpO1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuICAgICAgICBjb25zdCBkYXlzQmV0d2VlbiA9IE1hdGgucm91bmQoTWF0aC5hYnMoKGN1cnJlbnREYXRlLmdldFRpbWUoKSAtIGNhY2hlRGF0ZS5nZXRUaW1lKCkpIC8gKDI0ICogNjAgKiA2MCAqIDEwMDApKSk7XHJcbiAgICAgICAgaWYgKGRheXNCZXR3ZWVuID4gY2FjaGVMZW5ndGgpIHtcclxuICAgICAgICAgICAgRGF0YVN0b3JlLnNldEJERGF0YShcImVtb3RlQ2FjaGVEYXRlXCIsIGN1cnJlbnREYXRlLnRvSlNPTigpKTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhckVtb3RlRGF0YSgpIHtcclxuICAgICAgICBjb25zdCBfZnMgPSByZXF1aXJlKFwiZnNcIik7XHJcbiAgICAgICAgY29uc3QgZW1vdGVGaWxlID0gXCJlbW90ZV9kYXRhLmpzb25cIjtcclxuICAgICAgICBjb25zdCBmaWxlID0gQ29uZmlnLmRhdGFQYXRoICsgZW1vdGVGaWxlO1xyXG4gICAgICAgIGNvbnN0IGV4aXN0cyA9IF9mcy5leGlzdHNTeW5jKGZpbGUpO1xyXG4gICAgICAgIGlmIChleGlzdHMpIF9mcy51bmxpbmtTeW5jKGZpbGUpO1xyXG4gICAgICAgIERhdGFTdG9yZS5zZXRCRERhdGEoXCJlbW90ZUNhY2hlRGF0ZVwiLCAobmV3IERhdGUoKSkudG9KU09OKCkpO1xyXG4gICAgICAgIGZvciAoY29uc3QgY2F0ZWdvcnkgaW4gRW1vdGVzKSBPYmplY3QuYXNzaWduKEVtb3Rlcywge1tjYXRlZ29yeV06IHt9fSk7XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/builtins/emotes.js\n");
/***/ }),
/***/ "./src/builtins/minimalmode.js":
/*!*************************************!*\
!*** ./src/builtins/minimalmode.js ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class MinimalMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"MinimalMode\";\n }\n\n get category() {\n return \"appearance\";\n }\n\n get id() {\n return \"minimalMode\";\n }\n\n get hideChannelsID() {\n return \"hideChannels\";\n }\n\n get hideChannels() {\n return this.get(this.hideChannelsID);\n }\n\n constructor() {\n super();\n this.enableHideChannels = this.enableHideChannels.bind(this);\n this.disableHideChannels = this.disableHideChannels.bind(this);\n }\n\n enabled() {\n $(\"body\").addClass(\"bd-minimal\");\n if (this.hideChannels) this.enableHideChannels();\n this.hideChannelCancel = this.registerSetting(this.hideChannelsID, this.enableHideChannels, this.disableHideChannels);\n }\n\n disabled() {\n $(\"body\").removeClass(\"bd-minimal\");\n if (this.hideChannels) this.disableHideChannels();\n if (this.hideChannelCancel) this.hideChannelCancel();\n }\n\n enableHideChannels() {\n $(\"body\").addClass(\"bd-minimal-chan\");\n }\n\n disableHideChannels() {\n $(\"body\").removeClass(\"bd-minimal-chan\");\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL21pbmltYWxtb2RlLmpzPzgzMzgiXSwibmFtZXMiOlsiTWluaW1hbE1vZGUiLCJCdWlsdGluIiwibmFtZSIsImNhdGVnb3J5IiwiaWQiLCJoaWRlQ2hhbm5lbHNJRCIsImhpZGVDaGFubmVscyIsImdldCIsImNvbnN0cnVjdG9yIiwiZW5hYmxlSGlkZUNoYW5uZWxzIiwiYmluZCIsImRpc2FibGVIaWRlQ2hhbm5lbHMiLCJlbmFibGVkIiwiJCIsImFkZENsYXNzIiwiaGlkZUNoYW5uZWxDYW5jZWwiLCJyZWdpc3RlclNldHRpbmciLCJkaXNhYmxlZCIsInJlbW92ZUNsYXNzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFFZSxtRUFBSSxNQUFNQSxXQUFOLFNBQTBCQyx3REFBMUIsQ0FBa0M7QUFDakQsTUFBSUMsSUFBSixHQUFXO0FBQUMsV0FBTyxhQUFQO0FBQXNCOztBQUNsQyxNQUFJQyxRQUFKLEdBQWU7QUFBQyxXQUFPLFlBQVA7QUFBcUI7O0FBQ3JDLE1BQUlDLEVBQUosR0FBUztBQUFDLFdBQU8sYUFBUDtBQUFzQjs7QUFDaEMsTUFBSUMsY0FBSixHQUFxQjtBQUFDLFdBQU8sY0FBUDtBQUF1Qjs7QUFDN0MsTUFBSUMsWUFBSixHQUFtQjtBQUFDLFdBQU8sS0FBS0MsR0FBTCxDQUFTLEtBQUtGLGNBQWQsQ0FBUDtBQUFzQzs7QUFFMURHLGFBQVcsR0FBRztBQUNWO0FBQ0EsU0FBS0Msa0JBQUwsR0FBMEIsS0FBS0Esa0JBQUwsQ0FBd0JDLElBQXhCLENBQTZCLElBQTdCLENBQTFCO0FBQ0EsU0FBS0MsbUJBQUwsR0FBMkIsS0FBS0EsbUJBQUwsQ0FBeUJELElBQXpCLENBQThCLElBQTlCLENBQTNCO0FBQ0g7O0FBRURFLFNBQU8sR0FBRztBQUNOQyxLQUFDLENBQUMsTUFBRCxDQUFELENBQVVDLFFBQVYsQ0FBbUIsWUFBbkI7QUFDQSxRQUFJLEtBQUtSLFlBQVQsRUFBdUIsS0FBS0csa0JBQUw7QUFDdkIsU0FBS00saUJBQUwsR0FBeUIsS0FBS0MsZUFBTCxDQUFxQixLQUFLWCxjQUExQixFQUEwQyxLQUFLSSxrQkFBL0MsRUFBbUUsS0FBS0UsbUJBQXhFLENBQXpCO0FBQ0g7O0FBRURNLFVBQVEsR0FBRztBQUNQSixLQUFDLENBQUMsTUFBRCxDQUFELENBQVVLLFdBQVYsQ0FBc0IsWUFBdEI7QUFDQSxRQUFJLEtBQUtaLFlBQVQsRUFBdUIsS0FBS0ssbUJBQUw7QUFDdkIsUUFBSSxLQUFLSSxpQkFBVCxFQUE0QixLQUFLQSxpQkFBTDtBQUMvQjs7QUFFRE4sb0JBQWtCLEdBQUc7QUFDakJJLEtBQUMsQ0FBQyxNQUFELENBQUQsQ0FBVUMsUUFBVixDQUFtQixpQkFBbkI7QUFDSDs7QUFFREgscUJBQW1CLEdBQUc7QUFDbEJFLEtBQUMsQ0FBQyxNQUFELENBQUQsQ0FBVUssV0FBVixDQUFzQixpQkFBdEI7QUFDSDs7QUEvQmdELENBQXRDLEVBQWYiLCJmaWxlIjoiLi9zcmMvYnVpbHRpbnMvbWluaW1hbG1vZGUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbHRpbiBmcm9tIFwiLi4vc3RydWN0cy9idWlsdGluXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgTWluaW1hbE1vZGUgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIk1pbmltYWxNb2RlXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImFwcGVhcmFuY2VcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwibWluaW1hbE1vZGVcIjt9XHJcbiAgICBnZXQgaGlkZUNoYW5uZWxzSUQoKSB7cmV0dXJuIFwiaGlkZUNoYW5uZWxzXCI7fVxyXG4gICAgZ2V0IGhpZGVDaGFubmVscygpIHtyZXR1cm4gdGhpcy5nZXQodGhpcy5oaWRlQ2hhbm5lbHNJRCk7fVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5lbmFibGVIaWRlQ2hhbm5lbHMgPSB0aGlzLmVuYWJsZUhpZGVDaGFubmVscy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZUhpZGVDaGFubmVscyA9IHRoaXMuZGlzYWJsZUhpZGVDaGFubmVscy5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgJChcImJvZHlcIikuYWRkQ2xhc3MoXCJiZC1taW5pbWFsXCIpO1xyXG4gICAgICAgIGlmICh0aGlzLmhpZGVDaGFubmVscykgdGhpcy5lbmFibGVIaWRlQ2hhbm5lbHMoKTtcclxuICAgICAgICB0aGlzLmhpZGVDaGFubmVsQ2FuY2VsID0gdGhpcy5yZWdpc3RlclNldHRpbmcodGhpcy5oaWRlQ2hhbm5lbHNJRCwgdGhpcy5lbmFibGVIaWRlQ2hhbm5lbHMsIHRoaXMuZGlzYWJsZUhpZGVDaGFubmVscyk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgJChcImJvZHlcIikucmVtb3ZlQ2xhc3MoXCJiZC1taW5pbWFsXCIpO1xyXG4gICAgICAgIGlmICh0aGlzLmhpZGVDaGFubmVscykgdGhpcy5kaXNhYmxlSGlkZUNoYW5uZWxzKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuaGlkZUNoYW5uZWxDYW5jZWwpIHRoaXMuaGlkZUNoYW5uZWxDYW5jZWwoKTtcclxuICAgIH1cclxuXHJcbiAgICBlbmFibGVIaWRlQ2hhbm5lbHMoKSB7XHJcbiAgICAgICAgJChcImJvZHlcIikuYWRkQ2xhc3MoXCJiZC1taW5pbWFsLWNoYW5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZUhpZGVDaGFubmVscygpIHtcclxuICAgICAgICAkKFwiYm9keVwiKS5yZW1vdmVDbGFzcyhcImJkLW1pbmltYWwtY2hhblwiKTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/builtins/minimalmode.js\n");
/***/ }),
/***/ "./src/builtins/publicservers.js":
/*!***************************************!*\
!*** ./src/builtins/publicservers.js ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n\n\n\nconst LayerStack = modules__WEBPACK_IMPORTED_MODULE_1__[\"WebpackModules\"].getByProps(\"pushLayer\");\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class PublicServers extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"PublicServers\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"publicServers\";\n }\n\n enabled() {\n const wrapper = modules__WEBPACK_IMPORTED_MODULE_1__[\"BDV2\"].guildClasses.wrapper.split(\" \")[0];\n const guilds = $(`.${wrapper} .scroller-2FKFPG >:first-child`);\n guilds.after(this.button);\n }\n\n disabled() {\n $(\"#bd-pub-li\").remove();\n }\n\n openPublicServers() {\n LayerStack.pushLayer(() => modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].React.createElement(ui__WEBPACK_IMPORTED_MODULE_2__[\"PublicServersMenu\"], {\n close: LayerStack.popLayer\n }));\n }\n\n get button() {\n const btn = $(\"<div/>\", {\n \"class\": modules__WEBPACK_IMPORTED_MODULE_1__[\"BDV2\"].guildClasses.listItem,\n \"id\": \"bd-pub-li\"\n }).append($(\"<div/>\", {\n \"class\": \"wrapper-25eVIn \" + modules__WEBPACK_IMPORTED_MODULE_1__[\"BDV2\"].guildClasses.circleButtonMask,\n \"text\": \"public\",\n \"id\": \"bd-pub-button\",\n \"click\": () => {\n this.openPublicServers();\n }\n }));\n return btn;\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL3B1YmxpY3NlcnZlcnMuanM/MWY2NSJdLCJuYW1lcyI6WyJMYXllclN0YWNrIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeVByb3BzIiwiUHVibGljU2VydmVycyIsIkJ1aWx0aW4iLCJuYW1lIiwiY2F0ZWdvcnkiLCJpZCIsImVuYWJsZWQiLCJ3cmFwcGVyIiwiQkRWMiIsImd1aWxkQ2xhc3NlcyIsInNwbGl0IiwiZ3VpbGRzIiwiJCIsImFmdGVyIiwiYnV0dG9uIiwiZGlzYWJsZWQiLCJyZW1vdmUiLCJvcGVuUHVibGljU2VydmVycyIsInB1c2hMYXllciIsIkRpc2NvcmRNb2R1bGVzIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiUHVibGljU2VydmVyc01lbnUiLCJjbG9zZSIsInBvcExheWVyIiwiYnRuIiwibGlzdEl0ZW0iLCJhcHBlbmQiLCJjaXJjbGVCdXR0b25NYXNrIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLFVBQVUsR0FBR0Msc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixXQUExQixDQUFuQjtBQUVlLG1FQUFJLE1BQU1DLGFBQU4sU0FBNEJDLHdEQUE1QixDQUFvQztBQUNuRCxNQUFJQyxJQUFKLEdBQVc7QUFBQyxXQUFPLGVBQVA7QUFBd0I7O0FBQ3BDLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU8sU0FBUDtBQUFrQjs7QUFDbEMsTUFBSUMsRUFBSixHQUFTO0FBQUMsV0FBTyxlQUFQO0FBQXdCOztBQUVsQ0MsU0FBTyxHQUFHO0FBQ04sVUFBTUMsT0FBTyxHQUFHQyw0Q0FBSSxDQUFDQyxZQUFMLENBQWtCRixPQUFsQixDQUEwQkcsS0FBMUIsQ0FBZ0MsR0FBaEMsRUFBcUMsQ0FBckMsQ0FBaEI7QUFDQSxVQUFNQyxNQUFNLEdBQUdDLENBQUMsQ0FBRSxJQUFHTCxPQUFRLGlDQUFiLENBQWhCO0FBQ0FJLFVBQU0sQ0FBQ0UsS0FBUCxDQUFhLEtBQUtDLE1BQWxCO0FBQ0g7O0FBRURDLFVBQVEsR0FBRztBQUNQSCxLQUFDLENBQUMsWUFBRCxDQUFELENBQWdCSSxNQUFoQjtBQUNIOztBQUVEQyxtQkFBaUIsR0FBRztBQUNoQm5CLGNBQVUsQ0FBQ29CLFNBQVgsQ0FBcUIsTUFBTUMsc0RBQWMsQ0FBQ0MsS0FBZixDQUFxQkMsYUFBckIsQ0FBbUNDLG9EQUFuQyxFQUFzRDtBQUFDQyxXQUFLLEVBQUV6QixVQUFVLENBQUMwQjtBQUFuQixLQUF0RCxDQUEzQjtBQUNIOztBQUVELE1BQUlWLE1BQUosR0FBYTtBQUNULFVBQU1XLEdBQUcsR0FBR2IsQ0FBQyxDQUFDLFFBQUQsRUFBVztBQUNwQixlQUFTSiw0Q0FBSSxDQUFDQyxZQUFMLENBQWtCaUIsUUFEUDtBQUVwQixZQUFNO0FBRmMsS0FBWCxDQUFELENBR1RDLE1BSFMsQ0FHRmYsQ0FBQyxDQUFDLFFBQUQsRUFBVztBQUNsQixlQUFTLG9CQUFvQkosNENBQUksQ0FBQ0MsWUFBTCxDQUFrQm1CLGdCQUQ3QjtBQUVsQixjQUFRLFFBRlU7QUFHbEIsWUFBTSxlQUhZO0FBSWxCLGVBQVMsTUFBTTtBQUFFLGFBQUtYLGlCQUFMO0FBQTJCO0FBSjFCLEtBQVgsQ0FIQyxDQUFaO0FBVUEsV0FBT1EsR0FBUDtBQUNIOztBQS9Ca0QsQ0FBeEMsRUFBZiIsImZpbGUiOiIuL3NyYy9idWlsdGlucy9wdWJsaWNzZXJ2ZXJzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJ1aWx0aW4gZnJvbSBcIi4uL3N0cnVjdHMvYnVpbHRpblwiO1xyXG5pbXBvcnQge0JEVjIsIERpc2NvcmRNb2R1bGVzLCBXZWJwYWNrTW9kdWxlc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuaW1wb3J0IHtQdWJsaWNTZXJ2ZXJzTWVudX0gZnJvbSBcInVpXCI7XHJcblxyXG5jb25zdCBMYXllclN0YWNrID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInB1c2hMYXllclwiKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBQdWJsaWNTZXJ2ZXJzIGV4dGVuZHMgQnVpbHRpbiB7XHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJQdWJsaWNTZXJ2ZXJzXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImdlbmVyYWxcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwicHVibGljU2VydmVyc1wiO31cclxuXHJcbiAgICBlbmFibGVkKCkge1xyXG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBCRFYyLmd1aWxkQ2xhc3Nlcy53cmFwcGVyLnNwbGl0KFwiIFwiKVswXTtcclxuICAgICAgICBjb25zdCBndWlsZHMgPSAkKGAuJHt3cmFwcGVyfSAuc2Nyb2xsZXItMkZLRlBHID46Zmlyc3QtY2hpbGRgKTtcclxuICAgICAgICBndWlsZHMuYWZ0ZXIodGhpcy5idXR0b24pO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgICQoXCIjYmQtcHViLWxpXCIpLnJlbW92ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5QdWJsaWNTZXJ2ZXJzKCkge1xyXG4gICAgICAgIExheWVyU3RhY2sucHVzaExheWVyKCgpID0+IERpc2NvcmRNb2R1bGVzLlJlYWN0LmNyZWF0ZUVsZW1lbnQoUHVibGljU2VydmVyc01lbnUsIHtjbG9zZTogTGF5ZXJTdGFjay5wb3BMYXllcn0pKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYnV0dG9uKCkge1xyXG4gICAgICAgIGNvbnN0IGJ0biA9ICQoXCI8ZGl2Lz5cIiwge1xyXG4gICAgICAgICAgICBcImNsYXNzXCI6IEJEVjIuZ3VpbGRDbGFzc2VzLmxpc3RJdGVtLFxyXG4gICAgICAgICAgICBcImlkXCI6IFwiYmQtcHViLWxpXCJcclxuICAgICAgICB9KS5hcHBlbmQoJChcIjxkaXYvPlwiLCB7XHJcbiAgICAgICAgICAgIFwiY2xhc3NcIjogXCJ3cmFwcGVyLTI1ZVZJbiBcIiArIEJEVjIuZ3VpbGRDbGFzc2VzLmNpcmNsZUJ1dHRvbk1hc2ssXHJcbiAgICAgICAgICAgIFwidGV4dFwiOiBcInB1YmxpY1wiLFxyXG4gICAgICAgICAgICBcImlkXCI6IFwiYmQtcHViLWJ1dHRvblwiLFxyXG4gICAgICAgICAgICBcImNsaWNrXCI6ICgpID0+IHsgdGhpcy5vcGVuUHVibGljU2VydmVycygpOyB9XHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICByZXR1cm4gYnRuO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/publicservers.js\n");
/***/ }),
/***/ "./src/builtins/voicedisconnect.js":
/*!*****************************************!*\
!*** ./src/builtins/voicedisconnect.js ***!
\*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class DarkMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"VoiceDisconnect\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"voiceDisconnect\";\n }\n\n constructor() {\n super();\n this.beforeUnload = this.beforeUnload.bind(this);\n }\n\n enabled() {\n window.addEventListener(\"beforeunload\", this.beforeUnload);\n }\n\n disabled() {\n window.removeEventListener(\"beforeunload\", this.beforeUnload);\n }\n\n beforeUnload() {\n modules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].ChannelActions.selectVoiceChannel(null, null);\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL3ZvaWNlZGlzY29ubmVjdC5qcz8yYmVmIl0sIm5hbWVzIjpbIkRhcmtNb2RlIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwiY29uc3RydWN0b3IiLCJiZWZvcmVVbmxvYWQiLCJiaW5kIiwiZW5hYmxlZCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJkaXNhYmxlZCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJEaXNjb3JkTW9kdWxlcyIsIkNoYW5uZWxBY3Rpb25zIiwic2VsZWN0Vm9pY2VDaGFubmVsIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRWUsbUVBQUksTUFBTUEsUUFBTixTQUF1QkMsd0RBQXZCLENBQStCO0FBQzlDLE1BQUlDLElBQUosR0FBVztBQUFDLFdBQU8saUJBQVA7QUFBMEI7O0FBQ3RDLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU8sU0FBUDtBQUFrQjs7QUFDbEMsTUFBSUMsRUFBSixHQUFTO0FBQUMsV0FBTyxpQkFBUDtBQUEwQjs7QUFFcENDLGFBQVcsR0FBRztBQUNWO0FBQ0EsU0FBS0MsWUFBTCxHQUFvQixLQUFLQSxZQUFMLENBQWtCQyxJQUFsQixDQUF1QixJQUF2QixDQUFwQjtBQUNIOztBQUVEQyxTQUFPLEdBQUc7QUFDTkMsVUFBTSxDQUFDQyxnQkFBUCxDQUF3QixjQUF4QixFQUF3QyxLQUFLSixZQUE3QztBQUNIOztBQUVESyxVQUFRLEdBQUc7QUFDUEYsVUFBTSxDQUFDRyxtQkFBUCxDQUEyQixjQUEzQixFQUEyQyxLQUFLTixZQUFoRDtBQUNIOztBQUVEQSxjQUFZLEdBQUc7QUFDWE8sMERBQWMsQ0FBQ0MsY0FBZixDQUE4QkMsa0JBQTlCLENBQWlELElBQWpELEVBQXVELElBQXZEO0FBQ0g7O0FBcEI2QyxDQUFuQyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL3ZvaWNlZGlzY29ubmVjdC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuaW1wb3J0IHtEaXNjb3JkTW9kdWxlc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBEYXJrTW9kZSBleHRlbmRzIEJ1aWx0aW4ge1xyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiVm9pY2VEaXNjb25uZWN0XCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcImdlbmVyYWxcIjt9XHJcbiAgICBnZXQgaWQoKSB7cmV0dXJuIFwidm9pY2VEaXNjb25uZWN0XCI7fVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5iZWZvcmVVbmxvYWQgPSB0aGlzLmJlZm9yZVVubG9hZC5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJiZWZvcmV1bmxvYWRcIiwgdGhpcy5iZWZvcmVVbmxvYWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiYmVmb3JldW5sb2FkXCIsIHRoaXMuYmVmb3JlVW5sb2FkKTtcclxuICAgIH1cclxuXHJcbiAgICBiZWZvcmVVbmxvYWQoKSB7XHJcbiAgICAgICAgRGlzY29yZE1vZHVsZXMuQ2hhbm5lbEFjdGlvbnMuc2VsZWN0Vm9pY2VDaGFubmVsKG51bGwsIG51bGwpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/builtins/voicedisconnect.js\n");
/***/ }),
/***/ "./src/builtins/voicemode.js":
/*!***********************************!*\
!*** ./src/builtins/voicemode.js ***!
\***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class VoiceMode extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"VoiceMode\";\n }\n\n get category() {\n return \"appearance\";\n }\n\n get id() {\n return \"voiceMode\";\n }\n\n enabled() {\n $(\".scroller.guild-channels ul\").first().css(\"display\", \"none\");\n $(\".scroller.guild-channels header\").first().css(\"display\", \"none\");\n $(\".app.flex-vertical, .app-2rEoOp\").first().css(\"overflow\", \"hidden\");\n $(\".chat-3bRxxu\").first().css(\"visibility\", \"hidden\").css(\"min-width\", \"0px\");\n $(\".flex-vertical.channels-wrap\").first().css(\"flex-grow\", \"100000\");\n $(\".guild-header .btn.btn-hamburger\").first().css(\"visibility\", \"hidden\");\n }\n\n disabled() {\n $(\".scroller.guild-channels ul\").first().css(\"display\", \"\");\n $(\".scroller.guild-channels header\").first().css(\"display\", \"\");\n $(\".app.flex-vertical, .app-2rEoOp\").first().css(\"overflow\", \"\");\n $(\".chat-3bRxxu\").first().css(\"visibility\", \"\").css(\"min-width\", \"\");\n $(\".flex-vertical.channels-wrap\").first().css(\"flex-grow\", \"\");\n $(\".guild-header .btn.btn-hamburger\").first().css(\"visibility\", \"\");\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL3ZvaWNlbW9kZS5qcz80M2E3Il0sIm5hbWVzIjpbIlZvaWNlTW9kZSIsIkJ1aWx0aW4iLCJuYW1lIiwiY2F0ZWdvcnkiLCJpZCIsImVuYWJsZWQiLCIkIiwiZmlyc3QiLCJjc3MiLCJkaXNhYmxlZCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBRWUsbUVBQUksTUFBTUEsU0FBTixTQUF3QkMsd0RBQXhCLENBQWdDO0FBQy9DLE1BQUlDLElBQUosR0FBVztBQUFDLFdBQU8sV0FBUDtBQUFvQjs7QUFDaEMsTUFBSUMsUUFBSixHQUFlO0FBQUMsV0FBTyxZQUFQO0FBQXFCOztBQUNyQyxNQUFJQyxFQUFKLEdBQVM7QUFBQyxXQUFPLFdBQVA7QUFBb0I7O0FBRTlCQyxTQUFPLEdBQUc7QUFDTkMsS0FBQyxDQUFDLDZCQUFELENBQUQsQ0FBaUNDLEtBQWpDLEdBQXlDQyxHQUF6QyxDQUE2QyxTQUE3QyxFQUF3RCxNQUF4RDtBQUNBRixLQUFDLENBQUMsaUNBQUQsQ0FBRCxDQUFxQ0MsS0FBckMsR0FBNkNDLEdBQTdDLENBQWlELFNBQWpELEVBQTRELE1BQTVEO0FBQ0FGLEtBQUMsQ0FBQyxpQ0FBRCxDQUFELENBQXFDQyxLQUFyQyxHQUE2Q0MsR0FBN0MsQ0FBaUQsVUFBakQsRUFBNkQsUUFBN0Q7QUFDQUYsS0FBQyxDQUFDLGNBQUQsQ0FBRCxDQUFrQkMsS0FBbEIsR0FBMEJDLEdBQTFCLENBQThCLFlBQTlCLEVBQTRDLFFBQTVDLEVBQXNEQSxHQUF0RCxDQUEwRCxXQUExRCxFQUF1RSxLQUF2RTtBQUNBRixLQUFDLENBQUMsOEJBQUQsQ0FBRCxDQUFrQ0MsS0FBbEMsR0FBMENDLEdBQTFDLENBQThDLFdBQTlDLEVBQTJELFFBQTNEO0FBQ0FGLEtBQUMsQ0FBQyxrQ0FBRCxDQUFELENBQXNDQyxLQUF0QyxHQUE4Q0MsR0FBOUMsQ0FBa0QsWUFBbEQsRUFBZ0UsUUFBaEU7QUFDSDs7QUFFREMsVUFBUSxHQUFHO0FBQ1BILEtBQUMsQ0FBQyw2QkFBRCxDQUFELENBQWlDQyxLQUFqQyxHQUF5Q0MsR0FBekMsQ0FBNkMsU0FBN0MsRUFBd0QsRUFBeEQ7QUFDQUYsS0FBQyxDQUFDLGlDQUFELENBQUQsQ0FBcUNDLEtBQXJDLEdBQTZDQyxHQUE3QyxDQUFpRCxTQUFqRCxFQUE0RCxFQUE1RDtBQUNBRixLQUFDLENBQUMsaUNBQUQsQ0FBRCxDQUFxQ0MsS0FBckMsR0FBNkNDLEdBQTdDLENBQWlELFVBQWpELEVBQTZELEVBQTdEO0FBQ0FGLEtBQUMsQ0FBQyxjQUFELENBQUQsQ0FBa0JDLEtBQWxCLEdBQTBCQyxHQUExQixDQUE4QixZQUE5QixFQUE0QyxFQUE1QyxFQUFnREEsR0FBaEQsQ0FBb0QsV0FBcEQsRUFBaUUsRUFBakU7QUFDQUYsS0FBQyxDQUFDLDhCQUFELENBQUQsQ0FBa0NDLEtBQWxDLEdBQTBDQyxHQUExQyxDQUE4QyxXQUE5QyxFQUEyRCxFQUEzRDtBQUNBRixLQUFDLENBQUMsa0NBQUQsQ0FBRCxDQUFzQ0MsS0FBdEMsR0FBOENDLEdBQTlDLENBQWtELFlBQWxELEVBQWdFLEVBQWhFO0FBQ0g7O0FBckI4QyxDQUFwQyxFQUFmIiwiZmlsZSI6Ii4vc3JjL2J1aWx0aW5zL3ZvaWNlbW9kZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBWb2ljZU1vZGUgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIlZvaWNlTW9kZVwiO31cclxuICAgIGdldCBjYXRlZ29yeSgpIHtyZXR1cm4gXCJhcHBlYXJhbmNlXCI7fVxyXG4gICAgZ2V0IGlkKCkge3JldHVybiBcInZvaWNlTW9kZVwiO31cclxuXHJcbiAgICBlbmFibGVkKCkge1xyXG4gICAgICAgICQoXCIuc2Nyb2xsZXIuZ3VpbGQtY2hhbm5lbHMgdWxcIikuZmlyc3QoKS5jc3MoXCJkaXNwbGF5XCIsIFwibm9uZVwiKTtcclxuICAgICAgICAkKFwiLnNjcm9sbGVyLmd1aWxkLWNoYW5uZWxzIGhlYWRlclwiKS5maXJzdCgpLmNzcyhcImRpc3BsYXlcIiwgXCJub25lXCIpO1xyXG4gICAgICAgICQoXCIuYXBwLmZsZXgtdmVydGljYWwsIC5hcHAtMnJFb09wXCIpLmZpcnN0KCkuY3NzKFwib3ZlcmZsb3dcIiwgXCJoaWRkZW5cIik7XHJcbiAgICAgICAgJChcIi5jaGF0LTNiUnh4dVwiKS5maXJzdCgpLmNzcyhcInZpc2liaWxpdHlcIiwgXCJoaWRkZW5cIikuY3NzKFwibWluLXdpZHRoXCIsIFwiMHB4XCIpO1xyXG4gICAgICAgICQoXCIuZmxleC12ZXJ0aWNhbC5jaGFubmVscy13cmFwXCIpLmZpcnN0KCkuY3NzKFwiZmxleC1ncm93XCIsIFwiMTAwMDAwXCIpO1xyXG4gICAgICAgICQoXCIuZ3VpbGQtaGVhZGVyIC5idG4uYnRuLWhhbWJ1cmdlclwiKS5maXJzdCgpLmNzcyhcInZpc2liaWxpdHlcIiwgXCJoaWRkZW5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgJChcIi5zY3JvbGxlci5ndWlsZC1jaGFubmVscyB1bFwiKS5maXJzdCgpLmNzcyhcImRpc3BsYXlcIiwgXCJcIik7XHJcbiAgICAgICAgJChcIi5zY3JvbGxlci5ndWlsZC1jaGFubmVscyBoZWFkZXJcIikuZmlyc3QoKS5jc3MoXCJkaXNwbGF5XCIsIFwiXCIpO1xyXG4gICAgICAgICQoXCIuYXBwLmZsZXgtdmVydGljYWwsIC5hcHAtMnJFb09wXCIpLmZpcnN0KCkuY3NzKFwib3ZlcmZsb3dcIiwgXCJcIik7XHJcbiAgICAgICAgJChcIi5jaGF0LTNiUnh4dVwiKS5maXJzdCgpLmNzcyhcInZpc2liaWxpdHlcIiwgXCJcIikuY3NzKFwibWluLXdpZHRoXCIsIFwiXCIpO1xyXG4gICAgICAgICQoXCIuZmxleC12ZXJ0aWNhbC5jaGFubmVscy13cmFwXCIpLmZpcnN0KCkuY3NzKFwiZmxleC1ncm93XCIsIFwiXCIpO1xyXG4gICAgICAgICQoXCIuZ3VpbGQtaGVhZGVyIC5idG4uYnRuLWhhbWJ1cmdlclwiKS5maXJzdCgpLmNzcyhcInZpc2liaWxpdHlcIiwgXCJcIik7XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/builtins/voicemode.js\n");
/***/ }),
/***/ "./src/builtins/windowprefs.js":
/*!*************************************!*\
!*** ./src/builtins/windowprefs.js ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _structs_builtin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../structs/builtin */ \"./src/structs/builtin.js\");\n\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class WindowPrefs extends _structs_builtin__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n get name() {\n return \"WindowPrefs\";\n }\n\n get category() {\n return \"window\";\n }\n\n get id() {\n return \"transparency\";\n }\n\n get WindowConfigFile() {\n if (this._windowConfigFile) return this._windowConfigFile;\n\n const electron = __webpack_require__(/*! electron */ \"electron\").remote.app;\n\n const base = electron.getAppPath();\n const roamingBase = electron.getPath(\"userData\");\n const roamingLocation = path.resolve(roamingBase, electron.getVersion(), \"modules\", \"discord_desktop_core\", \"injector\", \"config.json\");\n const location = path.resolve(base, \"..\", \"app\", \"config.json\");\n const realLocation = fs.existsSync(location) ? location : fs.existsSync(roamingLocation) ? roamingLocation : null;\n if (!realLocation) return this._windowConfigFile = null;\n return this._windowConfigFile = realLocation;\n }\n\n enabled() {\n this.setWindowPreference(\"transparent\", true);\n this.setWindowPreference(\"backgroundColor\", null);\n }\n\n disabled() {\n this.setWindowPreference(\"transparent\", false);\n this.setWindowPreference(\"backgroundColor\", \"#2f3136\");\n }\n\n getAllWindowPreferences() {\n if (!this.WindowConfigFile) return {};\n return require(this.WindowConfigFile);\n }\n\n getWindowPreference(key) {\n if (!this.WindowConfigFile) return undefined;\n return this.getAllWindowPreferences()[key];\n }\n\n setWindowPreference(key, value) {\n if (!this.WindowConfigFile) return;\n const prefs = this.getAllWindowPreferences();\n prefs[key] = value;\n delete __webpack_require__.c[this.WindowConfigFile];\n fs.writeFileSync(this.WindowConfigFile, JSON.stringify(prefs, null, 4));\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2J1aWx0aW5zL3dpbmRvd3ByZWZzLmpzP2I0YTciXSwibmFtZXMiOlsiZnMiLCJyZXF1aXJlIiwicGF0aCIsIldpbmRvd1ByZWZzIiwiQnVpbHRpbiIsIm5hbWUiLCJjYXRlZ29yeSIsImlkIiwiV2luZG93Q29uZmlnRmlsZSIsIl93aW5kb3dDb25maWdGaWxlIiwiZWxlY3Ryb24iLCJyZW1vdGUiLCJhcHAiLCJiYXNlIiwiZ2V0QXBwUGF0aCIsInJvYW1pbmdCYXNlIiwiZ2V0UGF0aCIsInJvYW1pbmdMb2NhdGlvbiIsInJlc29sdmUiLCJnZXRWZXJzaW9uIiwibG9jYXRpb24iLCJyZWFsTG9jYXRpb24iLCJleGlzdHNTeW5jIiwiZW5hYmxlZCIsInNldFdpbmRvd1ByZWZlcmVuY2UiLCJkaXNhYmxlZCIsImdldEFsbFdpbmRvd1ByZWZlcmVuY2VzIiwiX19ub25fd2VicGFja19yZXF1aXJlX18iLCJnZXRXaW5kb3dQcmVmZXJlbmNlIiwia2V5IiwidW5kZWZpbmVkIiwidmFsdWUiLCJwcmVmcyIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7O0FBRUEsTUFBTUEsRUFBRSxHQUFHQyxtQkFBTyxDQUFDLGNBQUQsQ0FBbEI7O0FBQ0EsTUFBTUMsSUFBSSxHQUFHRCxtQkFBTyxDQUFDLGtCQUFELENBQXBCOztBQUVlLG1FQUFJLE1BQU1FLFdBQU4sU0FBMEJDLHdEQUExQixDQUFrQztBQUNqRCxNQUFJQyxJQUFKLEdBQVc7QUFBQyxXQUFPLGFBQVA7QUFBc0I7O0FBQ2xDLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU8sUUFBUDtBQUFpQjs7QUFDakMsTUFBSUMsRUFBSixHQUFTO0FBQUMsV0FBTyxjQUFQO0FBQXVCOztBQUVqQyxNQUFJQyxnQkFBSixHQUF1QjtBQUNuQixRQUFJLEtBQUtDLGlCQUFULEVBQTRCLE9BQU8sS0FBS0EsaUJBQVo7O0FBQzVCLFVBQU1DLFFBQVEsR0FBR1QsbUJBQU8sQ0FBQywwQkFBRCxDQUFQLENBQW9CVSxNQUFwQixDQUEyQkMsR0FBNUM7O0FBQ0EsVUFBTUMsSUFBSSxHQUFHSCxRQUFRLENBQUNJLFVBQVQsRUFBYjtBQUNBLFVBQU1DLFdBQVcsR0FBR0wsUUFBUSxDQUFDTSxPQUFULENBQWlCLFVBQWpCLENBQXBCO0FBQ0EsVUFBTUMsZUFBZSxHQUFHZixJQUFJLENBQUNnQixPQUFMLENBQWFILFdBQWIsRUFBMEJMLFFBQVEsQ0FBQ1MsVUFBVCxFQUExQixFQUFpRCxTQUFqRCxFQUE0RCxzQkFBNUQsRUFBb0YsVUFBcEYsRUFBZ0csYUFBaEcsQ0FBeEI7QUFDQSxVQUFNQyxRQUFRLEdBQUdsQixJQUFJLENBQUNnQixPQUFMLENBQWFMLElBQWIsRUFBbUIsSUFBbkIsRUFBeUIsS0FBekIsRUFBZ0MsYUFBaEMsQ0FBakI7QUFDQSxVQUFNUSxZQUFZLEdBQUdyQixFQUFFLENBQUNzQixVQUFILENBQWNGLFFBQWQsSUFBMEJBLFFBQTFCLEdBQXFDcEIsRUFBRSxDQUFDc0IsVUFBSCxDQUFjTCxlQUFkLElBQWlDQSxlQUFqQyxHQUFtRCxJQUE3RztBQUNBLFFBQUksQ0FBQ0ksWUFBTCxFQUFtQixPQUFPLEtBQUtaLGlCQUFMLEdBQXlCLElBQWhDO0FBQ25CLFdBQU8sS0FBS0EsaUJBQUwsR0FBeUJZLFlBQWhDO0FBQ0g7O0FBRURFLFNBQU8sR0FBRztBQUNOLFNBQUtDLG1CQUFMLENBQXlCLGFBQXpCLEVBQXdDLElBQXhDO0FBQ0EsU0FBS0EsbUJBQUwsQ0FBeUIsaUJBQXpCLEVBQTRDLElBQTVDO0FBQ0g7O0FBRURDLFVBQVEsR0FBRztBQUNQLFNBQUtELG1CQUFMLENBQXlCLGFBQXpCLEVBQXdDLEtBQXhDO0FBQ0EsU0FBS0EsbUJBQUwsQ0FBeUIsaUJBQXpCLEVBQTRDLFNBQTVDO0FBQ0g7O0FBRURFLHlCQUF1QixHQUFHO0FBQ3RCLFFBQUksQ0FBQyxLQUFLbEIsZ0JBQVYsRUFBNEIsT0FBTyxFQUFQO0FBQzVCLFdBQU9tQixPQUF1QixDQUFDLEtBQUtuQixnQkFBTixDQUE5QjtBQUNIOztBQUVEb0IscUJBQW1CLENBQUNDLEdBQUQsRUFBTTtBQUNyQixRQUFJLENBQUMsS0FBS3JCLGdCQUFWLEVBQTRCLE9BQU9zQixTQUFQO0FBQzVCLFdBQU8sS0FBS0osdUJBQUwsR0FBK0JHLEdBQS9CLENBQVA7QUFDSDs7QUFFREwscUJBQW1CLENBQUNLLEdBQUQsRUFBTUUsS0FBTixFQUFhO0FBQzVCLFFBQUksQ0FBQyxLQUFLdkIsZ0JBQVYsRUFBNEI7QUFDNUIsVUFBTXdCLEtBQUssR0FBRyxLQUFLTix1QkFBTCxFQUFkO0FBQ0FNLFNBQUssQ0FBQ0gsR0FBRCxDQUFMLEdBQWFFLEtBQWI7QUFDQSxXQUFPOUIscUJBQUEsQ0FBYyxLQUFLTyxnQkFBbkIsQ0FBUDtBQUNBUixNQUFFLENBQUNpQyxhQUFILENBQWlCLEtBQUt6QixnQkFBdEIsRUFBd0MwQixJQUFJLENBQUNDLFNBQUwsQ0FBZUgsS0FBZixFQUFzQixJQUF0QixFQUE0QixDQUE1QixDQUF4QztBQUNIOztBQTNDZ0QsQ0FBdEMsRUFBZiIsImZpbGUiOiIuL3NyYy9idWlsdGlucy93aW5kb3dwcmVmcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsdGluIGZyb20gXCIuLi9zdHJ1Y3RzL2J1aWx0aW5cIjtcclxuXHJcbmNvbnN0IGZzID0gcmVxdWlyZShcImZzXCIpO1xyXG5jb25zdCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgV2luZG93UHJlZnMgZXh0ZW5kcyBCdWlsdGluIHtcclxuICAgIGdldCBuYW1lKCkge3JldHVybiBcIldpbmRvd1ByZWZzXCI7fVxyXG4gICAgZ2V0IGNhdGVnb3J5KCkge3JldHVybiBcIndpbmRvd1wiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJ0cmFuc3BhcmVuY3lcIjt9XHJcblxyXG4gICAgZ2V0IFdpbmRvd0NvbmZpZ0ZpbGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3dpbmRvd0NvbmZpZ0ZpbGUpIHJldHVybiB0aGlzLl93aW5kb3dDb25maWdGaWxlO1xyXG4gICAgICAgIGNvbnN0IGVsZWN0cm9uID0gcmVxdWlyZShcImVsZWN0cm9uXCIpLnJlbW90ZS5hcHA7XHJcbiAgICAgICAgY29uc3QgYmFzZSA9IGVsZWN0cm9uLmdldEFwcFBhdGgoKTtcclxuICAgICAgICBjb25zdCByb2FtaW5nQmFzZSA9IGVsZWN0cm9uLmdldFBhdGgoXCJ1c2VyRGF0YVwiKTtcclxuICAgICAgICBjb25zdCByb2FtaW5nTG9jYXRpb24gPSBwYXRoLnJlc29sdmUocm9hbWluZ0Jhc2UsIGVsZWN0cm9uLmdldFZlcnNpb24oKSwgXCJtb2R1bGVzXCIsIFwiZGlzY29yZF9kZXNrdG9wX2NvcmVcIiwgXCJpbmplY3RvclwiLCBcImNvbmZpZy5qc29uXCIpO1xyXG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gcGF0aC5yZXNvbHZlKGJhc2UsIFwiLi5cIiwgXCJhcHBcIiwgXCJjb25maWcuanNvblwiKTtcclxuICAgICAgICBjb25zdCByZWFsTG9jYXRpb24gPSBmcy5leGlzdHNTeW5jKGxvY2F0aW9uKSA/IGxvY2F0aW9uIDogZnMuZXhpc3RzU3luYyhyb2FtaW5nTG9jYXRpb24pID8gcm9hbWluZ0xvY2F0aW9uIDogbnVsbDtcclxuICAgICAgICBpZiAoIXJlYWxMb2NhdGlvbikgcmV0dXJuIHRoaXMuX3dpbmRvd0NvbmZpZ0ZpbGUgPSBudWxsO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl93aW5kb3dDb25maWdGaWxlID0gcmVhbExvY2F0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGVuYWJsZWQoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRXaW5kb3dQcmVmZXJlbmNlKFwidHJhbnNwYXJlbnRcIiwgdHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5zZXRXaW5kb3dQcmVmZXJlbmNlKFwiYmFja2dyb3VuZENvbG9yXCIsIG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc2FibGVkKCkge1xyXG4gICAgICAgIHRoaXMuc2V0V2luZG93UHJlZmVyZW5jZShcInRyYW5zcGFyZW50XCIsIGZhbHNlKTtcclxuICAgICAgICB0aGlzLnNldFdpbmRvd1ByZWZlcmVuY2UoXCJiYWNrZ3JvdW5kQ29sb3JcIiwgXCIjMmYzMTM2XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFsbFdpbmRvd1ByZWZlcmVuY2VzKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5XaW5kb3dDb25maWdGaWxlKSByZXR1cm4ge307XHJcbiAgICAgICAgcmV0dXJuIF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHRoaXMuV2luZG93Q29uZmlnRmlsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0V2luZG93UHJlZmVyZW5jZShrZXkpIHtcclxuICAgICAgICBpZiAoIXRoaXMuV2luZG93Q29uZmlnRmlsZSkgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGxXaW5kb3dQcmVmZXJlbmNlcygpW2tleV07XHJcbiAgICB9XHJcblxyXG4gICAgc2V0V2luZG93UHJlZmVyZW5jZShrZXksIHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLldpbmRvd0NvbmZpZ0ZpbGUpIHJldHVybjtcclxuICAgICAgICBjb25zdCBwcmVmcyA9IHRoaXMuZ2V0QWxsV2luZG93UHJlZmVyZW5jZXMoKTtcclxuICAgICAgICBwcmVmc1trZXldID0gdmFsdWU7XHJcbiAgICAgICAgZGVsZXRlIHJlcXVpcmUuY2FjaGVbdGhpcy5XaW5kb3dDb25maWdGaWxlXTtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuV2luZG93Q29uZmlnRmlsZSwgSlNPTi5zdHJpbmdpZnkocHJlZnMsIG51bGwsIDQpKTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/builtins/windowprefs.js\n");
/***/ }),
/***/ "./src/data/config.js":
/*!****************************!*\
!*** ./src/data/config.js ***!
\****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n local: false,\n localServer: \"//localhost:8080\",\n minified: true,\n version: \"0.3.0\",\n branch: \"master\",\n repo: \"rauenzi\",\n minSupportedVersion: \"0.3.0\",\n bbdVersion: \"0.2.17\"\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvY29uZmlnLmpzPzRiYWEiXSwibmFtZXMiOlsibG9jYWwiLCJsb2NhbFNlcnZlciIsIm1pbmlmaWVkIiwidmVyc2lvbiIsImJyYW5jaCIsInJlcG8iLCJtaW5TdXBwb3J0ZWRWZXJzaW9uIiwiYmJkVmVyc2lvbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBZTtBQUNYQSxPQUFLLEVBQUUsS0FESTtBQUVYQyxhQUFXLEVBQUUsa0JBRkY7QUFHWEMsVUFBUSxFQUFFLElBSEM7QUFJWEMsU0FBTyxFQUFFLE9BSkU7QUFLWEMsUUFBTSxFQUFFLFFBTEc7QUFNWEMsTUFBSSxFQUFFLFNBTks7QUFPWEMscUJBQW1CLEVBQUUsT0FQVjtBQVFYQyxZQUFVLEVBQUU7QUFSRCxDQUFmIiwiZmlsZSI6Ii4vc3JjL2RhdGEvY29uZmlnLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xyXG4gICAgbG9jYWw6IGZhbHNlLFxyXG4gICAgbG9jYWxTZXJ2ZXI6IFwiLy9sb2NhbGhvc3Q6ODA4MFwiLFxyXG4gICAgbWluaWZpZWQ6IHRydWUsXHJcbiAgICB2ZXJzaW9uOiBcIjAuMy4wXCIsXHJcbiAgICBicmFuY2g6IFwibWFzdGVyXCIsXHJcbiAgICByZXBvOiBcInJhdWVuemlcIixcclxuICAgIG1pblN1cHBvcnRlZFZlcnNpb246IFwiMC4zLjBcIixcclxuICAgIGJiZFZlcnNpb246IFwiMC4yLjE3XCJcclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/data/config.js\n");
/***/ }),
/***/ "./src/data/data.js":
/*!**************************!*\
!*** ./src/data/data.js ***!
\**************************/
/*! exports provided: Config, EmoteInfo, EmoteConfig, SettingsConfig */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ \"./src/data/config.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Config\", function() { return _config__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _emotes_info__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./emotes/info */ \"./src/data/emotes/info.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmoteInfo\", function() { return _emotes_info__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _emotes_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emotes/config */ \"./src/data/emotes/config.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EmoteConfig\", function() { return _emotes_config__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _settings_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./settings/config */ \"./src/data/settings/config.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SettingsConfig\", function() { return _settings_config__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvZGF0YS5qcz9kNWM3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9zcmMvZGF0YS9kYXRhLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbmZpZyBmcm9tIFwiLi9jb25maWdcIjtcclxuaW1wb3J0IEVtb3RlSW5mbyBmcm9tIFwiLi9lbW90ZXMvaW5mb1wiO1xyXG5pbXBvcnQgRW1vdGVDb25maWcgZnJvbSBcIi4vZW1vdGVzL2NvbmZpZ1wiO1xyXG5pbXBvcnQgU2V0dGluZ3NDb25maWcgZnJvbSBcIi4vc2V0dGluZ3MvY29uZmlnXCI7XHJcblxyXG5leHBvcnQge0NvbmZpZywgRW1vdGVJbmZvLCBFbW90ZUNvbmZpZywgU2V0dGluZ3NDb25maWd9OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/data/data.js\n");
/***/ }),
/***/ "./src/data/emotes/config.js":
/*!***********************************!*\
!*** ./src/data/emotes/config.js ***!
\***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ([{\n type: \"category\",\n id: \"general\",\n name: \"General\",\n collapsible: true,\n settings: [{\n type: \"switch\",\n id: \"download\",\n name: \"Download Emotes\",\n note: \"Download emotes once a week to stay up to date\",\n value: true\n }, {\n type: \"switch\",\n id: \"emoteMenu\",\n name: \"Emote Menu\",\n note: \"Show Twitch/Favourite emotes in emote menu\",\n value: true\n }, {\n type: \"switch\",\n id: \"hideEmojiMenu\",\n name: \"Hide Emoji Menu\",\n note: \"Hides Discord's emoji menu when using emote menu\",\n value: false,\n enableWith: \"emoteMenu\"\n }, {\n type: \"switch\",\n id: \"autoCaps\",\n name: \"Emote Autocapitalization\",\n note: \"Autocapitalize emote commands\",\n value: false\n }, {\n type: \"switch\",\n id: \"showNames\",\n name: \"Show Names\",\n note: \"Show emote names on hover\",\n value: true\n }, {\n type: \"switch\",\n id: \"modifiers\",\n name: \"Show Emote Modifiers\",\n note: \"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)\",\n value: true\n }, {\n type: \"switch\",\n id: \"animateOnHover\",\n name: \"Animate On Hover\",\n note: \"Only animate the emote modifiers on hover\",\n value: false\n }]\n}, {\n type: \"category\",\n id: \"categories\",\n name: \"Categories\",\n collapsible: true,\n settings: [{\n type: \"switch\",\n id: \"twitch\",\n name: \"Twitch\",\n note: \"Show Twitch global & subscriber emotes\",\n value: true\n }, {\n type: \"switch\",\n id: \"ffz\",\n name: \"FrankerFaceZ\",\n note: \"Show emotes from FFZ\",\n value: true\n }, {\n type: \"switch\",\n id: \"bttv\",\n name: \"BetterTTV\",\n note: \"Show emotes from BTTV\",\n value: true\n }]\n}]);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvZW1vdGVzL2NvbmZpZy5qcz8yZDVkIl0sIm5hbWVzIjpbInR5cGUiLCJpZCIsIm5hbWUiLCJjb2xsYXBzaWJsZSIsInNldHRpbmdzIiwibm90ZSIsInZhbHVlIiwiZW5hYmxlV2l0aCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBZSxnRUFDWDtBQUNJQSxNQUFJLEVBQUUsVUFEVjtBQUVJQyxJQUFFLEVBQUUsU0FGUjtBQUdJQyxNQUFJLEVBQUUsU0FIVjtBQUlJQyxhQUFXLEVBQUUsSUFKakI7QUFLSUMsVUFBUSxFQUFFLENBQ047QUFDSUosUUFBSSxFQUFFLFFBRFY7QUFFSUMsTUFBRSxFQUFFLFVBRlI7QUFHSUMsUUFBSSxFQUFFLGlCQUhWO0FBSUlHLFFBQUksRUFBRSxnREFKVjtBQUtJQyxTQUFLLEVBQUU7QUFMWCxHQURNLEVBUU47QUFDSU4sUUFBSSxFQUFFLFFBRFY7QUFFSUMsTUFBRSxFQUFFLFdBRlI7QUFHSUMsUUFBSSxFQUFFLFlBSFY7QUFJSUcsUUFBSSxFQUFFLDRDQUpWO0FBS0lDLFNBQUssRUFBRTtBQUxYLEdBUk0sRUFlTjtBQUNJTixRQUFJLEVBQUUsUUFEVjtBQUVJQyxNQUFFLEVBQUUsZUFGUjtBQUdJQyxRQUFJLEVBQUUsaUJBSFY7QUFJSUcsUUFBSSxFQUFFLGtEQUpWO0FBS0lDLFNBQUssRUFBRSxLQUxYO0FBTUlDLGNBQVUsRUFBRTtBQU5oQixHQWZNLEVBdUJOO0FBQ0lQLFFBQUksRUFBRSxRQURWO0FBRUlDLE1BQUUsRUFBRSxVQUZSO0FBR0lDLFFBQUksRUFBRSwwQkFIVjtBQUlJRyxRQUFJLEVBQUUsK0JBSlY7QUFLSUMsU0FBSyxFQUFFO0FBTFgsR0F2Qk0sRUE4Qk47QUFDSU4sUUFBSSxFQUFFLFFBRFY7QUFFSUMsTUFBRSxFQUFFLFdBRlI7QUFHSUMsUUFBSSxFQUFFLFlBSFY7QUFJSUcsUUFBSSxFQUFFLDJCQUpWO0FBS0lDLFNBQUssRUFBRTtBQUxYLEdBOUJNLEVBcUNOO0FBQ0lOLFFBQUksRUFBRSxRQURWO0FBRUlDLE1BQUUsRUFBRSxXQUZSO0FBR0lDLFFBQUksRUFBRSxzQkFIVjtBQUlJRyxRQUFJLEVBQUUsbUhBSlY7QUFLSUMsU0FBSyxFQUFFO0FBTFgsR0FyQ00sRUE0Q047QUFDSU4sUUFBSSxFQUFFLFFBRFY7QUFFSUMsTUFBRSxFQUFFLGdCQUZSO0FBR0lDLFFBQUksRUFBRSxrQkFIVjtBQUlJRyxRQUFJLEVBQUUsMkNBSlY7QUFLSUMsU0FBSyxFQUFFO0FBTFgsR0E1Q007QUFMZCxDQURXLEVBMkRYO0FBQ0lOLE1BQUksRUFBRSxVQURWO0FBRUlDLElBQUUsRUFBRSxZQUZSO0FBR0lDLE1BQUksRUFBRSxZQUhWO0FBSUlDLGFBQVcsRUFBRSxJQUpqQjtBQUtJQyxVQUFRLEVBQUUsQ0FDTjtBQUNJSixRQUFJLEVBQUUsUUFEVjtBQUVJQyxNQUFFLEVBQUUsUUFGUjtBQUdJQyxRQUFJLEVBQUUsUUFIVjtBQUlJRyxRQUFJLEVBQUUsd0NBSlY7QUFLSUMsU0FBSyxFQUFFO0FBTFgsR0FETSxFQVFOO0FBQ0lOLFFBQUksRUFBRSxRQURWO0FBRUlDLE1BQUUsRUFBRSxLQUZSO0FBR0lDLFFBQUksRUFBRSxjQUhWO0FBSUlHLFFBQUksRUFBRSxzQkFKVjtBQUtJQyxTQUFLLEVBQUU7QUFMWCxHQVJNLEVBZU47QUFDSU4sUUFBSSxFQUFFLFFBRFY7QUFFSUMsTUFBRSxFQUFFLE1BRlI7QUFHSUMsUUFBSSxFQUFFLFdBSFY7QUFJSUcsUUFBSSxFQUFFLHVCQUpWO0FBS0lDLFNBQUssRUFBRTtBQUxYLEdBZk07QUFMZCxDQTNEVyxDQUFmIiwiZmlsZSI6Ii4vc3JjL2RhdGEvZW1vdGVzL2NvbmZpZy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFtcclxuICAgIHtcclxuICAgICAgICB0eXBlOiBcImNhdGVnb3J5XCIsXHJcbiAgICAgICAgaWQ6IFwiZ2VuZXJhbFwiLFxyXG4gICAgICAgIG5hbWU6IFwiR2VuZXJhbFwiLFxyXG4gICAgICAgIGNvbGxhcHNpYmxlOiB0cnVlLFxyXG4gICAgICAgIHNldHRpbmdzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJkb3dubG9hZFwiLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJEb3dubG9hZCBFbW90ZXNcIixcclxuICAgICAgICAgICAgICAgIG5vdGU6IFwiRG93bmxvYWQgZW1vdGVzIG9uY2UgYSB3ZWVrIHRvIHN0YXkgdXAgdG8gZGF0ZVwiLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgIGlkOiBcImVtb3RlTWVudVwiLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJFbW90ZSBNZW51XCIsXHJcbiAgICAgICAgICAgICAgICBub3RlOiBcIlNob3cgVHdpdGNoL0Zhdm91cml0ZSBlbW90ZXMgaW4gZW1vdGUgbWVudVwiLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgIGlkOiBcImhpZGVFbW9qaU1lbnVcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiSGlkZSBFbW9qaSBNZW51XCIsXHJcbiAgICAgICAgICAgICAgICBub3RlOiBcIkhpZGVzIERpc2NvcmQncyBlbW9qaSBtZW51IHdoZW4gdXNpbmcgZW1vdGUgbWVudVwiLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgZW5hYmxlV2l0aDogXCJlbW90ZU1lbnVcIlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcInN3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgaWQ6IFwiYXV0b0NhcHNcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiRW1vdGUgQXV0b2NhcGl0YWxpemF0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICBub3RlOiBcIkF1dG9jYXBpdGFsaXplIGVtb3RlIGNvbW1hbmRzXCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogZmFsc2VcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgIGlkOiBcInNob3dOYW1lc1wiLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJTaG93IE5hbWVzXCIsXHJcbiAgICAgICAgICAgICAgICBub3RlOiBcIlNob3cgZW1vdGUgbmFtZXMgb24gaG92ZXJcIixcclxuICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJtb2RpZmllcnNcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiU2hvdyBFbW90ZSBNb2RpZmllcnNcIixcclxuICAgICAgICAgICAgICAgIG5vdGU6IFwiRW5hYmxlIGVtb3RlIG1vZHMgKGZsaXAsIHNwaW4sIHB1bHNlLCBzcGluMiwgc3BpbjMsIDFzcGluLCAyc3BpbiwgM3NwaW4sIHRyLCBibCwgYnIsIHNoYWtlLCBzaGFrZTIsIHNoYWtlMywgZmxhcClcIixcclxuICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJhbmltYXRlT25Ib3ZlclwiLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJBbmltYXRlIE9uIEhvdmVyXCIsXHJcbiAgICAgICAgICAgICAgICBub3RlOiBcIk9ubHkgYW5pbWF0ZSB0aGUgZW1vdGUgbW9kaWZpZXJzIG9uIGhvdmVyXCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogZmFsc2VcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogXCJjYXRlZ29yeVwiLFxyXG4gICAgICAgIGlkOiBcImNhdGVnb3JpZXNcIixcclxuICAgICAgICBuYW1lOiBcIkNhdGVnb3JpZXNcIixcclxuICAgICAgICBjb2xsYXBzaWJsZTogdHJ1ZSxcclxuICAgICAgICBzZXR0aW5nczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcInN3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgaWQ6IFwidHdpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIlR3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgbm90ZTogXCJTaG93IFR3aXRjaCBnbG9iYWwgJiBzdWJzY3JpYmVyIGVtb3Rlc1wiLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgIGlkOiBcImZmelwiLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJGcmFua2VyRmFjZVpcIixcclxuICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvdyBlbW90ZXMgZnJvbSBGRlpcIixcclxuICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJidHR2XCIsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIkJldHRlclRUVlwiLFxyXG4gICAgICAgICAgICAgICAgbm90ZTogXCJTaG93IGVtb3RlcyBmcm9tIEJUVFZcIixcclxuICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICB9XHJcbl07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/data/emotes/config.js\n");
/***/ }),
/***/ "./src/data/emotes/info.js":
/*!*********************************!*\
!*** ./src/data/emotes/info.js ***!
\*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n TwitchGlobal: {\n url: \"https://twitchemotes.com/api_cache/v3/global.json\",\n backup: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_twitch_global.json`,\n variable: \"TwitchGlobal\",\n getEmoteURL: e => `https://static-cdn.jtvnw.net/emoticons/v1/${e.id}/1.0`,\n getOldData: (url, name) => {\n return {\n id: url.match(/\\/([0-9]+)\\//)[1],\n code: name,\n emoticon_set: 0,\n description: null\n };\n }\n },\n TwitchSubscriber: {\n url: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_twitch_subscriber.json`,\n variable: \"TwitchSubscriber\",\n getEmoteURL: e => `https://static-cdn.jtvnw.net/emoticons/v1/${e}/1.0`,\n getOldData: url => url.match(/\\/([0-9]+)\\//)[1]\n },\n FrankerFaceZ: {\n url: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_ffz.json`,\n variable: \"FrankerFaceZ\",\n getEmoteURL: e => `https://cdn.frankerfacez.com/emoticon/${e}/1`,\n getOldData: url => url.match(/\\/([0-9]+)\\//)[1]\n },\n BTTV: {\n url: \"https://api.betterttv.net/emotes\",\n variable: \"BTTV\",\n parser: data => {\n const emotes = {};\n\n for (let e = 0, len = data.emotes.length; e < len; e++) {\n const emote = data.emotes[e];\n emotes[emote.regex] = emote.url;\n }\n\n return emotes;\n },\n getEmoteURL: e => `${e}`,\n getOldData: url => url\n },\n BTTV2: {\n url: `https://rauenzi.github.io/BetterDiscordApp/data/emotedata_bttv.json`,\n variable: \"BTTV2\",\n oldVariable: \"emotesBTTV2\",\n getEmoteURL: e => `https://cdn.betterttv.net/emote/${e}/1x`,\n getOldData: url => url.match(/emote\\/(.+)\\//)[1]\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvZW1vdGVzL2luZm8uanM/OWY4ZSJdLCJuYW1lcyI6WyJUd2l0Y2hHbG9iYWwiLCJ1cmwiLCJiYWNrdXAiLCJ2YXJpYWJsZSIsImdldEVtb3RlVVJMIiwiZSIsImlkIiwiZ2V0T2xkRGF0YSIsIm5hbWUiLCJtYXRjaCIsImNvZGUiLCJlbW90aWNvbl9zZXQiLCJkZXNjcmlwdGlvbiIsIlR3aXRjaFN1YnNjcmliZXIiLCJGcmFua2VyRmFjZVoiLCJCVFRWIiwicGFyc2VyIiwiZGF0YSIsImVtb3RlcyIsImxlbiIsImxlbmd0aCIsImVtb3RlIiwicmVnZXgiLCJCVFRWMiIsIm9sZFZhcmlhYmxlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFlO0FBQ1hBLGNBQVksRUFBRTtBQUNWQyxPQUFHLEVBQUUsbURBREs7QUFFVkMsVUFBTSxFQUFHLDhFQUZDO0FBR1ZDLFlBQVEsRUFBRSxjQUhBO0FBSVZDLGVBQVcsRUFBR0MsQ0FBRCxJQUFRLDZDQUE0Q0EsQ0FBQyxDQUFDQyxFQUFHLE1BSjVEO0FBS1ZDLGNBQVUsRUFBRSxDQUFDTixHQUFELEVBQU1PLElBQU4sS0FBZTtBQUFFLGFBQU87QUFBQ0YsVUFBRSxFQUFFTCxHQUFHLENBQUNRLEtBQUosQ0FBVSxjQUFWLEVBQTBCLENBQTFCLENBQUw7QUFBbUNDLFlBQUksRUFBRUYsSUFBekM7QUFBK0NHLG9CQUFZLEVBQUUsQ0FBN0Q7QUFBZ0VDLG1CQUFXLEVBQUU7QUFBN0UsT0FBUDtBQUE0RjtBQUwvRyxHQURIO0FBUVhDLGtCQUFnQixFQUFFO0FBQ2RaLE9BQUcsRUFBRyxrRkFEUTtBQUVkRSxZQUFRLEVBQUUsa0JBRkk7QUFHZEMsZUFBVyxFQUFHQyxDQUFELElBQVEsNkNBQTRDQSxDQUFFLE1BSHJEO0FBSWRFLGNBQVUsRUFBR04sR0FBRCxJQUFTQSxHQUFHLENBQUNRLEtBQUosQ0FBVSxjQUFWLEVBQTBCLENBQTFCO0FBSlAsR0FSUDtBQWNYSyxjQUFZLEVBQUU7QUFDVmIsT0FBRyxFQUFHLG9FQURJO0FBRVZFLFlBQVEsRUFBRSxjQUZBO0FBR1ZDLGVBQVcsRUFBR0MsQ0FBRCxJQUFRLHlDQUF3Q0EsQ0FBRSxJQUhyRDtBQUlWRSxjQUFVLEVBQUdOLEdBQUQsSUFBU0EsR0FBRyxDQUFDUSxLQUFKLENBQVUsY0FBVixFQUEwQixDQUExQjtBQUpYLEdBZEg7QUFvQlhNLE1BQUksRUFBRTtBQUNGZCxPQUFHLEVBQUUsa0NBREg7QUFFRkUsWUFBUSxFQUFFLE1BRlI7QUFHRmEsVUFBTSxFQUFHQyxJQUFELElBQVU7QUFDZCxZQUFNQyxNQUFNLEdBQUcsRUFBZjs7QUFDQSxXQUFLLElBQUliLENBQUMsR0FBRyxDQUFSLEVBQVdjLEdBQUcsR0FBR0YsSUFBSSxDQUFDQyxNQUFMLENBQVlFLE1BQWxDLEVBQTBDZixDQUFDLEdBQUdjLEdBQTlDLEVBQW1EZCxDQUFDLEVBQXBELEVBQXdEO0FBQ3BELGNBQU1nQixLQUFLLEdBQUdKLElBQUksQ0FBQ0MsTUFBTCxDQUFZYixDQUFaLENBQWQ7QUFDQWEsY0FBTSxDQUFDRyxLQUFLLENBQUNDLEtBQVAsQ0FBTixHQUFzQkQsS0FBSyxDQUFDcEIsR0FBNUI7QUFDSDs7QUFDRCxhQUFPaUIsTUFBUDtBQUNILEtBVkM7QUFXRmQsZUFBVyxFQUFHQyxDQUFELElBQVEsR0FBRUEsQ0FBRSxFQVh2QjtBQVlGRSxjQUFVLEVBQUdOLEdBQUQsSUFBU0E7QUFabkIsR0FwQks7QUFrQ1hzQixPQUFLLEVBQUU7QUFDSHRCLE9BQUcsRUFBRyxxRUFESDtBQUVIRSxZQUFRLEVBQUUsT0FGUDtBQUdIcUIsZUFBVyxFQUFFLGFBSFY7QUFJSHBCLGVBQVcsRUFBR0MsQ0FBRCxJQUFRLG1DQUFrQ0EsQ0FBRSxLQUp0RDtBQUtIRSxjQUFVLEVBQUdOLEdBQUQsSUFBU0EsR0FBRyxDQUFDUSxLQUFKLENBQVUsZUFBVixFQUEyQixDQUEzQjtBQUxsQjtBQWxDSSxDQUFmIiwiZmlsZSI6Ii4vc3JjL2RhdGEvZW1vdGVzL2luZm8uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XHJcbiAgICBUd2l0Y2hHbG9iYWw6IHtcclxuICAgICAgICB1cmw6IFwiaHR0cHM6Ly90d2l0Y2hlbW90ZXMuY29tL2FwaV9jYWNoZS92My9nbG9iYWwuanNvblwiLFxyXG4gICAgICAgIGJhY2t1cDogYGh0dHBzOi8vcmF1ZW56aS5naXRodWIuaW8vQmV0dGVyRGlzY29yZEFwcC9kYXRhL2Vtb3RlZGF0YV90d2l0Y2hfZ2xvYmFsLmpzb25gLFxyXG4gICAgICAgIHZhcmlhYmxlOiBcIlR3aXRjaEdsb2JhbFwiLFxyXG4gICAgICAgIGdldEVtb3RlVVJMOiAoZSkgPT4gYGh0dHBzOi8vc3RhdGljLWNkbi5qdHZudy5uZXQvZW1vdGljb25zL3YxLyR7ZS5pZH0vMS4wYCxcclxuICAgICAgICBnZXRPbGREYXRhOiAodXJsLCBuYW1lKSA9PiB7IHJldHVybiB7aWQ6IHVybC5tYXRjaCgvXFwvKFswLTldKylcXC8vKVsxXSwgY29kZTogbmFtZSwgZW1vdGljb25fc2V0OiAwLCBkZXNjcmlwdGlvbjogbnVsbH07IH1cclxuICAgIH0sXHJcbiAgICBUd2l0Y2hTdWJzY3JpYmVyOiB7XHJcbiAgICAgICAgdXJsOiBgaHR0cHM6Ly9yYXVlbnppLmdpdGh1Yi5pby9CZXR0ZXJEaXNjb3JkQXBwL2RhdGEvZW1vdGVkYXRhX3R3aXRjaF9zdWJzY3JpYmVyLmpzb25gLFxyXG4gICAgICAgIHZhcmlhYmxlOiBcIlR3aXRjaFN1YnNjcmliZXJcIixcclxuICAgICAgICBnZXRFbW90ZVVSTDogKGUpID0+IGBodHRwczovL3N0YXRpYy1jZG4uanR2bncubmV0L2Vtb3RpY29ucy92MS8ke2V9LzEuMGAsXHJcbiAgICAgICAgZ2V0T2xkRGF0YTogKHVybCkgPT4gdXJsLm1hdGNoKC9cXC8oWzAtOV0rKVxcLy8pWzFdXHJcbiAgICB9LFxyXG4gICAgRnJhbmtlckZhY2VaOiB7XHJcbiAgICAgICAgdXJsOiBgaHR0cHM6Ly9yYXVlbnppLmdpdGh1Yi5pby9CZXR0ZXJEaXNjb3JkQXBwL2RhdGEvZW1vdGVkYXRhX2Zmei5qc29uYCxcclxuICAgICAgICB2YXJpYWJsZTogXCJGcmFua2VyRmFjZVpcIixcclxuICAgICAgICBnZXRFbW90ZVVSTDogKGUpID0+IGBodHRwczovL2Nkbi5mcmFua2VyZmFjZXouY29tL2Vtb3RpY29uLyR7ZX0vMWAsXHJcbiAgICAgICAgZ2V0T2xkRGF0YTogKHVybCkgPT4gdXJsLm1hdGNoKC9cXC8oWzAtOV0rKVxcLy8pWzFdXHJcbiAgICB9LFxyXG4gICAgQlRUVjoge1xyXG4gICAgICAgIHVybDogXCJodHRwczovL2FwaS5iZXR0ZXJ0dHYubmV0L2Vtb3Rlc1wiLFxyXG4gICAgICAgIHZhcmlhYmxlOiBcIkJUVFZcIixcclxuICAgICAgICBwYXJzZXI6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVtb3RlcyA9IHt9O1xyXG4gICAgICAgICAgICBmb3IgKGxldCBlID0gMCwgbGVuID0gZGF0YS5lbW90ZXMubGVuZ3RoOyBlIDwgbGVuOyBlKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVtb3RlID0gZGF0YS5lbW90ZXNbZV07XHJcbiAgICAgICAgICAgICAgICBlbW90ZXNbZW1vdGUucmVnZXhdID0gZW1vdGUudXJsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBlbW90ZXM7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBnZXRFbW90ZVVSTDogKGUpID0+IGAke2V9YCxcclxuICAgICAgICBnZXRPbGREYXRhOiAodXJsKSA9PiB1cmxcclxuICAgIH0sXHJcbiAgICBCVFRWMjoge1xyXG4gICAgICAgIHVybDogYGh0dHBzOi8vcmF1ZW56aS5naXRodWIuaW8vQmV0dGVyRGlzY29yZEFwcC9kYXRhL2Vtb3RlZGF0YV9idHR2Lmpzb25gLFxyXG4gICAgICAgIHZhcmlhYmxlOiBcIkJUVFYyXCIsXHJcbiAgICAgICAgb2xkVmFyaWFibGU6IFwiZW1vdGVzQlRUVjJcIixcclxuICAgICAgICBnZXRFbW90ZVVSTDogKGUpID0+IGBodHRwczovL2Nkbi5iZXR0ZXJ0dHYubmV0L2Vtb3RlLyR7ZX0vMXhgLFxyXG4gICAgICAgIGdldE9sZERhdGE6ICh1cmwpID0+IHVybC5tYXRjaCgvZW1vdGVcXC8oLispXFwvLylbMV1cclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/data/emotes/info.js\n");
/***/ }),
/***/ "./src/data/settings/config.js":
/*!*************************************!*\
!*** ./src/data/settings/config.js ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ([{\n type: \"category\",\n id: \"general\",\n name: \"General\",\n collapsible: true,\n settings: [{\n type: \"switch\",\n id: \"emotes\",\n name: \"Emote System\",\n note: \"Enables BD's emote system\",\n value: true\n }, {\n type: \"switch\",\n id: \"publicServers\",\n name: \"Public Servers\",\n note: \"Display public servers button\",\n value: true\n }, {\n type: \"switch\",\n id: \"voiceDisconnect\",\n name: \"Voice Disconnect\",\n note: \"Disconnect from voice server when closing Discord\",\n value: false\n }, {\n type: \"switch\",\n id: \"twentyFourHour\",\n name: \"24 Hour Timestamps\",\n note: \"Hides channels when in minimal mode\",\n value: false\n }, {\n type: \"switch\",\n id: \"classNormalizer\",\n name: \"Normalize Classes\",\n note: \"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)\",\n value: true\n }, {\n type: \"switch\",\n id: \"showToasts\",\n name: \"Show Toasts\",\n note: \"Shows a small notification for important information\",\n value: true\n }]\n}, {\n type: \"category\",\n id: \"appearance\",\n name: \"Appearance\",\n collapsible: true,\n settings: [{\n type: \"switch\",\n id: \"voiceMode\",\n name: \"Voice Mode\",\n note: \"Hides everything that isn't voice chat\",\n value: false\n }, {\n type: \"switch\",\n id: \"minimalMode\",\n name: \"Minimal Mode\",\n note: \"Hide elements and reduce the size of elements\",\n value: false\n }, {\n type: \"switch\",\n id: \"hideChannels\",\n name: \"Hide Channels\",\n note: \"Hides channels when in minimal mode\",\n value: false,\n enableWith: \"minimalMode\"\n }, {\n type: \"switch\",\n id: \"darkMode\",\n name: \"Dark Mode\",\n note: \"Make certain elements dark by default\",\n value: true\n }, {\n type: \"switch\",\n id: \"coloredText\",\n name: \"Colored Text\",\n note: \"Make text colour the same as role color\",\n value: false\n }]\n}, {\n type: \"category\",\n id: \"content\",\n name: \"Content Manager\",\n collapsible: true,\n settings: [{\n type: \"switch\",\n id: \"contentErrors\",\n name: \"Show Content Errors\",\n note: \"Shows a modal with plugin/theme errors\",\n value: true\n }, {\n type: \"switch\",\n id: \"autoScroll\",\n name: \"Scroll To Settings\",\n note: \"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)\",\n value: true\n }, {\n type: \"switch\",\n id: \"autoReload\",\n name: \"Automatic Loading\",\n note: \"Automatically loads, reloads, and unloads plugins and themes\",\n value: true\n }]\n}, {\n type: \"category\",\n id: \"developer\",\n name: \"Developer Settings\",\n collapsible: true,\n shown: false,\n settings: [{\n type: \"switch\",\n id: \"developerMode\",\n name: \"Developer Mode\",\n note: \"Allows activating debugger when pressing F8\",\n value: false\n }, {\n type: \"switch\",\n id: \"copySelector\",\n name: \"Copy Selector\",\n note: \"Adds a \\\"Copy Selector\\\" option to context menus when developer mode is active\",\n value: false,\n enableWith: \"developerMode\"\n }]\n}, {\n type: \"category\",\n id: \"window\",\n name: \"Window Preferences\",\n collapsible: true,\n shown: false,\n settings: [{\n type: \"switch\",\n id: \"transparency\",\n name: \"Enable Transparency\",\n note: \"Enables the main window to be see-through (requires restart)\",\n value: false\n }, {\n type: \"switch\",\n id: \"frame\",\n name: \"Window Frame\",\n note: \"Adds the native os window frame to the main window\",\n value: false,\n hidden: true\n }]\n}, {\n type: \"category\",\n id: \"customcss\",\n name: \"Custom CSS\",\n collapsible: true,\n shown: false,\n settings: [{\n type: \"switch\",\n id: \"customcss\",\n name: \"Custom CSS\",\n note: \"Enables the Custom CSS tab\",\n value: true\n }, {\n type: \"switch\",\n id: \"liveUpdate\",\n name: \"Live Update\",\n note: \"Updates the css as you type\",\n value: false\n }, {\n type: \"switch\",\n id: \"startDetached\",\n name: \"Start Detached\",\n note: \"Clicking the Custom CSS tab opens the editor in a separate window\",\n value: false,\n disableWith: \"nativeOpen\"\n }, {\n type: \"switch\",\n id: \"nativeOpen\",\n name: \"Open in Native Editor\",\n note: \"Clicking the Custom CSS tab opens your custom css in your native editor\",\n value: false,\n disableWith: \"startDetached\"\n }]\n}]);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvc2V0dGluZ3MvY29uZmlnLmpzP2ZmOGUiXSwibmFtZXMiOlsidHlwZSIsImlkIiwibmFtZSIsImNvbGxhcHNpYmxlIiwic2V0dGluZ3MiLCJub3RlIiwidmFsdWUiLCJlbmFibGVXaXRoIiwic2hvd24iLCJoaWRkZW4iLCJkaXNhYmxlV2l0aCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBZSxnRUFDWDtBQUNJQSxNQUFJLEVBQUUsVUFEVjtBQUVJQyxJQUFFLEVBQUUsU0FGUjtBQUdJQyxNQUFJLEVBQUUsU0FIVjtBQUlJQyxhQUFXLEVBQUUsSUFKakI7QUFLSUMsVUFBUSxFQUFFLENBQ047QUFDSUosUUFBSSxFQUFFLFFBRFY7QUFFSUMsTUFBRSxFQUFFLFFBRlI7QUFHSUMsUUFBSSxFQUFFLGNBSFY7QUFJSUcsUUFBSSxFQUFFLDJCQUpWO0FBS0lDLFNBQUssRUFBRTtBQUxYLEdBRE0sRUFRTjtBQUNJTixRQUFJLEVBQUUsUUFEVjtBQUVJQyxNQUFFLEVBQUUsZUFGUjtBQUdJQyxRQUFJLEVBQUUsZ0JBSFY7QUFJSUcsUUFBSSxFQUFFLCtCQUpWO0FBS0lDLFNBQUssRUFBRTtBQUxYLEdBUk0sRUFlTjtBQUNJTixRQUFJLEVBQUUsUUFEVjtBQUVJQyxNQUFFLEVBQUUsaUJBRlI7QUFHSUMsUUFBSSxFQUFFLGtCQUhWO0FBSUlHLFFBQUksRUFBRSxtREFKVjtBQUtJQyxTQUFLLEVBQUU7QUFMWCxHQWZNLEVBc0JOO0FBQ0lOLFFBQUksRUFBRSxRQURWO0FBRUlDLE1BQUUsRUFBRSxnQkFGUjtBQUdJQyxRQUFJLEVBQUUsb0JBSFY7QUFJSUcsUUFBSSxFQUFFLHFDQUpWO0FBS0lDLFNBQUssRUFBRTtBQUxYLEdBdEJNLEVBNkJOO0FBQ0lOLFFBQUksRUFBRSxRQURWO0FBRUlDLE1BQUUsRUFBRSxpQkFGUjtBQUdJQyxRQUFJLEVBQUUsbUJBSFY7QUFJSUcsUUFBSSxFQUFFLDhGQUpWO0FBS0lDLFNBQUssRUFBRTtB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LEVBQUUseUVBSlY7QUFLSUMsU0FBSyxFQUFFLEtBTFg7QUFNSUksZUFBVyxFQUFFO0FBTmpCLEdBdkJNO0FBTmQsQ0E1S1csQ0FBZiIsImZpbGUiOiIuL3NyYy9kYXRhL3NldHRpbmdzL2NvbmZpZy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFtcclxuICAgIHtcclxuICAgICAgICB0eXBlOiBcImNhdGVnb3J5XCIsXHJcbiAgICAgICAgaWQ6IFwiZ2VuZXJhbFwiLFxyXG4gICAgICAgIG5hbWU6IFwiR2VuZXJhbFwiLFxyXG4gICAgICAgIGNvbGxhcHNpYmxlOiB0cnVlLFxyXG4gICAgICAgIHNldHRpbmdzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJlbW90ZXNcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiRW1vdGUgU3lzdGVtXCIsXHJcbiAgICAgICAgICAgICAgICBub3RlOiBcIkVuYWJsZXMgQkQncyBlbW90ZSBzeXN0ZW1cIixcclxuICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJwdWJsaWNTZXJ2ZXJzXCIsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIlB1YmxpYyBTZXJ2ZXJzXCIsXHJcbiAgICAgICAgICAgICAgICBub3RlOiBcIkRpc3BsYXkgcHVibGljIHNlcnZlcnMgYnV0dG9uXCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogdHJ1ZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcInN3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgaWQ6IFwidm9pY2VEaXNjb25uZWN0XCIsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIlZvaWNlIERpc2Nvbm5lY3RcIixcclxuICAgICAgICAgICAgICAgIG5vdGU6IFwiRGlzY29ubmVjdCBmcm9tIHZvaWNlIHNlcnZlciB3aGVuIGNsb3NpbmcgRGlzY29yZFwiLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZhbHNlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJ0d2VudHlGb3VySG91clwiLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogXCIyNCBIb3VyIFRpbWVzdGFtcHNcIixcclxuICAgICAgICAgICAgICAgIG5vdGU6IFwiSGlkZXMgY2hhbm5lbHMgd2hlbiBpbiBtaW5pbWFsIG1vZGVcIixcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgIGlkOiBcImNsYXNzTm9ybWFsaXplclwiLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJOb3JtYWxpemUgQ2xhc3Nlc1wiLFxyXG4gICAgICAgICAgICAgICAgbm90ZTogXCJBZGRzIHN0YWJsZSBjbGFzc2VzIHRvIGVsZW1lbnRzIHRvIGhlbHAgdGhlbWVzLiAoZS5nLiBhZGRzIC5kYS1jaGFubmVscyB0byAuY2hhbm5lbHMtSWUybDZBKVwiLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgIGlkOiBcInNob3dUb2FzdHNcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiU2hvdyBUb2FzdHNcIixcclxuICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvd3MgYSBzbWFsbCBub3RpZmljYXRpb24gZm9yIGltcG9ydGFudCBpbmZvcm1hdGlvblwiLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgdHlwZTogXCJjYXRlZ29yeVwiLFxyXG4gICAgICAgIGlkOiBcImFwcGVhcmFuY2VcIixcclxuICAgICAgICBuYW1lOiBcIkFwcGVhcmFuY2VcIixcclxuICAgICAgICBjb2xsYXBzaWJsZTogdHJ1ZSxcclxuICAgICAgICBzZXR0aW5nczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcInN3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgaWQ6IFwidm9pY2VNb2RlXCIsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIlZvaWNlIE1vZGVcIixcclxuICAgICAgICAgICAgICAgIG5vdGU6IFwiSGlkZXMgZXZlcnl0aGluZyB0aGF0IGlzbid0IHZvaWNlIGNoYXRcIixcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBmYWxzZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcInN3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgaWQ6IFwibWluaW1hbE1vZGVcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiTWluaW1hbCBNb2RlXCIsXHJcbiAgICAgICAgICAgICAgICBub3RlOiBcIkhpZGUgZWxlbWVudHMgYW5kIHJlZHVjZSB0aGUgc2l6ZSBvZiBlbGVtZW50c1wiLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZhbHNlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJoaWRlQ2hhbm5lbHNcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiSGlkZSBDaGFubmVsc1wiLFxyXG4gICAgICAgICAgICAgICAgbm90ZTogXCJIaWRlcyBjaGFubmVscyB3aGVuIGluIG1pbmltYWwgbW9kZVwiLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgZW5hYmxlV2l0aDogXCJtaW5pbWFsTW9kZVwiXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJkYXJrTW9kZVwiLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJEYXJrIE1vZGVcIixcclxuICAgICAgICAgICAgICAgIG5vdGU6IFwiTWFrZSBjZXJ0YWluIGVsZW1lbnRzIGRhcmsgYnkgZGVmYXVsdFwiLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgIGlkOiBcImNvbG9yZWRUZXh0XCIsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIkNvbG9yZWQgVGV4dFwiLFxyXG4gICAgICAgICAgICAgICAgbm90ZTogXCJNYWtlIHRleHQgY29sb3VyIHRoZSBzYW1lIGFzIHJvbGUgY29sb3JcIixcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBmYWxzZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICB0eXBlOiBcImNhdGVnb3J5XCIsXHJcbiAgICAgICAgaWQ6IFwiY29udGVudFwiLFxyXG4gICAgICAgIG5hbWU6IFwiQ29udGVudCBNYW5hZ2VyXCIsXHJcbiAgICAgICAgY29sbGFwc2libGU6IHRydWUsXHJcbiAgICAgICAgc2V0dGluZ3M6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgIGlkOiBcImNvbnRlbnRFcnJvcnNcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiU2hvdyBDb250ZW50IEVycm9yc1wiLFxyXG4gICAgICAgICAgICAgICAgbm90ZTogXCJTaG93cyBhIG1vZGFsIHdpdGggcGx1Z2luL3RoZW1lIGVycm9yc1wiLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgIGlkOiBcImF1dG9TY3JvbGxcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiU2Nyb2xsIFRvIFNldHRpbmdzXCIsXHJcbiAgICAgICAgICAgICAgICBub3RlOiBcIkF1dG8tc2Nyb2xscyB0byBhIHBsdWdpbidzIHNldHRpbmdzIHdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkIChvbmx5IGlmIG91dCBvZiB2aWV3KVwiLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgIGlkOiBcImF1dG9SZWxvYWRcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiQXV0b21hdGljIExvYWRpbmdcIixcclxuICAgICAgICAgICAgICAgIG5vdGU6IFwiQXV0b21hdGljYWxseSBsb2FkcywgcmVsb2FkcywgYW5kIHVubG9hZHMgcGx1Z2lucyBhbmQgdGhlbWVzXCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogdHJ1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICB0eXBlOiBcImNhdGVnb3J5XCIsXHJcbiAgICAgICAgaWQ6IFwiZGV2ZWxvcGVyXCIsXHJcbiAgICAgICAgbmFtZTogXCJEZXZlbG9wZXIgU2V0dGluZ3NcIixcclxuICAgICAgICBjb2xsYXBzaWJsZTogdHJ1ZSxcclxuICAgICAgICBzaG93bjogZmFsc2UsXHJcbiAgICAgICAgc2V0dGluZ3M6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgIGlkOiBcImRldmVsb3Blck1vZGVcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiRGV2ZWxvcGVyIE1vZGVcIixcclxuICAgICAgICAgICAgICAgIG5vdGU6IFwiQWxsb3dzIGFjdGl2YXRpbmcgZGVidWdnZXIgd2hlbiBwcmVzc2luZyBGOFwiLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZhbHNlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJjb3B5U2VsZWN0b3JcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiQ29weSBTZWxlY3RvclwiLFxyXG4gICAgICAgICAgICAgICAgbm90ZTogXCJBZGRzIGEgXFxcIkNvcHkgU2VsZWN0b3JcXFwiIG9wdGlvbiB0byBjb250ZXh0IG1lbnVzIHdoZW4gZGV2ZWxvcGVyIG1vZGUgaXMgYWN0aXZlXCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBlbmFibGVXaXRoOiBcImRldmVsb3Blck1vZGVcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICB0eXBlOiBcImNhdGVnb3J5XCIsXHJcbiAgICAgICAgaWQ6IFwid2luZG93XCIsXHJcbiAgICAgICAgbmFtZTogXCJXaW5kb3cgUHJlZmVyZW5jZXNcIixcclxuICAgICAgICBjb2xsYXBzaWJsZTogdHJ1ZSxcclxuICAgICAgICBzaG93bjogZmFsc2UsXHJcbiAgICAgICAgc2V0dGluZ3M6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgIGlkOiBcInRyYW5zcGFyZW5jeVwiLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJFbmFibGUgVHJhbnNwYXJlbmN5XCIsXHJcbiAgICAgICAgICAgICAgICBub3RlOiBcIkVuYWJsZXMgdGhlIG1haW4gd2luZG93IHRvIGJlIHNlZS10aHJvdWdoIChyZXF1aXJlcyByZXN0YXJ0KVwiLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZhbHNlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJmcmFtZVwiLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJXaW5kb3cgRnJhbWVcIixcclxuICAgICAgICAgICAgICAgIG5vdGU6IFwiQWRkcyB0aGUgbmF0aXZlIG9zIHdpbmRvdyBmcmFtZSB0byB0aGUgbWFpbiB3aW5kb3dcIixcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGhpZGRlbjogdHJ1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICB0eXBlOiBcImNhdGVnb3J5XCIsXHJcbiAgICAgICAgaWQ6IFwiY3VzdG9tY3NzXCIsXHJcbiAgICAgICAgbmFtZTogXCJDdXN0b20gQ1NTXCIsXHJcbiAgICAgICAgY29sbGFwc2libGU6IHRydWUsXHJcbiAgICAgICAgc2hvd246IGZhbHNlLFxyXG4gICAgICAgIHNldHRpbmdzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwic3dpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICBpZDogXCJjdXN0b21jc3NcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiQ3VzdG9tIENTU1wiLFxyXG4gICAgICAgICAgICAgICAgbm90ZTogXCJFbmFibGVzIHRoZSBDdXN0b20gQ1NTIHRhYlwiLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgIGlkOiBcImxpdmVVcGRhdGVcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiTGl2ZSBVcGRhdGVcIixcclxuICAgICAgICAgICAgICAgIG5vdGU6IFwiVXBkYXRlcyB0aGUgY3NzIGFzIHlvdSB0eXBlXCIsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogZmFsc2VcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgIGlkOiBcInN0YXJ0RGV0YWNoZWRcIixcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiU3RhcnQgRGV0YWNoZWRcIixcclxuICAgICAgICAgICAgICAgIG5vdGU6IFwiQ2xpY2tpbmcgdGhlIEN1c3RvbSBDU1MgdGFiIG9wZW5zIHRoZSBlZGl0b3IgaW4gYSBzZXBhcmF0ZSB3aW5kb3dcIixcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGRpc2FibGVXaXRoOiBcIm5hdGl2ZU9wZW5cIlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcInN3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgaWQ6IFwibmF0aXZlT3BlblwiLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJPcGVuIGluIE5hdGl2ZSBFZGl0b3JcIixcclxuICAgICAgICAgICAgICAgIG5vdGU6IFwiQ2xpY2tpbmcgdGhlIEN1c3RvbSBDU1MgdGFiIG9wZW5zIHlvdXIgY3VzdG9tIGNzcyBpbiB5b3VyIG5hdGl2ZSBlZGl0b3JcIixcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGRpc2FibGVXaXRoOiBcInN0YXJ0RGV0YWNoZWRcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgfVxyXG5dOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/data/settings/config.js\n");
/***/ }),
/***/ "./src/index.js":
/*!**********************!*\
!*** ./src/index.js ***!
\**********************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CoreWrapper; });\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _modules_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/core */ \"./src/modules/core.js\");\n/* harmony import */ var _modules_pluginapi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/pluginapi */ \"./src/modules/pluginapi.js\");\n/* harmony import */ var _modules_pluginmanager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony import */ var _modules_thememanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/thememanager */ \"./src/modules/thememanager.js\");\n/* harmony import */ var _modules_oldstorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/oldstorage */ \"./src/modules/oldstorage.js\");\n/* harmony import */ var _modules_emitter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var _modules_datastore__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modules/datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _builtins_emotes__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./builtins/emotes */ \"./src/builtins/emotes.js\");\n\n\n\n\n\n\n\n\n\n // Perform some setup\n// proxyLocalStorage();\n\nconst loadingIcon = document.createElement(\"div\");\nloadingIcon.className = \"bd-loaderv2\";\nloadingIcon.title = \"BandagedBD is loading...\";\ndocument.body.appendChild(loadingIcon); // window.Core = Core;\n\nwindow.BdApi = _modules_pluginapi__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; // window.settings = SettingsInfo;\n// window.settingsCookie = SettingsCookie;\n// window.pluginCookie = PluginCookie;\n// window.themeCookie = ThemeCookie;\n\nwindow.pluginModule = _modules_pluginmanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nwindow.themeModule = _modules_thememanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; // window.bdthemes = Themes;\n// window.bdplugins = Plugins;\n\nwindow.bdEmotes = _builtins_emotes__WEBPACK_IMPORTED_MODULE_9__[\"default\"].Emotes;\nwindow.bemotes = _builtins_emotes__WEBPACK_IMPORTED_MODULE_9__[\"default\"].blacklist;\nwindow.bdPluginStorage = _modules_oldstorage__WEBPACK_IMPORTED_MODULE_5__[\"bdPluginStorage\"];\nwindow.settingsModule = _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\nwindow.DataStore = _modules_datastore__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\nwindow.BDEvents = _modules_emitter__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\nwindow.bdConfig = data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"];\nclass CoreWrapper {\n constructor(config) {\n _modules_core__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setConfig(config);\n }\n\n init() {\n _modules_core__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init();\n }\n\n}\n\nfunction patchModuleLoad() {\n const namespace = \"betterdiscord\";\n const prefix = `${namespace}/`;\n\n const Module = __webpack_require__(/*! module */ \"module\");\n\n const load = Module._load; // const resolveFilename = Module._resolveFilename;\n\n Module._load = function (request) {\n if (request === namespace || request.startsWith(prefix)) {\n const requested = request.substr(prefix.length);\n if (requested == \"api\") return _modules_pluginapi__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n }\n\n return load.apply(this, arguments);\n }; // Module._resolveFilename = function (request, parent, isMain) {\n // if (request === \"betterdiscord\" || request.startsWith(\"betterdiscord/\")) {\n // const contentPath = PluginManager.getPluginPathByModule(parent);\n // if (contentPath) return request;\n // }\n // return resolveFilename.apply(this, arguments);\n // };\n\n\n return function () {\n Module._load = load;\n };\n}\n\npatchModuleLoad(); // export function getPluginByModule(module) {\n// return this.localContent.find(plugin => module.filename === plugin.contentPath || module.filename.startsWith(plugin.contentPath + path.sep));\n// }\n// export function getPluginPathByModule(module) {\n// return Object.keys(this.pluginApiInstances).find(contentPath => module.filename === contentPath || module.filename.startsWith(contentPath + path.sep));\n// }\n// var settingsPanel, emoteModule, quickEmoteMenu, voiceMode,, dMode, publicServersModule;\n// var bdConfig = null;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2luZGV4LmpzP2I2MzUiXSwibmFtZXMiOlsibG9hZGluZ0ljb24iLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ0aXRsZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsIndpbmRvdyIsIkJkQXBpIiwicGx1Z2luTW9kdWxlIiwiUGx1Z2luTWFuYWdlciIsInRoZW1lTW9kdWxlIiwiVGhlbWVNYW5hZ2VyIiwiYmRFbW90ZXMiLCJFbW90ZU1vZHVsZSIsIkVtb3RlcyIsImJlbW90ZXMiLCJibGFja2xpc3QiLCJiZFBsdWdpblN0b3JhZ2UiLCJzZXR0aW5nc01vZHVsZSIsIlNldHRpbmdzIiwiRGF0YVN0b3JlIiwiQkRFdmVudHMiLCJFdmVudHMiLCJiZENvbmZpZyIsIkNvbmZpZyIsIkNvcmVXcmFwcGVyIiwiY29uc3RydWN0b3IiLCJjb25maWciLCJDb3JlIiwic2V0Q29uZmlnIiwiaW5pdCIsInBhdGNoTW9kdWxlTG9hZCIsIm5hbWVzcGFjZSIsInByZWZpeCIsIk1vZHVsZSIsInJlcXVpcmUiLCJsb2FkIiwiX2xvYWQiLCJyZXF1ZXN0Iiwic3RhcnRzV2l0aCIsInJlcXVlc3RlZCIsInN1YnN0ciIsImxlbmd0aCIsImFwcGx5IiwiYXJndW1lbnRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Q0FHQTtBQUNBOztBQUNBLE1BQU1BLFdBQVcsR0FBR0MsUUFBUSxDQUFDQyxhQUFULENBQXVCLEtBQXZCLENBQXBCO0FBQ0FGLFdBQVcsQ0FBQ0csU0FBWixHQUF3QixhQUF4QjtBQUNBSCxXQUFXLENBQUNJLEtBQVosR0FBb0IsMEJBQXBCO0FBQ0FILFFBQVEsQ0FBQ0ksSUFBVCxDQUFjQyxXQUFkLENBQTBCTixXQUExQixFLENBRUE7O0FBQ0FPLE1BQU0sQ0FBQ0MsS0FBUCxHQUFlQSwwREFBZixDLENBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0FELE1BQU0sQ0FBQ0UsWUFBUCxHQUFzQkMsOERBQXRCO0FBQ0FILE1BQU0sQ0FBQ0ksV0FBUCxHQUFxQkMsNkRBQXJCLEMsQ0FDQTtBQUNBOztBQUNBTCxNQUFNLENBQUNNLFFBQVAsR0FBa0JDLHdEQUFXLENBQUNDLE1BQTlCO0FBQ0FSLE1BQU0sQ0FBQ1MsT0FBUCxHQUFpQkYsd0RBQVcsQ0FBQ0csU0FBN0I7QUFDQVYsTUFBTSxDQUFDVyxlQUFQLEdBQXlCQSxtRUFBekI7QUFDQVgsTUFBTSxDQUFDWSxjQUFQLEdBQXdCQyxnRUFBeEI7QUFDQWIsTUFBTSxDQUFDYyxTQUFQLEdBQW1CQSwwREFBbkI7QUFHQWQsTUFBTSxDQUFDZSxRQUFQLEdBQWtCQyx3REFBbEI7QUFDQWhCLE1BQU0sQ0FBQ2lCLFFBQVAsR0FBa0JDLDJDQUFsQjtBQUVlLE1BQU1DLFdBQU4sQ0FBa0I7QUFDN0JDLGFBQVcsQ0FBQ0MsTUFBRCxFQUFTO0FBQ2hCQyx5REFBSSxDQUFDQyxTQUFMLENBQWVGLE1BQWY7QUFDSDs7QUFFREcsTUFBSSxHQUFHO0FBQ0hGLHlEQUFJLENBQUNFLElBQUw7QUFDSDs7QUFQNEI7O0FBVWpDLFNBQVNDLGVBQVQsR0FBMkI7QUFDdkIsUUFBTUMsU0FBUyxHQUFHLGVBQWxCO0FBQ0EsUUFBTUMsTUFBTSxHQUFJLEdBQUVELFNBQVUsR0FBNUI7O0FBQ0EsUUFBTUUsTUFBTSxHQUFHQyxtQkFBTyxDQUFDLHNCQUFELENBQXRCOztBQUNBLFFBQU1DLElBQUksR0FBR0YsTUFBTSxDQUFDRyxLQUFwQixDQUp1QixDQUt2Qjs7QUFFQUgsUUFBTSxDQUFDRyxLQUFQLEdBQWUsVUFBVUMsT0FBVixFQUFtQjtBQUM5QixRQUFJQSxPQUFPLEtBQUtOLFNBQVosSUFBeUJNLE9BQU8sQ0FBQ0MsVUFBUixDQUFtQk4sTUFBbkIsQ0FBN0IsRUFBeUQ7QUFDckQsWUFBTU8sU0FBUyxHQUFHRixPQUFPLENBQUNHLE1BQVIsQ0FBZVIsTUFBTSxDQUFDUyxNQUF0QixDQUFsQjtBQUNBLFVBQUlGLFNBQVMsSUFBSSxLQUFqQixFQUF3QixPQUFPakMsMERBQVA7QUFDM0I7O0FBRUQsV0FBTzZCLElBQUksQ0FBQ08sS0FBTCxDQUFXLElBQVgsRUFBaUJDLFNBQWpCLENBQVA7QUFDSCxHQVBELENBUHVCLENBZ0J2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTs7O0FBRUEsU0FBTyxZQUFXO0FBQ2RWLFVBQU0sQ0FBQ0csS0FBUCxHQUFlRCxJQUFmO0FBQ0gsR0FGRDtBQUdIOztBQUVETCxlQUFlLEcsQ0FFZjtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBIiwiZmlsZSI6Ii4vc3JjL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCBDb3JlIGZyb20gXCIuL21vZHVsZXMvY29yZVwiO1xyXG5pbXBvcnQgQmRBcGkgZnJvbSBcIi4vbW9kdWxlcy9wbHVnaW5hcGlcIjtcclxuaW1wb3J0IFBsdWdpbk1hbmFnZXIgZnJvbSBcIi4vbW9kdWxlcy9wbHVnaW5tYW5hZ2VyXCI7XHJcbmltcG9ydCBUaGVtZU1hbmFnZXIgZnJvbSBcIi4vbW9kdWxlcy90aGVtZW1hbmFnZXJcIjtcclxuaW1wb3J0IHtiZFBsdWdpblN0b3JhZ2V9IGZyb20gXCIuL21vZHVsZXMvb2xkc3RvcmFnZVwiO1xyXG5pbXBvcnQgRXZlbnRzIGZyb20gXCIuL21vZHVsZXMvZW1pdHRlclwiO1xyXG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vbW9kdWxlcy9zZXR0aW5nc21hbmFnZXJcIjtcclxuaW1wb3J0IERhdGFTdG9yZSBmcm9tIFwiLi9tb2R1bGVzL2RhdGFzdG9yZVwiO1xyXG5pbXBvcnQgRW1vdGVNb2R1bGUgZnJvbSBcIi4vYnVpbHRpbnMvZW1vdGVzXCI7XHJcblxyXG4vLyBQZXJmb3JtIHNvbWUgc2V0dXBcclxuLy8gcHJveHlMb2NhbFN0b3JhZ2UoKTtcclxuY29uc3QgbG9hZGluZ0ljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG5sb2FkaW5nSWNvbi5jbGFzc05hbWUgPSBcImJkLWxvYWRlcnYyXCI7XHJcbmxvYWRpbmdJY29uLnRpdGxlID0gXCJCYW5kYWdlZEJEIGlzIGxvYWRpbmcuLi5cIjtcclxuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsb2FkaW5nSWNvbik7XHJcblxyXG4vLyB3aW5kb3cuQ29yZSA9IENvcmU7XHJcbndpbmRvdy5CZEFwaSA9IEJkQXBpO1xyXG4vLyB3aW5kb3cuc2V0dGluZ3MgPSBTZXR0aW5nc0luZm87XHJcbi8vIHdpbmRvdy5zZXR0aW5nc0Nvb2tpZSA9IFNldHRpbmdzQ29va2llO1xyXG4vLyB3aW5kb3cucGx1Z2luQ29va2llID0gUGx1Z2luQ29va2llO1xyXG4vLyB3aW5kb3cudGhlbWVDb29raWUgPSBUaGVtZUNvb2tpZTtcclxud2luZG93LnBsdWdpbk1vZHVsZSA9IFBsdWdpbk1hbmFnZXI7XHJcbndpbmRvdy50aGVtZU1vZHVsZSA9IFRoZW1lTWFuYWdlcjtcclxuLy8gd2luZG93LmJkdGhlbWVzID0gVGhlbWVzO1xyXG4vLyB3aW5kb3cuYmRwbHVnaW5zID0gUGx1Z2lucztcclxud2luZG93LmJkRW1vdGVzID0gRW1vdGVNb2R1bGUuRW1vdGVzO1xyXG53aW5kb3cuYmVtb3RlcyA9IEVtb3RlTW9kdWxlLmJsYWNrbGlzdDtcclxud2luZG93LmJkUGx1Z2luU3RvcmFnZSA9IGJkUGx1Z2luU3RvcmFnZTtcclxud2luZG93LnNldHRpbmdzTW9kdWxlID0gU2V0dGluZ3M7XHJcbndpbmRvdy5EYXRhU3RvcmUgPSBEYXRhU3RvcmU7XHJcblxyXG5cclxud2luZG93LkJERXZlbnRzID0gRXZlbnRzO1xyXG53aW5kb3cuYmRDb25maWcgPSBDb25maWc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb3JlV3JhcHBlciB7XHJcbiAgICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcclxuICAgICAgICBDb3JlLnNldENvbmZpZyhjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQoKSB7XHJcbiAgICAgICAgQ29yZS5pbml0KCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBhdGNoTW9kdWxlTG9hZCgpIHtcclxuICAgIGNvbnN0IG5hbWVzcGFjZSA9IFwiYmV0dGVyZGlzY29yZFwiO1xyXG4gICAgY29uc3QgcHJlZml4ID0gYCR7bmFtZXNwYWNlfS9gO1xyXG4gICAgY29uc3QgTW9kdWxlID0gcmVxdWlyZShcIm1vZHVsZVwiKTtcclxuICAgIGNvbnN0IGxvYWQgPSBNb2R1bGUuX2xvYWQ7XHJcbiAgICAvLyBjb25zdCByZXNvbHZlRmlsZW5hbWUgPSBNb2R1bGUuX3Jlc29sdmVGaWxlbmFtZTtcclxuXHJcbiAgICBNb2R1bGUuX2xvYWQgPSBmdW5jdGlvbiAocmVxdWVzdCkge1xyXG4gICAgICAgIGlmIChyZXF1ZXN0ID09PSBuYW1lc3BhY2UgfHwgcmVxdWVzdC5zdGFydHNXaXRoKHByZWZpeCkpIHtcclxuICAgICAgICAgICAgY29uc3QgcmVxdWVzdGVkID0gcmVxdWVzdC5zdWJzdHIocHJlZml4Lmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGlmIChyZXF1ZXN0ZWQgPT0gXCJhcGlcIikgcmV0dXJuIEJkQXBpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGxvYWQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxuICAgIH07XHJcblxyXG4gICAgLy8gTW9kdWxlLl9yZXNvbHZlRmlsZW5hbWUgPSBmdW5jdGlvbiAocmVxdWVzdCwgcGFyZW50LCBpc01haW4pIHtcclxuICAgIC8vICAgICBpZiAocmVxdWVzdCA9PT0gXCJiZXR0ZXJkaXNjb3JkXCIgfHwgcmVxdWVzdC5zdGFydHNXaXRoKFwiYmV0dGVyZGlzY29yZC9cIikpIHtcclxuICAgIC8vICAgICAgICAgY29uc3QgY29udGVudFBhdGggPSBQbHVnaW5NYW5hZ2VyLmdldFBsdWdpblBhdGhCeU1vZHVsZShwYXJlbnQpO1xyXG4gICAgLy8gICAgICAgICBpZiAoY29udGVudFBhdGgpIHJldHVybiByZXF1ZXN0O1xyXG4gICAgLy8gICAgIH1cclxuXHJcbiAgICAvLyAgICAgcmV0dXJuIHJlc29sdmVGaWxlbmFtZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG4gICAgLy8gfTtcclxuXHJcbiAgICByZXR1cm4gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgTW9kdWxlLl9sb2FkID0gbG9hZDtcclxuICAgIH07XHJcbn1cclxuXHJcbnBhdGNoTW9kdWxlTG9hZCgpO1xyXG5cclxuLy8gZXhwb3J0IGZ1bmN0aW9uIGdldFBsdWdpbkJ5TW9kdWxlKG1vZHVsZSkge1xyXG4vLyAgICAgcmV0dXJuIHRoaXMubG9jYWxDb250ZW50LmZpbmQocGx1Z2luID0+IG1vZHVsZS5maWxlbmFtZSA9PT0gcGx1Z2luLmNvbnRlbnRQYXRoIHx8IG1vZHVsZS5maWxlbmFtZS5zdGFydHNXaXRoKHBsdWdpbi5jb250ZW50UGF0aCArIHBhdGguc2VwKSk7XHJcbi8vIH1cclxuXHJcbi8vIGV4cG9ydCBmdW5jdGlvbiBnZXRQbHVnaW5QYXRoQnlNb2R1bGUobW9kdWxlKSB7XHJcbi8vICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5wbHVnaW5BcGlJbnN0YW5jZXMpLmZpbmQoY29udGVudFBhdGggPT4gbW9kdWxlLmZpbGVuYW1lID09PSBjb250ZW50UGF0aCB8fCBtb2R1bGUuZmlsZW5hbWUuc3RhcnRzV2l0aChjb250ZW50UGF0aCArIHBhdGguc2VwKSk7XHJcbi8vIH1cclxuXHJcbi8vIHZhciBzZXR0aW5nc1BhbmVsLCBlbW90ZU1vZHVsZSwgcXVpY2tFbW90ZU1lbnUsIHZvaWNlTW9kZSwsIGRNb2RlLCBwdWJsaWNTZXJ2ZXJzTW9kdWxlO1xyXG4vLyB2YXIgYmRDb25maWcgPSBudWxsOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/index.js\n");
/***/ }),
/***/ "./src/modules/bdv2.js":
/*!*****************************!*\
!*** ./src/modules/bdv2.js ***!
\*****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _webpackmodules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./webpackmodules */ \"./src/modules/webpackmodules.js\");\n/* harmony import */ var _pluginapi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pluginapi */ \"./src/modules/pluginapi.js\");\n/* harmony import */ var _ui_icons_bdlogo__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ui/icons/bdlogo */ \"./src/ui/icons/bdlogo.jsx\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class V2 {\n constructor() {\n this.editorDetached = false;\n }\n\n initialize() {\n _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].suppressErrors(this.patchSocial.bind(this), \"BD Social Patch\")();\n _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].suppressErrors(this.patchGuildPills.bind(this), \"BD Guild Pills Patch\")();\n _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].suppressErrors(this.patchGuildListItems.bind(this), \"BD Guild List Items Patch\")();\n _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].suppressErrors(this.patchGuildSeparator.bind(this), \"BD Guild Separator Patch\")();\n }\n\n get messageClasses() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByProps(\"message\", \"containerCozy\");\n }\n\n get guildClasses() {\n const guildsWrapper = _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByProps(\"wrapper\", \"unreadMentionsBar\");\n const guilds = _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByProps(\"guildsError\", \"selected\");\n const pill = _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByProps(\"blobContainer\");\n return Object.assign({}, guildsWrapper, guilds, pill);\n }\n\n get MessageContentComponent() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getModule(m => m.defaultProps && m.defaultProps.hasOwnProperty(\"disableButtons\"));\n }\n\n get TimeFormatter() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByProps(\"dateFormat\");\n }\n\n get TooltipWrapper() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByDisplayName(\"TooltipDeprecated\");\n }\n\n get NativeModule() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getByProps(\"setBadge\");\n }\n\n get Tooltips() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getModule(m => m.hide && m.show && !m.search && !m.submit && !m.search && !m.activateRagingDemon && !m.dismiss);\n }\n\n get KeyGenerator() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getModule(m => m.toString && /\"binary\"/.test(m.toString()));\n }\n\n patchSocial() {\n if (this.socialPatch) return;\n const TabBar = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].findModule(m => m.displayName == \"TabBar\");\n const Anchor = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].findModule(m => m.displayName == \"Anchor\");\n if (!TabBar || !Anchor) return;\n this.socialPatch = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].monkeyPatch(TabBar.prototype, \"render\", {\n after: data => {\n const children = data.returnValue.props.children;\n if (!children || !children.length) return;\n if (children[children.length - 2].type.displayName !== \"Separator\") return;\n if (!children[children.length - 1].type.toString().includes(\"socialLinks\")) return;\n const original = children[children.length - 1].type;\n\n const newOne = function () {\n const returnVal = original(...arguments);\n returnVal.props.children.push(_pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].React.createElement(Anchor, {\n className: \"bd-social-link\",\n href: \"https://github.com/rauenzi/BetterDiscordApp\",\n rel: \"author\",\n title: \"BandagedBD\",\n target: \"_blank\"\n }, _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].React.createElement(_ui_icons_bdlogo__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n size: \"16px\",\n className: \"bd-social-logo\"\n })));\n return returnVal;\n };\n\n children[children.length - 1].type = newOne;\n }\n });\n }\n\n patchGuildListItems() {\n if (this.guildListItemsPatch) return;\n const listItemClass = this.guildClasses.listItem.split(\" \")[0];\n const blobClass = this.guildClasses.blobContainer.split(\" \")[0];\n const reactInstance = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getInternalInstance(document.querySelector(`.${listItemClass} .${blobClass}`).parentElement);\n const GuildComponent = reactInstance.return.type;\n if (!GuildComponent) return;\n this.guildListItemsPatch = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].monkeyPatch(GuildComponent.prototype, \"render\", {\n after: data => {\n const returnValue = data.returnValue;\n const guildData = data.thisObject.props;\n returnValue.props.className += \" bd-guild\";\n if (guildData.unread) returnValue.props.className += \" bd-unread\";\n if (guildData.selected) returnValue.props.className += \" bd-selected\";\n if (guildData.audio) returnValue.props.className += \" bd-audio\";\n if (guildData.video) returnValue.props.className += \" bd-video\";\n if (guildData.badge) returnValue.props.className += \" bd-badge\";\n if (guildData.animatable) returnValue.props.className += \" bd-animatable\";\n return returnValue;\n }\n });\n }\n\n patchGuildPills() {\n if (this.guildPillPatch) return;\n const guildPill = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].findModule(m => m.default && m.default.toString && m.default.toString().includes(\"translate3d\"));\n if (!guildPill) return;\n this.guildPillPatch = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].monkeyPatch(guildPill, \"default\", {\n after: data => {\n const props = data.methodArguments[0];\n if (props.unread) data.returnValue.props.className += \" bd-unread\";\n if (props.selected) data.returnValue.props.className += \" bd-selected\";\n if (props.hovered) data.returnValue.props.className += \" bd-hovered\";\n return data.returnValue;\n }\n });\n }\n\n patchGuildSeparator() {\n if (this.guildSeparatorPatch) return;\n const Guilds = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].findModuleByDisplayName(\"Guilds\");\n const guildComponents = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].findModuleByProps(\"renderListItem\");\n if (!guildComponents || !Guilds) return;\n\n const GuildSeparator = function () {\n const returnValue = guildComponents.Separator(...arguments);\n returnValue.props.className += \" bd-guild-separator\";\n return returnValue;\n };\n\n this.guildSeparatorPatch = _pluginapi__WEBPACK_IMPORTED_MODULE_1__[\"default\"].monkeyPatch(Guilds.prototype, \"render\", {\n after: data => {\n data.returnValue.props.children[1].props.children[3].type = GuildSeparator;\n }\n });\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvYmR2Mi5qcz9mZmJlIl0sIm5hbWVzIjpbIlYyIiwiY29uc3RydWN0b3IiLCJlZGl0b3JEZXRhY2hlZCIsImluaXRpYWxpemUiLCJCZEFwaSIsInN1cHByZXNzRXJyb3JzIiwicGF0Y2hTb2NpYWwiLCJiaW5kIiwicGF0Y2hHdWlsZFBpbGxzIiwicGF0Y2hHdWlsZExpc3RJdGVtcyIsInBhdGNoR3VpbGRTZXBhcmF0b3IiLCJtZXNzYWdlQ2xhc3NlcyIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0QnlQcm9wcyIsImd1aWxkQ2xhc3NlcyIsImd1aWxkc1dyYXBwZXIiLCJndWlsZHMiLCJwaWxsIiwiT2JqZWN0IiwiYXNzaWduIiwiTWVzc2FnZUNvbnRlbnRDb21wb25lbnQiLCJnZXRNb2R1bGUiLCJtIiwiZGVmYXVsdFByb3BzIiwiaGFzT3duUHJvcGVydHkiLCJUaW1lRm9ybWF0dGVyIiwiVG9vbHRpcFdyYXBwZXIiLCJnZXRCeURpc3BsYXlOYW1lIiwiTmF0aXZlTW9kdWxlIiwiVG9vbHRpcHMiLCJoaWRlIiwic2hvdyIsInNlYXJjaCIsInN1Ym1pdCIsImFjdGl2YXRlUmFnaW5nRGVtb24iLCJkaXNtaXNzIiwiS2V5R2VuZXJhdG9yIiwidG9TdHJpbmciLCJ0ZXN0Iiwic29jaWFsUGF0Y2giLCJUYWJCYXIiLCJmaW5kTW9kdWxlIiwiZGlzcGxheU5hbWUiLCJBbmNob3IiLCJtb25rZXlQYXRjaCIsInByb3RvdHlwZSIsImFmdGVyIiwiZGF0YSIsImNoaWxkcmVuIiwicmV0dXJuVmFsdWUiLCJwcm9wcyIsImxlbmd0aCIsInR5cGUiLCJpbmNsdWRlcyIsIm9yaWdpbmFsIiwibmV3T25lIiwicmV0dXJuVmFsIiwiYXJndW1lbnRzIiwicHVzaCIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImhyZWYiLCJyZWwiLCJ0aXRsZSIsInRhcmdldCIsIkJETG9nbyIsInNpemUiLCJndWlsZExpc3RJdGVtc1BhdGNoIiwibGlzdEl0ZW1DbGFzcyIsImxpc3RJdGVtIiwic3BsaXQiLCJibG9iQ2xhc3MiLCJibG9iQ29udGFpbmVyIiwicmVhY3RJbnN0YW5jZSIsImdldEludGVybmFsSW5zdGFuY2UiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJwYXJlbnRFbGVtZW50IiwiR3VpbGRDb21wb25lbnQiLCJyZXR1cm4iLCJndWlsZERhdGEiLCJ0aGlzT2JqZWN0IiwidW5yZWFkIiwic2VsZWN0ZWQiLCJhdWRpbyIsInZpZGVvIiwiYmFkZ2UiLCJhbmltYXRhYmxlIiwiZ3VpbGRQaWxsUGF0Y2giLCJndWlsZFBpbGwiLCJkZWZhdWx0IiwibWV0aG9kQXJndW1lbnRzIiwiaG92ZXJlZCIsImd1aWxkU2VwYXJhdG9yUGF0Y2giLCJHdWlsZHMiLCJmaW5kTW9kdWxlQnlEaXNwbGF5TmFtZSIsImd1aWxkQ29tcG9uZW50cyIsImZpbmRNb2R1bGVCeVByb3BzIiwiR3VpbGRTZXBhcmF0b3IiLCJTZXBhcmF0b3IiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRWUsbUVBQUksTUFBTUEsRUFBTixDQUFTO0FBRXhCQyxhQUFXLEdBQUc7QUFDVixTQUFLQyxjQUFMLEdBQXNCLEtBQXRCO0FBQ0g7O0FBRURDLFlBQVUsR0FBRztBQUNUQyxzREFBSyxDQUFDQyxjQUFOLENBQXFCLEtBQUtDLFdBQUwsQ0FBaUJDLElBQWpCLENBQXNCLElBQXRCLENBQXJCLEVBQWtELGlCQUFsRDtBQUNBSCxzREFBSyxDQUFDQyxjQUFOLENBQXFCLEtBQUtHLGVBQUwsQ0FBcUJELElBQXJCLENBQTBCLElBQTFCLENBQXJCLEVBQXNELHNCQUF0RDtBQUNBSCxzREFBSyxDQUFDQyxjQUFOLENBQXFCLEtBQUtJLG1CQUFMLENBQXlCRixJQUF6QixDQUE4QixJQUE5QixDQUFyQixFQUEwRCwyQkFBMUQ7QUFDQUgsc0RBQUssQ0FBQ0MsY0FBTixDQUFxQixLQUFLSyxtQkFBTCxDQUF5QkgsSUFB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QUFDbkIsZUFBT2QsSUFBSSxDQUFDRSxXQUFaO0FBQ0g7QUFONkQsS0FBeEMsQ0FBdEI7QUFPSDs7QUFFRHZDLHFCQUFtQixHQUFHO0FBQ2xCLFFBQUksS0FBS29GLG1CQUFULEVBQThCO0FBQzlCLFVBQU1DLE1BQU0sR0FBRzNGLGtEQUFLLENBQUM0Rix1QkFBTixDQUE4QixRQUE5QixDQUFmO0FBQ0EsVUFBTUMsZUFBZSxHQUFHN0Ysa0RBQUssQ0FBQzhGLGlCQUFOLENBQXdCLGdCQUF4QixDQUF4QjtBQUNBLFFBQUksQ0FBQ0QsZUFBRCxJQUFvQixDQUFDRixNQUF6QixFQUFpQzs7QUFDakMsVUFBTUksY0FBYyxHQUFHLFlBQVc7QUFDOUIsWUFBTWxELFdBQVcsR0FBR2dELGVBQWUsQ0FBQ0csU0FBaEIsQ0FBMEIsR0FBRzNDLFNBQTdCLENBQXBCO0FBQ0FSLGlCQUFXLENBQUNDLEtBQVosQ0FBa0JXLFNBQWxCLElBQStCLHFCQUEvQjtBQUNBLGFBQU9aLFdBQVA7QUFDSCxLQUpEOztBQUtBLFNBQUs2QyxtQkFBTCxHQUEyQjFGLGtEQUFLLENBQUN3QyxXQUFOLENBQWtCbUQsTUFBTSxDQUFDbEQsU0FBekIsRUFBb0MsUUFBcEMsRUFBOEM7QUFBQ0MsV0FBSyxFQUFHQyxJQUFELElBQVU7QUFDdkZBLFlBQUksQ0FBQ0UsV0FBTCxDQUFpQkMsS0FBakIsQ0FBdUJGLFFBQXZCLENBQWdDLENBQWhDLEVBQW1DRSxLQUFuQyxDQUF5Q0YsUUFBekMsQ0FBa0QsQ0FBbEQsRUFBcURJLElBQXJELEdBQTREK0MsY0FBNUQ7QUFDSDtBQUZ3RSxLQUE5QyxDQUEzQjtBQUdIOztBQWpHdUIsQ0FBYixFQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvYmR2Mi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBXZWJwYWNrTW9kdWxlcyBmcm9tIFwiLi93ZWJwYWNrbW9kdWxlc1wiO1xyXG5pbXBvcnQgQmRBcGkgZnJvbSBcIi4vcGx1Z2luYXBpXCI7XHJcbmltcG9ydCBCRExvZ28gZnJvbSBcIi4uL3VpL2ljb25zL2JkbG9nb1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFYyIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmVkaXRvckRldGFjaGVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZSgpIHtcclxuICAgICAgICBCZEFwaS5zdXBwcmVzc0Vycm9ycyh0aGlzLnBhdGNoU29jaWFsLmJpbmQodGhpcyksIFwiQkQgU29jaWFsIFBhdGNoXCIpKCk7XHJcbiAgICAgICAgQmRBcGkuc3VwcHJlc3NFcnJvcnModGhpcy5wYXRjaEd1aWxkUGlsbHMuYmluZCh0aGlzKSwgXCJCRCBHdWlsZCBQaWxscyBQYXRjaFwiKSgpO1xyXG4gICAgICAgIEJkQXBpLnN1cHByZXNzRXJyb3JzKHRoaXMucGF0Y2hHdWlsZExpc3RJdGVtcy5iaW5kKHRoaXMpLCBcIkJEIEd1aWxkIExpc3QgSXRlbXMgUGF0Y2hcIikoKTtcclxuICAgICAgICBCZEFwaS5zdXBwcmVzc0Vycm9ycyh0aGlzLnBhdGNoR3VpbGRTZXBhcmF0b3IuYmluZCh0aGlzKSwgXCJCRCBHdWlsZCBTZXBhcmF0b3IgUGF0Y2hcIikoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbWVzc2FnZUNsYXNzZXMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJtZXNzYWdlXCIsIFwiY29udGFpbmVyQ296eVwiKTt9XHJcbiAgICBnZXQgZ3VpbGRDbGFzc2VzKCkge1xyXG5cdFx0Y29uc3QgZ3VpbGRzV3JhcHBlciA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJ3cmFwcGVyXCIsIFwidW5yZWFkTWVudGlvbnNCYXJcIik7XHJcbiAgICAgICAgY29uc3QgZ3VpbGRzID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImd1aWxkc0Vycm9yXCIsIFwic2VsZWN0ZWRcIik7XHJcbiAgICAgICAgY29uc3QgcGlsbCA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJibG9iQ29udGFpbmVyXCIpO1xyXG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBndWlsZHNXcmFwcGVyLCBndWlsZHMsIHBpbGwpO1xyXG5cdH1cclxuXHJcbiAgICBnZXQgTWVzc2FnZUNvbnRlbnRDb21wb25lbnQoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldE1vZHVsZShtID0+IG0uZGVmYXVsdFByb3BzICYmIG0uZGVmYXVsdFByb3BzLmhhc093blByb3BlcnR5KFwiZGlzYWJsZUJ1dHRvbnNcIikpO31cclxuICAgIGdldCBUaW1lRm9ybWF0dGVyKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZGF0ZUZvcm1hdFwiKTt9XHJcbiAgICBnZXQgVG9vbHRpcFdyYXBwZXIoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5RGlzcGxheU5hbWUoXCJUb29sdGlwRGVwcmVjYXRlZFwiKTt9XHJcbiAgICBnZXQgTmF0aXZlTW9kdWxlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwic2V0QmFkZ2VcIik7fVxyXG4gICAgZ2V0IFRvb2x0aXBzKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRNb2R1bGUobSA9PiBtLmhpZGUgJiYgbS5zaG93ICYmICFtLnNlYXJjaCAmJiAhbS5zdWJtaXQgJiYgIW0uc2VhcmNoICYmICFtLmFjdGl2YXRlUmFnaW5nRGVtb24gJiYgIW0uZGlzbWlzcyk7fVxyXG4gICAgZ2V0IEtleUdlbmVyYXRvcigpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS50b1N0cmluZyAmJiAvXCJiaW5hcnlcIi8udGVzdChtLnRvU3RyaW5nKCkpKTt9XHJcblxyXG4gICAgcGF0Y2hTb2NpYWwoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc29jaWFsUGF0Y2gpIHJldHVybjtcclxuICAgICAgICBjb25zdCBUYWJCYXIgPSBCZEFwaS5maW5kTW9kdWxlKG0gPT4gbS5kaXNwbGF5TmFtZSA9PSBcIlRhYkJhclwiKTtcclxuICAgICAgICBjb25zdCBBbmNob3IgPSBCZEFwaS5maW5kTW9kdWxlKG0gPT4gbS5kaXNwbGF5TmFtZSA9PSBcIkFuY2hvclwiKTtcclxuICAgICAgICBpZiAoIVRhYkJhciB8fCAhQW5jaG9yKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5zb2NpYWxQYXRjaCA9IEJkQXBpLm1vbmtleVBhdGNoKFRhYkJhci5wcm90b3R5cGUsIFwicmVuZGVyXCIsIHthZnRlcjogKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBkYXRhLnJldHVyblZhbHVlLnByb3BzLmNoaWxkcmVuO1xyXG4gICAgICAgICAgICBpZiAoIWNoaWxkcmVuIHx8ICFjaGlsZHJlbi5sZW5ndGgpIHJldHVybjtcclxuICAgICAgICAgICAgaWYgKGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDJdLnR5cGUuZGlzcGxheU5hbWUgIT09IFwiU2VwYXJhdG9yXCIpIHJldHVybjtcclxuICAgICAgICAgICAgaWYgKCFjaGlsZHJlbltjaGlsZHJlbi5sZW5ndGggLSAxXS50eXBlLnRvU3RyaW5nKCkuaW5jbHVkZXMoXCJzb2NpYWxMaW5rc1wiKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbCA9IGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdLnR5cGU7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld09uZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmV0dXJuVmFsID0gb3JpZ2luYWwoLi4uYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgICAgIHJldHVyblZhbC5wcm9wcy5jaGlsZHJlbi5wdXNoKEJkQXBpLlJlYWN0LmNyZWF0ZUVsZW1lbnQoQW5jaG9yLCB7Y2xhc3NOYW1lOiBcImJkLXNvY2lhbC1saW5rXCIsIGhyZWY6IFwiaHR0cHM6Ly9naXRodWIuY29tL3JhdWVuemkvQmV0dGVyRGlzY29yZEFwcFwiLCByZWw6IFwiYXV0aG9yXCIsIHRpdGxlOiBcIkJhbmRhZ2VkQkRcIiwgdGFyZ2V0OiBcIl9ibGFua1wifSxcclxuICAgICAgICAgICAgICAgICAgICBCZEFwaS5SZWFjdC5jcmVhdGVFbGVtZW50KEJETG9nbywge3NpemU6IFwiMTZweFwiLCBjbGFzc05hbWU6IFwiYmQtc29jaWFsLWxvZ29cIn0pXHJcbiAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZXR1cm5WYWw7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdLnR5cGUgPSBuZXdPbmU7XHJcbiAgICAgICAgfX0pO1xyXG4gICAgfVxyXG5cclxuICAgIHBhdGNoR3VpbGRMaXN0SXRlbXMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3VpbGRMaXN0SXRlbXNQYXRjaCkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGxpc3RJdGVtQ2xhc3MgPSB0aGlzLmd1aWxkQ2xhc3Nlcy5saXN0SXRlbS5zcGxpdChcIiBcIilbMF07XHJcbiAgICAgICAgY29uc3QgYmxvYkNsYXNzID0gdGhpcy5ndWlsZENsYXNzZXMuYmxvYkNvbnRhaW5lci5zcGxpdChcIiBcIilbMF07XHJcbiAgICAgICAgY29uc3QgcmVhY3RJbnN0YW5jZSA9IEJkQXBpLmdldEludGVybmFsSW5zdGFuY2UoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7bGlzdEl0ZW1DbGFzc30gLiR7YmxvYkNsYXNzfWApLnBhcmVudEVsZW1lbnQpO1xyXG4gICAgICAgIGNvbnN0IEd1aWxkQ29tcG9uZW50ID0gcmVhY3RJbnN0YW5jZS5yZXR1cm4udHlwZTtcclxuICAgICAgICBpZiAoIUd1aWxkQ29tcG9uZW50KSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5ndWlsZExpc3RJdGVtc1BhdGNoID0gQmRBcGkubW9ua2V5UGF0Y2goR3VpbGRDb21wb25lbnQucHJvdG90eXBlLCBcInJlbmRlclwiLCB7YWZ0ZXI6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJldHVyblZhbHVlID0gZGF0YS5yZXR1cm5WYWx1ZTtcclxuICAgICAgICAgICAgY29uc3QgZ3VpbGREYXRhID0gZGF0YS50aGlzT2JqZWN0LnByb3BzO1xyXG4gICAgICAgICAgICByZXR1cm5WYWx1ZS5wcm9wcy5jbGFzc05hbWUgKz0gXCIgYmQtZ3VpbGRcIjtcclxuICAgICAgICAgICAgaWYgKGd1aWxkRGF0YS51bnJlYWQpIHJldHVyblZhbHVlLnByb3BzLmNsYXNzTmFtZSArPSBcIiBiZC11bnJlYWRcIjtcclxuICAgICAgICAgICAgaWYgKGd1aWxkRGF0YS5zZWxlY3RlZCkgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLXNlbGVjdGVkXCI7XHJcbiAgICAgICAgICAgIGlmIChndWlsZERhdGEuYXVkaW8pIHJldHVyblZhbHVlLnByb3BzLmNsYXNzTmFtZSArPSBcIiBiZC1hdWRpb1wiO1xyXG4gICAgICAgICAgICBpZiAoZ3VpbGREYXRhLnZpZGVvKSByZXR1cm5WYWx1ZS5wcm9wcy5jbGFzc05hbWUgKz0gXCIgYmQtdmlkZW9cIjtcclxuICAgICAgICAgICAgaWYgKGd1aWxkRGF0YS5iYWRnZSkgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLWJhZGdlXCI7XHJcbiAgICAgICAgICAgIGlmIChndWlsZERhdGEuYW5pbWF0YWJsZSkgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLWFuaW1hdGFibGVcIjtcclxuICAgICAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlO1xyXG4gICAgICAgIH19KTtcclxuICAgIH1cclxuXHJcbiAgICBwYXRjaEd1aWxkUGlsbHMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3VpbGRQaWxsUGF0Y2gpIHJldHVybjtcclxuICAgICAgICBjb25zdCBndWlsZFBpbGwgPSBCZEFwaS5maW5kTW9kdWxlKG0gPT4gbS5kZWZhdWx0ICYmIG0uZGVmYXVsdC50b1N0cmluZyAmJiBtLmRlZmF1bHQudG9TdHJpbmcoKS5pbmNsdWRlcyhcInRyYW5zbGF0ZTNkXCIpKTtcclxuICAgICAgICBpZiAoIWd1aWxkUGlsbCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuZ3VpbGRQaWxsUGF0Y2ggPSBCZEFwaS5tb25rZXlQYXRjaChndWlsZFBpbGwsIFwiZGVmYXVsdFwiLCB7YWZ0ZXI6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0gZGF0YS5tZXRob2RBcmd1bWVudHNbMF07XHJcbiAgICAgICAgICAgIGlmIChwcm9wcy51bnJlYWQpIGRhdGEucmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLXVucmVhZFwiO1xyXG4gICAgICAgICAgICBpZiAocHJvcHMuc2VsZWN0ZWQpIGRhdGEucmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLXNlbGVjdGVkXCI7XHJcbiAgICAgICAgICAgIGlmIChwcm9wcy5ob3ZlcmVkKSBkYXRhLnJldHVyblZhbHVlLnByb3BzLmNsYXNzTmFtZSArPSBcIiBiZC1ob3ZlcmVkXCI7XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRhLnJldHVyblZhbHVlO1xyXG4gICAgICAgIH19KTtcclxuICAgIH1cclxuXHJcbiAgICBwYXRjaEd1aWxkU2VwYXJhdG9yKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmd1aWxkU2VwYXJhdG9yUGF0Y2gpIHJldHVybjtcclxuICAgICAgICBjb25zdCBHdWlsZHMgPSBCZEFwaS5maW5kTW9kdWxlQnlEaXNwbGF5TmFtZShcIkd1aWxkc1wiKTtcclxuICAgICAgICBjb25zdCBndWlsZENvbXBvbmVudHMgPSBCZEFwaS5maW5kTW9kdWxlQnlQcm9wcyhcInJlbmRlckxpc3RJdGVtXCIpO1xyXG4gICAgICAgIGlmICghZ3VpbGRDb21wb25lbnRzIHx8ICFHdWlsZHMpIHJldHVybjtcclxuICAgICAgICBjb25zdCBHdWlsZFNlcGFyYXRvciA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBjb25zdCByZXR1cm5WYWx1ZSA9IGd1aWxkQ29tcG9uZW50cy5TZXBhcmF0b3IoLi4uYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgcmV0dXJuVmFsdWUucHJvcHMuY2xhc3NOYW1lICs9IFwiIGJkLWd1aWxkLXNlcGFyYXRvclwiO1xyXG4gICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmd1aWxkU2VwYXJhdG9yUGF0Y2ggPSBCZEFwaS5tb25rZXlQYXRjaChHdWlsZHMucHJvdG90eXBlLCBcInJlbmRlclwiLCB7YWZ0ZXI6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIGRhdGEucmV0dXJuVmFsdWUucHJvcHMuY2hpbGRyZW5bMV0ucHJvcHMuY2hpbGRyZW5bM10udHlwZSA9IEd1aWxkU2VwYXJhdG9yO1xyXG4gICAgICAgIH19KTtcclxuICAgIH1cclxuXHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/bdv2.js\n");
/***/ }),
/***/ "./src/modules/contentmanager.js":
/*!***************************************!*\
!*** ./src/modules/contentmanager.js ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ContentManager; });\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../structs/contenterror */ \"./src/structs/contenterror.js\");\n/* harmony import */ var _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../structs/metaerror */ \"./src/structs/metaerror.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n\n\n\n\n\n\n\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst Module = __webpack_require__(/*! module */ \"module\").Module;\n\nModule.globalPaths.push(path.resolve(__webpack_require__(/*! electron */ \"electron\").remote.app.getAppPath(), \"node_modules\"));\nconst splitRegex = /[^\\S\\r\\n]*?\\n[^\\S\\r\\n]*?\\*[^\\S\\r\\n]?/;\nconst escapedAtRegex = /^\\\\@/;\nclass ContentManager {\n get name() {\n return \"\";\n }\n\n get moduleExtension() {\n return \"\";\n }\n\n get extension() {\n return \"\";\n }\n\n get contentFolder() {\n return \"\";\n }\n\n get prefix() {\n return \"content\";\n }\n\n get collection() {\n return \"settings\";\n }\n\n get category() {\n return \"content\";\n }\n\n get id() {\n return \"autoReload\";\n }\n\n emit(event, ...args) {\n return _emitter__WEBPACK_IMPORTED_MODULE_2__[\"default\"].emit(`${this.prefix}-${event}`, ...args);\n }\n\n constructor() {\n this.timeCache = {};\n this.contentList = [];\n this.state = {};\n this.originalRequire = Module._extensions[this.moduleExtension];\n Module._extensions[this.moduleExtension] = this.getContentRequire();\n _settingsmanager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].on(this.collection, this.category, this.id, enabled => {\n if (enabled) this.watchContent();else this.unwatchContent();\n });\n } // Subclasses should overload this and modify the content object as needed to fully load it\n\n\n initializeContent() {\n return;\n } // Subclasses should overload this and modify the content as needed to require() the file\n\n\n getContentModification(module, content) {\n return content;\n }\n\n startContent() {\n return;\n }\n\n stopContent() {\n return;\n }\n\n loadState() {\n const saved = _datastore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getData(`${this.prefix}s`);\n if (!saved) return;\n Object.assign(this.state, saved);\n }\n\n saveState() {\n _datastore__WEBPACK_IMPORTED_MODULE_3__[\"default\"].setData(`${this.prefix}s`, this.state);\n }\n\n watchContent() {\n if (this.watcher) return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].err(this.name, \"Already watching content.\");\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].log(this.name, \"Starting to watch content.\");\n this.watcher = fs.watch(this.contentFolder, {\n persistent: false\n }, async (eventType, filename) => {\n if (!eventType || !filename || !filename.endsWith(this.extension)) return;\n await new Promise(r => setTimeout(r, 50));\n\n try {\n fs.statSync(path.resolve(this.contentFolder, filename));\n } catch (err) {\n if (err.code !== \"ENOENT\") return;\n delete this.timeCache[filename];\n this.unloadContent(filename, true);\n }\n\n if (!fs.statSync(path.resolve(this.contentFolder, filename)).isFile()) return;\n const stats = fs.statSync(path.resolve(this.contentFolder, filename));\n if (!stats || !stats.mtime || !stats.mtime.getTime()) return;\n if (typeof stats.mtime.getTime() !== \"number\") return;\n if (this.timeCache[filename] == stats.mtime.getTime()) return;\n this.timeCache[filename] = stats.mtime.getTime();\n if (eventType == \"rename\") this.loadContent(filename, true);\n if (eventType == \"change\") this.reloadContent(filename, true);\n });\n }\n\n unwatchContent() {\n if (!this.watcher) return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].err(this.name, \"Was not watching content.\");\n this.watcher.close();\n delete this.watcher;\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].log(this.name, \"No longer watching content.\");\n }\n\n extractMeta(content) {\n const firstLine = content.split(\"\\n\")[0];\n const hasOldMeta = firstLine.includes(\"//META\");\n if (hasOldMeta) return this.parseOldMeta(content);\n const hasNewMeta = firstLine.includes(\"/**\");\n if (hasNewMeta) return this.parseNewMeta(content);\n throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__[\"default\"](\"META was not found.\");\n }\n\n parseOldMeta(content) {\n const meta = content.split(\"\\n\")[0];\n const metaData = meta.substring(meta.lastIndexOf(\"//META\") + 6, meta.lastIndexOf(\"*//\"));\n if (!_utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].testJSON(metaData)) throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__[\"default\"](\"META could not be parsed.\");\n const parsed = JSON.parse(metaData);\n if (!parsed.name) throw new _structs_metaerror__WEBPACK_IMPORTED_MODULE_5__[\"default\"](\"META missing name data.\");\n return parsed;\n }\n\n parseNewMeta(content) {\n const block = content.split(\"/**\", 2)[1].split(\"*/\", 1)[0];\n const out = {};\n let field = \"\";\n let accum = \"\";\n\n for (const line of block.split(splitRegex)) {\n if (line.length === 0) continue;\n\n if (line.charAt(0) === \"@\" && line.charAt(1) !== \" \") {\n out[field] = accum;\n const l = line.indexOf(\" \");\n field = line.substr(1, l - 1);\n accum = line.substr(l + 1);\n } else {\n accum += \" \" + line.replace(\"\\\\n\", \"\\n\").replace(escapedAtRegex, \"@\");\n }\n }\n\n out[field] = accum.trim();\n delete out[\"\"];\n return out;\n }\n\n getContentRequire() {\n const self = this; // const baseFolder = this.contentFolder;\n\n const originalRequire = this.originalRequire;\n return function (module, filename) {\n const possiblePath = path.resolve(self.contentFolder, path.basename(filename));\n if (!fs.existsSync(possiblePath) || filename !== fs.realpathSync(possiblePath)) return Reflect.apply(originalRequire, this, arguments);\n let content = fs.readFileSync(filename, \"utf8\");\n content = _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].stripBOM(content);\n const meta = self.extractMeta(content);\n meta.id = meta.name;\n meta.filename = path.basename(filename);\n content = self.getContentModification(module, content, meta);\n\n module._compile(content, filename);\n };\n } // Subclasses should use the return (if not ContentError) and push to this.contentList\n\n\n loadContent(filename, shouldToast = false) {\n if (typeof filename === \"undefined\") return;\n\n try {\n require(path.resolve(this.contentFolder, filename));\n } catch (error) {\n return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](filename, filename, \"Could not be compiled.\", {\n message: error.message,\n stack: error.stack\n });\n }\n\n const content = require(path.resolve(this.contentFolder, filename));\n\n if (this.contentList.find(c => c.id == content.id)) return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, filename, `There is already a plugin with name ${content.name}`);\n const error = this.initializeContent(content);\n if (error) return error;\n this.contentList.push(content);\n if (shouldToast) ui__WEBPACK_IMPORTED_MODULE_6__[\"Toasts\"].success(`${content.name} v${content.version} was loaded.`);\n this.emit(\"loaded\", content.id);\n if (!this.state[content.id]) return this.state[content.id] = false;\n return this.startContent(content);\n }\n\n unloadContent(idOrFileOrContent, shouldToast = true, isReload = false) {\n const content = typeof idOrFileOrContent == \"string\" ? this.contentList.find(c => c.id == idOrFileOrContent || c.filename == idOrFileOrContent) : idOrFileOrContent;\n if (!content) return false;\n if (this.state[content.id]) isReload ? this.stopContent(content) : this.disableContent(content);\n delete require.cache[require.resolve(path.resolve(this.contentFolder, content.filename))];\n this.contentList.splice(this.contentList.indexOf(content), 1);\n this.emit(\"unloaded\", content.id);\n if (shouldToast) ui__WEBPACK_IMPORTED_MODULE_6__[\"Toasts\"].success(`${content.name} was unloaded.`);\n return true;\n }\n\n reloadContent(idOrFileOrContent, shouldToast = true) {\n const content = typeof idOrFileOrContent == \"string\" ? this.contentList.find(c => c.id == idOrFileOrContent || c.filename == idOrFileOrContent) : idOrFileOrContent;\n const didUnload = this.unloadContent(content, shouldToast, true);\n if (!didUnload) return didUnload;\n return this.loadContent(content.filename, shouldToast);\n }\n\n isLoaded(idOrFile) {\n const content = this.contentList.find(c => c.id == idOrFile || c.filename == idOrFile);\n if (!content) return false;\n return true;\n }\n\n isEnabled(idOrFile) {\n const content = this.contentList.find(c => c.id == idOrFile || c.filename == idOrFile);\n if (!content) return false;\n return this.state[content.id];\n }\n\n enableContent(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n if (this.state[content.id]) return;\n this.state[content.id] = true;\n this.startContent(content);\n this.saveState();\n }\n\n disableContent(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n if (!this.state[content.id]) return;\n this.state[content.id] = false;\n this.stopContent(content);\n this.saveState();\n }\n\n toggleContent(id) {\n if (this.state[id]) this.disableContent(id);else this.enableContent(id);\n }\n\n loadNewContent() {\n const files = fs.readdirSync(this.contentFolder);\n const removed = this.contentList.filter(t => !files.includes(t.filename)).map(c => c.id);\n const added = files.filter(f => !this.contentList.find(t => t.filename == f) && f.endsWith(this.extension) && fs.statSync(path.resolve(this.contentFolder, f)).isFile());\n return {\n added,\n removed\n };\n }\n\n updateList() {\n const results = this.loadNewContent();\n\n for (const filename of results.added) this.loadContent(filename);\n\n for (const name of results.removed) this.unloadContent(name);\n }\n\n loadAllContent() {\n this.loadState();\n const errors = [];\n const files = fs.readdirSync(this.contentFolder);\n\n for (const filename of files) {\n if (!fs.statSync(path.resolve(this.contentFolder, filename)).isFile() || !filename.endsWith(this.extension)) continue;\n const content = this.loadContent(filename, false);\n if (content instanceof _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"]) errors.push(content);\n }\n\n this.saveState();\n if (_settingsmanager__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(this.collection, this.category, this.id)) this.watchContent();\n return errors;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvY29udGVudG1hbmFnZXIuanM/OTA0MyJdLCJuYW1lcyI6WyJwYXRoIiwicmVxdWlyZSIsImZzIiwiTW9kdWxlIiwiZ2xvYmFsUGF0aHMiLCJwdXNoIiwicmVzb2x2ZSIsInJlbW90ZSIsImFwcCIsImdldEFwcFBhdGgiLCJzcGxpdFJlZ2V4IiwiZXNjYXBlZEF0UmVnZXgiLCJDb250ZW50TWFuYWdlciIsIm5hbWUiLCJtb2R1bGVFeHRlbnNpb24iLCJleHRlbnNpb24iLCJjb250ZW50Rm9sZGVyIiwicHJlZml4IiwiY29sbGVjdGlvbiIsImNhdGVnb3J5IiwiaWQiLCJlbWl0IiwiZXZlbnQiLCJhcmdzIiwiRXZlbnRzIiwiY29uc3RydWN0b3IiLCJ0aW1lQ2FjaGUiLCJjb250ZW50TGlzdCIsInN0YXRlIiwib3JpZ2luYWxSZXF1aXJlIiwiX2V4dGVuc2lvbnMiLCJnZXRDb250ZW50UmVxdWlyZSIsIlNldHRpbmdzIiwib24iLCJlbmFibGVkIiwid2F0Y2hDb250ZW50IiwidW53YXRjaENvbnRlbnQiLCJpbml0aWFsaXplQ29udGVudCIsImdldENvbnRlbnRNb2RpZmljYXRpb24iLCJtb2R1bGUiLCJjb250ZW50Iiwic3RhcnRDb250ZW50Iiwic3RvcENvbnRlbnQiLCJsb2FkU3RhdGUiLCJzYXZlZCIsIkRhdGFTdG9yZSIsImdldERhdGEiLCJPYmplY3QiLCJhc3NpZ24iLCJzYXZlU3RhdGUiLCJzZXREYXRhIiwid2F0Y2hlciIsIlV0aWxpdGllcyIsImVyciIsImxvZyIsIndhdGNoIiwicGVyc2lzdGVudCIsImV2ZW50VHlwZSIsImZpbGVuYW1lIiwiZW5kc1dpdGgiLCJQcm9taXNlIiwiciIsInNldFRpbWVvdXQiLCJzdGF0U3luYyIsImNvZGUiLCJ1bmxvYWRDb250ZW50IiwiaXNGaWxlIiwic3RhdHMiLCJtdGltZSIsImdldFRpbWUiLCJsb2FkQ29udGVudCIsInJlbG9hZENvbnRlbnQiLCJjbG9zZSIsImV4dHJhY3RNZXRhIiwiZmlyc3RMaW5lIiwic3BsaXQiLCJoYXNPbGRNZXRhIiwiaW5jbHVkZXMiLCJwYXJzZU9sZE1ldGEiLCJoYXNOZXdNZXRhIiwicGFyc2VOZXdNZXRhIiwiTWV0YUVycm9yIiwibWV0YSIsIm1ldGFEYXRhIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJ0ZXN0SlNPTiIsInBhcnNlZCIsIkpTT04iLCJwYXJzZSIsImJsb2NrIiwib3V0IiwiZmllbGQiLCJhY2N1bSIsImxpbmUiLCJsZW5ndGgiLCJjaGFyQXQiLCJsIiwiaW5kZXhPZiIsInN1YnN0ciIsInJlcGxhY2UiLCJ0cmltIiwic2VsZiIsInBvc3NpYmxlUGF0aCIsImJhc2VuYW1lIiwiZXhpc3RzU3luYyIsInJlYWxwYXRoU3luYyIsIlJlZmxlY3QiLCJhcHBseSIsImFyZ3VtZW50cyIsInJlYWRGaWxlU3luYyIsInN0cmlwQk9NIiwiX2NvbXBpbGUiLCJzaG91bGRUb2FzdCIsIl9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fIiwiZXJyb3IiLCJDb250ZW50RXJyb3IiLCJtZXNzYWdlIiwic3RhY2siLCJmaW5kIiwiYyIsIlRvYXN0cyIsInN1Y2Nlc3MiLCJ2ZXJzaW9uIiwiaWRPckZpbGVPckNvbnRlbnQiLCJpc1JlbG9hZCIsImRpc2FibGVDb250ZW50IiwiY2FjaGUiLCJzcGxpY2UiLCJkaWRVbmxvYWQiLCJpc0xvYWRlZCIsImlkT3JGaWxlIiwiaXNFbmFibGVkIiwiZW5hYmxlQ29udGVudCIsImlkT3JDb250ZW50IiwicCIsInRvZ2dsZUNvbnRlbnQiLCJsb2FkTmV3Q29udGVudCIsImZpbGVzIiwicmVhZGRpclN5bmMiLCJyZW1vdmVkIiwiZmlsdGVyIiwidCIsIm1hcCIsImFkZGVkIiwiZiIsInVwZGF0ZUxpc3QiLCJyZXN1bHRzIiwibG9hZEFsbENvbnRlbnQiLCJlcnJvcnMiLCJnZXQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FB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SUFBSSxDQUFDTSxPQUFMLENBQWEsS0FBS1UsYUFBbEIsRUFBaUMwQyxRQUFqQyxDQUFaLEVBQXdEUSxNQUF4RCxFQUFELElBQXFFLENBQUNSLFFBQVEsQ0FBQ0MsUUFBVCxDQUFrQixLQUFLNUMsU0FBdkIsQ0FBMUUsRUFBNkc7QUFDN0csWUFBTXlCLE9BQU8sR0FBRyxLQUFLOEIsV0FBTCxDQUFpQlosUUFBakIsRUFBMkIsS0FBM0IsQ0FBaEI7QUFDQSxVQUFJbEIsT0FBTyxZQUFZNEUsNkRBQXZCLEVBQXFDaUMsTUFBTSxDQUFDaEosSUFBUCxDQUFZbUMsT0FBWjtBQUN4Qzs7QUFFRCxTQUFLUyxTQUFMO0FBQ0EsUUFBSWpCLHdEQUFRLENBQUNzSCxHQUFULENBQWEsS0FBS3BJLFVBQWxCLEVBQThCLEtBQUtDLFFBQW5DLEVBQTZDLEtBQUtDLEVBQWxELENBQUosRUFBMkQsS0FBS2UsWUFBTDtBQUMzRCxXQUFPa0gsTUFBUDtBQUNIOztBQXBPK0IiLCJmaWxlIjoiLi9zcmMvbW9kdWxlcy9jb250ZW50bWFuYWdlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBVdGlsaXRpZXMgZnJvbSBcIi4vdXRpbGl0aWVzXCI7XHJcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5nc21hbmFnZXJcIjtcclxuaW1wb3J0IEV2ZW50cyBmcm9tIFwiLi9lbWl0dGVyXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YXN0b3JlXCI7XHJcbmltcG9ydCBDb250ZW50RXJyb3IgZnJvbSBcIi4uL3N0cnVjdHMvY29udGVudGVycm9yXCI7XHJcbmltcG9ydCBNZXRhRXJyb3IgZnJvbSBcIi4uL3N0cnVjdHMvbWV0YWVycm9yXCI7XHJcbmltcG9ydCB7VG9hc3RzfSBmcm9tIFwidWlcIjtcclxuXHJcbmNvbnN0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcclxuY29uc3QgZnMgPSByZXF1aXJlKFwiZnNcIik7XHJcbmNvbnN0IE1vZHVsZSA9IHJlcXVpcmUoXCJtb2R1bGVcIikuTW9kdWxlO1xyXG5Nb2R1bGUuZ2xvYmFsUGF0aHMucHVzaChwYXRoLnJlc29sdmUocmVxdWlyZShcImVsZWN0cm9uXCIpLnJlbW90ZS5hcHAuZ2V0QXBwUGF0aCgpLCBcIm5vZGVfbW9kdWxlc1wiKSk7XHJcblxyXG5jb25zdCBzcGxpdFJlZ2V4ID0gL1teXFxTXFxyXFxuXSo/XFxuW15cXFNcXHJcXG5dKj9cXCpbXlxcU1xcclxcbl0/LztcclxuY29uc3QgZXNjYXBlZEF0UmVnZXggPSAvXlxcXFxALztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnRlbnRNYW5hZ2VyIHtcclxuXHJcbiAgICBnZXQgbmFtZSgpIHtyZXR1cm4gXCJcIjt9XHJcbiAgICBnZXQgbW9kdWxlRXh0ZW5zaW9uKCkge3JldHVybiBcIlwiO31cclxuICAgIGdldCBleHRlbnNpb24oKSB7cmV0dXJuIFwiXCI7fVxyXG4gICAgZ2V0IGNvbnRlbnRGb2xkZXIoKSB7cmV0dXJuIFwiXCI7fVxyXG4gICAgZ2V0IHByZWZpeCgpIHtyZXR1cm4gXCJjb250ZW50XCI7fVxyXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7cmV0dXJuIFwic2V0dGluZ3NcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiY29udGVudFwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJhdXRvUmVsb2FkXCI7fVxyXG4gICAgZW1pdChldmVudCwgLi4uYXJncykge3JldHVybiBFdmVudHMuZW1pdChgJHt0aGlzLnByZWZpeH0tJHtldmVudH1gLCAuLi5hcmdzKTt9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy50aW1lQ2FjaGUgPSB7fTtcclxuICAgICAgICB0aGlzLmNvbnRlbnRMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHt9O1xyXG4gICAgICAgIHRoaXMub3JpZ2luYWxSZXF1aXJlID0gTW9kdWxlLl9leHRlbnNpb25zW3RoaXMubW9kdWxlRXh0ZW5zaW9uXTtcclxuICAgICAgICBNb2R1bGUuX2V4dGVuc2lvbnNbdGhpcy5tb2R1bGVFeHRlbnNpb25dID0gdGhpcy5nZXRDb250ZW50UmVxdWlyZSgpO1xyXG4gICAgICAgIFNldHRpbmdzLm9uKHRoaXMuY29sbGVjdGlvbiwgdGhpcy5jYXRlZ29yeSwgdGhpcy5pZCwgKGVuYWJsZWQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVuYWJsZWQpIHRoaXMud2F0Y2hDb250ZW50KCk7XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy51bndhdGNoQ29udGVudCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJsb2FkIHRoaXMgYW5kIG1vZGlmeSB0aGUgY29udGVudCBvYmplY3QgYXMgbmVlZGVkIHRvIGZ1bGx5IGxvYWQgaXRcclxuICAgIGluaXRpYWxpemVDb250ZW50KCkge3JldHVybjt9XHJcblxyXG4gICAgLy8gU3ViY2xhc3NlcyBzaG91bGQgb3ZlcmxvYWQgdGhpcyBhbmQgbW9kaWZ5IHRoZSBjb250ZW50IGFzIG5lZWRlZCB0byByZXF1aXJlKCkgdGhlIGZpbGVcclxuICAgIGdldENvbnRlbnRNb2RpZmljYXRpb24obW9kdWxlLCBjb250ZW50KSB7cmV0dXJuIGNvbnRlbnQ7fVxyXG5cclxuICAgIHN0YXJ0Q29udGVudCgpIHtyZXR1cm47fVxyXG4gICAgc3RvcENvbnRlbnQoKSB7cmV0dXJuO31cclxuXHJcbiAgICBsb2FkU3RhdGUoKSB7XHJcbiAgICAgICAgY29uc3Qgc2F2ZWQgPSBEYXRhU3RvcmUuZ2V0RGF0YShgJHt0aGlzLnByZWZpeH1zYCk7XHJcbiAgICAgICAgaWYgKCFzYXZlZCkgcmV0dXJuO1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5zdGF0ZSwgc2F2ZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVTdGF0ZSgpIHtcclxuICAgICAgICBEYXRhU3RvcmUuc2V0RGF0YShgJHt0aGlzLnByZWZpeH1zYCwgdGhpcy5zdGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgd2F0Y2hDb250ZW50KCkge1xyXG4gICAgICAgIGlmICh0aGlzLndhdGNoZXIpIHJldHVybiBVdGlsaXRpZXMuZXJyKHRoaXMubmFtZSwgXCJBbHJlYWR5IHdhdGNoaW5nIGNvbnRlbnQuXCIpO1xyXG4gICAgICAgIFV0aWxpdGllcy5sb2codGhpcy5uYW1lLCBcIlN0YXJ0aW5nIHRvIHdhdGNoIGNvbnRlbnQuXCIpO1xyXG4gICAgICAgIHRoaXMud2F0Y2hlciA9IGZzLndhdGNoKHRoaXMuY29udGVudEZvbGRlciwge3BlcnNpc3RlbnQ6IGZhbHNlfSwgYXN5bmMgKGV2ZW50VHlwZSwgZmlsZW5hbWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFldmVudFR5cGUgfHwgIWZpbGVuYW1lIHx8ICFmaWxlbmFtZS5lbmRzV2l0aCh0aGlzLmV4dGVuc2lvbikpIHJldHVybjtcclxuICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIDUwKSk7XHJcbiAgICAgICAgICAgIHRyeSB7ZnMuc3RhdFN5bmMocGF0aC5yZXNvbHZlKHRoaXMuY29udGVudEZvbGRlciwgZmlsZW5hbWUpKTt9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPT0gXCJFTk9FTlRcIikgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMudGltZUNhY2hlW2ZpbGVuYW1lXTtcclxuICAgICAgICAgICAgICAgIHRoaXMudW5sb2FkQ29udGVudChmaWxlbmFtZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFmcy5zdGF0U3luYyhwYXRoLnJlc29sdmUodGhpcy5jb250ZW50Rm9sZGVyLCBmaWxlbmFtZSkpLmlzRmlsZSgpKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXRzID0gZnMuc3RhdFN5bmMocGF0aC5yZXNvbHZlKHRoaXMuY29udGVudEZvbGRlciwgZmlsZW5hbWUpKTtcclxuICAgICAgICAgICAgaWYgKCFzdGF0cyB8fCAhc3RhdHMubXRpbWUgfHwgIXN0YXRzLm10aW1lLmdldFRpbWUoKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mKHN0YXRzLm10aW1lLmdldFRpbWUoKSkgIT09IFwibnVtYmVyXCIpIHJldHVybjtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGltZUNhY2hlW2ZpbGVuYW1lXSA9PSBzdGF0cy5tdGltZS5nZXRUaW1lKCkpIHJldHVybjtcclxuICAgICAgICAgICAgdGhpcy50aW1lQ2FjaGVbZmlsZW5hbWVdID0gc3RhdHMubXRpbWUuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IFwicmVuYW1lXCIpIHRoaXMubG9hZENvbnRlbnQoZmlsZW5hbWUsIHRydWUpO1xyXG4gICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IFwiY2hhbmdlXCIpIHRoaXMucmVsb2FkQ29udGVudChmaWxlbmFtZSwgdHJ1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdW53YXRjaENvbnRlbnQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLndhdGNoZXIpIHJldHVybiBVdGlsaXRpZXMuZXJyKHRoaXMubmFtZSwgXCJXYXMgbm90IHdhdGNoaW5nIGNvbnRlbnQuXCIpO1xyXG4gICAgICAgIHRoaXMud2F0Y2hlci5jbG9zZSgpO1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLndhdGNoZXI7XHJcbiAgICAgICAgVXRpbGl0aWVzLmxvZyh0aGlzLm5hbWUsIFwiTm8gbG9uZ2VyIHdhdGNoaW5nIGNvbnRlbnQuXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGV4dHJhY3RNZXRhKGNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBmaXJzdExpbmUgPSBjb250ZW50LnNwbGl0KFwiXFxuXCIpWzBdO1xyXG4gICAgICAgIGNvbnN0IGhhc09sZE1ldGEgPSBmaXJzdExpbmUuaW5jbHVkZXMoXCIvL01FVEFcIik7XHJcbiAgICAgICAgaWYgKGhhc09sZE1ldGEpIHJldHVybiB0aGlzLnBhcnNlT2xkTWV0YShjb250ZW50KTtcclxuICAgICAgICBjb25zdCBoYXNOZXdNZXRhID0gZmlyc3RMaW5lLmluY2x1ZGVzKFwiLyoqXCIpO1xyXG4gICAgICAgIGlmIChoYXNOZXdNZXRhKSByZXR1cm4gdGhpcy5wYXJzZU5ld01ldGEoY29udGVudCk7XHJcbiAgICAgICAgdGhyb3cgbmV3IE1ldGFFcnJvcihcIk1FVEEgd2FzIG5vdCBmb3VuZC5cIik7XHJcbiAgICB9XHJcblxyXG4gICAgcGFyc2VPbGRNZXRhKGNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBtZXRhID0gY29udGVudC5zcGxpdChcIlxcblwiKVswXTtcclxuICAgICAgICBjb25zdCBtZXRhRGF0YSA9IG1ldGEuc3Vic3RyaW5nKG1ldGEubGFzdEluZGV4T2YoXCIvL01FVEFcIikgKyA2LCBtZXRhLmxhc3RJbmRleE9mKFwiKi8vXCIpKTtcclxuICAgICAgICBpZiAoIVV0aWxpdGllcy50ZXN0SlNPTihtZXRhRGF0YSkpIHRocm93IG5ldyBNZXRhRXJyb3IoXCJNRVRBIGNvdWxkIG5vdCBiZSBwYXJzZWQuXCIpO1xyXG5cclxuICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKG1ldGFEYXRhKTtcclxuICAgICAgICBpZiAoIXBhcnNlZC5uYW1lKSB0aHJvdyBuZXcgTWV0YUVycm9yKFwiTUVUQSBtaXNzaW5nIG5hbWUgZGF0YS5cIik7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlZDtcclxuICAgIH1cclxuXHJcbiAgICBwYXJzZU5ld01ldGEoY29udGVudCkge1xyXG4gICAgICAgIGNvbnN0IGJsb2NrID0gY29udGVudC5zcGxpdChcIi8qKlwiLCAyKVsxXS5zcGxpdChcIiovXCIsIDEpWzBdO1xyXG4gICAgICAgIGNvbnN0IG91dCA9IHt9O1xyXG4gICAgICAgIGxldCBmaWVsZCA9IFwiXCI7XHJcbiAgICAgICAgbGV0IGFjY3VtID0gXCJcIjtcclxuICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgYmxvY2suc3BsaXQoc3BsaXRSZWdleCkpIHtcclxuICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoID09PSAwKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKGxpbmUuY2hhckF0KDApID09PSBcIkBcIiAmJiBsaW5lLmNoYXJBdCgxKSAhPT0gXCIgXCIpIHtcclxuICAgICAgICAgICAgICAgIG91dFtmaWVsZF0gPSBhY2N1bTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGwgPSBsaW5lLmluZGV4T2YoXCIgXCIpO1xyXG4gICAgICAgICAgICAgICAgZmllbGQgPSBsaW5lLnN1YnN0cigxLCBsIC0gMSk7XHJcbiAgICAgICAgICAgICAgICBhY2N1bSA9IGxpbmUuc3Vic3RyKGwgKyAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGFjY3VtICs9IFwiIFwiICsgbGluZS5yZXBsYWNlKFwiXFxcXG5cIiwgXCJcXG5cIikucmVwbGFjZShlc2NhcGVkQXRSZWdleCwgXCJAXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG91dFtmaWVsZF0gPSBhY2N1bS50cmltKCk7XHJcbiAgICAgICAgZGVsZXRlIG91dFtcIlwiXTtcclxuICAgICAgICByZXR1cm4gb3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldENvbnRlbnRSZXF1aXJlKCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIC8vIGNvbnN0IGJhc2VGb2xkZXIgPSB0aGlzLmNvbnRlbnRGb2xkZXI7XHJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxSZXF1aXJlID0gdGhpcy5vcmlnaW5hbFJlcXVpcmU7XHJcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG1vZHVsZSwgZmlsZW5hbWUpIHtcclxuICAgICAgICAgICAgY29uc3QgcG9zc2libGVQYXRoID0gcGF0aC5yZXNvbHZlKHNlbGYuY29udGVudEZvbGRlciwgcGF0aC5iYXNlbmFtZShmaWxlbmFtZSkpO1xyXG4gICAgICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocG9zc2libGVQYXRoKSB8fCBmaWxlbmFtZSAhPT0gZnMucmVhbHBhdGhTeW5jKHBvc3NpYmxlUGF0aCkpIHJldHVybiBSZWZsZWN0LmFwcGx5KG9yaWdpbmFsUmVxdWlyZSwgdGhpcywgYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgbGV0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZW5hbWUsIFwidXRmOFwiKTtcclxuICAgICAgICAgICAgY29udGVudCA9IFV0aWxpdGllcy5zdHJpcEJPTShjb250ZW50KTtcclxuICAgICAgICAgICAgY29uc3QgbWV0YSA9IHNlbGYuZXh0cmFjdE1ldGEoY29udGVudCk7XHJcbiAgICAgICAgICAgIG1ldGEuaWQgPSBtZXRhLm5hbWU7XHJcbiAgICAgICAgICAgIG1ldGEuZmlsZW5hbWUgPSBwYXRoLmJhc2VuYW1lKGZpbGVuYW1lKTtcclxuICAgICAgICAgICAgY29udGVudCA9IHNlbGYuZ2V0Q29udGVudE1vZGlmaWNhdGlvbihtb2R1bGUsIGNvbnRlbnQsIG1ldGEpO1xyXG4gICAgICAgICAgICBtb2R1bGUuX2NvbXBpbGUoY29udGVudCwgZmlsZW5hbWUpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU3ViY2xhc3NlcyBzaG91bGQgdXNlIHRoZSByZXR1cm4gKGlmIG5vdCBDb250ZW50RXJyb3IpIGFuZCBwdXNoIHRvIHRoaXMuY29udGVudExpc3RcclxuICAgIGxvYWRDb250ZW50KGZpbGVuYW1lLCBzaG91bGRUb2FzdCA9IGZhbHNlKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZihmaWxlbmFtZSkgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcclxuICAgICAgICB0cnkge19fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHBhdGgucmVzb2x2ZSh0aGlzLmNvbnRlbnRGb2xkZXIsIGZpbGVuYW1lKSk7fVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge3JldHVybiBuZXcgQ29udGVudEVycm9yKGZpbGVuYW1lLCBmaWxlbmFtZSwgXCJDb3VsZCBub3QgYmUgY29tcGlsZWQuXCIsIHttZXNzYWdlOiBlcnJvci5tZXNzYWdlLCBzdGFjazogZXJyb3Iuc3RhY2t9KTt9XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHBhdGgucmVzb2x2ZSh0aGlzLmNvbnRlbnRGb2xkZXIsIGZpbGVuYW1lKSk7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udGVudExpc3QuZmluZChjID0+IGMuaWQgPT0gY29udGVudC5pZCkpIHJldHVybiBuZXcgQ29udGVudEVycm9yKGNvbnRlbnQubmFtZSwgZmlsZW5hbWUsIGBUaGVyZSBpcyBhbHJlYWR5IGEgcGx1Z2luIHdpdGggbmFtZSAke2NvbnRlbnQubmFtZX1gKTtcclxuICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMuaW5pdGlhbGl6ZUNvbnRlbnQoY29udGVudCk7XHJcbiAgICAgICAgaWYgKGVycm9yKSByZXR1cm4gZXJyb3I7XHJcbiAgICAgICAgdGhpcy5jb250ZW50TGlzdC5wdXNoKGNvbnRlbnQpO1xyXG4gICAgICAgIGlmIChzaG91bGRUb2FzdCkgVG9hc3RzLnN1Y2Nlc3MoYCR7Y29udGVudC5uYW1lfSB2JHtjb250ZW50LnZlcnNpb259IHdhcyBsb2FkZWQuYCk7XHJcbiAgICAgICAgdGhpcy5lbWl0KFwibG9hZGVkXCIsIGNvbnRlbnQuaWQpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29udGVudC5pZF0pIHJldHVybiB0aGlzLnN0YXRlW2NvbnRlbnQuaWRdID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRDb250ZW50KGNvbnRlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHVubG9hZENvbnRlbnQoaWRPckZpbGVPckNvbnRlbnQsIHNob3VsZFRvYXN0ID0gdHJ1ZSwgaXNSZWxvYWQgPSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0eXBlb2YoaWRPckZpbGVPckNvbnRlbnQpID09IFwic3RyaW5nXCIgPyB0aGlzLmNvbnRlbnRMaXN0LmZpbmQoYyA9PiBjLmlkID09IGlkT3JGaWxlT3JDb250ZW50IHx8IGMuZmlsZW5hbWUgPT0gaWRPckZpbGVPckNvbnRlbnQpIDogaWRPckZpbGVPckNvbnRlbnQ7XHJcbiAgICAgICAgaWYgKCFjb250ZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGVbY29udGVudC5pZF0pIGlzUmVsb2FkID8gdGhpcy5zdG9wQ29udGVudChjb250ZW50KSA6IHRoaXMuZGlzYWJsZUNvbnRlbnQoY29udGVudCk7XHJcbiAgICAgICAgZGVsZXRlIF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fLmNhY2hlW19fbm9uX3dlYnBhY2tfcmVxdWlyZV9fLnJlc29sdmUocGF0aC5yZXNvbHZlKHRoaXMuY29udGVudEZvbGRlciwgY29udGVudC5maWxlbmFtZSkpXTtcclxuICAgICAgICB0aGlzLmNvbnRlbnRMaXN0LnNwbGljZSh0aGlzLmNvbnRlbnRMaXN0LmluZGV4T2YoY29udGVudCksIDEpO1xyXG4gICAgICAgIHRoaXMuZW1pdChcInVubG9hZGVkXCIsIGNvbnRlbnQuaWQpO1xyXG4gICAgICAgIGlmIChzaG91bGRUb2FzdCkgVG9hc3RzLnN1Y2Nlc3MoYCR7Y29udGVudC5uYW1lfSB3YXMgdW5sb2FkZWQuYCk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVsb2FkQ29udGVudChpZE9yRmlsZU9yQ29udGVudCwgc2hvdWxkVG9hc3QgPSB0cnVlKSB7XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IHR5cGVvZihpZE9yRmlsZU9yQ29udGVudCkgPT0gXCJzdHJpbmdcIiA/IHRoaXMuY29udGVudExpc3QuZmluZChjID0+IGMuaWQgPT0gaWRPckZpbGVPckNvbnRlbnQgfHwgYy5maWxlbmFtZSA9PSBpZE9yRmlsZU9yQ29udGVudCkgOiBpZE9yRmlsZU9yQ29udGVudDtcclxuICAgICAgICBjb25zdCBkaWRVbmxvYWQgPSB0aGlzLnVubG9hZENvbnRlbnQoY29udGVudCwgc2hvdWxkVG9hc3QsIHRydWUpO1xyXG4gICAgICAgIGlmICghZGlkVW5sb2FkKSByZXR1cm4gZGlkVW5sb2FkO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRDb250ZW50KGNvbnRlbnQuZmlsZW5hbWUsIHNob3VsZFRvYXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBpc0xvYWRlZChpZE9yRmlsZSkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNvbnRlbnRMaXN0LmZpbmQoYyA9PiBjLmlkID09IGlkT3JGaWxlIHx8IGMuZmlsZW5hbWUgPT0gaWRPckZpbGUpO1xyXG4gICAgICAgIGlmICghY29udGVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRW5hYmxlZChpZE9yRmlsZSkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNvbnRlbnRMaXN0LmZpbmQoYyA9PiBjLmlkID09IGlkT3JGaWxlIHx8IGMuZmlsZW5hbWUgPT0gaWRPckZpbGUpO1xyXG4gICAgICAgIGlmICghY29udGVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlW2NvbnRlbnQuaWRdO1xyXG4gICAgfVxyXG5cclxuICAgIGVuYWJsZUNvbnRlbnQoaWRPckNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gdHlwZW9mKGlkT3JDb250ZW50KSA9PSBcInN0cmluZ1wiID8gdGhpcy5jb250ZW50TGlzdC5maW5kKHAgPT4gcC5pZCA9PSBpZE9yQ29udGVudCkgOiBpZE9yQ29udGVudDtcclxuICAgICAgICBpZiAoIWNvbnRlbnQpIHJldHVybjtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZVtjb250ZW50LmlkXSkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuc3RhdGVbY29udGVudC5pZF0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRDb250ZW50KGNvbnRlbnQpO1xyXG4gICAgICAgIHRoaXMuc2F2ZVN0YXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzYWJsZUNvbnRlbnQoaWRPckNvbnRlbnQpIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gdHlwZW9mKGlkT3JDb250ZW50KSA9PSBcInN0cmluZ1wiID8gdGhpcy5jb250ZW50TGlzdC5maW5kKHAgPT4gcC5pZCA9PSBpZE9yQ29udGVudCkgOiBpZE9yQ29udGVudDtcclxuICAgICAgICBpZiAoIWNvbnRlbnQpIHJldHVybjtcclxuICAgICAgICBpZiAoIXRoaXMuc3RhdGVbY29udGVudC5pZF0pIHJldHVybjtcclxuICAgICAgICB0aGlzLnN0YXRlW2NvbnRlbnQuaWRdID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdG9wQ29udGVudChjb250ZW50KTtcclxuICAgICAgICB0aGlzLnNhdmVTdGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZUNvbnRlbnQoaWQpIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZVtpZF0pIHRoaXMuZGlzYWJsZUNvbnRlbnQoaWQpO1xyXG4gICAgICAgIGVsc2UgdGhpcy5lbmFibGVDb250ZW50KGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkTmV3Q29udGVudCgpIHtcclxuICAgICAgICBjb25zdCBmaWxlcyA9IGZzLnJlYWRkaXJTeW5jKHRoaXMuY29udGVudEZvbGRlcik7XHJcbiAgICAgICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMuY29udGVudExpc3QuZmlsdGVyKHQgPT4gIWZpbGVzLmluY2x1ZGVzKHQuZmlsZW5hbWUpKS5tYXAoYyA9PiBjLmlkKTtcclxuICAgICAgICBjb25zdCBhZGRlZCA9IGZpbGVzLmZpbHRlcihmID0+ICF0aGlzLmNvbnRlbnRMaXN0LmZpbmQodCA9PiB0LmZpbGVuYW1lID09IGYpICYmIGYuZW5kc1dpdGgodGhpcy5leHRlbnNpb24pICYmIGZzLnN0YXRTeW5jKHBhdGgucmVzb2x2ZSh0aGlzLmNvbnRlbnRGb2xkZXIsIGYpKS5pc0ZpbGUoKSk7XHJcbiAgICAgICAgcmV0dXJuIHthZGRlZCwgcmVtb3ZlZH07XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlTGlzdCgpIHtcclxuICAgICAgICBjb25zdCByZXN1bHRzID0gdGhpcy5sb2FkTmV3Q29udGVudCgpO1xyXG4gICAgICAgIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgcmVzdWx0cy5hZGRlZCkgdGhpcy5sb2FkQ29udGVudChmaWxlbmFtZSk7XHJcbiAgICAgICAgZm9yIChjb25zdCBuYW1lIG9mIHJlc3VsdHMucmVtb3ZlZCkgdGhpcy51bmxvYWRDb250ZW50KG5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRBbGxDb250ZW50KCkge1xyXG4gICAgICAgIHRoaXMubG9hZFN0YXRlKCk7XHJcbiAgICAgICAgY29uc3QgZXJyb3JzID0gW107XHJcbiAgICAgICAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyh0aGlzLmNvbnRlbnRGb2xkZXIpO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZpbGVzKSB7XHJcbiAgICAgICAgICAgIGlmICghZnMuc3RhdFN5bmMocGF0aC5yZXNvbHZlKHRoaXMuY29udGVudEZvbGRlciwgZmlsZW5hbWUpKS5pc0ZpbGUoKSB8fCAhZmlsZW5hbWUuZW5kc1dpdGgodGhpcy5leHRlbnNpb24pKSBjb250aW51ZTtcclxuICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMubG9hZENvbnRlbnQoZmlsZW5hbWUsIGZhbHNlKTtcclxuICAgICAgICAgICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBDb250ZW50RXJyb3IpIGVycm9ycy5wdXNoKGNvbnRlbnQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zYXZlU3RhdGUoKTtcclxuICAgICAgICBpZiAoU2V0dGluZ3MuZ2V0KHRoaXMuY29sbGVjdGlvbiwgdGhpcy5jYXRlZ29yeSwgdGhpcy5pZCkpIHRoaXMud2F0Y2hDb250ZW50KCk7XHJcbiAgICAgICAgcmV0dXJuIGVycm9ycztcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/contentmanager.js\n");
/***/ }),
/***/ "./src/modules/core.js":
/*!*****************************!*\
!*** ./src/modules/core.js ***!
\*****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bdv2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bdv2 */ \"./src/modules/bdv2.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _dommanager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dommanager */ \"./src/modules/dommanager.js\");\n/* harmony import */ var _pluginmanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony import */ var _thememanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./thememanager */ \"./src/modules/thememanager.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var builtins__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! builtins */ \"./src/builtins/builtins.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n\n\n // import EmoteModule from \"./emotes\";\n// import QuickEmoteMenu from \"../builtins/emotemenu\";\n\n\n\n\n\n\n\n\nfunction Core() {}\n\nCore.prototype.setConfig = function (config) {\n Object.assign(data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"], config);\n};\n\nCore.prototype.init = async function () {\n if (data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version < data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].minSupportedVersion) {\n ui__WEBPACK_IMPORTED_MODULE_8__[\"Modals\"].alert(\"Not Supported\", \"BetterDiscord v\" + data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version + \" (your version)\" + \" is not supported by the latest js (\" + data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].bbdVersion + \").<br><br> Please download the latest version from <a href='https://github.com/rauenzi/BetterDiscordApp/releases/latest' target='_blank'>GitHub</a>\");\n return;\n }\n\n const latestLocalVersion = data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].updater ? data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].updater.LatestVersion : data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].latestVersion;\n\n if (latestLocalVersion > data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version) {\n ui__WEBPACK_IMPORTED_MODULE_8__[\"Modals\"].alert(\"Update Available\", `\n An update for BandagedBD is available (${latestLocalVersion})! Please Reinstall!<br /><br />\n <a href='https://github.com/rauenzi/BetterDiscordApp/releases/latest' target='_blank'>Download Installer</a>\n `);\n }\n\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing Settings\");\n _settingsmanager__WEBPACK_IMPORTED_MODULE_6__[\"default\"].initialize();\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing EmoteModule\"); // window.emotePromise = EmoteModule.init().then(() => {\n // EmoteModule.initialized = true;\n // Utilities.log(\"Startup\", \"Initializing QuickEmoteMenu\");\n // Events.dispatch(\"emotes-loaded\");\n // // QuickEmoteMenu.init();\n // });\n // this.injectExternals();\n\n _dommanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"].initialize();\n await this.checkForGuilds();\n _bdv2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].initialize();\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Updating Settings\");\n\n for (const module in builtins__WEBPACK_IMPORTED_MODULE_7__) builtins__WEBPACK_IMPORTED_MODULE_7__[module].initialize();\n\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Plugins\");\n const pluginErrors = _pluginmanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"].loadAllPlugins();\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Themes\");\n const themeErrors = _thememanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].loadAllThemes(); // $(\"#customcss\").detach().appendTo(document.head);\n // PublicServers.initialize();\n // EmoteModule.autoCapitalize();\n\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Removing Loading Icon\");\n document.getElementsByClassName(\"bd-loaderv2\")[0].remove();\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing Main Observer\");\n this.initObserver(); // Show loading errors\n\n _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Collecting Startup Errors\");\n ui__WEBPACK_IMPORTED_MODULE_8__[\"Modals\"].showContentErrors({\n plugins: pluginErrors,\n themes: themeErrors\n });\n};\n\nCore.prototype.checkForGuilds = function () {\n return new Promise(resolve => {\n const checkForGuilds = function () {\n const wrapper = _bdv2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].guildClasses.wrapper.split(\" \")[0];\n const guild = _bdv2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].guildClasses.listItem.split(\" \")[0];\n const blob = _bdv2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].guildClasses.blobContainer.split(\" \")[0];\n if (document.querySelectorAll(`.${wrapper} .${guild} .${blob}`).length > 0) return resolve(data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].deferLoaded = true);\n setTimeout(checkForGuilds, 100);\n };\n\n $(document).ready(function () {\n setTimeout(checkForGuilds, 100);\n });\n });\n};\n\nCore.prototype.initObserver = function () {\n const mainObserver = new MutationObserver(mutations => {\n for (let i = 0, mlen = mutations.length; i < mlen; i++) {\n const mutation = mutations[i]; // if there was nothing added, skip\n\n if (!mutation.addedNodes.length || !(mutation.addedNodes[0] instanceof Element)) continue;\n const node = mutation.addedNodes[0];\n\n if (node.classList.contains(\"layer-3QrUeG\")) {\n if (node.getElementsByClassName(\"guild-settings-base-section\").length) node.setAttribute(\"layer-id\", \"server-settings\"); // if (node.getElementsByClassName(\"socialLinks-3jqNFy\").length) {\n // node.setAttribute(\"layer-id\", \"user-settings\");\n // node.setAttribute(\"id\", \"user-settings\");\n // if (!document.getElementById(\"bd-settings-sidebar\")) Settings.renderSidebar();\n // }\n }\n }\n });\n mainObserver.observe(document, {\n childList: true,\n subtree: true\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new Core());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvY29yZS5qcz9iNmRlIl0sIm5hbWVzIjpbIkNvcmUiLCJwcm90b3R5cGUiLCJzZXRDb25maWciLCJjb25maWciLCJPYmplY3QiLCJhc3NpZ24iLCJDb25maWciLCJpbml0IiwidmVyc2lvbiIsIm1pblN1cHBvcnRlZFZlcnNpb24iLCJNb2RhbHMiLCJhbGVydCIsImJiZFZlcnNpb24iLCJsYXRlc3RMb2NhbFZlcnNpb24iLCJ1cGRhdGVyIiwiTGF0ZXN0VmVyc2lvbiIsImxhdGVzdFZlcnNpb24iLCJVdGlsaXRpZXMiLCJsb2ciLCJTZXR0aW5ncyIsImluaXRpYWxpemUiLCJET01NYW5hZ2VyIiwiY2hlY2tGb3JHdWlsZHMiLCJCRFYyIiwibW9kdWxlIiwiQnVpbHRpbnMiLCJwbHVnaW5FcnJvcnMiLCJQbHVnaW5NYW5hZ2VyIiwibG9hZEFsbFBsdWdpbnMiLCJ0aGVtZUVycm9ycyIsIlRoZW1lTWFuYWdlciIsImxvYWRBbGxUaGVtZXMiLCJkb2N1bWVudCIsImdldEVsZW1lbnRzQnlDbGFzc05hbWUiLCJyZW1vdmUiLCJpbml0T2JzZXJ2ZXIiLCJzaG93Q29udGVudEVycm9ycyIsInBsdWdpbnMiLCJ0aGVtZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsIndyYXBwZXIiLCJndWlsZENsYXNzZXMiLCJzcGxpdCIsImd1aWxkIiwibGlzdEl0ZW0iLCJibG9iIiwiYmxvYkNvbnRhaW5lciIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJsZW5ndGgiLCJkZWZlckxvYWRlZCIsInNldFRpbWVvdXQiLCIkIiwicmVhZHkiLCJtYWluT2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwibXV0YXRpb25zIiwiaSIsIm1sZW4iLCJtdXRhdGlvbiIsImFkZGVkTm9kZXMiLCJFbGVtZW50Iiwibm9kZSIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwic2V0QXR0cmlidXRlIiwib2JzZXJ2ZSIsImNoaWxkTGlzdCIsInN1YnRyZWUiXSwi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QUFULENBQW9CLENBQXBCLGFBQWtDQyxPQUFwQyxDQUFuQyxFQUFpRjtBQUVqRixZQUFNQyxJQUFJLEdBQUdILFFBQVEsQ0FBQ0MsVUFBVCxDQUFvQixDQUFwQixDQUFiOztBQUVBLFVBQUlFLElBQUksQ0FBQ0MsU0FBTCxDQUFlQyxRQUFmLENBQXdCLGNBQXhCLENBQUosRUFBNkM7QUFDekMsWUFBSUYsSUFBSSxDQUFDN0Isc0JBQUwsQ0FBNEIsNkJBQTVCLEVBQTJEZ0IsTUFBL0QsRUFBdUVhLElBQUksQ0FBQ0csWUFBTCxDQUFrQixVQUFsQixFQUE4QixpQkFBOUIsRUFEOUIsQ0FHekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNIO0FBQ0o7QUFDSixHQXBCb0IsQ0FBckI7QUFzQkFYLGNBQVksQ0FBQ1ksT0FBYixDQUFxQmxDLFFBQXJCLEVBQStCO0FBQzNCbUMsYUFBUyxFQUFFLElBRGdCO0FBRTNCQyxXQUFPLEVBQUU7QUFGa0IsR0FBL0I7QUFJSCxDQTNCRDs7QUE4QmUsbUVBQUlwRSxJQUFKLEVBQWYiLCJmaWxlIjoiLi9zcmMvbW9kdWxlcy9jb3JlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJEVjIgZnJvbSBcIi4vYmR2MlwiO1xyXG5pbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuL3V0aWxpdGllc1wiO1xyXG5pbXBvcnQge0NvbmZpZ30gZnJvbSBcImRhdGFcIjtcclxuLy8gaW1wb3J0IEVtb3RlTW9kdWxlIGZyb20gXCIuL2Vtb3Rlc1wiO1xyXG4vLyBpbXBvcnQgUXVpY2tFbW90ZU1lbnUgZnJvbSBcIi4uL2J1aWx0aW5zL2Vtb3RlbWVudVwiO1xyXG5pbXBvcnQgRE9NTWFuYWdlciBmcm9tIFwiLi9kb21tYW5hZ2VyXCI7XHJcbmltcG9ydCBQbHVnaW5NYW5hZ2VyIGZyb20gXCIuL3BsdWdpbm1hbmFnZXJcIjtcclxuaW1wb3J0IFRoZW1lTWFuYWdlciBmcm9tIFwiLi90aGVtZW1hbmFnZXJcIjtcclxuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuL3NldHRpbmdzbWFuYWdlclwiO1xyXG5pbXBvcnQgKiBhcyBCdWlsdGlucyBmcm9tIFwiYnVpbHRpbnNcIjtcclxuaW1wb3J0IHtNb2RhbHN9IGZyb20gXCJ1aVwiO1xyXG5cclxuZnVuY3Rpb24gQ29yZSgpIHtcclxufVxyXG5cclxuQ29yZS5wcm90b3R5cGUuc2V0Q29uZmlnID0gZnVuY3Rpb24oY29uZmlnKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKENvbmZpZywgY29uZmlnKTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLmluaXQgPSBhc3luYyBmdW5jdGlvbigpIHtcclxuICAgIGlmIChDb25maWcudmVyc2lvbiA8IENvbmZpZy5taW5TdXBwb3J0ZWRWZXJzaW9uKSB7XHJcbiAgICAgICAgTW9kYWxzLmFsZXJ0KFwiTm90IFN1cHBvcnRlZFwiLCBcIkJldHRlckRpc2NvcmQgdlwiICsgQ29uZmlnLnZlcnNpb24gKyBcIiAoeW91ciB2ZXJzaW9uKVwiICsgXCIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgbGF0ZXN0IGpzIChcIiArIENvbmZpZy5iYmRWZXJzaW9uICsgXCIpLjxicj48YnI+IFBsZWFzZSBkb3dubG9hZCB0aGUgbGF0ZXN0IHZlcnNpb24gZnJvbSA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20vcmF1ZW56aS9CZXR0ZXJEaXNjb3JkQXBwL3JlbGVhc2VzL2xhdGVzdCcgdGFyZ2V0PSdfYmxhbmsnPkdpdEh1YjwvYT5cIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGxhdGVzdExvY2FsVmVyc2lvbiA9IENvbmZpZy51cGRhdGVyID8gQ29uZmlnLnVwZGF0ZXIuTGF0ZXN0VmVyc2lvbiA6IENvbmZpZy5sYXRlc3RWZXJzaW9uO1xyXG4gICAgaWYgKGxhdGVzdExvY2FsVmVyc2lvbiA+IENvbmZpZy52ZXJzaW9uKSB7XHJcbiAgICAgICAgTW9kYWxzLmFsZXJ0KFwiVXBkYXRlIEF2YWlsYWJsZVwiLCBgXHJcbiAgICAgICAgICAgIEFuIHVwZGF0ZSBmb3IgQmFuZGFnZWRCRCBpcyBhdmFpbGFibGUgKCR7bGF0ZXN0TG9jYWxWZXJzaW9ufSkhIFBsZWFzZSBSZWluc3RhbGwhPGJyIC8+PGJyIC8+XHJcbiAgICAgICAgICAgIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS9yYXVlbnppL0JldHRlckRpc2NvcmRBcHAvcmVsZWFzZXMvbGF0ZXN0JyB0YXJnZXQ9J19ibGFuayc+RG93bmxvYWQgSW5zdGFsbGVyPC9hPlxyXG4gICAgICAgIGApO1xyXG4gICAgfVxyXG5cclxuICAgIFV0aWxpdGllcy5sb2coXCJTdGFydHVwXCIsIFwiSW5pdGlhbGl6aW5nIFNldHRpbmdzXCIpO1xyXG4gICAgU2V0dGluZ3MuaW5pdGlhbGl6ZSgpO1xyXG4gICAgVXRpbGl0aWVzLmxvZyhcIlN0YXJ0dXBcIiwgXCJJbml0aWFsaXppbmcgRW1vdGVNb2R1bGVcIik7XHJcbiAgICAvLyB3aW5kb3cuZW1vdGVQcm9taXNlID0gRW1vdGVNb2R1bGUuaW5pdCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgLy8gICAgIEVtb3RlTW9kdWxlLmluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgIC8vICAgICBVdGlsaXRpZXMubG9nKFwiU3RhcnR1cFwiLCBcIkluaXRpYWxpemluZyBRdWlja0Vtb3RlTWVudVwiKTtcclxuICAgIC8vICAgICBFdmVudHMuZGlzcGF0Y2goXCJlbW90ZXMtbG9hZGVkXCIpO1xyXG4gICAgLy8gICAgIC8vIFF1aWNrRW1vdGVNZW51LmluaXQoKTtcclxuICAgIC8vIH0pO1xyXG5cclxuICAgIC8vIHRoaXMuaW5qZWN0RXh0ZXJuYWxzKCk7XHJcblxyXG4gICAgRE9NTWFuYWdlci5pbml0aWFsaXplKCk7XHJcbiAgICBhd2FpdCB0aGlzLmNoZWNrRm9yR3VpbGRzKCk7XHJcbiAgICBCRFYyLmluaXRpYWxpemUoKTtcclxuICAgIFV0aWxpdGllcy5sb2coXCJTdGFydHVwXCIsIFwiVXBkYXRpbmcgU2V0dGluZ3NcIik7XHJcbiAgICBmb3IgKGNvbnN0IG1vZHVsZSBpbiBCdWlsdGlucykgQnVpbHRpbnNbbW9kdWxlXS5pbml0aWFsaXplKCk7XHJcblxyXG4gICAgVXRpbGl0aWVzLmxvZyhcIlN0YXJ0dXBcIiwgXCJMb2FkaW5nIFBsdWdpbnNcIik7XHJcbiAgICBjb25zdCBwbHVnaW5FcnJvcnMgPSBQbHVnaW5NYW5hZ2VyLmxvYWRBbGxQbHVnaW5zKCk7XHJcblxyXG4gICAgVXRpbGl0aWVzLmxvZyhcIlN0YXJ0dXBcIiwgXCJMb2FkaW5nIFRoZW1lc1wiKTtcclxuICAgIGNvbnN0IHRoZW1lRXJyb3JzID0gVGhlbWVNYW5hZ2VyLmxvYWRBbGxUaGVtZXMoKTtcclxuXHJcbiAgICAvLyAkKFwiI2N1c3RvbWNzc1wiKS5kZXRhY2goKS5hcHBlbmRUbyhkb2N1bWVudC5oZWFkKTtcclxuXHJcbiAgICAvLyBQdWJsaWNTZXJ2ZXJzLmluaXRpYWxpemUoKTtcclxuICAgIC8vIEVtb3RlTW9kdWxlLmF1dG9DYXBpdGFsaXplKCk7XHJcblxyXG4gICAgVXRpbGl0aWVzLmxvZyhcIlN0YXJ0dXBcIiwgXCJSZW1vdmluZyBMb2FkaW5nIEljb25cIik7XHJcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiYmQtbG9hZGVydjJcIilbMF0ucmVtb3ZlKCk7XHJcbiAgICBVdGlsaXRpZXMubG9nKFwiU3RhcnR1cFwiLCBcIkluaXRpYWxpemluZyBNYWluIE9ic2VydmVyXCIpO1xyXG4gICAgdGhpcy5pbml0T2JzZXJ2ZXIoKTtcclxuXHJcbiAgICAvLyBTaG93IGxvYWRpbmcgZXJyb3JzXHJcbiAgICBVdGlsaXRpZXMubG9nKFwiU3RhcnR1cFwiLCBcIkNvbGxlY3RpbmcgU3RhcnR1cCBFcnJvcnNcIik7XHJcbiAgICBNb2RhbHMuc2hvd0NvbnRlbnRFcnJvcnMoe3BsdWdpbnM6IHBsdWdpbkVycm9ycywgdGhlbWVzOiB0aGVtZUVycm9yc30pO1xyXG59O1xyXG5cclxuQ29yZS5wcm90b3R5cGUuY2hlY2tGb3JHdWlsZHMgPSBmdW5jdGlvbigpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgICBjb25zdCBjaGVja0Zvckd1aWxkcyA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyID0gQkRWMi5ndWlsZENsYXNzZXMud3JhcHBlci5zcGxpdChcIiBcIilbMF07XHJcbiAgICAgICAgICAgIGNvbnN0IGd1aWxkID0gQkRWMi5ndWlsZENsYXNzZXMubGlzdEl0ZW0uc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgICAgICBjb25zdCBibG9iID0gQkRWMi5ndWlsZENsYXNzZXMuYmxvYkNvbnRhaW5lci5zcGxpdChcIiBcIilbMF07XHJcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGAuJHt3cmFwcGVyfSAuJHtndWlsZH0gLiR7YmxvYn1gKS5sZW5ndGggPiAwKSByZXR1cm4gcmVzb2x2ZShDb25maWcuZGVmZXJMb2FkZWQgPSB0cnVlKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dChjaGVja0Zvckd1aWxkcywgMTAwKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dChjaGVja0Zvckd1aWxkcywgMTAwKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG59O1xyXG5cclxuQ29yZS5wcm90b3R5cGUuaW5pdE9ic2VydmVyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgY29uc3QgbWFpbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbWxlbiA9IG11dGF0aW9ucy5sZW5ndGg7IGkgPCBtbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgbXV0YXRpb24gPSBtdXRhdGlvbnNbaV07XHJcblxyXG4gICAgICAgICAgICAvLyBpZiB0aGVyZSB3YXMgbm90aGluZyBhZGRlZCwgc2tpcFxyXG4gICAgICAgICAgICBpZiAoIW11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoIHx8ICEobXV0YXRpb24uYWRkZWROb2Rlc1swXSBpbnN0YW5jZW9mIEVsZW1lbnQpKSBjb250aW51ZTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBtdXRhdGlvbi5hZGRlZE5vZGVzWzBdO1xyXG5cclxuICAgICAgICAgICAgaWYgKG5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKFwibGF5ZXItM1FyVWVHXCIpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiZ3VpbGQtc2V0dGluZ3MtYmFzZS1zZWN0aW9uXCIpLmxlbmd0aCkgbm9kZS5zZXRBdHRyaWJ1dGUoXCJsYXllci1pZFwiLCBcInNlcnZlci1zZXR0aW5nc1wiKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBpZiAobm9kZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwic29jaWFsTGlua3MtM2pxTkZ5XCIpLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibGF5ZXItaWRcIiwgXCJ1c2VyLXNldHRpbmdzXCIpO1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIG5vZGUuc2V0QXR0cmlidXRlKFwiaWRcIiwgXCJ1c2VyLXNldHRpbmdzXCIpO1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJiZC1zZXR0aW5ncy1zaWRlYmFyXCIpKSBTZXR0aW5ncy5yZW5kZXJTaWRlYmFyKCk7XHJcbiAgICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBtYWluT2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudCwge1xyXG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcclxuICAgICAgICBzdWJ0cmVlOiB0cnVlXHJcbiAgICB9KTtcclxufTtcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgQ29yZSgpOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/core.js\n");
/***/ }),
/***/ "./src/modules/datastore.js":
/*!**********************************!*\
!*** ./src/modules/datastore.js ***!
\**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nconst releaseChannel = DiscordNative.globals.releaseChannel; // Schema 1\n// =======================\n// %appdata%\\BetterDiscord\n// -> data\\\n// -> [releaseChannel].json (stable/canary/ptb)\n// Schema 2\n// =======================\n// %appdata%\\BetterDiscord\n// -> data\n// -> [releaseChannel]\\ (stable/canary/ptb)\n// -> settings.json\n// -> plugins.json\n// -> themes.json\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class DataStore {\n constructor() {\n this.data = {\n misc: {}\n };\n this.pluginData = {};\n }\n\n initialize() {\n if (!fs.existsSync(this.baseFolder)) fs.mkdirSync(this.baseFolder);\n if (!fs.existsSync(this.dataFolder)) fs.mkdirSync(this.dataFolder);\n if (!fs.existsSync(this.BDFile)) fs.writeFileSync(this.BDFile, JSON.stringify(this.data.misc, null, 4));\n if (!fs.existsSync(this.customCSS)) fs.writeFileSync(this.customCSS, \"\");\n const dataFiles = fs.readdirSync(this.dataFolder).filter(f => !fs.statSync(path.resolve(this.dataFolder, f)).isDirectory() && f.endsWith(\".json\"));\n\n for (const file of dataFiles) {\n this.data[file.split(\".\")[0]] = require(path.resolve(this.dataFolder, file));\n } // this.data = __non_webpack_require__(this.BDFile);\n // if (data.hasOwnProperty(\"settings\")) this.data = data;\n // if (!fs.existsSync(this.settingsFile)) return;\n // let settings = __non_webpack_require__(this.settingsFile);\n // fs.unlinkSync(this.settingsFile);\n // if (settings.hasOwnProperty(\"settings\")) settings = Object.assign({stable: {}, canary: {}, ptb: {}}, {[releaseChannel]: settings});\n // else settings = Object.assign({stable: {}, canary: {}, ptb: {}}, settings);\n // this.setBDData(\"settings\", settings);\n\n }\n\n get customCSS() {\n return this._customCSS || (this._customCSS = path.resolve(this.dataFolder, \"custom.css\"));\n }\n\n get baseFolder() {\n return this._baseFolder || (this._baseFolder = path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"data\"));\n }\n\n get dataFolder() {\n return this._dataFolder || (this._dataFolder = path.resolve(this.baseFolder, `${releaseChannel}`));\n }\n\n get BDFile() {\n return this._BDFile || (this._BDFile = path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"data\", `${releaseChannel}.json`));\n } // get settingsFile() {return this._settingsFile || (this._settingsFile = path.resolve(Config.dataPath, \"bdsettings.json\"));}\n\n\n getPluginFile(pluginName) {\n return path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"plugins\", pluginName + \".config.json\");\n } // getSettingGroup(key) {\n // return this.data.settings[key] || null;\n // }\n // setSettingGroup(key, data) {\n // this.data.settings[key] = data;\n // fs.writeFileSync(this.BDFile, JSON.stringify(this.data, null, 4));\n // }\n\n\n _getFile(key) {\n if (key == \"settings\" || key == \"plugins\" || key == \"themes\") return path.resolve(this.dataFolder, `${key}.json`);\n return path.resolve(this.dataFolder, `misc.json`);\n }\n\n getBDData(key) {\n return this.data.misc[key] || \"\";\n }\n\n setBDData(key, value) {\n this.data.misc[key] = value;\n fs.writeFileSync(path.resolve(this.dataFolder, `misc.json`), JSON.stringify(this.data.misc, null, 4));\n }\n\n getData(key) {\n return this.data[key] || \"\"; // return JSON.parse(fs.readFileSync(path.resolve(this.dataFolder, `${file}.json`)));\n }\n\n setData(key, value) {\n this.data[key] = value; // fs.writeFileSync(this.BDFile, JSON.stringify(this.data, null, 4));\n\n fs.writeFileSync(path.resolve(this.dataFolder, `${key}.json`), JSON.stringify(value, null, 4));\n }\n\n loadCustomCSS() {\n return fs.readFileSync(this.customCSS).toString();\n }\n\n saveCustomCSS(css) {\n return fs.writeFileSync(this.customCSS, css);\n }\n\n getPluginData(pluginName, key) {\n if (this.pluginData[pluginName] !== undefined) return this.pluginData[pluginName][key] || undefined;\n if (!fs.existsSync(this.getPluginFile(pluginName))) return undefined;\n this.pluginData[pluginName] = JSON.parse(fs.readFileSync(this.getPluginFile(pluginName)));\n return this.pluginData[pluginName][key] || undefined;\n }\n\n setPluginData(pluginName, key, value) {\n if (value === undefined) return;\n if (this.pluginData[pluginName] === undefined) this.pluginData[pluginName] = {};\n this.pluginData[pluginName][key] = value;\n fs.writeFileSync(this.getPluginFile(pluginName), JSON.stringify(this.pluginData[pluginName], null, 4));\n }\n\n deletePluginData(pluginName, key) {\n if (this.pluginData[pluginName] === undefined) this.pluginData[pluginName] = {};\n delete this.pluginData[pluginName][key];\n fs.writeFileSync(this.getPluginFile(pluginName), JSON.stringify(this.pluginData[pluginName], null, 4));\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvZGF0YXN0b3JlLmpzPzEwNTIiXSwibmFtZXMiOlsiZnMiLCJyZXF1aXJlIiwicGF0aCIsInJlbGVhc2VDaGFubmVsIiwiRGlzY29yZE5hdGl2ZSIsImdsb2JhbHMiLCJEYXRhU3RvcmUiLCJjb25zdHJ1Y3RvciIsImRhdGEiLCJtaXNjIiwicGx1Z2luRGF0YSIsImluaXRpYWxpemUiLCJleGlzdHNTeW5jIiwiYmFzZUZvbGRlciIsIm1rZGlyU3luYyIsImRhdGFGb2xkZXIiLCJCREZpbGUiLCJ3cml0ZUZpbGVTeW5jIiwiSlNPTiIsInN0cmluZ2lmeSIsImN1c3RvbUNTUyIsImRhdGFGaWxlcyIsInJlYWRkaXJTeW5jIiwiZmlsdGVyIiwiZiIsInN0YXRTeW5jIiwicmVzb2x2ZSIsImlzRGlyZWN0b3J5IiwiZW5kc1dpdGgiLCJmaWxlIiwic3BsaXQiLCJfX25vbl93ZWJwYWNrX3JlcXVpcmVfXyIsIl9jdXN0b21DU1MiLCJfYmFzZUZvbGRlciIsIkNvbmZpZyIsImRhdGFQYXRoIiwiX2RhdGFGb2xkZXIiLCJfQkRGaWxlIiwiZ2V0UGx1Z2luRmlsZSIsInBsdWdpbk5hbWUiLCJfZ2V0RmlsZSIsImtleSIsImdldEJERGF0YSIsInNldEJERGF0YSIsInZhbHVlIiwiZ2V0RGF0YSIsInNldERhdGEiLCJsb2FkQ3VzdG9tQ1NTIiwicmVhZEZpbGVTeW5jIiwidG9TdHJpbmciLCJzYXZlQ3VzdG9tQ1NTIiwiY3NzIiwiZ2V0UGx1Z2luRGF0YSIsInVuZGVmaW5lZCIsInBhcnNlIiwic2V0UGx1Z2luRGF0YSIsImRlbGV0ZVBsdWdpbkRhdGEiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTs7QUFDQSxNQUFNQSxFQUFFLEdBQUdDLG1CQUFPLENBQUMsY0FBRCxDQUFsQjs7QUFDQSxNQUFNQyxJQUFJLEdBQUdELG1CQUFPLENBQUMsa0JBQUQsQ0FBcEI7O0FBQ0EsTUFBTUUsY0FBYyxHQUFHQyxhQUFhLENBQUNDLE9BQWQsQ0FBc0JGLGNBQTdDLEMsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZSxtRUFBSSxNQUFNRyxTQUFOLENBQWdCO0FBQy9CQyxhQUFXLEdBQUc7QUFDVixTQUFLQyxJQUFMLEdBQVk7QUFBQ0MsVUFBSSxFQUFFO0FBQVAsS0FBWjtBQUNBLFNBQUtDLFVBQUwsR0FBa0IsRUFBbEI7QUFDSDs7QUFFREMsWUFBVSxHQUFHO0FBQ1QsUUFBSSxDQUFDWCxFQUFFLENBQUNZLFVBQUgsQ0FBYyxLQUFLQyxVQUFuQixDQUFMLEVBQXFDYixFQUFFLENBQUNjLFNBQUgsQ0FBYSxLQUFLRCxVQUFsQjtBQUNyQyxRQUFJLENBQUNiLEVBQUUsQ0FBQ1ksVUFBSCxDQUFjLEtBQUtHLFVBQW5CLENBQUwsRUFBcUNmLEVBQUUsQ0FBQ2MsU0FBSCxDQUFhLEtBQUtDLFVBQWxCO0FBQ3JDLFFBQUksQ0FBQ2YsRUFBRSxDQUFDWSxVQUFILENBQWMsS0FBS0ksTUFBbkIsQ0FBTCxFQUFpQ2hCLEVBQUUsQ0FBQ2lCLGFBQUgsQ0FBaUIsS0FBS0QsTUFBdEIsRUFBOEJFLElBQUksQ0FBQ0MsU0FBTCxDQUFlLEtBQUtYLElBQUwsQ0FBVUMsSUFBekIsRUFBK0IsSUFBL0IsRUFBcUMsQ0FBckMsQ0FBOUI7QUFDakMsUUFBSSxDQUFDVCxFQUFFLENBQUNZLFVBQUgsQ0FBYyxLQUFLUSxTQUFuQixDQUFMLEVBQW9DcEIsRUFBRSxDQUFDaUIsYUFBSCxDQUFpQixLQUFLRyxTQUF0QixFQUFpQyxFQUFqQztBQUNwQyxVQUFNQyxTQUFTLEdBQUdyQixFQUFFLENBQUNzQixXQUFILENBQWUsS0FBS1AsVUFBcEIsRUFBZ0NRLE1BQWhDLENBQXVDQyxDQUFDLElBQUksQ0FBQ3hCLEVBQUUsQ0FBQ3lCLFFBQUgsQ0FBWXZCLElBQUksQ0FBQ3dCLE9BQUwsQ0FBYSxLQUFLWCxVQUFsQixFQUE4QlMsQ0FBOUIsQ0FBWixFQUE4Q0csV0FBOUMsRUFBRCxJQUFnRUgsQ0FBQyxDQUFDSSxRQUFGLENBQVcsT0FBWCxDQUE1RyxDQUFsQjs7QUFDQSxTQUFLLE1BQU1DLElBQVgsSUFBbUJSLFNBQW5CLEVBQThCO0FBQzFCLFdBQUtiLElBQUwsQ0FBVXFCLElBQUksQ0FBQ0MsS0FBTCxDQUFXLEdBQVgsRUFBZ0IsQ0FBaEIsQ0FBVixJQUFnQ0MsT0FBdUIsQ0FBQzdCLElBQUksQ0FBQ3dCLE9BQUwsQ0FBYSxLQUFLWCxVQUFsQixFQUE4QmMsSUFBOUIsQ0FBRCxDQUF2RDtBQUNILEtBUlEsQ0FTVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNIOztBQUVELE1BQUlULFNBQUosR0FBZ0I7QUFBQyxXQUFPLEtBQUtZLFVBQUwsS0FBb0IsS0FBS0EsVUFBTCxHQUFrQjlCLElBQUksQ0FBQ3dCLE9BQUwsQ0FBYSxLQUFLWCxVQUFsQixFQUE4QixZQUE5QixDQUF0QyxDQUFQO0FBQTJGOztBQUM1RyxNQUFJRixVQUFKLEdBQWlCO0FBQUMsV0FBTyxLQUFLb0IsV0FBTCxLQUFxQixLQUFLQSxXQUFMLEdBQW1CL0IsSUFBSSxDQUFDd0IsT0FBTCxDQUFhUSwyQ0FBTSxDQUFDQyxRQUFwQixFQUE4QixNQUE5QixDQUF4QyxDQUFQO0FBQXVGOztBQUN6RyxNQUFJcEIsVUFBSixHQUFpQjtBQUFDLFdBQU8sS0FBS3FCLFdBQUwsS0FBcUIsS0FBS0EsV0FBTCxHQUFtQmxDLElBQUksQ0FBQ3dCLE9BQUwsQ0FBYSxLQUFLYixVQUFsQixFQUErQixHQUFFVixjQUFlLEVBQWhELENBQXhDLENBQVA7QUFBb0c7O0FBQ3RILE1BQUlhLE1BQUosR0FBYTtBQUFDLFdBQU8sS0FBS3FCLE9BQUwsS0FBaUIsS0FBS0EsT0FBTCxHQUFlbkMsSUFBSSxDQUFDd0IsT0FBTCxDQUFhUSwyQ0FBTSxDQUFDQyxRQUFwQixFQUE4QixNQUE5QixFQUF1QyxHQUFFaEMsY0FBZSxPQUF4RCxDQUFoQyxDQUFQO0FBQXlHLEdBNUJ4RixDQTZCL0I7OztBQUNBbUMsZUFBYSxDQUFDQyxVQUFELEVBQWE7QUFBQyxXQUFPckMsSUFBSSxDQUFDd0IsT0FBTCxDQUFhUSwyQ0FBTSxDQUFDQyxRQUFwQixFQUE4QixTQUE5QixFQUF5Q0ksVUFBVSxHQUFHLGNBQXRELENBQVA7QUFBOEUsR0E5QjFFLENBZ0MvQjtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRUFDLFVBQVEsQ0FBQ0MsR0FBRCxFQUFNO0FBQ1YsUUFBSUEsR0FBRyxJQUFJLFVBQVAsSUFBcUJBLEdBQUcsSUFBSSxTQUE1QixJQUF5Q0EsR0FBRyxJQUFJLFFBQXBELEVBQThELE9BQU92QyxJQUFJLENBQUN3QixPQUFMLENBQWEsS0FBS1gsVUFBbEIsRUFBK0IsR0FBRTBCLEdBQUksT0FBckMsQ0FBUDtBQUM5RCxXQUFPdkMsSUFBSSxDQUFDd0IsT0FBTCxDQUFhLEtBQUtYLFVBQWxCLEVBQStCLFdBQS9CLENBQVA7QUFDSDs7QUFFRDJCLFdBQVMsQ0FBQ0QsR0FBRCxFQUFNO0FBQ1gsV0FBTyxLQUFLakMsSUFBTCxDQUFVQyxJQUFWLENBQWVnQyxHQUFmLEtBQXVCLEVBQTlCO0FBQ0g7O0FBRURFLFdBQVMsQ0FBQ0YsR0FBRCxFQUFNRyxLQUFOLEVBQWE7QUFDbEIsU0FBS3BDLElBQUwsQ0FBVUMsSUFBVixDQUFlZ0MsR0FBZixJQUFzQkcsS0FBdEI7QUFDQTVDLE1BQUUsQ0FBQ2lCLGFBQUgsQ0FBaUJmLElBQUksQ0FBQ3dCLE9BQUwsQ0FBYSxLQUFLWCxVQUFsQixFQUErQixXQUEvQixDQUFqQixFQUE2REcsSUFBSSxDQUFDQyxTQUFMLENBQWUsS0FBS1gsSUFBTCxDQUFVQyxJQUF6QixFQUErQixJQUEvQixFQUFxQyxDQUFyQyxDQUE3RDtBQUNIOztBQUVEb0MsU0FBTyxDQUFDSixHQUFELEVBQU07QUFDVCxXQUFPLEtBQUtqQyxJQUFMLENBQVVpQyxHQUFWLEtBQWtCLEVBQXpCLENBRFMsQ0FFVDtBQUNIOztBQUVESyxTQUFPLENBQUNMLEdBQUQsRUFBTUcsS0FBTixFQUFhO0FBQ2hCLFNBQUtwQyxJQUFMLENBQVVpQyxHQUFWLElBQWlCRyxLQUFqQixDQURnQixDQUVoQjs7QUFDQTVDLE1BQUUsQ0FBQ2lCLGFBQUgsQ0FBaUJmLElBQUksQ0FBQ3dCLE9BQUwsQ0FBYSxLQUFLWCxVQUFsQixFQUErQixHQUFFMEIsR0FBSSxPQUFyQyxDQUFqQixFQUErRHZCLElBQUksQ0FBQ0MsU0FBTCxDQUFleUIsS0FBZixFQUFzQixJQUF0QixFQUE0QixDQUE1QixDQUEvRDtBQUNIOztBQUVERyxlQUFhLEdBQUc7QUFDWixXQUFPL0MsRUFBRSxDQUFDZ0QsWUFBSCxDQUFnQixLQUFLNUIsU0FBckIsRUFBZ0M2QixRQUFoQyxFQUFQO0FBQ0g7O0FBRURDLGVBQWEsQ0FBQ0MsR0FBRCxFQUFNO0FBQ2YsV0FBT25ELEVBQUUsQ0FBQ2lCLGFBQUgsQ0FBaUIsS0FBS0csU0FBdEIsRUFBaUMrQixHQUFqQyxDQUFQO0FBQ0g7O0FBRURDLGVBQWEsQ0FBQ2IsVUFBRCxFQUFhRSxHQUFiLEVBQWtCO0FBQzNCLFFBQUksS0FBSy9CLFVBQUwsQ0FBZ0I2QixVQUFoQixNQUFnQ2MsU0FBcEMsRUFBK0MsT0FBTyxLQUFLM0MsVUFBTCxDQUFnQjZCLFVBQWhCLEVBQTRCRSxHQUE1QixLQUFvQ1ksU0FBM0M7QUFDL0MsUUFBSSxDQUFDckQsRUFBRSxDQUFDWSxVQUFILENBQWMsS0FBSzBCLGFBQUwsQ0FBbUJDLFVBQW5CLENBQWQsQ0FBTCxFQUFvRCxPQUFPYyxTQUFQO0FBQ3BELFNBQUszQyxVQUFMLENBQWdCNkIsVUFBaEIsSUFBOEJyQixJQUFJLENBQUNvQyxLQUFMLENBQVd0RCxFQUFFLENBQUNnRCxZQUFILENBQWdCLEtBQUtWLGFBQUwsQ0FBbUJDLFVBQW5CLENBQWhCLENBQVgsQ0FBOUI7QUFDQSxXQUFPLEtBQUs3QixVQUFMLENBQWdCNkIsVUFBaEIsRUFBNEJFLEdBQTVCLEtBQW9DWSxTQUEzQztBQUNIOztBQUVERSxlQUFhLENBQUNoQixVQUFELEVBQWFFLEdBQWIsRUFBa0JHLEtBQWxCLEVBQXlCO0FBQ2xDLFFBQUlBLEtBQUssS0FBS1MsU0FBZCxFQUF5QjtBQUN6QixRQUFJLEtBQUszQyxVQUFMLENBQWdCNkIsVUFBaEIsTUFBZ0NjLFNBQXBDLEVBQStDLEtBQUszQyxVQUFMLENBQWdCNkIsVUFBaEIsSUFBOEIsRUFBOUI7QUFDL0MsU0FBSzdCLFVBQUwsQ0FBZ0I2QixVQUFoQixFQUE0QkUsR0FBNUIsSUFBbUNHLEtBQW5DO0FBQ0E1QyxNQUFFLENBQUNpQixhQUFILENBQWlCLEtBQUtxQixhQUFMLENBQW1CQyxVQUFuQixDQUFqQixFQUFpRHJCLElBQUksQ0FBQ0MsU0FBTCxDQUFlLEtBQUtULFVBQUwsQ0FBZ0I2QixVQUFoQixDQUFmLEVBQTRDLElBQTVDLEVBQWtELENBQWxELENBQWpEO0FBQ0g7O0FBRURpQixrQkFBZ0IsQ0FBQ2pCLFVBQUQsRUFBYUUsR0FBYixFQUFrQjtBQUM5QixRQUFJLEtBQUsvQixVQUFMLENBQWdCNkIsVUFBaEIsTUFBZ0NjLFNBQXBDLEVBQStDLEtBQUszQyxVQUFMLENBQWdCNkIsVUFBaEIsSUFBOEIsRUFBOUI7QUFDL0MsV0FBTyxLQUFLN0IsVUFBTCxDQUFnQjZCLFVBQWhCLEVBQTRCRSxHQUE1QixDQUFQO0FBQ0F6QyxNQUFFLENBQUNpQixhQUFILENBQWlCLEtBQUtxQixhQUFMLENBQW1CQyxVQUFuQixDQUFqQixFQUFpRHJCLElBQUksQ0FBQ0MsU0FBTCxDQUFlLEtBQUtULFVBQUwsQ0FBZ0I2QixVQUFoQixDQUFmLEVBQTRDLElBQTVDLEVBQWtELENBQWxELENBQWpEO0FBQ0g7O0FBNUY4QixDQUFwQixFQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvZGF0YXN0b3JlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmNvbnN0IGZzID0gcmVxdWlyZShcImZzXCIpO1xyXG5jb25zdCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XHJcbmNvbnN0IHJlbGVhc2VDaGFubmVsID0gRGlzY29yZE5hdGl2ZS5nbG9iYWxzLnJlbGVhc2VDaGFubmVsO1xyXG5cclxuLy8gU2NoZW1hIDFcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gJWFwcGRhdGElXFxCZXR0ZXJEaXNjb3JkXHJcbi8vICAgICAtPiBkYXRhXFxcclxuLy8gICAgICAgICAtPiBbcmVsZWFzZUNoYW5uZWxdLmpzb24gKHN0YWJsZS9jYW5hcnkvcHRiKVxyXG5cclxuLy8gU2NoZW1hIDJcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gJWFwcGRhdGElXFxCZXR0ZXJEaXNjb3JkXHJcbi8vICAgICAtPiBkYXRhXHJcbi8vICAgICAgICAgLT4gW3JlbGVhc2VDaGFubmVsXVxcIChzdGFibGUvY2FuYXJ5L3B0YilcclxuLy8gICAgICAgICAgICAgLT4gc2V0dGluZ3MuanNvblxyXG4vLyAgICAgICAgICAgICAtPiBwbHVnaW5zLmpzb25cclxuLy8gICAgICAgICAgICAgLT4gdGhlbWVzLmpzb25cclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBEYXRhU3RvcmUge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhID0ge21pc2M6IHt9fTtcclxuICAgICAgICB0aGlzLnBsdWdpbkRhdGEgPSB7fTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplKCkge1xyXG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLmJhc2VGb2xkZXIpKSBmcy5ta2RpclN5bmModGhpcy5iYXNlRm9sZGVyKTtcclxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5kYXRhRm9sZGVyKSkgZnMubWtkaXJTeW5jKHRoaXMuZGF0YUZvbGRlcik7XHJcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuQkRGaWxlKSkgZnMud3JpdGVGaWxlU3luYyh0aGlzLkJERmlsZSwgSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhLm1pc2MsIG51bGwsIDQpKTtcclxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5jdXN0b21DU1MpKSBmcy53cml0ZUZpbGVTeW5jKHRoaXMuY3VzdG9tQ1NTLCBcIlwiKTtcclxuICAgICAgICBjb25zdCBkYXRhRmlsZXMgPSBmcy5yZWFkZGlyU3luYyh0aGlzLmRhdGFGb2xkZXIpLmZpbHRlcihmID0+ICFmcy5zdGF0U3luYyhwYXRoLnJlc29sdmUodGhpcy5kYXRhRm9sZGVyLCBmKSkuaXNEaXJlY3RvcnkoKSAmJiBmLmVuZHNXaXRoKFwiLmpzb25cIikpO1xyXG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBkYXRhRmlsZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhW2ZpbGUuc3BsaXQoXCIuXCIpWzBdXSA9IF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHBhdGgucmVzb2x2ZSh0aGlzLmRhdGFGb2xkZXIsIGZpbGUpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gdGhpcy5kYXRhID0gX19ub25fd2VicGFja19yZXF1aXJlX18odGhpcy5CREZpbGUpO1xyXG4gICAgICAgIC8vIGlmIChkYXRhLmhhc093blByb3BlcnR5KFwic2V0dGluZ3NcIikpIHRoaXMuZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgLy8gaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuc2V0dGluZ3NGaWxlKSkgcmV0dXJuO1xyXG4gICAgICAgIC8vIGxldCBzZXR0aW5ncyA9IF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHRoaXMuc2V0dGluZ3NGaWxlKTtcclxuICAgICAgICAvLyBmcy51bmxpbmtTeW5jKHRoaXMuc2V0dGluZ3NGaWxlKTtcclxuICAgICAgICAvLyBpZiAoc2V0dGluZ3MuaGFzT3duUHJvcGVydHkoXCJzZXR0aW5nc1wiKSkgc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKHtzdGFibGU6IHt9LCBjYW5hcnk6IHt9LCBwdGI6IHt9fSwge1tyZWxlYXNlQ2hhbm5lbF06IHNldHRpbmdzfSk7XHJcbiAgICAgICAgLy8gZWxzZSBzZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe3N0YWJsZToge30sIGNhbmFyeToge30sIHB0Yjoge319LCBzZXR0aW5ncyk7XHJcbiAgICAgICAgLy8gdGhpcy5zZXRCRERhdGEoXCJzZXR0aW5nc1wiLCBzZXR0aW5ncyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGN1c3RvbUNTUygpIHtyZXR1cm4gdGhpcy5fY3VzdG9tQ1NTIHx8ICh0aGlzLl9jdXN0b21DU1MgPSBwYXRoLnJlc29sdmUodGhpcy5kYXRhRm9sZGVyLCBcImN1c3RvbS5jc3NcIikpO31cclxuICAgIGdldCBiYXNlRm9sZGVyKCkge3JldHVybiB0aGlzLl9iYXNlRm9sZGVyIHx8ICh0aGlzLl9iYXNlRm9sZGVyID0gcGF0aC5yZXNvbHZlKENvbmZpZy5kYXRhUGF0aCwgXCJkYXRhXCIpKTt9XHJcbiAgICBnZXQgZGF0YUZvbGRlcigpIHtyZXR1cm4gdGhpcy5fZGF0YUZvbGRlciB8fCAodGhpcy5fZGF0YUZvbGRlciA9IHBhdGgucmVzb2x2ZSh0aGlzLmJhc2VGb2xkZXIsIGAke3JlbGVhc2VDaGFubmVsfWApKTt9XHJcbiAgICBnZXQgQkRGaWxlKCkge3JldHVybiB0aGlzLl9CREZpbGUgfHwgKHRoaXMuX0JERmlsZSA9IHBhdGgucmVzb2x2ZShDb25maWcuZGF0YVBhdGgsIFwiZGF0YVwiLCBgJHtyZWxlYXNlQ2hhbm5lbH0uanNvbmApKTt9XHJcbiAgICAvLyBnZXQgc2V0dGluZ3NGaWxlKCkge3JldHVybiB0aGlzLl9zZXR0aW5nc0ZpbGUgfHwgKHRoaXMuX3NldHRpbmdzRmlsZSA9IHBhdGgucmVzb2x2ZShDb25maWcuZGF0YVBhdGgsIFwiYmRzZXR0aW5ncy5qc29uXCIpKTt9XHJcbiAgICBnZXRQbHVnaW5GaWxlKHBsdWdpbk5hbWUpIHtyZXR1cm4gcGF0aC5yZXNvbHZlKENvbmZpZy5kYXRhUGF0aCwgXCJwbHVnaW5zXCIsIHBsdWdpbk5hbWUgKyBcIi5jb25maWcuanNvblwiKTt9XHJcblxyXG4gICAgLy8gZ2V0U2V0dGluZ0dyb3VwKGtleSkge1xyXG4gICAgLy8gICAgIHJldHVybiB0aGlzLmRhdGEuc2V0dGluZ3Nba2V5XSB8fCBudWxsO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIHNldFNldHRpbmdHcm91cChrZXksIGRhdGEpIHtcclxuICAgIC8vICAgICB0aGlzLmRhdGEuc2V0dGluZ3Nba2V5XSA9IGRhdGE7XHJcbiAgICAvLyAgICAgZnMud3JpdGVGaWxlU3luYyh0aGlzLkJERmlsZSwgSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhLCBudWxsLCA0KSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgX2dldEZpbGUoa2V5KSB7XHJcbiAgICAgICAgaWYgKGtleSA9PSBcInNldHRpbmdzXCIgfHwga2V5ID09IFwicGx1Z2luc1wiIHx8IGtleSA9PSBcInRoZW1lc1wiKSByZXR1cm4gcGF0aC5yZXNvbHZlKHRoaXMuZGF0YUZvbGRlciwgYCR7a2V5fS5qc29uYCk7XHJcbiAgICAgICAgcmV0dXJuIHBhdGgucmVzb2x2ZSh0aGlzLmRhdGFGb2xkZXIsIGBtaXNjLmpzb25gKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRCRERhdGEoa2V5KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5taXNjW2tleV0gfHwgXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBzZXRCRERhdGEoa2V5LCB2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuZGF0YS5taXNjW2tleV0gPSB2YWx1ZTtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGgucmVzb2x2ZSh0aGlzLmRhdGFGb2xkZXIsIGBtaXNjLmpzb25gKSwgSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhLm1pc2MsIG51bGwsIDQpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXRhKGtleSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFba2V5XSB8fCBcIlwiO1xyXG4gICAgICAgIC8vIHJldHVybiBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwYXRoLnJlc29sdmUodGhpcy5kYXRhRm9sZGVyLCBgJHtmaWxlfS5qc29uYCkpKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXREYXRhKGtleSwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLmRhdGFba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgIC8vIGZzLndyaXRlRmlsZVN5bmModGhpcy5CREZpbGUsIEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YSwgbnVsbCwgNCkpO1xyXG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5yZXNvbHZlKHRoaXMuZGF0YUZvbGRlciwgYCR7a2V5fS5qc29uYCksIEpTT04uc3RyaW5naWZ5KHZhbHVlLCBudWxsLCA0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZEN1c3RvbUNTUygpIHtcclxuICAgICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKHRoaXMuY3VzdG9tQ1NTKS50b1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVDdXN0b21DU1MoY3NzKSB7XHJcbiAgICAgICAgcmV0dXJuIGZzLndyaXRlRmlsZVN5bmModGhpcy5jdXN0b21DU1MsIGNzcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGx1Z2luRGF0YShwbHVnaW5OYW1lLCBrZXkpIHtcclxuICAgICAgICBpZiAodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdICE9PSB1bmRlZmluZWQpIHJldHVybiB0aGlzLnBsdWdpbkRhdGFbcGx1Z2luTmFtZV1ba2V5XSB8fCB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuZ2V0UGx1Z2luRmlsZShwbHVnaW5OYW1lKSkpIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmModGhpcy5nZXRQbHVnaW5GaWxlKHBsdWdpbk5hbWUpKSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXVtrZXldIHx8IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBzZXRQbHVnaW5EYXRhKHBsdWdpbk5hbWUsIGtleSwgdmFsdWUpIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG4gICAgICAgIGlmICh0aGlzLnBsdWdpbkRhdGFbcGx1Z2luTmFtZV0gPT09IHVuZGVmaW5lZCkgdGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdID0ge307XHJcbiAgICAgICAgdGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdW2tleV0gPSB2YWx1ZTtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuZ2V0UGx1Z2luRmlsZShwbHVnaW5OYW1lKSwgSlNPTi5zdHJpbmdpZnkodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdLCBudWxsLCA0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlUGx1Z2luRGF0YShwbHVnaW5OYW1lLCBrZXkpIHtcclxuICAgICAgICBpZiAodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdID09PSB1bmRlZmluZWQpIHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXSA9IHt9O1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLnBsdWdpbkRhdGFbcGx1Z2luTmFtZV1ba2V5XTtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuZ2V0UGx1Z2luRmlsZShwbHVnaW5OYW1lKSwgSlNPTi5zdHJpbmdpZnkodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdLCBudWxsLCA0KSk7XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/datastore.js\n");
/***/ }),
/***/ "./src/modules/dommanager.js":
/*!***********************************!*\
!*** ./src/modules/dommanager.js ***!
\***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return DOMManager; });\nclass DOMManager {\n static get bdHead() {\n return this.getElement(\"bd-head\");\n }\n\n static get bdBody() {\n return this.getElement(\"bd-body\");\n }\n\n static get bdStyles() {\n return this.getElement(\"bd-styles\");\n }\n\n static get bdThemes() {\n return this.getElement(\"bd-themes\");\n }\n\n static get bdCustomCSS() {\n return this.getElement(\"#customcss\");\n }\n\n static get bdTooltips() {\n return this.getElement(\"bd-tooltips\") || this.createElement(\"bd-tooltips\").appendTo(this.bdBody);\n }\n\n static get bdModals() {\n return this.getElement(\"bd-modals\") || this.createElement(\"bd-modals\").appendTo(this.bdBody);\n }\n\n static get bdToasts() {\n return this.getElement(\"bd-toasts\") || this.createElement(\"bd-toasts\").appendTo(this.bdBody);\n }\n\n static initialize() {\n this.createElement(\"bd-head\", {\n target: document.head\n });\n this.createElement(\"bd-body\", {\n target: document.body\n });\n this.createElement(\"bd-styles\", {\n target: this.bdHead\n });\n this.createElement(\"bd-themes\", {\n target: this.bdHead\n });\n this.createElement(\"style\", {\n id: \"customcss\",\n target: this.bdHead\n });\n }\n\n static getElement(e, baseElement = document) {\n if (e instanceof Node) return e;\n return baseElement.querySelector(e);\n }\n\n static createElement(tag, options = {}) {\n const {\n className,\n id,\n target\n } = options;\n const element = document.createElement(tag);\n if (className) element.className = className;\n if (id) element.id = id;\n if (target) this.getElement(target).append(element);\n return element;\n }\n\n static removeStyle(id) {\n const exists = this.getElement(id, this.bdStyles);\n if (exists) exists.remove();\n }\n\n static injectStyle(id, css) {\n const style = this.getElement(id, this.bdStyles) || this.createElement(\"style\", {\n id\n });\n style.textContent = css;\n this.bdStyles.append(style);\n }\n\n static removeTheme(id) {\n const exists = this.getElement(id, this.bdThemes);\n if (exists) exists.remove();\n }\n\n static injectTheme(id, css) {\n const style = this.getElement(id, this.bdThemes) || this.createElement(\"style\", {\n id\n });\n style.textContent = css;\n this.bdThemes.append(style);\n }\n\n static updateCustomCSS(css) {\n this.bdCustomCSS.textContent = css;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvZG9tbWFuYWdlci5qcz9jZDVjIl0sIm5hbWVzIjpbIkRPTU1hbmFnZXIiLCJiZEhlYWQiLCJnZXRFbGVtZW50IiwiYmRCb2R5IiwiYmRTdHlsZXMiLCJiZFRoZW1lcyIsImJkQ3VzdG9tQ1NTIiwiYmRUb29sdGlwcyIsImNyZWF0ZUVsZW1lbnQiLCJhcHBlbmRUbyIsImJkTW9kYWxzIiwiYmRUb2FzdHMiLCJpbml0aWFsaXplIiwidGFyZ2V0IiwiZG9jdW1lbnQiLCJoZWFkIiwiYm9keSIsImlkIiwiZSIsImJhc2VFbGVtZW50IiwiTm9kZSIsInF1ZXJ5U2VsZWN0b3IiLCJ0YWciLCJvcHRpb25zIiwiY2xhc3NOYW1lIiwiZWxlbWVudCIsImFwcGVuZCIsInJlbW92ZVN0eWxlIiwiZXhpc3RzIiwicmVtb3ZlIiwiaW5qZWN0U3R5bGUiLCJjc3MiLCJzdHlsZSIsInRleHRDb250ZW50IiwicmVtb3ZlVGhlbWUiLCJpbmplY3RUaGVtZSIsInVwZGF0ZUN1c3RvbUNTUyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFlLE1BQU1BLFVBQU4sQ0FBaUI7QUFFNUIsYUFBV0MsTUFBWCxHQUFvQjtBQUFFLFdBQU8sS0FBS0MsVUFBTCxDQUFnQixTQUFoQixDQUFQO0FBQW9DOztBQUMxRCxhQUFXQyxNQUFYLEdBQW9CO0FBQUUsV0FBTyxLQUFLRCxVQUFMLENBQWdCLFNBQWhCLENBQVA7QUFBb0M7O0FBQzFELGFBQVdFLFFBQVgsR0FBc0I7QUFBRSxXQUFPLEtBQUtGLFVBQUwsQ0FBZ0IsV0FBaEIsQ0FBUDtBQUFzQzs7QUFDOUQsYUFBV0csUUFBWCxHQUFzQjtBQUFFLFdBQU8sS0FBS0gsVUFBTCxDQUFnQixXQUFoQixDQUFQO0FBQXNDOztBQUM5RCxhQUFXSSxXQUFYLEdBQXlCO0FBQUUsV0FBTyxLQUFLSixVQUFMLENBQWdCLFlBQWhCLENBQVA7QUFBdUM7O0FBQ2xFLGFBQVdLLFVBQVgsR0FBd0I7QUFBRSxX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UUFBSXVCLE1BQUosRUFBWUEsTUFBTSxDQUFDQyxNQUFQO0FBQ2Y7O0FBRUQsU0FBT00sV0FBUCxDQUFtQmxCLEVBQW5CLEVBQXVCYyxHQUF2QixFQUE0QjtBQUN4QixVQUFNQyxLQUFLLEdBQUcsS0FBSzlCLFVBQUwsQ0FBZ0JlLEVBQWhCLEVBQW9CLEtBQUtaLFFBQXpCLEtBQXNDLEtBQUtHLGFBQUwsQ0FBbUIsT0FBbkIsRUFBNEI7QUFBQ1M7QUFBRCxLQUE1QixDQUFwRDtBQUNBZSxTQUFLLENBQUNDLFdBQU4sR0FBb0JGLEdBQXBCO0FBQ0EsU0FBSzFCLFFBQUwsQ0FBY3FCLE1BQWQsQ0FBcUJNLEtBQXJCO0FBQ0g7O0FBRUQsU0FBT0ksZUFBUCxDQUF1QkwsR0FBdkIsRUFBNEI7QUFDeEIsU0FBS3pCLFdBQUwsQ0FBaUIyQixXQUFqQixHQUErQkYsR0FBL0I7QUFDSDs7QUF6RDJCIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvZG9tbWFuYWdlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIERPTU1hbmFnZXIge1xyXG5cclxuICAgIHN0YXRpYyBnZXQgYmRIZWFkKCkgeyByZXR1cm4gdGhpcy5nZXRFbGVtZW50KFwiYmQtaGVhZFwiKTsgfVxyXG4gICAgc3RhdGljIGdldCBiZEJvZHkoKSB7IHJldHVybiB0aGlzLmdldEVsZW1lbnQoXCJiZC1ib2R5XCIpOyB9XHJcbiAgICBzdGF0aWMgZ2V0IGJkU3R5bGVzKCkgeyByZXR1cm4gdGhpcy5nZXRFbGVtZW50KFwiYmQtc3R5bGVzXCIpOyB9XHJcbiAgICBzdGF0aWMgZ2V0IGJkVGhlbWVzKCkgeyByZXR1cm4gdGhpcy5nZXRFbGVtZW50KFwiYmQtdGhlbWVzXCIpOyB9XHJcbiAgICBzdGF0aWMgZ2V0IGJkQ3VzdG9tQ1NTKCkgeyByZXR1cm4gdGhpcy5nZXRFbGVtZW50KFwiI2N1c3RvbWNzc1wiKTsgfVxyXG4gICAgc3RhdGljIGdldCBiZFRvb2x0aXBzKCkgeyByZXR1cm4gdGhpcy5nZXRFbGVtZW50KFwiYmQtdG9vbHRpcHNcIikgfHwgdGhpcy5jcmVhdGVFbGVtZW50KFwiYmQtdG9vbHRpcHNcIikuYXBwZW5kVG8odGhpcy5iZEJvZHkpOyB9XHJcbiAgICBzdGF0aWMgZ2V0IGJkTW9kYWxzKCkgeyByZXR1cm4gdGhpcy5nZXRFbGVtZW50KFwiYmQtbW9kYWxzXCIpIHx8IHRoaXMuY3JlYXRlRWxlbWVudChcImJkLW1vZGFsc1wiKS5hcHBlbmRUbyh0aGlzLmJkQm9keSk7IH1cclxuICAgIHN0YXRpYyBnZXQgYmRUb2FzdHMoKSB7IHJldHVybiB0aGlzLmdldEVsZW1lbnQoXCJiZC10b2FzdHNcIikgfHwgdGhpcy5jcmVhdGVFbGVtZW50KFwiYmQtdG9hc3RzXCIpLmFwcGVuZFRvKHRoaXMuYmRCb2R5KTsgfVxyXG5cclxuICAgIHN0YXRpYyBpbml0aWFsaXplKCkge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlRWxlbWVudChcImJkLWhlYWRcIiwge3RhcmdldDogZG9jdW1lbnQuaGVhZH0pO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlRWxlbWVudChcImJkLWJvZHlcIiwge3RhcmdldDogZG9jdW1lbnQuYm9keX0pO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlRWxlbWVudChcImJkLXN0eWxlc1wiLCB7dGFyZ2V0OiB0aGlzLmJkSGVhZH0pO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlRWxlbWVudChcImJkLXRoZW1lc1wiLCB7dGFyZ2V0OiB0aGlzLmJkSGVhZH0pO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlRWxlbWVudChcInN0eWxlXCIsIHtpZDogXCJjdXN0b21jc3NcIiwgdGFyZ2V0OiB0aGlzLmJkSGVhZH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRFbGVtZW50KGUsIGJhc2VFbGVtZW50ID0gZG9jdW1lbnQpIHtcclxuICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIE5vZGUpIHJldHVybiBlO1xyXG4gICAgICAgIHJldHVybiBiYXNlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBjcmVhdGVFbGVtZW50KHRhZywgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICAgICAgY29uc3Qge2NsYXNzTmFtZSwgaWQsIHRhcmdldH0gPSBvcHRpb25zO1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7XHJcbiAgICAgICAgaWYgKGNsYXNzTmFtZSkgZWxlbWVudC5jbGFzc05hbWUgPSBjbGFzc05hbWU7XHJcbiAgICAgICAgaWYgKGlkKSBlbGVtZW50LmlkID0gaWQ7XHJcbiAgICAgICAgaWYgKHRhcmdldCkgdGhpcy5nZXRFbGVtZW50KHRhcmdldCkuYXBwZW5kKGVsZW1lbnQpO1xyXG4gICAgICAgIHJldHVybiBlbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyByZW1vdmVTdHlsZShpZCkge1xyXG4gICAgICAgIGNvbnN0IGV4aXN0cyA9IHRoaXMuZ2V0RWxlbWVudChpZCwgdGhpcy5iZFN0eWxlcyk7XHJcbiAgICAgICAgaWYgKGV4aXN0cykgZXhpc3RzLnJlbW92ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpbmplY3RTdHlsZShpZCwgY3NzKSB7XHJcbiAgICAgICAgY29uc3Qgc3R5bGUgPSB0aGlzLmdldEVsZW1lbnQoaWQsIHRoaXMuYmRTdHlsZXMpIHx8IHRoaXMuY3JlYXRlRWxlbWVudChcInN0eWxlXCIsIHtpZH0pO1xyXG4gICAgICAgIHN0eWxlLnRleHRDb250ZW50ID0gY3NzO1xyXG4gICAgICAgIHRoaXMuYmRTdHlsZXMuYXBwZW5kKHN0eWxlKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcmVtb3ZlVGhlbWUoaWQpIHtcclxuICAgICAgICBjb25zdCBleGlzdHMgPSB0aGlzLmdldEVsZW1lbnQoaWQsIHRoaXMuYmRUaGVtZXMpO1xyXG4gICAgICAgIGlmIChleGlzdHMpIGV4aXN0cy5yZW1vdmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaW5qZWN0VGhlbWUoaWQsIGNzcykge1xyXG4gICAgICAgIGNvbnN0IHN0eWxlID0gdGhpcy5nZXRFbGVtZW50KGlkLCB0aGlzLmJkVGhlbWVzKSB8fCB0aGlzLmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiLCB7aWR9KTtcclxuICAgICAgICBzdHlsZS50ZXh0Q29udGVudCA9IGNzcztcclxuICAgICAgICB0aGlzLmJkVGhlbWVzLmFwcGVuZChzdHlsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHVwZGF0ZUN1c3RvbUNTUyhjc3MpIHtcclxuICAgICAgICB0aGlzLmJkQ3VzdG9tQ1NTLnRleHRDb250ZW50ID0gY3NzO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/dommanager.js\n");
/***/ }),
/***/ "./src/modules/emitter.js":
/*!********************************!*\
!*** ./src/modules/emitter.js ***!
\********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nconst EventEmitter = __webpack_require__(/*! events */ \"events\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class BDEvents extends EventEmitter {\n constructor() {\n super();\n this.setMaxListeners(20);\n }\n\n dispatch(eventName, ...args) {\n this.emit(eventName, ...args);\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvZW1pdHRlci5qcz9lOTNhIl0sIm5hbWVzIjpbIkV2ZW50RW1pdHRlciIsInJlcXVpcmUiLCJCREV2ZW50cyIsImNvbnN0cnVjdG9yIiwic2V0TWF4TGlzdGVuZXJzIiwiZGlzcGF0Y2giLCJldmVudE5hbWUiLCJhcmdzIiwiZW1pdCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQSxNQUFNQSxZQUFZLEdBQUdDLG1CQUFPLENBQUMsc0JBQUQsQ0FBNUI7O0FBQ2UsbUVBQUksTUFBTUMsUUFBTixTQUF1QkYsWUFBdkIsQ0FBb0M7QUFDbkRHLGFBQVcsR0FBRztBQUNWO0FBQ0EsU0FBS0MsZUFBTCxDQUFxQixFQUFyQjtBQUNIOztBQUNEQyxVQUFRLENBQUNDLFNBQUQsRUFBWSxHQUFHQyxJQUFmLEVBQXFCO0FBQ3pCLFNBQUtDLElBQUwsQ0FBVUYsU0FBVixFQUFxQixHQUFHQyxJQUF4QjtBQUNIOztBQVBrRCxDQUF4QyxFQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvZW1pdHRlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEV2ZW50RW1pdHRlciA9IHJlcXVpcmUoXCJldmVudHNcIik7XHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBCREV2ZW50cyBleHRlbmRzIEV2ZW50RW1pdHRlciB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuc2V0TWF4TGlzdGVuZXJzKDIwKTtcclxuICAgIH1cclxuICAgIGRpc3BhdGNoKGV2ZW50TmFtZSwgLi4uYXJncykge1xyXG4gICAgICAgIHRoaXMuZW1pdChldmVudE5hbWUsIC4uLmFyZ3MpO1xyXG4gICAgfVxyXG59OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/emitter.js\n");
/***/ }),
/***/ "./src/modules/modules.js":
/*!********************************!*\
!*** ./src/modules/modules.js ***!
\********************************/
/*! exports provided: React, ReactDOM, BDV2, BdApi, Core, ContentManager, DataStore, Events, PluginManager, DOMManager, ThemeManager, Utilities, WebpackModules, DiscordModules, Settings */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"React\", function() { return React; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ReactDOM\", function() { return ReactDOM; });\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Utilities\", function() { return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _webpackmodules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./webpackmodules */ \"./src/modules/webpackmodules.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"WebpackModules\", function() { return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DiscordModules\", function() { return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"]; });\n\n/* harmony import */ var _bdv2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./bdv2 */ \"./src/modules/bdv2.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BDV2\", function() { return _bdv2__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _pluginapi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pluginapi */ \"./src/modules/pluginapi.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BdApi\", function() { return _pluginapi__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./core */ \"./src/modules/core.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Core\", function() { return _core__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _contentmanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./contentmanager */ \"./src/modules/contentmanager.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ContentManager\", function() { return _contentmanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DataStore\", function() { return _datastore__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Events\", function() { return _emitter__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _pluginmanager__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PluginManager\", function() { return _pluginmanager__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _thememanager__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./thememanager */ \"./src/modules/thememanager.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ThemeManager\", function() { return _thememanager__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Settings\", function() { return _settingsmanager__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _dommanager__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./dommanager */ \"./src/modules/dommanager.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DOMManager\", function() { return _dommanager__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n\n\n\n\n\n\n // import DevMode from \"./devmode\";\n\n // import EmoteModule from \"./emotes\";\n\n // import PublicServers from \"./publicservers\";\n\n\n\n\nconst React = _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].React;\nconst ReactDOM = _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].ReactDOM;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvbW9kdWxlcy5qcz8xNGRiIl0sIm5hbWVzIjpbIlJlYWN0IiwiRGlzY29yZE1vZHVsZXMiLCJSZWFjdERPTSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFJQTtDQUVBOztDQUVBOztDQUVBOztBQUNBO0FBQ0E7QUFDQTtBQUVPLE1BQU1BLEtBQUssR0FBR0MsOERBQWMsQ0FBQ0QsS0FBN0I7QUFDQSxNQUFNRSxRQUFRLEdBQUdELDhEQUFjLENBQUNDLFFBQWhDIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvbW9kdWxlcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBVdGlsaXRpZXMgZnJvbSBcIi4vdXRpbGl0aWVzXCI7XHJcbmltcG9ydCBXZWJwYWNrTW9kdWxlcywge0Rpc2NvcmRNb2R1bGVzfSBmcm9tIFwiLi93ZWJwYWNrbW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IEJEVjIgZnJvbSBcIi4vYmR2MlwiO1xyXG5pbXBvcnQgQmRBcGkgZnJvbSBcIi4vcGx1Z2luYXBpXCI7XHJcbmltcG9ydCBDb3JlIGZyb20gXCIuL2NvcmVcIjtcclxuXHJcblxyXG5cclxuaW1wb3J0IENvbnRlbnRNYW5hZ2VyIGZyb20gXCIuL2NvbnRlbnRtYW5hZ2VyXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YXN0b3JlXCI7XHJcbi8vIGltcG9ydCBEZXZNb2RlIGZyb20gXCIuL2Rldm1vZGVcIjtcclxuaW1wb3J0IEV2ZW50cyBmcm9tIFwiLi9lbWl0dGVyXCI7XHJcbi8vIGltcG9ydCBFbW90ZU1vZHVsZSBmcm9tIFwiLi9lbW90ZXNcIjtcclxuaW1wb3J0IFBsdWdpbk1hbmFnZXIgZnJvbSBcIi4vcGx1Z2lubWFuYWdlclwiO1xyXG4vLyBpbXBvcnQgUHVibGljU2VydmVycyBmcm9tIFwiLi9wdWJsaWNzZXJ2ZXJzXCI7XHJcbmltcG9ydCBUaGVtZU1hbmFnZXIgZnJvbSBcIi4vdGhlbWVtYW5hZ2VyXCI7XHJcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5nc21hbmFnZXJcIjtcclxuaW1wb3J0IERPTU1hbmFnZXIgZnJvbSBcIi4vZG9tbWFuYWdlclwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFJlYWN0ID0gRGlzY29yZE1vZHVsZXMuUmVhY3Q7XHJcbmV4cG9ydCBjb25zdCBSZWFjdERPTSA9IERpc2NvcmRNb2R1bGVzLlJlYWN0RE9NO1xyXG5cclxuZXhwb3J0IHtCRFYyLCBCZEFwaSwgQ29yZSwgQ29udGVudE1hbmFnZXIsIERhdGFTdG9yZSxcclxuICAgICAgICBFdmVudHMsIFBsdWdpbk1hbmFnZXIsIERPTU1hbmFnZXIsIFRoZW1lTWFuYWdlcixcclxuICAgICAgICBVdGlsaXRpZXMsIFdlYnBhY2tNb2R1bGVzLCBEaXNjb3JkTW9kdWxlcywgU2V0dGluZ3N9O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/modules.js\n");
/***/ }),
/***/ "./src/modules/oldstorage.js":
/*!***********************************!*\
!*** ./src/modules/oldstorage.js ***!
\***********************************/
/*! exports provided: bdStorage, bdPluginStorage */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdStorage\", function() { return bdStorage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bdPluginStorage\", function() { return bdPluginStorage; });\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n\n\nclass bdStorage {\n static get(key) {\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].warn(\"Deprecation Notice\", \"Please use BdApi.getBDData(). bdStorage may be removed in future versions.\");\n return _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getBDData(key);\n }\n\n static set(key, data) {\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].warn(\"Deprecation Notice\", \"Please use BdApi.setBDData(). bdStorage may be removed in future versions.\");\n _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setBDData(key, data);\n }\n\n}\nclass bdPluginStorage {\n static get(pluginName, key) {\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].warn(\"Deprecation Notice\", `${pluginName}, please use BdApi.loadData() or BdApi.getData(). bdPluginStorage may be removed in future versions.`);\n return _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getPluginData(pluginName, key) || null;\n }\n\n static set(pluginName, key, data) {\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].warn(\"Deprecation Notice\", `${pluginName}, please use BdApi.saveData() or BdApi.setData(). bdPluginStorage may be removed in future versions.`);\n if (typeof data === \"undefined\") return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].warn(\"Deprecation Notice\", \"Trying to set undefined value in plugin \" + pluginName);\n _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setPluginData(pluginName, key, data);\n }\n\n static delete(pluginName, key) {\n _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].warn(\"Deprecation Notice\", `${pluginName}, please use BdApi.deleteData(). bdPluginStorage may be removed in future versions.`);\n _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].deletePluginData(pluginName, key);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvb2xkc3RvcmFnZS5qcz8zNDA4Il0sIm5hbWVzIjpbImJkU3RvcmFnZSIsImdldCIsImtleSIsIlV0aWxpdGllcyIsIndhcm4iLCJEYXRhU3RvcmUiLCJnZXRCRERhdGEiLCJzZXQiLCJkYXRhIiwic2V0QkREYXRhIiwiYmRQbHVnaW5TdG9yYWdlIiwicGx1Z2luTmFtZSIsImdldFBsdWdpbkRhdGEiLCJzZXRQbHVnaW5EYXRhIiwiZGVsZXRlIiwiZGVsZXRlUGx1Z2luRGF0YSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFTyxNQUFNQSxTQUFOLENBQWdCO0FBQ25CLFNBQU9DLEdBQVAsQ0FBV0MsR0FBWCxFQUFnQjtBQUNaQyxzREFBUyxDQUFDQyxJQUFWLENBQWUsb0JBQWYsRUFBcUMsNEVBQXJDO0FBQ0EsV0FBT0Msa0RBQVMsQ0FBQ0MsU0FBVixDQUFvQkosR0FBcEIsQ0FBUDtBQUNIOztBQUVELFNBQU9LLEdBQVAsQ0FBV0wsR0FBWCxFQUFnQk0sSUFBaEIsRUFBc0I7QUFDbEJMLHNEQUFTLENBQUNDLElBQVYsQ0FBZSxvQkFBZixFQUFxQyw0RUFBckM7QUFDQUMsc0RBQVMsQ0FBQ0ksU0FBVixDQUFvQlAsR0FBcEIsRUFBeUJNLElBQXpCO0FBQ0g7O0FBVGtCO0FBWWhCLE1BQU1FLGVBQU4sQ0FBc0I7QUFDekIsU0FBT1QsR0FBUCxDQUFXVSxVQUFYLEVBQXVCVCxHQUF2QixFQUE0QjtBQUN4QkMsc0RBQVMsQ0FBQ0MsSUFBVixDQUFlLG9CQUFmLEVBQXNDLEdBQUVPLFVBQVcsc0dBQW5EO0FBQ0EsV0FBT04sa0RBQVMsQ0FBQ08sYUFBVixDQUF3QkQsVUFBeEIsRUFBb0NULEdBQXBDLEtBQTRDLElBQW5EO0FBQ0g7O0FBRUQsU0FBT0ssR0FBUCxDQUFXSSxVQUFYLEVBQXVCVCxHQUF2QixFQUE0Qk0sSUFBNUIsRUFBa0M7QUFDOUJMLHNEQUFTLENBQUNDLElBQVYsQ0FBZSxvQkFBZixFQUFzQyxHQUFFTyxVQUFXLHNHQUFuRDtBQUNBLFFBQUksT0FBT0gsSUFBUCxLQUFpQixXQUFyQixFQUFrQyxPQUFPTCxrREFBUyxDQUFDQyxJQUFWLENBQWUsb0JBQWYsRUFBcUMsNkNBQTZDTyxVQUFsRixDQUFQO0FBQ2xDTixzREFBUyxDQUFDUSxhQUFWLENBQXdCRixVQUF4QixFQUFvQ1QsR0FBcEMsRUFBeUNNLElBQXpDO0FBQ0g7O0FBRUQsU0FBT00sTUFBUCxDQUFjSCxVQUFkLEVBQTBCVCxHQUExQixFQUErQjtBQUMzQkMsc0RBQVMsQ0FBQ0MsSUFBVixDQUFlLG9CQUFmLEVBQXNDLEdBQUVPLFVBQVcscUZBQW5EO0FBQ0FOLHNEQUFTLENBQUNVLGdCQUFWLENBQTJCSixVQUEzQixFQUF1Q1QsR0FBdkM7QUFDSDs7QUFmd0IiLCJmaWxlIjoiLi9zcmMvbW9kdWxlcy9vbGRzdG9yYWdlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFV0aWxpdGllcyBmcm9tIFwiLi91dGlsaXRpZXNcIjtcclxuaW1wb3J0IERhdGFTdG9yZSBmcm9tIFwiLi9kYXRhc3RvcmVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBiZFN0b3JhZ2Uge1xyXG4gICAgc3RhdGljIGdldChrZXkpIHtcclxuICAgICAgICBVdGlsaXRpZXMud2FybihcIkRlcHJlY2F0aW9uIE5vdGljZVwiLCBcIlBsZWFzZSB1c2UgQmRBcGkuZ2V0QkREYXRhKCkuIGJkU3RvcmFnZSBtYXkgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMuXCIpO1xyXG4gICAgICAgIHJldHVybiBEYXRhU3RvcmUuZ2V0QkREYXRhKGtleSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHNldChrZXksIGRhdGEpIHtcclxuICAgICAgICBVdGlsaXRpZXMud2FybihcIkRlcHJlY2F0aW9uIE5vdGljZVwiLCBcIlBsZWFzZSB1c2UgQmRBcGkuc2V0QkREYXRhKCkuIGJkU3RvcmFnZSBtYXkgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMuXCIpO1xyXG4gICAgICAgIERhdGFTdG9yZS5zZXRCRERhdGEoa2V5LCBkYXRhKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIGJkUGx1Z2luU3RvcmFnZSB7XHJcbiAgICBzdGF0aWMgZ2V0KHBsdWdpbk5hbWUsIGtleSkge1xyXG4gICAgICAgIFV0aWxpdGllcy53YXJuKFwiRGVwcmVjYXRpb24gTm90aWNlXCIsIGAke3BsdWdpbk5hbWV9LCBwbGVhc2UgdXNlIEJkQXBpLmxvYWREYXRhKCkgb3IgQmRBcGkuZ2V0RGF0YSgpLiBiZFBsdWdpblN0b3JhZ2UgbWF5IGJlIHJlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zLmApO1xyXG4gICAgICAgIHJldHVybiBEYXRhU3RvcmUuZ2V0UGx1Z2luRGF0YShwbHVnaW5OYW1lLCBrZXkpIHx8IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHNldChwbHVnaW5OYW1lLCBrZXksIGRhdGEpIHtcclxuICAgICAgICBVdGlsaXRpZXMud2FybihcIkRlcHJlY2F0aW9uIE5vdGljZVwiLCBgJHtwbHVnaW5OYW1lfSwgcGxlYXNlIHVzZSBCZEFwaS5zYXZlRGF0YSgpIG9yIEJkQXBpLnNldERhdGEoKS4gYmRQbHVnaW5TdG9yYWdlIG1heSBiZSByZW1vdmVkIGluIGZ1dHVyZSB2ZXJzaW9ucy5gKTtcclxuICAgICAgICBpZiAodHlwZW9mKGRhdGEpID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gVXRpbGl0aWVzLndhcm4oXCJEZXByZWNhdGlvbiBOb3RpY2VcIiwgXCJUcnlpbmcgdG8gc2V0IHVuZGVmaW5lZCB2YWx1ZSBpbiBwbHVnaW4gXCIgKyBwbHVnaW5OYW1lKTtcclxuICAgICAgICBEYXRhU3RvcmUuc2V0UGx1Z2luRGF0YShwbHVnaW5OYW1lLCBrZXksIGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBkZWxldGUocGx1Z2luTmFtZSwga2V5KSB7XHJcbiAgICAgICAgVXRpbGl0aWVzLndhcm4oXCJEZXByZWNhdGlvbiBOb3RpY2VcIiwgYCR7cGx1Z2luTmFtZX0sIHBsZWFzZSB1c2UgQmRBcGkuZGVsZXRlRGF0YSgpLiBiZFBsdWdpblN0b3JhZ2UgbWF5IGJlIHJlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zLmApO1xyXG4gICAgICAgIERhdGFTdG9yZS5kZWxldGVQbHVnaW5EYXRhKHBsdWdpbk5hbWUsIGtleSk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/oldstorage.js\n");
/***/ }),
/***/ "./src/modules/pluginapi.js":
/*!**********************************!*\
!*** ./src/modules/pluginapi.js ***!
\**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _webpackmodules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./webpackmodules */ \"./src/modules/webpackmodules.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _dommanager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dommanager */ \"./src/modules/dommanager.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n\n\n\n\n\nconst BdApi = {\n get React() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].React;\n },\n\n get ReactDOM() {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"DiscordModules\"].ReactDOM;\n },\n\n get WindowConfigFile() {\n if (this._windowConfigFile) return this._windowConfigFile;\n\n const electron = __webpack_require__(/*! electron */ \"electron\").remote.app;\n\n const path = __webpack_require__(/*! path */ \"path\");\n\n const base = electron.getAppPath();\n const roamingBase = electron.getPath(\"userData\");\n const roamingLocation = path.resolve(roamingBase, electron.getVersion(), \"modules\", \"discord_desktop_core\", \"injector\", \"config.json\");\n const location = path.resolve(base, \"..\", \"app\", \"config.json\");\n\n const fs = __webpack_require__(/*! fs */ \"fs\");\n\n const realLocation = fs.existsSync(location) ? location : fs.existsSync(roamingLocation) ? roamingLocation : null;\n if (!realLocation) return this._windowConfigFile = null;\n return this._windowConfigFile = realLocation;\n }\n\n};\n\nBdApi.getAllWindowPreferences = function () {\n if (!this.WindowConfigFile) return {};\n return require(this.WindowConfigFile);\n};\n\nBdApi.getWindowPreference = function (key) {\n if (!this.WindowConfigFile) return undefined;\n return this.getAllWindowPreferences()[key];\n};\n\nBdApi.setWindowPreference = function (key, value) {\n if (!this.WindowConfigFile) return;\n\n const fs = __webpack_require__(/*! fs */ \"fs\");\n\n const prefs = this.getAllWindowPreferences();\n prefs[key] = value;\n delete __webpack_require__.c[this.WindowConfigFile];\n fs.writeFileSync(this.WindowConfigFile, JSON.stringify(prefs, null, 4));\n}; //Inject CSS to document head\n//id = id of element\n//css = custom css\n\n\nBdApi.injectCSS = function (id, css) {\n _dommanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"].injectStyle(_utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].escapeID(id), css); // $(\"head\").append($(\"<style>\", {id: Utilities.escapeID(id), text: css}));\n}; //Clear css/remove any element\n//id = id of element\n\n\nBdApi.clearCSS = function (id) {\n _dommanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"].removeStyle(_utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].escapeID(id)); // $(\"#\" + Utilities.escapeID(id)).remove();\n}; //Inject CSS to document head\n//id = id of element\n//css = custom css\n\n\nBdApi.linkJS = function (id, url) {\n $(\"head\").append($(\"<script>\", {\n id: _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].escapeID(id),\n src: url,\n type: \"text/javascript\"\n }));\n}; //Clear css/remove any element\n//id = id of element\n\n\nBdApi.unlinkJS = function (id) {\n $(\"#\" + _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].escapeID(id)).remove();\n};\n/**\r\n * Shows a generic but very customizable modal.\r\n * @param {string} title - title of the modal\r\n * @param {string} content - a string of text to display in the modal\r\n */\n\n\nBdApi.alert = function (title, content) {\n ui__WEBPACK_IMPORTED_MODULE_4__[\"Modals\"].alert(title, content);\n};\n/**\r\n * Shows a generic but very customizable confirmation modal with optional confirm and cancel callbacks.\r\n * @param {string} title - title of the modal\r\n * @param {(string|ReactElement|Array<string|ReactElement>)} children - a single or mixed array of react elements and strings. Everything is wrapped in Discord's `TextElement` component so strings will show and render properly.\r\n * @param {object} [options] - options to modify the modal\r\n * @param {boolean} [options.danger=false] - whether the main button should be red or not\r\n * @param {string} [options.confirmText=Okay] - text for the confirmation/submit button\r\n * @param {string} [options.cancelText=Cancel] - text for the cancel button\r\n * @param {callable} [options.onConfirm=NOOP] - callback to occur when clicking the submit button\r\n * @param {callable} [options.onCancel=NOOP] - callback to occur when clicking the cancel button\r\n */\n\n\nBdApi.showConfirmationModal = function (title, content, options = {}) {\n return ui__WEBPACK_IMPORTED_MODULE_4__[\"Modals\"].showConfirmationModal(title, content, options);\n};\n/**\r\n * This shows a toast similar to android towards the bottom of the screen.\r\n *\r\n * @param {string} content The string to show in the toast.\r\n * @param {object} options Options object. Optional parameter.\r\n * @param {string} [options.type=\"\"] Changes the type of the toast stylistically and semantically. Choices: \"\", \"info\", \"success\", \"danger\"/\"error\", \"warning\"/\"warn\". Default: \"\"\r\n * @param {boolean} [options.icon=true] Determines whether the icon should show corresponding to the type. A toast without type will always have no icon. Default: true\r\n * @param {number} [options.timeout=3000] Adjusts the time (in ms) the toast should be shown for before disappearing automatically. Default: 3000\r\n * @param {boolean} [options.forceShow=false] Whether to force showing the toast and ignore the bd setting\r\n */\n\n\nBdApi.showToast = function (content, options = {}) {\n ui__WEBPACK_IMPORTED_MODULE_4__[\"Toasts\"].show(content, options);\n}; // Finds module\n\n\nBdApi.findModule = function (filter) {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getModule(filter);\n}; // Finds module\n\n\nBdApi.findAllModules = function (filter) {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getModule(filter, false);\n}; // Finds module\n\n\nBdApi.findModuleByProps = function (...props) {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByProps(...props);\n};\n\nBdApi.findModuleByPrototypes = function (...protos) {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByPrototypes(...protos);\n};\n\nBdApi.findModuleByDisplayName = function (name) {\n return _webpackmodules__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getByDisplayName(name);\n}; // Gets react instance\n\n\nBdApi.getInternalInstance = function (node) {\n if (!(node instanceof window.jQuery) && !(node instanceof Element)) return undefined;\n if (node instanceof jQuery) node = node[0];\n return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getInternalInstance(node);\n}; // Gets data\n\n\nBdApi.loadData = function (pluginName, key) {\n return _datastore__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getPluginData(pluginName, key);\n};\n\nBdApi.getData = BdApi.loadData; // Sets data\n\nBdApi.saveData = function (pluginName, key, data) {\n return _datastore__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setPluginData(pluginName, key, data);\n};\n\nBdApi.setData = BdApi.saveData; // Deletes data\n\nBdApi.deleteData = function (pluginName, key) {\n return _datastore__WEBPACK_IMPORTED_MODULE_2__[\"default\"].deletePluginData(pluginName, key);\n}; // Patches other functions\n\n\nBdApi.monkeyPatch = function (what, methodName, options) {\n return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].monkeyPatch(what, methodName, options);\n}; // Event when element is removed\n\n\nBdApi.onRemoved = function (node, callback) {\n return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].onRemoved(node, callback);\n}; // Wraps function in try..catch\n\n\nBdApi.suppressErrors = function (method, message) {\n return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].suppressErrors(method, message);\n}; // Tests for valid JSON\n\n\nBdApi.testJSON = function (data) {\n return _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].testJSON(data);\n}; //Get another plugin\n//name = name of plugin\n// BdApi.getPlugin = function (name) {\n// if (Plugins.hasOwnProperty(name)) {\n// return Plugins[name].plugin;\n// }\n// return null;\n// };\n// BdApi.isPluginEnabled = function(name) {\n// return !!PluginCookie[name];\n// };\n// BdApi.isThemeEnabled = function(name) {\n// return !!ThemeCookie[name];\n// };\n// BdApi.isSettingEnabled = function(id) {\n// return !!SettingsCookie[id];\n// };\n// Gets data\n\n\nBdApi.getBDData = function (key) {\n return _datastore__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getBDData(key);\n}; // Sets data\n\n\nBdApi.setBDData = function (key, data) {\n return _datastore__WEBPACK_IMPORTED_MODULE_2__[\"default\"].setBDData(key, data);\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (BdApi);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvcGx1Z2luYXBpLmpzPzZhOTMiXSwibmFtZXMiOlsiQmRBcGkiLCJSZWFjdCIsIkRpc2NvcmRNb2R1bGVzIiwiUmVhY3RET00iLCJXaW5kb3dDb25maWdGaWxlIiwiX3dpbmRvd0NvbmZpZ0ZpbGUiLCJlbGVjdHJvbiIsInJlcXVpcmUiLCJyZW1vdGUiLCJhcHAiLCJwYXRoIiwiYmFzZSIsImdldEFwcFBhdGgiLCJyb2FtaW5nQmFzZSIsImdldFBhdGgiLCJyb2FtaW5nTG9jYXRpb24iLCJyZXNvbHZlIiwiZ2V0VmVyc2lvbiIsImxvY2F0aW9uIiwiZnMiLCJyZWFsTG9jYXRpb24iLCJleGlzdHNTeW5jIiwiZ2V0QWxsV2luZG93UHJlZmVyZW5jZXMiLCJfX25vbl93ZWJwYWNrX3JlcXVpcmVfXyIsImdldFdpbmRvd1ByZWZlcmVuY2UiLCJrZXkiLCJ1bmRlZmluZWQiLCJzZXRXaW5kb3dQcmVmZXJlbmNlIiwidmFsdWUiLCJwcmVmcyIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5IiwiaW5qZWN0Q1NTIiwiaWQiLCJjc3MiLCJET01NYW5hZ2VyIiwiaW5qZWN0U3R5bGUiLCJVdGlsaXRpZXMiLCJlc2NhcGVJRCIsImNsZWFyQ1NTIiwicmVtb3ZlU3R5bGUiLCJsaW5rSlMiLCJ1cmwiLCIkIiwiYXBwZW5kIiwic3JjIiwidHlwZSIsInVubGlua0pTIiwicmVtb3ZlIiwiYWxlcnQiLCJ0aXRsZSIsImNvbnRlbnQiLCJNb2RhbHMiLCJzaG93Q29uZmlybWF0aW9uTW9kYWwiLCJvcHRpb25zIiwic2hvd1RvYXN0IiwiVG9hc3RzIiwic2hvdyIsImZpbmRNb2R1bGUiLCJmaWx0ZXIiLCJXZWJwYWNrTW9kdWxlcyIsImdldE1vZHVsZSIsImZpbmRBbGxNb2R1bGVzIiwiZmluZE1vZHVsZUJ5UHJvcHMiLCJwcm9wcyIsImdldEJ5UHJvcHMiLCJmaW5kTW9kdWxlQnlQcm90b3R5cGVzIiwicHJvdG9zIiwiZ2V0QnlQcm90b3R5cGVzIiwiZmluZE1vZHVsZUJ5RGlzcGxheU5hbWUiLCJuYW1lIiwiZ2V0QnlEaXNwbGF5TmFtZSIsImdldEludGVybmFsSW5zdGFuY2UiLCJub2RlIiwid2luZG93IiwialF1ZXJ5IiwiRWxlbWVudCIsImxvYWREYXRhIiwicGx1Z2luTmFtZSIsIkRhdGFTdG9yZSIsImdldFBsdWdpbkRhdGEiLCJnZXREYXRhIiwic2F2ZURhdGEiLCJkYXRhIiwic2V0UGx1Z2luRGF0YSIsInNldERhdGEiLCJkZWxldGVEYXRhIiwiZGVsZXRlUGx1Z2luRGF0YSIsIm1vbmtleVBhdGNoIiwid2hhdCIsIm1ldGhvZE5hbWUiLCJvblJlbW92ZWQiLCJjYWxsYmFjayIsInN1cHByZXNzRXJyb3JzIiwibWV0aG9kIiwibWVzc2FnZSIsInRlc3RKU09OIiwiZ2V0QkREYXRhIiwic2V0QkREYXRhIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsTUFBTUEsS0FBSyxHQUFHO0FBQ1YsTUFBSUMsS0FBSixHQUFZO0FBQUUsV0FBT0MsOERBQWMsQ0FBQ0QsS0FBdEI7QUFBOEIsR0FEbEM7O0FBRVYsTUFBSUUsUUFBSixHQUFlO0FBQUUsV0FBT0QsOERBQWMsQ0FBQ0MsUUFBdEI7QUFBaUMsR0FGeEM7O0FBR1YsTUFBSUMsZ0JBQUosR0FBdUI7QUFDbkIsUUFBSSxLQUFLQyxpQkFBVCxFQUE0QixPQUFPLEtBQUtBLGlCQUFaOztBQUM1QixVQUFNQyxRQUFRLEdBQUdDLG1CQUFPLENBQUMsMEJBQUQsQ0FBUCxDQUFvQkMsTUFBcEIsQ0FBMkJDLEdBQTVDOztBQUNBLFVBQU1DLElBQUksR0FBR0gsbUJBQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFDQSxVQUFNSSxJQUFJLEdBQUdMLFFBQVEsQ0FBQ00sVUFBVCxFQUFiO0FBQ0EsVUFBTUMsV0FBVyxHQUFHUCxRQUFRLENBQUNRLE9BQVQsQ0FBaUIsVUFBakIsQ0FBcEI7QUFD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QVYsQ0FBb0J6RSxHQUFwQixDQUFQO0FBQ0gsQ0FGRCxDLENBSUE7OztBQUNBekIsS0FBSyxDQUFDbUcsU0FBTixHQUFrQixVQUFTMUUsR0FBVCxFQUFjMkQsSUFBZCxFQUFvQjtBQUNsQyxTQUFPSixrREFBUyxDQUFDbUIsU0FBVixDQUFvQjFFLEdBQXBCLEVBQXlCMkQsSUFBekIsQ0FBUDtBQUNILENBRkQ7O0FBSWVwRixvRUFBZiIsImZpbGUiOiIuL3NyYy9tb2R1bGVzL3BsdWdpbmFwaS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBVdGlsaXRpZXMgZnJvbSBcIi4vdXRpbGl0aWVzXCI7XHJcbmltcG9ydCBXZWJwYWNrTW9kdWxlcywge0Rpc2NvcmRNb2R1bGVzfSBmcm9tIFwiLi93ZWJwYWNrbW9kdWxlc1wiO1xyXG5pbXBvcnQgRGF0YVN0b3JlIGZyb20gXCIuL2RhdGFzdG9yZVwiO1xyXG5pbXBvcnQgRE9NTWFuYWdlciBmcm9tIFwiLi9kb21tYW5hZ2VyXCI7XHJcbmltcG9ydCB7VG9hc3RzLCBNb2RhbHN9IGZyb20gXCJ1aVwiO1xyXG5cclxuY29uc3QgQmRBcGkgPSB7XHJcbiAgICBnZXQgUmVhY3QoKSB7IHJldHVybiBEaXNjb3JkTW9kdWxlcy5SZWFjdDsgfSxcclxuICAgIGdldCBSZWFjdERPTSgpIHsgcmV0dXJuIERpc2NvcmRNb2R1bGVzLlJlYWN0RE9NOyB9LFxyXG4gICAgZ2V0IFdpbmRvd0NvbmZpZ0ZpbGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3dpbmRvd0NvbmZpZ0ZpbGUpIHJldHVybiB0aGlzLl93aW5kb3dDb25maWdGaWxlO1xyXG4gICAgICAgIGNvbnN0IGVsZWN0cm9uID0gcmVxdWlyZShcImVsZWN0cm9uXCIpLnJlbW90ZS5hcHA7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xyXG4gICAgICAgIGNvbnN0IGJhc2UgPSBlbGVjdHJvbi5nZXRBcHBQYXRoKCk7XHJcbiAgICAgICAgY29uc3Qgcm9hbWluZ0Jhc2UgPSBlbGVjdHJvbi5nZXRQYXRoKFwidXNlckRhdGFcIik7XHJcbiAgICAgICAgY29uc3Qgcm9hbWluZ0xvY2F0aW9uID0gcGF0aC5yZXNvbHZlKHJvYW1pbmdCYXNlLCBlbGVjdHJvbi5nZXRWZXJzaW9uKCksIFwibW9kdWxlc1wiLCBcImRpc2NvcmRfZGVza3RvcF9jb3JlXCIsIFwiaW5qZWN0b3JcIiwgXCJjb25maWcuanNvblwiKTtcclxuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHBhdGgucmVzb2x2ZShiYXNlLCBcIi4uXCIsIFwiYXBwXCIsIFwiY29uZmlnLmpzb25cIik7XHJcbiAgICAgICAgY29uc3QgZnMgPSByZXF1aXJlKFwiZnNcIik7XHJcbiAgICAgICAgY29uc3QgcmVhbExvY2F0aW9uID0gZnMuZXhpc3RzU3luYyhsb2NhdGlvbikgPyBsb2NhdGlvbiA6IGZzLmV4aXN0c1N5bmMocm9hbWluZ0xvY2F0aW9uKSA/IHJvYW1pbmdMb2NhdGlvbiA6IG51bGw7XHJcbiAgICAgICAgaWYgKCFyZWFsTG9jYXRpb24pIHJldHVybiB0aGlzLl93aW5kb3dDb25maWdGaWxlID0gbnVsbDtcclxuICAgICAgICByZXR1cm4gdGhpcy5fd2luZG93Q29uZmlnRmlsZSA9IHJlYWxMb2NhdGlvbjtcclxuICAgIH1cclxufTtcclxuXHJcbkJkQXBpLmdldEFsbFdpbmRvd1ByZWZlcmVuY2VzID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXRoaXMuV2luZG93Q29uZmlnRmlsZSkgcmV0dXJuIHt9O1xyXG4gICAgcmV0dXJuIF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHRoaXMuV2luZG93Q29uZmlnRmlsZSk7XHJcbn07XHJcblxyXG5CZEFwaS5nZXRXaW5kb3dQcmVmZXJlbmNlID0gZnVuY3Rpb24oa2V5KSB7XHJcbiAgICBpZiAoIXRoaXMuV2luZG93Q29uZmlnRmlsZSkgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIHJldHVybiB0aGlzLmdldEFsbFdpbmRvd1ByZWZlcmVuY2VzKClba2V5XTtcclxufTtcclxuXHJcbkJkQXBpLnNldFdpbmRvd1ByZWZlcmVuY2UgPSBmdW5jdGlvbihrZXksIHZhbHVlKSB7XHJcbiAgICBpZiAoIXRoaXMuV2luZG93Q29uZmlnRmlsZSkgcmV0dXJuO1xyXG4gICAgY29uc3QgZnMgPSByZXF1aXJlKFwiZnNcIik7XHJcbiAgICBjb25zdCBwcmVmcyA9IHRoaXMuZ2V0QWxsV2luZG93UHJlZmVyZW5jZXMoKTtcclxuICAgIHByZWZzW2tleV0gPSB2YWx1ZTtcclxuICAgIGRlbGV0ZSByZXF1aXJlLmNhY2hlW3RoaXMuV2luZG93Q29uZmlnRmlsZV07XHJcbiAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuV2luZG93Q29uZmlnRmlsZSwgSlNPTi5zdHJpbmdpZnkocHJlZnMsIG51bGwsIDQpKTtcclxufTtcclxuXHJcbi8vSW5qZWN0IENTUyB0byBkb2N1bWVudCBoZWFkXHJcbi8vaWQgPSBpZCBvZiBlbGVtZW50XHJcbi8vY3NzID0gY3VzdG9tIGNzc1xyXG5CZEFwaS5pbmplY3RDU1MgPSBmdW5jdGlvbiAoaWQsIGNzcykge1xyXG4gICAgRE9NTWFuYWdlci5pbmplY3RTdHlsZShVdGlsaXRpZXMuZXNjYXBlSUQoaWQpLCBjc3MpO1xyXG4gICAgLy8gJChcImhlYWRcIikuYXBwZW5kKCQoXCI8c3R5bGU+XCIsIHtpZDogVXRpbGl0aWVzLmVzY2FwZUlEKGlkKSwgdGV4dDogY3NzfSkpO1xyXG59O1xyXG5cclxuLy9DbGVhciBjc3MvcmVtb3ZlIGFueSBlbGVtZW50XHJcbi8vaWQgPSBpZCBvZiBlbGVtZW50XHJcbkJkQXBpLmNsZWFyQ1NTID0gZnVuY3Rpb24gKGlkKSB7XHJcbiAgICBET01NYW5hZ2VyLnJlbW92ZVN0eWxlKFV0aWxpdGllcy5lc2NhcGVJRChpZCkpO1xyXG4gICAgLy8gJChcIiNcIiArIFV0aWxpdGllcy5lc2NhcGVJRChpZCkpLnJlbW92ZSgpO1xyXG59O1xyXG5cclxuLy9JbmplY3QgQ1NTIHRvIGRvY3VtZW50IGhlYWRcclxuLy9pZCA9IGlkIG9mIGVsZW1lbnRcclxuLy9jc3MgPSBjdXN0b20gY3NzXHJcbkJkQXBpLmxpbmtKUyA9IGZ1bmN0aW9uIChpZCwgdXJsKSB7XHJcbiAgICAkKFwiaGVhZFwiKS5hcHBlbmQoJChcIjxzY3JpcHQ+XCIsIHtpZDogVXRpbGl0aWVzLmVzY2FwZUlEKGlkKSwgc3JjOiB1cmwsIHR5cGU6IFwidGV4dC9qYXZhc2NyaXB0XCJ9KSk7XHJcbn07XHJcblxyXG4vL0NsZWFyIGNzcy9yZW1vdmUgYW55IGVsZW1lbnRcclxuLy9pZCA9IGlkIG9mIGVsZW1lbnRcclxuQmRBcGkudW5saW5rSlMgPSBmdW5jdGlvbiAoaWQpIHtcclxuICAgICQoXCIjXCIgKyBVdGlsaXRpZXMuZXNjYXBlSUQoaWQpKS5yZW1vdmUoKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBTaG93cyBhIGdlbmVyaWMgYnV0IHZlcnkgY3VzdG9taXphYmxlIG1vZGFsLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUgLSB0aXRsZSBvZiB0aGUgbW9kYWxcclxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnQgLSBhIHN0cmluZyBvZiB0ZXh0IHRvIGRpc3BsYXkgaW4gdGhlIG1vZGFsXHJcbiAqL1xyXG5CZEFwaS5hbGVydCA9IGZ1bmN0aW9uICh0aXRsZSwgY29udGVudCkge1xyXG4gICAgTW9kYWxzLmFsZXJ0KHRpdGxlLCBjb250ZW50KTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBTaG93cyBhIGdlbmVyaWMgYnV0IHZlcnkgY3VzdG9taXphYmxlIGNvbmZpcm1hdGlvbiBtb2RhbCB3aXRoIG9wdGlvbmFsIGNvbmZpcm0gYW5kIGNhbmNlbCBjYWxsYmFja3MuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZSAtIHRpdGxlIG9mIHRoZSBtb2RhbFxyXG4gKiBAcGFyYW0geyhzdHJpbmd8UmVhY3RFbGVtZW50fEFycmF5PHN0cmluZ3xSZWFjdEVsZW1lbnQ+KX0gY2hpbGRyZW4gLSBhIHNpbmdsZSBvciBtaXhlZCBhcnJheSBvZiByZWFjdCBlbGVtZW50cyBhbmQgc3RyaW5ncy4gRXZlcnl0aGluZyBpcyB3cmFwcGVkIGluIERpc2NvcmQncyBgVGV4dEVsZW1lbnRgIGNvbXBvbmVudCBzbyBzdHJpbmdzIHdpbGwgc2hvdyBhbmQgcmVuZGVyIHByb3Blcmx5LlxyXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gb3B0aW9ucyB0byBtb2RpZnkgdGhlIG1vZGFsXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZGFuZ2VyPWZhbHNlXSAtIHdoZXRoZXIgdGhlIG1haW4gYnV0dG9uIHNob3VsZCBiZSByZWQgb3Igbm90XHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5jb25maXJtVGV4dD1Pa2F5XSAtIHRleHQgZm9yIHRoZSBjb25maXJtYXRpb24vc3VibWl0IGJ1dHRvblxyXG4gKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuY2FuY2VsVGV4dD1DYW5jZWxdIC0gdGV4dCBmb3IgdGhlIGNhbmNlbCBidXR0b25cclxuICogQHBhcmFtIHtjYWxsYWJsZX0gW29wdGlvbnMub25Db25maXJtPU5PT1BdIC0gY2FsbGJhY2sgdG8gb2NjdXIgd2hlbiBjbGlja2luZyB0aGUgc3VibWl0IGJ1dHRvblxyXG4gKiBAcGFyYW0ge2NhbGxhYmxlfSBbb3B0aW9ucy5vbkNhbmNlbD1OT09QXSAtIGNhbGxiYWNrIHRvIG9jY3VyIHdoZW4gY2xpY2tpbmcgdGhlIGNhbmNlbCBidXR0b25cclxuICovXHJcbkJkQXBpLnNob3dDb25maXJtYXRpb25Nb2RhbCA9IGZ1bmN0aW9uICh0aXRsZSwgY29udGVudCwgb3B0aW9ucyA9IHt9KSB7XHJcbiAgICByZXR1cm4gTW9kYWxzLnNob3dDb25maXJtYXRpb25Nb2RhbCh0aXRsZSwgY29udGVudCwgb3B0aW9ucyk7XHJcbn07XHJcblxyXG4vKipcclxuICogVGhpcyBzaG93cyBhIHRvYXN0IHNpbWlsYXIgdG8gYW5kcm9pZCB0b3dhcmRzIHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbi5cclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnQgVGhlIHN0cmluZyB0byBzaG93IGluIHRoZSB0b2FzdC5cclxuICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgT3B0aW9ucyBvYmplY3QuIE9wdGlvbmFsIHBhcmFtZXRlci5cclxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLnR5cGU9XCJcIl0gQ2hhbmdlcyB0aGUgdHlwZSBvZiB0aGUgdG9hc3Qgc3R5bGlzdGljYWxseSBhbmQgc2VtYW50aWNhbGx5LiBDaG9pY2VzOiBcIlwiLCBcImluZm9cIiwgXCJzdWNjZXNzXCIsIFwiZGFuZ2VyXCIvXCJlcnJvclwiLCBcIndhcm5pbmdcIi9cIndhcm5cIi4gRGVmYXVsdDogXCJcIlxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmljb249dHJ1ZV0gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBpY29uIHNob3VsZCBzaG93IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHR5cGUuIEEgdG9hc3Qgd2l0aG91dCB0eXBlIHdpbGwgYWx3YXlzIGhhdmUgbm8gaWNvbi4gRGVmYXVsdDogdHJ1ZVxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMudGltZW91dD0zMDAwXSBBZGp1c3RzIHRoZSB0aW1lIChpbiBtcykgdGhlIHRvYXN0IHNob3VsZCBiZSBzaG93biBmb3IgYmVmb3JlIGRpc2FwcGVhcmluZyBhdXRvbWF0aWNhbGx5LiBEZWZhdWx0OiAzMDAwXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZm9yY2VTaG93PWZhbHNlXSBXaGV0aGVyIHRvIGZvcmNlIHNob3dpbmcgdGhlIHRvYXN0IGFuZCBpZ25vcmUgdGhlIGJkIHNldHRpbmdcclxuICovXHJcbkJkQXBpLnNob3dUb2FzdCA9IGZ1bmN0aW9uKGNvbnRlbnQsIG9wdGlvbnMgPSB7fSkge1xyXG4gICAgVG9hc3RzLnNob3coY29udGVudCwgb3B0aW9ucyk7XHJcbn07XHJcblxyXG4vLyBGaW5kcyBtb2R1bGVcclxuQmRBcGkuZmluZE1vZHVsZSA9IGZ1bmN0aW9uKGZpbHRlcikge1xyXG4gICAgcmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldE1vZHVsZShmaWx0ZXIpO1xyXG59O1xyXG5cclxuLy8gRmluZHMgbW9kdWxlXHJcbkJkQXBpLmZpbmRBbGxNb2R1bGVzID0gZnVuY3Rpb24oZmlsdGVyKSB7XHJcbiAgICByZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKGZpbHRlciwgZmFsc2UpO1xyXG59O1xyXG5cclxuLy8gRmluZHMgbW9kdWxlXHJcbkJkQXBpLmZpbmRNb2R1bGVCeVByb3BzID0gZnVuY3Rpb24oLi4ucHJvcHMpIHtcclxuICAgIHJldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKC4uLnByb3BzKTtcclxufTtcclxuXHJcbkJkQXBpLmZpbmRNb2R1bGVCeVByb3RvdHlwZXMgPSBmdW5jdGlvbiguLi5wcm90b3MpIHtcclxuICAgIHJldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3RvdHlwZXMoLi4ucHJvdG9zKTtcclxufTtcclxuXHJcbkJkQXBpLmZpbmRNb2R1bGVCeURpc3BsYXlOYW1lID0gZnVuY3Rpb24obmFtZSkge1xyXG4gICAgcmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5RGlzcGxheU5hbWUobmFtZSk7XHJcbn07XHJcblxyXG4vLyBHZXRzIHJlYWN0IGluc3RhbmNlXHJcbkJkQXBpLmdldEludGVybmFsSW5zdGFuY2UgPSBmdW5jdGlvbihub2RlKSB7XHJcbiAgICBpZiAoIShub2RlIGluc3RhbmNlb2Ygd2luZG93LmpRdWVyeSkgJiYgIShub2RlIGluc3RhbmNlb2YgRWxlbWVudCkpIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBpZiAobm9kZSBpbnN0YW5jZW9mIGpRdWVyeSkgbm9kZSA9IG5vZGVbMF07XHJcbiAgICByZXR1cm4gVXRpbGl0aWVzLmdldEludGVybmFsSW5zdGFuY2Uobm9kZSk7XHJcbn07XHJcblxyXG4vLyBHZXRzIGRhdGFcclxuQmRBcGkubG9hZERhdGEgPSBmdW5jdGlvbihwbHVnaW5OYW1lLCBrZXkpIHtcclxuICAgIHJldHVybiBEYXRhU3RvcmUuZ2V0UGx1Z2luRGF0YShwbHVnaW5OYW1lLCBrZXkpO1xyXG59O1xyXG5cclxuQmRBcGkuZ2V0RGF0YSA9IEJkQXBpLmxvYWREYXRhO1xyXG5cclxuLy8gU2V0cyBkYXRhXHJcbkJkQXBpLnNhdmVEYXRhID0gZnVuY3Rpb24ocGx1Z2luTmFtZSwga2V5LCBkYXRhKSB7XHJcbiAgICByZXR1cm4gRGF0YVN0b3JlLnNldFBsdWdpbkRhdGEocGx1Z2luTmFtZSwga2V5LCBkYXRhKTtcclxufTtcclxuXHJcbkJkQXBpLnNldERhdGEgPSBCZEFwaS5zYXZlRGF0YTtcclxuXHJcbi8vIERlbGV0ZXMgZGF0YVxyXG5CZEFwaS5kZWxldGVEYXRhID0gZnVuY3Rpb24ocGx1Z2luTmFtZSwga2V5KSB7XHJcbiAgICByZXR1cm4gRGF0YVN0b3JlLmRlbGV0ZVBsdWdpbkRhdGEocGx1Z2luTmFtZSwga2V5KTtcclxufTtcclxuXHJcbi8vIFBhdGNoZXMgb3RoZXIgZnVuY3Rpb25zXHJcbkJkQXBpLm1vbmtleVBhdGNoID0gZnVuY3Rpb24od2hhdCwgbWV0aG9kTmFtZSwgb3B0aW9ucykge1xyXG4gICAgcmV0dXJuIFV0aWxpdGllcy5tb25rZXlQYXRjaCh3aGF0LCBtZXRob2ROYW1lLCBvcHRpb25zKTtcclxufTtcclxuXHJcbi8vIEV2ZW50IHdoZW4gZWxlbWVudCBpcyByZW1vdmVkXHJcbkJkQXBpLm9uUmVtb3ZlZCA9IGZ1bmN0aW9uKG5vZGUsIGNhbGxiYWNrKSB7XHJcbiAgICByZXR1cm4gVXRpbGl0aWVzLm9uUmVtb3ZlZChub2RlLCBjYWxsYmFjayk7XHJcbn07XHJcblxyXG4vLyBXcmFwcyBmdW5jdGlvbiBpbiB0cnkuLmNhdGNoXHJcbkJkQXBpLnN1cHByZXNzRXJyb3JzID0gZnVuY3Rpb24obWV0aG9kLCBtZXNzYWdlKSB7XHJcbiAgICByZXR1cm4gVXRpbGl0aWVzLnN1cHByZXNzRXJyb3JzKG1ldGhvZCwgbWVzc2FnZSk7XHJcbn07XHJcblxyXG4vLyBUZXN0cyBmb3IgdmFsaWQgSlNPTlxyXG5CZEFwaS50ZXN0SlNPTiA9IGZ1bmN0aW9uKGRhdGEpIHtcclxuICAgIHJldHVybiBVdGlsaXRpZXMudGVzdEpTT04oZGF0YSk7XHJcbn07XHJcblxyXG4vL0dldCBhbm90aGVyIHBsdWdpblxyXG4vL25hbWUgPSBuYW1lIG9mIHBsdWdpblxyXG4vLyBCZEFwaS5nZXRQbHVnaW4gPSBmdW5jdGlvbiAobmFtZSkge1xyXG4vLyAgICAgaWYgKFBsdWdpbnMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcclxuLy8gICAgICAgICByZXR1cm4gUGx1Z2luc1tuYW1lXS5wbHVnaW47XHJcbi8vICAgICB9XHJcbi8vICAgICByZXR1cm4gbnVsbDtcclxuLy8gfTtcclxuXHJcbi8vIEJkQXBpLmlzUGx1Z2luRW5hYmxlZCA9IGZ1bmN0aW9uKG5hbWUpIHtcclxuLy8gICAgIHJldHVybiAhIVBsdWdpbkNvb2tpZVtuYW1lXTtcclxuLy8gfTtcclxuXHJcbi8vIEJkQXBpLmlzVGhlbWVFbmFibGVkID0gZnVuY3Rpb24obmFtZSkge1xyXG4vLyAgICAgcmV0dXJuICEhVGhlbWVDb29raWVbbmFtZV07XHJcbi8vIH07XHJcblxyXG4vLyBCZEFwaS5pc1NldHRpbmdFbmFibGVkID0gZnVuY3Rpb24oaWQpIHtcclxuLy8gICAgIHJldHVybiAhIVNldHRpbmdzQ29va2llW2lkXTtcclxuLy8gfTtcclxuXHJcbi8vIEdldHMgZGF0YVxyXG5CZEFwaS5nZXRCRERhdGEgPSBmdW5jdGlvbihrZXkpIHtcclxuICAgIHJldHVybiBEYXRhU3RvcmUuZ2V0QkREYXRhKGtleSk7XHJcbn07XHJcblxyXG4vLyBTZXRzIGRhdGFcclxuQmRBcGkuc2V0QkREYXRhID0gZnVuY3Rpb24oa2V5LCBkYXRhKSB7XHJcbiAgICByZXR1cm4gRGF0YVN0b3JlLnNldEJERGF0YShrZXksIGRhdGEpO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgQmRBcGk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/pluginapi.js\n");
/***/ }),
/***/ "./src/modules/pluginmanager.js":
/*!**************************************!*\
!*** ./src/modules/pluginmanager.js ***!
\**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _contentmanager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./contentmanager */ \"./src/modules/contentmanager.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n/* harmony import */ var _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../structs/contenterror */ \"./src/structs/contenterror.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n\n\n\n\n\n\n\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nconst electronRemote = __webpack_require__(/*! electron */ \"electron\").remote;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class PluginManager extends _contentmanager__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n get name() {\n return \"PluginManager\";\n }\n\n get moduleExtension() {\n return \".js\";\n }\n\n get extension() {\n return \".plugin.js\";\n }\n\n get contentFolder() {\n return path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"plugins\");\n }\n\n get prefix() {\n return \"plugin\";\n }\n\n constructor() {\n super();\n this.onSwitch = this.onSwitch.bind(this);\n this.observer = new MutationObserver(mutations => {\n for (let i = 0, mlen = mutations.length; i < mlen; i++) {\n this.onMutation(mutations[i]);\n }\n });\n }\n /* Aliases */\n\n\n updatePluginList() {\n return this.updateList();\n }\n\n enablePlugin(idOrContent) {\n return this.enableContent(idOrContent);\n }\n\n disablePlugin(idOrContent) {\n return this.disableContent(idOrContent);\n }\n\n togglePlugin(id) {\n return this.toggleContent(id);\n }\n\n unloadPlugin(idOrFileOrContent) {\n return this.unloadContent(idOrFileOrContent);\n }\n\n loadPlugin(filename) {\n const error = this.loadContent(filename);\n if (error) ui__WEBPACK_IMPORTED_MODULE_3__[\"Modals\"].showContentErrors({\n themes: [error]\n });\n }\n\n reloadPlugin(idOrFileOrContent) {\n const error = this.reloadContent(idOrFileOrContent);\n if (error) ui__WEBPACK_IMPORTED_MODULE_3__[\"Modals\"].showContentErrors({\n plugins: [error]\n });\n return typeof idOrFileOrContent == \"string\" ? this.contentList.find(c => c.id == idOrFileOrContent || c.filename == idOrFileOrContent) : idOrFileOrContent;\n }\n\n loadAllPlugins() {\n const errors = this.loadAllContent();\n this.setupFunctions();\n _settingsmanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].registerPanel(\"plugins\", \"Plugins\", {\n element: () => ui__WEBPACK_IMPORTED_MODULE_3__[\"SettingsPanel\"].getContentPanel(\"Plugins\", this.contentList, this.state, {\n folder: this.contentFolder,\n onChange: this.togglePlugin.bind(this),\n reload: this.reloadPlugin.bind(this),\n refreshList: this.updatePluginList.bind(this)\n })\n });\n return errors;\n }\n /* Overrides */\n\n\n initializeContent(content) {\n if (!content.type) return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, content.filename, \"Plugin had no exports\", {\n message: \"Plugin had no exports or no name property.\",\n stack: \"\"\n });\n\n try {\n const thePlugin = new content.type();\n content.plugin = thePlugin;\n content.name = thePlugin.getName() || content.name;\n content.author = thePlugin.getAuthor() || content.author || \"No author\";\n content.description = thePlugin.getDescription() || content.description || \"No description\";\n content.version = thePlugin.getVersion() || content.version || \"No version\";\n\n try {\n if (typeof content.plugin.load == \"function\") content.plugin.load();\n } catch (error) {\n this.state[content.id] = false;\n return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, content.filename, \"load() could not be fired.\", {\n message: error.message,\n stack: error.stack\n });\n }\n } catch (error) {\n return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, content.filename, \"Could not be constructed.\", {\n message: error.message,\n stack: error.stack\n });\n }\n }\n\n getContentModification(module, content, meta) {\n module._compile(content, module.filename);\n\n const didExport = !_utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isEmpty(module.exports);\n\n if (didExport) {\n meta.type = module.exports;\n module.exports = meta;\n return \"\";\n }\n\n content += `\\nmodule.exports = ${JSON.stringify(meta)};\\nmodule.exports.type = ${meta.exports || meta.name};`;\n return content;\n }\n\n startContent(id) {\n return this.startPlugin(id);\n }\n\n stopContent(id) {\n return this.stopPlugin(id);\n }\n\n startPlugin(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n const plugin = content.plugin;\n\n try {\n plugin.start();\n this.emit(\"started\", content.id);\n ui__WEBPACK_IMPORTED_MODULE_3__[\"Toasts\"].show(`${content.name} v${content.version} has started.`);\n } catch (err) {\n this.state[content.id] = false;\n ui__WEBPACK_IMPORTED_MODULE_3__[\"Toasts\"].error(`${content.name} v${content.version} could not be started.`);\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].err(\"Plugins\", content.name + \" could not be started.\", err);\n return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, content.filename, \"start() could not be fired.\", {\n message: err.message,\n stack: err.stack\n });\n }\n }\n\n stopPlugin(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return;\n const plugin = content.plugin;\n\n try {\n plugin.stop();\n this.emit(\"stopped\", content.id);\n ui__WEBPACK_IMPORTED_MODULE_3__[\"Toasts\"].show(`${content.name} v${content.version} has stopped.`);\n } catch (err) {\n this.state[content.id] = false;\n ui__WEBPACK_IMPORTED_MODULE_3__[\"Toasts\"].error(`${content.name} v${content.version} could not be stopped.`);\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].err(\"Plugins\", content.name + \" could not be stopped.\", err);\n return new _structs_contenterror__WEBPACK_IMPORTED_MODULE_4__[\"default\"](content.name, content.filename, \"stop() could not be fired.\", {\n message: err.message,\n stack: err.stack\n });\n }\n }\n\n setupFunctions() {\n electronRemote.getCurrentWebContents().on(\"did-navigate-in-page\", this.onSwitch.bind(this));\n this.observer.observe(document, {\n childList: true,\n subtree: true\n });\n }\n\n onSwitch() {\n this.emit(\"page-switch\");\n\n for (let i = 0; i < this.contentList.length; i++) {\n const plugin = this.contentList[i].plugin;\n if (!this.state[this.contentList[i].id]) continue;\n\n if (typeof plugin.onSwitch === \"function\") {\n try {\n plugin.onSwitch();\n } catch (err) {\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].err(\"Plugins\", \"Unable to fire onSwitch for \" + this.contentList[i].name + \".\", err);\n }\n }\n }\n }\n\n onMutation(mutation) {\n for (let i = 0; i < this.contentList.length; i++) {\n const plugin = this.contentList[i].plugin;\n if (!this.state[this.contentList[i].id]) continue;\n\n if (typeof plugin.observer === \"function\") {\n try {\n plugin.observer(mutation);\n } catch (err) {\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].err(\"Plugins\", \"Unable to fire observer for \" + this.contentList[i].name + \".\", err);\n }\n }\n }\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvcGx1Z2lubWFuYWdlci5qcz9kMTczIl0sIm5hbWVzIjpbInBhdGgiLCJyZXF1aXJlIiwiZWxlY3Ryb25SZW1vdGUiLCJyZW1vdGUiLCJQbHVnaW5NYW5hZ2VyIiwiQ29udGVudE1hbmFnZXIiLCJuYW1lIiwibW9kdWxlRXh0ZW5zaW9uIiwiZXh0ZW5zaW9uIiwiY29udGVudEZvbGRlciIsInJlc29sdmUiLCJDb25maWciLCJkYXRhUGF0aCIsInByZWZpeCIsImNvbnN0cnVjdG9yIiwib25Td2l0Y2giLCJiaW5kIiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwibXV0YXRpb25zIiwiaSIsIm1sZW4iLCJsZW5ndGgiLCJvbk11dGF0aW9uIiwidXBkYXRlUGx1Z2luTGlzdCIsInVwZGF0ZUxpc3QiLCJlbmFibGVQbHVnaW4iLCJpZE9yQ29udGVudCIsImVuYWJsZUNvbnRlbnQiLCJkaXNhYmxlUGx1Z2luIiwiZGlzYWJsZUNvbnRlbnQiLCJ0b2dnbGVQbHVnaW4iLCJpZCIsInRvZ2dsZUNvbnRlbnQiLCJ1bmxvYWRQbHVnaW4iLCJpZE9yRmlsZU9yQ29udGVudCIsInVubG9hZENvbnRlbnQiLCJsb2FkUGx1Z2luIiwiZmlsZW5hbWUiLCJlcnJvciIsImxvYWRDb250ZW50IiwiTW9kYWxzIiwic2hvd0NvbnRlbnRFcnJvcnMiLCJ0aGVtZXMiLCJyZWxvYWRQbHVnaW4iLCJyZWxvYWRDb250ZW50IiwicGx1Z2lucyIsImNvbnRlbnRMaXN0IiwiZmluZCIsImMiLCJsb2FkQWxsUGx1Z2lucyIsImVycm9ycyIsImxvYWRBbGxDb250ZW50Iiwic2V0dXBGdW5jdGlvbnMiLCJTZXR0aW5ncyIsInJlZ2lzdGVyUGFuZWwiLCJlbGVtZW50IiwiU2V0dGluZ3NSZW5kZXJlciIsImdldENvbnRlbnRQYW5lbCIsInN0YXRlIiwiZm9sZGVyIiwib25DaGFuZ2UiLCJyZWxvYWQiLCJyZWZyZXNoTGlzdCIsImluaXRpYWxpemVDb250ZW50IiwiY29udGVudCIsInR5cGUiLCJDb250ZW50RXJyb3IiLCJtZXNzYWdlIiwic3RhY2siLCJ0aGVQbHVnaW4iLCJwbHVnaW4iLCJnZXROYW1lIiwiYXV0aG9yIiwiZ2V0QXV0aG9yIiwiZGVzY3JpcHRpb24iLCJnZXREZXNjcmlwdGlvbiIsInZlcnNpb24iLCJnZXRWZXJzaW9uIiwibG9hZCIsImdldENvbnRlbnRNb2RpZmljYXRpb24iLCJtb2R1bGUiLCJtZXRhIiwiX2NvbXBpbGUiLCJkaWRFeHBvcnQiLCJVdGlsaXRpZXMiLCJpc0VtcHR5IiwiZXhwb3J0cyIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFydENvbnRlbnQiLCJzdGFydFBsdWdpbiIsInN0b3BDb250ZW50Iiwic3RvcFBsdWdpbiIsInAiLCJzdGFydCIsImVtaXQiLCJUb2FzdHMiLCJzaG93IiwiZXJyIiwic3RvcCIsImdldEN1cnJlbnRXZWJDb250ZW50cyIsIm9uIiwib2JzZXJ2ZSIsImRvY3VtZW50IiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsIm11dGF0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU1BLElBQUksR0FBR0MsbUJBQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFDQSxNQUFNQyxjQUFjLEdBQUdELG1CQUFPLENBQUMsMEJBQUQsQ0FBUCxDQUFvQkUsTUFBM0M7O0FBRWUsbUVBQUksTUFBTUMsYUFBTixTQUE0QkMsdURBQTVCLENBQTJDO0FBQzFELE1BQUlDLElBQUosR0FBVztBQUFDLFdBQU8sZUFBUDtBQUF3Qjs7QUFDcEMsTUFBSUMsZUFBSixHQUFzQjtBQUFDLFdBQU8sS0FBUDtBQUFjOztBQUNyQyxNQUFJQyxTQUFKLEdBQWdCO0FBQUMsV0FBTyxZQUFQO0FBQXFCOztBQUN0QyxNQUFJQyxhQUFKLEdBQW9CO0FBQUMsV0FBT1QsSUFBSSxDQUFDVSxPQUFMLENBQWFDLDJD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RUFBL0IsQ0FBTCxFQUF5Qzs7QUFDekMsVUFBSSxPQUFPdUMsTUFBTSxDQUFDdEQsUUFBZCxLQUEyQixVQUEvQixFQUEyQztBQUN2QyxZQUFJO0FBQUVzRCxnQkFBTSxDQUFDdEQsUUFBUCxDQUFnQjBGLFFBQWhCO0FBQTRCLFNBQWxDLENBQ0EsT0FBT1IsR0FBUCxFQUFZO0FBQUVkLDREQUFTLENBQUNjLEdBQVYsQ0FBYyxTQUFkLEVBQXlCLGlDQUFpQyxLQUFLcEQsV0FBTCxDQUFpQjNCLENBQWpCLEVBQW9CZCxJQUFyRCxHQUE0RCxHQUFyRixFQUEwRjZGLEdBQTFGO0FBQWlHO0FBQ2xIO0FBQ0o7QUFDSjs7QUFwSnlELENBQS9DLEVBQWYiLCJmaWxlIjoiLi9zcmMvbW9kdWxlcy9wbHVnaW5tYW5hZ2VyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCBDb250ZW50TWFuYWdlciBmcm9tIFwiLi9jb250ZW50bWFuYWdlclwiO1xyXG5pbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuL3V0aWxpdGllc1wiO1xyXG5pbXBvcnQge1RvYXN0cywgTW9kYWxzfSBmcm9tIFwidWlcIjtcclxuaW1wb3J0IENvbnRlbnRFcnJvciBmcm9tIFwiLi4vc3RydWN0cy9jb250ZW50ZXJyb3JcIjtcclxuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuL3NldHRpbmdzbWFuYWdlclwiO1xyXG5pbXBvcnQge1NldHRpbmdzUGFuZWwgYXMgU2V0dGluZ3NSZW5kZXJlcn0gZnJvbSBcInVpXCI7XHJcblxyXG5jb25zdCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XHJcbmNvbnN0IGVsZWN0cm9uUmVtb3RlID0gcmVxdWlyZShcImVsZWN0cm9uXCIpLnJlbW90ZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBQbHVnaW5NYW5hZ2VyIGV4dGVuZHMgQ29udGVudE1hbmFnZXIge1xyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiUGx1Z2luTWFuYWdlclwiO31cclxuICAgIGdldCBtb2R1bGVFeHRlbnNpb24oKSB7cmV0dXJuIFwiLmpzXCI7fVxyXG4gICAgZ2V0IGV4dGVuc2lvbigpIHtyZXR1cm4gXCIucGx1Z2luLmpzXCI7fVxyXG4gICAgZ2V0IGNvbnRlbnRGb2xkZXIoKSB7cmV0dXJuIHBhdGgucmVzb2x2ZShDb25maWcuZGF0YVBhdGgsIFwicGx1Z2luc1wiKTt9XHJcbiAgICBnZXQgcHJlZml4KCkge3JldHVybiBcInBsdWdpblwiO31cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMub25Td2l0Y2ggPSB0aGlzLm9uU3dpdGNoLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDAsIG1sZW4gPSBtdXRhdGlvbnMubGVuZ3RoOyBpIDwgbWxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uTXV0YXRpb24obXV0YXRpb25zW2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIEFsaWFzZXMgKi9cclxuICAgIHVwZGF0ZVBsdWdpbkxpc3QoKSB7cmV0dXJuIHRoaXMudXBkYXRlTGlzdCgpO31cclxuXHJcbiAgICBlbmFibGVQbHVnaW4oaWRPckNvbnRlbnQpIHtyZXR1cm4gdGhpcy5lbmFibGVDb250ZW50KGlkT3JDb250ZW50KTt9XHJcbiAgICBkaXNhYmxlUGx1Z2luKGlkT3JDb250ZW50KSB7cmV0dXJuIHRoaXMuZGlzYWJsZUNvbnRlbnQoaWRPckNvbnRlbnQpO31cclxuICAgIHRvZ2dsZVBsdWdpbihpZCkge3JldHVybiB0aGlzLnRvZ2dsZUNvbnRlbnQoaWQpO31cclxuXHJcbiAgICB1bmxvYWRQbHVnaW4oaWRPckZpbGVPckNvbnRlbnQpIHtyZXR1cm4gdGhpcy51bmxvYWRDb250ZW50KGlkT3JGaWxlT3JDb250ZW50KTt9XHJcblxyXG4gICAgbG9hZFBsdWdpbihmaWxlbmFtZSkge1xyXG4gICAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5sb2FkQ29udGVudChmaWxlbmFtZSk7XHJcbiAgICAgICAgaWYgKGVycm9yKSBNb2RhbHMuc2hvd0NvbnRlbnRFcnJvcnMoe3RoZW1lczogW2Vycm9yXX0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZFBsdWdpbihpZE9yRmlsZU9yQ29udGVudCkge1xyXG4gICAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5yZWxvYWRDb250ZW50KGlkT3JGaWxlT3JDb250ZW50KTtcclxuICAgICAgICBpZiAoZXJyb3IpIE1vZGFscy5zaG93Q29udGVudEVycm9ycyh7cGx1Z2luczogW2Vycm9yXX0pO1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YoaWRPckZpbGVPckNvbnRlbnQpID09IFwic3RyaW5nXCIgPyB0aGlzLmNvbnRlbnRMaXN0LmZpbmQoYyA9PiBjLmlkID09IGlkT3JGaWxlT3JDb250ZW50IHx8IGMuZmlsZW5hbWUgPT0gaWRPckZpbGVPckNvbnRlbnQpIDogaWRPckZpbGVPckNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZEFsbFBsdWdpbnMoKSB7XHJcbiAgICAgICAgY29uc3QgZXJyb3JzID0gdGhpcy5sb2FkQWxsQ29udGVudCgpO1xyXG4gICAgICAgIHRoaXMuc2V0dXBGdW5jdGlvbnMoKTtcclxuICAgICAgICBTZXR0aW5ncy5yZWdpc3RlclBhbmVsKFwicGx1Z2luc1wiLCBcIlBsdWdpbnNcIiwge2VsZW1lbnQ6ICgpID0+IFNldHRpbmdzUmVuZGVyZXIuZ2V0Q29udGVudFBhbmVsKFwiUGx1Z2luc1wiLCB0aGlzLmNvbnRlbnRMaXN0LCB0aGlzLnN0YXRlLCB7XHJcbiAgICAgICAgICAgIGZvbGRlcjogdGhpcy5jb250ZW50Rm9sZGVyLFxyXG4gICAgICAgICAgICBvbkNoYW5nZTogdGhpcy50b2dnbGVQbHVnaW4uYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgcmVsb2FkOiB0aGlzLnJlbG9hZFBsdWdpbi5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICByZWZyZXNoTGlzdDogdGhpcy51cGRhdGVQbHVnaW5MaXN0LmJpbmQodGhpcylcclxuICAgICAgICB9KX0pO1xyXG4gICAgICAgIHJldHVybiBlcnJvcnM7XHJcbiAgICB9XHJcblxyXG4gICAgLyogT3ZlcnJpZGVzICovXHJcbiAgICBpbml0aWFsaXplQ29udGVudChjb250ZW50KSB7XHJcbiAgICAgICAgaWYgKCFjb250ZW50LnR5cGUpIHJldHVybiBuZXcgQ29udGVudEVycm9yKGNvbnRlbnQubmFtZSwgY29udGVudC5maWxlbmFtZSwgXCJQbHVnaW4gaGFkIG5vIGV4cG9ydHNcIiwge21lc3NhZ2U6IFwiUGx1Z2luIGhhZCBubyBleHBvcnRzIG9yIG5vIG5hbWUgcHJvcGVydHkuXCIsIHN0YWNrOiBcIlwifSk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgdGhlUGx1Z2luID0gbmV3IGNvbnRlbnQudHlwZSgpO1xyXG4gICAgICAgICAgICBjb250ZW50LnBsdWdpbiA9IHRoZVBsdWdpbjtcclxuICAgICAgICAgICAgY29udGVudC5uYW1lID0gdGhlUGx1Z2luLmdldE5hbWUoKSB8fCBjb250ZW50Lm5hbWU7XHJcbiAgICAgICAgICAgIGNvbnRlbnQuYXV0aG9yID0gdGhlUGx1Z2luLmdldEF1dGhvcigpIHx8IGNvbnRlbnQuYXV0aG9yIHx8IFwiTm8gYXV0aG9yXCI7XHJcbiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24gPSB0aGVQbHVnaW4uZ2V0RGVzY3JpcHRpb24oKSB8fCBjb250ZW50LmRlc2NyaXB0aW9uIHx8IFwiTm8gZGVzY3JpcHRpb25cIjtcclxuICAgICAgICAgICAgY29udGVudC52ZXJzaW9uID0gdGhlUGx1Z2luLmdldFZlcnNpb24oKSB8fCBjb250ZW50LnZlcnNpb24gfHwgXCJObyB2ZXJzaW9uXCI7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mKGNvbnRlbnQucGx1Z2luLmxvYWQpID09IFwiZnVuY3Rpb25cIikgY29udGVudC5wbHVnaW4ubG9hZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZVtjb250ZW50LmlkXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDb250ZW50RXJyb3IoY29udGVudC5uYW1lLCBjb250ZW50LmZpbGVuYW1lLCBcImxvYWQoKSBjb3VsZCBub3QgYmUgZmlyZWQuXCIsIHttZXNzYWdlOiBlcnJvci5tZXNzYWdlLCBzdGFjazogZXJyb3Iuc3RhY2t9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtyZXR1cm4gbmV3IENvbnRlbnRFcnJvcihjb250ZW50Lm5hbWUsIGNvbnRlbnQuZmlsZW5hbWUsIFwiQ291bGQgbm90IGJlIGNvbnN0cnVjdGVkLlwiLCB7bWVzc2FnZTogZXJyb3IubWVzc2FnZSwgc3RhY2s6IGVycm9yLnN0YWNrfSk7fVxyXG4gICAgfVxyXG5cclxuICAgIGdldENvbnRlbnRNb2RpZmljYXRpb24obW9kdWxlLCBjb250ZW50LCBtZXRhKSB7XHJcbiAgICAgICAgbW9kdWxlLl9jb21waWxlKGNvbnRlbnQsIG1vZHVsZS5maWxlbmFtZSk7XHJcbiAgICAgICAgY29uc3QgZGlkRXhwb3J0ID0gIVV0aWxpdGllcy5pc0VtcHR5KG1vZHVsZS5leHBvcnRzKTtcclxuICAgICAgICBpZiAoZGlkRXhwb3J0KSB7XHJcbiAgICAgICAgICAgIG1ldGEudHlwZSA9IG1vZHVsZS5leHBvcnRzO1xyXG4gICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IG1ldGE7XHJcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250ZW50ICs9IGBcXG5tb2R1bGUuZXhwb3J0cyA9ICR7SlNPTi5zdHJpbmdpZnkobWV0YSl9O1xcbm1vZHVsZS5leHBvcnRzLnR5cGUgPSAke21ldGEuZXhwb3J0cyB8fCBtZXRhLm5hbWV9O2A7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnRDb250ZW50KGlkKSB7cmV0dXJuIHRoaXMuc3RhcnRQbHVnaW4oaWQpO31cclxuICAgIHN0b3BDb250ZW50KGlkKSB7cmV0dXJuIHRoaXMuc3RvcFBsdWdpbihpZCk7fVxyXG5cclxuICAgIHN0YXJ0UGx1Z2luKGlkT3JDb250ZW50KSB7XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IHR5cGVvZihpZE9yQ29udGVudCkgPT0gXCJzdHJpbmdcIiA/IHRoaXMuY29udGVudExpc3QuZmluZChwID0+IHAuaWQgPT0gaWRPckNvbnRlbnQpIDogaWRPckNvbnRlbnQ7XHJcbiAgICAgICAgaWYgKCFjb250ZW50KSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgcGx1Z2luID0gY29udGVudC5wbHVnaW47XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcGx1Z2luLnN0YXJ0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuZW1pdChcInN0YXJ0ZWRcIiwgY29udGVudC5pZCk7XHJcbiAgICAgICAgICAgIFRvYXN0cy5zaG93KGAke2NvbnRlbnQubmFtZX0gdiR7Y29udGVudC52ZXJzaW9ufSBoYXMgc3RhcnRlZC5gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRlW2NvbnRlbnQuaWRdID0gZmFsc2U7XHJcbiAgICAgICAgICAgIFRvYXN0cy5lcnJvcihgJHtjb250ZW50Lm5hbWV9IHYke2NvbnRlbnQudmVyc2lvbn0gY291bGQgbm90IGJlIHN0YXJ0ZWQuYCk7XHJcbiAgICAgICAgICAgIFV0aWxpdGllcy5lcnIoXCJQbHVnaW5zXCIsIGNvbnRlbnQubmFtZSArIFwiIGNvdWxkIG5vdCBiZSBzdGFydGVkLlwiLCBlcnIpO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbnRlbnRFcnJvcihjb250ZW50Lm5hbWUsIGNvbnRlbnQuZmlsZW5hbWUsIFwic3RhcnQoKSBjb3VsZCBub3QgYmUgZmlyZWQuXCIsIHttZXNzYWdlOiBlcnIubWVzc2FnZSwgc3RhY2s6IGVyci5zdGFja30pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdG9wUGx1Z2luKGlkT3JDb250ZW50KSB7XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IHR5cGVvZihpZE9yQ29udGVudCkgPT0gXCJzdHJpbmdcIiA/IHRoaXMuY29udGVudExpc3QuZmluZChwID0+IHAuaWQgPT0gaWRPckNvbnRlbnQpIDogaWRPckNvbnRlbnQ7XHJcbiAgICAgICAgaWYgKCFjb250ZW50KSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgcGx1Z2luID0gY29udGVudC5wbHVnaW47XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcGx1Z2luLnN0b3AoKTtcclxuICAgICAgICAgICAgdGhpcy5lbWl0KFwic3RvcHBlZFwiLCBjb250ZW50LmlkKTtcclxuICAgICAgICAgICAgVG9hc3RzLnNob3coYCR7Y29udGVudC5uYW1lfSB2JHtjb250ZW50LnZlcnNpb259IGhhcyBzdG9wcGVkLmApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGVbY29udGVudC5pZF0gPSBmYWxzZTtcclxuICAgICAgICAgICAgVG9hc3RzLmVycm9yKGAke2NvbnRlbnQubmFtZX0gdiR7Y29udGVudC52ZXJzaW9ufSBjb3VsZCBub3QgYmUgc3RvcHBlZC5gKTtcclxuICAgICAgICAgICAgVXRpbGl0aWVzLmVycihcIlBsdWdpbnNcIiwgY29udGVudC5uYW1lICsgXCIgY291bGQgbm90IGJlIHN0b3BwZWQuXCIsIGVycik7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29udGVudEVycm9yKGNvbnRlbnQubmFtZSwgY29udGVudC5maWxlbmFtZSwgXCJzdG9wKCkgY291bGQgbm90IGJlIGZpcmVkLlwiLCB7bWVzc2FnZTogZXJyLm1lc3NhZ2UsIHN0YWNrOiBlcnIuc3RhY2t9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0dXBGdW5jdGlvbnMoKSB7XHJcbiAgICAgICAgZWxlY3Ryb25SZW1vdGUuZ2V0Q3VycmVudFdlYkNvbnRlbnRzKCkub24oXCJkaWQtbmF2aWdhdGUtaW4tcGFnZVwiLCB0aGlzLm9uU3dpdGNoLmJpbmQodGhpcykpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudCwge1xyXG4gICAgICAgICAgICBjaGlsZExpc3Q6IHRydWUsXHJcbiAgICAgICAgICAgIHN1YnRyZWU6IHRydWVcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvblN3aXRjaCgpIHtcclxuICAgICAgICB0aGlzLmVtaXQoXCJwYWdlLXN3aXRjaFwiKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29udGVudExpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgcGx1Z2luID0gdGhpcy5jb250ZW50TGlzdFtpXS5wbHVnaW47XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zdGF0ZVt0aGlzLmNvbnRlbnRMaXN0W2ldLmlkXSkgY29udGludWU7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YocGx1Z2luLm9uU3dpdGNoKSA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgICAgICAgICB0cnkgeyBwbHVnaW4ub25Td2l0Y2goKTsgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycikgeyBVdGlsaXRpZXMuZXJyKFwiUGx1Z2luc1wiLCBcIlVuYWJsZSB0byBmaXJlIG9uU3dpdGNoIGZvciBcIiArIHRoaXMuY29udGVudExpc3RbaV0ubmFtZSArIFwiLlwiLCBlcnIpOyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25NdXRhdGlvbihtdXRhdGlvbikge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb250ZW50TGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBwbHVnaW4gPSB0aGlzLmNvbnRlbnRMaXN0W2ldLnBsdWdpbjtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0YXRlW3RoaXMuY29udGVudExpc3RbaV0uaWRdKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwbHVnaW4ub2JzZXJ2ZXIgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHsgcGx1Z2luLm9ic2VydmVyKG11dGF0aW9uKTsgfVxyXG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycikgeyBVdGlsaXRpZXMuZXJyKFwiUGx1Z2luc1wiLCBcIlVuYWJsZSB0byBmaXJlIG9ic2VydmVyIGZvciBcIiArIHRoaXMuY29udGVudExpc3RbaV0ubmFtZSArIFwiLlwiLCBlcnIpOyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/pluginmanager.js\n");
/***/ }),
/***/ "./src/modules/settingsmanager.js":
/*!****************************************!*\
!*** ./src/modules/settingsmanager.js ***!
\****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _webpackmodules__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./webpackmodules */ \"./src/modules/webpackmodules.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class SettingsManager {\n constructor() {\n this.state = {};\n this.collections = [];\n this.panels = [];\n this.registerCollection(\"settings\", \"Settings\", data__WEBPACK_IMPORTED_MODULE_0__[\"SettingsConfig\"]);\n }\n\n initialize() {\n _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].initialize();\n this.loadSettings();\n this.patchSections();\n }\n\n registerCollection(id, name, settings, button = null) {\n if (this.collections.find(c => c.id == id)) return _utilities__WEBPACK_IMPORTED_MODULE_5__[\"default\"].err(\"Settings\", \"Already have a collection with id \" + id);\n this.collections.push({\n type: \"collection\",\n id: id,\n name: name,\n settings: settings,\n button: button\n });\n this.setup();\n }\n\n removeCollection(id) {\n const location = this.collections.findIndex(c => c.id == id);\n if (!location < 0) return _utilities__WEBPACK_IMPORTED_MODULE_5__[\"default\"].err(\"Settings\", \"No collection with id \" + id);\n this.collections.splice(location, 1);\n }\n\n registerPanel(id, name, options) {\n if (this.panels.find(p => p.id == id)) return _utilities__WEBPACK_IMPORTED_MODULE_5__[\"default\"].err(\"Settings\", \"Already have a panel with id \" + id);\n const {\n element,\n onClick,\n order = 1\n } = options;\n const section = {\n id,\n order,\n label: name,\n section: name\n };\n if (onClick) section.clickListener = onClick;\n if (element) section.element = element instanceof _webpackmodules__WEBPACK_IMPORTED_MODULE_3__[\"DiscordModules\"].React.Component ? () => _webpackmodules__WEBPACK_IMPORTED_MODULE_3__[\"DiscordModules\"].React.createElement(element, {}) : typeof element == \"function\" ? element : () => element;\n this.panels.push(section);\n }\n\n removePanel(id) {\n const location = this.panels.findIndex(c => c.id == id);\n if (!location < 0) return _utilities__WEBPACK_IMPORTED_MODULE_5__[\"default\"].err(\"Settings\", \"No collection with id \" + id);\n this.panels.splice(location, 1);\n }\n\n getPath(path, collectionId = \"\", categoryId = \"\") {\n const collection = path.length == 3 ? path[0] : collectionId;\n const category = path.length == 3 ? path[1] : path.length == 2 ? path[0] : categoryId;\n const setting = path[path.length - 1];\n return {\n collection,\n category,\n setting\n };\n }\n\n setup() {\n for (let c = 0; c < this.collections.length; c++) {\n const collection = this.collections[c];\n const categories = this.collections[c].settings;\n if (!this.state[collection.id]) this.state[collection.id] = {};\n\n for (let cc = 0; cc < categories.length; cc++) {\n const category = categories[cc];\n\n if (category.type != \"category\") {\n if (!this.state[collection.id].hasOwnProperty(category.id)) this.state[collection.id][category.id] = category.value;\n } else {\n if (!this.state[collection.id].hasOwnProperty(category.id)) this.state[collection.id][category.id] = {};\n\n for (let s = 0; s < category.settings.length; s++) {\n const setting = category.settings[s];\n if (!this.state[collection.id][category.id].hasOwnProperty(setting.id)) this.state[collection.id][category.id][setting.id] = setting.value;\n\n if (setting.enableWith) {\n const path = this.getPath(setting.enableWith.split(\".\"), collection.id, category.id);\n if (setting.hasOwnProperty(\"disabled\")) continue;\n Object.defineProperty(setting, \"disabled\", {\n get: () => {\n return !this.state[path.collection][path.category][path.setting];\n }\n });\n }\n\n if (setting.disableWith) {\n const path = this.getPath(setting.disableWith.split(\".\"), collection.id, category.id);\n if (setting.hasOwnProperty(\"disabled\")) continue;\n Object.defineProperty(setting, \"disabled\", {\n get: () => {\n return this.state[path.collection][path.category][path.setting];\n }\n });\n }\n }\n }\n }\n }\n }\n\n async patchSections() {\n _utilities__WEBPACK_IMPORTED_MODULE_5__[\"default\"].monkeyPatch(_webpackmodules__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getByDisplayName(\"FluxContainer(GuildSettings)\").prototype, \"render\", {\n after: data => {\n data.thisObject._reactInternalFiber.return.return.return.return.return.return.memoizedProps.id = \"guild-settings\";\n }\n });\n const UserSettings = await this.getUserSettings();\n _utilities__WEBPACK_IMPORTED_MODULE_5__[\"default\"].monkeyPatch(UserSettings.prototype, \"render\", {\n after: data => {\n data.thisObject._reactInternalFiber.return.return.return.return.return.return.return.memoizedProps.id = \"user-settings\";\n }\n });\n _utilities__WEBPACK_IMPORTED_MODULE_5__[\"default\"].monkeyPatch(UserSettings.prototype, \"generateSections\", {\n after: data => {\n let location = data.returnValue.findIndex(s => s.section.toLowerCase() == \"linux\") + 1;\n\n const insert = section => {\n data.returnValue.splice(location, 0, section);\n location++;\n };\n\n insert({\n section: \"DIVIDER\"\n });\n insert({\n section: \"HEADER\",\n label: \"BandagedBD\"\n });\n\n for (const collection of this.collections) {\n if (collection.disabled) continue;\n insert({\n section: collection.name,\n label: collection.name,\n element: () => ui__WEBPACK_IMPORTED_MODULE_4__[\"SettingsPanel\"].buildSettingsPanel(collection.name, collection.settings, this.state[collection.id], this.onSettingChange.bind(this, collection.id), collection.button ? collection.button : null)\n });\n }\n\n for (const panel of this.panels.sort((a, b) => a.order > b.order)) {\n if (panel.clickListener) panel.onClick = event => panel.clickListener(data.thisObject, event, data.returnValue);\n insert(panel);\n }\n\n insert({\n section: \"CUSTOM\",\n element: () => ui__WEBPACK_IMPORTED_MODULE_4__[\"SettingsPanel\"].attribution\n });\n }\n });\n this.forceUpdate();\n }\n\n forceUpdate() {\n const viewClass = _webpackmodules__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getByProps(\"standardSidebarView\").standardSidebarView.split(\" \")[0];\n const node = document.querySelector(`.${viewClass}`);\n _utilities__WEBPACK_IMPORTED_MODULE_5__[\"default\"].getInternalInstance(node).return.return.return.return.return.return.stateNode.forceUpdate();\n }\n\n getUserSettings() {\n return new Promise(resolve => {\n const cancel = _utilities__WEBPACK_IMPORTED_MODULE_5__[\"default\"].monkeyPatch(_webpackmodules__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getByProps(\"getUserSettingsSections\").default.prototype, \"render\", {\n after: data => {\n resolve(data.returnValue.type);\n data.thisObject.forceUpdate();\n cancel();\n }\n });\n });\n }\n\n saveSettings() {\n _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].setData(\"settings\", this.state);\n }\n\n loadSettings() {\n const previousState = _datastore__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getData(\"settings\");\n if (!previousState) return this.saveSettings();\n\n for (const collection in this.state) {\n if (!previousState[collection]) Object.assign(previousState, {\n [collection]: this.state[collection]\n });\n\n for (const category in this.state[collection]) {\n if (!previousState[collection][category]) Object.assign(previousState[collection], {\n [category]: this.state[collection][category]\n });\n\n for (const setting in this.state[collection][category]) {\n if (previousState[collection][category][setting] == undefined) continue;\n this.state[collection][category][setting] = previousState[collection][category][setting];\n }\n }\n }\n\n this.saveSettings(); // in case new things were added\n }\n\n onSettingChange(collection, category, id, value) {\n const before = this.collections.length + this.panels.length;\n this.state[collection][category][id] = value;\n _emitter__WEBPACK_IMPORTED_MODULE_2__[\"default\"].dispatch(\"setting-updated\", collection, category, id, value);\n const after = this.collections.length + this.panels.length;\n this.saveSettings();\n if (before != after) setTimeout(this.forceUpdate.bind(this), 50);\n }\n\n getSetting(collection, category, id) {\n if (arguments.length == 2) return this.collections[0].find(c => c.id == arguments[0]).settings.find(s => s.id == arguments[1]);\n return this.collections.find(c => c.id == collection).find(c => c.id == category).settings.find(s => s.id == id);\n }\n\n get(collection, category, id) {\n if (arguments.length == 2) {\n id = category;\n category = collection;\n collection = \"settings\";\n }\n\n if (!this.state[collection] || !this.state[collection][category]) return false;\n return this.state[collection][category][id];\n }\n\n set(collection, category, id, value) {\n if (arguments.length == 3) {\n value = id;\n id = category;\n category = collection;\n collection = \"settings\";\n }\n\n return this.onSettingChange(collection, category, id, value);\n }\n\n on(collection, category, identifier, callback) {\n const handler = (col, cat, id, value) => {\n if (col !== collection || cat !== category || id !== identifier) return;\n callback(value);\n };\n\n _emitter__WEBPACK_IMPORTED_MODULE_2__[\"default\"].on(\"setting-updated\", handler);\n return () => {\n _emitter__WEBPACK_IMPORTED_MODULE_2__[\"default\"].off(\"setting-updated\", handler);\n };\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvc2V0dGluZ3NtYW5hZ2VyLmpzP2IyZjkiXSwibmFtZXMiOlsiU2V0dGluZ3NNYW5hZ2VyIiwiY29uc3RydWN0b3IiLCJzdGF0ZSIsImNvbGxlY3Rpb25zIiwicGFuZWxzIiwicmVnaXN0ZXJDb2xsZWN0aW9uIiwiU2V0dGluZ3NDb25maWciLCJpbml0aWFsaXplIiwiRGF0YVN0b3JlIiwibG9hZFNldHRpbmdzIiwicGF0Y2hTZWN0aW9ucyIsImlkIiwibmFtZSIsInNldHRpbmdzIiwiYnV0dG9uIiwiZmluZCIsImMiLCJVdGlsaXRpZXMiLCJlcnIiLCJwdXNoIiwidHlwZSIsInNldHVwIiwicmVtb3ZlQ29sbGVjdGlvbiIsImxvY2F0aW9uIiwiZmluZEluZGV4Iiwic3BsaWNlIiwicmVnaXN0ZXJQYW5lbCIsIm9wdGlvbnMiLCJwIiwiZWxlbWVudCIsIm9uQ2xpY2siLCJvcmRlciIsInNlY3Rpb24iLCJsYWJlbCIsImNsaWNrTGlzdGVuZXIiLCJEaXNjb3JkTW9kdWxlcyIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY3JlYXRlRWxlbWVudCIsInJlbW92ZVBhbmVsIiwiZ2V0UGF0aCIsInBhdGgiLCJjb2xsZWN0aW9uSWQiLCJjYXRlZ29yeUlkIiwiY29sbGVjdGlvbiIsImxlbmd0aCIsImNhdGVnb3J5Iiwic2V0dGluZyIsImNhdGVnb3JpZXMiLCJjYyIsImhhc093blByb3BlcnR5IiwidmFsdWUiLCJzIiwiZW5hYmxlV2l0aCIsInNwbGl0IiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXQiLCJkaXNhYmxlV2l0aCIsIm1vbmtleVBhdGNoIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeURpc3BsYXlOYW1lIiwicHJvdG90eXBlIiwiYWZ0ZXIiLCJkYXRhIiwidGhpc09iamVjdCIsIl9yZWFjdEludGVybmFsRmliZXIiLCJyZXR1cm4iLCJtZW1vaXplZFByb3BzIiwiVXNlclNldHRpbmdzIiwiZ2V0VXNlclNldHRpbmdzIiwicmV0dXJuVmFsdWUiLCJ0b0xvd2VyQ2FzZSIsImluc2VydCIsImRpc2FibGVkIiwiU2V0dGluZ3NSZW5kZXJlciIsImJ1aWxkU2V0dGluZ3NQYW5lbCIsIm9uU2V0dGluZ0NoYW5nZSIsImJpbmQiLCJwYW5lbCIsInNvcnQiLCJhIiwiYiIsImV2ZW50IiwiYXR0cmlidXRpb24iLCJmb3JjZVVwZGF0ZSIsInZpZXdDbGFzcyIsImdldEJ5UHJvcHMiLCJzdGFuZGFyZFNpZGViYXJWaWV3Iiwibm9kZSIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImdldEludGVybmFsSW5zdGFuY2UiLCJzdGF0ZU5vZGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsImNhbmNlbCIsImRlZmF1bHQiLCJzYXZlU2V0dGluZ3MiLCJzZXREYXRhIiwicHJldmlvdXNTdGF0ZSIsImdldERhdGEiLCJhc3NpZ24iLCJ1bmRlZmluZWQiLCJiZWZvcmUiLCJFdmVudHMiLCJkaXNwYXRjaCIsInNldFRpbWVvdXQiLCJnZXRTZXR0aW5nIiwiYXJndW1lbnRzIiwic2V0Iiwib24iLCJpZGVudGlmaWVyIiwiY2FsbGJhY2siLCJoYW5kbGVyIiwiY29sIiwiY2F0Iiwib2ZmIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVlLG1FQUFJLE1BQU1BLGVBQU4sQ0FBc0I7QUFFckNDLGFBQVcsR0FBRztBQUNWLFNBQUtDLEtBQUwsR0FBYSxFQUFiO0FBQ0EsU0FBS0MsV0FBTCxHQUFtQixFQUFuQjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxFQUFkO0FBQ0EsU0FBS0Msa0JBQUwsQ0FBd0IsVUFBeEIsRUFBb0MsVUFBcEMsRUFBZ0RDLG1EQUFoRDtBQUNIOztBQUVEQyxZQUFVLEdBQUc7QUFDVEMsc0RBQVMsQ0FBQ0QsVUFBVjtBQUNBLFNBQUtFLFlBQUw7QUFDQSxTQUFLQyxhQUFMO0FBQ0g7O0FBRURMLG9CQUFrQixDQUFDTSxF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LFVBQVIsSUFBc0J3RSxHQUFHLEtBQUt0RSxRQUE5QixJQUEwQ25DLEVBQUUsS0FBS3FHLFVBQXJELEVBQWlFO0FBQ2pFQyxjQUFRLENBQUM5RCxLQUFELENBQVI7QUFDSCxLQUhEOztBQUlBc0Qsb0RBQU0sQ0FBQ00sRUFBUCxDQUFVLGlCQUFWLEVBQTZCRyxPQUE3QjtBQUNBLFdBQU8sTUFBTTtBQUFDVCxzREFBTSxDQUFDWSxHQUFQLENBQVcsaUJBQVgsRUFBOEJILE9BQTlCO0FBQXdDLEtBQXREO0FBQ0g7O0FBNU1vQyxDQUExQixFQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvc2V0dGluZ3NtYW5hZ2VyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTZXR0aW5nc0NvbmZpZ30gZnJvbSBcImRhdGFcIjtcclxuaW1wb3J0IERhdGFTdG9yZSBmcm9tIFwiLi9kYXRhc3RvcmVcIjtcclxuaW1wb3J0IEV2ZW50cyBmcm9tIFwiLi9lbWl0dGVyXCI7XHJcbmltcG9ydCBXZWJwYWNrTW9kdWxlcywge0Rpc2NvcmRNb2R1bGVzfSBmcm9tIFwiLi93ZWJwYWNrbW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IHtTZXR0aW5nc1BhbmVsIGFzIFNldHRpbmdzUmVuZGVyZXJ9IGZyb20gXCJ1aVwiO1xyXG5pbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuL3V0aWxpdGllc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IGNsYXNzIFNldHRpbmdzTWFuYWdlciB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHt9O1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbnMgPSBbXTtcclxuICAgICAgICB0aGlzLnBhbmVscyA9IFtdO1xyXG4gICAgICAgIHRoaXMucmVnaXN0ZXJDb2xsZWN0aW9uKFwic2V0dGluZ3NcIiwgXCJTZXR0aW5nc1wiLCBTZXR0aW5nc0NvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZSgpIHtcclxuICAgICAgICBEYXRhU3RvcmUuaW5pdGlhbGl6ZSgpO1xyXG4gICAgICAgIHRoaXMubG9hZFNldHRpbmdzKCk7XHJcbiAgICAgICAgdGhpcy5wYXRjaFNlY3Rpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJDb2xsZWN0aW9uKGlkLCBuYW1lLCBzZXR0aW5ncywgYnV0dG9uID0gbnVsbCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbGxlY3Rpb25zLmZpbmQoYyA9PiBjLmlkID09IGlkKSkgcmV0dXJuIFV0aWxpdGllcy5lcnIoXCJTZXR0aW5nc1wiLCBcIkFscmVhZHkgaGF2ZSBhIGNvbGxlY3Rpb24gd2l0aCBpZCBcIiArIGlkKTtcclxuICAgICAgICB0aGlzLmNvbGxlY3Rpb25zLnB1c2goe1xyXG4gICAgICAgICAgICB0eXBlOiBcImNvbGxlY3Rpb25cIixcclxuICAgICAgICAgICAgaWQ6IGlkLFxyXG4gICAgICAgICAgICBuYW1lOiBuYW1lLFxyXG4gICAgICAgICAgICBzZXR0aW5nczogc2V0dGluZ3MsXHJcbiAgICAgICAgICAgIGJ1dHRvbjogYnV0dG9uXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zZXR1cCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUNvbGxlY3Rpb24oaWQpIHtcclxuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMuY29sbGVjdGlvbnMuZmluZEluZGV4KGMgPT4gYy5pZCA9PSBpZCk7XHJcbiAgICAgICAgaWYgKCFsb2NhdGlvbiA8IDApIHJldHVybiBVdGlsaXRpZXMuZXJyKFwiU2V0dGluZ3NcIiwgXCJObyBjb2xsZWN0aW9uIHdpdGggaWQgXCIgKyBpZCk7XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9ucy5zcGxpY2UobG9jYXRpb24sIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyUGFuZWwoaWQsIG5hbWUsIG9wdGlvbnMpIHtcclxuICAgICAgICBpZiAodGhpcy5wYW5lbHMuZmluZChwID0+IHAuaWQgPT0gaWQpKSByZXR1cm4gVXRpbGl0aWVzLmVycihcIlNldHRpbmdzXCIsIFwiQWxyZWFkeSBoYXZlIGEgcGFuZWwgd2l0aCBpZCBcIiArIGlkKTtcclxuICAgICAgICBjb25zdCB7ZWxlbWVudCwgb25DbGljaywgb3JkZXIgPSAxfSA9IG9wdGlvbnM7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHtpZCwgb3JkZXIsIGxhYmVsOiBuYW1lLCBzZWN0aW9uOiBuYW1lfTtcclxuICAgICAgICBpZiAob25DbGljaykgc2VjdGlvbi5jbGlja0xpc3RlbmVyID0gb25DbGljaztcclxuICAgICAgICBpZiAoZWxlbWVudCkgc2VjdGlvbi5lbGVtZW50ID0gZWxlbWVudCBpbnN0YW5jZW9mIERpc2NvcmRNb2R1bGVzLlJlYWN0LkNvbXBvbmVudCA/ICgpID0+IERpc2NvcmRNb2R1bGVzLlJlYWN0LmNyZWF0ZUVsZW1lbnQoZWxlbWVudCwge30pIDogdHlwZW9mKGVsZW1lbnQpID09IFwiZnVuY3Rpb25cIiA/IGVsZW1lbnQgOiAoKSA9PiBlbGVtZW50O1xyXG4gICAgICAgIHRoaXMucGFuZWxzLnB1c2goc2VjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlUGFuZWwoaWQpIHtcclxuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMucGFuZWxzLmZpbmRJbmRleChjID0+IGMuaWQgPT0gaWQpO1xyXG4gICAgICAgIGlmICghbG9jYXRpb24gPCAwKSByZXR1cm4gVXRpbGl0aWVzLmVycihcIlNldHRpbmdzXCIsIFwiTm8gY29sbGVjdGlvbiB3aXRoIGlkIFwiICsgaWQpO1xyXG4gICAgICAgIHRoaXMucGFuZWxzLnNwbGljZShsb2NhdGlvbiwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGF0aChwYXRoLCBjb2xsZWN0aW9uSWQgPSBcIlwiLCBjYXRlZ29yeUlkID0gXCJcIikge1xyXG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBwYXRoLmxlbmd0aCA9PSAzID8gcGF0aFswXSA6IGNvbGxlY3Rpb25JZDtcclxuICAgICAgICBjb25zdCBjYXRlZ29yeSA9IHBhdGgubGVuZ3RoID09IDMgPyBwYXRoWzFdIDogcGF0aC5sZW5ndGggPT0gMiA/IHBhdGhbMF0gOiBjYXRlZ29yeUlkO1xyXG4gICAgICAgIGNvbnN0IHNldHRpbmcgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgcmV0dXJuIHtjb2xsZWN0aW9uLCBjYXRlZ29yeSwgc2V0dGluZ307XHJcbiAgICB9XHJcblxyXG4gICAgc2V0dXAoKSB7XHJcbiAgICAgICAgZm9yIChsZXQgYyA9IDA7IGMgPCB0aGlzLmNvbGxlY3Rpb25zLmxlbmd0aDsgYysrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb25zW2NdO1xyXG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gdGhpcy5jb2xsZWN0aW9uc1tjXS5zZXR0aW5ncztcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdKSB0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdID0ge307XHJcbiAgICAgICAgICAgIGZvciAobGV0IGNjID0gMDsgY2MgPCBjYXRlZ29yaWVzLmxlbmd0aDsgY2MrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSBjYXRlZ29yaWVzW2NjXTtcclxuICAgICAgICAgICAgICAgIGlmIChjYXRlZ29yeS50eXBlICE9IFwiY2F0ZWdvcnlcIikge2lmICghdGhpcy5zdGF0ZVtjb2xsZWN0aW9uLmlkXS5oYXNPd25Qcm9wZXJ0eShjYXRlZ29yeS5pZCkpIHRoaXMuc3RhdGVbY29sbGVjdGlvbi5pZF1bY2F0ZWdvcnkuaWRdID0gY2F0ZWdvcnkudmFsdWU7fVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdLmhhc093blByb3BlcnR5KGNhdGVnb3J5LmlkKSkgdGhpcy5zdGF0ZVtjb2xsZWN0aW9uLmlkXVtjYXRlZ29yeS5pZF0gPSB7fTtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBzID0gMDsgcyA8IGNhdGVnb3J5LnNldHRpbmdzLmxlbmd0aDsgcysrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNldHRpbmcgPSBjYXRlZ29yeS5zZXR0aW5nc1tzXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdW2NhdGVnb3J5LmlkXS5oYXNPd25Qcm9wZXJ0eShzZXR0aW5nLmlkKSkgdGhpcy5zdGF0ZVtjb2xsZWN0aW9uLmlkXVtjYXRlZ29yeS5pZF1bc2V0dGluZy5pZF0gPSBzZXR0aW5nLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2V0dGluZy5lbmFibGVXaXRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRQYXRoKHNldHRpbmcuZW5hYmxlV2l0aC5zcGxpdChcIi5cIiksIGNvbGxlY3Rpb24uaWQsIGNhdGVnb3J5LmlkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZXR0aW5nLmhhc093blByb3BlcnR5KFwiZGlzYWJsZWRcIikpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNldHRpbmcsIFwiZGlzYWJsZWRcIiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIXRoaXMuc3RhdGVbcGF0aC5jb2xsZWN0aW9uXVtwYXRoLmNhdGVnb3J5XVtwYXRoLnNldHRpbmddO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2V0dGluZy5kaXNhYmxlV2l0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IHRoaXMuZ2V0UGF0aChzZXR0aW5nLmRpc2FibGVXaXRoLnNwbGl0KFwiLlwiKSwgY29sbGVjdGlvbi5pZCwgY2F0ZWdvcnkuaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNldHRpbmcuaGFzT3duUHJvcGVydHkoXCJkaXNhYmxlZFwiKSkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2V0dGluZywgXCJkaXNhYmxlZFwiLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnN0YXRlW3BhdGguY29sbGVjdGlvbl1bcGF0aC5jYXRlZ29yeV1bcGF0aC5zZXR0aW5nXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBwYXRjaFNlY3Rpb25zKCkge1xyXG4gICAgICAgIFV0aWxpdGllcy5tb25rZXlQYXRjaChXZWJwYWNrTW9kdWxlcy5nZXRCeURpc3BsYXlOYW1lKFwiRmx1eENvbnRhaW5lcihHdWlsZFNldHRpbmdzKVwiKS5wcm90b3R5cGUsIFwicmVuZGVyXCIsIHthZnRlcjogKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgZGF0YS50aGlzT2JqZWN0Ll9yZWFjdEludGVybmFsRmliZXIucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ubWVtb2l6ZWRQcm9wcy5pZCA9IFwiZ3VpbGQtc2V0dGluZ3NcIjtcclxuICAgICAgICB9fSk7XHJcbiAgICAgICAgY29uc3QgVXNlclNldHRpbmdzID0gYXdhaXQgdGhpcy5nZXRVc2VyU2V0dGluZ3MoKTtcclxuICAgICAgICBVdGlsaXRpZXMubW9ua2V5UGF0Y2goVXNlclNldHRpbmdzLnByb3RvdHlwZSwgXCJyZW5kZXJcIiwge2FmdGVyOiAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICBkYXRhLnRoaXNPYmplY3QuX3JlYWN0SW50ZXJuYWxGaWJlci5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ubWVtb2l6ZWRQcm9wcy5pZCA9IFwidXNlci1zZXR0aW5nc1wiO1xyXG4gICAgICAgIH19KTtcclxuICAgICAgICBVdGlsaXRpZXMubW9ua2V5UGF0Y2goVXNlclNldHRpbmdzLnByb3RvdHlwZSwgXCJnZW5lcmF0ZVNlY3Rpb25zXCIsIHthZnRlcjogKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgbGV0IGxvY2F0aW9uID0gZGF0YS5yZXR1cm5WYWx1ZS5maW5kSW5kZXgocyA9PiBzLnNlY3Rpb24udG9Mb3dlckNhc2UoKSA9PSBcImxpbnV4XCIpICsgMTtcclxuICAgICAgICAgICAgY29uc3QgaW5zZXJ0ID0gKHNlY3Rpb24pID0+IHtcclxuICAgICAgICAgICAgICAgIGRhdGEucmV0dXJuVmFsdWUuc3BsaWNlKGxvY2F0aW9uLCAwLCBzZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIGxvY2F0aW9uKys7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGluc2VydCh7c2VjdGlvbjogXCJESVZJREVSXCJ9KTtcclxuICAgICAgICAgICAgaW5zZXJ0KHtzZWN0aW9uOiBcIkhFQURFUlwiLCBsYWJlbDogXCJCYW5kYWdlZEJEXCJ9KTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIG9mIHRoaXMuY29sbGVjdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChjb2xsZWN0aW9uLmRpc2FibGVkKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGluc2VydCh7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbjogY29sbGVjdGlvbi5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBjb2xsZWN0aW9uLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogKCkgPT4gU2V0dGluZ3NSZW5kZXJlci5idWlsZFNldHRpbmdzUGFuZWwoY29sbGVjdGlvbi5uYW1lLCBjb2xsZWN0aW9uLnNldHRpbmdzLCB0aGlzLnN0YXRlW2NvbGxlY3Rpb24uaWRdLCB0aGlzLm9uU2V0dGluZ0NoYW5nZS5iaW5kKHRoaXMsIGNvbGxlY3Rpb24uaWQpLCBjb2xsZWN0aW9uLmJ1dHRvbiA/IGNvbGxlY3Rpb24uYnV0dG9uIDogbnVsbClcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGFuZWwgb2YgdGhpcy5wYW5lbHMuc29ydCgoYSxiKSA9PiBhLm9yZGVyID4gYi5vcmRlcikpIHtcclxuICAgICAgICAgICAgICAgIGlmIChwYW5lbC5jbGlja0xpc3RlbmVyKSBwYW5lbC5vbkNsaWNrID0gKGV2ZW50KSA9PiBwYW5lbC5jbGlja0xpc3RlbmVyKGRhdGEudGhpc09iamVjdCwgZXZlbnQsIGRhdGEucmV0dXJuVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgaW5zZXJ0KHBhbmVsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpbnNlcnQoe3NlY3Rpb246IFwiQ1VTVE9NXCIsIGVsZW1lbnQ6ICgpID0+IFNldHRpbmdzUmVuZGVyZXIuYXR0cmlidXRpb259KTtcclxuICAgICAgICB9fSk7XHJcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcmNlVXBkYXRlKCkge1xyXG4gICAgICAgIGNvbnN0IHZpZXdDbGFzcyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzdGFuZGFyZFNpZGViYXJWaWV3XCIpLnN0YW5kYXJkU2lkZWJhclZpZXcuc3BsaXQoXCIgXCIpWzBdO1xyXG4gICAgICAgIGNvbnN0IG5vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHt2aWV3Q2xhc3N9YCk7XHJcbiAgICAgICAgVXRpbGl0aWVzLmdldEludGVybmFsSW5zdGFuY2Uobm9kZSkucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4uc3RhdGVOb2RlLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VXNlclNldHRpbmdzKCkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY2FuY2VsID0gVXRpbGl0aWVzLm1vbmtleVBhdGNoKFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRVc2VyU2V0dGluZ3NTZWN0aW9uc1wiKS5kZWZhdWx0LnByb3RvdHlwZSwgXCJyZW5kZXJcIiwge2FmdGVyOiAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShkYXRhLnJldHVyblZhbHVlLnR5cGUpO1xyXG4gICAgICAgICAgICAgICAgZGF0YS50aGlzT2JqZWN0LmZvcmNlVXBkYXRlKCk7XHJcbiAgICAgICAgICAgICAgICBjYW5jZWwoKTtcclxuICAgICAgICAgICAgfX0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVTZXR0aW5ncygpIHtcclxuICAgICAgICBEYXRhU3RvcmUuc2V0RGF0YShcInNldHRpbmdzXCIsIHRoaXMuc3RhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRTZXR0aW5ncygpIHtcclxuICAgICAgICBjb25zdCBwcmV2aW91c1N0YXRlID0gRGF0YVN0b3JlLmdldERhdGEoXCJzZXR0aW5nc1wiKTtcclxuICAgICAgICBpZiAoIXByZXZpb3VzU3RhdGUpIHJldHVybiB0aGlzLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBpbiB0aGlzLnN0YXRlKSB7XHJcbiAgICAgICAgICAgIGlmICghcHJldmlvdXNTdGF0ZVtjb2xsZWN0aW9uXSkgT2JqZWN0LmFzc2lnbihwcmV2aW91c1N0YXRlLCB7W2NvbGxlY3Rpb25dOiB0aGlzLnN0YXRlW2NvbGxlY3Rpb25dfSk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2F0ZWdvcnkgaW4gdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91c1N0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XSkgT2JqZWN0LmFzc2lnbihwcmV2aW91c1N0YXRlW2NvbGxlY3Rpb25dLCB7W2NhdGVnb3J5XTogdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV19KTtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc2V0dGluZyBpbiB0aGlzLnN0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1N0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XVtzZXR0aW5nXSA9PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVbY29sbGVjdGlvbl1bY2F0ZWdvcnldW3NldHRpbmddID0gcHJldmlvdXNTdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV1bc2V0dGluZ107XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2F2ZVNldHRpbmdzKCk7IC8vIGluIGNhc2UgbmV3IHRoaW5ncyB3ZXJlIGFkZGVkXHJcbiAgICB9XHJcblxyXG4gICAgb25TZXR0aW5nQ2hhbmdlKGNvbGxlY3Rpb24sIGNhdGVnb3J5LCBpZCwgdmFsdWUpIHtcclxuICAgICAgICBjb25zdCBiZWZvcmUgPSB0aGlzLmNvbGxlY3Rpb25zLmxlbmd0aCArIHRoaXMucGFuZWxzLmxlbmd0aDtcclxuICAgICAgICB0aGlzLnN0YXRlW2NvbGxlY3Rpb25dW2NhdGVnb3J5XVtpZF0gPSB2YWx1ZTtcclxuICAgICAgICBFdmVudHMuZGlzcGF0Y2goXCJzZXR0aW5nLXVwZGF0ZWRcIiwgY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCB2YWx1ZSk7XHJcbiAgICAgICAgY29uc3QgYWZ0ZXIgPSB0aGlzLmNvbGxlY3Rpb25zLmxlbmd0aCArIHRoaXMucGFuZWxzLmxlbmd0aDtcclxuICAgICAgICB0aGlzLnNhdmVTZXR0aW5ncygpO1xyXG4gICAgICAgIGlmIChiZWZvcmUgIT0gYWZ0ZXIpIHNldFRpbWVvdXQodGhpcy5mb3JjZVVwZGF0ZS5iaW5kKHRoaXMpLCA1MCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2V0dGluZyhjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQpIHtcclxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAyKSByZXR1cm4gdGhpcy5jb2xsZWN0aW9uc1swXS5maW5kKGMgPT4gYy5pZCA9PSBhcmd1bWVudHNbMF0pLnNldHRpbmdzLmZpbmQocyA9PiBzLmlkID09IGFyZ3VtZW50c1sxXSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbnMuZmluZChjID0+IGMuaWQgPT0gY29sbGVjdGlvbikuZmluZChjID0+IGMuaWQgPT0gY2F0ZWdvcnkpLnNldHRpbmdzLmZpbmQocyA9PiBzLmlkID09IGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkKSB7XHJcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMikge1xyXG4gICAgICAgICAgICBpZCA9IGNhdGVnb3J5O1xyXG4gICAgICAgICAgICBjYXRlZ29yeSA9IGNvbGxlY3Rpb247XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSBcInNldHRpbmdzXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXSB8fCAhdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV0pIHJldHVybiBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZVtjb2xsZWN0aW9uXVtjYXRlZ29yeV1baWRdO1xyXG4gICAgfVxyXG5cclxuICAgIHNldChjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQsIHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IGlkO1xyXG4gICAgICAgICAgICBpZCA9IGNhdGVnb3J5O1xyXG4gICAgICAgICAgICBjYXRlZ29yeSA9IGNvbGxlY3Rpb247XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSBcInNldHRpbmdzXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLm9uU2V0dGluZ0NoYW5nZShjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBvbihjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWRlbnRpZmllciwgY2FsbGJhY2spIHtcclxuICAgICAgICBjb25zdCBoYW5kbGVyID0gKGNvbCwgY2F0LCBpZCwgdmFsdWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbCAhPT0gY29sbGVjdGlvbiB8fCBjYXQgIT09IGNhdGVnb3J5IHx8IGlkICE9PSBpZGVudGlmaWVyKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKHZhbHVlKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIEV2ZW50cy5vbihcInNldHRpbmctdXBkYXRlZFwiLCBoYW5kbGVyKTtcclxuICAgICAgICByZXR1cm4gKCkgPT4ge0V2ZW50cy5vZmYoXCJzZXR0aW5nLXVwZGF0ZWRcIiwgaGFuZGxlcik7fTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/settingsmanager.js\n");
/***/ }),
/***/ "./src/modules/thememanager.js":
/*!*************************************!*\
!*** ./src/modules/thememanager.js ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _contentmanager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./contentmanager */ \"./src/modules/contentmanager.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ui */ \"./src/ui/ui.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var _dommanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dommanager */ \"./src/modules/dommanager.js\");\n\n\n\n\n\n\n\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class ThemeManager extends _contentmanager__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n get name() {\n return \"ThemeManager\";\n }\n\n get moduleExtension() {\n return \".css\";\n }\n\n get extension() {\n return \".theme.css\";\n }\n\n get contentFolder() {\n return path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"themes\");\n }\n\n get prefix() {\n return \"theme\";\n }\n /* Aliases */\n\n\n updateThemeList() {\n return this.updateList();\n }\n\n loadAllThemes() {\n _settingsmanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"].registerPanel(\"themes\", \"Themes\", {\n element: () => ui__WEBPACK_IMPORTED_MODULE_3__[\"SettingsPanel\"].getContentPanel(\"Themes\", this.contentList, this.state, {\n folder: this.contentFolder,\n onChange: this.toggleTheme.bind(this),\n reload: this.reloadTheme.bind(this),\n refreshList: this.updateThemeList.bind(this)\n })\n });\n return this.loadAllContent();\n }\n\n enableTheme(idOrContent) {\n return this.enableContent(idOrContent);\n }\n\n disableTheme(idOrContent) {\n return this.disableContent(idOrContent);\n }\n\n toggleTheme(id) {\n return this.toggleContent(id);\n }\n\n unloadTheme(idOrFileOrContent) {\n return this.unloadContent(idOrFileOrContent);\n }\n\n loadTheme(filename) {\n const error = this.loadContent(filename);\n if (error) ui__WEBPACK_IMPORTED_MODULE_3__[\"Modals\"].showContentErrors({\n themes: [error]\n });\n }\n\n reloadTheme(idOrFileOrContent) {\n const error = this.reloadContent(idOrFileOrContent);\n if (error) ui__WEBPACK_IMPORTED_MODULE_3__[\"Modals\"].showContentErrors({\n themes: [error]\n });\n }\n /* Overrides */\n\n\n getContentModification(module, content, meta) {\n meta.css = content.split(\"\\n\").slice(1).join(\"\\n\");\n return `module.exports = ${JSON.stringify(meta)};`;\n }\n\n startContent(id) {\n return this.addTheme(id);\n }\n\n stopContent(id) {\n return this.removeTheme(id);\n }\n\n addTheme(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return; // const style = document.createElement(\"style\");\n // style.id = Utilities.escapeID(content.id);\n // style.textContent = unescape(content.css);\n // document.head.append(style);\n // content.element = style;\n\n _dommanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].injectTheme(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].escapeID(content.id), unescape(content.css));\n }\n\n removeTheme(idOrContent) {\n const content = typeof idOrContent == \"string\" ? this.contentList.find(p => p.id == idOrContent) : idOrContent;\n if (!content) return; // const element = content.element || document.getElementById(Utilities.escapeID(content.id));\n // if (element) element.remove();\n\n _dommanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].removeTheme(_utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].escapeID(content.id));\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvdGhlbWVtYW5hZ2VyLmpzPzQwNzgiXSwibmFtZXMiOlsicGF0aCIsInJlcXVpcmUiLCJUaGVtZU1hbmFnZXIiLCJDb250ZW50TWFuYWdlciIsIm5hbWUiLCJtb2R1bGVFeHRlbnNpb24iLCJleHRlbnNpb24iLCJjb250ZW50Rm9sZGVyIiwicmVzb2x2ZSIsIkNvbmZpZyIsImRhdGFQYXRoIiwicHJlZml4IiwidXBkYXRlVGhlbWVMaXN0IiwidXBkYXRlTGlzdCIsImxvYWRBbGxUaGVtZXMiLCJTZXR0aW5ncyIsInJlZ2lzdGVyUGFuZWwiLCJlbGVtZW50IiwiU2V0dGluZ3NSZW5kZXJlciIsImdldENvbnRlbnRQYW5lbCIsImNvbnRlbnRMaXN0Iiwic3RhdGUiLCJmb2xkZXIiLCJvbkNoYW5nZSIsInRvZ2dsZVRoZW1lIiwiYmluZCIsInJlbG9hZCIsInJlbG9hZFRoZW1lIiwicmVmcmVzaExpc3QiLCJsb2FkQWxsQ29udGVudCIsImVuYWJsZVRoZW1lIiwiaWRPckNvbnRlbnQiLCJlbmFibGVDb250ZW50IiwiZGlzYWJsZVRoZW1lIiwiZGlzYWJsZUNvbnRlbnQiLCJpZCIsInRvZ2dsZUNvbnRlbnQiLCJ1bmxvYWRUaGVtZSIsImlkT3JGaWxlT3JDb250ZW50IiwidW5sb2FkQ29udGVudCIsImxvYWRUaGVtZSIsImZpbGVuYW1lIiwiZXJyb3IiLCJsb2FkQ29udGVudCIsIk1vZGFscyIsInNob3dDb250ZW50RXJyb3JzIiwidGhlbWVzIiwicmVsb2FkQ29udGVudCIsImdldENvbnRlbnRNb2RpZmljYXRpb24iLCJtb2R1bGUiLCJjb250ZW50IiwibWV0YSIsImNzcyIsInNwbGl0Iiwic2xpY2UiLCJqb2luIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXJ0Q29udGVudCIsImFkZFRoZW1lIiwic3RvcENvbnRlbnQiLCJyZW1vdmVUaGVtZSIsImZpbmQiLCJwIiwiRE9NTWFuYWdlciIsImluamVjdFRoZW1l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LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCBDb250ZW50TWFuYWdlciBmcm9tIFwiLi9jb250ZW50bWFuYWdlclwiO1xyXG5pbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuL3V0aWxpdGllc1wiO1xyXG5pbXBvcnQge01vZGFsc30gZnJvbSBcInVpXCI7XHJcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5nc21hbmFnZXJcIjtcclxuaW1wb3J0IERPTU1hbmFnZXIgZnJvbSBcIi4vZG9tbWFuYWdlclwiO1xyXG5pbXBvcnQge1NldHRpbmdzUGFuZWwgYXMgU2V0dGluZ3NSZW5kZXJlcn0gZnJvbSBcInVpXCI7XHJcblxyXG5jb25zdCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgVGhlbWVNYW5hZ2VyIGV4dGVuZHMgQ29udGVudE1hbmFnZXIge1xyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiVGhlbWVNYW5hZ2VyXCI7fVxyXG4gICAgZ2V0IG1vZHVsZUV4dGVuc2lvbigpIHtyZXR1cm4gXCIuY3NzXCI7fVxyXG4gICAgZ2V0IGV4dGVuc2lvbigpIHtyZXR1cm4gXCIudGhlbWUuY3NzXCI7fVxyXG4gICAgZ2V0IGNvbnRlbnRGb2xkZXIoKSB7cmV0dXJuIHBhdGgucmVzb2x2ZShDb25maWcuZGF0YVBhdGgsIFwidGhlbWVzXCIpO31cclxuICAgIGdldCBwcmVmaXgoKSB7cmV0dXJuIFwidGhlbWVcIjt9XHJcblxyXG4gICAgLyogQWxpYXNlcyAqL1xyXG4gICAgdXBkYXRlVGhlbWVMaXN0KCkge3JldHVybiB0aGlzLnVwZGF0ZUxpc3QoKTt9XHJcbiAgICBsb2FkQWxsVGhlbWVzKCkge1xyXG4gICAgICAgIFNldHRpbmdzLnJlZ2lzdGVyUGFuZWwoXCJ0aGVtZXNcIiwgXCJUaGVtZXNcIiwge2VsZW1lbnQ6ICgpID0+IFNldHRpbmdzUmVuZGVyZXIuZ2V0Q29udGVudFBhbmVsKFwiVGhlbWVzXCIsIHRoaXMuY29udGVudExpc3QsIHRoaXMuc3RhdGUsIHtcclxuICAgICAgICAgICAgZm9sZGVyOiB0aGlzLmNvbnRlbnRGb2xkZXIsXHJcbiAgICAgICAgICAgIG9uQ2hhbmdlOiB0aGlzLnRvZ2dsZVRoZW1lLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgIHJlbG9hZDogdGhpcy5yZWxvYWRUaGVtZS5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICByZWZyZXNoTGlzdDogdGhpcy51cGRhdGVUaGVtZUxpc3QuYmluZCh0aGlzKVxyXG4gICAgICAgIH0pfSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZEFsbENvbnRlbnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBlbmFibGVUaGVtZShpZE9yQ29udGVudCkge3JldHVybiB0aGlzLmVuYWJsZUNvbnRlbnQoaWRPckNvbnRlbnQpO31cclxuICAgIGRpc2FibGVUaGVtZShpZE9yQ29udGVudCkge3JldHVybiB0aGlzLmRpc2FibGVDb250ZW50KGlkT3JDb250ZW50KTt9XHJcbiAgICB0b2dnbGVUaGVtZShpZCkge3JldHVybiB0aGlzLnRvZ2dsZUNvbnRlbnQoaWQpO31cclxuXHJcbiAgICB1bmxvYWRUaGVtZShpZE9yRmlsZU9yQ29udGVudCkge3JldHVybiB0aGlzLnVubG9hZENvbnRlbnQoaWRPckZpbGVPckNvbnRlbnQpO31cclxuXHJcbiAgICBsb2FkVGhlbWUoZmlsZW5hbWUpIHtcclxuICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMubG9hZENvbnRlbnQoZmlsZW5hbWUpO1xyXG4gICAgICAgIGlmIChlcnJvcikgTW9kYWxzLnNob3dDb250ZW50RXJyb3JzKHt0aGVtZXM6IFtlcnJvcl19KTtcclxuICAgIH1cclxuXHJcbiAgICByZWxvYWRUaGVtZShpZE9yRmlsZU9yQ29udGVudCkge1xyXG4gICAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5yZWxvYWRDb250ZW50KGlkT3JGaWxlT3JDb250ZW50KTtcclxuICAgICAgICBpZiAoZXJyb3IpIE1vZGFscy5zaG93Q29udGVudEVycm9ycyh7dGhlbWVzOiBbZXJyb3JdfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogT3ZlcnJpZGVzICovXHJcbiAgICBnZXRDb250ZW50TW9kaWZpY2F0aW9uKG1vZHVsZSwgY29udGVudCwgbWV0YSkge1xyXG4gICAgICAgIG1ldGEuY3NzID0gY29udGVudC5zcGxpdChcIlxcblwiKS5zbGljZSgxKS5qb2luKFwiXFxuXCIpO1xyXG4gICAgICAgIHJldHVybiBgbW9kdWxlLmV4cG9ydHMgPSAke0pTT04uc3RyaW5naWZ5KG1ldGEpfTtgO1xyXG4gICAgfSAgICBcclxuXHJcbiAgICBzdGFydENvbnRlbnQoaWQpIHtyZXR1cm4gdGhpcy5hZGRUaGVtZShpZCk7fVxyXG4gICAgc3RvcENvbnRlbnQoaWQpIHtyZXR1cm4gdGhpcy5yZW1vdmVUaGVtZShpZCk7fVxyXG5cclxuICAgIGFkZFRoZW1lKGlkT3JDb250ZW50KSB7XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IHR5cGVvZihpZE9yQ29udGVudCkgPT0gXCJzdHJpbmdcIiA/IHRoaXMuY29udGVudExpc3QuZmluZChwID0+IHAuaWQgPT0gaWRPckNvbnRlbnQpIDogaWRPckNvbnRlbnQ7XHJcbiAgICAgICAgaWYgKCFjb250ZW50KSByZXR1cm47XHJcbiAgICAgICAgLy8gY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7XHJcbiAgICAgICAgLy8gc3R5bGUuaWQgPSBVdGlsaXRpZXMuZXNjYXBlSUQoY29udGVudC5pZCk7XHJcbiAgICAgICAgLy8gc3R5bGUudGV4dENvbnRlbnQgPSB1bmVzY2FwZShjb250ZW50LmNzcyk7XHJcbiAgICAgICAgLy8gZG9jdW1lbnQuaGVhZC5hcHBlbmQoc3R5bGUpO1xyXG4gICAgICAgIC8vIGNvbnRlbnQuZWxlbWVudCA9IHN0eWxlO1xyXG4gICAgICAgIERPTU1hbmFnZXIuaW5qZWN0VGhlbWUoVXRpbGl0aWVzLmVzY2FwZUlEKGNvbnRlbnQuaWQpLCB1bmVzY2FwZShjb250ZW50LmNzcykpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZVRoZW1lKGlkT3JDb250ZW50KSB7XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IHR5cGVvZihpZE9yQ29udGVudCkgPT0gXCJzdHJpbmdcIiA/IHRoaXMuY29udGVudExpc3QuZmluZChwID0+IHAuaWQgPT0gaWRPckNvbnRlbnQpIDogaWRPckNvbnRlbnQ7XHJcbiAgICAgICAgaWYgKCFjb250ZW50KSByZXR1cm47XHJcbiAgICAgICAgLy8gY29uc3QgZWxlbWVudCA9IGNvbnRlbnQuZWxlbWVudCB8fCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChVdGlsaXRpZXMuZXNjYXBlSUQoY29udGVudC5pZCkpO1xyXG4gICAgICAgIC8vIGlmIChlbGVtZW50KSBlbGVtZW50LnJlbW92ZSgpO1xyXG4gICAgICAgIERPTU1hbmFnZXIucmVtb3ZlVGhlbWUoVXRpbGl0aWVzLmVzY2FwZUlEKGNvbnRlbnQuaWQpKTtcclxuICAgIH1cclxufTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/thememanager.js\n");
/***/ }),
/***/ "./src/modules/utilities.js":
/*!**********************************!*\
!*** ./src/modules/utilities.js ***!
\**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Utilities; });\n/* eslint-disable no-console */\nclass Utilities {\n /** Document/window width */\n static get screenWidth() {\n return Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n /** Document/window height */\n\n\n static get screenHeight() {\n return Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n }\n\n static stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n\n return content;\n }\n\n static getTextArea() {\n return $(\".channelTextArea-1LDbYG textarea\");\n }\n\n static getInternalInstance(node) {\n return node[Object.keys(node).find(k => k.startsWith(\"__reactInternalInstance\"))] || null;\n }\n\n static insertText(textarea, text) {\n textarea.focus();\n textarea.selectionStart = 0;\n textarea.selectionEnd = textarea.value.length;\n document.execCommand(\"insertText\", false, text);\n }\n\n static injectCss(uri) {\n $(\"<link/>\", {\n type: \"text/css\",\n rel: \"stylesheet\",\n href: uri\n }).appendTo($(\"head\"));\n }\n\n static injectJs(uri) {\n return new Promise(resolve => {\n $(\"<script/>\", {\n type: \"text/javascript\",\n src: uri,\n onload: resolve\n }).appendTo($(\"body\"));\n });\n }\n\n static escapeID(id) {\n return id.replace(/^[^a-z]+|[^\\w-]+/gi, \"-\");\n }\n\n static log(moduleName, message) {\n console.log(`%c[BandagedBD]%c [${moduleName}]%c ${message}`, \"color: #3a71c1; font-weight: 700;\", \"color: #3a71c1;\", \"\");\n }\n\n static warn(moduleName, message) {\n console.warn(`%c[BandagedBD]%c [${moduleName}]%c ${message}`, \"color: #E8A400; font-weight: 700;\", \"color: #E8A400;\", \"\");\n }\n\n static err(moduleName, message, error) {\n console.log(`%c[BandagedBD]%c [${moduleName}]%c ${message}`, \"color: red; font-weight: 700;\", \"color: red;\", \"\");\n\n if (error) {\n console.groupCollapsed(\"%cError: \" + error.message, \"color: red;\");\n console.error(error.stack);\n console.groupEnd();\n }\n }\n\n static escape(s) {\n return s.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n }\n\n static testJSON(data) {\n try {\n JSON.parse(data);\n return true;\n } catch (err) {\n return false;\n }\n }\n\n static suppressErrors(method, message) {\n return (...params) => {\n try {\n return method(...params);\n } catch (e) {\n this.err(\"SuppressedError\", \"Error occurred in \" + message, e);\n }\n };\n }\n\n static monkeyPatch(what, methodName, options) {\n const {\n before,\n after,\n instead,\n once = false,\n silent = false,\n force = false\n } = options;\n const displayName = options.displayName || what.displayName || what.name || what.constructor.displayName || what.constructor.name;\n if (!silent) console.log(\"patch\", methodName, \"of\", displayName); // eslint-disable-line no-console\n\n if (!what[methodName]) {\n if (force) what[methodName] = function () {};else return console.error(methodName, \"does not exist for\", displayName); // eslint-disable-line no-console\n }\n\n const origMethod = what[methodName];\n\n const cancel = () => {\n if (!silent) console.log(\"unpatch\", methodName, \"of\", displayName); // eslint-disable-line no-console\n\n what[methodName] = origMethod;\n };\n\n what[methodName] = function () {\n const data = {\n thisObject: this,\n methodArguments: arguments,\n cancelPatch: cancel,\n originalMethod: origMethod,\n callOriginalMethod: () => data.returnValue = data.originalMethod.apply(data.thisObject, data.methodArguments)\n };\n\n if (instead) {\n const tempRet = Utilities.suppressErrors(instead, \"`instead` callback of \" + what[methodName].displayName)(data);\n if (tempRet !== undefined) data.returnValue = tempRet;\n } else {\n if (before) Utilities.suppressErrors(before, \"`before` callback of \" + what[methodName].displayName)(data);\n data.callOriginalMethod();\n if (after) Utilities.suppressErrors(after, \"`after` callback of \" + what[methodName].displayName)(data);\n }\n\n if (once) cancel();\n return data.returnValue;\n };\n\n what[methodName].__monkeyPatched = true;\n if (!what[methodName].__originalMethod) what[methodName].__originalMethod = origMethod;\n what[methodName].displayName = \"patched \" + (what[methodName].displayName || methodName);\n return cancel;\n }\n\n static onRemoved(node, callback) {\n const observer = new MutationObserver(mutations => {\n for (let m = 0; m < mutations.length; m++) {\n const mutation = mutations[m];\n const nodes = Array.from(mutation.removedNodes);\n const directMatch = nodes.indexOf(node) > -1;\n const parentMatch = nodes.some(parent => parent.contains(node));\n\n if (directMatch || parentMatch) {\n observer.disconnect();\n callback();\n }\n }\n });\n observer.observe(document.body, {\n subtree: true,\n childList: true\n });\n }\n\n static isEmpty(obj) {\n if (obj == null || obj == undefined || obj == \"\") return true;\n if (typeof obj !== \"object\") return false;\n if (Array.isArray(obj)) return obj.length == 0;\n\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) return false;\n }\n\n return true;\n }\n /**\r\n * Generates an automatically memoizing version of an object.\r\n * @author Zerebos\r\n * @param {Object} object - object to memoize\r\n * @returns {Proxy} the proxy to the object that memoizes properties\r\n */\n\n\n static memoizeObject(object) {\n const proxy = new Proxy(object, {\n get: function (obj, mod) {\n if (!obj.hasOwnProperty(mod)) return undefined;\n\n if (Object.getOwnPropertyDescriptor(obj, mod).get) {\n const value = obj[mod];\n delete obj[mod];\n obj[mod] = value;\n }\n\n return obj[mod];\n },\n set: function (obj, mod, value) {\n if (obj.hasOwnProperty(mod)) return this.err(\"MemoizedObject\", \"Trying to overwrite existing property\");\n obj[mod] = value;\n return obj[mod];\n }\n });\n Object.defineProperty(proxy, \"hasOwnProperty\", {\n value: function (prop) {\n return this[prop] !== undefined;\n }\n });\n return proxy;\n }\n /**\r\n * Builds a classname string from any number of arguments. This includes arrays and objects.\r\n * When given an array all values from the array are added to the list.\r\n * When given an object they keys are added as the classnames if the value is truthy.\r\n * Copyright (c) 2018 Jed Watson https://github.com/JedWatson/classnames MIT License\r\n * @param {...Any} argument - anything that should be used to add classnames.\r\n */\n\n\n static className() {\n const classes = [];\n const hasOwn = {}.hasOwnProperty;\n\n for (let i = 0; i < arguments.length; i++) {\n const arg = arguments[i];\n if (!arg) continue;\n const argType = typeof arg;\n\n if (argType === \"string\" || argType === \"number\") {\n classes.push(arg);\n } else if (Array.isArray(arg) && arg.length) {\n const inner = this.classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n } else if (argType === \"object\") {\n for (const key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n\n return classes.join(\" \");\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvdXRpbGl0aWVzLmpzPzk3NjkiXSwibmFtZXMiOlsiVXRpbGl0aWVzIiwic2NyZWVuV2lkdGgiLCJNYXRoIiwibWF4IiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJjbGllbnRXaWR0aCIsIndpbmRvdyIsImlubmVyV2lkdGgiLCJzY3JlZW5IZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpbm5lckhlaWdodCIsInN0cmlwQk9NIiwiY29udGVudCIsImNoYXJDb2RlQXQiLCJzbGljZSIsImdldFRleHRBcmVhIiwiJCIsImdldEludGVybmFsSW5zdGFuY2UiLCJub2RlIiwiT2JqZWN0Iiwia2V5cyIsImZpbmQiLCJrIiwic3RhcnRzV2l0aCIsImluc2VydFRleHQiLCJ0ZXh0YXJlYSIsInRleHQiLCJmb2N1cyIsInNlbGVjdGlvblN0YXJ0Iiwic2VsZWN0aW9uRW5kIiwidmFsdWUiLCJsZW5ndGgiLCJleGVjQ29tbWFuZCIsImluamVjdENzcyIsInVyaSIsInR5cGUiLCJyZWwiLCJocmVmIiwiYXBwZW5kVG8iLCJpbmplY3RKcyIsIlByb21pc2UiLCJyZXNvbHZlIiwic3JjIiwib25sb2FkIiwiZXNjYXBlSUQiLCJpZCIsInJlcGxhY2UiLCJsb2ciLCJtb2R1bGVOYW1lIiwibWVzc2FnZSIsImNvbnNvbGUiLCJ3YXJuIiwiZXJyIiwiZXJyb3IiLCJncm91cENvbGxhcHNlZCIsInN0YWNrIiwiZ3JvdXBFbmQiLCJlc2NhcGUiLCJzIiwidGVzdEpTT04iLCJkYXRhIiwiSlNPTiIsInBhcnNlIiwic3VwcHJlc3NFcnJvcnMiLCJtZXRob2QiLCJwYXJhbXMiLCJlIiwibW9ua2V5UGF0Y2giLCJ3aGF0IiwibWV0aG9kTmFtZSIsIm9wdGlvbnMiLCJiZWZvcmUiLCJhZnRlciIsImluc3RlYWQiLCJvbmNlIiwic2lsZW50IiwiZm9yY2UiLCJkaXNwbGF5TmFtZSIsIm5hbWUiLCJjb25zdHJ1Y3RvciIsIm9yaWdNZXRob2QiLCJjYW5jZWwiLCJ0aGlzT2JqZWN0IiwibWV0aG9kQXJndW1lbnRzIiwiYXJndW1lbnRzIiwiY2FuY2VsUGF0Y2giLCJvcmlnaW5hbE1ldGhvZCIsImNhbGxPcmlnaW5hbE1ldGhvZCIsInJldHVyblZhbHVlIiwiYXBwbHkiLCJ0ZW1wUmV0IiwidW5kZWZpbmVkIiwiX19tb25rZXlQYXRjaGVkIiwiX19vcmlnaW5hbE1ldGhvZCIsIm9uUmVtb3ZlZCIsImNhbGxiYWNrIiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwibXV0YXRpb25zIiwibSIsIm11dGF0aW9uIiwibm9kZXMiLCJBcnJheSIsImZyb20iLCJyZW1vdmVkTm9kZXMiLCJkaXJlY3RNYXRjaCIsImluZGV4T2YiLCJwYXJlbnRNYXRjaCIsInNvbWUiLCJwYXJlbnQiLCJjb250YWlucyIsImRpc2Nvbm5lY3QiLCJvYnNlcnZlIiwiYm9keSIsInN1YnRyZWUiLCJjaGlsZExpc3QiLCJpc0VtcHR5Iiwib2JqIiwiaXNBcnJheSIsImtleSIsImhhc093blByb3BlcnR5IiwibWVtb2l6ZU9iamVjdCIsIm9iamVjdCIsInByb3h5IiwiUHJveHkiLCJnZXQiLCJtb2QiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJzZXQiLCJkZWZpbmVQcm9wZXJ0eSIsInByb3AiLCJjbGFzc05hbWUiLCJjbGFzc2VzIiwiaGFzT3duIiwiaSIsImFyZyIsImFyZ1R5cGUiLCJwdXNoIiwiaW5uZXIiLCJjbGFzc05hbWVzIiwiY2FsbCIsImpvaW4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLFNBQU4sQ0FBZ0I7QUFDM0I7QUFDQSxhQUFXQyxXQUFYLEdBQXlCO0FBQUUsV0FBT0MsSUFBSSxDQUFDQyxHQUFMLENBQVNDLFFBQVEsQ0FBQ0MsZUFBVCxDQUF5QkMsV0FBbEMsRUFBK0NDLE1BQU0sQ0FBQ0MsVUFBUCxJQUFxQixDQUFwRSxDQUFQO0FBQWdGO0FBQzNHOzs7QUFDQSxhQUFXQyxZQUFYLEdBQTBCO0FBQUUs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LENBQUNTLElBQVIsQ0FBYSxHQUFiLENBQVA7QUFDRzs7QUE3TjBCIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvdXRpbGl0aWVzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVXRpbGl0aWVzIHtcclxuICAgIC8qKiBEb2N1bWVudC93aW5kb3cgd2lkdGggKi9cclxuICAgIHN0YXRpYyBnZXQgc2NyZWVuV2lkdGgoKSB7IHJldHVybiBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsIHdpbmRvdy5pbm5lcldpZHRoIHx8IDApOyB9XHJcbiAgICAvKiogRG9jdW1lbnQvd2luZG93IGhlaWdodCAqL1xyXG4gICAgc3RhdGljIGdldCBzY3JlZW5IZWlnaHQoKSB7IHJldHVybiBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LCB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgMCk7IH1cclxuXHJcbiAgICBzdGF0aWMgc3RyaXBCT00oY29udGVudCkge1xyXG4gICAgICAgIGlmIChjb250ZW50LmNoYXJDb2RlQXQoMCkgPT09IDB4RkVGRikge1xyXG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5zbGljZSgxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldFRleHRBcmVhKCkge1xyXG4gICAgICAgIHJldHVybiAkKFwiLmNoYW5uZWxUZXh0QXJlYS0xTERiWUcgdGV4dGFyZWFcIik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldEludGVybmFsSW5zdGFuY2Uobm9kZSkge1xyXG4gICAgICAgIHJldHVybiBub2RlW09iamVjdC5rZXlzKG5vZGUpLmZpbmQoayA9PiBrLnN0YXJ0c1dpdGgoXCJfX3JlYWN0SW50ZXJuYWxJbnN0YW5jZVwiKSldIHx8IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGluc2VydFRleHQodGV4dGFyZWEsIHRleHQpIHtcclxuICAgICAgICB0ZXh0YXJlYS5mb2N1cygpO1xyXG4gICAgICAgIHRleHRhcmVhLnNlbGVjdGlvblN0YXJ0ID0gMDtcclxuICAgICAgICB0ZXh0YXJlYS5zZWxlY3Rpb25FbmQgPSB0ZXh0YXJlYS52YWx1ZS5sZW5ndGg7XHJcbiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJpbnNlcnRUZXh0XCIsIGZhbHNlLCB0ZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaW5qZWN0Q3NzKHVyaSkge1xyXG4gICAgICAgICQoXCI8bGluay8+XCIsIHtcclxuICAgICAgICAgICAgdHlwZTogXCJ0ZXh0L2Nzc1wiLFxyXG4gICAgICAgICAgICByZWw6IFwic3R5bGVzaGVldFwiLFxyXG4gICAgICAgICAgICBocmVmOiB1cmlcclxuICAgICAgICB9KS5hcHBlbmRUbygkKFwiaGVhZFwiKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGluamVjdEpzKHVyaSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgJChcIjxzY3JpcHQvPlwiLCB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcInRleHQvamF2YXNjcmlwdFwiLFxyXG4gICAgICAgICAgICAgICAgc3JjOiB1cmksXHJcbiAgICAgICAgICAgICAgICBvbmxvYWQ6IHJlc29sdmVcclxuICAgICAgICAgICAgfSkuYXBwZW5kVG8oJChcImJvZHlcIikpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBlc2NhcGVJRChpZCkge1xyXG4gICAgICAgIHJldHVybiBpZC5yZXBsYWNlKC9eW15hLXpdK3xbXlxcdy1dKy9naSwgXCItXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBsb2cobW9kdWxlTmFtZSwgbWVzc2FnZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGAlY1tCYW5kYWdlZEJEXSVjIFske21vZHVsZU5hbWV9XSVjICR7bWVzc2FnZX1gLCBcImNvbG9yOiAjM2E3MWMxOyBmb250LXdlaWdodDogNzAwO1wiLCBcImNvbG9yOiAjM2E3MWMxO1wiLCBcIlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgd2Fybihtb2R1bGVOYW1lLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKGAlY1tCYW5kYWdlZEJEXSVjIFske21vZHVsZU5hbWV9XSVjICR7bWVzc2FnZX1gLCBcImNvbG9yOiAjRThBNDAwOyBmb250LXdlaWdodDogNzAwO1wiLCBcImNvbG9yOiAjRThBNDAwO1wiLCBcIlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZXJyKG1vZHVsZU5hbWUsIG1lc3NhZ2UsIGVycm9yKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coYCVjW0JhbmRhZ2VkQkRdJWMgWyR7bW9kdWxlTmFtZX1dJWMgJHttZXNzYWdlfWAsIFwiY29sb3I6IHJlZDsgZm9udC13ZWlnaHQ6IDcwMDtcIiwgXCJjb2xvcjogcmVkO1wiLCBcIlwiKTtcclxuICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc29sZS5ncm91cENvbGxhcHNlZChcIiVjRXJyb3I6IFwiICsgZXJyb3IubWVzc2FnZSwgXCJjb2xvcjogcmVkO1wiKTtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvci5zdGFjayk7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGVzY2FwZShzKSB7XHJcbiAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgvWy0vXFxcXF4kKis/LigpfFtcXF17fV0vZywgXCJcXFxcJCZcIik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHRlc3RKU09OKGRhdGEpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBKU09OLnBhcnNlKGRhdGEpO1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBzdXBwcmVzc0Vycm9ycyhtZXRob2QsIG1lc3NhZ2UpIHtcclxuICAgICAgICByZXR1cm4gKC4uLnBhcmFtcykgPT4ge1xyXG4gICAgICAgICAgICB0cnkgeyByZXR1cm4gbWV0aG9kKC4uLnBhcmFtcyk7XHR9XHJcbiAgICAgICAgICAgIGNhdGNoIChlKSB7IHRoaXMuZXJyKFwiU3VwcHJlc3NlZEVycm9yXCIsIFwiRXJyb3Igb2NjdXJyZWQgaW4gXCIgKyBtZXNzYWdlLCBlKTsgfVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIG1vbmtleVBhdGNoKHdoYXQsIG1ldGhvZE5hbWUsIG9wdGlvbnMpIHtcclxuICAgICAgICBjb25zdCB7YmVmb3JlLCBhZnRlciwgaW5zdGVhZCwgb25jZSA9IGZhbHNlLCBzaWxlbnQgPSBmYWxzZSwgZm9yY2UgPSBmYWxzZX0gPSBvcHRpb25zO1xyXG4gICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gb3B0aW9ucy5kaXNwbGF5TmFtZSB8fCB3aGF0LmRpc3BsYXlOYW1lIHx8IHdoYXQubmFtZSB8fCB3aGF0LmNvbnN0cnVjdG9yLmRpc3BsYXlOYW1lIHx8IHdoYXQuY29uc3RydWN0b3IubmFtZTtcclxuICAgICAgICBpZiAoIXNpbGVudCkgY29uc29sZS5sb2coXCJwYXRjaFwiLCBtZXRob2ROYW1lLCBcIm9mXCIsIGRpc3BsYXlOYW1lKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXHJcbiAgICAgICAgaWYgKCF3aGF0W21ldGhvZE5hbWVdKSB7XHJcbiAgICAgICAgICAgIGlmIChmb3JjZSkgd2hhdFttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge307XHJcbiAgICAgICAgICAgIGVsc2UgcmV0dXJuIGNvbnNvbGUuZXJyb3IobWV0aG9kTmFtZSwgXCJkb2VzIG5vdCBleGlzdCBmb3JcIiwgZGlzcGxheU5hbWUpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgb3JpZ01ldGhvZCA9IHdoYXRbbWV0aG9kTmFtZV07XHJcbiAgICAgICAgY29uc3QgY2FuY2VsID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXNpbGVudCkgY29uc29sZS5sb2coXCJ1bnBhdGNoXCIsIG1ldGhvZE5hbWUsIFwib2ZcIiwgZGlzcGxheU5hbWUpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcclxuICAgICAgICAgICAgd2hhdFttZXRob2ROYW1lXSA9IG9yaWdNZXRob2Q7XHJcbiAgICAgICAgfTtcclxuICAgICAgICB3aGF0W21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzT2JqZWN0OiB0aGlzLFxyXG4gICAgICAgICAgICAgICAgbWV0aG9kQXJndW1lbnRzOiBhcmd1bWVudHMsXHJcbiAgICAgICAgICAgICAgICBjYW5jZWxQYXRjaDogY2FuY2VsLFxyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxNZXRob2Q6IG9yaWdNZXRob2QsXHJcbiAgICAgICAgICAgICAgICBjYWxsT3JpZ2luYWxNZXRob2Q6ICgpID0+IGRhdGEucmV0dXJuVmFsdWUgPSBkYXRhLm9yaWdpbmFsTWV0aG9kLmFwcGx5KGRhdGEudGhpc09iamVjdCwgZGF0YS5tZXRob2RBcmd1bWVudHMpXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGlmIChpbnN0ZWFkKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0ZW1wUmV0ID0gVXRpbGl0aWVzLnN1cHByZXNzRXJyb3JzKGluc3RlYWQsIFwiYGluc3RlYWRgIGNhbGxiYWNrIG9mIFwiICsgd2hhdFttZXRob2ROYW1lXS5kaXNwbGF5TmFtZSkoZGF0YSk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGVtcFJldCAhPT0gdW5kZWZpbmVkKSBkYXRhLnJldHVyblZhbHVlID0gdGVtcFJldDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChiZWZvcmUpIFV0aWxpdGllcy5zdXBwcmVzc0Vycm9ycyhiZWZvcmUsIFwiYGJlZm9yZWAgY2FsbGJhY2sgb2YgXCIgKyB3aGF0W21ldGhvZE5hbWVdLmRpc3BsYXlOYW1lKShkYXRhKTtcclxuICAgICAgICAgICAgICAgIGRhdGEuY2FsbE9yaWdpbmFsTWV0aG9kKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoYWZ0ZXIpIFV0aWxpdGllcy5zdXBwcmVzc0Vycm9ycyhhZnRlciwgXCJgYWZ0ZXJgIGNhbGxiYWNrIG9mIFwiICsgd2hhdFttZXRob2ROYW1lXS5kaXNwbGF5TmFtZSkoZGF0YSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKG9uY2UpIGNhbmNlbCgpO1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0YS5yZXR1cm5WYWx1ZTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHdoYXRbbWV0aG9kTmFtZV0uX19tb25rZXlQYXRjaGVkID0gdHJ1ZTtcclxuICAgICAgICBpZiAoIXdoYXRbbWV0aG9kTmFtZV0uX19vcmlnaW5hbE1ldGhvZCkgd2hhdFttZXRob2ROYW1lXS5fX29yaWdpbmFsTWV0aG9kID0gb3JpZ01ldGhvZDtcclxuICAgICAgICB3aGF0W21ldGhvZE5hbWVdLmRpc3BsYXlOYW1lID0gXCJwYXRjaGVkIFwiICsgKHdoYXRbbWV0aG9kTmFtZV0uZGlzcGxheU5hbWUgfHwgbWV0aG9kTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIGNhbmNlbDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgb25SZW1vdmVkKG5vZGUsIGNhbGxiYWNrKSB7XHJcbiAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zKSA9PiB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IG0gPSAwOyBtIDwgbXV0YXRpb25zLmxlbmd0aDsgbSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtdXRhdGlvbiA9IG11dGF0aW9uc1ttXTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVzID0gQXJyYXkuZnJvbShtdXRhdGlvbi5yZW1vdmVkTm9kZXMpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGlyZWN0TWF0Y2ggPSBub2Rlcy5pbmRleE9mKG5vZGUpID4gLTE7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRNYXRjaCA9IG5vZGVzLnNvbWUocGFyZW50ID0+IHBhcmVudC5jb250YWlucyhub2RlKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGlyZWN0TWF0Y2ggfHwgcGFyZW50TWF0Y2gpIHtcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtzdWJ0cmVlOiB0cnVlLCBjaGlsZExpc3Q6IHRydWV9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNFbXB0eShvYmopIHtcclxuICAgICAgICBpZiAob2JqID09IG51bGwgfHwgb2JqID09IHVuZGVmaW5lZCB8fCBvYmogPT0gXCJcIikgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgaWYgKHR5cGVvZihvYmopICE9PSBcIm9iamVjdFwiKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkgcmV0dXJuIG9iai5sZW5ndGggPT0gMDtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcclxuICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2VuZXJhdGVzIGFuIGF1dG9tYXRpY2FsbHkgbWVtb2l6aW5nIHZlcnNpb24gb2YgYW4gb2JqZWN0LlxyXG4gICAgICogQGF1dGhvciBaZXJlYm9zXHJcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IC0gb2JqZWN0IHRvIG1lbW9pemVcclxuICAgICAqIEByZXR1cm5zIHtQcm94eX0gdGhlIHByb3h5IHRvIHRoZSBvYmplY3QgdGhhdCBtZW1vaXplcyBwcm9wZXJ0aWVzXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBtZW1vaXplT2JqZWN0KG9iamVjdCkge1xyXG4gICAgICAgIGNvbnN0IHByb3h5ID0gbmV3IFByb3h5KG9iamVjdCwge1xyXG4gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKG9iaiwgbW9kKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIW9iai5oYXNPd25Qcm9wZXJ0eShtb2QpKSByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBtb2QpLmdldCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gb2JqW21vZF07XHJcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG9ialttb2RdO1xyXG4gICAgICAgICAgICAgICAgICAgIG9ialttb2RdID0gdmFsdWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqW21vZF07XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNldDogZnVuY3Rpb24ob2JqLCBtb2QsIHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KG1vZCkpIHJldHVybiB0aGlzLmVycihcIk1lbW9pemVkT2JqZWN0XCIsIFwiVHJ5aW5nIHRvIG92ZXJ3cml0ZSBleGlzdGluZyBwcm9wZXJ0eVwiKTtcclxuICAgICAgICAgICAgICAgIG9ialttb2RdID0gdmFsdWU7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqW21vZF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3h5LCBcImhhc093blByb3BlcnR5XCIsIHt2YWx1ZTogZnVuY3Rpb24ocHJvcCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpc1twcm9wXSAhPT0gdW5kZWZpbmVkO1xyXG4gICAgICAgIH19KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHByb3h5O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQnVpbGRzIGEgY2xhc3NuYW1lIHN0cmluZyBmcm9tIGFueSBudW1iZXIgb2YgYXJndW1lbnRzLiBUaGlzIGluY2x1ZGVzIGFycmF5cyBhbmQgb2JqZWN0cy5cclxuICAgICAqIFdoZW4gZ2l2ZW4gYW4gYXJyYXkgYWxsIHZhbHVlcyBmcm9tIHRoZSBhcnJheSBhcmUgYWRkZWQgdG8gdGhlIGxpc3QuXHJcbiAgICAgKiBXaGVuIGdpdmVuIGFuIG9iamVjdCB0aGV5IGtleXMgYXJlIGFkZGVkIGFzIHRoZSBjbGFzc25hbWVzIGlmIHRoZSB2YWx1ZSBpcyB0cnV0aHkuXHJcbiAgICAgKiBDb3B5cmlnaHQgKGMpIDIwMTggSmVkIFdhdHNvbiBodHRwczovL2dpdGh1Yi5jb20vSmVkV2F0c29uL2NsYXNzbmFtZXMgTUlUIExpY2Vuc2VcclxuICAgICAqIEBwYXJhbSB7Li4uQW55fSBhcmd1bWVudCAtIGFueXRoaW5nIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gYWRkIGNsYXNzbmFtZXMuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBjbGFzc05hbWUoKSB7XHJcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IFtdO1xyXG4gICAgICAgIGNvbnN0IGhhc093biA9IHt9Lmhhc093blByb3BlcnR5O1xyXG5cclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdGNvbnN0IGFyZyA9IGFyZ3VtZW50c1tpXTtcclxuXHRcdFx0aWYgKCFhcmcpIGNvbnRpbnVlO1xyXG5cclxuXHRcdFx0Y29uc3QgYXJnVHlwZSA9IHR5cGVvZiBhcmc7XHJcblxyXG5cdFx0XHRpZiAoYXJnVHlwZSA9PT0gXCJzdHJpbmdcIiB8fCBhcmdUeXBlID09PSBcIm51bWJlclwiKSB7XHJcblx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGFyZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShhcmcpICYmIGFyZy5sZW5ndGgpIHtcclxuXHRcdFx0XHRjb25zdCBpbm5lciA9IHRoaXMuY2xhc3NOYW1lcy5hcHBseShudWxsLCBhcmcpO1xyXG5cdFx0XHRcdGlmIChpbm5lcikge1xyXG5cdFx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGlubmVyKTtcclxuXHRcdFx0XHR9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYXJnVHlwZSA9PT0gXCJvYmplY3RcIikge1xyXG5cdFx0XHRcdGZvciAoY29uc3Qga2V5IGluIGFyZykge1xyXG5cdFx0XHRcdFx0aWYgKGhhc093bi5jYWxsKGFyZywga2V5KSAmJiBhcmdba2V5XSkge1xyXG5cdFx0XHRcdFx0XHRjbGFzc2VzLnB1c2goa2V5KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gY2xhc3Nlcy5qb2luKFwiIFwiKTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/utilities.js\n");
/***/ }),
/***/ "./src/modules/webpackmodules.js":
/*!***************************************!*\
!*** ./src/modules/webpackmodules.js ***!
\***************************************/
/*! exports provided: DiscordModules, Filters, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DiscordModules\", function() { return DiscordModules; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Filters\", function() { return Filters; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return WebpackModules; });\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/**\r\n * Allows for grabbing and searching through Discord's webpacked modules.\r\n * @module WebpackModules\r\n * @version 0.0.2\r\n */\n\nconst DiscordModules = _utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].memoizeObject({\n get React() {\n return WebpackModules.getByProps(\"createElement\", \"cloneElement\");\n },\n\n get ReactDOM() {\n return WebpackModules.getByProps(\"render\", \"findDOMNode\");\n },\n\n get Flux() {\n return WebpackModules.getByProps(\"connectStores\");\n },\n\n get Events() {\n return WebpackModules.getByPrototypes(\"setMaxListeners\", \"emit\");\n },\n\n /* Guild Info, Stores, and Utilities */\n get GuildStore() {\n return WebpackModules.getByProps(\"getGuild\");\n },\n\n get SortedGuildStore() {\n return WebpackModules.getByProps(\"getSortedGuilds\");\n },\n\n get SelectedGuildStore() {\n return WebpackModules.getByProps(\"getLastSelectedGuildId\");\n },\n\n get GuildSync() {\n return WebpackModules.getByProps(\"getSyncedGuilds\");\n },\n\n get GuildInfo() {\n return WebpackModules.getByProps(\"getAcronym\");\n },\n\n get GuildChannelsStore() {\n return WebpackModules.getByProps(\"getChannels\", \"getDefaultChannel\");\n },\n\n get GuildMemberStore() {\n return WebpackModules.getByProps(\"getMember\");\n },\n\n get MemberCountStore() {\n return WebpackModules.getByProps(\"getMemberCounts\");\n },\n\n get GuildEmojiStore() {\n return WebpackModules.getByProps(\"getEmojis\");\n },\n\n get GuildActions() {\n return WebpackModules.getByProps(\"markGuildAsRead\");\n },\n\n get GuildPermissions() {\n return WebpackModules.getByProps(\"getGuildPermissions\");\n },\n\n /* Channel Store & Actions */\n get ChannelStore() {\n return WebpackModules.getByProps(\"getChannels\", \"getDMFromUserId\");\n },\n\n get SelectedChannelStore() {\n return WebpackModules.getByProps(\"getLastSelectedChannelId\");\n },\n\n get ChannelActions() {\n return WebpackModules.getByProps(\"selectChannel\");\n },\n\n get PrivateChannelActions() {\n return WebpackModules.getByProps(\"openPrivateChannel\");\n },\n\n get ChannelSelector() {\n return WebpackModules.getByProps(\"selectGuild\", \"selectChannel\");\n },\n\n /* Current User Info, State and Settings */\n get UserInfoStore() {\n return WebpackModules.getByProps(\"getToken\");\n },\n\n get UserSettingsStore() {\n return WebpackModules.getByProps(\"guildPositions\");\n },\n\n get AccountManager() {\n return WebpackModules.getByProps(\"register\", \"login\");\n },\n\n get UserSettingsUpdater() {\n return WebpackModules.getByProps(\"updateRemoteSettings\");\n },\n\n get OnlineWatcher() {\n return WebpackModules.getByProps(\"isOnline\");\n },\n\n get CurrentUserIdle() {\n return WebpackModules.getByProps(\"getIdleTime\");\n },\n\n get RelationshipStore() {\n return WebpackModules.getByProps(\"isBlocked\", \"getFriendIDs\");\n },\n\n get RelationshipManager() {\n return WebpackModules.getByProps(\"addRelationship\");\n },\n\n get MentionStore() {\n return WebpackModules.getByProps(\"getMentions\");\n },\n\n /* User Stores and Utils */\n get UserStore() {\n return WebpackModules.getByProps(\"getCurrentUser\");\n },\n\n get UserStatusStore() {\n return WebpackModules.getByProps(\"getStatus\", \"getState\");\n },\n\n get UserTypingStore() {\n return WebpackModules.getByProps(\"isTyping\");\n },\n\n get UserActivityStore() {\n return WebpackModules.getByProps(\"getActivity\");\n },\n\n get UserNameResolver() {\n return WebpackModules.getByProps(\"getName\");\n },\n\n get UserNoteStore() {\n return WebpackModules.getByProps(\"getNote\");\n },\n\n get UserNoteActions() {\n return WebpackModules.getByProps(\"updateNote\");\n },\n\n /* Emoji Store and Utils */\n get EmojiInfo() {\n return WebpackModules.getByProps(\"isEmojiDisabled\");\n },\n\n get EmojiUtils() {\n return WebpackModules.getByProps(\"getGuildEmoji\");\n },\n\n get EmojiStore() {\n return WebpackModules.getByProps(\"getByCategory\", \"EMOJI_NAME_RE\");\n },\n\n /* Invite Store and Utils */\n get InviteStore() {\n return WebpackModules.getByProps(\"getInvites\");\n },\n\n get InviteResolver() {\n return WebpackModules.getByProps(\"findInvite\");\n },\n\n get InviteActions() {\n return WebpackModules.getByProps(\"acceptInvite\");\n },\n\n /* Discord Objects & Utils */\n get DiscordConstants() {\n return WebpackModules.getByProps(\"Permissions\", \"ActivityTypes\", \"StatusTypes\");\n },\n\n get DiscordPermissions() {\n return WebpackModules.getByProps(\"Permissions\", \"ActivityTypes\", \"StatusTypes\").Permissions;\n },\n\n get PermissionUtils() {\n return WebpackModules.getByProps(\"getHighestRole\");\n },\n\n get ColorConverter() {\n return WebpackModules.getByProps(\"hex2int\");\n },\n\n get ColorShader() {\n return WebpackModules.getByProps(\"darken\");\n },\n\n get TinyColor() {\n return WebpackModules.getByPrototypes(\"toRgb\");\n },\n\n get ClassResolver() {\n return WebpackModules.getByProps(\"getClass\");\n },\n\n get ButtonData() {\n return WebpackModules.getByProps(\"ButtonSizes\");\n },\n\n get IconNames() {\n return WebpackModules.getByProps(\"IconNames\");\n },\n\n get NavigationUtils() {\n return WebpackModules.getByProps(\"transitionTo\", \"replaceWith\", \"getHistory\");\n },\n\n /* Discord Messages */\n get MessageStore() {\n return WebpackModules.getByProps(\"getMessages\");\n },\n\n get MessageActions() {\n return WebpackModules.getByProps(\"jumpToMessage\", \"_sendMessage\");\n },\n\n get MessageQueue() {\n return WebpackModules.getByProps(\"enqueue\");\n },\n\n get MessageParser() {\n return WebpackModules.getByProps(\"createMessage\", \"parse\", \"unparse\");\n },\n\n /* Text Processing */\n get hljs() {\n return WebpackModules.getByProps(\"highlight\", \"highlightBlock\");\n },\n\n get SimpleMarkdown() {\n return WebpackModules.getByProps(\"parseBlock\", \"parseInline\", \"defaultOutput\");\n },\n\n /* Experiments */\n get ExperimentStore() {\n return WebpackModules.getByProps(\"getExperimentOverrides\");\n },\n\n get ExperimentsManager() {\n return WebpackModules.getByProps(\"isDeveloper\");\n },\n\n get CurrentExperiment() {\n return WebpackModules.getByProps(\"getExperimentId\");\n },\n\n /* Images, Avatars and Utils */\n get ImageResolver() {\n return WebpackModules.getByProps(\"getUserAvatarURL\", \"getGuildIconURL\");\n },\n\n get ImageUtils() {\n return WebpackModules.getByProps(\"getSizedImageSrc\");\n },\n\n get AvatarDefaults() {\n return WebpackModules.getByProps(\"getUserAvatarURL\", \"DEFAULT_AVATARS\");\n },\n\n /* Window, DOM, HTML */\n get WindowInfo() {\n return WebpackModules.getByProps(\"isFocused\", \"windowSize\");\n },\n\n get TagInfo() {\n return WebpackModules.getByProps(\"VALID_TAG_NAMES\");\n },\n\n get DOMInfo() {\n return WebpackModules.getByProps(\"canUseDOM\");\n },\n\n /* Locale/Location and Time */\n get LocaleManager() {\n return WebpackModules.getByProps(\"setLocale\");\n },\n\n get Moment() {\n return WebpackModules.getByProps(\"parseZone\");\n },\n\n get LocationManager() {\n return WebpackModules.getByProps(\"createLocation\");\n },\n\n get Timestamps() {\n return WebpackModules.getByProps(\"fromTimestamp\");\n },\n\n get TimeFormatter() {\n return WebpackModules.getByProps(\"dateFormat\");\n },\n\n /* Strings and Utils */\n get Strings() {\n return WebpackModules.getByProps(\"Messages\").Messages;\n },\n\n get StringFormats() {\n return WebpackModules.getByProps(\"a\", \"z\");\n },\n\n get StringUtils() {\n return WebpackModules.getByProps(\"toASCII\");\n },\n\n /* URLs and Utils */\n get URLParser() {\n return WebpackModules.getByProps(\"Url\", \"parse\");\n },\n\n get ExtraURLs() {\n return WebpackModules.getByProps(\"getArticleURL\");\n },\n\n /* Drag & Drop */\n get DNDActions() {\n return WebpackModules.getByProps(\"beginDrag\");\n },\n\n get DNDSources() {\n return WebpackModules.getByProps(\"addTarget\");\n },\n\n get DNDObjects() {\n return WebpackModules.getByProps(\"DragSource\");\n },\n\n /* Media Stuff (Audio/Video) */\n get MediaDeviceInfo() {\n return WebpackModules.getByProps(\"Codecs\", \"SUPPORTED_BROWSERS\");\n },\n\n get MediaInfo() {\n return WebpackModules.getByProps(\"getOutputVolume\");\n },\n\n get MediaEngineInfo() {\n return WebpackModules.getByProps(\"MediaEngineFeatures\");\n },\n\n get VoiceInfo() {\n return WebpackModules.getByProps(\"EchoCancellation\");\n },\n\n get VideoStream() {\n return WebpackModules.getByProps(\"getVideoStream\");\n },\n\n get SoundModule() {\n return WebpackModules.getByProps(\"playSound\");\n },\n\n /* Electron & Other Internals with Utils*/\n get ElectronModule() {\n return WebpackModules.getByProps(\"setBadge\");\n },\n\n get Dispatcher() {\n return WebpackModules.getByProps(\"dirtyDispatch\");\n },\n\n get PathUtils() {\n return WebpackModules.getByProps(\"hasBasename\");\n },\n\n get NotificationModule() {\n return WebpackModules.getByProps(\"showNotification\");\n },\n\n get RouterModule() {\n return WebpackModules.getByProps(\"Router\");\n },\n\n get APIModule() {\n return WebpackModules.getByProps(\"getAPIBaseURL\");\n },\n\n get AnalyticEvents() {\n return WebpackModules.getByProps(\"AnalyticEventConfigs\");\n },\n\n get KeyGenerator() {\n return WebpackModules.getByRegex(/\"binary\"/);\n },\n\n get Buffers() {\n return WebpackModules.getByProps(\"Buffer\", \"kMaxLength\");\n },\n\n get DeviceStore() {\n return WebpackModules.getByProps(\"getDevices\");\n },\n\n get SoftwareInfo() {\n return WebpackModules.getByProps(\"os\");\n },\n\n get CurrentContext() {\n return WebpackModules.getByProps(\"setTagsContext\");\n }\n\n});\n\n/**\r\n * Checks if a given module matches a set of parameters.\r\n * @callback module:WebpackModules.Filters~filter\r\n * @param {*} module - module to check\r\n * @returns {boolean} - True if the module matches the filter, false otherwise\r\n */\n\n/**\r\n * Filters for use with {@link module:WebpackModules} but may prove useful elsewhere.\r\n */\n\nclass Filters {\n /**\r\n * Generates a {@link module:WebpackModules.Filters~filter} that filters by a set of properties.\r\n * @param {Array<string>} props - Array of property names\r\n * @param {module:WebpackModules.Filters~filter} filter - Additional filter\r\n * @returns {module:WebpackModules.Filters~filter} - A filter that checks for a set of properties\r\n */\n static byProperties(props, filter = m => m) {\n return module => {\n const component = filter(module);\n if (!component) return false;\n return props.every(property => component[property] !== undefined);\n };\n }\n /**\r\n * Generates a {@link module:WebpackModules.Filters~filter} that filters by a set of properties on the object's prototype.\r\n * @param {Array<string>} fields - Array of property names\r\n * @param {module:WebpackModules.Filters~filter} filter - Additional filter\r\n * @returns {module:WebpackModules.Filters~filter} - A filter that checks for a set of properties on the object's prototype\r\n */\n\n\n static byPrototypeFields(fields, filter = m => m) {\n return module => {\n const component = filter(module);\n if (!component) return false;\n if (!component.prototype) return false;\n return fields.every(field => component.prototype[field] !== undefined);\n };\n }\n /**\r\n * Generates a {@link module:WebpackModules.Filters~filter} that filters by a regex.\r\n * @param {RegExp} search - A RegExp to check on the module\r\n * @param {module:WebpackModules.Filters~filter} filter - Additional filter\r\n * @returns {module:WebpackModules.Filters~filter} - A filter that checks for a set of properties\r\n */\n\n\n static byCode(search, filter = m => m) {\n return module => {\n const method = filter(module);\n if (!method) return false;\n return method.toString([]).search(search) !== -1;\n };\n }\n /**\r\n * Generates a {@link module:WebpackModules.Filters~filter} that filters by strings.\r\n * @param {...String} search - A RegExp to check on the module\r\n * @returns {module:WebpackModules.Filters~filter} - A filter that checks for a set of strings\r\n */\n\n\n static byString(...strings) {\n return module => {\n const moduleString = module.toString([]);\n\n for (const s of strings) {\n if (!moduleString.includes(s)) return false;\n }\n\n return true;\n };\n }\n /**\r\n * Generates a {@link module:WebpackModules.Filters~filter} that filters by a set of properties.\r\n * @param {string} name - Name the module should have\r\n * @param {module:WebpackModules.Filters~filter} filter - Additional filter\r\n * @returns {module:WebpackModules.Filters~filter} - A filter that checks for a set of properties\r\n */\n\n\n static byDisplayName(name) {\n return module => {\n return module && module.displayName === name;\n };\n }\n /**\r\n * Generates a combined {@link module:WebpackModules.Filters~filter} from a list of filters.\r\n * @param {...module:WebpackModules.Filters~filter} filters - A list of filters\r\n * @returns {module:WebpackModules.Filters~filter} - Combinatory filter of all arguments\r\n */\n\n\n static combine(...filters) {\n return module => {\n return filters.every(filter => filter(module));\n };\n }\n\n}\nclass WebpackModules {\n static find(filter, first = true) {\n return this.getModule(filter, first);\n }\n\n static findAll(filter) {\n return this.getModule(filter, false);\n }\n\n static findByUniqueProperties(props, first = true) {\n return first ? this.getByProps(...props) : this.getAllByProps(...props);\n }\n\n static findByDisplayName(name) {\n return this.getByDisplayName(name);\n }\n /**\r\n * Finds a module using a filter function.\r\n * @param {Function} filter A function to use to filter modules\r\n * @param {Boolean} first Whether to return only the first matching module\r\n * @return {Any}\r\n */\n\n\n static getModule(filter, first = true) {\n const modules = this.getAllModules();\n const rm = [];\n\n for (const index in modules) {\n if (!modules.hasOwnProperty(index)) continue;\n const module = modules[index];\n const {\n exports\n } = module;\n let foundModule = null;\n if (!exports) continue;\n if (exports.__esModule && exports.default && filter(exports.default)) foundModule = exports.default;\n if (filter(exports)) foundModule = exports;\n if (!foundModule) continue;\n if (first) return foundModule;\n rm.push(foundModule);\n }\n\n return first || rm.length == 0 ? undefined : rm;\n }\n /**\r\n * Finds all modules matching a filter function.\r\n * @param {Function} filter A function to use to filter modules\r\n */\n\n\n static getModules(filter) {\n return this.getModule(filter, false);\n }\n /**\r\n * Finds a module by its name.\r\n * @param {String} name The name of the module\r\n * @param {Function} fallback A function to use to filter modules if not finding a known module\r\n * @return {Any}\r\n */\n\n\n static getModuleByName(name, fallback) {\n if (DiscordModules.hasOwnProperty(name)) return DiscordModules[name];\n if (!fallback) return undefined;\n const module = this.getModule(fallback, true);\n return module ? DiscordModules[name] = module : undefined;\n }\n /**\r\n * Finds a module by its display name.\r\n * @param {String} name The display name of the module\r\n * @return {Any}\r\n */\n\n\n static getByDisplayName(name) {\n return this.getModule(Filters.byDisplayName(name), true);\n }\n /**\r\n * Finds a module using its code.\r\n * @param {RegEx} regex A regular expression to use to filter modules\r\n * @param {Boolean} first Whether to return the only the first matching module\r\n * @return {Any}\r\n */\n\n\n static getByRegex(regex, first = true) {\n return this.getModule(Filters.byCode(regex), first);\n }\n /**\r\n * Finds a single module using properties on its prototype.\r\n * @param {...string} prototypes Properties to use to filter modules\r\n * @return {Any}\r\n */\n\n\n static getByPrototypes(...prototypes) {\n return this.getModule(Filters.byPrototypeFields(prototypes), true);\n }\n /**\r\n * Finds all modules with a set of properties of its prototype.\r\n * @param {...string} prototypes Properties to use to filter modules\r\n * @return {Any}\r\n */\n\n\n static getAllByPrototypes(...prototypes) {\n return this.getModule(Filters.byPrototypeFields(prototypes), false);\n }\n /**\r\n * Finds a single module using its own properties.\r\n * @param {...string} props Properties to use to filter modules\r\n * @return {Any}\r\n */\n\n\n static getByProps(...props) {\n return this.getModule(Filters.byProperties(props), true);\n }\n /**\r\n * Finds all modules with a set of properties.\r\n * @param {...string} props Properties to use to filter modules\r\n * @return {Any}\r\n */\n\n\n static getAllByProps(...props) {\n return this.getModule(Filters.byProperties(props), false);\n }\n /**\r\n * Finds a single module using a set of strings.\r\n * @param {...String} props Strings to use to filter modules\r\n * @return {Any}\r\n */\n\n\n static getByString(...strings) {\n return this.getModule(Filters.byString(...strings), true);\n }\n /**\r\n * Finds all modules with a set of strings.\r\n * @param {...String} strings Strings to use to filter modules\r\n * @return {Any}\r\n */\n\n\n static getAllByString(...strings) {\n return this.getModule(Filters.byString(...strings), false);\n }\n /**\r\n * Discord's __webpack_require__ function.\r\n */\n\n\n static get require() {\n if (this._require) return this._require;\n const id = \"bbd-webpackmodules\";\n\n const __webpack_require__ = typeof window.webpackJsonp == \"function\" ? window.webpackJsonp([], {\n [id]: (module, exports, __internal_require__) => exports.default = __internal_require__\n }, [id]).default : window.webpackJsonp.push([[], {\n [id]: (module, exports, __internal_require__) => module.exports = __internal_require__\n }, [[id]]]);\n\n delete __webpack_require__.m[id];\n delete __webpack_require__.c[id];\n return this._require = __webpack_require__;\n }\n /**\r\n * Returns all loaded modules.\r\n * @return {Array}\r\n */\n\n\n static getAllModules() {\n return this.require.c;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvd2VicGFja21vZHVsZXMuanM/OWIyNyJdLCJuYW1lcyI6WyJEaXNjb3JkTW9kdWxlcyIsIlV0aWxpdGllcyIsIm1lbW9pemVPYmplY3QiLCJSZWFjdCIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0QnlQcm9wcyIsIlJlYWN0RE9NIiwiRmx1eCIsIkV2ZW50cyIsImdldEJ5UHJvdG90eXBlcyIsIkd1aWxkU3RvcmUiLCJTb3J0ZWRHdWlsZFN0b3JlIiwiU2VsZWN0ZWRHdWlsZFN0b3JlIiwiR3VpbGRTeW5jIiwiR3VpbGRJbmZvIiwiR3VpbGRDaGFubmVsc1N0b3JlIiwiR3VpbGRNZW1iZXJTdG9yZSIsIk1lbWJlckNvdW50U3RvcmUiLCJHdWlsZEVtb2ppU3RvcmUiLCJHdWlsZEFjdGlvbnMiLCJHdWlsZFBlcm1pc3Npb25zIiwiQ2hhbm5lbFN0b3JlIiwiU2VsZWN0ZWRDaGFubmVsU3RvcmUiLCJDaGFubmVsQWN0aW9ucyIsIlByaXZhdGVDaGFubmVsQWN0aW9ucyIsIkNoYW5uZWxTZWxlY3RvciIsIlVzZXJJbmZvU3RvcmUiLCJVc2VyU2V0dGluZ3NTdG9yZSIsIkFjY291bnRNYW5hZ2VyIiwiVXNlclNldHRpbmdzVXBkYXRlciIsIk9ubGluZVdhdGNoZXIiLCJDdXJyZW50VXNlcklkbGUiLCJSZWxhdGlvbnNoaXBTdG9yZSIsIlJlbGF0aW9uc2hpcE1hbmFnZXIiLCJNZW50aW9uU3RvcmUiLCJVc2VyU3RvcmUiLCJVc2VyU3RhdHVzU3RvcmUiLCJVc2VyVHlwaW5nU3RvcmUiLCJVc2VyQWN0aXZpdHlTdG9yZSIsIlVzZXJOYW1lUmVzb2x2ZXIiLCJVc2VyTm90ZVN0b3JlIiwiVXNlck5vdGVBY3Rpb25zIiwiRW1vamlJbmZvIiwiRW1vamlVdGlscyIsIkVtb2ppU3RvcmUiLCJJbnZpdGVTdG9yZSIsIkludml0ZVJlc29sdmVyIiwiSW52aXRlQWN0aW9ucyIsIkRpc2NvcmRDb25zdGFudHMiLCJEaXNjb3JkUGVybWlzc2lvbnMiLCJQZXJtaXNzaW9ucyIsIlBlcm1pc3Npb25VdGlscyIsIkNvbG9yQ29udmVydGVyIiwiQ29sb3JTaGFkZXIiLCJUaW55Q29sb3IiLCJDbGFzc1Jlc29sdmVyIiwiQnV0dG9uRGF0YSIsIkljb25OYW1lcyIsIk5hdmlnYXRpb25VdGlscyIsIk1lc3NhZ2VTdG9yZSIsIk1lc3NhZ2VBY3Rpb25zIiwiTWVzc2FnZVF1ZXVlIiwiTWVzc2FnZVBhcnNlciIsImhsanMiLCJTaW1wbGVNYXJrZG93biIsIkV4cGVyaW1lbnRTdG9yZSIsIkV4cGVyaW1lbnRzTWFuYWdlciIsIkN1cnJlbnRFeHBlcmltZW50IiwiSW1hZ2VSZXNvbHZlciIsIkltYWdlVXRpbHMiLCJBdmF0YXJEZWZhdWx0cyIsIldpbmRvd0luZm8iLCJUYWdJbmZvIiwiRE9NSW5mbyIsIkxvY2FsZU1hbmFnZXIiLCJNb21lbnQiLCJMb2NhdGlvbk1hbmFnZXIiLCJUaW1lc3RhbXBzIiwiVGltZUZvcm1hdHRlciIsIlN0cmluZ3MiLCJNZXNzYWdlcyIsIlN0cmluZ0Zvcm1hdHMiLCJTdHJpbmdVdGlscyIsIlVSTFBhcnNlciIsIkV4dHJhVVJMcyIsIkROREFjdGlvbnMiLCJETkRTb3VyY2VzIiwiRE5ET2JqZWN0cyIsIk1lZGlhRGV2aWNlSW5mbyIsIk1lZGlhSW5mbyIsIk1lZGlhRW5naW5lSW5mbyIsIlZvaWNlSW5mbyIsIlZpZGVvU3RyZWFtIiwiU291bmRNb2R1bGUiLCJFbGVjdHJvbk1vZHVsZSIsIkRpc3BhdGNoZXIiLCJQYXRoVXRpbHMiLCJOb3RpZmljYXRpb25Nb2R1bGUiLCJSb3V0ZXJNb2R1bGUiLCJBUElNb2R1bGUiLCJBbmFseXRpY0V2ZW50cyIsIktleUdlbmVyYXRvciIsImdldEJ5UmVnZXgiLCJCdWZmZXJzIiwiRGV2aWNlU3RvcmUiLCJTb2Z0d2FyZUluZm8iLCJDdXJyZW50Q29udGV4dCIsIkZpbHRlcnMiLCJieVByb3BlcnRpZXMiLCJwcm9wcyIsImZpbHRlciIsIm0iLCJtb2R1bGUiLCJjb21wb25lbnQiLCJldmVyeSIsInByb3BlcnR5IiwidW5kZWZpbmVkIiwiYnlQcm90b3R5cGVGaWVsZHMiLCJmaWVsZHMiLCJwcm90b3R5cGUiLCJmaWVsZCIsImJ5Q29kZSIsInNlYXJjaCIsIm1ldGhvZCIsInRvU3RyaW5nIiwiYnlTdHJpbmciLCJzdHJpbmdzIiwibW9kdWxlU3RyaW5nIiwicyIsImluY2x1ZGVzIiwiYnlEaXNwbGF5TmFtZSIsIm5hbWUiLCJkaXNwbGF5TmFtZSIsImNvbWJpbmUiLCJmaWx0ZXJzIiwiZmluZCIsImZpcnN0IiwiZ2V0TW9kdWxlIiwiZmluZEFsbCIsImZpbmRCeVVuaXF1ZVByb3BlcnRpZXMiLCJnZXRBbGxCeVByb3BzIiwiZmluZEJ5RGlzcGxheU5hbWUiLCJnZXRCeURpc3BsYXlOYW1lIiwibW9kdWxlcyIsImdldEFsbE1vZHVsZXMiLCJybSIsImluZGV4IiwiaGFzT3duUHJvcGVydHkiLCJleHBvcnRzIiwiZm91bmRNb2R1bGUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInB1c2giLCJsZW5ndGgiLCJnZXRNb2R1bGVzIiwiZ2V0TW9kdWxlQnlOYW1lIiwiZmFsbGJhY2siLCJyZWdleCIsInByb3RvdHlwZXMiLCJnZXRBbGxCeVByb3RvdHlwZXMiLCJnZXRCeVN0cmluZyIsImdldEFsbEJ5U3RyaW5nIiwicmVxdWlyZSIsIl9yZXF1aXJlIiwiaWQiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwid2luZG93Iiwid2VicGFja0pzb25wIiwiX19pbnRlcm5hbF9yZXF1aXJlX18iLCJjIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7O0FBTUE7QUFFQSxNQUFNQSxjQUFjLEdBQUdDLGtEQUFTLENBQUNDLGFBQVYsQ0FBd0I7QUFDM0MsTUFBSUMsS0FBSixHQUFZO0FBQUMsV0FBT0MsY0FBYyxDQUFDQyxVQUFmLENBQTBCLGVBQTFCLEVBQTJDLGNBQTNDLENBQVA7QUFBbUUsR0FEckM7O0FBRTNDLE1BQUlDLFFBQUosR0FBZTtBQUFDLFdBQU9G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QSxXQUFPQyxtQkFBbUIsQ0FBQ0ksQ0FBcEIsQ0FBc0JMLEVBQXRCLENBQVA7QUFDQSxXQUFPLEtBQUtELFFBQUwsR0FBZ0JFLG1CQUF2QjtBQUNIO0FBRUQ7Ozs7OztBQUlBLFNBQU9yQixhQUFQLEdBQXVCO0FBQ25CLFdBQU8sS0FBS2tCLE9BQUwsQ0FBYU8sQ0FBcEI7QUFDSDs7QUFsSitCIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvd2VicGFja21vZHVsZXMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQWxsb3dzIGZvciBncmFiYmluZyBhbmQgc2VhcmNoaW5nIHRocm91Z2ggRGlzY29yZCdzIHdlYnBhY2tlZCBtb2R1bGVzLlxyXG4gKiBAbW9kdWxlIFdlYnBhY2tNb2R1bGVzXHJcbiAqIEB2ZXJzaW9uIDAuMC4yXHJcbiAqL1xyXG5cclxuaW1wb3J0IFV0aWxpdGllcyBmcm9tIFwiLi91dGlsaXRpZXNcIjtcclxuXHJcbmNvbnN0IERpc2NvcmRNb2R1bGVzID0gVXRpbGl0aWVzLm1lbW9pemVPYmplY3Qoe1xyXG4gICAgZ2V0IFJlYWN0KCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiY3JlYXRlRWxlbWVudFwiLCBcImNsb25lRWxlbWVudFwiKTt9LFxyXG4gICAgZ2V0IFJlYWN0RE9NKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwicmVuZGVyXCIsIFwiZmluZERPTU5vZGVcIik7fSxcclxuICAgIGdldCBGbHV4KCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiY29ubmVjdFN0b3Jlc1wiKTt9LFxyXG4gICAgZ2V0IEV2ZW50cygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm90b3R5cGVzKFwic2V0TWF4TGlzdGVuZXJzXCIsIFwiZW1pdFwiKTt9LFxyXG5cclxuICAgIC8qIEd1aWxkIEluZm8sIFN0b3JlcywgYW5kIFV0aWxpdGllcyAqL1xyXG4gICAgZ2V0IEd1aWxkU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRHdWlsZFwiKTt9LFxyXG4gICAgZ2V0IFNvcnRlZEd1aWxkU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRTb3J0ZWRHdWlsZHNcIik7fSxcclxuICAgIGdldCBTZWxlY3RlZEd1aWxkU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRMYXN0U2VsZWN0ZWRHdWlsZElkXCIpO30sXHJcbiAgICBnZXQgR3VpbGRTeW5jKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0U3luY2VkR3VpbGRzXCIpO30sXHJcbiAgICBnZXQgR3VpbGRJbmZvKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0QWNyb255bVwiKTt9LFxyXG4gICAgZ2V0IEd1aWxkQ2hhbm5lbHNTdG9yZSgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldENoYW5uZWxzXCIsIFwiZ2V0RGVmYXVsdENoYW5uZWxcIik7fSxcclxuICAgIGdldCBHdWlsZE1lbWJlclN0b3JlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0TWVtYmVyXCIpO30sXHJcbiAgICBnZXQgTWVtYmVyQ291bnRTdG9yZSgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldE1lbWJlckNvdW50c1wiKTt9LFxyXG4gICAgZ2V0IEd1aWxkRW1vamlTdG9yZSgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldEVtb2ppc1wiKTt9LFxyXG4gICAgZ2V0IEd1aWxkQWN0aW9ucygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIm1hcmtHdWlsZEFzUmVhZFwiKTt9LFxyXG4gICAgZ2V0IEd1aWxkUGVybWlzc2lvbnMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRHdWlsZFBlcm1pc3Npb25zXCIpO30sXHJcblxyXG4gICAgLyogQ2hhbm5lbCBTdG9yZSAmIEFjdGlvbnMgKi9cclxuICAgIGdldCBDaGFubmVsU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRDaGFubmVsc1wiLCBcImdldERNRnJvbVVzZXJJZFwiKTt9LFxyXG4gICAgZ2V0IFNlbGVjdGVkQ2hhbm5lbFN0b3JlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0TGFzdFNlbGVjdGVkQ2hhbm5lbElkXCIpO30sXHJcbiAgICBnZXQgQ2hhbm5lbEFjdGlvbnMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzZWxlY3RDaGFubmVsXCIpO30sXHJcbiAgICBnZXQgUHJpdmF0ZUNoYW5uZWxBY3Rpb25zKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwib3BlblByaXZhdGVDaGFubmVsXCIpO30sXHJcbiAgICBnZXQgQ2hhbm5lbFNlbGVjdG9yKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwic2VsZWN0R3VpbGRcIiwgXCJzZWxlY3RDaGFubmVsXCIpO30sXHJcblxyXG4gICAgLyogQ3VycmVudCBVc2VyIEluZm8sIFN0YXRlIGFuZCBTZXR0aW5ncyAqL1xyXG4gICAgZ2V0IFVzZXJJbmZvU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRUb2tlblwiKTt9LFxyXG4gICAgZ2V0IFVzZXJTZXR0aW5nc1N0b3JlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ3VpbGRQb3NpdGlvbnNcIik7fSxcclxuICAgIGdldCBBY2NvdW50TWFuYWdlcigpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInJlZ2lzdGVyXCIsIFwibG9naW5cIik7fSxcclxuICAgIGdldCBVc2VyU2V0dGluZ3NVcGRhdGVyKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwidXBkYXRlUmVtb3RlU2V0dGluZ3NcIik7fSxcclxuICAgIGdldCBPbmxpbmVXYXRjaGVyKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiaXNPbmxpbmVcIik7fSxcclxuICAgIGdldCBDdXJyZW50VXNlcklkbGUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRJZGxlVGltZVwiKTt9LFxyXG4gICAgZ2V0IFJlbGF0aW9uc2hpcFN0b3JlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiaXNCbG9ja2VkXCIsIFwiZ2V0RnJpZW5kSURzXCIpO30sXHJcbiAgICBnZXQgUmVsYXRpb25zaGlwTWFuYWdlcigpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImFkZFJlbGF0aW9uc2hpcFwiKTt9LFxyXG4gICAgZ2V0IE1lbnRpb25TdG9yZSgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldE1lbnRpb25zXCIpO30sXHJcblxyXG4gICAgLyogVXNlciBTdG9yZXMgYW5kIFV0aWxzICovXHJcbiAgICBnZXQgVXNlclN0b3JlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0Q3VycmVudFVzZXJcIik7fSxcclxuICAgIGdldCBVc2VyU3RhdHVzU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRTdGF0dXNcIiwgXCJnZXRTdGF0ZVwiKTt9LFxyXG4gICAgZ2V0IFVzZXJUeXBpbmdTdG9yZSgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImlzVHlwaW5nXCIpO30sXHJcbiAgICBnZXQgVXNlckFjdGl2aXR5U3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRBY3Rpdml0eVwiKTt9LFxyXG4gICAgZ2V0IFVzZXJOYW1lUmVzb2x2ZXIoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXROYW1lXCIpO30sXHJcbiAgICBnZXQgVXNlck5vdGVTdG9yZSgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldE5vdGVcIik7fSxcclxuICAgIGdldCBVc2VyTm90ZUFjdGlvbnMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJ1cGRhdGVOb3RlXCIpO30sXHJcblxyXG4gICAgLyogRW1vamkgU3RvcmUgYW5kIFV0aWxzICovXHJcbiAgICBnZXQgRW1vamlJbmZvKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiaXNFbW9qaURpc2FibGVkXCIpO30sXHJcbiAgICBnZXQgRW1vamlVdGlscygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldEd1aWxkRW1vamlcIik7fSxcclxuICAgIGdldCBFbW9qaVN0b3JlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0QnlDYXRlZ29yeVwiLCBcIkVNT0pJX05BTUVfUkVcIik7fSxcclxuXHJcbiAgICAvKiBJbnZpdGUgU3RvcmUgYW5kIFV0aWxzICovXHJcbiAgICBnZXQgSW52aXRlU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRJbnZpdGVzXCIpO30sXHJcbiAgICBnZXQgSW52aXRlUmVzb2x2ZXIoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJmaW5kSW52aXRlXCIpO30sXHJcbiAgICBnZXQgSW52aXRlQWN0aW9ucygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImFjY2VwdEludml0ZVwiKTt9LFxyXG5cclxuICAgIC8qIERpc2NvcmQgT2JqZWN0cyAmIFV0aWxzICovXHJcbiAgICBnZXQgRGlzY29yZENvbnN0YW50cygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIlBlcm1pc3Npb25zXCIsIFwiQWN0aXZpdHlUeXBlc1wiLCBcIlN0YXR1c1R5cGVzXCIpO30sXHJcbiAgICBnZXQgRGlzY29yZFBlcm1pc3Npb25zKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiUGVybWlzc2lvbnNcIiwgXCJBY3Rpdml0eVR5cGVzXCIsIFwiU3RhdHVzVHlwZXNcIikuUGVybWlzc2lvbnM7fSxcclxuICAgIGdldCBQZXJtaXNzaW9uVXRpbHMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRIaWdoZXN0Um9sZVwiKTt9LFxyXG4gICAgZ2V0IENvbG9yQ29udmVydGVyKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiaGV4MmludFwiKTt9LFxyXG4gICAgZ2V0IENvbG9yU2hhZGVyKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZGFya2VuXCIpO30sXHJcbiAgICBnZXQgVGlueUNvbG9yKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3RvdHlwZXMoXCJ0b1JnYlwiKTt9LFxyXG4gICAgZ2V0IENsYXNzUmVzb2x2ZXIoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRDbGFzc1wiKTt9LFxyXG4gICAgZ2V0IEJ1dHRvbkRhdGEoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJCdXR0b25TaXplc1wiKTt9LFxyXG4gICAgZ2V0IEljb25OYW1lcygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIkljb25OYW1lc1wiKTt9LFxyXG4gICAgZ2V0IE5hdmlnYXRpb25VdGlscygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInRyYW5zaXRpb25Ub1wiLCBcInJlcGxhY2VXaXRoXCIsIFwiZ2V0SGlzdG9yeVwiKTt9LFxyXG5cclxuICAgIC8qIERpc2NvcmQgTWVzc2FnZXMgKi9cclxuICAgIGdldCBNZXNzYWdlU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRNZXNzYWdlc1wiKTt9LFxyXG4gICAgZ2V0IE1lc3NhZ2VBY3Rpb25zKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwianVtcFRvTWVzc2FnZVwiLCBcIl9zZW5kTWVzc2FnZVwiKTt9LFxyXG4gICAgZ2V0IE1lc3NhZ2VRdWV1ZSgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImVucXVldWVcIik7fSxcclxuICAgIGdldCBNZXNzYWdlUGFyc2VyKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiY3JlYXRlTWVzc2FnZVwiLCBcInBhcnNlXCIsIFwidW5wYXJzZVwiKTt9LFxyXG5cclxuICAgIC8qIFRleHQgUHJvY2Vzc2luZyAqL1xyXG4gICAgZ2V0IGhsanMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJoaWdobGlnaHRcIiwgXCJoaWdobGlnaHRCbG9ja1wiKTt9LFxyXG4gICAgZ2V0IFNpbXBsZU1hcmtkb3duKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwicGFyc2VCbG9ja1wiLCBcInBhcnNlSW5saW5lXCIsIFwiZGVmYXVsdE91dHB1dFwiKTt9LFxyXG5cclxuICAgIC8qIEV4cGVyaW1lbnRzICovXHJcbiAgICBnZXQgRXhwZXJpbWVudFN0b3JlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0RXhwZXJpbWVudE92ZXJyaWRlc1wiKTt9LFxyXG4gICAgZ2V0IEV4cGVyaW1lbnRzTWFuYWdlcigpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImlzRGV2ZWxvcGVyXCIpO30sXHJcbiAgICBnZXQgQ3VycmVudEV4cGVyaW1lbnQoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRFeHBlcmltZW50SWRcIik7fSxcclxuXHJcbiAgICAvKiBJbWFnZXMsIEF2YXRhcnMgYW5kIFV0aWxzICovXHJcbiAgICBnZXQgSW1hZ2VSZXNvbHZlcigpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldFVzZXJBdmF0YXJVUkxcIiwgXCJnZXRHdWlsZEljb25VUkxcIik7fSxcclxuICAgIGdldCBJbWFnZVV0aWxzKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0U2l6ZWRJbWFnZVNyY1wiKTt9LFxyXG4gICAgZ2V0IEF2YXRhckRlZmF1bHRzKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0VXNlckF2YXRhclVSTFwiLCBcIkRFRkFVTFRfQVZBVEFSU1wiKTt9LFxyXG5cclxuICAgIC8qIFdpbmRvdywgRE9NLCBIVE1MICovXHJcbiAgICBnZXQgV2luZG93SW5mbygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImlzRm9jdXNlZFwiLCBcIndpbmRvd1NpemVcIik7fSxcclxuICAgIGdldCBUYWdJbmZvKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiVkFMSURfVEFHX05BTUVTXCIpO30sXHJcbiAgICBnZXQgRE9NSW5mbygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImNhblVzZURPTVwiKTt9LFxyXG5cclxuICAgIC8qIExvY2FsZS9Mb2NhdGlvbiBhbmQgVGltZSAqL1xyXG4gICAgZ2V0IExvY2FsZU1hbmFnZXIoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzZXRMb2NhbGVcIik7fSxcclxuICAgIGdldCBNb21lbnQoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJwYXJzZVpvbmVcIik7fSxcclxuICAgIGdldCBMb2NhdGlvbk1hbmFnZXIoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJjcmVhdGVMb2NhdGlvblwiKTt9LFxyXG4gICAgZ2V0IFRpbWVzdGFtcHMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJmcm9tVGltZXN0YW1wXCIpO30sXHJcbiAgICBnZXQgVGltZUZvcm1hdHRlcigpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImRhdGVGb3JtYXRcIik7fSxcclxuXHJcbiAgICAvKiBTdHJpbmdzIGFuZCBVdGlscyAqL1xyXG4gICAgZ2V0IFN0cmluZ3MoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJNZXNzYWdlc1wiKS5NZXNzYWdlczt9LFxyXG4gICAgZ2V0IFN0cmluZ0Zvcm1hdHMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJhXCIsIFwielwiKTt9LFxyXG4gICAgZ2V0IFN0cmluZ1V0aWxzKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwidG9BU0NJSVwiKTt9LFxyXG5cclxuICAgIC8qIFVSTHMgYW5kIFV0aWxzICovXHJcbiAgICBnZXQgVVJMUGFyc2VyKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiVXJsXCIsIFwicGFyc2VcIik7fSxcclxuICAgIGdldCBFeHRyYVVSTHMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRBcnRpY2xlVVJMXCIpO30sXHJcblxyXG4gICAgLyogRHJhZyAmIERyb3AgKi9cclxuICAgIGdldCBETkRBY3Rpb25zKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiYmVnaW5EcmFnXCIpO30sXHJcbiAgICBnZXQgRE5EU291cmNlcygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImFkZFRhcmdldFwiKTt9LFxyXG4gICAgZ2V0IERORE9iamVjdHMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJEcmFnU291cmNlXCIpO30sXHJcblxyXG4gICAgLyogTWVkaWEgU3R1ZmYgKEF1ZGlvL1ZpZGVvKSAqL1xyXG4gICAgZ2V0IE1lZGlhRGV2aWNlSW5mbygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIkNvZGVjc1wiLCBcIlNVUFBPUlRFRF9CUk9XU0VSU1wiKTt9LFxyXG4gICAgZ2V0IE1lZGlhSW5mbygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcImdldE91dHB1dFZvbHVtZVwiKTt9LFxyXG4gICAgZ2V0IE1lZGlhRW5naW5lSW5mbygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIk1lZGlhRW5naW5lRmVhdHVyZXNcIik7fSxcclxuICAgIGdldCBWb2ljZUluZm8oKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJFY2hvQ2FuY2VsbGF0aW9uXCIpO30sXHJcbiAgICBnZXQgVmlkZW9TdHJlYW0oKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXRWaWRlb1N0cmVhbVwiKTt9LFxyXG4gICAgZ2V0IFNvdW5kTW9kdWxlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwicGxheVNvdW5kXCIpO30sXHJcblxyXG4gICAgLyogRWxlY3Ryb24gJiBPdGhlciBJbnRlcm5hbHMgd2l0aCBVdGlscyovXHJcbiAgICBnZXQgRWxlY3Ryb25Nb2R1bGUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzZXRCYWRnZVwiKTt9LFxyXG4gICAgZ2V0IERpc3BhdGNoZXIoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJkaXJ0eURpc3BhdGNoXCIpO30sXHJcbiAgICBnZXQgUGF0aFV0aWxzKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiaGFzQmFzZW5hbWVcIik7fSxcclxuICAgIGdldCBOb3RpZmljYXRpb25Nb2R1bGUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJzaG93Tm90aWZpY2F0aW9uXCIpO30sXHJcbiAgICBnZXQgUm91dGVyTW9kdWxlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiUm91dGVyXCIpO30sXHJcbiAgICBnZXQgQVBJTW9kdWxlKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0QVBJQmFzZVVSTFwiKTt9LFxyXG4gICAgZ2V0IEFuYWx5dGljRXZlbnRzKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiQW5hbHl0aWNFdmVudENvbmZpZ3NcIik7fSxcclxuICAgIGdldCBLZXlHZW5lcmF0b3IoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UmVnZXgoL1wiYmluYXJ5XCIvKTt9LFxyXG4gICAgZ2V0IEJ1ZmZlcnMoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJCdWZmZXJcIiwgXCJrTWF4TGVuZ3RoXCIpO30sXHJcbiAgICBnZXQgRGV2aWNlU3RvcmUoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJnZXREZXZpY2VzXCIpO30sXHJcbiAgICBnZXQgU29mdHdhcmVJbmZvKCkge3JldHVybiBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwib3NcIik7fSxcclxuICAgIGdldCBDdXJyZW50Q29udGV4dCgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInNldFRhZ3NDb250ZXh0XCIpO31cclxufSk7XHJcblxyXG5leHBvcnQge0Rpc2NvcmRNb2R1bGVzfTtcclxuXHJcbi8qKlxyXG4gKiBDaGVja3MgaWYgYSBnaXZlbiBtb2R1bGUgbWF0Y2hlcyBhIHNldCBvZiBwYXJhbWV0ZXJzLlxyXG4gKiBAY2FsbGJhY2sgbW9kdWxlOldlYnBhY2tNb2R1bGVzLkZpbHRlcnN+ZmlsdGVyXHJcbiAqIEBwYXJhbSB7Kn0gbW9kdWxlIC0gbW9kdWxlIHRvIGNoZWNrXHJcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIFRydWUgaWYgdGhlIG1vZHVsZSBtYXRjaGVzIHRoZSBmaWx0ZXIsIGZhbHNlIG90aGVyd2lzZVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBGaWx0ZXJzIGZvciB1c2Ugd2l0aCB7QGxpbmsgbW9kdWxlOldlYnBhY2tNb2R1bGVzfSBidXQgbWF5IHByb3ZlIHVzZWZ1bCBlbHNld2hlcmUuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRmlsdGVycyB7XHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyBhIHtAbGluayBtb2R1bGU6V2VicGFja01vZHVsZXMuRmlsdGVyc35maWx0ZXJ9IHRoYXQgZmlsdGVycyBieSBhIHNldCBvZiBwcm9wZXJ0aWVzLlxyXG4gICAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBwcm9wcyAtIEFycmF5IG9mIHByb3BlcnR5IG5hbWVzXHJcbiAgICAgKiBAcGFyYW0ge21vZHVsZTpXZWJwYWNrTW9kdWxlcy5GaWx0ZXJzfmZpbHRlcn0gZmlsdGVyIC0gQWRkaXRpb25hbCBmaWx0ZXJcclxuICAgICAqIEByZXR1cm5zIHttb2R1bGU6V2VicGFja01vZHVsZXMuRmlsdGVyc35maWx0ZXJ9IC0gQSBmaWx0ZXIgdGhhdCBjaGVja3MgZm9yIGEgc2V0IG9mIHByb3BlcnRpZXNcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGJ5UHJvcGVydGllcyhwcm9wcywgZmlsdGVyID0gbSA9PiBtKSB7XHJcbiAgICAgICAgcmV0dXJuIG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGZpbHRlcihtb2R1bGUpO1xyXG4gICAgICAgICAgICBpZiAoIWNvbXBvbmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm4gcHJvcHMuZXZlcnkocHJvcGVydHkgPT4gY29tcG9uZW50W3Byb3BlcnR5XSAhPT0gdW5kZWZpbmVkKTtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2VuZXJhdGVzIGEge0BsaW5rIG1vZHVsZTpXZWJwYWNrTW9kdWxlcy5GaWx0ZXJzfmZpbHRlcn0gdGhhdCBmaWx0ZXJzIGJ5IGEgc2V0IG9mIHByb3BlcnRpZXMgb24gdGhlIG9iamVjdCdzIHByb3RvdHlwZS5cclxuICAgICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gZmllbGRzIC0gQXJyYXkgb2YgcHJvcGVydHkgbmFtZXNcclxuICAgICAqIEBwYXJhbSB7bW9kdWxlOldlYnBhY2tNb2R1bGVzLkZpbHRlcnN+ZmlsdGVyfSBmaWx0ZXIgLSBBZGRpdGlvbmFsIGZpbHRlclxyXG4gICAgICogQHJldHVybnMge21vZHVsZTpXZWJwYWNrTW9kdWxlcy5GaWx0ZXJzfmZpbHRlcn0gLSBBIGZpbHRlciB0aGF0IGNoZWNrcyBmb3IgYSBzZXQgb2YgcHJvcGVydGllcyBvbiB0aGUgb2JqZWN0J3MgcHJvdG90eXBlXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBieVByb3RvdHlwZUZpZWxkcyhmaWVsZHMsIGZpbHRlciA9IG0gPT4gbSkge1xyXG4gICAgICAgIHJldHVybiBtb2R1bGUgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBmaWx0ZXIobW9kdWxlKTtcclxuICAgICAgICAgICAgaWYgKCFjb21wb25lbnQpIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKCFjb21wb25lbnQucHJvdG90eXBlKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybiBmaWVsZHMuZXZlcnkoZmllbGQgPT4gY29tcG9uZW50LnByb3RvdHlwZVtmaWVsZF0gIT09IHVuZGVmaW5lZCk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyBhIHtAbGluayBtb2R1bGU6V2VicGFja01vZHVsZXMuRmlsdGVyc35maWx0ZXJ9IHRoYXQgZmlsdGVycyBieSBhIHJlZ2V4LlxyXG4gICAgICogQHBhcmFtIHtSZWdFeHB9IHNlYXJjaCAtIEEgUmVnRXhwIHRvIGNoZWNrIG9uIHRoZSBtb2R1bGVcclxuICAgICAqIEBwYXJhbSB7bW9kdWxlOldlYnBhY2tNb2R1bGVzLkZpbHRlcnN+ZmlsdGVyfSBmaWx0ZXIgLSBBZGRpdGlvbmFsIGZpbHRlclxyXG4gICAgICogQHJldHVybnMge21vZHVsZTpXZWJwYWNrTW9kdWxlcy5GaWx0ZXJzfmZpbHRlcn0gLSBBIGZpbHRlciB0aGF0IGNoZWNrcyBmb3IgYSBzZXQgb2YgcHJvcGVydGllc1xyXG4gICAgICovXHJcbiAgICBzdGF0aWMgYnlDb2RlKHNlYXJjaCwgZmlsdGVyID0gbSA9PiBtKSB7XHJcbiAgICAgICAgcmV0dXJuIG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZCA9IGZpbHRlcihtb2R1bGUpO1xyXG4gICAgICAgICAgICBpZiAoIW1ldGhvZCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm4gbWV0aG9kLnRvU3RyaW5nKFtdKS5zZWFyY2goc2VhcmNoKSAhPT0gLTE7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyBhIHtAbGluayBtb2R1bGU6V2VicGFja01vZHVsZXMuRmlsdGVyc35maWx0ZXJ9IHRoYXQgZmlsdGVycyBieSBzdHJpbmdzLlxyXG4gICAgICogQHBhcmFtIHsuLi5TdHJpbmd9IHNlYXJjaCAtIEEgUmVnRXhwIHRvIGNoZWNrIG9uIHRoZSBtb2R1bGVcclxuICAgICAqIEByZXR1cm5zIHttb2R1bGU6V2VicGFja01vZHVsZXMuRmlsdGVyc35maWx0ZXJ9IC0gQSBmaWx0ZXIgdGhhdCBjaGVja3MgZm9yIGEgc2V0IG9mIHN0cmluZ3NcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGJ5U3RyaW5nKC4uLnN0cmluZ3MpIHtcclxuICAgICAgICByZXR1cm4gbW9kdWxlID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbW9kdWxlU3RyaW5nID0gbW9kdWxlLnRvU3RyaW5nKFtdKTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBzIG9mIHN0cmluZ3MpIHtcclxuICAgICAgICAgICAgICAgIGlmICghbW9kdWxlU3RyaW5nLmluY2x1ZGVzKHMpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlcyBhIHtAbGluayBtb2R1bGU6V2VicGFja01vZHVsZXMuRmlsdGVyc35maWx0ZXJ9IHRoYXQgZmlsdGVycyBieSBhIHNldCBvZiBwcm9wZXJ0aWVzLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBOYW1lIHRoZSBtb2R1bGUgc2hvdWxkIGhhdmVcclxuICAgICAqIEBwYXJhbSB7bW9kdWxlOldlYnBhY2tNb2R1bGVzLkZpbHRlcnN+ZmlsdGVyfSBmaWx0ZXIgLSBBZGRpdGlvbmFsIGZpbHRlclxyXG4gICAgICogQHJldHVybnMge21vZHVsZTpXZWJwYWNrTW9kdWxlcy5GaWx0ZXJzfmZpbHRlcn0gLSBBIGZpbHRlciB0aGF0IGNoZWNrcyBmb3IgYSBzZXQgb2YgcHJvcGVydGllc1xyXG4gICAgICovXHJcbiAgICBzdGF0aWMgYnlEaXNwbGF5TmFtZShuYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBtb2R1bGUgJiYgbW9kdWxlLmRpc3BsYXlOYW1lID09PSBuYW1lO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZW5lcmF0ZXMgYSBjb21iaW5lZCB7QGxpbmsgbW9kdWxlOldlYnBhY2tNb2R1bGVzLkZpbHRlcnN+ZmlsdGVyfSBmcm9tIGEgbGlzdCBvZiBmaWx0ZXJzLlxyXG4gICAgICogQHBhcmFtIHsuLi5tb2R1bGU6V2VicGFja01vZHVsZXMuRmlsdGVyc35maWx0ZXJ9IGZpbHRlcnMgLSBBIGxpc3Qgb2YgZmlsdGVyc1xyXG4gICAgICogQHJldHVybnMge21vZHVsZTpXZWJwYWNrTW9kdWxlcy5GaWx0ZXJzfmZpbHRlcn0gLSBDb21iaW5hdG9yeSBmaWx0ZXIgb2YgYWxsIGFyZ3VtZW50c1xyXG4gICAgICovXHJcbiAgICBzdGF0aWMgY29tYmluZSguLi5maWx0ZXJzKSB7XHJcbiAgICAgICAgcmV0dXJuIG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJzLmV2ZXJ5KGZpbHRlciA9PiBmaWx0ZXIobW9kdWxlKSk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2VicGFja01vZHVsZXMge1xyXG5cclxuICAgIHN0YXRpYyBmaW5kKGZpbHRlciwgZmlyc3QgPSB0cnVlKSB7cmV0dXJuIHRoaXMuZ2V0TW9kdWxlKGZpbHRlciwgZmlyc3QpO31cclxuICAgIHN0YXRpYyBmaW5kQWxsKGZpbHRlcikge3JldHVybiB0aGlzLmdldE1vZHVsZShmaWx0ZXIsIGZhbHNlKTt9XHJcbiAgICBzdGF0aWMgZmluZEJ5VW5pcXVlUHJvcGVydGllcyhwcm9wcywgZmlyc3QgPSB0cnVlKSB7cmV0dXJuIGZpcnN0ID8gdGhpcy5nZXRCeVByb3BzKC4uLnByb3BzKSA6IHRoaXMuZ2V0QWxsQnlQcm9wcyguLi5wcm9wcyk7fVxyXG4gICAgc3RhdGljIGZpbmRCeURpc3BsYXlOYW1lKG5hbWUpIHtyZXR1cm4gdGhpcy5nZXRCeURpc3BsYXlOYW1lKG5hbWUpO31cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGEgbW9kdWxlIHVzaW5nIGEgZmlsdGVyIGZ1bmN0aW9uLlxyXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZmlsdGVyIEEgZnVuY3Rpb24gdG8gdXNlIHRvIGZpbHRlciBtb2R1bGVzXHJcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGZpcnN0IFdoZXRoZXIgdG8gcmV0dXJuIG9ubHkgdGhlIGZpcnN0IG1hdGNoaW5nIG1vZHVsZVxyXG4gICAgICogQHJldHVybiB7QW55fVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZ2V0TW9kdWxlKGZpbHRlciwgZmlyc3QgPSB0cnVlKSB7XHJcbiAgICAgICAgY29uc3QgbW9kdWxlcyA9IHRoaXMuZ2V0QWxsTW9kdWxlcygpO1xyXG4gICAgICAgIGNvbnN0IHJtID0gW107XHJcbiAgICAgICAgZm9yIChjb25zdCBpbmRleCBpbiBtb2R1bGVzKSB7XHJcbiAgICAgICAgICAgIGlmICghbW9kdWxlcy5oYXNPd25Qcm9wZXJ0eShpbmRleCkpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBjb25zdCBtb2R1bGUgPSBtb2R1bGVzW2luZGV4XTtcclxuICAgICAgICAgICAgY29uc3Qge2V4cG9ydHN9ID0gbW9kdWxlO1xyXG4gICAgICAgICAgICBsZXQgZm91bmRNb2R1bGUgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFleHBvcnRzKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKGV4cG9ydHMuX19lc01vZHVsZSAmJiBleHBvcnRzLmRlZmF1bHQgJiYgZmlsdGVyKGV4cG9ydHMuZGVmYXVsdCkpIGZvdW5kTW9kdWxlID0gZXhwb3J0cy5kZWZhdWx0O1xyXG4gICAgICAgICAgICBpZiAoZmlsdGVyKGV4cG9ydHMpKSBmb3VuZE1vZHVsZSA9IGV4cG9ydHM7XHJcbiAgICAgICAgICAgIGlmICghZm91bmRNb2R1bGUpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBpZiAoZmlyc3QpIHJldHVybiBmb3VuZE1vZHVsZTtcclxuICAgICAgICAgICAgcm0ucHVzaChmb3VuZE1vZHVsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmaXJzdCB8fCBybS5sZW5ndGggPT0gMCA/IHVuZGVmaW5lZCA6IHJtO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmluZHMgYWxsIG1vZHVsZXMgbWF0Y2hpbmcgYSBmaWx0ZXIgZnVuY3Rpb24uXHJcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmaWx0ZXIgQSBmdW5jdGlvbiB0byB1c2UgdG8gZmlsdGVyIG1vZHVsZXNcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldE1vZHVsZXMoZmlsdGVyKSB7cmV0dXJuIHRoaXMuZ2V0TW9kdWxlKGZpbHRlciwgZmFsc2UpO31cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGEgbW9kdWxlIGJ5IGl0cyBuYW1lLlxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgVGhlIG5hbWUgb2YgdGhlIG1vZHVsZVxyXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZmFsbGJhY2sgQSBmdW5jdGlvbiB0byB1c2UgdG8gZmlsdGVyIG1vZHVsZXMgaWYgbm90IGZpbmRpbmcgYSBrbm93biBtb2R1bGVcclxuICAgICAqIEByZXR1cm4ge0FueX1cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldE1vZHVsZUJ5TmFtZShuYW1lLCBmYWxsYmFjaykge1xyXG4gICAgICAgIGlmIChEaXNjb3JkTW9kdWxlcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkgcmV0dXJuIERpc2NvcmRNb2R1bGVzW25hbWVdO1xyXG4gICAgICAgIGlmICghZmFsbGJhY2spIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgY29uc3QgbW9kdWxlID0gdGhpcy5nZXRNb2R1bGUoZmFsbGJhY2ssIHRydWUpO1xyXG4gICAgICAgIHJldHVybiBtb2R1bGUgPyBEaXNjb3JkTW9kdWxlc1tuYW1lXSA9IG1vZHVsZSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGEgbW9kdWxlIGJ5IGl0cyBkaXNwbGF5IG5hbWUuXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSBUaGUgZGlzcGxheSBuYW1lIG9mIHRoZSBtb2R1bGVcclxuICAgICAqIEByZXR1cm4ge0FueX1cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldEJ5RGlzcGxheU5hbWUobmFtZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE1vZHVsZShGaWx0ZXJzLmJ5RGlzcGxheU5hbWUobmFtZSksIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmluZHMgYSBtb2R1bGUgdXNpbmcgaXRzIGNvZGUuXHJcbiAgICAgKiBAcGFyYW0ge1JlZ0V4fSByZWdleCBBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byB1c2UgdG8gZmlsdGVyIG1vZHVsZXNcclxuICAgICAqIEBwYXJhbSB7Qm9vbGVhbn0gZmlyc3QgV2hldGhlciB0byByZXR1cm4gdGhlIG9ubHkgdGhlIGZpcnN0IG1hdGNoaW5nIG1vZHVsZVxyXG4gICAgICogQHJldHVybiB7QW55fVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZ2V0QnlSZWdleChyZWdleCwgZmlyc3QgPSB0cnVlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TW9kdWxlKEZpbHRlcnMuYnlDb2RlKHJlZ2V4KSwgZmlyc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmluZHMgYSBzaW5nbGUgbW9kdWxlIHVzaW5nIHByb3BlcnRpZXMgb24gaXRzIHByb3RvdHlwZS5cclxuICAgICAqIEBwYXJhbSB7Li4uc3RyaW5nfSBwcm90b3R5cGVzIFByb3BlcnRpZXMgdG8gdXNlIHRvIGZpbHRlciBtb2R1bGVzXHJcbiAgICAgKiBAcmV0dXJuIHtBbnl9XHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXRCeVByb3RvdHlwZXMoLi4ucHJvdG90eXBlcykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE1vZHVsZShGaWx0ZXJzLmJ5UHJvdG90eXBlRmllbGRzKHByb3RvdHlwZXMpLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGFsbCBtb2R1bGVzIHdpdGggYSBzZXQgb2YgcHJvcGVydGllcyBvZiBpdHMgcHJvdG90eXBlLlxyXG4gICAgICogQHBhcmFtIHsuLi5zdHJpbmd9IHByb3RvdHlwZXMgUHJvcGVydGllcyB0byB1c2UgdG8gZmlsdGVyIG1vZHVsZXNcclxuICAgICAqIEByZXR1cm4ge0FueX1cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldEFsbEJ5UHJvdG90eXBlcyguLi5wcm90b3R5cGVzKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TW9kdWxlKEZpbHRlcnMuYnlQcm90b3R5cGVGaWVsZHMocHJvdG90eXBlcyksIGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGEgc2luZ2xlIG1vZHVsZSB1c2luZyBpdHMgb3duIHByb3BlcnRpZXMuXHJcbiAgICAgKiBAcGFyYW0gey4uLnN0cmluZ30gcHJvcHMgUHJvcGVydGllcyB0byB1c2UgdG8gZmlsdGVyIG1vZHVsZXNcclxuICAgICAqIEByZXR1cm4ge0FueX1cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldEJ5UHJvcHMoLi4ucHJvcHMpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNb2R1bGUoRmlsdGVycy5ieVByb3BlcnRpZXMocHJvcHMpLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGFsbCBtb2R1bGVzIHdpdGggYSBzZXQgb2YgcHJvcGVydGllcy5cclxuICAgICAqIEBwYXJhbSB7Li4uc3RyaW5nfSBwcm9wcyBQcm9wZXJ0aWVzIHRvIHVzZSB0byBmaWx0ZXIgbW9kdWxlc1xyXG4gICAgICogQHJldHVybiB7QW55fVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZ2V0QWxsQnlQcm9wcyguLi5wcm9wcykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE1vZHVsZShGaWx0ZXJzLmJ5UHJvcGVydGllcyhwcm9wcyksIGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbmRzIGEgc2luZ2xlIG1vZHVsZSB1c2luZyBhIHNldCBvZiBzdHJpbmdzLlxyXG4gICAgICogQHBhcmFtIHsuLi5TdHJpbmd9IHByb3BzIFN0cmluZ3MgdG8gdXNlIHRvIGZpbHRlciBtb2R1bGVzXHJcbiAgICAgKiBAcmV0dXJuIHtBbnl9XHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXRCeVN0cmluZyguLi5zdHJpbmdzKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TW9kdWxlKEZpbHRlcnMuYnlTdHJpbmcoLi4uc3RyaW5ncyksIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmluZHMgYWxsIG1vZHVsZXMgd2l0aCBhIHNldCBvZiBzdHJpbmdzLlxyXG4gICAgICogQHBhcmFtIHsuLi5TdHJpbmd9IHN0cmluZ3MgU3RyaW5ncyB0byB1c2UgdG8gZmlsdGVyIG1vZHVsZXNcclxuICAgICAqIEByZXR1cm4ge0FueX1cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldEFsbEJ5U3RyaW5nKC4uLnN0cmluZ3MpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNb2R1bGUoRmlsdGVycy5ieVN0cmluZyguLi5zdHJpbmdzKSwgZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGlzY29yZCdzIF9fd2VicGFja19yZXF1aXJlX18gZnVuY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXQgcmVxdWlyZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fcmVxdWlyZSkgcmV0dXJuIHRoaXMuX3JlcXVpcmU7XHJcbiAgICAgICAgY29uc3QgaWQgPSBcImJiZC13ZWJwYWNrbW9kdWxlc1wiO1xyXG4gICAgICAgIGNvbnN0IF9fd2VicGFja19yZXF1aXJlX18gPSB0eXBlb2Yod2luZG93LndlYnBhY2tKc29ucCkgPT0gXCJmdW5jdGlvblwiID8gd2luZG93LndlYnBhY2tKc29ucChbXSwge1xyXG4gICAgICAgICAgICBbaWRdOiAobW9kdWxlLCBleHBvcnRzLCBfX2ludGVybmFsX3JlcXVpcmVfXykgPT4gZXhwb3J0cy5kZWZhdWx0ID0gX19pbnRlcm5hbF9yZXF1aXJlX19cclxuICAgICAgICB9LCBbaWRdKS5kZWZhdWx0IDogd2luZG93LndlYnBhY2tKc29ucC5wdXNoKFtbXSwge1xyXG4gICAgICAgICAgICBbaWRdOiAobW9kdWxlLCBleHBvcnRzLCBfX2ludGVybmFsX3JlcXVpcmVfXykgPT4gbW9kdWxlLmV4cG9ydHMgPSBfX2ludGVybmFsX3JlcXVpcmVfX1xyXG4gICAgICAgIH0sIFtbaWRdXV0pO1xyXG4gICAgICAgIGRlbGV0ZSBfX3dlYnBhY2tfcmVxdWlyZV9fLm1baWRdO1xyXG4gICAgICAgIGRlbGV0ZSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbaWRdO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yZXF1aXJlID0gX193ZWJwYWNrX3JlcXVpcmVfXztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYWxsIGxvYWRlZCBtb2R1bGVzLlxyXG4gICAgICogQHJldHVybiB7QXJyYXl9XHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXRBbGxNb2R1bGVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVpcmUuYztcclxuICAgIH1cclxuXHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/webpackmodules.js\n");
/***/ }),
/***/ "./src/structs/builtin.js":
/*!********************************!*\
!*** ./src/structs/builtin.js ***!
\********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BuiltinModule; });\n/* harmony import */ var _modules_utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../modules/utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _modules_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../modules/emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../modules/settingsmanager */ \"./src/modules/settingsmanager.js\");\n\n\n\nclass BuiltinModule {\n get name() {\n return \"Unnamed Builtin\";\n }\n\n get collection() {\n return \"settings\";\n }\n\n get category() {\n return \"general\";\n }\n\n get id() {\n return \"None\";\n }\n\n async initialize() {\n if (_modules_settingsmanager__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(this.collection, this.category, this.id)) await this.enable();\n _modules_emitter__WEBPACK_IMPORTED_MODULE_1__[\"default\"].on(\"setting-updated\", (collection, category, id, enabled) => {\n if (collection != this.collection || category !== this.category || id !== this.id) return;\n if (enabled) this.enable();else this.disable();\n });\n }\n\n registerSetting(collection, category, id, onEnable, onDisable) {\n if (arguments.length == 4) {\n collection = this.collection;\n category = arguments[0];\n id = arguments[1];\n onEnable = arguments[2];\n onDisable = arguments[3];\n } else if (arguments.length == 3) {\n collection = this.collection;\n category = this.category;\n id = arguments[0];\n onEnable = arguments[1];\n onDisable = arguments[2];\n }\n\n return _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_2__[\"default\"].on(collection, category, id, value => {\n if (value) onEnable();else onDisable();\n });\n }\n\n get(collection, category, id) {\n if (arguments.length == 2) {\n collection = this.collection;\n category = arguments[0];\n id = arguments[1];\n } else if (arguments.length == 1) {\n collection = this.collection;\n category = this.category;\n id = arguments[0];\n }\n\n return _modules_settingsmanager__WEBPACK_IMPORTED_MODULE_2__[\"default\"].get(collection, category, id);\n }\n\n async enable() {\n this.log(\"Enabled\");\n await this.enabled();\n }\n\n async disable() {\n this.log(\"Disabled\");\n await this.disabled();\n }\n\n async enabled() {}\n\n async disabled() {}\n\n log(...message) {\n _modules_utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].log(this.name, ...message);\n }\n\n warn(...message) {\n _modules_utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].warn(this.name, ...message);\n }\n\n error(...message) {\n _modules_utilities__WEBPACK_IMPORTED_MODULE_0__[\"default\"].err(this.name, ...message);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3N0cnVjdHMvYnVpbHRpbi5qcz85NTYyIl0sIm5hbWVzIjpbIkJ1aWx0aW5Nb2R1bGUiLCJuYW1lIiwiY29sbGVjdGlvbiIsImNhdGVnb3J5IiwiaWQiLCJpbml0aWFsaXplIiwiU2V0dGluZ3MiLCJnZXQiLCJlbmFibGUiLCJFdmVudHMiLCJvbiIsImVuYWJsZWQiLCJkaXNhYmxlIiwicmVnaXN0ZXJTZXR0aW5nIiwib25FbmFibGUiLCJvbkRpc2FibGUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ2YWx1ZSIsImxvZyIsImRpc2FibGVkIiwibWVzc2FnZSIsIlV0aWxpdGllcyIsIndhcm4iLCJlcnJvciIsImVyciJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVlLE1BQU1BLGFBQU4sQ0FBb0I7QUFFL0IsTUFBSUMsSUFBSixHQUFXO0FBQUMsV0FBTyxpQkFBUDtBQUEwQjs7QUFDdEMsTUFBSUMsVUFBSixHQUFpQjtBQUFDLFdBQU8sVUFBUDtBQUFtQjs7QUFDckMsTUFBSUMsUUFBSixHQUFlO0FBQUMsV0FBTyxTQUFQO0FBQWtCOztBQUNsQyxNQUFJQyxFQUFKLEdBQVM7QUFBQyxXQUFPLE1BQVA7QUFBZTs7QUFFekIsUUFBTUMsVUFBTixHQUFtQjtBQUNmLFFBQUlDLGdFQUFRLENBQUNDLEdBQVQsQ0FBYSxLQUFLTCxVQUFsQixFQUE4QixLQUFLQyxRQUFuQyxFQUE2QyxLQUFLQyxFQUFsRCxDQUFKLEVBQTJELE1BQU0sS0FBS0ksTUFBTCxFQUFOO0FBQzNEQyw0REFBTSxDQUFDQyxFQUFQLENBQVUsaUJBQVYsRUFBNkIsQ0FBQ1IsVUFBRCxFQUFhQyxRQUFiLEVBQXVCQyxFQUF2QixFQUEyQk8sT0FBM0IsS0FBdUM7QUFDaEUsVUFBSVQsVUFBVSxJQUFJLEtBQUtBLFVBQW5CLElBQWlDQyxRQUFRLEtBQUssS0FBS0EsUUFBbkQsSUFBK0RDLEVBQUUsS0FBSyxLQUFLQSxFQUEvRSxFQUFtRjtBQUNuRixVQUFJTyxPQUFKLEVBQWEsS0FBS0gsTUFBTCxHQUFiLEtBQ0ssS0FBS0ksT0FBTDtBQUNSLEtBSkQ7QUFLSDs7QUFFREMsaUJBQWUsQ0FBQ1gsVUFBRCxFQUFhQyxRQUFiLEVBQXVCQyxFQUF2QixFQUEyQlUsUUFBM0IsRUFBcUNDLFNBQXJDLEVBQWdEO0FBQzNELFFBQUlDLFNBQVMsQ0FBQ0MsTUFBVixJQUFvQixDQUF4QixFQUEyQjtBQUN2QmYsZ0JBQVUsR0FBRyxLQUFLQSxVQUFsQjtBQUNBQyxjQUFRLEdBQUdhLFNBQVMsQ0FBQyxDQUFELENBQXBCO0FBQ0FaLFFBQUUsR0FBR1ksU0FBUyxDQUFDLENBQUQsQ0FBZDtBQUNBRixjQUFRLEdBQUdFLFNBQVMsQ0FBQyxDQUFELENBQXBCO0FBQ0FELGVBQVMsR0FBR0MsU0FBUyxDQUFDLENBQUQsQ0FBckI7QUFDSCxLQU5ELE1BT0ssSUFBSUEsU0FBUyxDQUFDQyxNQUFWLElBQW9CLENBQXhCLEVBQTJCO0FBQzVCZixnQkFBVSxHQUFHLEtBQUtBLFVBQWxCO0FBQ0FDLGNBQVEsR0FBRyxLQUFLQSxRQUFoQjtBQUNBQyxRQUFFLEdBQUdZLFNBQVMsQ0FBQyxDQUFELENBQWQ7QUFDQUYsY0FBUSxHQUFHRSxTQUFTLENBQUMsQ0FBRCxDQUFwQjtBQUNBRCxlQUFTLEdBQUdDLFNBQVMsQ0FBQyxDQUFELENBQXJCO0FBQ0g7O0FBQ0QsV0FBT1YsZ0VBQVEsQ0FBQ0ksRUFBVCxDQUFZUixVQUFaLEVBQXdCQyxRQUF4QixFQUFrQ0MsRUFBbEMsRUFBdUNjLEtBQUQsSUFBVztBQUNwRCxVQUFJQSxLQUFKLEVBQVdKLFFBQVEsR0FBbkIsS0FDS0MsU0FBUztBQUNqQixLQUhNLENBQVA7QUFJSDs7QUFFRFIsS0FBRyxDQUFDTCxVQUFELEVBQWFDLFFBQWIsRUFBdUJDLEVBQXZCLEVBQTJCO0FBQzFCLFFBQUlZLFNBQVMsQ0FBQ0MsTUFBVixJQUFvQixDQUF4QixFQUEyQjtBQUN2QmYsZ0JBQVUsR0FBRyxLQUFLQSxVQUFsQjtBQUNBQyxjQUFRLEdBQUdhLFNBQVMsQ0FBQyxDQUFELENBQXBCO0FBQ0FaLFFBQUUsR0FBR1ksU0FBUyxDQUFDLENBQUQsQ0FBZDtBQUNILEtBSkQsTUFLSyxJQUFJQSxTQUFTLENBQUNDLE1BQVYsSUFBb0IsQ0FBeEIsRUFBMkI7QUFDNUJmLGdCQUFVLEdBQUcsS0FBS0EsVUFBbEI7QUFDQUMsY0FBUSxHQUFHLEtBQUtBLFFBQWhCO0FBQ0FDLFFBQUUsR0FBR1ksU0FBUyxDQUFDLENBQUQsQ0FBZDtBQUNIOztBQUNELFdBQU9WLGdFQUFRLENBQUNDLEdBQVQsQ0FBYUwsVUFBYixFQUF5QkMsUUFBekIsRUFBbUNDLEVBQW5DLENBQVA7QUFDSDs7QUFFRCxRQUFNSSxNQUFOLEdBQWU7QUFDWCxTQUFLVyxHQUFMLENBQVMsU0FBVDtBQUNBLFVBQU0sS0FBS1IsT0FBTCxFQUFOO0FBQ0g7O0FBRUQsUUFBTUMsT0FBTixHQUFnQjtBQUNaLFNBQUtPLEdBQUwsQ0FBUyxVQUFUO0FBQ0EsVUFBTSxLQUFLQyxRQUFMLEVBQU47QUFDSDs7QUFFRCxRQUFNVCxPQUFOLEdBQWdCLENBQUU7O0FBQ2xCLFFBQU1TLFFBQU4sR0FBaUIsQ0FBRTs7QUFFbkJELEtBQUcsQ0FBQyxHQUFHRSxPQUFKLEVBQWE7QUFDWkMsOERBQVMsQ0FBQ0gsR0FBVixDQUFjLEtBQUtsQixJQUFuQixFQUF5QixHQUFHb0IsT0FBNUI7QUFDSDs7QUFFREUsTUFBSSxDQUFDLEdBQUdGLE9BQUosRUFBYTtBQUNiQyw4REFBUyxDQUFDQyxJQUFWLENBQWUsS0FBS3RCLElBQXBCLEVBQTBCLEdBQUdvQixPQUE3QjtBQUNIOztBQUVERyxPQUFLLENBQUMsR0FBR0gsT0FBSixFQUFhO0FBQ2RDLDhEQUFTLENBQUNHLEdBQVYsQ0FBYyxLQUFLeEIsSUFBbkIsRUFBeUIsR0FBR29CLE9BQTVCO0FBQ0g7O0FBMUU4QiIsImZpbGUiOiIuL3NyYy9zdHJ1Y3RzL2J1aWx0aW4uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVXRpbGl0aWVzIGZyb20gXCIuLi9tb2R1bGVzL3V0aWxpdGllc1wiO1xyXG5pbXBvcnQgRXZlbnRzIGZyb20gXCIuLi9tb2R1bGVzL2VtaXR0ZXJcIjtcclxuaW1wb3J0IFNldHRpbmdzIGZyb20gXCIuLi9tb2R1bGVzL3NldHRpbmdzbWFuYWdlclwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnVpbHRpbk1vZHVsZSB7XHJcblxyXG4gICAgZ2V0IG5hbWUoKSB7cmV0dXJuIFwiVW5uYW1lZCBCdWlsdGluXCI7fVxyXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7cmV0dXJuIFwic2V0dGluZ3NcIjt9XHJcbiAgICBnZXQgY2F0ZWdvcnkoKSB7cmV0dXJuIFwiZ2VuZXJhbFwiO31cclxuICAgIGdldCBpZCgpIHtyZXR1cm4gXCJOb25lXCI7fVxyXG5cclxuICAgIGFzeW5jIGluaXRpYWxpemUoKSB7XHJcbiAgICAgICAgaWYgKFNldHRpbmdzLmdldCh0aGlzLmNvbGxlY3Rpb24sIHRoaXMuY2F0ZWdvcnksIHRoaXMuaWQpKSBhd2FpdCB0aGlzLmVuYWJsZSgpO1xyXG4gICAgICAgIEV2ZW50cy5vbihcInNldHRpbmctdXBkYXRlZFwiLCAoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCBlbmFibGVkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjb2xsZWN0aW9uICE9IHRoaXMuY29sbGVjdGlvbiB8fCBjYXRlZ29yeSAhPT0gdGhpcy5jYXRlZ29yeSB8fCBpZCAhPT0gdGhpcy5pZCkgcmV0dXJuO1xyXG4gICAgICAgICAgICBpZiAoZW5hYmxlZCkgdGhpcy5lbmFibGUoKTtcclxuICAgICAgICAgICAgZWxzZSB0aGlzLmRpc2FibGUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3RlclNldHRpbmcoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCBvbkVuYWJsZSwgb25EaXNhYmxlKSB7XHJcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gNCkge1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uID0gdGhpcy5jb2xsZWN0aW9uO1xyXG4gICAgICAgICAgICBjYXRlZ29yeSA9IGFyZ3VtZW50c1swXTtcclxuICAgICAgICAgICAgaWQgPSBhcmd1bWVudHNbMV07XHJcbiAgICAgICAgICAgIG9uRW5hYmxlID0gYXJndW1lbnRzWzJdO1xyXG4gICAgICAgICAgICBvbkRpc2FibGUgPSBhcmd1bWVudHNbM107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykge1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uID0gdGhpcy5jb2xsZWN0aW9uO1xyXG4gICAgICAgICAgICBjYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcnk7XHJcbiAgICAgICAgICAgIGlkID0gYXJndW1lbnRzWzBdO1xyXG4gICAgICAgICAgICBvbkVuYWJsZSA9IGFyZ3VtZW50c1sxXTtcclxuICAgICAgICAgICAgb25EaXNhYmxlID0gYXJndW1lbnRzWzJdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gU2V0dGluZ3Mub24oY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkLCAodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlKSBvbkVuYWJsZSgpO1xyXG4gICAgICAgICAgICBlbHNlIG9uRGlzYWJsZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldChjb2xsZWN0aW9uLCBjYXRlZ29yeSwgaWQpIHtcclxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAyKSB7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb247XHJcbiAgICAgICAgICAgIGNhdGVnb3J5ID0gYXJndW1lbnRzWzBdO1xyXG4gICAgICAgICAgICBpZCA9IGFyZ3VtZW50c1sxXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb247XHJcbiAgICAgICAgICAgIGNhdGVnb3J5ID0gdGhpcy5jYXRlZ29yeTtcclxuICAgICAgICAgICAgaWQgPSBhcmd1bWVudHNbMF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBTZXR0aW5ncy5nZXQoY29sbGVjdGlvbiwgY2F0ZWdvcnksIGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBlbmFibGUoKSB7XHJcbiAgICAgICAgdGhpcy5sb2coXCJFbmFibGVkXCIpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZW5hYmxlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRpc2FibGUoKSB7XHJcbiAgICAgICAgdGhpcy5sb2coXCJEaXNhYmxlZFwiKTtcclxuICAgICAgICBhd2FpdCB0aGlzLmRpc2FibGVkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZW5hYmxlZCgpIHt9XHJcbiAgICBhc3luYyBkaXNhYmxlZCgpIHt9XHJcblxyXG4gICAgbG9nKC4uLm1lc3NhZ2UpIHtcclxuICAgICAgICBVdGlsaXRpZXMubG9nKHRoaXMubmFtZSwgLi4ubWVzc2FnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgd2FybiguLi5tZXNzYWdlKSB7XHJcbiAgICAgICAgVXRpbGl0aWVzLndhcm4odGhpcy5uYW1lLCAuLi5tZXNzYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICBlcnJvciguLi5tZXNzYWdlKSB7XHJcbiAgICAgICAgVXRpbGl0aWVzLmVycih0aGlzLm5hbWUsIC4uLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/structs/builtin.js\n");
/***/ }),
/***/ "./src/structs/contenterror.js":
/*!*************************************!*\
!*** ./src/structs/contenterror.js ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ContentError; });\nclass ContentError extends Error {\n constructor(name, filename, message, error) {\n super(message);\n this.name = name;\n this.file = filename;\n this.error = error;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3N0cnVjdHMvY29udGVudGVycm9yLmpzP2M3NTYiXSwibmFtZXMiOlsiQ29udGVudEVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmaWxlbmFtZSIsIm1lc3NhZ2UiLCJlcnJvciIsImZpbGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBZSxNQUFNQSxZQUFOLFNBQTJCQyxLQUEzQixDQUFpQztBQUM1Q0MsYUFBVyxDQUFDQyxJQUFELEVBQU9DLFFBQVAsRUFBaUJDLE9BQWpCLEVBQTBCQyxLQUExQixFQUFpQztBQUN4QyxVQUFNRCxPQUFOO0FBQ0EsU0FBS0YsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0ksSUFBTCxHQUFZSCxRQUFaO0FBQ0EsU0FBS0UsS0FBTCxHQUFhQSxLQUFiO0FBQ0g7O0FBTjJDIiwiZmlsZSI6Ii4vc3JjL3N0cnVjdHMvY29udGVudGVycm9yLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGVudEVycm9yIGV4dGVuZHMgRXJyb3Ige1xyXG4gICAgY29uc3RydWN0b3IobmFtZSwgZmlsZW5hbWUsIG1lc3NhZ2UsIGVycm9yKSB7XHJcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgICAgICB0aGlzLmZpbGUgPSBmaWxlbmFtZTtcclxuICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/structs/contenterror.js\n");
/***/ }),
/***/ "./src/structs/metaerror.js":
/*!**********************************!*\
!*** ./src/structs/metaerror.js ***!
\**********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MetaError; });\nclass MetaError extends Error {\n constructor(message) {\n super(message);\n this.name = \"MetaError\";\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3N0cnVjdHMvbWV0YWVycm9yLmpzP2UxOTYiXSwibmFtZXMiOlsiTWV0YUVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQWUsTUFBTUEsU0FBTixTQUF3QkMsS0FBeEIsQ0FBOEI7QUFDekNDLGFBQVcsQ0FBQ0MsT0FBRCxFQUFVO0FBQ2pCLFVBQU1BLE9BQU47QUFDQSxTQUFLQyxJQUFMLEdBQVksV0FBWjtBQUNIOztBQUp3QyIsImZpbGUiOiIuL3NyYy9zdHJ1Y3RzL21ldGFlcnJvci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIE1ldGFFcnJvciBleHRlbmRzIEVycm9yIHtcclxuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcclxuICAgICAgICBzdXBlcihtZXNzYWdlKTtcclxuICAgICAgICB0aGlzLm5hbWUgPSBcIk1ldGFFcnJvclwiO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/structs/metaerror.js\n");
/***/ }),
/***/ "./src/structs/screen.js":
/*!*******************************!*\
!*** ./src/structs/screen.js ***!
\*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Screen; });\nclass Screen {\n /** Document/window width */\n static get width() {\n return Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n /** Document/window height */\n\n\n static get height() {\n return Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3N0cnVjdHMvc2NyZWVuLmpzPzRiMjEiXSwibmFtZXMiOlsiU2NyZWVuIiwid2lkdGgiLCJNYXRoIiwibWF4IiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJjbGllbnRXaWR0aCIsIndpbmRvdyIsImlubmVyV2lkdGgiLCJoZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpbm5lckhlaWdodCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFlLE1BQU1BLE1BQU4sQ0FBYTtBQUN4QjtBQUNBLGFBQVdDLEtBQVgsR0FBbUI7QUFBRSxXQUFPQyxJQUFJLENBQUNDLEdBQUwsQ0FBU0MsUUFBUSxDQUFDQyxlQUFULENBQXlCQyxXQUFsQyxFQUErQ0MsTUFBTSxDQUFDQyxVQUFQLElBQXFCLENBQXBFLENBQVA7QUFBZ0Y7QUFDckc7OztBQUNBLGFBQVdDLE1BQVgsR0FBb0I7QUFBRSxXQUFPUCxJQUFJLENBQUNDLEdBQUwsQ0FBU0MsUUFBUSxDQUFDQyxlQUFULENBQXlCSyxZQUFsQyxFQUFnREgsTUFBTSxDQUFDSSxXQUFQLElBQXNCLENBQXRFLENBQVA7QUFBa0Y7O0FBSmhGIiwiZmlsZSI6Ii4vc3JjL3N0cnVjdHMvc2NyZWVuLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2NyZWVuIHtcclxuICAgIC8qKiBEb2N1bWVudC93aW5kb3cgd2lkdGggKi9cclxuICAgIHN0YXRpYyBnZXQgd2lkdGgoKSB7IHJldHVybiBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsIHdpbmRvdy5pbm5lcldpZHRoIHx8IDApOyB9XHJcbiAgICAvKiogRG9jdW1lbnQvd2luZG93IGhlaWdodCAqL1xyXG4gICAgc3RhdGljIGdldCBoZWlnaHQoKSB7IHJldHVybiBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LCB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgMCk7IH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/structs/screen.js\n");
/***/ }),
/***/ "./src/ui/customcss/checkbox.jsx":
/*!***************************************!*\
!*** ./src/ui/customcss/checkbox.jsx ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Checkbox; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Checkbox extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.onClick = this.onClick.bind(this);\n this.state = {\n checked: this.props.checked || false\n };\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"checkbox-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"checkbox-label label-JWQiNe da-label\"\n }, this.props.text), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"checkbox-wrapper checkbox-3kaeSU da-checkbox checkbox-3EVISJ da-checkbox\",\n onClick: this.onClick\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"checkbox-inner checkboxInner-3yjcPe da-checkboxInner\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n className: \"checkbox checkboxElement-1qV33p da-checkboxElement\",\n checked: this.state.checked,\n type: \"checkbox\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", null)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", null)));\n }\n\n onClick() {\n this.props.onChange(!this.state.checked);\n this.setState({\n checked: !this.state.checked\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2N1c3RvbWNzcy9jaGVja2JveC5qc3g/MjJiNSJdLCJuYW1lcyI6WyJDaGVja2JveCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIm9uQ2xpY2siLCJiaW5kIiwic3RhdGUiLCJjaGVja2VkIiwicmVuZGVyIiwidGV4dCIsIm9uQ2hhbmdlIiwic2V0U3RhdGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsUUFBTixTQUF1QkMsNkNBQUssQ0FBQ0MsU0FBN0IsQ0FBdUM7QUFDbERDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUNBLFNBQUtDLE9BQUwsR0FBZSxLQUFLQSxPQUFMLENBQWFDLElBQWIsQ0FBa0IsSUFBbEIsQ0FBZjtBQUNBLFNBQUtDLEtBQUwsR0FBYTtBQUFDQyxhQUFPLEVBQUUsS0FBS0osS0FBTCxDQUFXSSxPQUFYLElBQXNCO0FBQWhDLEtBQWI7QUFDSDs7QUFFREMsUUFBTSxHQUFHO0FBQ0wsV0FBTztBQUFLLGVBQVMsRUFBQztBQUFmLE9BQ0g7QUFBSyxlQUFTLEVBQUM7QUFBZixPQUF1RCxLQUFLTCxLQUFMLENBQVdNLElBQWxFLENBREcsRUFFSDtBQUFLLGVBQVMsRUFBQywwRUFBZjtBQUEwRixhQUFPLEVBQUUsS0FBS0w7QUFBeEcsT0FDSTtBQUFLLGVBQVMsRUFBQztBQUFmLE9BQ0k7QUFBTyxlQUFTLEVBQUMsb0RBQWpCO0FBQXNFLGFBQU8sRUFBRSxLQUFLRSxLQUFMLENBQVdDLE9BQTFGO0FBQW1HLFVBQUksRUFBQztBQUF4RyxNQURKLEVBRUkseUVBRkosQ0FESixFQUtJLHlFQUxKLENBRkcsQ0FBUDtBQVVIOztBQUVESCxTQUFPLEdBQUc7QUFDTixTQUFLRCxLQUFMLENBQVdPLFFBQVgsQ0FBb0IsQ0FBQyxLQUFLSixLQUFMLENBQVdDLE9BQWhDO0FBQ0EsU0FBS0ksUUFBTCxDQUFjO0FBQUNKLGFBQU8sRUFBRSxDQUFDLEtBQUtELEtBQUwsQ0FBV0M7QUFBdEIsS0FBZDtBQUNIOztBQXZCaUQiLCJmaWxlIjoiLi9zcmMvdWkvY3VzdG9tY3NzL2NoZWNrYm94LmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDaGVja2JveCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICB0aGlzLm9uQ2xpY2sgPSB0aGlzLm9uQ2xpY2suYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge2NoZWNrZWQ6IHRoaXMucHJvcHMuY2hlY2tlZCB8fCBmYWxzZX07XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cImNoZWNrYm94LWl0ZW1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjaGVja2JveC1sYWJlbCBsYWJlbC1KV1FpTmUgZGEtbGFiZWxcIj57dGhpcy5wcm9wcy50ZXh0fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNoZWNrYm94LXdyYXBwZXIgY2hlY2tib3gtM2thZVNVIGRhLWNoZWNrYm94IGNoZWNrYm94LTNFVklTSiBkYS1jaGVja2JveFwiIG9uQ2xpY2s9e3RoaXMub25DbGlja30+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNoZWNrYm94LWlubmVyIGNoZWNrYm94SW5uZXItM3lqY1BlIGRhLWNoZWNrYm94SW5uZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3NOYW1lPVwiY2hlY2tib3ggY2hlY2tib3hFbGVtZW50LTFxVjMzcCBkYS1jaGVja2JveEVsZW1lbnRcIiBjaGVja2VkPXt0aGlzLnN0YXRlLmNoZWNrZWR9IHR5cGU9XCJjaGVja2JveFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PjtcclxuICAgIH1cclxuXHJcbiAgICBvbkNsaWNrKCkge1xyXG4gICAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UoIXRoaXMuc3RhdGUuY2hlY2tlZCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y2hlY2tlZDogIXRoaXMuc3RhdGUuY2hlY2tlZH0pO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/customcss/checkbox.jsx\n");
/***/ }),
/***/ "./src/ui/customcss/csseditor.jsx":
/*!****************************************!*\
!*** ./src/ui/customcss/csseditor.jsx ***!
\****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CssEditor; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./editor */ \"./src/ui/customcss/editor.jsx\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n/* harmony import */ var _icons_save__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/save */ \"./src/ui/icons/save.jsx\");\n/* harmony import */ var _icons_edit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/edit */ \"./src/ui/icons/edit.jsx\");\n/* harmony import */ var _icons_cog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icons/cog */ \"./src/ui/icons/cog.jsx\");\n/* harmony import */ var _icons_detach__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icons/detach */ \"./src/ui/icons/detach.jsx\");\n\n // import Checkbox from \"./checkbox\";\n\n\n\n\n\n\nclass CssEditor extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.hasUnsavedChanges = false;\n this.onChange = this.onChange.bind(this);\n this.toggleLiveUpdate = this.toggleLiveUpdate.bind(this);\n this.updateCss = this.updateCss.bind(this);\n this.saveCss = this.saveCss.bind(this);\n this.openDetached = this.props.openDetached ? this.openDetached.bind(this) : null;\n this.openNative = this.openNative.bind(this);\n this.updateEditor = this.updateEditor.bind(this);\n this.controls = [{\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: \"Update\",\n onClick: this.updateCss\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_save__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: \"Save\",\n onClick: this.saveCss\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_edit__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: \"Open in System Editor\",\n onClick: this.openNative\n }, {\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_cog__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: \"Editor Settings\",\n onClick: \"showSettings\"\n }, {\n label: \"Live Update\",\n type: \"checkbox\",\n onChange: this.toggleLiveUpdate,\n checked: modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"customcss\", \"liveUpdate\"),\n side: \"right\"\n }];\n if (this.openDetached) this.controls.push({\n label: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_detach__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n size: \"18px\"\n }),\n tooltip: \"Detach Editor\",\n onClick: this.openDetached,\n side: \"right\"\n });\n }\n\n componentDidMount() {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].on(\"customcss-updated\", this.updateEditor);\n }\n\n componentWillUnmount() {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].off(\"customcss-updated\", this.updateEditor);\n }\n\n updateEditor(newCSS) {\n if (!this.editor) return;\n this.editor.value = newCSS;\n }\n\n get value() {\n return this.editor.session.getValue();\n }\n\n set value(newValue) {\n this.editor.setValue(newValue);\n }\n\n showSettings() {\n return this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec(this.editor);\n }\n\n resize() {\n return this.editor.resize();\n }\n\n setEditorRef(editor) {\n this.editor = editor;\n if (this.props.editorRef && typeof this.props.editorRef.current !== \"undefined\") this.props.editorRef.current = editor;else if (this.props.editorRef) this.props.editorRef = editor;\n }\n\n onChange() {\n this.hasUnsavedChanges = true;\n if (this.props.onChange) this.props.onChange(...arguments);\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_editor__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n ref: this.setEditorRef.bind(this),\n readOnly: this.props.readOnly,\n id: this.props.id || \"bd-customcss-editor\",\n onChange: this.onChange,\n controls: this.controls,\n value: this.props.css\n });\n }\n\n toggleLiveUpdate(checked) {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].set(\"settings\", \"customcss\", \"liveUpdate\", checked);\n }\n\n updateCss(event, newCss) {\n if (this.props.update) this.props.update(newCss);\n }\n\n saveCss(event, newCss) {\n this.hasUnsavedChanges = false;\n if (this.props.save) this.props.save(newCss);\n }\n\n openDetached(event, currentCSS) {\n if (!this.props.openDetached) return;\n this.props.openDetached(currentCSS);\n }\n\n openNative() {\n if (this.props.openNative) this.props.openNative();\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2N1c3RvbWNzcy9jc3NlZGl0b3IuanN4PzQyMzAiXSwibmFtZXMiOlsiQ3NzRWRpdG9yIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiaGFzVW5zYXZlZENoYW5nZXMiLCJvbkNoYW5nZSIsImJpbmQiLCJ0b2dnbGVMaXZlVXBkYXRlIiwidXBkYXRlQ3NzIiwic2F2ZUNzcyIsIm9wZW5EZXRhY2hlZCIsIm9wZW5OYXRpdmUiLCJ1cGRhdGVFZGl0b3IiLCJjb250cm9scyIsImxhYmVsIiwiY3JlYXRlRWxlbWVudCIsIlJlZnJlc2giLCJzaXplIiwidG9vbHRpcCIsIm9uQ2xpY2siLCJTYXZlIiwiRWRpdCIsIkNvZyIsInR5cGUiLCJjaGVja2VkIiwiU2V0dGluZ3MiLCJnZXQiLCJzaWRlIiwicHVzaCIsIkRldGFjaCIsImNvbXBvbmVudERpZE1vdW50IiwiRXZlbnRzIiwib24iLCJjb21wb25lbnRXaWxsVW5tb3VudCIsIm9mZiIsIm5ld0NTUyIsImVkaXRvciIsInZhbHVlIiwic2Vzc2lvbiIsImdldFZhbHVlIiwibmV3VmFsdWUiLCJzZXRWYWx1ZSIsInNob3dTZXR0aW5ncyIsImtleUJpbmRpbmciLCIkZGVmYXVsdEhhbmRsZXIiLCJjb21tYW5kcyIsInNob3dTZXR0aW5nc01lbnUiLCJleGVjIiwicmVzaXplIiwic2V0RWRpdG9yUmVmIiwiZWRpdG9yUmVmIiwiY3VycmVudCIsImFyZ3VtZW50cyIsInJlbmRlciIsInJlYWRPbmx5IiwiaWQiLCJjc3MiLCJzZXQiLCJldmVudCIsIm5ld0NzcyIsInVwZGF0ZSIsInNhdmUiLCJjdXJyZW50Q1NTIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUdBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFZSxNQUFNQSxTQUFOLFNBQXdCQyw2Q0FBSyxDQUFDQyxT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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3QsIFNldHRpbmdzLCBFdmVudHN9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5pbXBvcnQgRWRpdG9yIGZyb20gXCIuL2VkaXRvclwiO1xyXG4vLyBpbXBvcnQgQ2hlY2tib3ggZnJvbSBcIi4vY2hlY2tib3hcIjtcclxuaW1wb3J0IFJlZnJlc2ggZnJvbSBcIi4uL2ljb25zL3JlbG9hZFwiO1xyXG5pbXBvcnQgU2F2ZSBmcm9tIFwiLi4vaWNvbnMvc2F2ZVwiO1xyXG5pbXBvcnQgRWRpdCBmcm9tIFwiLi4vaWNvbnMvZWRpdFwiO1xyXG5pbXBvcnQgQ29nIGZyb20gXCIuLi9pY29ucy9jb2dcIjtcclxuaW1wb3J0IERldGFjaCBmcm9tIFwiLi4vaWNvbnMvZGV0YWNoXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDc3NFZGl0b3IgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG5cclxuICAgICAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy50b2dnbGVMaXZlVXBkYXRlID0gdGhpcy50b2dnbGVMaXZlVXBkYXRlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDc3MgPSB0aGlzLnVwZGF0ZUNzcy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc2F2ZUNzcyA9IHRoaXMuc2F2ZUNzcy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMub3BlbkRldGFjaGVkID0gdGhpcy5wcm9wcy5vcGVuRGV0YWNoZWQgPyB0aGlzLm9wZW5EZXRhY2hlZC5iaW5kKHRoaXMpIDogbnVsbDtcclxuICAgICAgICB0aGlzLm9wZW5OYXRpdmUgPSB0aGlzLm9wZW5OYXRpdmUuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUVkaXRvciA9IHRoaXMudXBkYXRlRWRpdG9yLmJpbmQodGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuY29udHJvbHMgPSBbXHJcbiAgICAgICAgICAgIHtsYWJlbDogUmVhY3QuY3JlYXRlRWxlbWVudChSZWZyZXNoLCB7c2l6ZTogXCIxOHB4XCJ9KSwgdG9vbHRpcDogXCJVcGRhdGVcIiwgb25DbGljazogdGhpcy51cGRhdGVDc3N9LFxyXG4gICAgICAgICAgICB7bGFiZWw6IFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2F2ZSwge3NpemU6IFwiMThweFwifSksIHRvb2x0aXA6IFwiU2F2ZVwiLCBvbkNsaWNrOiB0aGlzLnNhdmVDc3N9LFxyXG4gICAgICAgICAgICB7bGFiZWw6IFJlYWN0LmNyZWF0ZUVsZW1lbnQoRWRpdCwge3NpemU6IFwiMThweFwifSksIHRvb2x0aXA6IFwiT3BlbiBpbiBTeXN0ZW0gRWRpdG9yXCIsIG9uQ2xpY2s6IHRoaXMub3Blbk5hdGl2ZX0sXHJcbiAgICAgICAgICAgIHtsYWJlbDogUmVhY3QuY3JlYXRlRWxlbWVudChDb2csIHtzaXplOiBcIjE4cHhcIn0pLCB0b29sdGlwOiBcIkVkaXRvciBTZXR0aW5nc1wiLCBvbkNsaWNrOiBcInNob3dTZXR0aW5nc1wifSxcclxuICAgICAgICAgICAge2xhYmVsOiBcIkxpdmUgVXBkYXRlXCIsIHR5cGU6XCJjaGVja2JveFwiLCBvbkNoYW5nZTogdGhpcy50b2dnbGVMaXZlVXBkYXRlLCBjaGVja2VkOiBTZXR0aW5ncy5nZXQoXCJzZXR0aW5nc1wiLCBcImN1c3RvbWNzc1wiLCBcImxpdmVVcGRhdGVcIiksIHNpZGU6IFwicmlnaHRcIn1cclxuICAgICAgICBdO1xyXG4gICAgICAgIGlmICh0aGlzLm9wZW5EZXRhY2hlZCkgdGhpcy5jb250cm9scy5wdXNoKHtsYWJlbDogUmVhY3QuY3JlYXRlRWxlbWVudChEZXRhY2gsIHtzaXplOiBcIjE4cHhcIn0pLCB0b29sdGlwOiBcIkRldGFjaCBFZGl0b3JcIiwgb25DbGljazogdGhpcy5vcGVuRGV0YWNoZWQsIHNpZGU6IFwicmlnaHRcIn0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgICAgIEV2ZW50cy5vbihcImN1c3RvbWNzcy11cGRhdGVkXCIsIHRoaXMudXBkYXRlRWRpdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgICAgICBFdmVudHMub2ZmKFwiY3VzdG9tY3NzLXVwZGF0ZWRcIiwgdGhpcy51cGRhdGVFZGl0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUVkaXRvcihuZXdDU1MpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZWRpdG9yKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5lZGl0b3IudmFsdWUgPSBuZXdDU1M7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHZhbHVlKCkge3JldHVybiB0aGlzLmVkaXRvci5zZXNzaW9uLmdldFZhbHVlKCk7fVxyXG4gICAgc2V0IHZhbHVlKG5ld1ZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2V0VmFsdWUobmV3VmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dTZXR0aW5ncygpIHtyZXR1cm4gdGhpcy5lZGl0b3Iua2V5QmluZGluZy4kZGVmYXVsdEhhbmRsZXIuY29tbWFuZHMuc2hvd1NldHRpbmdzTWVudS5leGVjKHRoaXMuZWRpdG9yKTt9XHJcbiAgICByZXNpemUoKSB7cmV0dXJuIHRoaXMuZWRpdG9yLnJlc2l6ZSgpO31cclxuXHJcbiAgICBzZXRFZGl0b3JSZWYoZWRpdG9yKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3IgPSBlZGl0b3I7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZWRpdG9yUmVmICYmIHR5cGVvZih0aGlzLnByb3BzLmVkaXRvclJlZi5jdXJyZW50KSAhPT0gXCJ1bmRlZmluZWRcIikgdGhpcy5wcm9wcy5lZGl0b3JSZWYuY3VycmVudCA9IGVkaXRvcjtcclxuICAgICAgICBlbHNlIGlmICh0aGlzLnByb3BzLmVkaXRvclJlZikgdGhpcy5wcm9wcy5lZGl0b3JSZWYgPSBlZGl0b3I7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2UoKSB7XHJcbiAgICAgICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25DaGFuZ2UpIHRoaXMucHJvcHMub25DaGFuZ2UoLi4uYXJndW1lbnRzKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIDxFZGl0b3IgcmVmPXt0aGlzLnNldEVkaXRvclJlZi5iaW5kKHRoaXMpfSByZWFkT25seT17dGhpcy5wcm9wcy5yZWFkT25seX0gaWQ9e3RoaXMucHJvcHMuaWQgfHwgXCJiZC1jdXN0b21jc3MtZWRpdG9yXCJ9IG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlfSBjb250cm9scz17dGhpcy5jb250cm9sc30gdmFsdWU9e3RoaXMucHJvcHMuY3NzfSAvPjtcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVMaXZlVXBkYXRlKGNoZWNrZWQpIHtcclxuICAgICAgICBTZXR0aW5ncy5zZXQoXCJzZXR0aW5nc1wiLCBcImN1c3RvbWNzc1wiLCBcImxpdmVVcGRhdGVcIiwgY2hlY2tlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlQ3NzKGV2ZW50LCBuZXdDc3MpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy51cGRhdGUpIHRoaXMucHJvcHMudXBkYXRlKG5ld0Nzcyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZUNzcyhldmVudCwgbmV3Q3NzKSB7XHJcbiAgICAgICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLnNhdmUpIHRoaXMucHJvcHMuc2F2ZShuZXdDc3MpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5EZXRhY2hlZChldmVudCwgY3VycmVudENTUykge1xyXG4gICAgICAgIGlmICghdGhpcy5wcm9wcy5vcGVuRGV0YWNoZWQpIHJldHVybjtcclxuICAgICAgICB0aGlzLnByb3BzLm9wZW5EZXRhY2hlZChjdXJyZW50Q1NTKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuTmF0aXZlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9wZW5OYXRpdmUpIHRoaXMucHJvcHMub3Blbk5hdGl2ZSgpO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/customcss/csseditor.jsx\n");
/***/ }),
/***/ "./src/ui/customcss/editor.jsx":
/*!*************************************!*\
!*** ./src/ui/customcss/editor.jsx ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CodeEditor; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _checkbox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./checkbox */ \"./src/ui/customcss/checkbox.jsx\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\nconst Tooltip = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByDisplayName(\"Tooltip\");\nconst languages = [\"abap\", \"abc\", \"actionscript\", \"ada\", \"apache_conf\", \"asciidoc\", \"assembly_x86\", \"autohotkey\", \"batchfile\", \"bro\", \"c_cpp\", \"c9search\", \"cirru\", \"clojure\", \"cobol\", \"coffee\", \"coldfusion\", \"csharp\", \"csound_document\", \"csound_orchestra\", \"csound_score\", \"css\", \"curly\", \"d\", \"dart\", \"diff\", \"dockerfile\", \"dot\", \"drools\", \"dummy\", \"dummysyntax\", \"eiffel\", \"ejs\", \"elixir\", \"elm\", \"erlang\", \"forth\", \"fortran\", \"ftl\", \"gcode\", \"gherkin\", \"gitignore\", \"glsl\", \"gobstones\", \"golang\", \"graphqlschema\", \"groovy\", \"haml\", \"handlebars\", \"haskell\", \"haskell_cabal\", \"haxe\", \"hjson\", \"html\", \"html_elixir\", \"html_ruby\", \"ini\", \"io\", \"jack\", \"jade\", \"java\", \"javascript\", \"json\", \"jsoniq\", \"jsp\", \"jssm\", \"jsx\", \"julia\", \"kotlin\", \"latex\", \"less\", \"liquid\", \"lisp\", \"livescript\", \"logiql\", \"lsl\", \"lua\", \"luapage\", \"lucene\", \"makefile\", \"markdown\", \"mask\", \"matlab\", \"maze\", \"mel\", \"mushcode\", \"mysql\", \"nix\", \"nsis\", \"objectivec\", \"ocaml\", \"pascal\", \"perl\", \"pgsql\", \"php\", \"pig\", \"powershell\", \"praat\", \"prolog\", \"properties\", \"protobuf\", \"python\", \"r\", \"razor\", \"rdoc\", \"red\", \"rhtml\", \"rst\", \"ruby\", \"rust\", \"sass\", \"scad\", \"scala\", \"scheme\", \"scss\", \"sh\", \"sjs\", \"smarty\", \"snippets\", \"soy_template\", \"space\", \"sql\", \"sqlserver\", \"stylus\", \"svg\", \"swift\", \"tcl\", \"tex\", \"text\", \"textile\", \"toml\", \"tsx\", \"twig\", \"typescript\", \"vala\", \"vbscript\", \"velocity\", \"verilog\", \"vhdl\", \"wollok\", \"xml\", \"xquery\", \"yaml\", \"django\"];\nconst themes = [\"chrome\", \"clouds\", \"crimson_editor\", \"dawn\", \"dreamweaver\", \"eclipse\", \"github\", \"iplastic\", \"solarized_light\", \"textmate\", \"tomorrow\", \"xcode\", \"kuroir\", \"katzenmilch\", \"sqlserver\", \"ambiance\", \"chaos\", \"clouds_midnight\", \"cobalt\", \"gruvbox\", \"gob\", \"idle_fingers\", \"kr_theme\", \"merbivore\", \"merbivore_soft\", \"mono_industrial\", \"monokai\", \"pastel_on_dark\", \"solarized_dark\", \"terminal\", \"tomorrow_night\", \"tomorrow_night_blue\", \"tomorrow_night_bright\", \"tomorrow_night_eighties\", \"twilight\", \"vibrant_ink\"];\nclass CodeEditor extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n static get defaultId() {\n return \"bd-editor\";\n }\n\n constructor(props) {\n super(props);\n\n for (const control of this.props.controls) {\n if (control.type == \"checkbox\") continue;\n if (control.onClick == \"showSettings\") control.onClick = this.showSettings.bind(this);\n }\n\n this.props.theme = this.props.theme.toLowerCase().replace(/ /g, \"_\");\n if (!themes.includes(this.props.theme)) this.props.theme = CodeEditor.defaultProps.theme;\n this.props.language = this.props.language.toLowerCase().replace(/ /g, \"_\");\n if (!languages.includes(this.props.language)) this.props.language = CodeEditor.defaultProps.language;\n this.onChange = this.onChange.bind(this);\n }\n\n static get defaultProps() {\n return {\n controls: [],\n theme: \"bd-monokai\",\n language: \"css\",\n id: this.defaultId,\n fontSize: 14\n };\n }\n\n static get themes() {\n return themes;\n }\n\n componentDidMount() {\n this.editor = ace.edit(this.props.id); // Add id to the ace menu container\n\n const originalShow = this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec;\n\n this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec = function () {\n originalShow.apply(this, arguments);\n const observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (!mutation.addedNodes.length || !(mutation.addedNodes[0] instanceof Element)) continue;\n const node = mutation.addedNodes[0];\n if (node.parentElement !== document.body || !node.querySelector(\"#ace_settingsmenu\")) continue;\n node.id = \"ace_settingsmenu_container\";\n observer.disconnect();\n }\n });\n observer.observe(document.body, {\n childList: true\n });\n };\n\n const theme = this.props.theme == CodeEditor.defaultProps.theme ? this.props.theme.split(\"-\")[1] : this.props.theme;\n this.editor.setTheme(`ace/theme/${theme}`);\n this.editor.session.setMode(`ace/mode/${this.props.language}`);\n this.editor.setShowPrintMargin(false);\n this.editor.setFontSize(this.props.fontSize);\n this.editor.on(\"change\", this.onChange);\n }\n\n componentWillUnmount() {\n this.editor.destroy();\n }\n\n get value() {\n return this.editor.session.getValue();\n }\n\n set value(newValue) {\n this.editor.setValue(newValue);\n }\n\n onChange() {\n if (this.props.onChange) this.props.onChange(this.value);\n }\n\n showSettings() {\n return this.editor.keyBinding.$defaultHandler.commands.showSettingsMenu.exec(this.editor);\n }\n\n resize() {\n return this.editor.resize();\n }\n\n buildControl(control) {\n if (control.type == \"checkbox\") return this.makeCheckbox(control);\n return this.makeButton(control);\n }\n\n makeCheckbox(checkbox) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_checkbox__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: checkbox.label,\n onChange: checkbox.onChange,\n checked: checkbox.checked\n });\n }\n\n makeButton(button) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(Tooltip, {\n color: \"black\",\n position: \"top\",\n text: button.tooltip\n }, props => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", _extends({}, props, {\n className: \"btn btn-primary\",\n onClick: event => {\n button.onClick(event, this.value);\n }\n }), button.label);\n });\n }\n\n render() {\n if (this.editor && this.editor.resize) this.editor.resize();\n const controlsLeft = this.props.controls.filter(c => c.side != \"right\").map(this.buildControl.bind(this));\n const controlsRight = this.props.controls.filter(c => c.side == \"right\").map(this.buildControl.bind(this));\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: \"bd-editor-panel\",\n className: this.props.theme\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: \"bd-editor-controls\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"controls-section controls-left\"\n }, controlsLeft), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"controls-section controls-right\"\n }, controlsRight)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"editor-wrapper\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: this.props.id,\n className: \"editor \" + this.props.theme\n }, this.props.value)));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2N1c3RvbWNzcy9lZGl0b3IuanN4P2ZmZTIiXSwibmFtZXMiOlsiVG9vbHRpcCIsIldlYnBhY2tNb2R1bGVzIiwiZ2V0QnlEaXNwbGF5TmFtZSIsImxhbmd1YWdlcyIsInRoZW1lcyIsIkNvZGVFZGl0b3IiLCJSZWFjdCIsIkNvbXBvbmVudCIsImRlZmF1bHRJZCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJjb250cm9sIiwiY29udHJvbHMiLCJ0eXBlIiwib25DbGljayIsInNob3dTZXR0aW5ncyIsImJpbmQiLCJ0aGVtZSIsInRvTG93ZXJDYXNlIiwicmVwbGFjZSIsImluY2x1ZGVzIiwiZGVmYXVsdFByb3BzIiwibGFuZ3VhZ2UiLCJvbkNoYW5nZSIsImlkIiwiZm9udFNpemUiLCJjb21wb25lbnREaWRNb3VudCIsImVkaXRvciIsImFjZSIsImVkaXQiLCJvcmlnaW5hbFNob3ciLCJrZXlCaW5kaW5nIiwiJGRlZmF1bHRIYW5kbGVyIiwiY29tbWFuZHMiLCJzaG93U2V0dGluZ3NNZW51IiwiZXhlYyIsImFwcGx5IiwiYXJndW1lbnRzIiwib2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwibXV0YXRpb25zIiwibXV0YXRpb24iLCJhZGRlZE5vZGVzIiwibGVuZ3RoIiwiRWxlbWVudCIsIm5vZGUiLCJwYXJlbnRFbGVtZW50IiwiZG9jdW1lbnQiLCJib2R5IiwicXVlcnlTZWxlY3RvciIsImRpc2Nvbm5lY3QiLCJvYnNlcnZlIiwiY2hpbGRMaXN0Iiwic3BsaXQiLCJzZXRUaGVtZSIsInNlc3Npb24iLCJzZXRNb2RlIiwic2V0U2hvd1ByaW50TWFyZ2luIiwic2V0Rm9udFNpemUiLCJvbiIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiZGVzdHJveSIsInZhbHVlIiwiZ2V0VmFsdWUiLCJuZXdWYWx1ZSIsInNldFZhbHVlIiwicmVzaXplIiwiYnVpbGRDb250cm9sIiwibWFrZUNoZWNrYm94IiwibWFrZUJ1dHRvbiIsImNoZWNrYm94IiwibGFiZWwiLCJjaGVja2VkIiwiYnV0dG9uIiwidG9vbHRpcCIsImV2ZW50IiwicmVuZGVyIiwiY29udHJvbHNMZWZ0IiwiZmlsdGVyIiwiYyIsInNpZGUiLCJtYXAiLCJjb250cm9sc1JpZ2h0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUVBO0FBRUEsTUFBTUEsT0FBTyxHQUFHQyxzREFBYyxDQUFDQyxnQkFBZixDQUFnQyxTQUFoQyxDQUFoQjtBQUVBLE1BQU1DLFNBQVMsR0FBRyxDQUFDLE1BQUQsRUFBUyxLQUFULEVBQWdCLGNBQWhCLEVBQWdDLEtBQWhDLEVBQXVDLGFBQXZDLEVBQXNELFVBQXRELEVBQWtFLGNBQWxFLEVBQWtGLFlBQWxGLEVBQWdHLFdBQWhHLEVBQTZHLEtBQTdHLEVBQW9ILE9BQXBILEVBQTZILFVBQTdILEVBQXlJLE9BQXpJLEVBQWtKLFNBQWxKLEVBQTZKLE9BQTdKLEVBQXNLLFFBQXRLLEVBQWdMLFlBQWhMLEVBQThMLFFBQTlMLEVBQXdNLGlCQUF4TSxFQUEyTixrQkFBM04sRUFBK08sY0FBL08sRUFBK1AsS0FBL1AsRUFBc1EsT0FBdFEsRUFBK1EsR0FBL1EsRUFBb1IsTUFBcFIsRUFBNFIsTUFBNVIsRUFBb1MsWUFBcFMsRUFBa1QsS0FBbFQsRUFBeVQsUUFBelQsRUFBbVUsT0FBblUsRUFBNFUsYUFBNVUsRUFBMlYsUUFBM1YsRUFBcVcsS0FBclcsRUFBNFcsUUFBNVcsRUFBc1gsS0FBdFgsRUFBNlgsUUFBN1gsRUFBdVksT0FBdlksRUFBZ1osU0FBaFosRUFBMlosS0FBM1osRUFBa2EsT0FBbGEsRUFBMmEsU0FBM2EsRUFBc2IsV0FBdGIsRUFBbWMsTUFBbmMsRUFBMmMsV0FBM2MsRUFBd2QsUUFBeGQsRUFBa2UsZUFBbGUsRUFBbWYsUUFBbmYsRUFBNmYsTUFBN2YsRUFBcWdCLFlBQXJnQixFQUFtaEIsU0FBbmhCLEVBQThoQixlQUE5aEIsRUFBK2lCLE1BQS9pQixFQUF1akIsT0FBdmpCLEVBQWdrQixNQUFoa0IsRUFBd2tCLGFB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TUFBTCxJQUFlLEtBQUtBLE1BQUwsQ0FBWXVDLE1BQS9CLEVBQXVDLEtBQUt2QyxNQUFMLENBQVl1QyxNQUFaO0FBRXZDLFVBQU1XLFlBQVksR0FBRyxLQUFLbkUsS0FBTCxDQUFXRSxRQUFYLENBQW9Ca0UsTUFBcEIsQ0FBMkJDLENBQUMsSUFBSUEsQ0FBQyxDQUFDQyxJQUFGLElBQVUsT0FBMUMsRUFBbURDLEdBQW5ELENBQXVELEtBQUtkLFlBQUwsQ0FBa0JuRCxJQUFsQixDQUF1QixJQUF2QixDQUF2RCxDQUFyQjtBQUNBLFVBQU1rRSxhQUFhLEdBQUcsS0FBS3hFLEtBQUwsQ0FBV0UsUUFBWCxDQUFvQmtFLE1BQXBCLENBQTJCQyxDQUFDLElBQUlBLENBQUMsQ0FBQ0MsSUFBRixJQUFVLE9BQTFDLEVBQW1EQyxHQUFuRCxDQUF1RCxLQUFLZCxZQUFMLENBQWtCbkQsSUFBbEIsQ0FBdUIsSUFBdkIsQ0FBdkQsQ0FBdEI7QUFFQSxXQUFPO0FBQUssUUFBRSxFQUFDLGlCQUFSO0FBQTBCLGVBQVMsRUFBRSxLQUFLTixLQUFMLENBQVdPO0FBQWhELE9BQ0s7QUFBSyxRQUFFLEVBQUM7QUFBUixPQUNJO0FBQUssZUFBUyxFQUFDO0FBQWYsT0FDSzRELFlBREwsQ0FESixFQUlJO0FBQUssZUFBUyxFQUFDO0FBQWYsT0FDS0ssYUFETCxDQUpKLENBREwsRUFTSztBQUFLLGVBQVMsRUFBQztBQUFmLE9BQ0k7QUFBSyxRQUFFLEVBQUUsS0FBS3hFLEtBQUwsQ0FBV2MsRUFBcEI7QUFBd0IsZUFBUyxFQUFFLFlBQVksS0FBS2QsS0FBTCxDQUFXTztBQUExRCxPQUFrRSxLQUFLUCxLQUFMLENBQVdvRCxLQUE3RSxDQURKLENBVEwsQ0FBUDtBQWFIOztBQS9HbUQiLCJmaWxlIjoiLi9zcmMvdWkvY3VzdG9tY3NzL2VkaXRvci5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0LCBXZWJwYWNrTW9kdWxlc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmltcG9ydCBDaGVja2JveCBmcm9tIFwiLi9jaGVja2JveFwiO1xyXG5cclxuY29uc3QgVG9vbHRpcCA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5RGlzcGxheU5hbWUoXCJUb29sdGlwXCIpO1xyXG5cclxuY29uc3QgbGFuZ3VhZ2VzID0gW1wiYWJhcFwiLCBcImFiY1wiLCBcImFjdGlvbnNjcmlwdFwiLCBcImFkYVwiLCBcImFwYWNoZV9jb25mXCIsIFwiYXNjaWlkb2NcIiwgXCJhc3NlbWJseV94ODZcIiwgXCJhdXRvaG90a2V5XCIsIFwiYmF0Y2hmaWxlXCIsIFwiYnJvXCIsIFwiY19jcHBcIiwgXCJjOXNlYXJjaFwiLCBcImNpcnJ1XCIsIFwiY2xvanVyZVwiLCBcImNvYm9sXCIsIFwiY29mZmVlXCIsIFwiY29sZGZ1c2lvblwiLCBcImNzaGFycFwiLCBcImNzb3VuZF9kb2N1bWVudFwiLCBcImNzb3VuZF9vcmNoZXN0cmFcIiwgXCJjc291bmRfc2NvcmVcIiwgXCJjc3NcIiwgXCJjdXJseVwiLCBcImRcIiwgXCJkYXJ0XCIsIFwiZGlmZlwiLCBcImRvY2tlcmZpbGVcIiwgXCJkb3RcIiwgXCJkcm9vbHNcIiwgXCJkdW1teVwiLCBcImR1bW15c3ludGF4XCIsIFwiZWlmZmVsXCIsIFwiZWpzXCIsIFwiZWxpeGlyXCIsIFwiZWxtXCIsIFwiZXJsYW5nXCIsIFwiZm9ydGhcIiwgXCJmb3J0cmFuXCIsIFwiZnRsXCIsIFwiZ2NvZGVcIiwgXCJnaGVya2luXCIsIFwiZ2l0aWdub3JlXCIsIFwiZ2xzbFwiLCBcImdvYnN0b25lc1wiLCBcImdvbGFuZ1wiLCBcImdyYXBocWxzY2hlbWFcIiwgXCJncm9vdnlcIiwgXCJoYW1sXCIsIFwiaGFuZGxlYmFyc1wiLCBcImhhc2tlbGxcIiwgXCJoYXNrZWxsX2NhYmFsXCIsIFwiaGF4ZVwiLCBcImhqc29uXCIsIFwiaHRtbFwiLCBcImh0bWxfZWxpeGlyXCIsIFwiaHRtbF9ydWJ5XCIsIFwiaW5pXCIsIFwiaW9cIiwgXCJqYWNrXCIsIFwiamFkZVwiLCBcImphdmFcIiwgXCJqYXZhc2NyaXB0XCIsIFwianNvblwiLCBcImpzb25pcVwiLCBcImpzcFwiLCBcImpzc21cIiwgXCJqc3hcIiwgXCJqdWxpYVwiLCBcImtvdGxpblwiLCBcImxhdGV4XCIsIFwibGVzc1wiLCBcImxpcXVpZFwiLCBcImxpc3BcIiwgXCJsaXZlc2NyaXB0XCIsIFwibG9naXFsXCIsIFwibHNsXCIsIFwibHVhXCIsIFwibHVhcGFnZVwiLCBcImx1Y2VuZVwiLCBcIm1ha2VmaWxlXCIsIFwibWFya2Rvd25cIiwgXCJtYXNrXCIsIFwibWF0bGFiXCIsIFwibWF6ZVwiLCBcIm1lbFwiLCBcIm11c2hjb2RlXCIsIFwibXlzcWxcIiwgXCJuaXhcIiwgXCJuc2lzXCIsIFwib2JqZWN0aXZlY1wiLCBcIm9jYW1sXCIsIFwicGFzY2FsXCIsIFwicGVybFwiLCBcInBnc3FsXCIsIFwicGhwXCIsIFwicGlnXCIsIFwicG93ZXJzaGVsbFwiLCBcInByYWF0XCIsIFwicHJvbG9nXCIsIFwicHJvcGVydGllc1wiLCBcInByb3RvYnVmXCIsIFwicHl0aG9uXCIsIFwiclwiLCBcInJhem9yXCIsIFwicmRvY1wiLCBcInJlZFwiLCBcInJodG1sXCIsIFwicnN0XCIsIFwicnVieVwiLCBcInJ1c3RcIiwgXCJzYXNzXCIsIFwic2NhZFwiLCBcInNjYWxhXCIsIFwic2NoZW1lXCIsIFwic2Nzc1wiLCBcInNoXCIsIFwic2pzXCIsIFwic21hcnR5XCIsIFwic25pcHBldHNcIiwgXCJzb3lfdGVtcGxhdGVcIiwgXCJzcGFjZVwiLCBcInNxbFwiLCBcInNxbHNlcnZlclwiLCBcInN0eWx1c1wiLCBcInN2Z1wiLCBcInN3aWZ0XCIsIFwidGNsXCIsIFwidGV4XCIsIFwidGV4dFwiLCBcInRleHRpbGVcIiwgXCJ0b21sXCIsIFwidHN4XCIsIFwidHdpZ1wiLCBcInR5cGVzY3JpcHRcIiwgXCJ2YWxhXCIsIFwidmJzY3JpcHRcIiwgXCJ2ZWxvY2l0eVwiLCBcInZlcmlsb2dcIiwgXCJ2aGRsXCIsIFwid29sbG9rXCIsIFwieG1sXCIsIFwieHF1ZXJ5XCIsIFwieWFtbFwiLCBcImRqYW5nb1wiXTtcclxuY29uc3QgdGhlbWVzID0gW1wiY2hyb21lXCIsIFwiY2xvdWRzXCIsIFwiY3JpbXNvbl9lZGl0b3JcIiwgXCJkYXduXCIsIFwiZHJlYW13ZWF2ZXJcIiwgXCJlY2xpcHNlXCIsIFwiZ2l0aHViXCIsIFwiaXBsYXN0aWNcIiwgXCJzb2xhcml6ZWRfbGlnaHRcIiwgXCJ0ZXh0bWF0ZVwiLCBcInRvbW9ycm93XCIsIFwieGNvZGVcIiwgXCJrdXJvaXJcIiwgXCJrYXR6ZW5taWxjaFwiLCBcInNxbHNlcnZlclwiLCBcImFtYmlhbmNlXCIsIFwiY2hhb3NcIiwgXCJjbG91ZHNfbWlkbmlnaHRcIiwgXCJjb2JhbHRcIiwgXCJncnV2Ym94XCIsIFwiZ29iXCIsIFwiaWRsZV9maW5nZXJzXCIsIFwia3JfdGhlbWVcIiwgXCJtZXJiaXZvcmVcIiwgXCJtZXJiaXZvcmVfc29mdFwiLCBcIm1vbm9faW5kdXN0cmlhbFwiLCBcIm1vbm9rYWlcIiwgXCJwYXN0ZWxfb25fZGFya1wiLCBcInNvbGFyaXplZF9kYXJrXCIsIFwidGVybWluYWxcIiwgXCJ0b21vcnJvd19uaWdodFwiLCBcInRvbW9ycm93X25pZ2h0X2JsdWVcIiwgXCJ0b21vcnJvd19uaWdodF9icmlnaHRcIiwgXCJ0b21vcnJvd19uaWdodF9laWdodGllc1wiLCBcInR3aWxpZ2h0XCIsIFwidmlicmFudF9pbmtcIl07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb2RlRWRpdG9yIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBnZXQgZGVmYXVsdElkKCkge3JldHVybiBcImJkLWVkaXRvclwiO31cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICBcclxuICAgICAgICBmb3IgKGNvbnN0IGNvbnRyb2wgb2YgdGhpcy5wcm9wcy5jb250cm9scykge1xyXG4gICAgICAgICAgICBpZiAoY29udHJvbC50eXBlID09IFwiY2hlY2tib3hcIikgY29udGludWU7XHJcbiAgICAgICAgICAgIGlmIChjb250cm9sLm9uQ2xpY2sgPT0gXCJzaG93U2V0dGluZ3NcIikgY29udHJvbC5vbkNsaWNrID0gdGhpcy5zaG93U2V0dGluZ3MuYmluZCh0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucHJvcHMudGhlbWUgPSB0aGlzLnByb3BzLnRoZW1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvIC9nLCBcIl9cIik7XHJcbiAgICAgICAgaWYgKCF0aGVtZXMuaW5jbHVkZXModGhpcy5wcm9wcy50aGVtZSkpIHRoaXMucHJvcHMudGhlbWUgPSBDb2RlRWRpdG9yLmRlZmF1bHRQcm9wcy50aGVtZTtcclxuXHJcbiAgICAgICAgdGhpcy5wcm9wcy5sYW5ndWFnZSA9IHRoaXMucHJvcHMubGFuZ3VhZ2UudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8gL2csIFwiX1wiKTtcclxuICAgICAgICBpZiAoIWxhbmd1YWdlcy5pbmNsdWRlcyh0aGlzLnByb3BzLmxhbmd1YWdlKSkgdGhpcy5wcm9wcy5sYW5ndWFnZSA9IENvZGVFZGl0b3IuZGVmYXVsdFByb3BzLmxhbmd1YWdlO1xyXG5cclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gdGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXQgZGVmYXVsdFByb3BzKCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGNvbnRyb2xzOiBbXSxcclxuICAgICAgICAgICAgdGhlbWU6IFwiYmQtbW9ub2thaVwiLFxyXG4gICAgICAgICAgICBsYW5ndWFnZTogXCJjc3NcIixcclxuICAgICAgICAgICAgaWQ6IHRoaXMuZGVmYXVsdElkLFxyXG4gICAgICAgICAgICBmb250U2l6ZTogMTRcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXQgdGhlbWVzKCkge3JldHVybiB0aGVtZXM7fVxyXG5cclxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yID0gYWNlLmVkaXQodGhpcy5wcm9wcy5pZCk7XHJcblxyXG4gICAgICAgIC8vIEFkZCBpZCB0byB0aGUgYWNlIG1lbnUgY29udGFpbmVyXHJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxTaG93ID0gdGhpcy5lZGl0b3Iua2V5QmluZGluZy4kZGVmYXVsdEhhbmRsZXIuY29tbWFuZHMuc2hvd1NldHRpbmdzTWVudS5leGVjO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLmtleUJpbmRpbmcuJGRlZmF1bHRIYW5kbGVyLmNvbW1hbmRzLnNob3dTZXR0aW5nc01lbnUuZXhlYyA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBvcmlnaW5hbFNob3cuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIW11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoIHx8ICEobXV0YXRpb24uYWRkZWROb2Rlc1swXSBpbnN0YW5jZW9mIEVsZW1lbnQpKSBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gbXV0YXRpb24uYWRkZWROb2Rlc1swXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS5wYXJlbnRFbGVtZW50ICE9PSBkb2N1bWVudC5ib2R5IHx8ICFub2RlLnF1ZXJ5U2VsZWN0b3IoXCIjYWNlX3NldHRpbmdzbWVudVwiKSkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5pZCA9IFwiYWNlX3NldHRpbmdzbWVudV9jb250YWluZXJcIjtcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtjaGlsZExpc3Q6IHRydWV9KTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCB0aGVtZSA9IHRoaXMucHJvcHMudGhlbWUgPT0gQ29kZUVkaXRvci5kZWZhdWx0UHJvcHMudGhlbWUgPyB0aGlzLnByb3BzLnRoZW1lLnNwbGl0KFwiLVwiKVsxXSA6IHRoaXMucHJvcHMudGhlbWU7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2V0VGhlbWUoYGFjZS90aGVtZS8ke3RoZW1lfWApO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLnNlc3Npb24uc2V0TW9kZShgYWNlL21vZGUvJHt0aGlzLnByb3BzLmxhbmd1YWdlfWApO1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLnNldFNob3dQcmludE1hcmdpbihmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iuc2V0Rm9udFNpemUodGhpcy5wcm9wcy5mb250U2l6ZSk7XHJcbiAgICAgICAgdGhpcy5lZGl0b3Iub24oXCJjaGFuZ2VcIiwgdGhpcy5vbkNoYW5nZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0b3IuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB2YWx1ZSgpIHtyZXR1cm4gdGhpcy5lZGl0b3Iuc2Vzc2lvbi5nZXRWYWx1ZSgpO31cclxuICAgIHNldCB2YWx1ZShuZXdWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuZWRpdG9yLnNldFZhbHVlKG5ld1ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkNoYW5nZSkgdGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBzaG93U2V0dGluZ3MoKSB7cmV0dXJuIHRoaXMuZWRpdG9yLmtleUJpbmRpbmcuJGRlZmF1bHRIYW5kbGVyLmNvbW1hbmRzLnNob3dTZXR0aW5nc01lbnUuZXhlYyh0aGlzLmVkaXRvcik7fVxyXG4gICAgcmVzaXplKCkge3JldHVybiB0aGlzLmVkaXRvci5yZXNpemUoKTt9XHJcblxyXG4gICAgYnVpbGRDb250cm9sKGNvbnRyb2wpIHtcclxuICAgICAgICBpZiAoY29udHJvbC50eXBlID09IFwiY2hlY2tib3hcIikgcmV0dXJuIHRoaXMubWFrZUNoZWNrYm94KGNvbnRyb2wpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1ha2VCdXR0b24oY29udHJvbCk7XHJcbiAgICB9XHJcblxyXG4gICAgbWFrZUNoZWNrYm94KGNoZWNrYm94KSB7XHJcbiAgICAgICAgcmV0dXJuIDxDaGVja2JveCB0ZXh0PXtjaGVja2JveC5sYWJlbH0gb25DaGFuZ2U9e2NoZWNrYm94Lm9uQ2hhbmdlfSBjaGVja2VkPXtjaGVja2JveC5jaGVja2VkfSAvPjtcclxuICAgIH1cclxuXHJcbiAgICBtYWtlQnV0dG9uKGJ1dHRvbikge1xyXG4gICAgICAgIHJldHVybiA8VG9vbHRpcCBjb2xvcj1cImJsYWNrXCIgcG9zaXRpb249XCJ0b3BcIiB0ZXh0PXtidXR0b24udG9vbHRpcH0+XHJcbiAgICAgICAgICAgICAgICAgICAge3Byb3BzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxidXR0b24gey4uLnByb3BzfSBjbGFzc05hbWU9XCJidG4gYnRuLXByaW1hcnlcIiBvbkNsaWNrPXsoZXZlbnQpID0+IHtidXR0b24ub25DbGljayhldmVudCwgdGhpcy52YWx1ZSk7fX0+e2J1dHRvbi5sYWJlbH08L2J1dHRvbj47XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD47XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXRvciAmJiB0aGlzLmVkaXRvci5yZXNpemUpIHRoaXMuZWRpdG9yLnJlc2l6ZSgpO1xyXG5cclxuICAgICAgICBjb25zdCBjb250cm9sc0xlZnQgPSB0aGlzLnByb3BzLmNvbnRyb2xzLmZpbHRlcihjID0+IGMuc2lkZSAhPSBcInJpZ2h0XCIpLm1hcCh0aGlzLmJ1aWxkQ29udHJvbC5iaW5kKHRoaXMpKTtcclxuICAgICAgICBjb25zdCBjb250cm9sc1JpZ2h0ID0gdGhpcy5wcm9wcy5jb250cm9scy5maWx0ZXIoYyA9PiBjLnNpZGUgPT0gXCJyaWdodFwiKS5tYXAodGhpcy5idWlsZENvbnRyb2wuYmluZCh0aGlzKSk7XHJcblxyXG4gICAgICAgIHJldHVybiA8ZGl2IGlkPVwiYmQtZWRpdG9yLXBhbmVsXCIgY2xhc3NOYW1lPXt0aGlzLnByb3BzLnRoZW1lfT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiYmQtZWRpdG9yLWNvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udHJvbHMtc2VjdGlvbiBjb250cm9scy1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29udHJvbHNMZWZ0fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250cm9scy1zZWN0aW9uIGNvbnRyb2xzLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29udHJvbHNSaWdodH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJlZGl0b3Itd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPXt0aGlzLnByb3BzLmlkfSBjbGFzc05hbWU9e1wiZWRpdG9yIFwiICsgdGhpcy5wcm9wcy50aGVtZX0+e3RoaXMucHJvcHMudmFsdWV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/customcss/editor.jsx\n");
/***/ }),
/***/ "./src/ui/emote.js":
/*!*************************!*\
!*** ./src/ui/emote.js ***!
\*************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BDEmote; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _builtins_emotemenu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../builtins/emotemenu */ \"./src/builtins/emotemenu.js\");\n\n\nclass BDEmote extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n const isFav = _builtins_emotemenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"] && _builtins_emotemenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"].favoriteEmotes && _builtins_emotemenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"].favoriteEmotes[this.label] ? true : false;\n this.state = {\n shouldAnimate: !this.animateOnHover,\n isFavorite: isFav\n };\n this.onMouseEnter = this.onMouseEnter.bind(this);\n this.onMouseLeave = this.onMouseLeave.bind(this);\n this.onClick = this.onClick.bind(this);\n }\n\n get animateOnHover() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"emotes\", \"general\", \"animateOnHover\");\n }\n\n get label() {\n return this.props.modifier ? `${this.props.name}:${this.props.modifier}` : this.props.name;\n }\n\n get modifierClass() {\n return this.props.modifier ? ` emote${this.props.modifier}` : \"\";\n }\n\n onMouseEnter() {\n if (!this.state.shouldAnimate && this.animateOnHover) this.setState({\n shouldAnimate: true\n });\n if (!this.state.isFavorite && _builtins_emotemenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"].favoriteEmotes[this.label]) this.setState({\n isFavorite: true\n });else if (this.state.isFavorite && !_builtins_emotemenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"].favoriteEmotes[this.label]) this.setState({\n isFavorite: false\n });\n }\n\n onMouseLeave() {\n if (this.state.shouldAnimate && this.animateOnHover) this.setState({\n shouldAnimate: false\n });\n }\n\n onClick(e) {\n if (this.props.onClick) this.props.onClick(e);\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(modules__WEBPACK_IMPORTED_MODULE_0__[\"BDV2\"].TooltipWrapper, {\n color: \"black\",\n position: \"top\",\n text: this.label,\n delay: 750\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"emotewrapper\" + (this.props.jumboable ? \" jumboable\" : \"\"),\n onMouseEnter: this.onMouseEnter,\n onMouseLeave: this.onMouseLeave,\n onClick: this.onClick\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"img\", {\n draggable: false,\n className: \"emote\" + this.modifierClass + (this.props.jumboable ? \" jumboable\" : \"\") + (!this.state.shouldAnimate ? \" stop-animation\" : \"\"),\n dataModifier: this.props.modifier,\n alt: this.label,\n src: this.props.url\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n className: \"fav\" + (this.state.isFavorite ? \" active\" : \"\"),\n title: \"Favorite!\",\n type: \"button\",\n onClick: e => {\n e.preventDefault();\n e.stopPropagation();\n\n if (this.state.isFavorite) {\n delete _builtins_emotemenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"].favoriteEmotes[this.label];\n _builtins_emotemenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"].updateFavorites();\n } else {\n _builtins_emotemenu__WEBPACK_IMPORTED_MODULE_1__[\"default\"].favorite(this.label, this.props.url);\n }\n\n this.setState({\n isFavorite: !this.state.isFavorite\n });\n }\n })));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2Vtb3RlLmpzPzZjY2IiXSwibmFtZXMiOlsiQkRFbW90ZSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsImlzRmF2IiwiRW1vdGVNZW51IiwiZmF2b3JpdGVFbW90ZXMiLCJsYWJlbCIsInN0YXRlIiwic2hvdWxkQW5pbWF0ZSIsImFuaW1hdGVPbkhvdmVyIiwiaXNGYXZvcml0ZSIsIm9uTW91c2VFbnRlciIsImJpbmQiLCJvbk1vdXNlTGVhdmUiLCJvbkNsaWNrIiwiU2V0dGluZ3MiLCJnZXQiLCJtb2RpZmllciIsIm5hbWUiLCJtb2RpZmllckNsYXNzIiwic2V0U3RhdGUiLCJlIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIkJEVjIiLCJUb29sdGlwV3JhcHBlciIsImNvbG9yIiwicG9zaXRpb24iLCJ0ZXh0IiwiZGVsYXkiLCJjbGFzc05hbWUiLCJqdW1ib2FibGUiLCJkcmFnZ2FibGUiLCJkYXRhTW9kaWZpZXIiLCJhbHQiLCJzcmMiLCJ1cmwiLCJ0aXRsZSIsInR5cGUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInVwZGF0ZUZhdm9yaXRlcyIsImZhdm9yaXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFZSxNQUFNQSxPQUFOLFNBQXNCQyw2Q0FBSyxDQUFDQyxTQUE1QixDQUFzQztBQUNqREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBRUEsVUFBTUMsS0FBSyxHQUFHQywyREFBUyxJQUFJQSwyREFBUyxDQUFDQyxjQUF2QixJQUF5Q0QsMkRBQVMsQ0FBQ0MsY0FBVixDQUF5QixLQUFLQyxLQUE5QixDQUF6QyxHQUFnRixJQUFoRixHQUF1RixLQUFyRztBQUNBLFNBQUtDLEtBQUwsR0FBYTtBQUNUQyxtQkFBYSxFQUFFLENBQUMsS0FBS0MsY0FEWjtBQUVUQyxnQkFBVSxFQUFFUDtB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QWdELEVBQTdILENBRlk7QUFHdkJ5QixrQkFBWSxFQUFFLEtBQUsvQixLQUFMLENBQVdlLFFBSEY7QUFJdkJpQixTQUFHLEVBQUUsS0FBSzVCLEtBSmE7QUFLdkI2QixTQUFHLEVBQUUsS0FBS2pDLEtBQUwsQ0FBV2tDO0FBTE8sS0FBM0IsQ0FOSixFQWFJckMsNkNBQUssQ0FBQ3dCLGFBQU4sQ0FBb0IsT0FBcEIsRUFBNkI7QUFDekJPLGVBQVMsRUFBRSxTQUFTLEtBQUt2QixLQUFMLENBQVdHLFVBQVgsR0FBd0IsU0FBeEIsR0FBb0MsRUFBN0MsQ0FEYztBQUV6QjJCLFdBQUssRUFBRSxXQUZrQjtBQUd6QkMsVUFBSSxFQUFFLFFBSG1CO0FBSXpCeEIsYUFBTyxFQUFHTyxDQUFELElBQU87QUFDWkEsU0FBQyxDQUFDa0IsY0FBRjtBQUNBbEIsU0FBQyxDQUFDbUIsZUFBRjs7QUFDQSxZQUFJLEtBQUtqQyxLQUFMLENBQVdHLFVBQWYsRUFBMkI7QUFDdkIsaUJBQU9OLDJEQUFTLENBQUNDLGNBQVYsQ0FBeUIsS0FBS0MsS0FBOUIsQ0FBUDtBQUNBRixxRUFBUyxDQUFDcUMsZUFBVjtBQUNILFNBSEQsTUFJSztBQUNEckMscUVBQVMsQ0FBQ3NDLFFBQVYsQ0FBbUIsS0FBS3BDLEtBQXhCLEVBQStCLEtBQUtKLEtBQUwsQ0FBV2tDLEdBQTFDO0FBQ0g7O0FBQ0QsYUFBS2hCLFFBQUwsQ0FBYztBQUFDVixvQkFBVSxFQUFFLENBQUMsS0FBS0gsS0FBTCxDQUFXRztBQUF6QixTQUFkO0FBQ0g7QUFmd0IsS0FBN0IsQ0FiSixDQU5ELENBQVA7QUFzQ0g7O0FBaEZnRCIsImZpbGUiOiIuL3NyYy91aS9lbW90ZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QkRWMiwgU2V0dGluZ3MsIFJlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgRW1vdGVNZW51IGZyb20gXCIuLi9idWlsdGlucy9lbW90ZW1lbnVcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJERW1vdGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcblxyXG4gICAgICAgIGNvbnN0IGlzRmF2ID0gRW1vdGVNZW51ICYmIEVtb3RlTWVudS5mYXZvcml0ZUVtb3RlcyAmJiBFbW90ZU1lbnUuZmF2b3JpdGVFbW90ZXNbdGhpcy5sYWJlbF0gPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgc2hvdWxkQW5pbWF0ZTogIXRoaXMuYW5pbWF0ZU9uSG92ZXIsXHJcbiAgICAgICAgICAgIGlzRmF2b3JpdGU6IGlzRmF2XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5vbk1vdXNlRW50ZXIgPSB0aGlzLm9uTW91c2VFbnRlci5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMub25Nb3VzZUxlYXZlID0gdGhpcy5vbk1vdXNlTGVhdmUuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLm9uQ2xpY2sgPSB0aGlzLm9uQ2xpY2suYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYW5pbWF0ZU9uSG92ZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIFNldHRpbmdzLmdldChcImVtb3Rlc1wiLCBcImdlbmVyYWxcIiwgXCJhbmltYXRlT25Ib3ZlclwiKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbGFiZWwoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMubW9kaWZpZXIgPyBgJHt0aGlzLnByb3BzLm5hbWV9OiR7dGhpcy5wcm9wcy5tb2RpZmllcn1gIDogdGhpcy5wcm9wcy5uYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBtb2RpZmllckNsYXNzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLm1vZGlmaWVyID8gYCBlbW90ZSR7dGhpcy5wcm9wcy5tb2RpZmllcn1gIDogXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBvbk1vdXNlRW50ZXIoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlLnNob3VsZEFuaW1hdGUgJiYgdGhpcy5hbmltYXRlT25Ib3ZlcikgdGhpcy5zZXRTdGF0ZSh7c2hvdWxkQW5pbWF0ZTogdHJ1ZX0pO1xyXG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS5pc0Zhdm9yaXRlICYmIEVtb3RlTWVudS5mYXZvcml0ZUVtb3Rlc1t0aGlzLmxhYmVsXSkgdGhpcy5zZXRTdGF0ZSh7aXNGYXZvcml0ZTogdHJ1ZX0pO1xyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuc3RhdGUuaXNGYXZvcml0ZSAmJiAhRW1vdGVNZW51LmZhdm9yaXRlRW1vdGVzW3RoaXMubGFiZWxdKSB0aGlzLnNldFN0YXRlKHtpc0Zhdm9yaXRlOiBmYWxzZX0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTW91c2VMZWF2ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5zaG91bGRBbmltYXRlICYmIHRoaXMuYW5pbWF0ZU9uSG92ZXIpIHRoaXMuc2V0U3RhdGUoe3Nob3VsZEFuaW1hdGU6IGZhbHNlfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbGljayhlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25DbGljaykgdGhpcy5wcm9wcy5vbkNsaWNrKGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChCRFYyLlRvb2x0aXBXcmFwcGVyLCB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogXCJibGFja1wiLFxyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IFwidG9wXCIsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgZGVsYXk6IDc1MFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImVtb3Rld3JhcHBlclwiICsgKHRoaXMucHJvcHMuanVtYm9hYmxlID8gXCIganVtYm9hYmxlXCIgOiBcIlwiKSxcclxuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI6IHRoaXMub25Nb3VzZUVudGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZTogdGhpcy5vbk1vdXNlTGVhdmUsXHJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljazogdGhpcy5vbkNsaWNrXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbWdcIiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkcmFnZ2FibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwiZW1vdGVcIiArIHRoaXMubW9kaWZpZXJDbGFzcyArICh0aGlzLnByb3BzLmp1bWJvYWJsZSA/IFwiIGp1bWJvYWJsZVwiIDogXCJcIikgKyAoIXRoaXMuc3RhdGUuc2hvdWxkQW5pbWF0ZSA/IFwiIHN0b3AtYW5pbWF0aW9uXCIgOiBcIlwiKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YU1vZGlmaWVyOiB0aGlzLnByb3BzLm1vZGlmaWVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbHQ6IHRoaXMubGFiZWwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogdGhpcy5wcm9wcy51cmxcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwiZmF2XCIgKyAodGhpcy5zdGF0ZS5pc0Zhdm9yaXRlID8gXCIgYWN0aXZlXCIgOiBcIlwiKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiRmF2b3JpdGUhXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuaXNGYXZvcml0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBFbW90ZU1lbnUuZmF2b3JpdGVFbW90ZXNbdGhpcy5sYWJlbF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1vdGVNZW51LnVwZGF0ZUZhdm9yaXRlcygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1vdGVNZW51LmZhdm9yaXRlKHRoaXMubGFiZWwsIHRoaXMucHJvcHMudXJsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe2lzRmF2b3JpdGU6ICF0aGlzLnN0YXRlLmlzRmF2b3JpdGV9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/emote.js\n");
/***/ }),
/***/ "./src/ui/floating/container.jsx":
/*!***************************************!*\
!*** ./src/ui/floating/container.jsx ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./window */ \"./src/ui/floating/window.jsx\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\nclass FloatingWindowContainer extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n windows: []\n };\n }\n\n render() {\n return this.state.windows.map(window => // <FloatingWindow onResize={window.onResize} close={this.close.bind(this, window.id)} title={window.title} id={window.id} height={window.height} width={window.width} center={window.center} resizable={window.resizable}>\n modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_window__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _extends({}, window, {\n close: this.close.bind(this, window.id)\n }), window.children));\n }\n\n open(window) {\n this.setState({\n windows: [...this.state.windows, window]\n }); // this.windows.push(window);\n // this.forceUpdate();\n }\n\n close(id) {\n this.setState({\n windows: this.state.windows.filter(w => {\n if (w.id == id && w.onClose) w.onClose();\n return w.id != id;\n })\n }); // const index = this.windows.findIndex(w => w.id == id);\n // if (index < 0) return;\n // this.windows.splice(index, 1);\n // this.forceUpdate();\n }\n\n static get id() {\n return \"floating-windows\";\n }\n\n static get root() {\n if (this._root) return this._root;\n const container = document.createElement(\"div\");\n container.id = this.id;\n document.body.append(container);\n return this._root = container;\n }\n\n}\n\nconst containerRef = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\nconst container = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(FloatingWindowContainer, {\n ref: containerRef\n}); // ReactDOM.render(container, FloatingWindowContainer.root);\n\nconst App = document.querySelector(\".app-19_DXt\").__reactInternalInstance$.return.return.return.return.return.return.return.return.return;\n\nmodules__WEBPACK_IMPORTED_MODULE_0__[\"Utilities\"].monkeyPatch(App.type.prototype, \"render\", {\n after: data => {\n data.returnValue.props.children.props.children.props.children.props.children[4].props.children[1].props.children.push(container);\n }\n});\nApp.stateNode.forceUpdate();\n/* harmony default export */ __webpack_exports__[\"default\"] = (containerRef.current); // patch App component\n//\n//document.querySelector(\".app-19_DXt\").__reactInternalInstance$.return.return.return.return.return.return.return.return.return.type\n//props.children.props.children.props.children.props.children[4].props.children[1].props.children[\"\"0\"\"].push( SELF )\n// forceupdate app component//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2Zsb2F0aW5nL2NvbnRhaW5lci5qc3g/MTU2OSJdLCJuYW1lcyI6WyJGbG9hdGluZ1dpbmRvd0NvbnRhaW5lciIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwid2luZG93cyIsInJlbmRlciIsIm1hcCIsIndpbmRvdyIsImNsb3NlIiwiYmluZCIsImlkIiwiY2hpbGRyZW4iLCJvcGVuIiwic2V0U3RhdGUiLCJmaWx0ZXIiLCJ3Iiwib25DbG9zZSIsInJvb3QiLCJfcm9vdCIsImNvbnRhaW5lciIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImJvZHkiLCJhcHBlbmQiLCJjb250YWluZXJSZWYiLCJjcmVhdGVSZWYiLCJBcHAiLCJxdWVyeVNlbGVjdG9yIiwiX19yZWFjdEludGVybmFsSW5zdGFuY2UkIiwicmV0dXJuIiwiVXRpbGl0aWVzIiwibW9ua2V5UGF0Y2giLCJ0eXBlIiwicHJvdG90eXBlIiwiYWZ0ZXIiLCJkYXRhIiwicmV0dXJuVmFsdWUiLCJwdXNoIiwic3RhdGVOb2RlIiwiZm9yY2VVcGRhdGUiLCJjdXJyZW50Il0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBRUE7O0FBRUEsTUFBTUEsdUJBQU4sU0FBc0NDLDZDQUFLLENBQUNDLFNBQTVDLENBQXNEO0FBRWxEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxTQUFLQyxLQUFMLEdBQWE7QUFBQ0MsYUFBTyxFQUFFO0FBQVYsS0FBYjtBQUNIOztBQUVEQyxRQUFNLEdBQUc7QUFDTCxXQUFPLEtBQUtGLEtBQUwsQ0FBV0MsT0FBWCxDQUFtQkUsR0FBbkIsQ0FBdUJDLE1BQU0sSUFDaEM7QUFDQSxnRUFBQywrQ0FBRCxlQUFvQkEsTUFBcEI7QUFBNEIsV0FBSyxFQUFFLEtBQUtDLEtBQUwsQ0FBV0MsSUFBWCxDQUFnQixJQUFoQixFQUFzQkYsTUFBTSxDQUFDRyxFQUE3QjtBQUFuQyxRQUNTSCxNQUFNLENBQUNJLFFBRGhCLENBRkcsQ0FBUDtBQU1IOztBQUVEQyxNQUFJLENBQUNMLE1BQUQsRUFBUztBQUNULFNBQUtNLFFBQUwsQ0FBYztBQUNWVCxhQUFPLEVBQUUsQ0FBQyxHQUFHLEtBQUtELEtBQUwsQ0FBV0MsT0FBZixFQUF3QkcsTUFBeEI7QUFEQyxLQUFkLEVBRFMsQ0FJVDtBQUNBO0FBQ0g7O0FBRURDLE9BQUssQ0FBQ0UsRUFBRCxFQUFLO0FBQ04sU0FBS0csUUFBTCxDQUFjO0FBQ1ZULGFBQU8sRUFBRSxLQUFLRCxLQUFMLENBQVdDLE9BQVgsQ0FBbUJVLE1BQW5CLENBQTBCQyxDQUFDLElBQUk7QUFDcEMsWUFBSUEsQ0FBQyxDQUFDTCxFQUFGLElBQVFBLEVBQVIsSUFBY0ssQ0FBQyxDQUFDQyxPQUFwQixFQUE2QkQsQ0FBQyxDQUFDQyxPQUFGO0FBQzdCLGVBQU9ELENBQUMsQ0FBQ0wsRUFBRixJQUFRQSxFQUFmO0FBQ0gsT0FIUTtBQURDLEtBQWQsRUFETSxDQU9OO0FBQ0E7QUFDQTtBQUNBO0FBQ0g7O0FBRUQsYUFBV0EsRUFBWCxHQUFnQjtBQUFDLFdBQU8sa0JBQVA7QUFBMkI7O0FBQzVDLGFBQVdPLElBQVgsR0FBa0I7QUFDZCxRQUFJLEtBQUtDLEtBQVQsRUFBZ0IsT0FBTyxLQUFLQSxLQUFaO0FBQ2hCLFVBQU1DLFNBQVMsR0FBR0MsUUFBUSxDQUFDQyxhQUFULENBQXVCLEtBQXZCLENBQWxCO0FBQ0FGLGFBQVMsQ0FBQ1QsRUFBVixHQUFlLEtBQUtBLEVBQXBCO0FBQ0FVLFlBQVEsQ0FBQ0UsSUFBVCxDQUFjQyxNQUFkLENBQXFCSixTQUFyQjtBQUNBLFdBQU8sS0FBS0QsS0FBTCxHQUFhQyxTQUFwQjtBQUNIOztBQTVDaUQ7O0FBK0N0RCxNQUFNSyxZQUFZLEdBQUd6Qiw2Q0FBSyxDQUFDMEIsU0FBTixFQUFyQjtBQUNBLE1BQU1OLFNBQVMsR0FBRyw0REFBQyx1QkFBRDtBQUF5QixLQUFHLEVBQUVLO0FBQTlCLEVBQWxCLEMsQ0FDQTs7QUFDQSxNQUFNRSxHQUFHLEdBQUdOLFFBQVEsQ0FBQ08sYUFBVCxDQUF1QixhQUF2QixFQUFzQ0Msd0JBQXRDLENBQStEQyxNQUEvRCxDQUFzRUEsTUFBdEUsQ0FBNkVBLE1BQTdFLENBQW9GQSxNQUFwRixDQUEyRkEsTUFBM0YsQ0FBa0dBLE1BQWxHLENBQXlHQSxNQUF6RyxDQUFnSEEsTUFBaEgsQ0FBdUhBLE1BQW5JOztBQUNBQyxpREFBUyxDQUFDQyxXQUFWLENBQXNCTCxHQUFHLENBQUNNLElBQUosQ0FBU0MsU0FBL0IsRUFBMEMsUUFBMUMsRUFBb0Q7QUFBQ0MsT0FBSyxFQUFHQyxJQUFELElBQVU7QUFDbEVBLFFBQUksQ0FBQ0MsV0FBTCxDQUFpQmxDLEtBQWpCLENBQXVCUyxRQUF2QixDQUFnQ1QsS0FBaEMsQ0FBc0NTLFFBQXRDLENBQStDVCxLQUEvQyxDQUFxRFMsUUFBckQsQ0FBOERULEtBQTlELENBQW9FUyxRQUFwRSxDQUE2RSxDQUE3RSxFQUFnRlQsS0FBaEYsQ0FBc0ZTLFFBQXRGLENBQStGLENBQS9GLEVBQWtHVCxLQUFsRyxDQUF3R1MsUUFBeEcsQ0FBaUgwQixJQUFqSCxDQUFzSGxCLFNBQXRIO0FBQ0g7QUFGbUQsQ0FBcEQ7QUFHQU8sR0FBRyxDQUFDWSxTQUFKLENBQWNDLFdBQWQ7QUFDZWYsMkVBQVksQ0FBQ2dCLE9BQTVCLEUsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vc3JjL3VpL2Zsb2F0aW5nL2NvbnRhaW5lci5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0LCBVdGlsaXRpZXN9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5pbXBvcnQgRmxvYXRpbmdXaW5kb3cgZnJvbSBcIi4vd2luZG93XCI7XHJcblxyXG5jbGFzcyBGbG9hdGluZ1dpbmRvd0NvbnRhaW5lciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHt3aW5kb3dzOiBbXX07XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLndpbmRvd3MubWFwKHdpbmRvdyA9PiBcclxuICAgICAgICAgICAgLy8gPEZsb2F0aW5nV2luZG93IG9uUmVzaXplPXt3aW5kb3cub25SZXNpemV9IGNsb3NlPXt0aGlzLmNsb3NlLmJpbmQodGhpcywgd2luZG93LmlkKX0gdGl0bGU9e3dpbmRvdy50aXRsZX0gaWQ9e3dpbmRvdy5pZH0gaGVpZ2h0PXt3aW5kb3cuaGVpZ2h0fSB3aWR0aD17d2luZG93LndpZHRofSBjZW50ZXI9e3dpbmRvdy5jZW50ZXJ9IHJlc2l6YWJsZT17d2luZG93LnJlc2l6YWJsZX0+XHJcbiAgICAgICAgICAgIDxGbG9hdGluZ1dpbmRvdyB7Li4ud2luZG93fSBjbG9zZT17dGhpcy5jbG9zZS5iaW5kKHRoaXMsIHdpbmRvdy5pZCl9PlxyXG4gICAgICAgICAgICAgICAgICAgIHt3aW5kb3cuY2hpbGRyZW59XHJcbiAgICAgICAgICAgIDwvRmxvYXRpbmdXaW5kb3c+ICAgIFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb3Blbih3aW5kb3cpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgd2luZG93czogWy4uLnRoaXMuc3RhdGUud2luZG93cywgd2luZG93XVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIHRoaXMud2luZG93cy5wdXNoKHdpbmRvdyk7XHJcbiAgICAgICAgLy8gdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlKGlkKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIHdpbmRvd3M6IHRoaXMuc3RhdGUud2luZG93cy5maWx0ZXIodyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAody5pZCA9PSBpZCAmJiB3Lm9uQ2xvc2UpIHcub25DbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHcuaWQgIT0gaWQ7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gY29uc3QgaW5kZXggPSB0aGlzLndpbmRvd3MuZmluZEluZGV4KHcgPT4gdy5pZCA9PSBpZCk7XHJcbiAgICAgICAgLy8gaWYgKGluZGV4IDwgMCkgcmV0dXJuO1xyXG4gICAgICAgIC8vIHRoaXMud2luZG93cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIC8vIHRoaXMuZm9yY2VVcGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0IGlkKCkge3JldHVybiBcImZsb2F0aW5nLXdpbmRvd3NcIjt9XHJcbiAgICBzdGF0aWMgZ2V0IHJvb3QoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3Jvb3QpIHJldHVybiB0aGlzLl9yb290O1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcbiAgICAgICAgY29udGFpbmVyLmlkID0gdGhpcy5pZDtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChjb250YWluZXIpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yb290ID0gY29udGFpbmVyO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBjb250YWluZXJSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKTtcclxuY29uc3QgY29udGFpbmVyID0gPEZsb2F0aW5nV2luZG93Q29udGFpbmVyIHJlZj17Y29udGFpbmVyUmVmfSAvPjtcclxuLy8gUmVhY3RET00ucmVuZGVyKGNvbnRhaW5lciwgRmxvYXRpbmdXaW5kb3dDb250YWluZXIucm9vdCk7XHJcbmNvbnN0IEFwcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuYXBwLTE5X0RYdFwiKS5fX3JlYWN0SW50ZXJuYWxJbnN0YW5jZSQucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm47XHJcblV0aWxpdGllcy5tb25rZXlQYXRjaChBcHAudHlwZS5wcm90b3R5cGUsIFwicmVuZGVyXCIsIHthZnRlcjogKGRhdGEpID0+IHtcclxuICAgIGRhdGEucmV0dXJuVmFsdWUucHJvcHMuY2hpbGRyZW4ucHJvcHMuY2hpbGRyZW4ucHJvcHMuY2hpbGRyZW4ucHJvcHMuY2hpbGRyZW5bNF0ucHJvcHMuY2hpbGRyZW5bMV0ucHJvcHMuY2hpbGRyZW4ucHVzaChjb250YWluZXIpO1xyXG59fSk7XHJcbkFwcC5zdGF0ZU5vZGUuZm9yY2VVcGRhdGUoKTtcclxuZXhwb3J0IGRlZmF1bHQgY29udGFpbmVyUmVmLmN1cnJlbnQ7XHJcblxyXG4vLyBwYXRjaCBBcHAgY29tcG9uZW50XHJcbi8vXHJcbi8vZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5hcHAtMTlfRFh0XCIpLl9fcmVhY3RJbnRlcm5hbEluc3RhbmNlJC5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi5yZXR1cm4ucmV0dXJuLnJldHVybi50eXBlXHJcbi8vcHJvcHMuY2hpbGRyZW4ucHJvcHMuY2hpbGRyZW4ucHJvcHMuY2hpbGRyZW4ucHJvcHMuY2hpbGRyZW5bNF0ucHJvcHMuY2hpbGRyZW5bMV0ucHJvcHMuY2hpbGRyZW5bXCJcIjBcIlwiXS5wdXNoKCBTRUxGIClcclxuLy8gZm9yY2V1cGRhdGUgYXBwIGNvbXBvbmVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/floating/container.jsx\n");
/***/ }),
/***/ "./src/ui/floating/window.jsx":
/*!************************************!*\
!*** ./src/ui/floating/window.jsx ***!
\************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return FloatingWindow; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _structs_screen__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../structs/screen */ \"./src/structs/screen.js\");\n/* harmony import */ var _icons_close__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/close */ \"./src/ui/icons/close.jsx\");\n/* harmony import */ var _modals__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../modals */ \"./src/ui/modals.js\");\n\n\n\n\nclass FloatingWindow extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n modalOpen: false\n };\n this.offX = 0;\n this.offY = 0;\n this.titlebar = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.window = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.close = this.close.bind(this);\n this.onDrag = this.onDrag.bind(this);\n this.onDragStart = this.onDragStart.bind(this);\n this.onDragStop = this.onDragStop.bind(this);\n this.onResizeStart = this.onResizeStart.bind(this);\n }\n\n componentDidMount() {\n this.window.current.addEventListener(\"mousedown\", this.onResizeStart, false);\n this.titlebar.current.addEventListener(\"mousedown\", this.onDragStart, false);\n document.addEventListener(\"mouseup\", this.onDragStop, false);\n }\n\n onResizeStart() {\n this.currentWidth = this.window.current.style.width;\n this.currentHeight = this.window.current.style.height;\n }\n\n onDragStop() {\n document.removeEventListener(\"mousemove\", this.onDrag, true);\n\n if (this.props.onResize) {\n const width = this.window.current.style.width;\n const height = this.window.current.style.height;\n if (width != this.currentWidth || height != this.currentHeight) this.props.onResize();\n this.currentWidth = width;\n this.currentHeight = height;\n }\n }\n\n onDragStart(e) {\n const div = this.window.current;\n this.offY = e.clientY - parseInt(div.offsetTop);\n this.offX = e.clientX - parseInt(div.offsetLeft);\n document.addEventListener(\"mousemove\", this.onDrag, true);\n }\n\n onDrag(e) {\n const div = this.window.current;\n div.style.position = \"fixed\";\n div.style.top = e.clientY - this.offY + \"px\";\n div.style.left = e.clientX - this.offX + \"px\";\n }\n\n componentWillUnmount() {\n this.titlebar.current.removeEventListener(\"mousedown\", this.onDragStart, false);\n document.removeEventListener(\"mouseup\", this.onDragStop, false);\n }\n\n render() {\n const top = this.props.center ? _structs_screen__WEBPACK_IMPORTED_MODULE_1__[\"default\"].height / 2 - this.props.height / 2 : this.props.top;\n const left = this.props.center ? _structs_screen__WEBPACK_IMPORTED_MODULE_1__[\"default\"].width / 2 - this.props.width / 2 : this.props.left; // console.log(top, left);\n\n const className = `floating-window${` ${this.props.className}` || \"\"}${this.props.resizable ? \" resizable\" : \"\"}${this.state.modalOpen ? \" modal-open\" : \"\"}`;\n const styles = {\n height: this.props.height,\n width: this.props.width,\n left: left || 0,\n top: top || 0\n };\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n id: this.props.id,\n className: className,\n ref: this.window,\n style: styles\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"floating-window-titlebar\",\n ref: this.titlebar\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"title\"\n }, this.props.title), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"floating-window-buttons\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"button close-button\",\n onClick: this.close\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_close__WEBPACK_IMPORTED_MODULE_2__[\"default\"], null)))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"floating-window-content\"\n }, this.props.children));\n }\n\n async close() {\n let shouldClose = true;\n const confirmClose = typeof this.props.confirmClose == \"function\" ? this.props.confirmClose() : this.props.confirmClose;\n\n if (confirmClose) {\n this.setState({\n modalOpen: true\n });\n shouldClose = await this.confirmClose();\n this.setState({\n modalOpen: false\n });\n }\n\n if (this.props.close && shouldClose) this.props.close();\n }\n\n confirmClose() {\n return new Promise(resolve => {\n _modals__WEBPACK_IMPORTED_MODULE_3__[\"default\"].showConfirmationModal(\"Are You Sure?\", this.props.confirmationText, {\n danger: true,\n confirmText: \"Close\",\n onConfirm: () => {\n resolve(true);\n },\n onCancel: () => {\n resolve(false);\n }\n });\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2Zsb2F0aW5nL3dpbmRvdy5qc3g/Y2YzZCJdLCJuYW1lcyI6WyJGbG9hdGluZ1dpbmRvdyIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwibW9kYWxPcGVuIiwib2ZmWCIsIm9mZlkiLCJ0aXRsZWJhciIsImNyZWF0ZVJlZiIsIndpbmRvdyIsImNsb3NlIiwiYmluZCIsIm9uRHJhZyIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnU3RvcCIsIm9uUmVzaXplU3RhcnQiLCJjb21wb25lbnREaWRNb3VudCIsImN1cnJlbnQiLCJhZGRFdmVudExpc3RlbmVyIiwiZG9jdW1lbnQiLCJjdXJyZW50V2lkdGgiLCJzdHlsZSIsIndpZHRoIiwiY3VycmVudEhlaWdodCIsImhlaWdodCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJvblJlc2l6ZSIsImUiLCJkaXYiLCJjbGllbnRZIiwicGFyc2VJbnQiLCJvZmZzZXRUb3AiLCJjbGllbnRYIiwib2Zmc2V0TGVmdCIsInBvc2l0aW9uIiwidG9wIiwibGVmdCIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVuZGVyIiwiY2VudGVyIiwiU2NyZWVuIiwiY2xhc3NOYW1lIiwicmVzaXphYmxlIiwic3R5bGVzIiwiaWQiLCJ0aXRsZSIsImNoaWxkcmVuIiwic2hvdWxkQ2xvc2UiLCJjb25maXJtQ2xvc2UiLCJzZXRTdGF0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiTW9kYWxzIiwic2hvd0NvbmZpcm1hdGlvbk1vZGFsIiwiY29uZmlybWF0aW9uVGV4dCIsImRhbmdlciIsImNvbmZpcm1UZXh0Iiwib25Db25maXJtIiwib25DYW5jZWwiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBRWUsTUFBTUEsY0FBTixTQUE2QkMsNkNBQUssQ0FBQ0MsU0FBbkMsQ0FBNkM7QUFFeERDLGFB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aUJBQVMsRUFBRTtBQUFaLE9BQWQ7QUFDSDs7QUFDRCxRQUFJLEtBQUtGLEtBQUwsQ0FBV1EsS0FBWCxJQUFvQnFDLFdBQXhCLEVBQXFDLEtBQUs3QyxLQUFMLENBQVdRLEtBQVg7QUFDeEM7O0FBRURzQyxjQUFZLEdBQUc7QUFDWCxXQUFPLElBQUlFLE9BQUosQ0FBWUMsT0FBTyxJQUFJO0FBQzFCQyxxREFBTSxDQUFDQyxxQkFBUCxDQUE2QixlQUE3QixFQUE4QyxLQUFLbkQsS0FBTCxDQUFXb0QsZ0JBQXpELEVBQTJFO0FBQ3ZFQyxjQUFNLEVBQUUsSUFEK0Q7QUFFdkVDLG1CQUFXLEVBQUUsT0FGMEQ7QUFHdkVDLGlCQUFTLEVBQUUsTUFBTTtBQUFDTixpQkFBTyxDQUFDLElBQUQsQ0FBUDtBQUFlLFNBSHNDO0FBSXZFTyxnQkFBUSxFQUFFLE1BQU07QUFBQ1AsaUJBQU8sQ0FBQyxLQUFELENBQVA7QUFBZ0I7QUFKc0MsT0FBM0U7QUFNSCxLQVBNLENBQVA7QUFRSDs7QUF0R3VEIiwiZmlsZSI6Ii4vc3JjL3VpL2Zsb2F0aW5nL3dpbmRvdy5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IFNjcmVlbiBmcm9tIFwiLi4vLi4vc3RydWN0cy9zY3JlZW5cIjtcclxuaW1wb3J0IENsb3NlQnV0dG9uIGZyb20gXCIuLi9pY29ucy9jbG9zZVwiO1xyXG5pbXBvcnQgTW9kYWxzIGZyb20gXCIuLi9tb2RhbHNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZsb2F0aW5nV2luZG93IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHttb2RhbE9wZW46IGZhbHNlfTtcclxuXHJcbiAgICAgICAgdGhpcy5vZmZYID0gMDtcclxuICAgICAgICB0aGlzLm9mZlkgPSAwO1xyXG5cclxuICAgICAgICB0aGlzLnRpdGxlYmFyID0gUmVhY3QuY3JlYXRlUmVmKCk7XHJcbiAgICAgICAgdGhpcy53aW5kb3cgPSBSZWFjdC5jcmVhdGVSZWYoKTtcclxuXHJcbiAgICAgICAgdGhpcy5jbG9zZSA9IHRoaXMuY2xvc2UuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLm9uRHJhZyA9IHRoaXMub25EcmFnLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5vbkRyYWdTdGFydCA9IHRoaXMub25EcmFnU3RhcnQuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLm9uRHJhZ1N0b3AgPSB0aGlzLm9uRHJhZ1N0b3AuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLm9uUmVzaXplU3RhcnQgPSB0aGlzLm9uUmVzaXplU3RhcnQuYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgICAgICB0aGlzLndpbmRvdy5jdXJyZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5vblJlc2l6ZVN0YXJ0LCBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy50aXRsZWJhci5jdXJyZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5vbkRyYWdTdGFydCwgZmFsc2UpO1xyXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIHRoaXMub25EcmFnU3RvcCwgZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uUmVzaXplU3RhcnQoKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50V2lkdGggPSB0aGlzLndpbmRvdy5jdXJyZW50LnN0eWxlLndpZHRoO1xyXG4gICAgICAgIHRoaXMuY3VycmVudEhlaWdodCA9IHRoaXMud2luZG93LmN1cnJlbnQuc3R5bGUuaGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIG9uRHJhZ1N0b3AoKSB7XHJcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCB0aGlzLm9uRHJhZywgdHJ1ZSk7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZXNpemUpIHtcclxuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLndpbmRvdy5jdXJyZW50LnN0eWxlLndpZHRoO1xyXG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLndpbmRvdy5jdXJyZW50LnN0eWxlLmhlaWdodDtcclxuICAgICAgICAgICAgaWYgKHdpZHRoICE9IHRoaXMuY3VycmVudFdpZHRoIHx8IGhlaWdodCAhPSB0aGlzLmN1cnJlbnRIZWlnaHQpIHRoaXMucHJvcHMub25SZXNpemUoKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkRyYWdTdGFydChlKSB7XHJcbiAgICAgICAgY29uc3QgZGl2ID0gdGhpcy53aW5kb3cuY3VycmVudDtcclxuICAgICAgICB0aGlzLm9mZlkgPSBlLmNsaWVudFkgLSBwYXJzZUludChkaXYub2Zmc2V0VG9wKTtcclxuICAgICAgICB0aGlzLm9mZlggPSBlLmNsaWVudFggLSBwYXJzZUludChkaXYub2Zmc2V0TGVmdCk7XHJcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCB0aGlzLm9uRHJhZywgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25EcmFnKGUpIHtcclxuICAgICAgICBjb25zdCBkaXYgPSB0aGlzLndpbmRvdy5jdXJyZW50O1xyXG4gICAgICAgIGRpdi5zdHlsZS5wb3NpdGlvbiA9IFwiZml4ZWRcIjtcclxuICAgICAgICBkaXYuc3R5bGUudG9wID0gKGUuY2xpZW50WSAtIHRoaXMub2ZmWSkgKyBcInB4XCI7XHJcbiAgICAgICAgZGl2LnN0eWxlLmxlZnQgPSAoZS5jbGllbnRYIC0gdGhpcy5vZmZYKSArIFwicHhcIjtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgICAgICB0aGlzLnRpdGxlYmFyLmN1cnJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCB0aGlzLm9uRHJhZ1N0YXJ0LCBmYWxzZSk7XHJcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIiwgdGhpcy5vbkRyYWdTdG9wLCBmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHRvcCA9IHRoaXMucHJvcHMuY2VudGVyID8gKFNjcmVlbi5oZWlnaHQgLyAyKSAtICh0aGlzLnByb3BzLmhlaWdodCAvIDIpIDogdGhpcy5wcm9wcy50b3A7XHJcbiAgICAgICAgY29uc3QgbGVmdCA9IHRoaXMucHJvcHMuY2VudGVyID8gKFNjcmVlbi53aWR0aCAvIDIpIC0gKHRoaXMucHJvcHMud2lkdGggLyAyKSA6IHRoaXMucHJvcHMubGVmdCA7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codG9wLCBsZWZ0KTtcclxuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBgZmxvYXRpbmctd2luZG93JHtgICR7dGhpcy5wcm9wcy5jbGFzc05hbWV9YCB8fCBcIlwifSR7dGhpcy5wcm9wcy5yZXNpemFibGUgPyBcIiByZXNpemFibGVcIiA6IFwiXCJ9JHt0aGlzLnN0YXRlLm1vZGFsT3BlbiA/IFwiIG1vZGFsLW9wZW5cIiA6IFwiXCJ9YDtcclxuICAgICAgICBjb25zdCBzdHlsZXMgPSB7aGVpZ2h0OiB0aGlzLnByb3BzLmhlaWdodCwgd2lkdGg6IHRoaXMucHJvcHMud2lkdGgsIGxlZnQ6IGxlZnQgfHwgMCwgdG9wOiB0b3AgfHwgMH07XHJcbiAgICAgICAgcmV0dXJuIDxkaXYgaWQ9e3RoaXMucHJvcHMuaWR9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfSByZWY9e3RoaXMud2luZG93fSBzdHlsZT17c3R5bGVzfT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb2F0aW5nLXdpbmRvdy10aXRsZWJhclwiIHJlZj17dGhpcy50aXRsZWJhcn0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRpdGxlXCI+e3RoaXMucHJvcHMudGl0bGV9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb2F0aW5nLXdpbmRvdy1idXR0b25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJ1dHRvbiBjbG9zZS1idXR0b25cIiBvbkNsaWNrPXt0aGlzLmNsb3NlfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2xvc2VCdXR0b24gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsb2F0aW5nLXdpbmRvdy1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVufVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+O1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNsb3NlKCkge1xyXG4gICAgICAgIGxldCBzaG91bGRDbG9zZSA9IHRydWU7XHJcbiAgICAgICAgY29uc3QgY29uZmlybUNsb3NlID0gdHlwZW9mKHRoaXMucHJvcHMuY29uZmlybUNsb3NlKSA9PSBcImZ1bmN0aW9uXCIgPyB0aGlzLnByb3BzLmNvbmZpcm1DbG9zZSgpIDogdGhpcy5wcm9wcy5jb25maXJtQ2xvc2U7XHJcbiAgICAgICAgaWYgKGNvbmZpcm1DbG9zZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHttb2RhbE9wZW46IHRydWV9KTtcclxuICAgICAgICAgICAgc2hvdWxkQ2xvc2UgPSBhd2FpdCB0aGlzLmNvbmZpcm1DbG9zZSgpO1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHttb2RhbE9wZW46IGZhbHNlfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmNsb3NlICYmIHNob3VsZENsb3NlKSB0aGlzLnByb3BzLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uZmlybUNsb3NlKCkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgICAgICAgTW9kYWxzLnNob3dDb25maXJtYXRpb25Nb2RhbChcIkFyZSBZb3UgU3VyZT9cIiwgdGhpcy5wcm9wcy5jb25maXJtYXRpb25UZXh0LCB7XHJcbiAgICAgICAgICAgICAgICBkYW5nZXI6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBjb25maXJtVGV4dDogXCJDbG9zZVwiLFxyXG4gICAgICAgICAgICAgICAgb25Db25maXJtOiAoKSA9PiB7cmVzb2x2ZSh0cnVlKTt9LFxyXG4gICAgICAgICAgICAgICAgb25DYW5jZWw6ICgpID0+IHtyZXNvbHZlKGZhbHNlKTt9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/floating/window.jsx\n");
/***/ }),
/***/ "./src/ui/icons/bdlogo.jsx":
/*!*********************************!*\
!*** ./src/ui/icons/bdlogo.jsx ***!
\*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BDLogo; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass BDLogo extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n className: \"bd-logo \" + this.props.className,\n height: \"100%\",\n width: this.props.size || \"16px\",\n viewBox: \"0 0 2000 2000\",\n style: {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"metadata\", null), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"defs\", null, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"filter\", {\n id: \"shadow1\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"feDropShadow\", {\n dx: \"20\",\n dy: \"0\",\n stdDeviation: \"20\",\n floodColor: \"rgba(0,0,0,0.35)\"\n })), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"filter\", {\n id: \"shadow2\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"feDropShadow\", {\n dx: \"15\",\n dy: \"0\",\n stdDeviation: \"20\",\n floodColor: \"rgba(255,255,255,0.15)\"\n })), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"filter\", {\n id: \"shadow3\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"feDropShadow\", {\n dx: \"10\",\n dy: \"0\",\n stdDeviation: \"20\",\n floodColor: \"rgba(0,0,0,0.35)\"\n }))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"g\", null, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n style: {\n filter: \"url(#shadow3)\"\n },\n fill: \"#171717\",\n opacity: \"1\",\n d: \"M1195.44+135.442L1195.44+135.442L997.6+136.442C1024.2+149.742+1170.34+163.542+1193.64+179.742C1264.34+228.842+1319.74+291.242+1358.24+365.042C1398.14+441.642+1419.74+530.642+1422.54+629.642L1422.54+630.842L1422.54+632.042C1422.54+773.142+1422.54+1228.14+1422.54+1369.14L1422.54+1370.34L1422.54+1371.54C1419.84+1470.54+1398.24+1559.54+1358.24+1636.14C1319.74+1709.94+1264.44+1772.34+1193.64+1821.44C1171.04+1837.14+1025.7+1850.54+1000+1863.54L1193.54+1864.54C1539.74+1866.44+1864.54+1693.34+1864.54+1296.64L1864.54+716.942C1866.44+312.442+1541.64+135.442+1195.44+135.442Z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n style: {\n filter: \"url(#shadow2)\"\n },\n fill: \"#3E82E5\",\n opacity: \"1\",\n d: \"M1695.54+631.442C1685.84+278.042+1409.34+135.442+1052.94+135.442L361.74+136.442L803.74+490.442L1060.74+490.442C1335.24+490.442+1335.24+835.342+1060.74+835.342L1060.74+1164.84C1150.22+1164.84+1210.53+1201.48+1241.68+1250.87C1306.07+1353+1245.76+1509.64+1060.74+1509.64L361.74+1863.54L1052.94+1864.54C1409.24+1864.54+1685.74+1721.94+1695.54+1368.54C1695.54+1205.94+1651.04+1084.44+1572.64+999.942C1651.04+915.542+1695.54+794.042+1695.54+631.442Z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n style: {\n filter: \"url(#shadow1)\"\n },\n fill: \"#FFFFFF\",\n opacity: \"1\",\n d: \"M1469.25+631.442C1459.55+278.042+1183.05+135.442+826.65+135.442L135.45+135.442L135.45+1004C135.45+1004+135.427+1255.21+355.626+1255.21C575.825+1255.21+575.848+1004+575.848+1004L577.45+490.442L834.45+490.442C1108.95+490.442+1108.95+835.342+834.45+835.342L664.65+835.342L664.65+1164.84L834.45+1164.84C923.932+1164.84+984.244+1201.48+1015.39+1250.87C1079.78+1353+1019.47+1509.64+834.45+1509.64L135.45+1509.64L135.45+1864.54L826.65+1864.54C1182.95+1864.54+1459.45+1721.94+1469.25+1368.54C1469.25+1205.94+1424.75+1084.44+1346.35+999.942C1424.75+915.542+1469.25+794.042+1469.25+631.442Z\"\n })));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL2JkbG9nby5qc3g/YmQ4OSJdLCJuYW1lcyI6WyJCRExvZ28iLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsInByb3BzIiwiY2xhc3NOYW1lIiwic2l6ZSIsImZpbGxSdWxlIiwiY2xpcFJ1bGUiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJmaWx0ZXIiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsTUFBTixTQUFxQkMsNkNBQUssQ0FBQ0MsU0FBM0IsQ0FBcUM7QUFDaERDLFFBQU0sR0FBRztBQUNMLFdBQU87QUFBSyxlQUFTLEVBQUUsYUFBYSxLQUFLQyxLQUFMLENBQVdDLFNBQXhDO0FBQW1ELFlBQU0sRUFBQyxNQUExRDtBQUFpRSxXQUFLLEVBQUUsS0FBS0QsS0FBTCxDQUFXRSxJQUFYLElBQW1CLE1BQTNGO0FBQW1HLGFBQU8sRUFBQyxlQUEzRztBQUEySCxXQUFLLEVBQUU7QUFBQ0MsZ0JBQVEsRUFBRSxTQUFYO0FBQXNCQyxnQkFBUSxFQUFFLFNBQWhDO0FBQTJDQyxxQkFBYSxFQUFFLE9BQTFEO0FBQW1FQyxzQkFBYyxFQUFFO0FBQW5GO0FBQWxJLE9BQ0gsNkVBREcsRUFFSCwwRUFDSTtBQUFRLFFBQUUsRUFBQztBQUFYLE9BQXFCO0FBQWMsUUFBRSxFQUFDLElBQWpCO0FBQXNCLFFBQUUsRUFBQyxHQUF6QjtBQUE2QixrQkFBWSxFQUFDLElBQTFDO0FBQStDLGdCQUFVLEVBQUM7QUFBMUQsTUFBckIsQ0FESixFQUVJO0FBQVEsUUFBRSxFQUFDO0FBQVgsT0FBcUI7QUFBYyxRQUFFLEVBQUMsSUFBakI7QUFBc0IsUUFBRSxFQUFDLEdBQXpCO0FBQTZCLGtCQUFZLEVBQUMsSUFBMUM7QUFBK0MsZ0JBQVUsRUFBQztBQUExRCxNQUFyQixDQUZKLEVBR0k7QUFBUSxRQUFFLEVBQUM7QUFBWCxPQUFxQjtBQUFjLFFBQUUsRUFBQyxJQUFqQjtBQUFzQixRQUFFLEVBQUMsR0FBekI7QUFBNkIsa0JBQVksRUFBQyxJQUExQztBQUErQyxnQkFBVSxFQUFDO0FBQTFELE1BQXJCLENBSEosQ0FGRyxFQU9ILHVFQUNJO0FBQU0sV0FBSyxFQUFFO0FBQUNDLGNBQU0sRUFBRTtBQUFULE9BQWI7QUFBd0MsVUFBSSxFQUFDLFNBQTdDO0FBQXVELGFBQU8sRUFBQyxHQUEvRDtBQUFtRSxPQUFDLEVBQUM7QUFBckUsTUFESixFQUVJO0FBQU0sV0FBSyxFQUFFO0FBQUNBLGNBQU0sRUFBRTtBQUFULE9BQWI7QUFBd0MsVUFBSSxFQUFDLFNBQTdDO0FBQXVELGFBQU8sRUFBQyxHQUEvRDtBQUFtRSxPQUFDLEVBQUM7QUFBckUsTUFGSixFQUdJO0FBQU0sV0FBSyxFQUFFO0FBQUNBLGNBQU0sRUFBRTtBQUFULE9BQWI7QUFBd0MsVUFBSSxFQUFDLFNBQTdDO0FBQXVELGFBQU8sRUFBQyxHQUEvRDtBQUFtRSxPQUFDLEVBQUM7QUFBckUsTUFISixDQVBHLENBQVA7QUFhSDs7QUFmK0MiLCJmaWxlIjoiLi9zcmMvdWkvaWNvbnMvYmRsb2dvLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCRExvZ28gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiA8c3ZnIGNsYXNzTmFtZT17XCJiZC1sb2dvIFwiICsgdGhpcy5wcm9wcy5jbGFzc05hbWV9IGhlaWdodD1cIjEwMCVcIiB3aWR0aD17dGhpcy5wcm9wcy5zaXplIHx8IFwiMTZweFwifSB2aWV3Qm94PVwiMCAwIDIwMDAgMjAwMFwiIHN0eWxlPXt7ZmlsbFJ1bGU6IFwiZXZlbm9kZFwiLCBjbGlwUnVsZTogXCJldmVub2RkXCIsIHN0cm9rZUxpbmVjYXA6IFwicm91bmRcIiwgc3Ryb2tlTGluZWpvaW46IFwicm91bmRcIn19PlxyXG4gICAgICAgICAgICA8bWV0YWRhdGEgLz5cclxuICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwic2hhZG93MVwiPjxmZURyb3BTaGFkb3cgZHg9XCIyMFwiIGR5PVwiMFwiIHN0ZERldmlhdGlvbj1cIjIwXCIgZmxvb2RDb2xvcj1cInJnYmEoMCwwLDAsMC4zNSlcIiAvPjwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cInNoYWRvdzJcIj48ZmVEcm9wU2hhZG93IGR4PVwiMTVcIiBkeT1cIjBcIiBzdGREZXZpYXRpb249XCIyMFwiIGZsb29kQ29sb3I9XCJyZ2JhKDI1NSwyNTUsMjU1LDAuMTUpXCIgLz48L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJzaGFkb3czXCI+PGZlRHJvcFNoYWRvdyBkeD1cIjEwXCIgZHk9XCIwXCIgc3RkRGV2aWF0aW9uPVwiMjBcIiBmbG9vZENvbG9yPVwicmdiYSgwLDAsMCwwLjM1KVwiIC8+PC9maWx0ZXI+XHJcbiAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHlsZT17e2ZpbHRlcjogXCJ1cmwoI3NoYWRvdzMpXCJ9fSBmaWxsPVwiIzE3MTcxN1wiIG9wYWNpdHk9XCIxXCIgZD1cIk0xMTk1LjQ0KzEzNS40NDJMMTE5NS40NCsxMzUuNDQyTDk5Ny42KzEzNi40NDJDMTAyNC4yKzE0OS43NDIrMTE3MC4zNCsxNjMuNTQyKzExOTMuNjQrMTc5Ljc0MkMxMjY0LjM0KzIyOC44NDIrMTMxOS43NCsyOTEuMjQyKzEzNTguMjQrMzY1LjA0MkMxMzk4LjE0KzQ0MS42NDIrMTQxOS43NCs1MzAuNjQyKzE0MjIuNTQrNjI5LjY0MkwxNDIyLjU0KzYzMC44NDJMMTQyMi41NCs2MzIuMDQyQzE0MjIuNTQrNzczLjE0MisxNDIyLjU0KzEyMjguMTQrMTQyMi41NCsxMzY5LjE0TDE0MjIuNTQrMTM3MC4zNEwxNDIyLjU0KzEzNzEuNTRDMTQxOS44NCsxNDcwLjU0KzEzOTguMjQrMTU1OS41NCsxMzU4LjI0KzE2MzYuMTRDMTMxOS43NCsxNzA5Ljk0KzEyNjQuNDQrMTc3Mi4zNCsxMTkzLjY0KzE4MjEuNDRDMTE3MS4wNCsxODM3LjE0KzEwMjUuNysxODUwLjU0KzEwMDArMTg2My41NEwxMTkzLjU0KzE4NjQuNTRDMTUzOS43NCsxODY2LjQ0KzE4NjQuNTQrMTY5My4zNCsxODY0LjU0KzEyOTYuNjRMMTg2NC41NCs3MTYuOTQyQzE4NjYuNDQrMzEyLjQ0MisxNTQxLjY0KzEzNS40NDIrMTE5NS40NCsxMzUuNDQyWlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHlsZT17e2ZpbHRlcjogXCJ1cmwoI3NoYWRvdzIpXCJ9fSBmaWxsPVwiIzNFODJFNVwiIG9wYWNpdHk9XCIxXCIgZD1cIk0xNjk1LjU0KzYzMS40NDJDMTY4NS44NCsyNzguMDQyKzE0MDkuMzQrMTM1LjQ0MisxMDUyLjk0KzEzNS40NDJMMzYxLjc0KzEzNi40NDJMODAzLjc0KzQ5MC40NDJMMTA2MC43NCs0OTAuNDQyQzEzMzUuMjQrNDkwLjQ0MisxMzM1LjI0KzgzNS4zNDIrMTA2MC43NCs4MzUuMzQyTDEwNjAuNzQrMTE2NC44NEMxMTUwLjIyKzExNjQuODQrMTIxMC41MysxMjAxLjQ4KzEyNDEuNjgrMTI1MC44N0MxMzA2LjA3KzEzNTMrMTI0NS43NisxNTA5LjY0KzEwNjAuNzQrMTUwOS42NEwzNjEuNzQrMTg2My41NEwxMDUyLjk0KzE4NjQuNTRDMTQwOS4yNCsxODY0LjU0KzE2ODUuNzQrMTcyMS45NCsxNjk1LjU0KzEzNjguNTRDMTY5NS41NCsxMjA1Ljk0KzE2NTEuMDQrMTA4NC40NCsxNTcyLjY0Kzk5OS45NDJDMTY1MS4wNCs5MTUuNTQyKzE2OTUuNTQrNzk0LjA0MisxNjk1LjU0KzYzMS40NDJaXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIHN0eWxlPXt7ZmlsdGVyOiBcInVybCgjc2hhZG93MSlcIn19IGZpbGw9XCIjRkZGRkZGXCIgb3BhY2l0eT1cIjFcIiBkPVwiTTE0NjkuMjUrNjMxLjQ0MkMxNDU5LjU1KzI3OC4wNDIrMTE4My4wNSsxMzUuNDQyKzgyNi42NSsxMzUuNDQyTDEzNS40NSsxMzUuNDQyTDEzNS40NSsxMDA0QzEzNS40NSsxMDA0KzEzNS40MjcrMTI1NS4yMSszNTUuNjI2KzEyNTUuMjFDNTc1LjgyNSsxMjU1LjIxKzU3NS44NDgrMTAwNCs1NzUuODQ4KzEwMDRMNTc3LjQ1KzQ5MC40NDJMODM0LjQ1KzQ5MC40NDJDMTEwOC45NSs0OTAuNDQyKzExMDguOTUrODM1LjM0Mis4MzQuNDUrODM1LjM0Mkw2NjQuNjUrODM1LjM0Mkw2NjQuNjUrMTE2NC44NEw4MzQuNDUrMTE2NC44NEM5MjMuOTMyKzExNjQuODQrOTg0LjI0NCsxMjAxLjQ4KzEwMTUuMzkrMTI1MC44N0MxMDc5Ljc4KzEzNTMrMTAxOS40NysxNTA5LjY0KzgzNC40NSsxNTA5LjY0TDEzNS40NSsxNTA5LjY0TDEzNS40NSsxODY0LjU0TDgyNi42NSsxODY0LjU0QzExODIuOTUrMTg2NC41NCsxNDU5LjQ1KzE3MjEuOTQrMTQ2OS4yNSsxMzY4LjU0QzE0NjkuMjUrMTIwNS45NCsxNDI0Ljc1KzEwODQuNDQrMTM0Ni4zNSs5OTkuOTQyQzE0MjQuNzUrOTE1LjU0MisxNDY5LjI1Kzc5NC4wNDIrMTQ2OS4yNSs2MzEuNDQyWlwiIC8+XHJcbiAgICAgICAgICAgIDwvZz5cclxuICAgICAgICA8L3N2Zz47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/icons/bdlogo.jsx\n");
/***/ }),
/***/ "./src/ui/icons/close.jsx":
/*!********************************!*\
!*** ./src/ui/icons/close.jsx ***!
\********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CloseButton; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass CloseButton extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n viewBox: \"0 0 12 12\",\n style: {\n width: \"18px\",\n height: \"18px\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"g\", {\n className: \"background\",\n fill: \"none\",\n fillRule: \"evenodd\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M0 0h12v12H0\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n className: \"fill\",\n fill: \"#dcddde\",\n d: \"M9.5 3.205L8.795 2.5 6 5.295 3.205 2.5l-.705.705L5.295 6 2.5 8.795l.705.705L6 6.705 8.795 9.5l.705-.705L6.705 6\"\n })));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL2Nsb3NlLmpzeD9iY2UxIl0sIm5hbWVzIjpbIkNsb3NlQnV0dG9uIiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZW5kZXIiLCJ3aWR0aCIsImhlaWdodCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFZSxNQUFNQSxXQUFOLFNBQTBCQyw2Q0FBSyxDQUFDQyxTQUFoQyxDQUEwQztBQUNyREMsUUFBTSxHQUFHO0FBQ0wsV0FBTztBQUFLLGFBQU8sRUFBQyxXQUFiO0FBQXlCLFdBQUssRUFBRTtBQUFDQyxhQUFLLEVBQUUsTUFBUjtBQUFnQkMsY0FBTSxFQUFFO0FBQXhCO0FBQWhDLE9BQ0g7QUFBRyxlQUFTLEVBQUMsWUFBYjtBQUEwQixVQUFJLEVBQUMsTUFBL0I7QUFBc0MsY0FBUSxFQUFDO0FBQS9DLE9BQ0k7QUFBTSxPQUFDLEVBQUM7QUFBUixNQURKLEVBRUk7QUFBTSxlQUFTLEVBQUMsTUFBaEI7QUFBdUIsVUFBSSxFQUFDLFNBQTVCO0FBQXNDLE9BQUMsRUFBQztBQUF4QyxNQUZKLENBREcsQ0FBUDtBQU1IOztBQVJvRCIsImZpbGUiOiIuL3NyYy91aS9pY29ucy9jbG9zZS5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2xvc2VCdXR0b24gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiA8c3ZnIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBzdHlsZT17e3dpZHRoOiBcIjE4cHhcIiwgaGVpZ2h0OiBcIjE4cHhcIn19PlxyXG4gICAgICAgICAgICA8ZyBjbGFzc05hbWU9XCJiYWNrZ3JvdW5kXCIgZmlsbD1cIm5vbmVcIiBmaWxsUnVsZT1cImV2ZW5vZGRcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMCAwaDEydjEySDBcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3NOYW1lPVwiZmlsbFwiIGZpbGw9XCIjZGNkZGRlXCIgZD1cIk05LjUgMy4yMDVMOC43OTUgMi41IDYgNS4yOTUgMy4yMDUgMi41bC0uNzA1LjcwNUw1LjI5NSA2IDIuNSA4Ljc5NWwuNzA1LjcwNUw2IDYuNzA1IDguNzk1IDkuNWwuNzA1LS43MDVMNi43MDUgNlwiIC8+XHJcbiAgICAgICAgICAgIDwvZz5cclxuICAgICAgICA8L3N2Zz47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/icons/close.jsx\n");
/***/ }),
/***/ "./src/ui/icons/cog.jsx":
/*!******************************!*\
!*** ./src/ui/icons/cog.jsx ***!
\******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Cog; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Cog extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"20px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n viewBox: \"0 0 20 20\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h20v20H0V0z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL2NvZy5qc3g/MGFiZCJdLCJuYW1lcyI6WyJDb2ciLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsInNpemUiLCJwcm9wcyIsIndpZHRoIiwiaGVpZ2h0Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLEdBQU4sU0FBa0JDLDZDQUFLLENBQUNDLFNBQXhCLENBQWtDO0FBQzdDQyxRQUFNLEdBQUc7QUFDTCxVQUFNQyxJQUFJLEdBQUcsS0FBS0MsS0FBTCxDQUFXRCxJQUFYLElBQW1CLE1BQWhDO0FBQ0EsV0FBTztBQUFLLGFBQU8sRUFBQyxXQUFiO0FBQXlCLFdBQUssRUFBRTtBQUFDRSxhQUFLLEVBQUVGLElBQVI7QUFBY0csY0FBTSxFQUFFSDtBQUF0QjtBQUFoQyxPQUNDO0FBQU0sVUFBSSxFQUFDLE1BQVg7QUFBa0IsT0FBQyxFQUFDO0FBQXBCLE1BREQsRUFFQztBQUFNLE9BQUMsRUFBQztBQUFSLE1BRkQsQ0FBUDtBQUlIOztBQVA0QyIsImZpbGUiOiIuL3NyYy91aS9pY29ucy9jb2cuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvZyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMucHJvcHMuc2l6ZSB8fCBcIjIwcHhcIjtcclxuICAgICAgICByZXR1cm4gPHN2ZyB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgc3R5bGU9e3t3aWR0aDogc2l6ZSwgaGVpZ2h0OiBzaXplfX0+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwibm9uZVwiIGQ9XCJNMCAwaDIwdjIwSDBWMHpcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNS45NSAxMC43OGMuMDMtLjI1LjA1LS41MS4wNS0uNzhzLS4wMi0uNTMtLjA2LS43OGwxLjY5LTEuMzJjLjE1LS4xMi4xOS0uMzQuMS0uNTFsLTEuNi0yLjc3Yy0uMS0uMTgtLjMxLS4yNC0uNDktLjE4bC0xLjk5LjhjLS40Mi0uMzItLjg2LS41OC0xLjM1LS43OEwxMiAyLjM0Yy0uMDMtLjItLjItLjM0LS40LS4zNEg4LjRjLS4yIDAtLjM2LjE0LS4zOS4zNGwtLjMgMi4xMmMtLjQ5LjItLjk0LjQ3LTEuMzUuNzhsLTEuOTktLjhjLS4xOC0uMDctLjM5IDAtLjQ5LjE4bC0xLjYgMi43N2MtLjEuMTgtLjA2LjM5LjEuNTFsMS42OSAxLjMyYy0uMDQuMjUtLjA3LjUyLS4wNy43OHMuMDIuNTMuMDYuNzhMMi4zNyAxMi4xYy0uMTUuMTItLjE5LjM0LS4xLjUxbDEuNiAyLjc3Yy4xLjE4LjMxLjI0LjQ5LjE4bDEuOTktLjhjLjQyLjMyLjg2LjU4IDEuMzUuNzhsLjMgMi4xMmMuMDQuMi4yLjM0LjQuMzRoMy4yYy4yIDAgLjM3LS4xNC4zOS0uMzRsLjMtMi4xMmMuNDktLjIuOTQtLjQ3IDEuMzUtLjc4bDEuOTkuOGMuMTguMDcuMzkgMCAuNDktLjE4bDEuNi0yLjc3Yy4xLS4xOC4wNi0uMzktLjEtLjUxbC0xLjY3LTEuMzJ6TTEwIDEzYy0xLjY1IDAtMy0xLjM1LTMtM3MxLjM1LTMgMy0zIDMgMS4zNSAzIDMtMS4zNSAzLTMgM3pcIiAvPlxyXG4gICAgICAgICAgICAgICA8L3N2Zz47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/icons/cog.jsx\n");
/***/ }),
/***/ "./src/ui/icons/detach.jsx":
/*!*********************************!*\
!*** ./src/ui/icons/detach.jsx ***!
\*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Detach; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Detach extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"24px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n viewBox: \"0 0 24 24\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M0 0h24v24H0z\",\n fill: \"none\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL2RldGFjaC5qc3g/M2NlYSJdLCJuYW1lcyI6WyJEZXRhY2giLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsInNpemUiLCJwcm9wcyIsIndpZHRoIiwiaGVpZ2h0Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLE1BQU4sU0FBcUJDLDZDQUFLLENBQUNDLFNBQTNCLENBQXFDO0FBQ2hEQyxRQUFNLEdBQUc7QUFDTCxVQUFNQyxJQUFJLEdBQUcsS0FBS0MsS0FBTCxDQUFXRCxJQUFYLElBQW1CLE1BQWhDO0FBQ0EsV0FBTztBQUFLLGFBQU8sRUFBQyxXQUFiO0FBQXlCLFdBQUssRUFBRTtBQUFDRSxhQUFLLEVBQUVGLElBQVI7QUFBY0csY0FBTSxFQUFFSDtBQUF0QjtBQUFoQyxPQUNDO0FBQU0sT0FBQyxFQUFDLGVBQVI7QUFBd0IsVUFBSSxFQUFDO0FBQTdCLE1BREQsRUFFQztBQUFNLE9BQUMsRUFBQztBQUFSLE1BRkQsQ0FBUDtBQUlIOztBQVArQyIsImZpbGUiOiIuL3NyYy91aS9pY29ucy9kZXRhY2guanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERldGFjaCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMucHJvcHMuc2l6ZSB8fCBcIjI0cHhcIjtcclxuICAgICAgICByZXR1cm4gPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3R5bGU9e3t3aWR0aDogc2l6ZSwgaGVpZ2h0OiBzaXplfX0+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAgMGgyNHYyNEgwelwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTkgMTlINVY1aDdWM0g1Yy0xLjExIDAtMiAuOS0yIDJ2MTRjMCAxLjEuODkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTdoLTJ2N3pNMTQgM3YyaDMuNTlsLTkuODMgOS44MyAxLjQxIDEuNDFMMTkgNi40MVYxMGgyVjNoLTd6XCIgLz5cclxuICAgICAgICAgICAgICAgPC9zdmc+O1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/icons/detach.jsx\n");
/***/ }),
/***/ "./src/ui/icons/edit.jsx":
/*!*******************************!*\
!*** ./src/ui/icons/edit.jsx ***!
\*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Edit; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Edit extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"24px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n viewBox: \"0 0 24 24\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M0 0h24v24H0z\",\n fill: \"none\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL2VkaXQuanN4PzQ2ZTMiXSwibmFtZXMiOlsiRWRpdCIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIiwic2l6ZSIsInByb3BzIiwid2lkdGgiLCJoZWlnaHQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsSUFBTixTQUFtQkMsNkNBQUssQ0FBQ0MsU0FBekIsQ0FBbUM7QUFDOUNDLFFBQU0sR0FBRztBQUNMLFVBQU1DLElBQUksR0FBRyxLQUFLQyxLQUFMLENBQVdELElBQVgsSUFBbUIsTUFBaEM7QUFDQSxXQUFPO0FBQUssYUFBTyxFQUFDLFdBQWI7QUFBeUIsV0FBSyxFQUFFO0FBQUNFLGFBQUssRUFBRUYsSUFBUjtBQUFjRyxjQUFNLEVBQUVIO0FBQXRCO0FBQWhDLE9BQ0M7QUFBTSxPQUFDLEVBQUM7QUFBUixNQURELEVBRUM7QUFBTSxPQUFDLEVBQUMsZUFBUjtBQUF3QixVQUFJLEVBQUM7QUFBN0IsTUFGRCxDQUFQO0FBSUg7O0FBUDZDIiwiZmlsZSI6Ii4vc3JjL3VpL2ljb25zL2VkaXQuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVkaXQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzLnNpemUgfHwgXCIyNHB4XCI7XHJcbiAgICAgICAgcmV0dXJuIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0eWxlPXt7d2lkdGg6IHNpemUsIGhlaWdodDogc2l6ZX19PlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0zIDE3LjI1VjIxaDMuNzVMMTcuODEgOS45NGwtMy43NS0zLjc1TDMgMTcuMjV6TTIwLjcxIDcuMDRjLjM5LS4zOS4zOS0xLjAyIDAtMS40MWwtMi4zNC0yLjM0Yy0uMzktLjM5LTEuMDItLjM5LTEuNDEgMGwtMS44MyAxLjgzIDMuNzUgMy43NSAxLjgzLTEuODN6XCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMCAwaDI0djI0SDB6XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICA8L3N2Zz47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/icons/edit.jsx\n");
/***/ }),
/***/ "./src/ui/icons/reload.jsx":
/*!*********************************!*\
!*** ./src/ui/icons/reload.jsx ***!
\*********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ReloadIcon; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass ReloadIcon extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"24px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n className: this.props.className || \"\",\n onClick: this.props.onClick,\n fill: \"#dcddde\",\n viewBox: \"0 0 24 24\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL3JlbG9hZC5qc3g/MzhiMiJdLCJuYW1lcyI6WyJSZWxvYWRJY29uIiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZW5kZXIiLCJzaXplIiwicHJvcHMiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwid2lkdGgiLCJoZWlnaHQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsVUFBTixTQUF5QkMsNkNBQUssQ0FBQ0MsU0FBL0IsQ0FBeUM7QUFDcERDLFFBQU0sR0FBRztBQUNMLFVBQU1DLElBQUksR0FBRyxLQUFLQyxLQUFMLENBQVdELElBQVgsSUFBbUIsTUFBaEM7QUFDQSxXQUFPO0FBQUssZUFBUyxFQUFFLEtBQUtDLEtBQUwsQ0FBV0MsU0FBWCxJQUF3QixFQUF4QztBQUE0QyxhQUFPLEVBQUUsS0FBS0QsS0FBTCxDQUFXRSxPQUFoRTtBQUF5RSxVQUFJLEVBQUMsU0FBOUU7QUFBd0YsYUFBTyxFQUFDLFdBQWhHO0FBQTRHLFdBQUssRUFBRTtBQUFDQyxhQUFLLEVBQUVKLElBQVI7QUFBY0ssY0FBTSxFQUFFTDtBQUF0QjtBQUFuSCxPQUNIO0FBQU0sT0FBQyxFQUFDO0FBQVIsTUFERyxFQUVIO0FBQU0sVUFBSSxFQUFDLE1BQVg7QUFBa0IsT0FBQyxFQUFDO0FBQXBCLE1BRkcsQ0FBUDtBQUlIOztBQVBtRCIsImZpbGUiOiIuL3NyYy91aS9pY29ucy9yZWxvYWQuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlbG9hZEljb24gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzLnNpemUgfHwgXCIyNHB4XCI7XHJcbiAgICAgICAgcmV0dXJuIDxzdmcgY2xhc3NOYW1lPXt0aGlzLnByb3BzLmNsYXNzTmFtZSB8fCBcIlwifSBvbkNsaWNrPXt0aGlzLnByb3BzLm9uQ2xpY2t9IGZpbGw9XCIjZGNkZGRlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0eWxlPXt7d2lkdGg6IHNpemUsIGhlaWdodDogc2l6ZX19PlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjY1IDYuMzVDMTYuMiA0LjkgMTQuMjEgNCAxMiA0Yy00LjQyIDAtNy45OSAzLjU4LTcuOTkgOHMzLjU3IDggNy45OSA4YzMuNzMgMCA2Ljg0LTIuNTUgNy43My02aC0yLjA4Yy0uODIgMi4zMy0zLjA0IDQtNS42NSA0LTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTZjMS42NiAwIDMuMTQuNjkgNC4yMiAxLjc4TDEzIDExaDdWNGwtMi4zNSAyLjM1elwiIC8+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJub25lXCIgZD1cIk0wIDBoMjR2MjRIMHpcIiAvPlxyXG4gICAgICAgIDwvc3ZnPjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/icons/reload.jsx\n");
/***/ }),
/***/ "./src/ui/icons/save.jsx":
/*!*******************************!*\
!*** ./src/ui/icons/save.jsx ***!
\*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Save; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Save extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n const size = this.props.size || \"24px\";\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"svg\", {\n viewBox: \"0 0 24 24\",\n style: {\n width: size,\n height: size\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0V0z\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"path\", {\n d: \"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm2 16H5V5h11.17L19 7.83V19zm-7-7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zM6 6h9v4H6z\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL2ljb25zL3NhdmUuanN4PzU4MGYiXSwibmFtZXMiOlsiU2F2ZSIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIiwic2l6ZSIsInByb3BzIiwid2lkdGgiLCJoZWlnaHQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRWUsTUFBTUEsSUFBTixTQUFtQkMsNkNBQUssQ0FBQ0MsU0FBekIsQ0FBbUM7QUFDOUNDLFFBQU0sR0FBRztBQUNMLFVBQU1DLElBQUksR0FBRyxLQUFLQyxLQUFMLENBQVdELElBQVgsSUFBbUIsTUFBaEM7QUFDQSxXQUFPO0FBQUssYUFBTyxFQUFDLFdBQWI7QUFBeUIsV0FBSyxFQUFFO0FBQUNFLGFBQUssRUFBRUYsSUFBUjtBQUFjRyxjQUFNLEVBQUVIO0FBQXRCO0FBQWhDLE9BQ0M7QUFBTSxVQUFJLEVBQUMsTUFBWDtBQUFrQixPQUFDLEVBQUM7QUFBcEIsTUFERCxFQUVDO0FBQU0sT0FBQyxFQUFDO0FBQVIsTUFGRCxDQUFQO0FBSUg7O0FBUDZDIiwiZmlsZSI6Ii4vc3JjL3VpL2ljb25zL3NhdmUuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNhdmUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzLnNpemUgfHwgXCIyNHB4XCI7XHJcbiAgICAgICAgcmV0dXJuIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0eWxlPXt7d2lkdGg6IHNpemUsIGhlaWdodDogc2l6ZX19PlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZmlsbD1cIm5vbmVcIiBkPVwiTTAgMGgyNHYyNEgwVjB6XCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTcgM0g1Yy0xLjExIDAtMiAuOS0yIDJ2MTRjMCAxLjEuODkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWN2wtNC00em0yIDE2SDVWNWgxMS4xN0wxOSA3LjgzVjE5em0tNy03Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3pNNiA2aDl2NEg2elwiIC8+XHJcbiAgICAgICAgICAgICAgIDwvc3ZnPjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/icons/save.jsx\n");
/***/ }),
/***/ "./src/ui/modals.js":
/*!**************************!*\
!*** ./src/ui/modals.js ***!
\**************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Modals; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Modals {\n static get shouldShowContentErrors() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"content\", \"contentErrors\");\n }\n\n static get ModalStack() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"push\", \"update\", \"pop\", \"popWithKey\");\n }\n\n static get AlertModal() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByPrototypes(\"handleCancel\", \"handleSubmit\", \"handleMinorConfirm\");\n }\n\n static get TextElement() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"Sizes\", \"Weights\");\n }\n\n static get ConfirmationModal() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getModule(m => m.defaultProps && m.key && m.key() == \"confirm-modal\");\n }\n\n static default(title, content) {\n const modal = $(`<div class=\"bd-modal-wrapper theme-dark\">\n <div class=\"bd-backdrop backdrop-1wrmKB\"></div>\n <div class=\"bd-modal modal-1UGdnR\">\n <div class=\"bd-modal-inner inner-1JeGVc\">\n <div class=\"header header-1R_AjF\">\n <div class=\"title\">${title}</div>\n </div>\n <div class=\"bd-modal-body\">\n <div class=\"scroller-wrap fade\">\n <div class=\"scroller\">\n ${content}\n </div>\n </div>\n </div>\n <div class=\"footer footer-2yfCgX\">\n <button type=\"button\">Okay</button>\n </div>\n </div>\n </div>\n </div>`);\n modal.find(\".footer button\").on(\"click\", () => {\n modal.addClass(\"closing\");\n setTimeout(() => {\n modal.remove();\n }, 300);\n });\n modal.find(\".bd-backdrop\").on(\"click\", () => {\n modal.addClass(\"closing\");\n setTimeout(() => {\n modal.remove();\n }, 300);\n });\n modal.appendTo(\"#app-mount\");\n }\n\n static alert(title, content) {\n if (this.ModalStack && this.AlertModal) return this.default(title, content);\n this.ModalStack.push(function (props) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(this.AlertModal, Object.assign({\n title: title,\n body: content\n }, props));\n });\n }\n /**\r\n * Shows a generic but very customizable confirmation modal with optional confirm and cancel callbacks.\r\n * @param {string} title - title of the modal\r\n * @param {(string|ReactElement|Array<string|ReactElement>)} children - a single or mixed array of react elements and strings. Everything is wrapped in Discord's `TextElement` component so strings will show and render properly.\r\n * @param {object} [options] - options to modify the modal\r\n * @param {boolean} [options.danger=false] - whether the main button should be red or not\r\n * @param {string} [options.confirmText=Okay] - text for the confirmation/submit button\r\n * @param {string} [options.cancelText=Cancel] - text for the cancel button\r\n * @param {callable} [options.onConfirm=NOOP] - callback to occur when clicking the submit button\r\n * @param {callable} [options.onCancel=NOOP] - callback to occur when clicking the cancel button\r\n */\n\n\n static showConfirmationModal(title, content, options = {}) {\n const TextElement = this.TextElement;\n const ConfirmationModal = this.ConfirmationModal;\n const ModalStack = this.ModalStack;\n if (!this.ModalStack || !this.ConfirmationModal || !this.TextElement) return this.alert(title, content);\n const {\n onConfirm,\n onCancel,\n confirmText,\n cancelText,\n danger = false\n } = options;\n if (typeof content == \"string\") content = TextElement.default({\n color: TextElement.Colors.PRIMARY,\n children: [content]\n });else if (Array.isArray(content)) content = TextElement.default({\n color: TextElement.Colors.PRIMARY,\n children: content\n });\n content = [content];\n\n const emptyFunction = () => {};\n\n ModalStack.push(function (props) {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(ConfirmationModal, Object.assign({\n header: title,\n children: content,\n red: danger,\n confirmText: confirmText ? confirmText : \"Okay\",\n cancelText: cancelText ? cancelText : \"Cancel\",\n onConfirm: onConfirm ? onConfirm : emptyFunction,\n onCancel: onCancel ? onCancel : emptyFunction\n }, props));\n });\n }\n\n static showContentErrors({\n plugins: pluginErrors = [],\n themes: themeErrors = []\n }) {\n if (!pluginErrors || !themeErrors || !this.shouldShowContentErrors) return;\n if (!pluginErrors.length && !themeErrors.length) return;\n const modal = $(`<div class=\"bd-modal-wrapper theme-dark\">\n <div class=\"bd-backdrop backdrop-1wrmKB\"></div>\n <div class=\"bd-modal bd-content-modal modal-1UGdnR\">\n <div class=\"bd-modal-inner inner-1JeGVc\">\n <div class=\"header header-1R_AjF\"><div class=\"title\">Content Errors</div></div>\n <div class=\"bd-modal-body\">\n <div class=\"tab-bar-container\">\n <div class=\"tab-bar TOP\">\n <div class=\"tab-bar-item\">Plugins</div>\n <div class=\"tab-bar-item\">Themes</div>\n </div>\n </div>\n <div class=\"table-header\">\n <div class=\"table-column column-name\">Name</div>\n <div class=\"table-column column-message\">Message</div>\n <div class=\"table-column column-error\">Error</div>\n </div>\n <div class=\"scroller-wrap fade\">\n <div class=\"scroller\">\n\n </div>\n </div>\n </div>\n <div class=\"footer footer-2yfCgX\">\n <button type=\"button\">Okay</button>\n </div>\n </div>\n </div>\n </div>`);\n\n const generateTab = function (errors) {\n const container = $(`<div class=\"errors\">`);\n\n for (const err of errors) {\n const error = $(`<div class=\"error\">\n <div class=\"table-column column-name\">${err.name ? err.name : err.file}</div>\n <div class=\"table-column column-message\">${err.message}</div>\n <div class=\"table-column column-error\"><a class=\"error-link\" href=\"\">${err.error ? err.error.message : \"\"}</a></div>\n </div>`);\n container.append(error);\n\n if (err.error) {\n error.find(\"a\").on(\"click\", e => {\n e.preventDefault();\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Utilities\"].err(\"ContentManager\", `Error details for ${err.name ? err.name : err.file}.`, err.error);\n });\n }\n }\n\n return container;\n };\n\n const tabs = [generateTab(pluginErrors), generateTab(themeErrors)];\n modal.find(\".tab-bar-item\").on(\"click\", e => {\n e.preventDefault();\n modal.find(\".tab-bar-item\").removeClass(\"selected\");\n $(e.target).addClass(\"selected\");\n modal.find(\".scroller\").empty().append(tabs[$(e.target).index()]);\n });\n modal.find(\".footer button\").on(\"click\", () => {\n modal.addClass(\"closing\");\n setTimeout(() => {\n modal.remove();\n }, 300);\n });\n modal.find(\".bd-backdrop\").on(\"click\", () => {\n modal.addClass(\"closing\");\n setTimeout(() => {\n modal.remove();\n }, 300);\n });\n modal.appendTo(\"#app-mount\");\n if (pluginErrors.length) modal.find(\".tab-bar-item\")[0].click();else modal.find(\".tab-bar-item\")[1].click();\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL21vZGFscy5qcz8zYWIyIl0sIm5hbWVzIjpbIk1vZGFscyIsInNob3VsZFNob3dDb250ZW50RXJyb3JzIiwiU2V0dGluZ3MiLCJnZXQiLCJNb2RhbFN0YWNrIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeVByb3BzIiwiQWxlcnRNb2RhbCIsImdldEJ5UHJvdG90eXBlcyIsIlRleHRFbGVtZW50IiwiQ29uZmlybWF0aW9uTW9kYWwiLCJnZXRNb2R1bGUiLCJtIiwiZGVmYXVsdFByb3BzIiwia2V5IiwiZGVmYXVsdCIsInRpdGxlIiwiY29udGVudCIsIm1vZGFsIiwiJCIsImZpbmQiLCJvbiIsImFkZENsYXNzIiwic2V0VGltZW91dCIsInJlbW92ZSIsImFwcGVuZFRvIiwiYWxlcnQiLCJwdXNoIiwicHJvcHMiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJPYmplY3QiLCJhc3NpZ24iLCJib2R5Iiwic2hvd0NvbmZpcm1hdGlvbk1vZGFsIiwib3B0aW9ucyIsIm9uQ29uZmlybSIsIm9uQ2FuY2VsIiwiY29uZmlybVRleHQiLCJjYW5jZWxUZXh0IiwiZGFuZ2VyIiwiY29sb3IiLCJDb2xvcnMiLCJQUklNQVJZIiwiY2hpbGRyZW4iLCJBcnJheSIsImlzQXJyYXkiLCJlbXB0eUZ1bmN0aW9uIiwiaGVhZGVyIiwicmVkIiwic2hvd0NvbnRlbnRFcnJvcnMiLCJwbHVnaW5zIiwicGx1Z2luRXJyb3JzIiwidGhlbWVzIiwidGhlbWVFcnJvcnMiLCJsZW5ndGgiLCJnZW5lcmF0ZVRhYiIsImVycm9ycyIsImNvbnRhaW5lciIsImVyciIsImVycm9yIiwibmFtZSIsImZpbGUiLCJtZXNzYWdlIiwiYXBwZW5kIiwiZSIsInByZXZlbnREZWZhdWx0IiwiVXRpbGl0aWVzIiwidGFicyIsInJlbW92ZUNsYXNzIiwidGFyZ2V0IiwiZW1wdHkiLCJpbmRleCIsImNsaWNrIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtB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Q0FBQyxNQUFNO0FBQUVMLGFBQUssQ0FBQ00sTUFBTjtBQUFpQixPQUExQixFQUE0QixHQUE1QixDQUFWO0FBQ0gsS0FIRDtBQUlBTixTQUFLLENBQUNPLFFBQU4sQ0FBZSxZQUFmO0FBQ0EsUUFBSTJCLFlBQVksQ0FBQ0csTUFBakIsRUFBeUJyQyxLQUFLLENBQUNFLElBQU4sQ0FBVyxlQUFYLEVBQTRCLENBQTVCLEVBQStCcUQsS0FBL0IsR0FBekIsS0FDS3ZELEtBQUssQ0FBQ0UsSUFBTixDQUFXLGVBQVgsRUFBNEIsQ0FBNUIsRUFBK0JxRCxLQUEvQjtBQUNSOztBQS9KdUIiLCJmaWxlIjoiLi9zcmMvdWkvbW9kYWxzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtVdGlsaXRpZXMsIFdlYnBhY2tNb2R1bGVzLCBSZWFjdCwgU2V0dGluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb2RhbHMge1xyXG5cclxuICAgIHN0YXRpYyBnZXQgc2hvdWxkU2hvd0NvbnRlbnRFcnJvcnMoKSB7cmV0dXJuIFNldHRpbmdzLmdldChcInNldHRpbmdzXCIsIFwiY29udGVudFwiLCBcImNvbnRlbnRFcnJvcnNcIik7fVxyXG5cclxuICAgIHN0YXRpYyBnZXQgTW9kYWxTdGFjaygpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcInB1c2hcIiwgXCJ1cGRhdGVcIiwgXCJwb3BcIiwgXCJwb3BXaXRoS2V5XCIpO31cclxuICAgIHN0YXRpYyBnZXQgQWxlcnRNb2RhbCgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0QnlQcm90b3R5cGVzKFwiaGFuZGxlQ2FuY2VsXCIsIFwiaGFuZGxlU3VibWl0XCIsIFwiaGFuZGxlTWlub3JDb25maXJtXCIpO31cclxuICAgIHN0YXRpYyBnZXQgVGV4dEVsZW1lbnQoKSB7cmV0dXJuIFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJTaXplc1wiLCBcIldlaWdodHNcIik7fVxyXG4gICAgc3RhdGljIGdldCBDb25maXJtYXRpb25Nb2RhbCgpIHtyZXR1cm4gV2VicGFja01vZHVsZXMuZ2V0TW9kdWxlKG0gPT4gbS5kZWZhdWx0UHJvcHMgJiYgbS5rZXkgJiYgbS5rZXkoKSA9PSBcImNvbmZpcm0tbW9kYWxcIik7fVxyXG5cclxuICAgIHN0YXRpYyBkZWZhdWx0KHRpdGxlLCBjb250ZW50KSB7XHJcbiAgICAgICAgY29uc3QgbW9kYWwgPSAkKGA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtd3JhcHBlciB0aGVtZS1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtYmFja2Ryb3AgYmFja2Ryb3AtMXdybUtCXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwgbW9kYWwtMVVHZG5SXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJkLW1vZGFsLWlubmVyIGlubmVyLTFKZUdWY1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyIGhlYWRlci0xUl9BakZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPiR7dGl0bGV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtbW9kYWwtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbGVyLXdyYXAgZmFkZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXIgZm9vdGVyLTJ5ZkNnWFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCI+T2theTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5gKTtcclxuICAgICAgICBtb2RhbC5maW5kKFwiLmZvb3RlciBidXR0b25cIikub24oXCJjbGlja1wiLCAoKSA9PiB7XHJcbiAgICAgICAgbW9kYWwuYWRkQ2xhc3MoXCJjbG9zaW5nXCIpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBtb2RhbC5yZW1vdmUoKTsgfSwgMzAwKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBtb2RhbC5maW5kKFwiLmJkLWJhY2tkcm9wXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xyXG4gICAgICAgIG1vZGFsLmFkZENsYXNzKFwiY2xvc2luZ1wiKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgbW9kYWwucmVtb3ZlKCk7IH0sIDMwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbW9kYWwuYXBwZW5kVG8oXCIjYXBwLW1vdW50XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBhbGVydCh0aXRsZSwgY29udGVudCkge1xyXG4gICAgICAgIGlmICh0aGlzLk1vZGFsU3RhY2sgJiYgdGhpcy5BbGVydE1vZGFsKSByZXR1cm4gdGhpcy5kZWZhdWx0KHRpdGxlLCBjb250ZW50KTtcclxuICAgICAgICB0aGlzLk1vZGFsU3RhY2sucHVzaChmdW5jdGlvbihwcm9wcykge1xyXG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudCh0aGlzLkFsZXJ0TW9kYWwsIE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgICAgICAgICAgYm9keTogY29udGVudCxcclxuICAgICAgICAgICAgfSwgcHJvcHMpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3dzIGEgZ2VuZXJpYyBidXQgdmVyeSBjdXN0b21pemFibGUgY29uZmlybWF0aW9uIG1vZGFsIHdpdGggb3B0aW9uYWwgY29uZmlybSBhbmQgY2FuY2VsIGNhbGxiYWNrcy5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZSAtIHRpdGxlIG9mIHRoZSBtb2RhbFxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfFJlYWN0RWxlbWVudHxBcnJheTxzdHJpbmd8UmVhY3RFbGVtZW50Pil9IGNoaWxkcmVuIC0gYSBzaW5nbGUgb3IgbWl4ZWQgYXJyYXkgb2YgcmVhY3QgZWxlbWVudHMgYW5kIHN0cmluZ3MuIEV2ZXJ5dGhpbmcgaXMgd3JhcHBlZCBpbiBEaXNjb3JkJ3MgYFRleHRFbGVtZW50YCBjb21wb25lbnQgc28gc3RyaW5ncyB3aWxsIHNob3cgYW5kIHJlbmRlciBwcm9wZXJseS5cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gLSBvcHRpb25zIHRvIG1vZGlmeSB0aGUgbW9kYWxcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZGFuZ2VyPWZhbHNlXSAtIHdoZXRoZXIgdGhlIG1haW4gYnV0dG9uIHNob3VsZCBiZSByZWQgb3Igbm90XHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuY29uZmlybVRleHQ9T2theV0gLSB0ZXh0IGZvciB0aGUgY29uZmlybWF0aW9uL3N1Ym1pdCBidXR0b25cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5jYW5jZWxUZXh0PUNhbmNlbF0gLSB0ZXh0IGZvciB0aGUgY2FuY2VsIGJ1dHRvblxyXG4gICAgICogQHBhcmFtIHtjYWxsYWJsZX0gW29wdGlvbnMub25Db25maXJtPU5PT1BdIC0gY2FsbGJhY2sgdG8gb2NjdXIgd2hlbiBjbGlja2luZyB0aGUgc3VibWl0IGJ1dHRvblxyXG4gICAgICogQHBhcmFtIHtjYWxsYWJsZX0gW29wdGlvbnMub25DYW5jZWw9Tk9PUF0gLSBjYWxsYmFjayB0byBvY2N1ciB3aGVuIGNsaWNraW5nIHRoZSBjYW5jZWwgYnV0dG9uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBzaG93Q29uZmlybWF0aW9uTW9kYWwodGl0bGUsIGNvbnRlbnQsIG9wdGlvbnMgPSB7fSkge1xyXG4gICAgICAgIGNvbnN0IFRleHRFbGVtZW50ID0gdGhpcy5UZXh0RWxlbWVudDtcclxuICAgICAgICBjb25zdCBDb25maXJtYXRpb25Nb2RhbCA9IHRoaXMuQ29uZmlybWF0aW9uTW9kYWw7XHJcbiAgICAgICAgY29uc3QgTW9kYWxTdGFjayA9IHRoaXMuTW9kYWxTdGFjaztcclxuICAgICAgICBpZiAoIXRoaXMuTW9kYWxTdGFjayB8fCAhdGhpcy5Db25maXJtYXRpb25Nb2RhbCB8fCAhdGhpcy5UZXh0RWxlbWVudCkgcmV0dXJuIHRoaXMuYWxlcnQodGl0bGUsIGNvbnRlbnQpO1xyXG5cclxuICAgICAgICBjb25zdCB7b25Db25maXJtLCBvbkNhbmNlbCwgY29uZmlybVRleHQsIGNhbmNlbFRleHQsIGRhbmdlciA9IGZhbHNlfSA9IG9wdGlvbnM7XHJcbiAgICAgICAgaWYgKHR5cGVvZihjb250ZW50KSA9PSBcInN0cmluZ1wiKSBjb250ZW50ID0gVGV4dEVsZW1lbnQuZGVmYXVsdCh7Y29sb3I6IFRleHRFbGVtZW50LkNvbG9ycy5QUklNQVJZLCBjaGlsZHJlbjogW2NvbnRlbnRdfSk7XHJcbiAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjb250ZW50KSkgY29udGVudCA9IFRleHRFbGVtZW50LmRlZmF1bHQoe2NvbG9yOiBUZXh0RWxlbWVudC5Db2xvcnMuUFJJTUFSWSwgY2hpbGRyZW46IGNvbnRlbnR9KTtcclxuICAgICAgICBjb250ZW50ID0gW2NvbnRlbnRdO1xyXG5cclxuICAgICAgICBjb25zdCBlbXB0eUZ1bmN0aW9uID0gKCkgPT4ge307XHJcbiAgICAgICAgTW9kYWxTdGFjay5wdXNoKGZ1bmN0aW9uKHByb3BzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KENvbmZpcm1hdGlvbk1vZGFsLCBPYmplY3QuYXNzaWduKHtcclxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogY29udGVudCxcclxuICAgICAgICAgICAgICAgIHJlZDogZGFuZ2VyLFxyXG4gICAgICAgICAgICAgICAgY29uZmlybVRleHQ6IGNvbmZpcm1UZXh0ID8gY29uZmlybVRleHQgOiBcIk9rYXlcIixcclxuICAgICAgICAgICAgICAgIGNhbmNlbFRleHQ6IGNhbmNlbFRleHQgPyBjYW5jZWxUZXh0IDogXCJDYW5jZWxcIixcclxuICAgICAgICAgICAgICAgIG9uQ29uZmlybTogb25Db25maXJtID8gb25Db25maXJtIDogZW1wdHlGdW5jdGlvbixcclxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsOiBvbkNhbmNlbCA/IG9uQ2FuY2VsIDogZW1wdHlGdW5jdGlvblxyXG4gICAgICAgICAgICB9LCBwcm9wcykpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBzaG93Q29udGVudEVycm9ycyh7cGx1Z2luczogcGx1Z2luRXJyb3JzID0gW10sIHRoZW1lczogdGhlbWVFcnJvcnMgPSBbXX0pIHtcclxuICAgICAgICBpZiAoIXBsdWdpbkVycm9ycyB8fCAhdGhlbWVFcnJvcnMgfHwgIXRoaXMuc2hvdWxkU2hvd0NvbnRlbnRFcnJvcnMpIHJldHVybjtcclxuICAgICAgICBpZiAoIXBsdWdpbkVycm9ycy5sZW5ndGggJiYgIXRoZW1lRXJyb3JzLmxlbmd0aCkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IG1vZGFsID0gJChgPGRpdiBjbGFzcz1cImJkLW1vZGFsLXdyYXBwZXIgdGhlbWUtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmQtYmFja2Ryb3AgYmFja2Ryb3AtMXdybUtCXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZC1tb2RhbCBiZC1jb250ZW50LW1vZGFsIG1vZGFsLTFVR2RuUlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJkLW1vZGFsLWlubmVyIGlubmVyLTFKZUdWY1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXIgaGVhZGVyLTFSX0FqRlwiPjxkaXYgY2xhc3M9XCJ0aXRsZVwiPkNvbnRlbnQgRXJyb3JzPC9kaXY+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJkLW1vZGFsLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1iYXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWJhciBUT1BcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWJhci1pdGVtXCI+UGx1Z2luczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItYmFyLWl0ZW1cIj5UaGVtZXM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBjb2x1bW4tbmFtZVwiPk5hbWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gY29sdW1uLW1lc3NhZ2VcIj5NZXNzYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIGNvbHVtbi1lcnJvclwiPkVycm9yPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsZXItd3JhcCBmYWRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsZXJcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlciBmb290ZXItMnlmQ2dYXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiPk9rYXk8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gKTtcclxuXHJcbiAgICAgICAgY29uc3QgZ2VuZXJhdGVUYWIgPSBmdW5jdGlvbihlcnJvcnMpIHtcclxuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gJChgPGRpdiBjbGFzcz1cImVycm9yc1wiPmApO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVyciBvZiBlcnJvcnMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gJChgPGRpdiBjbGFzcz1cImVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gY29sdW1uLW5hbWVcIj4ke2Vyci5uYW1lID8gZXJyLm5hbWUgOiBlcnIuZmlsZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBjb2x1bW4tbWVzc2FnZVwiPiR7ZXJyLm1lc3NhZ2V9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gY29sdW1uLWVycm9yXCI+PGEgY2xhc3M9XCJlcnJvci1saW5rXCIgaHJlZj1cIlwiPiR7ZXJyLmVycm9yID8gZXJyLmVycm9yLm1lc3NhZ2UgOiBcIlwifTwvYT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gKTtcclxuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmQoZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVyci5lcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGVycm9yLmZpbmQoXCJhXCIpLm9uKFwiY2xpY2tcIiwgKGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXRpZXMuZXJyKFwiQ29udGVudE1hbmFnZXJcIiwgYEVycm9yIGRldGFpbHMgZm9yICR7ZXJyLm5hbWUgPyBlcnIubmFtZSA6IGVyci5maWxlfS5gLCBlcnIuZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBjb250YWluZXI7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgdGFicyA9IFtnZW5lcmF0ZVRhYihwbHVnaW5FcnJvcnMpLCBnZW5lcmF0ZVRhYih0aGVtZUVycm9ycyldO1xyXG5cclxuICAgICAgICBtb2RhbC5maW5kKFwiLnRhYi1iYXItaXRlbVwiKS5vbihcImNsaWNrXCIsIChlKSA9PiB7XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgbW9kYWwuZmluZChcIi50YWItYmFyLWl0ZW1cIikucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcclxuICAgICAgICAgICAgJChlLnRhcmdldCkuYWRkQ2xhc3MoXCJzZWxlY3RlZFwiKTtcclxuICAgICAgICAgICAgbW9kYWwuZmluZChcIi5zY3JvbGxlclwiKS5lbXB0eSgpLmFwcGVuZCh0YWJzWyQoZS50YXJnZXQpLmluZGV4KCldKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgbW9kYWwuZmluZChcIi5mb290ZXIgYnV0dG9uXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICBtb2RhbC5hZGRDbGFzcyhcImNsb3NpbmdcIik7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBtb2RhbC5yZW1vdmUoKTsgfSwgMzAwKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBtb2RhbC5maW5kKFwiLmJkLWJhY2tkcm9wXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICBtb2RhbC5hZGRDbGFzcyhcImNsb3NpbmdcIik7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBtb2RhbC5yZW1vdmUoKTsgfSwgMzAwKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBtb2RhbC5hcHBlbmRUbyhcIiNhcHAtbW91bnRcIik7XHJcbiAgICAgICAgaWYgKHBsdWdpbkVycm9ycy5sZW5ndGgpIG1vZGFsLmZpbmQoXCIudGFiLWJhci1pdGVtXCIpWzBdLmNsaWNrKCk7XHJcbiAgICAgICAgZWxzZSBtb2RhbC5maW5kKFwiLnRhYi1iYXItaXRlbVwiKVsxXS5jbGljaygpO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/modals.js\n");
/***/ }),
/***/ "./src/ui/publicservers/card.js":
/*!**************************************!*\
!*** ./src/ui/publicservers/card.js ***!
\**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ServerCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass ServerCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n if (!this.props.server.iconUrl) this.props.server.iconUrl = this.props.fallback;\n this.state = {\n imageError: false,\n joined: this.props.guildList.includes(this.props.server.identifier)\n };\n }\n\n render() {\n const {\n server\n } = this.props;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", // cardPrimary-1Hv-to\n {\n className: `card-3Qj_Yx cardPrimary-1Hv-to marginBottom8-AtZOdT bd-server-card${server.pinned ? \" bd-server-card-pinned\" : \"\"}`\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"img\", {\n ref: \"img\",\n className: \"bd-server-image\",\n src: server.iconUrl,\n onError: this.handleError.bind(this)\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"flexChild-faoVW3 bd-server-content\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"flex-1xMQg5 flex-1O1GKY horizontal-1ae9ci horizontal-2EEEnY directionRow-3v3tfG noWrap-3jynv6 bd-server-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"h5\", {\n className: \"h5-18_1nd defaultColor-1_ajX0 margin-reset bd-server-name\"\n }, server.name), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"h5\", {\n className: \"h5-18_1nd defaultColor-1_ajX0 margin-reset bd-server-member-count\"\n }, server.members, \" Members\")), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"flex-1xMQg5 flex-1O1GKY horizontal-1ae9ci horizontal-2EEEnY directionRow-3v3tfG noWrap-3jynv6\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"scrollerWrap-2lJEkd scrollerThemed-2oenus themeGhostHairline-DBD-2d scrollerFade-1Ijw5y bd-server-description-container\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"scroller-2FKFPG scroller bd-server-description\"\n }, server.description))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"flex-1xMQg5 flex-1O1GKY horizontal-1ae9ci horizontal-2EEEnY directionRow-3v3tfG noWrap-3jynv6 bd-server-footer\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"flexChild-faoVW3 bd-server-tags\",\n style: {\n flex: \"1 1 auto\"\n }\n }, server.categories.join(\", \")), this.state.joined && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n type: \"button\",\n className: \"button-38aScr lookFilled-1Gx00P colorBrand-3pXr91 sizeMin-1mJd1x grow-q77ONN colorGreen-29iAKY\",\n style: {\n minHeight: \"12px\",\n marginTop: \"4px\",\n backgroundColor: \"#3ac15c\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-button-contents\"\n }, \"Joined\")), server.error && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n type: \"button\",\n className: \"button-38aScr lookFilled-1Gx00P colorBrand-3pXr91 sizeMin-1mJd1x grow-q77ONN disabled-9aF2ug\",\n style: {\n minHeight: \"12px\",\n marginTop: \"4px\",\n backgroundColor: \"#c13a3a\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-button-contents\"\n }, \"Error\")), !server.error && !this.state.joined && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n type: \"button\",\n className: \"button-38aScr lookFilled-1Gx00P colorBrand-3pXr91 sizeMin-1mJd1x grow-q77ONN\",\n style: {\n minHeight: \"12px\",\n marginTop: \"4px\"\n },\n onClick: () => {\n this.join();\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-button-contents\"\n }, \"Join\")))) // )\n );\n }\n\n handleError() {\n this.props.server.iconUrl = this.props.fallback;\n this.setState({\n imageError: true\n });\n }\n\n join() {\n this.props.join(this); //this.setState({joined: true});\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvY2FyZC5qcz9mMjgxIl0sIm5hbWVzIjpbIlNlcnZlckNhcmQiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzZXJ2ZXIiLCJpY29uVXJsIiwiZmFsbGJhY2siLCJzdGF0ZSIsImltYWdlRXJyb3IiLCJqb2luZWQiLCJndWlsZExpc3QiLCJpbmNsdWRlcyIsImlkZW50aWZpZXIiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwicGlubmVkIiwicmVmIiwic3JjIiwib25FcnJvciIsImhhbmRsZUVycm9yIiwiYmluZCIsIm5hbWUiLCJtZW1iZXJzIiwiZGVzY3JpcHRpb24iLCJzdHlsZSIsImZsZXgiLCJjYXRlZ29yaWVzIiwiam9pbiIsInR5cGUiLCJtaW5IZWlnaHQiLCJtYXJnaW5Ub3AiLCJiYWNrZ3JvdW5kQ29sb3IiLCJlcnJvciIsIm9uQ2xpY2siLCJzZXRTdGF0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFZSxNQUFNQSxVQUFOLFNBQXlCQyw2Q0FBSyxDQUFDQyxTQUEvQixDQUF5QztBQUNwREMsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsUUFBSSxDQUFDLEtBQUtBLEtBQUwsQ0FBV0MsTUFBWCxDQUFrQkMsT0FBdkIsRUFBZ0MsS0FBS0YsS0FBTCxDQUFXQyxNQUFYLENBQWtCQyxPQUFsQixHQUE0QixLQUFLRixLQUFMLENBQVdHLFFBQXZDO0FBQ2hDLFNBQUtDLEtBQUwsR0FBYTtBQUNUQyxnQkFBVSxFQUFFLEtBREg7QUFFVEMsWUFBTSxFQUFFLEtBQUtOLEtBQUwsQ0FBV08sU0FBWCxDQUFxQkMsUUFBckIsQ0FBOEIsS0FBS1IsS0FBTCxDQUFXQyxNQUFYLENBQWtCUSxVQUFoRDtBQUZDLEtBQWI7QUFJSDs7QUFFREMsUUFBTSxHQUFHO0FBQ0wsVUFBTTtBQUFDVDtB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QUFLLENBQUNjLGFBQU4sQ0FDbkMsUUFEbUMsRUFFbkM7QUFBQ2UsVUFBSSxFQUFFLFFBQVA7QUFBaUJkLGVBQVMsRUFBRSw4RUFBNUI7QUFBNEdVLFdBQUssRUFBRTtBQUFDSyxpQkFBUyxFQUFFLE1BQVo7QUFBb0JDLGlCQUFTLEVBQUU7QUFBL0IsT0FBbkg7QUFBMEpHLGFBQU8sRUFBRSxNQUFNO0FBQUMsYUFBS04sSUFBTDtBQUFhO0FBQXZMLEtBRm1DLEVBR25DNUIsNkNBQUssQ0FBQ2MsYUFBTixDQUNJLEtBREosRUFFSTtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUZKLEVBR0ksTUFISixDQUhtQyxDQTFCM0MsQ0EvQkosQ0FKRCxDQXdFSDtBQXhFRyxLQUFQO0FBMEVIOztBQUVESyxhQUFXLEdBQUc7QUFDVixTQUFLakIsS0FBTCxDQUFXQyxNQUFYLENBQWtCQyxPQUFsQixHQUE0QixLQUFLRixLQUFMLENBQVdHLFFBQXZDO0FBQ0EsU0FBSzZCLFFBQUwsQ0FBYztBQUFDM0IsZ0JBQVUsRUFBRTtBQUFiLEtBQWQ7QUFDSDs7QUFFRG9CLE1BQUksR0FBRztBQUNILFNBQUt6QixLQUFMLENBQVd5QixJQUFYLENBQWdCLElBQWhCLEVBREcsQ0FFSDtBQUNIOztBQWhHbUQiLCJmaWxlIjoiLi9zcmMvdWkvcHVibGljc2VydmVycy9jYXJkLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdH0gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNlcnZlckNhcmQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLnNlcnZlci5pY29uVXJsKSB0aGlzLnByb3BzLnNlcnZlci5pY29uVXJsID0gdGhpcy5wcm9wcy5mYWxsYmFjaztcclxuICAgICAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAgICAgICBpbWFnZUVycm9yOiBmYWxzZSxcclxuICAgICAgICAgICAgam9pbmVkOiB0aGlzLnByb3BzLmd1aWxkTGlzdC5pbmNsdWRlcyh0aGlzLnByb3BzLnNlcnZlci5pZGVudGlmaWVyKVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHtzZXJ2ZXJ9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIiwgLy8gY2FyZFByaW1hcnktMUh2LXRvXHJcbiAgICAgICAgICAgIHtjbGFzc05hbWU6IGBjYXJkLTNRal9ZeCBjYXJkUHJpbWFyeS0xSHYtdG8gbWFyZ2luQm90dG9tOC1BdFpPZFQgYmQtc2VydmVyLWNhcmQke3NlcnZlci5waW5uZWQgPyBcIiBiZC1zZXJ2ZXItY2FyZC1waW5uZWRcIiA6IFwiXCJ9YH0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW1nXCIsIHtyZWY6IFwiaW1nXCIsIGNsYXNzTmFtZTogXCJiZC1zZXJ2ZXItaW1hZ2VcIiwgc3JjOiBzZXJ2ZXIuaWNvblVybCwgb25FcnJvcjogdGhpcy5oYW5kbGVFcnJvci5iaW5kKHRoaXMpfSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJmbGV4Q2hpbGQtZmFvVlczIGJkLXNlcnZlci1jb250ZW50XCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwiZmxleC0xeE1RZzUgZmxleC0xTzFHS1kgaG9yaXpvbnRhbC0xYWU5Y2kgaG9yaXpvbnRhbC0yRUVFblkgZGlyZWN0aW9uUm93LTN2M3RmRyBub1dyYXAtM2p5bnY2IGJkLXNlcnZlci1oZWFkZXJcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImg1XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcImg1LTE4XzFuZCBkZWZhdWx0Q29sb3ItMV9halgwIG1hcmdpbi1yZXNldCBiZC1zZXJ2ZXItbmFtZVwifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlci5uYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImg1XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcImg1LTE4XzFuZCBkZWZhdWx0Q29sb3ItMV9halgwIG1hcmdpbi1yZXNldCBiZC1zZXJ2ZXItbWVtYmVyLWNvdW50XCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyLm1lbWJlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBNZW1iZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJmbGV4LTF4TVFnNSBmbGV4LTFPMUdLWSBob3Jpem9udGFsLTFhZTljaSBob3Jpem9udGFsLTJFRUVuWSBkaXJlY3Rpb25Sb3ctM3YzdGZHIG5vV3JhcC0zanludjZcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJzY3JvbGxlcldyYXAtMmxKRWtkIHNjcm9sbGVyVGhlbWVkLTJvZW51cyB0aGVtZUdob3N0SGFpcmxpbmUtREJELTJkIHNjcm9sbGVyRmFkZS0xSWp3NXkgYmQtc2VydmVyLWRlc2NyaXB0aW9uLWNvbnRhaW5lclwifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInNjcm9sbGVyLTJGS0ZQRyBzY3JvbGxlciBiZC1zZXJ2ZXItZGVzY3JpcHRpb25cIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlci5kZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcImZsZXgtMXhNUWc1IGZsZXgtMU8xR0tZIGhvcml6b250YWwtMWFlOWNpIGhvcml6b250YWwtMkVFRW5ZIGRpcmVjdGlvblJvdy0zdjN0Zkcgbm9XcmFwLTNqeW52NiBiZC1zZXJ2ZXItZm9vdGVyXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwiZmxleENoaWxkLWZhb1ZXMyBiZC1zZXJ2ZXItdGFnc1wiLCBzdHlsZToge2ZsZXg6IFwiMSAxIGF1dG9cIn19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyLmNhdGVnb3JpZXMuam9pbihcIiwgXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUuam9pbmVkICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImJ1dHRvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3R5cGU6IFwiYnV0dG9uXCIsIGNsYXNzTmFtZTogXCJidXR0b24tMzhhU2NyIGxvb2tGaWxsZWQtMUd4MDBQIGNvbG9yQnJhbmQtM3BYcjkxIHNpemVNaW4tMW1KZDF4IGdyb3ctcTc3T05OIGNvbG9yR3JlZW4tMjlpQUtZXCIsIHN0eWxlOiB7bWluSGVpZ2h0OiBcIjEycHhcIiwgbWFyZ2luVG9wOiBcIjRweFwiLCBiYWNrZ3JvdW5kQ29sb3I6IFwiIzNhYzE1Y1wifX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS1idXR0b24tY29udGVudHNcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJKb2luZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIuZXJyb3IgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYnV0dG9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dHlwZTogXCJidXR0b25cIiwgY2xhc3NOYW1lOiBcImJ1dHRvbi0zOGFTY3IgbG9va0ZpbGxlZC0xR3gwMFAgY29sb3JCcmFuZC0zcFhyOTEgc2l6ZU1pbi0xbUpkMXggZ3Jvdy1xNzdPTk4gZGlzYWJsZWQtOWFGMnVnXCIsIHN0eWxlOiB7bWluSGVpZ2h0OiBcIjEycHhcIiwgbWFyZ2luVG9wOiBcIjRweFwiLCBiYWNrZ3JvdW5kQ29sb3I6IFwiI2MxM2EzYVwifX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS1idXR0b24tY29udGVudHNcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFcnJvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICFzZXJ2ZXIuZXJyb3IgJiYgIXRoaXMuc3RhdGUuam9pbmVkICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImJ1dHRvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3R5cGU6IFwiYnV0dG9uXCIsIGNsYXNzTmFtZTogXCJidXR0b24tMzhhU2NyIGxvb2tGaWxsZWQtMUd4MDBQIGNvbG9yQnJhbmQtM3BYcjkxIHNpemVNaW4tMW1KZDF4IGdyb3ctcTc3T05OXCIsIHN0eWxlOiB7bWluSGVpZ2h0OiBcIjEycHhcIiwgbWFyZ2luVG9wOiBcIjRweFwifSwgb25DbGljazogKCkgPT4ge3RoaXMuam9pbigpO319LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwidWktYnV0dG9uLWNvbnRlbnRzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiSm9pblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC8vIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUVycm9yKCkge1xyXG4gICAgICAgIHRoaXMucHJvcHMuc2VydmVyLmljb25VcmwgPSB0aGlzLnByb3BzLmZhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2ltYWdlRXJyb3I6IHRydWV9KTtcclxuICAgIH1cclxuXHJcbiAgICBqb2luKCkge1xyXG4gICAgICAgIHRoaXMucHJvcHMuam9pbih0aGlzKTtcclxuICAgICAgICAvL3RoaXMuc2V0U3RhdGUoe2pvaW5lZDogdHJ1ZX0pO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/publicservers/card.js\n");
/***/ }),
/***/ "./src/ui/publicservers/exitbutton.js":
/*!********************************************!*\
!*** ./src/ui/publicservers/exitbutton.js ***!
\********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Tools; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_close__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/close */ \"./src/ui/icons/close.jsx\");\n\n\nclass Tools extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.onClick = this.onClick.bind(this);\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"tools-container toolsContainer-1edPuj\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"tools tools-3-3s-N\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"container-1sFeqf\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"btn-close closeButton-1tv5uR\",\n onClick: this.onClick\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_close__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"esc-text keybind-KpFkfr\"\n }, \"ESC\"))));\n }\n\n onClick() {\n if (this.props.onClick) {\n this.props.onClick();\n }\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvZXhpdGJ1dHRvbi5qcz9lMjY1Il0sIm5hbWVzIjpbIlRvb2xzIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwib25DbGljayIsImJpbmQiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiQ2xvc2VCdXR0b24iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVlLE1BQU1BLEtBQU4sU0FBb0JDLDZDQUFLLENBQUNDLFNBQTFCLENBQW9DO0FBRS9DQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxTQUFLQyxPQUFMLEdBQWUsS0FBS0EsT0FBTCxDQUFhQyxJQUFiLENBQWtCLElBQWxCLENBQWY7QUFDSDs7QUFFREMsUUFBTSxHQUFHO0FBQ0wsV0FBT04sNkNBQUssQ0FBQ08sYUFBTixDQUFvQixLQUFwQixFQUEyQjtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUEzQixFQUNIUiw2Q0FBSyxDQUFDTyxhQUFOLENBQW9CLEtBQXBCLEVBQTJCO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBQTNCLEVBQ0lSLDZDQUFLLENBQUNPLGFBQU4sQ0FBb0IsS0FBcEIsRUFBMkI7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FBM0IsRUFDSVIsNkNBQUssQ0FBQ08sYUFBTixDQUFvQixLQUFwQixFQUNJO0FBQUNDLGVBQVMsRUFBRSw4QkFBWjtBQUE0Q0osYUFBTyxFQUFFLEtBQUtBO0FBQTFELEtBREosRUFFSUosNkNBQUssQ0FBQ08sYUFBTixDQUFvQkUsb0RBQXBCLEVBQWlDLElBQWpDLENBRkosQ0FESixFQUtJVCw2Q0FBSyxDQUFDTyxhQUFOLENBQ0ksS0FESixFQUVJO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBRkosRUFHSSxLQUhKLENBTEosQ0FESixDQURHLENBQVA7QUFlSDs7QUFFREosU0FBTyxHQUFHO0FBQ04sUUFBSSxLQUFLRCxLQUFMLENBQVdDLE9BQWYsRUFBd0I7QUFDcEIsV0FBS0QsS0FBTCxDQUFXQyxPQUFYO0FBQ0g7QUFDSjs7QUE3QjhDIiwiZmlsZSI6Ii4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvZXhpdGJ1dHRvbi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBDbG9zZUJ1dHRvbiBmcm9tIFwiLi4vaWNvbnMvY2xvc2VcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRvb2xzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICB0aGlzLm9uQ2xpY2sgPSB0aGlzLm9uQ2xpY2suYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJ0b29scy1jb250YWluZXIgdG9vbHNDb250YWluZXItMWVkUHVqXCJ9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwidG9vbHMgdG9vbHMtMy0zcy1OXCJ9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImNvbnRhaW5lci0xc0ZlcWZcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcImJ0bi1jbG9zZSBjbG9zZUJ1dHRvbi0xdHY1dVJcIiwgb25DbGljazogdGhpcy5vbkNsaWNrfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChDbG9zZUJ1dHRvbiwgbnVsbClcclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwiZXNjLXRleHQga2V5YmluZC1LcEZrZnJcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRVNDXCJcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xpY2soKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25DbGljaykge1xyXG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2xpY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/publicservers/exitbutton.js\n");
/***/ }),
/***/ "./src/ui/publicservers/menu.js":
/*!**************************************!*\
!*** ./src/ui/publicservers/menu.js ***!
\**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return PublicServers; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _exitbutton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./exitbutton */ \"./src/ui/publicservers/exitbutton.js\");\n/* harmony import */ var _tabbar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tabbar */ \"./src/ui/publicservers/tabbar.js\");\n/* harmony import */ var _settings_title__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../settings/title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _card__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./card */ \"./src/ui/publicservers/card.js\");\n\n\n\n\n\nconst AvatarDefaults = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"getUserAvatarURL\", \"DEFAULT_AVATARS\");\nconst InviteActions = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"acceptInvite\");\nconst SortedGuildStore = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"getSortedGuilds\");\nconst SettingsView = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByDisplayName(\"SettingsView\"); //SettingsView\n//onClose pop layer\n//onSetSection dispatch user settings modal set section section subsection\n//section selected one\n//sections []\n//theme dark\n\nclass PublicServers extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedCategory: \"All\",\n title: \"Loading...\",\n loading: true,\n servers: [],\n next: null,\n connection: {\n state: 0,\n user: null\n }\n };\n this.close = this.close.bind(this);\n this.changeCategory = this.changeCategory.bind(this);\n this.search = this.search.bind(this);\n this.searchKeyDown = this.searchKeyDown.bind(this);\n this.checkConnection = this.checkConnection.bind(this);\n this.join = this.join.bind(this);\n this.connect = this.connect.bind(this);\n }\n\n componentDidMount() {\n this.checkConnection();\n }\n\n close() {\n this.props.close();\n }\n\n search(query, clear) {\n $.ajax({\n method: \"GET\",\n url: `${this.endPoint}${query}${query ? \"&schema=new\" : \"?schema=new\"}`,\n success: data => {\n let servers = data.results.reduce((arr, server) => {\n server.joined = false;\n arr.push(server); // arr.push(<ServerCard server={server} join={this.join}/>);\n\n return arr;\n }, []);\n\n if (!clear) {\n servers = this.state.servers.concat(servers);\n } else {//servers.unshift(this.bdServer);\n }\n\n console.log(data);\n let end = data.size + data.from;\n data.next = `?from=${end}`;\n if (this.state.term) data.next += `&term=${this.state.term}`;\n if (this.state.selectedCategory) data.next += `&category=${this.state.selectedCategory}`;\n\n if (end >= data.total) {\n end = data.total;\n data.next = null;\n }\n\n let title = `Showing 1-${end} of ${data.total} results in ${this.state.selectedCategory}`;\n if (this.state.term) title += ` for ${this.state.term}`;\n this.setState({\n loading: false,\n title: title,\n servers: servers,\n next: data.next\n });\n\n if (clear) {//console.log(this);\n // this.refs.sbv.refs.contentScroller.scrollTop = 0;\n }\n },\n error: () => {\n this.setState({\n loading: false,\n title: \"Failed to load servers. Check console for details\"\n });\n }\n });\n }\n\n join(serverCard) {\n if (serverCard.props.pinned) return InviteActions.acceptInvite(serverCard.props.invite_code);\n $.ajax({\n method: \"GET\",\n url: `${this.joinEndPoint}/${serverCard.props.server.identifier}`,\n headers: {\n \"Accept\": \"application/json;\",\n \"Content-Type\": \"application/json;\",\n \"x-discord-token\": this.state.connection.user.accessToken\n },\n crossDomain: true,\n xhrFields: {\n withCredentials: true\n },\n success: () => {\n serverCard.setState({\n joined: true\n });\n }\n });\n }\n\n connect() {\n const options = this.windowOptions;\n options.x = Math.round(window.screenX + window.innerWidth / 2 - options.width / 2);\n options.y = Math.round(window.screenY + window.innerHeight / 2 - options.height / 2);\n this.joinWindow = new (window.require(\"electron\").remote.BrowserWindow)(options);\n const url = \"https://auth.discordservers.com/connect?scopes=guilds.join&previousUrl=https://auth.discordservers.com/info\";\n this.joinWindow.webContents.on(\"did-navigate\", (event, navUrl) => {\n if (navUrl != \"https://auth.discordservers.com/info\") return;\n this.joinWindow.close();\n this.checkConnection();\n });\n this.joinWindow.loadURL(url);\n }\n\n get windowOptions() {\n return {\n width: 500,\n height: 550,\n backgroundColor: \"#282b30\",\n show: true,\n resizable: false,\n maximizable: false,\n minimizable: false,\n alwaysOnTop: true,\n frame: false,\n center: false,\n webPreferences: {\n nodeIntegration: false\n }\n };\n }\n\n get bdServer() {\n const server = {\n name: \"BetterDiscord\",\n online: \"7500+\",\n members: \"20000+\",\n categories: [\"community\", \"programming\", \"support\"],\n description: \"Official BetterDiscord server for support etc\",\n identifier: \"86004744966914048\",\n iconUrl: \"https://cdn.discordapp.com/icons/86004744966914048/292e7f6bfff2b71dfd13e508a859aedd.webp\",\n nativejoin: true,\n invite_code: \"0Tmfo5ZbORCRqbAd\",\n pinned: true\n };\n const guildList = SortedGuildStore.guildPositions;\n const defaultList = AvatarDefaults.DEFAULT_AVATARS;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_card__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n server: server,\n pinned: true,\n join: this.join,\n guildList: guildList,\n fallback: defaultList[Math.floor(Math.random() * 5)]\n });\n }\n\n get endPoint() {\n return \"https://search.discordservers.com\";\n }\n\n get joinEndPoint() {\n return \"https://j.discordservers.com\";\n }\n\n get connectEndPoint() {\n return \"https://join.discordservers.com/connect\";\n }\n\n checkConnection() {\n try {\n $.ajax({\n method: \"GET\",\n url: `https://auth.discordservers.com/info`,\n headers: {\n \"Accept\": \"application/json;\",\n \"Content-Type\": \"application/json;\"\n },\n crossDomain: true,\n xhrFields: {\n withCredentials: true\n },\n success: data => {\n // Utils.log(\"PublicServer\", \"Got data: \" + JSON.stringify(data));\n this.setState({\n selectedCategory: \"All\",\n connection: {\n state: 2,\n user: data\n }\n });\n this.search(\"\", true);\n },\n error: () => {\n this.setState({\n title: \"Not connected to discordservers.com!\",\n loading: true,\n selectedCategory: \"All\",\n connection: {\n state: 1,\n user: null\n }\n });\n }\n });\n } catch (error) {\n this.setState({\n title: \"Not connected to discordservers.com!\",\n loading: true,\n selectedCategory: \"All\",\n connection: {\n state: 1,\n user: null\n }\n });\n }\n } //SettingsView\n //onClose pop layer\n //onSetSection dispatch user settings modal set section section subsection\n //section selected one\n //sections []\n //theme dark\n\n\n render() {\n const categories = this.categoryButtons.map(name => {\n const section = {\n section: name,\n //.toLowerCase().replace(\" \", \"_\"),\n label: name\n };\n if (name == \"All\") section.element = () => this.content;else section.onClick = () => this.changeCategory(name);\n return section;\n });\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(SettingsView, {\n onClose: this.close,\n onSetSection: (e, ee, eee) => {\n console.log(e, ee, eee);\n this.changeCategory(e);\n },\n section: this.state.selectedCategory,\n sections: [{\n section: \"HEADER\",\n label: \"Public Servers\"\n }, {\n section: \"CUSTOM\",\n element: () => this.searchInput\n }, {\n section: \"HEADER\",\n label: \"Categories\"\n }, ...categories],\n theme: \"dark\"\n }); // return React.createElement(StandardSidebarView, {id: \"pubslayer\", ref: \"sbv\", notice: null, theme: \"dark\", closeAction: this.close, content: this.content, sidebar: this.sidebar});\n }\n\n get component() {\n return {\n sidebar: {\n component: this.sidebar\n },\n content: {\n component: this.content\n },\n tools: {\n component: modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_exitbutton__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n key: \"pt\",\n ref: \"tools\",\n onClick: this.close\n })\n }\n };\n }\n\n get sidebar() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-tab-bar SIDE\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-tab-bar-header\",\n style: {\n fontSize: \"16px\"\n }\n }, \"Public Servers\"), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Separator, null), this.searchInput, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Separator, null), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Header, {\n text: \"Categories\"\n }), this.categoryButtons.map((value, index) => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Item, {\n id: index,\n onClick: this.changeCategory,\n key: index,\n text: value,\n selected: this.state.selectedCategory === index\n });\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Separator, null), this.footer, this.connection);\n }\n\n get searchInput() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-form-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-text-input flex-vertical\",\n style: {\n width: \"172px\",\n marginLeft: \"10px\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n onKeyDown: this.searchKeyDown,\n onChange: () => {},\n type: \"text\",\n className: \"input default\",\n placeholder: \"Search...\",\n maxLength: \"50\"\n })));\n }\n\n searchKeyDown(e) {\n if (this.state.loading || e.which !== 13) return;\n this.setState({\n loading: true,\n title: \"Loading...\",\n term: e.target.value\n });\n let query = `?term=${e.target.value}`;\n\n if (this.state.selectedCategory !== 0) {\n query += `&category=${this.state.selectedCategory}`;\n }\n\n this.search(query, true);\n }\n\n get categoryButtons() {\n return [\"All\", \"FPS Games\", \"MMO Games\", \"Strategy Games\", \"MOBA Games\", \"RPG Games\", \"Tabletop Games\", \"Sandbox Games\", \"Simulation Games\", \"Music\", \"Community\", \"Language\", \"Programming\", \"Other\"];\n }\n\n changeCategory(id) {\n if (this.state.loading) return; // this.refs.searchinput.value = \"\";\n\n this.setState({\n loading: true,\n selectedCategory: id,\n title: \"Loading...\",\n term: null\n });\n\n if (id === 0) {\n this.search(\"\", true);\n return;\n }\n\n this.search(`?category=${this.state.selectedCategory.replace(\" \", \"%20\")}`, true);\n }\n\n get content() {\n const guildList = SortedGuildStore.guildPositions;\n const defaultList = AvatarDefaults.DEFAULT_AVATARS;\n if (this.state.connection.state === 1) return this.notConnected;\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: this.state.title\n }), this.state.selectedCategory == \"All\" && this.bdServer, this.state.servers.map(server => {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_card__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n key: server.identifier,\n server: server,\n join: this.join,\n guildList: guildList,\n fallback: defaultList[Math.floor(Math.random() * 5)]\n });\n }), this.state.next && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n type: \"button\",\n onClick: () => {\n if (this.state.loading) return;\n this.setState({\n loading: true\n });\n this.search(this.state.next, false);\n },\n className: \"ui-button filled brand small grow\",\n style: {\n width: \"100%\",\n marginTop: \"10px\",\n marginBottom: \"10px\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-button-contents\"\n }, this.state.loading ? \"Loading\" : \"Load More\")), this.state.servers.length > 0 && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_settings_title__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: this.state.title\n })];\n }\n\n get notConnected() {\n //return React.createElement(SettingsTitle, { text: this.state.title });\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"h2\", {\n className: \"ui-form-title h2 margin-reset margin-bottom-20\"\n }, \"Not connected to discordservers.com!\", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n onClick: this.connect,\n type: \"button\",\n className: \"ui-button filled brand small grow\",\n style: {\n display: \"inline-block\",\n minHeight: \"18px\",\n marginLeft: \"10px\",\n lineHeight: \"14px\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-button-contents\"\n }, \"Connect\"))), this.bdServer];\n }\n\n get footer() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-tab-bar-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n href: \"https://discordservers.com\",\n target: \"_blank\"\n }, \"Discordservers.com\"));\n }\n\n get connection() {\n const {\n connection\n } = this.state;\n if (connection.state !== 2) return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", null);\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", null, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_tabbar__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Separator, null), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n style: {\n color: \"#b9bbbe\",\n fontSize: \"10px\",\n marginLeft: \"10px\"\n }\n }, \"Connected as: \", `${connection.user.username}#${connection.user.discriminator}`), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n style: {\n padding: \"5px 10px 0 10px\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n style: {\n width: \"100%\",\n minHeight: \"20px\"\n },\n type: \"button\",\n className: \"ui-button filled brand small grow\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-button-contents\",\n onClick: this.connect\n }, \"Reconnect\"))));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvbWVudS5qcz85YWNkIl0sIm5hbWVzIjpbIkF2YXRhckRlZmF1bHRzIiwiV2VicGFja01vZHVsZXMiLCJnZXRCeVByb3BzIiwiSW52aXRlQWN0aW9ucyIsIlNvcnRlZEd1aWxkU3RvcmUiLCJTZXR0aW5nc1ZpZXciLCJnZXRCeURpc3BsYXlOYW1lIiwiUHVibGljU2VydmVycyIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwic2VsZWN0ZWRDYXRlZ29yeSIsInRpdGxlIiwibG9hZGluZyIsInNlcnZlcnMiLCJuZXh0IiwiY29ubmVjdGlvbiIsInVzZXIiLCJjbG9zZSIsImJpbmQiLCJjaGFuZ2VDYXRlZ29yeSIsInNlYXJjaCIsInNlYXJjaEtleURvd24iLCJjaGVja0Nvbm5lY3Rpb24iLCJqb2luIiwiY29ubmVjdCIsImNvbXBvbmVudERpZE1vdW50IiwicXVlcnkiLCJjbGVhciIsIiQiLCJhamF4IiwibWV0aG9kIiwidXJsIiwiZW5kUG9pbnQiLCJzdWNjZXNzIiwiZGF0YSIsInJlc3VsdHMiLCJyZWR1Y2UiLCJhcnIiLCJzZXJ2ZXIiLCJqb2luZWQiLCJwdXNoIiwiY29uY2F0IiwiY29uc29sZSIsImxvZyIsImVuZCIsInNpemUiLCJmcm9tIiwidGVybSIsInRvdGFsIiwic2V0U3RhdGUiLCJlcnJvciIsInNlcnZlckNhcmQiLCJwaW5uZWQiLCJhY2NlcHRJbnZpdGUiLCJpbnZpdGVfY29kZSIsImpvaW5FbmRQb2ludCIsImlkZW50aWZpZXIiLCJoZWFkZXJzIiwiYWNjZXNzVG9rZW4iLCJjcm9zc0RvbWFpbiIsInhockZpZWxkcyIsIndpdGhDcmVkZW50aWFscyIsIm9wdGlvbnMiLCJ3aW5kb3dPcHRpb25zIiwieCIsIk1hdGgiLCJyb3VuZCIsIndpbmRvdyIsInNjcmVlblgiLCJpbm5lcldpZHRoIiwid2lkdGgiLCJ5Iiwic2NyZWVuWSIsImlubmVySGVpZ2h0IiwiaGVpZ2h0Iiwiam9pbldpbmRvdyIsInJlcXVpcmUiLCJyZW1vdGUiLCJCcm93c2VyV2luZG93Iiwid2ViQ29udGVudHMiLCJvbiIsImV2ZW50IiwibmF2VXJsIiwibG9hZFVSTCIsImJhY2tncm91bmRDb2xvciIsInNob3ciLCJyZXNpemFibGUiLCJtYXhpbWl6YWJsZSIsIm1pbmltaXphYmxlIiwiYWx3YXlzT25Ub3AiLCJmcmFtZSIsImNlbnRlciIsIndlYlByZWZlcmVuY2VzIiwibm9kZUludGVncmF0aW9uIiwiYmRTZXJ2ZXIiLCJuYW1lIiwib25saW5lIiwibWVtYmVycyIsImNhdGVnb3JpZXMiLCJkZXNjcmlwdGlvbiIsImljb25VcmwiLCJuYXRpdmVqb2luIiwiZ3VpbGRMaXN0IiwiZ3VpbGRQb3NpdGlvbnMiLCJkZWZhdWx0TGlzdCIsIkRFRkFVTFRfQVZBVEFSUyIsImNyZWF0ZUVsZW1lbnQiLCJTZXJ2ZXJDYXJkIiwiZmFsbGJhY2siLCJmbG9vciIsInJhbmRvbSIsImNvbm5lY3RFbmRQb2ludCIsInJlbmRlciIsImNhdGVnb3J5QnV0dG9ucyIsIm1hcCIsInNlY3Rpb24iLCJsYWJlbCIsImVsZW1lbnQiLCJjb250ZW50Iiwib25DbGljayIsIm9uQ2xvc2UiLCJvblNldFNlY3Rpb24iLCJlIiwiZWUiLCJlZWUiLCJzZWN0aW9ucyIsInNlYXJjaElucHV0IiwidGhlbWUiLCJjb21wb25lbnQiLCJzaWRlYmFyIiwidG9vbHMiLCJUb29scyIsImtleSIsInJlZiIsImNsYXNzTmFtZSIsInN0eWxlIiwiZm9udFNpemUiLCJUYWJCYXIiLCJTZXBhcmF0b3IiLCJIZWFkZXIiLCJ0ZXh0IiwidmFsdWUiLCJpbmRleCIsIkl0ZW0iLCJpZCIsInNlbGVjdGVkIiwiZm9vdGVyIiwibWFyZ2luTGVmdCIsIm9uS2V5RG93biIsIm9uQ2hhbmdlIiwidHlwZSIsInBsYWNlaG9sZGVyIiwibWF4TGVuZ3RoIiwid2hpY2giLCJ0YXJnZXQiLCJyZXBsYWNlIiwibm90Q29ubmVjdGVkIiwiU2V0dGluZ3NUaXRsZSIsIm1hcmdpblRvcCIsIm1hcmdpbkJvdHRvbSIsImxlbmd0aCIsImRpc3BsYXkiLCJtaW5IZWlnaHQiLCJsaW5lSGVpZ2h0IiwiaHJlZiIsImNvbG9yIiwidXNlcm5hbWUiLCJkaXNjcmltaW5hdG9yIiwicGFkZGluZyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsTUFBTUEsY0FBYyxHQUFHQyxzREFBYyxDQUFDQyxVQUFmLENBQTBCLGtCQUExQixFQUE4QyxpQkFBOUMsQ0FBdkI7QUFDQSxNQUFNQyxhQUFhLEdBQUdGLHNEQUFjLENBQUNDLFVBQWYsQ0FBMEIsY0FBMUIsQ0FBdEI7QUFDQSxNQUFNRSxnQkFBZ0IsR0FBR0gsc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixpQkFBMUIsQ0FBekI7QUFDQSxNQUFNRyxZQUFZLEdBQUdKLHNEQUFjLENBQUNLLGdCQUFmLENBQWdDLGNBQWhDLENBQXJCLEMsQ0FDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWUsTUFBTUMsYUFBTixTQUE0QkMsNkNBQUssQ0FBQ0MsU0FBbEMsQ0FBNEM7QUFFdkRDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUNBLFNBQUtDLEtBQUwsR0FBYTtBQUNUQyxzQkFBZ0IsRUFBRSxLQURUO0FBRVRDLFdBQUssRUFBRSxZQUZFO0FBR1RDLGFBQU8sRUFBRSxJQUhBO0FBSVRDLGFBQU8sRUFBRSxFQUpBO0FBS1RDLFVBQUksRUFBRSxJQUxHO0FBTVRDLGdCQUFVLEVBQUU7QUFDUk4sYUFBSyxFQUFFLENBREM7QUFFUk8sWUFBSSxFQUFFO0FBRkU7QUFOSCxLQUFiO0FBV0EsU0FBS0MsS0FBTCxHQUFhLEtBQUtBLEtBQUwsQ0FBV0MsSUFBWCxDQUFnQixJQUFoQixDQUFiO0FBQ0EsU0FBS0MsY0FBTCxHQUFzQixLQUFLQSxjQUFMLENBQW9CRCxJQUFwQixDQUF5QixJQUF6QixD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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3QsIFdlYnBhY2tNb2R1bGVzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgVG9vbHMgZnJvbSBcIi4vZXhpdGJ1dHRvblwiO1xyXG5pbXBvcnQgVGFiQmFyIGZyb20gXCIuL3RhYmJhclwiO1xyXG5pbXBvcnQgU2V0dGluZ3NUaXRsZSBmcm9tIFwiLi4vc2V0dGluZ3MvdGl0bGVcIjtcclxuaW1wb3J0IFNlcnZlckNhcmQgZnJvbSBcIi4vY2FyZFwiO1xyXG5cclxuY29uc3QgQXZhdGFyRGVmYXVsdHMgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0VXNlckF2YXRhclVSTFwiLCBcIkRFRkFVTFRfQVZBVEFSU1wiKTtcclxuY29uc3QgSW52aXRlQWN0aW9ucyA9IFdlYnBhY2tNb2R1bGVzLmdldEJ5UHJvcHMoXCJhY2NlcHRJbnZpdGVcIik7XHJcbmNvbnN0IFNvcnRlZEd1aWxkU3RvcmUgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiZ2V0U29ydGVkR3VpbGRzXCIpO1xyXG5jb25zdCBTZXR0aW5nc1ZpZXcgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeURpc3BsYXlOYW1lKFwiU2V0dGluZ3NWaWV3XCIpO1xyXG4vL1NldHRpbmdzVmlld1xyXG4vL29uQ2xvc2UgcG9wIGxheWVyXHJcbi8vb25TZXRTZWN0aW9uIGRpc3BhdGNoIHVzZXIgc2V0dGluZ3MgbW9kYWwgc2V0IHNlY3Rpb24gc2VjdGlvbiBzdWJzZWN0aW9uXHJcbi8vc2VjdGlvbiBzZWxlY3RlZCBvbmVcclxuLy9zZWN0aW9ucyBbXVxyXG4vL3RoZW1lIGRhcmtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFB1YmxpY1NlcnZlcnMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkQ2F0ZWdvcnk6IFwiQWxsXCIsXHJcbiAgICAgICAgICAgIHRpdGxlOiBcIkxvYWRpbmcuLi5cIixcclxuICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgc2VydmVyczogW10sXHJcbiAgICAgICAgICAgIG5leHQ6IG51bGwsXHJcbiAgICAgICAgICAgIGNvbm5lY3Rpb246IHtcclxuICAgICAgICAgICAgICAgIHN0YXRlOiAwLFxyXG4gICAgICAgICAgICAgICAgdXNlcjogbnVsbFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmNsb3NlID0gdGhpcy5jbG9zZS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlQ2F0ZWdvcnkgPSB0aGlzLmNoYW5nZUNhdGVnb3J5LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2ggPSB0aGlzLnNlYXJjaC5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoS2V5RG93biA9IHRoaXMuc2VhcmNoS2V5RG93bi5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuY2hlY2tDb25uZWN0aW9uID0gdGhpcy5jaGVja0Nvbm5lY3Rpb24uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLmpvaW4gPSB0aGlzLmpvaW4uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLmNvbm5lY3QgPSB0aGlzLmNvbm5lY3QuYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgICAgICB0aGlzLmNoZWNrQ29ubmVjdGlvbigpO1xyXG4gICAgIH1cclxuXHJcbiAgICBjbG9zZSgpIHtcclxuICAgICAgICB0aGlzLnByb3BzLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VhcmNoKHF1ZXJ5LCBjbGVhcikge1xyXG4gICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgIG1ldGhvZDogXCJHRVRcIixcclxuICAgICAgICAgICAgdXJsOiBgJHt0aGlzLmVuZFBvaW50fSR7cXVlcnl9JHtxdWVyeSA/IFwiJnNjaGVtYT1uZXdcIiA6IFwiP3NjaGVtYT1uZXdcIn1gLFxyXG4gICAgICAgICAgICBzdWNjZXNzOiBkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBzZXJ2ZXJzID0gZGF0YS5yZXN1bHRzLnJlZHVjZSgoYXJyLCBzZXJ2ZXIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIuam9pbmVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgYXJyLnB1c2goc2VydmVyKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBhcnIucHVzaCg8U2VydmVyQ2FyZCBzZXJ2ZXI9e3NlcnZlcn0gam9pbj17dGhpcy5qb2lufS8+KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXJyO1xyXG4gICAgICAgICAgICAgICAgfSwgW10pO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICghY2xlYXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJzID0gdGhpcy5zdGF0ZS5zZXJ2ZXJzLmNvbmNhdChzZXJ2ZXJzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vc2VydmVycy51bnNoaWZ0KHRoaXMuYmRTZXJ2ZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBlbmQgPSBkYXRhLnNpemUgKyBkYXRhLmZyb207XHJcbiAgICAgICAgICAgICAgICBkYXRhLm5leHQgPSBgP2Zyb209JHtlbmR9YDtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnRlcm0pIGRhdGEubmV4dCArPSBgJnRlcm09JHt0aGlzLnN0YXRlLnRlcm19YDtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnNlbGVjdGVkQ2F0ZWdvcnkpIGRhdGEubmV4dCArPSBgJmNhdGVnb3J5PSR7dGhpcy5zdGF0ZS5zZWxlY3RlZENhdGVnb3J5fWA7XHJcbiAgICAgICAgICAgICAgICBpZiAoZW5kID49IGRhdGEudG90YWwpIHtcclxuICAgICAgICAgICAgICAgICAgICBlbmQgPSBkYXRhLnRvdGFsO1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEubmV4dCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gYFNob3dpbmcgMS0ke2VuZH0gb2YgJHtkYXRhLnRvdGFsfSByZXN1bHRzIGluICR7dGhpcy5zdGF0ZS5zZWxlY3RlZENhdGVnb3J5fWA7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS50ZXJtKSB0aXRsZSArPSBgIGZvciAke3RoaXMuc3RhdGUudGVybX1gO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJzOiBzZXJ2ZXJzLFxyXG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IGRhdGEubmV4dFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGNsZWFyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnJlZnMuc2J2LnJlZnMuY29udGVudFNjcm9sbGVyLnNjcm9sbFRvcCA9IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJGYWlsZWQgdG8gbG9hZCBzZXJ2ZXJzLiBDaGVjayBjb25zb2xlIGZvciBkZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgam9pbihzZXJ2ZXJDYXJkKSB7XHJcbiAgICAgICAgaWYgKHNlcnZlckNhcmQucHJvcHMucGlubmVkKSByZXR1cm4gSW52aXRlQWN0aW9ucy5hY2NlcHRJbnZpdGUoc2VydmVyQ2FyZC5wcm9wcy5pbnZpdGVfY29kZSk7XHJcbiAgICAgICAgJC5hamF4KHtcclxuICAgICAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxyXG4gICAgICAgICAgICB1cmw6IGAke3RoaXMuam9pbkVuZFBvaW50fS8ke3NlcnZlckNhcmQucHJvcHMuc2VydmVyLmlkZW50aWZpZXJ9YCxcclxuICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgXCJBY2NlcHRcIjogXCJhcHBsaWNhdGlvbi9qc29uO1wiLFxyXG4gICAgICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uO1wiICxcclxuICAgICAgICAgICAgICAgIFwieC1kaXNjb3JkLXRva2VuXCI6IHRoaXMuc3RhdGUuY29ubmVjdGlvbi51c2VyLmFjY2Vzc1Rva2VuXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGNyb3NzRG9tYWluOiB0cnVlLFxyXG4gICAgICAgICAgICB4aHJGaWVsZHM6IHtcclxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBzZXJ2ZXJDYXJkLnNldFN0YXRlKHtqb2luZWQ6IHRydWV9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbm5lY3QoKSB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMud2luZG93T3B0aW9ucztcclxuICAgICAgICBvcHRpb25zLnggPSBNYXRoLnJvdW5kKHdpbmRvdy5zY3JlZW5YICsgd2luZG93LmlubmVyV2lkdGggLyAyIC0gb3B0aW9ucy53aWR0aCAvIDIpO1xyXG4gICAgICAgIG9wdGlvbnMueSA9IE1hdGgucm91bmQod2luZG93LnNjcmVlblkgKyB3aW5kb3cuaW5uZXJIZWlnaHQgLyAyIC0gb3B0aW9ucy5oZWlnaHQgLyAyKTtcclxuXHJcbiAgICAgICAgdGhpcy5qb2luV2luZG93ID0gbmV3ICh3aW5kb3cucmVxdWlyZShcImVsZWN0cm9uXCIpLnJlbW90ZS5Ccm93c2VyV2luZG93KShvcHRpb25zKTtcclxuICAgICAgICBjb25zdCB1cmwgPSBcImh0dHBzOi8vYXV0aC5kaXNjb3Jkc2VydmVycy5jb20vY29ubmVjdD9zY29wZXM9Z3VpbGRzLmpvaW4mcHJldmlvdXNVcmw9aHR0cHM6Ly9hdXRoLmRpc2NvcmRzZXJ2ZXJzLmNvbS9pbmZvXCI7XHJcbiAgICAgICAgdGhpcy5qb2luV2luZG93LndlYkNvbnRlbnRzLm9uKFwiZGlkLW5hdmlnYXRlXCIsIChldmVudCwgbmF2VXJsKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChuYXZVcmwgIT0gXCJodHRwczovL2F1dGguZGlzY29yZHNlcnZlcnMuY29tL2luZm9cIikgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aGlzLmpvaW5XaW5kb3cuY2xvc2UoKTtcclxuICAgICAgICAgICAgdGhpcy5jaGVja0Nvbm5lY3Rpb24oKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmpvaW5XaW5kb3cubG9hZFVSTCh1cmwpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB3aW5kb3dPcHRpb25zKCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA1MDAsXHJcbiAgICAgICAgICAgIGhlaWdodDogNTUwLFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiIzI4MmIzMFwiLFxyXG4gICAgICAgICAgICBzaG93OiB0cnVlLFxyXG4gICAgICAgICAgICByZXNpemFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBtYXhpbWl6YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIG1pbmltaXphYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgYWx3YXlzT25Ub3A6IHRydWUsXHJcbiAgICAgICAgICAgIGZyYW1lOiBmYWxzZSxcclxuICAgICAgICAgICAgY2VudGVyOiBmYWxzZSxcclxuICAgICAgICAgICAgd2ViUHJlZmVyZW5jZXM6IHtcclxuICAgICAgICAgICAgICAgIG5vZGVJbnRlZ3JhdGlvbjogZmFsc2VcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGJkU2VydmVyKCkge1xyXG4gICAgICAgIGNvbnN0IHNlcnZlciA9IHtcclxuICAgICAgICAgICAgbmFtZTogXCJCZXR0ZXJEaXNjb3JkXCIsXHJcbiAgICAgICAgICAgIG9ubGluZTogXCI3NTAwK1wiLFxyXG4gICAgICAgICAgICBtZW1iZXJzOiBcIjIwMDAwK1wiLFxyXG4gICAgICAgICAgICBjYXRlZ29yaWVzOiBbXCJjb21tdW5pdHlcIiwgXCJwcm9ncmFtbWluZ1wiLCBcInN1cHBvcnRcIl0sXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIk9mZmljaWFsIEJldHRlckRpc2NvcmQgc2VydmVyIGZvciBzdXBwb3J0IGV0Y1wiLFxyXG4gICAgICAgICAgICBpZGVudGlmaWVyOiBcIjg2MDA0NzQ0OTY2OTE0MDQ4XCIsXHJcbiAgICAgICAgICAgIGljb25Vcmw6IFwiaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vaWNvbnMvODYwMDQ3NDQ5NjY5MTQwNDgvMjkyZTdmNmJmZmYyYjcxZGZkMTNlNTA4YTg1OWFlZGQud2VicFwiLFxyXG4gICAgICAgICAgICBuYXRpdmVqb2luOiB0cnVlLFxyXG4gICAgICAgICAgICBpbnZpdGVfY29kZTogXCIwVG1mbzVaYk9SQ1JxYkFkXCIsXHJcbiAgICAgICAgICAgIHBpbm5lZDogdHJ1ZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgZ3VpbGRMaXN0ID0gU29ydGVkR3VpbGRTdG9yZS5ndWlsZFBvc2l0aW9ucztcclxuICAgICAgICBjb25zdCBkZWZhdWx0TGlzdCA9IEF2YXRhckRlZmF1bHRzLkRFRkFVTFRfQVZBVEFSUztcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChTZXJ2ZXJDYXJkLCB7c2VydmVyOiBzZXJ2ZXIsIHBpbm5lZDogdHJ1ZSwgam9pbjogdGhpcy5qb2luLCBndWlsZExpc3Q6IGd1aWxkTGlzdCwgZmFsbGJhY2s6IGRlZmF1bHRMaXN0W01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDUpXX0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBlbmRQb2ludCgpIHtcclxuICAgICAgICByZXR1cm4gXCJodHRwczovL3NlYXJjaC5kaXNjb3Jkc2VydmVycy5jb21cIjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgam9pbkVuZFBvaW50KCkge1xyXG4gICAgICAgIHJldHVybiBcImh0dHBzOi8vai5kaXNjb3Jkc2VydmVycy5jb21cIjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29ubmVjdEVuZFBvaW50KCkge1xyXG4gICAgICAgIHJldHVybiBcImh0dHBzOi8vam9pbi5kaXNjb3Jkc2VydmVycy5jb20vY29ubmVjdFwiO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrQ29ubmVjdGlvbigpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxyXG4gICAgICAgICAgICAgICAgdXJsOiBgaHR0cHM6Ly9hdXRoLmRpc2NvcmRzZXJ2ZXJzLmNvbS9pbmZvYCxcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICBcIkFjY2VwdFwiOiBcImFwcGxpY2F0aW9uL2pzb247XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uO1wiXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgY3Jvc3NEb21haW46IHRydWUsXHJcbiAgICAgICAgICAgICAgICB4aHJGaWVsZHM6IHtcclxuICAgICAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiBkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBVdGlscy5sb2coXCJQdWJsaWNTZXJ2ZXJcIiwgXCJHb3QgZGF0YTogXCIgKyBKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQ2F0ZWdvcnk6IFwiQWxsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb246IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiAyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcjogZGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2goXCJcIiwgdHJ1ZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIk5vdCBjb25uZWN0ZWQgdG8gZGlzY29yZHNlcnZlcnMuY29tIVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZENhdGVnb3J5OiBcIkFsbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTogMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXI6IG51bGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IFwiTm90IGNvbm5lY3RlZCB0byBkaXNjb3Jkc2VydmVycy5jb20hXCIsXHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRDYXRlZ29yeTogXCJBbGxcIixcclxuICAgICAgICAgICAgICAgIGNvbm5lY3Rpb246IHtcclxuICAgICAgICAgICAgICAgICAgICBzdGF0ZTogMSxcclxuICAgICAgICAgICAgICAgICAgICB1c2VyOiBudWxsXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL1NldHRpbmdzVmlld1xyXG4vL29uQ2xvc2UgcG9wIGxheWVyXHJcbi8vb25TZXRTZWN0aW9uIGRpc3BhdGNoIHVzZXIgc2V0dGluZ3MgbW9kYWwgc2V0IHNlY3Rpb24gc2VjdGlvbiBzdWJzZWN0aW9uXHJcbi8vc2VjdGlvbiBzZWxlY3RlZCBvbmVcclxuLy9zZWN0aW9ucyBbXVxyXG4vL3RoZW1lIGRhcmtcclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IHRoaXMuY2F0ZWdvcnlCdXR0b25zLm1hcChuYW1lID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHtcclxuICAgICAgICAgICAgICAgIHNlY3Rpb246IG5hbWUsLy8udG9Mb3dlckNhc2UoKS5yZXBsYWNlKFwiIFwiLCBcIl9cIiksXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogbmFtZVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYgKG5hbWUgPT0gXCJBbGxcIikgc2VjdGlvbi5lbGVtZW50ID0gKCkgPT4gdGhpcy5jb250ZW50O1xyXG4gICAgICAgICAgICBlbHNlIHNlY3Rpb24ub25DbGljayA9ICgpID0+IHRoaXMuY2hhbmdlQ2F0ZWdvcnkobmFtZSk7XHJcbiAgICAgICAgICAgIHJldHVybiBzZWN0aW9uO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVmlldywge1xyXG4gICAgICAgICAgICBvbkNsb3NlOiB0aGlzLmNsb3NlLFxyXG4gICAgICAgICAgICBvblNldFNlY3Rpb246IChlLCBlZSwgZWVlKSA9PiB7Y29uc29sZS5sb2coZSwgZWUsIGVlZSk7dGhpcy5jaGFuZ2VDYXRlZ29yeShlKTt9LFxyXG4gICAgICAgICAgICBzZWN0aW9uOiB0aGlzLnN0YXRlLnNlbGVjdGVkQ2F0ZWdvcnksXHJcbiAgICAgICAgICAgIHNlY3Rpb25zOiBbXHJcbiAgICAgICAgICAgICAgICB7c2VjdGlvbjogXCJIRUFERVJcIiwgbGFiZWw6IFwiUHVibGljIFNlcnZlcnNcIn0sXHJcbiAgICAgICAgICAgICAgICB7c2VjdGlvbjogXCJDVVNUT01cIiwgZWxlbWVudDogKCkgPT4gdGhpcy5zZWFyY2hJbnB1dH0sXHJcbiAgICAgICAgICAgICAgICB7c2VjdGlvbjogXCJIRUFERVJcIiwgbGFiZWw6IFwiQ2F0ZWdvcmllc1wifSxcclxuICAgICAgICAgICAgICAgIC4uLmNhdGVnb3JpZXNcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgdGhlbWU6IFwiZGFya1wiXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3RhbmRhcmRTaWRlYmFyVmlldywge2lkOiBcInB1YnNsYXllclwiLCByZWY6IFwic2J2XCIsIG5vdGljZTogbnVsbCwgdGhlbWU6IFwiZGFya1wiLCBjbG9zZUFjdGlvbjogdGhpcy5jbG9zZSwgY29udGVudDogdGhpcy5jb250ZW50LCBzaWRlYmFyOiB0aGlzLnNpZGViYXJ9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29tcG9uZW50KCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHNpZGViYXI6IHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcy5zaWRlYmFyXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcy5jb250ZW50XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRvb2xzOiB7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IFJlYWN0LmNyZWF0ZUVsZW1lbnQoVG9vbHMsIHtrZXk6IFwicHRcIiwgcmVmOiBcInRvb2xzXCIsIG9uQ2xpY2s6IHRoaXMuY2xvc2V9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc2lkZWJhcigpIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLXRhYi1iYXIgU0lERVwifSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLXRhYi1iYXItaGVhZGVyXCIsIHN0eWxlOiB7Zm9udFNpemU6IFwiMTZweFwifX0sXHJcbiAgICAgICAgICAgICAgICAgICAgXCJQdWJsaWMgU2VydmVyc1wiXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUYWJCYXIuU2VwYXJhdG9yLCBudWxsKSxcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoSW5wdXQsXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRhYkJhci5TZXBhcmF0b3IsIG51bGwpLFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUYWJCYXIuSGVhZGVyLCB7dGV4dDogXCJDYXRlZ29yaWVzXCJ9KSxcclxuICAgICAgICAgICAgICAgIHRoaXMuY2F0ZWdvcnlCdXR0b25zLm1hcCgodmFsdWUsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFiQmFyLkl0ZW0sIHtpZDogaW5kZXgsIG9uQ2xpY2s6IHRoaXMuY2hhbmdlQ2F0ZWdvcnksIGtleTogaW5kZXgsIHRleHQ6IHZhbHVlLCBzZWxlY3RlZDogdGhpcy5zdGF0ZS5zZWxlY3RlZENhdGVnb3J5ID09PSBpbmRleH0pO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRhYkJhci5TZXBhcmF0b3IsIG51bGwpLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5mb290ZXIsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25cclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc2VhcmNoSW5wdXQoKSB7XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgIHtjbGFzc05hbWU6IFwidWktZm9ybS1pdGVtXCJ9LFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwidWktdGV4dC1pbnB1dCBmbGV4LXZlcnRpY2FsXCIsIHN0eWxlOiB7d2lkdGg6IFwiMTcycHhcIiwgbWFyZ2luTGVmdDogXCIxMHB4XCJ9fSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7b25LZXlEb3duOiB0aGlzLnNlYXJjaEtleURvd24sIG9uQ2hhbmdlOiAoKSA9PiB7fSwgdHlwZTogXCJ0ZXh0XCIsIGNsYXNzTmFtZTogXCJpbnB1dCBkZWZhdWx0XCIsIHBsYWNlaG9sZGVyOiBcIlNlYXJjaC4uLlwiLCBtYXhMZW5ndGg6IFwiNTBcIn0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHNlYXJjaEtleURvd24oZSkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmxvYWRpbmcgfHwgZS53aGljaCAhPT0gMTMpIHJldHVybjtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgdGl0bGU6IFwiTG9hZGluZy4uLlwiLFxyXG4gICAgICAgICAgICB0ZXJtOiBlLnRhcmdldC52YWx1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGxldCBxdWVyeSA9IGA/dGVybT0ke2UudGFyZ2V0LnZhbHVlfWA7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuc2VsZWN0ZWRDYXRlZ29yeSAhPT0gMCkge1xyXG4gICAgICAgICAgICBxdWVyeSArPSBgJmNhdGVnb3J5PSR7dGhpcy5zdGF0ZS5zZWxlY3RlZENhdGVnb3J5fWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VhcmNoKHF1ZXJ5LCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY2F0ZWdvcnlCdXR0b25zKCkge1xyXG4gICAgICAgIHJldHVybiBbXCJBbGxcIiwgXCJGUFMgR2FtZXNcIiwgXCJNTU8gR2FtZXNcIiwgXCJTdHJhdGVneSBHYW1lc1wiLCBcIk1PQkEgR2FtZXNcIiwgXCJSUEcgR2FtZXNcIiwgXCJUYWJsZXRvcCBHYW1lc1wiLCBcIlNhbmRib3ggR2FtZXNcIiwgXCJTaW11bGF0aW9uIEdhbWVzXCIsIFwiTXVzaWNcIiwgXCJDb21tdW5pdHlcIiwgXCJMYW5ndWFnZVwiLCBcIlByb2dyYW1taW5nXCIsIFwiT3RoZXJcIl07XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlQ2F0ZWdvcnkoaWQpIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5sb2FkaW5nKSByZXR1cm47XHJcbiAgICAgICAgLy8gdGhpcy5yZWZzLnNlYXJjaGlucHV0LnZhbHVlID0gXCJcIjtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgbG9hZGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgc2VsZWN0ZWRDYXRlZ29yeTogaWQsXHJcbiAgICAgICAgICAgIHRpdGxlOiBcIkxvYWRpbmcuLi5cIixcclxuICAgICAgICAgICAgdGVybTogbnVsbFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChpZCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaChcIlwiLCB0cnVlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlYXJjaChgP2NhdGVnb3J5PSR7dGhpcy5zdGF0ZS5zZWxlY3RlZENhdGVnb3J5LnJlcGxhY2UoXCIgXCIsIFwiJTIwXCIpfWAsIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb250ZW50KCkge1xyXG4gICAgICAgIGNvbnN0IGd1aWxkTGlzdCA9IFNvcnRlZEd1aWxkU3RvcmUuZ3VpbGRQb3NpdGlvbnM7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdExpc3QgPSBBdmF0YXJEZWZhdWx0cy5ERUZBVUxUX0FWQVRBUlM7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuY29ubmVjdGlvbi5zdGF0ZSA9PT0gMSkgcmV0dXJuIHRoaXMubm90Q29ubmVjdGVkO1xyXG4gICAgICAgIHJldHVybiBbUmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc1RpdGxlLCB7dGV4dDogdGhpcy5zdGF0ZS50aXRsZX0pLFxyXG4gICAgICAgICAgICB0aGlzLnN0YXRlLnNlbGVjdGVkQ2F0ZWdvcnkgPT0gXCJBbGxcIiAmJiB0aGlzLmJkU2VydmVyLFxyXG4gICAgICAgICAgICB0aGlzLnN0YXRlLnNlcnZlcnMubWFwKChzZXJ2ZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFNlcnZlckNhcmQsIHtrZXk6IHNlcnZlci5pZGVudGlmaWVyLCBzZXJ2ZXI6IHNlcnZlciwgam9pbjogdGhpcy5qb2luLCBndWlsZExpc3Q6IGd1aWxkTGlzdCwgZmFsbGJhY2s6IGRlZmF1bHRMaXN0W01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDUpXX0pO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZS5uZXh0ICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICBcImJ1dHRvblwiLFxyXG4gICAgICAgICAgICAgICAge3R5cGU6IFwiYnV0dG9uXCIsIG9uQ2xpY2s6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUubG9hZGluZykgcmV0dXJuO3RoaXMuc2V0U3RhdGUoe2xvYWRpbmc6IHRydWV9KTsgdGhpcy5zZWFyY2godGhpcy5zdGF0ZS5uZXh0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgY2xhc3NOYW1lOiBcInVpLWJ1dHRvbiBmaWxsZWQgYnJhbmQgc21hbGwgZ3Jvd1wiLCBzdHlsZToge3dpZHRoOiBcIjEwMCVcIiwgbWFyZ2luVG9wOiBcIjEwcHhcIiwgbWFyZ2luQm90dG9tOiBcIjEwcHhcIn19LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwidWktYnV0dG9uLWNvbnRlbnRzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUubG9hZGluZyA/IFwiTG9hZGluZ1wiIDogXCJMb2FkIE1vcmVcIlxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICB0aGlzLnN0YXRlLnNlcnZlcnMubGVuZ3RoID4gMCAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVGl0bGUsIHt0ZXh0OiB0aGlzLnN0YXRlLnRpdGxlfSldO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBub3RDb25uZWN0ZWQoKSB7XHJcbiAgICAgICAgLy9yZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc1RpdGxlLCB7IHRleHQ6IHRoaXMuc3RhdGUudGl0bGUgfSk7XHJcbiAgICAgICAgcmV0dXJuIFtSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgXCJoMlwiLFxyXG4gICAgICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS1mb3JtLXRpdGxlIGgyIG1hcmdpbi1yZXNldCBtYXJnaW4tYm90dG9tLTIwXCJ9LFxyXG4gICAgICAgICAgICAgICAgXCJOb3QgY29ubmVjdGVkIHRvIGRpc2NvcmRzZXJ2ZXJzLmNvbSFcIixcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgXCJidXR0b25cIixcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMuY29ubmVjdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcInVpLWJ1dHRvbiBmaWxsZWQgYnJhbmQgc21hbGwgZ3Jvd1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogXCJpbmxpbmUtYmxvY2tcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbkhlaWdodDogXCIxOHB4XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiBcIjEwcHhcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IFwiMTRweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtjbGFzc05hbWU6IFwidWktYnV0dG9uLWNvbnRlbnRzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNvbm5lY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSwgdGhpcy5iZFNlcnZlcl07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGZvb3RlcigpIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS10YWItYmFyLWhlYWRlclwifSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgIFwiYVwiLFxyXG4gICAgICAgICAgICAgICAge2hyZWY6IFwiaHR0cHM6Ly9kaXNjb3Jkc2VydmVycy5jb21cIiwgdGFyZ2V0OiBcIl9ibGFua1wifSxcclxuICAgICAgICAgICAgICAgIFwiRGlzY29yZHNlcnZlcnMuY29tXCJcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbm5lY3Rpb24oKSB7XHJcbiAgICAgICAgY29uc3Qge2Nvbm5lY3Rpb259ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICBpZiAoY29ubmVjdGlvbi5zdGF0ZSAhPT0gMikgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIG51bGwpO1xyXG5cclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJzcGFuXCIsXHJcbiAgICAgICAgICAgIG51bGwsXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFiQmFyLlNlcGFyYXRvciwgbnVsbCksXHJcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXHJcbiAgICAgICAgICAgICAgICBcInNwYW5cIixcclxuICAgICAgICAgICAgICAgIHtzdHlsZToge2NvbG9yOiBcIiNiOWJiYmVcIiwgZm9udFNpemU6IFwiMTBweFwiLCBtYXJnaW5MZWZ0OiBcIjEwcHhcIn19LFxyXG4gICAgICAgICAgICAgICAgXCJDb25uZWN0ZWQgYXM6IFwiLFxyXG4gICAgICAgICAgICAgICAgYCR7Y29ubmVjdGlvbi51c2VyLnVzZXJuYW1lfSMke2Nvbm5lY3Rpb24udXNlci5kaXNjcmltaW5hdG9yfWBcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXHJcbiAgICAgICAgICAgICAgICB7c3R5bGU6IHtwYWRkaW5nOiBcIjVweCAxMHB4IDAgMTBweFwifX0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgIFwiYnV0dG9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAge3N0eWxlOiB7d2lkdGg6IFwiMTAwJVwiLCBtaW5IZWlnaHQ6IFwiMjBweFwifSwgdHlwZTogXCJidXR0b25cIiwgY2xhc3NOYW1lOiBcInVpLWJ1dHRvbiBmaWxsZWQgYnJhbmQgc21hbGwgZ3Jvd1wifSxcclxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xhc3NOYW1lOiBcInVpLWJ1dHRvbi1jb250ZW50c1wiLCBvbkNsaWNrOiB0aGlzLmNvbm5lY3R9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlJlY29ubmVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxufVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/publicservers/menu.js\n");
/***/ }),
/***/ "./src/ui/publicservers/tabbar.js":
/*!****************************************!*\
!*** ./src/ui/publicservers/tabbar.js ***!
\****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return TabBar; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\n\nclass TabBarItem extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n selected: this.props.selected || false\n };\n this.onClick = this.onClick.bind(this);\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: `ui-tab-bar-item${this.props.selected ? \" selected\" : \"\"}`,\n onClick: this.onClick\n }, this.props.text);\n }\n\n onClick() {\n if (this.props.onClick) {\n this.props.onClick(this.props.id);\n }\n }\n\n}\n\nclass TabBarSeparator extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-tab-bar-separator margin-top-8 margin-bottom-8\"\n });\n }\n\n}\n\nclass TabBarHeader extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"ui-tab-bar-header\"\n }, this.props.text);\n }\n\n}\n\nclass TabBar {\n static get Item() {\n return TabBarItem;\n }\n\n static get Header() {\n return TabBarHeader;\n }\n\n static get Separator() {\n return TabBarSeparator;\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3B1YmxpY3NlcnZlcnMvdGFiYmFyLmpzPzRhMGQiXSwibmFtZXMiOlsiVGFiQmFySXRlbSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwic2VsZWN0ZWQiLCJvbkNsaWNrIiwiYmluZCIsInJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ0ZXh0IiwiaWQiLCJUYWJCYXJTZXBhcmF0b3IiLCJUYWJCYXJIZWFkZXIiLCJUYWJCYXIiLCJJdGVtIiwiSGVhZGVyIiwiU2VwYXJhdG9yIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFFQSxNQUFNQSxVQUFOLFNBQXlCQyw2Q0FBSyxDQUFDQyxTQUEvQixDQUF5QztBQUVyQ0MsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0EsU0FBS0MsS0FBTCxHQUFhO0FBQ1RDLGNBQVEsRUFBRSxLQUFLRixLQUFMLENBQVdFLFFBQVgsSUFBdUI7QUFEeEIsS0FBYjtBQUdBLFNBQUtDLE9BQUwsR0FBZSxLQUFLQSxPQUFMLENBQWFDLElBQWIsQ0FBa0IsSUFBbEIsQ0FBZjtBQUNIOztBQUVEQyxRQUFNLEdBQUc7QUFDTCxXQUFPUiw2Q0FBSyxDQUFDUyxhQUFOLENBQ0gsS0FERyxFQUVIO0FBQUNDLGVBQVMsRUFBRyxrQkFBaUIsS0FBS1AsS0FBTCxDQUFXRSxRQUFYLEdBQXNCLFdBQXRCLEdBQW9DLEVBQUcsRUFBckU7QUFBd0VDLGFBQU8sRUFBRSxLQUFLQTtBQUF0RixLQUZHLEVBR0gsS0FBS0gsS0FBTCxDQUFXUSxJQUhSLENBQVA7QUFLSDs7QUFFREwsU0FBTyxHQUFHO0FBQ04sUUFBSSxLQUFLSCxLQUFMLENBQVdHLE9BQWYsRUFBd0I7QUFDcEIsV0FBS0gsS0FBTCxDQUFXRyxPQUFYLENBQW1CLEtBQUtILEtBQUwsQ0FBV1MsRUFBOUI7QUFDSDtBQUNKOztBQXRCb0M7O0FBeUJ6QyxNQUFNQyxlQUFOLFNBQThCYiw2Q0FBSyxDQUFDQyxTQUFwQyxDQUE4QztBQUMxQ0MsYUFBVyxDQUFDQyxLQUFELEVBQVE7QUFDZixVQUFNQSxLQUFOO0FBQ0g7O0FBRURLLFFBQU0sR0FBRztBQUNMLFdBQU9SLDZDQUFLLENBQUNTLGFBQU4sQ0FBb0IsS0FBcEIsRUFBMkI7QUFBQ0MsZUFBUyxFQUFFO0FBQVosS0FBM0IsQ0FBUDtBQUNIOztBQVB5Qzs7QUFVOUMsTUFBTUksWUFBTixTQUEyQmQsNkNBQUssQ0FBQ0MsU0FBakMsQ0FBMkM7QUFDdkNDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjtBQUNIOztBQUVESyxRQUFNLEdBQUc7QUFDTCxXQUFPUiw2Q0FBSyxDQUFDUyxhQUFOLENBQ0gsS0FERyxFQUVIO0FBQUNDLGVBQVMsRUFBRTtBQUFaLEtBRkcsRUFHSCxLQUFLUCxLQUFMLENBQVdRLElBSFIsQ0FBUDtBQUtIOztBQVhzQzs7QUFjNUIsTUFBTUksTUFBTixDQUFhO0FBQ3hCLGFBQVdDLElBQVgsR0FBa0I7QUFDZCxXQUFPakIsVUFBUDtBQUNIOztBQUNELGFBQVdrQixNQUFYLEdBQW9CO0FBQ2hCLFdBQU9ILFlBQVA7QUFDSDs7QUFDRCxhQUFXSSxTQUFYLEdBQXVCO0FBQ25CLFdBQU9MLGVBQVA7QUFDSDs7QUFUdUIiLCJmaWxlIjoiLi9zcmMvdWkvcHVibGljc2VydmVycy90YWJiYXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuY2xhc3MgVGFiQmFySXRlbSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMucHJvcHMuc2VsZWN0ZWQgfHwgZmFsc2VcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMub25DbGljayA9IHRoaXMub25DbGljay5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge2NsYXNzTmFtZTogYHVpLXRhYi1iYXItaXRlbSR7dGhpcy5wcm9wcy5zZWxlY3RlZCA/IFwiIHNlbGVjdGVkXCIgOiBcIlwifWAsIG9uQ2xpY2s6IHRoaXMub25DbGlja30sXHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMudGV4dFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbGljaygpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkNsaWNrKSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25DbGljayh0aGlzLnByb3BzLmlkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFRhYkJhclNlcGFyYXRvciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJ1aS10YWItYmFyLXNlcGFyYXRvciBtYXJnaW4tdG9wLTggbWFyZ2luLWJvdHRvbS04XCJ9KTtcclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgVGFiQmFySGVhZGVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge2NsYXNzTmFtZTogXCJ1aS10YWItYmFyLWhlYWRlclwifSxcclxuICAgICAgICAgICAgdGhpcy5wcm9wcy50ZXh0XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGFiQmFyIHtcclxuICAgIHN0YXRpYyBnZXQgSXRlbSgpIHtcclxuICAgICAgICByZXR1cm4gVGFiQmFySXRlbTtcclxuICAgIH1cclxuICAgIHN0YXRpYyBnZXQgSGVhZGVyKCkge1xyXG4gICAgICAgIHJldHVybiBUYWJCYXJIZWFkZXI7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgZ2V0IFNlcGFyYXRvcigpIHtcclxuICAgICAgICByZXR1cm4gVGFiQmFyU2VwYXJhdG9yO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/publicservers/tabbar.js\n");
/***/ }),
/***/ "./src/ui/settings/contentlist.jsx":
/*!*****************************************!*\
!*** ./src/ui/settings/contentlist.jsx ***!
\*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ContentList; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _plugincard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./plugincard */ \"./src/ui/settings/plugincard.js\");\n/* harmony import */ var _themecard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./themecard */ \"./src/ui/settings/themecard.js\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n// static getPluginsPanel(plugins, state, options = {}) {\n// const {folder = \"\", onChange, reload} = options;\n// const titleComponent = React.createElement(SettingsTitle, {text: \"Plugins\", button: {title: \"Open Plugin Folder\", onClick: () => { require(\"electron\").shell.openItem(folder); }}});\n// const cards = plugins.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(plugin => \n// React.createElement(PluginCard, {key: plugin.id, enabled: state[plugin.id], content: plugin, onChange, reload})\n// );\n// return [titleComponent, React.createElement(\"ul\", {className: \"bda-slist\"}, ...cards)];\n// }\n\n\n\n\n\nclass ContentList extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n reload() {\n if (this.props.refreshList) this.props.refreshList();\n this.forceUpdate();\n }\n\n render() {\n const {\n title,\n folder,\n contentList,\n contentState,\n onChange,\n reload\n } = this.props;\n const showReloadIcon = !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"content\", \"autoReload\");\n const button = folder ? {\n title: `Open ${title} Folder`,\n onClick: () => {\n __webpack_require__(/*! electron */ \"electron\").shell.openItem(folder);\n }\n } : null;\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n key: \"title\",\n text: title,\n button: button,\n otherChildren: showReloadIcon && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"bd-reload\",\n onClick: this.reload.bind(this)\n })\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"ul\", {\n key: \"ContentList\",\n className: \"bda-slist\"\n }, contentList.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(content => {\n const CardType = content.type ? _plugincard__WEBPACK_IMPORTED_MODULE_2__[\"default\"] : _themecard__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(CardType, {\n showReloadIcon: showReloadIcon,\n key: content.id,\n enabled: contentState[content.id],\n content: content,\n onChange: onChange,\n reload: reload\n });\n }))];\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2NvbnRlbnRsaXN0LmpzeD9kZDhlIl0sIm5hbWVzIjpbIkNvbnRlbnRMaXN0IiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZWxvYWQiLCJwcm9wcyIsInJlZnJlc2hMaXN0IiwiZm9yY2VVcGRhdGUiLCJyZW5kZXIiLCJ0aXRsZSIsImZvbGRlciIsImNvbnRlbnRMaXN0IiwiY29udGVudFN0YXRlIiwib25DaGFuZ2UiLCJzaG93UmVsb2FkSWNvbiIsIlNldHRpbmdzIiwiZ2V0IiwiYnV0dG9uIiwib25DbGljayIsInJlcXVpcmUiLCJzaGVsbCIsIm9wZW5JdGVtIiwiYmluZCIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsImxvY2FsZUNvbXBhcmUiLCJtYXAiLCJjb250ZW50IiwiQ2FyZFR5cGUiLCJ0eXBlIiwiUGx1Z2luQ2FyZCIsIlRoZW1lQ2FyZCIsImlkIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRWUsTUFBTUEsV0FBTixTQUEwQkMsNkNBQUssQ0FBQ0MsU0FBaEMsQ0FBMEM7QUFFckRDLFFBQU0sR0FBRztBQUNMLFFBQUksS0FBS0MsS0FBTCxDQUFXQyxXQUFmLEVBQTRCLEtBQUtELEtBQUwsQ0FBV0MsV0FBWDtBQUM1QixTQUFLQyxXQUFMO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFVBQU07QUFBQ0MsV0FBRDtBQUFRQyxZQUFSO0FBQWdCQyxpQkFBaEI7QUFBNkJDLGtCQUE3QjtBQUEyQ0MsY0FBM0M7QUFBcURUO0FBQXJELFFBQStELEtBQUtDLEtBQTFFO0FBQ0EsVUFBTVMsY0FBYyxHQUFHLENBQUNDLGdEQUFRLENBQUNDLEdBQVQsQ0FBYSxVQUFiLEVBQXlCLFNBQXpCLEVBQW9DLFlBQXBDLENBQXhCO0FBQ0EsVUFBTUMsTUFBTSxHQUFHUCxNQUFNLEdBQUc7QUFBQ0QsV0FBSyxFQUFHLFFBQU9BLEtBQU0sU0FBdEI7QUFBZ0NTLGFBQU8sRUFBRSxNQUFNO0FBQUNDLDJCQUFPLENBQUMsMEJBQUQsQ0FBUCxDQUFvQkMsS0FBcEIsQ0FBMEJDLFFBQTFCLENBQW1DWCxNQUFuQztBQUE0QztBQUE1RixLQUFILEdBQW1HLElBQXhIO0FBQ0EsV0FBTyxDQUNILDREQUFDLDhDQUFEO0FBQWUsU0FBRyxFQUFDLE9BQW5CO0FBQTJCLFVBQUksRUFBRUQsS0FBakM7QUFBd0MsWUFBTSxFQUFFUSxNQUFoRDtBQUF3RCxtQkFBYSxFQUFFSCxjQUFjLElBQUksNERBQUMscURBQUQ7QUFBWSxpQkFBUyxFQUFDLFdBQXRCO0FBQWtDLGVBQU8sRUFBRSxLQUFLVixNQUFMLENBQVlrQixJQUFaLENBQWlCLElBQWpCO0FBQTNDO0FBQXpGLE1BREcsRUFFSDtBQUFJLFNBQUcsRUFBQyxhQUFSO0FBQXNCLGVBQVMsRUFBRTtBQUFqQyxPQUNDWCxXQUFXLENBQUNZLElBQVosQ0FBaUIsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEtBQVVELENBQUMsQ0FBQ0UsSUFBRixDQUFPQyxXQUFQLEdBQXFCQyxhQUFyQixDQUFtQ0gsQ0FBQyxDQUFDQyxJQUFGLENBQU9DLFdBQVAsRUFBbkMsQ0FBM0IsRUFBcUZFLEdBQXJGLENBQXlGQyxPQUFPLElBQUk7QUFDakcsWUFBTUMsUUFBUSxHQUFHRCxPQUFPLENBQUNFLElBQVIsR0FBZUMsbURBQWYsR0FBNEJDLGtEQUE3QztBQUNBLGFBQU8sNERBQUMsUUFBRDtBQUFVLHNCQUFjLEVBQUVwQixjQUExQjtBQUEwQyxXQUFHLEVBQUVnQixPQUFPLENBQUNLLEVBQXZEO0FBQTJELGVBQU8sRUFBRXZCLFlBQVksQ0FBQ2tCLE9BQU8sQ0FBQ0ssRUFBVCxDQUFoRjtBQUE4RixlQUFPLEVBQUVMLE9BQXZHO0FBQWdILGdCQUFRLEVBQUVqQixRQUExSDtBQUFvSSxjQUFNLEVBQUVUO0FBQTVJLFFBQVA7QUFDSCxLQUhBLENBREQsQ0FGRyxDQUFQO0FBU0g7O0FBcEJvRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9jb250ZW50bGlzdC5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzdGF0aWMgZ2V0UGx1Z2luc1BhbmVsKHBsdWdpbnMsIHN0YXRlLCBvcHRpb25zID0ge30pIHtcclxuLy8gICAgIGNvbnN0IHtmb2xkZXIgPSBcIlwiLCBvbkNoYW5nZSwgcmVsb2FkfSA9IG9wdGlvbnM7XHJcbi8vICAgICBjb25zdCB0aXRsZUNvbXBvbmVudCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NUaXRsZSwge3RleHQ6IFwiUGx1Z2luc1wiLCBidXR0b246IHt0aXRsZTogXCJPcGVuIFBsdWdpbiBGb2xkZXJcIiwgb25DbGljazogKCkgPT4geyByZXF1aXJlKFwiZWxlY3Ryb25cIikuc2hlbGwub3Blbkl0ZW0oZm9sZGVyKTsgfX19KTtcclxuLy8gICAgIGNvbnN0IGNhcmRzID0gcGx1Z2lucy5zb3J0KChhLCBiKSA9PiBhLm5hbWUudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGIubmFtZS50b0xvd2VyQ2FzZSgpKSkubWFwKHBsdWdpbiA9PiBcclxuLy8gICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFBsdWdpbkNhcmQsIHtrZXk6IHBsdWdpbi5pZCwgZW5hYmxlZDogc3RhdGVbcGx1Z2luLmlkXSwgY29udGVudDogcGx1Z2luLCBvbkNoYW5nZSwgcmVsb2FkfSlcclxuLy8gICAgICk7XHJcbi8vICAgICByZXR1cm4gW3RpdGxlQ29tcG9uZW50LCBSZWFjdC5jcmVhdGVFbGVtZW50KFwidWxcIiwge2NsYXNzTmFtZTogXCJiZGEtc2xpc3RcIn0sIC4uLmNhcmRzKV07XHJcbi8vIH1cclxuXHJcbmltcG9ydCB7UmVhY3QsIFNldHRpbmdzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IFNldHRpbmdzVGl0bGUgZnJvbSBcIi4vdGl0bGVcIjtcclxuaW1wb3J0IFBsdWdpbkNhcmQgZnJvbSBcIi4vcGx1Z2luY2FyZFwiO1xyXG5pbXBvcnQgVGhlbWVDYXJkIGZyb20gXCIuL3RoZW1lY2FyZFwiO1xyXG5pbXBvcnQgUmVsb2FkSWNvbiBmcm9tIFwiLi4vaWNvbnMvcmVsb2FkXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb250ZW50TGlzdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgcmVsb2FkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLnJlZnJlc2hMaXN0KSB0aGlzLnByb3BzLnJlZnJlc2hMaXN0KCk7XHJcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCB7dGl0bGUsIGZvbGRlciwgY29udGVudExpc3QsIGNvbnRlbnRTdGF0ZSwgb25DaGFuZ2UsIHJlbG9hZH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgIGNvbnN0IHNob3dSZWxvYWRJY29uID0gIVNldHRpbmdzLmdldChcInNldHRpbmdzXCIsIFwiY29udGVudFwiLCBcImF1dG9SZWxvYWRcIik7XHJcbiAgICAgICAgY29uc3QgYnV0dG9uID0gZm9sZGVyID8ge3RpdGxlOiBgT3BlbiAke3RpdGxlfSBGb2xkZXJgLCBvbkNsaWNrOiAoKSA9PiB7cmVxdWlyZShcImVsZWN0cm9uXCIpLnNoZWxsLm9wZW5JdGVtKGZvbGRlcik7fX0gOiBudWxsO1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIDxTZXR0aW5nc1RpdGxlIGtleT1cInRpdGxlXCIgdGV4dD17dGl0bGV9IGJ1dHRvbj17YnV0dG9ufSBvdGhlckNoaWxkcmVuPXtzaG93UmVsb2FkSWNvbiAmJiA8UmVsb2FkSWNvbiBjbGFzc05hbWU9XCJiZC1yZWxvYWRcIiBvbkNsaWNrPXt0aGlzLnJlbG9hZC5iaW5kKHRoaXMpfSAvPn0gLz4sXHJcbiAgICAgICAgICAgIDx1bCBrZXk9XCJDb250ZW50TGlzdFwiIGNsYXNzTmFtZT17XCJiZGEtc2xpc3RcIn0+XHJcbiAgICAgICAgICAgIHtjb250ZW50TGlzdC5zb3J0KChhLCBiKSA9PiBhLm5hbWUudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGIubmFtZS50b0xvd2VyQ2FzZSgpKSkubWFwKGNvbnRlbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgQ2FyZFR5cGUgPSBjb250ZW50LnR5cGUgPyBQbHVnaW5DYXJkIDogVGhlbWVDYXJkO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxDYXJkVHlwZSBzaG93UmVsb2FkSWNvbj17c2hvd1JlbG9hZEljb259IGtleT17Y29udGVudC5pZH0gZW5hYmxlZD17Y29udGVudFN0YXRlW2NvbnRlbnQuaWRdfSBjb250ZW50PXtjb250ZW50fSBvbkNoYW5nZT17b25DaGFuZ2V9IHJlbG9hZD17cmVsb2FkfSAvPjtcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgXTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/contentlist.jsx\n");
/***/ }),
/***/ "./src/ui/settings/divider.jsx":
/*!*************************************!*\
!*** ./src/ui/settings/divider.jsx ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Divider; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nclass Divider extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n render() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-divider divider-3573oO marginTop8-1DLZ1n marginBottom40-2vIwTv\"\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2RpdmlkZXIuanN4P2M4Y2MiXSwibmFtZXMiOlsiRGl2aWRlciIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVlLE1BQU1BLE9BQU4sU0FBc0JDLDZDQUFLLENBQUNDLFNBQTVCLENBQXNDO0FBQ2pEQyxRQUFNLEdBQUc7QUFDTCxXQUFPO0FBQUssZUFBUyxFQUFDO0FBQWYsTUFBUDtBQUNIOztBQUhnRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9kaXZpZGVyLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEaXZpZGVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJiZC1kaXZpZGVyIGRpdmlkZXItMzU3M29PIG1hcmdpblRvcDgtMURMWjFuIG1hcmdpbkJvdHRvbTQwLTJ2SXdUdlwiIC8+O1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/divider.jsx\n");
/***/ }),
/***/ "./src/ui/settings/group.jsx":
/*!***********************************!*\
!*** ./src/ui/settings/group.jsx ***!
\***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Group; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _divider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./divider */ \"./src/ui/settings/divider.jsx\");\n/* harmony import */ var _switch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./switch */ \"./src/ui/settings/switch.jsx\");\n\n\n\n\nconst baseClassName = \"bd-settings-group\";\nclass Group extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n\n if (this.props.button && this.props.collapsible) {\n const original = this.props.button.onClick;\n\n this.props.button.onClick = event => {\n event.stopPropagation();\n original(...arguments);\n };\n }\n\n if (!this.props.hasOwnProperty(\"shown\")) this.props.shown = true;\n this.container = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.state = {\n collapsed: this.props.collapsible && !this.props.shown\n };\n this.onChange = this.onChange.bind(this);\n }\n\n toggleCollapse() {\n const container = this.container.current;\n const timeout = this.state.collapsed ? 300 : 1;\n container.style.setProperty(\"height\", container.scrollHeight + \"px\");\n this.setState({\n collapsed: !this.state.collapsed\n }, () => setTimeout(() => container.style.setProperty(\"height\", \"\"), timeout));\n }\n\n onChange(id, value) {\n if (!this.props.onChange) return;\n if (this.props.id) this.props.onChange(this.props.id, id, value);else this.props.onChange(id, value);\n this.forceUpdate();\n }\n\n render() {\n const {\n settings\n } = this.props;\n const collapseClass = this.props.collapsible ? `collapsible ${this.state.collapsed && \"collapsed\"}` : \"\";\n const groupClass = `${baseClassName} ${collapseClass}`;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: groupClass\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: this.props.name,\n collapsible: this.props.collapsible,\n onClick: () => this.toggleCollapse(),\n button: this.props.button,\n isGroup: true\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bd-settings-container\",\n ref: this.container\n }, settings.filter(s => !s.hidden).map(setting => modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_switch__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n disabled: setting.disabled,\n id: setting.id,\n key: setting.id,\n name: setting.name,\n note: setting.note,\n checked: setting.value,\n onChange: this.onChange\n }))), this.props.showDivider && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_divider__WEBPACK_IMPORTED_MODULE_2__[\"default\"], null));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2dyb3VwLmpzeD8xYjcyIl0sIm5hbWVzIjpbImJhc2VDbGFzc05hbWUiLCJHcm91cCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsImJ1dHRvbiIsImNvbGxhcHNpYmxlIiwib3JpZ2luYWwiLCJvbkNsaWNrIiwiZXZlbnQiLCJzdG9wUHJvcGFnYXRpb24iLCJhcmd1bWVudHMiLCJoYXNPd25Qcm9wZXJ0eSIsInNob3duIiwiY29udGFpbmVyIiwiY3JlYXRlUmVmIiwic3RhdGUiLCJjb2xsYXBzZWQiLCJvbkNoYW5nZSIsImJpbmQiLCJ0b2dnbGVDb2xsYXBzZSIsImN1cnJlbnQiLCJ0aW1lb3V0Iiwic3R5bGUiLCJzZXRQcm9wZXJ0eSIsInNjcm9sbEhlaWdodCIsInNldFN0YXRlIiwic2V0VGltZW91dCIsImlkIiwidmFsdWUiLCJmb3JjZVVwZGF0ZSIsInJlbmRlciIsInNldHRpbmdzIiwiY29sbGFwc2VDbGFzcyIsImdyb3VwQ2xhc3MiLCJuYW1lIiwiZmlsdGVyIiwicyIsImhpZGRlbiIsIm1hcCIsInNldHRpbmciLCJkaXNhYmxlZCIsIm5vdGUiLCJzaG93RGl2aWRlciJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQSxNQUFNQSxhQUFhLEdBQUcsbUJBQXRCO0FBRWUsTUFBTUMsS0FBTixTQUFvQkMsNkNBQUssQ0FBQ0MsU0FBMUIsQ0FBb0M7QUFDL0NDLGFBQVcsQ0FBQ0MsS0FBRCxFQUFRO0FBQ2YsVUFBTUEsS0FBTjs7QUFFQSxRQUFJLEtBQUtBLEtBQUwsQ0FBV0MsTUFBWCxJQUFxQixLQUFLRCxLQUFMLENBQVdFLFdBQXBDLEVBQWlEO0FBQzdDLFlBQU1DLFFBQVEsR0FBRyxLQUFLSCxLQUFMLENBQVdDLE1BQVgsQ0FBa0JHLE9BQW5DOztBQUNBLFdBQUtKLEtBQUwsQ0FBV0Ms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QUFBcUUsVUFBSSxFQUFFWSxPQUFPLENBQUNMLElBQW5GO0FBQXlGLFVBQUksRUFBRUssT0FBTyxDQUFDRSxJQUF2RztBQUE2RyxhQUFPLEVBQUVGLE9BQU8sQ0FBQ1gsS0FBOUg7QUFBcUksY0FBUSxFQUFFLEtBQUtYO0FBQXBKLE1BREgsQ0FETCxDQUZMLEVBT00sS0FBS2QsS0FBTCxDQUFXdUMsV0FBWCxJQUEwQiw0REFBQyxnREFBRCxPQVBoQyxDQUFQO0FBU0g7O0FBbEQ4QyIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9ncm91cC5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5pbXBvcnQgVGl0bGUgZnJvbSBcIi4vdGl0bGVcIjtcclxuaW1wb3J0IERpdmlkZXIgZnJvbSBcIi4vZGl2aWRlclwiO1xyXG5pbXBvcnQgU3dpdGNoIGZyb20gXCIuL3N3aXRjaFwiO1xyXG5cclxuY29uc3QgYmFzZUNsYXNzTmFtZSA9IFwiYmQtc2V0dGluZ3MtZ3JvdXBcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdyb3VwIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5idXR0b24gJiYgdGhpcy5wcm9wcy5jb2xsYXBzaWJsZSkge1xyXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbCA9IHRoaXMucHJvcHMuYnV0dG9uLm9uQ2xpY2s7XHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMuYnV0dG9uLm9uQ2xpY2sgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWwoLi4uYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5wcm9wcy5oYXNPd25Qcm9wZXJ0eShcInNob3duXCIpKSB0aGlzLnByb3BzLnNob3duID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBSZWFjdC5jcmVhdGVSZWYoKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAgICAgICBjb2xsYXBzZWQ6IHRoaXMucHJvcHMuY29sbGFwc2libGUgJiYgIXRoaXMucHJvcHMuc2hvd25cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gdGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZUNvbGxhcHNlKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLmN1cnJlbnQ7XHJcbiAgICAgICAgY29uc3QgdGltZW91dCA9IHRoaXMuc3RhdGUuY29sbGFwc2VkID8gMzAwIDogMTtcclxuICAgICAgICBjb250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoXCJoZWlnaHRcIiwgY29udGFpbmVyLnNjcm9sbEhlaWdodCArIFwicHhcIik7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y29sbGFwc2VkOiAhdGhpcy5zdGF0ZS5jb2xsYXBzZWR9LCAoKSA9PiBzZXRUaW1lb3V0KCgpID0+IGNvbnRhaW5lci5zdHlsZS5zZXRQcm9wZXJ0eShcImhlaWdodFwiLCBcIlwiKSwgdGltZW91dCkpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKGlkLCB2YWx1ZSkge1xyXG4gICAgICAgIGlmICghdGhpcy5wcm9wcy5vbkNoYW5nZSkgcmV0dXJuO1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmlkKSB0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMucHJvcHMuaWQsIGlkLCB2YWx1ZSk7XHJcbiAgICAgICAgZWxzZSB0aGlzLnByb3BzLm9uQ2hhbmdlKGlkLCB2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCB7c2V0dGluZ3N9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICBjb25zdCBjb2xsYXBzZUNsYXNzID0gdGhpcy5wcm9wcy5jb2xsYXBzaWJsZSA/IGBjb2xsYXBzaWJsZSAke3RoaXMuc3RhdGUuY29sbGFwc2VkICYmIFwiY29sbGFwc2VkXCJ9YCA6IFwiXCI7XHJcbiAgICAgICAgY29uc3QgZ3JvdXBDbGFzcyA9IGAke2Jhc2VDbGFzc05hbWV9ICR7Y29sbGFwc2VDbGFzc31gO1xyXG5cclxuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9e2dyb3VwQ2xhc3N9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxUaXRsZSB0ZXh0PXt0aGlzLnByb3BzLm5hbWV9IGNvbGxhcHNpYmxlPXt0aGlzLnByb3BzLmNvbGxhcHNpYmxlfSBvbkNsaWNrPXsoKSA9PiB0aGlzLnRvZ2dsZUNvbGxhcHNlKCl9IGJ1dHRvbj17dGhpcy5wcm9wcy5idXR0b259IGlzR3JvdXA9e3RydWV9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiZC1zZXR0aW5ncy1jb250YWluZXJcIiByZWY9e3RoaXMuY29udGFpbmVyfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3NldHRpbmdzLmZpbHRlcihzID0+ICFzLmhpZGRlbikubWFwKChzZXR0aW5nKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN3aXRjaCBkaXNhYmxlZD17c2V0dGluZy5kaXNhYmxlZH0gaWQ9e3NldHRpbmcuaWR9IGtleT17c2V0dGluZy5pZH0gbmFtZT17c2V0dGluZy5uYW1lfSBub3RlPXtzZXR0aW5nLm5vdGV9IGNoZWNrZWQ9e3NldHRpbmcudmFsdWV9IG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLnNob3dEaXZpZGVyICYmIDxEaXZpZGVyIC8+fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+O1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/group.jsx\n");
/***/ }),
/***/ "./src/ui/settings/plugincard.js":
/*!***************************************!*\
!*** ./src/ui/settings/plugincard.js ***!
\***************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return PluginCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_close__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/close */ \"./src/ui/icons/close.jsx\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n// import {SettingsCookie, PluginCookie, Plugins} from \"data\";\n\n\n\nclass PluginCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.onChange = this.onChange.bind(this);\n this.showSettings = this.showSettings.bind(this);\n this.state = {\n checked: this.props.enabled,\n //PluginManager.isEnabled(this.props.content.id),\n settingsOpen: false\n };\n this.hasSettings = typeof this.props.content.plugin.getSettingsPanel === \"function\";\n this.settingsPanel = \"\";\n this.panelRef = modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createRef();\n this.reload = this.reload.bind(this); // this.onReload = this.onReload.bind(this);\n }\n\n reload() {\n if (!this.props.reload) return;\n this.props.content = this.props.reload(this.props.content.id);\n this.forceUpdate();\n }\n\n componentDidUpdate() {\n if (this.state.settingsOpen) {\n if (this.settingsPanel instanceof Node) {\n this.panelRef.current.appendChild(this.settingsPanel);\n } // if (!SettingsCookie[\"fork-ps-3\"]) return;\n\n\n const isHidden = (container, element) => {\n const cTop = container.scrollTop;\n const cBottom = cTop + container.clientHeight;\n const eTop = element.offsetTop;\n const eBottom = eTop + element.clientHeight;\n return eTop < cTop || eBottom > cBottom;\n };\n\n const panel = $(this.panelRef.current);\n const container = panel.parents(\".scroller-2FKFPG\");\n if (!isHidden(container[0], panel[0])) return;\n container.animate({\n scrollTop: panel.offset().top - container.offset().top + container.scrollTop() - 30\n }, 300);\n }\n }\n\n getString(value) {\n return typeof value == \"string\" ? value : value.toString();\n }\n\n render() {\n const {\n content\n } = this.props;\n const name = this.getString(content.name);\n const author = this.getString(content.author);\n const description = this.getString(content.description);\n const version = this.getString(content.version);\n const website = content.website;\n const source = content.source;\n\n if (this.state.settingsOpen) {\n try {\n this.settingsPanel = content.plugin.getSettingsPanel();\n } catch (err) {\n modules__WEBPACK_IMPORTED_MODULE_0__[\"Utilities\"].err(\"Plugins\", \"Unable to get settings panel for \" + content.name + \".\", err);\n }\n\n const props = {\n id: `plugin-settings-${name}`,\n className: \"plugin-settings\",\n ref: this.panelRef\n };\n if (typeof this.settingsPanel == \"string\") props.dangerouslySetInnerHTML = this.settingsPanel;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"li\", {\n className: \"settings-open ui-switch-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n style: {\n \"float\": \"right\",\n \"cursor\": \"pointer\"\n },\n onClick: () => {\n this.panelRef.current.innerHTML = \"\";\n this.setState({\n settingsOpen: false\n });\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_close__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", props, this.settingsPanel instanceof modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component ? this.settingsPanel : null));\n }\n\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"li\", {\n \"data-name\": name,\n \"data-version\": version,\n \"className\": \"settings-closed ui-switch-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-header-title\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-name\"\n }, name), \" v\", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-version\"\n }, version), \" by \", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-author\"\n }, author)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-controls\"\n }, !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"content\", \"autoReload\") && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n className: \"bd-reload bd-reload-card\",\n onClick: this.reload\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n className: \"ui-switch-wrapper ui-flex-child\",\n style: {\n flex: \"0 0 auto\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n checked: this.state.checked,\n onChange: this.onChange,\n className: \"ui-switch-checkbox\",\n type: \"checkbox\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: this.state.checked ? \"ui-switch checked\" : \"ui-switch\"\n })))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description-wrap scroller-wrap fade\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description scroller\"\n }, description)), (website || source || this.hasSettings) && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-footer\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-links\"\n }, website && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link bda-link-website\",\n href: website,\n target: \"_blank\"\n }, \"Website\"), website && source && \" | \", source && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link bda-link-source\",\n href: source,\n target: \"_blank\"\n }, \"Source\")), this.hasSettings && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n onClick: this.showSettings,\n className: \"bda-settings-button\",\n disabled: !this.state.checked\n }, \"Settings\")));\n }\n\n onChange() {\n this.setState({\n checked: !this.state.checked\n }); // PluginManager.togglePlugin(this.props.content.id);\n\n this.props.onChange && this.props.onChange(this.props.content.id);\n }\n\n showSettings() {\n if (!this.hasSettings) return;\n this.setState({\n settingsOpen: true\n });\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3BsdWdpbmNhcmQuanM/NzczZCJdLCJuYW1lcyI6WyJQbHVnaW5DYXJkIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwib25DaGFuZ2UiLCJiaW5kIiwic2hvd1NldHRpbmdzIiwic3RhdGUiLCJjaGVja2VkIiwiZW5hYmxlZCIsInNldHRpbmdzT3BlbiIsImhhc1NldHRpbmdzIiwiY29udGVudCIsInBsdWdpbiIsImdldFNldHRpbmdzUGFuZWwiLCJzZXR0aW5nc1BhbmVsIiwicGFuZWxSZWYiLCJjcmVhdGVSZWYiLCJyZWxvYWQiLCJpZCIsImZvcmNlVXBkYXRlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwiTm9kZSIsImN1cnJlbnQiLCJhcHBlbmRDaGlsZCIsImlzSGlkZGVuIiwiY29udGFpbmVyIiwiZWxlbWVudCIsImNUb3AiLCJzY3JvbGxUb3AiLCJjQm90dG9tIiwiY2xpZW50SGVpZ2h0IiwiZVRvcCIsIm9mZnNldFRvcCIsImVCb3R0b20iLCJwYW5lbCIsIiQiLCJwYXJlbnRzIiwiYW5pbWF0ZSIsIm9mZnNldCIsInRvcCIsImdldFN0cmluZyIsInZhbHVlIiwidG9TdHJpbmciLCJyZW5kZXIiLCJuYW1lIiwiYXV0aG9yIiwiZGVzY3JpcHRpb24iLCJ2ZXJzaW9uIiwid2Vic2l0ZSIsInNvdXJjZSIsImVyciIsIlV0aWxpdGllcyIsImNsYXNzTmFtZSIsInJlZiIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwib25DbGljayIsImlubmVySFRNTCIsInNldFN0YXRlIiwiQ2xvc2VCdXR0b24iLCJTZXR0aW5ncyIsImdldCIsIlJlbG9hZEljb24iLCJmbGV4IiwidHlwZSIsImhyZWYiLCJ0YXJnZXQiLCJkaXNhYmxlZCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtB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UUFBTCxDQUFjO0FBQUNsRCxrQkFBWSxFQUFFO0FBQWYsS0FBZDtBQUNIOztBQTFIbUQiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvcGx1Z2luY2FyZC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCB7U2V0dGluZ3NDb29raWUsIFBsdWdpbkNvb2tpZSwgUGx1Z2luc30gZnJvbSBcImRhdGFcIjtcclxuaW1wb3J0IHtSZWFjdCwgVXRpbGl0aWVzLCBTZXR0aW5nc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuaW1wb3J0IENsb3NlQnV0dG9uIGZyb20gXCIuLi9pY29ucy9jbG9zZVwiO1xyXG5pbXBvcnQgUmVsb2FkSWNvbiBmcm9tIFwiLi4vaWNvbnMvcmVsb2FkXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQbHVnaW5DYXJkIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gdGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc2hvd1NldHRpbmdzID0gdGhpcy5zaG93U2V0dGluZ3MuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAgICAgICBjaGVja2VkOiB0aGlzLnByb3BzLmVuYWJsZWQsLy9QbHVnaW5NYW5hZ2VyLmlzRW5hYmxlZCh0aGlzLnByb3BzLmNvbnRlbnQuaWQpLFxyXG4gICAgICAgICAgICBzZXR0aW5nc09wZW46IGZhbHNlXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmhhc1NldHRpbmdzID0gdHlwZW9mIHRoaXMucHJvcHMuY29udGVudC5wbHVnaW4uZ2V0U2V0dGluZ3NQYW5lbCA9PT0gXCJmdW5jdGlvblwiO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3NQYW5lbCA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5wYW5lbFJlZiA9IFJlYWN0LmNyZWF0ZVJlZigpO1xyXG5cclxuICAgICAgICB0aGlzLnJlbG9hZCA9IHRoaXMucmVsb2FkLmJpbmQodGhpcyk7XHJcbiAgICAgICAgLy8gdGhpcy5vblJlbG9hZCA9IHRoaXMub25SZWxvYWQuYmluZCh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICByZWxvYWQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLnJlbG9hZCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMucHJvcHMuY29udGVudCA9IHRoaXMucHJvcHMucmVsb2FkKHRoaXMucHJvcHMuY29udGVudC5pZCk7XHJcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5zZXR0aW5nc09wZW4pIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3NQYW5lbCBpbnN0YW5jZW9mIE5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFuZWxSZWYuY3VycmVudC5hcHBlbmRDaGlsZCh0aGlzLnNldHRpbmdzUGFuZWwpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBpZiAoIVNldHRpbmdzQ29va2llW1wiZm9yay1wcy0zXCJdKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IGlzSGlkZGVuID0gKGNvbnRhaW5lciwgZWxlbWVudCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGNUb3AgPSBjb250YWluZXIuc2Nyb2xsVG9wO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY0JvdHRvbSA9IGNUb3AgKyBjb250YWluZXIuY2xpZW50SGVpZ2h0O1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGVUb3AgPSBlbGVtZW50Lm9mZnNldFRvcDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVCb3R0b20gPSBlVG9wICsgZWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHJldHVybiAgKGVUb3AgPCBjVG9wIHx8IGVCb3R0b20gPiBjQm90dG9tKTtcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHBhbmVsID0gJCh0aGlzLnBhbmVsUmVmLmN1cnJlbnQpO1xyXG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBwYW5lbC5wYXJlbnRzKFwiLnNjcm9sbGVyLTJGS0ZQR1wiKTtcclxuICAgICAgICAgICAgaWYgKCFpc0hpZGRlbihjb250YWluZXJbMF0sIHBhbmVsWzBdKSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb250YWluZXIuYW5pbWF0ZSh7XHJcbiAgICAgICAgICAgICAgICBzY3JvbGxUb3A6IHBhbmVsLm9mZnNldCgpLnRvcCAtIGNvbnRhaW5lci5vZmZzZXQoKS50b3AgKyBjb250YWluZXIuc2Nyb2xsVG9wKCkgLSAzMFxyXG4gICAgICAgICAgICB9LCAzMDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRTdHJpbmcodmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09IFwic3RyaW5nXCIgPyB2YWx1ZSA6IHZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHtjb250ZW50fSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0U3RyaW5nKGNvbnRlbnQubmFtZSk7XHJcbiAgICAgICAgY29uc3QgYXV0aG9yID0gdGhpcy5nZXRTdHJpbmcoY29udGVudC5hdXRob3IpO1xyXG4gICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gdGhpcy5nZXRTdHJpbmcoY29udGVudC5kZXNjcmlwdGlvbik7XHJcbiAgICAgICAgY29uc3QgdmVyc2lvbiA9IHRoaXMuZ2V0U3RyaW5nKGNvbnRlbnQudmVyc2lvbik7XHJcbiAgICAgICAgY29uc3Qgd2Vic2l0ZSA9IGNvbnRlbnQud2Vic2l0ZTtcclxuICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZW50LnNvdXJjZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuc2V0dGluZ3NPcGVuKSB7XHJcbiAgICAgICAgICAgIHRyeSB7IHRoaXMuc2V0dGluZ3NQYW5lbCA9IGNvbnRlbnQucGx1Z2luLmdldFNldHRpbmdzUGFuZWwoKTsgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7IFV0aWxpdGllcy5lcnIoXCJQbHVnaW5zXCIsIFwiVW5hYmxlIHRvIGdldCBzZXR0aW5ncyBwYW5lbCBmb3IgXCIgKyBjb250ZW50Lm5hbWUgKyBcIi5cIiwgZXJyKTsgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgcHJvcHMgPSB7aWQ6IGBwbHVnaW4tc2V0dGluZ3MtJHtuYW1lfWAsIGNsYXNzTmFtZTogXCJwbHVnaW4tc2V0dGluZ3NcIiwgcmVmOiB0aGlzLnBhbmVsUmVmfTtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZih0aGlzLnNldHRpbmdzUGFuZWwpID09IFwic3RyaW5nXCIpIHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MID0gdGhpcy5zZXR0aW5nc1BhbmVsO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7Y2xhc3NOYW1lOiBcInNldHRpbmdzLW9wZW4gdWktc3dpdGNoLWl0ZW1cIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7c3R5bGU6IHtcImZsb2F0XCI6IFwicmlnaHRcIiwgXCJjdXJzb3JcIjogXCJwb2ludGVyXCJ9LCBvbkNsaWNrOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhbmVsUmVmLmN1cnJlbnQuaW5uZXJIVE1MID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe3NldHRpbmdzT3BlbjogZmFsc2V9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX0sXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChDbG9zZUJ1dHRvbiwgbnVsbClcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHByb3BzLCB0aGlzLnNldHRpbmdzUGFuZWwgaW5zdGFuY2VvZiBSZWFjdC5Db21wb25lbnQgPyB0aGlzLnNldHRpbmdzUGFuZWwgOiBudWxsKSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImxpXCIsIHtcImRhdGEtbmFtZVwiOiBuYW1lLCBcImRhdGEtdmVyc2lvblwiOiB2ZXJzaW9uLCBcImNsYXNzTmFtZVwiOiBcInNldHRpbmdzLWNsb3NlZCB1aS1zd2l0Y2gtaXRlbVwifSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1oZWFkZXJcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtaGVhZGVyLXRpdGxlXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1uYW1lXCJ9LCBuYW1lKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS12ZXJzaW9uXCJ9LCB2ZXJzaW9uKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgYnkgXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWF1dGhvclwifSwgYXV0aG9yKVxyXG4gICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1jb250cm9sc1wifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgIVNldHRpbmdzLmdldChcInNldHRpbmdzXCIsIFwiY29udGVudFwiLCBcImF1dG9SZWxvYWRcIikgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChSZWxvYWRJY29uLCB7Y2xhc3NOYW1lOiBcImJkLXJlbG9hZCBiZC1yZWxvYWQtY2FyZFwiLCBvbkNsaWNrOiB0aGlzLnJlbG9hZH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGFiZWxcIiwge2NsYXNzTmFtZTogXCJ1aS1zd2l0Y2gtd3JhcHBlciB1aS1mbGV4LWNoaWxkXCIsIHN0eWxlOiB7ZmxleDogXCIwIDAgYXV0b1wifX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge2NoZWNrZWQ6IHRoaXMuc3RhdGUuY2hlY2tlZCwgb25DaGFuZ2U6IHRoaXMub25DaGFuZ2UsIGNsYXNzTmFtZTogXCJ1aS1zd2l0Y2gtY2hlY2tib3hcIiwgdHlwZTogXCJjaGVja2JveFwifSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IHRoaXMuc3RhdGUuY2hlY2tlZCA/IFwidWktc3dpdGNoIGNoZWNrZWRcIiA6IFwidWktc3dpdGNoXCJ9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWRlc2NyaXB0aW9uLXdyYXAgc2Nyb2xsZXItd3JhcCBmYWRlXCJ9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1kZXNjcmlwdGlvbiBzY3JvbGxlclwifSwgZGVzY3JpcHRpb24pXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICh3ZWJzaXRlIHx8IHNvdXJjZSB8fCB0aGlzLmhhc1NldHRpbmdzKSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWZvb3RlclwifSxcclxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmtzXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgIHdlYnNpdGUgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwge2NsYXNzTmFtZTogXCJiZGEtbGluayBiZGEtbGluay13ZWJzaXRlXCIsIGhyZWY6IHdlYnNpdGUsIHRhcmdldDogXCJfYmxhbmtcIn0sIFwiV2Vic2l0ZVwiKSxcclxuICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlICYmIHNvdXJjZSAmJiBcIiB8IFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZSAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCB7Y2xhc3NOYW1lOiBcImJkYS1saW5rIGJkYS1saW5rLXNvdXJjZVwiLCBocmVmOiBzb3VyY2UsIHRhcmdldDogXCJfYmxhbmtcIn0sIFwiU291cmNlXCIpXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5oYXNTZXR0aW5ncyAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHtvbkNsaWNrOiB0aGlzLnNob3dTZXR0aW5ncywgY2xhc3NOYW1lOiBcImJkYS1zZXR0aW5ncy1idXR0b25cIiwgZGlzYWJsZWQ6ICF0aGlzLnN0YXRlLmNoZWNrZWR9LCBcIlNldHRpbmdzXCIpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhbmdlKCkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2NoZWNrZWQ6ICF0aGlzLnN0YXRlLmNoZWNrZWR9KTtcclxuICAgICAgICAvLyBQbHVnaW5NYW5hZ2VyLnRvZ2dsZVBsdWdpbih0aGlzLnByb3BzLmNvbnRlbnQuaWQpO1xyXG4gICAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UgJiYgdGhpcy5wcm9wcy5vbkNoYW5nZSh0aGlzLnByb3BzLmNvbnRlbnQuaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dTZXR0aW5ncygpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaGFzU2V0dGluZ3MpIHJldHVybjtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtzZXR0aW5nc09wZW46IHRydWV9KTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/plugincard.js\n");
/***/ }),
/***/ "./src/ui/settings/settings.js":
/*!*************************************!*\
!*** ./src/ui/settings/settings.js ***!
\*************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2_SettingsPanel; });\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _contentlist__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./contentlist */ \"./src/ui/settings/contentlist.jsx\");\n/* harmony import */ var _settings_group__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../settings/group */ \"./src/ui/settings/group.jsx\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./title */ \"./src/ui/settings/title.jsx\");\n\n\n\n\n\nclass V2_SettingsPanel {\n static buildSettingsPanel(title, config, state, onChange, button = null) {\n config.forEach(section => {\n section.settings.forEach(item => item.value = state[section.id][item.id]);\n });\n return this.getSettingsPanel(title, config, onChange, button);\n }\n\n static getSettingsPanel(title, groups, onChange, button = null) {\n return [modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n text: title,\n button: button\n }), groups.map(section => {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_settings_group__WEBPACK_IMPORTED_MODULE_3__[\"default\"], Object.assign({}, section, {\n onChange\n }));\n })];\n }\n\n static getContentPanel(title, contentList, contentState, options = {}) {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(_contentlist__WEBPACK_IMPORTED_MODULE_2__[\"default\"], Object.assign({}, {\n title: title,\n contentList: contentList,\n contentState: contentState\n }, options));\n }\n\n static get attribution() {\n return modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"div\", {\n style: {\n fontSize: \"12px\",\n fontWeight: \"600\",\n color: \"#72767d\",\n padding: \"2px 10px\"\n }\n }, `BBD v${data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].bbdVersion} by `, modules__WEBPACK_IMPORTED_MODULE_1__[\"React\"].createElement(\"a\", {\n href: \"https://github.com/rauenzi/\",\n target: \"_blank\"\n }, \"Zerebos\"));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3NldHRpbmdzLmpzPzgwYWIiXSwibmFtZXMiOlsiVjJfU2V0dGluZ3NQYW5lbCIsImJ1aWxkU2V0dGluZ3NQYW5lbCIsInRpdGxlIiwiY29uZmlnIiwic3RhdGUiLCJvbkNoYW5nZSIsImJ1dHRvbiIsImZvckVhY2giLCJzZWN0aW9uIiwic2V0dGluZ3MiLCJpdGVtIiwidmFsdWUiLCJpZCIsImdldFNldHRpbmdzUGFuZWwiLCJncm91cHMiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJTZXR0aW5nc1RpdGxlIiwidGV4dCIsIm1hcCIsIlNldHRpbmdzR3JvdXAiLCJPYmplY3QiLCJhc3NpZ24iLCJnZXRDb250ZW50UGFuZWwiLCJjb250ZW50TGlzdCIsImNvbnRlbnRTdGF0ZSIsIm9wdGlvbnMiLCJDb250ZW50TGlzdCIsImF0dHJpYnV0aW9uIiwic3R5bGUiLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJjb2xvciIsInBhZGRpbmciLCJDb25maWciLCJiYmRWZXJzaW9uIiwiaHJlZiIsInRhcmdldCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRWUsTUFBTUEsZ0JBQU4sQ0FBdUI7QUFFbEMsU0FBT0Msa0JBQVAsQ0FBMEJDLEtBQTFCLEVBQWlDQyxNQUFqQyxFQUF5Q0MsS0FBekMsRUFBZ0RDLFFBQWhELEVBQTBEQyxNQUFNLEdBQUcsSUFBbkUsRUFBeUU7QUFDckVILFVBQU0sQ0FBQ0ksT0FBUCxDQUFlQyxPQUFPLElBQUk7QUFDdEJBLGFBQU8sQ0FBQ0MsUUFBUixDQUFpQkYsT0FBakIsQ0FBeUJHLElBQUksSUFBSUEsSUFBSSxDQUFDQyxLQUFMLEdBQWFQLEtBQUssQ0FBQ0ksT0FBTyxDQUFDSSxFQUFULENBQUwsQ0FBa0JGLElBQUksQ0FBQ0UsRUFBdkIsQ0FBOUM7QUFDSCxLQUZEO0FBR0EsV0FBTyxLQUFLQyxnQkFBTCxDQUFzQlgsS0FBdEIsRUFBNkJDLE1BQTdCLEVBQXFDRSxRQUFyQyxFQUErQ0MsTUFBL0MsQ0FBUDtBQUNIOztBQUVELFNBQU9PLGdCQUFQLENBQXdCWCxLQUF4QixFQUErQlksTUFBL0IsRUFBdUNULFFBQXZDLEVBQWlEQyxNQUFNLEdBQUcsSUFBMUQsRUFBZ0U7QUFDNUQsV0FBTyxDQUFDUyw2Q0FBSyxDQUFDQyxhQUFOLENBQW9CQyw4Q0FBcEIsRUFBbUM7QUFBQ0MsVUFBSSxFQUFFaEIsS0FBUDtBQUFjSSxZQUFNLEVBQUVBO0FBQXRCLEtBQW5DLENBQUQsRUFBb0VRLE1BQU0sQ0FBQ0ssR0FBUCxDQUFXWCxPQUFPLElBQUk7QUFDN0YsYUFBT08sNkNBQUssQ0FBQ0MsYUFBTixDQUFvQkksdURBQXBCLEVBQW1DQyxNQUFNLENBQUNDLE1BQVAsQ0FBYyxFQUFkLEVBQWtCZCxPQUFsQixFQUEyQjtBQUFDSDtBQUFELE9BQTNCLENBQW5DLENBQVA7QUFDSCxLQUYwRSxDQUFwRSxDQUFQO0FBR0g7O0FBRUQsU0FBT2tCLGVBQVAsQ0FBdUJyQixLQUF2QixFQUE4QnNCLFdBQTlCLEVBQTJDQyxZQUEzQyxFQUF5REMsT0FBTyxHQUFHLEVBQW5FLEVBQXVFO0FBQ25FLFdBQU9YLDZDQUFLLENBQUNDLGFBQU4sQ0FBb0JXLG9EQUFwQixFQUFpQ04sTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFrQjtBQUN0RHBCLFdBQUssRUFBRUEsS0FEK0M7QUFFdERzQixpQkFBVyxFQUFFQSxXQUZ5QztBQUd0REMsa0JBQVksRUFBRUE7QUFId0MsS0FBbEIsRUFJckNDLE9BSnFDLENBQWpDLENBQVA7QUFLSDs7QUFFRCxhQUFXRSxXQUFYLEdBQXlCO0FBQ3JCLFdBQU9iLDZDQUFLLENBQUNDLGFBQU4sQ0FDSCxLQURHLEVBRUg7QUFBQ2EsV0FBSyxFQUFFO0FBQUNDLGdCQUFRLEVBQUUsTUFBWDtBQUFtQkMsa0JBQVUsRUFBRSxLQUEvQjtBQUFzQ0MsYUFBSyxFQUFFLFNBQTdDO0FBQXdEQyxlQUFPLEVBQUU7QUFBakU7QUFBUixLQUZHLEVBR0YsUUFBT0MsMkNBQU0sQ0FBQ0MsVUFBVyxNQUh2QixFQUlIcEIsNkNBQUssQ0FBQ0MsYUFBTixDQUNJLEdBREosRUFFSTtBQUFDb0IsVUFBSSxFQUFFLDZCQUFQO0FBQXNDQyxZQUFNLEVBQUU7QUFBOUMsS0FGSixFQUdJLFNBSEosQ0FKRyxDQUFQO0FBVUg7O0FBbENpQyIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9zZXR0aW5ncy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uZmlnfSBmcm9tIFwiZGF0YVwiO1xyXG5pbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IENvbnRlbnRMaXN0IGZyb20gXCIuL2NvbnRlbnRsaXN0XCI7XHJcbmltcG9ydCBTZXR0aW5nc0dyb3VwIGZyb20gXCIuLi9zZXR0aW5ncy9ncm91cFwiO1xyXG5pbXBvcnQgU2V0dGluZ3NUaXRsZSBmcm9tIFwiLi90aXRsZVwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVjJfU2V0dGluZ3NQYW5lbCB7XHJcblxyXG4gICAgc3RhdGljIGJ1aWxkU2V0dGluZ3NQYW5lbCh0aXRsZSwgY29uZmlnLCBzdGF0ZSwgb25DaGFuZ2UsIGJ1dHRvbiA9IG51bGwpIHtcclxuICAgICAgICBjb25maWcuZm9yRWFjaChzZWN0aW9uID0+IHtcclxuICAgICAgICAgICAgc2VjdGlvbi5zZXR0aW5ncy5mb3JFYWNoKGl0ZW0gPT4gaXRlbS52YWx1ZSA9IHN0YXRlW3NlY3Rpb24uaWRdW2l0ZW0uaWRdKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTZXR0aW5nc1BhbmVsKHRpdGxlLCBjb25maWcsIG9uQ2hhbmdlLCBidXR0b24pO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRTZXR0aW5nc1BhbmVsKHRpdGxlLCBncm91cHMsIG9uQ2hhbmdlLCBidXR0b24gPSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIFtSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzVGl0bGUsIHt0ZXh0OiB0aXRsZSwgYnV0dG9uOiBidXR0b259KSwgZ3JvdXBzLm1hcChzZWN0aW9uID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NHcm91cCwgT2JqZWN0LmFzc2lnbih7fSwgc2VjdGlvbiwge29uQ2hhbmdlfSkpO1xyXG4gICAgICAgIH0pXTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0Q29udGVudFBhbmVsKHRpdGxlLCBjb250ZW50TGlzdCwgY29udGVudFN0YXRlLCBvcHRpb25zID0ge30pIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChDb250ZW50TGlzdCwgT2JqZWN0LmFzc2lnbih7fSwge1xyXG4gICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgIGNvbnRlbnRMaXN0OiBjb250ZW50TGlzdCxcclxuICAgICAgICAgICAgY29udGVudFN0YXRlOiBjb250ZW50U3RhdGVcclxuICAgICAgICB9LCBvcHRpb25zKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldCBhdHRyaWJ1dGlvbigpIHtcclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcclxuICAgICAgICAgICAgXCJkaXZcIixcclxuICAgICAgICAgICAge3N0eWxlOiB7Zm9udFNpemU6IFwiMTJweFwiLCBmb250V2VpZ2h0OiBcIjYwMFwiLCBjb2xvcjogXCIjNzI3NjdkXCIsIHBhZGRpbmc6IFwiMnB4IDEwcHhcIn19LFxyXG4gICAgICAgICAgICBgQkJEIHYke0NvbmZpZy5iYmRWZXJzaW9ufSBieSBgLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxyXG4gICAgICAgICAgICAgICAgXCJhXCIsXHJcbiAgICAgICAgICAgICAgICB7aHJlZjogXCJodHRwczovL2dpdGh1Yi5jb20vcmF1ZW56aS9cIiwgdGFyZ2V0OiBcIl9ibGFua1wifSxcclxuICAgICAgICAgICAgICAgIFwiWmVyZWJvc1wiXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/settings.js\n");
/***/ }),
/***/ "./src/ui/settings/switch.jsx":
/*!************************************!*\
!*** ./src/ui/settings/switch.jsx ***!
\************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Switch; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nconst flexContainer = \"flex-1xMQg5 flex-1O1GKY vertical-V37hAW flex-1O1GKY directionColumn-35P_nr justifyStart-2NDFzi alignStretch-DpGPf3 noWrap-3jynv6 switchItem-2hKKKK\";\nconst flexWrap = \"flex-1xMQg5 flex-1O1GKY horizontal-1ae9ci horizontal-2EEEnY flex-1O1GKY directionRow-3v3tfG justifyStart-2NDFzi alignStart-H-X2h- noWrap-3jynv6\";\nconst flexChild = \"flexChild-faoVW3\";\nconst title = \"titleDefault-a8-ZSr title-31JmR4 da-titleDefault da-title\";\nconst switchWrapperDisabled = \"flexChild-faoVW3 da-flexChild switchDisabled-3HsXAJ switch-3wwwcV da-switchDisabled da-switch valueUnchecked-2lU_20 value-2hFrkk sizeDefault-2YlOZr size-3rFEHg themeDefault-24hCdX\";\nconst switchWrapperDisabledChecked = \"flexChild-faoVW3 da-flexChild switchDisabled-3HsXAJ switch-3wwwcV da-switchDisabled da-switch valueChecked-m-4IJZ value-2hFrkk sizeDefault-2YlOZr size-3rFEHg themeDefault-24hCdX\";\nconst switchWrapper = \"flexChild-faoVW3 da-flexChild switchEnabled-V2WDBB switch-3wwwcV da-switchEnabled da-switch valueUnchecked-2lU_20 value-2hFrkk sizeDefault-2YlOZr size-3rFEHg themeDefault-24hCdX\";\nconst switchWrapperChecked = \"flexChild-faoVW3 da-flexChild switchEnabled-V2WDBB switch-3wwwcV da-switchEnabled da-switch valueChecked-m-4IJZ value-2hFrkk sizeDefault-2YlOZr size-3rFEHg themeDefault-24hCdX\";\nconst switchClass = \"checkboxEnabled-CtinEn checkbox-2tyjJg\";\nconst switchClassDisabled = \"checkboxDisabled-1MA81A checkbox-2tyjJg\";\nconst description = \"description-3_Ncsb formText-3fs7AJ note-1V3kyJ modeDefault-3a2Ph1 primary-jw0I4K\";\nconst divider = \"divider-3573oO dividerDefault-3rvLe-\";\nclass Switch extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n checked: this.props.checked\n };\n }\n\n onChange() {\n if (this.props.disabled) return;\n this.props.onChange(this.props.id, !this.state.checked);\n this.setState({\n checked: !this.state.checked\n });\n }\n\n render() {\n const wrapperClass = this.props.disabled ? this.state.checked ? switchWrapperDisabledChecked : switchWrapperDisabled : this.state.checked ? switchWrapperChecked : switchWrapper;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: flexContainer,\n style: {\n flex: \"1 1 auto\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: flexWrap,\n style: {\n flex: \"1 1 auto\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: flexChild,\n style: {\n flex: \"1 1 auto\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n htmlFor: this.props.id,\n className: title\n }, this.props.name || this.props.data.text)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: wrapperClass,\n tabIndex: \"0\",\n style: {\n flex: \"0 0 auto\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n id: this.props.id,\n className: this.props.disabled ? switchClassDisabled : switchClass,\n type: \"checkbox\",\n tabIndex: \"-1\",\n checked: this.state.checked,\n onChange: e => this.onChange(e)\n }))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: description,\n style: {\n flex: \"1 1 auto\"\n }\n }, this.props.note || this.props.data.info), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: divider\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3N3aXRjaC5qc3g/OTMxYyJdLCJuYW1lcyI6WyJmbGV4Q29udGFpbmVyIiwiZmxleFdyYXAiLCJmbGV4Q2hpbGQiLCJ0aXRsZSIsInN3aXRjaFdyYXBwZXJEaXNhYmxlZCIsInN3aXRjaFdyYXBwZXJEaXNhYmxlZENoZWNrZWQiLCJzd2l0Y2hXcmFwcGVyIiwic3dpdGNoV3JhcHBlckNoZWNrZWQiLCJzd2l0Y2hDbGFzcyIsInN3aXRjaENsYXNzRGlzYWJsZWQiLCJkZXNjcmlwdGlvbiIsImRpdmlkZXIiLCJTd2l0Y2giLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsImNoZWNrZWQiLCJvbkNoYW5nZSIsImRpc2FibGVkIiwiaWQiLCJzZXRTdGF0ZSIsInJlbmRlciIsIndyYXBwZXJDbGFzcyIsImZsZXgiLCJuYW1lIiwiZGF0YSIsInRleHQiLCJlIiwibm90ZSIsImluZm8iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUEsTUFBTUEsYUFBYSxHQUFHLG9KQUF0QjtBQUNBLE1BQU1DLFFBQVEsR0FBRyxpSkFBakI7QUFDQSxNQUFNQyxTQUFTLEdBQUcsa0JBQWxCO0FBQ0EsTUFBTUMsS0FBSyxHQUFHLDJEQUFkO0FBQ0EsTUFBTUMscUJBQXFCLEdBQUcsc0xBQTlCO0FBQ0EsTUFBTUMsNEJBQTRCLEdBQUcsbUxBQXJDO0FBQ0EsTUFBTUMsYUFBYSxHQUFHLG1MQUF0QjtBQUNBLE1BQU1DLG9CQUFvQixHQUFHLGlMQUE3QjtBQUNBLE1BQU1DLFdBQVcsR0FBRyx3Q0FBcEI7QUFDQSxNQUFNQyxtQkFBbUIsR0FBRyx5Q0FBNUI7QUFDQSxNQUFNQyxXQUFXLEdBQUcsa0ZBQXBCO0FBQ0EsTUFBTUMsT0FBTyxHQUFHLHNDQUFoQjtBQUVlLE1BQU1DLE1BQU4sU0FBcUJDLDZDQUFLLENBQUNDLFNBQTNCLENBQXFDO0FBQ2hEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFFQSxTQUFLQyxLQUFMLEdBQWE7QUFDVEMsYUFBTyxFQUFFLEtBQUtGLEtBQUwsQ0FBV0U7QUFEWCxLQUFiO0FBR0g7O0FBRURDLFVBQVEsR0FBRztBQUNQLFFBQUksS0FBS0gsS0FBTCxDQUFXSSxRQUFmLEVBQXlCO0FBQ3pCLFNBQUtKLEtBQUwsQ0FBV0csUUFBWCxDQUFvQixLQUFLSCxLQUFMLENBQVdLLEVBQS9CLEVBQW1DLENBQUMsS0FBS0osS0FBTCxDQUFXQyxPQUEvQztBQUNBLFNBQUtJLFFBQUwsQ0FBYztBQUNWSixhQUFPLEVBQUUsQ0FBQyxLQUFLRCxLQUFMLENBQVdDO0FBRFgsS0FBZDtBQUdIOztBQUVESyxRQUFNLEdBQUc7QUFDTCxVQUFNQyxZQUFZLEdBQUcsS0FBS1IsS0FBTCxDQUFXSSxRQUFYLEdBQXVCLEtBQUtILEtBQUwsQ0FBV0MsT0FBWCxHQUFxQmIsNEJBQXJCLEdBQW9ERCxxQkFBM0UsR0FBcUcsS0FBS2EsS0FBTCxDQUFXQyxPQUFYLEdBQXFCWCxvQkFBckIsR0FBNENELGFBQXRLO0FBQ0EsV0FBTztBQUFLLGVBQVMsRUFBRU4sYUFBaEI7QUFBK0IsV0FBSyxFQUFFO0FBQUN5QixZQUFJLEVBQUU7QUFBUDtBQUF0QyxPQUNLO0FBQUssZUFBUyxFQUFFeEIsUUFBaEI7QUFBMEIsV0FBSyxFQUFFO0FBQUN3QixZQUFJLEVBQUU7QUFBUDtBQUFqQyxPQUNJO0FBQUssZUFBUyxFQUFFdkIsU0FBaEI7QUFBMkIsV0FBSyxFQUFFO0FBQUN1QixZQUFJLEVBQUU7QUFBUDtBQUFsQyxPQUNJO0FBQU8sYUFBTyxFQUFFLEtBQUtULEtBQUwsQ0FBV0ssRUFBM0I7QUFBK0IsZUFBUyxFQUFFbEI7QUFBMUMsT0FBa0QsS0FBS2EsS0FBTCxDQUFXVSxJQUFYLElBQW1CLEtBQUtWLEtBQUwsQ0FBV1csSUFBWCxDQUFnQkMsSUFBckYsQ0FESixDQURKLEVBSUk7QUFBSyxlQUFTLEVBQUVKLFlBQWhCO0FBQThCLGNBQVEsRUFBQyxHQUF2QztBQUEyQyxXQUFLLEVBQUU7QUFBQ0MsWUFBSSxFQUFFO0FBQVA7QUFBbEQsT0FDSTtBQUFPLFFBQUUsRUFBRSxLQUFLVCxLQUFMLENBQVdLLEVBQXRCO0FBQTBCLGVBQVMsRUFBRSxLQUFLTCxLQUFMLENBQVdJLFFBQVgsR0FBc0JYLG1CQUF0QixHQUE0Q0QsV0FBakY7QUFBOEYsVUFBSSxFQUFDLFVBQW5HO0FBQThHLGNBQVEsRUFBQyxJQUF2SDtBQUE0SCxhQUFPLEVBQUUsS0FBS1MsS0FBTCxDQUFXQyxPQUFoSjtBQUF5SixjQUFRLEVBQUVXLENBQUMsSUFBSSxLQUFLVixRQUFMLENBQWNVLENBQWQ7QUFBeEssTUFESixDQUpKLENBREwsRUFTSztBQUFLLGVBQVMsRUFBRW5CLFdBQWhCO0FBQTZCLFdBQUssRUFBRTtBQUFDZSxZQUFJLEVBQUU7QUFBUDtBQUFwQyxPQUF5RCxLQUFLVCxLQUFMLENBQVdjLElBQVgsSUFBbUIsS0FBS2QsS0FBTCxDQUFXVyxJQUFYLENBQWdCSSxJQUE1RixDQVRMLEVBVUs7QUFBSyxlQUFTLEVBQUVwQjtBQUFoQixNQVZMLENBQVA7QUFZSDs7QUEvQitDIiwiZmlsZSI6Ii4vc3JjL3VpL3NldHRpbmdzL3N3aXRjaC5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlYWN0fSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuY29uc3QgZmxleENvbnRhaW5lciA9IFwiZmxleC0xeE1RZzUgZmxleC0xTzFHS1kgdmVydGljYWwtVjM3aEFXIGZsZXgtMU8xR0tZIGRpcmVjdGlvbkNvbHVtbi0zNVBfbnIganVzdGlmeVN0YXJ0LTJOREZ6aSBhbGlnblN0cmV0Y2gtRHBHUGYzIG5vV3JhcC0zanludjYgc3dpdGNoSXRlbS0yaEtLS0tcIjtcclxuY29uc3QgZmxleFdyYXAgPSBcImZsZXgtMXhNUWc1IGZsZXgtMU8xR0tZIGhvcml6b250YWwtMWFlOWNpIGhvcml6b250YWwtMkVFRW5ZIGZsZXgtMU8xR0tZIGRpcmVjdGlvblJvdy0zdjN0ZkcganVzdGlmeVN0YXJ0LTJOREZ6aSBhbGlnblN0YXJ0LUgtWDJoLSBub1dyYXAtM2p5bnY2XCI7XHJcbmNvbnN0IGZsZXhDaGlsZCA9IFwiZmxleENoaWxkLWZhb1ZXM1wiO1xyXG5jb25zdCB0aXRsZSA9IFwidGl0bGVEZWZhdWx0LWE4LVpTciB0aXRsZS0zMUptUjQgZGEtdGl0bGVEZWZhdWx0IGRhLXRpdGxlXCI7XHJcbmNvbnN0IHN3aXRjaFdyYXBwZXJEaXNhYmxlZCA9IFwiZmxleENoaWxkLWZhb1ZXMyBkYS1mbGV4Q2hpbGQgc3dpdGNoRGlzYWJsZWQtM0hzWEFKIHN3aXRjaC0zd3d3Y1YgZGEtc3dpdGNoRGlzYWJsZWQgZGEtc3dpdGNoIHZhbHVlVW5jaGVja2VkLTJsVV8yMCAgdmFsdWUtMmhGcmtrIHNpemVEZWZhdWx0LTJZbE9aciBzaXplLTNyRkVIZyB0aGVtZURlZmF1bHQtMjRoQ2RYXCI7XHJcbmNvbnN0IHN3aXRjaFdyYXBwZXJEaXNhYmxlZENoZWNrZWQgPSBcImZsZXhDaGlsZC1mYW9WVzMgZGEtZmxleENoaWxkIHN3aXRjaERpc2FibGVkLTNIc1hBSiBzd2l0Y2gtM3d3d2NWIGRhLXN3aXRjaERpc2FibGVkIGRhLXN3aXRjaCB2YWx1ZUNoZWNrZWQtbS00SUpaIHZhbHVlLTJoRnJrayBzaXplRGVmYXVsdC0yWWxPWnIgc2l6ZS0zckZFSGcgdGhlbWVEZWZhdWx0LTI0aENkWFwiO1xyXG5jb25zdCBzd2l0Y2hXcmFwcGVyID0gXCJmbGV4Q2hpbGQtZmFvVlczIGRhLWZsZXhDaGlsZCBzd2l0Y2hFbmFibGVkLVYyV0RCQiBzd2l0Y2gtM3d3d2NWIGRhLXN3aXRjaEVuYWJsZWQgZGEtc3dpdGNoIHZhbHVlVW5jaGVja2VkLTJsVV8yMCB2YWx1ZS0yaEZya2sgc2l6ZURlZmF1bHQtMllsT1pyIHNpemUtM3JGRUhnIHRoZW1lRGVmYXVsdC0yNGhDZFhcIjtcclxuY29uc3Qgc3dpdGNoV3JhcHBlckNoZWNrZWQgPSBcImZsZXhDaGlsZC1mYW9WVzMgZGEtZmxleENoaWxkIHN3aXRjaEVuYWJsZWQtVjJXREJCIHN3aXRjaC0zd3d3Y1YgZGEtc3dpdGNoRW5hYmxlZCBkYS1zd2l0Y2ggdmFsdWVDaGVja2VkLW0tNElKWiB2YWx1ZS0yaEZya2sgc2l6ZURlZmF1bHQtMllsT1pyIHNpemUtM3JGRUhnIHRoZW1lRGVmYXVsdC0yNGhDZFhcIjtcclxuY29uc3Qgc3dpdGNoQ2xhc3MgPSBcImNoZWNrYm94RW5hYmxlZC1DdGluRW4gY2hlY2tib3gtMnR5akpnXCI7XHJcbmNvbnN0IHN3aXRjaENsYXNzRGlzYWJsZWQgPSBcImNoZWNrYm94RGlzYWJsZWQtMU1BODFBIGNoZWNrYm94LTJ0eWpKZ1wiO1xyXG5jb25zdCBkZXNjcmlwdGlvbiA9IFwiZGVzY3JpcHRpb24tM19OY3NiIGZvcm1UZXh0LTNmczdBSiBub3RlLTFWM2t5SiBtb2RlRGVmYXVsdC0zYTJQaDEgcHJpbWFyeS1qdzBJNEtcIjtcclxuY29uc3QgZGl2aWRlciA9IFwiZGl2aWRlci0zNTczb08gZGl2aWRlckRlZmF1bHQtM3J2TGUtXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTd2l0Y2ggZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcblxyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgICAgICAgIGNoZWNrZWQ6IHRoaXMucHJvcHMuY2hlY2tlZFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGFuZ2UoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMucHJvcHMuaWQsICF0aGlzLnN0YXRlLmNoZWNrZWQpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBjaGVja2VkOiAhdGhpcy5zdGF0ZS5jaGVja2VkXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHdyYXBwZXJDbGFzcyA9IHRoaXMucHJvcHMuZGlzYWJsZWQgPyAodGhpcy5zdGF0ZS5jaGVja2VkID8gc3dpdGNoV3JhcHBlckRpc2FibGVkQ2hlY2tlZCA6IHN3aXRjaFdyYXBwZXJEaXNhYmxlZCkgOiAodGhpcy5zdGF0ZS5jaGVja2VkID8gc3dpdGNoV3JhcHBlckNoZWNrZWQgOiBzd2l0Y2hXcmFwcGVyKTtcclxuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9e2ZsZXhDb250YWluZXJ9IHN0eWxlPXt7ZmxleDogXCIxIDEgYXV0b1wifX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2ZsZXhXcmFwfSBzdHlsZT17e2ZsZXg6IFwiMSAxIGF1dG9cIn19PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17ZmxleENoaWxkfSBzdHlsZT17e2ZsZXg6IFwiMSAxIGF1dG9cIn19PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9e3RoaXMucHJvcHMuaWR9IGNsYXNzTmFtZT17dGl0bGV9Pnt0aGlzLnByb3BzLm5hbWUgfHwgdGhpcy5wcm9wcy5kYXRhLnRleHR9PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXt3cmFwcGVyQ2xhc3N9IHRhYkluZGV4PVwiMFwiIHN0eWxlPXt7ZmxleDogXCIwIDAgYXV0b1wifX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9e3RoaXMucHJvcHMuaWR9IGNsYXNzTmFtZT17dGhpcy5wcm9wcy5kaXNhYmxlZCA/IHN3aXRjaENsYXNzRGlzYWJsZWQgOiBzd2l0Y2hDbGFzc30gdHlwZT1cImNoZWNrYm94XCIgdGFiSW5kZXg9XCItMVwiIGNoZWNrZWQ9e3RoaXMuc3RhdGUuY2hlY2tlZH0gb25DaGFuZ2U9e2UgPT4gdGhpcy5vbkNoYW5nZShlKX0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Rlc2NyaXB0aW9ufSBzdHlsZT17e2ZsZXg6IFwiMSAxIGF1dG9cIn19Pnt0aGlzLnByb3BzLm5vdGUgfHwgdGhpcy5wcm9wcy5kYXRhLmluZm99PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2RpdmlkZXJ9IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj47XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/switch.jsx\n");
/***/ }),
/***/ "./src/ui/settings/themecard.js":
/*!**************************************!*\
!*** ./src/ui/settings/themecard.js ***!
\**************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ThemeCard; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n\n // import Toasts from \"../toasts\";\n\nclass ThemeCard extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n this.state = {\n checked: this.props.enabled,\n //ThemeManager.isEnabled(this.props.content.id),\n reloads: 0\n };\n this.onChange = this.onChange.bind(this);\n this.reload = this.reload.bind(this);\n }\n\n reload() {\n if (!this.props.reload) return;\n this.props.content = this.props.reload(this.props.content.id);\n this.forceUpdate();\n }\n\n render() {\n const {\n content\n } = this.props;\n const name = content.name;\n const description = content.description;\n const version = content.version;\n const author = content.author;\n const website = content.website;\n const source = content.source;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"li\", {\n \"data-name\": name,\n \"data-version\": version,\n \"className\": \"settings-closed ui-switch-item\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-header\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-header-title\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-name\"\n }, name), \" v\", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-version\"\n }, version), \" by \", modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-author\"\n }, author)), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-controls\"\n }, !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"content\", \"autoReload\") && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n className: \"bd-reload bd-reload-card\",\n onClick: this.reload\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"label\", {\n className: \"ui-switch-wrapper ui-flex-child\",\n style: {\n flex: \"0 0 auto\"\n }\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"input\", {\n checked: this.state.checked,\n onChange: this.onChange,\n className: \"ui-switch-checkbox\",\n type: \"checkbox\"\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: this.state.checked ? \"ui-switch checked\" : \"ui-switch\"\n })))), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description-wrap scroller-wrap fade\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-description scroller\"\n }, description)), (website || source) && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"div\", {\n className: \"bda-footer\"\n }, modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"span\", {\n className: \"bda-links\"\n }, website && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link\",\n href: website,\n target: \"_blank\"\n }, \"Website\"), website && source && \" | \", source && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"a\", {\n className: \"bda-link\",\n href: source,\n target: \"_blank\"\n }, \"Source\"))));\n }\n\n onChange() {\n this.setState({\n checked: !this.state.checked\n });\n this.props.onChange && this.props.onChange(this.props.content.id);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3RoZW1lY2FyZC5qcz9jMDVjIl0sIm5hbWVzIjpbIlRoZW1lQ2FyZCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwiY2hlY2tlZCIsImVuYWJsZWQiLCJyZWxvYWRzIiwib25DaGFuZ2UiLCJiaW5kIiwicmVsb2FkIiwiY29udGVudCIsImlkIiwiZm9yY2VVcGRhdGUiLCJyZW5kZXIiLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJ2ZXJzaW9uIiwiYXV0aG9yIiwid2Vic2l0ZSIsInNvdXJjZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJTZXR0aW5ncyIsImdldCIsIlJlbG9hZEljb24iLCJvbkNsaWNrIiwic3R5bGUiLCJmbGV4IiwidHlwZSIsImhyZWYiLCJ0YXJnZXQiLCJzZXRTdGF0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVBOztBQUVlLE1BQU1BLFNBQU4sU0FBd0JDLDZDQUFLLENBQUNDLFNBQTlCLENBQXdDO0FBRW5EQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDQSxTQUFLQyxLQUFMLEdBQWE7QUFDVEMsYUFBTyxFQUFFLEtBQUtGLEtBQUwsQ0FBV0csT0FEWDtBQUNvQjtBQUM3QkMsYUFBTyxFQUFFO0FBRkEsS0FBYjtBQUlBLFNBQUtDLFFBQUwsR0FBZ0IsS0FBS0EsUUFBTCxDQUFjQyxJQUFkLENBQW1CLElBQW5CLENBQWhCO0FBQ0EsU0FBS0MsTUFBTCxHQUFjLEtBQUtBLE1BQUwsQ0FBWUQsSUFBWixDQUFpQixJQUFqQixDQUFkO0FBQ0g7O0FBRURDLFFBQU0sR0FBRztBQUNMLFFBQUksQ0FBQyxLQUFLUCxLQUFMLENBQVdPLE1BQWhCLEVBQXdCO0FBQ3hCLFNBQUtQLEtBQUwsQ0FBV1EsT0FBWCxHQUFxQixLQUFLUixLQUFMLENBQVdPLE1BQVgsQ0FBa0IsS0FB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O0FBQVosS0FBM0IsRUFDbkJ0Qiw2Q0FBSyxDQUFDcUIsYUFBTixDQUFvQixNQUFwQixFQUE0QjtBQUFDQyxlQUFTLEVBQUU7QUFBWixLQUE1QixFQUNJSCxPQUFPLElBQUluQiw2Q0FBSyxDQUFDcUIsYUFBTixDQUFvQixHQUFwQixFQUF5QjtBQUFDQyxlQUFTLEVBQUUsVUFBWjtBQUF3QlEsVUFBSSxFQUFFWCxPQUE5QjtBQUF1Q1ksWUFBTSxFQUFFO0FBQS9DLEtBQXpCLEVBQW1GLFNBQW5GLENBRGYsRUFFSVosT0FBTyxJQUFJQyxNQUFYLElBQXFCLEtBRnpCLEVBR0lBLE1BQU0sSUFBSXBCLDZDQUFLLENBQUNxQixhQUFOLENBQW9CLEdBQXBCLEVBQXlCO0FBQUNDLGVBQVMsRUFBRSxVQUFaO0FBQXdCUSxVQUFJLEVBQUVWLE1BQTlCO0FBQXNDVyxZQUFNLEVBQUU7QUFBOUMsS0FBekIsRUFBa0YsUUFBbEYsQ0FIZCxDQURtQixDQXBCcEIsQ0FBUDtBQTRCSDs7QUFFRHZCLFVBQVEsR0FBRztBQUNQLFNBQUt3QixRQUFMLENBQWM7QUFBQzNCLGFBQU8sRUFBRSxDQUFDLEtBQUtELEtBQUwsQ0FBV0M7QUFBdEIsS0FBZDtBQUNBLFNBQUtGLEtBQUwsQ0FBV0ssUUFBWCxJQUF1QixLQUFLTCxLQUFMLENBQVdLLFFBQVgsQ0FBb0IsS0FBS0wsS0FBTCxDQUFXUSxPQUFYLENBQW1CQyxFQUF2QyxDQUF2QjtBQUNIOztBQTVEa0QiLCJmaWxlIjoiLi9zcmMvdWkvc2V0dGluZ3MvdGhlbWVjYXJkLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZWFjdCwgU2V0dGluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcbmltcG9ydCBSZWxvYWRJY29uIGZyb20gXCIuLi9pY29ucy9yZWxvYWRcIjtcclxuLy8gaW1wb3J0IFRvYXN0cyBmcm9tIFwiLi4vdG9hc3RzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUaGVtZUNhcmQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgICAgICAgIGNoZWNrZWQ6IHRoaXMucHJvcHMuZW5hYmxlZCwgLy9UaGVtZU1hbmFnZXIuaXNFbmFibGVkKHRoaXMucHJvcHMuY29udGVudC5pZCksXHJcbiAgICAgICAgICAgIHJlbG9hZHM6IDBcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5yZWxvYWQgPSB0aGlzLnJlbG9hZC5iaW5kKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbG9hZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMucHJvcHMucmVsb2FkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50ID0gdGhpcy5wcm9wcy5yZWxvYWQodGhpcy5wcm9wcy5jb250ZW50LmlkKTtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHtjb250ZW50fSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IGNvbnRlbnQubmFtZTtcclxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGNvbnRlbnQuZGVzY3JpcHRpb247XHJcbiAgICAgICAgY29uc3QgdmVyc2lvbiA9IGNvbnRlbnQudmVyc2lvbjtcclxuICAgICAgICBjb25zdCBhdXRob3IgPSBjb250ZW50LmF1dGhvcjtcclxuICAgICAgICBjb25zdCB3ZWJzaXRlID0gY29udGVudC53ZWJzaXRlO1xyXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRlbnQuc291cmNlO1xyXG5cclxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImxpXCIsIHtcImRhdGEtbmFtZVwiOiBuYW1lLCBcImRhdGEtdmVyc2lvblwiOiB2ZXJzaW9uLCBcImNsYXNzTmFtZVwiOiBcInNldHRpbmdzLWNsb3NlZCB1aS1zd2l0Y2gtaXRlbVwifSxcclxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1oZWFkZXJcIn0sXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge2NsYXNzTmFtZTogXCJiZGEtaGVhZGVyLXRpdGxlXCJ9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1uYW1lXCJ9LCBuYW1lKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgdlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS12ZXJzaW9uXCJ9LCB2ZXJzaW9uKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCIgYnkgXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwiYmRhLWF1dGhvclwifSwgYXV0aG9yKVxyXG4gICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1jb250cm9sc1wifSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgIVNldHRpbmdzLmdldChcInNldHRpbmdzXCIsIFwiY29udGVudFwiLCBcImF1dG9SZWxvYWRcIikgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChSZWxvYWRJY29uLCB7Y2xhc3NOYW1lOiBcImJkLXJlbG9hZCBiZC1yZWxvYWQtY2FyZFwiLCBvbkNsaWNrOiB0aGlzLnJlbG9hZH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGFiZWxcIiwge2NsYXNzTmFtZTogXCJ1aS1zd2l0Y2gtd3JhcHBlciB1aS1mbGV4LWNoaWxkXCIsIHN0eWxlOiB7ZmxleDogXCIwIDAgYXV0b1wifX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge2NoZWNrZWQ6IHRoaXMuc3RhdGUuY2hlY2tlZCwgb25DaGFuZ2U6IHRoaXMub25DaGFuZ2UsIGNsYXNzTmFtZTogXCJ1aS1zd2l0Y2gtY2hlY2tib3hcIiwgdHlwZTogXCJjaGVja2JveFwifSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IHRoaXMuc3RhdGUuY2hlY2tlZCA/IFwidWktc3dpdGNoIGNoZWNrZWRcIiA6IFwidWktc3dpdGNoXCJ9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiYmRhLWRlc2NyaXB0aW9uLXdyYXAgc2Nyb2xsZXItd3JhcCBmYWRlXCJ9LFxyXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1kZXNjcmlwdGlvbiBzY3JvbGxlclwifSwgZGVzY3JpcHRpb24pXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICh3ZWJzaXRlIHx8IHNvdXJjZSkgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImJkYS1mb290ZXJcIn0sXHJcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7Y2xhc3NOYW1lOiBcImJkYS1saW5rc1wifSxcclxuICAgICAgICAgICAgICAgICAgICB3ZWJzaXRlICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmtcIiwgaHJlZjogd2Vic2l0ZSwgdGFyZ2V0OiBcIl9ibGFua1wifSwgXCJXZWJzaXRlXCIpLFxyXG4gICAgICAgICAgICAgICAgICAgIHdlYnNpdGUgJiYgc291cmNlICYmIFwiIHwgXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgc291cmNlICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHtjbGFzc05hbWU6IFwiYmRhLWxpbmtcIiwgaHJlZjogc291cmNlLCB0YXJnZXQ6IFwiX2JsYW5rXCJ9LCBcIlNvdXJjZVwiKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYW5nZSgpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtjaGVja2VkOiAhdGhpcy5zdGF0ZS5jaGVja2VkfSk7XHJcbiAgICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZSAmJiB0aGlzLnByb3BzLm9uQ2hhbmdlKHRoaXMucHJvcHMuY29udGVudC5pZCk7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/settings/themecard.js\n");
/***/ }),
/***/ "./src/ui/settings/title.jsx":
/*!***********************************!*\
!*** ./src/ui/settings/title.jsx ***!
\***********************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return SettingsTitle; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nconst className = \"bd-settings-title h2-2gWE-o title-3sZWYQ size16-14cGz5 height20-mO2eIN weightSemiBold-NJexzi defaultColor-1_ajX0 defaultMarginh2-2LTaUL marginBottom20-32qID7\";\nconst className2 = \"bd-settings-title bd-settings-group-title h5-18_1nd title-3sZWYQ size12-3R0845 height16-2Lv3qA weightSemiBold-NJexzi da-h5 da-title da-size12 da-height16 da-weightSemiBold marginBottom4-2qk4Hy da-marginBottom4 marginTop8-1DLZ1n da-marginTop8\";\nclass SettingsTitle extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n constructor(props) {\n super(props);\n } //h2-2gWE-o title-3sZWYQ size16-14cGz5 height20-mO2eIN weightSemiBold-NJexzi da-h2 da-title da-size16 da-height20 da-weightSemiBold defaultColor-1_ajX0 da-defaultColor marginTop60-3PGbtK da-marginTop60 marginBottom20-32qID7 da-marginBottom20\n\n\n render() {\n const baseClass = this.props.isGroup ? className2 : className;\n const titleClass = this.props.className ? `${baseClass} ${this.props.className}` : baseClass;\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"h2\", {\n className: titleClass,\n onClick: () => {\n this.props.onClick && this.props.onClick();\n }\n }, this.props.text, this.props.button && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"button\", {\n className: \"bd-title-button\",\n onClick: this.props.button.onClick\n }, this.props.button.title), this.props.otherChildren);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL3RpdGxlLmpzeD9iNTliIl0sIm5hbWVzIjpbImNsYXNzTmFtZSIsImNsYXNzTmFtZTIiLCJTZXR0aW5nc1RpdGxlIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwicmVuZGVyIiwiYmFzZUNsYXNzIiwiaXNHcm91cCIsInRpdGxlQ2xhc3MiLCJvbkNsaWNrIiwidGV4dCIsImJ1dHRvbiIsInRpdGxlIiwib3RoZXJDaGlsZHJlbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQSxNQUFNQSxTQUFTLEdBQUcsK0pBQWxCO0FBQ0EsTUFBTUMsVUFBVSxHQUFHLG1QQUFuQjtBQUVlLE1BQU1DLGFBQU4sU0FBNEJDLDZDQUFLLENBQUNDLFNBQWxDLENBQTRDO0FBQ3ZEQyxhQUFXLENBQUNDLEtBQUQsRUFBUTtBQUNmLFVBQU1BLEtBQU47QUFDSCxHQUhzRCxDQUkzRDs7O0FBQ0lDLFFBQU0sR0FBRztBQUNMLFVBQU1DLFNBQVMsR0FBRyxLQUFLRixLQUFMLENBQVdHLE9BQVgsR0FBcUJSLFVBQXJCLEdBQWtDRCxTQUFwRDtBQUNBLFVBQU1VLFVBQVUsR0FBRyxLQUFLSixLQUFMLENBQVdOLFNBQVgsR0FBd0IsR0FBRVEsU0FBVSxJQUFHLEtBQUtGLEtBQUwsQ0FBV04sU0FBVSxFQUE1RCxHQUFnRVEsU0FBbkY7QUFDQSxXQUFPO0FBQUksZUFBUyxFQUFFRSxVQUFmO0FBQTJCLGFBQU8sRUFBRSxNQUFNO0FBQUMsYUFBS0osS0FBTCxDQUFXSyxPQUFYLElBQXNCLEtBQUtMLEtBQUwsQ0FBV0ssT0FBWCxFQUF0QjtBQUE0QztBQUF2RixPQUNFLEtBQUtMLEtBQUwsQ0FBV00sSUFEYixFQUVFLEtBQUtOLEtBQUwsQ0FBV08sTUFBWCxJQUFxQjtBQUFRLGVBQVMsRUFBQyxpQkFBbEI7QUFBb0MsYUFBTyxFQUFFLEtBQUtQLEtBQUwsQ0FBV08sTUFBWCxDQUFrQkY7QUFBL0QsT0FBeUUsS0FBS0wsS0FBTCxDQUFXTyxNQUFYLENBQWtCQyxLQUEzRixDQUZ2QixFQUdFLEtBQUtSLEtBQUwsQ0FBV1MsYUFIYixDQUFQO0FBS0g7O0FBYnNEIiwiZmlsZSI6Ii4vc3JjL3VpL3NldHRpbmdzL3RpdGxlLmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3R9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5jb25zdCBjbGFzc05hbWUgPSBcImJkLXNldHRpbmdzLXRpdGxlIGgyLTJnV0UtbyB0aXRsZS0zc1pXWVEgc2l6ZTE2LTE0Y0d6NSBoZWlnaHQyMC1tTzJlSU4gd2VpZ2h0U2VtaUJvbGQtTkpleHppIGRlZmF1bHRDb2xvci0xX2FqWDAgZGVmYXVsdE1hcmdpbmgyLTJMVGFVTCBtYXJnaW5Cb3R0b20yMC0zMnFJRDdcIjtcclxuY29uc3QgY2xhc3NOYW1lMiA9IFwiYmQtc2V0dGluZ3MtdGl0bGUgYmQtc2V0dGluZ3MtZ3JvdXAtdGl0bGUgaDUtMThfMW5kIHRpdGxlLTNzWldZUSBzaXplMTItM1IwODQ1IGhlaWdodDE2LTJMdjNxQSB3ZWlnaHRTZW1pQm9sZC1OSmV4emkgZGEtaDUgZGEtdGl0bGUgZGEtc2l6ZTEyIGRhLWhlaWdodDE2IGRhLXdlaWdodFNlbWlCb2xkIG1hcmdpbkJvdHRvbTQtMnFrNEh5IGRhLW1hcmdpbkJvdHRvbTQgbWFyZ2luVG9wOC0xRExaMW4gZGEtbWFyZ2luVG9wOFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2V0dGluZ3NUaXRsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgIH1cclxuLy9oMi0yZ1dFLW8gdGl0bGUtM3NaV1lRIHNpemUxNi0xNGNHejUgaGVpZ2h0MjAtbU8yZUlOIHdlaWdodFNlbWlCb2xkLU5KZXh6aSBkYS1oMiBkYS10aXRsZSBkYS1zaXplMTYgZGEtaGVpZ2h0MjAgZGEtd2VpZ2h0U2VtaUJvbGQgZGVmYXVsdENvbG9yLTFfYWpYMCBkYS1kZWZhdWx0Q29sb3IgbWFyZ2luVG9wNjAtM1BHYnRLIGRhLW1hcmdpblRvcDYwIG1hcmdpbkJvdHRvbTIwLTMycUlENyBkYS1tYXJnaW5Cb3R0b20yMFxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IGJhc2VDbGFzcyA9IHRoaXMucHJvcHMuaXNHcm91cCA/IGNsYXNzTmFtZTIgOiBjbGFzc05hbWU7XHJcbiAgICAgICAgY29uc3QgdGl0bGVDbGFzcyA9IHRoaXMucHJvcHMuY2xhc3NOYW1lID8gYCR7YmFzZUNsYXNzfSAke3RoaXMucHJvcHMuY2xhc3NOYW1lfWAgOiBiYXNlQ2xhc3M7XHJcbiAgICAgICAgcmV0dXJuIDxoMiBjbGFzc05hbWU9e3RpdGxlQ2xhc3N9IG9uQ2xpY2s9eygpID0+IHt0aGlzLnByb3BzLm9uQ2xpY2sgJiYgdGhpcy5wcm9wcy5vbkNsaWNrKCk7fX0+XHJcbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy50ZXh0fVxyXG4gICAgICAgICAgICAgICAge3RoaXMucHJvcHMuYnV0dG9uICYmIDxidXR0b24gY2xhc3NOYW1lPVwiYmQtdGl0bGUtYnV0dG9uXCIgb25DbGljaz17dGhpcy5wcm9wcy5idXR0b24ub25DbGlja30+e3RoaXMucHJvcHMuYnV0dG9uLnRpdGxlfTwvYnV0dG9uPn1cclxuICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLm90aGVyQ2hpbGRyZW59XHJcbiAgICAgICAgICAgICAgICA8L2gyPjtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/title.jsx\n");
/***/ }),
/***/ "./src/ui/toasts.js":
/*!**************************!*\
!*** ./src/ui/toasts.js ***!
\**************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Toasts; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n\nconst channelsClass = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"channels\").channels.split(\" \")[0];\nconst membersWrapClass = modules__WEBPACK_IMPORTED_MODULE_0__[\"WebpackModules\"].getByProps(\"membersWrap\").membersWrap.split(\" \")[0];\nclass Toasts {\n static get shouldShowToasts() {\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"general\", \"showToasts\");\n }\n /** Shorthand for `type = \"success\"` for {@link module:Toasts.show} */\n\n\n static async success(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"success\"\n }));\n }\n /** Shorthand for `type = \"info\"` for {@link module:Toasts.show} */\n\n\n static async info(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"info\"\n }));\n }\n /** Shorthand for `type = \"warning\"` for {@link module:Toasts.show} */\n\n\n static async warning(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"warning\"\n }));\n }\n /** Shorthand for `type = \"error\"` for {@link module:Toasts.show} */\n\n\n static async error(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"error\"\n }));\n }\n /** Shorthand for `type = \"default\"` for {@link module:Toasts.show} */\n\n\n static async default(content, options = {}) {\n return this.show(content, Object.assign(options, {\n type: \"\"\n }));\n }\n /**\r\n * This shows a toast similar to android towards the bottom of the screen.\r\n *\r\n * @param {string} content The string to show in the toast.\r\n * @param {object} options Options object. Optional parameter.\r\n * @param {string} [options.type=\"\"] Changes the type of the toast stylistically and semantically. Choices: \"\", \"info\", \"success\", \"danger\"/\"error\", \"warning\"/\"warn\". Default: \"\"\r\n * @param {boolean} [options.icon=true] Determines whether the icon should show corresponding to the type. A toast without type will always have no icon. Default: true\r\n * @param {number} [options.timeout=3000] Adjusts the time (in ms) the toast should be shown for before disappearing automatically. Default: 3000\r\n * @param {boolean} [options.forceShow=false] Whether to force showing the toast and ignore the bd setting\r\n */\n\n\n static show(content, options = {}) {\n const {\n type = \"\",\n icon = true,\n timeout = 3000,\n forceShow = false\n } = options;\n if (!this.shouldShowToasts && !forceShow) return;\n this.ensureContainer();\n const toastElem = document.createElement(\"div\");\n toastElem.classList.add(\"bd-toast\");\n if (type) toastElem.classList.add(\"toast-\" + type);\n if (type && icon) toastElem.classList.add(\"icon\");\n toastElem.innerText = content;\n document.querySelector(\".bd-toasts\").appendChild(toastElem);\n setTimeout(() => {\n toastElem.classList.add(\"closing\");\n setTimeout(() => {\n toastElem.remove();\n if (!document.querySelectorAll(\".bd-toasts .bd-toast\").length) document.querySelector(\".bd-toasts\").remove();\n }, 300);\n }, timeout);\n }\n\n static ensureContainer() {\n if (document.querySelector(\".bd-toasts\")) return;\n const container = document.querySelector(`.${channelsClass} + div`);\n const memberlist = container.querySelector(`.${membersWrapClass}`);\n const form = container ? container.querySelector(\"form\") : null;\n const left = container ? container.getBoundingClientRect().left : 310;\n const right = memberlist ? memberlist.getBoundingClientRect().left : 0;\n const width = right ? right - container.getBoundingClientRect().left : container.offsetWidth;\n const bottom = form ? form.offsetHeight : 80;\n const toastWrapper = document.createElement(\"div\");\n toastWrapper.classList.add(\"bd-toasts\");\n toastWrapper.style.setProperty(\"left\", left + \"px\");\n toastWrapper.style.setProperty(\"width\", width + \"px\");\n toastWrapper.style.setProperty(\"bottom\", bottom + \"px\");\n document.querySelector(\"#app-mount\").appendChild(toastWrapper);\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3RvYXN0cy5qcz9jZmU1Il0sIm5hbWVzIjpbImNoYW5uZWxzQ2xhc3MiLCJXZWJwYWNrTW9kdWxlcyIsImdldEJ5UHJvcHMiLCJjaGFubmVscyIsInNwbGl0IiwibWVtYmVyc1dyYXBDbGFzcyIsIm1lbWJlcnNXcmFwIiwiVG9hc3RzIiwic2hvdWxkU2hvd1RvYXN0cyIsIlNldHRpbmdzIiwiZ2V0Iiwic3VjY2VzcyIsImNvbnRlbnQiLCJvcHRpb25zIiwic2hvdyIsIk9iamVjdCIsImFzc2lnbiIsInR5cGUiLCJpbmZvIiwid2FybmluZyIsImVycm9yIiwiZGVmYXVsdCIsImljb24iLCJ0aW1lb3V0IiwiZm9yY2VTaG93IiwiZW5zdXJlQ29udGFpbmVyIiwidG9hc3RFbGVtIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NMaXN0IiwiYWRkIiwiaW5uZXJUZXh0IiwicXVlcnlTZWxlY3RvciIsImFwcGVuZENoaWxkIiwic2V0VGltZW91dCIsInJlbW92ZSIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJsZW5ndGgiLCJjb250YWluZXIiLCJtZW1iZXJsaXN0IiwiZm9ybSIsImxlZnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJyaWdodCIsIndpZHRoIiwib2Zmc2V0V2lkdGgiLCJib3R0b20iLCJvZmZzZXRIZWlnaHQiLCJ0b2FzdFdyYXBwZXIiLCJzdHlsZSIsInNldFByb3BlcnR5Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLE1BQU1BLGFBQWEsR0FBR0Msc0RBQWMsQ0FBQ0MsVUFBZixDQUEwQixVQUExQixFQUFzQ0MsUUFBdEMsQ0FBK0NDLEtBQS9DLENBQXFELEdBQXJELEVBQTBELENBQTFELENBQXRCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUdKLHNEQUFjLENBQUNDLFVBQWYsQ0FBMEIsYUFBMUIsRUFBeUNJLFdBQXpDLENBQXFERixLQUFyRCxDQUEyRCxHQUEzRCxFQUFn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QUNBTyxnQkFBWSxDQUFDQyxLQUFiLENBQW1CQyxXQUFuQixDQUErQixPQUEvQixFQUF3Q04sS0FBSyxHQUFHLElBQWhEO0FBQ0FJLGdCQUFZLENBQUNDLEtBQWIsQ0FBbUJDLFdBQW5CLENBQStCLFFBQS9CLEVBQXlDSixNQUFNLEdBQUcsSUFBbEQ7QUFDQW5CLFlBQVEsQ0FBQ0ssYUFBVCxDQUF1QixZQUF2QixFQUFxQ0MsV0FBckMsQ0FBaURlLFlBQWpEO0FBQ0g7O0FBL0R1QiIsImZpbGUiOiIuL3NyYy91aS90b2FzdHMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1dlYnBhY2tNb2R1bGVzLCBTZXR0aW5nc30gZnJvbSBcIm1vZHVsZXNcIjtcclxuXHJcbmNvbnN0IGNoYW5uZWxzQ2xhc3MgPSBXZWJwYWNrTW9kdWxlcy5nZXRCeVByb3BzKFwiY2hhbm5lbHNcIikuY2hhbm5lbHMuc3BsaXQoXCIgXCIpWzBdO1xyXG5jb25zdCBtZW1iZXJzV3JhcENsYXNzID0gV2VicGFja01vZHVsZXMuZ2V0QnlQcm9wcyhcIm1lbWJlcnNXcmFwXCIpLm1lbWJlcnNXcmFwLnNwbGl0KFwiIFwiKVswXTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRvYXN0cyB7XHJcblxyXG4gICAgc3RhdGljIGdldCBzaG91bGRTaG93VG9hc3RzKCkge3JldHVybiBTZXR0aW5ncy5nZXQoXCJzZXR0aW5nc1wiLCBcImdlbmVyYWxcIiwgXCJzaG93VG9hc3RzXCIpO31cclxuXHJcbiAgICAvKiogU2hvcnRoYW5kIGZvciBgdHlwZSA9IFwic3VjY2Vzc1wiYCBmb3Ige0BsaW5rIG1vZHVsZTpUb2FzdHMuc2hvd30gKi9cclxuICAgIHN0YXRpYyBhc3luYyBzdWNjZXNzKGNvbnRlbnQsIG9wdGlvbnMgPSB7fSkge3JldHVybiB0aGlzLnNob3coY29udGVudCwgT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7dHlwZTogXCJzdWNjZXNzXCJ9KSk7fVxyXG5cclxuICAgIC8qKiBTaG9ydGhhbmQgZm9yIGB0eXBlID0gXCJpbmZvXCJgIGZvciB7QGxpbmsgbW9kdWxlOlRvYXN0cy5zaG93fSAqL1xyXG4gICAgc3RhdGljIGFzeW5jIGluZm8oY29udGVudCwgb3B0aW9ucyA9IHt9KSB7cmV0dXJuIHRoaXMuc2hvdyhjb250ZW50LCBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHt0eXBlOiBcImluZm9cIn0pKTt9XHJcblxyXG4gICAgLyoqIFNob3J0aGFuZCBmb3IgYHR5cGUgPSBcIndhcm5pbmdcImAgZm9yIHtAbGluayBtb2R1bGU6VG9hc3RzLnNob3d9ICovXHJcbiAgICBzdGF0aWMgYXN5bmMgd2FybmluZyhjb250ZW50LCBvcHRpb25zID0ge30pIHtyZXR1cm4gdGhpcy5zaG93KGNvbnRlbnQsIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge3R5cGU6IFwid2FybmluZ1wifSkpO31cclxuXHJcbiAgICAvKiogU2hvcnRoYW5kIGZvciBgdHlwZSA9IFwiZXJyb3JcImAgZm9yIHtAbGluayBtb2R1bGU6VG9hc3RzLnNob3d9ICovXHJcbiAgICBzdGF0aWMgYXN5bmMgZXJyb3IoY29udGVudCwgb3B0aW9ucyA9IHt9KSB7cmV0dXJuIHRoaXMuc2hvdyhjb250ZW50LCBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHt0eXBlOiBcImVycm9yXCJ9KSk7fVxyXG5cclxuICAgIC8qKiBTaG9ydGhhbmQgZm9yIGB0eXBlID0gXCJkZWZhdWx0XCJgIGZvciB7QGxpbmsgbW9kdWxlOlRvYXN0cy5zaG93fSAqL1xyXG4gICAgc3RhdGljIGFzeW5jIGRlZmF1bHQoY29udGVudCwgb3B0aW9ucyA9IHt9KSB7cmV0dXJuIHRoaXMuc2hvdyhjb250ZW50LCBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHt0eXBlOiBcIlwifSkpO31cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgc2hvd3MgYSB0b2FzdCBzaW1pbGFyIHRvIGFuZHJvaWQgdG93YXJkcyB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnQgVGhlIHN0cmluZyB0byBzaG93IGluIHRoZSB0b2FzdC5cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIE9wdGlvbnMgb2JqZWN0LiBPcHRpb25hbCBwYXJhbWV0ZXIuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMudHlwZT1cIlwiXSBDaGFuZ2VzIHRoZSB0eXBlIG9mIHRoZSB0b2FzdCBzdHlsaXN0aWNhbGx5IGFuZCBzZW1hbnRpY2FsbHkuIENob2ljZXM6IFwiXCIsIFwiaW5mb1wiLCBcInN1Y2Nlc3NcIiwgXCJkYW5nZXJcIi9cImVycm9yXCIsIFwid2FybmluZ1wiL1wid2FyblwiLiBEZWZhdWx0OiBcIlwiXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmljb249dHJ1ZV0gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBpY29uIHNob3VsZCBzaG93IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHR5cGUuIEEgdG9hc3Qgd2l0aG91dCB0eXBlIHdpbGwgYWx3YXlzIGhhdmUgbm8gaWNvbi4gRGVmYXVsdDogdHJ1ZVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLnRpbWVvdXQ9MzAwMF0gQWRqdXN0cyB0aGUgdGltZSAoaW4gbXMpIHRoZSB0b2FzdCBzaG91bGQgYmUgc2hvd24gZm9yIGJlZm9yZSBkaXNhcHBlYXJpbmcgYXV0b21hdGljYWxseS4gRGVmYXVsdDogMzAwMFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5mb3JjZVNob3c9ZmFsc2VdIFdoZXRoZXIgdG8gZm9yY2Ugc2hvd2luZyB0aGUgdG9hc3QgYW5kIGlnbm9yZSB0aGUgYmQgc2V0dGluZ1xyXG4gICAgICovXHJcbiAgICBzdGF0aWMgc2hvdyhjb250ZW50LCBvcHRpb25zID0ge30pIHtcclxuICAgICAgICBjb25zdCB7dHlwZSA9IFwiXCIsIGljb24gPSB0cnVlLCB0aW1lb3V0ID0gMzAwMCwgZm9yY2VTaG93ID0gZmFsc2V9ID0gb3B0aW9ucztcclxuICAgICAgICBpZiAoIXRoaXMuc2hvdWxkU2hvd1RvYXN0cyAmJiAhZm9yY2VTaG93KSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5lbnN1cmVDb250YWluZXIoKTtcclxuICAgICAgICBjb25zdCB0b2FzdEVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gICAgICAgIHRvYXN0RWxlbS5jbGFzc0xpc3QuYWRkKFwiYmQtdG9hc3RcIik7XHJcbiAgICAgICAgaWYgKHR5cGUpIHRvYXN0RWxlbS5jbGFzc0xpc3QuYWRkKFwidG9hc3QtXCIgKyB0eXBlKTtcclxuICAgICAgICBpZiAodHlwZSAmJiBpY29uKSB0b2FzdEVsZW0uY2xhc3NMaXN0LmFkZChcImljb25cIik7XHJcbiAgICAgICAgdG9hc3RFbGVtLmlubmVyVGV4dCA9IGNvbnRlbnQ7XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5iZC10b2FzdHNcIikuYXBwZW5kQ2hpbGQodG9hc3RFbGVtKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdG9hc3RFbGVtLmNsYXNzTGlzdC5hZGQoXCJjbG9zaW5nXCIpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRvYXN0RWxlbS5yZW1vdmUoKTtcclxuICAgICAgICAgICAgICAgIGlmICghZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5iZC10b2FzdHMgLmJkLXRvYXN0XCIpLmxlbmd0aCkgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5iZC10b2FzdHNcIikucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgIH0sIDMwMCk7XHJcbiAgICAgICAgfSwgdGltZW91dCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGVuc3VyZUNvbnRhaW5lcigpIHtcclxuICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5iZC10b2FzdHNcIikpIHJldHVybjtcclxuICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHtjaGFubmVsc0NsYXNzfSArIGRpdmApO1xyXG4gICAgICAgIGNvbnN0IG1lbWJlcmxpc3QgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcihgLiR7bWVtYmVyc1dyYXBDbGFzc31gKTtcclxuICAgICAgICBjb25zdCBmb3JtID0gY29udGFpbmVyID8gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXCJmb3JtXCIpIDogbnVsbDtcclxuICAgICAgICBjb25zdCBsZWZ0ID0gY29udGFpbmVyID8gY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgOiAzMTA7XHJcbiAgICAgICAgY29uc3QgcmlnaHQgPSBtZW1iZXJsaXN0ID8gbWVtYmVybGlzdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IDogMDtcclxuICAgICAgICBjb25zdCB3aWR0aCA9IHJpZ2h0ID8gcmlnaHQgLSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCA6IGNvbnRhaW5lci5vZmZzZXRXaWR0aDtcclxuICAgICAgICBjb25zdCBib3R0b20gPSBmb3JtID8gZm9ybS5vZmZzZXRIZWlnaHQgOiA4MDtcclxuICAgICAgICBjb25zdCB0b2FzdFdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gICAgICAgIHRvYXN0V3JhcHBlci5jbGFzc0xpc3QuYWRkKFwiYmQtdG9hc3RzXCIpO1xyXG4gICAgICAgIHRvYXN0V3JhcHBlci5zdHlsZS5zZXRQcm9wZXJ0eShcImxlZnRcIiwgbGVmdCArIFwicHhcIik7XHJcbiAgICAgICAgdG9hc3RXcmFwcGVyLnN0eWxlLnNldFByb3BlcnR5KFwid2lkdGhcIiwgd2lkdGggKyBcInB4XCIpO1xyXG4gICAgICAgIHRvYXN0V3JhcHBlci5zdHlsZS5zZXRQcm9wZXJ0eShcImJvdHRvbVwiLCBib3R0b20gKyBcInB4XCIpO1xyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjYXBwLW1vdW50XCIpLmFwcGVuZENoaWxkKHRvYXN0V3JhcHBlcik7XHJcbiAgICB9XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/toasts.js\n");
/***/ }),
/***/ "./src/ui/ui.js":
/*!**********************!*\
!*** ./src/ui/ui.js ***!
\**********************/
/*! exports provided: SettingsPanel, PublicServersMenu, Toasts, Modals */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _settings_settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings/settings */ \"./src/ui/settings/settings.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SettingsPanel\", function() { return _settings_settings__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _publicservers_menu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./publicservers/menu */ \"./src/ui/publicservers/menu.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PublicServersMenu\", function() { return _publicservers_menu__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _toasts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./toasts */ \"./src/ui/toasts.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Toasts\", function() { return _toasts__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _modals__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modals */ \"./src/ui/modals.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Modals\", function() { return _modals__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3VpLmpzPzFkOWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9zcmMvdWkvdWkuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge2RlZmF1bHQgYXMgU2V0dGluZ3NQYW5lbH0gZnJvbSBcIi4vc2V0dGluZ3Mvc2V0dGluZ3NcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIFB1YmxpY1NlcnZlcnNNZW51fSBmcm9tIFwiLi9wdWJsaWNzZXJ2ZXJzL21lbnVcIjtcclxuZXhwb3J0IHtkZWZhdWx0IGFzIFRvYXN0c30gZnJvbSBcIi4vdG9hc3RzXCI7XHJcbmV4cG9ydCB7ZGVmYXVsdCBhcyBNb2RhbHN9IGZyb20gXCIuL21vZGFsc1wiOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/ui.js\n");
/***/ }),
/***/ "electron":
/*!****************************************!*\
!*** external "require(\"electron\")" ***!
\****************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"electron\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwiZWxlY3Ryb25cXFwiKVwiP2ZhMWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiZWxlY3Ryb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJlbGVjdHJvblwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///electron\n");
/***/ }),
/***/ "events":
/*!**************************************!*\
!*** external "require(\"events\")" ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"events\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwiZXZlbnRzXFxcIilcIj85NjE2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImV2ZW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImV2ZW50c1wiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///events\n");
/***/ }),
/***/ "fs":
/*!**********************************!*\
!*** external "require(\"fs\")" ***!
\**********************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"fs\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwiZnNcXFwiKVwiP2QzMGIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiZnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJmc1wiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///fs\n");
/***/ }),
/***/ "module":
/*!*************************!*\
!*** external "module" ***!
\*************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"module\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwibW9kdWxlXCI/N2M0OCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJtb2R1bGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJtb2R1bGVcIik7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///module\n");
/***/ }),
/***/ "path":
/*!************************************!*\
!*** external "require(\"path\")" ***!
\************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"path\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwicGF0aFxcXCIpXCI/MmYzNyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJwYXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicGF0aFwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///path\n");
/***/ }),
/***/ "request":
/*!***************************************!*\
!*** external "require(\"request\")" ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports = require(\"request\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlL2V4dGVybmFsIFwicmVxdWlyZShcXFwicmVxdWVzdFxcXCIpXCI/MmM1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJyZXF1ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVxdWVzdFwiKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///request\n");
/***/ })
/******/ })["default"];